| 53 | } |
| 54 | |
| 55 | StatModifier jsonToStatModifier(Json const& config) { |
| 56 | String statName = config.getString("stat"); |
| 57 | if (auto baseMultiplier = config.optFloat("baseMultiplier")) { |
| 58 | return StatModifier(StatBaseMultiplier{statName, *baseMultiplier}); |
| 59 | } else if (auto amount = config.optFloat("amount")) { |
| 60 | return StatModifier(StatValueModifier{statName, *amount}); |
| 61 | } else if (auto effectiveMultiplier = config.optFloat("effectiveMultiplier")) { |
| 62 | return StatModifier(StatEffectiveMultiplier{statName, *effectiveMultiplier}); |
| 63 | } else { |
| 64 | throw JsonException("Could not find 'baseMultiplier' or 'effectiveMultiplier' or 'amount' element in stat effect config"); |
| 65 | } |
| 66 | } |
| 67 | |
| 68 | Json jsonFromStatModifier(StatModifier const& modifier) { |
| 69 | if (auto baseMultiplier = modifier.ptr<StatBaseMultiplier>()) { |
no test coverage detected