Browse Source

pet AI handler

lakebane-recovery
FatBoy-DOTC 3 days ago
parent
commit
ca909d6489
  1. 50
      src/engine/mobileAI/MobHandlers/PetHandler.java
  2. 13
      src/engine/mobileAI/MobHandlers/SiegeHandler.java

50
src/engine/mobileAI/MobHandlers/PetHandler.java

@ -1,10 +1,60 @@ @@ -1,10 +1,60 @@
package engine.mobileAI.MobHandlers;
import engine.Enum;
import engine.gameManager.MovementManager;
import engine.gameManager.ZoneManager;
import engine.mobileAI.utilities.CombatUtilities;
import engine.mobileAI.utilities.MovementUtilities;
import engine.objects.City;
import engine.objects.Mob;
import engine.objects.PlayerCharacter;
public class PetHandler {
public static void run(Mob pet){
PlayerCharacter owner = pet.getOwner();
if(owner == null)
return;
if(!pet.isAlive()){
return;
}
if(!owner.isAlive()) {
owner.dismissPet();
return;
}
pet.updateLocation();
if(pet.combatTarget == null){
//follow owner
if(!CombatUtilities.inRangeToAttack(pet,owner)) {
MovementUtilities.moveToLocation(pet, owner.loc, pet.getRange());
}
}else{
//chase target
if(!CombatUtilities.inRangeToAttack(pet,pet.combatTarget)) {
MovementUtilities.moveToLocation(pet, pet.combatTarget.loc, pet.getRange());
}else{
if(pet.getLastAttackTime() > System.currentTimeMillis())
return;
pet.setLastAttackTime(System.currentTimeMillis() + 3000);
//attack target
if(pet.combatTarget.getObjectType().equals(Enum.GameObjectType.Building)){
//attacking building
City playercity = ZoneManager.getCityAtLocation(pet.getLoc());
if (playercity != null)
for (Mob guard : playercity.getParent().zoneMobSet)
if (guard.combatTarget == null && guard.getGuild() != null && pet.getGuild() != null && !guard.getGuild().equals(pet.getGuild()))
MovementUtilities.aiMove(guard,pet.loc,false);
}
CombatUtilities.combatCycle(pet,pet.combatTarget,true,null);
}
}
}
}

13
src/engine/mobileAI/MobHandlers/SiegeHandler.java

@ -1,8 +1,12 @@ @@ -1,8 +1,12 @@
package engine.mobileAI.MobHandlers;
import engine.Enum;
import engine.gameManager.MovementManager;
import engine.gameManager.ZoneManager;
import engine.mobileAI.utilities.CombatUtilities;
import engine.mobileAI.utilities.MovementUtilities;
import engine.objects.Building;
import engine.objects.City;
import engine.objects.Mob;
public class SiegeHandler {
@ -38,7 +42,14 @@ public class SiegeHandler { @@ -38,7 +42,14 @@ public class SiegeHandler {
if(CombatUtilities.inRangeToAttack(engine,engine.combatTarget)){
CombatUtilities.combatCycle(engine, engine.combatTarget, true, null);
engine.setLastAttackTime(System.currentTimeMillis() + 11000);
engine.setLastAttackTime(System.currentTimeMillis() + 15000);
City playercity = ZoneManager.getCityAtLocation(engine.getLoc());
if (playercity != null)
for (Mob guard : playercity.getParent().zoneMobSet)
if (guard.isPlayerGuard && guard.combatTarget == null && guard.getGuild() != null && engine.getGuild() != null && !guard.getGuild().equals(engine.getGuild()))
MovementUtilities.aiMove(guard,engine.loc,false);
MovementManager.sendRWSSMsg(engine);
}
}
}

Loading…
Cancel
Save