From caa0aa5172a8ba0f65a2cc61306beba07b4d1c1a Mon Sep 17 00:00:00 2001
From: FatBoy-DOTC <justin.chucksinsulating@gmail.com>
Date: Sat, 1 Feb 2025 16:15:38 -0600
Subject: [PATCH] AI cast frequency

---
 src/engine/mobileAI/MobAI.java | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/engine/mobileAI/MobAI.java b/src/engine/mobileAI/MobAI.java
index 8cd12f64..a5036aae 100644
--- a/src/engine/mobileAI/MobAI.java
+++ b/src/engine/mobileAI/MobAI.java
@@ -320,6 +320,14 @@ public class MobAI {
             if (mob == null)
                 return false;
 
+            if (mob.nextCastTime == 0)
+                mob.nextCastTime = System.currentTimeMillis() - 1000L;
+
+            if(mob.nextCastTime > System.currentTimeMillis())
+                return false;
+
+            mob.nextCastTime = (long) (System.currentTimeMillis() + Float.parseFloat(ConfigManager.MB_AI_CAST_FREQUENCY.getValue()) * 1000L);
+
             if(mob.isPlayerGuard){
 
                 int contractID = 0;
@@ -340,8 +348,6 @@ public class MobAI {
                 mob.setCombatTarget(null);
                 return false;
             }
-            if (mob.nextCastTime == 0)
-                mob.nextCastTime = System.currentTimeMillis();
 
             return mob.nextCastTime <= System.currentTimeMillis();
 
@@ -425,7 +431,6 @@ public class MobAI {
                 PowersManager.finishUseMobPower(msg, mob, 0, 0);
                 long randomCooldown = (long)((ThreadLocalRandom.current().nextInt(10,15) * 1000) * MobAIThread.AI_CAST_FREQUENCY);
 
-                mob.nextCastTime = System.currentTimeMillis() + randomCooldown;
                 return true;
             }
         } catch (Exception e) {
@@ -548,7 +553,6 @@ public class MobAI {
                 PowersManager.finishUseMobPower(msg, mob, 0, 0);
 
                 long randomCooldown = (long)((ThreadLocalRandom.current().nextInt(10,15) * 1000) * MobAIThread.AI_CAST_FREQUENCY);
-                mob.nextCastTime = System.currentTimeMillis() + randomCooldown;
                 return true;
             }
         } catch (Exception e) {