// REDEEMING ///////////////////////////////////////////////////////// window.handleRedeemResponse = function(data, textStatus, jqXHR) { if (data.error) { var error = ''; if (data.error === 'ALREADY_REDEEMED') { error = 'The passcode has already been redeemed.'; } else if (data.error === 'ALREADY_REDEEMED_BY_PLAYER') { error = 'You have already redeemed this 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 tblResult = $('', {'class': 'redeem-result' }).append($('').append($('').append($('').append($('').append($('').append($('').append($('
', {colspan: 2}).append("Passcode accepted!"))); if (data.result.apAward) tblResult.append($('
').append('+')).append($('').append(data.result.apAward + ' AP'))); if (data.result.xmAward) tblResult.append($('
').append('+')).append($('').append(data.result.xmAward + ' XM'))); 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') { 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 === '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; } } } for (var lvl in resonators) { var text = 'Resonator'; if (resonators[lvl] > 1) text += ' ('+resonators[lvl]+')'; tblResult.append($('
', { 'class' : ('level-'+lvl)}).append('L' + lvl)).append($('').append(text))); } for (var lvl in bursts) { var text = 'Xmp Burster'; if (bursts[lvl] > 1) text += ' ('+bursts[lvl]+')'; tblResult.append($('
', { 'class' : ('level-'+lvl)}).append('L' + lvl)).append($('').append(text))); } for (var lvl in shields) { var text = 'Portal Shield'; if (shields[lvl] > 1) text += ' ('+shields[lvl]+')'; tblResult.append($('
').append(lvl)).append($('').append(text))); } alert(tblResult, true); } } window.setupRedeem = function() { $("#redeem").keypress(function(e) { if((e.keyCode ? e.keyCode : e.which) != 13) return; var data = {passcode: $(this).val()}; window.postAjax('redeemReward', data, window.handleRedeemResponse, function(response) { var extra = ''; 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."; } extra += "\n" + 'Response: HTTP ' + jq.status + "."; } else { extra = "No status code was returned."; } alert('The HTTP request failed. ' + extra); }); }); }