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.")