public void Modify(ref float baseValue) { switch (applicationType) { case SpellModifierApplicationType.Flat: baseValue += value; break; case SpellModifierApplicationType.Percent: baseValue = baseValue.ApplyPercentage(value); break; default: throw new ArgumentOutOfRangeException(nameof(applicationType), applicationType, "Unknown modifier application type!"); } }
public void Modify(Unit caster, Unit target, ref float baseValue) { float finalValue = value; conditionalModifierValue?.Modify(caster, target, ref finalValue); switch (applicationType) { case SpellModifierApplicationType.Flat: baseValue += finalValue; break; case SpellModifierApplicationType.Percent: baseValue += baseValue.ApplyPercentage(finalValue); break; default: throw new ArgumentOutOfRangeException(nameof(applicationType), applicationType, "Unknown modifier application type!"); } }