From e83972707652f417f6d08e183ade699cba0f7ba6 Mon Sep 17 00:00:00 2001 From: FatBoy-DOTC Date: Fri, 28 Mar 2025 07:08:30 -0500 Subject: [PATCH] instate new mob AI --- .../mobileAI/MobHandlers/MobHandler.java | 7 ---- src/engine/mobileAI/Threads/MobAIThread.java | 35 ++++++++++++++++--- 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/src/engine/mobileAI/MobHandlers/MobHandler.java b/src/engine/mobileAI/MobHandlers/MobHandler.java index 9032a30c..ceb18638 100644 --- a/src/engine/mobileAI/MobHandlers/MobHandler.java +++ b/src/engine/mobileAI/MobHandlers/MobHandler.java @@ -1,14 +1,7 @@ package engine.mobileAI.MobHandlers; -import engine.Enum; -import engine.InterestManagement.InterestManager; import engine.InterestManagement.WorldGrid; -import engine.gameManager.ChatManager; import engine.gameManager.PowersManager; -import engine.gameManager.ZoneManager; -import engine.math.Vector3f; -import engine.math.Vector3fImmutable; -import engine.mobileAI.MobAI; import engine.mobileAI.Threads.MobAIThread; import engine.mobileAI.utilities.CombatUtilities; import engine.mobileAI.utilities.MovementUtilities; diff --git a/src/engine/mobileAI/Threads/MobAIThread.java b/src/engine/mobileAI/Threads/MobAIThread.java index 8a7d8a8a..700697cb 100644 --- a/src/engine/mobileAI/Threads/MobAIThread.java +++ b/src/engine/mobileAI/Threads/MobAIThread.java @@ -1,11 +1,10 @@ package engine.mobileAI.Threads; import engine.gameManager.ConfigManager; -import engine.mobileAI.MobAI; import engine.gameManager.ZoneManager; +import engine.mobileAI.SuperSimpleMobAI; import engine.objects.Mob; import engine.objects.Zone; -import engine.server.MBServerStatics; import org.pmw.tinylog.Logger; public class MobAIThread implements Runnable{ @@ -28,12 +27,40 @@ public class MobAIThread implements Runnable{ AI_BASE_AGGRO_RANGE = (int)(60 * Float.parseFloat(ConfigManager.MB_AI_AGGRO_RANGE.getValue())); while (true) { for (Zone zone : ZoneManager.getAllZones()) { - if (zone != null && zone.zoneMobSet != null) { + if (zone != null) { synchronized (zone.zoneMobSet) { for (Mob mob : zone.zoneMobSet) { try { if (mob != null) { - MobAI.DetermineAction(mob); + //MobAI.DetermineAction(mob); + if(mob.isSiege() || mob.isPet() || mob.isPlayerGuard()){ + SuperSimpleMobAI.run(mob); + return; + } + boolean override; + switch (mob.BehaviourType) { + case GuardCaptain: + case GuardMinion: + case GuardWallArcher: + case Pet1: + case HamletGuard: + override = false; + break; + default: + override = true; + break; + } + + if(mob.isSiege()) + override = false; + + if(mob.isPet()) + override = false; + + if(override){ + SuperSimpleMobAI.run(mob); + return; + } } } catch (Exception e) { Logger.error("Error processing Mob [Name: {}, UUID: {}]", mob.getName(), mob.getObjectUUID(), e);