use of SiegeEngine Behaviour Type

This commit is contained in:
2023-08-26 11:19:36 -04:00
parent 7e5ed3efe5
commit 51ee41c773
3 changed files with 15 additions and 19 deletions
+1 -1
View File
@@ -2846,7 +2846,7 @@ public class Enum {
//Independent Types //Independent Types
SimpleStandingGuard(null, false, false, false, false, false), SimpleStandingGuard(null, false, false, false, false, false),
Pet1(null, false, false, true, 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), Simple(null, false, false, true, false, false),
Helpee(null, false, true, true, false, true), Helpee(null, false, true, true, false, true),
HelpeeWimpy(null, true, false, true, false, false), HelpeeWimpy(null, true, false, true, false, false),
+5 -5
View File
@@ -345,14 +345,14 @@ public enum NPCManager {
// Pets are regular mobiles not hirelings (Siege engines) // 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; Mob mobile = (Mob) abstractCharacter;
if (mobile.isSiege == false) if (!mobile.behaviourType.equals(Enum.MobBehaviourType.SiegeEngine))
abstractCharacter.building.getHirelings().put(abstractCharacter, buildingSlot); abstractCharacter.building.getHirelings().put(abstractCharacter, buildingSlot);
} else }
abstractCharacter.building.getHirelings().put(abstractCharacter, buildingSlot);
// Override bind and location for this npc derived // Override bind and location for this npc derived
// from BuildingManager slot location data. // from BuildingManager slot location data.
+9 -13
View File
@@ -77,7 +77,6 @@ public class Mob extends AbstractIntelligenceAgent {
public float spawnRadius; public float spawnRadius;
//used by static mobs //used by static mobs
public int parentZoneUUID; public int parentZoneUUID;
public boolean isSiege = false;
protected int dbID; //the database ID protected int dbID; //the database ID
private int currentID; private int currentID;
@@ -371,7 +370,7 @@ public class Mob extends AbstractIntelligenceAgent {
writer.putInt(0); writer.putInt(0);
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);
writer.putInt(0); writer.putInt(0);
} }
@@ -382,7 +381,7 @@ public class Mob extends AbstractIntelligenceAgent {
writer.putInt(2); writer.putInt(2);
writer.putInt(0x00008A2E); writer.putInt(0x00008A2E);
writer.putInt(0x1AB84003); writer.putInt(0x1AB84003);
} else if (mob.isSiege) { } else if (mob.behaviourType.equals(MobBehaviourType.SiegeEngine)) {
writer.putInt(1); writer.putInt(1);
writer.putInt(74620179); writer.putInt(74620179);
} else } else
@@ -685,7 +684,7 @@ public class Mob extends AbstractIntelligenceAgent {
mob.setObjectTypeMask(MBServerStatics.MASK_MOB | mob.getTypeMasks()); mob.setObjectTypeMask(MBServerStatics.MASK_MOB | mob.getTypeMasks());
//mob.setMob(); //mob.setMob();
mob.setSiege(true); // mob.setSiege(true);
int slot = 0; int slot = 0;
@@ -805,9 +804,10 @@ public class Mob extends AbstractIntelligenceAgent {
@Override @Override
public Vector3fImmutable getBindLoc() { 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.getOwner() != null ? this.getOwner().getLoc() : this.getLoc();
return this.bindLoc; else
return this.bindLoc;
} }
public void calculateModifiedStats() { public void calculateModifiedStats() {
@@ -982,7 +982,7 @@ public class Mob extends AbstractIntelligenceAgent {
try { try {
//resync corpses //resync corpses
//this.setLoc(this.getMovementLoc()); //this.setLoc(this.getMovementLoc());
if (this.isSiege) { if (this.behaviourType.equals(MobBehaviourType.SiegeEngine)) {
this.deathTime = System.currentTimeMillis(); this.deathTime = System.currentTimeMillis();
//this.state = STATE.Dead; //this.state = STATE.Dead;
try { try {
@@ -1089,7 +1089,7 @@ public class Mob extends AbstractIntelligenceAgent {
else if (this.building != null) else if (this.building != null)
this.region = BuildingManager.GetRegion(this.building, bindLoc.x, bindLoc.y, bindLoc.z); 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(); loadInventory();
this.updateLocation(); this.updateLocation();
@@ -1840,11 +1840,7 @@ public class Mob extends AbstractIntelligenceAgent {
} }
public boolean isSiege() { public boolean isSiege() {
return isSiege; return this.behaviourType.equals(MobBehaviourType.SiegeEngine);
}
public void setSiege(boolean isSiege) {
this.isSiege = isSiege;
} }
public void setNpcOwner(AbstractCharacter npcOwner) { public void setNpcOwner(AbstractCharacter npcOwner) {