diff --git a/src/engine/devcmd/cmds/AddMobCmd.java b/src/engine/devcmd/cmds/AddMobCmd.java index d3401151..59e0f7e7 100644 --- a/src/engine/devcmd/cmds/AddMobCmd.java +++ b/src/engine/devcmd/cmds/AddMobCmd.java @@ -9,6 +9,7 @@ package engine.devcmd.cmds; +import engine.Enum; import engine.Enum.GameObjectType; import engine.devcmd.AbstractDevCmd; import engine.gameManager.ChatManager; @@ -43,7 +44,7 @@ public class AddMobCmd extends AbstractDevCmd { MobBase mb = (MobBase) mobbaseAGO; int loadID = mb.getObjectUUID(); Mob mob = Mob.createMob(loadID, Vector3fImmutable.getRandomPointInCircle(pc.getLoc(), 100), - null, zone, null, null, "", 1); + null, zone, null, null, "", 1, Enum.AIAgentType.MOBILE); if (mob != null) { mob.updateDatabase(); this.setResult(String.valueOf(mob.getDBID())); @@ -84,7 +85,7 @@ public class AddMobCmd extends AbstractDevCmd { Mob mob = Mob.createMob(loadID, pc.getLoc(), - null, zone, null, null, "", 1); + null, zone, null, null, "", 1, Enum.AIAgentType.MOBILE); if (mob != null) { mob.updateDatabase(); ChatManager.chatSayInfo(pc, diff --git a/src/engine/devcmd/cmds/SplatMobCmd.java b/src/engine/devcmd/cmds/SplatMobCmd.java index 44e8114e..e6648fd4 100644 --- a/src/engine/devcmd/cmds/SplatMobCmd.java +++ b/src/engine/devcmd/cmds/SplatMobCmd.java @@ -1,5 +1,6 @@ package engine.devcmd.cmds; +import engine.Enum; import engine.devcmd.AbstractDevCmd; import engine.gameManager.ZoneManager; import engine.math.Vector3fImmutable; @@ -110,7 +111,7 @@ public class SplatMobCmd extends AbstractDevCmd { mobile = Mob.createMob(_mobileUUID, Vector3fImmutable.getRandomPointInCircle(_currentLocation, _targetRange), - null, serverZone, null, null, "", 1); + null, serverZone, null, null, "", 1, Enum.AIAgentType.MOBILE); if (mobile != null) { mobile.updateDatabase(); diff --git a/src/engine/gameManager/BuildingManager.java b/src/engine/gameManager/BuildingManager.java index 7a2a2020..b17ee20c 100644 --- a/src/engine/gameManager/BuildingManager.java +++ b/src/engine/gameManager/BuildingManager.java @@ -535,7 +535,7 @@ public enum BuildingManager { if (NPC.ISWallArcher(contract)) { - mobile = Mob.createMob(contract.getMobbaseID(), Vector3fImmutable.ZERO, contractOwner.getGuild(), zone, building, contract, pirateName, rank); + mobile = Mob.createMob(contract.getMobbaseID(), Vector3fImmutable.ZERO, contractOwner.getGuild(), zone, building, contract, pirateName, rank, Enum.AIAgentType.GUARDWALLARCHER); if (mobile == null) return false; @@ -554,7 +554,7 @@ public enum BuildingManager { if (NPC.ISGuardCaptain(contract.getContractID())) { - mobile = Mob.createMob(contract.getMobbaseID(), Vector3fImmutable.ZERO, contractOwner.getGuild(), zone, building, contract, pirateName, rank); + mobile = Mob.createMob(contract.getMobbaseID(), Vector3fImmutable.ZERO, contractOwner.getGuild(), zone, building, contract, pirateName, rank, Enum.AIAgentType.GUARDCAPTAIN); if (mobile == null) return false; @@ -574,7 +574,7 @@ public enum BuildingManager { if (contract.getContractID() == 910) { //guard dog - mobile = Mob.createMob(contract.getMobbaseID(), Vector3fImmutable.ZERO, contractOwner.getGuild(), zone, building, contract, pirateName, rank); + mobile = Mob.createMob(contract.getMobbaseID(), Vector3fImmutable.ZERO, contractOwner.getGuild(), zone, building, contract, pirateName, rank, Enum.AIAgentType.GUARDCAPTAIN); if (mobile == null) return false; diff --git a/src/engine/mobileAI/MobAI.java b/src/engine/mobileAI/MobAI.java index 2ca8d4d5..0d2c0096 100644 --- a/src/engine/mobileAI/MobAI.java +++ b/src/engine/mobileAI/MobAI.java @@ -166,7 +166,7 @@ public class MobAI { if (playercity != null) for (Mob guard : playercity.getParent().zoneMobSet) - if (guard.behaviourType != null && guard.behaviourType.equals(Enum.MobBehaviourType.GuardCaptain)) + if (guard.agentType.equals(Enum.AIAgentType.GUARDCAPTAIN)) if (guard.getCombatTarget() == null && !guard.getGuild().equals(mob.getGuild())) guard.setCombatTarget(mob); @@ -261,7 +261,7 @@ public class MobAI { //guard captains inherit barracks patrol points dynamically - if (mob.behaviourType.equals(Enum.MobBehaviourType.GuardCaptain)) { + if (mob.agentType.equals(Enum.AIAgentType.GUARDCAPTAIN)) { Building barracks = mob.building; @@ -281,7 +281,7 @@ public class MobAI { MovementUtilities.aiMove(mob, mob.destination, true); - if (mob.behaviourType.equals(Enum.MobBehaviourType.GuardCaptain)) + if (mob.agentType.equals(Enum.AIAgentType.GUARDCAPTAIN)) for (Entry minion : mob.siegeMinionMap.entrySet()) //make sure mob is out of combat stance @@ -313,7 +313,7 @@ public class MobAI { int contractID; - if (mob.behaviourType.equals(Enum.MobBehaviourType.GuardMinion)) + if (mob.agentType.equals(Enum.AIAgentType.GUARDCAPTAIN)) contractID = mob.guardCaptain.contract.getContractID(); else contractID = mob.contract.getContractID(); @@ -615,7 +615,7 @@ public class MobAI { if (mob.despawned && mob.isPlayerGuard()) { - if (mob.behaviourType.equals(Enum.MobBehaviourType.GuardMinion)) { + if (mob.agentType.equals(Enum.AIAgentType.GUARDMINION)) { if (mob.guardCaptain.isAlive() == false || ((Mob) mob.guardCaptain).despawned == true) { //minions don't respawn while guard captain is dead @@ -632,7 +632,7 @@ public class MobAI { //check to send mob home for player guards to prevent exploit of dragging guards away and then teleporting - if (mob.behaviourType.equals(Enum.MobBehaviourType.Pet1) == false) + if (!mob.agentType.equals(Enum.AIAgentType.PET)) CheckToSendMobHome(mob); return; @@ -653,7 +653,7 @@ public class MobAI { return; } - if (mob.behaviourType.equals(Enum.MobBehaviourType.Pet1) == false) + if (mob.agentType.equals(Enum.AIAgentType.PET) == false) CheckToSendMobHome(mob); if (mob.getCombatTarget() != null) { @@ -908,7 +908,7 @@ public class MobAI { return; if (mob.getCombatTarget().getObjectType().equals(Enum.GameObjectType.PlayerCharacter) && MovementUtilities.inRangeDropAggro(mob, (PlayerCharacter) mob.getCombatTarget()) == false && - mob.behaviourType.equals(Enum.MobBehaviourType.Pet1) == false) { + mob.agentType.equals(Enum.AIAgentType.PET) == false) { mob.setCombatTarget(null); return; @@ -927,7 +927,7 @@ public class MobAI { if (mob.behaviourType.isAgressive) { if (mob.isPlayerGuard()) { - if (mob.behaviourType.equals(Enum.MobBehaviourType.GuardCaptain)) + if (mob.agentType.equals(Enum.AIAgentType.GUARDCAPTAIN)) CheckForPlayerGuardAggro(mob); } else { CheckForAggro(mob); @@ -947,7 +947,7 @@ public class MobAI { PowersManager.useMobPower(mob, mob, recall, 40); mob.setCombatTarget(null); - if (mob.behaviourType.equals(Enum.MobBehaviourType.GuardCaptain) && mob.isAlive()) { + if (mob.agentType.equals(Enum.AIAgentType.GUARDCAPTAIN) && mob.isAlive()) { //guard captain pulls his minions home with him @@ -1028,7 +1028,7 @@ public class MobAI { if ((aggroMob.agentType.equals(Enum.AIAgentType.GUARDCAPTAIN))) continue; - if (aggroMob.behaviourType.equals(Enum.MobBehaviourType.Pet1)) + if (aggroMob.agentType.equals(Enum.AIAgentType.PET)) continue; if (mob.getLoc().distanceSquared2D(aggroMob.getLoc()) > sqr(50)) @@ -1259,7 +1259,7 @@ public class MobAI { if (mob.getGuild().getNation().equals(target.getGuild().getNation())) return false; - if (mob.behaviourType.equals(Enum.MobBehaviourType.GuardMinion)) { + if (mob.agentType.equals(Enum.AIAgentType.GUARDMINION)) { if (((Mob) mob.guardCaptain).building.getCity().cityOutlaws.contains(target.getObjectUUID()) == true) { return true; } @@ -1344,7 +1344,7 @@ public class MobAI { MovementUtilities.aiMove(mob, mob.destination, true); - if (mob.behaviourType.equals(Enum.MobBehaviourType.GuardCaptain)) { + if (mob.agentType.equals(Enum.AIAgentType.GUARDCAPTAIN)) { for (Entry minion : mob.siegeMinionMap.entrySet()) { //make sure mob is out of combat stance diff --git a/src/engine/objects/Mob.java b/src/engine/objects/Mob.java index 55ec33d4..1999cba5 100644 --- a/src/engine/objects/Mob.java +++ b/src/engine/objects/Mob.java @@ -398,11 +398,12 @@ public class Mob extends AbstractIntelligenceAgent { writer.putInt(mob.currentID); } - public static Mob createMob(int loadID, Vector3fImmutable spawn, Guild guild, Zone parent, Building building, Contract contract, String pirateName, int level) { + public static Mob createMob(int loadID, Vector3fImmutable spawn, Guild guild, Zone parent, Building building, Contract contract, String pirateName, int level, AIAgentType mobType) { Mob mobile = new Mob(); mobile.dbID = MBServerStatics.NO_DB_ROW_ASSIGNED_YET; - mobile.agentType = AIAgentType.MOBILE; + //mobile.agentType = AIAgentType.MOBILE; this method is only called to make guard captains and wall archers + mobile.agentType = mobType; mobile.behaviourType = MobBehaviourType.None; mobile.loadID = loadID; mobile.level = (short) level;