Friendly/Enemy AP gain

Should merge now.
This commit is contained in:
billybennett 2013-03-11 05:39:08 -04:00
parent bee82183ff
commit 1dfeb791b0
2 changed files with 43 additions and 21 deletions

View File

@ -139,18 +139,22 @@ window.renderResonatorDetails = function(slot, level, nrg, dist, nick) {
// calculate AP gain from destroying portal and then capturing it by deploying resonators // calculate AP gain from destroying portal and then capturing it by deploying resonators
window.getAttackApGainText = function(d) { window.getAttackApGainText = function(d) {
var breakdown = getAttackApGain(d); var breakdown = getAttackApGain(d);
var totalGain = breakdown.enemyAp;
function tt(text) { function tt(text) {
var t = 'Destroy & Capture:\n'; var t = '';
t += breakdown.resoCount + '×\tResonators\t= ' + digits(breakdown.resoAp) + '\n'; if (PLAYER.team == d.controllingTeam.team) {
t += breakdown.linkCount + '×\tLinks\t= ' + digits(breakdown.linkAp) + '\n'; totalGain = breakdown.friendlyAp;
t += breakdown.fieldCount + '×\tFields\t= ' + digits(breakdown.fieldAp) + '\n'; t += 'Friendly AP:\t' + breakdown.friendlyAp + '\n';
t += '1×\tCapture\t= ' + CAPTURE_PORTAL + '\n'; t += ' Deploy ' + breakdown.deployCount + ', ';
t += '8×\tDeploy\t= ' + (8 * DEPLOY_RESONATOR) + '\n'; t += 'Upgrade ' + breakdown.upgradeCount + '\n';
t += '1×\tBonus\t= ' + COMPLETION_BONUS + '\n'; t += '\n';
t += 'Sum: ' + digits(breakdown.totalAp) + ' AP'; }
t += 'Enemy AP:\t' + breakdown.enemyAp + '\n';
t += ' Destroy AP:\t' + breakdown.destroyAp + '\n';
t += ' Capture AP:\t' + breakdown.captureAp + '\n';
return '<tt title="' + t + '">' + digits(text) + '</tt>'; return '<tt title="' + t + '">' + digits(text) + '</tt>';
} }
return [tt('AP Gain'), tt(breakdown.totalAp)]; return [tt('AP Gain'), tt(totalGain)];
} }

View File

@ -69,11 +69,21 @@ window.getAvgResoDist = function(d) {
window.getAttackApGain = function(d) { window.getAttackApGain = function(d) {
var resoCount = 0; var resoCount = 0;
var maxResonators = MAX_RESO_PER_PLAYER.slice(0);
var curResonators = [ 0, 0, 0, 0, 0, 0, 0, 0, 0];
for(var n = PLAYER.level + 1; n < 9; n++) {
maxResonators[n] = 0;
}
$.each(d.resonatorArray.resonators, function(ind, reso) { $.each(d.resonatorArray.resonators, function(ind, reso) {
if (!reso) if(!reso)
return true; return true;
resoCount += 1; resoCount += 1;
if(reso.ownerGuid === PLAYER.guid) {
maxResonators[parseInt(reso.level)] -= 1;
} else {
curResonators[parseInt(reso.level)] += 1;
}
}); });
var linkCount = d.portalV2.linkedEdges ? d.portalV2.linkedEdges.length : 0; var linkCount = d.portalV2.linkedEdges ? d.portalV2.linkedEdges.length : 0;
@ -84,17 +94,25 @@ window.getAttackApGain = function(d) {
var fieldAp = fieldCount * DESTROY_FIELD; var fieldAp = fieldCount * DESTROY_FIELD;
var destroyAp = resoAp + linkAp + fieldAp; var destroyAp = resoAp + linkAp + fieldAp;
var captureAp = CAPTURE_PORTAL + 8 * DEPLOY_RESONATOR + COMPLETION_BONUS; var captureAp = CAPTURE_PORTAL + 8 * DEPLOY_RESONATOR + COMPLETION_BONUS;
var totalAp = destroyAp + captureAp; var enemyAp = destroyAp + captureAp;
var deployCount = 8 - resoCount;
var completionAp = (deployCount > 0) ? COMPLETION_BONUS : 0;
var upgradeCount = 0;
var upgradeAvailable = maxResonators[8];
for(var n = 7; n >= 0; n--) {
upgradeCount += curResonators[n];
if(upgradeAvailable < upgradeCount) {
upgradeCount -= (upgradeCount - upgradeAvailable);
}
upgradeAvailable += maxResonators[n];
}
var friendlyAp = deployCount * DEPLOY_RESONATOR + upgradeCount * UPGRADE_ANOTHERS_RESONATOR + completionAp;
return { return {
totalAp: totalAp, friendlyAp: friendlyAp,
deployCount: deployCount,
upgradeCount: upgradeCount,
enemyAp: enemyAp,
destroyAp: destroyAp, destroyAp: destroyAp,
captureAp: captureAp, captureAp: captureAp
resoCount: resoCount,
resoAp: resoAp,
linkCount: linkCount,
linkAp: linkAp,
fieldCount: fieldCount,
fieldAp: fieldAp
}; };
} }