diff --git a/code/redeeming.js b/code/redeeming.js index 08fee9ce..1c4931de 100644 --- a/code/redeeming.js +++ b/code/redeeming.js @@ -1,96 +1,227 @@ // 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?'; +/* Resource type names mapped to actual names and abbreviations. + * Add more here if necessary. + */ +window.REDEEM_RESOURCES = { + RES_SHIELD: {long: 'Portal Shield', short: 'SH'}, + EMITTER_A: {long: 'Resonator', short: 'R'}, + EMP_BURSTER: {long: 'XMP Burster', short: 'X'}, + POWER_CUBE: {long: 'Power Cube', short: 'C'} +}; + +/* Redemption errors. Very self-explanatory. + */ +window.REDEEM_ERRORS = { + ALREADY_REDEEMED: 'The passcode has already been redeemed.', + ALREADY_REDEEMED_BY_PLAYER : 'You have already redeemed this passcode.', + INVALID_PASSCODE: 'This passcode is invalid.' +}; + +/* These are HTTP status codes returned by the redemption API. + * TODO: Move to another file? Use more generally across IITC? + */ +window.REDEEM_STATUSES = { + 429: 'You have been rate-limited by the server. Wait a bit and try again.', + 500: 'Internal server error' +}; + +/* Encouragement for people who got it in. + * Just for fun. + */ +window.REDEEM_ENCOURAGEMENT = [ + "Passcode accepted!", + "Access granted.", + "Asset transfer in progress.", + "Well done, Agent.", + "Make the " + {'RESISTANCE' : 'Resistance', 'ALIENS' : 'Enlightened'}[PLAYER.team] + " proud!" +]; + +/* Redemption "handlers" handle decoding and formatting for rewards. + * + * Redemption "decoders" are used for returning the primary attribute (key) from + * different types of items. Pretty self-explanatory. + * + * Redemption "formatters" are used for formatting specific types of password rewards. + * Right now, Ingress has resourceWithLevels (leveled resources) and modResource (mods). + * Resources with levels have levels, and mods have rarity. Format them appropriately. + */ +window.REDEEM_HANDLERS = { + 'resourceWithLevels' : { + decode: function(type, resource) {return resource.level;}, + format: function(acquired, level) { + var prefix = ''; + var suffix = ''; + return { + table: '' + prefix + 'L' + level + suffix + '' + acquired.name.long + ' [' + acquired.count + ']', + html: acquired.count + '×' + acquired.name.short + prefix + level + suffix, + plain: acquired.count + '@' + acquired.name.short + level + }; } - alert('' + data.error + '\n' + error); - } 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 = {}; - var cubes = {}; - - 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; - } else if(acquired.resourceWithLevels.resourceType === 'POWER_CUBE') { - var level = acquired.resourceWithLevels.level - if(!cubes[level]) cubes[level] = 0; - cubes[level] += 1; - } - } + }, + 'modResource' : { + decode: function(type, resource) {return resource.rarity;}, + format: function(acquired, rarity) { + var prefix = ''; + var suffix = ''; + var abbreviation = rarity.split('_').map(function (i) {return i[0];}).join(''); + return { + table: '', + html: acquired.count + '×' + prefix + abbreviation + suffix, + plain: acquired.count + '@' + abbreviation + }; + } + }, + 'default' : { + decode: function(type, resource) {return 'UNKNOWN';}, + format: function(acquired, group) { + return { + table: '', + html: acquired.count + '×' + acquired.name.short, + plain: acquired.count + '@' + acquired.name.short + }; } - - $.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(cubes, function(lvl, count) { - var text = 'Power Cube'; - if(count >= 2) text += ' ('+count+')'; - tblResult.append($('')); - }); - $.each(shields, function(lvl, count) { - var text = 'Portal Shield'; - if(count >= 2) text += ' ('+count+')'; - tblResult.append($('')); - }); - alert(tblResult, true); } +}; + +/* Redemption "hints" hint at what an unknown resource might be from its object properties. + */ +window.REDEEM_HINTS = { + level: 'resourceWithLevels', + rarity: 'modResource' +}; + +window.handleRedeemResponse = function(data, textStatus, jqXHR) { + var passcode = this.passcode, to_alert, to_log; + + if(data.error) { + to_alert = '' + data.error + '
' + (window.REDEEM_ERRORS[data.error] || 'There was a problem redeeming the passcode. Try again?'); + to_log = '[ERROR] ' + data.error; + } else if(data.result) { + var encouragement = window.REDEEM_ENCOURAGEMENT[Math.floor(Math.random() * window.REDEEM_ENCOURAGEMENT.length)]; + var payload = {}; + var inferred = []; + var results = { + 'table' : [''], + 'html' : [], + 'plain' : [] + }; + + // Track frequencies and levels of items + $.each(data.result.inventoryAward, function (award_idx, award) { + var acquired = award[2], handler, type, key, name; + + // The "what the heck is this item" heuristic + $.each(acquired, function (taxonomy, resource) { + if('resourceType' in resource) { + if(taxonomy in window.REDEEM_HANDLERS) { + // Cool. We know how to directly handle this item. + handler = { + functions: window.REDEEM_HANDLERS[taxonomy], + taxonomy: taxonomy, + processed_as: taxonomy + }; + } else { + // Let's see if we can get a hint for how we should handle this. + $.each(resource, function (resource_key, resource_value) { + if(resource_key in window.REDEEM_HINTS) { + // We're not sure what this item is, but we can process it like another item + handler = { + functions: (window.REDEEM_HANDLERS[window.REDEEM_HINTS[resource_key]] || window.REDEEM_HANDLERS['default']), + taxonomy: taxonomy, + processed_as: window.REDEEM_HINTS[resource_key] + }; + return false; + } + }); + + // Fall back to the default handler if necessary + handler = handler || { + functions: window.REDEEM_HANDLERS['default'], + taxonomy: taxonomy, + processed_as: 'default' + }; + } + + // Collect the data that we know + type = resource.resourceType; + key = handler.functions.decode(type, resource); + name = window.REDEEM_RESOURCES[type] || {long: type, short: type[0]}; + + // Decide if we inferred this resource + if(!(type in window.REDEEM_RESOURCES) || handler.taxonomy !== handler.processed_as) { + name.long += '*'; + name.short += '*'; + inferred.push({type: type, key: key, handler: handler}); + } + return false; + } + }); + + // Update frequencies + payload[type] = payload[type] || {}; + payload[type][key] = payload[type][key] || {}; + payload[type][key].handler = payload[type][key].handler || handler; + payload[type][key].type = payload[type][key].type || type; + payload[type][key].name = payload[type][key].name || name; + payload[type][key].count = payload[type][key].count || 0; + payload[type][key].count += 1; + }); + + // Get AP and XM. + $.each([{label: 'AP', award: parseInt(data.result.apAward)}, {label: 'XM', award: parseInt(data.result.xmAward)}], function(idx, val) { + if(val.award > 0) { + results.table.push(''); + results.html.push(val.award + ' ' + val.label); + results.plain.push(val.award + ' ' + val.label); + } + }); + + // Build the formatted results alphabetically + $.each(Object.keys(payload).sort(), function(type_idx, type) { + $.each(Object.keys(payload[type]).sort(), function(key_idx, key) { + var acquired = payload[type][key]; + $.each(acquired.handler.functions.format(acquired, key), function(format, string) { + results[format].push(string); + }); + }); + }); + + // Let the user know if we had to guess + if (inferred.length > 0) { + results.table.push(''); + $.each(inferred, function (idx, val) { + console.log(passcode + + ' => [INFERRED] ' + val.type + ':' + val.key + ' :: ' + + val.handler.taxonomy + ' =~ ' + val.handler.processed_as); + }); + } + + // Add table footers + results.table.push('
Passcode accepted!
+' + data.result.apAward + 'AP
+' + data.result.xmAward + 'XM
' + prefix + abbreviation + suffix + '' + acquired.name.long + ' [' + acquired.count + ']+' + acquired.name.long + ' [' + acquired.count + ']
L' +lvl+ '' + text + '
L' +lvl+ '' + text + '
L' +lvl+ '' + text + '
'+lvl+''+text+'
' + encouragement + '+' + digits(val.award) + ' ' + val.label + '*Guessed (check console)>' + encouragement + '
' + results.html.join('/') + '') + + '\', true);" style="font-family: monospace;">[plaintext]
'); + + // Display formatted versions in a table, plaintext, and the console log + to_alert = '' + results.table.map(function(a) {return '' + a + '';}).join("\n") + '
'; + to_log = '[SUCCESS] ' + results.plain.join('/'); + } + + alert(to_alert, true); + console.log(passcode + ' => ' + to_log); } window.setupRedeem = function() { $("#redeem").keypress(function(e) { - if((e.keyCode ? e.keyCode : e.which) != 13) return; + 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 += '\nResponse: HTTP ' + response.status + '.'; + if(response.status) { + extra = (window.REDEEM_STATUSES[response.status] || 'The server indicated an error.') + ' (HTTP ' + response.status + ')'; } else { extra = 'No status code was returned.'; } diff --git a/code/utils_misc.js b/code/utils_misc.js index bd5c32c1..6a5b1e76 100644 --- a/code/utils_misc.js +++ b/code/utils_misc.js @@ -82,13 +82,14 @@ window.digits = function(d) { // able arguments: http://api.jquery.com/jQuery.ajax/ // error: see above. Additionally it is logged if the request failed. window.postAjax = function(action, data, success, error) { - data = JSON.stringify($.extend({method: 'dashboard.'+action}, data)); + var post_data = JSON.stringify($.extend({method: 'dashboard.'+action}, data)); var remove = function(data, textStatus, jqXHR) { window.requests.remove(jqXHR); }; var errCnt = function(jqXHR) { window.failedRequestCount++; window.requests.remove(jqXHR); }; var result = $.ajax({ url: '/rpc/dashboard.'+action, type: 'POST', - data: data, + data: post_data, + context: data, dataType: 'json', success: [remove, success], error: error ? [errCnt, error] : errCnt, diff --git a/json_examples/redeeming.js b/json_examples/redeeming.js index 89af2b3d..4982b052 100644 --- a/json_examples/redeeming.js +++ b/json_examples/redeeming.js @@ -7,332 +7,1924 @@ //////////////////////////////////////////////////////////////////////// { - "gameBasket": { - "apGains": [{ - "apGainAmount": "200", - "apTrigger": "REDEEMED_AP" - }], - "deletedEntityGuids": [], - "gameEntities": [], - "inventory": [ - ["00000000000000000000000000000000.5", - 1358631239636, { - "inInventory": { - "acquisitionTimestampMs": "1358631239302", - "playerId": "00000000000000000000000000000000.c" - }, - "modResource": { - "displayName": "Portal Shield", - "rarity": "VERY_RARE", - "resourceType": "RES_SHIELD", - "stats": { - "MITIGATION": "10" - } - } - }], - ["00000000000000000000000000000000.5", - 1358631239636, { - "accessLevel": { - "failure": { - "isAllowed": false, - "requiredLevel": 1 - }, - "requiredLevel": 1 - }, - "inInventory": { - "acquisitionTimestampMs": "1358631239330", - "playerId": "00000000000000000000000000000000.c" - }, - "resourceWithLevels": { - "level": 1, - "resourceType": "EMITTER_A" - } - }], - ["00000000000000000000000000000000.5", - 1358631239636, { - "inInventory": { - "acquisitionTimestampMs": "1358631239313", - "playerId": "00000000000000000000000000000000.c" - }, - "modResource": { - "displayName": "Portal Shield", - "rarity": "VERY_RARE", - "resourceType": "RES_SHIELD", - "stats": { - "MITIGATION": "10" - } - } - }], - ["00000000000000000000000000000000.5", - 1358631239636, { - "accessLevel": { - "failure": { - "isAllowed": false, - "requiredLevel": 7 - }, - "requiredLevel": 7 - }, - "empWeapon": { - "ammo": 1, - "level": 7 - }, - "inInventory": { - "acquisitionTimestampMs": "1358631239348", - "playerId": "00000000000000000000000000000000.c" - }, - "resourceWithLevels": { - "level": 7, - "resourceType": "EMP_BURSTER" - } - }], - ["00000000000000000000000000000000.5", - 1358631239636, { - "accessLevel": { - "failure": { - "isAllowed": false, - "requiredLevel": 1 - }, - "requiredLevel": 1 - }, - "inInventory": { - "acquisitionTimestampMs": "1358631239319", - "playerId": "00000000000000000000000000000000.c" - }, - "resourceWithLevels": { - "level": 1, - "resourceType": "EMITTER_A" - } - }], - ["00000000000000000000000000000000.5", - 1358631239636, { - "accessLevel": { - "failure": { - "isAllowed": false, - "requiredLevel": 1 - }, - "requiredLevel": 1 - }, - "inInventory": { - "acquisitionTimestampMs": "1358631239342", - "playerId": "00000000000000000000000000000000.c" - }, - "resourceWithLevels": { - "level": 1, - "resourceType": "EMITTER_A" - } - }], - ["00000000000000000000000000000000.5", - 1358631239636, { - "accessLevel": { - "failure": { - "isAllowed": false, - "requiredLevel": 1 - }, - "requiredLevel": 1 - }, - "inInventory": { - "acquisitionTimestampMs": "1358631239336", - "playerId": "00000000000000000000000000000000.c" - }, - "resourceWithLevels": { - "level": 1, - "resourceType": "EMITTER_A" - } - }], - [ "00000000000000000000000000000000.5", - 1365809491413, { - "accessLevel" : { - "failure" : { - "isAllowed" : false, - "requiredLevel" : 4 - }, - "requiredLevel" : 4 - }, - "inInventory" : { - "acquisitionTimestampMs" : "1365809491260", - "playerId" : "00000000000000000000000000000000.c" - }, - "powerCube" : { - "energy" : 4000 - }, - "resourceWithLevels" : { - "level" : 4, - "resourceType" : "POWER_CUBE" - } - }] - ], - "playerEntity": ["00000000000000000000000000000000.c", - 1358631239530, { - "controllingTeam": { - "team": "RESISTANCE" - }, - "playerPersonal": { - "allowFactionChoice": false, - "allowNicknameEdit": false, - "ap": "326513", - "clientLevel": 26, - "energy": 3205, - "energyState": "XM_OK", - "mediaHighWaterMarks": { - "General": 8, - "RESISTANCE": 9 - }, - "notificationSettings" : { - "maySendPromoEmail" : false, - "shouldSendEmail" : true - } - } - }] - }, - "result": { - "apAward": "200", - "inventoryAward": [ - ["00000000000000000000000000000000.5", - 1358631239636, { - "inInventory": { - "acquisitionTimestampMs": "1358631239302", - "playerId": "00000000000000000000000000000000.c" - }, - "modResource": { - "displayName": "Portal Shield", - "rarity": "VERY_RARE", - "resourceType": "RES_SHIELD", - "stats": { - "MITIGATION": "10" - } - } - }], - ["00000000000000000000000000000000.5", - 1358631239636, { - "accessLevel": { - "failure": { - "isAllowed": false, - "requiredLevel": 1 - }, - "requiredLevel": 1 - }, - "inInventory": { - "acquisitionTimestampMs": "1358631239330", - "playerId": "00000000000000000000000000000000.c" - }, - "resourceWithLevels": { - "level": 1, - "resourceType": "EMITTER_A" - } - }], - ["00000000000000000000000000000000.5", - 1358631239636, { - "inInventory": { - "acquisitionTimestampMs": "1358631239313", - "playerId": "00000000000000000000000000000000.c" - }, - "modResource": { - "displayName": "Portal Shield", - "rarity": "VERY_RARE", - "resourceType": "RES_SHIELD", - "stats": { - "MITIGATION": "10" - } - } - }], - ["00000000000000000000000000000000.5", - 1358631239636, { - "accessLevel": { - "failure": { - "isAllowed": false, - "requiredLevel": 7 - }, - "requiredLevel": 7 - }, - "empWeapon": { - "ammo": 1, - "level": 7 - }, - "inInventory": { - "acquisitionTimestampMs": "1358631239348", - "playerId": "00000000000000000000000000000000.c" - }, - "resourceWithLevels": { - "level": 7, - "resourceType": "EMP_BURSTER" - } - }], - ["00000000000000000000000000000000.5", - 1358631239636, { - "accessLevel": { - "failure": { - "isAllowed": false, - "requiredLevel": 1 - }, - "requiredLevel": 1 - }, - "inInventory": { - "acquisitionTimestampMs": "1358631239319", - "playerId": "00000000000000000000000000000000.c" - }, - "resourceWithLevels": { - "level": 1, - "resourceType": "EMITTER_A" - } - }], - ["00000000000000000000000000000000.5", - 1358631239636, { - "accessLevel": { - "failure": { - "isAllowed": false, - "requiredLevel": 1 - }, - "requiredLevel": 1 - }, - "inInventory": { - "acquisitionTimestampMs": "1358631239342", - "playerId": "00000000000000000000000000000000.c" - }, - "resourceWithLevels": { - "level": 1, - "resourceType": "EMITTER_A" - } - }], - ["00000000000000000000000000000000.5", - 1358631239636, { - "accessLevel": { - "failure": { - "isAllowed": false, - "requiredLevel": 1 - }, - "requiredLevel": 1 - }, - "inInventory": { - "acquisitionTimestampMs": "1358631239336", - "playerId": "00000000000000000000000000000000.c" - }, - "resourceWithLevels": { - "level": 1, - "resourceType": "EMITTER_A" - } - }], - [ "00000000000000000000000000000000.5", - 1365809491413, { - "accessLevel" : { - "failure" : { - "isAllowed" : false, - "requiredLevel" : 4 - }, - "requiredLevel" : 4 - }, - "inInventory" : { - "acquisitionTimestampMs" : "1365809491260", - "playerId" : "00000000000000000000000000000000.c" - }, - "powerCube" : { - "energy" : 4000 - }, - "resourceWithLevels" : { - "level" : 4, - "resourceType" : "POWER_CUBE" - } - }] - ], - "xmAward": "300" - } -} + "gameBasket": { + "playerEntity": [ + "00000000000000000000000000000000.c", + 1365600000000, + { + "playerPersonal": { + "notificationSettings": { + "shouldSendEmail": true, + "maySendPromoEmail": true + }, + "energyState": "XM_OK", + "energy": 10000, + "clientLevel": 36, + "ap": "12000000", + "mediaHighWaterMarks": { + "RESISTANCE": 9, + "General": 63 + }, + "allowNicknameEdit": false, + "allowFactionChoice": false + }, + "controllingTeam": { + "team": "RESISTANCE" + } + } + ], + "gameEntities": [], + "deletedEntityGuids": [], + "inventory": [ + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 1 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "modResource": { + "resourceType": "RES_SHIELD", + "stats": { + "MITIGATION": "6" + }, + "displayName": "Portal Shield", + "rarity": "COMMON" + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 1 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 1 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 4 + }, + "requiredLevel": 4 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 4 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 6 + }, + "requiredLevel": 6 + }, + "resourceWithLevels": { + "resourceType": "POWER_CUBE", + "level": 6 + }, + "powerCube": { + "energy": 6000 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 4 + }, + "requiredLevel": 4 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 4 + } + } + ] + ], + "apGains": [ + { + "apTrigger": "REDEEMED_AP", + "apGainAmount": "200" + } + ] + }, + "result": { + "apAward": "1200000", + "xmAward": "10000", + "inventoryAward": [ + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 1 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 1 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 1 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 1 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 1 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 1 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 1 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 1 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 1 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 1 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 2 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 2 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 2 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 2 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 2 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 2 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 2 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 2 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 2 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMITTER_A", + "level": 2 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 3 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 3 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 3 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 3 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 3 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 3 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 3 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 3 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 3 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 3 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 4 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 4 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 4 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 4 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 4 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 4 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 4 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 4 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 4 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 4 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 5 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 5 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 5 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 5 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 5 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 5 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 5 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 5 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 5 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 5 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 6 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 6 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 6 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 6 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 6 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 6 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 6 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 6 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 6 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 1 + }, + "requiredLevel": 1 + }, + "resourceWithLevels": { + "resourceType": "EMP_BURSTER", + "level": 6 + }, + "empWeapon": { + "ammo": 1, + "level": 1 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 6 + }, + "requiredLevel": 6 + }, + "resourceWithLevels": { + "resourceType": "POWER_CUBE", + "level": 7 + }, + "powerCube": { + "energy": 6000 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 6 + }, + "requiredLevel": 6 + }, + "resourceWithLevels": { + "resourceType": "POWER_CUBE", + "level": 8 + }, + "powerCube": { + "energy": 6000 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "modResource": { + "resourceType": "RES_SHIELD", + "stats": { + "MITIGATION": "6" + }, + "displayName": "Portal Shield", + "rarity": "COMMON" + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "modResource": { + "resourceType": "RES_SHIELD", + "stats": { + "MITIGATION": "6" + }, + "displayName": "Portal Shield", + "rarity": "COMMON" + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "modResource": { + "resourceType": "RES_SHIELD", + "stats": { + "MITIGATION": "6" + }, + "displayName": "Portal Shield", + "rarity": "RARE" + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "modResource": { + "resourceType": "RES_SHIELD", + "stats": { + "MITIGATION": "6" + }, + "displayName": "Portal Shield", + "rarity": "RARE" + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "modResource": { + "resourceType": "RES_SHIELD", + "stats": { + "MITIGATION": "6" + }, + "displayName": "Portal Shield", + "rarity": "VERY_RARE" + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "modResource": { + "resourceType": "RES_SHIELD", + "stats": { + "MITIGATION": "6" + }, + "displayName": "Portal Shield", + "rarity": "VERY_RARE" + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 6 + }, + "requiredLevel": 6 + }, + "doesNotExist": { + "resourceType": "MEDIA", + "level": 8 + }, + "powerCube": { + "energy": 6000 + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "modResource": { + "resourceType": "PORTAL_TURRET", + "stats": { + "MITIGATION": "6" + }, + "displayName": "Portal Turret", + "rarity": "VERY_RARE" + } + } + ], + [ + "00000000000000000000000000000000.5", + 1365600000000, + { + "inInventory": { + "playerId": "00000000000000000000000000000000.c", + "acquisitionTimestampMs": "1365600000000" + }, + "accessLevel": { + "failure": { + "isAllowed": false, + "requiredLevel": 6 + }, + "requiredLevel": 6 + }, + "doesNotExist": { + "resourceType": "SUPER_SECRET" + } + } + ] + ] + } +} \ No newline at end of file