Merge pull request #234 from ShawnTuatara/getAttackApGain

Refactored getDestroyAP
This commit is contained in:
Stefan Breunig 2013-02-19 23:36:36 -08:00
commit 052e0642c2
3 changed files with 43 additions and 25 deletions

View File

@ -34,7 +34,7 @@ window.renderPortalDetails = function(guid) {
// collect and html-ify random data // collect and html-ify random data
var randDetails = [ var randDetails = [
playerText, sinceText, getRangeText(d), getEnergyText(d), playerText, sinceText, getRangeText(d), getEnergyText(d),
linksText, getAvgResoDistText(d), linkedFields, getDestroyAP(d) linksText, getAvgResoDistText(d), linkedFields, getAttackApGainText(d)
]; ];
randDetails = '<table id="randdetails">' + genFourColumnTable(randDetails) + '</table>'; randDetails = '<table id="randdetails">' + genFourColumnTable(randDetails) + '</table>';

View File

@ -135,35 +135,21 @@ window.renderResonatorDetails = function(slot, level, nrg, dist, nick) {
return [meter, nick || '']; return [meter, nick || ''];
} }
// calculate AP gain from destroying portal // calculate AP gain from destroying portal and then capturing it by deploying resonators
// so far it counts only resonators + links window.getAttackApGainText = function(d) {
window.getDestroyAP = function(d) { var breakdown = getAttackApGain(d);
var resoCount = 0;
$.each(d.resonatorArray.resonators, function(ind, reso) {
if(!reso) return true;
resoCount += 1;
});
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 + CAPTURE_PORTAL + 8*DEPLOY_RESONATOR + COMPLETION_BONUS;
function tt(text) { function tt(text) {
var t = 'Destroy &amp; Capture:\n'; var t = 'Destroy &amp; Capture:\n';
t += resoCount + '×\tResonators\t= ' + digits(resoAp) + '\n'; t += breakdown.resoCount + '×\tResonators\t= ' + digits(breakdown.resoAp) + '\n';
t += linkCount + '×\tLinks\t= ' + digits(linkAp) + '\n'; t += breakdown.linkCount + '×\tLinks\t= ' + digits(breakdown.linkAp) + '\n';
t += fieldCount + '×\tFields\t= ' + digits(fieldAp) + '\n'; t += breakdown.fieldCount + '×\tFields\t= ' + digits(breakdown.fieldAp) + '\n';
t += '1×\tCapture\t= ' + CAPTURE_PORTAL + '\n'; t += '1×\tCapture\t= ' + CAPTURE_PORTAL + '\n';
t += '8×\tDeploy\t= ' + (8*DEPLOY_RESONATOR) + '\n'; t += '8×\tDeploy\t= ' + (8 * DEPLOY_RESONATOR) + '\n';
t += '1×\tBonus\t= ' + COMPLETION_BONUS + '\n'; t += '1×\tBonus\t= ' + COMPLETION_BONUS + '\n';
t += 'Sum: ' + digits(sum) + ' AP'; t += 'Sum: ' + digits(breakdown.totalAp) + ' AP';
return '<tt title="'+t+'">' + digits(text) + '</tt>'; return '<tt title="' + t + '">' + digits(text) + '</tt>';
} }
return [tt('AP Gain'), tt(sum)]; return [tt('AP Gain'), tt(breakdown.totalAp)];
} }

View File

@ -66,3 +66,35 @@ window.getAvgResoDist = function(d) {
}); });
return sum/resos; return sum/resos;
} }
window.getAttackApGain = function(d) {
var resoCount = 0;
$.each(d.resonatorArray.resonators, function(ind, reso) {
if (!reso)
return true;
resoCount += 1;
});
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 destroyAp = resoAp + linkAp + fieldAp;
var captureAp = CAPTURE_PORTAL + 8 * DEPLOY_RESONATOR + COMPLETION_BONUS;
var totalAp = destroyAp + captureAp;
return {
totalAp: totalAp,
destroyAp: destroyAp,
captureAp: captureAp,
resoCount: resoCount,
resoAp: resoAp,
linkCount: linkCount,
linkAp: linkAp,
fieldCount: fieldCount,
fieldAp: fieldAp
};
}