diff --git a/code/redeeming.js b/code/redeeming.js index 0792f17d..0b9f4fbb 100644 --- a/code/redeeming.js +++ b/code/redeeming.js @@ -3,44 +3,69 @@ // REDEEMING ///////////////////////////////////////////////////////// window.handleRedeemResponse = function(data, textStatus, jqXHR) { - if (data.error) { + if(data.error) { var error = ''; - if (data.error === 'ALREADY_REDEEMED') { + if(data.error === 'ALREADY_REDEEMED') { error = 'The passcode has already been redeemed.'; - } else if (data.error === 'ALREADY_REDEEMED_BY_PLAYER') { + } else if(data.error === 'ALREADY_REDEEMED_BY_PLAYER') { error = 'You have already redeemed this passcode.'; - } else if (data.error === 'INVALID_PASSCODE') { + } else if(data.error === 'INVALID_PASSCODE') { error = 'This passcode is invalid.'; } else { error = 'There was a problem redeeming the passcode. Try again?'; } alert('' + data.error + '\n' + error); - } else if (data.result) { - var xmp_level = 0, xmp_count = 0; - var res_level = 0, res_count = 0; - var shield_rarity = '', shield_count = 0; - - // This assumes that each passcode gives only one type of resonator/XMP/shield. - // This may break at some point, depending on changes to passcode functionality. - for (var i in data.result.inventoryAward) { + } else if(data.result) { + var tblResult = $(''); + tblResult.append($('')); + + if(data.result.apAward) + tblResult.append($('')); + if(data.result.xmAward) + tblResult.append($('')); + + var resonators = {}; + var bursts = {}; + var shields = {}; + + for(var i in data.result.inventoryAward) { var acquired = data.result.inventoryAward[i][2]; - if (acquired.modResource) { - if (acquired.modResource.resourceType === 'RES_SHIELD') { - shield_rarity = acquired.modResource.rarity.split('_').map(function (i) {return i[0]}).join(''); - shield_count++; + if(acquired.modResource) { + if(acquired.modResource.resourceType === 'RES_SHIELD') { + var rarity = acquired.modResource.rarity.split('_').map(function (i) {return i[0]}).join(''); + if(!shields[rarity]) shields[rarity] = 0; + shields[rarity] += 1; } - } else if (acquired.resourceWithLevels) { - if (acquired.resourceWithLevels.resourceType === 'EMP_BURSTER') { - xmp_level = acquired.resourceWithLevels.level; - xmp_count++; - } else if (acquired.resourceWithLevels.resourceType === 'EMITTER_A') { - res_level = acquired.resourceWithLevels.level; - res_count++; + } else if(acquired.resourceWithLevels) { + if(acquired.resourceWithLevels.resourceType === 'EMITTER_A') { + var level = acquired.resourceWithLevels.level + if(!resonators[level]) resonators[level] = 0; + resonators[level] += 1; + } else if(acquired.resourceWithLevels.resourceType === 'EMP_BURSTER') { + var level = acquired.resourceWithLevels.level + if(!bursts[level]) bursts[level] = 0; + bursts[level] += 1; } } } + + $.each(resonators, function(lvl, count) { + var text = 'Resonator'; + if(count >= 2) text += ' ('+count+')'; + tblResult.append($('')); + }); + $.each(bursts, function(lvl, count) { + var text = 'Xmp Burster'; + if(count >= 2) text += ' ('+count+')'; + tblResult.append($('')); + }); + $.each(shields, function(lvl, count) { + var text = 'Portal Shield'; + if(count >= 2) text += ' ('+count+')'; + tblResult.append($('')); + }); - alert('Passcode accepted!\n' + [data.result.apAward + 'AP', data.result.xmAward + 'XM', xmp_count + 'xL' + xmp_level + ' XMP', res_count + 'xL' + res_level + ' RES', shield_count + 'x' + shield_rarity + ' SH'].join('/')); + alert(tblResult, true); } } @@ -51,8 +76,8 @@ window.setupRedeem = function() { window.postAjax('redeemReward', data, window.handleRedeemResponse, function(response) { var extra = ''; - if (response && response.status) { - if (response.status === 429) { + if(response && response.status) { + if(response.status === 429) { extra = 'You have been rate-limited by the server. Wait a bit and try again.'; } else { extra = 'The server indicated an error.'; diff --git a/style.css b/style.css index 31270562..758dfd3a 100644 --- a/style.css +++ b/style.css @@ -748,3 +748,15 @@ td { td + td { padding-left: 4px; } + +/* redeem results *****************************************************/ +.redeem-result { + font-size: 14px; + font-family: arial,helvetica,sans-serif; + table-layout: fixed; +} + +.redeem-result tr > td:first-child { + width: 50px; + text-align: right; +}
Passcode accepted!
+' + data.result.apAward + 'AP
+' + data.result.xmAward + 'XM
L' +lvl+ '' + text + '
L' +lvl+ '' + text + '
'+lvl+''+text+'