Use ship name rather than model if possible

This commit is contained in:
Cmdr McDonald
2017-02-08 09:24:13 +00:00
parent 191e31ff18
commit 6e71f5e6db
3 changed files with 35 additions and 66 deletions

View File

@@ -1,6 +1,7 @@
#2.2.14 #2.2.14
* Ensure that jitter is shown correctly when the result of a special effect * Ensure that jitter is shown correctly when the result of a special effect
* Use restyled blueprint information * Use restyled blueprint information
* Use the ship name (if available) rather than the ship model for the window title
#2.2.13 #2.2.13
* Add 'time to drain' summary value. This is the time to drain the WEP capacitor if firing all enabled weapons * Add 'time to drain' summary value. This is the time to drain the WEP capacitor if firing all enabled weapons

View File

@@ -87,7 +87,7 @@ export default class ModificationsMenu extends TranslatedComponent {
const { m, onChange, ship } = props; const { m, onChange, ship } = props;
let modifications = []; let modifications = [];
for (const modName of Modifications.modules[m.grp].modifications) { for (const modName of Modifications.modules[m.grp].modifications) {
if (Modifications.modifications[modName].type === 'percentage' || Modifications.modifications[modName].type === 'numeric') { if (!Modifications.modifications[modName].hidden) {
const key = modName + (m.getModValue(modName) / 100 || 0); const key = modName + (m.getModValue(modName) / 100 || 0);
modifications.push(<Modification key={ key } ship={ ship } m={ m } name={ modName } value={ m.getModValue(modName) / 100 || 0 } onChange={ onChange }/>); modifications.push(<Modification key={ key } ship={ ship } m={ m } name={ modName } value={ m.getModValue(modName) / 100 || 0 } onChange={ onChange }/>);
} }
@@ -147,6 +147,30 @@ export default class ModificationsMenu extends TranslatedComponent {
this.props.onChange(); this.props.onChange();
} }
/**
* Set the result of a roll
* @param {object} ship The ship to which the roll applies
* @param {object} m The module to which the roll applies
* @param {string} featureName The modification feature to which the roll applies
* @param {number} value The value of the roll
*/
_setRollResult(ship, m, featureName, value) {
if (Modifications.modifications[featureName].method !== 'overwrite') {
if (m.grp == 'sb' && featureName == 'shieldboost') {
// Shield boosters are a special case. Their boost is dependent on their base so we need to calculate the value here
value = ((1 + m.shieldboost) * (1 + value) - 1) / m.shieldboost - 1;
}
}
if (Modifications.modifications[featureName].type == 'percentage') {
ship.setModification(m, featureName, value * 10000);
} else if (Modifications.modifications[featureName].type == 'numeric') {
ship.setModification(m, featureName, value * 100);
} else {
ship.setModification(m, featureName, value);
}
}
/** /**
* Provide a 'worst' roll within the information we have * Provide a 'worst' roll within the information we have
*/ */
@@ -154,23 +178,9 @@ export default class ModificationsMenu extends TranslatedComponent {
const { m, ship } = this.props; const { m, ship } = this.props;
const features = m.blueprint.grades[m.blueprint.grade].features; const features = m.blueprint.grades[m.blueprint.grade].features;
for (const featureName in features) { for (const featureName in features) {
if (Modifications.modifications[featureName].method == 'overwrite') { let value = features[featureName][0];
ship.setModification(m, featureName, features[featureName][1]); this._setRollResult(ship, m, featureName, value);
} else {
let value = features[featureName][0];
if (m.grp == 'sb' && featureName == 'shieldboost') {
// Shield boosters are a special case. Their boost is dependent on their base so we need to calculate the value here
value = ((1 + m.shieldboost) * (1 + value) - 1) / m.shieldboost - 1;
}
if (Modifications.modifications[featureName].type == 'percentage') {
ship.setModification(m, featureName, value * 10000);
} else if (Modifications.modifications[featureName].type == 'numeric') {
ship.setModification(m, featureName, value * 100);
}
}
} }
this.setState({ modifications: this._setModifications(this.props) }); this.setState({ modifications: this._setModifications(this.props) });
this.props.onChange(); this.props.onChange();
} }
@@ -182,23 +192,9 @@ export default class ModificationsMenu extends TranslatedComponent {
const { m, ship } = this.props; const { m, ship } = this.props;
const features = m.blueprint.grades[m.blueprint.grade].features; const features = m.blueprint.grades[m.blueprint.grade].features;
for (const featureName in features) { for (const featureName in features) {
if (Modifications.modifications[featureName].method == 'overwrite') { let value = (features[featureName][0] + features[featureName][1]) / 2;
ship.setModification(m, featureName, (features[featureName][0] + features[featureName][1]) / 2); this._setRollResult(ship, m, featureName, value);
} else {
let value = (features[featureName][0] + features[featureName][1]) / 2;
if (m.grp == 'sb' && featureName == 'shieldboost') {
// Shield boosters are a special case. Their boost is dependent on their base so we need to calculate the value here
value = ((1 + m.shieldboost) * (1 + value) - 1) / m.shieldboost - 1;
}
if (Modifications.modifications[featureName].type == 'percentage') {
ship.setModification(m, featureName, value * 10000);
} else if (Modifications.modifications[featureName].type == 'numeric') {
ship.setModification(m, featureName, value * 100);
}
}
} }
this.setState({ modifications: this._setModifications(this.props) }); this.setState({ modifications: this._setModifications(this.props) });
this.props.onChange(); this.props.onChange();
} }
@@ -210,23 +206,9 @@ export default class ModificationsMenu extends TranslatedComponent {
const { m, ship } = this.props; const { m, ship } = this.props;
const features = m.blueprint.grades[m.blueprint.grade].features; const features = m.blueprint.grades[m.blueprint.grade].features;
for (const featureName in features) { for (const featureName in features) {
if (Modifications.modifications[featureName].method == 'overwrite') { let value = features[featureName][0] + (Math.random() * (features[featureName][1] - features[featureName][0]));
ship.setModification(m, featureName, features[featureName][1]); this._setRollResult(ship, m, featureName, value);
} else {
let value = features[featureName][0] + (Math.random() * (features[featureName][1] - features[featureName][0]));
if (m.grp == 'sb' && featureName == 'shieldboost') {
// Shield boosters are a special case. Their boost is dependent on their base so we need to calculate the value here
value = ((1 + m.shieldboost) * (1 + value) - 1) / m.shieldboost - 1;
}
if (Modifications.modifications[featureName].type == 'percentage') {
ship.setModification(m, featureName, value * 10000);
} else if (Modifications.modifications[featureName].type == 'numeric') {
ship.setModification(m, featureName, value * 100);
}
}
} }
this.setState({ modifications: this._setModifications(this.props) }); this.setState({ modifications: this._setModifications(this.props) });
this.props.onChange(); this.props.onChange();
} }
@@ -238,23 +220,9 @@ export default class ModificationsMenu extends TranslatedComponent {
const { m, ship } = this.props; const { m, ship } = this.props;
const features = m.blueprint.grades[m.blueprint.grade].features; const features = m.blueprint.grades[m.blueprint.grade].features;
for (const featureName in features) { for (const featureName in features) {
if (Modifications.modifications[featureName].method == 'overwrite') { let value = features[featureName][1];
ship.setModification(m, featureName, features[featureName][1]); this._setRollResult(ship, m, featureName, value);
} else {
let value = features[featureName][1];
if (m.grp == 'sb' && featureName == 'shieldboost') {
// Shield boosters are a special case. Their boost is dependent on their base so we need to calculate the value here
value = ((1 + m.shieldboost) * (1 + value) - 1) / m.shieldboost - 1;
}
if (Modifications.modifications[featureName].type == 'percentage') {
ship.setModification(m, featureName, value * 10000);
} else if (Modifications.modifications[featureName].type == 'numeric') {
ship.setModification(m, featureName, value * 100);
}
}
} }
this.setState({ modifications: this._setModifications(this.props) }); this.setState({ modifications: this._setModifications(this.props) });
this.props.onChange(); this.props.onChange();
} }

View File

@@ -36,7 +36,7 @@ const SPEED_COLORS = ['#0088d2', '#ff8c0d', '#D26D00', '#c06400'];
* @return {String} Document title * @return {String} Document title
*/ */
function getTitle(shipName, buildName) { function getTitle(shipName, buildName) {
return `${shipName}${buildName ? ` - ${buildName}` : ''}`; return buildName ? buildName : shipName;
} }
/** /**