Fix configurable upgrade modifiers (8.0 is because 8 is maximum number of upgrades (not 9, I was being silly before) and we want to return def*upgradeModifier^1 when fully upgraded).
Hopefully fix the weird compile problem in a smoother way (the generic gets erased at compile time anyway but apparently IDEA thinks it matters).