From d76403a0c83d0376e99ae0b32988b3bc8a6f2ee1 Mon Sep 17 00:00:00 2001
From: FatBoy-DOTC <justin.chucksinsulating@gmail.com>
Date: Mon, 10 Feb 2025 19:34:26 -0600
Subject: [PATCH] Ai Players

---
 src/engine/AiPlayers/AiPlayer.java        | 6 ++++--
 src/engine/AiPlayers/AiPlayerManager.java | 7 +++++--
 src/engine/workthreads/UpdateThread.java  | 7 +++++++
 3 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/src/engine/AiPlayers/AiPlayer.java b/src/engine/AiPlayers/AiPlayer.java
index 0cd6fc0f..0d1ddc3b 100644
--- a/src/engine/AiPlayers/AiPlayer.java
+++ b/src/engine/AiPlayers/AiPlayer.java
@@ -60,9 +60,11 @@ public class AiPlayer {
     }
 
     public void runAfterLoad(){
-        WorldGrid.addObject(this.emulated,this.emulated.bindLoc.x,this.emulated.bindLoc.z);
         City hamlet = AiPlayerManager.getRandomHamlet();
-        this.emulated.teleport(Vector3fImmutable.getRandomPointOnCircle(hamlet.getTOL().loc,30));
+        Vector3fImmutable binder = Vector3fImmutable.getRandomPointOnCircle(hamlet.getTOL().loc,30);
+        this.emulated.bindLoc = binder;
+        WorldGrid.addObject(this.emulated,binder.x,binder.z);
+        this.emulated.setLoc(binder);
         WorldGrid.updateObject(this.emulated);
         this.emulated.removeEffectBySource(Enum.EffectSourceType.Invisibility,40,true);
         this.emulated.removeEffectBySource(Enum.EffectSourceType.Invulnerability,40,true);
diff --git a/src/engine/AiPlayers/AiPlayerManager.java b/src/engine/AiPlayers/AiPlayerManager.java
index e2098951..e2b62e1b 100644
--- a/src/engine/AiPlayers/AiPlayerManager.java
+++ b/src/engine/AiPlayers/AiPlayerManager.java
@@ -36,9 +36,12 @@ public class AiPlayerManager {
         while(AiPlayers.size() < totalPlayers){
             try {
                 AiPlayer aiPlayer = new AiPlayer();
-                if (aiPlayer != null)
-                    if (aiPlayer.emulated != null)
+                if (aiPlayer != null) {
+                    if (aiPlayer.emulated != null) {
                         AiPlayers.add(aiPlayer);
+                        aiPlayer.runAfterLoad();
+                    }
+                }
             }catch(Exception e){
                 Logger.error(e);
             }
diff --git a/src/engine/workthreads/UpdateThread.java b/src/engine/workthreads/UpdateThread.java
index 27d5f4b2..d180749a 100644
--- a/src/engine/workthreads/UpdateThread.java
+++ b/src/engine/workthreads/UpdateThread.java
@@ -9,6 +9,8 @@
 
 package engine.workthreads;
 
+import engine.AiPlayers.AiPlayer;
+import engine.AiPlayers.AiPlayerManager;
 import engine.Enum;
 import engine.gameManager.SessionManager;
 import engine.gameManager.SimulationManager;
@@ -35,6 +37,11 @@ public class UpdateThread implements Runnable {
                     player.update(true);
                 }
             }
+            for(AiPlayer player : AiPlayerManager.AiPlayers){
+                if (player != null) {
+                    player.update();
+                }
+            }
         } catch (Exception e) {
             Logger.error("UPDATE ERROR",e);
         }