@screeps/renderer-metadata 1.5.18 → 1.6.2-arena

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,"sources":["webpack://RENDERER_METADATA/webpack/bootstrap","webpack://RENDERER_METADATA/./node_modules/@screeps/common/lib/constants.js","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/observer.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/portal.metadata.js","webpack://RENDERER_METADATA/./src/objects/road.metadata.js","webpack://RENDERER_METADATA/./src/objects/rampart.metadata.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","assign","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","move","work","attack","carry","heal","ranged_attack","tough","claim","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","2","3","4","5","6","7","8","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","0","1","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","spawn","extension","road","constructedWall","rampart","link","storage","tower","observer","powerSpawn","extractor","lab","terminal","container","nuker","factory","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","H","O","L","K","Z","U","X","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","powerBank","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","G","OH","UH","UO","ZH","ZO","KH","KO","LH","LO","GH","GO","UH2O","UHO2","LH2O","LHO2","KH2O","KHO2","ZH2O","ZHO2","GH2O","GHO2","ZK","UL","BOOSTS","harvest","XUHO2","build","repair","XLH2O","dismantle","XZH2O","upgradeController","XGH2O","XUH2O","rangedAttack","rangedMassAttack","XKHO2","rangedHeal","XLHO2","capacity","XKH2O","fatigue","XZHO2","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","[object Object]","className","level","cooldown","effect","duration","range","ops","energy","period","BODYPARTS_ALL","RESOURCES_ALL","COLORS_ALL","INTERSHARD_RESOURCES","COMMODITIES","amount","components","blinking","fromAlpha","toAlpha","toDuration","fromDuration","action","params","displayName","type","additionalWhen","once","layer","when","calcs","isOwner","stateExtra","gameData","showEnemyNames","showMyNames","payload","text","$calc","style","align","fill","fontFamily","fontSize","stroke","strokeThickness","anchor","x","y","flickering","alpha1","alpha2","alpha3","alpha4","$rel","koef","$random","_all_metadata","data","$state","calculations","id","props","func","state","user","player","undefined","world","options","VIEW_BOX","effects","gameTime","values","some","constants_default","a","power","endTime","decorations","processors","_isDisabled","drawings","method","blendMode","actions","texture","width","height","alpha","tint","hasEffect","Math","PI","constructedWall_metadata","hits","hitsMax","zIndex","constructionSite_metadata","color","radius","lineWidth","progress","progressTotal","disappearProcessor","resourceTotal","_","reduce","store","sum","cur","container_metadata","storeCapacity","resourcesTotal","shouldRun","pivot","controller_metadata","downgradeTime","reservation","upgradeBlocked","safeMode","isPowerEnabled","visible","rotation","strokeColor","strokeWidth","$processorParam","mathHelper_calculateAngle","x0","y0","angle","atan2","mathHelper","calculateAngle","convertGameXYToWorld","CELL_SIZE","scaleGameToWorld","isNpc","isNotNpc","creep_metadata","users","username","prevState","prevX","prevY","min","controller","objects","find","parentId","spawning","actionLog","say","showCreepSpeech","isPublic","targetId","COLORS","biomass","metal","mist","silicon","deposit_metadata","depositType","harvested","max","cooldownTime","METADATA","extension_metadata","storeCapacityResource","scale","extractor_metadata","until","factory_metadata_isCooldown","isLevel","isLevelBlinking","constants","isPowerOperate","factory_metadata","FLAG_COLORS","9","10","flag_metadata","secondaryColor","showFlagsNames","mineralPath","energyRectangle","lab_metadata","mineralType","keys","filter","k","first","mineralCapacity","runReaction","reverseReaction","link_metadata","mineral_metadata_COLORS","foreground","background","mineral_metadata","fontWeight","nuke_metadata_scaleAction","landed","landTime","notLanded","nuke_metadata","Number","MAX_VALUE","round","blur","resourceTriangle","gRectangle","nuker_metadata","observer_metadata","powerBank_metadata","sqrt","BADGE_GEOMETRY","commander","pivotY","size","executor","operator","powerCreep_metadata","ceil","spawned","ellipse1","ellipse2","ellipse3","ellipse4","arc","startAngle","powerSpawn_metadata","rect1","rect2","source_metadata","energyCapacity","spawn_metadata_ellipse1","spawn_metadata_ellipse2","spawn_metadata_ellipse3","spawn_metadata_arc","spawn_metadata","spawnTime","needTime","remainingTime","TOTAL_HEIGHT","terminal_metadata_isCooldown","result","tombstone_metadata","playerColor","decayTime","deathTime","tower_metadata_isNpc","tower_metadata_isNotNpc","tower_metadata","shotAnim","energyBarHeight","invaderCore_metadata_arc","invaderCore_metadata","floor","ruin_metadata","destroyTime","VoidFilter","PIXI","filters","TilingSprite","extras","Graphics","BLEND_MODES","__webpack_exports__","preprocessors","layers","afterCreate","async","app","resourceManager","lighting","setupExits","textureName","tileX","tileY","flipX","flipY","getCachedResource","sprite","tileScale","renderer","WebGLRenderer","ADD","addChild","isDefault","HALF_CELL_SIZE","MULTIPLY","ambient","beginFill","drawRect","endFill","on","element","_overrideBlendMode","SCREEN","_all","constructionSite","creep","deposit","flag","keeperLair","mineral","nuke","portal","powerCreep","source","storage_metadata","terminal_metadata","tombstone","invaderCore","ruin"],"mappings":"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","file":"renderer-metadata.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n","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","/**\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: 'playerColor',\n props: ['user'],\n func: ({ calcs: { isOwner } }) => {\n if (isOwner === undefined) {\n return 0xBBBBBB;\n } else if (isOwner) {\n return 0x8fbb93;\n } else {\n return 0xFF7777;\n }\n },\n },\n {\n id: 'playerColorHex',\n props: ['user'],\n func: ({ calcs: { isOwner } }) =>\n (isOwner ? '#8fbb93' : '#FF7777'),\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: 0x5555555,\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: isNotNpc,\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;\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: 'flagColor',\n func: ({ state: { color } }) => FLAG_COLORS[color],\n },\n {\n id: 'flagSecondaryColor',\n func: ({ state: { secondaryColor } }) => FLAG_COLORS[secondaryColor],\n },\n ],\n processors: [\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 },\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 } }) => !!secondaryColor,\n },\n {\n type: 'text',\n props: ['color'],\n layer: 'effects',\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 ],\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\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\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].username),\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: ellipse3.color,\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 once: 'true',\n payload: {\n texture: 'tower-base',\n tint: { $calc: 'playerColor' },\n width: 200,\n height: 200,\n },\n },\n {\n type: 'sprite',\n once: 'true',\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 once: 'true',\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\nconst { VoidFilter } = PIXI.filters;\nconst { TilingSprite } = PIXI.extras;\nconst { Graphics, BLEND_MODES } = PIXI;\n\nexport default {\n preprocessors: [\n 'setBadgeUrls',\n 'terrain',\n ],\n layers: [\n {\n id: 'terrain',\n afterCreate: async (layer, { app, resourceManager,\n world: { options: { VIEW_BOX, CELL_SIZE,\n lighting = 'normal' } } }) => {\n function setupExits(textureName, tileX, tileY, flipX, flipY) {\n const { texture } = resourceManager.getCachedResource(textureName);\n const sprite = new 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.WebGLRenderer)) {\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 = BLEND_MODES.ADD;\n sprite.alpha = 0.5;\n sprite.zIndex = 1;\n layer.addChild(sprite);\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: async (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.WebGLRenderer) {\n layer.filters = [new VoidFilter()];\n layer.filters[0].blendMode = PIXI.BLEND_MODES.MULTIPLY;\n\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 layer.addChild(ambient);\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 });\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\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 layer: 'objects',\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 } } }) =>\n (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"],"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/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/flag.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 } }) => {\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 } }) =>\n parseInt(playerColorHex.substr(1), 16),\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: 0x5555555,\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: { $calc: 'playerColor' },\n },\n when: isNotNpc,\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","/**\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 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: 'playerColor' },\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","const CELL_SIZE = 100;\n\nexport default {\n processors: [\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 },\n {\n type: 'text',\n props: ['user'],\n layer: 'effects',\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 ],\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 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 layer: 'objects',\n },\n ],\n disappearProcessor: { type: 'disappear' },\n zIndex: -1\n};\n","export default {\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: 'playerColor' },\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","color","playerColorHex","parseInt","substr","world","options","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","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","TOTAL_HEIGHT","ENERGY_RECT_FULL_SIZE","result","playerColor","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","showFlagsNames","keeperLair","lab","link","mineral","nuke","nuker","observer","portal","powerBank","powerCreep","powerSpawn","road","source","spawn","storage","terminal","tombstone","tower","rampart","invaderCore","ruin"],"sourceRoot":""}