From affcbbde5f177b079e175965b7ea89db704def4e Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Sun, 1 Mar 2020 15:14:15 -0500 Subject: [PATCH] AI Tweak bugfixes --- code/modules/ai/aI_holder_subtypes/slime_xenobio_ai.dm | 2 +- code/modules/ai/ai_holder.dm | 4 ++++ code/modules/ai/ai_holder_targeting.dm | 2 +- .../living/simple_mob/subtypes/animal/giant_spider/nurse.dm | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/code/modules/ai/aI_holder_subtypes/slime_xenobio_ai.dm b/code/modules/ai/aI_holder_subtypes/slime_xenobio_ai.dm index 540a9e5397..019d806698 100644 --- a/code/modules/ai/aI_holder_subtypes/slime_xenobio_ai.dm +++ b/code/modules/ai/aI_holder_subtypes/slime_xenobio_ai.dm @@ -167,7 +167,7 @@ return 1 // Melee (eat) the target if dead/dying, don't shoot it. return ..() -/datum/ai_holder/simple_mob/xenobio_slime/can_attack(atom/movable/AM) +/datum/ai_holder/simple_mob/xenobio_slime/can_attack(atom/movable/AM, var/vision_required = TRUE) . = ..() if(.) // Do some additional checks because we have Special Code(tm). if(ishuman(AM)) diff --git a/code/modules/ai/ai_holder.dm b/code/modules/ai/ai_holder.dm index e22abf8ee0..c1638d207a 100644 --- a/code/modules/ai/ai_holder.dm +++ b/code/modules/ai/ai_holder.dm @@ -224,6 +224,10 @@ /datum/ai_holder/proc/handle_stance_strategical() ai_log("++++++++++ Slow Process Beginning ++++++++++", AI_LOG_TRACE) ai_log("handle_stance_strategical() : Called.", AI_LOG_TRACE) + + //We got left around for some reason. Goodbye cruel world. + if(!holder) + qdel(src) ai_log("handle_stance_strategical() : LTT=[lose_target_time]", AI_LOG_TRACE) if(lose_target_time && (lose_target_time + lose_target_timeout < world.time)) // We were tracking an enemy but they are gone. diff --git a/code/modules/ai/ai_holder_targeting.dm b/code/modules/ai/ai_holder_targeting.dm index 40f2c5752f..f1f5ff4a3a 100644 --- a/code/modules/ai/ai_holder_targeting.dm +++ b/code/modules/ai/ai_holder_targeting.dm @@ -115,7 +115,7 @@ sorted_targets += A return sorted_targets -/datum/ai_holder/proc/can_attack(atom/movable/the_target, vision_required = TRUE) +/datum/ai_holder/proc/can_attack(atom/movable/the_target, var/vision_required = TRUE) if(!can_see_target(the_target) && vision_required) return FALSE diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/nurse.dm b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/nurse.dm index 84f3d533cf..51b07954a6 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/nurse.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/nurse.dm @@ -255,7 +255,7 @@ return ..(targets) -/datum/ai_holder/simple_mob/melee/nurse_spider/can_attack(atom/movable/the_target) +/datum/ai_holder/simple_mob/melee/nurse_spider/can_attack(atom/movable/the_target, var/vision_required = TRUE) . = ..() if(!.) // Parent returned FALSE. if(istype(the_target, /obj))