diff --git a/code/redeeming.js b/code/redeeming.js index 12bc5e32..2b426e12 100644 --- a/code/redeeming.js +++ b/code/redeeming.js @@ -16,31 +16,61 @@ window.handleRedeemResponse = function(data, textStatus, jqXHR) { } 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. + var tblResult = $('', {'class': 'redeem-result' }).append($('').append($('').append($('').append($('').append($('').append($('').append($('
', {colspan: 2}).append("Passcode redeemed!"))); + + if (data.result.apAward) + tblResult.append($('
')).append($('').append('AP (' + data.result.apAward + ')'))); + if (data.result.xmAward) + tblResult.append($('
')).append($('').append('XM (' + data.result.xmAward + ')'))); + + 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++; + 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++; + 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("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); } } diff --git a/style.css b/style.css index 7b79982e..fb6c5dc4 100644 --- a/style.css +++ b/style.css @@ -747,3 +747,49 @@ td { td + td { padding-left: 4px; } + +/* level colors *******************************************************/ + +.level-1 { + color: #FECE5A; +} + +.level-2 { + color: #FFA630; +} + +.level-3 { + color: #FF7315; +} + +.level-4 { + color: #E40000; +} + +.level-5 { + color: #FD2992; +} + +.level-6 { + color: #EB26CD; +} + +.level-7 { + color: #C124E0; +} + +.level-8 { + color: #9627F4; +} + +/* redeem results *****************************************************/ +.redeem-result { + font-size: 14px; + font-family: "coda",arial,helvetica,sans-serif; + table-layout: fixed; +} + +.redeem-result tr > td:first-child { + width: 50px; + text-align: right; +}