diff --git a/code/modules/mob/living/basic/cult/constructs/harvester.dm b/code/modules/mob/living/basic/cult/constructs/harvester.dm index 971c341a73a..d240bbc273f 100644 --- a/code/modules/mob/living/basic/cult/constructs/harvester.dm +++ b/code/modules/mob/living/basic/cult/constructs/harvester.dm @@ -208,6 +208,9 @@ // Don't let them be near you! /mob/living/basic/construct/harvester/heretic/Life(seconds_per_tick, times_fired) . = ..() + if(!.) //dead or deleted + return + if(!SPT_PROB(7, seconds_per_tick)) return diff --git a/code/modules/mob/living/basic/heretic/rust_walker.dm b/code/modules/mob/living/basic/heretic/rust_walker.dm index 230747efa5a..19c3c901993 100644 --- a/code/modules/mob/living/basic/heretic/rust_walker.dm +++ b/code/modules/mob/living/basic/heretic/rust_walker.dm @@ -39,8 +39,9 @@ icon_living = icon_state /mob/living/basic/heretic_summon/rust_walker/Life(seconds_per_tick = SSMOBS_DT, times_fired) - if(stat == DEAD) - return ..() + . = ..() + if(!.) //dead or deleted + return var/turf/our_turf = get_turf(src) if(HAS_TRAIT(our_turf, TRAIT_RUSTY)) adjustBruteLoss(-3 * seconds_per_tick) diff --git a/code/modules/mob/living/basic/pets/dog/dog_subtypes.dm b/code/modules/mob/living/basic/pets/dog/dog_subtypes.dm index 18b956e5ec2..73f06dacfb8 100644 --- a/code/modules/mob/living/basic/pets/dog/dog_subtypes.dm +++ b/code/modules/mob/living/basic/pets/dog/dog_subtypes.dm @@ -117,7 +117,9 @@ /mob/living/basic/pet/dog/breaddog/Life(seconds_per_tick = SSMOBS_DT, times_fired) . = ..() - if(stat) + if(!.) //dead or deleted + return + if(stat) // consciousness check return if(health < maxHealth) diff --git a/code/modules/mob/living/basic/ruin_defender/mimic/mimic.dm b/code/modules/mob/living/basic/ruin_defender/mimic/mimic.dm index 195834afd98..ad50561327c 100644 --- a/code/modules/mob/living/basic/ruin_defender/mimic/mimic.dm +++ b/code/modules/mob/living/basic/ruin_defender/mimic/mimic.dm @@ -268,6 +268,8 @@ GLOBAL_LIST_INIT(animatable_blacklist, typecacheof(list( /mob/living/basic/mimic/copy/Life(seconds_per_tick = SSMOBS_DT, times_fired) . = ..() + if(!.) //dead or deleted + return if(idledamage && !ckey && !ai_controller?.blackboard[BB_BASIC_MOB_CURRENT_TARGET]) //Objects eventually revert to normal if no one is around to terrorize adjustBruteLoss(0.5 * seconds_per_tick) for(var/mob/living/victim in contents) //a fix for animated statues from the flesh to stone spell diff --git a/code/modules/mob/living/basic/slime/life.dm b/code/modules/mob/living/basic/slime/life.dm index d101b48fea7..b1e24070ff6 100644 --- a/code/modules/mob/living/basic/slime/life.dm +++ b/code/modules/mob/living/basic/slime/life.dm @@ -1,6 +1,8 @@ /mob/living/basic/slime/Life(seconds_per_tick = SSMOBS_DT, times_fired) - ..() + . = ..() + if(!.) //dead or deleted + return if(!HAS_TRAIT(src, TRAIT_STASIS)) //No hunger in stasis handle_nutrition(seconds_per_tick) diff --git a/code/modules/mob/living/basic/space_fauna/netherworld/migo.dm b/code/modules/mob/living/basic/space_fauna/netherworld/migo.dm index 76e3dcc2d62..6bcac371480 100644 --- a/code/modules/mob/living/basic/space_fauna/netherworld/migo.dm +++ b/code/modules/mob/living/basic/space_fauna/netherworld/migo.dm @@ -58,7 +58,9 @@ make_migo_sound() /mob/living/basic/migo/Life(seconds_per_tick = SSMOBS_DT, times_fired) - ..() + . = ..() + if(!.) //dead or deleted + return if(stat) return if(SPT_PROB(5, seconds_per_tick)) diff --git a/code/modules/mob/living/basic/tree.dm b/code/modules/mob/living/basic/tree.dm index b6f7e5ca4eb..b3700050209 100644 --- a/code/modules/mob/living/basic/tree.dm +++ b/code/modules/mob/living/basic/tree.dm @@ -61,7 +61,9 @@ AddComponent(/datum/component/aggro_emote, emote_list = string_list(list("growls")), emote_chance = 20) /mob/living/basic/tree/Life(seconds_per_tick = SSMOBS_DT, times_fired) - ..() + . = ..() + if(!.) //dead or deleted + return if(!isopenturf(loc)) return var/turf/open/our_turf = src.loc diff --git a/code/modules/mob/living/carbon/alien/life.dm b/code/modules/mob/living/carbon/alien/life.dm index 7bd7d7aec49..537c0cd000c 100644 --- a/code/modules/mob/living/carbon/alien/life.dm +++ b/code/modules/mob/living/carbon/alien/life.dm @@ -1,6 +1,8 @@ /mob/living/carbon/alien/Life(seconds_per_tick = SSMOBS_DT, times_fired) + . = ..() + if(!.) //dead or deleted + return findQueen() - return..() /mob/living/carbon/alien/check_breath(datum/gas_mixture/breath) if(HAS_TRAIT(src, TRAIT_GODMODE)) @@ -43,4 +45,6 @@ /mob/living/carbon/alien/adult/Life(seconds_per_tick, times_fired) . = ..() + if(QDELETED(src)) + return handle_organs(seconds_per_tick, times_fired) diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index 0f1cbfa65a5..6e9a1e2d30d 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -2,7 +2,7 @@ if(HAS_TRAIT(src, TRAIT_NO_TRANSFORM)) return - ..() + . = ..() handle_robot_hud_updates() handle_robot_cell(seconds_per_tick, times_fired) diff --git a/code/modules/mob/living/simple_animal/hostile/ooze.dm b/code/modules/mob/living/simple_animal/hostile/ooze.dm index 3ad2d647e02..801c3cb2056 100644 --- a/code/modules/mob/living/simple_animal/hostile/ooze.dm +++ b/code/modules/mob/living/simple_animal/hostile/ooze.dm @@ -55,13 +55,16 @@ /mob/living/simple_animal/hostile/ooze/Life(seconds_per_tick = SSMOBS_DT, times_fired) . = ..() + if(!.) //dead or deleted + return + if(!mind && stat != DEAD)//no mind no change return var/nutrition_change = ooze_nutrition_loss //Eat a bit of all the reagents we have. Gaining nutrition for actual nutritional ones. - for(var/i in reagents.reagent_list) + for(var/i in reagents?.reagent_list) var/datum/reagent/reagent = i var/consumption_amount = min(reagents.get_reagent_amount(reagent.type), ooze_metabolism_modifier * REAGENTS_METABOLISM * seconds_per_tick) if(istype(reagent, /datum/reagent/consumable))