instate new mob AI

This commit is contained in:
2025-03-28 07:08:30 -05:00
parent d60ef86a87
commit e839727076
2 changed files with 31 additions and 11 deletions
@@ -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;
+31 -4
View File
@@ -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);