From e03603292a7f579a7a1220030ee666cbfbe3617c Mon Sep 17 00:00:00 2001 From: xDanilcusx Date: Sat, 28 Oct 2023 23:30:02 +0300 Subject: [PATCH] do not bait while current target is in sight and home locating tweaks --- .../carbon/xenomorph/ai/movement/lurking.dm | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/code/modules/mob/living/carbon/xenomorph/ai/movement/lurking.dm b/code/modules/mob/living/carbon/xenomorph/ai/movement/lurking.dm index 1320b2b9b9..beb832e89a 100644 --- a/code/modules/mob/living/carbon/xenomorph/ai/movement/lurking.dm +++ b/code/modules/mob/living/carbon/xenomorph/ai/movement/lurking.dm @@ -78,13 +78,17 @@ preferred = TRUE break - if(idle_xeno.current_target) + var/our_target = idle_xeno.current_target + if(our_target) var/potential_home_dir = get_dir(idle_xeno, potential_home) - var/current_target_dir = get_dir(idle_xeno, idle_xeno.current_target) + var/current_target_dir = get_dir(idle_xeno, our_target) if(current_target_dir == potential_home_dir || current_target_dir == turn(potential_home_dir, 45) || current_target_dir == turn(potential_home_dir, -45)) continue + if(get_dist(potential_home, our_target) > stalking_distance) + continue + var/xeno_to_potential_home_distance = get_dist(idle_xeno, potential_home) if(xeno_to_potential_home_distance > shortest_distance) continue @@ -129,7 +133,12 @@ if(!annoyed_xeno.current_target || !ai_lurking) return - if(get_dist(annoyed_xeno, annoyed_xeno.current_target) > 10) + var/target_distance = get_dist(annoyed_xeno, annoyed_xeno.current_target) + + if(target_distance < world.view) + return + + if(target_distance > 10) annoyance = 0 total_baits = 0 return @@ -166,11 +175,11 @@ baiting_xeno.say(pick(LURKER_BAIT_TAUNTS)) if("Interact") if(!interact_random(baiting_xeno)) - try_bait(no_interact = TRUE) - return + return try_bait(no_interact = TRUE) total_baits++ annoyance = 0 + return bait #undef LURKER_BAIT_TYPES #undef LURKER_BAIT_EMOTES