From f5801e083729772d1aa5e0f7eac20491cd564b24 Mon Sep 17 00:00:00 2001 From: MagicBot Date: Thu, 20 Feb 2025 07:54:41 -0500 Subject: [PATCH] Static method to apply curves --- src/engine/mbEnums.java | 3 +-- src/engine/wpakpowers/Behaviour.java | 16 +--------------- src/engine/wpakpowers/WpakPowerManager.java | 20 ++++++++++++++++++++ 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/src/engine/mbEnums.java b/src/engine/mbEnums.java index 3ee211c4..828756db 100644 --- a/src/engine/mbEnums.java +++ b/src/engine/mbEnums.java @@ -1623,8 +1623,7 @@ public class mbEnums { Warrior(SexType.NONE), Wizard(SexType.NONE), Nightstalker(SexType.NONE), - Necromancer(SexType.NONE), - ; + Necromancer(SexType.NONE); private final SexType sexRestriction; diff --git a/src/engine/wpakpowers/Behaviour.java b/src/engine/wpakpowers/Behaviour.java index 21625ced..4dbd982c 100644 --- a/src/engine/wpakpowers/Behaviour.java +++ b/src/engine/wpakpowers/Behaviour.java @@ -31,22 +31,8 @@ public class Behaviour { public static Object Standard(AbstractCharacter caster, AbstractWorldObject target, Power power, ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { - boolean useAdditiveCurve = true; - float modifierCurveValue = modifierEntry.compoundCurveType.getValue(); - float modValue; - if (modifierCurveValue > 0 && modifierCurveValue < .1 && - modifierEntry.min != 0 && modifierEntry.max != 0) - useAdditiveCurve = false; - - if (useAdditiveCurve) - modValue = powerAction.curve.getValue() + (modifierCurveValue * rank); - else - modValue = powerAction.curve.getValue() * (1 + (modifierCurveValue * rank)); - - modValue = modValue * 0.01f; - - return modValue; + return WpakPowerManager.applyCurveToModifier(powerAction, modifierEntry, rank); } public static Object FPSubTypeAttr(AbstractCharacter caster, AbstractWorldObject target, Power power, diff --git a/src/engine/wpakpowers/WpakPowerManager.java b/src/engine/wpakpowers/WpakPowerManager.java index 54f5942d..bd3e7c1e 100644 --- a/src/engine/wpakpowers/WpakPowerManager.java +++ b/src/engine/wpakpowers/WpakPowerManager.java @@ -427,4 +427,24 @@ public class WpakPowerManager { } return false; } + + public static float applyCurveToModifier(ActionEntry powerAction, ModifierEntry modifierEntry, int rank) { + + boolean additiveMode = true; + float modifierCurveValue = modifierEntry.compoundCurveType.getValue(); + float modValue; + + if (modifierCurveValue > 0 && modifierCurveValue < .1 && + modifierEntry.min != 0 && modifierEntry.max != 0) + additiveMode = false; + + if (additiveMode) + modValue = powerAction.curve.getValue() + (modifierCurveValue * rank); + else + modValue = powerAction.curve.getValue() * (1 + (modifierCurveValue * rank)); + + modValue = modValue * 0.01f; + + return modValue; + } }