- { m.getMinMass() ?
{translate('minimum mass')}: {formats.int(m.getMinMass())}{units.T}
: null }
- { m.getOptMass() ?
{translate('optimal mass')}: {formats.int(m.getOptMass())}{units.T}
: null }
- { m.getMaxMass() ?
{translate('max mass')}: {formats.int(m.getMaxMass())}{units.T}
: null }
- { m.getOptMul() ?
{translate('optimal multiplier')}: {formats.rPct(m.getOptMul())}
: null }
+ { m.getMinMass() ?
{translate('minmass')}: {formats.int(m.getMinMass())}{units.T}
: null }
+ { m.getOptMass() ?
{translate('optmass')}: {formats.int(m.getOptMass())}{units.T}
: null }
+ { m.getMaxMass() ?
{translate('maxmass')}: {formats.int(m.getMaxMass())}{units.T}
: null }
+ { m.getOptMul() ?
{translate('optmul')}: {formats.rPct(m.getOptMul())}
: null }
{ m.getRange() ?
{translate('range', m.grp)}: {formats.f2(m.getRange())}{units.km}
: null }
{ m.time ?
{translate('time')}: {formats.time(m.time)}
: null }
{ m.getThermalEfficiency() ?
{translate('efficiency')}: {formats.f2(m.getThermalEfficiency())}
: null }
diff --git a/src/app/i18n/en.json b/src/app/i18n/en.json
index eba7f829..1290640c 100644
--- a/src/app/i18n/en.json
+++ b/src/app/i18n/en.json
@@ -276,8 +276,10 @@
"thermres": "Thermal resistance",
"wepcap": "Weapons capacity",
"weprate": "Weapons recharge rate",
+ "minmass": "Minimum mass",
"minmass_sg": "Minimum hull mass",
"optmass_sg": "Optimal hull mass",
+ "maxmass": "Maximum mass",
"maxmass_sg": "Maximum hull mass",
"minmul_sg": "Minimum strength",
"optmul_sg": "Optimal strength",
diff --git a/src/app/utils/BlueprintFunctions.js b/src/app/utils/BlueprintFunctions.js
index 3365c05c..03d62584 100644
--- a/src/app/utils/BlueprintFunctions.js
+++ b/src/app/utils/BlueprintFunctions.js
@@ -307,10 +307,22 @@ export function isChangeValueBeneficial(feature, value) {
* @returns {Object} The matching blueprint
*/
export function getBlueprint(name, module) {
+ // Special case for multi-cannons. Conflicting 'Weapon_Overcharged' Blueprints exist due to FD's naming conventions. If this blueprint is for a multi-cannon, we need to use the correct blueprint.
+ if (name === 'weapon_overcharged') {
+ if (module.symbol.match(/MultiCannon/i)) {
+ name = 'mc_overcharged';
+ }
+ }
+ else if (name === 'Weapon_Overcharged') {
+ if (module.symbol.match(/MultiCannon/i)) {
+ name = 'MC_Overcharged';
+ }
+ }
// Start with a copy of the blueprint
const findMod = val => Object.keys(Modifications.blueprints).find(elem => elem.toString().toLowerCase().search(val.toString().toLowerCase().replace(/(OutfittingFieldType_|persecond)/igm, '')) >= 0);
const found = Modifications.blueprints[findMod(name)];
if (!found || !found.fdname) {
+ console.error('Blueprint not found:', name);
return {};
}
const blueprint = JSON.parse(JSON.stringify(found));
diff --git a/src/app/utils/JournalUtils.js b/src/app/utils/JournalUtils.js
index 5b7cf0f5..c56a9c3f 100644
--- a/src/app/utils/JournalUtils.js
+++ b/src/app/utils/JournalUtils.js
@@ -117,7 +117,7 @@ export function shipFromLoadoutJSON(json) {
let powerplant = _moduleFromFdName(module.Item);
// Check the powerplant returned is valid
if (!_isValidImportedModule(powerplant, 'powerplant'))
- {
+ {
powerplant = _moduleFromFdName('Int_Missing_Powerplant');
module.Engineering = null;
}
@@ -130,7 +130,7 @@ export function shipFromLoadoutJSON(json) {
let thrusters = _moduleFromFdName(module.Item);
// Check the thrusters returned is valid
if (!_isValidImportedModule(thrusters, 'thrusters'))
- {
+ {
thrusters = _moduleFromFdName('Int_Missing_Engine');
module.Engineering = null;
}
@@ -143,7 +143,7 @@ export function shipFromLoadoutJSON(json) {
let frameshiftdrive = _moduleFromFdName(module.Item);
// Check the frameshiftdrive returned is valid
if (!_isValidImportedModule(frameshiftdrive, 'frameshiftdrive'))
- {
+ {
frameshiftdrive = _moduleFromFdName('Int_Missing_Hyperdrive');
module.Engineering = null;
}
@@ -156,7 +156,7 @@ export function shipFromLoadoutJSON(json) {
let lifesupport = _moduleFromFdName(module.Item);
// Check the lifesupport returned is valid
if (!_isValidImportedModule(lifesupport, 'lifesupport'))
- {
+ {
lifesupport = _moduleFromFdName('Int_Missing_LifeSupport');
module.Engineering = null;
}
@@ -169,8 +169,8 @@ export function shipFromLoadoutJSON(json) {
let powerdistributor = _moduleFromFdName(module.Item);
// Check the powerdistributor returned is valid
if (!_isValidImportedModule(powerdistributor, 'powerdistributor'))
- {
- powerdistributor = _moduleFromFdName('Int_Missing_PowerDistributor');
+ {
+ powerdistributor = _moduleFromFdName('Int_Missing_PowerDistributor');
module.Engineering = null;
}
ship.use(ship.standard[4], powerdistributor, true);
@@ -182,7 +182,7 @@ export function shipFromLoadoutJSON(json) {
let sensors = _moduleFromFdName(module.Item);
// Check the sensors returned is valid
if (!_isValidImportedModule(sensors, 'sensors'))
- {
+ {
sensors = _moduleFromFdName('Int_Missing_Sensors');
module.Engineering = null;
}
@@ -195,7 +195,7 @@ export function shipFromLoadoutJSON(json) {
let fueltank = _moduleFromFdName(module.Item);
// Check the fueltank returned is valid
if (!_isValidImportedModule(fueltank, 'fueltank'))
- {
+ {
fueltank = _moduleFromFdName('Int_Missing_FuelTank');
}
ship.use(ship.standard[6], fueltank, true);
@@ -228,7 +228,7 @@ export function shipFromLoadoutJSON(json) {
} else {
hardpoint = _moduleFromFdName(hardpointSlot.Item);
// Check the hardpoint module returned is valid
- if (!_isValidImportedModule(hardpoint, 'hardpoint')){
+ if (!_isValidImportedModule(hardpoint, 'hardpoint')){
// Check if it's a Utility or Hardpoint
if (hardpointSlot.Slot.toLowerCase().search(/tiny/))
{
@@ -293,12 +293,12 @@ export function shipFromLoadoutJSON(json) {
let internal = _moduleFromFdName(internalJson.Item);
// Check the internal module returned is valid
if (!_isValidImportedModule(internal, 'internal'))
- {
+ {
internal = _moduleFromFdName('Int_Missing_Module');
ship.use(ship.internal[i], internal, true);
ship.internal[i].enabled = internalJson.On === true;
ship.internal[i].priority = internalJson.Priority;
- //throw 'Unknown internal module: "' + module.Item + '"';
+ //throw 'Unknown internal module: "' + module.Item + '"';
}
else {
ship.use(ship.internal[i], internal, true);
@@ -349,6 +349,7 @@ function _addModifications(module, modifiers, quality, blueprint, grade, special
// Add the blueprint definition, grade and special
if (blueprint) {
module.blueprint = getBlueprint(blueprint, module);
+
if (grade) {
module.blueprint.grade = Number(grade);
}