diff --git a/code/modules/mob/living/simple_animal/slime/slime_life.dm b/code/modules/mob/living/simple_animal/slime/slime_life.dm index b8d659c6b40c1..9248da00756bd 100644 --- a/code/modules/mob/living/simple_animal/slime/slime_life.dm +++ b/code/modules/mob/living/simple_animal/slime/slime_life.dm @@ -155,6 +155,7 @@ if(prob(30) && stat == CONSCIOUS) adjustBruteLoss(-1) +// This is where slime feeding is handled. /mob/living/simple_animal/slime/proc/handle_feeding() if(!ismob(buckled)) return @@ -174,10 +175,20 @@ Feedstop() return +// This is where damage dealt by slime feeding is handled. if(iscarbon(M)) var/mob/living/carbon/C = M - C.adjustCloneLoss(rand(2, 4)) - C.adjustToxLoss(rand(1, 2)) + var/mob/living/carbon/human/D = M // I don't want to accidentally break feeding on Xenos or something. + if(C.dna) // Ensures there is DNA for the Synthetic check + if(!(C.dna.species.reagent_tag & PROCESS_ORG)) + D.adjustBrainLoss(rand(2, 4)) // The IPC equivalent of Clone damage would be Brain damage. + D.adjustFireLoss(rand(1, 2), robotic = TRUE) // Poison can make you numb and feel on fire, also IPCs can't take Toxin damage. + else // Ensure slimes deal organic type damage to organics. + C.adjustCloneLoss(rand(2, 4)) + C.adjustToxLoss(rand(1, 2)) + else + C.adjustCloneLoss(rand(2, 4)) + C.adjustToxLoss(rand(1, 2)) if(prob(10) && C.client) to_chat(C, "[pick("You can feel your body becoming weak!", \