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) {