Moves stasis handling to component-based

This commit is contained in:
Artur
2022-04-07 14:10:51 +03:00
parent 3824daba05
commit be46eba465
2 changed files with 8 additions and 11 deletions

View File

@@ -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 ..()

View File

@@ -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)