mob AI aggro
This commit is contained in:
@@ -735,66 +735,6 @@ public class MobAI {
|
||||
|
||||
try {
|
||||
|
||||
HashSet<AbstractWorldObject> players = WorldGrid.getObjectsInRangePartial(aiAgent.loc,MobAIThread.AI_BASE_AGGRO_RANGE, MBServerStatics.MASK_PLAYER);
|
||||
HashSet<AbstractWorldObject> pets = WorldGrid.getObjectsInRangePartial(aiAgent.loc,MobAIThread.AI_BASE_AGGRO_RANGE, MBServerStatics.MASK_MOB);
|
||||
|
||||
AbstractWorldObject closestTarget = null;
|
||||
for(AbstractWorldObject pet : pets){
|
||||
Mob petMob = (Mob)pet;
|
||||
if(!petMob.isPet())
|
||||
continue;
|
||||
|
||||
if(closestTarget == null) {
|
||||
closestTarget = pet;
|
||||
continue;
|
||||
}
|
||||
if(aiAgent.loc.distanceSquared(pet.loc) < aiAgent.loc.distanceSquared(closestTarget.loc)){
|
||||
closestTarget = pet;
|
||||
}
|
||||
}
|
||||
|
||||
for(AbstractWorldObject player : players){
|
||||
|
||||
PlayerCharacter loadedPlayer = (PlayerCharacter) player;
|
||||
|
||||
if (loadedPlayer == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
//Player is Dead, Mob no longer needs to attempt to aggro. Remove them from aggro map.
|
||||
if (!loadedPlayer.isAlive()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
//Can't see target, skip aggro.
|
||||
if (!aiAgent.canSee(loadedPlayer))
|
||||
continue;
|
||||
|
||||
// No aggro for this race type
|
||||
if (aiAgent.notEnemy.size() > 0 && aiAgent.notEnemy.contains(loadedPlayer.getRace().getRaceType().getMonsterType()) == true)
|
||||
continue;
|
||||
|
||||
//mob has enemies and this player race is not it
|
||||
if (aiAgent.enemy.size() > 0 && aiAgent.enemy.contains(loadedPlayer.getRace().getRaceType().getMonsterType()) == false)
|
||||
continue;
|
||||
|
||||
if(closestTarget == null) {
|
||||
closestTarget = loadedPlayer;
|
||||
continue;
|
||||
}
|
||||
if(aiAgent.loc.distanceSquared(loadedPlayer.loc) < aiAgent.loc.distanceSquared(closestTarget.loc)){
|
||||
closestTarget = loadedPlayer;
|
||||
}
|
||||
}
|
||||
|
||||
if(closestTarget != null){
|
||||
aiAgent.setCombatTarget(closestTarget);
|
||||
return;
|
||||
}
|
||||
|
||||
if(true)
|
||||
return;
|
||||
|
||||
//looks for and sets mobs combatTarget
|
||||
|
||||
if (!aiAgent.isAlive())
|
||||
|
||||
Reference in New Issue
Block a user