Lore Mob AI Aggro
This commit is contained in:
@@ -968,33 +968,19 @@ public class MobAI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void hamletGuardAggro(Mob mob) {
|
private static void hamletGuardAggro(Mob mob) {
|
||||||
ConcurrentHashMap<Integer, Float> loadedPlayers = mob.playerAgroMap;
|
HashSet<AbstractWorldObject> loadedPlayers = WorldGrid.getObjectsInRangePartial(mob.loc,MobAIThread.AI_BASE_AGGRO_RANGE,MBServerStatics.MASK_PLAYER);
|
||||||
|
for(AbstractWorldObject awo : loadedPlayers){
|
||||||
for (Entry<Integer, Float> playerEntry : loadedPlayers.entrySet()) {
|
PlayerCharacter pc = (PlayerCharacter) awo;
|
||||||
|
if(!pc.isAlive() || !pc.isActive())
|
||||||
int playerID = playerEntry.getKey();
|
|
||||||
PlayerCharacter loadedPlayer = PlayerCharacter.getPlayerCharacter(playerID);
|
|
||||||
|
|
||||||
if (loadedPlayer == null)
|
|
||||||
continue;
|
continue;
|
||||||
|
if(pc.guild.equals(Guild.getErrantGuild())) {
|
||||||
if (!loadedPlayer.isAlive())
|
mob.combatTarget = pc;
|
||||||
continue;
|
|
||||||
|
|
||||||
//Can't see target, skip aggro.
|
|
||||||
|
|
||||||
if (!mob.canSee(loadedPlayer))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
// No aggro for this player
|
|
||||||
|
|
||||||
if (!guardCanAggro(mob, loadedPlayer))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (MovementUtilities.inRangeToAggro(mob, loadedPlayer) && mob.getCombatTarget() == null) {
|
|
||||||
mob.setCombatTarget(loadedPlayer);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if(pc.guild.charter.equals(mob.guild.charter))
|
||||||
|
continue;
|
||||||
|
mob.combatTarget = pc;
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user