forked from MagicBane/Server
static powers update
This commit is contained in:
@@ -63,7 +63,6 @@ public class MobileFSM {
|
|||||||
case Idle:
|
case Idle:
|
||||||
if (mob.isAlive())
|
if (mob.isAlive())
|
||||||
mob.updateLocation();
|
mob.updateLocation();
|
||||||
|
|
||||||
if (mob.isPlayerGuard()) {
|
if (mob.isPlayerGuard()) {
|
||||||
guardAwake(mob);
|
guardAwake(mob);
|
||||||
break;
|
break;
|
||||||
@@ -167,9 +166,6 @@ public class MobileFSM {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
public static Mob getMobile(int mobileID) {
|
|
||||||
return Mob.getFromCache(mobileID);
|
|
||||||
}
|
|
||||||
private static void idle(Mob mob) {
|
private static void idle(Mob mob) {
|
||||||
|
|
||||||
if (mob.getLoc().distanceSquared2D(mob.getBindLoc()) > sqr(2000)) {
|
if (mob.getLoc().distanceSquared2D(mob.getBindLoc()) > sqr(2000)) {
|
||||||
@@ -1070,31 +1066,6 @@ public class MobileFSM {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
HashMap<Integer, Integer> staticPowers = aiAgent.getMobBase().getStaticPowers();
|
|
||||||
if (staticPowers != null && !staticPowers.isEmpty()) {
|
|
||||||
|
|
||||||
int chance = ThreadLocalRandom.current().nextInt(100);
|
|
||||||
|
|
||||||
if (chance <= MBServerStatics.AI_POWER_DIVISOR) {
|
|
||||||
|
|
||||||
ArrayList<Integer> powerList = new ArrayList<>();
|
|
||||||
|
|
||||||
for (Integer key : staticPowers.keySet()) {
|
|
||||||
powerList.add(key);
|
|
||||||
}
|
|
||||||
|
|
||||||
int randomPower = ThreadLocalRandom.current().nextInt(powerList.size());
|
|
||||||
int powerToken = powerList.get(randomPower);
|
|
||||||
|
|
||||||
PowersBase pb = PowersManager.getPowerByToken(powerToken);
|
|
||||||
|
|
||||||
if (pb != null)
|
|
||||||
PowersManager.useMobPower(aiAgent, aggroTarget, pb, staticPowers.get(powerToken));
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!MovementUtilities.inRangeOfBindLocation(aiAgent)) {
|
if (!MovementUtilities.inRangeOfBindLocation(aiAgent)) {
|
||||||
aiAgent.setCombatTarget(null);
|
aiAgent.setCombatTarget(null);
|
||||||
aiAgent.setAggroTargetID(0);
|
aiAgent.setAggroTargetID(0);
|
||||||
@@ -1213,14 +1184,6 @@ public class MobileFSM {
|
|||||||
}
|
}
|
||||||
aiAgent.setState(STATE.Awake);
|
aiAgent.setState(STATE.Awake);
|
||||||
}
|
}
|
||||||
public static void goHome(Mob aiAgent, boolean walk) {
|
|
||||||
|
|
||||||
if (aiAgent.getState() != STATE.Dead) {
|
|
||||||
aiAgent.setWalkingHome(walk);
|
|
||||||
aiAgent.setAggroTargetID(0);
|
|
||||||
aiAgent.setState(STATE.Home);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private static void dead(Mob aiAgent) {
|
private static void dead(Mob aiAgent) {
|
||||||
//Despawn Timer with Loot currently in inventory.
|
//Despawn Timer with Loot currently in inventory.
|
||||||
if (aiAgent.getCharItemManager().getInventoryCount() > 0) {
|
if (aiAgent.getCharItemManager().getInventoryCount() > 0) {
|
||||||
@@ -1633,21 +1596,6 @@ public class MobileFSM {
|
|||||||
aiAgent.setCombatTarget(null);
|
aiAgent.setCombatTarget(null);
|
||||||
aiAgent.setState(STATE.Awake);
|
aiAgent.setState(STATE.Awake);
|
||||||
}
|
}
|
||||||
private static void guardRespawn(Mob aiAgent) {
|
|
||||||
|
|
||||||
if (!aiAgent.canRespawn())
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (aiAgent.isPlayerGuard() && aiAgent.getNpcOwner() != null && !aiAgent.getNpcOwner().isAlive())
|
|
||||||
return;
|
|
||||||
|
|
||||||
long spawnTime = aiAgent.getSpawnTime();
|
|
||||||
|
|
||||||
if (System.currentTimeMillis() > aiAgent.getDeathTime() + spawnTime) {
|
|
||||||
aiAgent.respawn();
|
|
||||||
aiAgent.setState(STATE.Idle);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private static void respawn(Mob aiAgent) {
|
private static void respawn(Mob aiAgent) {
|
||||||
|
|
||||||
if (!aiAgent.canRespawn())
|
if (!aiAgent.canRespawn())
|
||||||
@@ -1682,13 +1630,6 @@ public class MobileFSM {
|
|||||||
|
|
||||||
MovementUtilities.moveToLocation(aiAgent, aiAgent.getCombatTarget().getLoc(), aiAgent.getRange());
|
MovementUtilities.moveToLocation(aiAgent, aiAgent.getCombatTarget().getLoc(), aiAgent.getRange());
|
||||||
}
|
}
|
||||||
private static void moveToWorldObjectRegion(Mob mob, AbstractWorldObject regionObject) {
|
|
||||||
|
|
||||||
if (regionObject.getRegion() == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
MovementManager.translocate(mob, regionObject.getLoc(), null);
|
|
||||||
}
|
|
||||||
public static boolean canCast(Mob mob) {
|
public static boolean canCast(Mob mob) {
|
||||||
if(mob == null){
|
if(mob == null){
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -343,6 +343,7 @@ public class CombatUtilities {
|
|||||||
float dex = agent.getStatDexCurrent();
|
float dex = agent.getStatDexCurrent();
|
||||||
double minDmg = getMinDmg(min,str,dex,agent.getLevel());
|
double minDmg = getMinDmg(min,str,dex,agent.getLevel());
|
||||||
double maxDmg = getMaxDmg(max,str,dex,agent.getLevel());
|
double maxDmg = getMaxDmg(max,str,dex,agent.getLevel());
|
||||||
|
dmgMultiplier += agent.getLevel() / 10;
|
||||||
range = (float) (maxDmg - minDmg);
|
range = (float) (maxDmg - minDmg);
|
||||||
damage = min + ((ThreadLocalRandom.current().nextFloat() * range) + (ThreadLocalRandom.current().nextFloat() * range)) / 2;
|
damage = min + ((ThreadLocalRandom.current().nextFloat() * range) + (ThreadLocalRandom.current().nextFloat() * range)) / 2;
|
||||||
if (AbstractWorldObject.IsAbstractCharacter(target))
|
if (AbstractWorldObject.IsAbstractCharacter(target))
|
||||||
|
|||||||
Reference in New Issue
Block a user