Moves stasis handling to component-based
This commit is contained in:
@@ -154,25 +154,22 @@
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
owner.mobility_flags &= ~MOBILITY_USE
|
||||
owner.mobility_flags &= ~MOBILITY_PICKUP
|
||||
owner.mobility_flags &= ~MOBILITY_PULL
|
||||
owner.mobility_flags &= ~MOBILITY_HOLD
|
||||
RegisterSignal(owner, COMSIG_LIVING_LIFE, .proc/InterruptBiologicalLife)
|
||||
owner.mobility_flags &= ~(MOBILITY_USE | MOBILITY_PICKUP | MOBILITY_PULL | MOBILITY_HOLD)
|
||||
owner.update_mobility()
|
||||
owner.add_filter("stasis_status_ripple", 2, list("type" = "ripple", "flags" = WAVE_BOUNDED, "radius" = 0, "size" = 2))
|
||||
var/filter = owner.get_filter("stasis_status_ripple")
|
||||
animate(filter, radius = 32, time = 15, size = 0, loop = -1)
|
||||
|
||||
/datum/status_effect/grouped/stasis/proc/InterruptBiologicalLife()
|
||||
return COMPONENT_INTERRUPT_LIFE_BIOLOGICAL
|
||||
|
||||
/datum/status_effect/grouped/stasis/tick()
|
||||
update_time_of_death()
|
||||
|
||||
/datum/status_effect/grouped/stasis/on_remove()
|
||||
owner.mobility_flags |= MOBILITY_USE
|
||||
owner.mobility_flags |= MOBILITY_PICKUP
|
||||
owner.mobility_flags |= MOBILITY_PULL
|
||||
owner.mobility_flags |= MOBILITY_HOLD
|
||||
owner.update_mobility()
|
||||
UnregisterSignal(owner, COMSIG_LIVING_LIFE)
|
||||
owner.mobility_flags |= MOBILITY_USE | MOBILITY_PICKUP | MOBILITY_PULL | MOBILITY_HOLD
|
||||
owner.remove_filter("stasis_status_ripple")
|
||||
update_time_of_death()
|
||||
return ..()
|
||||
|
||||
@@ -6,12 +6,11 @@
|
||||
SHOULD_NOT_SLEEP(TRUE)
|
||||
if(mob_transforming)
|
||||
return
|
||||
handle_traits() // eye, ear, brain damages
|
||||
handle_status_effects() //all special effects, stun, knockdown, jitteryness, hallucination, sleeping, etc
|
||||
. = SEND_SIGNAL(src, COMSIG_LIVING_LIFE, seconds, times_fired)
|
||||
if(!(. & COMPONENT_INTERRUPT_LIFE_PHYSICAL))
|
||||
PhysicalLife(seconds, times_fired)
|
||||
if(!(. & COMPONENT_INTERRUPT_LIFE_BIOLOGICAL) && !IS_IN_STASIS(src))
|
||||
if(!(. & COMPONENT_INTERRUPT_LIFE_BIOLOGICAL))
|
||||
BiologicalLife(seconds, times_fired)
|
||||
|
||||
// CODE BELOW SHOULD ONLY BE THINGS THAT SHOULD HAPPEN NO MATTER WHAT AND CAN NOT BE SUSPENDED!
|
||||
@@ -67,6 +66,7 @@
|
||||
|
||||
//stuff in the stomach
|
||||
handle_stomach()
|
||||
handle_traits() // eye, ear, brain damages
|
||||
|
||||
handle_block_parry(seconds)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user