From 0369dd0918e2314e599cc035fbe80ce64cba6dc0 Mon Sep 17 00:00:00 2001
From: Moose1002 <33578674+Moose1002@users.noreply.github.com>
Date: Sat, 24 Apr 2021 17:07:34 -0400
Subject: [PATCH] Fixed an issue where dogs would respond to commands if dead
(#58629)
---
code/datums/ai/dog/dog_controller.dm | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/code/datums/ai/dog/dog_controller.dm b/code/datums/ai/dog/dog_controller.dm
index f60cf980000..8e3a81dae7f 100644
--- a/code/datums/ai/dog/dog_controller.dm
+++ b/code/datums/ai/dog/dog_controller.dm
@@ -192,7 +192,9 @@
if(carried_item)
examine_text += "[pawn.p_they(TRUE)] [pawn.p_are()] carrying [carried_item.get_examine_string(user)] in [pawn.p_their()] mouth."
if(blackboard[BB_DOG_FRIENDS][user])
- examine_text += "[pawn.p_they(TRUE)] seem[pawn.p_s()] happy to see you!"
+ var/mob/living/living_pawn = pawn
+ if(!IS_DEAD_OR_INCAP(living_pawn))
+ examine_text += "[pawn.p_they(TRUE)] seem[pawn.p_s()] happy to see you!"
/// If we died, drop anything we were carrying
/datum/ai_controller/dog/proc/on_death(mob/living/ol_yeller)
@@ -250,6 +252,10 @@
if(!COOLDOWN_FINISHED(src, command_cooldown))
return
+ var/mob/living/living_pawn = pawn
+ if(IS_DEAD_OR_INCAP(living_pawn))
+ return
+
var/spoken_text = speech_args[SPEECH_MESSAGE] // probably should check for full words
var/command
if(findtext(spoken_text, "heel") || findtext(spoken_text, "sit") || findtext(spoken_text, "stay"))
@@ -301,6 +307,9 @@
return
if(!can_see(pawn, pointing_friend, length=AI_DOG_VISION_RANGE) || !can_see(pawn, pointed_movable, length=AI_DOG_VISION_RANGE))
return
+ var/mob/living/living_pawn = pawn
+ if(IS_DEAD_OR_INCAP(living_pawn))
+ return
COOLDOWN_START(src, command_cooldown, AI_DOG_COMMAND_COOLDOWN)