/obj/item/caution desc = "Caution! Wet Floor!" name = "wet floor sign" icon = 'icons/obj/janitor.dmi' icon_state = "caution" lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi' force = 1.0 throwforce = 3.0 throw_speed = 1 throw_range = 5 w_class = WEIGHT_CLASS_SMALL attack_verb = list("warned", "cautioned", "smashed") /obj/item/caution/proximity_sign var/timing = FALSE var/armed = FALSE var/timepassed = 0 /obj/item/caution/proximity_sign/Initialize(mapload) . = ..() AddComponent(/datum/component/proximity_monitor) /obj/item/caution/proximity_sign/attack_self(mob/user as mob) if(ishuman(user)) var/mob/living/carbon/human/H = user if(!H.mind.has_antag_datum(/datum/antagonist/traitor) && !ismindslave(H)) return if(armed) armed = FALSE to_chat(user, "You disarm \the [src].") return timing = !timing if(timing) START_PROCESSING(SSobj, src) else armed = FALSE timepassed = 0 to_chat(H, "You [timing ? "activate \the [src]'s timer, you have 15 seconds." : "de-activate \the [src]'s timer."]") /obj/item/caution/proximity_sign/process() if(!timing) STOP_PROCESSING(SSobj, src) timepassed++ if(timepassed >= 15 && !armed) armed = TRUE timing = FALSE /obj/item/caution/proximity_sign/HasProximity(atom/movable/AM) if(armed) if(iscarbon(AM) && !isbrain(AM)) var/mob/living/carbon/C = AM if(C.m_intent != MOVE_INTENT_WALK) visible_message("[src] beeps, \"Sign says walk, asshole.\"") playsound(src, 'sound/misc/sign_says_walk.ogg', 40) explosion(src.loc,-1,0,2) if(ishuman(C)) dead_legs(C) if(src) qdel(src) /obj/item/caution/proximity_sign/proc/dead_legs(mob/living/carbon/human/H as mob) var/obj/item/organ/external/l = H.get_organ("l_leg") var/obj/item/organ/external/r = H.get_organ("r_leg") if(l) l.droplimb(0, DROPLIMB_SHARP) if(r) r.droplimb(0, DROPLIMB_SHARP)