From 77d3053ff880e83363d3fa95e737646678dca649 Mon Sep 17 00:00:00 2001 From: Cmdr McDonald Date: Mon, 20 Feb 2017 14:05:19 +0000 Subject: [PATCH] Handle 'higher better' modifications when both min and max are negative - fixes #80 --- src/app/components/ModificationsMenu.jsx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/app/components/ModificationsMenu.jsx b/src/app/components/ModificationsMenu.jsx index 76e088ad..0b25479b 100644 --- a/src/app/components/ModificationsMenu.jsx +++ b/src/app/components/ModificationsMenu.jsx @@ -218,7 +218,23 @@ export default class ModificationsMenu extends TranslatedComponent { const { m, ship } = this.props; const features = m.blueprint.grades[m.blueprint.grade].features; for (const featureName in features) { - const value = Modifications.modifications[featureName].higherbetter ? features[featureName][1] : features[featureName][0]; + let value; + if (Modifications.modifications[featureName].higherbetter) { + // Higher is better, but is this making it better or worse? + if (features[featureName][0] < 0 || (features[featureName][0] === 0 && features[featureName][1] < 0)) { + value = features[featureName][0]; + } else { + value = features[featureName][1]; + } + } else { + // Higher is worse, but is this making it better or worse? + if (features[featureName][0] < 0 || (features[featureName][0] === 0 && features[featureName][1] < 0)) { + value = features[featureName][1]; + } else { + value = features[featureName][0]; + } + } + this._setRollResult(ship, m, featureName, value); } this.setState({ modifications: this._setModifications(this.props) });