diff --git a/code/datums/abilities/flock/flockmind.dm b/code/datums/abilities/flock/flockmind.dm index 12c730e69c..d09d6f5f6f 100644 --- a/code/datums/abilities/flock/flockmind.dm +++ b/code/datums/abilities/flock/flockmind.dm @@ -202,6 +202,8 @@ if (target.get_health_percentage() >= 1) boutput(holder.owner, "[target.real_name] has no damage!") return TRUE + if (isdead(target)) + return TRUE playsound(holder.owner, "sound/misc/flockmind/flockmind_cast.ogg", 80, 1) boutput(holder.owner, "You focus the flock's efforts on fixing [target.real_name]") diff --git a/code/mob/living/critter/flock/flockdrone.dm b/code/mob/living/critter/flock/flockdrone.dm index 84a7308fc3..970a140b95 100644 --- a/code/mob/living/critter/flock/flockdrone.dm +++ b/code/mob/living/critter/flock/flockdrone.dm @@ -498,8 +498,10 @@ // also maybe we've just had environmental damage, who knows /mob/living/critter/flock/drone/TakeDamage(zone, brute, burn, tox, damage_type, disallow_limb_loss) ..() - var/prev_damaged = src.damaged src.check_health() + if (brute <= 0 && burn <= 0 && tox <= 0) + return + var/prev_damaged = src.damaged if(!isdead(src) && src.is_npc) // if we've been damaged a new stage, call it out if(prev_damaged != src.damaged && src.damaged > 0) @@ -843,6 +845,8 @@ if(F.get_health_percentage() >= 1.0) boutput(user, "They don't need to be repaired, they're in perfect condition.") return + if (isdead(F)) + return if(user.resources < 10) boutput(user, "Not enough resources to repair (you need 10).") else diff --git a/code/mob/living/critter/flockcritter_parent.dm b/code/mob/living/critter/flockcritter_parent.dm index b69170d127..c7c3f29e02 100644 --- a/code/mob/living/critter/flockcritter_parent.dm +++ b/code/mob/living/critter/flockcritter_parent.dm @@ -391,6 +391,8 @@ D.icon_state = "door1"//make it not look broke else T.HealDamage("All", T.health_brute / 3, T.health_burn / 3) + if (T.is_npc) + T.ai.interrupt() F.pay_resources(10) /////////////////////////////////////////////////////////////////////////////////