Browse Source

use of SiegeEngine Behaviour Type

combat-2
MagicBot 1 year ago
parent
commit
51ee41c773
  1. 2
      src/engine/Enum.java
  2. 10
      src/engine/gameManager/NPCManager.java
  3. 22
      src/engine/objects/Mob.java

2
src/engine/Enum.java

@ -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),

10
src/engine/gameManager/NPCManager.java

@ -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.

22
src/engine/objects/Mob.java

@ -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) {

Loading…
Cancel
Save