Files
Paradise/code/game/objects/items/weapons/caution.dm
Silverplate 73510a18ab Allows proximity mine signs to be used by all traitors (#20977)
* Removes jani mind requirement

* makes arm/disarm of jani sighs traitor only

* Adds mindslaves to usable mind states

* adds prox sign to surplus, standard proability

* Removes thralls from using sign (hacky method)

* allows mindslave useage (not hacky way)
2023-05-21 12:10:02 -05:00

69 lines
2.0 KiB
Plaintext

/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, "<span class='notice'>You disarm \the [src].</span>")
return
timing = !timing
if(timing)
START_PROCESSING(SSobj, src)
else
armed = FALSE
timepassed = 0
to_chat(H, "<span class='notice'>You [timing ? "activate \the [src]'s timer, you have 15 seconds." : "de-activate \the [src]'s timer."]</span>")
/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)