Browse Source

Static method to apply curves

feature-config-usage
MagicBot 2 days ago
parent
commit
f5801e0837
  1. 3
      src/engine/mbEnums.java
  2. 16
      src/engine/wpakpowers/Behaviour.java
  3. 20
      src/engine/wpakpowers/WpakPowerManager.java

3
src/engine/mbEnums.java

@ -1623,8 +1623,7 @@ public class mbEnums { @@ -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;

16
src/engine/wpakpowers/Behaviour.java

@ -31,22 +31,8 @@ public class Behaviour { @@ -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,

20
src/engine/wpakpowers/WpakPowerManager.java

@ -427,4 +427,24 @@ public class WpakPowerManager { @@ -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;
}
}

Loading…
Cancel
Save