From 45b834c4246a4e54f24e28527c10a344577cbeda Mon Sep 17 00:00:00 2001 From: Felix Linker Date: Mon, 20 Aug 2018 02:12:06 +0200 Subject: [PATCH] Added summary and overall sdps to offence table --- src/app/components/Offence.jsx | 17 +++++++++++++++++ src/app/shipyard/Calculations.js | 13 +++++++++++++ 2 files changed, 30 insertions(+) diff --git a/src/app/components/Offence.jsx b/src/app/components/Offence.jsx index 0898a57f..737303d0 100644 --- a/src/app/components/Offence.jsx +++ b/src/app/components/Offence.jsx @@ -154,11 +154,13 @@ export default class Offence extends TranslatedComponent { let thermalArmourSDps = 0; let totalSEps = 0; + let totalSDps = 0; const rows = []; for (let i = 0; i < damage.length; i++) { const weapon = damage[i]; + totalSDps += weapon.sdps.base.total; totalSEps += weapon.seps; absoluteShieldsSDps += weapon.sdps.shields.absolute; explosiveShieldsSDps += weapon.sdps.shields.explosive; @@ -174,6 +176,12 @@ export default class Offence extends TranslatedComponent { effectivenessShieldsTooltipDetails.push(
{translate('resistance') + ' ' + formats.pct1(weapon.effectiveness.shields.resistance)}
); effectivenessShieldsTooltipDetails.push(
{translate('power distributor') + ' ' + formats.pct1(weapon.effectiveness.shields.sys)}
); + const baseSDpsTooltipDetails = []; + if (weapon.sdps.shields.absolute) baseSDpsTooltipDetails.push(
{translate('absolute') + ' ' + formats.f1(weapon.sdps.base.absolute)}
); + if (weapon.sdps.shields.explosive) baseSDpsTooltipDetails.push(
{translate('explosive') + ' ' + formats.f1(weapon.sdps.base.explosive)}
); + if (weapon.sdps.shields.kinetic) baseSDpsTooltipDetails.push(
{translate('kinetic') + ' ' + formats.f1(weapon.sdps.base.kinetic)}
); + if (weapon.sdps.shields.thermal) baseSDpsTooltipDetails.push(
{translate('thermal') + ' ' + formats.f1(weapon.sdps.base.thermal)}
); + const effectiveShieldsSDpsTooltipDetails = []; if (weapon.sdps.shields.absolute) effectiveShieldsSDpsTooltipDetails.push(
{translate('absolute') + ' ' + formats.f1(weapon.sdps.shields.absolute)}
); if (weapon.sdps.shields.explosive) effectiveShieldsSDpsTooltipDetails.push(
{translate('explosive') + ' ' + formats.f1(weapon.sdps.shields.explosive)}
); @@ -199,6 +207,7 @@ export default class Offence extends TranslatedComponent { {weapon.classRating} {translate(weapon.name)} {weapon.engineering ? ' (' + weapon.engineering + ')' : null } + {formats.f1(weapon.sdps.base.total)} {formats.f1(weapon.sdps.shields.total)} {formats.pct1(weapon.effectiveness.shields.total)} {formats.f1(weapon.sdps.armour.total)} @@ -231,10 +240,12 @@ export default class Offence extends TranslatedComponent { {translate('weapon')} + {translate('overall')} {translate('opponent\'s shields')} {translate('opponent\'s armour')} + {'sdps'} {'sdps'} {'eft'} {'sdps'} @@ -243,6 +254,12 @@ export default class Offence extends TranslatedComponent { {rows} + + ={formats.f1(totalSDps)} + ={formats.f1(totalShieldsSDps)} + + ={formats.f1(totalArmourSDps)} + diff --git a/src/app/shipyard/Calculations.js b/src/app/shipyard/Calculations.js index c330243b..32fa240b 100644 --- a/src/app/shipyard/Calculations.js +++ b/src/app/shipyard/Calculations.js @@ -819,6 +819,13 @@ export function _weaponSustainedDps(m, opponent, opponentShields, opponentArmour const weapon = { eps: 0, damage: { + base: { + absolute: 0, + explosive: 0, + kinetic: 0, + thermal: 0, + total: 0, + }, shields: { absolute: 0, explosive: 0, @@ -863,6 +870,12 @@ export function _weaponSustainedDps(m, opponent, opponentShields, opponentArmour sDps *= dropoff; } + weapon.damage.base.absolute = sDps * m.getDamageDist().A; + weapon.damage.base.explosive = sDps * m.getDamageDist().E; + weapon.damage.base.kinetic = sDps * m.getDamageDist().K; + weapon.damage.base.thermal = sDps * m.getDamageDist().T; + weapon.damage.base.total = sDps; + // Piercing/hardness modifier (for armour only) const armourMultiple = m.getPiercing() >= opponent.hardness ? 1 : m.getPiercing() / opponent.hardness; weapon.effectiveness.armour.hardness = armourMultiple;