From ce5611aafd8851a9c6f350afc6b3956ec13b999c Mon Sep 17 00:00:00 2001
From: MagicBot <MagicBot@magicbane.com>
Date: Thu, 20 Feb 2025 13:28:19 -0500
Subject: [PATCH] Scaling method updated

---
 src/engine/wpakpowers/WpakPowerManager.java | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/src/engine/wpakpowers/WpakPowerManager.java b/src/engine/wpakpowers/WpakPowerManager.java
index cda73b65..f765a581 100644
--- a/src/engine/wpakpowers/WpakPowerManager.java
+++ b/src/engine/wpakpowers/WpakPowerManager.java
@@ -34,6 +34,7 @@ import engine.wpak.data.Effect;
 import engine.wpak.data.*;
 import org.pmw.tinylog.Logger;
 
+import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.HashSet;
 
@@ -430,21 +431,18 @@ public class WpakPowerManager {
 
     public static float applyCurveToModifier(ActionEntry powerAction, ModifierEntry modifierEntry, int rank) {
 
-        boolean additiveMode = true;
-        float modifierCurveValue = modifierEntry.compoundCurveType.getValue();
-        float modValue;
+        float scaledValue;
 
-        if (modifierCurveValue > 0 && modifierCurveValue < .1 &&
-                modifierEntry.min != 0 && modifierEntry.max != 0)
-            additiveMode = false;
+        // Method scales by either integer or float values driven by the curve type
 
-        if (additiveMode)
-            modValue = powerAction.curve.getValue() + (modifierCurveValue * rank);
+        if (EnumSet.of(mbEnums.CompoundCurveType.DefaultFlat, mbEnums.CompoundCurveType.DefaultSlope,
+                mbEnums.CompoundCurveType.DefaultSlopeDown).contains(powerAction.curve))
+            scaledValue = powerAction.curve.getValue() + (modifierEntry.compoundCurveType.getValue() * rank);
         else
-            modValue = powerAction.curve.getValue() * (1 + (modifierCurveValue * rank));
+            scaledValue = powerAction.curve.getValue() * (1 + (modifierEntry.compoundCurveType.getValue() * rank));
 
-        modValue = modValue * 0.01f;
+        scaledValue = scaledValue * 0.01f;
 
-        return modValue;
+        return scaledValue;
     }
 }