forked from MagicBane/Server
Mobbase cannot be null.
This commit is contained in:
+25
-28
@@ -76,19 +76,18 @@ public class Mob extends AbstractIntelligenceAgent {
|
|||||||
public int lastPatrolPointIndex = 0;
|
public int lastPatrolPointIndex = 0;
|
||||||
public long stopPatrolTime = 0;
|
public long stopPatrolTime = 0;
|
||||||
public City guardedCity;
|
public City guardedCity;
|
||||||
protected int dbID; //the database ID
|
|
||||||
public int loadID;
|
public int loadID;
|
||||||
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 float statLat;
|
protected float statLat;
|
||||||
protected float statLon;
|
protected float statLon;
|
||||||
protected float statAlt;
|
protected float statAlt;
|
||||||
private int currentID;
|
private int currentID;
|
||||||
private int ownerUID = 0; //only used by pets
|
private int ownerUID = 0; //only used by pets
|
||||||
private AbstractWorldObject fearedObject = null;
|
private AbstractWorldObject fearedObject = null;
|
||||||
|
|
||||||
public boolean isSiege = false;
|
|
||||||
private long lastAttackTime = 0;
|
private long lastAttackTime = 0;
|
||||||
private int lastMobPowerToken = 0;
|
private int lastMobPowerToken = 0;
|
||||||
private HashMap<Integer, MobEquipment> equip = null;
|
private HashMap<Integer, MobEquipment> equip = null;
|
||||||
@@ -1059,7 +1058,7 @@ public class Mob extends AbstractIntelligenceAgent {
|
|||||||
this.playerAgroMap.clear();
|
this.playerAgroMap.clear();
|
||||||
|
|
||||||
if (this.behaviourType.ordinal() == Enum.MobBehaviourType.GuardMinion.ordinal())
|
if (this.behaviourType.ordinal() == Enum.MobBehaviourType.GuardMinion.ordinal())
|
||||||
this.spawnTime = (int) (-2.500 * ((Mob) this.npcOwner).building.getRank() + 22.5) * 60;
|
this.spawnTime = (int) (-2.500 * this.npcOwner.building.getRank() + 22.5) * 60;
|
||||||
|
|
||||||
if (this.isPet()) {
|
if (this.isPet()) {
|
||||||
|
|
||||||
@@ -1149,7 +1148,7 @@ public class Mob extends AbstractIntelligenceAgent {
|
|||||||
this.setHealth(this.healthMax);
|
this.setHealth(this.healthMax);
|
||||||
|
|
||||||
if (this.building == null && this.npcOwner != null && ((Mob) this.npcOwner).behaviourType.ordinal() == MobBehaviourType.GuardCaptain.ordinal())
|
if (this.building == null && this.npcOwner != null && ((Mob) this.npcOwner).behaviourType.ordinal() == MobBehaviourType.GuardCaptain.ordinal())
|
||||||
this.building = ((Mob) this.npcOwner).building;
|
this.building = this.npcOwner.building;
|
||||||
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);
|
||||||
|
|
||||||
@@ -1748,33 +1747,31 @@ public class Mob extends AbstractIntelligenceAgent {
|
|||||||
if (!this.isPet() && !isSiege)
|
if (!this.isPet() && !isSiege)
|
||||||
Mob.mobMapByDBID.put(this.dbID, this);
|
Mob.mobMapByDBID.put(this.dbID, this);
|
||||||
|
|
||||||
if (this.mobBase != null) {
|
this.gridObjectType = GridObjectType.DYNAMIC;
|
||||||
this.gridObjectType = GridObjectType.DYNAMIC;
|
this.healthMax = this.mobBase.getHealthMax();
|
||||||
this.healthMax = this.mobBase.getHealthMax();
|
this.manaMax = 0;
|
||||||
this.manaMax = 0;
|
this.staminaMax = 0;
|
||||||
this.staminaMax = 0;
|
this.setHealth(this.healthMax);
|
||||||
this.setHealth(this.healthMax);
|
this.mana.set(this.manaMax);
|
||||||
this.mana.set(this.manaMax);
|
this.stamina.set(this.staminaMax);
|
||||||
this.stamina.set(this.staminaMax);
|
|
||||||
|
|
||||||
if (this.contract == null)
|
if (this.contract == null)
|
||||||
this.level = (short) this.mobBase.getLevel();
|
this.level = (short) this.mobBase.getLevel();
|
||||||
|
|
||||||
//set bonuses
|
//set bonuses
|
||||||
this.bonuses = new PlayerBonuses(this);
|
|
||||||
|
|
||||||
//TODO set these correctly later
|
this.bonuses = new PlayerBonuses(this);
|
||||||
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;
|
|
||||||
|
|
||||||
}
|
//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;
|
||||||
|
|
||||||
// Configure parent zone adding this NPC to the
|
// Configure parent zone adding this NPC to the
|
||||||
// zone collection
|
// zone collection
|
||||||
|
|||||||
Reference in New Issue
Block a user