public float getResultValue() {
// For now, add all modifiers and multiply by all multipliers. Negative modifiers cap to zero, but negative
// multipliers remain.
float result = baseValue;
TFloatIterator modifierIter = modifiers.iterator();
while (modifierIter.hasNext()) {
result += modifierIter.next();
}
result = Math.max(0, result);
TFloatIterator multiplierIter = multipliers.iterator();
while (multiplierIter.hasNext()) {
result *= multiplierIter.next();
}
final TFloatIterator postModifierIter = postModifiers.iterator();
while (postModifierIter.hasNext()) {
result += postModifierIter.next();
}
return result;
}