diff --git a/code/portal_detail_display.js b/code/portal_detail_display.js index d1cc877d..98b33592 100644 --- a/code/portal_detail_display.js +++ b/code/portal_detail_display.js @@ -19,24 +19,23 @@ window.renderPortalDetails = function(guid) { links[link.isOrigin ? 'outgoing' : 'incoming']++; }); function linkExpl(t) { return ''+t+''; } - var linksText = linkExpl('links')+':'+linkExpl(' ↳ ' + links.incoming+'  •  '+links.outgoing+' ↴'); + var linksText = [linkExpl('links'), linkExpl(' ↳ ' + links.incoming+'  •  '+links.outgoing+' ↴')]; var player = d.captured && d.captured.capturingPlayerId ? getPlayerName(d.captured.capturingPlayerId) : null; - var playerText = player ? 'owner: ' + player : null; + var playerText = player ? ['owner', player] : null; var time = d.captured ? unixTimeToString(d.captured.capturedTime) : null; - var sinceText = time ? 'since: ' + time : null; + var sinceText = time ? ['since', time] : null; - var linkedFields = 'fields: ' + d.portalV2.linkedFields.length; + var linkedFields = ['fields', d.portalV2.linkedFields.length]; // collect and html-ify random data - var randDetails = [playerText, sinceText, getRangeText(d), getEnergyText(d), linksText, getAvgResoDistText(d), linkedFields]; + var randDetails = [playerText, sinceText, getRangeText(d), getEnergyText(d), linksText, getAvgResoDistText(d), linkedFields, getDestroyAP(d)]; randDetails = randDetails.map(function(detail) { if(!detail) return ''; - detail = detail.split(':'); - detail = ''; + detail = ''; return detail; }).join('\n'); @@ -68,7 +67,6 @@ window.renderPortalDetails = function(guid) { + '
'+getModDetails(d)+'
' + '
'+randDetails+'
' + '
'+getResonatorDetails(d)+'
' - + '
'+getDestroyAP(d)+'
' + '
' + '' + '' diff --git a/code/portal_detail_display_tools.js b/code/portal_detail_display_tools.js index ee5edb56..94effc4b 100644 --- a/code/portal_detail_display_tools.js +++ b/code/portal_detail_display_tools.js @@ -6,12 +6,12 @@ // returns displayable text+link about portal range window.getRangeText = function(d) { var range = getPortalRange(d); - return 'range: ' + return ['range', + '' + (range > 1000 ? Math.round(range/1000) + ' km' : Math.round(range) + ' m') - + ''; + + '']; } // generates description text from details for portal @@ -69,13 +69,12 @@ window.getEnergyText = function(d) { var totalNrg = getTotalPortalEnergy(d); var inf = currentNrg + ' / ' + totalNrg; var fill = prettyEnergy(currentNrg) + ' / ' + prettyEnergy(totalNrg) - var meter = 'energy: ' + fill + ''; - return meter; + return ['energy', '' + fill + '']; } window.getAvgResoDistText = function(d) { var avgDist = Math.round(10*getAvgResoDist(d))/10; - return '⌀ res dist: ' + avgDist + ' m'; + return ['⌀ res dist', avgDist + ' m']; } window.getResonatorDetails = function(d) { @@ -142,26 +141,29 @@ window.renderResonatorDetails = function(slot, level, nrg, dist, nick, isLeft) { // calculate AP gain from destroying portal // so far it counts only resonators + links window.getDestroyAP = function(d) { - console.log('rendering destroy AP'); - var res_count = 0; - var links_count = 0; - var fields_count + var resoCount = 0; $.each(d.resonatorArray.resonators, function(ind, reso) { - res_count += 1; + if(!reso) return true; + resoCount += 1; }); - if(d.portalV2.linkedEdges) { - $.each(d.portalV2.linkedEdges, function(ind, link) { - links_count++; - }); + var linkCount = d.portalV2.linkedEdges ? d.portalV2.linkedEdges.length : 0; + var fieldCount = d.portalV2.linkedFields ? d.portalV2.linkedFields.length : 0; + + var resoAp = resoCount * DESTROY_RESONATOR; + var linkAp = linkCount * DESTROY_LINK; + var fieldAp = fieldCount * DESTROY_FIELD; + var sum = resoAp + linkAp + fieldAp; + + function tt(text) { + var t = 'Destroy:\n'; + t += resoCount + '×\tResonators\t= ' + digits(resoAp) + '\n'; + t += linkCount + '×\tLinks\t\t= ' + digits(linkAp) + '\n'; + t += fieldCount + '×\tFields\t\t= ' + digits(fieldAp) + '\n'; + t += 'Sum: ' + digits(sum) + ' AP'; + return '' + digits(text) + ''; } - if(d.portalV2.linkedFields) { - fields_count = d.portalV2.linkedFields.length; - } - - var ap_count = (res_count * DESTROY_RESONATOR) + (links_count * DESTROY_LINK) + (fields_count * DESTROY_FIELD); - - return 'Destroy ' + res_count + 'x res + ' + links_count + 'x link → ' + ap_count + 'AP'; + return [tt('AP Gain'), tt(sum)]; }