Browse Source

InitializeMob removed.

combat-2
MagicBot 1 year ago
parent
commit
579c26ac59
  1. 118
      src/engine/objects/Mob.java

118
src/engine/objects/Mob.java

@ -150,7 +150,6 @@ public class Mob extends AbstractIntelligenceAgent {
this.parentZone = parent; this.parentZone = parent;
this.parentZoneID = (parent != null) ? parent.getObjectUUID() : 0; this.parentZoneID = (parent != null) ? parent.getObjectUUID() : 0;
this.building = building; this.building = building;
initializeMob(false, false, false);
clearStatic(); clearStatic();
} }
@ -166,7 +165,6 @@ public class Mob extends AbstractIntelligenceAgent {
this.parentZoneID = (parent != null) ? parent.getObjectUUID() : 0; this.parentZoneID = (parent != null) ? parent.getObjectUUID() : 0;
this.ownerUID = owner.getObjectUUID(); this.ownerUID = owner.getObjectUUID();
this.BehaviourType = Enum.MobBehaviourType.Pet1; this.BehaviourType = Enum.MobBehaviourType.Pet1;
initializeMob(true, false, false);
clearStatic(); clearStatic();
} }
@ -180,7 +178,6 @@ public class Mob extends AbstractIntelligenceAgent {
this.parentZoneID = (parent != null) ? parent.getObjectUUID() : 0; this.parentZoneID = (parent != null) ? parent.getObjectUUID() : 0;
this.ownerUID = 0; this.ownerUID = 0;
this.equip = new HashMap<>(); this.equip = new HashMap<>();
initializeMob(false, true, isPlayerGuard);
clearStatic(); clearStatic();
} }
@ -242,13 +239,15 @@ public class Mob extends AbstractIntelligenceAgent {
if (rs.getString("fsm").length() > 1) if (rs.getString("fsm").length() > 1)
this.BehaviourType = MobBehaviourType.valueOf(rs.getString("fsm")); this.BehaviourType = MobBehaviourType.valueOf(rs.getString("fsm"));
if (this.isPet() || this.isSiege || (this.isPlayerGuard && this.contract == null))
this.currentID = (--Mob.staticID);
else
this.currentID = this.dbID;
} catch (Exception e) { } catch (Exception e) {
Logger.error(e + " " + this.dbID); Logger.error(e + " " + this.dbID);
} }
initializeMob(false, false, this.isPlayerGuard);
} }
public static void serializeMobForClientMsgOtherPlayer(Mob mob, ByteBufferWriter writer) throws SerializationException { public static void serializeMobForClientMsgOtherPlayer(Mob mob, ByteBufferWriter writer) throws SerializationException {
@ -825,61 +824,6 @@ public class Mob extends AbstractIntelligenceAgent {
this.statAlt = 0f; this.statAlt = 0f;
} }
private void initializeMob(boolean isPet, boolean isSiege, boolean isGuard) {
if (ConfigManager.serverType.equals(ServerType.LOGINSERVER))
return;
if (this.mobBase != null) {
this.gridObjectType = GridObjectType.DYNAMIC;
this.healthMax = this.mobBase.getHealthMax();
this.manaMax = 0;
this.staminaMax = 0;
this.setHealth(this.healthMax);
this.mana.set(this.manaMax);
this.stamina.set(this.staminaMax);
if (isPet)
this.setObjectTypeMask(MBServerStatics.MASK_PET | this.getTypeMasks());
if (this.contract == null)
this.level = (short) this.mobBase.getLevel();
}
//set bonuses
this.bonuses = new PlayerBonuses(this);
//TODO set these correctly later
this.rangeHandOne = 8;
this.rangeHandTwo = -1;
this.minDamageHandOne = 0;
this.maxDamageHandOne = 0;
this.minDamageHandTwo = 1;
this.maxDamageHandTwo = 4;
this.atrHandOne = 300;
this.defenseRating = (short) this.mobBase.getDefenseRating();
this.isActive = true;
this.charItemManager.load();
//load AI for general mobs.
if (this.contract != null && NPC.ISWallArcher(this.contract)) {
this.BehaviourType = MobBehaviourType.GuardWallArcher;
this.isPlayerGuard = true;
this.spawnTime = 450;
}
if (isPet || isSiege || (isGuard && this.contract == null))
this.currentID = (--Mob.staticID);
else
this.currentID = this.dbID;
//store mobs by Database ID
if (!isPet && !isSiege)
Mob.mobMapByDBID.put(this.dbID, this);
}
/* /*
* Getters * Getters
*/ */
@ -1818,6 +1762,14 @@ public class Mob extends AbstractIntelligenceAgent {
@Override @Override
public void runAfterLoad() { public void runAfterLoad() {
if (ConfigManager.serverType.equals(ServerType.LOGINSERVER))
return;
// Add new object to collection
if (!this.isPet() && !isSiege)
Mob.mobMapByDBID.put(this.dbID, this);
try { try {
this.building = BuildingManager.getBuilding(this.buildingUUID); this.building = BuildingManager.getBuilding(this.buildingUUID);
} catch (Exception e) { } catch (Exception e) {
@ -1855,8 +1807,48 @@ public class Mob extends AbstractIntelligenceAgent {
this.lastName = this.getContract().getName(); this.lastName = this.getContract().getName();
} }
if (ConfigManager.serverType.equals(ServerType.LOGINSERVER)) //store mobs by Database ID
return;
if (!this.isPet() && !isSiege)
Mob.mobMapByDBID.put(this.dbID, this);
if (this.mobBase != null) {
this.gridObjectType = GridObjectType.DYNAMIC;
this.healthMax = this.mobBase.getHealthMax();
this.manaMax = 0;
this.staminaMax = 0;
this.setHealth(this.healthMax);
this.mana.set(this.manaMax);
this.stamina.set(this.staminaMax);
if (this.contract == null)
this.level = (short) this.mobBase.getLevel();
//set bonuses
this.bonuses = new PlayerBonuses(this);
//TODO set these correctly later
this.rangeHandOne = 8;
this.rangeHandTwo = -1;
this.minDamageHandOne = 0;
this.maxDamageHandOne = 0;
this.minDamageHandTwo = 1;
this.maxDamageHandTwo = 4;
this.atrHandOne = 300;
this.defenseRating = (short) this.mobBase.getDefenseRating();
this.isActive = true;
this.charItemManager.load();
// Load AI for wall archers
if (this.contract != null && NPC.ISWallArcher(this.contract)) {
this.BehaviourType = MobBehaviourType.GuardWallArcher;
this.isPlayerGuard = true;
this.spawnTime = 450;
}
}
// Configure parent zone adding this NPC to the // Configure parent zone adding this NPC to the
// zone collection // zone collection

Loading…
Cancel
Save