Browse Source

Rework of helper method

feature-config-usage
MagicBot 4 days ago
parent
commit
7fd55bb6f3
  1. 28
      src/engine/wpakpowers/WpakPowerManager.java

28
src/engine/wpakpowers/WpakPowerManager.java

@ -423,27 +423,29 @@ public class WpakPowerManager { @@ -423,27 +423,29 @@ public class WpakPowerManager {
float scaledValue;
mbEnums.ModificationType modificationType = mbEnums.ModificationType.ADD;
// Method scales by either integer or float values driven by the curve type
// Only subset of these used for percent heals and such
// are multiplicative. Everything else is additive.
if (EnumSet.of(mbEnums.ModType.Health, mbEnums.ModType.Mana,
mbEnums.ModType.Stamina).contains(modifierEntry.type))
if (modifierEntry.percentage == 0)
modificationType = mbEnums.ModificationType.MULTIPLY;
if (modifierEntry.percentage != 0f) { //Stat Percent Modifiers
if (modificationType.equals(mbEnums.ModificationType.ADD))
scaledValue = modifierEntry.percentage + (modifierEntry.compoundCurveType.getValue() * rank);
else
scaledValue = modifierEntry.percentage * (1 + (modifierEntry.compoundCurveType.getValue() * rank));
scaledValue = scaledValue * 0.01f;
} else { //Stat Modifiers
if (modificationType.equals(mbEnums.ModificationType.ADD))
scaledValue = modifierEntry.min + (modifierEntry.compoundCurveType.getValue() * rank);
else
scaledValue = modifierEntry.min * (1 + (modifierEntry.compoundCurveType.getValue() * rank));
return modifierEntry.percentage != 0f
? calculatePercentageBasedValue(modifierEntry, rank, modificationType)
: calculateBaseValue(modifierEntry, rank, modificationType);
}
return scaledValue;
private static float calculatePercentageBasedValue(ModifierEntry modifierEntry, int rank, mbEnums.ModificationType modificationType) {
float scaledValue = modificationType.equals(mbEnums.ModificationType.ADD)
? modifierEntry.percentage + (modifierEntry.compoundCurveType.getValue() * rank)
: modifierEntry.percentage * (1 + (modifierEntry.compoundCurveType.getValue() * rank));
return scaledValue * 0.01f;
}
private static float calculateBaseValue(ModifierEntry modifierEntry, int rank, mbEnums.ModificationType modificationType) {
return modificationType.equals(mbEnums.ModificationType.ADD)
? modifierEntry.min + (modifierEntry.compoundCurveType.getValue() * rank)
: modifierEntry.min * (1 + (modifierEntry.compoundCurveType.getValue() * rank));
}
}

Loading…
Cancel
Save