From 63dec9a68d5831fb34b6864467843357a9244ca2 Mon Sep 17 00:00:00 2001 From: Norman Date: Tue, 3 Oct 2017 10:05:09 -0700 Subject: [PATCH] add SBUL mitigation on links --- code/portal_detail_display_tools.js | 4 ++++ code/portal_info.js | 16 +++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/code/portal_detail_display_tools.js b/code/portal_detail_display_tools.js index 3df146c82..79c3a3943 100644 --- a/code/portal_detail_display_tools.js +++ b/code/portal_detail_display_tools.js @@ -228,5 +228,9 @@ window.getMitigationText = function(d,linkCount) { + '- shields:\t'+mitigationDetails.shields+'\n' + '- links:\t'+mitigationDetails.links; + if(mitigationDetails.linkBoost) { + title += ' (' + (mitigationDetails.linkBoost / 1000) + 'x)'; + } + return ['shielding', mitigationShort, title]; } diff --git a/code/portal_info.js b/code/portal_info.js index 29d607c6c..a51213976 100644 --- a/code/portal_info.js +++ b/code/portal_info.js @@ -239,15 +239,29 @@ window.getPortalShieldMitigation = function(d) { return mitigation; } +window.getPortalLinkDefenseBoost = function(d) { + var linkAmps = getPortalModsByType(d, 'ULTRA_LINK_AMP'); + + // assumes that multiple boosts are additive, not multiplicative + var boost = 0; + $.each(linkAmps, function(i,m) { + boost += parseInt(m.stats.LINK_DEFENSE_BOOST); + }); + + return boost; +} + window.getPortalLinksMitigation = function(linkCount) { var mitigation = Math.round(400/9*Math.atan(linkCount/Math.E)); return mitigation; } window.getPortalMitigationDetails = function(d,linkCount) { + var boost = getPortalLinkDefenseBoost(d) / 1000; // 1500 => 1.5x var mitigation = { shields: getPortalShieldMitigation(d), - links: getPortalLinksMitigation(linkCount) + links: getPortalLinksMitigation(linkCount) * (boost ? boost : 1.0), + linkBoost: getPortalLinkDefenseBoost(d) }; // mitigation is limited to 95% (as confirmed by Brandon Badger on G+)