cast chance and cooldown modification for mobs

This commit is contained in:
2023-07-15 08:35:00 -05:00
parent eb9a214ba3
commit 38317a4ee5
+7 -1
View File
@@ -234,8 +234,13 @@ public class MobileFSM {
mob.setCombatTarget(null); mob.setCombatTarget(null);
return false; return false;
} }
int castRoll = ThreadLocalRandom.current().nextInt(101);
if(castRoll <= MobileFSMManager.AI_POWER_DIVISOR){
return false;
}
if (mob.nextCastTime == 0) if (mob.nextCastTime == 0)
mob.nextCastTime = System.currentTimeMillis(); mob.nextCastTime = System.currentTimeMillis();
return mob.nextCastTime <= System.currentTimeMillis(); return mob.nextCastTime <= System.currentTimeMillis();
} }
@@ -296,7 +301,8 @@ public class MobileFSM {
msg.setUnknown04(2); msg.setUnknown04(2);
PowersManager.finishUseMobPower(msg, mob, 0, 0); PowersManager.finishUseMobPower(msg, mob, 0, 0);
// Default minimum seconds between cast = 10 // Default minimum seconds between cast = 10
mob.nextCastTime = System.currentTimeMillis() + mobPower.getCooldown() + (MobileFSMManager.AI_POWER_DIVISOR * 1000); float randomCooldown = (ThreadLocalRandom.current().nextInt(150) + 100) * 0.01f;
mob.nextCastTime = System.currentTimeMillis() + (long)((mobPower.getCooldown() + (MobileFSMManager.AI_POWER_DIVISOR * 1000)) * randomCooldown);
return true; return true;
} }
return false; return false;