mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-08 07:52:54 +00:00
* ONLY SKYRAT CHANGES * ACTUALLY SKYRAT CHANGES * yolo, revert later * Update alternate_byond_versions.txt Co-authored-by: AnturK <AnturK@users.noreply.github.com>
33 lines
1.1 KiB
Plaintext
33 lines
1.1 KiB
Plaintext
/**
|
|
* tenacious element; which makes the parent move faster while crawling
|
|
*
|
|
* Used by sparring sect!
|
|
*/
|
|
/datum/element/tenacious
|
|
|
|
/datum/element/tenacious/Attach(datum/target)
|
|
. = ..()
|
|
|
|
if(!ishuman(target))
|
|
return COMPONENT_INCOMPATIBLE
|
|
var/mob/living/carbon/human/valid_target = target
|
|
on_stat_change(valid_target, new_stat = valid_target.stat) //immediately try adding movement bonus if they're in soft crit
|
|
RegisterSignal(target, COMSIG_MOB_STATCHANGE, PROC_REF(on_stat_change))
|
|
ADD_TRAIT(target, TRAIT_TENACIOUS, ELEMENT_TRAIT(type))
|
|
|
|
/datum/element/tenacious/Detach(datum/target)
|
|
UnregisterSignal(target, COMSIG_MOB_STATCHANGE)
|
|
REMOVE_TRAIT(target, TRAIT_TENACIOUS, ELEMENT_TRAIT(type))
|
|
return ..()
|
|
|
|
///signal called by the stat of the target changing
|
|
/datum/element/tenacious/proc/on_stat_change(mob/living/carbon/human/target, new_stat)
|
|
SIGNAL_HANDLER
|
|
|
|
if(new_stat == SOFT_CRIT)
|
|
target.balloon_alert(target, "your tenacity kicks in")
|
|
target.add_movespeed_modifier(/datum/movespeed_modifier/tenacious)
|
|
else
|
|
target.balloon_alert(target, "your tenacity wears off")
|
|
target.remove_movespeed_modifier(/datum/movespeed_modifier/tenacious)
|