From 51ee41c77346249cc88753aa09c3efb9e190e4ac Mon Sep 17 00:00:00 2001 From: MagicBot Date: Sat, 26 Aug 2023 11:19:36 -0400 Subject: [PATCH] use of SiegeEngine Behaviour Type --- src/engine/Enum.java | 2 +- src/engine/gameManager/NPCManager.java | 10 +++++----- src/engine/objects/Mob.java | 22 +++++++++------------- 3 files changed, 15 insertions(+), 19 deletions(-) diff --git a/src/engine/Enum.java b/src/engine/Enum.java index ae5818c8..15ed5702 100644 --- a/src/engine/Enum.java +++ b/src/engine/Enum.java @@ -2846,7 +2846,7 @@ public class Enum { //Independent Types SimpleStandingGuard(null, false, false, false, false, false), Pet1(null, false, false, true, false, false), - Siege(null, false, false, true, false, false), + SiegeEngine(null, false, false, true, false, false), Simple(null, false, false, true, false, false), Helpee(null, false, true, true, false, true), HelpeeWimpy(null, true, false, true, false, false), diff --git a/src/engine/gameManager/NPCManager.java b/src/engine/gameManager/NPCManager.java index b3b8916b..49057836 100644 --- a/src/engine/gameManager/NPCManager.java +++ b/src/engine/gameManager/NPCManager.java @@ -345,14 +345,14 @@ public enum NPCManager { // Pets are regular mobiles not hirelings (Siege engines) - if (abstractCharacter.getObjectType().equals(Enum.GameObjectType.Mob)) { - + if (!abstractCharacter.getObjectType().equals(Enum.GameObjectType.Mob)) + abstractCharacter.building.getHirelings().put(abstractCharacter, buildingSlot); + else { Mob mobile = (Mob) abstractCharacter; - if (mobile.isSiege == false) + if (!mobile.behaviourType.equals(Enum.MobBehaviourType.SiegeEngine)) abstractCharacter.building.getHirelings().put(abstractCharacter, buildingSlot); - } else - abstractCharacter.building.getHirelings().put(abstractCharacter, buildingSlot); + } // Override bind and location for this npc derived // from BuildingManager slot location data. diff --git a/src/engine/objects/Mob.java b/src/engine/objects/Mob.java index bc2e7bed..282d26fb 100644 --- a/src/engine/objects/Mob.java +++ b/src/engine/objects/Mob.java @@ -77,7 +77,6 @@ public class Mob extends AbstractIntelligenceAgent { public float spawnRadius; //used by static mobs public int parentZoneUUID; - public boolean isSiege = false; protected int dbID; //the database ID private int currentID; @@ -371,7 +370,7 @@ public class Mob extends AbstractIntelligenceAgent { writer.putInt(0); writer.putInt(0); - if (!mob.isAlive() && !mob.isPet() && !mob.isNecroPet() && !mob.isSiege && !mob.isPlayerGuard) { + if (!mob.isAlive() && !mob.isPet() && !mob.isNecroPet() && !mob.behaviourType.equals(MobBehaviourType.SiegeEngine) && !mob.isPlayerGuard) { writer.putInt(0); writer.putInt(0); } @@ -382,7 +381,7 @@ public class Mob extends AbstractIntelligenceAgent { writer.putInt(2); writer.putInt(0x00008A2E); writer.putInt(0x1AB84003); - } else if (mob.isSiege) { + } else if (mob.behaviourType.equals(MobBehaviourType.SiegeEngine)) { writer.putInt(1); writer.putInt(74620179); } else @@ -685,7 +684,7 @@ public class Mob extends AbstractIntelligenceAgent { mob.setObjectTypeMask(MBServerStatics.MASK_MOB | mob.getTypeMasks()); //mob.setMob(); - mob.setSiege(true); + // mob.setSiege(true); int slot = 0; @@ -805,9 +804,10 @@ public class Mob extends AbstractIntelligenceAgent { @Override public Vector3fImmutable getBindLoc() { - if (this.isPet() && !this.isSiege) + if (this.isPet() && !this.behaviourType.equals(MobBehaviourType.SiegeEngine)) return this.getOwner() != null ? this.getOwner().getLoc() : this.getLoc(); - return this.bindLoc; + else + return this.bindLoc; } public void calculateModifiedStats() { @@ -982,7 +982,7 @@ public class Mob extends AbstractIntelligenceAgent { try { //resync corpses //this.setLoc(this.getMovementLoc()); - if (this.isSiege) { + if (this.behaviourType.equals(MobBehaviourType.SiegeEngine)) { this.deathTime = System.currentTimeMillis(); //this.state = STATE.Dead; try { @@ -1089,7 +1089,7 @@ public class Mob extends AbstractIntelligenceAgent { else if (this.building != null) this.region = BuildingManager.GetRegion(this.building, bindLoc.x, bindLoc.y, bindLoc.z); - if (!this.isSiege && !this.isPlayerGuard && contract == null) + if (!this.behaviourType.equals(MobBehaviourType.SiegeEngine) && !this.isPlayerGuard && contract == null) loadInventory(); this.updateLocation(); @@ -1840,11 +1840,7 @@ public class Mob extends AbstractIntelligenceAgent { } public boolean isSiege() { - return isSiege; - } - - public void setSiege(boolean isSiege) { - this.isSiege = isSiege; + return this.behaviourType.equals(MobBehaviourType.SiegeEngine); } public void setNpcOwner(AbstractCharacter npcOwner) {