diff --git a/ChangeLog.md b/ChangeLog.md index bb6bc4c2..bdca7dd9 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,6 +1,7 @@ #2.2.10 * Fix detailed export of module reinforcement packages * Use damagedist for exact breakdown of weapons that have more than one type of damage + * Use new-style modification validity data #2.2.9 * Use SSL-enabled server for shortlinks diff --git a/src/app/components/HardpointSlot.jsx b/src/app/components/HardpointSlot.jsx index 8436331b..a8fc6c9f 100644 --- a/src/app/components/HardpointSlot.jsx +++ b/src/app/components/HardpointSlot.jsx @@ -41,7 +41,7 @@ export default class HardpointSlot extends Slot { let classRating = `${m.class}${m.rating}${m.missile ? '/' + m.missile : ''}`; let { drag, drop } = this.props; let { termtip, tooltip } = this.context; - let validMods = Modifications.validity[m.grp] || []; + let validMods = Modifications.modules[m.grp].modifications || []; let showModuleResistances = Persist.showModuleResistances(); // Modifications tooltip shows blueprint and grade, if available diff --git a/src/app/components/InternalSlot.jsx b/src/app/components/InternalSlot.jsx index 1bb7bf4b..4ce53f83 100644 --- a/src/app/components/InternalSlot.jsx +++ b/src/app/components/InternalSlot.jsx @@ -23,7 +23,7 @@ export default class InternalSlot extends Slot { let classRating = m.class + m.rating; let { drag, drop, ship } = this.props; let { termtip, tooltip } = this.context; - let validMods = Modifications.validity[m.grp] || []; + let validMods = Modifications.modules[m.grp].modifications || []; let showModuleResistances = Persist.showModuleResistances(); // Modifications tooltip shows blueprint and grade, if available diff --git a/src/app/components/ModificationsMenu.jsx b/src/app/components/ModificationsMenu.jsx index 1a56180f..3ea35c6c 100644 --- a/src/app/components/ModificationsMenu.jsx +++ b/src/app/components/ModificationsMenu.jsx @@ -36,15 +36,22 @@ export default class ModificationsMenu extends TranslatedComponent { */ _initState(props, context) { let { m, onChange, ship } = props; - let list = []; - for (let modName of Modifications.validity[m.grp]) { - if (Modifications.modifications[modName].type != 'hidden') { - list.push(); + let blueprints = []; + for (const blueprintName in Modifications.modules[m.grp].blueprints) { + for (const grade of Modifications.modules[m.grp].blueprints[blueprintName]) { + blueprints.push(
{Modifications.blueprints[blueprintName].name} grade {grade}
); } } - return { list }; + let modifications = []; + for (const modName of Modifications.modules[m.grp].modifications) { + if (Modifications.modifications[modName].type === 'percentage' || Modifications.modifications[modName].type === 'numeric') { + modifications.push(); + } + } + + return { blueprints, modifications }; } /** @@ -60,7 +67,8 @@ export default class ModificationsMenu extends TranslatedComponent { onContextMenu={stopCtxPropagation} onMouseOver={termtip.bind(null, 'HELP_MODIFICATIONS_MENU')} onMouseOut={tooltip.bind(null, null)} > - {this.state.list} + {this.state.blueprints} + {this.state.modifications} ); } diff --git a/src/app/components/StandardSlot.jsx b/src/app/components/StandardSlot.jsx index ebbd5485..d032fc00 100644 --- a/src/app/components/StandardSlot.jsx +++ b/src/app/components/StandardSlot.jsx @@ -46,7 +46,7 @@ export default class StandardSlot extends TranslatedComponent { let m = slot.m; let classRating = m.class + m.rating; let menu; - let validMods = m == null ? [] : (Modifications.validity[m.grp] || []); + let validMods = m == null ? [] : (Modifications.modules[m.grp].modifications || []); let showModuleResistances = Persist.showModuleResistances(); let mass = m.getMass() || m.cargo || m.fuel || 0; diff --git a/src/app/shipyard/Ship.js b/src/app/shipyard/Ship.js index 1f9fd2fc..ed276a60 100755 --- a/src/app/shipyard/Ship.js +++ b/src/app/shipyard/Ship.js @@ -1335,7 +1335,7 @@ export default class Ship { if (this.bulkheads.m && this.bulkheads.m.mods) { for (let modKey in this.bulkheads.m.mods) { // Filter out invalid modifications - if (Modifications.validity['bh'] && Modifications.validity['bh'].indexOf(modKey) != -1) { + if (Modifications.modules['bh'] && Modifications.modules['bh'].modifications.indexOf(modKey) != -1) { bulkheadMods.push({ id: Modifications.modifications[modKey].id, value: this.bulkheads.m.getModValue(modKey) }); } } @@ -1350,7 +1350,7 @@ export default class Ship { if (slot.m && slot.m.mods) { for (let modKey in slot.m.mods) { // Filter out invalid modifications - if (Modifications.validity[slot.m.grp] && Modifications.validity[slot.m.grp].indexOf(modKey) != -1) { + if (Modifications.modules[slot.m.grp] && Modifications.modules[slot.m.grp].modifications.indexOf(modKey) != -1) { slotMods.push({ id: Modifications.modifications[modKey].id, value: slot.m.getModValue(modKey) }); } } @@ -1365,7 +1365,7 @@ export default class Ship { if (slot.m && slot.m.mods) { for (let modKey in slot.m.mods) { // Filter out invalid modifications - if (Modifications.validity[slot.m.grp] && Modifications.validity[slot.m.grp].indexOf(modKey) != -1) { + if (Modifications.modules[slot.m.grp] && Modifications.modules[slot.m.grp].modifications.indexOf(modKey) != -1) { slotMods.push({ id: Modifications.modifications[modKey].id, value: slot.m.getModValue(modKey) }); } } @@ -1380,7 +1380,7 @@ export default class Ship { if (slot.m && slot.m.mods) { for (let modKey in slot.m.mods) { // Filter out invalid modifications - if (Modifications.validity[slot.m.grp] && Modifications.validity[slot.m.grp].indexOf(modKey) != -1) { + if (Modifications.modules[slot.m.grp] && Modifications.modules[slot.m.grp].modifications.indexOf(modKey) != -1) { slotMods.push({ id: Modifications.modifications[modKey].id, value: slot.m.getModValue(modKey) }); } } diff --git a/src/app/utils/SlotFunctions.js b/src/app/utils/SlotFunctions.js index a9481315..1c064c67 100644 --- a/src/app/utils/SlotFunctions.js +++ b/src/app/utils/SlotFunctions.js @@ -153,7 +153,7 @@ export function diffDetails(language, m, mm) { let mPowerGeneration = m.pgen || 0; let mmPowerGeneration = mm ? mm.getPowerGeneration() : 0; - if (mPowerGeneration != mmPowerGeneration) propDiffs.push(
{translate('pgen')}: {diff(formats.round, mPowerGeneration, mmPowerGeneration)}{units.MJ}
); + if (mPowerGeneration != mmPowerGeneration) propDiffs.push(
{translate('pgen')}: {diff(formats.round, mPowerGeneration, mmPowerGeneration)}{units.MJ}
); let mPowerUsage = m.power || 0; let mmPowerUsage = mm ? mm.getPowerUsage() : 0;