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)];
}