diff --git a/src/engine/wpak/data/Power.java b/src/engine/wpak/data/Power.java index e1278b72..fbb7593f 100644 --- a/src/engine/wpak/data/Power.java +++ b/src/engine/wpak/data/Power.java @@ -67,47 +67,6 @@ public class Power { public boolean isProjectile = false; public HashMap conditions = new HashMap<>(); - public int getRecycleTime(int trains) { // returns cast time in ms - if (this.curves.get("RECYCLETIME") != null) - return (int) (((this.recycle_time + (this.curves.get("RECYCLETIME").getValue() * trains)) * 1000) + getCastTime(trains)); - else - return (int) (((this.recycle_time * (1 + (this.curves.get("RECYCLETIME").getValue() * trains))) * 1000) + getCastTime(trains)); - } - public int getCastTime(int trains) { // returns cast time in ms - if (this.curves.get("INITTIME") != null) - return (int) ((this.init_time + (this.curves.get("INITTIME").getValue() * trains)) * 1000); - else - return (int) ((this.init_time * (1 + (this.curves.get("INITTIME").getValue() * trains))) * 1000); - } - - public boolean allowedInCombat() { - switch(castingMode.name()){ - case "NONE": - case "BOTH": - case "COMBAT": - return true; - } - return false; - } - - public boolean allowedOutOfCombat() { - switch(castingMode.name()){ - case "NONE": - case "BOTH": - case "NONCOMBAT": - return true; - } - return false; - } - - public float getCost(int trains) { - if (this.curves.get("COSTAMT") != null) - return this.cost + (float)(this.curves.get("COSTAMT").getValue() * trains); - else - return this.cost * (1 + (float)(this.curves.get("COSTAMT").getValue() * trains)); - - } - public boolean isSpell(){ return true; } diff --git a/src/engine/wpakpowers/WpakPowerManager.java b/src/engine/wpakpowers/WpakPowerManager.java index ac2f81cc..9f29e030 100644 --- a/src/engine/wpakpowers/WpakPowerManager.java +++ b/src/engine/wpakpowers/WpakPowerManager.java @@ -132,13 +132,13 @@ public class WpakPowerManager { } //get casting time - int time = powerCast.getRecycleTime(trains); + int time = getRecycleTime(powerCast, trains); //combat mode sanity check if (playerCharacter.isCombat()) { - if (!powerCast.allowedInCombat()) + if (!allowedInCombat(powerCast)) return true; - } else if (!powerCast.allowedOutOfCombat()) + } else if (!allowedOutOfCombat(powerCast)) return true; //stunned check @@ -199,7 +199,7 @@ public class WpakPowerManager { } } - float cost = powerCast.getCost(trains); + float cost = getCost(powerCast, trains); if (bonus != null) cost *= (1 + bonus.getFloatPercentAll(mbEnums.ModType.PowerCost, mbEnums.SourceType.None)); @@ -266,7 +266,7 @@ public class WpakPowerManager { playerCharacter.cancelOnSpell(); // get cast time in ms. - time = powerCast.getCastTime(trains); + time = getCastTime(powerCast, trains); // set player is casting for regens @@ -381,4 +381,46 @@ public class WpakPowerManager { DispatchManager.dispatchMsgDispatch(dispatch, mbEnums.DispatchChannel.PRIMARY); } } + + public static int getRecycleTime(Power power, int trains) { // returns cast time in ms + if (power.curves.get("RECYCLETIME") != null) + return (int) (((power.recycle_time + (power.curves.get("RECYCLETIME").getValue() * trains)) * 1000) + getCastTime(power, trains)); + else + return (int) (((power.recycle_time * (1 + (power.curves.get("RECYCLETIME").getValue() * trains))) * 1000) + getCastTime(power, trains)); + } + + public static int getCastTime(Power power, int trains) { // returns cast time in ms + if (power.curves.get("INITTIME") != null) + return (int) ((power.init_time + (power.curves.get("INITTIME").getValue() * trains)) * 1000); + else + return (int) ((power.init_time * (1 + (power.curves.get("INITTIME").getValue() * trains))) * 1000); + } + + public static float getCost(Power power, int trains) { + if (power.curves.get("COSTAMT") != null) + return power.cost + (float) (power.curves.get("COSTAMT").getValue() * trains); + else + return power.cost * (1 + (float) (power.curves.get("COSTAMT").getValue() * trains)); + + } + + public static boolean allowedInCombat(Power power) { + switch (power.castingMode.name()) { + case "NONE": + case "BOTH": + case "COMBAT": + return true; + } + return false; + } + + public static boolean allowedOutOfCombat(Power power) { + switch (power.castingMode.name()) { + case "NONE": + case "BOTH": + case "NONCOMBAT": + return true; + } + return false; + } }