@screeps/renderer-metadata 1.6.9 → 1.6.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"renderer-metadata.js","mappings":"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","sources":["webpack://RENDERER_METADATA/./node_modules/@screeps/common/lib/constants.js","webpack://RENDERER_METADATA/webpack/bootstrap","webpack://RENDERER_METADATA/webpack/runtime/compat get default export","webpack://RENDERER_METADATA/webpack/runtime/define property getters","webpack://RENDERER_METADATA/webpack/runtime/hasOwnProperty shorthand","webpack://RENDERER_METADATA/./src/action-templates/appear.js","webpack://RENDERER_METADATA/./src/action-templates/blinking.js","webpack://RENDERER_METADATA/./src/action-templates/displayName.js","webpack://RENDERER_METADATA/./src/action-templates/flickering.js","webpack://RENDERER_METADATA/./src/objects/_all.metadata.js","webpack://RENDERER_METADATA/./src/objects/constructedWall.metadata.js","webpack://RENDERER_METADATA/./src/objects/constructionSite.metadata.js","webpack://RENDERER_METADATA/./src/calculation-templates/resourceTotal.js","webpack://RENDERER_METADATA/./src/objects/container.metadata.js","webpack://RENDERER_METADATA/./src/objects/controller.metadata.js","webpack://RENDERER_METADATA/../helpers/mathHelper.js","webpack://RENDERER_METADATA/./src/objects/creep.metadata.js","webpack://RENDERER_METADATA/./src/objects/deposit.metadata.js","webpack://RENDERER_METADATA/./src/objects/extension.metadata.js","webpack://RENDERER_METADATA/./src/objects/extractor.metadata.js","webpack://RENDERER_METADATA/./src/objects/factory.metadata.js","webpack://RENDERER_METADATA/./src/objects/flag.metadata.js","webpack://RENDERER_METADATA/./src/objects/lab.metadata.js","webpack://RENDERER_METADATA/./src/objects/link.metadata.js","webpack://RENDERER_METADATA/./src/objects/mineral.metadata.js","webpack://RENDERER_METADATA/./src/objects/nuke.metadata.js","webpack://RENDERER_METADATA/./src/objects/nuker.metadata.js","webpack://RENDERER_METADATA/./src/objects/powerBank.metadata.js","webpack://RENDERER_METADATA/./src/objects/powerCreep.metadata.js","webpack://RENDERER_METADATA/./src/objects/powerSpawn.metadata.js","webpack://RENDERER_METADATA/./src/objects/source.metadata.js","webpack://RENDERER_METADATA/./src/objects/spawn.metadata.js","webpack://RENDERER_METADATA/./src/objects/storage.metadata.js","webpack://RENDERER_METADATA/./src/objects/terminal.metadata.js","webpack://RENDERER_METADATA/./src/objects/tombstone.metadata.js","webpack://RENDERER_METADATA/./src/objects/tower.metadata.js","webpack://RENDERER_METADATA/./src/objects/invaderCore.metadata.js","webpack://RENDERER_METADATA/./src/objects/ruin.metadata.js","webpack://RENDERER_METADATA/./src/index.js","webpack://RENDERER_METADATA/./src/objects/energy.metadata.js","webpack://RENDERER_METADATA/./src/objects/keeperLair.metadata.js","webpack://RENDERER_METADATA/./src/objects/observer.metadata.js","webpack://RENDERER_METADATA/./src/objects/portal.metadata.js","webpack://RENDERER_METADATA/./src/objects/road.metadata.js","webpack://RENDERER_METADATA/./src/objects/rampart.metadata.js"],"sourcesContent":["Object.assign(exports, {\n OK: 0,\n ERR_NOT_OWNER: -1,\n ERR_NO_PATH: -2,\n ERR_NAME_EXISTS: -3,\n ERR_BUSY: -4,\n ERR_NOT_FOUND: -5,\n ERR_NOT_ENOUGH_ENERGY: -6,\n ERR_NOT_ENOUGH_RESOURCES: -6,\n ERR_INVALID_TARGET: -7,\n ERR_FULL: -8,\n ERR_NOT_IN_RANGE: -9,\n ERR_INVALID_ARGS: -10,\n ERR_TIRED: -11,\n ERR_NO_BODYPART: -12,\n ERR_NOT_ENOUGH_EXTENSIONS: -6,\n ERR_RCL_NOT_ENOUGH: -14,\n ERR_GCL_NOT_ENOUGH: -15,\n\n FIND_EXIT_TOP: 1,\n FIND_EXIT_RIGHT: 3,\n FIND_EXIT_BOTTOM: 5,\n FIND_EXIT_LEFT: 7,\n FIND_EXIT: 10,\n FIND_CREEPS: 101,\n FIND_MY_CREEPS: 102,\n FIND_HOSTILE_CREEPS: 103,\n FIND_SOURCES_ACTIVE: 104,\n FIND_SOURCES: 105,\n FIND_DROPPED_RESOURCES: 106,\n FIND_STRUCTURES: 107,\n FIND_MY_STRUCTURES: 108,\n FIND_HOSTILE_STRUCTURES: 109,\n FIND_FLAGS: 110,\n FIND_CONSTRUCTION_SITES: 111,\n FIND_MY_SPAWNS: 112,\n FIND_HOSTILE_SPAWNS: 113,\n FIND_MY_CONSTRUCTION_SITES: 114,\n FIND_HOSTILE_CONSTRUCTION_SITES: 115,\n FIND_MINERALS: 116,\n FIND_NUKES: 117,\n FIND_TOMBSTONES: 118,\n FIND_POWER_CREEPS: 119,\n FIND_MY_POWER_CREEPS: 120,\n FIND_HOSTILE_POWER_CREEPS: 121,\n FIND_DEPOSITS: 122,\n FIND_RUINS: 123,\n\n TOP: 1,\n TOP_RIGHT: 2,\n RIGHT: 3,\n BOTTOM_RIGHT: 4,\n BOTTOM: 5,\n BOTTOM_LEFT: 6,\n LEFT: 7,\n TOP_LEFT: 8,\n\n COLOR_RED: 1,\n COLOR_PURPLE: 2,\n COLOR_BLUE: 3,\n COLOR_CYAN: 4,\n COLOR_GREEN: 5,\n COLOR_YELLOW: 6,\n COLOR_ORANGE: 7,\n COLOR_BROWN: 8,\n COLOR_GREY: 9,\n COLOR_WHITE: 10,\n\n LOOK_CREEPS: \"creep\",\n LOOK_ENERGY: \"energy\",\n LOOK_RESOURCES: \"resource\",\n LOOK_SOURCES: \"source\",\n LOOK_MINERALS: \"mineral\",\n LOOK_DEPOSITS: \"deposit\",\n LOOK_STRUCTURES: \"structure\",\n LOOK_FLAGS: \"flag\",\n LOOK_CONSTRUCTION_SITES: \"constructionSite\",\n LOOK_NUKES: \"nuke\",\n LOOK_TERRAIN: \"terrain\",\n LOOK_TOMBSTONES: \"tombstone\",\n LOOK_POWER_CREEPS: \"powerCreep\",\n LOOK_RUINS: \"ruin\",\n\n OBSTACLE_OBJECT_TYPES: [\"spawn\", \"creep\", \"powerCreep\", \"source\", \"mineral\", \"deposit\", \"controller\", \"constructedWall\", \"extension\", \"link\", \"storage\", \"tower\", \"observer\", \"powerSpawn\", \"powerBank\", \"lab\", \"terminal\", \"nuker\", \"factory\", \"invaderCore\"],\n\n MOVE: \"move\",\n WORK: \"work\",\n CARRY: \"carry\",\n ATTACK: \"attack\",\n RANGED_ATTACK: \"ranged_attack\",\n TOUGH: \"tough\",\n HEAL: \"heal\",\n CLAIM: \"claim\",\n\n BODYPART_COST: {\n \"move\": 50,\n \"work\": 100,\n \"attack\": 80,\n \"carry\": 50,\n \"heal\": 250,\n \"ranged_attack\": 150,\n \"tough\": 10,\n \"claim\": 600\n },\n\n // WORLD_WIDTH and WORLD_HEIGHT constants are deprecated, please use Game.map.getWorldSize() instead\n WORLD_WIDTH: 202,\n WORLD_HEIGHT: 202,\n\n CREEP_LIFE_TIME: 1500,\n CREEP_CLAIM_LIFE_TIME: 600,\n CREEP_CORPSE_RATE: 0.2,\n CREEP_PART_MAX_ENERGY: 125,\n\n CARRY_CAPACITY: 50,\n HARVEST_POWER: 2,\n HARVEST_MINERAL_POWER: 1,\n HARVEST_DEPOSIT_POWER: 1,\n REPAIR_POWER: 100,\n DISMANTLE_POWER: 50,\n BUILD_POWER: 5,\n ATTACK_POWER: 30,\n UPGRADE_CONTROLLER_POWER: 1,\n RANGED_ATTACK_POWER: 10,\n HEAL_POWER: 12,\n RANGED_HEAL_POWER: 4,\n REPAIR_COST: 0.01,\n DISMANTLE_COST: 0.005,\n\n RAMPART_DECAY_AMOUNT: 300,\n RAMPART_DECAY_TIME: 100,\n RAMPART_HITS: 1,\n RAMPART_HITS_MAX: {2: 300000, 3: 1000000, 4: 3000000, 5: 10000000, 6: 30000000, 7: 100000000, 8: 300000000},\n\n ENERGY_REGEN_TIME: 300,\n ENERGY_DECAY: 1000,\n\n SPAWN_HITS: 5000,\n SPAWN_ENERGY_START: 300,\n SPAWN_ENERGY_CAPACITY: 300,\n CREEP_SPAWN_TIME: 3,\n SPAWN_RENEW_RATIO: 1.2,\n\n SOURCE_ENERGY_CAPACITY: 3000,\n SOURCE_ENERGY_NEUTRAL_CAPACITY: 1500,\n SOURCE_ENERGY_KEEPER_CAPACITY: 4000,\n\n WALL_HITS: 1,\n WALL_HITS_MAX: 300000000,\n\n EXTENSION_HITS: 1000,\n EXTENSION_ENERGY_CAPACITY: {0: 50, 1: 50, 2: 50, 3: 50, 4: 50, 5: 50, 6: 50, 7: 100, 8: 200},\n\n ROAD_HITS: 5000,\n ROAD_WEAROUT: 1,\n ROAD_WEAROUT_POWER_CREEP: 100,\n ROAD_DECAY_AMOUNT: 100,\n ROAD_DECAY_TIME: 1000,\n\n LINK_HITS: 1000,\n LINK_HITS_MAX: 1000,\n LINK_CAPACITY: 800,\n LINK_COOLDOWN: 1,\n LINK_LOSS_RATIO: 0.03,\n\n STORAGE_CAPACITY: 1000000,\n STORAGE_HITS: 10000,\n\n STRUCTURE_SPAWN: \"spawn\",\n STRUCTURE_EXTENSION: \"extension\",\n STRUCTURE_ROAD: \"road\",\n STRUCTURE_WALL: \"constructedWall\",\n STRUCTURE_RAMPART: \"rampart\",\n STRUCTURE_KEEPER_LAIR: \"keeperLair\",\n STRUCTURE_PORTAL: \"portal\",\n STRUCTURE_CONTROLLER: \"controller\",\n STRUCTURE_LINK: \"link\",\n STRUCTURE_STORAGE: \"storage\",\n STRUCTURE_TOWER: \"tower\",\n STRUCTURE_OBSERVER: \"observer\",\n STRUCTURE_POWER_BANK: \"powerBank\",\n STRUCTURE_POWER_SPAWN: \"powerSpawn\",\n STRUCTURE_EXTRACTOR: \"extractor\",\n STRUCTURE_LAB: \"lab\",\n STRUCTURE_TERMINAL: \"terminal\",\n STRUCTURE_CONTAINER: \"container\",\n STRUCTURE_NUKER: \"nuker\",\n STRUCTURE_FACTORY: \"factory\",\n STRUCTURE_INVADER_CORE: \"invaderCore\",\n\n CONSTRUCTION_COST: {\n \"spawn\": 15000,\n \"extension\": 3000,\n \"road\": 300,\n \"constructedWall\": 1,\n \"rampart\": 1,\n \"link\": 5000,\n \"storage\": 30000,\n \"tower\": 5000,\n \"observer\": 8000,\n \"powerSpawn\": 100000,\n \"extractor\": 5000,\n \"lab\": 50000,\n \"terminal\": 100000,\n \"container\": 5000,\n \"nuker\": 100000,\n \"factory\": 100000\n },\n CONSTRUCTION_COST_ROAD_SWAMP_RATIO: 5,\n CONSTRUCTION_COST_ROAD_WALL_RATIO: 150,\n\n CONTROLLER_LEVELS: {1: 200, 2: 45000, 3: 135000, 4: 405000, 5: 1215000, 6: 3645000, 7: 10935000},\n CONTROLLER_STRUCTURES: {\n \"spawn\": {0: 0, 1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 2, 8: 3},\n \"extension\": {0: 0, 1: 0, 2: 5, 3: 10, 4: 20, 5: 30, 6: 40, 7: 50, 8: 60},\n \"link\": {1: 0, 2: 0, 3: 0, 4: 0, 5: 2, 6: 3, 7: 4, 8: 6},\n \"road\": {0: 2500, 1: 2500, 2: 2500, 3: 2500, 4: 2500, 5: 2500, 6: 2500, 7: 2500, 8: 2500},\n \"constructedWall\": {1: 0, 2: 2500, 3: 2500, 4: 2500, 5: 2500, 6: 2500, 7: 2500, 8: 2500},\n \"rampart\": {1: 0, 2: 2500, 3: 2500, 4: 2500, 5: 2500, 6: 2500, 7: 2500, 8: 2500},\n \"storage\": {1: 0, 2: 0, 3: 0, 4: 1, 5: 1, 6: 1, 7: 1, 8: 1},\n \"tower\": {1: 0, 2: 0, 3: 1, 4: 1, 5: 2, 6: 2, 7: 3, 8: 6},\n \"observer\": {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 1},\n \"powerSpawn\": {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 1},\n \"extractor\": {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 1, 7: 1, 8: 1},\n \"terminal\": {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 1, 7: 1, 8: 1},\n \"lab\": {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 3, 7: 6, 8: 10},\n \"container\": {0: 5, 1: 5, 2: 5, 3: 5, 4: 5, 5: 5, 6: 5, 7: 5, 8: 5},\n \"nuker\": {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 1},\n \"factory\": {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 1, 8: 1}\n },\n CONTROLLER_DOWNGRADE: {1: 20000, 2: 10000, 3: 20000, 4: 40000, 5: 80000, 6: 120000, 7: 150000, 8: 200000},\n CONTROLLER_DOWNGRADE_RESTORE: 100,\n CONTROLLER_DOWNGRADE_SAFEMODE_THRESHOLD: 5000,\n CONTROLLER_CLAIM_DOWNGRADE: 300,\n CONTROLLER_RESERVE: 1,\n CONTROLLER_RESERVE_MAX: 5000,\n CONTROLLER_MAX_UPGRADE_PER_TICK: 15,\n CONTROLLER_ATTACK_BLOCKED_UPGRADE: 1000,\n CONTROLLER_NUKE_BLOCKED_UPGRADE: 200,\n\n SAFE_MODE_DURATION: 20000,\n SAFE_MODE_COOLDOWN: 50000,\n SAFE_MODE_COST: 1000,\n\n TOWER_HITS: 3000,\n TOWER_CAPACITY: 1000,\n TOWER_ENERGY_COST: 10,\n TOWER_POWER_ATTACK: 600,\n TOWER_POWER_HEAL: 400,\n TOWER_POWER_REPAIR: 800,\n TOWER_OPTIMAL_RANGE: 5,\n TOWER_FALLOFF_RANGE: 20,\n TOWER_FALLOFF: 0.75,\n\n OBSERVER_HITS: 500,\n OBSERVER_RANGE: 10,\n\n POWER_BANK_HITS: 2000000,\n POWER_BANK_CAPACITY_MAX: 5000,\n POWER_BANK_CAPACITY_MIN: 500,\n POWER_BANK_CAPACITY_CRIT: 0.3,\n POWER_BANK_DECAY: 5000,\n POWER_BANK_HIT_BACK: 0.5,\n\n POWER_SPAWN_HITS: 5000,\n POWER_SPAWN_ENERGY_CAPACITY: 5000,\n POWER_SPAWN_POWER_CAPACITY: 100,\n POWER_SPAWN_ENERGY_RATIO: 50,\n\n EXTRACTOR_HITS: 500,\n EXTRACTOR_COOLDOWN: 5,\n\n LAB_HITS: 500,\n LAB_MINERAL_CAPACITY: 3000,\n LAB_ENERGY_CAPACITY: 2000,\n LAB_BOOST_ENERGY: 20,\n LAB_BOOST_MINERAL: 30,\n LAB_COOLDOWN: 10, // not used\n LAB_REACTION_AMOUNT: 5,\n LAB_UNBOOST_ENERGY: 0,\n LAB_UNBOOST_MINERAL: 15,\n\n GCL_POW: 2.4,\n GCL_MULTIPLY: 1000000,\n GCL_NOVICE: 3,\n\n MODE_SIMULATION: null,\n MODE_WORLD: null,\n\n TERRAIN_MASK_WALL: 1,\n TERRAIN_MASK_SWAMP: 2,\n TERRAIN_MASK_LAVA: 4,\n\n MAX_CONSTRUCTION_SITES: 100,\n MAX_CREEP_SIZE: 50,\n\n MINERAL_REGEN_TIME: 50000,\n MINERAL_MIN_AMOUNT: {\n \"H\": 35000,\n \"O\": 35000,\n \"L\": 35000,\n \"K\": 35000,\n \"Z\": 35000,\n \"U\": 35000,\n \"X\": 35000\n },\n MINERAL_RANDOM_FACTOR: 2,\n\n MINERAL_DENSITY: {\n 1: 15000,\n 2: 35000,\n 3: 70000,\n 4: 100000\n },\n MINERAL_DENSITY_PROBABILITY : {\n 1: 0.1,\n 2: 0.5,\n 3: 0.9,\n 4: 1.0\n },\n MINERAL_DENSITY_CHANGE: 0.05,\n\n DENSITY_LOW: 1,\n DENSITY_MODERATE: 2,\n DENSITY_HIGH: 3,\n DENSITY_ULTRA: 4,\n\n DEPOSIT_EXHAUST_MULTIPLY: 0.001,\n DEPOSIT_EXHAUST_POW: 1.2,\n DEPOSIT_DECAY_TIME: 50000,\n\n TERMINAL_CAPACITY: 300000,\n TERMINAL_HITS: 3000,\n TERMINAL_SEND_COST: 0.1,\n TERMINAL_MIN_SEND: 100,\n TERMINAL_COOLDOWN: 10,\n\n CONTAINER_HITS: 250000,\n CONTAINER_CAPACITY: 2000,\n CONTAINER_DECAY: 5000,\n CONTAINER_DECAY_TIME: 100,\n CONTAINER_DECAY_TIME_OWNED: 500,\n\n NUKER_HITS: 1000,\n NUKER_COOLDOWN: 100000,\n NUKER_ENERGY_CAPACITY: 300000,\n NUKER_GHODIUM_CAPACITY: 5000,\n NUKE_LAND_TIME: 50000,\n NUKE_RANGE: 10,\n NUKE_DAMAGE: {\n 0: 10000000,\n 2: 5000000\n },\n\n FACTORY_HITS: 1000,\n FACTORY_CAPACITY: 50000,\n\n TOMBSTONE_DECAY_PER_PART: 5,\n TOMBSTONE_DECAY_POWER_CREEP: 500,\n\n RUIN_DECAY: 500,\n RUIN_DECAY_STRUCTURES: {\n 'powerBank': 10\n },\n\n PORTAL_DECAY: 30000,\n\n ORDER_SELL: \"sell\",\n ORDER_BUY: \"buy\",\n\n MARKET_FEE: 0.05,\n\n MARKET_MAX_ORDERS: 300,\n MARKET_ORDER_LIFE_TIME: 1000*60*60*24*30,\n\n FLAGS_LIMIT: 10000,\n\n SUBSCRIPTION_TOKEN: \"token\",\n CPU_UNLOCK: \"cpuUnlock\",\n PIXEL: \"pixel\",\n ACCESS_KEY: \"accessKey\",\n\n PIXEL_CPU_COST: 10000,\n\n RESOURCE_ENERGY: \"energy\",\n RESOURCE_POWER: \"power\",\n\n RESOURCE_HYDROGEN: \"H\",\n RESOURCE_OXYGEN: \"O\",\n RESOURCE_UTRIUM: \"U\",\n RESOURCE_LEMERGIUM: \"L\",\n RESOURCE_KEANIUM: \"K\",\n RESOURCE_ZYNTHIUM: \"Z\",\n RESOURCE_CATALYST: \"X\",\n RESOURCE_GHODIUM: \"G\",\n\n RESOURCE_SILICON: 'silicon',\n RESOURCE_METAL: 'metal',\n RESOURCE_BIOMASS: 'biomass',\n RESOURCE_MIST: 'mist',\n\n RESOURCE_HYDROXIDE: \"OH\",\n RESOURCE_ZYNTHIUM_KEANITE: \"ZK\",\n RESOURCE_UTRIUM_LEMERGITE: \"UL\",\n\n RESOURCE_UTRIUM_HYDRIDE: \"UH\",\n RESOURCE_UTRIUM_OXIDE: \"UO\",\n RESOURCE_KEANIUM_HYDRIDE: \"KH\",\n RESOURCE_KEANIUM_OXIDE: \"KO\",\n RESOURCE_LEMERGIUM_HYDRIDE: \"LH\",\n RESOURCE_LEMERGIUM_OXIDE: \"LO\",\n RESOURCE_ZYNTHIUM_HYDRIDE: \"ZH\",\n RESOURCE_ZYNTHIUM_OXIDE: \"ZO\",\n RESOURCE_GHODIUM_HYDRIDE: \"GH\",\n RESOURCE_GHODIUM_OXIDE: \"GO\",\n\n RESOURCE_UTRIUM_ACID: \"UH2O\",\n RESOURCE_UTRIUM_ALKALIDE: \"UHO2\",\n RESOURCE_KEANIUM_ACID: \"KH2O\",\n RESOURCE_KEANIUM_ALKALIDE: \"KHO2\",\n RESOURCE_LEMERGIUM_ACID: \"LH2O\",\n RESOURCE_LEMERGIUM_ALKALIDE: \"LHO2\",\n RESOURCE_ZYNTHIUM_ACID: \"ZH2O\",\n RESOURCE_ZYNTHIUM_ALKALIDE: \"ZHO2\",\n RESOURCE_GHODIUM_ACID: \"GH2O\",\n RESOURCE_GHODIUM_ALKALIDE: \"GHO2\",\n\n RESOURCE_CATALYZED_UTRIUM_ACID: \"XUH2O\",\n RESOURCE_CATALYZED_UTRIUM_ALKALIDE: \"XUHO2\",\n RESOURCE_CATALYZED_KEANIUM_ACID: \"XKH2O\",\n RESOURCE_CATALYZED_KEANIUM_ALKALIDE: \"XKHO2\",\n RESOURCE_CATALYZED_LEMERGIUM_ACID: \"XLH2O\",\n RESOURCE_CATALYZED_LEMERGIUM_ALKALIDE: \"XLHO2\",\n RESOURCE_CATALYZED_ZYNTHIUM_ACID: \"XZH2O\",\n RESOURCE_CATALYZED_ZYNTHIUM_ALKALIDE: \"XZHO2\",\n RESOURCE_CATALYZED_GHODIUM_ACID: \"XGH2O\",\n RESOURCE_CATALYZED_GHODIUM_ALKALIDE: \"XGHO2\",\n\n RESOURCE_OPS: \"ops\",\n\n RESOURCE_UTRIUM_BAR: 'utrium_bar',\n RESOURCE_LEMERGIUM_BAR: 'lemergium_bar',\n RESOURCE_ZYNTHIUM_BAR: 'zynthium_bar',\n RESOURCE_KEANIUM_BAR: 'keanium_bar',\n RESOURCE_GHODIUM_MELT: 'ghodium_melt',\n RESOURCE_OXIDANT: 'oxidant',\n RESOURCE_REDUCTANT: 'reductant',\n RESOURCE_PURIFIER: 'purifier',\n RESOURCE_BATTERY: 'battery',\n\n RESOURCE_COMPOSITE: 'composite',\n RESOURCE_CRYSTAL: 'crystal',\n RESOURCE_LIQUID: 'liquid',\n\n RESOURCE_WIRE: 'wire',\n RESOURCE_SWITCH: 'switch',\n RESOURCE_TRANSISTOR: 'transistor',\n RESOURCE_MICROCHIP: 'microchip',\n RESOURCE_CIRCUIT: 'circuit',\n RESOURCE_DEVICE: 'device',\n\n RESOURCE_CELL: 'cell',\n RESOURCE_PHLEGM: 'phlegm',\n RESOURCE_TISSUE: 'tissue',\n RESOURCE_MUSCLE: 'muscle',\n RESOURCE_ORGANOID: 'organoid',\n RESOURCE_ORGANISM: 'organism',\n\n RESOURCE_ALLOY: 'alloy',\n RESOURCE_TUBE: 'tube',\n RESOURCE_FIXTURES: 'fixtures',\n RESOURCE_FRAME: 'frame',\n RESOURCE_HYDRAULICS: 'hydraulics',\n RESOURCE_MACHINE: 'machine',\n\n RESOURCE_CONDENSATE: 'condensate',\n RESOURCE_CONCENTRATE: 'concentrate',\n RESOURCE_EXTRACT: 'extract',\n RESOURCE_SPIRIT: 'spirit',\n RESOURCE_EMANATION: 'emanation',\n RESOURCE_ESSENCE: 'essence',\n\n REACTIONS: {\n H: {\n O: \"OH\",\n L: \"LH\",\n K: \"KH\",\n U: \"UH\",\n Z: \"ZH\",\n G: \"GH\"\n },\n O: {\n H: \"OH\",\n L: \"LO\",\n K: \"KO\",\n U: \"UO\",\n Z: \"ZO\",\n G: \"GO\"\n },\n Z: {\n K: \"ZK\",\n H: \"ZH\",\n O: \"ZO\"\n },\n L: {\n U: \"UL\",\n H: \"LH\",\n O: \"LO\"\n },\n K: {\n Z: \"ZK\",\n H: \"KH\",\n O: \"KO\"\n },\n G: {\n H: \"GH\",\n O: \"GO\"\n },\n U: {\n L: \"UL\",\n H: \"UH\",\n O: \"UO\"\n },\n OH: {\n UH: \"UH2O\",\n UO: \"UHO2\",\n ZH: \"ZH2O\",\n ZO: \"ZHO2\",\n KH: \"KH2O\",\n KO: \"KHO2\",\n LH: \"LH2O\",\n LO: \"LHO2\",\n GH: \"GH2O\",\n GO: \"GHO2\"\n },\n X: {\n UH2O: \"XUH2O\",\n UHO2: \"XUHO2\",\n LH2O: \"XLH2O\",\n LHO2: \"XLHO2\",\n KH2O: \"XKH2O\",\n KHO2: \"XKHO2\",\n ZH2O: \"XZH2O\",\n ZHO2: \"XZHO2\",\n GH2O: \"XGH2O\",\n GHO2: \"XGHO2\"\n },\n ZK: {\n UL: \"G\"\n },\n UL: {\n ZK: \"G\"\n },\n LH: {\n OH: \"LH2O\"\n },\n ZH: {\n OH: \"ZH2O\"\n },\n GH: {\n OH: \"GH2O\"\n },\n KH: {\n OH: \"KH2O\"\n },\n UH: {\n OH: \"UH2O\"\n },\n LO: {\n OH: \"LHO2\"\n },\n ZO: {\n OH: \"ZHO2\"\n },\n KO: {\n OH: \"KHO2\"\n },\n UO: {\n OH: \"UHO2\"\n },\n GO: {\n OH: \"GHO2\"\n },\n LH2O: {\n X: \"XLH2O\"\n },\n KH2O: {\n X: \"XKH2O\"\n },\n ZH2O: {\n X: \"XZH2O\"\n },\n UH2O: {\n X: \"XUH2O\"\n },\n GH2O: {\n X: \"XGH2O\"\n },\n LHO2: {\n X: \"XLHO2\"\n },\n UHO2: {\n X: \"XUHO2\"\n },\n KHO2: {\n X: \"XKHO2\"\n },\n ZHO2: {\n X: \"XZHO2\"\n },\n GHO2: {\n X: \"XGHO2\"\n }\n },\n\n BOOSTS: {\n work: {\n UO: {\n harvest: 3\n },\n UHO2: {\n harvest: 5\n },\n XUHO2: {\n harvest: 7\n },\n LH: {\n build: 1.5,\n repair: 1.5\n },\n LH2O: {\n build: 1.8,\n repair: 1.8\n },\n XLH2O: {\n build: 2,\n repair: 2\n },\n ZH: {\n dismantle: 2\n },\n ZH2O: {\n dismantle: 3\n },\n XZH2O: {\n dismantle: 4\n },\n GH: {\n upgradeController: 1.5\n },\n GH2O: {\n upgradeController: 1.8\n },\n XGH2O: {\n upgradeController: 2\n }\n },\n attack: {\n UH: {\n attack: 2\n },\n UH2O: {\n attack: 3\n },\n XUH2O: {\n attack: 4\n }\n },\n ranged_attack: {\n KO: {\n rangedAttack: 2,\n rangedMassAttack: 2\n },\n KHO2: {\n rangedAttack: 3,\n rangedMassAttack: 3\n },\n XKHO2: {\n rangedAttack: 4,\n rangedMassAttack: 4\n }\n },\n heal: {\n LO: {\n heal: 2,\n rangedHeal: 2\n },\n LHO2: {\n heal: 3,\n rangedHeal: 3\n },\n XLHO2: {\n heal: 4,\n rangedHeal: 4\n }\n },\n carry: {\n KH: {\n capacity: 2\n },\n KH2O: {\n capacity: 3\n },\n XKH2O: {\n capacity: 4\n }\n },\n move: {\n ZO: {\n fatigue: 2\n },\n ZHO2: {\n fatigue: 3\n },\n XZHO2: {\n fatigue: 4\n }\n },\n tough: {\n GO: {\n damage: .7\n },\n GHO2: {\n damage: .5\n },\n XGHO2: {\n damage: .3\n }\n }\n },\n\n REACTION_TIME: {\n OH: 20,\n ZK: 5,\n UL: 5,\n G: 5,\n UH: 10,\n UH2O: 5,\n XUH2O: 60,\n UO: 10,\n UHO2: 5,\n XUHO2: 60,\n KH: 10,\n KH2O: 5,\n XKH2O: 60,\n KO: 10,\n KHO2: 5,\n XKHO2: 60,\n LH: 15,\n LH2O: 10,\n XLH2O: 65,\n LO: 10,\n LHO2: 5,\n XLHO2: 60,\n ZH: 20,\n ZH2O: 40,\n XZH2O: 160,\n ZO: 10,\n ZHO2: 5,\n XZHO2: 60,\n GH: 10,\n GH2O: 15,\n XGH2O: 80,\n GO: 10,\n GHO2: 30,\n XGHO2: 150,\n },\n\n PORTAL_UNSTABLE: 10*24*3600*1000,\n PORTAL_MIN_TIMEOUT: 12*24*3600*1000,\n PORTAL_MAX_TIMEOUT: 22*24*3600*1000,\n\n POWER_BANK_RESPAWN_TIME: 50000,\n\n INVADERS_ENERGY_GOAL: 100000,\n\n SYSTEM_USERNAME: 'Screeps',\n\n // SIGN_NOVICE_AREA and SIGN_RESPAWN_AREA constants are deprecated, please use SIGN_PLANNED_AREA instead\n SIGN_NOVICE_AREA: 'A new Novice or Respawn Area is being planned somewhere in this sector. Please make sure all important rooms are reserved.',\n SIGN_RESPAWN_AREA: 'A new Novice or Respawn Area is being planned somewhere in this sector. Please make sure all important rooms are reserved.',\n SIGN_PLANNED_AREA: 'A new Novice or Respawn Area is being planned somewhere in this sector. Please make sure all important rooms are reserved.',\n\n EVENT_ATTACK: 1,\n EVENT_OBJECT_DESTROYED: 2,\n EVENT_ATTACK_CONTROLLER: 3,\n EVENT_BUILD: 4,\n EVENT_HARVEST: 5,\n EVENT_HEAL: 6,\n EVENT_REPAIR: 7,\n EVENT_RESERVE_CONTROLLER: 8,\n EVENT_UPGRADE_CONTROLLER: 9,\n EVENT_EXIT: 10,\n EVENT_POWER: 11,\n EVENT_TRANSFER: 12,\n\n EVENT_ATTACK_TYPE_MELEE: 1,\n EVENT_ATTACK_TYPE_RANGED: 2,\n EVENT_ATTACK_TYPE_RANGED_MASS: 3,\n EVENT_ATTACK_TYPE_DISMANTLE: 4,\n EVENT_ATTACK_TYPE_HIT_BACK: 5,\n EVENT_ATTACK_TYPE_NUKE: 6,\n\n EVENT_HEAL_TYPE_MELEE: 1,\n EVENT_HEAL_TYPE_RANGED: 2,\n\n POWER_LEVEL_MULTIPLY: 1000,\n POWER_LEVEL_POW: 2,\n POWER_CREEP_SPAWN_COOLDOWN: 8*3600*1000,\n POWER_CREEP_DELETE_COOLDOWN: 24*3600*1000,\n POWER_CREEP_MAX_LEVEL: 25,\n POWER_CREEP_LIFE_TIME: 5000,\n\n POWER_CLASS: {\n OPERATOR: 'operator'\n },\n\n PWR_GENERATE_OPS: 1,\n PWR_OPERATE_SPAWN: 2,\n PWR_OPERATE_TOWER: 3,\n PWR_OPERATE_STORAGE: 4,\n PWR_OPERATE_LAB: 5,\n PWR_OPERATE_EXTENSION: 6,\n PWR_OPERATE_OBSERVER: 7,\n PWR_OPERATE_TERMINAL: 8,\n PWR_DISRUPT_SPAWN: 9,\n PWR_DISRUPT_TOWER: 10,\n PWR_DISRUPT_SOURCE: 11,\n PWR_SHIELD: 12,\n PWR_REGEN_SOURCE: 13,\n PWR_REGEN_MINERAL: 14,\n PWR_DISRUPT_TERMINAL: 15,\n PWR_OPERATE_POWER: 16,\n PWR_FORTIFY: 17,\n PWR_OPERATE_CONTROLLER: 18,\n PWR_OPERATE_FACTORY: 19,\n\n EFFECT_INVULNERABILITY: 1001,\n EFFECT_COLLAPSE_TIMER: 1002,\n\n INVADER_CORE_HITS: 100000,\n INVADER_CORE_CREEP_SPAWN_TIME: {\n 0: 0, 1: 0, 2: 6, 3: 3, 4: 2, 5: 1\n },\n INVADER_CORE_EXPAND_TIME: { 1: 4000, 2: 3500, 3: 3000, 4: 2500, 5: 2000 },\n INVADER_CORE_CONTROLLER_POWER: 2,\n INVADER_CORE_CONTROLLER_DOWNGRADE: 5000,\n STRONGHOLD_RAMPART_HITS: { 0: 0, 1: 100000, 2: 200000, 3: 500000, 4: 1000000, 5: 2000000 },\n STRONGHOLD_DECAY_TICKS: 75000\n});\n\nObject.assign(exports, {\n POWER_INFO: {\n [exports.PWR_GENERATE_OPS]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 50,\n effect: [1, 2, 4, 6, 8]\n },\n [exports.PWR_OPERATE_SPAWN]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 300,\n duration: 1000,\n range: 3,\n ops: 100,\n effect: [0.9, 0.7, 0.5, 0.35, 0.2]\n },\n [exports.PWR_OPERATE_TOWER]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 10,\n duration: 100,\n range: 3,\n ops: 10,\n effect: [1.1, 1.2, 1.3, 1.4, 1.5]\n },\n [exports.PWR_OPERATE_STORAGE]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 800,\n duration: 1000,\n range: 3,\n ops: 100,\n effect: [500000,1000000,2000000,4000000,7000000]\n },\n [exports.PWR_OPERATE_LAB]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 50,\n duration: 1000,\n range: 3,\n ops: 10,\n effect: [2,4,6,8,10]\n },\n [exports.PWR_OPERATE_EXTENSION]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 50,\n range: 3,\n ops: 2,\n effect: [0.2, 0.4, 0.6, 0.8, 1.0]\n },\n [exports.PWR_OPERATE_OBSERVER]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 400,\n duration: [200,400,600,800,1000],\n range: 3,\n ops: 10,\n },\n [exports.PWR_OPERATE_TERMINAL]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 500,\n duration: 1000,\n range: 3,\n ops: 100,\n effect: [0.9, 0.8, 0.7, 0.6, 0.5]\n },\n [exports.PWR_DISRUPT_SPAWN]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 5,\n range: 20,\n ops: 10,\n duration: [1,2,3,4,5]\n },\n [exports.PWR_DISRUPT_TOWER]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 0,\n duration: 5,\n range: 50,\n ops: 10,\n effect: [0.9, 0.8, 0.7, 0.6, 0.5],\n },\n [exports.PWR_DISRUPT_SOURCE]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 100,\n range: 3,\n ops: 100,\n duration: [100, 200, 300, 400, 500]\n },\n [exports.PWR_SHIELD]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n effect: [5000, 10000, 15000, 20000, 25000],\n duration: 50,\n cooldown: 20,\n energy: 100,\n },\n [exports.PWR_REGEN_SOURCE]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [10, 11, 12, 14, 22],\n cooldown: 100,\n duration: 300,\n range: 3,\n effect: [50,100,150,200,250],\n period: 15\n },\n [exports.PWR_REGEN_MINERAL]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [10, 11, 12, 14, 22],\n cooldown: 100,\n duration: 100,\n range: 3,\n effect: [2,4,6,8,10],\n period: 10\n },\n [exports.PWR_DISRUPT_TERMINAL]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [20, 21, 22, 23, 24],\n cooldown: 8,\n duration: 10,\n range: 50,\n ops: [50,40,30,20,10]\n\n },\n [exports.PWR_FORTIFY]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 5,\n range: 3,\n ops: 5,\n duration: [1, 2, 3, 4, 5]\n },\n [exports.PWR_OPERATE_POWER]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [10, 11, 12, 14, 22],\n cooldown: 800,\n range: 3,\n duration: 1000,\n ops: 200,\n effect: [1, 2, 3, 4, 5]\n },\n [exports.PWR_OPERATE_CONTROLLER]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [20, 21, 22, 23, 24],\n cooldown: 800,\n range: 3,\n duration: 1000,\n ops: 200,\n effect: [10, 20, 30, 40, 50]\n },\n [exports.PWR_OPERATE_FACTORY]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 800,\n range: 3,\n duration: 1000,\n ops: 100\n },\n },\n\n BODYPARTS_ALL: [\n exports.MOVE,\n exports.WORK,\n exports.CARRY,\n exports.ATTACK,\n exports.RANGED_ATTACK,\n exports.TOUGH,\n exports.HEAL,\n exports.CLAIM\n ],\n RESOURCES_ALL: [\n exports.RESOURCE_ENERGY,\n exports.RESOURCE_POWER,\n\n exports.RESOURCE_HYDROGEN,\n exports.RESOURCE_OXYGEN,\n exports.RESOURCE_UTRIUM,\n exports.RESOURCE_KEANIUM,\n exports.RESOURCE_LEMERGIUM,\n exports.RESOURCE_ZYNTHIUM,\n exports.RESOURCE_CATALYST,\n exports.RESOURCE_GHODIUM,\n\n exports.RESOURCE_HYDROXIDE,\n exports.RESOURCE_ZYNTHIUM_KEANITE,\n exports.RESOURCE_UTRIUM_LEMERGITE,\n\n exports.RESOURCE_UTRIUM_HYDRIDE,\n exports.RESOURCE_UTRIUM_OXIDE,\n exports.RESOURCE_KEANIUM_HYDRIDE,\n exports.RESOURCE_KEANIUM_OXIDE,\n exports.RESOURCE_LEMERGIUM_HYDRIDE,\n exports.RESOURCE_LEMERGIUM_OXIDE,\n exports.RESOURCE_ZYNTHIUM_HYDRIDE,\n exports.RESOURCE_ZYNTHIUM_OXIDE,\n exports.RESOURCE_GHODIUM_HYDRIDE,\n exports.RESOURCE_GHODIUM_OXIDE,\n\n exports.RESOURCE_UTRIUM_ACID,\n exports.RESOURCE_UTRIUM_ALKALIDE,\n exports.RESOURCE_KEANIUM_ACID,\n exports.RESOURCE_KEANIUM_ALKALIDE,\n exports.RESOURCE_LEMERGIUM_ACID,\n exports.RESOURCE_LEMERGIUM_ALKALIDE,\n exports.RESOURCE_ZYNTHIUM_ACID,\n exports.RESOURCE_ZYNTHIUM_ALKALIDE,\n exports.RESOURCE_GHODIUM_ACID,\n exports.RESOURCE_GHODIUM_ALKALIDE,\n\n exports.RESOURCE_CATALYZED_UTRIUM_ACID,\n exports.RESOURCE_CATALYZED_UTRIUM_ALKALIDE,\n exports.RESOURCE_CATALYZED_KEANIUM_ACID,\n exports.RESOURCE_CATALYZED_KEANIUM_ALKALIDE,\n exports.RESOURCE_CATALYZED_LEMERGIUM_ACID,\n exports.RESOURCE_CATALYZED_LEMERGIUM_ALKALIDE,\n exports.RESOURCE_CATALYZED_ZYNTHIUM_ACID,\n exports.RESOURCE_CATALYZED_ZYNTHIUM_ALKALIDE,\n exports.RESOURCE_CATALYZED_GHODIUM_ACID,\n exports.RESOURCE_CATALYZED_GHODIUM_ALKALIDE,\n\n exports.RESOURCE_OPS,\n\n exports.RESOURCE_SILICON,\n exports.RESOURCE_METAL,\n exports.RESOURCE_BIOMASS,\n exports.RESOURCE_MIST,\n\n exports.RESOURCE_UTRIUM_BAR,\n exports.RESOURCE_LEMERGIUM_BAR,\n exports.RESOURCE_ZYNTHIUM_BAR,\n exports.RESOURCE_KEANIUM_BAR,\n exports.RESOURCE_GHODIUM_MELT,\n exports.RESOURCE_OXIDANT,\n exports.RESOURCE_REDUCTANT,\n exports.RESOURCE_PURIFIER,\n exports.RESOURCE_BATTERY,\n exports.RESOURCE_COMPOSITE,\n exports.RESOURCE_CRYSTAL,\n exports.RESOURCE_LIQUID,\n\n exports.RESOURCE_WIRE,\n exports.RESOURCE_SWITCH,\n exports.RESOURCE_TRANSISTOR,\n exports.RESOURCE_MICROCHIP,\n exports.RESOURCE_CIRCUIT,\n exports.RESOURCE_DEVICE,\n\n exports.RESOURCE_CELL,\n exports.RESOURCE_PHLEGM,\n exports.RESOURCE_TISSUE,\n exports.RESOURCE_MUSCLE,\n exports.RESOURCE_ORGANOID,\n exports.RESOURCE_ORGANISM,\n\n exports.RESOURCE_ALLOY,\n exports.RESOURCE_TUBE,\n exports.RESOURCE_FIXTURES,\n exports.RESOURCE_FRAME,\n exports.RESOURCE_HYDRAULICS,\n exports.RESOURCE_MACHINE,\n\n exports.RESOURCE_CONDENSATE,\n exports.RESOURCE_CONCENTRATE,\n exports.RESOURCE_EXTRACT,\n exports.RESOURCE_SPIRIT,\n exports.RESOURCE_EMANATION,\n exports.RESOURCE_ESSENCE\n ],\n COLORS_ALL: [\n exports.COLOR_RED,\n exports.COLOR_PURPLE,\n exports.COLOR_BLUE,\n exports.COLOR_CYAN,\n exports.COLOR_GREEN,\n exports.COLOR_YELLOW,\n exports.COLOR_ORANGE,\n exports.COLOR_BROWN,\n exports.COLOR_GREY,\n exports.COLOR_WHITE\n ],\n INTERSHARD_RESOURCES: [\n exports.SUBSCRIPTION_TOKEN,\n exports.CPU_UNLOCK,\n exports.PIXEL,\n exports.ACCESS_KEY\n ],\n COMMODITIES: {\n [exports.RESOURCE_UTRIUM_BAR]: {\n amount: 100,\n cooldown: 20,\n components: {\n [exports.RESOURCE_UTRIUM]: 500,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_UTRIUM]: {\n amount: 500,\n cooldown: 20,\n components: {\n [exports.RESOURCE_UTRIUM_BAR]: 100,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_LEMERGIUM_BAR]: {\n amount: 100,\n cooldown: 20,\n components: {\n [exports.RESOURCE_LEMERGIUM]: 500,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_LEMERGIUM]: {\n amount: 500,\n cooldown: 20,\n components: {\n [exports.RESOURCE_LEMERGIUM_BAR]: 100,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_ZYNTHIUM_BAR]: {\n amount: 100,\n cooldown: 20,\n components: {\n [exports.RESOURCE_ZYNTHIUM]: 500,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_ZYNTHIUM]: {\n amount: 500,\n cooldown: 20,\n components: {\n [exports.RESOURCE_ZYNTHIUM_BAR]: 100,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_KEANIUM_BAR]: {\n amount: 100,\n cooldown: 20,\n components: {\n [exports.RESOURCE_KEANIUM]: 500,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_KEANIUM]: {\n amount: 500,\n cooldown: 20,\n components: {\n [exports.RESOURCE_KEANIUM_BAR]: 100,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_GHODIUM_MELT]: {\n amount: 100,\n cooldown: 20,\n components: {\n [exports.RESOURCE_GHODIUM]: 500,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_GHODIUM]: {\n amount: 500,\n cooldown: 20,\n components: {\n [exports.RESOURCE_GHODIUM_MELT]: 100,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_OXIDANT]: {\n amount: 100,\n cooldown: 20,\n components: {\n [exports.RESOURCE_OXYGEN]: 500,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_OXYGEN]: {\n amount: 500,\n cooldown: 20,\n components: {\n [exports.RESOURCE_OXIDANT]: 100,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_REDUCTANT]: {\n amount: 100,\n cooldown: 20,\n components: {\n [exports.RESOURCE_HYDROGEN]: 500,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_HYDROGEN]: {\n amount: 500,\n cooldown: 20,\n components: {\n [exports.RESOURCE_REDUCTANT]: 100,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_PURIFIER]: {\n amount: 100,\n cooldown: 20,\n components: {\n [exports.RESOURCE_CATALYST]: 500,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_CATALYST]: {\n amount: 500,\n cooldown: 20,\n components: {\n [exports.RESOURCE_PURIFIER]: 100,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_BATTERY]: {\n amount: 50,\n cooldown: 10,\n components: {\n [exports.RESOURCE_ENERGY]: 600\n }\n },\n [exports.RESOURCE_ENERGY]: {\n amount: 500,\n cooldown: 10,\n components: {\n [exports.RESOURCE_BATTERY]: 50\n }\n },\n [exports.RESOURCE_COMPOSITE]: {\n level: 1,\n amount: 20,\n cooldown: 50,\n components: {\n [exports.RESOURCE_UTRIUM_BAR]: 20,\n [exports.RESOURCE_ZYNTHIUM_BAR]: 20,\n [exports.RESOURCE_ENERGY]: 20\n }\n },\n [exports.RESOURCE_CRYSTAL]: {\n level: 2,\n amount: 6,\n cooldown: 21,\n components: {\n [exports.RESOURCE_LEMERGIUM_BAR]: 6,\n [exports.RESOURCE_KEANIUM_BAR]: 6,\n [exports.RESOURCE_PURIFIER]: 6,\n [exports.RESOURCE_ENERGY]: 45\n }\n },\n [exports.RESOURCE_LIQUID]: {\n level: 3,\n amount: 12,\n cooldown: 60,\n components: {\n [exports.RESOURCE_OXIDANT]: 12,\n [exports.RESOURCE_REDUCTANT]: 12,\n [exports.RESOURCE_GHODIUM_MELT]: 12,\n [exports.RESOURCE_ENERGY]: 90\n }\n },\n\n [exports.RESOURCE_WIRE]: {\n amount: 20,\n cooldown: 8,\n components: {\n [exports.RESOURCE_UTRIUM_BAR]: 20,\n [exports.RESOURCE_SILICON]: 100,\n [exports.RESOURCE_ENERGY]: 40\n }\n },\n [exports.RESOURCE_SWITCH]: {\n level: 1,\n amount: 5,\n cooldown: 70,\n components: {\n [exports.RESOURCE_WIRE]: 40,\n [exports.RESOURCE_OXIDANT]: 95,\n [exports.RESOURCE_UTRIUM_BAR]: 35,\n [exports.RESOURCE_ENERGY]: 20\n }\n },\n [exports.RESOURCE_TRANSISTOR]: {\n level: 2,\n amount: 1,\n cooldown: 59,\n components: {\n [exports.RESOURCE_SWITCH]: 4,\n [exports.RESOURCE_WIRE]: 15,\n [exports.RESOURCE_REDUCTANT]: 85,\n [exports.RESOURCE_ENERGY]: 8\n }\n },\n [exports.RESOURCE_MICROCHIP]: {\n level: 3,\n amount: 1,\n cooldown: 250,\n components: {\n [exports.RESOURCE_TRANSISTOR]: 2,\n [exports.RESOURCE_COMPOSITE]: 50,\n [exports.RESOURCE_WIRE]: 117,\n [exports.RESOURCE_PURIFIER]: 25,\n [exports.RESOURCE_ENERGY]: 16\n }\n },\n [exports.RESOURCE_CIRCUIT]: {\n level: 4,\n amount: 1,\n cooldown: 800,\n components: {\n [exports.RESOURCE_MICROCHIP]: 1,\n [exports.RESOURCE_TRANSISTOR]: 5,\n [exports.RESOURCE_SWITCH]: 4,\n [exports.RESOURCE_OXIDANT]: 115,\n [exports.RESOURCE_ENERGY]: 32\n }\n },\n [exports.RESOURCE_DEVICE]: {\n level: 5,\n amount: 1,\n cooldown: 600,\n components: {\n [exports.RESOURCE_CIRCUIT]: 1,\n [exports.RESOURCE_MICROCHIP]: 3,\n [exports.RESOURCE_CRYSTAL]: 110,\n [exports.RESOURCE_GHODIUM_MELT]: 150,\n [exports.RESOURCE_ENERGY]: 64\n }\n },\n\n [exports.RESOURCE_CELL]: {\n amount: 20,\n cooldown: 8,\n components: {\n [exports.RESOURCE_LEMERGIUM_BAR]: 20,\n [exports.RESOURCE_BIOMASS]: 100,\n [exports.RESOURCE_ENERGY]: 40\n }\n },\n [exports.RESOURCE_PHLEGM]: {\n level: 1,\n amount: 2,\n cooldown: 35,\n components: {\n [exports.RESOURCE_CELL]: 20,\n [exports.RESOURCE_OXIDANT]: 36,\n [exports.RESOURCE_LEMERGIUM_BAR]: 16,\n [exports.RESOURCE_ENERGY]: 8\n }\n },\n [exports.RESOURCE_TISSUE]: {\n level: 2,\n amount: 2,\n cooldown: 164,\n components: {\n [exports.RESOURCE_PHLEGM]: 10,\n [exports.RESOURCE_CELL]: 10,\n [exports.RESOURCE_REDUCTANT]: 110,\n [exports.RESOURCE_ENERGY]: 16\n }\n },\n [exports.RESOURCE_MUSCLE]: {\n level: 3,\n amount: 1,\n cooldown: 250,\n components: {\n [exports.RESOURCE_TISSUE]: 3,\n [exports.RESOURCE_PHLEGM]: 3,\n [exports.RESOURCE_ZYNTHIUM_BAR]: 50,\n [exports.RESOURCE_REDUCTANT]: 50,\n [exports.RESOURCE_ENERGY]: 16\n }\n },\n [exports.RESOURCE_ORGANOID]: {\n level: 4,\n amount: 1,\n cooldown: 800,\n components: {\n [exports.RESOURCE_MUSCLE]: 1,\n [exports.RESOURCE_TISSUE]: 5,\n [exports.RESOURCE_PURIFIER]: 208,\n [exports.RESOURCE_OXIDANT]: 256,\n [exports.RESOURCE_ENERGY]: 32\n }\n },\n [exports.RESOURCE_ORGANISM]: {\n level: 5,\n amount: 1,\n cooldown: 600,\n components: {\n [exports.RESOURCE_ORGANOID]: 1,\n [exports.RESOURCE_LIQUID]: 150,\n [exports.RESOURCE_TISSUE]: 6,\n [exports.RESOURCE_CELL]: 310,\n [exports.RESOURCE_ENERGY]: 64\n }\n },\n\n [exports.RESOURCE_ALLOY]: {\n amount: 20,\n cooldown: 8,\n components: {\n [exports.RESOURCE_ZYNTHIUM_BAR]: 20,\n [exports.RESOURCE_METAL]: 100,\n [exports.RESOURCE_ENERGY]: 40\n }\n },\n [exports.RESOURCE_TUBE]: {\n level: 1,\n amount: 2,\n cooldown: 45,\n components: {\n [exports.RESOURCE_ALLOY]: 40,\n [exports.RESOURCE_ZYNTHIUM_BAR]: 16,\n [exports.RESOURCE_ENERGY]: 8\n }\n },\n [exports.RESOURCE_FIXTURES]: {\n level: 2,\n amount: 1,\n cooldown: 115,\n components: {\n [exports.RESOURCE_COMPOSITE]: 20,\n [exports.RESOURCE_ALLOY]: 41,\n [exports.RESOURCE_OXIDANT]: 161,\n [exports.RESOURCE_ENERGY]: 8\n }\n },\n [exports.RESOURCE_FRAME]: {\n level: 3,\n amount: 1,\n cooldown: 125,\n components: {\n [exports.RESOURCE_FIXTURES]: 2,\n [exports.RESOURCE_TUBE]: 4,\n [exports.RESOURCE_REDUCTANT]: 330,\n [exports.RESOURCE_ZYNTHIUM_BAR]: 31,\n [exports.RESOURCE_ENERGY]: 16\n }\n },\n [exports.RESOURCE_HYDRAULICS]: {\n level: 4,\n amount: 1,\n cooldown: 800,\n components: {\n [exports.RESOURCE_LIQUID]: 150,\n [exports.RESOURCE_FIXTURES]: 3,\n [exports.RESOURCE_TUBE]: 15,\n [exports.RESOURCE_PURIFIER]: 208,\n [exports.RESOURCE_ENERGY]: 32\n }\n },\n [exports.RESOURCE_MACHINE]: {\n level: 5,\n amount: 1,\n cooldown: 600,\n components: {\n [exports.RESOURCE_HYDRAULICS]: 1,\n [exports.RESOURCE_FRAME]: 2,\n [exports.RESOURCE_FIXTURES]: 3,\n [exports.RESOURCE_TUBE]: 12,\n [exports.RESOURCE_ENERGY]: 64\n }\n },\n\n [exports.RESOURCE_CONDENSATE]: {\n amount: 20,\n cooldown: 8,\n components: {\n [exports.RESOURCE_KEANIUM_BAR]: 20,\n [exports.RESOURCE_MIST]: 100,\n [exports.RESOURCE_ENERGY]: 40\n }\n },\n [exports.RESOURCE_CONCENTRATE]: {\n level: 1,\n amount: 3,\n cooldown: 41,\n components: {\n [exports.RESOURCE_CONDENSATE]: 30,\n [exports.RESOURCE_KEANIUM_BAR]: 15,\n [exports.RESOURCE_REDUCTANT]: 54,\n [exports.RESOURCE_ENERGY]: 12\n }\n },\n [exports.RESOURCE_EXTRACT]: {\n level: 2,\n amount: 2,\n cooldown: 128,\n components: {\n [exports.RESOURCE_CONCENTRATE]: 10,\n [exports.RESOURCE_CONDENSATE]: 30,\n [exports.RESOURCE_OXIDANT]: 60,\n [exports.RESOURCE_ENERGY]: 16\n }\n },\n [exports.RESOURCE_SPIRIT]: {\n level: 3,\n amount: 1,\n cooldown: 200,\n components: {\n [exports.RESOURCE_EXTRACT]: 2,\n [exports.RESOURCE_CONCENTRATE]: 6,\n [exports.RESOURCE_REDUCTANT]: 90,\n [exports.RESOURCE_PURIFIER]: 20,\n [exports.RESOURCE_ENERGY]: 16\n }\n },\n [exports.RESOURCE_EMANATION]: {\n level: 4,\n amount: 1,\n cooldown: 800,\n components: {\n [exports.RESOURCE_SPIRIT]: 2,\n [exports.RESOURCE_EXTRACT]: 2,\n [exports.RESOURCE_CONCENTRATE]: 3,\n [exports.RESOURCE_KEANIUM_BAR]: 112,\n [exports.RESOURCE_ENERGY]: 32\n }\n },\n [exports.RESOURCE_ESSENCE]: {\n level: 5,\n amount: 1,\n cooldown: 600,\n components: {\n [exports.RESOURCE_EMANATION]: 1,\n [exports.RESOURCE_SPIRIT]: 3,\n [exports.RESOURCE_CRYSTAL]: 110,\n [exports.RESOURCE_GHODIUM_MELT]: 150,\n [exports.RESOURCE_ENERGY]: 64\n }\n },\n }\n});\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/**\n * Created by vedi on 19/03/2017.\n */\n\nexport default (duration = { $processorParam: 'tickDuration' }) => ({\n action: 'FadeIn',\n params: [duration],\n});\n","/**\n * Created by vedi on 19/03/2017.\n */\n\nexport default (fromAlpha, toAlpha, toDuration, fromDuration) => ({\n action: 'Sequence',\n params: [[\n {\n action: 'AlphaTo',\n params: [fromAlpha, 0],\n },\n {\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [\n {\n action: 'AlphaTo',\n params: [toAlpha, toDuration],\n },\n {\n action: 'AlphaTo',\n params: [fromAlpha, fromDuration],\n },\n ],\n ],\n }],\n },\n ]],\n});\n","export default (type, additionalWhen) => ({\n type: 'text',\n once: true,\n layer: 'effects',\n when: (params) => {\n const {\n calcs: { isOwner },\n stateExtra: { gameData: { showEnemyNames, showMyNames } },\n } = params;\n return ((isOwner && showMyNames[type]) || (!isOwner && showEnemyNames[type])) &&\n (!additionalWhen || additionalWhen(params));\n },\n payload: {\n text: { $calc: 'displayName' },\n style: {\n align: 'center',\n fill: { $calc: 'playerColorHex' },\n fontFamily: 'Roboto, sans-serif',\n fontSize: 55,\n stroke: '#111',\n strokeThickness: 15,\n },\n anchor: {\n x: 0.5,\n y: 1.7,\n },\n },\n});\n","export default (alpha1, alpha2, alpha3, alpha4) => ({\n action: 'Spawn',\n params: [[\n {\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [[\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x', koef: 1.2 },\n { $rel: 'scale.y', koef: 1.2 },\n 1,\n ],\n },\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x' },\n { $rel: 'scale.y' },\n 1,\n ],\n },\n ]],\n }],\n },\n {\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [[\n {\n action: 'AlphaTo',\n params: [alpha1, 0.1],\n },\n {\n action: 'AlphaTo',\n params: [alpha2, 0.2],\n },\n {\n action: 'DelayTime',\n params: [{ $random: 2 }],\n },\n {\n action: 'AlphaTo',\n params: [alpha3, 0.2],\n },\n {\n action: 'AlphaTo',\n params: [alpha4, 2.8],\n },\n ]],\n }],\n },\n ]],\n});\n","/**\n * Created by vedi on 13/09/2017.\n */\n\nimport { blinking } from '../action-templates';\nimport constants from '@screeps/common/lib/constants';\n\nconst CELL_SIZE = 100;\n\nexport default {\n data: {\n x: { $state: 'x', koef: CELL_SIZE },\n y: { $state: 'y', koef: CELL_SIZE },\n },\n calculations: [\n {\n id: 'isOwner',\n props: ['user'],\n func: ({ state: { user }, stateExtra: { gameData: { player } } }) =>\n // eslint-disable-next-line eqeqeq\n (user === undefined ? undefined : player == user),\n },\n {\n id: 'playerColorHex',\n props: ['user'],\n func: ({ stateExtra: { users }, state: { user }, world: { options: { userOwnerColor } }, calcs: { isOwner } }) => {\n if (userOwnerColor) {\n return isOwner ? '#8fbb93' : '#FF7777';\n }\n if (users[user] && users[user].color) {\n return users[user].color;\n } else {\n return '#ffffff';\n }\n },\n },\n {\n id: 'playerColor',\n props: ['user'],\n func: ({ calcs: { playerColorHex, isOwner }, world: { options: { userOwnerColor } } }) => {\n if (userOwnerColor) {\n if (isOwner === undefined) {\n return 0xBBBBBB;\n } else if (isOwner) {\n return 0x8fbb93;\n } else {\n return 0xFF7777;\n }\n }\n return parseInt(playerColorHex.substr(1), 16);\n },\n },\n {\n id: 'playerColorIntense',\n props: ['user'],\n func: ({ calcs: { isOwner } }) =>\n (isOwner ? 0x00ff00 : 0x00ff00),\n },\n {\n id: 'viewBox',\n func: ({ world: { options: { VIEW_BOX } } }) => VIEW_BOX,\n },\n {\n id: 'hasEffect',\n func: ({ state: { effects }, stateExtra: { gameTime } }) =>\n effects && Object.values(effects).some(effect => !!constants.POWER_INFO[effect.power] && effect.endTime > gameTime),\n },\n {\n id: 'decorations',\n func: ({ world: { decorations = [] } }) => decorations,\n },\n ],\n processors: [\n {\n type: 'objectDecoration',\n props: ['decorations'],\n },\n {\n type: 'draw',\n once: true,\n when: ({ state: { _isDisabled } }) => !!_isDisabled,\n layer: 'effects',\n payload: {\n drawings: [\n { method: 'beginFill', params: [0xFF0000] },\n {\n method: 'drawRect',\n params: [-50, -50, 100, 100],\n },\n { method: 'endFill' },\n ],\n blendMode: 1,\n },\n actions: [blinking(0, 0.5, 0.3, 1.5)],\n },\n {\n type: 'sprite',\n layer: 'effects',\n id: 'flare',\n props: ['hasEffect'],\n payload: {\n texture: 'flare3',\n width: 300,\n height: 300,\n alpha: 0,\n blendMode: 1,\n tint: 0xFF0000,\n },\n when: ({ calcs: { hasEffect } }) => hasEffect,\n actions: [\n {\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [\n {\n action: 'AlphaTo',\n params: [0.4, 0.2],\n },\n {\n action: 'AlphaTo',\n params: [0, 1],\n },\n {\n action: 'DelayTime',\n params: [2],\n },\n ],\n ],\n }],\n },\n {\n action: 'Repeat',\n params: [{\n action: 'RotateBy',\n params: [2 * Math.PI, 1],\n }],\n }\n ],\n },\n ],\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport { blinking } from '../action-templates';\n\nexport default {\n texture: 'constructedWall',\n processors: [\n {\n type: 'sprite',\n once: true,\n payload: {\n width: 100,\n height: 100,\n blendMode: 1,\n },\n },\n {\n type: 'draw',\n once: true,\n when: ({ state: { hits, hitsMax } }) => hits === 1 && hitsMax > 1,\n layer: 'effects',\n payload: {\n drawings: [\n { method: 'beginFill', params: [0xFF0000] },\n {\n method: 'drawRect',\n params: [-50, -50, 100, 100],\n },\n { method: 'endFill' },\n ],\n blendMode: 1,\n },\n actions: [blinking(0, 0.2, 0.3, 1.5)],\n },\n ],\n zIndex: 0,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport { blinking } from '../action-templates';\n\nexport default {\n texture: 'constructionSite',\n processors: [\n {\n id: 'siteProgress',\n type: 'siteProgress',\n layer: 'effects',\n props: ['progress', 'progressTotal'],\n payload: {\n color: { $calc: 'playerColor' },\n radius: 20,\n lineWidth: 10,\n progress: { $state: 'progress' },\n progressTotal: { $state: 'progressTotal' },\n },\n actions: [blinking(0.8, 0.3, 1, 1)],\n },\n ],\n disappearProcessor: { type: 'disappear' },\n zIndex: 18,\n};\n","/**\n * Created by vedi on 19/03/2017.\n */\n\nexport default () => {\n return ({\n id: 'resourcesTotal',\n func: ({ state }) => _.reduce(state.store, (sum, cur) => cur + sum, 0)\n });\n};\n","/**\n * Created by vedi on 19/04/2017.\n */\n\nimport { resourceTotal } from '../calculation-templates';\n\nexport default {\n texture: 'rectangle',\n calculations: [\n resourceTotal(),\n {\n id: 'energyBackgroundHeight',\n func: ({ state: { storeCapacity }, calcs: { resourcesTotal } }) =>\n (resourcesTotal * 50) / (storeCapacity || resourcesTotal),\n },\n {\n id: 'energyHeight',\n func: ({ state: { store = {}, storeCapacity }, calcs: { resourcesTotal } }) =>\n ((store['energy']||0) * 50) / (storeCapacity || resourcesTotal),\n },\n {\n id: 'powerHeight',\n func: ({ state: { store = {}, storeCapacity },\n calcs: { resourcesTotal } }) =>\n (((store['power']||0) + (store['energy']||0)) * 50) / (storeCapacity || resourcesTotal),\n },\n ],\n processors: [\n {\n type: 'sprite',\n id: 'border',\n once: true,\n payload: {\n width: 60,\n height: 70,\n tint: 0x181818,\n },\n },\n {\n id: 'internalBorder',\n type: 'sprite',\n once: true,\n payload: {\n width: 40,\n height: 50,\n tint: 0x555555,\n },\n },\n {\n type: 'sprite',\n id: 'otherResourcesBar',\n props: ['store', 'energyBackgroundHeight', 'resourcesTotal'],\n shouldRun: ({ state: { store = {} }, calcs: { resourcesTotal } }) =>\n (store['energy']||0) + (store['power']||0) < resourcesTotal,\n payload: {\n pivot: {\n y: { $calc: 'energyBackgroundHeight' },\n },\n y: 25,\n width: 40,\n height: { $calc: 'energyBackgroundHeight' },\n tint: 0xffffff,\n },\n },\n {\n type: 'sprite',\n id: 'powerBar',\n props: ['store', 'resourcesTotal'],\n shouldRun: ({ state: { store = {} } }) => store['power'] > 0,\n payload: {\n pivot: {\n y: { $calc: 'powerHeight' },\n },\n y: 25,\n width: 40,\n height: { $calc: 'powerHeight' },\n tint: 0xf41f33,\n },\n },\n {\n type: 'sprite',\n id: 'energyBar',\n props: ['store', 'resourcesTotal'],\n shouldRun: ({ state: { store = {} } }) => store['energy'] > 0,\n payload: {\n pivot: {\n y: { $calc: 'energyHeight' },\n },\n y: 25,\n width: 40,\n height: { $calc: 'energyHeight' },\n tint: 0xffe56d,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n props: ['resourcesTotal'],\n shouldRun: ({ calcs: { resourcesTotal } }) => resourcesTotal > 0,\n payload: {\n texture: 'glow',\n width: 100,\n height: 100,\n alpha: 1,\n },\n },\n ],\n zIndex: 4,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport constants from '@screeps/common/lib/constants';\n\nimport { blinking } from '../action-templates';\n\nexport default {\n texture: 'controller',\n calculations: [\n {\n id: 'level1Visible',\n props: ['level'],\n func: ({ state: { level } }) => level >= 1,\n },\n {\n id: 'level2Visible',\n props: ['level'],\n func: ({ state: { level } }) => level >= 2,\n },\n {\n id: 'level3Visible',\n props: ['level'],\n func: ({ state: { level } }) => level >= 3,\n },\n {\n id: 'level4Visible',\n props: ['level'],\n func: ({ state: { level } }) => level >= 4,\n },\n {\n id: 'level5Visible',\n props: ['level'],\n func: ({ state: { level } }) => level >= 5,\n },\n {\n id: 'level6Visible',\n props: ['level'],\n func: ({ state: { level } }) => level >= 6,\n },\n {\n id: 'level7Visible',\n props: ['level'],\n func: ({ state: { level } }) => level >= 7,\n },\n {\n id: 'level8Visible',\n props: ['level'],\n func: ({ state: { level } }) => level >= 8,\n },\n {\n id: 'downgradeOpacity',\n func: ({ state: { level, downgradeTime }, stateExtra: { gameTime } }) => {\n const { CONTROLLER_DOWNGRADE } = constants;\n\n if (!downgradeTime || !level || !gameTime) {\n return 0;\n }\n return (CONTROLLER_DOWNGRADE[level] - (downgradeTime - gameTime)) /\n CONTROLLER_DOWNGRADE[level];\n },\n },\n {\n id: 'progressTotal',\n func: ({ state: { level } }) => {\n const { CONTROLLER_LEVELS } = constants;\n return CONTROLLER_LEVELS[level];\n },\n },\n ],\n processors: [\n {\n type: 'circle',\n once: true,\n payload: {\n alpha: 0.05,\n color: 0x33ff33,\n radius: 110,\n },\n shouldRun: ({ state: { reservation }, stateExtra: { gameData: { player } } }) =>\n reservation && reservation.user === player,\n actions: [blinking(0.05, 0.4, 1, 1)],\n },\n {\n type: 'circle',\n once: true,\n payload: {\n alpha: 0.05,\n color: 0xff3333,\n radius: 110,\n },\n shouldRun: ({\n state: { upgradeBlocked, reservation },\n stateExtra: { gameTime, gameData: { player } },\n }) =>\n (upgradeBlocked && upgradeBlocked > gameTime) ||\n (reservation && reservation.user !== player),\n actions: [blinking(0.05, 0.4, 1, 1)],\n },\n {\n type: 'circle',\n once: true,\n payload: {\n alpha: 0.05,\n color: 0xff3333,\n radius: 110,\n },\n shouldRun: ({\n state: { upgradeBlocked, reservation },\n stateExtra: { gameTime, gameData: { player } },\n }) =>\n (upgradeBlocked && upgradeBlocked > gameTime) ||\n (reservation && reservation.user !== player),\n actions: [blinking(0.05, 0.4, 1, 1)],\n },\n {\n id: 'safeMode1',\n type: 'circle',\n once: true,\n payload: {\n alpha: 0.05,\n color: 0xffd180,\n radius: 110,\n },\n shouldRun: ({ state: { safeMode }, stateExtra: { gameTime } }) =>\n safeMode && safeMode > gameTime,\n actions: [blinking(0.05, 0.4, 1, 1)],\n },\n {\n type: 'circle',\n once: true,\n payload: {\n alpha: 0.05,\n color: 0xffffff,\n radius: 92,\n },\n },\n {\n type: 'sprite',\n layer: 'effects',\n once: true,\n payload: {\n texture: 'glow',\n alpha: 0.1,\n tint: 0xffd180,\n width: 1,\n height: 1,\n blendMode: 1,\n },\n shouldRun: ({ state: { safeMode }, stateExtra: { gameTime } }) =>\n safeMode && safeMode > gameTime,\n actions: [\n {\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [50, 50, 1.5],\n },\n {\n action: 'AlphaTo',\n params: [0, 1.5],\n },\n ]],\n },\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [0, 0, 0],\n },\n {\n action: 'AlphaTo',\n params: [0.05, 0],\n },\n ]],\n },\n {\n action: 'DelayTime',\n params: [6],\n },\n ],\n ],\n }],\n },\n ],\n },\n\n {\n type: 'sprite',\n layer: 'effects',\n props: ['isPowerEnabled'],\n payload: {\n texture: 'flare1',\n alpha: 0.4,\n tint: 0xff0000,\n width: 1,\n height: 1,\n blendMode: 1,\n },\n when: ({ state: { isPowerEnabled } }) => !!isPowerEnabled,\n actions: [\n {\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [20, 20, 1.0],\n },\n {\n action: 'AlphaTo',\n params: [0, 1.0],\n },\n ]],\n },\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [0, 0, 0],\n },\n {\n action: 'AlphaTo',\n params: [0.4, 0],\n },\n ]],\n },\n {\n action: 'DelayTime',\n params: [5],\n },\n ],\n ],\n }]\n },\n ],\n },\n\n {\n type: 'sprite',\n once: true,\n payload: {\n tint: 0x000000,\n width: 200,\n height: 200,\n },\n },\n {\n type: 'sprite',\n props: ['level1Visible'],\n payload: {\n texture: 'controller-level',\n width: 100,\n height: 100,\n anchor: {\n y: 1,\n },\n visible: { $calc: 'level1Visible' },\n },\n },\n {\n type: 'sprite',\n props: ['level2Visible'],\n payload: {\n texture: 'controller-level',\n width: 100,\n height: 100,\n anchor: {\n y: 1,\n },\n rotation: (2 * Math.PI) / 8,\n visible: { $calc: 'level2Visible' },\n },\n },\n {\n type: 'sprite',\n props: ['level3Visible'],\n payload: {\n texture: 'controller-level',\n width: 100,\n height: 100,\n anchor: {\n y: 1,\n },\n rotation: 2 * ((2 * Math.PI) / 8),\n visible: { $calc: 'level3Visible' },\n },\n },\n {\n type: 'sprite',\n props: ['level4Visible'],\n payload: {\n texture: 'controller-level',\n width: 100,\n height: 100,\n anchor: {\n y: 1,\n },\n rotation: 3 * ((2 * Math.PI) / 8),\n visible: { $calc: 'level4Visible' },\n },\n },\n {\n type: 'sprite',\n props: ['level5Visible'],\n payload: {\n texture: 'controller-level',\n width: 100,\n height: 100,\n anchor: {\n y: 1,\n },\n rotation: 4 * ((2 * Math.PI) / 8),\n visible: { $calc: 'level5Visible' },\n },\n },\n {\n type: 'sprite',\n props: ['level6Visible'],\n payload: {\n texture: 'controller-level',\n width: 100,\n height: 100,\n anchor: {\n y: 1,\n },\n rotation: 5 * ((2 * Math.PI) / 8),\n visible: { $calc: 'level6Visible' },\n },\n },\n {\n type: 'sprite',\n props: ['level7Visible'],\n payload: {\n texture: 'controller-level',\n width: 100,\n height: 100,\n anchor: {\n y: 1,\n },\n rotation: 6 * ((2 * Math.PI) / 8),\n visible: { $calc: 'level7Visible' },\n },\n },\n {\n type: 'sprite',\n props: ['level8Visible'],\n payload: {\n texture: 'controller-level',\n width: 100,\n height: 100,\n anchor: {\n y: 1,\n },\n rotation: 7 * ((2 * Math.PI) / 8),\n visible: { $calc: 'level8Visible' },\n },\n },\n {\n type: 'userBadge',\n props: ['user', 'level'],\n },\n {\n id: 'siteProgress',\n type: 'siteProgress',\n props: ['progress', 'progressTotal', 'level'],\n payload: {\n color: 0xFFFFFF,\n radius: 37,\n lineWidth: 0,\n progress: { $state: 'progress' },\n progressTotal: { $calc: 'progressTotal' },\n },\n when: ({ state: { progress } }) => progress > 0,\n actions: [blinking(0.8, 0.3, 1, 1)],\n },\n {\n type: 'circle',\n props: ['level'],\n payload: {\n radius: 40,\n strokeColor: 0x080808,\n strokeWidth: 10,\n },\n },\n {\n id: 'downgrade',\n type: 'sprite',\n once: true,\n layer: 'effects',\n payload: {\n alpha: 0,\n width: 200,\n height: 200,\n tint: 0xff3333,\n },\n },\n {\n type: 'runAction',\n payload: {\n id: 'downgrade',\n },\n actions: [\n {\n action: 'Sequence',\n params: [\n [\n {\n action: 'AlphaTo',\n params: [\n { $calc: 'downgradeOpacity' },\n { $processorParam: 'tickDuration', koef: 0.2 }],\n },\n {\n action: 'AlphaTo',\n params: [\n 0,\n { $processorParam: 'tickDuration', koef: 0.8 }],\n },\n ],\n ],\n },\n ],\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n props: ['user'],\n payload: {\n texture: 'glow',\n width: 1200,\n height: 1200,\n alpha: 0.5,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n props: ['user'],\n shouldRun: ({ state: { user } }) => !!user,\n payload: {\n texture: 'glow',\n width: 500,\n height: 500,\n alpha: 1,\n },\n },\n ],\n zIndex: 4,\n};\n","/**\n * Created by vedi on 07/04/2017.\n */\n\nexport const calculateAngle = (x0, y0, x, y) => {\n let angle = Math.atan2(y - y0, x - x0) + (Math.PI / 2);\n if (angle > Math.PI) {\n angle -= 2 * Math.PI;\n } else if (angle < -Math.PI) {\n angle += 2 * Math.PI;\n }\n return angle;\n};\nexport const convertGameXYToWorld = ({ x, y }, { CELL_SIZE }) => ({\n x: (CELL_SIZE * x),\n y: (CELL_SIZE * y),\n});\nexport const scaleGameToWorld = (value, { CELL_SIZE }) => CELL_SIZE * value;\n\nexport default {\n calculateAngle,\n convertGameXYToWorld,\n scaleGameToWorld,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport mathHelper from '../../../helpers/mathHelper';\n\nimport { displayName } from '../action-templates';\nimport { resourceTotal } from '../calculation-templates';\n\nconst CELL_SIZE = 100;\nconst ENERGY_RADIUS = 20;\nconst isNpc = ({ state: { user } }) => user === '3' || user === '2';\nconst isNotNpc = (...params) => !isNpc(...params);\n\nexport default {\n texture: 'creep',\n calculations: [\n {\n id: 'displayName',\n func: ({ calcs: { isOwner }, state: { name, user }, stateExtra: { users } }) =>\n (isOwner ? name : users[user].username),\n },\n {\n id: 'rotation',\n props: ['x', 'y'],\n func: ({ prevState: { x: prevX, y: prevY } = {}, state: { x, y } }) => {\n const { calculateAngle } = mathHelper;\n return (prevX !== undefined && prevY !== undefined ?\n calculateAngle(prevX, prevY, x, y) : 0);\n },\n },\n resourceTotal(),\n {\n id: 'resourcesTotalRadius',\n func: ({ state: { storeCapacity }, calcs: { resourcesTotal } }) =>\n Math.min(1, resourcesTotal / storeCapacity) * ENERGY_RADIUS,\n },\n {\n id: 'energyRadius',\n func: ({ state: { store, storeCapacity } }) =>\n Math.min(1, (store['energy']||0) / storeCapacity) * ENERGY_RADIUS,\n },\n {\n id: 'powerRadius',\n func: ({ state: { store, storeCapacity } }) =>\n Math.min(1, ((store['energy']||0) + (store['power']||0)) / storeCapacity) * ENERGY_RADIUS,\n },\n {\n id: 'safeMode',\n func: ({\n stateExtra,\n state: { user },\n stateExtra: { controller, gameTime, objects },\n }) => {\n if (controller === undefined) {\n controller = objects.find(i => i.type === 'controller') || null;\n stateExtra.controller = controller;\n }\n return controller && controller.safeMode > gameTime && controller.user !== user ?\n 0.5 : 1.0;\n },\n },\n ],\n processors: [\n {\n type: 'container',\n once: 'true',\n payload: {\n id: 'mainContainer',\n },\n },\n {\n type: 'container',\n once: 'true',\n payload: {\n id: 'decorationContainer',\n parentId: 'mainContainer',\n },\n },\n {\n type: 'creepDecoration',\n props: ['spawning', 'decorations'],\n when: (({ state: { spawning } }) => !spawning),\n payload: {\n parentId: 'decorationContainer',\n },\n },\n {\n type: 'circle',\n once: true,\n payload: {\n parentId: 'mainContainer',\n color: 0x202020,\n radius: 50,\n },\n when: isNotNpc,\n },\n {\n type: 'creepBuildBody',\n props: ['body'],\n payload: {\n parentId: 'mainContainer',\n },\n when: isNotNpc,\n },\n {\n type: 'circle',\n once: true,\n payload: {\n parentId: 'mainContainer',\n color: 0x000000,\n radius: 32,\n },\n when: isNotNpc,\n },\n {\n type: 'userBadge',\n once: true,\n payload: {\n parentId: 'mainContainer',\n radius: 26,\n color: 0x222222,\n },\n when: (params) => isNotNpc(params) && params.world.options.userOwnerColor,\n },\n {\n type: 'userBadge',\n once: true,\n payload: {\n parentId: 'mainContainer',\n radius: 26,\n color: { $calc: 'playerColor' },\n },\n when: (params) => isNotNpc(params) && !params.world.options.userOwnerColor,\n },\n {\n type: 'circle',\n props: ['store', 'resourcesTotal'],\n when: ({ state: { store = {}, user }, calcs: { resourcesTotal } }) =>\n user !== '3' && user !== '2' && resourcesTotal > 0 && (store['energy']||0 + store['power']||0 < resourcesTotal),\n payload: {\n parentId: 'mainContainer',\n radius: { $calc: 'resourcesTotalRadius' },\n color: 0xffffff,\n },\n },\n {\n type: 'circle',\n props: ['store'],\n when: ({ state: { store = {}, user } }) => user !== '3' && user !== '2' && store['power'] > 0,\n payload: {\n parentId: 'mainContainer',\n radius: { $calc: 'powerRadius' },\n color: 0xf41f33,\n },\n },\n {\n type: 'circle',\n props: ['store'],\n when: ({ state: { store = {}, user } }) => user !== '3' && user !== '2' && store['energy'] > 0,\n payload: {\n parentId: 'mainContainer',\n radius: { $calc: 'energyRadius' },\n color: 0xffe56d,\n },\n },\n {\n type: 'sprite',\n once: true,\n payload: {\n parentId: 'mainContainer',\n texture: 'creep-npc',\n width: 100,\n height: 100,\n },\n when: isNpc,\n },\n {\n type: 'creepActions',\n payload: {\n parentId: 'mainContainer',\n },\n props: '*',\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n when: ((params) => {\n const { state: { spawning } } = params;\n return !spawning && isNotNpc(params);\n }),\n payload: {\n parentId: 'mainContainer',\n texture: 'creep-mask',\n width: 100,\n height: 100,\n alpha: 1,\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n when: isNpc,\n payload: {\n parentId: 'mainContainer',\n texture: 'glow',\n width: 100,\n height: 100,\n alpha: 0.5,\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n shouldRun: (({ state: { spawning } }) => !spawning),\n payload: {\n parentId: 'mainContainer',\n texture: 'glow',\n width: 400,\n height: 400,\n alpha: 0.2,\n },\n },\n displayName('creeps', ({ state: { spawning } }) => !spawning),\n {\n type: 'say',\n layer: 'effects',\n when: ({\n state: { actionLog: { say } = {} },\n stateExtra: { gameData: { showCreepSpeech } },\n calcs: { isOwner },\n }) =>\n !!showCreepSpeech && !!say && (say.isPublic || isOwner),\n payload: {\n say: { $state: 'actionLog.say' },\n },\n },\n {\n id: 'rangedMassAttack',\n type: 'circle',\n layer: 'effects',\n once: true,\n payload: {\n alpha: 0,\n color: 0x5d80b2,\n radius: 300,\n blendMode: 1,\n },\n },\n {\n type: 'runAction',\n payload: {\n id: 'rangedMassAttack',\n },\n when: ({ state: { actionLog: { rangedMassAttack } = {} } }) => !!rangedMassAttack,\n actions: [{\n action: 'Sequence',\n params: [[\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [0, 0, 0],\n },\n {\n action: 'AlphaTo',\n params: [0.4, 0],\n },\n ]],\n },\n {\n action: 'Spawn',\n params: [[\n {\n action: 'Ease',\n params: [{\n action: 'ScaleTo',\n params: [1, 1, { $processorParam: 'tickDuration', koef: 0.6 }],\n }],\n },\n {\n action: 'Ease',\n params: [{\n action: 'AlphaTo',\n params: [0, { $processorParam: 'tickDuration', koef: 0.6 }],\n }],\n },\n ]],\n },\n ]],\n }],\n },\n ],\n actions: [\n {\n id: 'moveTo',\n props: ['x', 'y'],\n actions: [{\n action: 'Ease',\n params: [\n {\n action: 'MoveTo',\n params: [\n { $state: 'x', koef: CELL_SIZE },\n { $state: 'y', koef: CELL_SIZE },\n { $processorParam: 'tickDuration' },\n ],\n },\n 'EASE_IN_OUT_QUAD',\n ],\n }],\n },\n {\n id: 'rotateTo',\n props: ['rotation'],\n targetId: 'mainContainer',\n actions: [{\n action: 'RotateTo',\n params: [\n { $calc: 'rotation' },\n { $processorParam: 'tickDuration', koef: 0.2 },\n ],\n }],\n },\n {\n id: 'safeModeAlpha',\n props: ['safeMode'],\n targetId: 'mainContainer',\n actions: [{\n action: 'AlphaTo',\n params: [{ $calc: 'safeMode' }, 0],\n }],\n },\n ],\n disappearProcessor: { type: 'disappear' },\n zIndex: 6,\n};\n","import { flickering } from '../action-templates';\n\nconst scaleAction = {\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [{\n action: 'Ease',\n params: [{\n action: 'ScaleTo',\n params: [0.7, 0.7, 1],\n }],\n }, {\n action: 'Ease',\n params: [{\n action: 'ScaleTo',\n params: [1.0, 1.0, 0.3],\n }],\n }],\n ],\n }],\n};\n\nconst COLORS = {\n biomass: 0x84b012,\n metal: 0x956f5c,\n mist: 0xda6bf5,\n silicon: 0x4ca7e5,\n};\n\nconst isCooldown = ({ state: { cooldownTime }, stateExtra: { gameTime } }) =>\n cooldownTime && cooldownTime >= gameTime;\n\nexport default {\n calculations: [\n {\n id: 'deposit',\n props: ['depositType'],\n func: ({ state: { depositType } }) => `deposit-${depositType}`,\n },\n {\n id: 'deposit-fill',\n props: ['depositType'],\n func: ({ state: { depositType } }) => `deposit-${depositType}-fill`,\n },\n {\n id: 'color',\n props: ['depositType'],\n func: ({ state: { depositType } }) => COLORS[depositType],\n },\n {\n id: 'harvested',\n props: ['harvested'],\n func: ({ state: { depositType, harvested = 0 } }) => {\n return Math.max(0, 0.6 - (harvested / 100000));\n },\n },\n ],\n processors: [\n {\n type: 'container',\n once: 'true',\n payload: {\n id: 'container',\n },\n },\n {\n type: 'runAction',\n once: true,\n when: isCooldown,\n payload: {\n id: 'container',\n },\n actions: [scaleAction],\n },\n {\n type: 'sprite',\n payload: {\n parentId: 'container',\n texture: { $calc: 'deposit-fill' },\n width: 160,\n height: 160,\n alpha: { $calc: 'harvested' },\n tint: { $calc: 'color' }\n },\n },\n {\n type: 'sprite',\n payload: {\n parentId: 'container',\n texture: { $calc: 'deposit' },\n width: 160,\n height: 160,\n tint: { $calc: 'color' }\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n parentId: 'container',\n texture: { $calc: 'deposit' },\n width: 160,\n height: 160,\n alpha: 1,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 700,\n height: 700,\n alpha: 1,\n tint: { $calc: 'color' },\n },\n actions: [flickering(0.7, 0.4, 1.0, 0.4)],\n },\n ],\n zIndex: 1,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nconst METADATA = {\n small: 68,\n medium: 80,\n large: 100,\n};\n\nexport default {\n calculations: [\n {\n id: 'size',\n props: ['storeCapacityResource'],\n func: ({ state: { storeCapacityResource } }) => {\n if (storeCapacityResource && storeCapacityResource.energy >= 200) {\n return METADATA.large;\n } else if (storeCapacityResource && storeCapacityResource.energy >= 100) {\n return METADATA.medium;\n } else {\n return METADATA.small;\n }\n },\n },\n {\n id: 'resourceScale',\n props: ['store', 'storeCapacityResource'],\n func: ({ state: { store, storeCapacityResource } }) =>\n storeCapacityResource ? Math.min(1, (store.energy||0) / storeCapacityResource.energy) : 0,\n },\n ],\n processors: [\n {\n type: 'sprite',\n once: true,\n when: ({ state: { storeCapacityResource } }) => !storeCapacityResource || storeCapacityResource.energy < 100,\n payload: {\n texture: 'extension-border50',\n tint: { $calc: 'playerColor' },\n width: 100,\n height: 100,\n },\n },\n {\n type: 'sprite',\n once: true,\n when: ({ state: { storeCapacityResource } }) => storeCapacityResource && storeCapacityResource.energy === 100,\n payload: {\n texture: 'extension-border100',\n tint: { $calc: 'playerColor' },\n width: 100,\n height: 100,\n },\n },\n {\n type: 'sprite',\n once: true,\n when: ({ state: { storeCapacityResource } }) => storeCapacityResource && storeCapacityResource.energy === 200,\n payload: {\n texture: 'extension-border200',\n tint: { $calc: 'playerColor' },\n width: 100,\n height: 100,\n },\n },\n\n {\n type: 'sprite',\n props: ['storeCapacityResource'],\n payload: {\n texture: 'extension',\n width: { $calc: 'size' },\n height: { $calc: 'size' },\n },\n },\n {\n id: 'resourceCircle',\n props: ['storeCapacityResource'],\n type: 'circle',\n payload: {\n radius: { $calc: 'size', koef: 0.32 },\n color: 0xffe56d,\n scale: {\n x: { $calc: 'resourceScale' },\n y: { $calc: 'resourceScale' },\n },\n },\n },\n {\n type: 'runAction',\n props: ['resourceScale'],\n payload: {\n id: 'resourceCircle',\n },\n actions: [\n {\n action: 'ScaleTo',\n params: [\n { $calc: 'resourceScale' },\n { $calc: 'resourceScale' },\n { $processorParam: 'tickDuration' },\n ],\n },\n ],\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n shouldRun: (({ state: { store } }) => store && store.energy > 0),\n payload: {\n texture: 'glow',\n width: 100,\n height: 100,\n alpha: 1,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n shouldRun: (({ state: { store, storeCapacityResource } }) => (store.energy||0) > 0 &&\n storeCapacityResource && storeCapacityResource.energy === 50),\n payload: {\n texture: 'glow',\n width: 200,\n height: 200,\n alpha: 0.7,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n shouldRun: (({ state: { store, storeCapacityResource } }) => (store.energy||0) > 0 &&\n storeCapacityResource && storeCapacityResource.energy === 100),\n payload: {\n texture: 'glow',\n width: 220,\n height: 220,\n alpha: 0.7,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n shouldRun: (({ state: { store, storeCapacityResource } }) => (store.energy||0) > 0 &&\n storeCapacityResource && storeCapacityResource.energy === 200),\n payload: {\n texture: 'glow',\n width: 250,\n height: 250,\n alpha: 0.7,\n },\n },\n ],\n zIndex: 7,\n};\n","/**\n * Created by vedi on 04/09/2017.\n */\nexport default {\n processors: [\n {\n id: 'main',\n type: 'sprite',\n once: 'true',\n payload: {\n texture: 'extractor',\n width: 200,\n tint: { $calc: 'playerColor' },\n },\n },\n {\n type: 'runAction',\n once: true,\n when: ({ state: { cooldown } }) => cooldown > 0,\n until: ({ state: { cooldown } }) => !cooldown || cooldown <= 0,\n payload: {\n id: 'main',\n },\n actions: [{\n action: 'Repeat',\n params: [{\n action: 'RotateBy',\n params: [2 * Math.PI, 4],\n }],\n }],\n },\n ],\n zIndex: 0,\n};\n","/**\n * Created by vedi on 19/04/2017.\n */\n\nimport { PWR_OPERATE_FACTORY } from '@screeps/common/lib/constants';\n\nimport { blinking } from '../action-templates';\nimport { resourceTotal } from '../calculation-templates';\n\nconst SPRITE_SIZE = 200;\nconst CONTAINER_SIZE = 50.0;\n\nconst COLOR_CONTAINER = 0x555555;\nconst COLOR_ENERGY = 0xfadf7e;\nconst COLOR_POWER = 0xf41f33;\nconst COLOR_RESOURCE = 0xFFFFFF;\n\nconst isCooldown = ({ state: { cooldownTime }, stateExtra: { gameTime } }) =>\n cooldownTime && cooldownTime >= gameTime;\nconst isNotCooldown = (...params) => !isCooldown(...params);\nconst isLevel = ({ state: { level } }) => level > 0;\nconst isPowerOperate = ({ state: { effects }, stateExtra: { gameTime } }) =>\n effects && Object.values(effects).some(({ power, endTime }) =>\n power === PWR_OPERATE_FACTORY && endTime >= gameTime);\nconst isLevelBlinking = (...params) => isLevel(...params) && !isPowerOperate(...params);\nconst isNotLevelBlinking = (...params) => !isLevelBlinking(...params);\n\nexport default {\n texture: 'rectangle',\n calculations: [\n resourceTotal(),\n {\n id: 'energyBackgroundHeight',\n func: ({ state: { storeCapacity }, calcs: { resourcesTotal } }) =>\n (resourcesTotal * CONTAINER_SIZE) / (storeCapacity || resourcesTotal),\n },\n {\n id: 'energyHeight',\n func: ({ state: { store = {}, storeCapacity }, calcs: { resourcesTotal } }) =>\n ((store['energy']||0) * CONTAINER_SIZE) / (storeCapacity || resourcesTotal),\n },\n {\n id: 'powerHeight',\n func: ({ state: { store = {}, storeCapacity },\n calcs: { resourcesTotal } }) =>\n ((store['power']||0 + store['energy']||0) * CONTAINER_SIZE) / (storeCapacity || resourcesTotal),\n },\n {\n id: 'factory-lvl',\n props: ['level'],\n func: ({ state: { level = 0 } }) => `factory-lvl${level}`,\n },\n ],\n processors: [\n {\n type: 'sprite',\n once: 'true',\n payload: {\n texture: 'factory-border',\n width: SPRITE_SIZE,\n height: SPRITE_SIZE,\n tint: { $calc: 'playerColor' },\n },\n },\n {\n type: 'sprite',\n once: true,\n payload: {\n texture: 'factory',\n width: SPRITE_SIZE,\n height: SPRITE_SIZE,\n },\n },\n {\n id: 'factory-highlight',\n type: 'sprite',\n once: true,\n payload: {\n texture: 'factory-highlight',\n width: SPRITE_SIZE,\n height: SPRITE_SIZE,\n alpha: 0.4\n },\n },\n {\n type: 'runAction',\n when: isCooldown,\n payload: {\n id: 'factory-highlight',\n },\n actions: [{\n action: 'Sequence',\n params: [[\n {\n action: 'AlphaTo',\n params: [1, { $processorParam: 'tickDuration', koef: 0.2 }],\n },\n {\n action: 'AlphaTo',\n params: [0, { $processorParam: 'tickDuration', koef: 0.8 }],\n },\n ]],\n }]\n },{\n type: 'runAction',\n when: isNotCooldown,\n payload: {\n id: 'factory-highlight',\n },\n actions: [\n {\n action: 'AlphaTo',\n params: [0.4, 0],\n },\n ],\n },\n {\n type: 'sprite',\n once: true,\n payload: {\n texture: 'factory-lvl0',\n width: SPRITE_SIZE,\n height: SPRITE_SIZE,\n },\n },\n {\n id: 'level',\n type: 'sprite',\n when: isLevel,\n once: true,\n payload: {\n texture: { $calc: 'factory-lvl' },\n width: SPRITE_SIZE,\n height: SPRITE_SIZE,\n },\n },\n {\n type: 'runAction',\n when: isLevelBlinking,\n once: true,\n payload: {\n id: 'level',\n },\n actions: [\n blinking(0, 1, 0.2, 0.8),\n ],\n },\n {\n type: 'runAction',\n when: isNotLevelBlinking,\n payload: {\n id: 'level',\n },\n actions: [\n {\n action: 'AlphaTo',\n params: [1, 0],\n },\n ],\n },\n {\n id: 'internalBorder',\n type: 'sprite',\n once: true,\n payload: {\n width: CONTAINER_SIZE,\n height: CONTAINER_SIZE,\n tint: COLOR_CONTAINER,\n },\n },\n {\n type: 'sprite',\n id: 'otherResourcesBar',\n props: ['store', 'energyBackgroundHeight', 'resourcesTotal'],\n shouldRun: ({ state: { store = {} }, calcs: { resourcesTotal } }) =>\n store['energy']||0 + store['power']||0 < resourcesTotal,\n payload: {\n pivot: {\n y: { $calc: 'energyBackgroundHeight' },\n },\n y: 25,\n width: CONTAINER_SIZE,\n height: { $calc: 'energyBackgroundHeight' },\n tint: COLOR_RESOURCE,\n },\n },\n {\n id: 'powerBar',\n type: 'sprite',\n props: ['store', 'resourcesTotal'],\n shouldRun: ({ state: { store = {} } }) => store['power'] > 0,\n payload: {\n pivot: {\n y: { $calc: 'powerHeight' },\n },\n y: 25,\n width: CONTAINER_SIZE,\n height: { $calc: 'powerHeight' },\n tint: COLOR_POWER,\n },\n },\n {\n id: 'energyBar',\n type: 'sprite',\n props: ['store', 'resourcesTotal'],\n shouldRun: ({ state: { store = {} } }) => store['energy'] > 0,\n payload: {\n pivot: {\n y: { $calc: 'energyHeight' },\n },\n y: 25,\n width: CONTAINER_SIZE,\n height: { $calc: 'energyHeight' },\n tint: COLOR_ENERGY,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n shouldRun: ({ calcs: { resourcesTotal } }) => resourcesTotal > 0,\n payload: {\n texture: 'glow',\n width: 200,\n height: 200,\n alpha: 1,\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n payload: {\n texture: 'glow',\n width: 800,\n height: 800,\n alpha: 0.5,\n },\n },\n ],\n zIndex: 7,\n};\n","const CELL_SIZE = 100;\n\nconst FLAG_COLORS = {\n 1: 0xF44336,\n 2: 0x9C27B0,\n 3: 0x2196F3,\n 4: 0x00BCD4,\n 5: 0x4CAF50,\n 6: 0xFFEB3B,\n 7: 0xFF9800,\n 8: 0x795548,\n 9: 0x9E9E9E,\n 10: 0xFFFFFF,\n};\n\nexport default {\n calculations: [\n {\n id: 'color',\n props: ['color'],\n func: ({ state: { color }, world: { options: { userFlagColor } } }) =>\n !userFlagColor && color ? parseInt(color.substring(1), 16) : undefined,\n },\n {\n id: 'flagColor',\n func: ({ state: { color } }) => FLAG_COLORS[color],\n },\n {\n id: 'flagSecondaryColor',\n func: ({ state: { secondaryColor } }) => FLAG_COLORS[secondaryColor],\n },\n ],\n\n processors: [\n // userFlagColor mode: primary flag sprite\n {\n type: 'sprite',\n props: ['color'],\n layer: 'effects',\n payload: {\n texture: 'flag',\n width: 200,\n height: 200,\n tint: { $calc: 'flagColor' },\n },\n when: ({ world: { options: { userFlagColor } } }) => !!userFlagColor,\n },\n // userFlagColor mode: secondary flag sprite\n {\n type: 'sprite',\n props: ['secondaryColor'],\n layer: 'effects',\n payload: {\n texture: 'flag-secondary',\n width: 200,\n height: 200,\n tint: { $calc: 'flagSecondaryColor' },\n },\n when: ({ state: { secondaryColor }, world: { options: { userFlagColor } } }) =>\n !!userFlagColor && !!secondaryColor,\n },\n // userFlagColor mode: flag name text\n {\n type: 'text',\n props: ['color'],\n layer: 'effects',\n when: ({ world: { options: { userFlagColor } } }) => !!userFlagColor,\n shouldRun: ({ stateExtra: { gameData: { showFlagsNames } } }) => !!showFlagsNames,\n payload: {\n text: { $state: 'name' },\n style: {\n align: 'center',\n fill: { $calc: 'flagColor' },\n fontFamily: 'Roboto, sans-serif',\n fontSize: 60,\n stroke: '#111',\n strokeThickness: 10,\n },\n anchor: {\n x: 0.5,\n y: -0.5,\n },\n },\n },\n // default mode: primary flag sprite\n {\n type: 'sprite',\n props: ['user'],\n layer: 'effects',\n payload: {\n texture: 'flag',\n width: 200,\n height: 200,\n tint: { $calc: 'playerColor' },\n },\n when: ({ world: { options: { userFlagColor } } }) => !userFlagColor,\n },\n // default mode: secondary flag sprite\n {\n type: 'sprite',\n props: ['color'],\n layer: 'effects',\n payload: {\n texture: 'flag-secondary',\n width: 200,\n height: 200,\n tint: { $calc: 'color' },\n },\n when: ({ state: { color }, world: { options: { userFlagColor } } }) =>\n !userFlagColor && !!color,\n },\n ],\n actions: [\n {\n id: 'moveTo',\n props: ['x', 'y'],\n actions: [{\n action: 'MoveTo',\n params: [\n { $state: 'x', koef: CELL_SIZE },\n { $state: 'y', koef: CELL_SIZE },\n 0,\n ],\n }],\n },\n ],\n};\n","/**\n * Created by vedi on 31/08/2017.\n */\nimport resourceTotal from '../calculation-templates/resourceTotal';\n\nconst mineralPath = {\n texture: 'lab-mineral',\n tint: 0x777777,\n anchor: {\n y: 1,\n },\n scale: {\n x: 0.6875,\n y: 0.6875,\n },\n y: 25,\n};\n\nconst mineralColorActive = 0xffffff;\n\nconst energyRectangle = {\n color: 0xffe56d,\n x: -40,\n y: 32,\n width: 67,\n height: 10,\n};\n\nconst isCooldown = ({ state: { cooldownTime }, stateExtra: { gameTime } }) =>\n cooldownTime && cooldownTime > gameTime;\n\nexport default {\n calculations: [\n resourceTotal(),\n {\n id: 'mineralPathScale',\n props: ['store', 'storeCapacity', 'storeCapacityResource'],\n func: ({ state: { store, storeCapacity, storeCapacityResource }, calcs: { resourcesTotal } }) => {\n const { scale: { x: scale } } = mineralPath;\n const mineralType = _(store).keys().filter(k => k != 'energy' && store[k]).first();\n if(!mineralType) {\n return 0;\n }\n const mineralCapacity = storeCapacityResource[mineralType] || storeCapacity - _.sum(storeCapacityResource);\n if(!mineralCapacity) {\n return 0;\n }\n return (scale * (store[mineralType]||0)) / mineralCapacity;\n },\n },\n {\n id: 'energyWidth',\n props: ['store', 'storeCapacityResource'],\n func: ({ state: { store, storeCapacityResource } }) =>\n storeCapacityResource && storeCapacityResource.energy ?\n (energyRectangle.width * (store.energy||0)) / storeCapacityResource.energy : 0,\n },\n ],\n processors: [\n {\n type: 'sprite',\n once: 'true',\n payload: {\n texture: 'lab',\n width: 200,\n tint: { $calc: 'playerColor' },\n },\n },\n {\n type: 'sprite',\n once: 'true',\n id: 'lab-highlight',\n payload: {\n texture: 'lab-highlight',\n width: 200,\n alpha: 0,\n },\n },\n {\n type: 'runAction',\n when: isCooldown,\n payload: {\n id: 'lab-highlight',\n },\n actions: [{\n action: 'Sequence',\n params: [[\n {\n action: 'AlphaTo',\n params: [0.5, { $processorParam: 'tickDuration', koef: 0.2 }],\n },\n {\n action: 'AlphaTo',\n params: [0, { $processorParam: 'tickDuration', koef: 0.8 }],\n },\n ]],\n }],\n },\n {\n type: 'sprite',\n once: 'true',\n payload: mineralPath,\n },\n {\n type: 'sprite',\n props: ['mineralPathScale'],\n payload: Object.assign(\n { },\n mineralPath,\n {\n scale: { x: { $calc: 'mineralPathScale' }, y: { $calc: 'mineralPathScale' } },\n tint: mineralColorActive,\n }\n ),\n },\n {\n type: 'draw',\n props: ['energyWidth'],\n payload: {\n id: 'energyRectangle',\n drawings: [\n { method: 'beginFill', params: [energyRectangle.color] },\n {\n method: 'drawRect',\n params: [\n { $calc: 'energyWidth', koef: -0.5 },\n energyRectangle.y,\n { $calc: 'energyWidth' },\n energyRectangle.height,\n ],\n },\n { method: 'endFill' },\n ],\n },\n },\n {\n type: 'creepActions',\n props: '*',\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n shouldRun: (({ state: { store }, calcs: { resourcesTotal } }) => (resourcesTotal-(store.energy||0)) > 0),\n payload: {\n texture: 'glow',\n width: 150,\n height: 150,\n alpha: 1,\n },\n },\n {\n id: 'light',\n type: 'sprite',\n once: true,\n layer: 'lighting',\n props: ['store'],\n shouldRun: (({ state: { store }, calcs: { resourcesTotal } }) => (resourcesTotal-(store.energy||0)) > 0),\n payload: {\n texture: 'glow',\n width: 500,\n height: 500,\n alpha: 0.3,\n },\n },\n {\n id: 'reactionLight',\n type: 'sprite',\n layer: 'effects',\n once: true,\n payload: {\n texture: 'glow',\n width: 150,\n height: 150,\n alpha: 0,\n blendMode: 1,\n },\n },\n {\n type: 'runAction',\n shouldRun: (({ state }) => state.actionLog && state.actionLog.runReaction),\n payload: {\n id: 'reactionLight',\n },\n actions: [\n {\n action: 'Sequence',\n params: [\n [\n {\n action: 'DelayTime',\n params: [{ $processorParam: 'tickDuration', koef: 0.3 }],\n },\n {\n action: 'AlphaTo',\n params: [1.0, { $processorParam: 'tickDuration', koef: 0.15 }],\n },\n {\n action: 'AlphaTo',\n params: [0.0, { $processorParam: 'tickDuration', koef: 0.55 }],\n },\n ],\n ],\n },\n ],\n },\n {\n type: 'runAction',\n shouldRun: (({ state }) => state.actionLog && state.actionLog.reverseReaction),\n payload: {\n id: 'reactionLight',\n },\n actions: [\n {\n action: 'Sequence',\n params: [\n [\n {\n action: 'AlphaTo',\n params: [1.0, { $processorParam: 'tickDuration', koef: 0.15 }],\n },\n {\n action: 'AlphaTo',\n params: [0.0, { $processorParam: 'tickDuration', koef: 0.55 }],\n },\n {\n action: 'DelayTime',\n params: [{ $processorParam: 'tickDuration', koef: 0.3 }],\n },\n ],\n ],\n }\n ]\n },\n ],\n zIndex: 15,\n};\n","/**\n * Created by vedi on 29/08/2017.\n */\n\nexport default {\n calculations: [\n {\n id: 'energyScale',\n props: ['store', 'storeCapacityResource'],\n func: ({ state: { store, storeCapacityResource } }) =>\n storeCapacityResource ? Math.min(1, (store.energy||0) / storeCapacityResource.energy) : 0,\n },\n ],\n processors: [\n {\n type: 'sprite',\n once: 'true',\n payload: {\n texture: 'link-border',\n width: 100,\n height: 100,\n tint: { $calc: 'playerColor' },\n },\n },\n {\n type: 'sprite',\n once: 'true',\n payload: {\n texture: 'link',\n width: 100,\n height: 100,\n },\n },\n {\n type: 'container',\n once: 'true',\n payload: {\n id: 'energyContainer',\n },\n },\n {\n type: 'sprite',\n once: 'true',\n payload: {\n id: 'energy',\n parentId: 'energyContainer',\n texture: 'link-energy',\n width: 50,\n height: 50,\n },\n },\n {\n type: 'runAction',\n props: ['energyScale'],\n payload: {\n id: 'energyContainer',\n },\n actions: [\n {\n action: 'ScaleTo',\n params: [\n { $calc: 'energyScale' },\n { $calc: 'energyScale' },\n { $processorParam: 'tickDuration' },\n ],\n },\n ],\n },\n {\n type: 'creepActions',\n props: '*',\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n shouldRun: (({ state: { store } }) => store.energy > 0),\n payload: {\n texture: 'glow',\n width: 100,\n height: 100,\n alpha: 1,\n },\n },\n {\n id: 'light',\n once: true,\n type: 'sprite',\n layer: 'lighting',\n shouldRun: (({ state: { store } }) => store.energy > 0),\n payload: {\n texture: 'glow',\n width: 400,\n height: 400,\n alpha: 0.5,\n },\n },\n\n ],\n zIndex: 9,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport { flickering } from '../action-templates';\n\nconst COLORS = {\n L: {\n foreground: 0x89F4A5,\n background: 0x3F6147,\n },\n U: {\n foreground: 0x88D6F7,\n background: 0x1B617F,\n },\n K: {\n foreground: 0x9370FF,\n background: 0x331A80,\n },\n Z: {\n foreground: 0xF2D28B,\n background: 0x594D33,\n },\n X: {\n foreground: 0xFF7A7A,\n background: 0x4F2626,\n },\n O: {\n foreground: 0xCCCCCC,\n background: 0x4D4D4D,\n },\n H: {\n foreground: 0xCCCCCC,\n background: 0x4D4D4D,\n },\n};\n\nexport default {\n calculations: [\n {\n id: 'foregroundColor',\n once: true,\n func: ({ state: { mineralType } }) => COLORS[mineralType].foreground,\n },\n {\n id: 'backgroundColor',\n once: true,\n func: ({ state: { mineralType } }) => COLORS[mineralType].background,\n },\n ],\n processors: [\n {\n type: 'draw',\n once: true,\n payload: {\n drawings: [\n {\n method: 'lineStyle',\n params: [\n 10,\n { $calc: 'foregroundColor' },\n 1,\n ],\n },\n { method: 'beginFill', params: [{ $calc: 'backgroundColor' }] },\n {\n method: 'drawCircle',\n params: [\n 0,\n 0,\n 54,\n ],\n },\n { method: 'endFill' },\n ],\n },\n },\n {\n type: 'text',\n once: true,\n payload: {\n text: { $state: 'mineralType' },\n style: {\n align: 'center',\n fill: { $calc: 'foregroundColor' },\n fontFamily: 'Roboto, serif',\n fontSize: 82,\n fontWeight: 'bold',\n },\n anchor: {\n x: 0.5,\n y: 0.5,\n },\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 200,\n height: 200,\n alpha: 1,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 700,\n height: 700,\n alpha: 0.7,\n tint: { $calc: 'foregroundColor' },\n },\n actions: [flickering(0.7, 0.4, 1.0, 0.4)],\n },\n ],\n zIndex: 2,\n};\n","const scaleAction = {\n action: 'Repeat',\n params: [\n {\n action: 'Sequence',\n params: [[\n {\n action: 'Ease',\n params: [\n {\n action: 'ScaleTo',\n params: [0.6, 0.6, 1],\n },\n 'EASE_IN_OUT_QUAD',\n ],\n },\n {\n action: 'Ease',\n params: [\n {\n action: 'ScaleTo',\n params: [1, 1, 1],\n },\n 'EASE_IN_OUT_QUAD',\n ],\n },\n ]],\n },\n ],\n};\n\nconst landed = ({ state: { landTime }, stateExtra: { gameTime } }) => landTime <= gameTime;\nconst notLanded = (...params) => !landed(...params);\n\nexport default {\n calculations: [\n {\n id: 'landTimeSpeed',\n func: ({ state: { landTime }, stateExtra: { gameTime } }) => {\n if (landTime <= gameTime) {\n return Number.MAX_VALUE;\n }\n return Math.max(0.4, ((Math.round((landTime - gameTime) / 100) * 100) / 50000) * 8);\n },\n },\n {\n id: 'offsetToZeroX',\n func: ({ state: { x }, world: { options: { CELL_SIZE } } }) => -(x + 0.5) * CELL_SIZE,\n },\n {\n id: 'offsetToZeroY',\n func: ({ state: { y }, world: { options: { CELL_SIZE } } }) => -(y + 0.5) * CELL_SIZE,\n },\n ],\n processors: [\n {\n type: 'sprite',\n layer: 'effects',\n once: true,\n payload: {\n texture: 'nuke',\n alpha: 0.7,\n },\n when: notLanded,\n actions: [scaleAction],\n },\n {\n type: 'sprite',\n layer: 'effects',\n once: true,\n payload: {\n texture: 'nuke',\n blur: 2,\n blendMode: 3,\n },\n when: notLanded,\n actions: [scaleAction],\n },\n {\n type: 'circle',\n layer: 'effects',\n once: true,\n payload: {\n color: 0xFF2222,\n radius: 110,\n blendMode: 1,\n alpha: 0.5,\n },\n when: notLanded,\n actions: [scaleAction],\n },\n {\n type: 'circle',\n layer: 'effects',\n props: ['landTimeSpeed'],\n payload: {\n color: 0xFF0000,\n radius: 600,\n alpha: 0,\n blendMode: 1,\n blur: 30,\n },\n when: notLanded,\n actions: [\n {\n action: 'Repeat',\n params: [\n {\n action: 'Sequence',\n params: [[\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [0, 0, { $calc: 'landTimeSpeed' }],\n },\n {\n action: 'AlphaTo',\n params: [0.4, { $calc: 'landTimeSpeed' }],\n },\n {\n action: 'FilterTo',\n params: [0, 'blur', 0.5,\n { $calc: 'landTimeSpeed', koef: 0.5 }],\n },\n ]],\n },\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [1, 1, 0],\n },\n {\n action: 'AlphaTo',\n params: [0, 0],\n },\n {\n action: 'FilterTo',\n params: [0, 'blur', 30, 0],\n },\n ]],\n },\n ]],\n },\n ],\n },\n ],\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n when: notLanded,\n payload: {\n texture: 'glow',\n tint: 0xFF4444,\n width: 700,\n height: 700,\n },\n },\n {\n type: 'sprite',\n layer: 'effects',\n once: true,\n payload: {\n texture: 'glow',\n alpha: 1.0,\n tint: 0xff2222,\n width: 1,\n height: 1,\n blendMode: 1,\n },\n when: landed,\n actions: [\n {\n action: 'Spawn',\n params: [[\n {\n action: 'Ease',\n params: [\n {\n action: 'ScaleTo',\n params: [20, 20, { $processorParam: 'tickDuration' }],\n },\n ],\n },\n {\n action: 'AlphaTo',\n params: [0, { $processorParam: 'tickDuration' }],\n },\n ]],\n },\n ],\n },\n {\n type: 'draw',\n once: true,\n layer: 'effects',\n when: landed,\n payload: {\n x: { $calc: 'offsetToZeroX' },\n y: { $calc: 'offsetToZeroY' },\n blendMode: 1,\n alpha: 0.7,\n drawings: [\n { method: 'beginFill', params: [0xFF0000] },\n {\n method: 'drawRect',\n params: [\n 0,\n 0,\n { $calc: 'viewBox' },\n { $calc: 'viewBox' },\n ],\n },\n { method: 'endFill' },\n ],\n },\n actions: [\n {\n action: 'Ease',\n params: [\n {\n action: 'AlphaTo',\n params: [0, { $processorParam: 'tickDuration' }],\n },\n ],\n },\n ],\n },\n ],\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nconst resourceTriangle = {\n color: 0xffe56d,\n x: 0,\n y: 10,\n width: 86,\n height: 118,\n};\n\nconst gRectangle = {\n color: 0xffffff,\n x: -40,\n y: 35,\n width: 80,\n height: 15,\n};\n\nexport default {\n calculations: [\n {\n id: 'energyTrianglePoints',\n props: ['store', 'storeCapacityResource'],\n func: ({ state: { store, storeCapacityResource } }) => {\n const { x, y } = resourceTriangle;\n let { width, height } = resourceTriangle;\n const koef = (store.energy||0) / storeCapacityResource.energy;\n width *= koef;\n height *= koef;\n return [\n x - (width / 2), y,\n x, y - height,\n x + (width / 2), y,\n ];\n },\n },\n {\n id: 'gWidth',\n func: ({ state: { store, storeCapacityResource } }) =>\n storeCapacityResource && storeCapacityResource['G'] ?\n (gRectangle.width * (store['G']||0)) / storeCapacityResource['G'] : 0,\n },\n ],\n processors: [\n {\n type: 'sprite',\n once: 'true',\n payload: {\n texture: 'nuker-border',\n width: 300,\n height: 300,\n y: -40,\n tint: { $calc: 'playerColor' },\n },\n },\n {\n type: 'sprite',\n once: 'true',\n payload: {\n texture: 'nuker',\n width: 300,\n height: 300,\n y: -40,\n },\n },\n {\n type: 'draw',\n props: ['energyTrianglePoints'],\n payload: {\n id: 'energyTriangle',\n drawings: [\n { method: 'beginFill', params: [resourceTriangle.color] },\n {\n method: 'drawPolygon',\n params: [{ $calc: 'energyTrianglePoints' }],\n },\n { method: 'endFill' },\n ],\n },\n },\n {\n type: 'draw',\n props: ['gWidth'],\n payload: {\n id: 'gRectangle',\n drawings: [\n { method: 'beginFill', params: [gRectangle.color] },\n {\n method: 'drawRect',\n params: [\n { $calc: 'gWidth', koef: -0.5 },\n gRectangle.y,\n { $calc: 'gWidth' },\n gRectangle.height,\n ],\n },\n { method: 'endFill' },\n ],\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 100,\n height: 100,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 800,\n height: 800,\n alpha: 0.5,\n },\n },\n ],\n zIndex: 7\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport constants from '@screeps/common/lib/constants';\n\nconst ellipse = {\n color: 0xf41f33,\n strokeColor: 0x8d000d,\n strokeWidth: 10,\n};\n\nexport default {\n calculations: [\n {\n id: 'radius',\n props: ['store'],\n func: ({ state: { store } }) => {\n const { POWER_BANK_CAPACITY_MAX } = constants;\n return Math.sqrt(((store.power / POWER_BANK_CAPACITY_MAX) * 3000) / Math.PI);\n },\n },\n ],\n processors: [\n {\n type: 'sprite',\n once: 'true',\n payload: {\n texture: 'powerBank',\n width: 200,\n height: 200,\n },\n },\n {\n type: 'draw',\n once: true,\n payload: {\n id: 'static',\n drawings: [\n {\n method: 'lineStyle',\n params: [\n ellipse.strokeWidth,\n ellipse.strokeColor,\n 1,\n ],\n },\n { method: 'beginFill', params: [ellipse.color] },\n {\n method: 'drawCircle',\n params: [\n 0,\n 0,\n { $calc: 'radius' },\n ],\n },\n { method: 'endFill' },\n ],\n },\n actions: [\n {\n action: 'Repeat',\n params: [\n {\n action: 'Spawn',\n params: [[\n {\n action: 'Sequence',\n params: [[\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x', koef: 0.6 },\n { $rel: 'scale.y', koef: 0.6 },\n { $processorParam: 'tickDuration', koef: 0.66 },\n ],\n },\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x' },\n { $rel: 'scale.y' },\n { $processorParam: 'tickDuration', koef: 0.34 },\n ],\n },\n ]],\n },\n {\n action: 'Sequence',\n params: [[\n {\n action: 'TintTo',\n params: [\n 0xd31022,\n { $processorParam: 'tickDuration', koef: 0.33 },\n ],\n },\n {\n action: 'TintTo',\n params: [\n 0x8d000d,\n { $processorParam: 'tickDuration', koef: 0.33 },\n ],\n },\n {\n action: 'TintTo',\n params: [\n 0xf41f33,\n { $processorParam: 'tickDuration', koef: 0.34 },\n ],\n },\n ]],\n },\n ]],\n },\n ],\n },\n ],\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 800,\n height: 800,\n tint: 0xFF8080,\n },\n },\n ],\n zIndex: 11,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport { calculateAngle } from '../../../helpers/mathHelper';\nimport {displayName} from \"../action-templates\";\n\nconst CELL_SIZE = 100;\n\nconst BADGE_GEOMETRY = {\n commander: {\n pivotY: 30,\n size: 65,\n },\n executor: {\n pivotY: 30,\n size: 45,\n },\n operator: {\n pivotY: 15,\n size: 63,\n },\n};\n\nexport default {\n calculations: [\n {\n id: 'displayName',\n func: ({ calcs: { isOwner }, state: { name, user }, stateExtra: { users } }) =>\n (isOwner ? name : users[user].username),\n },\n {\n id: 'rotation',\n props: ['x', 'y'],\n func: ({ prevState: { x: prevX, y: prevY } = {}, state: { x, y } }) => {\n return (prevX !== undefined && prevY !== undefined ?\n calculateAngle(prevX, prevY, x, y) : 0);\n },\n },\n {\n id: 'texture',\n props: ['level'],\n func: ({ state: { level, className } }) => `${className}-lvl${Math.min(4, Math.ceil(level / 6))}`,\n },\n {\n id: 'texture-light',\n func: ({ state: { className } }) => `${className}-lvl4`,\n },\n {\n id: 'badgePivotY',\n props: ['className'],\n func: ({ state: { className } }) => BADGE_GEOMETRY[className].pivotY,\n },\n {\n id: 'badgeSize',\n props: ['className'],\n func: ({ state: { className } }) => BADGE_GEOMETRY[className].size,\n },\n {\n id: 'safeMode',\n func: ({\n stateExtra,\n state: { user },\n stateExtra: { controller, gameTime, objects },\n }) => {\n if (controller === undefined) {\n controller = objects.find(i => i.type === 'controller') || null;\n stateExtra.controller = controller;\n }\n return controller && controller.safeMode > gameTime && controller.user !== user ?\n 0.5 : 1.0;\n },\n },\n ],\n processors: [\n {\n type: 'container',\n once: 'true',\n payload: {\n id: 'mainContainer',\n },\n },\n {\n type: 'sprite',\n props: ['texture'],\n payload: {\n id: 'sprite',\n parentId: 'mainContainer',\n texture: { $calc: 'texture' },\n width: 180,\n height: 180,\n zIndex: 0,\n tint: 0xcc3d3e,\n },\n },\n {\n type: 'userBadge',\n props: ['texture'],\n payload: {\n parentId: 'mainContainer',\n radius: 26,\n color: 0x222222,\n width: { $calc: 'badgeSize' },\n height: { $calc: 'badgeSize' },\n pivot: {\n y: { $calc: 'badgePivotY' },\n },\n },\n },\n {\n type: 'creepActions',\n payload: {\n parentId: 'mainContainer',\n },\n props: '*',\n },\n {\n type: 'powerInfluence',\n payload: {\n parentId: 'mainContainer',\n },\n props: '*',\n },\n displayName('creeps'),\n {\n type: 'say',\n layer: 'effects',\n when: ({\n state: { actionLog: { say } = {} },\n stateExtra: { gameData: { showCreepSpeech } },\n calcs: { isOwner },\n }) =>\n !!showCreepSpeech && !!say && (say.isPublic || isOwner),\n payload: {\n say: { $state: 'actionLog.say' },\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n payload: {\n parentId: 'mainContainer',\n texture: { $calc: 'texture' },\n width: 180,\n height: 180,\n alpha: 1.0,\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n payload: {\n parentId: 'mainContainer',\n texture: 'glow',\n width: 400,\n height: 400,\n alpha: 1.0,\n tint: 0xFF5555,\n },\n },\n {\n type: 'sprite',\n layer: 'effects',\n\t\t\tonce: true,\n\t\t\twhen: ({ state: { actionLog: { spawned } = {} } }) => !!spawned,\n payload: {\n\t\t\t\ttexture: 'flare2',\t\t\t\t\n\t\t\t\twidth: 400,\n\t\t\t\theight: 400,\n\t\t\t\talpha: 1,\n blendMode: 1,\n tint: 0xff1111,\n },\n actions: [\n {\n action: 'Sequence',\n params: [[\n {\n action: 'Spawn',\n params: [[\n {\n action: 'AlphaTo',\n\t\t\t\t\t\t\t\t\tparams: [0.0, { $processorParam: 'tickDuration', koef: 0.5 }], \n },\n\t\t\t\t\t\t\t\t{\n action: 'RotateBy',\n\t\t\t\t\t\t\t\t\tparams: [Math.PI / 8, { $processorParam: 'tickDuration', koef: 0.5 }], \n },\n ]],\n },\n ]],\n },\n ],\n },\n ],\n actions: [\n {\n id: 'moveTo',\n props: ['x', 'y'],\n actions: [{\n action: 'Ease',\n params: [\n {\n action: 'MoveTo',\n params: [\n { $state: 'x', koef: CELL_SIZE },\n { $state: 'y', koef: CELL_SIZE },\n { $processorParam: 'tickDuration' },\n ],\n },\n 'EASE_IN_OUT_QUAD',\n ],\n }],\n },\n {\n id: 'rotateTo',\n props: ['rotation'],\n targetId: 'mainContainer',\n actions: [{\n action: 'RotateTo',\n params: [\n { $calc: 'rotation' },\n { $processorParam: 'tickDuration', koef: 0.2 },\n ],\n }],\n },\n {\n id: 'safeModeAlpha',\n props: ['safeMode'],\n targetId: 'mainContainer',\n actions: [{\n action: 'AlphaTo',\n params: [{ $calc: 'safeMode' }, 0],\n }],\n },\n ],\n disappearProcessor: { type: 'disappear' },\n zIndex: 13,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\nconst ellipse1 = {\n color: 0x222222,\n radius: 75,\n strokeColor: 0xcccccc,\n strokeWidth: 7,\n};\nconst ellipse2 = {\n color: 0x222222,\n radius: 68,\n strokeColor: 0xf41f33,\n strokeWidth: 10,\n};\n\nconst ellipse3 = {\n color: 0x181818,\n radius: 59,\n};\n\nconst ellipse4 = {\n color: 0x555555,\n radius: 38,\n};\n\nconst arc = {\n color: 0xf41f33,\n radius: 50,\n startAngle: -Math.PI / 2,\n strokeWidth: 10,\n};\n\nexport default {\n calculations: [\n {\n id: 'powerAngle',\n props: ['store', 'storeCapacityResource'],\n func: ({ state: { store, storeCapacityResource } }) =>\n arc.startAngle +\n (storeCapacityResource && storeCapacityResource.power ? (((2 * Math.PI) * (store.power||0)) / storeCapacityResource.power) : 0),\n },\n {\n id: 'resourceScale',\n props: ['store', 'storeCapacity'],\n func: ({ state: { store, storeCapacityResource } }) =>\n storeCapacityResource && storeCapacityResource.energy ? Math.min(1, (store.energy||0) / storeCapacityResource.energy) : 0,\n },\n ],\n processors: [\n {\n type: 'draw',\n once: true,\n payload: {\n id: 'static',\n drawings: [\n {\n method: 'lineStyle',\n params: [\n ellipse1.strokeWidth,\n ellipse1.strokeColor,\n 1,\n ],\n },\n { method: 'beginFill', params: [ellipse1.color] },\n {\n method: 'drawCircle',\n params: [\n 0,\n 0,\n ellipse1.radius,\n ],\n },\n { method: 'endFill' },\n {\n method: 'lineStyle',\n params: [\n ellipse2.strokeWidth,\n ellipse2.strokeColor,\n 1,\n ],\n },\n { method: 'beginFill', params: [ellipse2.color] },\n {\n method: 'drawCircle',\n params: [\n 0,\n 0,\n ellipse2.radius,\n ],\n },\n { method: 'endFill' },\n {\n method: 'lineStyle',\n params: [0, 0, 1],\n },\n { method: 'beginFill', params: [ellipse3.color] },\n {\n method: 'drawCircle',\n params: [\n 0,\n 0,\n ellipse3.radius,\n ],\n },\n { method: 'endFill' },\n ],\n },\n },\n {\n type: 'userBadge',\n once: true,\n payload: {\n parentId: 'static',\n color: ellipse4.color,\n radius: ellipse4.radius,\n },\n },\n {\n type: 'draw',\n props: ['powerAngle'],\n payload: {\n id: 'arc',\n parentId: 'static',\n drawings: [\n {\n method: 'lineStyle',\n params: [\n arc.strokeWidth,\n arc.color,\n 1,\n ],\n },\n {\n method: 'arc',\n params: [\n 0,\n 0,\n arc.radius,\n arc.startAngle,\n { $calc: 'powerAngle' },\n ],\n },\n ],\n },\n },\n {\n type: 'runAction',\n props: ['resourceScale'],\n payload: {\n id: 'resourceCircle',\n },\n actions: [\n {\n action: 'ScaleTo',\n params: [\n { $calc: 'resourceScale' },\n { $calc: 'resourceScale' },\n { $processorParam: 'tickDuration' },\n ],\n },\n ],\n },\n {\n id: 'resourceCircle',\n once: true,\n type: 'circle',\n payload: {\n parentId: 'static',\n radius: ellipse4.radius,\n color: 0xffe56d,\n scale: {\n x: { $calc: 'resourceScale' },\n y: { $calc: 'resourceScale' },\n },\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n payload: {\n texture: 'glow',\n width: 150,\n height: 150,\n alpha: 1,\n },\n },\n {\n id: 'glow',\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n alpha: 0.5,\n scale: {\n x: 1,\n y: 1,\n },\n },\n },\n {\n type: 'runAction',\n props: ['store'],\n payload: {\n id: 'glow',\n },\n actions: [{\n action: 'Sequence',\n params: [[\n {\n action: 'Spawn',\n params: [[\n {\n action: 'TintTo',\n params: [0xFF3333, { $processorParam: 'tickDuration', koef: 0.2 }],\n },\n {\n action: 'AlphaTo',\n params: [1, { $processorParam: 'tickDuration', koef: 0.2 }],\n },\n {\n action: 'ScaleTo',\n params: [2, 2, { $processorParam: 'tickDuration', koef: 0.2 }],\n },\n ]],\n },\n {\n action: 'Spawn',\n params: [[\n {\n action: 'TintTo',\n params: [0xFFFFFF, { $processorParam: 'tickDuration', koef: 0.8 }],\n },\n {\n action: 'AlphaTo',\n params: [0.5, { $processorParam: 'tickDuration', koef: 0.8 }],\n },\n {\n action: 'ScaleTo',\n params: [1, 1, { $processorParam: 'tickDuration', koef: 0.8 }],\n },\n ]],\n },\n ]],\n }],\n },\n ],\n actions: [\n {\n id: 'resourceScale',\n targetId: 'resourceCircle',\n props: ['resourceScale'],\n actions: [\n {\n action: 'ScaleTo',\n params: [\n { $calc: 'resourceScale' },\n { $calc: 'resourceScale' },\n { $processorParam: 'tickDuration' },\n ],\n },\n ],\n },\n ],\n zIndex: 12,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport { flickering } from '../action-templates';\n\nconst rect1 = {\n animationDuration: 4.0,\n fillColor: 0x111111,\n radius: 15,\n size: 40,\n strokeBlinkingColor: 0x0e0c04,\n strokeColor: 0x595026,\n strokeWidth: 15,\n};\n\nconst rect2 = {\n animationDuration: 2,\n fillColor: 0xffe56d,\n radius: 15,\n size: 60,\n blinkingColors: [0xffffff, 0xffcd6d, 0xffde84],\n};\n\nexport default {\n calculations: [\n {\n id: 'energySize',\n props: ['energy', 'energyCapacity'],\n func: ({ state: { energy, energyCapacity } }) =>\n (rect2.size * energy) / energyCapacity,\n },\n ],\n processors: [\n {\n type: 'draw',\n once: true,\n payload: {\n id: 'static',\n tint: rect1.strokeColor,\n drawings: [\n {\n method: 'lineStyle',\n params: [\n rect1.strokeWidth,\n 0xffffff,\n 1,\n ],\n },\n { method: 'beginFill', params: [rect1.fillColor] },\n {\n method: 'drawRoundedRect',\n params: [\n -rect1.size / 2,\n -rect1.size / 2,\n rect1.size,\n rect1.size,\n rect1.radius,\n ],\n },\n { method: 'endFill' },\n ],\n },\n actions: [{\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [\n {\n action: 'TintTo',\n params: [\n rect1.strokeBlinkingColor,\n rect1.animationDuration / 2,\n ],\n },\n {\n action: 'TintTo',\n params: [\n rect1.strokeColor,\n rect1.animationDuration / 2,\n ],\n },\n ],\n ],\n }],\n }],\n },\n {\n type: 'draw',\n props: ['energySize'],\n payload: {\n id: 'energy',\n tint: rect2.fillColor,\n drawings: [\n { method: 'beginFill', params: [0xffffff] },\n {\n method: 'drawRoundedRect',\n params: [\n { $calc: 'energySize', koef: -0.5 },\n { $calc: 'energySize', koef: -0.5 },\n { $calc: 'energySize' },\n { $calc: 'energySize' },\n rect1.radius,\n ],\n },\n { method: 'endFill' },\n ],\n },\n actions: [{\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [\n {\n action: 'TintTo',\n params: [\n rect2.blinkingColors[0],\n rect2.animationDuration / 4,\n ],\n },\n {\n action: 'TintTo',\n params: [\n rect2.blinkingColors[1],\n rect2.animationDuration / 4,\n ],\n },\n {\n action: 'TintTo',\n params: [\n rect2.blinkingColors[2],\n rect2.animationDuration / 4,\n ],\n },\n {\n action: 'TintTo',\n params: [\n rect2.fillColor,\n rect2.animationDuration / 4,\n ],\n },\n ],\n ],\n }],\n }],\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 800,\n height: 800,\n tint: 0xFFFF50,\n alpha: 0.5,\n },\n actions: [flickering(0.6, 0.4, 0.8, 0.4)],\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n shouldRun: (({ state: { energy } }) => energy > 0),\n payload: {\n texture: 'glow',\n width: 150,\n height: 150,\n tint: 0xFFFFFF,\n },\n },\n ],\n zIndex: 2,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport { displayName } from '../action-templates';\n\nconst ellipse1 = {\n color: 0xCCCCCC,\n radius: 70,\n};\n\nconst ellipse2 = {\n color: 0x181818,\n radius: 59,\n};\n\nconst ellipse3 = {\n color: 0x555555,\n radius: 38,\n};\n\nconst arc = {\n color: 0xCCCCCC,\n radius: 50,\n startAngle: -Math.PI / 2,\n strokeWidth: 10,\n};\n\nexport default {\n calculations: [\n {\n id: 'spawningAngle',\n func: ({ state: { name, spawning }, stateExtra: { gameTime } }) => {\n const { spawnTime = gameTime+0.01, needTime = 0 } = spawning || {};\n const remainingTime = spawnTime - gameTime;\n return arc.startAngle +\n (needTime ? (((2 * Math.PI) * (needTime - remainingTime)) / needTime) : 0);\n },\n },\n {\n id: 'resourceScale',\n props: ['store', 'storeCapacityResource'],\n func: ({ state: { store, storeCapacityResource } }) =>\n storeCapacityResource && storeCapacityResource.energy ?\n (store.energy||0) / storeCapacityResource.energy : 0,\n },\n {\n id: 'displayName',\n func: ({ calcs: { isOwner }, state: { name, user }, stateExtra: { users } }) =>\n (isOwner ? name : users[user] ? users[user].username : ''),\n },\n {\n id: 'badgeColor',\n func: ({ calcs: { playerColor }, world: { options: { userOwnerColor } } }) =>\n userOwnerColor ? ellipse3.color : playerColor,\n },\n ],\n processors: [\n {\n type: 'circle',\n once: true,\n payload: {\n id: 'static',\n radius: ellipse1.radius,\n color: ellipse1.color,\n },\n },\n {\n type: 'circle',\n once: true,\n payload: {\n id: 'black',\n parentId: 'static',\n radius: ellipse2.radius,\n color: ellipse2.color,\n },\n },\n {\n type: 'userBadge',\n once: true,\n payload: {\n parentId: 'black',\n color: { $calc: 'badgeColor' },\n radius: ellipse3.radius,\n },\n },\n {\n type: 'runAction',\n props: ['spawning'],\n once: true,\n shouldRun: (({ state: { spawning } }) => !!spawning),\n payload: {\n id: 'static',\n },\n actions: [\n {\n action: 'Repeat',\n params: [\n {\n action: 'Sequence',\n params: [\n [\n {\n action: 'Ease',\n params: [\n {\n action: 'ScaleTo',\n params: [\n 1.25,\n 1.25,\n 0.5,\n ],\n },\n ],\n },\n {\n action: 'Ease',\n params: [\n {\n action: 'ScaleTo',\n params: [\n 1,\n 1,\n 2,\n ],\n },\n 'EASE_IN_QUAD',\n ],\n },\n ],\n ],\n },\n ],\n },\n ],\n },\n {\n type: 'draw',\n props: ['spawningAngle'],\n payload: {\n id: 'arc',\n parentId: 'static',\n drawings: [\n {\n method: 'lineStyle',\n params: [\n arc.strokeWidth,\n arc.color,\n 1,\n ],\n },\n {\n method: 'arc',\n params: [\n 0,\n 0,\n arc.radius,\n arc.startAngle,\n { $calc: 'spawningAngle' },\n ],\n },\n ],\n },\n },\n {\n id: 'resourceCircle',\n once: true,\n type: 'circle',\n payload: {\n parentId: 'static',\n radius: ellipse3.radius,\n color: 0xffe56d,\n scale: {\n x: { $calc: 'resourceScale' },\n y: { $calc: 'resourceScale' },\n },\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n props: ['store'],\n shouldRun: (({ state: { store } }) => store.energy > 0),\n payload: {\n texture: 'glow',\n width: 100,\n height: 100,\n alpha: 1,\n },\n },\n {\n id: 'light',\n type: 'sprite',\n layer: 'lighting',\n once: true,\n payload: {\n texture: 'glow',\n width: 600,\n height: 600,\n alpha: 0.5,\n },\n },\n {\n type: 'runAction',\n props: ['spawning'],\n shouldRun: (({ state: { spawning } }) => !!spawning),\n once: true,\n payload: {\n id: 'light',\n },\n actions: [\n {\n action: 'Repeat',\n params: [\n {\n action: 'Sequence',\n params: [\n [\n {\n action: 'Ease',\n params: [\n {\n action: 'AlphaTo',\n params: [\n 1,\n 0.5,\n ],\n },\n ],\n },\n {\n action: 'Ease',\n params: [\n {\n action: 'AlphaTo',\n params: [\n 0.5,\n 2,\n ],\n },\n 'EASE_IN_QUAD',\n ],\n },\n ],\n ],\n },\n ],\n },\n ],\n },\n displayName('spawns'),\n ],\n actions: [\n {\n id: 'resourceScale',\n targetId: 'resourceCircle',\n props: ['resourceScale'],\n actions: [\n {\n action: 'ScaleTo',\n params: [\n { $calc: 'resourceScale' },\n { $calc: 'resourceScale' },\n { $processorParam: 'tickDuration' },\n ],\n },\n ],\n },\n ],\n zIndex: 8,\n};\n","/**\n * Created by vedi on 19/04/2017.\n */\n\nimport { resourceTotal } from '../calculation-templates';\nimport constants from '@screeps/common/lib/constants';\n\nconst WEIGHT = 110;\nconst TOTAL_HEIGHT = 140;\n\nexport default {\n texture: 'storage',\n calculations: [\n resourceTotal(),\n {\n id: 'energyBackgroundHeight',\n func: ({ calcs: { resourcesTotal }, state: { storeCapacity } }) => {\n return (resourcesTotal * TOTAL_HEIGHT) / Math.max(storeCapacity||constants.STORAGE_CAPACITY, resourcesTotal);\n },\n },\n {\n id: 'energyHeight',\n func: ({ calcs: { resourcesTotal }, state: { store, storeCapacity } }) => {\n return (store['energy'] * TOTAL_HEIGHT) / Math.max(storeCapacity||constants.STORAGE_CAPACITY, resourcesTotal);\n },\n },\n {\n id: 'powerHeight',\n func: ({ calcs: { resourcesTotal }, state: { store, storeCapacity } }) => {\n return (((store['power']||0) + (store['energy']||0)) * TOTAL_HEIGHT) / Math.max((storeCapacity||constants.STORAGE_CAPACITY), resourcesTotal);\n },\n },\n ],\n processors: [\n {\n id: 'border',\n type: 'sprite',\n once: true,\n payload: {\n texture: 'storage-border',\n width: 200,\n height: 200,\n tint: { $calc: 'playerColor' },\n },\n },\n {\n type: 'sprite',\n once: true,\n payload: {\n texture: 'storage',\n width: 200,\n height: 200,\n },\n },\n {\n id: 'otherResourcesBar',\n type: 'sprite',\n props: ['store', 'energyBackgroundHeight', 'resourcesTotal'],\n shouldRun: ({ state: { store }, calcs: { resourcesTotal } }) =>\n store['energy'] + (store['power'] || 0) < resourcesTotal,\n payload: {\n texture: 'rectangle',\n pivot: {\n y: { $calc: 'energyBackgroundHeight' },\n },\n y: TOTAL_HEIGHT / 2,\n width: WEIGHT,\n height: { $calc: 'energyBackgroundHeight' },\n tint: 0xffffff,\n },\n },\n {\n id: 'powerBar',\n type: 'sprite',\n props: ['store', 'resourcesTotal'],\n shouldRun: ({ state: { store } }) => store['power'] > 0,\n payload: {\n texture: 'rectangle',\n pivot: {\n y: { $calc: 'powerHeight' },\n },\n y: TOTAL_HEIGHT / 2,\n width: WEIGHT,\n height: { $calc: 'powerHeight' },\n tint: 0xf41f33,\n },\n },\n {\n type: 'sprite',\n id: 'energyBar',\n props: ['store', 'resourcesTotal'],\n shouldRun: ({ state: { store } }) => store['energy'] > 0,\n payload: {\n texture: 'rectangle',\n pivot: {\n y: { $calc: 'energyHeight' },\n },\n y: TOTAL_HEIGHT / 2,\n width: WEIGHT,\n height: { $calc: 'energyHeight' },\n tint: 0xffe56d,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n shouldRun: ({ calcs: { resourcesTotal } }) => resourcesTotal > 0,\n payload: {\n texture: 'glow',\n width: 200,\n height: 200,\n alpha: 1,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 800,\n height: 800,\n alpha: 0.5,\n },\n },\n ],\n zIndex: 7,\n};\n","/**\n * Created by vedi on 22/08/2017.\n */\n\nimport { resourceTotal } from '../calculation-templates';\nimport constants from '@screeps/common/lib/constants';\n\nconst ENERGY_RECT_FULL_SIZE = 76.0;\n\nconst isCooldown = ({ state: { cooldownTime }, stateExtra: { gameTime } }) =>\n cooldownTime && cooldownTime >= gameTime;\nconst isNotCooldown = (...params) => !isCooldown(...params);\n\nexport default {\n calculations: [\n resourceTotal(),\n {\n id: 'restResourceSize',\n props: ['store', 'storeCapacity', 'resourcesTotal'],\n func: ({\n state: { store = {}, storeCapacity },\n calcs: { resourcesTotal },\n }) => {\n if (resourcesTotal <= (store['energy']||0) + (store['power']||0)) {\n return 0;\n }\n const result = (ENERGY_RECT_FULL_SIZE * resourcesTotal) / (storeCapacity||constants.TERMINAL_CAPACITY);\n return Math.min(result, ENERGY_RECT_FULL_SIZE);\n },\n },\n {\n id: 'powerResourceSize',\n props: ['store', 'storeCapacity'],\n func: ({ state: { store = {}, storeCapacity } }) => {\n const result = (ENERGY_RECT_FULL_SIZE * ((store['energy']||0) + (store['power']||0))) / (storeCapacity||constants.TERMINAL_CAPACITY);\n return Math.min(result, ENERGY_RECT_FULL_SIZE);\n },\n },\n {\n id: 'energyResourceHeight',\n props: ['store', 'storeCapacity'],\n func: ({ state: { store = {}, storeCapacity } }) => {\n const result = (ENERGY_RECT_FULL_SIZE * (store['energy']||0)) / (storeCapacity||constants.TERMINAL_CAPACITY);\n return Math.min(result, ENERGY_RECT_FULL_SIZE);\n },\n },\n {\n id: 'arrowsAlpha',\n props: ['cooldownTime'],\n func: (...params) => (isCooldown(...params) ? 0.1 : 1),\n },\n ],\n processors: [\n {\n type: 'sprite',\n once: true,\n payload: {\n texture: 'terminal-border',\n width: 200,\n height: 200,\n tint: { $calc: 'playerColor' },\n },\n },\n {\n type: 'sprite',\n once: true,\n payload: {\n texture: 'terminal',\n width: 200,\n height: 200,\n },\n },\n {\n type: 'sprite',\n once: true,\n when: isCooldown,\n payload: {\n texture: 'terminal-arrows',\n width: 200,\n height: 200,\n alpha: 0.1,\n },\n },\n {\n type: 'sprite',\n once: true,\n when: isNotCooldown,\n payload: {\n texture: 'terminal-arrows',\n width: 200,\n height: 200,\n },\n },\n {\n type: 'sprite',\n when: isCooldown,\n payload: {\n texture: 'terminal-highlight',\n width: 200,\n height: 200,\n tint: 0xFFFFFF,\n alpha: 0,\n blendMode: 1,\n },\n actions: [{\n action: 'Sequence',\n params: [[\n {\n action: 'AlphaTo',\n params: [1, { $processorParam: 'tickDuration', koef: 0.2 }],\n },\n {\n action: 'AlphaTo',\n params: [0, { $processorParam: 'tickDuration', koef: 0.8 }],\n },\n ]],\n }],\n },\n {\n type: 'draw',\n payload: {\n drawings: [\n { method: 'beginFill', params: [0xffffff] },\n {\n method: 'drawRect',\n params: [\n { $calc: 'restResourceSize', koef: -0.5 },\n { $calc: 'restResourceSize', koef: -0.5 },\n { $calc: 'restResourceSize' },\n { $calc: 'restResourceSize' },\n ],\n },\n { method: 'endFill' },\n { method: 'beginFill', params: [0xf41f33] },\n {\n method: 'drawRect',\n params: [\n { $calc: 'powerResourceSize', koef: -0.5 },\n { $calc: 'powerResourceSize', koef: -0.5 },\n { $calc: 'powerResourceSize' },\n { $calc: 'powerResourceSize' },\n ],\n },\n { method: 'endFill' },\n { method: 'beginFill', params: [0xffe56d] },\n {\n method: 'drawRect',\n params: [\n { $calc: 'energyResourceHeight', koef: -0.5 },\n { $calc: 'energyResourceHeight', koef: -0.5 },\n { $calc: 'energyResourceHeight' },\n { $calc: 'energyResourceHeight' },\n ],\n },\n { method: 'endFill' },\n ],\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n shouldRun: ({ calcs: { resourcesTotal } }) => resourcesTotal > 0,\n payload: {\n texture: 'glow',\n width: 200,\n height: 200,\n alpha: 1,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 800,\n height: 800,\n alpha: 0.5,\n },\n },\n ],\n zIndex: 16,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport { resourceTotal } from '../calculation-templates';\n\nexport default {\n calculations: [\n resourceTotal(),\n {\n id: 'resourceColor',\n func: ({ calcs: { resourcesTotal, playerColor } }) =>\n (resourcesTotal > 0 ? playerColor : 0x000000),\n },\n {\n id: 'decayAlpha',\n func: ({ state: { decayTime, deathTime }, stateExtra: { gameTime } }) =>\n 1 - ((gameTime - deathTime) / (decayTime - deathTime)),\n },\n ],\n processors: [\n {\n type: 'sprite',\n id: 'tombstone-border',\n once: true,\n payload: {\n texture: 'tombstone-border',\n width: 100,\n height: 100,\n blendMode: 1,\n alpha: { $calc: 'decayAlpha' },\n },\n },\n {\n type: 'sprite',\n props: ['resourceColor'],\n payload: {\n texture: 'tombstone-resource',\n tint: { $calc: 'resourceColor' },\n alpha: 0.8,\n width: 100,\n height: 100,\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n payload: {\n texture: 'tombstone-resource',\n width: 100,\n height: 100,\n },\n },\n ],\n actions: [\n {\n targetId: 'tombstone-border',\n actions: [\n {\n action: 'AlphaTo',\n params: [\n { $calc: 'decayAlpha' },\n 0,\n ],\n },\n ],\n },\n ],\n zIndex: 5,\n};\n","/**\n * Created by vedi on 18/08/2017.\n */\n\nimport mathHelper from '../../../helpers/mathHelper';\n\nconst ENERGY_BAR_FULL_HEIGHT = 66.7;\nconst isNpc = ({ state: { user } }) => user === '3' || user === '2';\nconst isNotNpc = (...params) => !isNpc(...params);\n\n/**\n * Sprite for base.\n * Sprite for rotatable area.\n * Drawable energy bar with formula `energy / energyCapacity`\n * Shot animation\n * Autorotation:\n * 1. To shot destination, or\n * 2. To random value in idling state.\n */\nexport default {\n calculations: [\n {\n id: 'shotAnim',\n func: ({ state: { actionLog } }) =>\n actionLog.attack || actionLog.heal || actionLog.repair,\n },\n {\n id: 'rotation',\n func: ({ state: { x, y }, calcs: { shotAnim } }) => {\n const { calculateAngle } = mathHelper;\n if (!shotAnim) {\n return 0;\n }\n return calculateAngle(shotAnim.x, shotAnim.y, x, y);\n },\n },\n {\n id: 'energyBarHeight',\n props: ['store', 'storeCapacityResource'],\n func: ({ state: { store, storeCapacityResource } }) => {\n const result = storeCapacityResource && storeCapacityResource.energy ?\n (ENERGY_BAR_FULL_HEIGHT * store.energy) / storeCapacityResource.energy : 0;\n return Math.min(result, ENERGY_BAR_FULL_HEIGHT);\n },\n },\n {\n id: 'energyBarBorderRadius',\n props: ['store', 'storeCapacity'],\n func: ({ calcs: { energyBarHeight } }) => Math.min(12, energyBarHeight / 2),\n },\n ],\n processors: [\n {\n type: 'sprite',\n props: ['user'],\n payload: {\n texture: 'tower-base',\n tint: { $calc: 'playerColor' },\n width: 200,\n height: 200,\n },\n },\n {\n type: 'sprite',\n props: ['user'],\n when: isNotNpc,\n payload: {\n id: 'towerRotatable',\n texture: 'tower-rotatable',\n pivot: {\n y: 32,\n },\n width: 115,\n height: 115,\n },\n actions: [{\n action: 'RotateTo',\n params: [{ $random: Math.PI * 2 }, 0],\n }],\n },\n {\n type: 'sprite',\n props: ['user'],\n when: isNpc,\n payload: {\n id: 'towerRotatable',\n texture: 'tower-rotatable-npc',\n pivot: {\n y: 32,\n },\n width: 115,\n height: 115,\n },\n actions: [{\n action: 'RotateTo',\n params: [{ $random: Math.PI * 2 }, 0],\n }],\n },\n {\n type: 'creepActions',\n props: '*',\n layer: 'effects',\n },\n {\n type: 'runAction',\n payload: {\n id: 'towerRotatable',\n },\n when: ({ calcs: { shotAnim } }) => !!shotAnim,\n actions: [\n {\n action: 'RotateTo',\n params: [\n { $calc: 'rotation' },\n 0.3,\n ],\n },\n ],\n },\n {\n type: 'runAction',\n once: true,\n payload: {\n id: 'towerRotatable',\n },\n when: ({ calcs: { shotAnim } }) => !shotAnim,\n actions: [\n {\n action: 'Repeat',\n params: [\n {\n action: 'RotateBy',\n params: [\n Math.PI,\n 10,\n ],\n },\n ],\n },\n ],\n },\n {\n type: 'draw',\n when: isNotNpc,\n payload: {\n parentId: 'towerRotatable',\n drawings: [\n { method: 'beginFill', params: [0xffe56d] },\n {\n method: 'drawRoundedRect',\n params: [\n -45,\n 0,\n 90,\n { $calc: 'energyBarHeight' },\n { $calc: 'energyBarBorderRadius' },\n ],\n },\n { method: 'endFill' },\n ],\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n shouldRun: (({ state: { store } }) => store.energy > 0),\n payload: {\n texture: 'glow',\n width: 100,\n height: 100,\n alpha: 1,\n },\n },\n {\n id: 'light',\n once: true,\n type: 'sprite',\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 600,\n height: 600,\n alpha: 0.5,\n },\n },\n {\n type: 'runAction',\n shouldRun: (({ state: { actionLog: { repair, heal, attack } = {} } }) =>\n repair || heal || attack),\n payload: {\n id: 'light',\n },\n actions: [\n {\n action: 'Sequence',\n params: [\n [\n {\n action: 'AlphaTo',\n params: [1.0, { $processorParam: 'tickDuration', koef: 0.1 }],\n },\n {\n action: 'AlphaTo',\n params: [0.5, { $processorParam: 'tickDuration', koef: 0.3 }],\n },\n ],\n ],\n },\n ],\n },\n {\n id: 'flare',\n once: true,\n type: 'sprite',\n layer: 'effects',\n payload: {\n texture: 'flare1',\n width: 400,\n height: 400,\n alpha: 0,\n blendMode: 1,\n },\n },\n {\n type: 'runAction',\n when: ({ calcs: { shotAnim } }) => !!shotAnim,\n payload: {\n id: 'flare',\n },\n actions: [\n {\n action: 'Sequence',\n params: [\n [\n {\n action: 'AlphaTo',\n params: [0.2, { $processorParam: 'tickDuration', koef: 0.1 }],\n },\n {\n action: 'AlphaTo',\n params: [0.0, { $processorParam: 'tickDuration', koef: 0.3 }],\n },\n ],\n ],\n },\n ],\n },\n ],\n zIndex: 13,\n};\n","import constants from '@screeps/common/lib/constants';\n\nconst arc = {\n color: 0xCCCCCC,\n radius: 40,\n startAngle: -Math.PI / 2,\n strokeWidth: 10,\n};\n\nexport default {\n calculations: [\n {\n id: 'spawningAngle',\n func: ({ state: { spawning }, stateExtra: { gameTime } }) => {\n const { spawnTime = gameTime+0.01, needTime = 0 } = spawning || {};\n const remainingTime = spawnTime - gameTime;\n return arc.startAngle +\n (needTime ? (((2 * Math.PI) * (needTime - remainingTime)) / needTime) : 0);\n },\n },\n {\n id: 'ttl',\n func: ({ state: { decayTime }, stateExtra: { gameTime } }) =>\n Math.floor((decayTime - gameTime) / 100) * 100,\n },\n ],\n processors: [\n {\n type: 'sprite',\n once: 'true',\n payload: {\n texture: 'invaderCore',\n width: 200,\n height: 200,\n },\n },\n {\n type: 'siteProgress',\n payload: {\n color: 0xff0d39,\n radius: 23,\n lineWidth: 0,\n progress: { $calc: 'ttl' },\n progressTotal: constants.STRONGHOLD_DECAY_TICKS,\n },\n },\n {\n type: 'draw',\n props: ['spawningAngle'],\n payload: {\n id: 'arc',\n drawings: [\n {\n method: 'lineStyle',\n params: [\n arc.strokeWidth,\n arc.color,\n 1,\n ],\n },\n {\n method: 'arc',\n params: [\n 0,\n 0,\n arc.radius,\n arc.startAngle,\n { $calc: 'spawningAngle' },\n ],\n },\n ],\n },\n },\n {\n type: 'creepActions',\n props: '*',\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 100,\n height: 100,\n alpha: 1,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 800,\n height: 800,\n tint: 0xFF8080,\n },\n },\n\n ],\n zIndex: 17,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport { resourceTotal } from '../calculation-templates';\n\nexport default {\n calculations: [\n resourceTotal(),\n {\n id: 'resourceColor',\n func: ({ calcs: { resourcesTotal, playerColor } }) =>\n (resourcesTotal > 0 ? playerColor : 0x000000),\n },\n {\n id: 'decayAlpha',\n func: ({ state: { decayTime, destroyTime }, stateExtra: { gameTime } }) =>\n 1 - ((gameTime - destroyTime) / (decayTime - destroyTime)),\n },\n ],\n processors: [\n {\n type: 'sprite',\n id: 'ruin',\n once: true,\n payload: {\n texture: 'ruin',\n width: 100,\n height: 100,\n blendMode: 1,\n alpha: { $calc: 'decayAlpha' },\n },\n },\n {\n type: 'sprite',\n props: ['resourceColor'],\n payload: {\n texture: 'tombstone-resource',\n tint: { $calc: 'resourceColor' },\n alpha: 0.8,\n width: 100,\n height: 100,\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n payload: {\n texture: 'tombstone-resource',\n width: 100,\n height: 100,\n },\n },\n ],\n actions: [\n {\n targetId: 'ruin',\n actions: [\n {\n action: 'AlphaTo',\n params: [\n { $calc: 'decayAlpha' },\n 0,\n ],\n },\n ],\n },\n ],\n zIndex: 5,\n};\n","/**\n * Created by vedi on 18/03/2017.\n */\n\nimport _all from './objects/_all.metadata';\nimport constructedWall from './objects/constructedWall.metadata';\nimport constructionSite from './objects/constructionSite.metadata';\nimport container from './objects/container.metadata';\nimport controller from './objects/controller.metadata';\nimport creep from './objects/creep.metadata';\nimport deposit from './objects/deposit.metadata';\nimport energy from './objects/energy.metadata';\nimport extension from './objects/extension.metadata';\nimport extractor from './objects/extractor.metadata';\nimport factory from './objects/factory.metadata';\nimport flag from './objects/flag.metadata';\nimport keeperLair from './objects/keeperLair.metadata';\nimport lab from './objects/lab.metadata';\nimport link from './objects/link.metadata';\nimport mineral from './objects/mineral.metadata';\nimport nuke from './objects/nuke.metadata';\nimport nuker from './objects/nuker.metadata';\nimport observer from './objects/observer.metadata';\nimport portal from './objects/portal.metadata';\nimport powerBank from './objects/powerBank.metadata';\nimport powerCreep from './objects/powerCreep.metadata';\nimport powerSpawn from './objects/powerSpawn.metadata';\nimport rampart from './objects/rampart.metadata';\nimport road from './objects/road.metadata';\nimport source from './objects/source.metadata';\nimport spawn from './objects/spawn.metadata';\nimport storage from './objects/storage.metadata';\n// import tbd from './objects/tbd.metadata';\nimport terminal from './objects/terminal.metadata';\nimport tombstone from './objects/tombstone.metadata';\nimport tower from './objects/tower.metadata';\nimport invaderCore from './objects/invaderCore.metadata';\nimport ruin from './objects/ruin.metadata';\n\n// Add a pass-through filter for lighting\nclass PassThroughFilter extends PIXI.Filter {\n constructor() {\n super(undefined, undefined, {});\n }\n}\n\nexport default {\n preprocessors: [\n 'setBadgeUrls',\n 'terrain',\n ],\n layers: [ \n {\n id: 'terrain',\n afterCreate: (layer, { app, world: { options: { VIEW_BOX, CELL_SIZE,\n lighting = 'normal' } } }) => { \n async function setupExits(textureName, tileX, tileY, flipX, flipY) {\n const texture = await PIXI.Assets.load(textureName);\n const sprite = new PIXI.TilingSprite(texture,\n tileX ? VIEW_BOX : CELL_SIZE,\n tileY ? VIEW_BOX : CELL_SIZE);\n sprite.x = (-CELL_SIZE / 2) + (flipX ? VIEW_BOX - CELL_SIZE : 0);\n sprite.y = (-CELL_SIZE / 2) + (flipY ? VIEW_BOX - CELL_SIZE : 0);\n sprite.tileScale.x = CELL_SIZE / texture.width;\n sprite.tileScale.y = CELL_SIZE / texture.height;\n if (!(app.renderer instanceof PIXI.Renderer)) {\n sprite.tint = 0xa0a0a0;\n } else {\n if (lighting === 'disabled') {\n sprite.tint = 0xa0a0a0;\n }\n if (lighting === 'low') {\n sprite.tint = 0xc0c0c0;\n }\n }\n sprite.blendMode = PIXI.BLEND_MODES.ADD;\n sprite.alpha = 0.5;\n sprite.zIndex = 1;\n app.stage.addChild(sprite);\n sprite.parentLayer = layer;\n }\n\n setupExits('exit-left', false, true, false, false);\n setupExits('exit-bottom', true, false, false, true);\n setupExits('exit-top', true, false, false, false);\n setupExits('exit-right', false, true, true, false);\n },\n },\n { id: 'wallGraffiti' },\n { id: 'objects', isDefault: true },\n {\n id: 'lighting',\n afterCreate: (layer, { app, world: { options: { CELL_SIZE,\n HALF_CELL_SIZE = CELL_SIZE / 2, VIEW_BOX, lighting = 'normal' } } }) => {\n if (lighting !== 'disabled' && app.renderer instanceof PIXI.Renderer) {\n layer.filters = [new PassThroughFilter()];\n layer.filters[0].blendMode = PIXI.BLEND_MODES.MULTIPLY;\n layer.filterArea = app.renderer.screen;\n const ambient = new PIXI.Graphics();\n ambient.beginFill(0x808080, 1.0);\n ambient.drawRect(-HALF_CELL_SIZE, -HALF_CELL_SIZE, VIEW_BOX, VIEW_BOX);\n ambient.endFill();\n // Protect ambient from display hook blendMode changes\n ambient._overrideBlendMode = true;\n // Attach ambient to the lighting layer; do not re-add the layer to stage,\n // otherwise layers order may break and elements appear on wrong layers.\n layer.addChild(ambient);\n // Keep explicit assignment for consistency with other display objects\n // that rely on parentLayer-based routing.\n ambient.parentLayer = layer;\n\n if (lighting === 'low') {\n layer.alpha = 0.5;\n }\n\n layer.on('display', (element) => {\n if (!element._overrideBlendMode) {\n element.blendMode = PIXI.BLEND_MODES.SCREEN;\n }\n // console.log(element.parentLayer.__id);\n });\n } else {\n layer.on('display', (element) => {\n element.visible = false;\n });\n }\n },\n },\n { id: 'effects' },\n ],\n objects: {\n _all,\n constructedWall,\n constructionSite,\n container,\n controller,\n creep,\n deposit,\n energy,\n extension,\n extractor,\n factory,\n flag,\n keeperLair,\n lab,\n link,\n mineral,\n nuke,\n nuker,\n observer,\n portal,\n powerBank,\n powerCreep,\n powerSpawn,\n road,\n source,\n spawn,\n storage,\n terminal,\n tombstone,\n tower,\n rampart,\n invaderCore,\n ruin\n },\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nexport default {\n processors: [\n {\n type: 'resourceCircle',\n },\n {\n type: 'resourceCircle',\n layer: 'lighting',\n payload: {\n tint: 0xFFFFFF,\n },\n },\n ],\n zIndex: 1,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nexport default {\n processors: [\n {\n type: 'circle',\n once: true,\n payload: {\n radius: 60,\n color: 0x000000,\n },\n },\n {\n type: 'circle',\n once: true,\n actions: [{\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [0, 0, 0],\n },\n {\n action: 'FadeIn',\n params: [0],\n },\n ]],\n },\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x' },\n { $rel: 'scale.y' },\n 1,\n ],\n },\n {\n action: 'FadeOut',\n params: [1],\n },\n ],\n ],\n }],\n }],\n payload: {\n radius: 50,\n color: 0x780207,\n },\n },\n {\n type: 'circle',\n once: true,\n actions: [{\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [\n {\n action: 'ScaleTo',\n params: [0, 0, 0],\n },\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x', koef: 0.3 },\n { $rel: 'scale.y', koef: 0.3 },\n 1,\n ],\n },\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x' },\n { $rel: 'scale.y' },\n 1,\n ],\n },\n ],\n ],\n }],\n }],\n payload: {\n radius: 50,\n color: 0x000000,\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 800,\n height: 800,\n alpha: 0.5,\n tint: 0xFF0000,\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n payload: {\n texture: 'glow',\n width: 150,\n height: 150,\n },\n },\n ],\n zIndex: 3,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nconst ellipseBorder = {\n color: 0x111111,\n strokeWidth: 5,\n width: 45,\n height: 40,\n};\n\nconst ellipseEye = {\n strokeWidth: 5,\n width: 20,\n height: 20,\n};\n\nexport default {\n processors: [\n {\n type: 'draw',\n once: true,\n payload: {\n id: 'border',\n drawings: [\n {\n method: 'lineStyle',\n params: [\n ellipseBorder.strokeWidth,\n { $calc: 'playerColor' },\n 1,\n ],\n },\n { method: 'beginFill', params: [ellipseBorder.color] },\n {\n method: 'drawEllipse',\n params: [\n 0,\n 0,\n ellipseBorder.width,\n ellipseBorder.height,\n ],\n },\n { method: 'endFill' },\n ],\n },\n },\n {\n type: 'draw',\n once: true,\n payload: {\n id: 'eye',\n drawings: [\n {\n method: 'lineStyle',\n params: [0, 0, 1],\n },\n { method: 'beginFill', params: [{ $calc: 'playerColor' }] },\n {\n method: 'drawEllipse',\n params: [\n 0,\n 0,\n ellipseEye.width,\n ellipseEye.height,\n ],\n },\n { method: 'endFill' },\n ],\n },\n actions: [\n {\n action: 'Repeat',\n params: [\n {\n action: 'Sequence',\n params: [[\n {\n action: 'MoveTo',\n params: [20, 0, 0.25],\n },\n {\n action: 'DelayTime',\n params: [0.25],\n },\n {\n action: 'MoveTo',\n params: [0, 15, 0.25],\n },\n {\n action: 'DelayTime',\n params: [0.25],\n },\n {\n action: 'MoveTo',\n params: [-20, 0, 0.25],\n },\n {\n action: 'DelayTime',\n params: [0.25],\n },\n {\n action: 'MoveTo',\n params: [0, -15, 0.25],\n },\n {\n action: 'DelayTime',\n params: [0.25],\n },\n ]],\n },\n ],\n },\n ],\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 800,\n height: 800,\n alpha: 0.5,\n },\n },\n ],\n zIndex: 10,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nexport default {\n processors: [\n {\n type: 'circle',\n once: true,\n payload: {\n radius: 45,\n color: 0x111133,\n alpha: 0.5,\n },\n },\n {\n type: 'circle',\n once: true,\n actions: [{\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [0, 0, 0],\n },\n {\n action: 'AlphaTo',\n params: [0.5, 0],\n },\n ]],\n },\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x' },\n { $rel: 'scale.y' },\n 1,\n ],\n },\n {\n action: 'FadeOut',\n params: [1],\n },\n ],\n ],\n }],\n }],\n payload: {\n radius: 40,\n color: 0x61c0ed,\n alpha: 0.5,\n },\n },\n {\n type: 'circle',\n once: true,\n actions: [{\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [0, 0, 0],\n },\n {\n action: 'AlphaTo',\n params: [0.5, 0],\n },\n ]],\n },\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x', koef: 0.3 },\n { $rel: 'scale.y', koef: 0.3 },\n 1,\n ],\n },\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x' },\n { $rel: 'scale.y' },\n 1,\n ],\n },\n {\n action: 'FadeOut',\n params: [1],\n },\n ]],\n },\n\n ],\n ],\n }],\n }],\n payload: {\n radius: 40,\n color: 0x111133,\n alpha: 0.5,\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n payload: {\n texture: 'glow',\n width: 700,\n height: 700,\n tint: 0x9999FF,\n alpha: 0.7,\n },\n actions: [{\n action: 'Spawn',\n params: [[\n {\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [[\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x', koef: 1.2 },\n { $rel: 'scale.y', koef: 1.2 },\n 2,\n ],\n },\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x' },\n { $rel: 'scale.y' },\n 2,\n ],\n },\n ]],\n }],\n },\n {\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [[\n {\n action: 'AlphaTo',\n params: [0.1, 3.5],\n },\n {\n action: 'AlphaTo',\n params: [0.7, 3.5],\n },\n ]],\n }],\n },\n ]],\n }],\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n payload: {\n texture: 'glow',\n width: 150,\n height: 150,\n tint: 0x7777FF,\n },\n },\n ],\n zIndex: 3,\n};\n","/**\n * Created by vedi on 17/08/2017.\n */\n\nexport default {\n processors: [\n {\n type: 'road',\n },\n ],\n disappearProcessor: { type: 'disappear' },\n zIndex: -1\n};\n","export default {\n calculations: [\n {\n id: 'rampartColor',\n once: true,\n func: ({ state: { user }, stateExtra: { gameData: { player } }, world: { options: { userOwnerColor } }, calcs: { playerColor } }) =>\n userOwnerColor ? playerColor : (user === player ? 0x44FF44 : 0xFF4444),\n },\n ],\n processors: [\n {\n type: 'sprite',\n layer: 'effects',\n props: ['isPublic'],\n payload: {\n texture: 'rampart',\n width: 100,\n height: 100,\n alpha: 0.5,\n tint: { $calc: 'rampartColor' },\n },\n shouldRun: ({ state: { isPublic } }) => !!isPublic,\n },\n ],\n zIndex: 0,\n};\n"],"names":["Object","assign","exports","OK","ERR_NOT_OWNER","ERR_NO_PATH","ERR_NAME_EXISTS","ERR_BUSY","ERR_NOT_FOUND","ERR_NOT_ENOUGH_ENERGY","ERR_NOT_ENOUGH_RESOURCES","ERR_INVALID_TARGET","ERR_FULL","ERR_NOT_IN_RANGE","ERR_INVALID_ARGS","ERR_TIRED","ERR_NO_BODYPART","ERR_NOT_ENOUGH_EXTENSIONS","ERR_RCL_NOT_ENOUGH","ERR_GCL_NOT_ENOUGH","FIND_EXIT_TOP","FIND_EXIT_RIGHT","FIND_EXIT_BOTTOM","FIND_EXIT_LEFT","FIND_EXIT","FIND_CREEPS","FIND_MY_CREEPS","FIND_HOSTILE_CREEPS","FIND_SOURCES_ACTIVE","FIND_SOURCES","FIND_DROPPED_RESOURCES","FIND_STRUCTURES","FIND_MY_STRUCTURES","FIND_HOSTILE_STRUCTURES","FIND_FLAGS","FIND_CONSTRUCTION_SITES","FIND_MY_SPAWNS","FIND_HOSTILE_SPAWNS","FIND_MY_CONSTRUCTION_SITES","FIND_HOSTILE_CONSTRUCTION_SITES","FIND_MINERALS","FIND_NUKES","FIND_TOMBSTONES","FIND_POWER_CREEPS","FIND_MY_POWER_CREEPS","FIND_HOSTILE_POWER_CREEPS","FIND_DEPOSITS","FIND_RUINS","TOP","TOP_RIGHT","RIGHT","BOTTOM_RIGHT","BOTTOM","BOTTOM_LEFT","LEFT","TOP_LEFT","COLOR_RED","COLOR_PURPLE","COLOR_BLUE","COLOR_CYAN","COLOR_GREEN","COLOR_YELLOW","COLOR_ORANGE","COLOR_BROWN","COLOR_GREY","COLOR_WHITE","LOOK_CREEPS","LOOK_ENERGY","LOOK_RESOURCES","LOOK_SOURCES","LOOK_MINERALS","LOOK_DEPOSITS","LOOK_STRUCTURES","LOOK_FLAGS","LOOK_CONSTRUCTION_SITES","LOOK_NUKES","LOOK_TERRAIN","LOOK_TOMBSTONES","LOOK_POWER_CREEPS","LOOK_RUINS","OBSTACLE_OBJECT_TYPES","MOVE","WORK","CARRY","ATTACK","RANGED_ATTACK","TOUGH","HEAL","CLAIM","BODYPART_COST","WORLD_WIDTH","WORLD_HEIGHT","CREEP_LIFE_TIME","CREEP_CLAIM_LIFE_TIME","CREEP_CORPSE_RATE","CREEP_PART_MAX_ENERGY","CARRY_CAPACITY","HARVEST_POWER","HARVEST_MINERAL_POWER","HARVEST_DEPOSIT_POWER","REPAIR_POWER","DISMANTLE_POWER","BUILD_POWER","ATTACK_POWER","UPGRADE_CONTROLLER_POWER","RANGED_ATTACK_POWER","HEAL_POWER","RANGED_HEAL_POWER","REPAIR_COST","DISMANTLE_COST","RAMPART_DECAY_AMOUNT","RAMPART_DECAY_TIME","RAMPART_HITS","RAMPART_HITS_MAX","ENERGY_REGEN_TIME","ENERGY_DECAY","SPAWN_HITS","SPAWN_ENERGY_START","SPAWN_ENERGY_CAPACITY","CREEP_SPAWN_TIME","SPAWN_RENEW_RATIO","SOURCE_ENERGY_CAPACITY","SOURCE_ENERGY_NEUTRAL_CAPACITY","SOURCE_ENERGY_KEEPER_CAPACITY","WALL_HITS","WALL_HITS_MAX","EXTENSION_HITS","EXTENSION_ENERGY_CAPACITY","ROAD_HITS","ROAD_WEAROUT","ROAD_WEAROUT_POWER_CREEP","ROAD_DECAY_AMOUNT","ROAD_DECAY_TIME","LINK_HITS","LINK_HITS_MAX","LINK_CAPACITY","LINK_COOLDOWN","LINK_LOSS_RATIO","STORAGE_CAPACITY","STORAGE_HITS","STRUCTURE_SPAWN","STRUCTURE_EXTENSION","STRUCTURE_ROAD","STRUCTURE_WALL","STRUCTURE_RAMPART","STRUCTURE_KEEPER_LAIR","STRUCTURE_PORTAL","STRUCTURE_CONTROLLER","STRUCTURE_LINK","STRUCTURE_STORAGE","STRUCTURE_TOWER","STRUCTURE_OBSERVER","STRUCTURE_POWER_BANK","STRUCTURE_POWER_SPAWN","STRUCTURE_EXTRACTOR","STRUCTURE_LAB","STRUCTURE_TERMINAL","STRUCTURE_CONTAINER","STRUCTURE_NUKER","STRUCTURE_FACTORY","STRUCTURE_INVADER_CORE","CONSTRUCTION_COST","CONSTRUCTION_COST_ROAD_SWAMP_RATIO","CONSTRUCTION_COST_ROAD_WALL_RATIO","CONTROLLER_LEVELS","CONTROLLER_STRUCTURES","CONTROLLER_DOWNGRADE","CONTROLLER_DOWNGRADE_RESTORE","CONTROLLER_DOWNGRADE_SAFEMODE_THRESHOLD","CONTROLLER_CLAIM_DOWNGRADE","CONTROLLER_RESERVE","CONTROLLER_RESERVE_MAX","CONTROLLER_MAX_UPGRADE_PER_TICK","CONTROLLER_ATTACK_BLOCKED_UPGRADE","CONTROLLER_NUKE_BLOCKED_UPGRADE","SAFE_MODE_DURATION","SAFE_MODE_COOLDOWN","SAFE_MODE_COST","TOWER_HITS","TOWER_CAPACITY","TOWER_ENERGY_COST","TOWER_POWER_ATTACK","TOWER_POWER_HEAL","TOWER_POWER_REPAIR","TOWER_OPTIMAL_RANGE","TOWER_FALLOFF_RANGE","TOWER_FALLOFF","OBSERVER_HITS","OBSERVER_RANGE","POWER_BANK_HITS","POWER_BANK_CAPACITY_MAX","POWER_BANK_CAPACITY_MIN","POWER_BANK_CAPACITY_CRIT","POWER_BANK_DECAY","POWER_BANK_HIT_BACK","POWER_SPAWN_HITS","POWER_SPAWN_ENERGY_CAPACITY","POWER_SPAWN_POWER_CAPACITY","POWER_SPAWN_ENERGY_RATIO","EXTRACTOR_HITS","EXTRACTOR_COOLDOWN","LAB_HITS","LAB_MINERAL_CAPACITY","LAB_ENERGY_CAPACITY","LAB_BOOST_ENERGY","LAB_BOOST_MINERAL","LAB_COOLDOWN","LAB_REACTION_AMOUNT","LAB_UNBOOST_ENERGY","LAB_UNBOOST_MINERAL","GCL_POW","GCL_MULTIPLY","GCL_NOVICE","MODE_SIMULATION","MODE_WORLD","TERRAIN_MASK_WALL","TERRAIN_MASK_SWAMP","TERRAIN_MASK_LAVA","MAX_CONSTRUCTION_SITES","MAX_CREEP_SIZE","MINERAL_REGEN_TIME","MINERAL_MIN_AMOUNT","MINERAL_RANDOM_FACTOR","MINERAL_DENSITY","MINERAL_DENSITY_PROBABILITY","MINERAL_DENSITY_CHANGE","DENSITY_LOW","DENSITY_MODERATE","DENSITY_HIGH","DENSITY_ULTRA","DEPOSIT_EXHAUST_MULTIPLY","DEPOSIT_EXHAUST_POW","DEPOSIT_DECAY_TIME","TERMINAL_CAPACITY","TERMINAL_HITS","TERMINAL_SEND_COST","TERMINAL_MIN_SEND","TERMINAL_COOLDOWN","CONTAINER_HITS","CONTAINER_CAPACITY","CONTAINER_DECAY","CONTAINER_DECAY_TIME","CONTAINER_DECAY_TIME_OWNED","NUKER_HITS","NUKER_COOLDOWN","NUKER_ENERGY_CAPACITY","NUKER_GHODIUM_CAPACITY","NUKE_LAND_TIME","NUKE_RANGE","NUKE_DAMAGE","FACTORY_HITS","FACTORY_CAPACITY","TOMBSTONE_DECAY_PER_PART","TOMBSTONE_DECAY_POWER_CREEP","RUIN_DECAY","RUIN_DECAY_STRUCTURES","PORTAL_DECAY","ORDER_SELL","ORDER_BUY","MARKET_FEE","MARKET_MAX_ORDERS","MARKET_ORDER_LIFE_TIME","FLAGS_LIMIT","SUBSCRIPTION_TOKEN","CPU_UNLOCK","PIXEL","ACCESS_KEY","PIXEL_CPU_COST","RESOURCE_ENERGY","RESOURCE_POWER","RESOURCE_HYDROGEN","RESOURCE_OXYGEN","RESOURCE_UTRIUM","RESOURCE_LEMERGIUM","RESOURCE_KEANIUM","RESOURCE_ZYNTHIUM","RESOURCE_CATALYST","RESOURCE_GHODIUM","RESOURCE_SILICON","RESOURCE_METAL","RESOURCE_BIOMASS","RESOURCE_MIST","RESOURCE_HYDROXIDE","RESOURCE_ZYNTHIUM_KEANITE","RESOURCE_UTRIUM_LEMERGITE","RESOURCE_UTRIUM_HYDRIDE","RESOURCE_UTRIUM_OXIDE","RESOURCE_KEANIUM_HYDRIDE","RESOURCE_KEANIUM_OXIDE","RESOURCE_LEMERGIUM_HYDRIDE","RESOURCE_LEMERGIUM_OXIDE","RESOURCE_ZYNTHIUM_HYDRIDE","RESOURCE_ZYNTHIUM_OXIDE","RESOURCE_GHODIUM_HYDRIDE","RESOURCE_GHODIUM_OXIDE","RESOURCE_UTRIUM_ACID","RESOURCE_UTRIUM_ALKALIDE","RESOURCE_KEANIUM_ACID","RESOURCE_KEANIUM_ALKALIDE","RESOURCE_LEMERGIUM_ACID","RESOURCE_LEMERGIUM_ALKALIDE","RESOURCE_ZYNTHIUM_ACID","RESOURCE_ZYNTHIUM_ALKALIDE","RESOURCE_GHODIUM_ACID","RESOURCE_GHODIUM_ALKALIDE","RESOURCE_CATALYZED_UTRIUM_ACID","RESOURCE_CATALYZED_UTRIUM_ALKALIDE","RESOURCE_CATALYZED_KEANIUM_ACID","RESOURCE_CATALYZED_KEANIUM_ALKALIDE","RESOURCE_CATALYZED_LEMERGIUM_ACID","RESOURCE_CATALYZED_LEMERGIUM_ALKALIDE","RESOURCE_CATALYZED_ZYNTHIUM_ACID","RESOURCE_CATALYZED_ZYNTHIUM_ALKALIDE","RESOURCE_CATALYZED_GHODIUM_ACID","RESOURCE_CATALYZED_GHODIUM_ALKALIDE","RESOURCE_OPS","RESOURCE_UTRIUM_BAR","RESOURCE_LEMERGIUM_BAR","RESOURCE_ZYNTHIUM_BAR","RESOURCE_KEANIUM_BAR","RESOURCE_GHODIUM_MELT","RESOURCE_OXIDANT","RESOURCE_REDUCTANT","RESOURCE_PURIFIER","RESOURCE_BATTERY","RESOURCE_COMPOSITE","RESOURCE_CRYSTAL","RESOURCE_LIQUID","RESOURCE_WIRE","RESOURCE_SWITCH","RESOURCE_TRANSISTOR","RESOURCE_MICROCHIP","RESOURCE_CIRCUIT","RESOURCE_DEVICE","RESOURCE_CELL","RESOURCE_PHLEGM","RESOURCE_TISSUE","RESOURCE_MUSCLE","RESOURCE_ORGANOID","RESOURCE_ORGANISM","RESOURCE_ALLOY","RESOURCE_TUBE","RESOURCE_FIXTURES","RESOURCE_FRAME","RESOURCE_HYDRAULICS","RESOURCE_MACHINE","RESOURCE_CONDENSATE","RESOURCE_CONCENTRATE","RESOURCE_EXTRACT","RESOURCE_SPIRIT","RESOURCE_EMANATION","RESOURCE_ESSENCE","REACTIONS","H","O","L","K","U","Z","G","OH","UH","UO","ZH","ZO","KH","KO","LH","LO","GH","GO","X","UH2O","UHO2","LH2O","LHO2","KH2O","KHO2","ZH2O","ZHO2","GH2O","GHO2","ZK","UL","BOOSTS","work","harvest","XUHO2","build","repair","XLH2O","dismantle","XZH2O","upgradeController","XGH2O","attack","XUH2O","ranged_attack","rangedAttack","rangedMassAttack","XKHO2","heal","rangedHeal","XLHO2","carry","capacity","XKH2O","move","fatigue","XZHO2","tough","damage","XGHO2","REACTION_TIME","PORTAL_UNSTABLE","PORTAL_MIN_TIMEOUT","PORTAL_MAX_TIMEOUT","POWER_BANK_RESPAWN_TIME","INVADERS_ENERGY_GOAL","SYSTEM_USERNAME","SIGN_NOVICE_AREA","SIGN_RESPAWN_AREA","SIGN_PLANNED_AREA","EVENT_ATTACK","EVENT_OBJECT_DESTROYED","EVENT_ATTACK_CONTROLLER","EVENT_BUILD","EVENT_HARVEST","EVENT_HEAL","EVENT_REPAIR","EVENT_RESERVE_CONTROLLER","EVENT_UPGRADE_CONTROLLER","EVENT_EXIT","EVENT_POWER","EVENT_TRANSFER","EVENT_ATTACK_TYPE_MELEE","EVENT_ATTACK_TYPE_RANGED","EVENT_ATTACK_TYPE_RANGED_MASS","EVENT_ATTACK_TYPE_DISMANTLE","EVENT_ATTACK_TYPE_HIT_BACK","EVENT_ATTACK_TYPE_NUKE","EVENT_HEAL_TYPE_MELEE","EVENT_HEAL_TYPE_RANGED","POWER_LEVEL_MULTIPLY","POWER_LEVEL_POW","POWER_CREEP_SPAWN_COOLDOWN","POWER_CREEP_DELETE_COOLDOWN","POWER_CREEP_MAX_LEVEL","POWER_CREEP_LIFE_TIME","POWER_CLASS","OPERATOR","PWR_GENERATE_OPS","PWR_OPERATE_SPAWN","PWR_OPERATE_TOWER","PWR_OPERATE_STORAGE","PWR_OPERATE_LAB","PWR_OPERATE_EXTENSION","PWR_OPERATE_OBSERVER","PWR_OPERATE_TERMINAL","PWR_DISRUPT_SPAWN","PWR_DISRUPT_TOWER","PWR_DISRUPT_SOURCE","PWR_SHIELD","PWR_REGEN_SOURCE","PWR_REGEN_MINERAL","PWR_DISRUPT_TERMINAL","PWR_OPERATE_POWER","PWR_FORTIFY","PWR_OPERATE_CONTROLLER","PWR_OPERATE_FACTORY","EFFECT_INVULNERABILITY","EFFECT_COLLAPSE_TIMER","INVADER_CORE_HITS","INVADER_CORE_CREEP_SPAWN_TIME","INVADER_CORE_EXPAND_TIME","INVADER_CORE_CONTROLLER_POWER","INVADER_CORE_CONTROLLER_DOWNGRADE","STRONGHOLD_RAMPART_HITS","STRONGHOLD_DECAY_TICKS","POWER_INFO","className","level","cooldown","effect","duration","range","ops","energy","period","BODYPARTS_ALL","RESOURCES_ALL","COLORS_ALL","INTERSHARD_RESOURCES","COMMODITIES","amount","components","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","module","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","fromAlpha","toAlpha","toDuration","fromDuration","action","params","type","additionalWhen","once","layer","when","calcs","isOwner","stateExtra","gameData","showEnemyNames","showMyNames","payload","text","$calc","style","align","fill","fontFamily","fontSize","stroke","strokeThickness","anchor","x","y","alpha1","alpha2","alpha3","alpha4","$rel","koef","$random","data","$state","calculations","id","props","func","state","user","player","users","world","options","userOwnerColor","color","playerColorHex","parseInt","substr","VIEW_BOX","effects","gameTime","values","some","power","endTime","decorations","processors","_isDisabled","drawings","method","blendMode","actions","blinking","texture","width","height","alpha","tint","hasEffect","Math","PI","hits","hitsMax","zIndex","radius","lineWidth","progress","progressTotal","disappearProcessor","_","reduce","store","sum","cur","resourceTotal","storeCapacity","resourcesTotal","shouldRun","pivot","downgradeTime","reservation","upgradeBlocked","safeMode","isPowerEnabled","visible","rotation","strokeColor","strokeWidth","$processorParam","calculateAngle","x0","y0","angle","atan2","convertGameXYToWorld","CELL_SIZE","scaleGameToWorld","value","isNpc","isNotNpc","name","username","prevState","prevX","prevY","mathHelper","min","controller","objects","find","i","parentId","spawning","displayName","actionLog","say","showCreepSpeech","isPublic","targetId","COLORS","biomass","metal","mist","silicon","depositType","harvested","max","cooldownTime","flickering","storeCapacityResource","scale","until","SPRITE_SIZE","CONTAINER_SIZE","isLevel","isLevelBlinking","isPowerOperate","FLAG_COLORS","userFlagColor","substring","secondaryColor","showFlagsNames","mineralPath","mineralType","keys","filter","k","first","mineralCapacity","runReaction","reverseReaction","foreground","background","fontWeight","landed","landTime","notLanded","Number","MAX_VALUE","round","blur","resourceTriangle","sqrt","BADGE_GEOMETRY","commander","pivotY","size","executor","operator","ceil","spawned","arc","startAngle","rect1","rect2","energyCapacity","spawnTime","needTime","remainingTime","playerColor","TOTAL_HEIGHT","ENERGY_RECT_FULL_SIZE","result","decayTime","deathTime","shotAnim","energyBarHeight","floor","destroyTime","PassThroughFilter","PIXI","Filter","constructor","super","preprocessors","layers","afterCreate","app","lighting","async","setupExits","textureName","tileX","tileY","flipX","flipY","Assets","load","sprite","TilingSprite","tileScale","renderer","Renderer","BLEND_MODES","ADD","stage","addChild","parentLayer","isDefault","HALF_CELL_SIZE","filters","MULTIPLY","filterArea","screen","ambient","Graphics","beginFill","drawRect","endFill","_overrideBlendMode","on","element","SCREEN","_all","constructedWall","constructionSite","container","creep","deposit","extension","extractor","factory","flag","keeperLair","lab","link","mineral","nuke","nuker","observer","portal","powerBank","powerCreep","powerSpawn","road","source","spawn","storage","terminal","tombstone","tower","rampart","invaderCore","ruin"],"sourceRoot":""}
1
+ {"version":3,"file":"renderer-metadata.js","mappings":"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","sources":["webpack://RENDERER_METADATA/./node_modules/@screeps/common/lib/constants.js","webpack://RENDERER_METADATA/webpack/bootstrap","webpack://RENDERER_METADATA/webpack/runtime/compat get default export","webpack://RENDERER_METADATA/webpack/runtime/define property getters","webpack://RENDERER_METADATA/webpack/runtime/hasOwnProperty shorthand","webpack://RENDERER_METADATA/./src/action-templates/appear.js","webpack://RENDERER_METADATA/./src/action-templates/blinking.js","webpack://RENDERER_METADATA/./src/action-templates/displayName.js","webpack://RENDERER_METADATA/./src/action-templates/flickering.js","webpack://RENDERER_METADATA/./src/objects/_all.metadata.js","webpack://RENDERER_METADATA/./src/objects/constructedWall.metadata.js","webpack://RENDERER_METADATA/./src/objects/constructionSite.metadata.js","webpack://RENDERER_METADATA/./src/calculation-templates/resourceTotal.js","webpack://RENDERER_METADATA/./src/objects/container.metadata.js","webpack://RENDERER_METADATA/./src/objects/controller.metadata.js","webpack://RENDERER_METADATA/../helpers/mathHelper.js","webpack://RENDERER_METADATA/./src/objects/creep.metadata.js","webpack://RENDERER_METADATA/./src/objects/deposit.metadata.js","webpack://RENDERER_METADATA/./src/objects/extension.metadata.js","webpack://RENDERER_METADATA/./src/objects/extractor.metadata.js","webpack://RENDERER_METADATA/./src/objects/factory.metadata.js","webpack://RENDERER_METADATA/./src/objects/flag.metadata.js","webpack://RENDERER_METADATA/./src/objects/lab.metadata.js","webpack://RENDERER_METADATA/./src/objects/link.metadata.js","webpack://RENDERER_METADATA/./src/objects/mineral.metadata.js","webpack://RENDERER_METADATA/./src/objects/nuke.metadata.js","webpack://RENDERER_METADATA/./src/objects/nuker.metadata.js","webpack://RENDERER_METADATA/./src/objects/powerBank.metadata.js","webpack://RENDERER_METADATA/./src/objects/powerCreep.metadata.js","webpack://RENDERER_METADATA/./src/objects/powerSpawn.metadata.js","webpack://RENDERER_METADATA/./src/objects/source.metadata.js","webpack://RENDERER_METADATA/./src/objects/spawn.metadata.js","webpack://RENDERER_METADATA/./src/objects/storage.metadata.js","webpack://RENDERER_METADATA/./src/objects/terminal.metadata.js","webpack://RENDERER_METADATA/./src/objects/tombstone.metadata.js","webpack://RENDERER_METADATA/./src/objects/tower.metadata.js","webpack://RENDERER_METADATA/./src/objects/invaderCore.metadata.js","webpack://RENDERER_METADATA/./src/objects/ruin.metadata.js","webpack://RENDERER_METADATA/./src/index.js","webpack://RENDERER_METADATA/./src/objects/energy.metadata.js","webpack://RENDERER_METADATA/./src/objects/keeperLair.metadata.js","webpack://RENDERER_METADATA/./src/objects/observer.metadata.js","webpack://RENDERER_METADATA/./src/objects/portal.metadata.js","webpack://RENDERER_METADATA/./src/objects/road.metadata.js","webpack://RENDERER_METADATA/./src/objects/rampart.metadata.js"],"sourcesContent":["Object.assign(exports, {\n OK: 0,\n ERR_NOT_OWNER: -1,\n ERR_NO_PATH: -2,\n ERR_NAME_EXISTS: -3,\n ERR_BUSY: -4,\n ERR_NOT_FOUND: -5,\n ERR_NOT_ENOUGH_ENERGY: -6,\n ERR_NOT_ENOUGH_RESOURCES: -6,\n ERR_INVALID_TARGET: -7,\n ERR_FULL: -8,\n ERR_NOT_IN_RANGE: -9,\n ERR_INVALID_ARGS: -10,\n ERR_TIRED: -11,\n ERR_NO_BODYPART: -12,\n ERR_NOT_ENOUGH_EXTENSIONS: -6,\n ERR_RCL_NOT_ENOUGH: -14,\n ERR_GCL_NOT_ENOUGH: -15,\n\n FIND_EXIT_TOP: 1,\n FIND_EXIT_RIGHT: 3,\n FIND_EXIT_BOTTOM: 5,\n FIND_EXIT_LEFT: 7,\n FIND_EXIT: 10,\n FIND_CREEPS: 101,\n FIND_MY_CREEPS: 102,\n FIND_HOSTILE_CREEPS: 103,\n FIND_SOURCES_ACTIVE: 104,\n FIND_SOURCES: 105,\n FIND_DROPPED_RESOURCES: 106,\n FIND_STRUCTURES: 107,\n FIND_MY_STRUCTURES: 108,\n FIND_HOSTILE_STRUCTURES: 109,\n FIND_FLAGS: 110,\n FIND_CONSTRUCTION_SITES: 111,\n FIND_MY_SPAWNS: 112,\n FIND_HOSTILE_SPAWNS: 113,\n FIND_MY_CONSTRUCTION_SITES: 114,\n FIND_HOSTILE_CONSTRUCTION_SITES: 115,\n FIND_MINERALS: 116,\n FIND_NUKES: 117,\n FIND_TOMBSTONES: 118,\n FIND_POWER_CREEPS: 119,\n FIND_MY_POWER_CREEPS: 120,\n FIND_HOSTILE_POWER_CREEPS: 121,\n FIND_DEPOSITS: 122,\n FIND_RUINS: 123,\n\n TOP: 1,\n TOP_RIGHT: 2,\n RIGHT: 3,\n BOTTOM_RIGHT: 4,\n BOTTOM: 5,\n BOTTOM_LEFT: 6,\n LEFT: 7,\n TOP_LEFT: 8,\n\n COLOR_RED: 1,\n COLOR_PURPLE: 2,\n COLOR_BLUE: 3,\n COLOR_CYAN: 4,\n COLOR_GREEN: 5,\n COLOR_YELLOW: 6,\n COLOR_ORANGE: 7,\n COLOR_BROWN: 8,\n COLOR_GREY: 9,\n COLOR_WHITE: 10,\n\n LOOK_CREEPS: \"creep\",\n LOOK_ENERGY: \"energy\",\n LOOK_RESOURCES: \"resource\",\n LOOK_SOURCES: \"source\",\n LOOK_MINERALS: \"mineral\",\n LOOK_DEPOSITS: \"deposit\",\n LOOK_STRUCTURES: \"structure\",\n LOOK_FLAGS: \"flag\",\n LOOK_CONSTRUCTION_SITES: \"constructionSite\",\n LOOK_NUKES: \"nuke\",\n LOOK_TERRAIN: \"terrain\",\n LOOK_TOMBSTONES: \"tombstone\",\n LOOK_POWER_CREEPS: \"powerCreep\",\n LOOK_RUINS: \"ruin\",\n\n OBSTACLE_OBJECT_TYPES: [\"spawn\", \"creep\", \"powerCreep\", \"source\", \"mineral\", \"deposit\", \"controller\", \"constructedWall\", \"extension\", \"link\", \"storage\", \"tower\", \"observer\", \"powerSpawn\", \"powerBank\", \"lab\", \"terminal\", \"nuker\", \"factory\", \"invaderCore\"],\n\n MOVE: \"move\",\n WORK: \"work\",\n CARRY: \"carry\",\n ATTACK: \"attack\",\n RANGED_ATTACK: \"ranged_attack\",\n TOUGH: \"tough\",\n HEAL: \"heal\",\n CLAIM: \"claim\",\n\n BODYPART_COST: {\n \"move\": 50,\n \"work\": 100,\n \"attack\": 80,\n \"carry\": 50,\n \"heal\": 250,\n \"ranged_attack\": 150,\n \"tough\": 10,\n \"claim\": 600\n },\n\n // WORLD_WIDTH and WORLD_HEIGHT constants are deprecated, please use Game.map.getWorldSize() instead\n WORLD_WIDTH: 202,\n WORLD_HEIGHT: 202,\n\n CREEP_LIFE_TIME: 1500,\n CREEP_CLAIM_LIFE_TIME: 600,\n CREEP_CORPSE_RATE: 0.2,\n CREEP_PART_MAX_ENERGY: 125,\n\n CARRY_CAPACITY: 50,\n HARVEST_POWER: 2,\n HARVEST_MINERAL_POWER: 1,\n HARVEST_DEPOSIT_POWER: 1,\n REPAIR_POWER: 100,\n DISMANTLE_POWER: 50,\n BUILD_POWER: 5,\n ATTACK_POWER: 30,\n UPGRADE_CONTROLLER_POWER: 1,\n RANGED_ATTACK_POWER: 10,\n HEAL_POWER: 12,\n RANGED_HEAL_POWER: 4,\n REPAIR_COST: 0.01,\n DISMANTLE_COST: 0.005,\n\n RAMPART_DECAY_AMOUNT: 300,\n RAMPART_DECAY_TIME: 100,\n RAMPART_HITS: 1,\n RAMPART_HITS_MAX: {2: 300000, 3: 1000000, 4: 3000000, 5: 10000000, 6: 30000000, 7: 100000000, 8: 300000000},\n\n ENERGY_REGEN_TIME: 300,\n ENERGY_DECAY: 1000,\n\n SPAWN_HITS: 5000,\n SPAWN_ENERGY_START: 300,\n SPAWN_ENERGY_CAPACITY: 300,\n CREEP_SPAWN_TIME: 3,\n SPAWN_RENEW_RATIO: 1.2,\n\n SOURCE_ENERGY_CAPACITY: 3000,\n SOURCE_ENERGY_NEUTRAL_CAPACITY: 1500,\n SOURCE_ENERGY_KEEPER_CAPACITY: 4000,\n\n WALL_HITS: 1,\n WALL_HITS_MAX: 300000000,\n\n EXTENSION_HITS: 1000,\n EXTENSION_ENERGY_CAPACITY: {0: 50, 1: 50, 2: 50, 3: 50, 4: 50, 5: 50, 6: 50, 7: 100, 8: 200},\n\n ROAD_HITS: 5000,\n ROAD_WEAROUT: 1,\n ROAD_WEAROUT_POWER_CREEP: 100,\n ROAD_DECAY_AMOUNT: 100,\n ROAD_DECAY_TIME: 1000,\n\n LINK_HITS: 1000,\n LINK_HITS_MAX: 1000,\n LINK_CAPACITY: 800,\n LINK_COOLDOWN: 1,\n LINK_LOSS_RATIO: 0.03,\n\n STORAGE_CAPACITY: 1000000,\n STORAGE_HITS: 10000,\n\n STRUCTURE_SPAWN: \"spawn\",\n STRUCTURE_EXTENSION: \"extension\",\n STRUCTURE_ROAD: \"road\",\n STRUCTURE_WALL: \"constructedWall\",\n STRUCTURE_RAMPART: \"rampart\",\n STRUCTURE_KEEPER_LAIR: \"keeperLair\",\n STRUCTURE_PORTAL: \"portal\",\n STRUCTURE_CONTROLLER: \"controller\",\n STRUCTURE_LINK: \"link\",\n STRUCTURE_STORAGE: \"storage\",\n STRUCTURE_TOWER: \"tower\",\n STRUCTURE_OBSERVER: \"observer\",\n STRUCTURE_POWER_BANK: \"powerBank\",\n STRUCTURE_POWER_SPAWN: \"powerSpawn\",\n STRUCTURE_EXTRACTOR: \"extractor\",\n STRUCTURE_LAB: \"lab\",\n STRUCTURE_TERMINAL: \"terminal\",\n STRUCTURE_CONTAINER: \"container\",\n STRUCTURE_NUKER: \"nuker\",\n STRUCTURE_FACTORY: \"factory\",\n STRUCTURE_INVADER_CORE: \"invaderCore\",\n\n CONSTRUCTION_COST: {\n \"spawn\": 15000,\n \"extension\": 3000,\n \"road\": 300,\n \"constructedWall\": 1,\n \"rampart\": 1,\n \"link\": 5000,\n \"storage\": 30000,\n \"tower\": 5000,\n \"observer\": 8000,\n \"powerSpawn\": 100000,\n \"extractor\": 5000,\n \"lab\": 50000,\n \"terminal\": 100000,\n \"container\": 5000,\n \"nuker\": 100000,\n \"factory\": 100000\n },\n CONSTRUCTION_COST_ROAD_SWAMP_RATIO: 5,\n CONSTRUCTION_COST_ROAD_WALL_RATIO: 150,\n\n CONTROLLER_LEVELS: {1: 200, 2: 45000, 3: 135000, 4: 405000, 5: 1215000, 6: 3645000, 7: 10935000},\n CONTROLLER_STRUCTURES: {\n \"spawn\": {0: 0, 1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 2, 8: 3},\n \"extension\": {0: 0, 1: 0, 2: 5, 3: 10, 4: 20, 5: 30, 6: 40, 7: 50, 8: 60},\n \"link\": {1: 0, 2: 0, 3: 0, 4: 0, 5: 2, 6: 3, 7: 4, 8: 6},\n \"road\": {0: 2500, 1: 2500, 2: 2500, 3: 2500, 4: 2500, 5: 2500, 6: 2500, 7: 2500, 8: 2500},\n \"constructedWall\": {1: 0, 2: 2500, 3: 2500, 4: 2500, 5: 2500, 6: 2500, 7: 2500, 8: 2500},\n \"rampart\": {1: 0, 2: 2500, 3: 2500, 4: 2500, 5: 2500, 6: 2500, 7: 2500, 8: 2500},\n \"storage\": {1: 0, 2: 0, 3: 0, 4: 1, 5: 1, 6: 1, 7: 1, 8: 1},\n \"tower\": {1: 0, 2: 0, 3: 1, 4: 1, 5: 2, 6: 2, 7: 3, 8: 6},\n \"observer\": {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 1},\n \"powerSpawn\": {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 1},\n \"extractor\": {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 1, 7: 1, 8: 1},\n \"terminal\": {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 1, 7: 1, 8: 1},\n \"lab\": {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 3, 7: 6, 8: 10},\n \"container\": {0: 5, 1: 5, 2: 5, 3: 5, 4: 5, 5: 5, 6: 5, 7: 5, 8: 5},\n \"nuker\": {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 1},\n \"factory\": {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 1, 8: 1}\n },\n CONTROLLER_DOWNGRADE: {1: 20000, 2: 10000, 3: 20000, 4: 40000, 5: 80000, 6: 120000, 7: 150000, 8: 200000},\n CONTROLLER_DOWNGRADE_RESTORE: 100,\n CONTROLLER_DOWNGRADE_SAFEMODE_THRESHOLD: 5000,\n CONTROLLER_CLAIM_DOWNGRADE: 300,\n CONTROLLER_RESERVE: 1,\n CONTROLLER_RESERVE_MAX: 5000,\n CONTROLLER_MAX_UPGRADE_PER_TICK: 15,\n CONTROLLER_ATTACK_BLOCKED_UPGRADE: 1000,\n CONTROLLER_NUKE_BLOCKED_UPGRADE: 200,\n\n SAFE_MODE_DURATION: 20000,\n SAFE_MODE_COOLDOWN: 50000,\n SAFE_MODE_COST: 1000,\n\n TOWER_HITS: 3000,\n TOWER_CAPACITY: 1000,\n TOWER_ENERGY_COST: 10,\n TOWER_POWER_ATTACK: 600,\n TOWER_POWER_HEAL: 400,\n TOWER_POWER_REPAIR: 800,\n TOWER_OPTIMAL_RANGE: 5,\n TOWER_FALLOFF_RANGE: 20,\n TOWER_FALLOFF: 0.75,\n\n OBSERVER_HITS: 500,\n OBSERVER_RANGE: 10,\n\n POWER_BANK_HITS: 2000000,\n POWER_BANK_CAPACITY_MAX: 5000,\n POWER_BANK_CAPACITY_MIN: 500,\n POWER_BANK_CAPACITY_CRIT: 0.3,\n POWER_BANK_DECAY: 5000,\n POWER_BANK_HIT_BACK: 0.5,\n\n POWER_SPAWN_HITS: 5000,\n POWER_SPAWN_ENERGY_CAPACITY: 5000,\n POWER_SPAWN_POWER_CAPACITY: 100,\n POWER_SPAWN_ENERGY_RATIO: 50,\n\n EXTRACTOR_HITS: 500,\n EXTRACTOR_COOLDOWN: 5,\n\n LAB_HITS: 500,\n LAB_MINERAL_CAPACITY: 3000,\n LAB_ENERGY_CAPACITY: 2000,\n LAB_BOOST_ENERGY: 20,\n LAB_BOOST_MINERAL: 30,\n LAB_COOLDOWN: 10, // not used\n LAB_REACTION_AMOUNT: 5,\n LAB_UNBOOST_ENERGY: 0,\n LAB_UNBOOST_MINERAL: 15,\n\n GCL_POW: 2.4,\n GCL_MULTIPLY: 1000000,\n GCL_NOVICE: 3,\n\n MODE_SIMULATION: null,\n MODE_WORLD: null,\n\n TERRAIN_MASK_WALL: 1,\n TERRAIN_MASK_SWAMP: 2,\n TERRAIN_MASK_LAVA: 4,\n\n MAX_CONSTRUCTION_SITES: 100,\n MAX_CREEP_SIZE: 50,\n\n MINERAL_REGEN_TIME: 50000,\n MINERAL_MIN_AMOUNT: {\n \"H\": 35000,\n \"O\": 35000,\n \"L\": 35000,\n \"K\": 35000,\n \"Z\": 35000,\n \"U\": 35000,\n \"X\": 35000\n },\n MINERAL_RANDOM_FACTOR: 2,\n\n MINERAL_DENSITY: {\n 1: 15000,\n 2: 35000,\n 3: 70000,\n 4: 100000\n },\n MINERAL_DENSITY_PROBABILITY : {\n 1: 0.1,\n 2: 0.5,\n 3: 0.9,\n 4: 1.0\n },\n MINERAL_DENSITY_CHANGE: 0.05,\n\n DENSITY_LOW: 1,\n DENSITY_MODERATE: 2,\n DENSITY_HIGH: 3,\n DENSITY_ULTRA: 4,\n\n DEPOSIT_EXHAUST_MULTIPLY: 0.001,\n DEPOSIT_EXHAUST_POW: 1.2,\n DEPOSIT_DECAY_TIME: 50000,\n\n TERMINAL_CAPACITY: 300000,\n TERMINAL_HITS: 3000,\n TERMINAL_SEND_COST: 0.1,\n TERMINAL_MIN_SEND: 100,\n TERMINAL_COOLDOWN: 10,\n\n CONTAINER_HITS: 250000,\n CONTAINER_CAPACITY: 2000,\n CONTAINER_DECAY: 5000,\n CONTAINER_DECAY_TIME: 100,\n CONTAINER_DECAY_TIME_OWNED: 500,\n\n NUKER_HITS: 1000,\n NUKER_COOLDOWN: 100000,\n NUKER_ENERGY_CAPACITY: 300000,\n NUKER_GHODIUM_CAPACITY: 5000,\n NUKE_LAND_TIME: 50000,\n NUKE_RANGE: 10,\n NUKE_DAMAGE: {\n 0: 10000000,\n 2: 5000000\n },\n\n FACTORY_HITS: 1000,\n FACTORY_CAPACITY: 50000,\n\n TOMBSTONE_DECAY_PER_PART: 5,\n TOMBSTONE_DECAY_POWER_CREEP: 500,\n\n RUIN_DECAY: 500,\n RUIN_DECAY_STRUCTURES: {\n 'powerBank': 10\n },\n\n PORTAL_DECAY: 30000,\n\n ORDER_SELL: \"sell\",\n ORDER_BUY: \"buy\",\n\n MARKET_FEE: 0.05,\n\n MARKET_MAX_ORDERS: 300,\n MARKET_ORDER_LIFE_TIME: 1000*60*60*24*30,\n\n FLAGS_LIMIT: 10000,\n\n SUBSCRIPTION_TOKEN: \"token\",\n CPU_UNLOCK: \"cpuUnlock\",\n PIXEL: \"pixel\",\n ACCESS_KEY: \"accessKey\",\n\n PIXEL_CPU_COST: 10000,\n\n RESOURCE_ENERGY: \"energy\",\n RESOURCE_POWER: \"power\",\n\n RESOURCE_HYDROGEN: \"H\",\n RESOURCE_OXYGEN: \"O\",\n RESOURCE_UTRIUM: \"U\",\n RESOURCE_LEMERGIUM: \"L\",\n RESOURCE_KEANIUM: \"K\",\n RESOURCE_ZYNTHIUM: \"Z\",\n RESOURCE_CATALYST: \"X\",\n RESOURCE_GHODIUM: \"G\",\n\n RESOURCE_SILICON: 'silicon',\n RESOURCE_METAL: 'metal',\n RESOURCE_BIOMASS: 'biomass',\n RESOURCE_MIST: 'mist',\n\n RESOURCE_HYDROXIDE: \"OH\",\n RESOURCE_ZYNTHIUM_KEANITE: \"ZK\",\n RESOURCE_UTRIUM_LEMERGITE: \"UL\",\n\n RESOURCE_UTRIUM_HYDRIDE: \"UH\",\n RESOURCE_UTRIUM_OXIDE: \"UO\",\n RESOURCE_KEANIUM_HYDRIDE: \"KH\",\n RESOURCE_KEANIUM_OXIDE: \"KO\",\n RESOURCE_LEMERGIUM_HYDRIDE: \"LH\",\n RESOURCE_LEMERGIUM_OXIDE: \"LO\",\n RESOURCE_ZYNTHIUM_HYDRIDE: \"ZH\",\n RESOURCE_ZYNTHIUM_OXIDE: \"ZO\",\n RESOURCE_GHODIUM_HYDRIDE: \"GH\",\n RESOURCE_GHODIUM_OXIDE: \"GO\",\n\n RESOURCE_UTRIUM_ACID: \"UH2O\",\n RESOURCE_UTRIUM_ALKALIDE: \"UHO2\",\n RESOURCE_KEANIUM_ACID: \"KH2O\",\n RESOURCE_KEANIUM_ALKALIDE: \"KHO2\",\n RESOURCE_LEMERGIUM_ACID: \"LH2O\",\n RESOURCE_LEMERGIUM_ALKALIDE: \"LHO2\",\n RESOURCE_ZYNTHIUM_ACID: \"ZH2O\",\n RESOURCE_ZYNTHIUM_ALKALIDE: \"ZHO2\",\n RESOURCE_GHODIUM_ACID: \"GH2O\",\n RESOURCE_GHODIUM_ALKALIDE: \"GHO2\",\n\n RESOURCE_CATALYZED_UTRIUM_ACID: \"XUH2O\",\n RESOURCE_CATALYZED_UTRIUM_ALKALIDE: \"XUHO2\",\n RESOURCE_CATALYZED_KEANIUM_ACID: \"XKH2O\",\n RESOURCE_CATALYZED_KEANIUM_ALKALIDE: \"XKHO2\",\n RESOURCE_CATALYZED_LEMERGIUM_ACID: \"XLH2O\",\n RESOURCE_CATALYZED_LEMERGIUM_ALKALIDE: \"XLHO2\",\n RESOURCE_CATALYZED_ZYNTHIUM_ACID: \"XZH2O\",\n RESOURCE_CATALYZED_ZYNTHIUM_ALKALIDE: \"XZHO2\",\n RESOURCE_CATALYZED_GHODIUM_ACID: \"XGH2O\",\n RESOURCE_CATALYZED_GHODIUM_ALKALIDE: \"XGHO2\",\n\n RESOURCE_OPS: \"ops\",\n\n RESOURCE_UTRIUM_BAR: 'utrium_bar',\n RESOURCE_LEMERGIUM_BAR: 'lemergium_bar',\n RESOURCE_ZYNTHIUM_BAR: 'zynthium_bar',\n RESOURCE_KEANIUM_BAR: 'keanium_bar',\n RESOURCE_GHODIUM_MELT: 'ghodium_melt',\n RESOURCE_OXIDANT: 'oxidant',\n RESOURCE_REDUCTANT: 'reductant',\n RESOURCE_PURIFIER: 'purifier',\n RESOURCE_BATTERY: 'battery',\n\n RESOURCE_COMPOSITE: 'composite',\n RESOURCE_CRYSTAL: 'crystal',\n RESOURCE_LIQUID: 'liquid',\n\n RESOURCE_WIRE: 'wire',\n RESOURCE_SWITCH: 'switch',\n RESOURCE_TRANSISTOR: 'transistor',\n RESOURCE_MICROCHIP: 'microchip',\n RESOURCE_CIRCUIT: 'circuit',\n RESOURCE_DEVICE: 'device',\n\n RESOURCE_CELL: 'cell',\n RESOURCE_PHLEGM: 'phlegm',\n RESOURCE_TISSUE: 'tissue',\n RESOURCE_MUSCLE: 'muscle',\n RESOURCE_ORGANOID: 'organoid',\n RESOURCE_ORGANISM: 'organism',\n\n RESOURCE_ALLOY: 'alloy',\n RESOURCE_TUBE: 'tube',\n RESOURCE_FIXTURES: 'fixtures',\n RESOURCE_FRAME: 'frame',\n RESOURCE_HYDRAULICS: 'hydraulics',\n RESOURCE_MACHINE: 'machine',\n\n RESOURCE_CONDENSATE: 'condensate',\n RESOURCE_CONCENTRATE: 'concentrate',\n RESOURCE_EXTRACT: 'extract',\n RESOURCE_SPIRIT: 'spirit',\n RESOURCE_EMANATION: 'emanation',\n RESOURCE_ESSENCE: 'essence',\n\n REACTIONS: {\n H: {\n O: \"OH\",\n L: \"LH\",\n K: \"KH\",\n U: \"UH\",\n Z: \"ZH\",\n G: \"GH\"\n },\n O: {\n H: \"OH\",\n L: \"LO\",\n K: \"KO\",\n U: \"UO\",\n Z: \"ZO\",\n G: \"GO\"\n },\n Z: {\n K: \"ZK\",\n H: \"ZH\",\n O: \"ZO\"\n },\n L: {\n U: \"UL\",\n H: \"LH\",\n O: \"LO\"\n },\n K: {\n Z: \"ZK\",\n H: \"KH\",\n O: \"KO\"\n },\n G: {\n H: \"GH\",\n O: \"GO\"\n },\n U: {\n L: \"UL\",\n H: \"UH\",\n O: \"UO\"\n },\n OH: {\n UH: \"UH2O\",\n UO: \"UHO2\",\n ZH: \"ZH2O\",\n ZO: \"ZHO2\",\n KH: \"KH2O\",\n KO: \"KHO2\",\n LH: \"LH2O\",\n LO: \"LHO2\",\n GH: \"GH2O\",\n GO: \"GHO2\"\n },\n X: {\n UH2O: \"XUH2O\",\n UHO2: \"XUHO2\",\n LH2O: \"XLH2O\",\n LHO2: \"XLHO2\",\n KH2O: \"XKH2O\",\n KHO2: \"XKHO2\",\n ZH2O: \"XZH2O\",\n ZHO2: \"XZHO2\",\n GH2O: \"XGH2O\",\n GHO2: \"XGHO2\"\n },\n ZK: {\n UL: \"G\"\n },\n UL: {\n ZK: \"G\"\n },\n LH: {\n OH: \"LH2O\"\n },\n ZH: {\n OH: \"ZH2O\"\n },\n GH: {\n OH: \"GH2O\"\n },\n KH: {\n OH: \"KH2O\"\n },\n UH: {\n OH: \"UH2O\"\n },\n LO: {\n OH: \"LHO2\"\n },\n ZO: {\n OH: \"ZHO2\"\n },\n KO: {\n OH: \"KHO2\"\n },\n UO: {\n OH: \"UHO2\"\n },\n GO: {\n OH: \"GHO2\"\n },\n LH2O: {\n X: \"XLH2O\"\n },\n KH2O: {\n X: \"XKH2O\"\n },\n ZH2O: {\n X: \"XZH2O\"\n },\n UH2O: {\n X: \"XUH2O\"\n },\n GH2O: {\n X: \"XGH2O\"\n },\n LHO2: {\n X: \"XLHO2\"\n },\n UHO2: {\n X: \"XUHO2\"\n },\n KHO2: {\n X: \"XKHO2\"\n },\n ZHO2: {\n X: \"XZHO2\"\n },\n GHO2: {\n X: \"XGHO2\"\n }\n },\n\n BOOSTS: {\n work: {\n UO: {\n harvest: 3\n },\n UHO2: {\n harvest: 5\n },\n XUHO2: {\n harvest: 7\n },\n LH: {\n build: 1.5,\n repair: 1.5\n },\n LH2O: {\n build: 1.8,\n repair: 1.8\n },\n XLH2O: {\n build: 2,\n repair: 2\n },\n ZH: {\n dismantle: 2\n },\n ZH2O: {\n dismantle: 3\n },\n XZH2O: {\n dismantle: 4\n },\n GH: {\n upgradeController: 1.5\n },\n GH2O: {\n upgradeController: 1.8\n },\n XGH2O: {\n upgradeController: 2\n }\n },\n attack: {\n UH: {\n attack: 2\n },\n UH2O: {\n attack: 3\n },\n XUH2O: {\n attack: 4\n }\n },\n ranged_attack: {\n KO: {\n rangedAttack: 2,\n rangedMassAttack: 2\n },\n KHO2: {\n rangedAttack: 3,\n rangedMassAttack: 3\n },\n XKHO2: {\n rangedAttack: 4,\n rangedMassAttack: 4\n }\n },\n heal: {\n LO: {\n heal: 2,\n rangedHeal: 2\n },\n LHO2: {\n heal: 3,\n rangedHeal: 3\n },\n XLHO2: {\n heal: 4,\n rangedHeal: 4\n }\n },\n carry: {\n KH: {\n capacity: 2\n },\n KH2O: {\n capacity: 3\n },\n XKH2O: {\n capacity: 4\n }\n },\n move: {\n ZO: {\n fatigue: 2\n },\n ZHO2: {\n fatigue: 3\n },\n XZHO2: {\n fatigue: 4\n }\n },\n tough: {\n GO: {\n damage: .7\n },\n GHO2: {\n damage: .5\n },\n XGHO2: {\n damage: .3\n }\n }\n },\n\n REACTION_TIME: {\n OH: 20,\n ZK: 5,\n UL: 5,\n G: 5,\n UH: 10,\n UH2O: 5,\n XUH2O: 60,\n UO: 10,\n UHO2: 5,\n XUHO2: 60,\n KH: 10,\n KH2O: 5,\n XKH2O: 60,\n KO: 10,\n KHO2: 5,\n XKHO2: 60,\n LH: 15,\n LH2O: 10,\n XLH2O: 65,\n LO: 10,\n LHO2: 5,\n XLHO2: 60,\n ZH: 20,\n ZH2O: 40,\n XZH2O: 160,\n ZO: 10,\n ZHO2: 5,\n XZHO2: 60,\n GH: 10,\n GH2O: 15,\n XGH2O: 80,\n GO: 10,\n GHO2: 30,\n XGHO2: 150,\n },\n\n PORTAL_UNSTABLE: 10*24*3600*1000,\n PORTAL_MIN_TIMEOUT: 12*24*3600*1000,\n PORTAL_MAX_TIMEOUT: 22*24*3600*1000,\n\n POWER_BANK_RESPAWN_TIME: 50000,\n\n INVADERS_ENERGY_GOAL: 100000,\n\n SYSTEM_USERNAME: 'Screeps',\n\n // SIGN_NOVICE_AREA and SIGN_RESPAWN_AREA constants are deprecated, please use SIGN_PLANNED_AREA instead\n SIGN_NOVICE_AREA: 'A new Novice or Respawn Area is being planned somewhere in this sector. Please make sure all important rooms are reserved.',\n SIGN_RESPAWN_AREA: 'A new Novice or Respawn Area is being planned somewhere in this sector. Please make sure all important rooms are reserved.',\n SIGN_PLANNED_AREA: 'A new Novice or Respawn Area is being planned somewhere in this sector. Please make sure all important rooms are reserved.',\n\n EVENT_ATTACK: 1,\n EVENT_OBJECT_DESTROYED: 2,\n EVENT_ATTACK_CONTROLLER: 3,\n EVENT_BUILD: 4,\n EVENT_HARVEST: 5,\n EVENT_HEAL: 6,\n EVENT_REPAIR: 7,\n EVENT_RESERVE_CONTROLLER: 8,\n EVENT_UPGRADE_CONTROLLER: 9,\n EVENT_EXIT: 10,\n EVENT_POWER: 11,\n EVENT_TRANSFER: 12,\n\n EVENT_ATTACK_TYPE_MELEE: 1,\n EVENT_ATTACK_TYPE_RANGED: 2,\n EVENT_ATTACK_TYPE_RANGED_MASS: 3,\n EVENT_ATTACK_TYPE_DISMANTLE: 4,\n EVENT_ATTACK_TYPE_HIT_BACK: 5,\n EVENT_ATTACK_TYPE_NUKE: 6,\n\n EVENT_HEAL_TYPE_MELEE: 1,\n EVENT_HEAL_TYPE_RANGED: 2,\n\n POWER_LEVEL_MULTIPLY: 1000,\n POWER_LEVEL_POW: 2,\n POWER_CREEP_SPAWN_COOLDOWN: 8*3600*1000,\n POWER_CREEP_DELETE_COOLDOWN: 24*3600*1000,\n POWER_CREEP_MAX_LEVEL: 25,\n POWER_CREEP_LIFE_TIME: 5000,\n\n POWER_CLASS: {\n OPERATOR: 'operator'\n },\n\n PWR_GENERATE_OPS: 1,\n PWR_OPERATE_SPAWN: 2,\n PWR_OPERATE_TOWER: 3,\n PWR_OPERATE_STORAGE: 4,\n PWR_OPERATE_LAB: 5,\n PWR_OPERATE_EXTENSION: 6,\n PWR_OPERATE_OBSERVER: 7,\n PWR_OPERATE_TERMINAL: 8,\n PWR_DISRUPT_SPAWN: 9,\n PWR_DISRUPT_TOWER: 10,\n PWR_DISRUPT_SOURCE: 11,\n PWR_SHIELD: 12,\n PWR_REGEN_SOURCE: 13,\n PWR_REGEN_MINERAL: 14,\n PWR_DISRUPT_TERMINAL: 15,\n PWR_OPERATE_POWER: 16,\n PWR_FORTIFY: 17,\n PWR_OPERATE_CONTROLLER: 18,\n PWR_OPERATE_FACTORY: 19,\n\n EFFECT_INVULNERABILITY: 1001,\n EFFECT_COLLAPSE_TIMER: 1002,\n\n INVADER_CORE_HITS: 100000,\n INVADER_CORE_CREEP_SPAWN_TIME: {\n 0: 0, 1: 0, 2: 6, 3: 3, 4: 2, 5: 1\n },\n INVADER_CORE_EXPAND_TIME: { 1: 4000, 2: 3500, 3: 3000, 4: 2500, 5: 2000 },\n INVADER_CORE_CONTROLLER_POWER: 2,\n INVADER_CORE_CONTROLLER_DOWNGRADE: 5000,\n STRONGHOLD_RAMPART_HITS: { 0: 0, 1: 100000, 2: 200000, 3: 500000, 4: 1000000, 5: 2000000 },\n STRONGHOLD_DECAY_TICKS: 75000\n});\n\nObject.assign(exports, {\n POWER_INFO: {\n [exports.PWR_GENERATE_OPS]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 50,\n effect: [1, 2, 4, 6, 8]\n },\n [exports.PWR_OPERATE_SPAWN]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 300,\n duration: 1000,\n range: 3,\n ops: 100,\n effect: [0.9, 0.7, 0.5, 0.35, 0.2]\n },\n [exports.PWR_OPERATE_TOWER]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 10,\n duration: 100,\n range: 3,\n ops: 10,\n effect: [1.1, 1.2, 1.3, 1.4, 1.5]\n },\n [exports.PWR_OPERATE_STORAGE]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 800,\n duration: 1000,\n range: 3,\n ops: 100,\n effect: [500000,1000000,2000000,4000000,7000000]\n },\n [exports.PWR_OPERATE_LAB]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 50,\n duration: 1000,\n range: 3,\n ops: 10,\n effect: [2,4,6,8,10]\n },\n [exports.PWR_OPERATE_EXTENSION]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 50,\n range: 3,\n ops: 2,\n effect: [0.2, 0.4, 0.6, 0.8, 1.0]\n },\n [exports.PWR_OPERATE_OBSERVER]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 400,\n duration: [200,400,600,800,1000],\n range: 3,\n ops: 10,\n },\n [exports.PWR_OPERATE_TERMINAL]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 500,\n duration: 1000,\n range: 3,\n ops: 100,\n effect: [0.9, 0.8, 0.7, 0.6, 0.5]\n },\n [exports.PWR_DISRUPT_SPAWN]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 5,\n range: 20,\n ops: 10,\n duration: [1,2,3,4,5]\n },\n [exports.PWR_DISRUPT_TOWER]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 0,\n duration: 5,\n range: 50,\n ops: 10,\n effect: [0.9, 0.8, 0.7, 0.6, 0.5],\n },\n [exports.PWR_DISRUPT_SOURCE]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 100,\n range: 3,\n ops: 100,\n duration: [100, 200, 300, 400, 500]\n },\n [exports.PWR_SHIELD]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n effect: [5000, 10000, 15000, 20000, 25000],\n duration: 50,\n cooldown: 20,\n energy: 100,\n },\n [exports.PWR_REGEN_SOURCE]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [10, 11, 12, 14, 22],\n cooldown: 100,\n duration: 300,\n range: 3,\n effect: [50,100,150,200,250],\n period: 15\n },\n [exports.PWR_REGEN_MINERAL]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [10, 11, 12, 14, 22],\n cooldown: 100,\n duration: 100,\n range: 3,\n effect: [2,4,6,8,10],\n period: 10\n },\n [exports.PWR_DISRUPT_TERMINAL]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [20, 21, 22, 23, 24],\n cooldown: 8,\n duration: 10,\n range: 50,\n ops: [50,40,30,20,10]\n\n },\n [exports.PWR_FORTIFY]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 5,\n range: 3,\n ops: 5,\n duration: [1, 2, 3, 4, 5]\n },\n [exports.PWR_OPERATE_POWER]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [10, 11, 12, 14, 22],\n cooldown: 800,\n range: 3,\n duration: 1000,\n ops: 200,\n effect: [1, 2, 3, 4, 5]\n },\n [exports.PWR_OPERATE_CONTROLLER]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [20, 21, 22, 23, 24],\n cooldown: 800,\n range: 3,\n duration: 1000,\n ops: 200,\n effect: [10, 20, 30, 40, 50]\n },\n [exports.PWR_OPERATE_FACTORY]: {\n className: exports.POWER_CLASS.OPERATOR,\n level: [0, 2, 7, 14, 22],\n cooldown: 800,\n range: 3,\n duration: 1000,\n ops: 100\n },\n },\n\n BODYPARTS_ALL: [\n exports.MOVE,\n exports.WORK,\n exports.CARRY,\n exports.ATTACK,\n exports.RANGED_ATTACK,\n exports.TOUGH,\n exports.HEAL,\n exports.CLAIM\n ],\n RESOURCES_ALL: [\n exports.RESOURCE_ENERGY,\n exports.RESOURCE_POWER,\n\n exports.RESOURCE_HYDROGEN,\n exports.RESOURCE_OXYGEN,\n exports.RESOURCE_UTRIUM,\n exports.RESOURCE_KEANIUM,\n exports.RESOURCE_LEMERGIUM,\n exports.RESOURCE_ZYNTHIUM,\n exports.RESOURCE_CATALYST,\n exports.RESOURCE_GHODIUM,\n\n exports.RESOURCE_HYDROXIDE,\n exports.RESOURCE_ZYNTHIUM_KEANITE,\n exports.RESOURCE_UTRIUM_LEMERGITE,\n\n exports.RESOURCE_UTRIUM_HYDRIDE,\n exports.RESOURCE_UTRIUM_OXIDE,\n exports.RESOURCE_KEANIUM_HYDRIDE,\n exports.RESOURCE_KEANIUM_OXIDE,\n exports.RESOURCE_LEMERGIUM_HYDRIDE,\n exports.RESOURCE_LEMERGIUM_OXIDE,\n exports.RESOURCE_ZYNTHIUM_HYDRIDE,\n exports.RESOURCE_ZYNTHIUM_OXIDE,\n exports.RESOURCE_GHODIUM_HYDRIDE,\n exports.RESOURCE_GHODIUM_OXIDE,\n\n exports.RESOURCE_UTRIUM_ACID,\n exports.RESOURCE_UTRIUM_ALKALIDE,\n exports.RESOURCE_KEANIUM_ACID,\n exports.RESOURCE_KEANIUM_ALKALIDE,\n exports.RESOURCE_LEMERGIUM_ACID,\n exports.RESOURCE_LEMERGIUM_ALKALIDE,\n exports.RESOURCE_ZYNTHIUM_ACID,\n exports.RESOURCE_ZYNTHIUM_ALKALIDE,\n exports.RESOURCE_GHODIUM_ACID,\n exports.RESOURCE_GHODIUM_ALKALIDE,\n\n exports.RESOURCE_CATALYZED_UTRIUM_ACID,\n exports.RESOURCE_CATALYZED_UTRIUM_ALKALIDE,\n exports.RESOURCE_CATALYZED_KEANIUM_ACID,\n exports.RESOURCE_CATALYZED_KEANIUM_ALKALIDE,\n exports.RESOURCE_CATALYZED_LEMERGIUM_ACID,\n exports.RESOURCE_CATALYZED_LEMERGIUM_ALKALIDE,\n exports.RESOURCE_CATALYZED_ZYNTHIUM_ACID,\n exports.RESOURCE_CATALYZED_ZYNTHIUM_ALKALIDE,\n exports.RESOURCE_CATALYZED_GHODIUM_ACID,\n exports.RESOURCE_CATALYZED_GHODIUM_ALKALIDE,\n\n exports.RESOURCE_OPS,\n\n exports.RESOURCE_SILICON,\n exports.RESOURCE_METAL,\n exports.RESOURCE_BIOMASS,\n exports.RESOURCE_MIST,\n\n exports.RESOURCE_UTRIUM_BAR,\n exports.RESOURCE_LEMERGIUM_BAR,\n exports.RESOURCE_ZYNTHIUM_BAR,\n exports.RESOURCE_KEANIUM_BAR,\n exports.RESOURCE_GHODIUM_MELT,\n exports.RESOURCE_OXIDANT,\n exports.RESOURCE_REDUCTANT,\n exports.RESOURCE_PURIFIER,\n exports.RESOURCE_BATTERY,\n exports.RESOURCE_COMPOSITE,\n exports.RESOURCE_CRYSTAL,\n exports.RESOURCE_LIQUID,\n\n exports.RESOURCE_WIRE,\n exports.RESOURCE_SWITCH,\n exports.RESOURCE_TRANSISTOR,\n exports.RESOURCE_MICROCHIP,\n exports.RESOURCE_CIRCUIT,\n exports.RESOURCE_DEVICE,\n\n exports.RESOURCE_CELL,\n exports.RESOURCE_PHLEGM,\n exports.RESOURCE_TISSUE,\n exports.RESOURCE_MUSCLE,\n exports.RESOURCE_ORGANOID,\n exports.RESOURCE_ORGANISM,\n\n exports.RESOURCE_ALLOY,\n exports.RESOURCE_TUBE,\n exports.RESOURCE_FIXTURES,\n exports.RESOURCE_FRAME,\n exports.RESOURCE_HYDRAULICS,\n exports.RESOURCE_MACHINE,\n\n exports.RESOURCE_CONDENSATE,\n exports.RESOURCE_CONCENTRATE,\n exports.RESOURCE_EXTRACT,\n exports.RESOURCE_SPIRIT,\n exports.RESOURCE_EMANATION,\n exports.RESOURCE_ESSENCE\n ],\n COLORS_ALL: [\n exports.COLOR_RED,\n exports.COLOR_PURPLE,\n exports.COLOR_BLUE,\n exports.COLOR_CYAN,\n exports.COLOR_GREEN,\n exports.COLOR_YELLOW,\n exports.COLOR_ORANGE,\n exports.COLOR_BROWN,\n exports.COLOR_GREY,\n exports.COLOR_WHITE\n ],\n INTERSHARD_RESOURCES: [\n exports.SUBSCRIPTION_TOKEN,\n exports.CPU_UNLOCK,\n exports.PIXEL,\n exports.ACCESS_KEY\n ],\n COMMODITIES: {\n [exports.RESOURCE_UTRIUM_BAR]: {\n amount: 100,\n cooldown: 20,\n components: {\n [exports.RESOURCE_UTRIUM]: 500,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_UTRIUM]: {\n amount: 500,\n cooldown: 20,\n components: {\n [exports.RESOURCE_UTRIUM_BAR]: 100,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_LEMERGIUM_BAR]: {\n amount: 100,\n cooldown: 20,\n components: {\n [exports.RESOURCE_LEMERGIUM]: 500,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_LEMERGIUM]: {\n amount: 500,\n cooldown: 20,\n components: {\n [exports.RESOURCE_LEMERGIUM_BAR]: 100,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_ZYNTHIUM_BAR]: {\n amount: 100,\n cooldown: 20,\n components: {\n [exports.RESOURCE_ZYNTHIUM]: 500,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_ZYNTHIUM]: {\n amount: 500,\n cooldown: 20,\n components: {\n [exports.RESOURCE_ZYNTHIUM_BAR]: 100,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_KEANIUM_BAR]: {\n amount: 100,\n cooldown: 20,\n components: {\n [exports.RESOURCE_KEANIUM]: 500,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_KEANIUM]: {\n amount: 500,\n cooldown: 20,\n components: {\n [exports.RESOURCE_KEANIUM_BAR]: 100,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_GHODIUM_MELT]: {\n amount: 100,\n cooldown: 20,\n components: {\n [exports.RESOURCE_GHODIUM]: 500,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_GHODIUM]: {\n amount: 500,\n cooldown: 20,\n components: {\n [exports.RESOURCE_GHODIUM_MELT]: 100,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_OXIDANT]: {\n amount: 100,\n cooldown: 20,\n components: {\n [exports.RESOURCE_OXYGEN]: 500,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_OXYGEN]: {\n amount: 500,\n cooldown: 20,\n components: {\n [exports.RESOURCE_OXIDANT]: 100,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_REDUCTANT]: {\n amount: 100,\n cooldown: 20,\n components: {\n [exports.RESOURCE_HYDROGEN]: 500,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_HYDROGEN]: {\n amount: 500,\n cooldown: 20,\n components: {\n [exports.RESOURCE_REDUCTANT]: 100,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_PURIFIER]: {\n amount: 100,\n cooldown: 20,\n components: {\n [exports.RESOURCE_CATALYST]: 500,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_CATALYST]: {\n amount: 500,\n cooldown: 20,\n components: {\n [exports.RESOURCE_PURIFIER]: 100,\n [exports.RESOURCE_ENERGY]: 200\n }\n },\n [exports.RESOURCE_BATTERY]: {\n amount: 50,\n cooldown: 10,\n components: {\n [exports.RESOURCE_ENERGY]: 600\n }\n },\n [exports.RESOURCE_ENERGY]: {\n amount: 500,\n cooldown: 10,\n components: {\n [exports.RESOURCE_BATTERY]: 50\n }\n },\n [exports.RESOURCE_COMPOSITE]: {\n level: 1,\n amount: 20,\n cooldown: 50,\n components: {\n [exports.RESOURCE_UTRIUM_BAR]: 20,\n [exports.RESOURCE_ZYNTHIUM_BAR]: 20,\n [exports.RESOURCE_ENERGY]: 20\n }\n },\n [exports.RESOURCE_CRYSTAL]: {\n level: 2,\n amount: 6,\n cooldown: 21,\n components: {\n [exports.RESOURCE_LEMERGIUM_BAR]: 6,\n [exports.RESOURCE_KEANIUM_BAR]: 6,\n [exports.RESOURCE_PURIFIER]: 6,\n [exports.RESOURCE_ENERGY]: 45\n }\n },\n [exports.RESOURCE_LIQUID]: {\n level: 3,\n amount: 12,\n cooldown: 60,\n components: {\n [exports.RESOURCE_OXIDANT]: 12,\n [exports.RESOURCE_REDUCTANT]: 12,\n [exports.RESOURCE_GHODIUM_MELT]: 12,\n [exports.RESOURCE_ENERGY]: 90\n }\n },\n\n [exports.RESOURCE_WIRE]: {\n amount: 20,\n cooldown: 8,\n components: {\n [exports.RESOURCE_UTRIUM_BAR]: 20,\n [exports.RESOURCE_SILICON]: 100,\n [exports.RESOURCE_ENERGY]: 40\n }\n },\n [exports.RESOURCE_SWITCH]: {\n level: 1,\n amount: 5,\n cooldown: 70,\n components: {\n [exports.RESOURCE_WIRE]: 40,\n [exports.RESOURCE_OXIDANT]: 95,\n [exports.RESOURCE_UTRIUM_BAR]: 35,\n [exports.RESOURCE_ENERGY]: 20\n }\n },\n [exports.RESOURCE_TRANSISTOR]: {\n level: 2,\n amount: 1,\n cooldown: 59,\n components: {\n [exports.RESOURCE_SWITCH]: 4,\n [exports.RESOURCE_WIRE]: 15,\n [exports.RESOURCE_REDUCTANT]: 85,\n [exports.RESOURCE_ENERGY]: 8\n }\n },\n [exports.RESOURCE_MICROCHIP]: {\n level: 3,\n amount: 1,\n cooldown: 250,\n components: {\n [exports.RESOURCE_TRANSISTOR]: 2,\n [exports.RESOURCE_COMPOSITE]: 50,\n [exports.RESOURCE_WIRE]: 117,\n [exports.RESOURCE_PURIFIER]: 25,\n [exports.RESOURCE_ENERGY]: 16\n }\n },\n [exports.RESOURCE_CIRCUIT]: {\n level: 4,\n amount: 1,\n cooldown: 800,\n components: {\n [exports.RESOURCE_MICROCHIP]: 1,\n [exports.RESOURCE_TRANSISTOR]: 5,\n [exports.RESOURCE_SWITCH]: 4,\n [exports.RESOURCE_OXIDANT]: 115,\n [exports.RESOURCE_ENERGY]: 32\n }\n },\n [exports.RESOURCE_DEVICE]: {\n level: 5,\n amount: 1,\n cooldown: 600,\n components: {\n [exports.RESOURCE_CIRCUIT]: 1,\n [exports.RESOURCE_MICROCHIP]: 3,\n [exports.RESOURCE_CRYSTAL]: 110,\n [exports.RESOURCE_GHODIUM_MELT]: 150,\n [exports.RESOURCE_ENERGY]: 64\n }\n },\n\n [exports.RESOURCE_CELL]: {\n amount: 20,\n cooldown: 8,\n components: {\n [exports.RESOURCE_LEMERGIUM_BAR]: 20,\n [exports.RESOURCE_BIOMASS]: 100,\n [exports.RESOURCE_ENERGY]: 40\n }\n },\n [exports.RESOURCE_PHLEGM]: {\n level: 1,\n amount: 2,\n cooldown: 35,\n components: {\n [exports.RESOURCE_CELL]: 20,\n [exports.RESOURCE_OXIDANT]: 36,\n [exports.RESOURCE_LEMERGIUM_BAR]: 16,\n [exports.RESOURCE_ENERGY]: 8\n }\n },\n [exports.RESOURCE_TISSUE]: {\n level: 2,\n amount: 2,\n cooldown: 164,\n components: {\n [exports.RESOURCE_PHLEGM]: 10,\n [exports.RESOURCE_CELL]: 10,\n [exports.RESOURCE_REDUCTANT]: 110,\n [exports.RESOURCE_ENERGY]: 16\n }\n },\n [exports.RESOURCE_MUSCLE]: {\n level: 3,\n amount: 1,\n cooldown: 250,\n components: {\n [exports.RESOURCE_TISSUE]: 3,\n [exports.RESOURCE_PHLEGM]: 3,\n [exports.RESOURCE_ZYNTHIUM_BAR]: 50,\n [exports.RESOURCE_REDUCTANT]: 50,\n [exports.RESOURCE_ENERGY]: 16\n }\n },\n [exports.RESOURCE_ORGANOID]: {\n level: 4,\n amount: 1,\n cooldown: 800,\n components: {\n [exports.RESOURCE_MUSCLE]: 1,\n [exports.RESOURCE_TISSUE]: 5,\n [exports.RESOURCE_PURIFIER]: 208,\n [exports.RESOURCE_OXIDANT]: 256,\n [exports.RESOURCE_ENERGY]: 32\n }\n },\n [exports.RESOURCE_ORGANISM]: {\n level: 5,\n amount: 1,\n cooldown: 600,\n components: {\n [exports.RESOURCE_ORGANOID]: 1,\n [exports.RESOURCE_LIQUID]: 150,\n [exports.RESOURCE_TISSUE]: 6,\n [exports.RESOURCE_CELL]: 310,\n [exports.RESOURCE_ENERGY]: 64\n }\n },\n\n [exports.RESOURCE_ALLOY]: {\n amount: 20,\n cooldown: 8,\n components: {\n [exports.RESOURCE_ZYNTHIUM_BAR]: 20,\n [exports.RESOURCE_METAL]: 100,\n [exports.RESOURCE_ENERGY]: 40\n }\n },\n [exports.RESOURCE_TUBE]: {\n level: 1,\n amount: 2,\n cooldown: 45,\n components: {\n [exports.RESOURCE_ALLOY]: 40,\n [exports.RESOURCE_ZYNTHIUM_BAR]: 16,\n [exports.RESOURCE_ENERGY]: 8\n }\n },\n [exports.RESOURCE_FIXTURES]: {\n level: 2,\n amount: 1,\n cooldown: 115,\n components: {\n [exports.RESOURCE_COMPOSITE]: 20,\n [exports.RESOURCE_ALLOY]: 41,\n [exports.RESOURCE_OXIDANT]: 161,\n [exports.RESOURCE_ENERGY]: 8\n }\n },\n [exports.RESOURCE_FRAME]: {\n level: 3,\n amount: 1,\n cooldown: 125,\n components: {\n [exports.RESOURCE_FIXTURES]: 2,\n [exports.RESOURCE_TUBE]: 4,\n [exports.RESOURCE_REDUCTANT]: 330,\n [exports.RESOURCE_ZYNTHIUM_BAR]: 31,\n [exports.RESOURCE_ENERGY]: 16\n }\n },\n [exports.RESOURCE_HYDRAULICS]: {\n level: 4,\n amount: 1,\n cooldown: 800,\n components: {\n [exports.RESOURCE_LIQUID]: 150,\n [exports.RESOURCE_FIXTURES]: 3,\n [exports.RESOURCE_TUBE]: 15,\n [exports.RESOURCE_PURIFIER]: 208,\n [exports.RESOURCE_ENERGY]: 32\n }\n },\n [exports.RESOURCE_MACHINE]: {\n level: 5,\n amount: 1,\n cooldown: 600,\n components: {\n [exports.RESOURCE_HYDRAULICS]: 1,\n [exports.RESOURCE_FRAME]: 2,\n [exports.RESOURCE_FIXTURES]: 3,\n [exports.RESOURCE_TUBE]: 12,\n [exports.RESOURCE_ENERGY]: 64\n }\n },\n\n [exports.RESOURCE_CONDENSATE]: {\n amount: 20,\n cooldown: 8,\n components: {\n [exports.RESOURCE_KEANIUM_BAR]: 20,\n [exports.RESOURCE_MIST]: 100,\n [exports.RESOURCE_ENERGY]: 40\n }\n },\n [exports.RESOURCE_CONCENTRATE]: {\n level: 1,\n amount: 3,\n cooldown: 41,\n components: {\n [exports.RESOURCE_CONDENSATE]: 30,\n [exports.RESOURCE_KEANIUM_BAR]: 15,\n [exports.RESOURCE_REDUCTANT]: 54,\n [exports.RESOURCE_ENERGY]: 12\n }\n },\n [exports.RESOURCE_EXTRACT]: {\n level: 2,\n amount: 2,\n cooldown: 128,\n components: {\n [exports.RESOURCE_CONCENTRATE]: 10,\n [exports.RESOURCE_CONDENSATE]: 30,\n [exports.RESOURCE_OXIDANT]: 60,\n [exports.RESOURCE_ENERGY]: 16\n }\n },\n [exports.RESOURCE_SPIRIT]: {\n level: 3,\n amount: 1,\n cooldown: 200,\n components: {\n [exports.RESOURCE_EXTRACT]: 2,\n [exports.RESOURCE_CONCENTRATE]: 6,\n [exports.RESOURCE_REDUCTANT]: 90,\n [exports.RESOURCE_PURIFIER]: 20,\n [exports.RESOURCE_ENERGY]: 16\n }\n },\n [exports.RESOURCE_EMANATION]: {\n level: 4,\n amount: 1,\n cooldown: 800,\n components: {\n [exports.RESOURCE_SPIRIT]: 2,\n [exports.RESOURCE_EXTRACT]: 2,\n [exports.RESOURCE_CONCENTRATE]: 3,\n [exports.RESOURCE_KEANIUM_BAR]: 112,\n [exports.RESOURCE_ENERGY]: 32\n }\n },\n [exports.RESOURCE_ESSENCE]: {\n level: 5,\n amount: 1,\n cooldown: 600,\n components: {\n [exports.RESOURCE_EMANATION]: 1,\n [exports.RESOURCE_SPIRIT]: 3,\n [exports.RESOURCE_CRYSTAL]: 110,\n [exports.RESOURCE_GHODIUM_MELT]: 150,\n [exports.RESOURCE_ENERGY]: 64\n }\n },\n }\n});\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/**\n * Created by vedi on 19/03/2017.\n */\n\nexport default (duration = { $processorParam: 'tickDuration' }) => ({\n action: 'FadeIn',\n params: [duration],\n});\n","/**\n * Created by vedi on 19/03/2017.\n */\n\nexport default (fromAlpha, toAlpha, toDuration, fromDuration) => ({\n action: 'Sequence',\n params: [[\n {\n action: 'AlphaTo',\n params: [fromAlpha, 0],\n },\n {\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [\n {\n action: 'AlphaTo',\n params: [toAlpha, toDuration],\n },\n {\n action: 'AlphaTo',\n params: [fromAlpha, fromDuration],\n },\n ],\n ],\n }],\n },\n ]],\n});\n","export default (type, additionalWhen) => ({\n type: 'text',\n once: true,\n layer: 'effects',\n when: (params) => {\n const {\n calcs: { isOwner },\n stateExtra: { gameData: { showEnemyNames, showMyNames } },\n } = params;\n return ((isOwner && showMyNames[type]) || (!isOwner && showEnemyNames[type])) &&\n (!additionalWhen || additionalWhen(params));\n },\n payload: {\n text: { $calc: 'displayName' },\n style: {\n align: 'center',\n fill: { $calc: 'playerColorHex' },\n fontFamily: 'Roboto, sans-serif',\n fontSize: 55,\n stroke: '#111',\n strokeThickness: 15,\n },\n anchor: {\n x: 0.5,\n y: 1.7,\n },\n },\n});\n","export default (alpha1, alpha2, alpha3, alpha4) => ({\n action: 'Spawn',\n params: [[\n {\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [[\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x', koef: 1.2 },\n { $rel: 'scale.y', koef: 1.2 },\n 1,\n ],\n },\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x' },\n { $rel: 'scale.y' },\n 1,\n ],\n },\n ]],\n }],\n },\n {\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [[\n {\n action: 'AlphaTo',\n params: [alpha1, 0.1],\n },\n {\n action: 'AlphaTo',\n params: [alpha2, 0.2],\n },\n {\n action: 'DelayTime',\n params: [{ $random: 2 }],\n },\n {\n action: 'AlphaTo',\n params: [alpha3, 0.2],\n },\n {\n action: 'AlphaTo',\n params: [alpha4, 2.8],\n },\n ]],\n }],\n },\n ]],\n});\n","/**\n * Created by vedi on 13/09/2017.\n */\n\nimport { blinking } from '../action-templates';\nimport constants from '@screeps/common/lib/constants';\n\nconst CELL_SIZE = 100;\n\nexport default {\n data: {\n x: { $state: 'x', koef: CELL_SIZE },\n y: { $state: 'y', koef: CELL_SIZE },\n },\n calculations: [\n {\n id: 'isOwner',\n props: ['user'],\n func: ({ state: { user }, stateExtra: { gameData: { player } } }) =>\n // eslint-disable-next-line eqeqeq\n (user === undefined ? undefined : player == user),\n },\n {\n id: 'playerColorHex',\n props: ['user'],\n func: ({ stateExtra: { users }, state: { user }, world: { options: { userOwnerColor } }, calcs: { isOwner } }) => {\n if (userOwnerColor) {\n return isOwner ? '#8fbb93' : '#FF7777';\n }\n if (users[user] && users[user].color) {\n return users[user].color;\n } else {\n return '#ffffff';\n }\n },\n },\n {\n id: 'playerColor',\n props: ['user'],\n func: ({ calcs: { playerColorHex, isOwner }, world: { options: { userOwnerColor } } }) => {\n if (userOwnerColor) {\n if (isOwner === undefined) {\n return 0xBBBBBB;\n } else if (isOwner) {\n return 0x8fbb93;\n } else {\n return 0xFF7777;\n }\n }\n return parseInt(playerColorHex.substr(1), 16);\n },\n },\n {\n id: 'playerColorIntense',\n props: ['user'],\n func: ({ calcs: { isOwner } }) =>\n (isOwner ? 0x00ff00 : 0x00ff00),\n },\n {\n id: 'viewBox',\n func: ({ world: { options: { VIEW_BOX } } }) => VIEW_BOX,\n },\n {\n id: 'hasEffect',\n func: ({ state: { effects }, stateExtra: { gameTime } }) =>\n effects && Object.values(effects).some(effect => !!constants.POWER_INFO[effect.power] && effect.endTime > gameTime),\n },\n {\n id: 'decorations',\n func: ({ world: { decorations = [] } }) => decorations,\n },\n ],\n processors: [\n {\n type: 'objectDecoration',\n props: ['decorations'],\n },\n {\n type: 'draw',\n once: true,\n when: ({ state: { _isDisabled } }) => !!_isDisabled,\n layer: 'effects',\n payload: {\n drawings: [\n { method: 'beginFill', params: [0xFF0000] },\n {\n method: 'drawRect',\n params: [-50, -50, 100, 100],\n },\n { method: 'endFill' },\n ],\n blendMode: 1,\n },\n actions: [blinking(0, 0.5, 0.3, 1.5)],\n },\n {\n type: 'sprite',\n layer: 'effects',\n id: 'flare',\n props: ['hasEffect'],\n payload: {\n texture: 'flare3',\n width: 300,\n height: 300,\n alpha: 0,\n blendMode: 1,\n tint: 0xFF0000,\n },\n when: ({ calcs: { hasEffect } }) => hasEffect,\n actions: [\n {\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [\n {\n action: 'AlphaTo',\n params: [0.4, 0.2],\n },\n {\n action: 'AlphaTo',\n params: [0, 1],\n },\n {\n action: 'DelayTime',\n params: [2],\n },\n ],\n ],\n }],\n },\n {\n action: 'Repeat',\n params: [{\n action: 'RotateBy',\n params: [2 * Math.PI, 1],\n }],\n }\n ],\n },\n ],\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport { blinking } from '../action-templates';\n\nexport default {\n texture: 'constructedWall',\n processors: [\n {\n type: 'sprite',\n once: true,\n payload: {\n width: 100,\n height: 100,\n blendMode: 1,\n },\n },\n {\n type: 'draw',\n once: true,\n when: ({ state: { hits, hitsMax } }) => hits === 1 && hitsMax > 1,\n layer: 'effects',\n payload: {\n drawings: [\n { method: 'beginFill', params: [0xFF0000] },\n {\n method: 'drawRect',\n params: [-50, -50, 100, 100],\n },\n { method: 'endFill' },\n ],\n blendMode: 1,\n },\n actions: [blinking(0, 0.2, 0.3, 1.5)],\n },\n ],\n zIndex: 0,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport { blinking } from '../action-templates';\n\nexport default {\n texture: 'constructionSite',\n processors: [\n {\n id: 'siteProgress',\n type: 'siteProgress',\n layer: 'effects',\n props: ['progress', 'progressTotal'],\n payload: {\n color: { $calc: 'playerColor' },\n radius: 20,\n lineWidth: 10,\n progress: { $state: 'progress' },\n progressTotal: { $state: 'progressTotal' },\n },\n actions: [blinking(0.8, 0.3, 1, 1)],\n },\n ],\n disappearProcessor: { type: 'disappear' },\n zIndex: 18,\n};\n","/**\n * Created by vedi on 19/03/2017.\n */\n\nexport default () => {\n return ({\n id: 'resourcesTotal',\n func: ({ state }) => _.reduce(state.store, (sum, cur) => cur + sum, 0)\n });\n};\n","/**\n * Created by vedi on 19/04/2017.\n */\n\nimport { resourceTotal } from '../calculation-templates';\n\nexport default {\n texture: 'rectangle',\n calculations: [\n resourceTotal(),\n {\n id: 'energyBackgroundHeight',\n func: ({ state: { storeCapacity }, calcs: { resourcesTotal } }) =>\n (resourcesTotal * 50) / (storeCapacity || resourcesTotal),\n },\n {\n id: 'energyHeight',\n func: ({ state: { store = {}, storeCapacity }, calcs: { resourcesTotal } }) =>\n ((store['energy']||0) * 50) / (storeCapacity || resourcesTotal),\n },\n {\n id: 'powerHeight',\n func: ({ state: { store = {}, storeCapacity },\n calcs: { resourcesTotal } }) =>\n (((store['power']||0) + (store['energy']||0)) * 50) / (storeCapacity || resourcesTotal),\n },\n ],\n processors: [\n {\n type: 'sprite',\n id: 'border',\n once: true,\n payload: {\n width: 60,\n height: 70,\n tint: 0x181818,\n },\n },\n {\n id: 'internalBorder',\n type: 'sprite',\n once: true,\n payload: {\n width: 40,\n height: 50,\n tint: 0x555555,\n },\n },\n {\n type: 'sprite',\n id: 'otherResourcesBar',\n props: ['store', 'energyBackgroundHeight', 'resourcesTotal'],\n shouldRun: ({ state: { store = {} }, calcs: { resourcesTotal } }) =>\n (store['energy']||0) + (store['power']||0) < resourcesTotal,\n payload: {\n pivot: {\n y: { $calc: 'energyBackgroundHeight' },\n },\n y: 25,\n width: 40,\n height: { $calc: 'energyBackgroundHeight' },\n tint: 0xffffff,\n },\n },\n {\n type: 'sprite',\n id: 'powerBar',\n props: ['store', 'resourcesTotal'],\n shouldRun: ({ state: { store = {} } }) => store['power'] > 0,\n payload: {\n pivot: {\n y: { $calc: 'powerHeight' },\n },\n y: 25,\n width: 40,\n height: { $calc: 'powerHeight' },\n tint: 0xf41f33,\n },\n },\n {\n type: 'sprite',\n id: 'energyBar',\n props: ['store', 'resourcesTotal'],\n shouldRun: ({ state: { store = {} } }) => store['energy'] > 0,\n payload: {\n pivot: {\n y: { $calc: 'energyHeight' },\n },\n y: 25,\n width: 40,\n height: { $calc: 'energyHeight' },\n tint: 0xffe56d,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n props: ['resourcesTotal'],\n shouldRun: ({ calcs: { resourcesTotal } }) => resourcesTotal > 0,\n payload: {\n texture: 'glow',\n width: 100,\n height: 100,\n alpha: 1,\n },\n },\n ],\n zIndex: 4,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport constants from '@screeps/common/lib/constants';\n\nimport { blinking } from '../action-templates';\n\nexport default {\n texture: 'controller',\n calculations: [\n {\n id: 'level1Visible',\n props: ['level'],\n func: ({ state: { level } }) => level >= 1,\n },\n {\n id: 'level2Visible',\n props: ['level'],\n func: ({ state: { level } }) => level >= 2,\n },\n {\n id: 'level3Visible',\n props: ['level'],\n func: ({ state: { level } }) => level >= 3,\n },\n {\n id: 'level4Visible',\n props: ['level'],\n func: ({ state: { level } }) => level >= 4,\n },\n {\n id: 'level5Visible',\n props: ['level'],\n func: ({ state: { level } }) => level >= 5,\n },\n {\n id: 'level6Visible',\n props: ['level'],\n func: ({ state: { level } }) => level >= 6,\n },\n {\n id: 'level7Visible',\n props: ['level'],\n func: ({ state: { level } }) => level >= 7,\n },\n {\n id: 'level8Visible',\n props: ['level'],\n func: ({ state: { level } }) => level >= 8,\n },\n {\n id: 'downgradeOpacity',\n func: ({ state: { level, downgradeTime }, stateExtra: { gameTime } }) => {\n const { CONTROLLER_DOWNGRADE } = constants;\n\n if (!downgradeTime || !level || !gameTime) {\n return 0;\n }\n return (CONTROLLER_DOWNGRADE[level] - (downgradeTime - gameTime)) /\n CONTROLLER_DOWNGRADE[level];\n },\n },\n {\n id: 'progressTotal',\n func: ({ state: { level } }) => {\n const { CONTROLLER_LEVELS } = constants;\n return CONTROLLER_LEVELS[level];\n },\n },\n ],\n processors: [\n {\n type: 'circle',\n once: true,\n payload: {\n alpha: 0.05,\n color: 0x33ff33,\n radius: 110,\n },\n shouldRun: ({ state: { reservation }, stateExtra: { gameData: { player } } }) =>\n reservation && reservation.user === player,\n actions: [blinking(0.05, 0.4, 1, 1)],\n },\n {\n type: 'circle',\n once: true,\n payload: {\n alpha: 0.05,\n color: 0xff3333,\n radius: 110,\n },\n shouldRun: ({\n state: { upgradeBlocked, reservation },\n stateExtra: { gameTime, gameData: { player } },\n }) =>\n (upgradeBlocked && upgradeBlocked > gameTime) ||\n (reservation && reservation.user !== player),\n actions: [blinking(0.05, 0.4, 1, 1)],\n },\n {\n type: 'circle',\n once: true,\n payload: {\n alpha: 0.05,\n color: 0xff3333,\n radius: 110,\n },\n shouldRun: ({\n state: { upgradeBlocked, reservation },\n stateExtra: { gameTime, gameData: { player } },\n }) =>\n (upgradeBlocked && upgradeBlocked > gameTime) ||\n (reservation && reservation.user !== player),\n actions: [blinking(0.05, 0.4, 1, 1)],\n },\n {\n id: 'safeMode1',\n type: 'circle',\n once: true,\n payload: {\n alpha: 0.05,\n color: 0xffd180,\n radius: 110,\n },\n shouldRun: ({ state: { safeMode }, stateExtra: { gameTime } }) =>\n safeMode && safeMode > gameTime,\n actions: [blinking(0.05, 0.4, 1, 1)],\n },\n {\n type: 'circle',\n once: true,\n payload: {\n alpha: 0.05,\n color: 0xffffff,\n radius: 92,\n },\n },\n {\n type: 'sprite',\n layer: 'effects',\n once: true,\n payload: {\n texture: 'glow',\n alpha: 0.1,\n tint: 0xffd180,\n width: 1,\n height: 1,\n blendMode: 1,\n },\n shouldRun: ({ state: { safeMode }, stateExtra: { gameTime } }) =>\n safeMode && safeMode > gameTime,\n actions: [\n {\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [50, 50, 1.5],\n },\n {\n action: 'AlphaTo',\n params: [0, 1.5],\n },\n ]],\n },\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [0, 0, 0],\n },\n {\n action: 'AlphaTo',\n params: [0.05, 0],\n },\n ]],\n },\n {\n action: 'DelayTime',\n params: [6],\n },\n ],\n ],\n }],\n },\n ],\n },\n\n {\n type: 'sprite',\n layer: 'effects',\n props: ['isPowerEnabled'],\n payload: {\n texture: 'flare1',\n alpha: 0.4,\n tint: 0xff0000,\n width: 1,\n height: 1,\n blendMode: 1,\n },\n when: ({ state: { isPowerEnabled } }) => !!isPowerEnabled,\n actions: [\n {\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [20, 20, 1.0],\n },\n {\n action: 'AlphaTo',\n params: [0, 1.0],\n },\n ]],\n },\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [0, 0, 0],\n },\n {\n action: 'AlphaTo',\n params: [0.4, 0],\n },\n ]],\n },\n {\n action: 'DelayTime',\n params: [5],\n },\n ],\n ],\n }]\n },\n ],\n },\n\n {\n type: 'sprite',\n once: true,\n payload: {\n tint: 0x000000,\n width: 200,\n height: 200,\n },\n },\n {\n type: 'sprite',\n props: ['level1Visible'],\n payload: {\n texture: 'controller-level',\n width: 100,\n height: 100,\n anchor: {\n y: 1,\n },\n visible: { $calc: 'level1Visible' },\n },\n },\n {\n type: 'sprite',\n props: ['level2Visible'],\n payload: {\n texture: 'controller-level',\n width: 100,\n height: 100,\n anchor: {\n y: 1,\n },\n rotation: (2 * Math.PI) / 8,\n visible: { $calc: 'level2Visible' },\n },\n },\n {\n type: 'sprite',\n props: ['level3Visible'],\n payload: {\n texture: 'controller-level',\n width: 100,\n height: 100,\n anchor: {\n y: 1,\n },\n rotation: 2 * ((2 * Math.PI) / 8),\n visible: { $calc: 'level3Visible' },\n },\n },\n {\n type: 'sprite',\n props: ['level4Visible'],\n payload: {\n texture: 'controller-level',\n width: 100,\n height: 100,\n anchor: {\n y: 1,\n },\n rotation: 3 * ((2 * Math.PI) / 8),\n visible: { $calc: 'level4Visible' },\n },\n },\n {\n type: 'sprite',\n props: ['level5Visible'],\n payload: {\n texture: 'controller-level',\n width: 100,\n height: 100,\n anchor: {\n y: 1,\n },\n rotation: 4 * ((2 * Math.PI) / 8),\n visible: { $calc: 'level5Visible' },\n },\n },\n {\n type: 'sprite',\n props: ['level6Visible'],\n payload: {\n texture: 'controller-level',\n width: 100,\n height: 100,\n anchor: {\n y: 1,\n },\n rotation: 5 * ((2 * Math.PI) / 8),\n visible: { $calc: 'level6Visible' },\n },\n },\n {\n type: 'sprite',\n props: ['level7Visible'],\n payload: {\n texture: 'controller-level',\n width: 100,\n height: 100,\n anchor: {\n y: 1,\n },\n rotation: 6 * ((2 * Math.PI) / 8),\n visible: { $calc: 'level7Visible' },\n },\n },\n {\n type: 'sprite',\n props: ['level8Visible'],\n payload: {\n texture: 'controller-level',\n width: 100,\n height: 100,\n anchor: {\n y: 1,\n },\n rotation: 7 * ((2 * Math.PI) / 8),\n visible: { $calc: 'level8Visible' },\n },\n },\n {\n type: 'userBadge',\n props: ['user', 'level'],\n },\n {\n id: 'siteProgress',\n type: 'siteProgress',\n props: ['progress', 'progressTotal', 'level'],\n payload: {\n color: 0xFFFFFF,\n radius: 37,\n lineWidth: 0,\n progress: { $state: 'progress' },\n progressTotal: { $calc: 'progressTotal' },\n },\n when: ({ state: { progress } }) => progress > 0,\n actions: [blinking(0.8, 0.3, 1, 1)],\n },\n {\n type: 'circle',\n props: ['level'],\n payload: {\n radius: 40,\n strokeColor: 0x080808,\n strokeWidth: 10,\n },\n },\n {\n id: 'downgrade',\n type: 'sprite',\n once: true,\n layer: 'effects',\n payload: {\n alpha: 0,\n width: 200,\n height: 200,\n tint: 0xff3333,\n },\n },\n {\n type: 'runAction',\n payload: {\n id: 'downgrade',\n },\n actions: [\n {\n action: 'Sequence',\n params: [\n [\n {\n action: 'AlphaTo',\n params: [\n { $calc: 'downgradeOpacity' },\n { $processorParam: 'tickDuration', koef: 0.2 }],\n },\n {\n action: 'AlphaTo',\n params: [\n 0,\n { $processorParam: 'tickDuration', koef: 0.8 }],\n },\n ],\n ],\n },\n ],\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n props: ['user'],\n payload: {\n texture: 'glow',\n width: 1200,\n height: 1200,\n alpha: 0.5,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n props: ['user'],\n shouldRun: ({ state: { user } }) => !!user,\n payload: {\n texture: 'glow',\n width: 500,\n height: 500,\n alpha: 1,\n },\n },\n ],\n zIndex: 4,\n};\n","/**\n * Created by vedi on 07/04/2017.\n */\n\nexport const calculateAngle = (x0, y0, x, y) => {\n let angle = Math.atan2(y - y0, x - x0) + (Math.PI / 2);\n if (angle > Math.PI) {\n angle -= 2 * Math.PI;\n } else if (angle < -Math.PI) {\n angle += 2 * Math.PI;\n }\n return angle;\n};\nexport const convertGameXYToWorld = ({ x, y }, { CELL_SIZE }) => ({\n x: (CELL_SIZE * x),\n y: (CELL_SIZE * y),\n});\nexport const scaleGameToWorld = (value, { CELL_SIZE }) => CELL_SIZE * value;\n\nexport default {\n calculateAngle,\n convertGameXYToWorld,\n scaleGameToWorld,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport mathHelper from '../../../helpers/mathHelper';\n\nimport { displayName } from '../action-templates';\nimport { resourceTotal } from '../calculation-templates';\n\nconst CELL_SIZE = 100;\nconst ENERGY_RADIUS = 20;\nconst isNpc = ({ state: { user } }) => user === '3' || user === '2';\nconst isNotNpc = (...params) => !isNpc(...params);\n\nexport default {\n texture: 'creep',\n calculations: [\n {\n id: 'displayName',\n func: ({ calcs: { isOwner }, state: { name, user }, stateExtra: { users } }) =>\n (isOwner ? name : users[user].username),\n },\n {\n id: 'rotation',\n props: ['x', 'y'],\n func: ({ prevState: { x: prevX, y: prevY } = {}, state: { x, y } }) => {\n const { calculateAngle } = mathHelper;\n return (prevX !== undefined && prevY !== undefined ?\n calculateAngle(prevX, prevY, x, y) : 0);\n },\n },\n resourceTotal(),\n {\n id: 'resourcesTotalRadius',\n func: ({ state: { storeCapacity }, calcs: { resourcesTotal } }) =>\n Math.min(1, resourcesTotal / storeCapacity) * ENERGY_RADIUS,\n },\n {\n id: 'energyRadius',\n func: ({ state: { store, storeCapacity } }) =>\n Math.min(1, (store['energy']||0) / storeCapacity) * ENERGY_RADIUS,\n },\n {\n id: 'powerRadius',\n func: ({ state: { store, storeCapacity } }) =>\n Math.min(1, ((store['energy']||0) + (store['power']||0)) / storeCapacity) * ENERGY_RADIUS,\n },\n {\n id: 'safeMode',\n func: ({\n stateExtra,\n state: { user },\n stateExtra: { controller, gameTime, objects },\n }) => {\n if (controller === undefined) {\n controller = objects.find(i => i.type === 'controller') || null;\n stateExtra.controller = controller;\n }\n return controller && controller.safeMode > gameTime && controller.user !== user ?\n 0.5 : 1.0;\n },\n },\n ],\n processors: [\n {\n type: 'container',\n once: 'true',\n payload: {\n id: 'mainContainer',\n },\n },\n {\n type: 'container',\n once: 'true',\n payload: {\n id: 'decorationContainer',\n parentId: 'mainContainer',\n },\n },\n {\n type: 'creepDecoration',\n props: ['spawning', 'decorations'],\n when: (({ state: { spawning } }) => !spawning),\n payload: {\n parentId: 'decorationContainer',\n },\n },\n {\n type: 'circle',\n once: true,\n payload: {\n parentId: 'mainContainer',\n color: 0x202020,\n radius: 50,\n },\n when: isNotNpc,\n },\n {\n type: 'creepBuildBody',\n props: ['body'],\n payload: {\n parentId: 'mainContainer',\n },\n when: isNotNpc,\n },\n {\n type: 'circle',\n once: true,\n payload: {\n parentId: 'mainContainer',\n color: 0x000000,\n radius: 32,\n },\n when: isNotNpc,\n },\n {\n type: 'userBadge',\n once: true,\n payload: {\n parentId: 'mainContainer',\n radius: 26,\n color: 0x222222,\n },\n when: (params) => isNotNpc(params) && params.world.options.userOwnerColor,\n },\n {\n type: 'userBadge',\n once: true,\n payload: {\n parentId: 'mainContainer',\n radius: 26,\n color: { $calc: 'playerColor' },\n },\n when: (params) => isNotNpc(params) && !params.world.options.userOwnerColor,\n },\n {\n type: 'circle',\n props: ['store', 'resourcesTotal'],\n when: ({ state: { store = {}, user }, calcs: { resourcesTotal } }) =>\n user !== '3' && user !== '2' && resourcesTotal > 0 && (store['energy']||0 + store['power']||0 < resourcesTotal),\n payload: {\n parentId: 'mainContainer',\n radius: { $calc: 'resourcesTotalRadius' },\n color: 0xffffff,\n },\n },\n {\n type: 'circle',\n props: ['store'],\n when: ({ state: { store = {}, user } }) => user !== '3' && user !== '2' && store['power'] > 0,\n payload: {\n parentId: 'mainContainer',\n radius: { $calc: 'powerRadius' },\n color: 0xf41f33,\n },\n },\n {\n type: 'circle',\n props: ['store'],\n when: ({ state: { store = {}, user } }) => user !== '3' && user !== '2' && store['energy'] > 0,\n payload: {\n parentId: 'mainContainer',\n radius: { $calc: 'energyRadius' },\n color: 0xffe56d,\n },\n },\n {\n type: 'sprite',\n once: true,\n payload: {\n parentId: 'mainContainer',\n texture: 'creep-npc',\n width: 100,\n height: 100,\n },\n when: isNpc,\n },\n {\n type: 'creepActions',\n payload: {\n parentId: 'mainContainer',\n },\n props: '*',\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n when: ((params) => {\n const { state: { spawning } } = params;\n return !spawning && isNotNpc(params);\n }),\n payload: {\n parentId: 'mainContainer',\n texture: 'creep-mask',\n width: 100,\n height: 100,\n alpha: 1,\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n when: isNpc,\n payload: {\n parentId: 'mainContainer',\n texture: 'glow',\n width: 100,\n height: 100,\n alpha: 0.5,\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n shouldRun: (({ state: { spawning } }) => !spawning),\n payload: {\n parentId: 'mainContainer',\n texture: 'glow',\n width: 400,\n height: 400,\n alpha: 0.2,\n },\n },\n displayName('creeps', ({ state: { spawning } }) => !spawning),\n {\n type: 'say',\n layer: 'effects',\n when: ({\n state: { actionLog: { say } = {} },\n stateExtra: { gameData: { showCreepSpeech } },\n calcs: { isOwner },\n }) =>\n !!showCreepSpeech && !!say && (say.isPublic || isOwner),\n payload: {\n say: { $state: 'actionLog.say' },\n },\n },\n {\n id: 'rangedMassAttack',\n type: 'circle',\n layer: 'effects',\n once: true,\n payload: {\n alpha: 0,\n color: 0x5d80b2,\n radius: 300,\n blendMode: 1,\n },\n },\n {\n type: 'runAction',\n payload: {\n id: 'rangedMassAttack',\n },\n when: ({ state: { actionLog: { rangedMassAttack } = {} } }) => !!rangedMassAttack,\n actions: [{\n action: 'Sequence',\n params: [[\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [0, 0, 0],\n },\n {\n action: 'AlphaTo',\n params: [0.4, 0],\n },\n ]],\n },\n {\n action: 'Spawn',\n params: [[\n {\n action: 'Ease',\n params: [{\n action: 'ScaleTo',\n params: [1, 1, { $processorParam: 'tickDuration', koef: 0.6 }],\n }],\n },\n {\n action: 'Ease',\n params: [{\n action: 'AlphaTo',\n params: [0, { $processorParam: 'tickDuration', koef: 0.6 }],\n }],\n },\n ]],\n },\n ]],\n }],\n },\n ],\n actions: [\n {\n id: 'moveTo',\n props: ['x', 'y'],\n actions: [{\n action: 'Ease',\n params: [\n {\n action: 'MoveTo',\n params: [\n { $state: 'x', koef: CELL_SIZE },\n { $state: 'y', koef: CELL_SIZE },\n { $processorParam: 'tickDuration' },\n ],\n },\n 'EASE_IN_OUT_QUAD',\n ],\n }],\n },\n {\n id: 'rotateTo',\n props: ['rotation'],\n targetId: 'mainContainer',\n actions: [{\n action: 'RotateTo',\n params: [\n { $calc: 'rotation' },\n { $processorParam: 'tickDuration', koef: 0.2 },\n ],\n }],\n },\n {\n id: 'safeModeAlpha',\n props: ['safeMode'],\n targetId: 'mainContainer',\n actions: [{\n action: 'AlphaTo',\n params: [{ $calc: 'safeMode' }, 0],\n }],\n },\n ],\n disappearProcessor: { type: 'disappear' },\n zIndex: 6,\n};\n","import { flickering } from '../action-templates';\n\nconst scaleAction = {\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [{\n action: 'Ease',\n params: [{\n action: 'ScaleTo',\n params: [0.7, 0.7, 1],\n }],\n }, {\n action: 'Ease',\n params: [{\n action: 'ScaleTo',\n params: [1.0, 1.0, 0.3],\n }],\n }],\n ],\n }],\n};\n\nconst COLORS = {\n biomass: 0x84b012,\n metal: 0x956f5c,\n mist: 0xda6bf5,\n silicon: 0x4ca7e5,\n};\n\nconst isCooldown = ({ state: { cooldownTime }, stateExtra: { gameTime } }) =>\n cooldownTime && cooldownTime >= gameTime;\n\nexport default {\n calculations: [\n {\n id: 'deposit',\n props: ['depositType'],\n func: ({ state: { depositType } }) => `deposit-${depositType}`,\n },\n {\n id: 'deposit-fill',\n props: ['depositType'],\n func: ({ state: { depositType } }) => `deposit-${depositType}-fill`,\n },\n {\n id: 'color',\n props: ['depositType'],\n func: ({ state: { depositType } }) => COLORS[depositType],\n },\n {\n id: 'harvested',\n props: ['harvested'],\n func: ({ state: { depositType, harvested = 0 } }) => {\n return Math.max(0, 0.6 - (harvested / 100000));\n },\n },\n ],\n processors: [\n {\n type: 'container',\n once: 'true',\n payload: {\n id: 'container',\n },\n },\n {\n type: 'runAction',\n once: true,\n when: isCooldown,\n payload: {\n id: 'container',\n },\n actions: [scaleAction],\n },\n {\n type: 'sprite',\n payload: {\n parentId: 'container',\n texture: { $calc: 'deposit-fill' },\n width: 160,\n height: 160,\n alpha: { $calc: 'harvested' },\n tint: { $calc: 'color' }\n },\n },\n {\n type: 'sprite',\n payload: {\n parentId: 'container',\n texture: { $calc: 'deposit' },\n width: 160,\n height: 160,\n tint: { $calc: 'color' }\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n parentId: 'container',\n texture: { $calc: 'deposit' },\n width: 160,\n height: 160,\n alpha: 1,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 700,\n height: 700,\n alpha: 1,\n tint: { $calc: 'color' },\n },\n actions: [flickering(0.7, 0.4, 1.0, 0.4)],\n },\n ],\n zIndex: 1,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nconst METADATA = {\n small: 68,\n medium: 80,\n large: 100,\n};\n\nexport default {\n calculations: [\n {\n id: 'size',\n props: ['storeCapacityResource'],\n func: ({ state: { storeCapacityResource } }) => {\n if (storeCapacityResource && storeCapacityResource.energy >= 200) {\n return METADATA.large;\n } else if (storeCapacityResource && storeCapacityResource.energy >= 100) {\n return METADATA.medium;\n } else {\n return METADATA.small;\n }\n },\n },\n {\n id: 'resourceScale',\n props: ['store', 'storeCapacityResource'],\n func: ({ state: { store, storeCapacityResource } }) =>\n storeCapacityResource ? Math.min(1, (store.energy||0) / storeCapacityResource.energy) : 0,\n },\n ],\n processors: [\n {\n type: 'sprite',\n once: true,\n when: ({ state: { storeCapacityResource } }) => !storeCapacityResource || storeCapacityResource.energy < 100,\n payload: {\n texture: 'extension-border50',\n tint: { $calc: 'playerColor' },\n width: 100,\n height: 100,\n },\n },\n {\n type: 'sprite',\n once: true,\n when: ({ state: { storeCapacityResource } }) => storeCapacityResource && storeCapacityResource.energy === 100,\n payload: {\n texture: 'extension-border100',\n tint: { $calc: 'playerColor' },\n width: 100,\n height: 100,\n },\n },\n {\n type: 'sprite',\n once: true,\n when: ({ state: { storeCapacityResource } }) => storeCapacityResource && storeCapacityResource.energy === 200,\n payload: {\n texture: 'extension-border200',\n tint: { $calc: 'playerColor' },\n width: 100,\n height: 100,\n },\n },\n\n {\n type: 'sprite',\n props: ['storeCapacityResource'],\n payload: {\n texture: 'extension',\n width: { $calc: 'size' },\n height: { $calc: 'size' },\n },\n },\n {\n id: 'resourceCircle',\n props: ['storeCapacityResource'],\n type: 'circle',\n payload: {\n radius: { $calc: 'size', koef: 0.32 },\n color: 0xffe56d,\n scale: {\n x: { $calc: 'resourceScale' },\n y: { $calc: 'resourceScale' },\n },\n },\n },\n {\n type: 'runAction',\n props: ['resourceScale'],\n payload: {\n id: 'resourceCircle',\n },\n actions: [\n {\n action: 'ScaleTo',\n params: [\n { $calc: 'resourceScale' },\n { $calc: 'resourceScale' },\n { $processorParam: 'tickDuration' },\n ],\n },\n ],\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n shouldRun: (({ state: { store } }) => store && store.energy > 0),\n payload: {\n texture: 'glow',\n width: 100,\n height: 100,\n alpha: 1,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n shouldRun: (({ state: { store, storeCapacityResource } }) => (store.energy||0) > 0 &&\n storeCapacityResource && storeCapacityResource.energy === 50),\n payload: {\n texture: 'glow',\n width: 200,\n height: 200,\n alpha: 0.7,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n shouldRun: (({ state: { store, storeCapacityResource } }) => (store.energy||0) > 0 &&\n storeCapacityResource && storeCapacityResource.energy === 100),\n payload: {\n texture: 'glow',\n width: 220,\n height: 220,\n alpha: 0.7,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n shouldRun: (({ state: { store, storeCapacityResource } }) => (store.energy||0) > 0 &&\n storeCapacityResource && storeCapacityResource.energy === 200),\n payload: {\n texture: 'glow',\n width: 250,\n height: 250,\n alpha: 0.7,\n },\n },\n ],\n zIndex: 7,\n};\n","/**\n * Created by vedi on 04/09/2017.\n */\nexport default {\n processors: [\n {\n id: 'main',\n type: 'sprite',\n once: 'true',\n payload: {\n texture: 'extractor',\n width: 200,\n tint: { $calc: 'playerColor' },\n },\n },\n {\n type: 'runAction',\n once: true,\n when: ({ state: { cooldown } }) => cooldown > 0,\n until: ({ state: { cooldown } }) => !cooldown || cooldown <= 0,\n payload: {\n id: 'main',\n },\n actions: [{\n action: 'Repeat',\n params: [{\n action: 'RotateBy',\n params: [2 * Math.PI, 4],\n }],\n }],\n },\n ],\n zIndex: 0,\n};\n","/**\n * Created by vedi on 19/04/2017.\n */\n\nimport { PWR_OPERATE_FACTORY } from '@screeps/common/lib/constants';\n\nimport { blinking } from '../action-templates';\nimport { resourceTotal } from '../calculation-templates';\n\nconst SPRITE_SIZE = 200;\nconst CONTAINER_SIZE = 50.0;\n\nconst COLOR_CONTAINER = 0x555555;\nconst COLOR_ENERGY = 0xfadf7e;\nconst COLOR_POWER = 0xf41f33;\nconst COLOR_RESOURCE = 0xFFFFFF;\n\nconst isCooldown = ({ state: { cooldownTime }, stateExtra: { gameTime } }) =>\n cooldownTime && cooldownTime >= gameTime;\nconst isNotCooldown = (...params) => !isCooldown(...params);\nconst isLevel = ({ state: { level } }) => level > 0;\nconst isPowerOperate = ({ state: { effects }, stateExtra: { gameTime } }) =>\n effects && Object.values(effects).some(({ power, endTime }) =>\n power === PWR_OPERATE_FACTORY && endTime >= gameTime);\nconst isLevelBlinking = (...params) => isLevel(...params) && !isPowerOperate(...params);\nconst isNotLevelBlinking = (...params) => !isLevelBlinking(...params);\n\nexport default {\n texture: 'rectangle',\n calculations: [\n resourceTotal(),\n {\n id: 'energyBackgroundHeight',\n func: ({ state: { storeCapacity }, calcs: { resourcesTotal } }) =>\n (resourcesTotal * CONTAINER_SIZE) / (storeCapacity || resourcesTotal),\n },\n {\n id: 'energyHeight',\n func: ({ state: { store = {}, storeCapacity }, calcs: { resourcesTotal } }) =>\n ((store['energy']||0) * CONTAINER_SIZE) / (storeCapacity || resourcesTotal),\n },\n {\n id: 'powerHeight',\n func: ({ state: { store = {}, storeCapacity },\n calcs: { resourcesTotal } }) =>\n ((store['power']||0 + store['energy']||0) * CONTAINER_SIZE) / (storeCapacity || resourcesTotal),\n },\n {\n id: 'factory-lvl',\n props: ['level'],\n func: ({ state: { level = 0 } }) => `factory-lvl${level}`,\n },\n ],\n processors: [\n {\n type: 'sprite',\n once: 'true',\n payload: {\n texture: 'factory-border',\n width: SPRITE_SIZE,\n height: SPRITE_SIZE,\n tint: { $calc: 'playerColor' },\n },\n },\n {\n type: 'sprite',\n once: true,\n payload: {\n texture: 'factory',\n width: SPRITE_SIZE,\n height: SPRITE_SIZE,\n },\n },\n {\n id: 'factory-highlight',\n type: 'sprite',\n once: true,\n payload: {\n texture: 'factory-highlight',\n width: SPRITE_SIZE,\n height: SPRITE_SIZE,\n alpha: 0.4\n },\n },\n {\n type: 'runAction',\n when: isCooldown,\n payload: {\n id: 'factory-highlight',\n },\n actions: [{\n action: 'Sequence',\n params: [[\n {\n action: 'AlphaTo',\n params: [1, { $processorParam: 'tickDuration', koef: 0.2 }],\n },\n {\n action: 'AlphaTo',\n params: [0, { $processorParam: 'tickDuration', koef: 0.8 }],\n },\n ]],\n }]\n },{\n type: 'runAction',\n when: isNotCooldown,\n payload: {\n id: 'factory-highlight',\n },\n actions: [\n {\n action: 'AlphaTo',\n params: [0.4, 0],\n },\n ],\n },\n {\n type: 'sprite',\n once: true,\n payload: {\n texture: 'factory-lvl0',\n width: SPRITE_SIZE,\n height: SPRITE_SIZE,\n },\n },\n {\n id: 'level',\n type: 'sprite',\n when: isLevel,\n once: true,\n payload: {\n texture: { $calc: 'factory-lvl' },\n width: SPRITE_SIZE,\n height: SPRITE_SIZE,\n },\n },\n {\n type: 'runAction',\n when: isLevelBlinking,\n once: true,\n payload: {\n id: 'level',\n },\n actions: [\n blinking(0, 1, 0.2, 0.8),\n ],\n },\n {\n type: 'runAction',\n when: isNotLevelBlinking,\n payload: {\n id: 'level',\n },\n actions: [\n {\n action: 'AlphaTo',\n params: [1, 0],\n },\n ],\n },\n {\n id: 'internalBorder',\n type: 'sprite',\n once: true,\n payload: {\n width: CONTAINER_SIZE,\n height: CONTAINER_SIZE,\n tint: COLOR_CONTAINER,\n },\n },\n {\n type: 'sprite',\n id: 'otherResourcesBar',\n props: ['store', 'energyBackgroundHeight', 'resourcesTotal'],\n shouldRun: ({ state: { store = {} }, calcs: { resourcesTotal } }) =>\n store['energy']||0 + store['power']||0 < resourcesTotal,\n payload: {\n pivot: {\n y: { $calc: 'energyBackgroundHeight' },\n },\n y: 25,\n width: CONTAINER_SIZE,\n height: { $calc: 'energyBackgroundHeight' },\n tint: COLOR_RESOURCE,\n },\n },\n {\n id: 'powerBar',\n type: 'sprite',\n props: ['store', 'resourcesTotal'],\n shouldRun: ({ state: { store = {} } }) => store['power'] > 0,\n payload: {\n pivot: {\n y: { $calc: 'powerHeight' },\n },\n y: 25,\n width: CONTAINER_SIZE,\n height: { $calc: 'powerHeight' },\n tint: COLOR_POWER,\n },\n },\n {\n id: 'energyBar',\n type: 'sprite',\n props: ['store', 'resourcesTotal'],\n shouldRun: ({ state: { store = {} } }) => store['energy'] > 0,\n payload: {\n pivot: {\n y: { $calc: 'energyHeight' },\n },\n y: 25,\n width: CONTAINER_SIZE,\n height: { $calc: 'energyHeight' },\n tint: COLOR_ENERGY,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n shouldRun: ({ calcs: { resourcesTotal } }) => resourcesTotal > 0,\n payload: {\n texture: 'glow',\n width: 200,\n height: 200,\n alpha: 1,\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n payload: {\n texture: 'glow',\n width: 800,\n height: 800,\n alpha: 0.5,\n },\n },\n ],\n zIndex: 7,\n};\n","const CELL_SIZE = 100;\n\nconst FLAG_COLORS = {\n 1: 0xF44336,\n 2: 0x9C27B0,\n 3: 0x2196F3,\n 4: 0x00BCD4,\n 5: 0x4CAF50,\n 6: 0xFFEB3B,\n 7: 0xFF9800,\n 8: 0x795548,\n 9: 0x9E9E9E,\n 10: 0xFFFFFF,\n};\n\nexport default {\n calculations: [\n {\n id: 'color',\n props: ['color'],\n func: ({ state: { color }, world: { options: { userFlagColor } } }) =>\n !userFlagColor && color ? parseInt(color.substring(1), 16) : undefined,\n },\n {\n id: 'flagColor',\n func: ({ state: { color } }) => FLAG_COLORS[color],\n },\n {\n id: 'flagSecondaryColor',\n func: ({ state: { secondaryColor } }) => FLAG_COLORS[secondaryColor],\n },\n ],\n\n processors: [\n // userFlagColor mode: primary flag sprite\n {\n type: 'sprite',\n props: ['color'],\n layer: 'effects',\n payload: {\n texture: 'flag',\n width: 200,\n height: 200,\n tint: { $calc: 'flagColor' },\n },\n when: ({ world: { options: { userFlagColor } } }) => !!userFlagColor,\n },\n // userFlagColor mode: secondary flag sprite\n {\n type: 'sprite',\n props: ['secondaryColor'],\n layer: 'effects',\n payload: {\n texture: 'flag-secondary',\n width: 200,\n height: 200,\n tint: { $calc: 'flagSecondaryColor' },\n },\n when: ({ state: { secondaryColor }, world: { options: { userFlagColor } } }) =>\n !!userFlagColor && !!secondaryColor,\n },\n // userFlagColor mode: flag name text\n {\n type: 'text',\n props: ['color'],\n layer: 'effects',\n when: ({ world: { options: { userFlagColor } }, stateExtra: { gameData: { showFlagsNames } } }) => \n !!userFlagColor && !!showFlagsNames,\n payload: {\n text: { $state: 'name' },\n style: {\n align: 'center',\n fill: { $calc: 'flagColor' },\n fontFamily: 'Roboto, sans-serif',\n fontSize: 60,\n stroke: '#111',\n strokeThickness: 10,\n },\n anchor: {\n x: 0.5,\n y: -0.5,\n },\n },\n },\n // default mode: primary flag sprite\n {\n type: 'sprite',\n props: ['user'],\n layer: 'effects',\n payload: {\n texture: 'flag',\n width: 200,\n height: 200,\n tint: { $calc: 'playerColor' },\n },\n when: ({ world: { options: { userFlagColor } } }) => !userFlagColor,\n },\n // default mode: secondary flag sprite\n {\n type: 'sprite',\n props: ['color'],\n layer: 'effects',\n payload: {\n texture: 'flag-secondary',\n width: 200,\n height: 200,\n tint: { $calc: 'color' },\n },\n when: ({ state: { color }, world: { options: { userFlagColor } } }) =>\n !userFlagColor && !!color,\n },\n ],\n actions: [\n {\n id: 'moveTo',\n props: ['x', 'y'],\n actions: [{\n action: 'MoveTo',\n params: [\n { $state: 'x', koef: CELL_SIZE },\n { $state: 'y', koef: CELL_SIZE },\n 0,\n ],\n }],\n },\n ],\n};\n","/**\n * Created by vedi on 31/08/2017.\n */\nimport resourceTotal from '../calculation-templates/resourceTotal';\n\nconst mineralPath = {\n texture: 'lab-mineral',\n tint: 0x777777,\n anchor: {\n y: 1,\n },\n scale: {\n x: 0.6875,\n y: 0.6875,\n },\n y: 25,\n};\n\nconst mineralColorActive = 0xffffff;\n\nconst energyRectangle = {\n color: 0xffe56d,\n x: -40,\n y: 32,\n width: 67,\n height: 10,\n};\n\nconst isCooldown = ({ state: { cooldownTime }, stateExtra: { gameTime } }) =>\n cooldownTime && cooldownTime > gameTime;\n\nexport default {\n calculations: [\n resourceTotal(),\n {\n id: 'mineralPathScale',\n props: ['store', 'storeCapacity', 'storeCapacityResource'],\n func: ({ state: { store, storeCapacity, storeCapacityResource }, calcs: { resourcesTotal } }) => {\n const { scale: { x: scale } } = mineralPath;\n const mineralType = _(store).keys().filter(k => k != 'energy' && store[k]).first();\n if(!mineralType) {\n return 0;\n }\n const mineralCapacity = storeCapacityResource[mineralType] || storeCapacity - _.sum(storeCapacityResource);\n if(!mineralCapacity) {\n return 0;\n }\n return (scale * (store[mineralType]||0)) / mineralCapacity;\n },\n },\n {\n id: 'energyWidth',\n props: ['store', 'storeCapacityResource'],\n func: ({ state: { store, storeCapacityResource } }) =>\n storeCapacityResource && storeCapacityResource.energy ?\n (energyRectangle.width * (store.energy||0)) / storeCapacityResource.energy : 0,\n },\n ],\n processors: [\n {\n type: 'sprite',\n once: 'true',\n payload: {\n texture: 'lab',\n width: 200,\n tint: { $calc: 'playerColor' },\n },\n },\n {\n type: 'sprite',\n once: 'true',\n id: 'lab-highlight',\n payload: {\n texture: 'lab-highlight',\n width: 200,\n alpha: 0,\n },\n },\n {\n type: 'runAction',\n when: isCooldown,\n payload: {\n id: 'lab-highlight',\n },\n actions: [{\n action: 'Sequence',\n params: [[\n {\n action: 'AlphaTo',\n params: [0.5, { $processorParam: 'tickDuration', koef: 0.2 }],\n },\n {\n action: 'AlphaTo',\n params: [0, { $processorParam: 'tickDuration', koef: 0.8 }],\n },\n ]],\n }],\n },\n {\n type: 'sprite',\n once: 'true',\n payload: mineralPath,\n },\n {\n type: 'sprite',\n props: ['mineralPathScale'],\n payload: Object.assign(\n { },\n mineralPath,\n {\n scale: { x: { $calc: 'mineralPathScale' }, y: { $calc: 'mineralPathScale' } },\n tint: mineralColorActive,\n }\n ),\n },\n {\n type: 'draw',\n props: ['energyWidth'],\n payload: {\n id: 'energyRectangle',\n drawings: [\n { method: 'beginFill', params: [energyRectangle.color] },\n {\n method: 'drawRect',\n params: [\n { $calc: 'energyWidth', koef: -0.5 },\n energyRectangle.y,\n { $calc: 'energyWidth' },\n energyRectangle.height,\n ],\n },\n { method: 'endFill' },\n ],\n },\n },\n {\n type: 'creepActions',\n props: '*',\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n shouldRun: (({ state: { store }, calcs: { resourcesTotal } }) => (resourcesTotal-(store.energy||0)) > 0),\n payload: {\n texture: 'glow',\n width: 150,\n height: 150,\n alpha: 1,\n },\n },\n {\n id: 'light',\n type: 'sprite',\n once: true,\n layer: 'lighting',\n props: ['store'],\n shouldRun: (({ state: { store }, calcs: { resourcesTotal } }) => (resourcesTotal-(store.energy||0)) > 0),\n payload: {\n texture: 'glow',\n width: 500,\n height: 500,\n alpha: 0.3,\n },\n },\n {\n id: 'reactionLight',\n type: 'sprite',\n layer: 'effects',\n once: true,\n payload: {\n texture: 'glow',\n width: 150,\n height: 150,\n alpha: 0,\n blendMode: 1,\n },\n },\n {\n type: 'runAction',\n shouldRun: (({ state }) => state.actionLog && state.actionLog.runReaction),\n payload: {\n id: 'reactionLight',\n },\n actions: [\n {\n action: 'Sequence',\n params: [\n [\n {\n action: 'DelayTime',\n params: [{ $processorParam: 'tickDuration', koef: 0.3 }],\n },\n {\n action: 'AlphaTo',\n params: [1.0, { $processorParam: 'tickDuration', koef: 0.15 }],\n },\n {\n action: 'AlphaTo',\n params: [0.0, { $processorParam: 'tickDuration', koef: 0.55 }],\n },\n ],\n ],\n },\n ],\n },\n {\n type: 'runAction',\n shouldRun: (({ state }) => state.actionLog && state.actionLog.reverseReaction),\n payload: {\n id: 'reactionLight',\n },\n actions: [\n {\n action: 'Sequence',\n params: [\n [\n {\n action: 'AlphaTo',\n params: [1.0, { $processorParam: 'tickDuration', koef: 0.15 }],\n },\n {\n action: 'AlphaTo',\n params: [0.0, { $processorParam: 'tickDuration', koef: 0.55 }],\n },\n {\n action: 'DelayTime',\n params: [{ $processorParam: 'tickDuration', koef: 0.3 }],\n },\n ],\n ],\n }\n ]\n },\n ],\n zIndex: 15,\n};\n","/**\n * Created by vedi on 29/08/2017.\n */\n\nexport default {\n calculations: [\n {\n id: 'energyScale',\n props: ['store', 'storeCapacityResource'],\n func: ({ state: { store, storeCapacityResource } }) =>\n storeCapacityResource ? Math.min(1, (store.energy||0) / storeCapacityResource.energy) : 0,\n },\n ],\n processors: [\n {\n type: 'sprite',\n once: 'true',\n payload: {\n texture: 'link-border',\n width: 100,\n height: 100,\n tint: { $calc: 'playerColor' },\n },\n },\n {\n type: 'sprite',\n once: 'true',\n payload: {\n texture: 'link',\n width: 100,\n height: 100,\n },\n },\n {\n type: 'container',\n once: 'true',\n payload: {\n id: 'energyContainer',\n },\n },\n {\n type: 'sprite',\n once: 'true',\n payload: {\n id: 'energy',\n parentId: 'energyContainer',\n texture: 'link-energy',\n width: 50,\n height: 50,\n },\n },\n {\n type: 'runAction',\n props: ['energyScale'],\n payload: {\n id: 'energyContainer',\n },\n actions: [\n {\n action: 'ScaleTo',\n params: [\n { $calc: 'energyScale' },\n { $calc: 'energyScale' },\n { $processorParam: 'tickDuration' },\n ],\n },\n ],\n },\n {\n type: 'creepActions',\n props: '*',\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n shouldRun: (({ state: { store } }) => store.energy > 0),\n payload: {\n texture: 'glow',\n width: 100,\n height: 100,\n alpha: 1,\n },\n },\n {\n id: 'light',\n once: true,\n type: 'sprite',\n layer: 'lighting',\n shouldRun: (({ state: { store } }) => store.energy > 0),\n payload: {\n texture: 'glow',\n width: 400,\n height: 400,\n alpha: 0.5,\n },\n },\n\n ],\n zIndex: 9,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport { flickering } from '../action-templates';\n\nconst COLORS = {\n L: {\n foreground: 0x89F4A5,\n background: 0x3F6147,\n },\n U: {\n foreground: 0x88D6F7,\n background: 0x1B617F,\n },\n K: {\n foreground: 0x9370FF,\n background: 0x331A80,\n },\n Z: {\n foreground: 0xF2D28B,\n background: 0x594D33,\n },\n X: {\n foreground: 0xFF7A7A,\n background: 0x4F2626,\n },\n O: {\n foreground: 0xCCCCCC,\n background: 0x4D4D4D,\n },\n H: {\n foreground: 0xCCCCCC,\n background: 0x4D4D4D,\n },\n};\n\nexport default {\n calculations: [\n {\n id: 'foregroundColor',\n once: true,\n func: ({ state: { mineralType } }) => COLORS[mineralType].foreground,\n },\n {\n id: 'backgroundColor',\n once: true,\n func: ({ state: { mineralType } }) => COLORS[mineralType].background,\n },\n ],\n processors: [\n {\n type: 'draw',\n once: true,\n payload: {\n drawings: [\n {\n method: 'lineStyle',\n params: [\n 10,\n { $calc: 'foregroundColor' },\n 1,\n ],\n },\n { method: 'beginFill', params: [{ $calc: 'backgroundColor' }] },\n {\n method: 'drawCircle',\n params: [\n 0,\n 0,\n 54,\n ],\n },\n { method: 'endFill' },\n ],\n },\n },\n {\n type: 'text',\n once: true,\n payload: {\n text: { $state: 'mineralType' },\n style: {\n align: 'center',\n fill: { $calc: 'foregroundColor' },\n fontFamily: 'Roboto, serif',\n fontSize: 82,\n fontWeight: 'bold',\n },\n anchor: {\n x: 0.5,\n y: 0.5,\n },\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 200,\n height: 200,\n alpha: 1,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 700,\n height: 700,\n alpha: 0.7,\n tint: { $calc: 'foregroundColor' },\n },\n actions: [flickering(0.7, 0.4, 1.0, 0.4)],\n },\n ],\n zIndex: 2,\n};\n","const scaleAction = {\n action: 'Repeat',\n params: [\n {\n action: 'Sequence',\n params: [[\n {\n action: 'Ease',\n params: [\n {\n action: 'ScaleTo',\n params: [0.6, 0.6, 1],\n },\n 'EASE_IN_OUT_QUAD',\n ],\n },\n {\n action: 'Ease',\n params: [\n {\n action: 'ScaleTo',\n params: [1, 1, 1],\n },\n 'EASE_IN_OUT_QUAD',\n ],\n },\n ]],\n },\n ],\n};\n\nconst landed = ({ state: { landTime }, stateExtra: { gameTime } }) => landTime <= gameTime;\nconst notLanded = (...params) => !landed(...params);\n\nexport default {\n calculations: [\n {\n id: 'landTimeSpeed',\n func: ({ state: { landTime }, stateExtra: { gameTime } }) => {\n if (landTime <= gameTime) {\n return Number.MAX_VALUE;\n }\n return Math.max(0.4, ((Math.round((landTime - gameTime) / 100) * 100) / 50000) * 8);\n },\n },\n {\n id: 'offsetToZeroX',\n func: ({ state: { x }, world: { options: { CELL_SIZE } } }) => -(x + 0.5) * CELL_SIZE,\n },\n {\n id: 'offsetToZeroY',\n func: ({ state: { y }, world: { options: { CELL_SIZE } } }) => -(y + 0.5) * CELL_SIZE,\n },\n ],\n processors: [\n {\n type: 'sprite',\n layer: 'effects',\n once: true,\n payload: {\n texture: 'nuke',\n alpha: 0.7,\n },\n when: notLanded,\n actions: [scaleAction],\n },\n {\n type: 'sprite',\n layer: 'effects',\n once: true,\n payload: {\n texture: 'nuke',\n blur: 2,\n blendMode: 3,\n },\n when: notLanded,\n actions: [scaleAction],\n },\n {\n type: 'circle',\n layer: 'effects',\n once: true,\n payload: {\n color: 0xFF2222,\n radius: 110,\n blendMode: 1,\n alpha: 0.5,\n },\n when: notLanded,\n actions: [scaleAction],\n },\n {\n type: 'circle',\n layer: 'effects',\n props: ['landTimeSpeed'],\n payload: {\n color: 0xFF0000,\n radius: 600,\n alpha: 0,\n blendMode: 1,\n blur: 30,\n },\n when: notLanded,\n actions: [\n {\n action: 'Repeat',\n params: [\n {\n action: 'Sequence',\n params: [[\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [0, 0, { $calc: 'landTimeSpeed' }],\n },\n {\n action: 'AlphaTo',\n params: [0.4, { $calc: 'landTimeSpeed' }],\n },\n {\n action: 'FilterTo',\n params: [0, 'blur', 0.5,\n { $calc: 'landTimeSpeed', koef: 0.5 }],\n },\n ]],\n },\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [1, 1, 0],\n },\n {\n action: 'AlphaTo',\n params: [0, 0],\n },\n {\n action: 'FilterTo',\n params: [0, 'blur', 30, 0],\n },\n ]],\n },\n ]],\n },\n ],\n },\n ],\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n when: notLanded,\n payload: {\n texture: 'glow',\n tint: 0xFF4444,\n width: 700,\n height: 700,\n },\n },\n {\n type: 'sprite',\n layer: 'effects',\n once: true,\n payload: {\n texture: 'glow',\n alpha: 1.0,\n tint: 0xff2222,\n width: 1,\n height: 1,\n blendMode: 1,\n },\n when: landed,\n actions: [\n {\n action: 'Spawn',\n params: [[\n {\n action: 'Ease',\n params: [\n {\n action: 'ScaleTo',\n params: [20, 20, { $processorParam: 'tickDuration' }],\n },\n ],\n },\n {\n action: 'AlphaTo',\n params: [0, { $processorParam: 'tickDuration' }],\n },\n ]],\n },\n ],\n },\n {\n type: 'draw',\n once: true,\n layer: 'effects',\n when: landed,\n payload: {\n x: { $calc: 'offsetToZeroX' },\n y: { $calc: 'offsetToZeroY' },\n blendMode: 1,\n alpha: 0.7,\n drawings: [\n { method: 'beginFill', params: [0xFF0000] },\n {\n method: 'drawRect',\n params: [\n 0,\n 0,\n { $calc: 'viewBox' },\n { $calc: 'viewBox' },\n ],\n },\n { method: 'endFill' },\n ],\n },\n actions: [\n {\n action: 'Ease',\n params: [\n {\n action: 'AlphaTo',\n params: [0, { $processorParam: 'tickDuration' }],\n },\n ],\n },\n ],\n },\n ],\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nconst resourceTriangle = {\n color: 0xffe56d,\n x: 0,\n y: 10,\n width: 86,\n height: 118,\n};\n\nconst gRectangle = {\n color: 0xffffff,\n x: -40,\n y: 35,\n width: 80,\n height: 15,\n};\n\nexport default {\n calculations: [\n {\n id: 'energyTrianglePoints',\n props: ['store', 'storeCapacityResource'],\n func: ({ state: { store, storeCapacityResource } }) => {\n const { x, y } = resourceTriangle;\n let { width, height } = resourceTriangle;\n const koef = (store.energy||0) / storeCapacityResource.energy;\n width *= koef;\n height *= koef;\n return [\n x - (width / 2), y,\n x, y - height,\n x + (width / 2), y,\n ];\n },\n },\n {\n id: 'gWidth',\n func: ({ state: { store, storeCapacityResource } }) =>\n storeCapacityResource && storeCapacityResource['G'] ?\n (gRectangle.width * (store['G']||0)) / storeCapacityResource['G'] : 0,\n },\n ],\n processors: [\n {\n type: 'sprite',\n once: 'true',\n payload: {\n texture: 'nuker-border',\n width: 300,\n height: 300,\n y: -40,\n tint: { $calc: 'playerColor' },\n },\n },\n {\n type: 'sprite',\n once: 'true',\n payload: {\n texture: 'nuker',\n width: 300,\n height: 300,\n y: -40,\n },\n },\n {\n type: 'draw',\n props: ['energyTrianglePoints'],\n payload: {\n id: 'energyTriangle',\n drawings: [\n { method: 'beginFill', params: [resourceTriangle.color] },\n {\n method: 'drawPolygon',\n params: [{ $calc: 'energyTrianglePoints' }],\n },\n { method: 'endFill' },\n ],\n },\n },\n {\n type: 'draw',\n props: ['gWidth'],\n payload: {\n id: 'gRectangle',\n drawings: [\n { method: 'beginFill', params: [gRectangle.color] },\n {\n method: 'drawRect',\n params: [\n { $calc: 'gWidth', koef: -0.5 },\n gRectangle.y,\n { $calc: 'gWidth' },\n gRectangle.height,\n ],\n },\n { method: 'endFill' },\n ],\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 100,\n height: 100,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 800,\n height: 800,\n alpha: 0.5,\n },\n },\n ],\n zIndex: 7\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport constants from '@screeps/common/lib/constants';\n\nconst ellipse = {\n color: 0xf41f33,\n strokeColor: 0x8d000d,\n strokeWidth: 10,\n};\n\nexport default {\n calculations: [\n {\n id: 'radius',\n props: ['store'],\n func: ({ state: { store } }) => {\n const { POWER_BANK_CAPACITY_MAX } = constants;\n return Math.sqrt(((store.power / POWER_BANK_CAPACITY_MAX) * 3000) / Math.PI);\n },\n },\n ],\n processors: [\n {\n type: 'sprite',\n once: 'true',\n payload: {\n texture: 'powerBank',\n width: 200,\n height: 200,\n },\n },\n {\n type: 'draw',\n once: true,\n payload: {\n id: 'static',\n drawings: [\n {\n method: 'lineStyle',\n params: [\n ellipse.strokeWidth,\n ellipse.strokeColor,\n 1,\n ],\n },\n { method: 'beginFill', params: [ellipse.color] },\n {\n method: 'drawCircle',\n params: [\n 0,\n 0,\n { $calc: 'radius' },\n ],\n },\n { method: 'endFill' },\n ],\n },\n actions: [\n {\n action: 'Repeat',\n params: [\n {\n action: 'Spawn',\n params: [[\n {\n action: 'Sequence',\n params: [[\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x', koef: 0.6 },\n { $rel: 'scale.y', koef: 0.6 },\n { $processorParam: 'tickDuration', koef: 0.66 },\n ],\n },\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x' },\n { $rel: 'scale.y' },\n { $processorParam: 'tickDuration', koef: 0.34 },\n ],\n },\n ]],\n },\n {\n action: 'Sequence',\n params: [[\n {\n action: 'TintTo',\n params: [\n 0xd31022,\n { $processorParam: 'tickDuration', koef: 0.33 },\n ],\n },\n {\n action: 'TintTo',\n params: [\n 0x8d000d,\n { $processorParam: 'tickDuration', koef: 0.33 },\n ],\n },\n {\n action: 'TintTo',\n params: [\n 0xf41f33,\n { $processorParam: 'tickDuration', koef: 0.34 },\n ],\n },\n ]],\n },\n ]],\n },\n ],\n },\n ],\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 800,\n height: 800,\n tint: 0xFF8080,\n },\n },\n ],\n zIndex: 11,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport { calculateAngle } from '../../../helpers/mathHelper';\nimport {displayName} from \"../action-templates\";\n\nconst CELL_SIZE = 100;\n\nconst BADGE_GEOMETRY = {\n commander: {\n pivotY: 30,\n size: 65,\n },\n executor: {\n pivotY: 30,\n size: 45,\n },\n operator: {\n pivotY: 15,\n size: 63,\n },\n};\n\nexport default {\n calculations: [\n {\n id: 'displayName',\n func: ({ calcs: { isOwner }, state: { name, user }, stateExtra: { users } }) =>\n (isOwner ? name : users[user].username),\n },\n {\n id: 'rotation',\n props: ['x', 'y'],\n func: ({ prevState: { x: prevX, y: prevY } = {}, state: { x, y } }) => {\n return (prevX !== undefined && prevY !== undefined ?\n calculateAngle(prevX, prevY, x, y) : 0);\n },\n },\n {\n id: 'texture',\n props: ['level'],\n func: ({ state: { level, className } }) => `${className}-lvl${Math.min(4, Math.ceil(level / 6))}`,\n },\n {\n id: 'texture-light',\n func: ({ state: { className } }) => `${className}-lvl4`,\n },\n {\n id: 'badgePivotY',\n props: ['className'],\n func: ({ state: { className } }) => BADGE_GEOMETRY[className].pivotY,\n },\n {\n id: 'badgeSize',\n props: ['className'],\n func: ({ state: { className } }) => BADGE_GEOMETRY[className].size,\n },\n {\n id: 'safeMode',\n func: ({\n stateExtra,\n state: { user },\n stateExtra: { controller, gameTime, objects },\n }) => {\n if (controller === undefined) {\n controller = objects.find(i => i.type === 'controller') || null;\n stateExtra.controller = controller;\n }\n return controller && controller.safeMode > gameTime && controller.user !== user ?\n 0.5 : 1.0;\n },\n },\n ],\n processors: [\n {\n type: 'container',\n once: 'true',\n payload: {\n id: 'mainContainer',\n },\n },\n {\n type: 'sprite',\n props: ['texture'],\n payload: {\n id: 'sprite',\n parentId: 'mainContainer',\n texture: { $calc: 'texture' },\n width: 180,\n height: 180,\n zIndex: 0,\n tint: 0xcc3d3e,\n },\n },\n {\n type: 'userBadge',\n props: ['texture'],\n payload: {\n parentId: 'mainContainer',\n radius: 26,\n color: 0x222222,\n width: { $calc: 'badgeSize' },\n height: { $calc: 'badgeSize' },\n pivot: {\n y: { $calc: 'badgePivotY' },\n },\n },\n },\n {\n type: 'creepActions',\n payload: {\n parentId: 'mainContainer',\n },\n props: '*',\n },\n {\n type: 'powerInfluence',\n payload: {\n parentId: 'mainContainer',\n },\n props: '*',\n },\n displayName('creeps'),\n {\n type: 'say',\n layer: 'effects',\n when: ({\n state: { actionLog: { say } = {} },\n stateExtra: { gameData: { showCreepSpeech } },\n calcs: { isOwner },\n }) =>\n !!showCreepSpeech && !!say && (say.isPublic || isOwner),\n payload: {\n say: { $state: 'actionLog.say' },\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n payload: {\n parentId: 'mainContainer',\n texture: { $calc: 'texture' },\n width: 180,\n height: 180,\n alpha: 1.0,\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n payload: {\n parentId: 'mainContainer',\n texture: 'glow',\n width: 400,\n height: 400,\n alpha: 1.0,\n tint: 0xFF5555,\n },\n },\n {\n type: 'sprite',\n layer: 'effects',\n\t\t\tonce: true,\n\t\t\twhen: ({ state: { actionLog: { spawned } = {} } }) => !!spawned,\n payload: {\n\t\t\t\ttexture: 'flare2',\t\t\t\t\n\t\t\t\twidth: 400,\n\t\t\t\theight: 400,\n\t\t\t\talpha: 1,\n blendMode: 1,\n tint: 0xff1111,\n },\n actions: [\n {\n action: 'Sequence',\n params: [[\n {\n action: 'Spawn',\n params: [[\n {\n action: 'AlphaTo',\n\t\t\t\t\t\t\t\t\tparams: [0.0, { $processorParam: 'tickDuration', koef: 0.5 }], \n },\n\t\t\t\t\t\t\t\t{\n action: 'RotateBy',\n\t\t\t\t\t\t\t\t\tparams: [Math.PI / 8, { $processorParam: 'tickDuration', koef: 0.5 }], \n },\n ]],\n },\n ]],\n },\n ],\n },\n ],\n actions: [\n {\n id: 'moveTo',\n props: ['x', 'y'],\n actions: [{\n action: 'Ease',\n params: [\n {\n action: 'MoveTo',\n params: [\n { $state: 'x', koef: CELL_SIZE },\n { $state: 'y', koef: CELL_SIZE },\n { $processorParam: 'tickDuration' },\n ],\n },\n 'EASE_IN_OUT_QUAD',\n ],\n }],\n },\n {\n id: 'rotateTo',\n props: ['rotation'],\n targetId: 'mainContainer',\n actions: [{\n action: 'RotateTo',\n params: [\n { $calc: 'rotation' },\n { $processorParam: 'tickDuration', koef: 0.2 },\n ],\n }],\n },\n {\n id: 'safeModeAlpha',\n props: ['safeMode'],\n targetId: 'mainContainer',\n actions: [{\n action: 'AlphaTo',\n params: [{ $calc: 'safeMode' }, 0],\n }],\n },\n ],\n disappearProcessor: { type: 'disappear' },\n zIndex: 13,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\nconst ellipse1 = {\n color: 0x222222,\n radius: 75,\n strokeColor: 0xcccccc,\n strokeWidth: 7,\n};\nconst ellipse2 = {\n color: 0x222222,\n radius: 68,\n strokeColor: 0xf41f33,\n strokeWidth: 10,\n};\n\nconst ellipse3 = {\n color: 0x181818,\n radius: 59,\n};\n\nconst ellipse4 = {\n color: 0x555555,\n radius: 38,\n};\n\nconst arc = {\n color: 0xf41f33,\n radius: 50,\n startAngle: -Math.PI / 2,\n strokeWidth: 10,\n};\n\nexport default {\n calculations: [\n {\n id: 'powerAngle',\n props: ['store', 'storeCapacityResource'],\n func: ({ state: { store, storeCapacityResource } }) =>\n arc.startAngle +\n (storeCapacityResource && storeCapacityResource.power ? (((2 * Math.PI) * (store.power||0)) / storeCapacityResource.power) : 0),\n },\n {\n id: 'resourceScale',\n props: ['store', 'storeCapacity'],\n func: ({ state: { store, storeCapacityResource } }) =>\n storeCapacityResource && storeCapacityResource.energy ? Math.min(1, (store.energy||0) / storeCapacityResource.energy) : 0,\n },\n ],\n processors: [\n {\n type: 'draw',\n once: true,\n payload: {\n id: 'static',\n drawings: [\n {\n method: 'lineStyle',\n params: [\n ellipse1.strokeWidth,\n ellipse1.strokeColor,\n 1,\n ],\n },\n { method: 'beginFill', params: [ellipse1.color] },\n {\n method: 'drawCircle',\n params: [\n 0,\n 0,\n ellipse1.radius,\n ],\n },\n { method: 'endFill' },\n {\n method: 'lineStyle',\n params: [\n ellipse2.strokeWidth,\n ellipse2.strokeColor,\n 1,\n ],\n },\n { method: 'beginFill', params: [ellipse2.color] },\n {\n method: 'drawCircle',\n params: [\n 0,\n 0,\n ellipse2.radius,\n ],\n },\n { method: 'endFill' },\n {\n method: 'lineStyle',\n params: [0, 0, 1],\n },\n { method: 'beginFill', params: [ellipse3.color] },\n {\n method: 'drawCircle',\n params: [\n 0,\n 0,\n ellipse3.radius,\n ],\n },\n { method: 'endFill' },\n ],\n },\n },\n {\n type: 'userBadge',\n once: true,\n payload: {\n parentId: 'static',\n color: ellipse4.color,\n radius: ellipse4.radius,\n },\n },\n {\n type: 'draw',\n props: ['powerAngle'],\n payload: {\n id: 'arc',\n parentId: 'static',\n drawings: [\n {\n method: 'lineStyle',\n params: [\n arc.strokeWidth,\n arc.color,\n 1,\n ],\n },\n {\n method: 'arc',\n params: [\n 0,\n 0,\n arc.radius,\n arc.startAngle,\n { $calc: 'powerAngle' },\n ],\n },\n ],\n },\n },\n {\n type: 'runAction',\n props: ['resourceScale'],\n payload: {\n id: 'resourceCircle',\n },\n actions: [\n {\n action: 'ScaleTo',\n params: [\n { $calc: 'resourceScale' },\n { $calc: 'resourceScale' },\n { $processorParam: 'tickDuration' },\n ],\n },\n ],\n },\n {\n id: 'resourceCircle',\n once: true,\n type: 'circle',\n payload: {\n parentId: 'static',\n radius: ellipse4.radius,\n color: 0xffe56d,\n scale: {\n x: { $calc: 'resourceScale' },\n y: { $calc: 'resourceScale' },\n },\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n payload: {\n texture: 'glow',\n width: 150,\n height: 150,\n alpha: 1,\n },\n },\n {\n id: 'glow',\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n alpha: 0.5,\n scale: {\n x: 1,\n y: 1,\n },\n },\n },\n {\n type: 'runAction',\n props: ['store'],\n payload: {\n id: 'glow',\n },\n actions: [{\n action: 'Sequence',\n params: [[\n {\n action: 'Spawn',\n params: [[\n {\n action: 'TintTo',\n params: [0xFF3333, { $processorParam: 'tickDuration', koef: 0.2 }],\n },\n {\n action: 'AlphaTo',\n params: [1, { $processorParam: 'tickDuration', koef: 0.2 }],\n },\n {\n action: 'ScaleTo',\n params: [2, 2, { $processorParam: 'tickDuration', koef: 0.2 }],\n },\n ]],\n },\n {\n action: 'Spawn',\n params: [[\n {\n action: 'TintTo',\n params: [0xFFFFFF, { $processorParam: 'tickDuration', koef: 0.8 }],\n },\n {\n action: 'AlphaTo',\n params: [0.5, { $processorParam: 'tickDuration', koef: 0.8 }],\n },\n {\n action: 'ScaleTo',\n params: [1, 1, { $processorParam: 'tickDuration', koef: 0.8 }],\n },\n ]],\n },\n ]],\n }],\n },\n ],\n actions: [\n {\n id: 'resourceScale',\n targetId: 'resourceCircle',\n props: ['resourceScale'],\n actions: [\n {\n action: 'ScaleTo',\n params: [\n { $calc: 'resourceScale' },\n { $calc: 'resourceScale' },\n { $processorParam: 'tickDuration' },\n ],\n },\n ],\n },\n ],\n zIndex: 12,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport { flickering } from '../action-templates';\n\nconst rect1 = {\n animationDuration: 4.0,\n fillColor: 0x111111,\n radius: 15,\n size: 40,\n strokeBlinkingColor: 0x0e0c04,\n strokeColor: 0x595026,\n strokeWidth: 15,\n};\n\nconst rect2 = {\n animationDuration: 2,\n fillColor: 0xffe56d,\n radius: 15,\n size: 60,\n blinkingColors: [0xffffff, 0xffcd6d, 0xffde84],\n};\n\nexport default {\n calculations: [\n {\n id: 'energySize',\n props: ['energy', 'energyCapacity'],\n func: ({ state: { energy, energyCapacity } }) =>\n (rect2.size * energy) / energyCapacity,\n },\n ],\n processors: [\n {\n type: 'draw',\n once: true,\n payload: {\n id: 'static',\n tint: rect1.strokeColor,\n drawings: [\n {\n method: 'lineStyle',\n params: [\n rect1.strokeWidth,\n 0xffffff,\n 1,\n ],\n },\n { method: 'beginFill', params: [rect1.fillColor] },\n {\n method: 'drawRoundedRect',\n params: [\n -rect1.size / 2,\n -rect1.size / 2,\n rect1.size,\n rect1.size,\n rect1.radius,\n ],\n },\n { method: 'endFill' },\n ],\n },\n actions: [{\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [\n {\n action: 'TintTo',\n params: [\n rect1.strokeBlinkingColor,\n rect1.animationDuration / 2,\n ],\n },\n {\n action: 'TintTo',\n params: [\n rect1.strokeColor,\n rect1.animationDuration / 2,\n ],\n },\n ],\n ],\n }],\n }],\n },\n {\n type: 'draw',\n props: ['energySize'],\n payload: {\n id: 'energy',\n tint: rect2.fillColor,\n drawings: [\n { method: 'beginFill', params: [0xffffff] },\n {\n method: 'drawRoundedRect',\n params: [\n { $calc: 'energySize', koef: -0.5 },\n { $calc: 'energySize', koef: -0.5 },\n { $calc: 'energySize' },\n { $calc: 'energySize' },\n rect1.radius,\n ],\n },\n { method: 'endFill' },\n ],\n },\n actions: [{\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [\n {\n action: 'TintTo',\n params: [\n rect2.blinkingColors[0],\n rect2.animationDuration / 4,\n ],\n },\n {\n action: 'TintTo',\n params: [\n rect2.blinkingColors[1],\n rect2.animationDuration / 4,\n ],\n },\n {\n action: 'TintTo',\n params: [\n rect2.blinkingColors[2],\n rect2.animationDuration / 4,\n ],\n },\n {\n action: 'TintTo',\n params: [\n rect2.fillColor,\n rect2.animationDuration / 4,\n ],\n },\n ],\n ],\n }],\n }],\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 800,\n height: 800,\n tint: 0xFFFF50,\n alpha: 0.5,\n },\n actions: [flickering(0.6, 0.4, 0.8, 0.4)],\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n shouldRun: (({ state: { energy } }) => energy > 0),\n payload: {\n texture: 'glow',\n width: 150,\n height: 150,\n tint: 0xFFFFFF,\n },\n },\n ],\n zIndex: 2,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport { displayName } from '../action-templates';\n\nconst ellipse1 = {\n color: 0xCCCCCC,\n radius: 70,\n};\n\nconst ellipse2 = {\n color: 0x181818,\n radius: 59,\n};\n\nconst ellipse3 = {\n color: 0x555555,\n radius: 38,\n};\n\nconst arc = {\n color: 0xCCCCCC,\n radius: 50,\n startAngle: -Math.PI / 2,\n strokeWidth: 10,\n};\n\nexport default {\n calculations: [\n {\n id: 'spawningAngle',\n func: ({ state: { name, spawning }, stateExtra: { gameTime } }) => {\n const { spawnTime = gameTime+0.01, needTime = 0 } = spawning || {};\n const remainingTime = spawnTime - gameTime;\n return arc.startAngle +\n (needTime ? (((2 * Math.PI) * (needTime - remainingTime)) / needTime) : 0);\n },\n },\n {\n id: 'resourceScale',\n props: ['store', 'storeCapacityResource'],\n func: ({ state: { store, storeCapacityResource } }) =>\n storeCapacityResource && storeCapacityResource.energy ?\n (store.energy||0) / storeCapacityResource.energy : 0,\n },\n {\n id: 'displayName',\n func: ({ calcs: { isOwner }, state: { name, user }, stateExtra: { users } }) =>\n (isOwner ? name : users[user] ? users[user].username : ''),\n },\n {\n id: 'badgeColor',\n func: ({ calcs: { playerColor }, world: { options: { userOwnerColor } } }) =>\n userOwnerColor ? ellipse3.color : playerColor,\n },\n ],\n processors: [\n {\n type: 'circle',\n once: true,\n payload: {\n id: 'static',\n radius: ellipse1.radius,\n color: ellipse1.color,\n },\n },\n {\n type: 'circle',\n once: true,\n payload: {\n id: 'black',\n parentId: 'static',\n radius: ellipse2.radius,\n color: ellipse2.color,\n },\n },\n {\n type: 'userBadge',\n once: true,\n payload: {\n parentId: 'black',\n color: { $calc: 'badgeColor' },\n radius: ellipse3.radius,\n },\n },\n {\n type: 'runAction',\n props: ['spawning'],\n once: true,\n shouldRun: (({ state: { spawning } }) => !!spawning),\n payload: {\n id: 'static',\n },\n actions: [\n {\n action: 'Repeat',\n params: [\n {\n action: 'Sequence',\n params: [\n [\n {\n action: 'Ease',\n params: [\n {\n action: 'ScaleTo',\n params: [\n 1.25,\n 1.25,\n 0.5,\n ],\n },\n ],\n },\n {\n action: 'Ease',\n params: [\n {\n action: 'ScaleTo',\n params: [\n 1,\n 1,\n 2,\n ],\n },\n 'EASE_IN_QUAD',\n ],\n },\n ],\n ],\n },\n ],\n },\n ],\n },\n {\n type: 'draw',\n props: ['spawningAngle'],\n payload: {\n id: 'arc',\n parentId: 'static',\n drawings: [\n {\n method: 'lineStyle',\n params: [\n arc.strokeWidth,\n arc.color,\n 1,\n ],\n },\n {\n method: 'arc',\n params: [\n 0,\n 0,\n arc.radius,\n arc.startAngle,\n { $calc: 'spawningAngle' },\n ],\n },\n ],\n },\n },\n {\n id: 'resourceCircle',\n once: true,\n type: 'circle',\n payload: {\n parentId: 'static',\n radius: ellipse3.radius,\n color: 0xffe56d,\n scale: {\n x: { $calc: 'resourceScale' },\n y: { $calc: 'resourceScale' },\n },\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n props: ['store'],\n shouldRun: (({ state: { store } }) => store.energy > 0),\n payload: {\n texture: 'glow',\n width: 100,\n height: 100,\n alpha: 1,\n },\n },\n {\n id: 'light',\n type: 'sprite',\n layer: 'lighting',\n once: true,\n payload: {\n texture: 'glow',\n width: 600,\n height: 600,\n alpha: 0.5,\n },\n },\n {\n type: 'runAction',\n props: ['spawning'],\n shouldRun: (({ state: { spawning } }) => !!spawning),\n once: true,\n payload: {\n id: 'light',\n },\n actions: [\n {\n action: 'Repeat',\n params: [\n {\n action: 'Sequence',\n params: [\n [\n {\n action: 'Ease',\n params: [\n {\n action: 'AlphaTo',\n params: [\n 1,\n 0.5,\n ],\n },\n ],\n },\n {\n action: 'Ease',\n params: [\n {\n action: 'AlphaTo',\n params: [\n 0.5,\n 2,\n ],\n },\n 'EASE_IN_QUAD',\n ],\n },\n ],\n ],\n },\n ],\n },\n ],\n },\n displayName('spawns'),\n ],\n actions: [\n {\n id: 'resourceScale',\n targetId: 'resourceCircle',\n props: ['resourceScale'],\n actions: [\n {\n action: 'ScaleTo',\n params: [\n { $calc: 'resourceScale' },\n { $calc: 'resourceScale' },\n { $processorParam: 'tickDuration' },\n ],\n },\n ],\n },\n ],\n zIndex: 8,\n};\n","/**\n * Created by vedi on 19/04/2017.\n */\n\nimport { resourceTotal } from '../calculation-templates';\nimport constants from '@screeps/common/lib/constants';\n\nconst WEIGHT = 110;\nconst TOTAL_HEIGHT = 140;\n\nexport default {\n texture: 'storage',\n calculations: [\n resourceTotal(),\n {\n id: 'energyBackgroundHeight',\n func: ({ calcs: { resourcesTotal }, state: { storeCapacity } }) => {\n return (resourcesTotal * TOTAL_HEIGHT) / Math.max(storeCapacity||constants.STORAGE_CAPACITY, resourcesTotal);\n },\n },\n {\n id: 'energyHeight',\n func: ({ calcs: { resourcesTotal }, state: { store, storeCapacity } }) => {\n return (store['energy'] * TOTAL_HEIGHT) / Math.max(storeCapacity||constants.STORAGE_CAPACITY, resourcesTotal);\n },\n },\n {\n id: 'powerHeight',\n func: ({ calcs: { resourcesTotal }, state: { store, storeCapacity } }) => {\n return (((store['power']||0) + (store['energy']||0)) * TOTAL_HEIGHT) / Math.max((storeCapacity||constants.STORAGE_CAPACITY), resourcesTotal);\n },\n },\n ],\n processors: [\n {\n id: 'border',\n type: 'sprite',\n once: true,\n payload: {\n texture: 'storage-border',\n width: 200,\n height: 200,\n tint: { $calc: 'playerColor' },\n },\n },\n {\n type: 'sprite',\n once: true,\n payload: {\n texture: 'storage',\n width: 200,\n height: 200,\n },\n },\n {\n id: 'otherResourcesBar',\n type: 'sprite',\n props: ['store', 'energyBackgroundHeight', 'resourcesTotal'],\n shouldRun: ({ state: { store }, calcs: { resourcesTotal } }) =>\n store['energy'] + (store['power'] || 0) < resourcesTotal,\n payload: {\n texture: 'rectangle',\n pivot: {\n y: { $calc: 'energyBackgroundHeight' },\n },\n y: TOTAL_HEIGHT / 2,\n width: WEIGHT,\n height: { $calc: 'energyBackgroundHeight' },\n tint: 0xffffff,\n },\n },\n {\n id: 'powerBar',\n type: 'sprite',\n props: ['store', 'resourcesTotal'],\n shouldRun: ({ state: { store } }) => store['power'] > 0,\n payload: {\n texture: 'rectangle',\n pivot: {\n y: { $calc: 'powerHeight' },\n },\n y: TOTAL_HEIGHT / 2,\n width: WEIGHT,\n height: { $calc: 'powerHeight' },\n tint: 0xf41f33,\n },\n },\n {\n type: 'sprite',\n id: 'energyBar',\n props: ['store', 'resourcesTotal'],\n shouldRun: ({ state: { store } }) => store['energy'] > 0,\n payload: {\n texture: 'rectangle',\n pivot: {\n y: { $calc: 'energyHeight' },\n },\n y: TOTAL_HEIGHT / 2,\n width: WEIGHT,\n height: { $calc: 'energyHeight' },\n tint: 0xffe56d,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n shouldRun: ({ calcs: { resourcesTotal } }) => resourcesTotal > 0,\n payload: {\n texture: 'glow',\n width: 200,\n height: 200,\n alpha: 1,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 800,\n height: 800,\n alpha: 0.5,\n },\n },\n ],\n zIndex: 7,\n};\n","/**\n * Created by vedi on 22/08/2017.\n */\n\nimport { resourceTotal } from '../calculation-templates';\nimport constants from '@screeps/common/lib/constants';\n\nconst ENERGY_RECT_FULL_SIZE = 76.0;\n\nconst isCooldown = ({ state: { cooldownTime }, stateExtra: { gameTime } }) =>\n cooldownTime && cooldownTime >= gameTime;\nconst isNotCooldown = (...params) => !isCooldown(...params);\n\nexport default {\n calculations: [\n resourceTotal(),\n {\n id: 'restResourceSize',\n props: ['store', 'storeCapacity', 'resourcesTotal'],\n func: ({\n state: { store = {}, storeCapacity },\n calcs: { resourcesTotal },\n }) => {\n if (resourcesTotal <= (store['energy']||0) + (store['power']||0)) {\n return 0;\n }\n const result = (ENERGY_RECT_FULL_SIZE * resourcesTotal) / (storeCapacity||constants.TERMINAL_CAPACITY);\n return Math.min(result, ENERGY_RECT_FULL_SIZE);\n },\n },\n {\n id: 'powerResourceSize',\n props: ['store', 'storeCapacity'],\n func: ({ state: { store = {}, storeCapacity } }) => {\n const result = (ENERGY_RECT_FULL_SIZE * ((store['energy']||0) + (store['power']||0))) / (storeCapacity||constants.TERMINAL_CAPACITY);\n return Math.min(result, ENERGY_RECT_FULL_SIZE);\n },\n },\n {\n id: 'energyResourceHeight',\n props: ['store', 'storeCapacity'],\n func: ({ state: { store = {}, storeCapacity } }) => {\n const result = (ENERGY_RECT_FULL_SIZE * (store['energy']||0)) / (storeCapacity||constants.TERMINAL_CAPACITY);\n return Math.min(result, ENERGY_RECT_FULL_SIZE);\n },\n },\n {\n id: 'arrowsAlpha',\n props: ['cooldownTime'],\n func: (...params) => (isCooldown(...params) ? 0.1 : 1),\n },\n ],\n processors: [\n {\n type: 'sprite',\n once: true,\n payload: {\n texture: 'terminal-border',\n width: 200,\n height: 200,\n tint: { $calc: 'playerColor' },\n },\n },\n {\n type: 'sprite',\n once: true,\n payload: {\n texture: 'terminal',\n width: 200,\n height: 200,\n },\n },\n {\n type: 'sprite',\n once: true,\n when: isCooldown,\n payload: {\n texture: 'terminal-arrows',\n width: 200,\n height: 200,\n alpha: 0.1,\n },\n },\n {\n type: 'sprite',\n once: true,\n when: isNotCooldown,\n payload: {\n texture: 'terminal-arrows',\n width: 200,\n height: 200,\n },\n },\n {\n type: 'sprite',\n when: isCooldown,\n payload: {\n texture: 'terminal-highlight',\n width: 200,\n height: 200,\n tint: 0xFFFFFF,\n alpha: 0,\n blendMode: 1,\n },\n actions: [{\n action: 'Sequence',\n params: [[\n {\n action: 'AlphaTo',\n params: [1, { $processorParam: 'tickDuration', koef: 0.2 }],\n },\n {\n action: 'AlphaTo',\n params: [0, { $processorParam: 'tickDuration', koef: 0.8 }],\n },\n ]],\n }],\n },\n {\n type: 'draw',\n payload: {\n drawings: [\n { method: 'beginFill', params: [0xffffff] },\n {\n method: 'drawRect',\n params: [\n { $calc: 'restResourceSize', koef: -0.5 },\n { $calc: 'restResourceSize', koef: -0.5 },\n { $calc: 'restResourceSize' },\n { $calc: 'restResourceSize' },\n ],\n },\n { method: 'endFill' },\n { method: 'beginFill', params: [0xf41f33] },\n {\n method: 'drawRect',\n params: [\n { $calc: 'powerResourceSize', koef: -0.5 },\n { $calc: 'powerResourceSize', koef: -0.5 },\n { $calc: 'powerResourceSize' },\n { $calc: 'powerResourceSize' },\n ],\n },\n { method: 'endFill' },\n { method: 'beginFill', params: [0xffe56d] },\n {\n method: 'drawRect',\n params: [\n { $calc: 'energyResourceHeight', koef: -0.5 },\n { $calc: 'energyResourceHeight', koef: -0.5 },\n { $calc: 'energyResourceHeight' },\n { $calc: 'energyResourceHeight' },\n ],\n },\n { method: 'endFill' },\n ],\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n shouldRun: ({ calcs: { resourcesTotal } }) => resourcesTotal > 0,\n payload: {\n texture: 'glow',\n width: 200,\n height: 200,\n alpha: 1,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 800,\n height: 800,\n alpha: 0.5,\n },\n },\n ],\n zIndex: 16,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport { resourceTotal } from '../calculation-templates';\n\nexport default {\n calculations: [\n resourceTotal(),\n {\n id: 'resourceColor',\n func: ({ calcs: { resourcesTotal, playerColor } }) =>\n (resourcesTotal > 0 ? playerColor : 0x000000),\n },\n {\n id: 'decayAlpha',\n func: ({ state: { decayTime, deathTime }, stateExtra: { gameTime } }) =>\n 1 - ((gameTime - deathTime) / (decayTime - deathTime)),\n },\n ],\n processors: [\n {\n type: 'sprite',\n id: 'tombstone-border',\n once: true,\n payload: {\n texture: 'tombstone-border',\n width: 100,\n height: 100,\n blendMode: 1,\n alpha: { $calc: 'decayAlpha' },\n },\n },\n {\n type: 'sprite',\n props: ['resourceColor'],\n payload: {\n texture: 'tombstone-resource',\n tint: { $calc: 'resourceColor' },\n alpha: 0.8,\n width: 100,\n height: 100,\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n payload: {\n texture: 'tombstone-resource',\n width: 100,\n height: 100,\n },\n },\n ],\n actions: [\n {\n targetId: 'tombstone-border',\n actions: [\n {\n action: 'AlphaTo',\n params: [\n { $calc: 'decayAlpha' },\n 0,\n ],\n },\n ],\n },\n ],\n zIndex: 5,\n};\n","/**\n * Created by vedi on 18/08/2017.\n */\n\nimport mathHelper from '../../../helpers/mathHelper';\n\nconst ENERGY_BAR_FULL_HEIGHT = 66.7;\nconst isNpc = ({ state: { user } }) => user === '3' || user === '2';\nconst isNotNpc = (...params) => !isNpc(...params);\n\n/**\n * Sprite for base.\n * Sprite for rotatable area.\n * Drawable energy bar with formula `energy / energyCapacity`\n * Shot animation\n * Autorotation:\n * 1. To shot destination, or\n * 2. To random value in idling state.\n */\nexport default {\n calculations: [\n {\n id: 'shotAnim',\n func: ({ state: { actionLog } }) =>\n actionLog.attack || actionLog.heal || actionLog.repair,\n },\n {\n id: 'rotation',\n func: ({ state: { x, y }, calcs: { shotAnim } }) => {\n const { calculateAngle } = mathHelper;\n if (!shotAnim) {\n return 0;\n }\n return calculateAngle(shotAnim.x, shotAnim.y, x, y);\n },\n },\n {\n id: 'energyBarHeight',\n props: ['store', 'storeCapacityResource'],\n func: ({ state: { store, storeCapacityResource } }) => {\n const result = storeCapacityResource && storeCapacityResource.energy ?\n (ENERGY_BAR_FULL_HEIGHT * store.energy) / storeCapacityResource.energy : 0;\n return Math.min(result, ENERGY_BAR_FULL_HEIGHT);\n },\n },\n {\n id: 'energyBarBorderRadius',\n props: ['store', 'storeCapacity'],\n func: ({ calcs: { energyBarHeight } }) => Math.min(12, energyBarHeight / 2),\n },\n ],\n processors: [\n {\n type: 'sprite',\n props: ['user'],\n payload: {\n texture: 'tower-base',\n tint: { $calc: 'playerColor' },\n width: 200,\n height: 200,\n },\n },\n {\n type: 'sprite',\n props: ['user'],\n when: isNotNpc,\n payload: {\n id: 'towerRotatable',\n texture: 'tower-rotatable',\n pivot: {\n y: 32,\n },\n width: 115,\n height: 115,\n },\n actions: [{\n action: 'RotateTo',\n params: [{ $random: Math.PI * 2 }, 0],\n }],\n },\n {\n type: 'sprite',\n props: ['user'],\n when: isNpc,\n payload: {\n id: 'towerRotatable',\n texture: 'tower-rotatable-npc',\n pivot: {\n y: 32,\n },\n width: 115,\n height: 115,\n },\n actions: [{\n action: 'RotateTo',\n params: [{ $random: Math.PI * 2 }, 0],\n }],\n },\n {\n type: 'creepActions',\n props: '*',\n layer: 'effects',\n },\n {\n type: 'runAction',\n payload: {\n id: 'towerRotatable',\n },\n when: ({ calcs: { shotAnim } }) => !!shotAnim,\n actions: [\n {\n action: 'RotateTo',\n params: [\n { $calc: 'rotation' },\n 0.3,\n ],\n },\n ],\n },\n {\n type: 'runAction',\n once: true,\n payload: {\n id: 'towerRotatable',\n },\n when: ({ calcs: { shotAnim } }) => !shotAnim,\n actions: [\n {\n action: 'Repeat',\n params: [\n {\n action: 'RotateBy',\n params: [\n Math.PI,\n 10,\n ],\n },\n ],\n },\n ],\n },\n {\n type: 'draw',\n when: isNotNpc,\n payload: {\n parentId: 'towerRotatable',\n drawings: [\n { method: 'beginFill', params: [0xffe56d] },\n {\n method: 'drawRoundedRect',\n params: [\n -45,\n 0,\n 90,\n { $calc: 'energyBarHeight' },\n { $calc: 'energyBarBorderRadius' },\n ],\n },\n { method: 'endFill' },\n ],\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n shouldRun: (({ state: { store } }) => store.energy > 0),\n payload: {\n texture: 'glow',\n width: 100,\n height: 100,\n alpha: 1,\n },\n },\n {\n id: 'light',\n once: true,\n type: 'sprite',\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 600,\n height: 600,\n alpha: 0.5,\n },\n },\n {\n type: 'runAction',\n shouldRun: (({ state: { actionLog: { repair, heal, attack } = {} } }) =>\n repair || heal || attack),\n payload: {\n id: 'light',\n },\n actions: [\n {\n action: 'Sequence',\n params: [\n [\n {\n action: 'AlphaTo',\n params: [1.0, { $processorParam: 'tickDuration', koef: 0.1 }],\n },\n {\n action: 'AlphaTo',\n params: [0.5, { $processorParam: 'tickDuration', koef: 0.3 }],\n },\n ],\n ],\n },\n ],\n },\n {\n id: 'flare',\n once: true,\n type: 'sprite',\n layer: 'effects',\n payload: {\n texture: 'flare1',\n width: 400,\n height: 400,\n alpha: 0,\n blendMode: 1,\n },\n },\n {\n type: 'runAction',\n when: ({ calcs: { shotAnim } }) => !!shotAnim,\n payload: {\n id: 'flare',\n },\n actions: [\n {\n action: 'Sequence',\n params: [\n [\n {\n action: 'AlphaTo',\n params: [0.2, { $processorParam: 'tickDuration', koef: 0.1 }],\n },\n {\n action: 'AlphaTo',\n params: [0.0, { $processorParam: 'tickDuration', koef: 0.3 }],\n },\n ],\n ],\n },\n ],\n },\n ],\n zIndex: 13,\n};\n","import constants from '@screeps/common/lib/constants';\n\nconst arc = {\n color: 0xCCCCCC,\n radius: 40,\n startAngle: -Math.PI / 2,\n strokeWidth: 10,\n};\n\nexport default {\n calculations: [\n {\n id: 'spawningAngle',\n func: ({ state: { spawning }, stateExtra: { gameTime } }) => {\n const { spawnTime = gameTime+0.01, needTime = 0 } = spawning || {};\n const remainingTime = spawnTime - gameTime;\n return arc.startAngle +\n (needTime ? (((2 * Math.PI) * (needTime - remainingTime)) / needTime) : 0);\n },\n },\n {\n id: 'ttl',\n func: ({ state: { decayTime }, stateExtra: { gameTime } }) =>\n Math.floor((decayTime - gameTime) / 100) * 100,\n },\n ],\n processors: [\n {\n type: 'sprite',\n once: 'true',\n payload: {\n texture: 'invaderCore',\n width: 200,\n height: 200,\n },\n },\n {\n type: 'siteProgress',\n payload: {\n color: 0xff0d39,\n radius: 23,\n lineWidth: 0,\n progress: { $calc: 'ttl' },\n progressTotal: constants.STRONGHOLD_DECAY_TICKS,\n },\n },\n {\n type: 'draw',\n props: ['spawningAngle'],\n payload: {\n id: 'arc',\n drawings: [\n {\n method: 'lineStyle',\n params: [\n arc.strokeWidth,\n arc.color,\n 1,\n ],\n },\n {\n method: 'arc',\n params: [\n 0,\n 0,\n arc.radius,\n arc.startAngle,\n { $calc: 'spawningAngle' },\n ],\n },\n ],\n },\n },\n {\n type: 'creepActions',\n props: '*',\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 100,\n height: 100,\n alpha: 1,\n },\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 800,\n height: 800,\n tint: 0xFF8080,\n },\n },\n\n ],\n zIndex: 17,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nimport { resourceTotal } from '../calculation-templates';\n\nexport default {\n calculations: [\n resourceTotal(),\n {\n id: 'resourceColor',\n func: ({ calcs: { resourcesTotal, playerColor } }) =>\n (resourcesTotal > 0 ? playerColor : 0x000000),\n },\n {\n id: 'decayAlpha',\n func: ({ state: { decayTime, destroyTime }, stateExtra: { gameTime } }) =>\n 1 - ((gameTime - destroyTime) / (decayTime - destroyTime)),\n },\n ],\n processors: [\n {\n type: 'sprite',\n id: 'ruin',\n once: true,\n payload: {\n texture: 'ruin',\n width: 100,\n height: 100,\n blendMode: 1,\n alpha: { $calc: 'decayAlpha' },\n },\n },\n {\n type: 'sprite',\n props: ['resourceColor'],\n payload: {\n texture: 'tombstone-resource',\n tint: { $calc: 'resourceColor' },\n alpha: 0.8,\n width: 100,\n height: 100,\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n payload: {\n texture: 'tombstone-resource',\n width: 100,\n height: 100,\n },\n },\n ],\n actions: [\n {\n targetId: 'ruin',\n actions: [\n {\n action: 'AlphaTo',\n params: [\n { $calc: 'decayAlpha' },\n 0,\n ],\n },\n ],\n },\n ],\n zIndex: 5,\n};\n","/**\n * Created by vedi on 18/03/2017.\n */\n\nimport _all from './objects/_all.metadata';\nimport constructedWall from './objects/constructedWall.metadata';\nimport constructionSite from './objects/constructionSite.metadata';\nimport container from './objects/container.metadata';\nimport controller from './objects/controller.metadata';\nimport creep from './objects/creep.metadata';\nimport deposit from './objects/deposit.metadata';\nimport energy from './objects/energy.metadata';\nimport extension from './objects/extension.metadata';\nimport extractor from './objects/extractor.metadata';\nimport factory from './objects/factory.metadata';\nimport flag from './objects/flag.metadata';\nimport keeperLair from './objects/keeperLair.metadata';\nimport lab from './objects/lab.metadata';\nimport link from './objects/link.metadata';\nimport mineral from './objects/mineral.metadata';\nimport nuke from './objects/nuke.metadata';\nimport nuker from './objects/nuker.metadata';\nimport observer from './objects/observer.metadata';\nimport portal from './objects/portal.metadata';\nimport powerBank from './objects/powerBank.metadata';\nimport powerCreep from './objects/powerCreep.metadata';\nimport powerSpawn from './objects/powerSpawn.metadata';\nimport rampart from './objects/rampart.metadata';\nimport road from './objects/road.metadata';\nimport source from './objects/source.metadata';\nimport spawn from './objects/spawn.metadata';\nimport storage from './objects/storage.metadata';\n// import tbd from './objects/tbd.metadata';\nimport terminal from './objects/terminal.metadata';\nimport tombstone from './objects/tombstone.metadata';\nimport tower from './objects/tower.metadata';\nimport invaderCore from './objects/invaderCore.metadata';\nimport ruin from './objects/ruin.metadata';\n\n// Add a pass-through filter for lighting\nclass PassThroughFilter extends PIXI.Filter {\n constructor() {\n super(undefined, undefined, {});\n }\n}\n\nexport default {\n preprocessors: [\n 'setBadgeUrls',\n 'terrain',\n ],\n layers: [ \n {\n id: 'terrain',\n afterCreate: (layer, { app, world: { options: { VIEW_BOX, CELL_SIZE,\n lighting = 'normal' } } }) => { \n async function setupExits(textureName, tileX, tileY, flipX, flipY) {\n const texture = await PIXI.Assets.load(textureName);\n const sprite = new PIXI.TilingSprite(texture,\n tileX ? VIEW_BOX : CELL_SIZE,\n tileY ? VIEW_BOX : CELL_SIZE);\n sprite.x = (-CELL_SIZE / 2) + (flipX ? VIEW_BOX - CELL_SIZE : 0);\n sprite.y = (-CELL_SIZE / 2) + (flipY ? VIEW_BOX - CELL_SIZE : 0);\n sprite.tileScale.x = CELL_SIZE / texture.width;\n sprite.tileScale.y = CELL_SIZE / texture.height;\n if (!(app.renderer instanceof PIXI.Renderer)) {\n sprite.tint = 0xa0a0a0;\n } else {\n if (lighting === 'disabled') {\n sprite.tint = 0xa0a0a0;\n }\n if (lighting === 'low') {\n sprite.tint = 0xc0c0c0;\n }\n }\n sprite.blendMode = PIXI.BLEND_MODES.ADD;\n sprite.alpha = 0.5;\n sprite.zIndex = 1;\n app.stage.addChild(sprite);\n sprite.parentLayer = layer;\n }\n\n setupExits('exit-left', false, true, false, false);\n setupExits('exit-bottom', true, false, false, true);\n setupExits('exit-top', true, false, false, false);\n setupExits('exit-right', false, true, true, false);\n },\n },\n { id: 'wallGraffiti' },\n { id: 'objects', isDefault: true },\n {\n id: 'lighting',\n afterCreate: (layer, { app, world: { options: { CELL_SIZE,\n HALF_CELL_SIZE = CELL_SIZE / 2, VIEW_BOX, lighting = 'normal' } } }) => {\n if (lighting !== 'disabled' && app.renderer instanceof PIXI.Renderer) {\n layer.filters = [new PassThroughFilter()];\n layer.filters[0].blendMode = PIXI.BLEND_MODES.MULTIPLY;\n layer.filterArea = app.renderer.screen;\n const ambient = new PIXI.Graphics();\n ambient.beginFill(0x808080, 1.0);\n ambient.drawRect(-HALF_CELL_SIZE, -HALF_CELL_SIZE, VIEW_BOX, VIEW_BOX);\n ambient.endFill();\n // Protect ambient from display hook blendMode changes\n ambient._overrideBlendMode = true;\n // Attach ambient to the lighting layer; do not re-add the layer to stage,\n // otherwise layers order may break and elements appear on wrong layers.\n layer.addChild(ambient);\n // Keep explicit assignment for consistency with other display objects\n // that rely on parentLayer-based routing.\n ambient.parentLayer = layer;\n\n if (lighting === 'low') {\n layer.alpha = 0.5;\n }\n\n layer.on('display', (element) => {\n if (!element._overrideBlendMode) {\n element.blendMode = PIXI.BLEND_MODES.SCREEN;\n }\n // console.log(element.parentLayer.__id);\n });\n } else {\n layer.on('display', (element) => {\n element.visible = false;\n });\n }\n },\n },\n { id: 'effects' },\n ],\n objects: {\n _all,\n constructedWall,\n constructionSite,\n container,\n controller,\n creep,\n deposit,\n energy,\n extension,\n extractor,\n factory,\n flag,\n keeperLair,\n lab,\n link,\n mineral,\n nuke,\n nuker,\n observer,\n portal,\n powerBank,\n powerCreep,\n powerSpawn,\n road,\n source,\n spawn,\n storage,\n terminal,\n tombstone,\n tower,\n rampart,\n invaderCore,\n ruin\n },\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nexport default {\n processors: [\n {\n type: 'resourceCircle',\n },\n {\n type: 'resourceCircle',\n layer: 'lighting',\n payload: {\n tint: 0xFFFFFF,\n },\n },\n ],\n zIndex: 1,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nexport default {\n processors: [\n {\n type: 'circle',\n once: true,\n payload: {\n radius: 60,\n color: 0x000000,\n },\n },\n {\n type: 'circle',\n once: true,\n actions: [{\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [0, 0, 0],\n },\n {\n action: 'FadeIn',\n params: [0],\n },\n ]],\n },\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x' },\n { $rel: 'scale.y' },\n 1,\n ],\n },\n {\n action: 'FadeOut',\n params: [1],\n },\n ],\n ],\n }],\n }],\n payload: {\n radius: 50,\n color: 0x780207,\n },\n },\n {\n type: 'circle',\n once: true,\n actions: [{\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [\n {\n action: 'ScaleTo',\n params: [0, 0, 0],\n },\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x', koef: 0.3 },\n { $rel: 'scale.y', koef: 0.3 },\n 1,\n ],\n },\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x' },\n { $rel: 'scale.y' },\n 1,\n ],\n },\n ],\n ],\n }],\n }],\n payload: {\n radius: 50,\n color: 0x000000,\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 800,\n height: 800,\n alpha: 0.5,\n tint: 0xFF0000,\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n payload: {\n texture: 'glow',\n width: 150,\n height: 150,\n },\n },\n ],\n zIndex: 3,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nconst ellipseBorder = {\n color: 0x111111,\n strokeWidth: 5,\n width: 45,\n height: 40,\n};\n\nconst ellipseEye = {\n strokeWidth: 5,\n width: 20,\n height: 20,\n};\n\nexport default {\n processors: [\n {\n type: 'draw',\n once: true,\n payload: {\n id: 'border',\n drawings: [\n {\n method: 'lineStyle',\n params: [\n ellipseBorder.strokeWidth,\n { $calc: 'playerColor' },\n 1,\n ],\n },\n { method: 'beginFill', params: [ellipseBorder.color] },\n {\n method: 'drawEllipse',\n params: [\n 0,\n 0,\n ellipseBorder.width,\n ellipseBorder.height,\n ],\n },\n { method: 'endFill' },\n ],\n },\n },\n {\n type: 'draw',\n once: true,\n payload: {\n id: 'eye',\n drawings: [\n {\n method: 'lineStyle',\n params: [0, 0, 1],\n },\n { method: 'beginFill', params: [{ $calc: 'playerColor' }] },\n {\n method: 'drawEllipse',\n params: [\n 0,\n 0,\n ellipseEye.width,\n ellipseEye.height,\n ],\n },\n { method: 'endFill' },\n ],\n },\n actions: [\n {\n action: 'Repeat',\n params: [\n {\n action: 'Sequence',\n params: [[\n {\n action: 'MoveTo',\n params: [20, 0, 0.25],\n },\n {\n action: 'DelayTime',\n params: [0.25],\n },\n {\n action: 'MoveTo',\n params: [0, 15, 0.25],\n },\n {\n action: 'DelayTime',\n params: [0.25],\n },\n {\n action: 'MoveTo',\n params: [-20, 0, 0.25],\n },\n {\n action: 'DelayTime',\n params: [0.25],\n },\n {\n action: 'MoveTo',\n params: [0, -15, 0.25],\n },\n {\n action: 'DelayTime',\n params: [0.25],\n },\n ]],\n },\n ],\n },\n ],\n },\n {\n type: 'sprite',\n once: true,\n layer: 'lighting',\n payload: {\n texture: 'glow',\n width: 800,\n height: 800,\n alpha: 0.5,\n },\n },\n ],\n zIndex: 10,\n};\n","/**\n * Created by vedi on 23/04/2017.\n */\n\nexport default {\n processors: [\n {\n type: 'circle',\n once: true,\n payload: {\n radius: 45,\n color: 0x111133,\n alpha: 0.5,\n },\n },\n {\n type: 'circle',\n once: true,\n actions: [{\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [0, 0, 0],\n },\n {\n action: 'AlphaTo',\n params: [0.5, 0],\n },\n ]],\n },\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x' },\n { $rel: 'scale.y' },\n 1,\n ],\n },\n {\n action: 'FadeOut',\n params: [1],\n },\n ],\n ],\n }],\n }],\n payload: {\n radius: 40,\n color: 0x61c0ed,\n alpha: 0.5,\n },\n },\n {\n type: 'circle',\n once: true,\n actions: [{\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [\n [\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [0, 0, 0],\n },\n {\n action: 'AlphaTo',\n params: [0.5, 0],\n },\n ]],\n },\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x', koef: 0.3 },\n { $rel: 'scale.y', koef: 0.3 },\n 1,\n ],\n },\n {\n action: 'Spawn',\n params: [[\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x' },\n { $rel: 'scale.y' },\n 1,\n ],\n },\n {\n action: 'FadeOut',\n params: [1],\n },\n ]],\n },\n\n ],\n ],\n }],\n }],\n payload: {\n radius: 40,\n color: 0x111133,\n alpha: 0.5,\n },\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n payload: {\n texture: 'glow',\n width: 700,\n height: 700,\n tint: 0x9999FF,\n alpha: 0.7,\n },\n actions: [{\n action: 'Spawn',\n params: [[\n {\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [[\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x', koef: 1.2 },\n { $rel: 'scale.y', koef: 1.2 },\n 2,\n ],\n },\n {\n action: 'ScaleTo',\n params: [\n { $rel: 'scale.x' },\n { $rel: 'scale.y' },\n 2,\n ],\n },\n ]],\n }],\n },\n {\n action: 'Repeat',\n params: [{\n action: 'Sequence',\n params: [[\n {\n action: 'AlphaTo',\n params: [0.1, 3.5],\n },\n {\n action: 'AlphaTo',\n params: [0.7, 3.5],\n },\n ]],\n }],\n },\n ]],\n }],\n },\n {\n type: 'sprite',\n layer: 'lighting',\n once: true,\n payload: {\n texture: 'glow',\n width: 150,\n height: 150,\n tint: 0x7777FF,\n },\n },\n ],\n zIndex: 3,\n};\n","/**\n * Created by vedi on 17/08/2017.\n */\n\nexport default {\n processors: [\n {\n type: 'road',\n },\n ],\n disappearProcessor: { type: 'disappear' },\n zIndex: -1\n};\n","export default {\n calculations: [\n {\n id: 'rampartColor',\n once: true,\n func: ({ state: { user }, stateExtra: { gameData: { player } }, world: { options: { userOwnerColor } }, calcs: { playerColor } }) =>\n userOwnerColor ? playerColor : (user === player ? 0x44FF44 : 0xFF4444),\n },\n ],\n processors: [\n {\n type: 'sprite',\n layer: 'effects',\n props: ['isPublic'],\n payload: {\n texture: 'rampart',\n width: 100,\n height: 100,\n alpha: 0.5,\n tint: { $calc: 'rampartColor' },\n },\n shouldRun: ({ state: { isPublic } }) => !!isPublic,\n },\n ],\n zIndex: 0,\n};\n"],"names":["Object","assign","exports","OK","ERR_NOT_OWNER","ERR_NO_PATH","ERR_NAME_EXISTS","ERR_BUSY","ERR_NOT_FOUND","ERR_NOT_ENOUGH_ENERGY","ERR_NOT_ENOUGH_RESOURCES","ERR_INVALID_TARGET","ERR_FULL","ERR_NOT_IN_RANGE","ERR_INVALID_ARGS","ERR_TIRED","ERR_NO_BODYPART","ERR_NOT_ENOUGH_EXTENSIONS","ERR_RCL_NOT_ENOUGH","ERR_GCL_NOT_ENOUGH","FIND_EXIT_TOP","FIND_EXIT_RIGHT","FIND_EXIT_BOTTOM","FIND_EXIT_LEFT","FIND_EXIT","FIND_CREEPS","FIND_MY_CREEPS","FIND_HOSTILE_CREEPS","FIND_SOURCES_ACTIVE","FIND_SOURCES","FIND_DROPPED_RESOURCES","FIND_STRUCTURES","FIND_MY_STRUCTURES","FIND_HOSTILE_STRUCTURES","FIND_FLAGS","FIND_CONSTRUCTION_SITES","FIND_MY_SPAWNS","FIND_HOSTILE_SPAWNS","FIND_MY_CONSTRUCTION_SITES","FIND_HOSTILE_CONSTRUCTION_SITES","FIND_MINERALS","FIND_NUKES","FIND_TOMBSTONES","FIND_POWER_CREEPS","FIND_MY_POWER_CREEPS","FIND_HOSTILE_POWER_CREEPS","FIND_DEPOSITS","FIND_RUINS","TOP","TOP_RIGHT","RIGHT","BOTTOM_RIGHT","BOTTOM","BOTTOM_LEFT","LEFT","TOP_LEFT","COLOR_RED","COLOR_PURPLE","COLOR_BLUE","COLOR_CYAN","COLOR_GREEN","COLOR_YELLOW","COLOR_ORANGE","COLOR_BROWN","COLOR_GREY","COLOR_WHITE","LOOK_CREEPS","LOOK_ENERGY","LOOK_RESOURCES","LOOK_SOURCES","LOOK_MINERALS","LOOK_DEPOSITS","LOOK_STRUCTURES","LOOK_FLAGS","LOOK_CONSTRUCTION_SITES","LOOK_NUKES","LOOK_TERRAIN","LOOK_TOMBSTONES","LOOK_POWER_CREEPS","LOOK_RUINS","OBSTACLE_OBJECT_TYPES","MOVE","WORK","CARRY","ATTACK","RANGED_ATTACK","TOUGH","HEAL","CLAIM","BODYPART_COST","WORLD_WIDTH","WORLD_HEIGHT","CREEP_LIFE_TIME","CREEP_CLAIM_LIFE_TIME","CREEP_CORPSE_RATE","CREEP_PART_MAX_ENERGY","CARRY_CAPACITY","HARVEST_POWER","HARVEST_MINERAL_POWER","HARVEST_DEPOSIT_POWER","REPAIR_POWER","DISMANTLE_POWER","BUILD_POWER","ATTACK_POWER","UPGRADE_CONTROLLER_POWER","RANGED_ATTACK_POWER","HEAL_POWER","RANGED_HEAL_POWER","REPAIR_COST","DISMANTLE_COST","RAMPART_DECAY_AMOUNT","RAMPART_DECAY_TIME","RAMPART_HITS","RAMPART_HITS_MAX","ENERGY_REGEN_TIME","ENERGY_DECAY","SPAWN_HITS","SPAWN_ENERGY_START","SPAWN_ENERGY_CAPACITY","CREEP_SPAWN_TIME","SPAWN_RENEW_RATIO","SOURCE_ENERGY_CAPACITY","SOURCE_ENERGY_NEUTRAL_CAPACITY","SOURCE_ENERGY_KEEPER_CAPACITY","WALL_HITS","WALL_HITS_MAX","EXTENSION_HITS","EXTENSION_ENERGY_CAPACITY","ROAD_HITS","ROAD_WEAROUT","ROAD_WEAROUT_POWER_CREEP","ROAD_DECAY_AMOUNT","ROAD_DECAY_TIME","LINK_HITS","LINK_HITS_MAX","LINK_CAPACITY","LINK_COOLDOWN","LINK_LOSS_RATIO","STORAGE_CAPACITY","STORAGE_HITS","STRUCTURE_SPAWN","STRUCTURE_EXTENSION","STRUCTURE_ROAD","STRUCTURE_WALL","STRUCTURE_RAMPART","STRUCTURE_KEEPER_LAIR","STRUCTURE_PORTAL","STRUCTURE_CONTROLLER","STRUCTURE_LINK","STRUCTURE_STORAGE","STRUCTURE_TOWER","STRUCTURE_OBSERVER","STRUCTURE_POWER_BANK","STRUCTURE_POWER_SPAWN","STRUCTURE_EXTRACTOR","STRUCTURE_LAB","STRUCTURE_TERMINAL","STRUCTURE_CONTAINER","STRUCTURE_NUKER","STRUCTURE_FACTORY","STRUCTURE_INVADER_CORE","CONSTRUCTION_COST","CONSTRUCTION_COST_ROAD_SWAMP_RATIO","CONSTRUCTION_COST_ROAD_WALL_RATIO","CONTROLLER_LEVELS","CONTROLLER_STRUCTURES","CONTROLLER_DOWNGRADE","CONTROLLER_DOWNGRADE_RESTORE","CONTROLLER_DOWNGRADE_SAFEMODE_THRESHOLD","CONTROLLER_CLAIM_DOWNGRADE","CONTROLLER_RESERVE","CONTROLLER_RESERVE_MAX","CONTROLLER_MAX_UPGRADE_PER_TICK","CONTROLLER_ATTACK_BLOCKED_UPGRADE","CONTROLLER_NUKE_BLOCKED_UPGRADE","SAFE_MODE_DURATION","SAFE_MODE_COOLDOWN","SAFE_MODE_COST","TOWER_HITS","TOWER_CAPACITY","TOWER_ENERGY_COST","TOWER_POWER_ATTACK","TOWER_POWER_HEAL","TOWER_POWER_REPAIR","TOWER_OPTIMAL_RANGE","TOWER_FALLOFF_RANGE","TOWER_FALLOFF","OBSERVER_HITS","OBSERVER_RANGE","POWER_BANK_HITS","POWER_BANK_CAPACITY_MAX","POWER_BANK_CAPACITY_MIN","POWER_BANK_CAPACITY_CRIT","POWER_BANK_DECAY","POWER_BANK_HIT_BACK","POWER_SPAWN_HITS","POWER_SPAWN_ENERGY_CAPACITY","POWER_SPAWN_POWER_CAPACITY","POWER_SPAWN_ENERGY_RATIO","EXTRACTOR_HITS","EXTRACTOR_COOLDOWN","LAB_HITS","LAB_MINERAL_CAPACITY","LAB_ENERGY_CAPACITY","LAB_BOOST_ENERGY","LAB_BOOST_MINERAL","LAB_COOLDOWN","LAB_REACTION_AMOUNT","LAB_UNBOOST_ENERGY","LAB_UNBOOST_MINERAL","GCL_POW","GCL_MULTIPLY","GCL_NOVICE","MODE_SIMULATION","MODE_WORLD","TERRAIN_MASK_WALL","TERRAIN_MASK_SWAMP","TERRAIN_MASK_LAVA","MAX_CONSTRUCTION_SITES","MAX_CREEP_SIZE","MINERAL_REGEN_TIME","MINERAL_MIN_AMOUNT","MINERAL_RANDOM_FACTOR","MINERAL_DENSITY","MINERAL_DENSITY_PROBABILITY","MINERAL_DENSITY_CHANGE","DENSITY_LOW","DENSITY_MODERATE","DENSITY_HIGH","DENSITY_ULTRA","DEPOSIT_EXHAUST_MULTIPLY","DEPOSIT_EXHAUST_POW","DEPOSIT_DECAY_TIME","TERMINAL_CAPACITY","TERMINAL_HITS","TERMINAL_SEND_COST","TERMINAL_MIN_SEND","TERMINAL_COOLDOWN","CONTAINER_HITS","CONTAINER_CAPACITY","CONTAINER_DECAY","CONTAINER_DECAY_TIME","CONTAINER_DECAY_TIME_OWNED","NUKER_HITS","NUKER_COOLDOWN","NUKER_ENERGY_CAPACITY","NUKER_GHODIUM_CAPACITY","NUKE_LAND_TIME","NUKE_RANGE","NUKE_DAMAGE","FACTORY_HITS","FACTORY_CAPACITY","TOMBSTONE_DECAY_PER_PART","TOMBSTONE_DECAY_POWER_CREEP","RUIN_DECAY","RUIN_DECAY_STRUCTURES","PORTAL_DECAY","ORDER_SELL","ORDER_BUY","MARKET_FEE","MARKET_MAX_ORDERS","MARKET_ORDER_LIFE_TIME","FLAGS_LIMIT","SUBSCRIPTION_TOKEN","CPU_UNLOCK","PIXEL","ACCESS_KEY","PIXEL_CPU_COST","RESOURCE_ENERGY","RESOURCE_POWER","RESOURCE_HYDROGEN","RESOURCE_OXYGEN","RESOURCE_UTRIUM","RESOURCE_LEMERGIUM","RESOURCE_KEANIUM","RESOURCE_ZYNTHIUM","RESOURCE_CATALYST","RESOURCE_GHODIUM","RESOURCE_SILICON","RESOURCE_METAL","RESOURCE_BIOMASS","RESOURCE_MIST","RESOURCE_HYDROXIDE","RESOURCE_ZYNTHIUM_KEANITE","RESOURCE_UTRIUM_LEMERGITE","RESOURCE_UTRIUM_HYDRIDE","RESOURCE_UTRIUM_OXIDE","RESOURCE_KEANIUM_HYDRIDE","RESOURCE_KEANIUM_OXIDE","RESOURCE_LEMERGIUM_HYDRIDE","RESOURCE_LEMERGIUM_OXIDE","RESOURCE_ZYNTHIUM_HYDRIDE","RESOURCE_ZYNTHIUM_OXIDE","RESOURCE_GHODIUM_HYDRIDE","RESOURCE_GHODIUM_OXIDE","RESOURCE_UTRIUM_ACID","RESOURCE_UTRIUM_ALKALIDE","RESOURCE_KEANIUM_ACID","RESOURCE_KEANIUM_ALKALIDE","RESOURCE_LEMERGIUM_ACID","RESOURCE_LEMERGIUM_ALKALIDE","RESOURCE_ZYNTHIUM_ACID","RESOURCE_ZYNTHIUM_ALKALIDE","RESOURCE_GHODIUM_ACID","RESOURCE_GHODIUM_ALKALIDE","RESOURCE_CATALYZED_UTRIUM_ACID","RESOURCE_CATALYZED_UTRIUM_ALKALIDE","RESOURCE_CATALYZED_KEANIUM_ACID","RESOURCE_CATALYZED_KEANIUM_ALKALIDE","RESOURCE_CATALYZED_LEMERGIUM_ACID","RESOURCE_CATALYZED_LEMERGIUM_ALKALIDE","RESOURCE_CATALYZED_ZYNTHIUM_ACID","RESOURCE_CATALYZED_ZYNTHIUM_ALKALIDE","RESOURCE_CATALYZED_GHODIUM_ACID","RESOURCE_CATALYZED_GHODIUM_ALKALIDE","RESOURCE_OPS","RESOURCE_UTRIUM_BAR","RESOURCE_LEMERGIUM_BAR","RESOURCE_ZYNTHIUM_BAR","RESOURCE_KEANIUM_BAR","RESOURCE_GHODIUM_MELT","RESOURCE_OXIDANT","RESOURCE_REDUCTANT","RESOURCE_PURIFIER","RESOURCE_BATTERY","RESOURCE_COMPOSITE","RESOURCE_CRYSTAL","RESOURCE_LIQUID","RESOURCE_WIRE","RESOURCE_SWITCH","RESOURCE_TRANSISTOR","RESOURCE_MICROCHIP","RESOURCE_CIRCUIT","RESOURCE_DEVICE","RESOURCE_CELL","RESOURCE_PHLEGM","RESOURCE_TISSUE","RESOURCE_MUSCLE","RESOURCE_ORGANOID","RESOURCE_ORGANISM","RESOURCE_ALLOY","RESOURCE_TUBE","RESOURCE_FIXTURES","RESOURCE_FRAME","RESOURCE_HYDRAULICS","RESOURCE_MACHINE","RESOURCE_CONDENSATE","RESOURCE_CONCENTRATE","RESOURCE_EXTRACT","RESOURCE_SPIRIT","RESOURCE_EMANATION","RESOURCE_ESSENCE","REACTIONS","H","O","L","K","U","Z","G","OH","UH","UO","ZH","ZO","KH","KO","LH","LO","GH","GO","X","UH2O","UHO2","LH2O","LHO2","KH2O","KHO2","ZH2O","ZHO2","GH2O","GHO2","ZK","UL","BOOSTS","work","harvest","XUHO2","build","repair","XLH2O","dismantle","XZH2O","upgradeController","XGH2O","attack","XUH2O","ranged_attack","rangedAttack","rangedMassAttack","XKHO2","heal","rangedHeal","XLHO2","carry","capacity","XKH2O","move","fatigue","XZHO2","tough","damage","XGHO2","REACTION_TIME","PORTAL_UNSTABLE","PORTAL_MIN_TIMEOUT","PORTAL_MAX_TIMEOUT","POWER_BANK_RESPAWN_TIME","INVADERS_ENERGY_GOAL","SYSTEM_USERNAME","SIGN_NOVICE_AREA","SIGN_RESPAWN_AREA","SIGN_PLANNED_AREA","EVENT_ATTACK","EVENT_OBJECT_DESTROYED","EVENT_ATTACK_CONTROLLER","EVENT_BUILD","EVENT_HARVEST","EVENT_HEAL","EVENT_REPAIR","EVENT_RESERVE_CONTROLLER","EVENT_UPGRADE_CONTROLLER","EVENT_EXIT","EVENT_POWER","EVENT_TRANSFER","EVENT_ATTACK_TYPE_MELEE","EVENT_ATTACK_TYPE_RANGED","EVENT_ATTACK_TYPE_RANGED_MASS","EVENT_ATTACK_TYPE_DISMANTLE","EVENT_ATTACK_TYPE_HIT_BACK","EVENT_ATTACK_TYPE_NUKE","EVENT_HEAL_TYPE_MELEE","EVENT_HEAL_TYPE_RANGED","POWER_LEVEL_MULTIPLY","POWER_LEVEL_POW","POWER_CREEP_SPAWN_COOLDOWN","POWER_CREEP_DELETE_COOLDOWN","POWER_CREEP_MAX_LEVEL","POWER_CREEP_LIFE_TIME","POWER_CLASS","OPERATOR","PWR_GENERATE_OPS","PWR_OPERATE_SPAWN","PWR_OPERATE_TOWER","PWR_OPERATE_STORAGE","PWR_OPERATE_LAB","PWR_OPERATE_EXTENSION","PWR_OPERATE_OBSERVER","PWR_OPERATE_TERMINAL","PWR_DISRUPT_SPAWN","PWR_DISRUPT_TOWER","PWR_DISRUPT_SOURCE","PWR_SHIELD","PWR_REGEN_SOURCE","PWR_REGEN_MINERAL","PWR_DISRUPT_TERMINAL","PWR_OPERATE_POWER","PWR_FORTIFY","PWR_OPERATE_CONTROLLER","PWR_OPERATE_FACTORY","EFFECT_INVULNERABILITY","EFFECT_COLLAPSE_TIMER","INVADER_CORE_HITS","INVADER_CORE_CREEP_SPAWN_TIME","INVADER_CORE_EXPAND_TIME","INVADER_CORE_CONTROLLER_POWER","INVADER_CORE_CONTROLLER_DOWNGRADE","STRONGHOLD_RAMPART_HITS","STRONGHOLD_DECAY_TICKS","POWER_INFO","className","level","cooldown","effect","duration","range","ops","energy","period","BODYPARTS_ALL","RESOURCES_ALL","COLORS_ALL","INTERSHARD_RESOURCES","COMMODITIES","amount","components","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","module","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","fromAlpha","toAlpha","toDuration","fromDuration","action","params","type","additionalWhen","once","layer","when","calcs","isOwner","stateExtra","gameData","showEnemyNames","showMyNames","payload","text","$calc","style","align","fill","fontFamily","fontSize","stroke","strokeThickness","anchor","x","y","alpha1","alpha2","alpha3","alpha4","$rel","koef","$random","data","$state","calculations","id","props","func","state","user","player","users","world","options","userOwnerColor","color","playerColorHex","parseInt","substr","VIEW_BOX","effects","gameTime","values","some","power","endTime","decorations","processors","_isDisabled","drawings","method","blendMode","actions","blinking","texture","width","height","alpha","tint","hasEffect","Math","PI","hits","hitsMax","zIndex","radius","lineWidth","progress","progressTotal","disappearProcessor","_","reduce","store","sum","cur","resourceTotal","storeCapacity","resourcesTotal","shouldRun","pivot","downgradeTime","reservation","upgradeBlocked","safeMode","isPowerEnabled","visible","rotation","strokeColor","strokeWidth","$processorParam","calculateAngle","x0","y0","angle","atan2","convertGameXYToWorld","CELL_SIZE","scaleGameToWorld","value","isNpc","isNotNpc","name","username","prevState","prevX","prevY","mathHelper","min","controller","objects","find","i","parentId","spawning","displayName","actionLog","say","showCreepSpeech","isPublic","targetId","COLORS","biomass","metal","mist","silicon","depositType","harvested","max","cooldownTime","flickering","storeCapacityResource","scale","until","SPRITE_SIZE","CONTAINER_SIZE","isLevel","isLevelBlinking","isPowerOperate","FLAG_COLORS","userFlagColor","substring","secondaryColor","showFlagsNames","mineralPath","mineralType","keys","filter","k","first","mineralCapacity","runReaction","reverseReaction","foreground","background","fontWeight","landed","landTime","notLanded","Number","MAX_VALUE","round","blur","resourceTriangle","sqrt","BADGE_GEOMETRY","commander","pivotY","size","executor","operator","ceil","spawned","arc","startAngle","rect1","rect2","energyCapacity","spawnTime","needTime","remainingTime","playerColor","TOTAL_HEIGHT","ENERGY_RECT_FULL_SIZE","result","decayTime","deathTime","shotAnim","energyBarHeight","floor","destroyTime","PassThroughFilter","PIXI","Filter","constructor","super","preprocessors","layers","afterCreate","app","lighting","async","setupExits","textureName","tileX","tileY","flipX","flipY","Assets","load","sprite","TilingSprite","tileScale","renderer","Renderer","BLEND_MODES","ADD","stage","addChild","parentLayer","isDefault","HALF_CELL_SIZE","filters","MULTIPLY","filterArea","screen","ambient","Graphics","beginFill","drawRect","endFill","_overrideBlendMode","on","element","SCREEN","_all","constructedWall","constructionSite","container","creep","deposit","extension","extractor","factory","flag","keeperLair","lab","link","mineral","nuke","nuker","observer","portal","powerBank","powerCreep","powerSpawn","road","source","spawn","storage","terminal","tombstone","tower","rampart","invaderCore","ruin"],"sourceRoot":""}