diff --git a/src/engine/mobileAI/MobAI.java b/src/engine/mobileAI/MobAI.java index 46f8f928..ef150c98 100644 --- a/src/engine/mobileAI/MobAI.java +++ b/src/engine/mobileAI/MobAI.java @@ -582,9 +582,9 @@ public class MobAI { ConcurrentHashMap loadedPlayers = aiAgent.playerAgroMap; - for (Entry playerEntry : loadedPlayers.entrySet()) { + for (Entry playerEntry : loadedPlayers.entrySet()) { - int playerID = (int) playerEntry.getKey(); + int playerID = playerEntry.getKey(); PlayerCharacter loadedPlayer = PlayerCharacter.getPlayerCharacter(playerID); //Player is null, let's remove them from the list. @@ -608,12 +608,12 @@ public class MobAI { // No aggro for this race type - if (aiAgent.notEnemy.size() > 0 && aiAgent.notEnemy.contains(loadedPlayer.race.getRaceType().getMonsterType())) + if (!aiAgent.notEnemy.isEmpty() && 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())) + if (!aiAgent.enemy.isEmpty() && !aiAgent.enemy.contains(loadedPlayer.race.getRaceType().getMonsterType())) continue; if (MovementUtilities.inRangeToAggro(aiAgent, loadedPlayer)) { @@ -805,8 +805,7 @@ public class MobAI { PowersManager.useMobPower(mob, mob, recall, 40); mob.setCombatTarget(null); - for (Integer playerEntry : mob.playerAgroMap.keySet()) - mob.playerAgroMap.put(playerEntry, 0f); + mob.playerAgroMap.replaceAll((e, v) -> 0f); } } catch (Exception e) { Logger.info(mob.getObjectUUID() + " " + mob.getName() + " Failed At: CheckToSendMobHome" + " " + e.getMessage()); @@ -819,7 +818,7 @@ public class MobAI { 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))) + else if (System.currentTimeMillis() < mob.getTimestamps().get("lastChase") + (750 + ThreadLocalRandom.current().nextInt(0, 500))) return; mob.getTimestamps().put("lastChase", System.currentTimeMillis()); @@ -1021,9 +1020,9 @@ public class MobAI { ConcurrentHashMap loadedPlayers = mob.playerAgroMap; - for (Entry playerEntry : loadedPlayers.entrySet()) { + for (Entry playerEntry : loadedPlayers.entrySet()) { - int playerID = (int) playerEntry.getKey(); + int playerID = playerEntry.getKey(); PlayerCharacter loadedPlayer = PlayerCharacter.getPlayerCharacter(playerID); //Player is null, let's remove them from the list. @@ -1198,13 +1197,13 @@ public class MobAI { float CurrentHateValue = 0; if (mob.getCombatTarget() != null && mob.getCombatTarget().getObjectType().equals(mbEnums.GameObjectType.PlayerCharacter)) - CurrentHateValue = mob.playerAgroMap.get(mob.combatTarget.getObjectUUID()).floatValue(); + CurrentHateValue = mob.playerAgroMap.get(mob.combatTarget.getObjectUUID()); AbstractWorldObject mostHatedTarget = null; - for (Entry playerEntry : mob.playerAgroMap.entrySet()) { + for (Entry playerEntry : mob.playerAgroMap.entrySet()) { - PlayerCharacter potentialTarget = PlayerCharacter.getPlayerCharacter((int) playerEntry.getKey()); + PlayerCharacter potentialTarget = PlayerCharacter.getPlayerCharacter(playerEntry.getKey()); if (potentialTarget.equals(mob.getCombatTarget())) continue; @@ -1214,8 +1213,8 @@ public class MobAI { continue; } - if (potentialTarget != null && mob.playerAgroMap.get(potentialTarget.getObjectUUID()).floatValue() > CurrentHateValue && MovementUtilities.inRangeToAggro(mob, potentialTarget)) { - CurrentHateValue = mob.playerAgroMap.get(potentialTarget.getObjectUUID()).floatValue(); + if (mob.playerAgroMap.get(potentialTarget.getObjectUUID()) > CurrentHateValue && MovementUtilities.inRangeToAggro(mob, potentialTarget)) { + CurrentHateValue = mob.playerAgroMap.get(potentialTarget.getObjectUUID()); mostHatedTarget = potentialTarget; }