Browse Source

static powers update

master
FatBoy-DOTC 2 years ago
parent
commit
d837af7c33
  1. 59
      src/engine/ai/MobileFSM.java
  2. 1
      src/engine/ai/utilities/CombatUtilities.java

59
src/engine/ai/MobileFSM.java

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

1
src/engine/ai/utilities/CombatUtilities.java

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

Loading…
Cancel
Save