Mousetrap fix (#21759)

Fixes https://github.com/Aurorastation/Aurora.3/issues/21744

Mousetraps were missing the loc_connection element on initialization.
They now trigger appropriately when mobs (mouse, human, or otherwise)
step onto their location.

changes:
  - bugfix: "Mousetraps now trigger when mobs move onto their location."
- code_imp: "Updates affected assemblies to use feedback_hints() instead
of get_examine_text(), improves clarity."

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
Co-authored-by: Cody Brittain <1779662+Generalcamo@users.noreply.github.com>
This commit is contained in:
Batrachophreno
2026-01-30 14:26:47 -05:00
committed by GitHub
parent 9dbda9584b
commit f797eb05c0
3 changed files with 75 additions and 14 deletions
+5 -12
View File
@@ -96,9 +96,7 @@
attach_assembly(A, user)
return
if(attacking_item.tool_behaviour == TOOL_SCREWDRIVER)
if(toggle_secure())
to_chat(user, SPAN_NOTICE("\The [src] is ready!"))
else
if(!toggle_secure())
to_chat(user, SPAN_NOTICE("\The [src] can now be attached!"))
return
return ..()
@@ -107,15 +105,10 @@
STOP_PROCESSING(SSprocessing, src)
return
/obj/item/device/assembly/get_examine_text(mob/user, distance, is_adjacent, infix, suffix)
. = ..()
if(distance <= 1 || loc == user)
if(secured)
. += "\The [src] is ready!"
else
. += "\The [src] can be attached!"
/obj/item/device/assembly/feedback_hints(mob/user, distance, is_adjacent)
. += ..()
if((distance <= 1 || loc == user) && !secured)
. += SPAN_NOTICE("\The [src] can be attached!")
/obj/item/device/assembly/attack_self(mob/user)
if(!user)
+11 -2
View File
@@ -13,10 +13,19 @@
matter = list(DEFAULT_WALL_MATERIAL = 100)
var/armed = FALSE
/obj/item/device/assembly/mousetrap/get_examine_text(mob/user, distance, is_adjacent, infix, suffix)
/obj/item/device/assembly/mousetrap/Initialize(mapload)
. = ..()
var/static/list/loc_connections = list(
COMSIG_ATOM_ENTERED = PROC_REF(on_entered),
)
AddElement(/datum/element/connect_loc, loc_connections)
/obj/item/device/assembly/mousetrap/feedback_hints(mob/user, distance, is_adjacent)
. += ..()
if(armed)
. += "It looks like it's armed."
. += SPAN_NOTICE("It looks like it's armed.")
/obj/item/device/assembly/mousetrap/update_icon()
icon_state = armed ? "mousetraparmed" : "mousetrap"