From 5de932b0955a4ebbd391ae75065b1ef7af4adc5f Mon Sep 17 00:00:00 2001 From: MagicBot Date: Sat, 4 May 2024 12:41:45 -0400 Subject: [PATCH] Comment updated. --- src/engine/mobileAI/MobAI.java | 89 +++++++++++++++------------------- 1 file changed, 40 insertions(+), 49 deletions(-) diff --git a/src/engine/mobileAI/MobAI.java b/src/engine/mobileAI/MobAI.java index a9989fdb..46f8f928 100644 --- a/src/engine/mobileAI/MobAI.java +++ b/src/engine/mobileAI/MobAI.java @@ -43,6 +43,7 @@ public class MobAI { // Controls all mob actions from regular mobs to pets and guards. // Initiates in the "DetermineAction" method and branches from there // + // CombatManager.class implements shared combat routines for all avatars. private static void attackTarget(Mob mob, AbstractWorldObject target) { @@ -56,8 +57,7 @@ public class MobAI { return; } - if (target.getObjectType().equals(mbEnums.GameObjectType.PlayerCharacter) && - !mob.canSee((AbstractCharacter) target)) { + if (target.getObjectType().equals(mbEnums.GameObjectType.PlayerCharacter) && !mob.canSee((AbstractCharacter) target)) { mob.setCombatTarget(null); return; } @@ -125,7 +125,7 @@ public class MobAI { } if (target.getPet() != null) - if (target.getPet().getCombatTarget() == null && target.getPet().assist == true) + if (target.getPet().getCombatTarget() == null && target.getPet().assist) target.getPet().setCombatTarget(mob); } catch (Exception e) { @@ -177,7 +177,6 @@ public class MobAI { //no weapons, default mob attack speed 3 seconds. - CombatManager.combatCycle(mob, target); } catch (Exception e) { @@ -194,10 +193,9 @@ public class MobAI { // early exit while waiting to patrol again. // Minions are force marched if captain is alive - boolean forced = mob.agentType.equals(mbEnums.AIAgentType.GUARDMINION) && - mob.guardCaptain.isAlive(); + boolean forced = mob.agentType.equals(mbEnums.AIAgentType.GUARDMINION) && mob.guardCaptain.isAlive(); - if (mob.stopPatrolTime + (patrolDelay * 1000) > System.currentTimeMillis()) + if (mob.stopPatrolTime + (patrolDelay * 1000L) > System.currentTimeMillis()) if (!forced) return; @@ -258,7 +256,7 @@ public class MobAI { if (mob == null) return false; - if (mob.isPlayerGuard() == true) { + if (mob.isPlayerGuard()) { if (mob.agentType.equals(mbEnums.AIAgentType.GUARDWALLARCHER)) return false; //wall archers don't cast @@ -269,14 +267,13 @@ public class MobAI { // exception allowing werewolf and werebear guard captains to cast - if (mbEnums.MinionType.ContractToMinionMap.get(contractID).isMage() == false && contractID != 980103 && contractID != 980104) + if (!mbEnums.MinionType.ContractToMinionMap.get(contractID).isMage() && contractID != 980103 && contractID != 980104) return false; } // Mobile has no powers defined in mobbase or contract.. - if (PowersManager.getPowersForRune(mob.getMobBaseID()).isEmpty() && - PowersManager.getPowersForRune(contractID).isEmpty()) + if (PowersManager.getPowersForRune(mob.getMobBaseID()).isEmpty() && PowersManager.getPowersForRune(contractID).isEmpty()) return false; if (mob.nextCastTime == 0) @@ -376,7 +373,7 @@ public class MobAI { msg.setUnknown04(2); PowersManager.finishUseMobPower(msg, mob, 0, 0); - long randomCooldown = (long) ((ThreadLocalRandom.current().nextInt(10, 15) * 1000) * MobAIThread.AI_CAST_FREQUENCY); + long randomCooldown = (long) ((ThreadLocalRandom.current().nextInt(10, 15) * 1000L) * MobAIThread.AI_CAST_FREQUENCY); mob.nextCastTime = System.currentTimeMillis() + randomCooldown; return true; @@ -460,7 +457,7 @@ public class MobAI { if (mob == null) return; - if (mob.getTimestamps().containsKey("lastExecution") == false) + if (!mob.getTimestamps().containsKey("lastExecution")) mob.getTimestamps().put("lastExecution", System.currentTimeMillis()); if (System.currentTimeMillis() < mob.getTimeStamp("lastExecution")) @@ -480,11 +477,11 @@ public class MobAI { if (mob.despawned && mob.isPlayerGuard()) { if (mob.agentType.equals(mbEnums.AIAgentType.GUARDMINION)) { - if (mob.guardCaptain.isAlive() == false || ((Mob) mob.guardCaptain).despawned == true) { + if (!mob.guardCaptain.isAlive() || ((Mob) mob.guardCaptain).despawned) { //minions don't respawn while guard captain is dead - if (mob.isAlive() == false) { + if (!mob.isAlive()) { mob.deathTime = System.currentTimeMillis(); return; } @@ -525,12 +522,12 @@ public class MobAI { } - if (mob.agentType.equals(mbEnums.AIAgentType.PET) == false) + if (!mob.agentType.equals(mbEnums.AIAgentType.PET)) checkToSendMobHome(mob); if (mob.getCombatTarget() != null) { - if (mob.getCombatTarget().isAlive() == false) { + if (!mob.getCombatTarget().isAlive()) { mob.setCombatTarget(null); return; } @@ -539,12 +536,12 @@ public class MobAI { PlayerCharacter target = (PlayerCharacter) mob.getCombatTarget(); - if (mob.playerAgroMap.containsKey(target.getObjectUUID()) == false) { + if (!mob.playerAgroMap.containsKey(target.getObjectUUID())) { mob.setCombatTarget(null); return; } - if (mob.canSee((PlayerCharacter) mob.getCombatTarget()) == false) { + if (!mob.canSee((PlayerCharacter) mob.getCombatTarget())) { mob.setCombatTarget(null); return; } @@ -611,12 +608,12 @@ public class MobAI { // No aggro for this race type - if (aiAgent.notEnemy.size() > 0 && aiAgent.notEnemy.contains(loadedPlayer.race.getRaceType().getMonsterType()) == true) + if (aiAgent.notEnemy.size() > 0 && aiAgent.notEnemy.contains(loadedPlayer.race.getRaceType().getMonsterType())) continue; //mob has enemies and this player race is not it - if (aiAgent.enemy.size() > 0 && aiAgent.enemy.contains(loadedPlayer.race.getRaceType().getMonsterType()) == false) + if (aiAgent.enemy.size() > 0 && !aiAgent.enemy.contains(loadedPlayer.race.getRaceType().getMonsterType())) continue; if (MovementUtilities.inRangeToAggro(aiAgent, loadedPlayer)) { @@ -690,9 +687,9 @@ public class MobAI { // Minions only patrol on their own if captain is dead. - if (mob.agentType.equals(mbEnums.AIAgentType.GUARDMINION) == false) + if (!mob.agentType.equals(mbEnums.AIAgentType.GUARDMINION)) patrol(mob); - else if (mob.guardCaptain.isAlive() == false) + else if (!mob.guardCaptain.isAlive()) patrol(mob); } else mob.stopPatrolTime = System.currentTimeMillis(); @@ -724,7 +721,6 @@ public class MobAI { if (System.currentTimeMillis() > aiAgent.deathTime + MBServerStatics.DESPAWN_TIMER_WITH_LOOT) { aiAgent.despawn(); aiAgent.deathTime = System.currentTimeMillis(); - return; } //No items in inventory. } else { @@ -733,14 +729,12 @@ public class MobAI { if (System.currentTimeMillis() > aiAgent.deathTime + MBServerStatics.DESPAWN_TIMER_ONCE_LOOTED) { aiAgent.despawn(); aiAgent.deathTime = System.currentTimeMillis(); - return; } //Mob never had Loot. } else { if (System.currentTimeMillis() > aiAgent.deathTime + MBServerStatics.DESPAWN_TIMER) { aiAgent.despawn(); aiAgent.deathTime = System.currentTimeMillis(); - return; } } } @@ -758,14 +752,13 @@ public class MobAI { //checks if mob can attack based on attack timer and range - if (mob.isAlive() == false) + if (!mob.isAlive()) return; if (mob.getCombatTarget() == null) return; - if (mob.getCombatTarget().getObjectType().equals(mbEnums.GameObjectType.PlayerCharacter) && MovementUtilities.inRangeDropAggro(mob, (PlayerCharacter) mob.getCombatTarget()) == false && - mob.agentType.equals(mbEnums.AIAgentType.PET) == false) { + if (mob.getCombatTarget().getObjectType().equals(mbEnums.GameObjectType.PlayerCharacter) && !MovementUtilities.inRangeDropAggro(mob, (PlayerCharacter) mob.getCombatTarget()) && !mob.agentType.equals(mbEnums.AIAgentType.PET)) { mob.setCombatTarget(null); return; @@ -788,7 +781,7 @@ public class MobAI { City current = ZoneManager.getCityAtLocation(mob.getLoc()); - if (current == null || current.equals(mob.getGuild().getOwnedCity()) == false) { + if (current == null || !current.equals(mob.getGuild().getOwnedCity())) { PowersBase recall = PowersManager.getPowerByToken(-1994153779); PowersManager.useMobPower(mob, mob, recall, 40); @@ -806,7 +799,7 @@ public class MobAI { } } } - } else if (MovementUtilities.inRangeOfBindLocation(mob) == false) { + } else if (!MovementUtilities.inRangeOfBindLocation(mob)) { PowersBase recall = PowersManager.getPowerByToken(-1994153779); PowersManager.useMobPower(mob, mob, recall, 40); @@ -824,7 +817,7 @@ public class MobAI { try { - if (mob.getTimestamps().containsKey("lastChase") == false) + if (!mob.getTimestamps().containsKey("lastChase")) mob.getTimestamps().put("lastChase", System.currentTimeMillis()); else if (System.currentTimeMillis() < mob.getTimestamps().get("lastChase").longValue() + (750 + ThreadLocalRandom.current().nextInt(0, 500))) return; @@ -874,7 +867,7 @@ public class MobAI { Mob aggroMob = (Mob) awoMob; //don't attack other guards - if (aggroMob.isGuard() == true) + if (aggroMob.isGuard()) continue; //don't attack pets @@ -925,7 +918,7 @@ public class MobAI { try { - if (mob.guardCaptain == null && mob.isNecroPet() == false && mob.isSiege() == false) + if (mob.guardCaptain == null && !mob.isNecroPet() && !mob.isSiege()) if (ZoneManager.seaFloor.zoneMobSet.contains(mob)) mob.killCharacter("no owner"); @@ -936,7 +929,7 @@ public class MobAI { //recover health - if (mob.getTimestamps().containsKey("HEALTHRECOVERED") == false) + if (!mob.getTimestamps().containsKey("HEALTHRECOVERED")) mob.getTimestamps().put("HEALTHRECOVERED", System.currentTimeMillis()); if (mob.isSit() && mob.getTimeStamp("HEALTHRECOVERED") < System.currentTimeMillis() + 3000) @@ -961,7 +954,7 @@ public class MobAI { if (mob.getCombatTarget() == null) safeGuardAggro(mob); - else if (mob.getCombatTarget().isAlive() == false) + else if (!mob.getCombatTarget().isAlive()) safeGuardAggro(mob); checkForAttack(mob); @@ -976,7 +969,7 @@ public class MobAI { //check for players that can be aggroed if mob is agressive and has no target - if (mob.getCombatTarget() != null && mob.playerAgroMap.containsKey(mob.getCombatTarget().getObjectUUID()) == false) + if (mob.getCombatTarget() != null && !mob.playerAgroMap.containsKey(mob.getCombatTarget().getObjectUUID())) mob.setCombatTarget(null); if (mob.behaviourType.isAgressive) { @@ -1021,9 +1014,7 @@ public class MobAI { // Defer to captain if possible for current target - if (mob.agentType.equals(mbEnums.AIAgentType.GUARDMINION) && - mob.guardCaptain.isAlive() - && mob.guardCaptain.combatTarget != null) { + if (mob.agentType.equals(mbEnums.AIAgentType.GUARDMINION) && mob.guardCaptain.isAlive() && mob.guardCaptain.combatTarget != null) { mob.setCombatTarget(mob.guardCaptain.combatTarget); return; } @@ -1056,7 +1047,7 @@ public class MobAI { // No aggro for this player - if (guardCanAggro(mob, loadedPlayer) == false) + if (!guardCanAggro(mob, loadedPlayer)) continue; if (MovementUtilities.inRangeToAggro(mob, loadedPlayer) && mob.getCombatTarget() == null) { @@ -1090,12 +1081,12 @@ public class MobAI { try { - if (ConfigManager.MB_RULESET.getValue().equals("LORE") && target.guild.equals(Guild.getErrantGuild()) == false) { - if(mob.guild.charter.equals(target.guild.charter) == true) + if (ConfigManager.MB_RULESET.getValue().equals("LORE") && !target.guild.equals(Guild.getErrantGuild())) { + if (mob.guild.charter.equals(target.guild.charter)) return false; } - if (mob.guardedCity.cityOutlaws.contains(target.getObjectUUID()) == true) + if (mob.guardedCity.cityOutlaws.contains(target.getObjectUUID())) return true; if (mob.getGuild().getNation().equals(target.getGuild().getNation())) @@ -1157,7 +1148,7 @@ public class MobAI { //early exit for a mob who is already moving to a patrol point //while mob moving, update lastPatrolTime so that when they stop moving the 10 second timer can begin - if (mob.isMoving() == true) { + if (mob.isMoving()) { mob.stopPatrolTime = System.currentTimeMillis(); return; } @@ -1185,7 +1176,7 @@ public class MobAI { //make sure mob is out of combat stance - if (minion.despawned == false) { + if (!minion.despawned) { if (MovementUtilities.canMove(minion)) { Vector3f minionOffset = mbEnums.FormationType.getOffset(2, mob.minions.indexOf(minionUUID) + 3); minion.updateLocation(); @@ -1218,9 +1209,9 @@ public class MobAI { if (potentialTarget.equals(mob.getCombatTarget())) continue; - if (ConfigManager.MB_RULESET.getValue().equals("LORE") && potentialTarget.guild.equals(Guild.getErrantGuild()) == false) { - if(mob.guild.charter.equals(potentialTarget.guild.charter) == true) - continue; + if (ConfigManager.MB_RULESET.getValue().equals("LORE") && !potentialTarget.guild.equals(Guild.getErrantGuild())) { + if (mob.guild.charter.equals(potentialTarget.guild.charter)) + continue; } if (potentialTarget != null && mob.playerAgroMap.get(potentialTarget.getObjectUUID()).floatValue() > CurrentHateValue && MovementUtilities.inRangeToAggro(mob, potentialTarget)) {