diff --git a/code/game/gamemodes/miniantags/revenant/revenant.dm b/code/game/gamemodes/miniantags/revenant/revenant.dm index 45b53e3f6f2..0e05f8f4066 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant.dm @@ -141,7 +141,8 @@ /mob/living/simple_animal/revenant/adjustHealth(amount) if(!revealed) - return + return 0 + . = amount essence = max(0, essence-amount) if(essence == 0) src << "You feel your essence fraying!" diff --git a/code/modules/holiday/halloween.dm b/code/modules/holiday/halloween.dm index ea41f4f1807..4081e3831ed 100644 --- a/code/modules/holiday/halloween.dm +++ b/code/modules/holiday/halloween.dm @@ -213,7 +213,7 @@ return /mob/living/simple_animal/shade/howling_ghost/adjustHealth() - return + . = 0 /mob/living/simple_animal/shade/howling_ghost/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) return 1 @@ -273,6 +273,7 @@ return /mob/living/simple_animal/hostile/retaliate/clown/insane/adjustHealth() + . = 0 if(prob(5)) playsound(loc, 'sound/spookoween/insane_low_laugh.ogg', 300, 1) diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index d6996348c48..cdf5c96d3b9 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -170,7 +170,7 @@ /mob/living/simple_animal/bot/adjustHealth(amount) if(amount>0 && prob(10)) new /obj/effect/decal/cleanable/oil(loc) - return ..(amount) + . = ..() /mob/living/simple_animal/bot/updatehealth() ..() diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index be62cfce185..7ba8700d44e 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -90,6 +90,7 @@ summoner.death() /mob/living/simple_animal/hostile/guardian/adjustHealth(amount) //The spirit is invincible, but passes on damage to the summoner + . = ..() if(summoner) if(loc == summoner) return diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 6ca53676d4f..b4497b98046 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -181,7 +181,7 @@ walk_to(src, target, minimum_distance, delay) /mob/living/simple_animal/hostile/adjustHealth(damage) - ..(damage) + . = ..() if(!ckey && !stat && search_objects < 3 && damage > 0)//Not unconscious, and we don't ignore mobs if(search_objects)//Turn off item searching and ignore whatever item we were looking at, we're more concerned with fight or flight search_objects = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index 8058ef8717c..d0074b8c182 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -72,7 +72,7 @@ /mob/living/simple_animal/hostile/mimic/crate/adjustHealth(damage) trigger() - ..(damage) + . = ..() /mob/living/simple_animal/hostile/mimic/crate/LoseTarget() ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm index 29ae2bad90d..5425ae179f9 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm @@ -183,7 +183,7 @@ /mob/living/simple_animal/hostile/asteroid/goldgrub/adjustHealth(damage) idle_vision_range = 9 - ..() + . = ..() /mob/living/simple_animal/hostile/asteroid/hivelord name = "hivelord" @@ -387,7 +387,7 @@ /mob/living/simple_animal/hostile/asteroid/goliath/adjustHealth(damage) ranged_cooldown-- handle_preattack() - ..() + . = ..() /mob/living/simple_animal/hostile/asteroid/goliath/Aggro() vision_range = aggro_vision_range @@ -526,8 +526,8 @@ /mob/living/simple_animal/hostile/asteroid/fugu/adjustHealth(var/damage) if(wumbo) - return - ..() + return 0 + . = ..() /mob/living/simple_animal/hostile/asteroid/fugu/Aggro() ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm index 03dbb7e29b6..deeaa327f70 100644 --- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm +++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm @@ -66,7 +66,7 @@ retreat_distance = 5 spawn(30) retreat_distance = null - ..() + . = ..() /mob/living/simple_animal/hostile/mushroom/attack_animal(mob/living/L) if(istype(L, /mob/living/simple_animal/hostile/mushroom) && stat == DEAD) diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm index f2c009f2c3b..edd5acc4846 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm @@ -52,6 +52,6 @@ return 0 /mob/living/simple_animal/hostile/retaliate/adjustHealth(damage) - ..(damage) + . = ..() if(stat == CONSCIOUS) Retaliate() diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 805156d5c13..c58e4cbd51d 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -286,26 +286,27 @@ return 0 bruteloss = Clamp(bruteloss + amount, 0, maxHealth) handle_regular_status_updates() + return amount /mob/living/simple_animal/adjustBruteLoss(amount) if(damage_coeff[BRUTE]) - adjustHealth(amount*damage_coeff[BRUTE]) + . = adjustHealth(amount*damage_coeff[BRUTE]) /mob/living/simple_animal/adjustFireLoss(amount) if(damage_coeff[BURN]) - adjustHealth(amount*damage_coeff[BURN]) + . = adjustHealth(amount*damage_coeff[BURN]) /mob/living/simple_animal/adjustOxyLoss(amount) if(damage_coeff[OXY]) - adjustHealth(amount*damage_coeff[OXY]) + . = adjustHealth(amount*damage_coeff[OXY]) /mob/living/simple_animal/adjustToxLoss(amount) if(damage_coeff[TOX]) - adjustHealth(amount*damage_coeff[TOX]) + . = adjustHealth(amount*damage_coeff[TOX]) /mob/living/simple_animal/adjustCloneLoss(amount) if(damage_coeff[CLONE]) - adjustHealth(amount*damage_coeff[CLONE]) + . = adjustHealth(amount*damage_coeff[CLONE]) /mob/living/simple_animal/adjustStaminaLoss(amount) return diff --git a/code/modules/mob/living/simple_animal/slime/life.dm b/code/modules/mob/living/simple_animal/slime/life.dm index 1774f2e592d..4d09c229e8a 100644 --- a/code/modules/mob/living/simple_animal/slime/life.dm +++ b/code/modules/mob/living/simple_animal/slime/life.dm @@ -193,14 +193,17 @@ else if(isanimal(M)) var/mob/living/simple_animal/SA = M - SA.adjustBruteLoss(is_adult ? rand(4, 7) : rand(3, 4)) + + var/totaldamage = 0 //total damage done to this unfortunate animal + totaldamage += SA.adjustCloneLoss(rand(2,4)) + totaldamage += SA.adjustToxLoss(rand(1,2)) + + if(totaldamage <= 0) //if we did no(or negative!) damage to it, stop + Feedstop(0, 0) + return else - src << "[pick("This subject is incompatible", \ - "This subject does not have a life energy", "This subject is empty", \ - "I am not satisified", "I can not feed from this subject", \ - "I do not feel nourished", "This subject is not food")]!" - Feedstop() + Feedstop(0, 0) return add_nutrition(rand(7,15)) diff --git a/code/modules/mob/living/simple_animal/slime/powers.dm b/code/modules/mob/living/simple_animal/slime/powers.dm index 286b63ad9d1..cf703bf95e6 100644 --- a/code/modules/mob/living/simple_animal/slime/powers.dm +++ b/code/modules/mob/living/simple_animal/slime/powers.dm @@ -95,8 +95,13 @@ else src << "I have failed to latch onto the subject" -/mob/living/simple_animal/slime/proc/Feedstop(silent=0) +/mob/living/simple_animal/slime/proc/Feedstop(silent=0, living=1) if(buckled) + if(!living) + src << "[pick("This subject is incompatible", \ + "This subject does not have life energy", "This subject is empty", \ + "I am not satisified", "I can not feed from this subject", \ + "I do not feel nourished", "This subject is not food")]!" if(!silent) visible_message("[src] has let go of [buckled]!", \ "I stopped feeding.")