Files
VOREStation/code/modules/mob/living/carbon/resist.dm
T
ShadowLarkens a1322afa05 Port /datum/status_effect and convert wetness and fire stacks to it (#18180)
* Port /datum/status_effect system

* Port fire stacks to status_effects

* Fixes and adjustments to wetness

* One last little thing

* Fixes these compile errors

A few things on the backend got updated...Adjusts them here.

---------

Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
Co-authored-by: Cameron Lennox <killer65311@gmail.com>
2025-09-17 01:50:37 -04:00

100 lines
2.9 KiB
Plaintext

/mob/living/carbon/resist_fire()
adjust_fire_stacks(-1.2)
Weaken(3)
spin(32,2)
visible_message(
span_danger("[src] rolls on the floor, trying to put themselves out!"),
span_notice("You stop, drop, and roll!")
)
sleep(30)
if(fire_stacks <= 0)
visible_message(
span_danger("[src] has successfully extinguished themselves!"),
span_notice("You extinguish yourself.")
)
extinguish_mob()
return TRUE
/mob/living/carbon/resist_restraints()
var/obj/item/I = null
if(handcuffed)
I = handcuffed
else if(legcuffed)
I = legcuffed
if(I)
setClickCooldown(100)
cuff_resist(I, cuff_break = can_break_cuffs())
/mob/living/carbon/proc/reduce_cuff_time()
return FALSE
/mob/living/carbon/proc/cuff_resist(obj/item/handcuffs/I, breakouttime = 1200, cuff_break = 0)
if(istype(I))
breakouttime = I.breakouttime
var/displaytime = breakouttime / 10
var/reduceCuffTime = reduce_cuff_time()
if(reduceCuffTime)
breakouttime /= reduceCuffTime
displaytime /= reduceCuffTime
if(cuff_break)
visible_message(span_danger("[src] is trying to break [I]!"),
span_warning("You attempt to break your [I]. (This will take around 5 seconds and you need to stand still)"))
if(do_after(src, 5 SECONDS, target = src, timed_action_flags = IGNORE_INCAPACITATED))
if(!I || buckled)
return
visible_message(span_danger("[src] manages to break [I]!"),
span_warning("You successfully break your [I]."))
say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
if(I == handcuffed)
handcuffed = null
update_handcuffed()
else if(I == legcuffed)
legcuffed = null
update_inv_legcuffed()
if(buckled && buckled.buckle_require_restraints)
buckled.unbuckle_mob()
qdel(I)
else
to_chat(src, span_warning("You fail to break [I]."))
return
visible_message(span_danger("[src] attempts to remove [I]!"),
span_warning("You attempt to remove [I]. (This will take around [displaytime] seconds and you need to stand still)"))
if(do_after(src, breakouttime, target = src, timed_action_flags = IGNORE_INCAPACITATED))
visible_message(span_danger("[src] manages to remove [I]!"),
span_notice("You successfully remove [I]."))
drop_from_inventory(I)
/mob/living/carbon/resist_buckle()
if(!buckled)
return
if(!restrained())
return ..()
setClickCooldown(100)
visible_message(
span_danger("[src] attempts to unbuckle themself!"),
span_warning("You attempt to unbuckle yourself. (This will take around 2 minutes and you need to stand still)")
)
if(do_after(src, 2 MINUTES, target = src, timed_action_flags = IGNORE_INCAPACITATED))
if(!buckled)
return
visible_message(span_danger("[src] manages to unbuckle themself!"),
span_notice("You successfully unbuckle yourself."))
buckled.user_unbuckle_mob(src, src)
/mob/living/carbon/proc/can_break_cuffs()
if(HULK in mutations)
return 1