From 9b5d32b70ba8f5e32fd8535251a8bc6f4fe0ca93 Mon Sep 17 00:00:00 2001 From: FatBoy-DOTC Date: Sun, 16 Feb 2025 17:32:24 -0600 Subject: [PATCH] mob AI aggro --- src/engine/mobileAI/MobAI.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/engine/mobileAI/MobAI.java b/src/engine/mobileAI/MobAI.java index b77841a9..2b8fa877 100644 --- a/src/engine/mobileAI/MobAI.java +++ b/src/engine/mobileAI/MobAI.java @@ -109,7 +109,6 @@ public class MobAI { if(target.getPet() != null && target.getPet().isAlive()){ mob.setCombatTarget(target.getPet()); - return; } if (mob.BehaviourType.callsForHelp) @@ -738,6 +737,10 @@ public class MobAI { try { + //do not switch target if you already have one, dropping out of range is handled elsewhere + if(aiAgent.combatTarget != null) + return; + //looks for and sets mobs combatTarget if (!aiAgent.isAlive()) @@ -1201,8 +1204,8 @@ public class MobAI { try { //check for players that can be aggroed if mob is agressive and has no target - - if (mob.getCombatTarget() != null && mob.playerAgroMap.containsKey(mob.getCombatTarget().getObjectUUID()) == false) + Enum.GameObjectType targetType = mob.getCombatTarget().getObjectType(); + if (mob.getCombatTarget() != null && mob.playerAgroMap.containsKey(mob.getCombatTarget().getObjectUUID()) == false && !mob.getCombatTarget().getObjectType().equals(Enum.GameObjectType.Mob)) mob.setCombatTarget(null); //if (mob.BehaviourType.isAgressive) {