logic for wall archers

This commit is contained in:
2023-04-18 20:52:33 -05:00
parent 0914580bea
commit 0448448263
+44 -23
View File
@@ -502,29 +502,12 @@ public class MobileFSM {
}
if(mob.BehaviourType.ordinal() == Enum.MobBehaviourType.GuardMinion.ordinal()){
//this is a player slotted guard minion
if(mob.despawned){
if(System.currentTimeMillis() > mob.deathTime + (mob.spawnTime * 1000)){
if(mob.getEquipmentSetID() != ((Mob)mob.npcOwner).getEquipmentSetID()){
mob.equipmentSetID = ((Mob)mob.npcOwner).getEquipmentSetID();
mob.runAfterLoad();
}
mob.respawn();
}
return;
}
if(mob.isAlive() == false){
CheckForRespawn(mob);
return;
}
CheckToSendMobHome(mob);
if(mob.npcOwner.isAlive() == false){
CheckForPlayerGuardAggro(mob);
return;
}
CheckMobMovement(mob);
if(mob.getCombatTarget() != null){
CheckForAttack(mob);
}
GuardMinionLogic(mob);
return;
}
if(mob.BehaviourType.ordinal() == Enum.MobBehaviourType.GuardWallArcher.ordinal()){
//this is a player slotted guard minion
GuardWallArcherLogic(mob);
return;
}
if (mob.isPet() == false && mob.isSummonedPet() == false && mob.isNecroPet() == false) {
@@ -783,6 +766,44 @@ public class MobileFSM {
}
}
public static void GuardMinionLogic(Mob mob){
if(mob.despawned){
if(System.currentTimeMillis() > mob.deathTime + (mob.spawnTime * 1000)){
if(mob.getEquipmentSetID() != ((Mob)mob.npcOwner).getEquipmentSetID()){
mob.equipmentSetID = ((Mob)mob.npcOwner).getEquipmentSetID();
mob.runAfterLoad();
}
mob.respawn();
}
return;
}
if(mob.isAlive() == false){
CheckForRespawn(mob);
return;
}
CheckToSendMobHome(mob);
if(mob.npcOwner.isAlive() == false){
CheckForPlayerGuardAggro(mob);
return;
}
CheckMobMovement(mob);
if(mob.getCombatTarget() != null){
CheckForAttack(mob);
}
}
public static void GuardWallArcherLogic(Mob mob){
if(mob.isAlive() == false){
CheckForRespawn(mob);
return;
}
if(mob.npcOwner.isAlive() == false){
CheckForPlayerGuardAggro(mob);
return;
}
if(mob.getCombatTarget() != null){
CheckForAttack(mob);
}
}
public static void CheckForPlayerGuardAggro(Mob mob) {
//looks for and sets mobs combatTarget
if (!mob.isAlive()) {