From e4af04823a59f0e3dab036fcddcef77c530d4d74 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 16 Sep 2017 04:35:45 -0500 Subject: [PATCH] [MIRROR] Fix pressure plate spam (#2775) * Fix pressure plate spam (#30736) * Fix pressure plate spam * Not everything has feet * Pressure plates . = ..() * Fix pressure plate spam --- .../objects/items/devices/pressureplates.dm | 49 ++++++------------- 1 file changed, 15 insertions(+), 34 deletions(-) diff --git a/code/game/objects/items/devices/pressureplates.dm b/code/game/objects/items/devices/pressureplates.dm index b8b4884db7..183e960a08 100644 --- a/code/game/objects/items/devices/pressureplates.dm +++ b/code/game/objects/items/devices/pressureplates.dm @@ -1,7 +1,7 @@ /obj/item/device/pressure_plate name = "pressure plate" - desc = "Useful for autismforts" + desc = "An electronic device that triggers when stepped on." item_state = "flash" icon_state = "pressureplate" level = 1 @@ -17,11 +17,11 @@ var/removable_signaller = TRUE var/active = FALSE var/image/tile_overlay = null - var/crossed = FALSE + var/can_trigger = TRUE var/trigger_delay = 10 /obj/item/device/pressure_plate/Initialize() - ..() + . = ..() tile_overlay = image(icon = 'icons/turf/floors.dmi', icon_state = "pp_overlay") if(roundstart_signaller) sigdev = new @@ -31,45 +31,27 @@ hide(TRUE) /obj/item/device/pressure_plate/Crossed(atom/movable/AM) - if(!active) + . = ..() + if(!can_trigger || !active) return - if(isliving(AM) && trigger_mob) + if(trigger_mob && isliving(AM)) var/mob/living/L = AM - step_living(L) - crossed = TRUE - else if(trigger_item) - step_item(AM) - crossed = TRUE - if(!trigger_silent) - if(isturf(loc)) - loc.visible_message("Click!") - playsound(loc, trigger_sound, 50, 1) - . = ..() - -/obj/item/device/pressure_plate/Uncrossed(atom/movable/AM) - if(crossed) - playsound(loc, trigger_sound, 50, 1) - if(isliving(AM)) - var/mob/living/L = AM - to_chat(L, "You feel something click back into place as you step off [loc]!") - addtimer(CALLBACK(src, .proc/trigger), trigger_delay) - . = ..() + to_chat(L, "You feel something click beneath you!") + else if(!trigger_item) + return + can_trigger = FALSE + addtimer(CALLBACK(src, .proc/trigger), trigger_delay) /obj/item/device/pressure_plate/proc/trigger() + can_trigger = TRUE if(istype(sigdev)) sigdev.signal() -/obj/item/device/pressure_plate/proc/step_living(mob/living/L) - to_chat(L, "You feel a click under your feet!") - -/obj/item/device/pressure_plate/proc/step_item(atom/movable/AM) - return - /obj/item/device/pressure_plate/attackby(obj/item/I, mob/living/L) if(istype(I, /obj/item/device/assembly/signaler) && !istype(sigdev) && removable_signaller && L.transferItemToLoc(I, src)) sigdev = I to_chat(L, "You attach [I] to [src]!") - . = ..() + return ..() /obj/item/device/pressure_plate/attack_self(mob/living/L) if(removable_signaller && istype(sigdev)) @@ -77,7 +59,7 @@ if(!L.put_in_hands(sigdev)) sigdev.forceMove(get_turf(src)) sigdev = null - . = ..() + return ..() /obj/item/device/pressure_plate/hide(yes) if(yes) @@ -85,11 +67,10 @@ anchored = TRUE icon_state = null active = TRUE + can_trigger = TRUE if(tile_overlay) loc.add_overlay(tile_overlay) else - if(crossed) - trigger() //no cheesing. invisibility = initial(invisibility) anchored = FALSE icon_state = initial(icon_state)