clean up Pirozek 'show AP' patch a bit and handle random details differently.
This commit is contained in:
@ -19,24 +19,23 @@ window.renderPortalDetails = function(guid) {
|
|||||||
links[link.isOrigin ? 'outgoing' : 'incoming']++;
|
links[link.isOrigin ? 'outgoing' : 'incoming']++;
|
||||||
});
|
});
|
||||||
function linkExpl(t) { return '<tt title="↳ incoming links\n↴ outgoing links\n• is meant to be the portal.">'+t+'</tt>'; }
|
function linkExpl(t) { return '<tt title="↳ incoming links\n↴ outgoing links\n• is meant to be the portal.">'+t+'</tt>'; }
|
||||||
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
|
var player = d.captured && d.captured.capturingPlayerId
|
||||||
? getPlayerName(d.captured.capturingPlayerId)
|
? getPlayerName(d.captured.capturingPlayerId)
|
||||||
: null;
|
: null;
|
||||||
var playerText = player ? 'owner: ' + player : null;
|
var playerText = player ? ['owner', player] : null;
|
||||||
|
|
||||||
var time = d.captured ? unixTimeToString(d.captured.capturedTime) : 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
|
// 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) {
|
randDetails = randDetails.map(function(detail) {
|
||||||
if(!detail) return '';
|
if(!detail) return '';
|
||||||
detail = detail.split(':');
|
detail = '<aside>'+detail[0]+'<span>'+detail[1]+'</span></aside>';
|
||||||
detail = '<aside>'+detail.shift()+'<span>'+detail.join(':')+'</span></aside>';
|
|
||||||
return detail;
|
return detail;
|
||||||
}).join('\n');
|
}).join('\n');
|
||||||
|
|
||||||
@ -68,7 +67,6 @@ window.renderPortalDetails = function(guid) {
|
|||||||
+ '<div class="mods">'+getModDetails(d)+'</div>'
|
+ '<div class="mods">'+getModDetails(d)+'</div>'
|
||||||
+ '<div id="randdetails">'+randDetails+'</div>'
|
+ '<div id="randdetails">'+randDetails+'</div>'
|
||||||
+ '<div id="resodetails">'+getResonatorDetails(d)+'</div>'
|
+ '<div id="resodetails">'+getResonatorDetails(d)+'</div>'
|
||||||
+ '<div id="destroydetails">'+getDestroyAP(d)+'</div>'
|
|
||||||
+ '<div class="linkdetails">'
|
+ '<div class="linkdetails">'
|
||||||
+ '<aside><a href="'+perma+'">portal link</a></aside>'
|
+ '<aside><a href="'+perma+'">portal link</a></aside>'
|
||||||
+ '<aside><a onclick="window.reportPortalIssue()">report issue</a></aside>'
|
+ '<aside><a onclick="window.reportPortalIssue()">report issue</a></aside>'
|
||||||
|
@ -6,12 +6,12 @@
|
|||||||
// returns displayable text+link about portal range
|
// returns displayable text+link about portal range
|
||||||
window.getRangeText = function(d) {
|
window.getRangeText = function(d) {
|
||||||
var range = getPortalRange(d);
|
var range = getPortalRange(d);
|
||||||
return 'range: '
|
return ['range',
|
||||||
+ '<a onclick="window.rangeLinkClick()">'
|
+ '<a onclick="window.rangeLinkClick()">'
|
||||||
+ (range > 1000
|
+ (range > 1000
|
||||||
? Math.round(range/1000) + ' km'
|
? Math.round(range/1000) + ' km'
|
||||||
: Math.round(range) + ' m')
|
: Math.round(range) + ' m')
|
||||||
+ '</a>';
|
+ '</a>'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// generates description text from details for portal
|
// generates description text from details for portal
|
||||||
@ -69,13 +69,12 @@ window.getEnergyText = function(d) {
|
|||||||
var totalNrg = getTotalPortalEnergy(d);
|
var totalNrg = getTotalPortalEnergy(d);
|
||||||
var inf = currentNrg + ' / ' + totalNrg;
|
var inf = currentNrg + ' / ' + totalNrg;
|
||||||
var fill = prettyEnergy(currentNrg) + ' / ' + prettyEnergy(totalNrg)
|
var fill = prettyEnergy(currentNrg) + ' / ' + prettyEnergy(totalNrg)
|
||||||
var meter = 'energy: <tt title="'+inf+'">' + fill + '</tt>';
|
return ['energy', '<tt title="'+inf+'">' + fill + '</tt>'];
|
||||||
return meter;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
window.getAvgResoDistText = function(d) {
|
window.getAvgResoDistText = function(d) {
|
||||||
var avgDist = Math.round(10*getAvgResoDist(d))/10;
|
var avgDist = Math.round(10*getAvgResoDist(d))/10;
|
||||||
return '⌀ res dist: ' + avgDist + ' m';
|
return ['⌀ res dist', avgDist + ' m'];
|
||||||
}
|
}
|
||||||
|
|
||||||
window.getResonatorDetails = function(d) {
|
window.getResonatorDetails = function(d) {
|
||||||
@ -142,26 +141,29 @@ window.renderResonatorDetails = function(slot, level, nrg, dist, nick, isLeft) {
|
|||||||
// calculate AP gain from destroying portal
|
// calculate AP gain from destroying portal
|
||||||
// so far it counts only resonators + links
|
// so far it counts only resonators + links
|
||||||
window.getDestroyAP = function(d) {
|
window.getDestroyAP = function(d) {
|
||||||
console.log('rendering destroy AP');
|
var resoCount = 0;
|
||||||
var res_count = 0;
|
|
||||||
var links_count = 0;
|
|
||||||
var fields_count
|
|
||||||
|
|
||||||
$.each(d.resonatorArray.resonators, function(ind, reso) {
|
$.each(d.resonatorArray.resonators, function(ind, reso) {
|
||||||
res_count += 1;
|
if(!reso) return true;
|
||||||
|
resoCount += 1;
|
||||||
});
|
});
|
||||||
|
|
||||||
if(d.portalV2.linkedEdges) {
|
var linkCount = d.portalV2.linkedEdges ? d.portalV2.linkedEdges.length : 0;
|
||||||
$.each(d.portalV2.linkedEdges, function(ind, link) {
|
var fieldCount = d.portalV2.linkedFields ? d.portalV2.linkedFields.length : 0;
|
||||||
links_count++;
|
|
||||||
});
|
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 '<tt title="'+t+'">' + digits(text) + '</tt>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if(d.portalV2.linkedFields) {
|
return [tt('AP Gain'), tt(sum)];
|
||||||
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 → <span style="color: #FFCE00">' + ap_count + '</span>AP';
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user