diff --git a/src/engine/devcmd/cmds/PrintStatsCmd.java b/src/engine/devcmd/cmds/PrintStatsCmd.java index e8d1e694..ef49b3cf 100644 --- a/src/engine/devcmd/cmds/PrintStatsCmd.java +++ b/src/engine/devcmd/cmds/PrintStatsCmd.java @@ -90,7 +90,7 @@ public class PrintStatsCmd extends AbstractDevCmd { newOut += "=== POWERS ===" + newline; for(CharacterPower power : pc.getPowers().values()){ if(power.getPower().requiresHitRoll) { - newOut += power.getPower().name + " ATR: " + (int) PlayerCombatStats.getSpellAtr(pc,power) + newline; + newOut += power.getPower().name + " ATR: " + Math.round(PlayerCombatStats.getSpellAtr(pc,power.getPower())) + newline; } } throwbackInfo(pc, newOut); diff --git a/src/engine/gameManager/PowersManager.java b/src/engine/gameManager/PowersManager.java index 97ea6e76..2ddd99ed 100644 --- a/src/engine/gameManager/PowersManager.java +++ b/src/engine/gameManager/PowersManager.java @@ -2435,7 +2435,8 @@ public enum PowersManager { public static boolean testAttack(PlayerCharacter pc, AbstractWorldObject awo, PowersBase pb, PerformActionMsg msg) { // Get defense for target - float atr = CharacterSkill.getATR(pc, pb.getSkillName()); + //float atr = CharacterSkill.getATR(pc, pb.getSkillName()); + float atr = PlayerCombatStats.getSpellAtr(pc, pb); float defense; if (AbstractWorldObject.IsAbstractCharacter(awo)) { diff --git a/src/engine/objects/PlayerCombatStats.java b/src/engine/objects/PlayerCombatStats.java index fe8bcf2b..9b28ffbb 100644 --- a/src/engine/objects/PlayerCombatStats.java +++ b/src/engine/objects/PlayerCombatStats.java @@ -878,12 +878,11 @@ public class PlayerCombatStats { return HIT_VALUE_MAP.get(key); } - public static float getSpellAtr(PlayerCharacter pc, CharacterPower power) { + public static float getSpellAtr(PlayerCharacter pc, PowersBase pb) { if (pc == null) return 0f; - PowersBase pb = power.getPower(); if(pb == null) return 0.0f; @@ -899,7 +898,10 @@ public class PlayerCombatStats { for(Effect eff : pc.charItemManager.getEquipped(1).effects.values()){ for (AbstractEffectModifier mod : eff.getEffectModifiers()){ if(mod.modType.equals(Enum.ModType.OCV)){ - weaponatr1 += mod.minMod + (mod.getRamp() * power.getTrains()); + float base = mod.minMod; + float ramp = mod.getRamp(); + int trains = eff.getTrains(); + weaponatr1 = base + (ramp * trains); } } } @@ -910,7 +912,10 @@ public class PlayerCombatStats { for(Effect eff : pc.charItemManager.getEquipped(2).effects.values()){ for (AbstractEffectModifier mod : eff.getEffectModifiers()){ if(mod.modType.equals(Enum.ModType.OCV)){ - weaponatr2 += mod.minMod + (mod.getRamp() * power.getTrains()); + float base = mod.minMod; + float ramp = mod.getRamp(); + int trains = eff.getTrains(); + weaponatr2 = base + (ramp * trains); } } } @@ -953,7 +958,12 @@ public class PlayerCombatStats { } } - return (float) ((7 * modifiedfocusline +0.5 * (modifieddex)+weaponatr1+weaponatr2) * precise + (ATRbuffs - (weaponatr1+weaponatr2))) * stanceMod; + float atr = 7 * modifiedfocusline; + atr += (modifieddex * 0.5f) + weaponatr1 + weaponatr2; + atr *= precise; + atr += ATRbuffs; + atr *= stanceMod; + return atr; } }