-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathevolve_autoscript.user.js
More file actions
338 lines (276 loc) · 370 KB
/
evolve_autoscript.user.js
File metadata and controls
338 lines (276 loc) · 370 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
// ==UserScript==
// @name Evolve AutoScript
// @version 1.3.7
// @author HLXII
// @description Cheat your way through the world
// @homepage https://github.com/HLXII/Evolve-Autoscript
// @match https://pmotschmann.github.io/Evolve/
// @bugs https://github.com/HLXII/Evolve-Autoscript/issues
// ==/UserScript==
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = "./src/main.js");
/******/ })
/************************************************************************/
/******/ ({
/***/ "./node_modules/webpack/buildin/global.js":
/*!***********************************!*\
!*** (webpack)/buildin/global.js ***!
\***********************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n//# sourceURL=webpack:///(webpack)/buildin/global.js?");
/***/ }),
/***/ "./src/actions.js":
/*!************************!*\
!*** ./src/actions.js ***!
\************************/
/*! exports provided: Action */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Action\", function() { return Action; });\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./settings.js */ \"./src/settings.js\");\n\r\n\r\nclass Action {\r\n constructor(id, loc) {\r\n this.id = id;\r\n this.loc = loc;\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].actions.hasOwnProperty(this.id)) {_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].actions[this.id] = {};}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].actions[this.id].hasOwnProperty('basePriority')) {_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].actions[this.id].basePriority = 0;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].actions[this.id].hasOwnProperty('enabled')) {_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].actions[this.id].enabled = false;}\r\n }\r\n\r\n get enabled() {return _settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].actions[this.id].enabled;}\r\n set enabled(enabled) {_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].actions[this.id].enabled = enabled;}\r\n get basePriority() {return _settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].actions[this.id].basePriority;}\r\n set basePriority(basePriority) {_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].actions[this.id].basePriority = basePriority;}\r\n decBasePriority(mult) {\r\n this.basePriority -= mult;\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"updateSettings\"])();\r\n console.log(\"Decrementing Priority\", this.id, this.basePriority);\r\n }\r\n incBasePriority(mult) {\r\n this.basePriority += mult;\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"updateSettings\"])();\r\n console.log(\"Incrementing Priority\", this.id, this.basePriority);\r\n }\r\n get priority() {return this.basePriority;}\r\n\r\n get label() {\r\n return document.querySelector('#'+this.id+' > a > .aTitle');\r\n }\r\n get btn() {\r\n return document.getElementById(this.id);\r\n }\r\n\r\n get unlocked() {\r\n return this.label !== null;\r\n }\r\n get name() {\r\n let title = this.def.title;\r\n if (title === undefined) {\r\n return this.id;\r\n }\r\n else if (typeof title != 'string') {\r\n return title();\r\n }\r\n return title;\r\n }\r\n\r\n get effect() {\r\n let def = this.def;\r\n if (def === null) {return null;}\r\n return (typeof def.effect == 'function') ? def.effect() : def.effect;\r\n }\r\n\r\n get def() {\r\n let details = window.evolve.actions;\r\n for (let i = 0;i < this.loc.length;i++) {\r\n details = details[this.loc[i]];\r\n }\r\n return details;\r\n }\r\n\r\n get data() {\r\n let type = this.loc[0];\r\n let action = this.loc[this.loc.length-1];\r\n if (window.evolve.global[type] === undefined || window.evolve.global[type][action] == undefined) {\r\n return null;\r\n }\r\n return window.evolve.global[type][action];\r\n }\r\n\r\n getResDep(resid) {\r\n let def = this.def;\r\n if (def === null) {return 0;}\r\n if (def.cost.hasOwnProperty(resid)) {\r\n return def.cost[resid]();\r\n }\r\n return 0;\r\n }\r\n\r\n click() {\r\n if (this.btn !== null) {\r\n if (this.btn.className.indexOf('cna') < 0) {\r\n this.btn.getElementsByTagName(\"a\")[0].click();\r\n if (this.onBuy !== undefined) {\r\n this.onBuy();\r\n }\r\n return true;\r\n }\r\n return false;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n\r\n\n\n//# sourceURL=webpack:///./src/actions.js?");
/***/ }),
/***/ "./src/buildings.js":
/*!**************************!*\
!*** ./src/buildings.js ***!
\**************************/
/*! exports provided: Building, PoweredBuilding, SpaceDockBuilding, buildings, loadBuildings */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Building\", function() { return Building; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PoweredBuilding\", function() { return PoweredBuilding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SpaceDockBuilding\", function() { return SpaceDockBuilding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"buildings\", function() { return buildings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loadBuildings\", function() { return loadBuildings; });\n/* harmony import */ var _utility_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utility.js */ \"./src/utility.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settings.js */ \"./src/settings.js\");\n/* harmony import */ var _actions_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./actions.js */ \"./src/actions.js\");\n/* harmony import */ var _researches_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./researches.js */ \"./src/researches.js\");\n/* harmony import */ var _support_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./support.js */ \"./src/support.js\");\n/* harmony import */ var _modal_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modal.js */ \"./src/modal.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst missions = ['space-test_launch', 'space-moon_mission', 'space-red_mission', 'space-hell_mission', \r\n 'space-sun_mission', 'space-gas_mission', 'space-gas_moon_mission', 'space-belt_mission', 'space-dwarf_mission',\r\n 'interstellar-alpha_mission' , 'interstellar-proxima_mission', 'interstellar-nebula_mission' ,'interstellar-neutron_mission' ,'interstellar-blackhole_mission'];\r\n\r\nclass Building extends _actions_js__WEBPACK_IMPORTED_MODULE_2__[\"Action\"] {\r\n constructor(id, loc) {\r\n super(id, loc);\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].actions[this.id].hasOwnProperty('atLeast')) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].actions[this.id].atLeast = 0;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].actions[this.id].hasOwnProperty('limit')) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].actions[this.id].limit = -1;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].actions[this.id].hasOwnProperty('softCap')) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].actions[this.id].softCap = -1;}\r\n this.color = 'has-text-warning';\r\n }\r\n\r\n get atLeast() {return _settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].actions[this.id].atLeast;}\r\n set atLeast(atLeast) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].actions[this.id].atLeast = atLeast;}\r\n get limit() {return _settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].actions[this.id].limit;}\r\n set limit(limit) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].actions[this.id].limit = limit;}\r\n get softCap() {return _settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].actions[this.id].softCap;}\r\n set softCap(softCap) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].actions[this.id].softCap = softCap;}\r\n\r\n get priority() {\r\n // Setting priority to 100 if building hasn't reached the At Least value\r\n if (this.atLeast != 0 && this.numTotal < this.atLeast) {\r\n return 100;\r\n }\r\n return this.basePriority;\r\n }\r\n\r\n get unlocked() {\r\n if (missions.includes(this.id)) {\r\n return this.label !== null;\r\n }\r\n return this.data !== null;\r\n }\r\n\r\n get numTotal() {\r\n if (this.data === null) {\r\n return 0;\r\n }\r\n return this.data.count;\r\n }\r\n\r\n decAtLeast(mult) {\r\n if (this.atLeast == 0) {return;}\r\n this.atLeast -= mult;\r\n if (this.atLeast < 0) {this.atLeast = 0;}\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"updateSettings\"])();\r\n console.log(\"Decrementing At Least\", this.id, this.atLeast);\r\n }\r\n incAtLeast(mult) {\r\n this.atLeast += mult;\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"updateSettings\"])();\r\n console.log(\"Incrementing At Least\", this.id, this.atLeast);\r\n }\r\n\r\n decLimit(mult) {\r\n if (this.limit == -1) {return;}\r\n this.limit -= mult;\r\n if (this.limit < -1) {this.limit = -1;}\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"updateSettings\"])();\r\n console.log(\"Decrementing Limit\", this.id, this.limit);\r\n }\r\n incLimit(mult) {\r\n this.limit += mult;\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"updateSettings\"])();\r\n console.log(\"Incrementing Limit\", this.id, this.limit);\r\n }\r\n\r\n decSoftCap(mult) {\r\n if (this.softCap == -1) {return;}\r\n this.softCap -= mult;\r\n if (this.softCap < -1) {this.softCap = 1;}\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"updateSettings\"])();\r\n console.log(\"Decrementing SoftCap\", this.id, this.softCap);\r\n }\r\n incSoftCap(mult) {\r\n this.softCap += mult;\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"updateSettings\"])();\r\n console.log(\"Incrementing SoftCap\", this.id, this.softCap);\r\n }\r\n}\r\n\r\nclass PoweredBuilding extends Building {\r\n constructor(id, loc) {\r\n super(id, loc);\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].actions[this.id].hasOwnProperty('powerPriority')) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].actions[this.id].powerPriority = 0;}\r\n /*\r\n try {\r\n [this.consume,this.produce] = getPowerData(id, this.def);\r\n //console.log(this.consume, this.produce);\r\n } catch(e) {\r\n console.log(\"Error loading power for \",this.id);\r\n }\r\n */\r\n }\r\n\r\n get powerPriority() {return _settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].actions[this.id].powerPriority;}\r\n set powerPriority(powerPriority) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].actions[this.id].powerPriority = powerPriority;}\r\n\r\n get powerUnlocked() {\r\n return Object(_support_js__WEBPACK_IMPORTED_MODULE_4__[\"checkPowerRequirements\"])(this.def);\r\n }\r\n\r\n get incBtn() {\r\n return document.querySelector('#'+this.id+' > .on');\r\n }\r\n get decBtn() {\r\n return document.querySelector('#'+this.id+' > .off');\r\n }\r\n\r\n get numOn() {\r\n if (this.data && this.data.on) {\r\n return this.data.on;\r\n }\r\n return 0;\r\n }\r\n\r\n async getCP() {\r\n let consume = [];\r\n let produce = [];\r\n let effect = this.effect;\r\n if (effect === null) {return;}\r\n [consume,produce] = Object(_support_js__WEBPACK_IMPORTED_MODULE_4__[\"getBaseCP\"])(_support_js__WEBPACK_IMPORTED_MODULE_4__[\"poweredBuildingList\"][this.id],effect);\r\n\r\n // Special since we can't read this info easily from the effect\r\n switch(this.id) {\r\n case 'city-mill': {\r\n consume.push({res:'Food',cost:100});\r\n if (global.race['environmentalist']) {\r\n produce.push({res:'electricity',cost:1.5});\r\n }\r\n else {\r\n produce.push({res:'electricity',cost:1});\r\n }\r\n break;\r\n }\r\n case 'city-tourist_center': {\r\n // TODO calculate money gain\r\n break;\r\n }\r\n case 'city-windmill': {\r\n produce.push({res:'electricity',cost:1});\r\n break;\r\n }\r\n }\r\n\r\n return [consume,produce];\r\n }\r\n\r\n incPower(num) {\r\n num = (num === undefined) ? 1 : num;\r\n if (this.incBtn === null) {return false;}\r\n Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"disableMult\"])();\r\n for (let i = 0;i < num;i++) {\r\n this.incBtn.click();\r\n }\r\n return true;\r\n }\r\n decPower(num) {\r\n num = (num === undefined) ? 1 : num;\r\n if (this.decBtn === null) {return false;}\r\n for (let i = 0;i < num;i++) {\r\n this.decBtn.click();\r\n }\r\n return true;\r\n }\r\n\r\n decPowerPriority(mult) {\r\n if (this.powerPriority == 0) {return;}\r\n this.powerPriority -= mult;\r\n if (this.powerPriority < 0) {this.powerPriority = 0;}\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"updateSettings\"])();\r\n console.log(\"Decrementing Power Priority\", this.id, this.powerPriority);\r\n }\r\n incPowerPriority(mult) {\r\n this.powerPriority += mult;\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"updateSettings\"])();\r\n console.log(\"Incrementing Priority\", this.id, this.powerPriority);\r\n }\r\n}\r\n\r\nclass SpaceDockBuilding extends Building {\r\n constructor(id, loc) {\r\n super(id, loc);\r\n }\r\n\r\n get unlocked() {\r\n if (buildings['space-star_dock'].numTotal > 0) {\r\n if (this.id == 'spcdock-seeder') {\r\n return Object(_researches_js__WEBPACK_IMPORTED_MODULE_3__[\"researched\"])('tech-genesis_ship');\r\n } else {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n get data() {\r\n let [type, action] = this.id.split('-');\r\n return window.evolve.global['starDock'][action];\r\n }\r\n\r\n async click() {\r\n if (!this.unlocked) {return false;}\r\n\r\n let def = this.def;\r\n if (def === null) {return false;}\r\n return def.action();\r\n }\r\n}\r\n\r\nvar buildings = {};\r\nfunction loadBuildings() {\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].hasOwnProperty('actions')) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].actions = {};}\r\n // City\r\n for (let action in window.evolve.actions.city) {\r\n // Remove manual buttons\r\n if (action == 'food' || action == 'lumber' || action == 'stone' || action == 'slaughter' || action == 'slave_market') {continue;}\r\n let id = window.evolve.actions.city[action].id;\r\n if (id in _support_js__WEBPACK_IMPORTED_MODULE_4__[\"poweredBuildingList\"]) {\r\n //console.log(action,\"POWER\", window.evolve.actions.city[action].powered, \"SUPPORT\", window.evolve.actions.city[action].support);\r\n buildings[id] = new PoweredBuilding(id, ['city', action]);\r\n continue;\r\n }\r\n buildings[id] = new Building(id, ['city', action]);\r\n }\r\n // Space\r\n for (let location in window.evolve.actions.space) {\r\n for (let action in window.evolve.actions.space[location]) {\r\n // Remove info\r\n if (action == 'info') {continue;}\r\n let id = window.evolve.actions.space[location][action].id;\r\n if (id in _support_js__WEBPACK_IMPORTED_MODULE_4__[\"poweredBuildingList\"]) {\r\n //console.log(action,\"POWER\", window.evolve.actions.space[location][action].powered, \"SUPPORT\", window.evolve.actions.space[location][action].support);\r\n buildings[id] = new PoweredBuilding(id, ['space', location, action]);\r\n continue;\r\n }\r\n buildings[id] = new Building(id, ['space', location, action]);\r\n }\r\n }\r\n // Star Dock\r\n for (let action in window.evolve.actions.starDock) {\r\n // Remove reset actions\r\n if (action == 'prep_ship' || action == 'launch_ship') {continue;}\r\n let id = window.evolve.actions.starDock[action].id;\r\n buildings[id] = new SpaceDockBuilding(id, ['starDock', action]);\r\n }\r\n // Interstellar\r\n for (let location in window.evolve.actions.interstellar) {\r\n for (let action in window.evolve.actions.interstellar[location]) {\r\n // Remove info\r\n if (action == 'info') {continue;}\r\n let id = window.evolve.actions.interstellar[location][action].id;\r\n if (id in _support_js__WEBPACK_IMPORTED_MODULE_4__[\"poweredBuildingList\"]) {\r\n buildings[id] = new PoweredBuilding(id, ['interstellar', location, action]);\r\n continue;\r\n }\r\n buildings[id] = new Building(id, ['interstellar', location, action]);\r\n }\r\n }\r\n // Portal\r\n for (let location in window.evolve.actions.portal) {\r\n for (let action in window.evolve.actions.portal[location]) {\r\n // Remove info\r\n if (action == 'info') {continue;}\r\n let id = window.evolve.actions.portal[location][action].id;\r\n if (id in _support_js__WEBPACK_IMPORTED_MODULE_4__[\"poweredBuildingList\"]) {\r\n buildings[id] = new PoweredBuilding(id, ['portal', location, action]);\r\n continue;\r\n }\r\n buildings[id] = new Building(id, ['portal', location, action]);\r\n }\r\n }\r\n console.log(buildings);\r\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node_modules/webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./src/buildings.js?");
/***/ }),
/***/ "./src/evolution.js":
/*!**************************!*\
!*** ./src/evolution.js ***!
\**************************/
/*! exports provided: evoChallengeActions, maxEvo, loadEvolution, autoEvolution */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"evoChallengeActions\", function() { return evoChallengeActions; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"maxEvo\", function() { return maxEvo; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loadEvolution\", function() { return loadEvolution; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoEvolution\", function() { return autoEvolution; });\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./settings.js */ \"./src/settings.js\");\n/* harmony import */ var _ui_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ui.js */ \"./src/ui.js\");\n/* harmony import */ var _utility_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utility.js */ \"./src/utility.js\");\n\r\n\r\n\r\n\r\n// IDs of the farming buttons\r\nconst evoFarmActions = [\"evo-rna\", \"evo-dna\"];\r\n\r\n// IDs of all the race decision actions\r\nconst evoRaceActions = [\r\n\t\"evo-phagocytosis\", \"evo-chitin\", \"evo-chloroplasts\",\r\n\t\"evo-eggshell\", \"evo-mammals\", \"evo-athropods\",\r\n\t\"evo-ectothermic\", \"evo-endothermic\",\r\n\t\"evo-humanoid\", \"evo-gigantism\", \"evo-animalism\", \"evo-dwarfism\",\r\n\t\"evo-aquatic\", \"evo-demonic\",\r\n \"evo-fey\", \"evo-sand\", \"evo-heat\", \"evo-polar\",\r\n\t\"evo-entish\", \"evo-cacti\",\r\n\t\"evo-sporgar\", \"evo-shroomi\",\r\n\t\"evo-arraak\", \"evo-pterodacti\", \"evo-dracnid\",\r\n\t\"evo-tortoisan\", \"evo-gecko\", \"evo-slitheryn\",\r\n\t\"evo-human\", \"evo-elven\", \"evo-orc\",\r\n\t\"evo-orge\", \"evo-cyclops\", \"evo-troll\",\r\n\t\"evo-kobold\", \"evo-goblin\", \"evo-gnome\",\r\n\t\"evo-cath\", \"evo-wolven\", \"evo-centaur\",\r\n\t\"evo-mantis\", \"evo-scorpid\", \"evo-antid\",\r\n\t\"evo-sharkin\", \"evo-octigoran\", \"evo-balorg\", \"evo-imp\",'evo-seraph','evo-unicorn',\r\n \"evo-dryad\", \"evo-satyr\", \"evo-phoenix\", \"evo-salamander\", \"evo-yeti\", \"evo-wendigo\", \"evo-tuskin\", \"evo-kamel\"];\r\n\r\n// IDs of all the challenge options\r\nconst evoChallengeActions = ['evo-plasmid', 'evo-mastery', 'evo-trade', 'evo-craft', 'evo-crispr', 'evo-junker', 'evo-joyless', 'evo-decay'];\r\n// IDs of all the harder challenge options\r\nconst evoHardChallengeActions = ['evo-junker', 'evo-joyless', 'evo-decay'];\r\n\r\n// IDs of all the universe options\r\nconst evoUniverses = ['uni-standard','uni-heavy','uni-antimatter','uni-evil','uni-micro'];\r\n\r\n// Contains all the race option decisions for each race\r\nconst evoRaceTrees = {\r\n \"entish\":[\"evo-chloroplasts\", \"evo-entish\"],\r\n \"cacti\":[\"evo-chloroplasts\", \"evo-cacti\"],\r\n \"sporgar\":[\"evo-chitin\", \"evo-sporgar\"],\r\n \"shroomi\":[\"evo-chitin\", \"evo-shroomi\"],\r\n \"arraak\":[\"evo-phagocytosis\", \"evo-eggshell\", \"evo-endothermic\", \"evo-arraak\"],\r\n \"pterodacti\":[\"evo-phagocytosis\", \"evo-eggshell\", \"evo-endothermic\", \"evo-pterodacti\"],\r\n \"dracnid\":[\"evo-phagocytosis\", \"evo-eggshell\", \"evo-endothermic\", \"evo-dracnid\"],\r\n \"tortoisan\":[\"evo-phagocytosis\", \"evo-eggshell\", \"evo-ectothermic\", \"evo-tortoisan\"],\r\n \"gecko\":[\"evo-phagocytosis\", \"evo-eggshell\", \"evo-ectothermic\", \"evo-gecko\"],\r\n \"slitheryn\":[\"evo-phagocytosis\", \"evo-eggshell\", \"evo-ectothermic\", \"evo-slitheryn\"],\r\n \"human\":[\"evo-phagocytosis\", \"evo-mammals\", \"evo-humanoid\", \"evo-human\"],\r\n \"elven\":[\"evo-phagocytosis\", \"evo-mammals\", \"evo-humanoid\", \"evo-elven\"],\r\n \"orc\":[\"evo-phagocytosis\", \"evo-mammals\", \"evo-humanoid\", \"evo-orc\"],\r\n \"orge\":[\"evo-phagocytosis\", \"evo-mammals\", \"evo-gigantism\", \"evo-orge\"],\r\n \"cyclops\":[\"evo-phagocytosis\", \"evo-mammals\", \"evo-gigantism\", \"evo-cyclops\"],\r\n \"troll\":[\"evo-phagocytosis\", \"evo-mammals\", \"evo-gigantism\", \"evo-troll\"],\r\n \"kobold\":[\"evo-phagocytosis\", \"evo-mammals\", \"evo-dwarfism\", \"evo-kobold\"],\r\n \"goblin\":[\"evo-phagocytosis\", \"evo-mammals\", \"evo-dwarfism\", \"evo-goblin\"],\r\n \"gnome\":[\"evo-phagocytosis\", \"evo-mammals\", \"evo-dwarfism\", \"evo-gnome\"],\r\n \"cath\":[\"evo-phagocytosis\", \"evo-mammals\", \"evo-animalism\", \"evo-cath\"],\r\n \"wolven\":[\"evo-phagocytosis\", \"evo-mammals\", \"evo-animalism\", \"evo-wolven\"],\r\n \"centaur\":[\"evo-phagocytosis\", \"evo-mammals\", \"evo-animalism\", \"evo-centaur\"],\r\n \"mantis\":[\"evo-phagocytosis\", \"evo-athropods\", \"evo-mantis\"],\r\n \"scorpid\":[\"evo-phagocytosis\", \"evo-athropods\", \"evo-scorpid\"],\r\n \"antid\":[\"evo-phagocytosis\", \"evo-athropods\", \"evo-antid\"],\r\n \"sharkin\":[\"evo-phagocytosis\", \"evo-aquatic\", \"evo-sharkin\"],\r\n \"octigoran\":[\"evo-phagocytosis\", \"evo-aquatic\", \"evo-octigoran\"],\r\n \"octigoran\":[\"evo-phagocytosis\", \"evo-aquatic\", \"evo-octigoran\"],\r\n \"balorg\":[\"evo-phagocytosis\", \"evo-mammals\", \"evo-demonic\", \"evo-balorg\"],\r\n \"imp\":[\"evo-phagocytosis\", \"evo-mammals\", \"evo-demonic\", \"evo-imp\"],\r\n \"seraph\":[\"evo-phagocytosis\", \"evo-mammals\", \"evo-angelic\", \"evo-seraph\"],\r\n \"unicorn\":[\"evo-phagocytosis\", \"evo-mammals\", \"evo-angelic\", \"evo-unicorn\"],\r\n \"dryad\":[\"evo-phagocytosis\", \"evo-fey\", \"evo-dryad\"],\r\n \"satyr\":[\"evo-phagocytosis\", \"evo-fey\", \"evo-satyr\"],\r\n \"phoenix\":[\"evo-phagocytosis\", \"evo-heat\", \"evo-phoenix\"],\r\n \"salamander\":[\"evo-phagocytosis\", \"evo-heat\", \"evo-salamander\"],\r\n \"yeti\":[\"evo-phagocytosis\", \"evo-polar\", \"evo-yeti\"],\r\n \"wendigo\":[\"evo-phagocytosis\", \"evo-polar\", \"evo-wendigo\"],\r\n \"tuskin\":[\"evo-phagocytosis\", \"evo-sand\", \"evo-tuskin\"],\r\n \"kamel\":[\"evo-phagocytosis\", \"evo-sand\", \"evo-kamel\"],\r\n};\r\n\r\n// Will contain the minimum amount of each evolution building to move onto civilization\r\n// Is loaded by loadEvolution\r\nconst maxEvo = {};\r\n\r\n// Loads maxEvo\r\nfunction loadEvolution() {\r\n // Loading all maximum values for evolution upgrades\r\n\r\n // Need these to unlock next upgrades\r\n maxEvo['evo-organelles'] = 2;\r\n maxEvo['evo-nucleus'] = 1;\r\n // Determining how much storage is necessary\r\n let needed = 320\r\n if (Object(_utility_js__WEBPACK_IMPORTED_MODULE_2__[\"perkUnlocked\"])('Morphogenesis')) {\r\n needed *= 0.8;\r\n }\r\n let baseStorage = 100;\r\n // Adding to baseStorage if Creator is unlocked\r\n let creatorLevel = Object(_utility_js__WEBPACK_IMPORTED_MODULE_2__[\"achievementUnlocked\"])('Creator')\r\n if (creatorLevel != -1) {\r\n baseStorage += (creatorLevel-1)*50;\r\n }\r\n // Finding most optimal maxes to reach sentience\r\n let total = 1000;\r\n for (let i = 0;i < 10;i++) {\r\n let numEuk = i;\r\n let numMit = Math.ceil((((needed-baseStorage) / numEuk) - 10)/10)\r\n if ((numEuk + numMit) <= total) {\r\n maxEvo['evo-eukaryotic_cell'] = numEuk;\r\n maxEvo['evo-mitochondria'] = numMit;\r\n total = numEuk + numMit\r\n }\r\n }\r\n maxEvo['evo-membrane'] = Math.ceil((needed-baseStorage) / (5 * maxEvo['evo-mitochondria'] + 5))\r\n // Setting minimum to 1 for unlocking next upgrades\r\n maxEvo['evo-membrane'] = (maxEvo['evo-membrane'] <= 0) ? 1 : maxEvo['evo-membrane'];\r\n maxEvo['evo-eukaryotic_cell'] = (maxEvo['evo-eukaryotic_cell'] <= 0) ? 1 : maxEvo['evo-eukaryotic_cell'];\r\n maxEvo['evo-mitochondria'] = (maxEvo['evo-mitochondria'] <= 0) ? 1 : maxEvo['evo-mitochondria'];\r\n}\r\n\r\nasync function autoEvolution() {\r\n let actions = document.querySelectorAll('#evolution .action');\r\n let chosenAction = null;\r\n let chosenPriority = 0;\r\n let transition = false;\r\n for (let i = 0; i < actions.length; i++) {\r\n // Checking if purchasable\r\n let action = actions[i];\r\n // Not purchasable\r\n if (action.className.indexOf(\"cna\") >= 0) {continue;}\r\n // Farming button\r\n if(evoFarmActions.includes(action.id)) {continue;}\r\n // Reached max in maxEvo\r\n if(action.id in maxEvo && parseInt($('#'+action.id+' > a > .count')[0].innerText) >= maxEvo[action.id]) {continue;}\r\n // Don't take planets\r\n if(/\\w+\\d+/.exec(action.id) !== null) {continue;}\r\n // Don't take universes\r\n if (evoUniverses.includes(action.id)) {continue;}\r\n // Checking for race decision tree\r\n if(evoRaceActions.includes(action.id) && !evoRaceTrees[_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].evolution].includes(action.id)) {continue;}\r\n let newPriority = 0;\r\n // If it is a challenge Action\r\n if (evoChallengeActions.includes(action.id)) {\r\n // Hard Challenge\r\n if (evoHardChallengeActions.includes(action.id)) {\r\n // Junker will start automatically\r\n if (action.id == 'evo-junker' && _settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"][action.id]) {\r\n newPriority = 2;\r\n }\r\n // Other Hard Challenges will need to be toggled\r\n else {\r\n if (!action.classList.contains('hl') === _settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"][action.id]) {\r\n newPriority = 10;\r\n }\r\n }\r\n }\r\n // Normal Challenge\r\n else {\r\n // Normal Challenges will need to be toggled\r\n if (!action.classList.contains('hl') === _settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"][action.id]) {\r\n newPriority = 10;\r\n }\r\n }\r\n }\r\n // Race Actions\r\n else if (evoRaceActions.includes(action.id)) {\r\n newPriority = 6;\r\n // Final race action\r\n if (action.id == evoRaceTrees[_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].evolution][evoRaceTrees[_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].evolution].length-1]) {\r\n newPriority = 5;\r\n }\r\n }\r\n // Sentience\r\n else if (action.id == 'evo-sentience') {\r\n newPriority = 1;\r\n }\r\n // Other actions\r\n else {\r\n newPriority = 20;\r\n }\r\n // Checking if chosen action needs to be replaced\r\n if (newPriority > chosenPriority) {\r\n chosenPriority = newPriority;\r\n chosenAction = action;\r\n }\r\n }\r\n if (chosenAction !== null) {\r\n chosenAction.children[0].click();\r\n if (chosenPriority <= 5) {\r\n Object(_ui_js__WEBPACK_IMPORTED_MODULE_1__[\"resetUI\"])();\r\n await Object(_utility_js__WEBPACK_IMPORTED_MODULE_2__[\"sleep\"])(1000);\r\n await Object(_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"loadSettings\"])();\r\n }\r\n }\r\n}\n\n//# sourceURL=webpack:///./src/evolution.js?");
/***/ }),
/***/ "./src/farm.js":
/*!*********************!*\
!*** ./src/farm.js ***!
\*********************/
/*! exports provided: loadFarm, autoFarm */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loadFarm\", function() { return loadFarm; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoFarm\", function() { return autoFarm; });\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./settings.js */ \"./src/settings.js\");\n\r\n\r\n\r\nvar foodBtn = null;\r\nvar lumberBtn = null;\r\nvar stoneBtn = null;\r\nvar rnaBtn = null;\r\nvar dnaBtn = null;\r\nvar slaughterBtn = null;\r\nfunction loadFarm () {\r\n rnaBtn = document.querySelector('#evo-rna > a');\r\n dnaBtn = document.querySelector('#evo-dna > a');\r\n foodBtn = document.querySelector('#city-food > a');\r\n lumberBtn = document.querySelector('#city-lumber > a');\r\n stoneBtn = document.querySelector('#city-stone > a');\r\n slaughterBtn = document.querySelector('#city-slaughter > a');\r\n}\r\n\r\nfunction farm() {\r\n if(foodBtn!==null){foodBtn.click();}\r\n if(lumberBtn!==null){lumberBtn.click();}\r\n if(stoneBtn!==null){stoneBtn.click();}\r\n if(rnaBtn!==null){rnaBtn.click();}\r\n if(dnaBtn!==null){dnaBtn.click();}\r\n if(slaughterBtn!==null){slaughterBtn.click();}\r\n}\r\n\r\nvar farmInterval = null;\r\nfunction autoFarm() {\r\n if(_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].autoFarm && farmInterval === null) {\r\n console.log(\"Setting farm interval\");\r\n farmInterval = setInterval(farm, _settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].farmRate);\r\n } else {\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].autoFarm && !(farmInterval === null)) {\r\n clearInterval(farmInterval);\r\n farmInterval = null;\r\n }\r\n }\r\n}\n\n//# sourceURL=webpack:///./src/farm.js?");
/***/ }),
/***/ "./src/gameScripts.js":
/*!****************************!*\
!*** ./src/gameScripts.js ***!
\****************************/
/*! exports provided: calcLux, calcAlloy, calcPolymer, calcNano_Tube, calcStanene, zigguratBonus */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"calcLux\", function() { return calcLux; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"calcAlloy\", function() { return calcAlloy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"calcPolymer\", function() { return calcPolymer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"calcNano_Tube\", function() { return calcNano_Tube; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"calcStanene\", function() { return calcStanene; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zigguratBonus\", function() { return zigguratBonus; });\n// These variables and functions were stolen from the original game scripts\r\n// If any of these change with game updates, they need to be updated here as well\r\n\r\n// From main.js\r\n// Determines the amount of money generated by Factory Luxury Goods\r\nfunction calcLux(factoryLevel) {\r\n let demand = window.evolve.global.resource[window.evolve.global.race.species].amount * f_rate.Lux.demand[factoryLevel];\r\n let delta = demand;\r\n if (window.evolve.global.race['toxic']){\r\n delta *= 1.20;\r\n }\r\n if (window.evolve.global.civic.govern.type === 'corpocracy'){\r\n delta *= 1.5;\r\n }\r\n if (window.evolve.global.civic.govern.type === 'socialist'){\r\n delta *= 0.8;\r\n }\r\n return delta;\r\n}\r\n// Determines the amount of alloy generated by Factory Alloy\r\nfunction calcAlloy(factoryLevel) {\r\n let factory_output = f_rate.Alloy.output[factoryLevel];\r\n if (window.evolve.global.race['toxic']){\r\n factory_output *= 1.20;\r\n }\r\n if (window.evolve.global.tech['alloy']){\r\n factory_output *= 1.37;\r\n }\r\n if (window.evolve.global.race['metallurgist']){\r\n factory_output *= 1 + (window.evolve.global.race['metallurgist'] * 0.04);\r\n }\r\n if (window.evolve.global.civic.govern.type === 'corpocracy'){\r\n factory_output *= 1.15;\r\n }\r\n if (window.evolve.global.civic.govern.type === 'socialist'){\r\n factory_output *= 1.05;\r\n }\r\n return factory_output;\r\n}\r\n// Determines the amount of polymer generated by Factory Polymer\r\nfunction calcPolymer(factoryLevel) {\r\n let factory_output =f_rate.Polymer.output[factoryLevel];\r\n if (window.evolve.global.race['toxic']) {\r\n factory_output *= 1.20;\r\n }\r\n if (window.evolve.global.tech['polymer'] >= 2){\r\n factory_output *= 1.42;\r\n }\r\n if (window.evolve.global.civic.govern.type === 'corpocracy'){\r\n factory_output *= 1.15;\r\n }\r\n if (window.evolve.global.civic.govern.type === 'socialist'){\r\n factory_output *= 1.05;\r\n }\r\n return factory_output;\r\n}\r\n// Determines the amount of Nano Tube generated by Factory Nano Tube\r\nfunction calcNano_Tube(factoryLevel) {\r\n let factory_output =f_rate.Nano_Tube.output[factoryLevel];\r\n if (window.evolve.global.race['toxic']) {\r\n factory_output *= 1.08;\r\n }\r\n if (window.evolve.global.tech['polymer'] >= 2){\r\n factory_output *= 1.42;\r\n }\r\n if (window.evolve.global.civic.govern.type === 'corpocracy'){\r\n factory_output *= 1.15;\r\n }\r\n if (window.evolve.global.civic.govern.type === 'socialist'){\r\n factory_output *= 1.05;\r\n }\r\n return factory_output;\r\n}\r\n// Determines the amount of Stanene generated by Factory Stanene\r\nfunction calcStanene(factoryLevel) {\r\n let factory_output =f_rate.Stanene.output[factoryLevel];\r\n if (window.evolve.global.civic.govern.type === 'corpocracy'){\r\n factory_output *= 1.15;\r\n }\r\n if (window.evolve.global.civic.govern.type === 'socialist'){\r\n factory_output *= 1.05;\r\n }\r\n return factory_output;\r\n}\r\n\r\n// From industry.js\r\n// Determines the factory output\r\nconst f_rate = {\r\n Lux: {\r\n demand: [0.14,0.21,0.28,0.35],\r\n fur: [2,3,4,5]\r\n },\r\n Alloy: {\r\n copper: [0.75,1.12,1.49,1.86],\r\n aluminium: [1,1.5,2,2.5],\r\n output: [0.075,0.112,0.149,0.186]\r\n },\r\n Polymer: {\r\n oil_kk: [0.22,0.33,0.44,0.55],\r\n oil: [0.18,0.27,0.36,0.45],\r\n lumber: [15,22,29,36],\r\n output: [0.125,0.187,0.249,0.311],\r\n },\r\n Nano_Tube: {\r\n coal: [8,12,16,20],\r\n neutronium: [0.05,0.075,0.1,0.125],\r\n output: [0.2,0.3,0.4,0.5],\r\n },\r\n Stanene: {\r\n aluminium: [30,45,60,75],\r\n nano: [0.02,0.03,0.04,0.05],\r\n output: [0.6,0.9,1.2,1.5],\r\n }\r\n};\r\n\r\n// From space.js\r\n// Determines the mining droid output bonus\r\nfunction zigguratBonus(){\r\n let bonus = 1;\r\n if (window.evolve.global.space['ziggurat'] && window.evolve.global.space['ziggurat'].count > 0){\r\n let study = window.evolve.global.tech['ancient_study'] ? 0.006 : 0.004;\r\n bonus += (window.evolve.global.space.ziggurat.count * window.evolve.global.civic.colonist.workers * study);\r\n }\r\n return bonus;\r\n}\n\n//# sourceURL=webpack:///./src/gameScripts.js?");
/***/ }),
/***/ "./src/government.js":
/*!***************************!*\
!*** ./src/government.js ***!
\***************************/
/*! exports provided: governments, loadGovernments, autoTax, autoGovernment, autoUnification */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"governments\", function() { return governments; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loadGovernments\", function() { return loadGovernments; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoTax\", function() { return autoTax; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoGovernment\", function() { return autoGovernment; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoUnification\", function() { return autoUnification; });\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./settings.js */ \"./src/settings.js\");\n/* harmony import */ var _utility_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utility.js */ \"./src/utility.js\");\n/* harmony import */ var _resources_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./resources.js */ \"./src/resources.js\");\n/* harmony import */ var _buildings_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./buildings.js */ \"./src/buildings.js\");\n/* harmony import */ var _researches_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./researches.js */ \"./src/researches.js\");\n/* harmony import */ var _miscactions_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./miscactions.js */ \"./src/miscactions.js\");\n/* harmony import */ var _modal_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modal.js */ \"./src/modal.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst governments = [\r\n\t\t\t\t\t'Anarchy',\r\n\t\t\t\t\t'Autocracy',\r\n\t\t\t\t\t'Democracy',\r\n\t\t\t\t\t'Oligarchy',\r\n\t\t\t\t\t'Theocracy',\r\n\t\t\t\t\t'Republic',\r\n\t\t\t\t\t'Socialist',\r\n\t\t\t\t\t'Corpocracy',\r\n\t\t\t\t\t'Technocracy',\r\n\t\t\t\t\t'Federation',\r\n\t\t\t\t\t];\r\n\r\nfunction loadGovernments() {\r\n\tif (!_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].hasOwnProperty('government')) {_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].government = {};}\r\n\tfor (let i = 0;i < governments.length;i++) {\r\n\t\tif (!_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].government.hasOwnProperty(governments[i])) {_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].government[governments[i]] = {};}\r\n\t\tif (!_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].government[governments[i]].hasOwnProperty('priority')) {_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].government[governments[i]].priority = 0;}\r\n\t}\r\n}\r\n\r\nfunction getCurrentMorale() {\r\n let totalMorale = 100;\r\n for (var x in window.evolve.global.city.morale) {\r\n if (x == 'current') {continue;}\r\n totalMorale += window.evolve.global.city.morale[x];\r\n }\r\n return totalMorale;\r\n}\r\nfunction getMaxMorale() {\r\n let maxMorale = 100;\r\n maxMorale += _buildings_js__WEBPACK_IMPORTED_MODULE_3__[\"buildings\"]['city-amphitheatre'].numTotal;\r\n maxMorale += _buildings_js__WEBPACK_IMPORTED_MODULE_3__[\"buildings\"]['city-casino'].numTotal;\r\n maxMorale += _buildings_js__WEBPACK_IMPORTED_MODULE_3__[\"buildings\"]['space-vr_center'].numOn * 2;\r\n if (Object(_researches_js__WEBPACK_IMPORTED_MODULE_4__[\"researched\"])('tech-superstars')) {maxMorale += window.evolve.global.civic.entertainer.workers;}\r\n maxMorale += _miscactions_js__WEBPACK_IMPORTED_MODULE_5__[\"arpas\"]['monument'].numTotal * 2;\r\n if (window.evolve.global.civic.taxes.tax_rate < 20){\r\n maxMorale += 10 - Math.floor(window.evolve.global.civic.taxes.tax_rate / 2);\r\n }\r\n return maxMorale;\r\n}\r\nfunction decTax(num) {\r\n num = (num === undefined) ? 1 : num;\r\n let decTaxBtn = $('#tax_rates > .sub');\r\n Object(_utility_js__WEBPACK_IMPORTED_MODULE_1__[\"disableMult\"])();\r\n for (let i = 0;i < num;i++) {\r\n decTaxBtn.click();\r\n }\r\n}\r\nfunction incTax(num) {\r\n num = (num === undefined) ? 1 : num;\r\n let incTaxBtn = $('#tax_rates > .add');\r\n Object(_utility_js__WEBPACK_IMPORTED_MODULE_1__[\"disableMult\"])();\r\n for (let i = 0;i < num;i++) {\r\n incTaxBtn.click();\r\n }\r\n}\r\nfunction autoTax(priorityData) {\r\n // Don't start taxes if haven't researched\r\n if (!Object(_researches_js__WEBPACK_IMPORTED_MODULE_4__[\"researched\"])('tech-tax_rates')) {return;}\r\n let morale = getCurrentMorale();\r\n let maxMorale = getMaxMorale();\r\n let moneyRate = _resources_js__WEBPACK_IMPORTED_MODULE_2__[\"resources\"].Money.temp_rate || _resources_js__WEBPACK_IMPORTED_MODULE_2__[\"resources\"].Money.rate;\r\n console.log(morale, maxMorale, moneyRate);\r\n // Currently below minimum morale\r\n if (morale < _settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].minimumMorale) {\r\n decTax();\r\n }\r\n // Setting to lowest taxes to get the max morale bonus (since taxes aren't needed)\r\n else if (_resources_js__WEBPACK_IMPORTED_MODULE_2__[\"resources\"].Money.ratio == 1) {\r\n //TODO Figure out a good way of doing this\r\n //decTax();\r\n }\r\n // Currently above max Morale\r\n else if (morale >= maxMorale) {\r\n incTax(morale - maxMorale);\r\n }\r\n else {\r\n if (_resources_js__WEBPACK_IMPORTED_MODULE_2__[\"resources\"].Money.ratio < 0.99 || moneyRate < 0) {\r\n \tif (morale >= _settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].minimumMorale + 1) {\r\n \t\tincTax();\r\n \t}\r\n }\r\n else {\r\n decTax();\r\n }\r\n }\r\n}\r\n\r\nfunction getCurGovernment() {\r\n\tlet label = document.getElementById('govLabel')\r\n\tif (label !== null) {\r\n\t\treturn label.innerText;\r\n\t}\r\n\treturn null;\r\n}\r\nfunction getGovernmentChangeSpan() {\r\n\treturn document.querySelector('#govType > div:nth-child(2) > span');\r\n}\r\nfunction getGovernmentChangeBtn() {\r\n\tlet span = getGovernmentChangeSpan();\r\n\tif (span === null) {return null;}\r\n\treturn span.querySelector('.button');\r\n}\r\nfunction canChangeGovernment() {\r\n\tlet btn = getGovernmentChangeBtn();\r\n\tif (btn === null) {return false;}\r\n\treturn !btn.attributes.hasOwnProperty('disabled');\r\n}\r\nfunction governmentAvailable(government) {\r\n\tswitch(government) {\r\n\t\tcase 'Anarchy': {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tcase 'Autocracy': {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tcase 'Democracy': {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tcase 'Oligarchy': {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tcase 'Theocracy': {\r\n\t\t\treturn window.evolve.global.tech['gov_theo'];\r\n\t\t}\r\n\t\tcase 'Republic,': {\r\n\t\t\treturn window.evolve.global.tech['govern'] >= 2;\r\n\t\t}\r\n\t\tcase 'Socialist': {\r\n\t\t\treturn window.evolve.global.tech['gov_soc'];\r\n\t\t}\r\n\t\tcase 'Corpocracy': {\r\n\t\t\treturn window.evolve.global.tech['gov_corp'];\r\n\t\t}\r\n\t\tcase 'Technocracy': {\r\n\t\t\treturn window.evolve.global.tech['govern'] >= 3;\r\n\t\t}\r\n\t\tcase 'Federation': {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nasync function autoGovernment() {\r\n\t// Don't start if government not unlocked\r\n\tif (!Object(_researches_js__WEBPACK_IMPORTED_MODULE_4__[\"researched\"])('tech-government')) {return;}\r\n\t// Don't start Auto Government if can't change\r\n\tif (!canChangeGovernment()) {return;}\r\n\r\n\tlet choices = [];\r\n\tlet curGovt = getCurGovernment();\r\n\tlet curPriority = _settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].government[curGovt].priority;\r\n\r\n\tconsole.log(\"GOV CUR: \", curGovt, \" PRIO: \", curPriority)\r\n\r\n\tfor (let i = 0;i < governments.length;i++) {\r\n\t\t// Checking if government is available\r\n\t\tif (governmentAvailable(governments[i])) {\r\n\t\t\t// Checking if higher priority\r\n\t\t\tif (_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].government[governments[i]].priority > curPriority) {\r\n\t\t\t\tchoices.push(governments[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\t// Stopping if no choices\r\n\tif (choices.length == 0) {return;}\r\n\r\n\t// Finding highest priority choice\r\n\tfor (let i = 0;i < choices.length;i++) {\r\n\t\tif (_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].government[choices[i]].priority > curPriority) {\r\n\t\t\tcurGovt = choices[i];\r\n\t\t\tcurPriority = _settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].government[choices[i]].priority;\r\n\t\t}\r\n\t}\r\n\r\n\tconsole.log(\"GOV CHOICES: \", choices);\r\n\tconsole.log(\"GOV CHOICE: \", curGovt, \" PRIO: \", curPriority);\r\n\r\n\t// Opening Modal\r\n \tlet opened = await Object(_modal_js__WEBPACK_IMPORTED_MODULE_6__[\"openModal\"])(getGovernmentChangeBtn());\r\n \tif (!opened) {return;}\r\n\r\n\tlet options = document.getElementById('govModal').children;\r\n\tfor (let i = 0;i < options.length;i++) {\r\n\t\tlet type = options[i].attributes['data-gov'].value;\r\n\t\tif (type == curGovt.toLowerCase()) {\r\n\t\t\toptions[i].click();\r\n\t\t}\r\n\t}\r\n\r\n \t// Closing Modal\r\n \tawait Object(_modal_js__WEBPACK_IMPORTED_MODULE_6__[\"closeModal\"])();\r\n}\r\n\r\nfunction getSpyCount(num) {\r\n\tlet gov = `gov${num}`;\r\n\treturn window.evolve.global.civic.foreign[gov].spy;\r\n}\r\nfunction isTraining(num) {\r\n\tlet gov = `gov${num}`;\r\n\treturn window.evolve.global.civic.foreign[gov].trn != 0;\r\n}\r\nfunction isEspionage(num) {\r\n\tlet gov = `gov${num}`;\r\n\treturn window.evolve.global.civic.foreign[gov].sab != 0;\r\n}\r\nfunction getEcon(num) {\r\n\tlet gov = `gov${num}`;\r\n\treturn window.evolve.global.civic.foreign[gov].eco;\r\n}\r\nfunction getMilitary(num) {\r\n\tlet gov = `gov${num}`;\r\n\treturn window.evolve.global.civic.foreign[gov].mil;\r\n}\r\nfunction getRelation(num) {\r\n\tlet gov = `gov${num}`;\r\n\treturn window.evolve.global.civic.foreign[gov].hstl;\r\n}\r\nfunction getUnrest(num) {\r\n\tlet gov = `gov${num}`;\r\n\treturn window.evolve.global.civic.foreign[gov].hstl;\r\n}\r\n\r\nasync function runEspionage(gov, action) {\r\n\r\n\tlet id = `gov${gov}`;\r\n\tlet btn = document.querySelector(`#${id} > div:nth-child(3) > span:nth-child(3) > button`);\r\n\tif (btn === null) {return false;}\r\n\r\n\t// Opening Modal\r\n\tlet opened = await Object(_modal_js__WEBPACK_IMPORTED_MODULE_6__[\"openModal\"])(btn);\r\n\tif (!opened) {return false;}\r\n\r\n\tbtn = null;\r\n\tswitch(action) {\r\n\t\tcase 'influence': {\r\n\t\t\tbtn = document.querySelector('#espModal > button:nth-child(1)');\r\n\t\t\tbreak;\r\n\t\t}\r\n\t\tcase 'sabotage': {\r\n\t\t\tbtn = document.querySelector('#espModal > button:nth-child(2)');\r\n\t\t\tbreak;\r\n\t\t}\r\n\t\tcase 'incite': {\r\n\t\t\tbtn = document.querySelector('#espModal > button:nth-child(3)');\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tif (btn !== null) {\r\n\t\tbtn.click();\r\n\t\tawait Object(_modal_js__WEBPACK_IMPORTED_MODULE_6__[\"closeModal\"])(false);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tawait Object(_modal_js__WEBPACK_IMPORTED_MODULE_6__[\"closeModal\"])();\r\n\treturn false;\r\n}\r\n\r\nasync function autoUnification() {\r\n\t// Don't Auto Unification if already controlled the world\r\n\tif (window.evolve.global.tech['world_control']) {return;}\r\n\r\n\t// Trying to purchase unification tech\r\n\tif (window.evolve.global.tech['unify'] == 1 && !window.evolve.global.tech['m_boost']) {\r\n\t\tlet action = 'tech-wc_' + _settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].unification;\r\n\t\tlet btn = document.getElementById(action);\r\n\t\tif (btn !== null) {\r\n\t\t\tbtn.children[0].click();\r\n\t\t}\r\n\t}\r\n\r\n\t// TEMP - buying spies\r\n\tfor (let i = 0;i < 3;i++) {\r\n\t\tlet id = `gov${i}`;\r\n\t\tlet btn = document.querySelector(`#${id} > div:nth-child(3) > span:nth-child(2) > button`);\r\n\t\tif (btn !== null) {btn.click();}\r\n\t}\r\n\r\n\t// Espionage\r\n\tif (window.evolve.global.tech['spy'] && window.evolve.global.tech['spy'] >= 2) {\r\n\t\tfor (let i = 0;i < 3;i++) {\r\n\t\t\t// Don't start espionage if there are no spies\r\n\t\t\tif (!getSpyCount(i)) {continue;}\r\n\t\t\t// Don't start espionage if currently on mission\r\n\t\t\tif (isEspionage(i)) {continue;}\r\n\r\n\t\t\tlet action = null;\r\n\t\t\tswitch(_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].unification) {\r\n\t\t\t\tcase 'conquest': {\r\n\t\t\t\t\t// Can still lower military\r\n\t\t\t\t\tif (getMilitary(i) != 50) {\r\n\t\t\t\t\t\taction = 'sabotage';\r\n\t\t\t\t\t}\t\t\t\t\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tcase 'morale' : {\r\n\t\t\t\t\t// Can still increase relations\r\n\t\t\t\t\tif (getRelation(i) != 0) {\r\n\t\t\t\t\t\taction = 'influence';\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (getUnrest(i) < 100) {\r\n\t\t\t\t\t\taction = 'incite';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (action !== null) {\r\n\t\t\t\tawait runEspionage(i, action);\t\t\t\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\n\n//# sourceURL=webpack:///./src/government.js?");
/***/ }),
/***/ "./src/industry.js":
/*!*************************!*\
!*** ./src/industry.js ***!
\*************************/
/*! exports provided: loadSmelter, autoSmelter, loadFactory, autoFactory, loadDroid, autoDroid, loadGraphene, autoGraphene */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loadSmelter\", function() { return loadSmelter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoSmelter\", function() { return autoSmelter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loadFactory\", function() { return loadFactory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoFactory\", function() { return autoFactory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loadDroid\", function() { return loadDroid; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoDroid\", function() { return autoDroid; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loadGraphene\", function() { return loadGraphene; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoGraphene\", function() { return autoGraphene; });\n/* harmony import */ var _resources_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./resources.js */ \"./src/resources.js\");\n/* harmony import */ var _researches_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./researches.js */ \"./src/researches.js\");\n/* harmony import */ var _buildings_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./buildings.js */ \"./src/buildings.js\");\n/* harmony import */ var _utility_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utility.js */ \"./src/utility.js\");\n/* harmony import */ var _gameScripts_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./gameScripts.js */ \"./src/gameScripts.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./settings.js */ \"./src/settings.js\");\n/* harmony import */ var _modal_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modal.js */ \"./src/modal.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction loadSmelter() {\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].hasOwnProperty('smelterSettings')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].smelterSettings = {};}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].smelterSettings.hasOwnProperty('pqCheck')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].smelterSettings.pqCheck = true;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].smelterSettings.hasOwnProperty('Wood')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].smelterSettings.Wood = 1;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].smelterSettings.hasOwnProperty('Coal')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].smelterSettings.Coal = 1;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].smelterSettings.hasOwnProperty('Oil')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].smelterSettings.Oil = 1;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].smelterSettings.hasOwnProperty('Iron')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].smelterSettings.Iron = 2;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].smelterSettings.hasOwnProperty('Steel')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].smelterSettings.Steel = 3;}\r\n}\r\nfunction getSmelterData() {\r\n let spans = document.querySelectorAll('#iSmelter > .fuels > span');\r\n let data = {};\r\n\r\n if (!window.evolve.global.race['forge']) {\r\n // Wood (Lumber/Souls/Flesh)\r\n if (!window.evolve.global.race['kindling_kindred'] || window.evolve.global.race['evil']) {\r\n data.Wood = {};\r\n data.Wood.decBtn = spans[0];\r\n data.Wood.incBtn = spans[2];\r\n let str = spans[1].attributes['data-label'].value\r\n str = /Consume ([\\d\\.]+) ([\\w]+)/.exec(str);\r\n data.Wood.num = window.evolve.global.city.smelter.Wood;\r\n data.Wood.fuel = parseFloat(str[1]);\r\n data.Wood.name = str[2];\r\n }\r\n // Coal\r\n if (window.evolve.global.resource.Coal.display) {\r\n data.Coal = {};\r\n data.Coal.decBtn = (data.Wood) ? spans[3] : spans[0];\r\n data.Coal.incBtn = (data.Wood) ? spans[5] : spans[2];\r\n let str = (data.Wood) ? spans[4].attributes['data-label'].value : spans[1].attributes['data-label'].value;\r\n data.Coal.fuel = parseFloat(/Burn ([\\d\\.]+).*/.exec(str)[1]);\r\n data.Coal.num = window.evolve.global.city.smelter.Coal;\r\n }\r\n // Oil\r\n if (window.evolve.global.resource.Oil.display) {\r\n data.Oil = {};\r\n data.Oil.decBtn = (data.Wood) ? spans[6] : spans[3];\r\n data.Oil.incBtn = (data.Wood) ? spans[8] : spans[5];\r\n let str = (data.Wood) ? spans[7].attributes['data-label'].value : spans[4].attributes['data-label'].value;\r\n data.Oil.fuel = parseFloat(/Burn ([\\d\\.]+).*/.exec(str)[1]);\r\n data.Oil.num = window.evolve.global.city.smelter.Oil;\r\n }\r\n }\r\n\r\n // Iron\r\n data.Iron = {};\r\n data.Iron.num = window.evolve.global.city.smelter.Iron;\r\n data.Iron.btn = document.querySelector('#iSmelter > .smelting > span:nth-child(1) > button');\r\n let ironVal = data.Iron.btn.parentElement.attributes['data-label'].value;\r\n data.Iron.percent = parseInt(/[^\\d]+([\\d]+)%/.exec(ironVal)[1]);\r\n\r\n // Steel\r\n if (window.evolve.global.resource.Steel.display && window.evolve.global.tech.smelting >= 2) {\r\n data.Steel = {};\r\n data.Steel.num = window.evolve.global.city.smelter.Steel;\r\n data.Steel.btn = document.querySelector('#iSmelter > .smelting > span:nth-child(2) > button');\r\n let steelVal = data.Steel.btn.parentElement.attributes['data-label'].value;\r\n let temp = /[^\\d\\.]*([\\d\\.]+)[^\\d\\.]*([\\d\\.]+)[^\\d\\.]*([\\d\\.]+)[^\\d\\.]*/.exec(steelVal);\r\n data.Steel.Coal = parseFloat(temp[1]);\r\n data.Steel.Iron = parseFloat(temp[2]);;\r\n data.Steel.produce = parseFloat(temp[3]);;\r\n }\r\n return data;\r\n}\r\nasync function autoSmelter(limits) {\r\n // Don't Auto smelt if not unlocked\r\n if (!Object(_researches_js__WEBPACK_IMPORTED_MODULE_1__[\"researched\"])('tech-steel')) {return;}\r\n // Don't Auto smelt if haven't gotten a smelter yet\r\n if (_buildings_js__WEBPACK_IMPORTED_MODULE_2__[\"buildings\"]['city-smelter'].numTotal < 1) {return;}\r\n\r\n // Finding relevent elements\r\n let data = getSmelterData();\r\n console.log('Smelter Data:', data);\r\n\r\n let totalSmelters = _buildings_js__WEBPACK_IMPORTED_MODULE_2__[\"buildings\"]['city-smelter'].numTotal;\r\n\r\n // Reverting current allocation\r\n if (data.hasOwnProperty('Wood')) {\r\n switch(data.Wood.name) {\r\n case 'Lumber': {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Lumber.temp_rate += data.Wood.fuel * data.Wood.num;\r\n break;\r\n }\r\n case 'Souls': {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Food.temp_rate += data.Wood.fuel * data.Wood.num;\r\n break;\r\n }\r\n case 'Flesh': {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Furs.temp_rate += data.Wood.fuel * data.Wood.num;\r\n break;\r\n }\r\n }\r\n }\r\n if (data.hasOwnProperty('Coal')) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Coal.temp_rate += data.Coal.fuel * data.Coal.num;\r\n }\r\n if (data.hasOwnProperty('Oil')) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Oil.temp_rate += data.Oil.fuel * data.Oil.num;\r\n }\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Iron.temp_rate += data.Steel.Iron * data.Steel.num;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Coal.temp_rate += data.Steel.Coal * data.Steel.num;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Steel.temp_rate -= data.Steel.produce * data.Steel.num;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Iron.temp_rate /= (1 + data.Iron.percent * data.Iron.num / 100);\r\n\r\n // Calculating Fuel\r\n let fuelKeys = [];\r\n let fuelPriorities = [];\r\n let fuelTotalPriority = 0;\r\n let fuelRatios = [];\r\n if (data.hasOwnProperty('Wood')) {\r\n fuelKeys.push('Wood');\r\n let priority = _settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].smelterSettings.Wood;\r\n if (limits) {\r\n switch(data.Wood.name) {\r\n case 'Lumber': {\r\n if (limits.Lumber !== null) {\r\n priority /= limits.Lumber.priority;\r\n } else {\r\n priority = 10**5;\r\n }\r\n break;\r\n }\r\n case 'Souls': {\r\n if (limits.Food !== null) {\r\n priority /= limits.Food.priority;\r\n } else {\r\n priority = 10**5;\r\n }\r\n break;\r\n }\r\n case 'Flesh': {\r\n if (limits.Furs !== null) {\r\n priority /= limits.Furs.priority;\r\n } else {\r\n priority = 10**5;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n fuelPriorities.push(priority);\r\n }\r\n if (data.hasOwnProperty('Coal')) {\r\n fuelKeys.push('Coal');\r\n let priority = _settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].smelterSettings.Coal;\r\n if (limits) {\r\n if (limits.Coal !== null) {\r\n priority /= limits.Coal.priority;\r\n } else {\r\n priority = 10**10;\r\n }\r\n }\r\n fuelPriorities.push(priority);\r\n }\r\n if (data.hasOwnProperty('Oil')) {\r\n fuelKeys.push('Oil');\r\n let priority = _settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].smelterSettings.Oil;\r\n if (limits) {\r\n if (limits.Oil !== null) {\r\n priority /= limits.Oil.priority;\r\n } else {\r\n priority = 10**20;\r\n }\r\n }\r\n fuelPriorities.push(priority);\r\n }\r\n for (let i = 0;i < fuelPriorities.length;i++) {fuelTotalPriority += fuelPriorities[i];}\r\n for (let i = 0;i < fuelPriorities.length;i++) {fuelRatios.push(fuelPriorities[i] / fuelTotalPriority);}\r\n let resourceCheck = function(index, curNum) {\r\n switch(fuelKeys[index]) {\r\n case 'Wood': {\r\n switch(data.Wood.name) {\r\n case 'Lumber': return _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Lumber.temp_rate > data.Wood.fuel;\r\n case 'Souls': return _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Food.temp_rate > data.Wood.fuel;\r\n case 'Flesh': return _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Furs.temp_rate > data.Wood.fuel;\r\n }\r\n break;\r\n }\r\n case 'Coal': return _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Coal.temp_rate > data.Coal.fuel;\r\n case 'Oil': return _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Oil.temp_rate > data.Oil.fuel;\r\n }\r\n return false;\r\n };\r\n let allocFunc = function(index, curNum) {\r\n switch(fuelKeys[index]) {\r\n case 'Wood': {\r\n switch(data.Wood.name) {\r\n case 'Lumber': {_resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Lumber.temp_rate -= data.Wood.fuel;break;}\r\n case 'Souls': {_resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Food.temp_rate -= data.Wood.fuel;break;}\r\n case 'Flesh': {_resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Furs.temp_rate -= data.Wood.fuel;break;}\r\n }\r\n break;\r\n }\r\n case 'Coal': {_resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Coal.temp_rate -= data.Coal.fuel;break;}\r\n case 'Oil': {_resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Oil.temp_rate -= data.Oil.fuel;break;}\r\n }\r\n };\r\n let fuelAllocation = Object(_utility_js__WEBPACK_IMPORTED_MODULE_3__[\"allocate\"])(totalSmelters,fuelPriorities,{requireFunc:resourceCheck, allocFunc:allocFunc});\r\n\r\n console.log(\"SMELTER FUEL:\", fuelAllocation);\r\n\r\n // Calculating Production\r\n let prodKeys = [];\r\n let prodPriorities = [];\r\n let prodTotalPriority = 0;\r\n let prodRatios = [];\r\n if (data.hasOwnProperty('Iron')) {\r\n prodKeys.push('Iron');\r\n let priority = _settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].smelterSettings.Iron;\r\n if (limits) {\r\n if (limits.Iron !== null) {\r\n priority /= limits.Iron.priority;\r\n } else {\r\n priority = 0;\r\n }\r\n }\r\n prodPriorities.push(priority);\r\n }\r\n if (data.hasOwnProperty('Steel')) {\r\n prodKeys.push('Steel');\r\n let priority = _settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].smelterSettings.Steel;\r\n if (limits) {\r\n if (limits.Steel !== null) {\r\n priority /= limits.Steel.priority;\r\n } else {\r\n priority = 0;\r\n }\r\n }\r\n prodPriorities.push(priority);\r\n }\r\n for (let i = 0;i < prodPriorities.length;i++) {prodTotalPriority += prodPriorities[i];}\r\n for (let i = 0;i < prodPriorities.length;i++) {prodRatios.push(prodPriorities[i] / prodTotalPriority);}\r\n resourceCheck = function(index, curNum) {\r\n switch(prodKeys[index]) {\r\n case 'Iron': {\r\n return true;\r\n }\r\n case 'Steel': {\r\n let coalCheck = _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Coal.temp_rate > data.Steel.Coal;\r\n let ironCheck = _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Iron.temp_rate > data.Steel.Iron;\r\n return coalCheck && ironCheck;\r\n }\r\n }\r\n return false;\r\n }\r\n // Setting up data variable for storing temp Iron/Steel nums\r\n data.Iron.num = 0;\r\n data.Steel.num = 0;\r\n allocFunc = function(index, curNum) {\r\n switch(prodKeys[index]) {\r\n case 'Iron': {\r\n\r\n // Removing steel influence\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Iron.temp_rate += data.Steel.Iron * data.Steel.num;\r\n\r\n // Applying percent change\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Iron.temp_rate /= (1 + data.Iron.percent*(curNum-1)/100);\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Iron.temp_rate *= (1 + data.Iron.percent*curNum/100);\r\n\r\n // Reapplying steel influence\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Iron.temp_rate -= data.Steel.Iron * data.Steel.num;\r\n data.Iron.num = curNum;\r\n\r\n break;\r\n }\r\n case 'Steel': {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Iron.temp_rate -= data.Steel.Iron;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Coal.temp_rate -= data.Steel.Coal;\r\n data.Steel.num = curNum;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n let produceAllocation = Object(_utility_js__WEBPACK_IMPORTED_MODULE_3__[\"allocate\"])(totalSmelters,prodPriorities,{requireFunc:resourceCheck, allocFunc:allocFunc});\r\n\r\n console.log(\"SMELTER PRODUCE:\", produceAllocation);\r\n\r\n // Removing extra fuel\r\n for (let i = 0;i < fuelKeys.length;i++) {\r\n if (data[fuelKeys[i]].num > fuelAllocation.alloc[i]) {\r\n for (let j = 0;j < data[fuelKeys[i]].num - fuelAllocation.alloc[i];j++) {\r\n data[fuelKeys[i]].decBtn.click();\r\n }\r\n }\r\n }\r\n // Allocating fuel\r\n for (let i = 0;i < fuelKeys.length;i++) {\r\n if (data[fuelKeys[i]].num < fuelAllocation.alloc[i]) {\r\n for (let j = 0;j < fuelAllocation.alloc[i] - data[fuelKeys[i]].num;j++) {\r\n data[fuelKeys[i]].incBtn.click();\r\n }\r\n }\r\n }\r\n // Pushing all allocation to iron\r\n for (let i = 0;i < totalSmelters;i++) {\r\n data.Iron.btn.click();\r\n }\r\n // Adding steel\r\n if (produceAllocation.alloc.length == 2) {\r\n for (let i = 0;i < produceAllocation.alloc[1];i++) {\r\n data.Steel.btn.click();\r\n }\r\n }\r\n\r\n // Setting data to null for garbage collector maybe\r\n data = null;\r\n}\r\n\r\nfunction loadFactory() {\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].hasOwnProperty('factorySettings')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].factorySettings = {};}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].factorySettings.hasOwnProperty('pqCheck')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].factorySettings.pqCheck = true;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].factorySettings.hasOwnProperty('Luxury_Goods')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].factorySettings.Luxury_Goods = 0;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].factorySettings.hasOwnProperty('Alloy')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].factorySettings.Alloy = 3;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].factorySettings.hasOwnProperty('Polymer')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].factorySettings.Polymer = 3;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].factorySettings.hasOwnProperty('Nano_Tube')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].factorySettings.Nano_Tube = 7;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].factorySettings.hasOwnProperty('Stanene')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].factorySettings.Stanene = 4;}\r\n}\r\nfunction getFactoryData() {\r\n let data = {};\r\n\r\n let factoryLevel = window.evolve.global.tech['factory'] ? window.evolve.global.tech['factory'] : 0;\r\n\r\n // Luxury Goods\r\n data.Lux = {};\r\n data.Lux.decBtn = document.querySelector('#iFactory > div:nth-child(3) > span:nth-child(2)');\r\n data.Lux.incBtn = document.querySelector('#iFactory > div:nth-child(3) > span:nth-child(4)');\r\n let str = document.querySelector('#iFactory > div:nth-child(3) > span:nth-child(1)').attributes['data-label'].value;\r\n let temp = /[^\\d\\.]+([\\d\\.]+)[^\\d\\.]+([\\d\\.]+)/.exec(str)\r\n data.Lux.num = window.evolve.global.city.factory.Lux;\r\n data.Lux.Furs = temp[1];\r\n data.Lux.Money = Object(_gameScripts_js__WEBPACK_IMPORTED_MODULE_4__[\"calcLux\"])(factoryLevel);\r\n\r\n // Alloy\r\n data.Alloy = {};\r\n data.Alloy.decBtn = document.querySelector('#iFactory > div:nth-child(4) > span:nth-child(2)');\r\n data.Alloy.incBtn = document.querySelector('#iFactory > div:nth-child(4) > span:nth-child(4)');\r\n str = document.querySelector('#iFactory > div:nth-child(4) > span:nth-child(1)').attributes['data-label'].value;\r\n temp = /[^\\d\\.]+([\\d\\.]+)[^\\d\\.]+([\\d\\.]+)[^\\d\\.]+/.exec(str)\r\n data.Alloy.num = window.evolve.global.city.factory.Alloy;\r\n data.Alloy.Copper = temp[1];\r\n data.Alloy.Aluminium = temp[2];\r\n // Alloy Production\r\n let factory_output = Object(_gameScripts_js__WEBPACK_IMPORTED_MODULE_4__[\"calcAlloy\"])(factoryLevel);\r\n factory_output *= Object(_utility_js__WEBPACK_IMPORTED_MODULE_3__[\"getMultiplier\"])('Alloy') * Object(_utility_js__WEBPACK_IMPORTED_MODULE_3__[\"getMultiplier\"])('Global');\r\n data.Alloy.produce = factory_output;\r\n\r\n // Polymer\r\n if (window.evolve.global.tech['polymer']) {\r\n data.Polymer = {};\r\n data.Polymer.decBtn = document.querySelector('#iFactory > div:nth-child(5) > span:nth-child(2)');\r\n data.Polymer.incBtn = document.querySelector('#iFactory > div:nth-child(5) > span:nth-child(4)');\r\n let str = document.querySelector('#iFactory > div:nth-child(5) > span:nth-child(1)').attributes['data-label'].value;\r\n let temp = /[^\\d\\.]+([\\d\\.]+)[^\\d\\.]+([\\d\\.]+)?[^\\d\\.]+/.exec(str)\r\n data.Polymer.num = window.evolve.global.city.factory.Polymer;\r\n data.Polymer.Oil = temp[1];\r\n // Kindred Kindling\r\n data.Polymer.Lumber = (temp[2]) ? temp[2] : 0;\r\n // Polymer Production\r\n let factory_output = Object(_gameScripts_js__WEBPACK_IMPORTED_MODULE_4__[\"calcPolymer\"])(factoryLevel);\r\n factory_output *= Object(_utility_js__WEBPACK_IMPORTED_MODULE_3__[\"getMultiplier\"])('Polymer') * Object(_utility_js__WEBPACK_IMPORTED_MODULE_3__[\"getMultiplier\"])('Global');\r\n data.Polymer.produce = factory_output;\r\n }\r\n // Nano Tube\r\n if (window.evolve.global.tech['nano']) {\r\n data.Nano = {};\r\n data.Nano.decBtn = document.querySelector('#iFactory > div:nth-child(6) > span:nth-child(2)');\r\n data.Nano.incBtn = document.querySelector('#iFactory > div:nth-child(6) > span:nth-child(4)');\r\n let str = document.querySelector('#iFactory > div:nth-child(6) > span:nth-child(1)').attributes['data-label'].value;\r\n let temp = /[^\\d\\.]+([\\d\\.]+)[^\\d\\.]+([\\d\\.]+)[^\\d\\.]+/.exec(str)\r\n data.Nano.num = window.evolve.global.city.factory.Nano;\r\n data.Nano.Coal = temp[1];\r\n data.Nano.Neutronium = temp[2];\r\n data.Nano.produce = 0;\r\n // Nano Tube Production\r\n let factory_output = Object(_gameScripts_js__WEBPACK_IMPORTED_MODULE_4__[\"calcNano_Tube\"])(factoryLevel);\r\n factory_output *= Object(_utility_js__WEBPACK_IMPORTED_MODULE_3__[\"getMultiplier\"])('Nano_Tube') * Object(_utility_js__WEBPACK_IMPORTED_MODULE_3__[\"getMultiplier\"])('Global');\r\n data.Nano.produce = factory_output;\r\n }\r\n // Stanene\r\n if (window.evolve.global.tech['stanene']) {\r\n data.Stanene = {};\r\n data.Stanene.decBtn = document.querySelector('#iFactory > div:nth-child(7) > span:nth-child(2)');\r\n data.Stanene.incBtn = document.querySelector('#iFactory > div:nth-child(7) > span:nth-child(4)');\r\n let str = document.querySelector('#iFactory > div:nth-child(7) > span:nth-child(1)').attributes['data-label'].value;\r\n let temp = /[^\\d\\.]+([\\d\\.]+)[^\\d\\.]+([\\d\\.]+)[^\\d\\.]+/.exec(str)\r\n data.Stanene.num = window.evolve.global.city.factory.Stanene;\r\n data.Stanene.Aluminium = temp[1];\r\n data.Stanene.Nano_Tube = temp[2];\r\n // Stanene Production\r\n let factory_output = Object(_gameScripts_js__WEBPACK_IMPORTED_MODULE_4__[\"calcStanene\"])(factoryLevel);\r\n factory_output *= Object(_utility_js__WEBPACK_IMPORTED_MODULE_3__[\"getMultiplier\"])('Stanene') * Object(_utility_js__WEBPACK_IMPORTED_MODULE_3__[\"getMultiplier\"])('Global');\r\n data.Stanene.produce = factory_output;\r\n }\r\n return data;\r\n}\r\nasync function autoFactory(limits) {\r\n // Don't Auto factory if not unlocked\r\n if (!Object(_researches_js__WEBPACK_IMPORTED_MODULE_1__[\"researched\"])('tech-industrialization')) {return;}\r\n // Don't Auto factory if you don't have any\r\n if (_buildings_js__WEBPACK_IMPORTED_MODULE_2__[\"buildings\"]['city-factory'].numTotal < 1) {return;}\r\n\r\n let totalFactories = _buildings_js__WEBPACK_IMPORTED_MODULE_2__[\"buildings\"]['city-factory'].numOn + _buildings_js__WEBPACK_IMPORTED_MODULE_2__[\"buildings\"]['space-red_factory'].numOn;\r\n\r\n let data = getFactoryData();\r\n console.log('FACTORY DATA:', data);\r\n\r\n // Reverting current allocation\r\n if (data.Lux) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Furs.temp_rate += data.Lux.Furs * data.Lux.num;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Money.temp_rate += data.Lux.Money * data.Lux.num;\r\n }\r\n if (data.Alloy) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Copper.temp_rate += data.Alloy.Copper * data.Alloy.num;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Aluminium.temp_rate += data.Alloy.Aluminium * data.Alloy.num;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Alloy.temp_rate -= data.Alloy.produce * data.Alloy.num;\r\n }\r\n if (data.Polymer) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Lumber.temp_rate += data.Polymer.Lumber * data.Polymer.num;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Oil.temp_rate += data.Polymer.Oil * data.Polymer.num;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Polymer.temp_rate -= data.Polymer.produce * data.Polymer.num;\r\n }\r\n if (data.Nano) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Coal.temp_rate += data.Nano.Coal * data.Nano.num;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Neutronium.temp_rate += data.Nano.Neutronium * data.Nano.num;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Nano_Tube.temp_rate -= data.Nano.produce * data.Nano.num;\r\n }\r\n if (data.Stanene) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Aluminium.temp_rate += data.Stanene.Aluminium * data.Stanene.num;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Nano_Tube.temp_rate += data.Stanene.Nano_Tube * data.Stanene.num;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Stanene.temp_rate -= data.Stanene.produce * data.Stanene.num;\r\n }\r\n\r\n // Finding Allocation\r\n let keys = [];\r\n let priorities = [];\r\n let totalPriority = 0;\r\n let ratios = [];\r\n if (data.hasOwnProperty('Lux')) {\r\n keys.push('Lux');\r\n let priority = _settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].factorySettings.Luxury_Goods;\r\n if (limits) {\r\n if (limits.Money !== null) {\r\n priority *= limits.Money.priority;\r\n } else {\r\n priority /= 10e10;\r\n }\r\n }\r\n priorities.push(priority);\r\n totalPriority += priority;\r\n }\r\n if (data.hasOwnProperty('Alloy')) {\r\n keys.push('Alloy');\r\n let priority = _settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].factorySettings.Alloy;\r\n if (limits) {\r\n if (limits.Alloy !== null) {\r\n priority *= limits.Alloy.priority;\r\n } else {\r\n priority /= 10e10;\r\n }\r\n }\r\n priorities.push(priority);\r\n totalPriority += priority;\r\n }\r\n if (data.hasOwnProperty('Polymer')) {\r\n keys.push('Polymer');\r\n let priority = _settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].factorySettings.Polymer;\r\n if (limits) {\r\n if (limits.Polymer !== null) {\r\n priority *= limits.Polymer.priority;\r\n } else {\r\n priority /= 10e10;\r\n }\r\n }\r\n priorities.push(priority);\r\n totalPriority += priority;\r\n }\r\n if (data.hasOwnProperty('Nano')) {\r\n keys.push('Nano');\r\n let priority = _settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].factorySettings.Nano_Tube;\r\n if (limits) {\r\n if (limits.Nano_Tube !== null) {\r\n priority *= limits.Nano_Tube.priority;\r\n } else {\r\n priority /= 10e10;\r\n }\r\n }\r\n priorities.push(priority);\r\n totalPriority += priority;\r\n }\r\n if (data.hasOwnProperty('Stanene')) {\r\n keys.push('Stanene');\r\n let priority = _settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].factorySettings.Stanene;\r\n if (limits) {\r\n if (limits.Stanene !== null) {\r\n priority *= limits.Stanene.priority;\r\n } else {\r\n priority /= 10e10;\r\n }\r\n }\r\n priorities.push(priority);\r\n totalPriority += priority;\r\n }\r\n for (let i = 0;i < priorities.length;i++) {\r\n ratios[i] = priorities[i] / totalPriority;\r\n }\r\n let resourceCheck = function(index, curNum) {\r\n switch(keys[index]) {\r\n case 'Lux': {\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Furs.temp_rate > data.Lux.Furs;\r\n }\r\n case 'Alloy': {\r\n let copperCheck = _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Copper.temp_rate > data.Alloy.Copper;\r\n let aluminiumCheck = _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Aluminium.temp_rate > data.Alloy.Aluminium;\r\n return copperCheck && aluminiumCheck;\r\n }\r\n case 'Polymer': {\r\n let lumberCheck = _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Lumber.temp_rate > data.Polymer.Lumber;\r\n let oilCheck = _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Oil.temp_rate > data.Polymer.Oil;\r\n return lumberCheck && oilCheck;\r\n }\r\n case 'Nano': {\r\n let coalCheck = _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Coal.temp_rate > data.Nano.Coal;\r\n let neutroniumCheck = _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Neutronium.temp_rate > data.Nano.Neutronium;\r\n return coalCheck && neutroniumCheck;\r\n }\r\n case 'Stanene': {\r\n let aluminiumCheck = _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Aluminium.temp_rate > data.Stanene.Aluminium;\r\n let nanoTubeCheck = _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Nano_Tube.temp_rate > data.Stanene.Nano_Tube;\r\n return aluminiumCheck && nanoTubeCheck;\r\n }\r\n }\r\n return false;\r\n };\r\n let allocFunc = function(index, curNum) {\r\n switch(keys[index]) {\r\n case 'Lux': {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Furs.temp_rate -= data.Lux.Furs;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Money.temp_rate += data.Lux.Money;\r\n break;\r\n }\r\n case 'Alloy': {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Copper.temp_rate -= data.Alloy.Copper;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Aluminium.temp_rate -= data.Alloy.Aluminium;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Alloy.temp_rate += data.Alloy.produce;\r\n break;\r\n }\r\n case 'Polymer': {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Lumber.temp_rate -= data.Polymer.Lumber;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Oil.temp_rate -= data.Polymer.Oil;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Polymer.temp_rate += data.Polymer.produce;\r\n break;\r\n }\r\n case 'Nano': {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Coal.temp_rate -= data.Nano.Coal;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Neutronium.temp_rate -= data.Nano.Neutronium;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Nano_Tube.temp_rate += data.Nano.produce;\r\n break;\r\n }\r\n case 'Stanene': {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Aluminium.temp_rate -= data.Stanene.Aluminium;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Nano_Tube.temp_rate -= data.Stanene.Nano_Tube;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Stanene.temp_rate += data.Stanene.produce;\r\n break;\r\n }\r\n }\r\n };\r\n\r\n // Creating allocation list\r\n let allocation = Object(_utility_js__WEBPACK_IMPORTED_MODULE_3__[\"allocate\"])(totalFactories,priorities,{requireFunc:resourceCheck, allocFunc:allocFunc});\r\n\r\n console.log('FACTORY PRIO:', priorities, 'FACTORY RATIO:', ratios);\r\n console.log('FACTORY ALLOC:', allocation);\r\n\r\n // Allocating\r\n for (let i = 0;i < keys.length;i++) {\r\n if (data[keys[i]].num > allocation.alloc[i]) {\r\n for (let j = 0;j < data[keys[i]].num - allocation.alloc[i];j++) {\r\n data[keys[i]].decBtn.click();\r\n }\r\n }\r\n }\r\n for (let i = 0;i < keys.length;i++) {\r\n if (data[keys[i]].num < allocation.alloc[i]) {\r\n for (let j = 0;j < allocation.alloc[i] - data[keys[i]].num;j++) {\r\n data[keys[i]].incBtn.click();\r\n }\r\n }\r\n }\r\n\r\n // Setting data to null for garbage collector maybe\r\n data = null;\r\n}\r\n\r\nfunction loadDroid() {\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].hasOwnProperty('droidSettings')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].droidSettings = {};}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].droidSettings.hasOwnProperty('pqCheck')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].droidSettings.pqCheck = true;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].droidSettings.hasOwnProperty('Adamantite')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].droidSettings.Adamantite = 10;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].droidSettings.hasOwnProperty('Uranium')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].droidSettings.Uranium = 0;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].droidSettings.hasOwnProperty('Coal')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].droidSettings.Coal = 0;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].droidSettings.hasOwnProperty('Aluminium')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].droidSettings.Aluminium = 0;}\r\n}\r\nfunction getDroidData() {\r\n let data = {};\r\n\r\n // Adamantite\r\n data.Adamantite = {};\r\n data.Adamantite.produce = 0.075 * Object(_gameScripts_js__WEBPACK_IMPORTED_MODULE_4__[\"zigguratBonus\"])();\r\n data.Adamantite.num = window.evolve.global.interstellar.mining_droid.adam;\r\n data.Adamantite.decBtn = document.querySelector('#iDroid > div:nth-child(3) > span:nth-child(2)');\r\n data.Adamantite.incBtn = document.querySelector('#iDroid > div:nth-child(3) > span:nth-child(4)');\r\n\r\n // Uranium\r\n data.Uranium = {};\r\n data.Uranium.produce = 0.12 * Object(_gameScripts_js__WEBPACK_IMPORTED_MODULE_4__[\"zigguratBonus\"])();\r\n data.Uranium.num = window.evolve.global.interstellar.mining_droid.uran;\r\n data.Uranium.decBtn = document.querySelector('#iDroid > div:nth-child(4) > span:nth-child(2)');\r\n data.Uranium.incBtn = document.querySelector('#iDroid > div:nth-child(4) > span:nth-child(4)');\r\n\r\n // Coal\r\n data.Coal = {};\r\n data.Coal.produce = 3.75 * Object(_gameScripts_js__WEBPACK_IMPORTED_MODULE_4__[\"zigguratBonus\"])();\r\n data.Coal.num = window.evolve.global.interstellar.mining_droid.coal;\r\n data.Coal.decBtn = document.querySelector('#iDroid > div:nth-child(5) > span:nth-child(2)');\r\n data.Coal.incBtn = document.querySelector('#iDroid > div:nth-child(5) > span:nth-child(4)');\r\n\r\n // Aluminium\r\n data.Aluminium = {};\r\n data.Aluminium.produce = 2.75 * Object(_gameScripts_js__WEBPACK_IMPORTED_MODULE_4__[\"zigguratBonus\"])();\r\n data.Aluminium.num = window.evolve.global.interstellar.mining_droid.alum;\r\n data.Aluminium.decBtn = document.querySelector('#iDroid > div:nth-child(6) > span:nth-child(2)');\r\n data.Aluminium.incBtn = document.querySelector('#iDroid > div:nth-child(6) > span:nth-child(4)');\r\n\r\n return data;\r\n}\r\nasync function autoDroid(limits) {\r\n // Don't Auto Droid if not unlocked\r\n if (window.evolve.global.tech['alpha'] < 2) {return;}\r\n // Don't Auto Droid if you don't have any\r\n if (_buildings_js__WEBPACK_IMPORTED_MODULE_2__[\"buildings\"]['interstellar-mining_droid'].numTotal < 1) {return;}\r\n\r\n let totalDroids = _buildings_js__WEBPACK_IMPORTED_MODULE_2__[\"buildings\"]['interstellar-mining_droid'].numOn;\r\n\r\n let data = getDroidData();\r\n console.log('DROID DATA:', data);\r\n\r\n // Reverting current allocation\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Adamantite.temp_rate -= data.Adamantite.produce * data.Adamantite.num;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Uranium.temp_rate -= data.Uranium.produce * data.Uranium.num;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Coal.temp_rate -= data.Coal.produce * data.Coal.num;\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Aluminium.temp_rate -= data.Aluminium.produce * data.Aluminium.num;\r\n\r\n // Finding Allocation\r\n let keys = [];\r\n let priorities = [];\r\n let totalPriority = 0;\r\n let ratios = [];\r\n if (data.hasOwnProperty('Adamantite')) {\r\n keys.push('Adamantite');\r\n let priority = _settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].droidSettings.Adamantite;\r\n if (limits) {\r\n if (limits.Adamantite !== null) {\r\n priority *= limits.Adamantite.priority;\r\n } else {\r\n priority /= 10e10;\r\n }\r\n }\r\n priorities.push(priority);\r\n totalPriority += priority;\r\n }\r\n if (data.hasOwnProperty('Uranium')) {\r\n keys.push('Uranium');\r\n let priority = _settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].droidSettings.Uranium;\r\n if (limits) {\r\n if (limits.Uranium !== null) {\r\n priority *= limits.Uranium.priority;\r\n } else {\r\n priority /= 10e10;\r\n }\r\n }\r\n priorities.push(priority);\r\n totalPriority += priority;\r\n }\r\n if (data.hasOwnProperty('Coal')) {\r\n keys.push('Coal');\r\n let priority = _settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].droidSettings.Coal;\r\n if (limits) {\r\n if (limits.Coal !== null) {\r\n priority *= limits.Coal.priority;\r\n } else {\r\n priority /= 10e10;\r\n }\r\n }\r\n priorities.push(priority);\r\n totalPriority += priority;\r\n }\r\n if (data.hasOwnProperty('Aluminium')) {\r\n keys.push('Aluminium');\r\n let priority = _settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].droidSettings.Aluminium;\r\n if (limits) {\r\n if (limits.Aluminium !== null) {\r\n priority *= limits.Aluminium.priority;\r\n } else {\r\n priority /= 10e10;\r\n }\r\n }\r\n priorities.push(priority);\r\n totalPriority += priority;\r\n }\r\n for (let i = 0;i < priorities.length;i++) {\r\n ratios[i] = priorities[i] / totalPriority;\r\n }\r\n let allocFunc = function(index, curNum) {\r\n switch(keys[index]) {\r\n case 'Adamantite': {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Adamantite.temp_rate += data.Adamantite.produce;\r\n break;\r\n }\r\n case 'Uranium': {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Uranium.temp_rate += data.Uranium.produce;\r\n break;\r\n }\r\n case 'Coal': {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Coal.temp_rate += data.Coal.produce;\r\n break;\r\n }\r\n case 'Aluminium': {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Aluminium.temp_rate += data.Aluminium.produce;\r\n break;\r\n }\r\n }\r\n };\r\n\r\n // Creating allocation list\r\n let allocation = Object(_utility_js__WEBPACK_IMPORTED_MODULE_3__[\"allocate\"])(totalDroids,priorities,{allocFunc:allocFunc});\r\n\r\n console.log('DROID PRIO:', priorities, 'DROID RATIO:', ratios);\r\n console.log('DROID ALLOC:', allocation);\r\n\r\n // Allocating\r\n for (let i = 0;i < keys.length;i++) {\r\n if (data[keys[i]].num > allocation.alloc[i]) {\r\n for (let j = 0;j < data[keys[i]].num - allocation.alloc[i];j++) {\r\n data[keys[i]].decBtn.click();\r\n }\r\n }\r\n }\r\n for (let i = 0;i < keys.length;i++) {\r\n if (data[keys[i]].num < allocation.alloc[i]) {\r\n for (let j = 0;j < allocation.alloc[i] - data[keys[i]].num;j++) {\r\n data[keys[i]].incBtn.click();\r\n }\r\n }\r\n }\r\n\r\n // Setting data to null for garbage collector maybe\r\n data = null;\r\n}\r\n\r\nfunction loadGraphene() {\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].hasOwnProperty('grapheneSettings')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].grapheneSettings = {};}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].grapheneSettings.hasOwnProperty('pqCheck')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].grapheneSettings.pqCheck = true;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].grapheneSettings.hasOwnProperty('Wood')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].grapheneSettings.Wood = 0;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].grapheneSettings.hasOwnProperty('Coal')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].grapheneSettings.Coal = 10;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].grapheneSettings.hasOwnProperty('Oil')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].grapheneSettings.Oil = 5;}\r\n}\r\nfunction getGrapheneData() {\r\n let data = {};\r\n let spans = $('#iGraphene > div:nth-child(3) > span');\r\n // Lumber\r\n if (!window.evolve.global.race['kindling_kindred']) {\r\n data.Lumber = {};\r\n data.Lumber.decBtn = spans[0];\r\n data.Lumber.incBtn = spans[2];\r\n let str = spans[1].attributes['data-label'].value\r\n data.Lumber.fuel = parseFloat(/Consume ([\\d\\.]+).*/.exec(str)[1]);\r\n data.Lumber.num = window.evolve.global.interstellar.g_factory.Lumber;\r\n }\r\n // Coal\r\n if (window.evolve.global.resource.Coal.display) {\r\n data.Coal = {};\r\n data.Coal.decBtn = (data.Lumber) ? spans[3] : spans[0];\r\n data.Coal.incBtn = (data.Lumber) ? spans[5] : spans[2];\r\n let str = (data.Lumber) ? spans[4].attributes['data-label'].value : spans[1].attributes['data-label'].value;\r\n data.Coal.fuel = parseFloat(/Consume ([\\d\\.]+).*/.exec(str)[1]);\r\n data.Coal.num = window.evolve.global.interstellar.g_factory.Coal;\r\n }\r\n // Oil\r\n if (window.evolve.global.resource.Oil.display) {\r\n data.Oil = {};\r\n data.Oil.decBtn = (data.Lumber) ? spans[6] : spans[3];\r\n data.Oil.incBtn = (data.Lumber) ? spans[8] : spans[5];\r\n let str = (data.Lumber) ? spans[7].attributes['data-label'].value : spans[4].attributes['data-label'].value;\r\n data.Oil.fuel = parseFloat(/Consume ([\\d\\.]+).*/.exec(str)[1]);\r\n data.Oil.num = window.evolve.global.interstellar.g_factory.Oil;\r\n }\r\n return data;\r\n}\r\nasync function autoGraphene(limits) {\r\n // Don't Auto Graphene if not unlocked\r\n if (!Object(_researches_js__WEBPACK_IMPORTED_MODULE_1__[\"researched\"])('tech-graphene')) {return;}\r\n\r\n // Finding relevent elements\r\n let data = getGrapheneData();\r\n console.log('GRAPHENE Data:', data);\r\n\r\n let totalFactories = _buildings_js__WEBPACK_IMPORTED_MODULE_2__[\"buildings\"]['interstellar-g_factory'].numOn;\r\n\r\n // Reverting current allocation\r\n if (data.hasOwnProperty('Lumber')) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Lumber.temp_rate += data.Lumber.fuel * data.Lumber.num;\r\n }\r\n if (data.hasOwnProperty('Coal')) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Coal.temp_rate += data.Coal.fuel * data.Coal.num;\r\n }\r\n if (data.hasOwnProperty('Oil')) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Oil.temp_rate += data.Oil.fuel * data.Oil.num;\r\n }\r\n\r\n // Calculating Fuel\r\n let fuelKeys = [];\r\n let fuelPriorities = [];\r\n let fuelTotalPriority = 0;\r\n let fuelRatios = [];\r\n if (data.hasOwnProperty('Lumber')) {\r\n fuelKeys.push('Lumber');\r\n let priority = _settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].grapheneSettings.Wood;\r\n if (limits) {\r\n if (limits.Lumber !== null) {\r\n priority /= limits.Lumber.priority;\r\n } else {\r\n priority *= 10e10;\r\n }\r\n }\r\n fuelPriorities.push(priority);\r\n }\r\n if (data.hasOwnProperty('Coal')) {\r\n fuelKeys.push('Coal');\r\n let priority = _settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].grapheneSettings.Coal;\r\n if (limits) {\r\n if (limits.Coal !== null) {\r\n priority /= limits.Coal.priority;\r\n } else {\r\n priority *= 10e10;\r\n }\r\n }\r\n fuelPriorities.push(priority);\r\n }\r\n if (data.hasOwnProperty('Oil')) {\r\n fuelKeys.push('Oil');\r\n let priority = _settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].grapheneSettings.Oil;\r\n if (limits) {\r\n if (limits.Oil !== null) {\r\n priority /= limits.Oil.priority;\r\n } else {\r\n priority *= 10e10;\r\n }\r\n }\r\n fuelPriorities.push(priority);\r\n }\r\n for (let i = 0;i < fuelPriorities.length;i++) {fuelTotalPriority += fuelPriorities[i];}\r\n for (let i = 0;i < fuelPriorities.length;i++) {fuelRatios.push(fuelPriorities[i] / fuelTotalPriority);}\r\n let resourceCheck = function(index, curNum) {\r\n switch(fuelKeys[index]) {\r\n case 'Lumber': return _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Lumber.temp_rate > data.Lumber.fuel;\r\n case 'Coal': return _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Coal.temp_rate > data.Coal.fuel;\r\n case 'Oil': return _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Oil.temp_rate > data.Oil.fuel;\r\n }\r\n return false;\r\n };\r\n let allocFunc = function(index, curNum) {\r\n switch(fuelKeys[index]) {\r\n case 'Lumber': {_resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Lumber.temp_rate -= data.Lumber.fuel;break;}\r\n case 'Coal': {_resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Coal.temp_rate -= data.Coal.fuel;break;}\r\n case 'Oil': {_resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Oil.temp_rate -= data.Oil.fuel;break;}\r\n }\r\n };\r\n let fuelAllocation = Object(_utility_js__WEBPACK_IMPORTED_MODULE_3__[\"allocate\"])(totalFactories,fuelPriorities,{requireFunc:resourceCheck, allocFunc:allocFunc});\r\n\r\n console.log(\"GRAPHENE PRIO:\", fuelPriorities);\r\n console.log(\"GRAPHENE FUEL:\", fuelAllocation);\r\n\r\n // Removing extra fuel\r\n for (let i = 0;i < fuelKeys.length;i++) {\r\n if (data[fuelKeys[i]].num > fuelAllocation.alloc[i]) {\r\n for (let j = 0;j < data[fuelKeys[i]].num - fuelAllocation.alloc[i];j++) {\r\n data[fuelKeys[i]].decBtn.click();\r\n }\r\n }\r\n }\r\n // Allocating fuel\r\n for (let i = 0;i < fuelKeys.length;i++) {\r\n if (data[fuelKeys[i]].num < fuelAllocation.alloc[i]) {\r\n for (let j = 0;j < fuelAllocation.alloc[i] - data[fuelKeys[i]].num;j++) {\r\n data[fuelKeys[i]].incBtn.click();\r\n }\r\n }\r\n }\r\n\r\n // Setting data to null for garbage collector maybe\r\n data = null;\r\n}\r\n\r\n\n\n//# sourceURL=webpack:///./src/industry.js?");
/***/ }),
/***/ "./src/jobs.js":
/*!*********************!*\
!*** ./src/jobs.js ***!
\*********************/
/*! exports provided: jobs, loadJobs, craftJobs, loadCraftJobs, autoEmploy */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"jobs\", function() { return jobs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loadJobs\", function() { return loadJobs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"craftJobs\", function() { return craftJobs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loadCraftJobs\", function() { return loadCraftJobs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoEmploy\", function() { return autoEmploy; });\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./settings.js */ \"./src/settings.js\");\n/* harmony import */ var _utility_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utility.js */ \"./src/utility.js\");\n\r\n\r\n\r\nclass Job {\r\n constructor(id, priority) {\r\n this.id = id;\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].jobs.hasOwnProperty(this.id)) {_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].jobs[this.id] = {};}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].jobs[this.id].hasOwnProperty('priority')) {_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].jobs[this.id].priority = priority;}\r\n }\r\n\r\n get _priority() {return _settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].jobs[this.id].priority;}\r\n set _priority(priority) {_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].jobs[this.id].priority = priority;}\r\n\r\n get hireBtn() {\r\n return document.querySelector('#civ-'+this.id+' > .controls > .add');\r\n }\r\n get fireBtn() {\r\n return document.querySelector('#civ-'+this.id+' > .controls > .sub');\r\n }\r\n\r\n get name() {\r\n return window.evolve.global.civic[this.id].name;\r\n }\r\n\r\n get employed() {\r\n return window.evolve.global.civic[this.id].workers;\r\n }\r\n get maxEmployed() {\r\n return window.evolve.global.civic[this.id].max;\r\n }\r\n\r\n get priority() {\r\n return this._priority;\r\n }\r\n\r\n lowerPriority(mult) {\r\n if (this._priority == 0) {return;}\r\n this._priority -= mult;\r\n if (this._priority < 0) {this._priority = 0;}\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"updateSettings\"])();\r\n console.log(\"Lowering\", this.name, \"Priority\", this._priority);\r\n }\r\n higherPriority(mult) {\r\n this._priority += mult;\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"updateSettings\"])();\r\n console.log(\"Increasing\", this.name, \"Priority\", this._priority);\r\n }\r\n\r\n get unlocked() {\r\n return window.evolve.global.civic[this.id].display;\r\n }\r\n\r\n hire(num) {\r\n if (num === undefined) {num = 1;}\r\n let btn = this.hireBtn;\r\n if (btn === null) {return false;}\r\n Object(_utility_js__WEBPACK_IMPORTED_MODULE_1__[\"disableMult\"])();\r\n for (let i = 0;i < num;i++) {\r\n btn.click();\r\n }\r\n return true;\r\n }\r\n fire(num) {\r\n if (num === undefined) {num = 1;}\r\n let btn = this.fireBtn;\r\n if (btn === null) {return false;}\r\n Object(_utility_js__WEBPACK_IMPORTED_MODULE_1__[\"disableMult\"])();\r\n for (let i = 0;i < num;i++) {\r\n btn.click();\r\n }\r\n return true;\r\n }\r\n}\r\nclass Unemployed extends Job {\r\n constructor(id, priority) {\r\n super(id, priority);\r\n }\r\n\r\n get priority() {\r\n if (this.name == 'Hunter') {\r\n return this._priority;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n get hireFunc() {\r\n return function() {};\r\n }\r\n get fireFunc() {\r\n return function() {};\r\n }\r\n\r\n get name() {\r\n return window.evolve.global.race['carnivore'] || window.evolve.global.race['soul_eater'] ? 'Hunter' : 'Unemployed';\r\n }\r\n\r\n get employed() {\r\n return window.evolve.global.civic[this.id];\r\n }\r\n get maxEmployed() {\r\n return -1;\r\n }\r\n\r\n get unlocked() {\r\n return true;\r\n }\r\n}\r\nclass Craftsman extends Job {\r\n constructor(id, priority) {\r\n super(id, priority);\r\n }\r\n\r\n get hireBtn() {\r\n return document.querySelector('#foundry .job:nth-child(2) > .controls > .add')\r\n }\r\n get fireBtn() {\r\n return document.querySelector('#foundry .job:nth-child(2) > .controls > .sub')\r\n }\r\n}\r\n\r\nvar jobs = {};\r\nfunction loadJobs() {\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].hasOwnProperty('jobs')) {_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].jobs = {};}\r\n jobs.free = new Unemployed('free', 0);\r\n for (var x in window.evolve.global.civic) {\r\n if (window.evolve.global.civic[x].hasOwnProperty('job')) {\r\n if (x == 'craftsman') {\r\n jobs[x] = new Craftsman(x, 0);\r\n }\r\n else {\r\n jobs[x] = new Job(x, 0);\r\n }\r\n }\r\n }\r\n}\r\nclass CraftJob extends Job {\r\n constructor(id, priority) {\r\n super(id, priority);\r\n }\r\n\r\n get hireBtn() {\r\n return document.getElementById('craft'+this.id).parentNode.children[1].children[1];\r\n }\r\n get fireBtn() {\r\n return document.getElementById('craft'+this.id).parentNode.children[1].children[0];\r\n }\r\n\r\n get name() {\r\n return window.evolve.global.resource[this.id].name;\r\n }\r\n\r\n get unlocked() {\r\n return window.evolve.global.resource[this.id].display;\r\n }\r\n\r\n get employed() {\r\n return window.evolve.global.city.foundry[this.id];\r\n }\r\n get maxEmployed() {\r\n return -1;\r\n }\r\n}\r\n\r\nvar craftJobs = {};\r\nfunction loadCraftJobs() {\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].hasOwnProperty('jobs')) {_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].jobs = {};}\r\n Object.keys(window.evolve.global.resource).forEach(function(res) {\r\n // Craftable Resources\r\n if (window.evolve.craftCost[res] !== undefined) {\r\n craftJobs[res] = new CraftJob(res, 5);\r\n }\r\n });\r\n}\r\n\r\nfunction autoEmploy(priorityData) {\r\n let sortedJobs = [];\r\n var x;\r\n let population = 0;\r\n let totalPriority = 0;\r\n let priorities = [];\r\n let ratios = [];\r\n let maxes = [];\r\n for (x in jobs) {\r\n if (jobs[x].unlocked) {\r\n sortedJobs.push(jobs[x]);\r\n population += jobs[x].employed;\r\n totalPriority += jobs[x].priority;\r\n priorities.push(jobs[x].priority);\r\n }\r\n }\r\n for (let i = 0;i < sortedJobs.length;i++) {\r\n ratios.push(sortedJobs[i].priority / totalPriority);\r\n maxes.push(sortedJobs[i].maxEmployed);\r\n }\r\n\r\n // Allocating jobs\r\n let allocation = Object(_utility_js__WEBPACK_IMPORTED_MODULE_1__[\"allocate\"])(population,priorities,{max:maxes});\r\n console.log(\"JOBS MAX:\", maxes);\r\n console.log(\"JOBS:\", sortedJobs, priorities, ratios, allocation.alloc);\r\n console.log(allocation.seq);\r\n\r\n // Firing extra employees\r\n for (let i = 0;i < allocation.alloc.length;i++) {\r\n //console.log(i, sortedJobs[i].name, sortedJobs[i].employed, \"->\", allocation.alloc[i]);\r\n if (sortedJobs[i].employed > allocation.alloc[i]) {\r\n sortedJobs[i].fire(sortedJobs[i].employed - allocation.alloc[i]);\r\n }\r\n }\r\n // Hiring required employees\r\n for (let i = 0;i < allocation.alloc.length;i++) {\r\n if (sortedJobs[i].employed < allocation.alloc[i]) {\r\n sortedJobs[i].hire(allocation.alloc[i] - sortedJobs[i].employed);\r\n }\r\n }\r\n\r\n // Allocating craftsman\r\n if (!jobs.craftsman.unlocked) {return;}\r\n //console.log(\"Divying up Craftsman\");\r\n // Delay to get new craftman number\r\n setTimeout(function() {\r\n let totalCraftsman = window.evolve.global.civic.craftsman.workers;\r\n let totalPriority = 0;\r\n let cjobs = [];\r\n let priorities = [];\r\n let ratios = [];\r\n // Finding availible craftsman positions, as well as total priority and craftsman numbers\r\n for (x in craftJobs) {\r\n if (!craftJobs[x].unlocked) {continue;}\r\n cjobs.push(craftJobs[x]);\r\n totalPriority += craftJobs[x].priority;\r\n priorities.push(craftJobs[x].priority);\r\n }\r\n // Calculating wanted ratios\r\n for (let i = 0;i < cjobs.length;i++) {\r\n ratios.push(cjobs[i].priority / totalPriority);\r\n }\r\n // Optimizing craftsman placement\r\n let allocation = Object(_utility_js__WEBPACK_IMPORTED_MODULE_1__[\"allocate\"])(totalCraftsman,priorities);\r\n\r\n console.log(\"CRAFTJOBS:\", cjobs, priorities, ratios, allocation.alloc);\r\n\r\n // Firing all unneeded\r\n for (let i = 0;i < cjobs.length;i++) {\r\n if (allocation.alloc[i] < cjobs[i].employed) {\r\n cjobs[i].fire(cjobs[i].employed - allocation.alloc[i]);\r\n }\r\n }\r\n // Hiring all needed\r\n for (let i = 0;i < cjobs.length;i++) {\r\n if (allocation.alloc[i] > cjobs[i].employed) {\r\n cjobs[i].hire(allocation.alloc[i] - cjobs[i].employed);\r\n }\r\n }\r\n }, 50);\r\n}\n\n//# sourceURL=webpack:///./src/jobs.js?");
/***/ }),
/***/ "./src/main.js":
/*!*********************!*\
!*** ./src/main.js ***!
\*********************/
/*! exports provided: url, version, workingVersion */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"url\", function() { return url; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"version\", function() { return version; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"workingVersion\", function() { return workingVersion; });\n/* harmony import */ var _utility_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utility.js */ \"./src/utility.js\");\n/* harmony import */ var _evolution_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./evolution.js */ \"./src/evolution.js\");\n/* harmony import */ var _jobs_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./jobs.js */ \"./src/jobs.js\");\n/* harmony import */ var _war_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./war.js */ \"./src/war.js\");\n/* harmony import */ var _government_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./government.js */ \"./src/government.js\");\n/* harmony import */ var _industry_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./industry.js */ \"./src/industry.js\");\n/* harmony import */ var _priority_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./priority.js */ \"./src/priority.js\");\n/* harmony import */ var _resources_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./resources.js */ \"./src/resources.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./settings.js */ \"./src/settings.js\");\n/* harmony import */ var _farm_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./farm.js */ \"./src/farm.js\");\n/* harmony import */ var _support_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./support.js */ \"./src/support.js\");\n/* harmony import */ var _ui_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./ui.js */ \"./src/ui.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst url = 'https://github.com/HLXII/Evolve-Autoscript';\r\nconst version = '1.3.7';\r\nconst workingVersion = '0.7.5';\r\n\r\n(async function() {\r\n console.log(\"Waiting for game to load...\");\r\n await Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"sleep\"])(2000);\r\n await main();\r\n})();\r\n\r\nasync function main() {\r\n\r\n window.evolve = unsafeWindow.evolve;\r\n console.log(window.evolve);\r\n 'use strict';\r\n\r\n if (!window.evolve) {\r\n let alertStr = 'You currently have Evolve AutoScript installed, however the Enable Script Support toggle is not active. Please enable that in the Settings tab and refresh the page for the script to work correctly.';\r\n alert(alertStr);\r\n return;\r\n }\r\n\r\n await Object(_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"loadSettings\"])();\r\n console.log(_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"settings\"]);\r\n\r\n // Main script loop\r\n var count = 1;\r\n while(1) {\r\n await Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"sleep\"])(2000);\r\n await fastAutomate(count);\r\n count += 1;\r\n }\r\n}\r\n\r\nasync function fastAutomate(count) {\r\n console.clear();\r\n console.log(count);\r\n Object(_ui_js__WEBPACK_IMPORTED_MODULE_11__[\"updateUI\"])();\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"updateSettings\"])();\r\n Object(_farm_js__WEBPACK_IMPORTED_MODULE_9__[\"autoFarm\"])();\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"autoRefresh\"])();\r\n Object(_war_js__WEBPACK_IMPORTED_MODULE_3__[\"autoBattle\"])();\r\n if (Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"inEvolution\"])()) {\r\n // Evolution Automation\r\n if(_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].autoEvolution) {\r\n await Object(_evolution_js__WEBPACK_IMPORTED_MODULE_1__[\"autoEvolution\"])();\r\n // Loading buttons again to get DNA button\r\n Object(_farm_js__WEBPACK_IMPORTED_MODULE_9__[\"loadFarm\"])();\r\n }\r\n } else {\r\n // Civilization Automation\r\n var priorityData = null;\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].autoPriority) {\r\n priorityData = await Object(_priority_js__WEBPACK_IMPORTED_MODULE_6__[\"autoPriority\"])(count);\r\n }\r\n else {\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].autoSmelter) {\r\n await Object(_industry_js__WEBPACK_IMPORTED_MODULE_5__[\"autoSmelter\"])();\r\n }\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].autoFactory) {\r\n await Object(_industry_js__WEBPACK_IMPORTED_MODULE_5__[\"autoFactory\"])();\r\n }\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].autoDroid) {\r\n await Object(_industry_js__WEBPACK_IMPORTED_MODULE_5__[\"autoDroid\"])();\r\n }\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].autoGraphene) {\r\n await Object(_industry_js__WEBPACK_IMPORTED_MODULE_5__[\"autoGraphene\"])();\r\n }\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].autoSupport) {\r\n await Object(_support_js__WEBPACK_IMPORTED_MODULE_10__[\"autoSupport\"])();\r\n }\r\n }\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].autoTrade){Object(_resources_js__WEBPACK_IMPORTED_MODULE_7__[\"autoTrade\"])(priorityData);}\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].autoEjector) {Object(_resources_js__WEBPACK_IMPORTED_MODULE_7__[\"autoEjector\"])();}\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].autoCraft){\r\n Object(_resources_js__WEBPACK_IMPORTED_MODULE_7__[\"autoCraft\"])();\r\n }\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].autoEmploy){\r\n Object(_jobs_js__WEBPACK_IMPORTED_MODULE_2__[\"autoEmploy\"])(priorityData);\r\n }\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].autoTax) {\r\n Object(_government_js__WEBPACK_IMPORTED_MODULE_4__[\"autoTax\"])();\r\n }\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].autoMarket){\r\n await Object(_resources_js__WEBPACK_IMPORTED_MODULE_7__[\"autoMarket\"])();\r\n }\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].autoStorage) {\r\n Object(_resources_js__WEBPACK_IMPORTED_MODULE_7__[\"autoStorage\"])();\r\n }\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].autoGovernment) {\r\n await Object(_government_js__WEBPACK_IMPORTED_MODULE_4__[\"autoGovernment\"])();\r\n }\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].autoUnification) {\r\n await Object(_government_js__WEBPACK_IMPORTED_MODULE_4__[\"autoUnification\"])();\r\n }\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"settings\"].autoPrestige) {\r\n await Object(_settings_js__WEBPACK_IMPORTED_MODULE_8__[\"autoPrestige\"])();\r\n }\r\n }\r\n}\n\n//# sourceURL=webpack:///./src/main.js?");
/***/ }),
/***/ "./src/miscactions.js":
/*!****************************!*\
!*** ./src/miscactions.js ***!
\****************************/
/*! exports provided: MiscAction, ArpaAction, MonumentAction, loadMonumentRes, arpas, loadArpas, StorageAction, storages, loadStorages, GeneAction, MercenaryAction, FortressMercenaryAction, AlterAction, miscActions, loadMiscActions */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MiscAction\", function() { return MiscAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ArpaAction\", function() { return ArpaAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MonumentAction\", function() { return MonumentAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loadMonumentRes\", function() { return loadMonumentRes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"arpas\", function() { return arpas; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loadArpas\", function() { return loadArpas; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"StorageAction\", function() { return StorageAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"storages\", function() { return storages; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loadStorages\", function() { return loadStorages; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GeneAction\", function() { return GeneAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MercenaryAction\", function() { return MercenaryAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FortressMercenaryAction\", function() { return FortressMercenaryAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AlterAction\", function() { return AlterAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"miscActions\", function() { return miscActions; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loadMiscActions\", function() { return loadMiscActions; });\n/* harmony import */ var _resources_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./resources.js */ \"./src/resources.js\");\n/* harmony import */ var _actions_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./actions.js */ \"./src/actions.js\");\n/* harmony import */ var _buildings_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./buildings.js */ \"./src/buildings.js\");\n/* harmony import */ var _researches_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./researches.js */ \"./src/researches.js\");\n/* harmony import */ var _war_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./war.js */ \"./src/war.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./settings.js */ \"./src/settings.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass MiscAction extends _actions_js__WEBPACK_IMPORTED_MODULE_1__[\"Action\"] {\r\n constructor(id) {\r\n super(id, ['misc']);\r\n this.color = 'has-text-advanced';\r\n }\r\n}\r\n\r\nclass ArpaAction extends _buildings_js__WEBPACK_IMPORTED_MODULE_2__[\"Building\"] {\r\n constructor(id, res, multiplier) {\r\n super(id, ['misc']);\r\n this.loc.push('arpa');\r\n this.res = res;\r\n this.multiplier = multiplier;\r\n this.color = 'has-text-special';\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].actions[this.id].hasOwnProperty('size')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].actions[this.id].size = 25;}\r\n }\r\n\r\n get size() {return _settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].actions[this.id].size;}\r\n set size(size) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].actions[this.id].size = size;}\r\n\r\n get label() {\r\n return document.querySelector('#arpa'+this.id+' > .head > .desc');\r\n }\r\n get btn() {\r\n return document.querySelector(`#arpa${this.id} > div.buy > button.button.x${this.size}`);\r\n }\r\n\r\n get name() {\r\n if (this.label === null) {\r\n return this.id;\r\n }\r\n return this.label.innerText;\r\n }\r\n\r\n get unlocked() {\r\n if (!window.evolve.global.arpa.hasOwnProperty(this.id)) {return false;}\r\n if (this.id === 'launch_facility') {\r\n return window.evolve.global.arpa[this.id].rank !== 1;\r\n }\r\n return true;\r\n }\r\n\r\n get numTotal() {\r\n if (window.evolve.global.arpa[this.id] !== undefined) {\r\n return window.evolve.global.arpa[this.id].rank\r\n }\r\n return 0;\r\n }\r\n\r\n decSize() {\r\n if (this.size == 1) {return;}\r\n switch(this.size) {\r\n case 25: {this.size = 10;break;}\r\n case 10: {this.size = 1;break;}\r\n }\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"updateSettings\"])();\r\n console.log(\"Decrementing Button Size\", this.id, this.size);\r\n }\r\n incSize() {\r\n if (this.size == 25) {return;}\r\n switch(this.size) {\r\n case 1: {this.size = 10;break;}\r\n case 10: {this.size = 25;break;}\r\n }\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"updateSettings\"])();\r\n console.log(\"Incrementing Button Size\", this.id, this.size);\r\n }\r\n\r\n getResDep(resid) {\r\n if (this.res === null) {\r\n return null;\r\n }\r\n let multiplier = this.multiplier;\r\n if (window.evolve.global.race['creative']){\r\n multiplier -= 0.01;\r\n }\r\n return this.res[resid] * (multiplier ** this.numTotal) / (100 / this.size);\r\n }\r\n\r\n click() {\r\n if (this.btn !== null) {\r\n this.btn.click();\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n\r\nclass MonumentAction extends ArpaAction {\r\n constructor(id, multiplier) {\r\n super(id, {}, multiplier);\r\n }\r\n\r\n click() {\r\n if (this.btn !== null) {\r\n this.btn.click();\r\n setTimeout(loadMonumentRes, 500);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n\r\nfunction loadMonumentRes() {\r\n if (arpas.monument.label !== null) {\r\n switch(arpas.monument.label.innerText) {\r\n case \"Obelisk\":\r\n {\r\n arpas.monument.res = {Stone:1000000};\r\n break;\r\n }\r\n case \"Statue\":\r\n {\r\n arpas.monument.res = {Aluminium:350000};\r\n break;\r\n }\r\n case \"Sculpture\":\r\n {\r\n arpas.monument.res = {Steel:300000};\r\n break;\r\n }\r\n case \"Monolith\":\r\n {\r\n arpas.monument.res = {Cement:300000};\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r\nvar arpas = {};\r\nfunction loadArpas() {\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].hasOwnProperty('actions')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].actions = {};}\r\n arpas.lhc = new ArpaAction('lhc',\r\n {Money:2500000,\r\n Knowledge:500000,\r\n Copper:125000,\r\n Cement:250000,\r\n Aluminium:350000,\r\n Titanium:50000,\r\n Polymer:12000},\r\n 1.05);\r\n arpas.stock_exchange = new ArpaAction('stock_exchange',\r\n {Money:3000000,\r\n Plywood:25000,\r\n Brick:20000,\r\n Wrought_Iron:10000},\r\n 1.06);\r\n arpas.launch_facility = new ArpaAction('launch_facility',\r\n {Money:2000000,\r\n Knowledge:500000,\r\n Cement:150000,\r\n Oil:20000,\r\n Sheet_Metal:15000,\r\n Alloy:25000},\r\n 1.1);\r\n arpas.monument = new MonumentAction('monument', 1.1);\r\n arpas.railway = new ArpaAction('railway',\r\n {Money:2500000,\r\n Lumber:750000,\r\n Iron:300000,\r\n Steel:450000},\r\n 1.08);\r\n loadMonumentRes();\r\n}\r\n\r\nclass StorageAction extends MiscAction {\r\n constructor(id, res) {\r\n super(id);\r\n this.loc.push('storage');\r\n this.res = res;\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].actions[this.id].hasOwnProperty('size')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].actions[this.id].size = 10;}\r\n }\r\n\r\n get size() {return _settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].actions[this.id].size;}\r\n set size(size) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].actions[this.id].size = size;}\r\n\r\n decSize(mult) {\r\n if (this.size == 1) {return;}\r\n this.size -= mult;\r\n if (this.size <= 0) {this.size = 1;}\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"updateSettings\"])();\r\n console.log(\"Decrementing Craft Size\", this.id, this.size);\r\n }\r\n incSize(mult) {\r\n this.size += mult;\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"updateSettings\"])();\r\n console.log(\"Incrementing Craft Size\", this.id, this.size);\r\n }\r\n\r\n get countLabel() {\r\n return document.querySelector('#cnt'+this.name+'s');\r\n }\r\n get btn() {\r\n let div = document.querySelector('.'+this.id.toLowerCase());\r\n if (div === null) {return null;}\r\n return div.children[0];\r\n }\r\n\r\n get unlocked() {\r\n if (this.id == 'Crate') {\r\n return Object(_researches_js__WEBPACK_IMPORTED_MODULE_3__[\"researched\"])('tech-containerization');\r\n } else {\r\n return Object(_researches_js__WEBPACK_IMPORTED_MODULE_3__[\"researched\"])('tech-steel_containers');\r\n }\r\n }\r\n\r\n get name() {\r\n return this.id.charAt(0).toUpperCase() + this.id.slice(1)\r\n }\r\n\r\n get full() {\r\n if (this.countLabel !== null) {\r\n let data = this.countLabel.innerText.split(' / ');\r\n return (parseInt(data[0]) == parseInt(data[1]));\r\n } else {\r\n console.log(\"Error:\", this.id, \"Full\");\r\n return true;\r\n }\r\n }\r\n\r\n getResDep(resid) {\r\n if (this.res === null) {\r\n return null;\r\n }\r\n return this.res[resid] * this.size;\r\n }\r\n\r\n click() {\r\n let btn = this.btn;\r\n if (btn === null) {return false;}\r\n for (let i = 0;i < this.size;i++) {\r\n btn.click();\r\n }\r\n return true;\r\n }\r\n}\r\n\r\nvar storages = {};\r\nfunction loadStorages() {\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].hasOwnProperty('actions')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].actions = {};}\r\n storages.Crate = new StorageAction('Crate',\r\n (_resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Lumber.unlocked) ?\r\n {Plywood:10}\r\n :\r\n {Stone:200});\r\n storages.Container = new StorageAction('Container',\r\n {Steel:125});\r\n}\r\n\r\nclass GeneAction extends MiscAction {\r\n constructor(id) {\r\n super(id);\r\n this.res = {Knowledge:200000};\r\n }\r\n\r\n get btn() {\r\n let btn = $(\"#arpaSequence > span > button\").not(\".has-text-success\");\r\n return (btn.length) ? btn[0] : null;\r\n }\r\n\r\n get unlocked() {\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Knowledge.max > 200000 && this.btn !== null;\r\n }\r\n\r\n get name() {\r\n return \"Assemble Gene\";\r\n }\r\n\r\n getResDep(resid) {\r\n if (this.res === null) {\r\n return null;\r\n }\r\n return this.res[resid];\r\n }\r\n\r\n click() {\r\n let btn = this.btn;\r\n if (btn === null) {return false;}\r\n btn.click();\r\n return true;\r\n }\r\n}\r\n\r\nclass MercenaryAction extends MiscAction {\r\n constructor(id) {\r\n super(id);\r\n this.loc.push('mercenary');\r\n this.res = {};\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].actions[this.id].hasOwnProperty('maxPrice')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].actions[this.id].maxPrice = 25001;}\r\n }\r\n\r\n get maxPrice() {return _settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].actions[this.id].maxPrice;}\r\n set maxPrice(maxPrice) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].actions[this.id].maxPrice = maxPrice;}\r\n\r\n decMaxPrice(mult) {\r\n if (this.maxPrice == -1) {return;}\r\n this.maxPrice -= mult;\r\n if (this.maxPrice < -1) {this.maxPrice = -1;}\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"updateSettings\"])();\r\n console.log(\"Decrementing Max Price\", this.id, this.maxPrice);\r\n }\r\n incMaxPrice(mult) {\r\n this.maxPrice += mult;\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"updateSettings\"])();\r\n console.log(\"Incrementing Max Price\", this.id, this.maxPrice);\r\n }\r\n\r\n get btn() {\r\n let btn = $('button.first');\r\n return (btn.length) ? btn[0] : null;\r\n }\r\n\r\n get unlocked() {\r\n let unlocked = window.evolve.global.civic.garrison.mercs;\r\n let canBuySoldiers = Object(_war_js__WEBPACK_IMPORTED_MODULE_4__[\"getAvailableSoldiers\"])() != Object(_war_js__WEBPACK_IMPORTED_MODULE_4__[\"getMaxSoldiers\"])();\r\n let belowMaxPrice = (this.maxPrice == -1) ? true : this.getResDep('Money') < this.maxPrice;\r\n return unlocked && canBuySoldiers && belowMaxPrice;\r\n }\r\n\r\n get name() {\r\n return \"Hire Garrison Mercenary\";\r\n }\r\n\r\n getResDep(resid) {\r\n let str = $('.hire > span')[0].attributes['data-label'].value;\r\n let val = /[^\\d]*([\\d]+)[^\\d]*/.exec(str);\r\n this.res.Money = val[1];\r\n if (this.res === null) {\r\n return null;\r\n }\r\n return this.res[resid];\r\n }\r\n\r\n click() {\r\n if (Object(_war_js__WEBPACK_IMPORTED_MODULE_4__[\"getAvailableSoldiers\"])() === Object(_war_js__WEBPACK_IMPORTED_MODULE_4__[\"getMaxSoldiers\"])()) {return false;}\r\n let btn = this.btn;\r\n if (btn === null) {return false;}\r\n btn.click();\r\n return true;\r\n }\r\n}\r\n\r\nclass FortressMercenaryAction extends MercenaryAction {\r\n constructor(id) {\r\n super(id);\r\n }\r\n\r\n get btn() {\r\n let btn = $('button.merc');\r\n return (btn.length) ? btn[0] : null;\r\n }\r\n\r\n get name() {\r\n return \"Hire Fortress Mercenary\";\r\n }\r\n}\r\n\r\nclass AlterAction extends MiscAction {\r\n constructor(id) {\r\n super(id);\r\n this.res = {};\r\n }\r\n get btn() {\r\n let btn = $(\"#city-s_alter > a\");\r\n return (btn.length) ? btn[0] : null;\r\n }\r\n get unlocked() {\r\n let exists = (window.evolve.global.city.hasOwnProperty('s_alter') && window.evolve.global.city.s_alter.count == 1);\r\n let populationCheck = false;\r\n for (let x in window.evolve.global.resource) {\r\n if (Object.keys(window.evolve.races).includes(x)) {\r\n populationCheck = window.evolve.global.resource[x].amount == window.evolve.global.resource[x].max;\r\n break;\r\n }\r\n }\r\n return exists && populationCheck;\r\n }\r\n\r\n get name() {\r\n return \"Sacrifice\";\r\n }\r\n\r\n getResDep(resid) {\r\n return null;\r\n }\r\n\r\n click() {\r\n let btn = this.btn;\r\n if (btn === null) {return false;}\r\n btn.click();\r\n return true;\r\n }\r\n}\r\n\r\nvar miscActions = {};\r\nfunction loadMiscActions() {\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].hasOwnProperty('actions')) {_settings_js__WEBPACK_IMPORTED_MODULE_5__[\"settings\"].actions = {};}\r\n miscActions.Gene = new GeneAction(\"Gene\");\r\n miscActions.Mercenary = new MercenaryAction(\"Mercenary\");\r\n miscActions.FortressMercenary = new FortressMercenaryAction(\"FortressMercenary\");\r\n miscActions.Sacrifice = new AlterAction(\"Sacrifice\");\r\n}\n\n//# sourceURL=webpack:///./src/miscactions.js?");
/***/ }),
/***/ "./src/modal.js":
/*!**********************!*\
!*** ./src/modal.js ***!
\**********************/
/*! exports provided: openModal, closeModal */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"openModal\", function() { return openModal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"closeModal\", function() { return closeModal; });\n/* harmony import */ var _utility_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utility.js */ \"./src/utility.js\");\n\r\n\r\n// Used to ensure no modal window conflicts\r\nvar modal = false;\r\n\r\nasync function openModal(btn) {\r\n\t// Checking if modal already open that shouldn't be\r\n\tif ($('.modal').length != 0 && !modal) {\r\n\t return false;\r\n\t}\r\n\t// Ensuring no modal conflicts\r\n\tif (modal) {\r\n\t\tlet closed = await closeModal();\r\n\t\tif (!closed) return false;\r\n\t}\r\n\tmodal = true;\r\n\t// Opening modal\r\n\tbtn.click();\r\n\tawait Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"sleep\"])(1000);\r\n\treturn true;\r\n}\r\n\r\nasync function closeModal(close) {\r\n\tclose = (close === undefined) ? true : close;\r\n\tif (!close) {\r\n\t\tmodal = false;\r\n\t\treturn true;\r\n\t}\r\n\r\n\t// Closing modal\r\n\tlet closeBtn = $('.modal-close')[0];\r\n\tif (closeBtn !== undefined) {\r\n\t\tcloseBtn.click();\r\n\t\tawait Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"sleep\"])(50);\r\n\t\tmodal = false;\r\n\t\treturn true;\r\n\t} else {\r\n\t\tconsole.log(\"MODAL ERROR: Modal close button could not be found.\");\r\n\t\treturn false;\r\n\t}\r\n}\n\n//# sourceURL=webpack:///./src/modal.js?");
/***/ }),
/***/ "./src/priority.js":
/*!*************************!*\
!*** ./src/priority.js ***!
\*************************/
/*! exports provided: autoPriority */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoPriority\", function() { return autoPriority; });\n/* harmony import */ var _resources_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./resources.js */ \"./src/resources.js\");\n/* harmony import */ var _actions_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./actions.js */ \"./src/actions.js\");\n/* harmony import */ var _buildings_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./buildings.js */ \"./src/buildings.js\");\n/* harmony import */ var _researches_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./researches.js */ \"./src/researches.js\");\n/* harmony import */ var _miscactions_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./miscactions.js */ \"./src/miscactions.js\");\n/* harmony import */ var _utility_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utility.js */ \"./src/utility.js\");\n/* harmony import */ var _ui_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ui.js */ \"./src/ui.js\");\n/* harmony import */ var _industry_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./industry.js */ \"./src/industry.js\");\n/* harmony import */ var _support_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./support.js */ \"./src/support.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./settings.js */ \"./src/settings.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction priorityScale(value, priority, action) {\r\n let scale = Math.exp(-0.25 * priority);\r\n if (action !== null && action !== undefined) {\r\n if (action instanceof _researches_js__WEBPACK_IMPORTED_MODULE_3__[\"Research\"]) {\r\n scale /= 50;\r\n }\r\n if (action instanceof _buildings_js__WEBPACK_IMPORTED_MODULE_2__[\"Building\"] && action.softCap >= 0) {\r\n let softCap = 1 + Math.exp(0.75 * (action.numTotal - action.softCap));\r\n scale *= softCap;\r\n }\r\n }\r\n return value * scale;\r\n}\r\n\r\nfunction getAvailableBuildings() {\r\n let build = [];\r\n for (var x in _buildings_js__WEBPACK_IMPORTED_MODULE_2__[\"buildings\"]) {\r\n // Don't check buildings that aren't unlocked\r\n if (!_buildings_js__WEBPACK_IMPORTED_MODULE_2__[\"buildings\"][x].unlocked) {continue;}\r\n // Don't check buildings that aren't enabled\r\n if (!_buildings_js__WEBPACK_IMPORTED_MODULE_2__[\"buildings\"][x].enabled) {continue;}\r\n // Don't check buildings that met their limit\r\n if (_buildings_js__WEBPACK_IMPORTED_MODULE_2__[\"buildings\"][x].limit != -1 && _buildings_js__WEBPACK_IMPORTED_MODULE_2__[\"buildings\"][x].numTotal >= _buildings_js__WEBPACK_IMPORTED_MODULE_2__[\"buildings\"][x].limit) {continue;}\r\n // Don't check buildings that can't be bought\r\n let btn = document.getElementById(_buildings_js__WEBPACK_IMPORTED_MODULE_2__[\"buildings\"][x].id);\r\n // If button doesn't exist but it's a space dock building, bring it anyways\r\n if (btn === null) {\r\n if (x=='spcdock-probes'||x=='spcdock-seeder') {\r\n build.push(_buildings_js__WEBPACK_IMPORTED_MODULE_2__[\"buildings\"][x]);\r\n }\r\n continue;\r\n }\r\n if (btn.className.indexOf('cnam') >= 0) {continue;}\r\n build.push(_buildings_js__WEBPACK_IMPORTED_MODULE_2__[\"buildings\"][x]);\r\n }\r\n //console.log(build);\r\n return build;\r\n}\r\nfunction getAvailableResearches() {\r\n let research = [];\r\n for (var x in _researches_js__WEBPACK_IMPORTED_MODULE_3__[\"researches\"]) {\r\n // Don't check researches that aren't unlocked\r\n if (!_researches_js__WEBPACK_IMPORTED_MODULE_3__[\"researches\"][x].unlocked) {continue;}\r\n // Don't check researches that aren't enabled\r\n if (!_researches_js__WEBPACK_IMPORTED_MODULE_3__[\"researches\"][x].enabled) {continue;}\r\n // Don't check researches that have already been researched\r\n if (_researches_js__WEBPACK_IMPORTED_MODULE_3__[\"researches\"][x].researched) {continue;}\r\n // Don't check researches that can't be bought\r\n let btn = document.getElementById(_researches_js__WEBPACK_IMPORTED_MODULE_3__[\"researches\"][x].id);\r\n // Don't check researches that don't exist\r\n if (btn === null) {continue;}\r\n if (btn.className.indexOf('cnam') >= 0) {continue;}\r\n // Research filters\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].autoResearch) {\r\n if(_researches_js__WEBPACK_IMPORTED_MODULE_3__[\"researches\"][x].id == \"tech-fanaticism\" && _settings_js__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].religion1 == \"anthropology\") {continue;}\r\n if(_researches_js__WEBPACK_IMPORTED_MODULE_3__[\"researches\"][x].id == \"tech-anthropology\" && _settings_js__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].religion1 == \"fanaticism\") {continue;}\r\n // Checking if study/deify ancients\r\n if(_researches_js__WEBPACK_IMPORTED_MODULE_3__[\"researches\"][x].id == \"tech-study\" && _settings_js__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].religion2 == \"deify\") {continue;}\r\n if(_researches_js__WEBPACK_IMPORTED_MODULE_3__[\"researches\"][x].id == \"tech-deify\" && _settings_js__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].religion2 == \"study\") {continue;}\r\n }\r\n research.push(_researches_js__WEBPACK_IMPORTED_MODULE_3__[\"researches\"][x]);\r\n }\r\n //console.log(research);\r\n return research;\r\n}\r\nfunction getAvailableArpas() {\r\n let arpa = [];\r\n for (var x in _miscactions_js__WEBPACK_IMPORTED_MODULE_4__[\"arpas\"]) {\r\n // Don't add ARPAs that are not unlocked\r\n if (!_miscactions_js__WEBPACK_IMPORTED_MODULE_4__[\"arpas\"][x].unlocked) {continue;}\r\n // Don't add ARPAs that are not enabled\r\n if (!_miscactions_js__WEBPACK_IMPORTED_MODULE_4__[\"arpas\"][x].enabled) {continue;}\r\n // Don't check ARPAs that met their limit\r\n if (_miscactions_js__WEBPACK_IMPORTED_MODULE_4__[\"arpas\"][x].limit != -1 && _miscactions_js__WEBPACK_IMPORTED_MODULE_4__[\"arpas\"][x].numTotal >= _miscactions_js__WEBPACK_IMPORTED_MODULE_4__[\"arpas\"][x].limit) {continue;}\r\n arpa.push(_miscactions_js__WEBPACK_IMPORTED_MODULE_4__[\"arpas\"][x]);\r\n }\r\n return arpa;\r\n}\r\nfunction getAvailableStorages() {\r\n let store = [];\r\n for (var x in _miscactions_js__WEBPACK_IMPORTED_MODULE_4__[\"storages\"]) {\r\n // Don't add if not unlocked\r\n if (!_miscactions_js__WEBPACK_IMPORTED_MODULE_4__[\"storages\"][x].unlocked) {continue;}\r\n // Don't add if not enabled\r\n if (!_miscactions_js__WEBPACK_IMPORTED_MODULE_4__[\"storages\"][x].enabled) {continue;}\r\n // Don't add if no more space\r\n if (_miscactions_js__WEBPACK_IMPORTED_MODULE_4__[\"storages\"][x].full) {continue;}\r\n store.push(_miscactions_js__WEBPACK_IMPORTED_MODULE_4__[\"storages\"][x]);\r\n }\r\n return store;\r\n}\r\nfunction getAvailableMiscActions() {\r\n let misc = [];\r\n for (var x in _miscactions_js__WEBPACK_IMPORTED_MODULE_4__[\"miscActions\"]) {\r\n // Don't add if not unlocked\r\n if (!_miscactions_js__WEBPACK_IMPORTED_MODULE_4__[\"miscActions\"][x].unlocked) {continue;}\r\n // Don't add if disabled\r\n if (!_miscactions_js__WEBPACK_IMPORTED_MODULE_4__[\"miscActions\"][x].enabled) {continue;}\r\n misc.push(_miscactions_js__WEBPACK_IMPORTED_MODULE_4__[\"miscActions\"][x]);\r\n }\r\n return misc;\r\n}\r\nfunction getAvailableActions() {\r\n // Getting buildings and researches\r\n let actions = getAvailableBuildings().concat(getAvailableResearches()).concat(getAvailableArpas()).concat(getAvailableStorages()).concat(getAvailableMiscActions());\r\n\r\n for (let i = 0;i < actions.length;i++) {\r\n actions[i].completion = {};\r\n actions[i].completionTime = {};\r\n actions[i].maxCompletionTime = 0;\r\n actions[i].limitingRes = null;\r\n actions[i].keptRes = {};\r\n }\r\n return actions;\r\n}\r\nfunction getAvailableResources() {\r\n let res = [];\r\n for (var x in _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"]) {\r\n if (!_resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"][x].unlocked) {continue;}\r\n res.push(_resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"][x]);\r\n }\r\n return res;\r\n}\r\n\r\nasync function autoPriority(count) {\r\n // Finding available actions\r\n let actions = getAvailableActions();\r\n //console.log(actions);\r\n\r\n // Storing temporary rates\r\n for (let x in _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"]) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"][x].temp_rate = _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"][x].rate;\r\n }\r\n\r\n // Removing trade routes (if exists) for accurate rate\r\n if (Object(_researches_js__WEBPACK_IMPORTED_MODULE_3__[\"researched\"])('tech-trade')) {\r\n // Clearing out trade routes\r\n for (let x in _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"]) {\r\n let resource = _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"][x];\r\n if (!(resource instanceof _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"TradeableResource\"])) {continue;}\r\n if (resource.tradeNum < 0) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Money.temp_rate -= resource.tradeSellCost * -resource.tradeNum;\r\n resource.temp_rate += resource.tradeAmount * -resource.tradeNum;\r\n } else {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"].Money.temp_rate += resource.tradeBuyCost * resource.tradeNum;\r\n resource.temp_rate -= resource.tradeAmount * resource.tradeNum\r\n }\r\n }\r\n }\r\n\r\n // Removing mass ejection (if exists) for accurate rate\r\n if (window.evolve.global.interstellar.hasOwnProperty('mass_ejector')) {\r\n if (window.evolve.global.interstellar.mass_ejector.on > 0) {\r\n for (let x in _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"]) {\r\n let resource = _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"][x];\r\n if (!resource.ejectable) {continue;}\r\n resource.temp_rate += window.evolve.global.interstellar.mass_ejector[x];\r\n }\r\n }\r\n }\r\n\r\n // Create priority queues for resources\r\n let res = getAvailableResources();\r\n let PQs = {}\r\n let limits = {}\r\n // Creating priority queues for each resource\r\n for (let i = 0;i < res.length;i++) {\r\n let curRes = res[i];\r\n let pq = [];\r\n // Checking each action for resource dependence\r\n for (let j = 0;j < actions.length;j++) {\r\n let cost = actions[j].getResDep(curRes.id);\r\n if (cost !== null && cost !== NaN && cost > 0) {\r\n pq.push(actions[j]);\r\n // Setting up completion attribute\r\n actions[j].completion[curRes.id.toLowerCase()] = false;\r\n }\r\n }\r\n // Sorting actions by scaled priority\r\n pq.sort(function(a,b) {\r\n let aCost = priorityScale(a.getResDep(curRes.id), a.priority, a);\r\n let bCost = priorityScale(b.getResDep(curRes.id), b.priority, b);\r\n return aCost - bCost;\r\n });\r\n\r\n // Finding completion time and limiting resource\r\n for (let j = 0;j < pq.length;j++) {\r\n let action = pq[j];\r\n // Already completed with current resources\r\n // Scaling by 1.01 for rounding error\r\n if (curRes.amount >= action.getResDep(curRes.id)) {\r\n action.completionTime[curRes.id] = 0;\r\n } else {\r\n let time = (action.getResDep(curRes.id) - curRes.amount) / curRes.temp_rate;\r\n time = (time < 0) ? 1 : time;\r\n action.completionTime[curRes.id] = time;\r\n //console.log(action.id, curRes.id, action.getResDep(curRes.id), curRes.amount, curRes.temp_rate, time);\r\n if (time > action.maxCompletionTime) {\r\n action.maxCompletionTime = time;\r\n action.limitingRes = curRes.id;\r\n }\r\n }\r\n\r\n }\r\n PQs[curRes.id] = pq;\r\n }\r\n\r\n // Determining completion\r\n for (let i = 0;i < res.length;i++) {\r\n let curRes = res[i];\r\n let pq = PQs[curRes.id];\r\n limits[curRes.id] = null;\r\n // Determining resource completion\r\n // Resource filled, set all to completion\r\n if (!(curRes instanceof _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"CraftableResource\"]) && curRes.ratio > 0.99) {\r\n //console.log(curRes.id, \"ratio > 0.99. Set all to complete\");\r\n for (let j = 0;j < pq.length;j++) {\r\n pq[j].completion[curRes.id.toLowerCase()] = true;\r\n }\r\n // Resource not full, allocate until reached action not filled.\r\n } else {\r\n let curAmount = curRes.amount;\r\n //console.log(curRes.id, curAmount);\r\n for (let j = 0;j < pq.length;j++) {\r\n let action = pq[j];\r\n //console.log(pq[j].id, pq[j].getResDep(curRes.id) , curAmount);\r\n if (action.getResDep(curRes.id) <= curAmount) {\r\n // Action can be achieved with this resource\r\n action.completion[curRes.id.toLowerCase()] = true;\r\n // Determining how much of the resource to save for this action\r\n /*\r\n let giveAmount = (action.maxCompletionTime - action.completionTime[curRes.id]) * curRes.temp_rate;\r\n let give = Math.min(giveAmount,curAmount);\r\n action.keptRes[curRes.id] = curAmount - give;\r\n curAmount = give;\r\n */\r\n\r\n if (action.limitingRes == curRes.id) {\r\n // This resource is the limiting factor, give nothing to the next actions\r\n action.keptRes[curRes.id] = action.getResDep(curRes.id);\r\n curAmount -= action.keptRes[curRes.id];\r\n } else {\r\n // This resource isn't the limiting factor, give some leeway\r\n // Higher priority, less leeway given\r\n // Limiting resource will take a long time to complete, give more leeway\r\n let priorityFactor = 1 / (1.0 + Math.exp(-0.1 * action.priority));\r\n let timeFactor = Math.exp(-.005 * action.maxCompletionTime);\r\n action.keptRes[curRes.id] = priorityFactor * timeFactor * action.getResDep(curRes.id)/(i+1);\r\n curAmount -= action.keptRes[curRes.id];\r\n }\r\n\r\n } else {\r\n // Action cannot be achieved with this resource\r\n limits[curRes.id] = action;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n // Purchasing complete actions\r\n actions.sort(_utility_js__WEBPACK_IMPORTED_MODULE_5__[\"prioCompare\"]);\r\n console.log(\"ACT:\", actions);\r\n for (let i = 0;i < actions.length;i++) {\r\n let action = actions[i];\r\n let canBuy = true;\r\n for (let x in action.completion) {\r\n if (!action.completion[x]) {\r\n canBuy = false;\r\n break;\r\n }\r\n }\r\n if (canBuy) {\r\n console.log(action.id, \"can buy\");\r\n let clicked = action.click();\r\n // Don't count unification research\r\n if (action.id == 'tech-wc_conquest' || action.id == 'tech-wc_morale' || action.id == 'tech-wc_money' || action.id == 'tech-wc_reject') {\r\n clicked = false;\r\n }\r\n if (clicked) {\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].autoPrint) {\r\n if (action instanceof _buildings_js__WEBPACK_IMPORTED_MODULE_2__[\"Building\"] && !(action instanceof _miscactions_js__WEBPACK_IMPORTED_MODULE_4__[\"ArpaAction\"])) {\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].printSettings.Buildings) {\r\n Object(_utility_js__WEBPACK_IMPORTED_MODULE_5__[\"messageQueue\"])(Object(_utility_js__WEBPACK_IMPORTED_MODULE_5__[\"getTotalGameDays\"])().toString() + \" [AUTO-PRIORITY] \" + action.name, 'warning');\r\n }\r\n }\r\n else if (action instanceof _researches_js__WEBPACK_IMPORTED_MODULE_3__[\"Research\"]) {\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].printSettings.Researches) {\r\n Object(_utility_js__WEBPACK_IMPORTED_MODULE_5__[\"messageQueue\"])(Object(_utility_js__WEBPACK_IMPORTED_MODULE_5__[\"getTotalGameDays\"])().toString() + \" [AUTO-PRIORITY] \" + action.name, 'warning');\r\n }\r\n }\r\n else {\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].printSettings.Misc) {\r\n Object(_utility_js__WEBPACK_IMPORTED_MODULE_5__[\"messageQueue\"])(Object(_utility_js__WEBPACK_IMPORTED_MODULE_5__[\"getTotalGameDays\"])().toString() + \" [AUTO-PRIORITY] \" + action.name, 'warning');\r\n }\r\n }\r\n\r\n }\r\n Object(_ui_js__WEBPACK_IMPORTED_MODULE_6__[\"resetUICheck\"])(action);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // Starting other Auto Settings\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].autoSmelter) {\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].smelterSettings.pqCheck) {\r\n await Object(_industry_js__WEBPACK_IMPORTED_MODULE_7__[\"autoSmelter\"])(limits);\r\n } else {\r\n await Object(_industry_js__WEBPACK_IMPORTED_MODULE_7__[\"autoSmelter\"])();\r\n }\r\n }\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].autoFactory) {\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].factorySettings.pqCheck) {\r\n await Object(_industry_js__WEBPACK_IMPORTED_MODULE_7__[\"autoFactory\"])(limits);\r\n } else {\r\n await Object(_industry_js__WEBPACK_IMPORTED_MODULE_7__[\"autoFactory\"])();\r\n }\r\n }\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].autoDroid) {\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].droidSettings.pqCheck) {\r\n await Object(_industry_js__WEBPACK_IMPORTED_MODULE_7__[\"autoDroid\"])(limits);\r\n } else {\r\n await Object(_industry_js__WEBPACK_IMPORTED_MODULE_7__[\"autoDroid\"])();\r\n }\r\n }\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].autoGraphene) {\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].grapheneSettings.pqCheck) {\r\n await Object(_industry_js__WEBPACK_IMPORTED_MODULE_7__[\"autoGraphene\"])(limits);\r\n } else {\r\n await Object(_industry_js__WEBPACK_IMPORTED_MODULE_7__[\"autoGraphene\"])();\r\n }\r\n }\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_9__[\"settings\"].autoSupport) {\r\n await Object(_support_js__WEBPACK_IMPORTED_MODULE_8__[\"autoSupport\"])(limits);\r\n }\r\n\r\n // Determining rate priorities\r\n console.log(\"LIM:\", limits);\r\n console.log(\"PQ:\", PQs);\r\n\r\n return {limits:limits,PQs:PQs}\r\n}\n\n//# sourceURL=webpack:///./src/priority.js?");
/***/ }),
/***/ "./src/researches.js":
/*!***************************!*\
!*** ./src/researches.js ***!
\***************************/
/*! exports provided: Research, researches, loadResearches, researched */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Research\", function() { return Research; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"researches\", function() { return researches; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loadResearches\", function() { return loadResearches; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"researched\", function() { return researched; });\n/* harmony import */ var _actions_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./actions.js */ \"./src/actions.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settings.js */ \"./src/settings.js\");\n\r\n\r\n\r\nclass Research extends _actions_js__WEBPACK_IMPORTED_MODULE_0__[\"Action\"] {\r\n constructor(id, loc) {\r\n super(id, loc);\r\n this.color = 'has-text-danger';\r\n }\r\n\r\n get researched() {\r\n\r\n let [grant, val] = this.def.grant;\r\n let old = false;\r\n if (window.evolve.global.tech[grant] !== undefined) {\r\n if (window.evolve.global.tech[grant] >= val) {\r\n old = true;\r\n }\r\n }\r\n return old;\r\n }\r\n}\r\n\r\nvar researches = {};\r\nfunction loadResearches() {\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].hasOwnProperty('actions')) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].actions = {};}\r\n // Tech\r\n for (let action in window.evolve.actions.tech) {\r\n // Remove reset tech\r\n if (action == 'exotic_infusion' || action == 'infusion_check' || action == 'infusion_confirm') {continue;}\r\n // Remove unification tech\r\n if (action == 'wc_conquest' || action == 'wc_money' || action == 'wc_morale' || action == 'wc_reject') {continue;}\r\n let id = window.evolve.actions.tech[action].id;\r\n researches[id] = new Research(id, ['tech', action]);\r\n }\r\n}\r\n\r\n// Determines if the research given has already been researched\r\nfunction researched(id) {\r\n return researches[id].researched;\r\n}\n\n//# sourceURL=webpack:///./src/researches.js?");
/***/ }),
/***/ "./src/resources.js":
/*!**************************!*\
!*** ./src/resources.js ***!
\**************************/
/*! exports provided: Resource, TradeableResource, resources, loadResources, CraftableResource, autoCraft, autoMarket, autoTrade, autoStorage, autoEjector */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Resource\", function() { return Resource; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TradeableResource\", function() { return TradeableResource; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resources\", function() { return resources; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loadResources\", function() { return loadResources; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CraftableResource\", function() { return CraftableResource; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoCraft\", function() { return autoCraft; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoMarket\", function() { return autoMarket; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoTrade\", function() { return autoTrade; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoStorage\", function() { return autoStorage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoEjector\", function() { return autoEjector; });\n/* harmony import */ var _utility_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utility.js */ \"./src/utility.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settings.js */ \"./src/settings.js\");\n/* harmony import */ var _researches_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./researches.js */ \"./src/researches.js\");\n\r\n\r\n\r\n\r\n// List of all advanced resources for coloring\r\nlet advancedResources = ['Deuterium','Neutronium','Adamantite','Infernite','Elerium','Nano_Tube','Graphene','Stanene'];\r\n\r\n// Base class for resources\r\nclass Resource {\r\n constructor(id) {\r\n this.id = id;\r\n this.color = 'has-text-info';\r\n if (id == 'Money') {this.color = 'has-text-success';}\r\n if (advancedResources.includes(id)) {this.color = 'has-text-advanced';}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources.hasOwnProperty(this.id)) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id] = {};}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].hasOwnProperty('basePriority')) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].basePriority = 0;}\r\n if (this.crateable) {\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].hasOwnProperty('storePriority')) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].storePriority = 0;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].hasOwnProperty('storeMin')) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].storeMin = 0;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].hasOwnProperty('storeMax')) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].storeMax = -1;}\r\n }\r\n if (this.ejectable) {\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].hasOwnProperty('eject')) {\r\n _settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].eject = false;\r\n }\r\n }\r\n\r\n }\r\n\r\n get name() {\r\n return window.evolve.global.resource[this.id].name;\r\n }\r\n\r\n get unlocked() {\r\n return window.evolve.global.resource[this.id].display;\r\n }\r\n\r\n get amount() {\r\n return window.evolve.global.resource[this.id].amount;\r\n }\r\n get storage() {\r\n return window.evolve.global.resource[this.id].max;\r\n }\r\n get ratio() {\r\n return this.amount / this.storage;\r\n }\r\n get rate() {\r\n return window.evolve.global.resource[this.id].diff;\r\n }\r\n\r\n get storePriority() {return _settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].storePriority};\r\n set storePriority(storePriority) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].storePriority = storePriority;}\r\n get storeMin() {return _settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].storeMin;}\r\n set storeMin(storeMin) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].storeMin = storeMin;}\r\n get storeMax() {return _settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].storeMax;}\r\n set storeMax(storeMax) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].storeMax = storeMax;}\r\n\r\n get eject() {return _settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].eject;};\r\n set eject(eject) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].eject = eject;};\r\n get ejectable() {\r\n return window.evolve.atomic_mass.hasOwnProperty(this.id);\r\n }\r\n get ejectRate() {\r\n return window.evolve.global.interstellar.mass_ejector[this.id];\r\n }\r\n get ejectMass() {\r\n return window.evolve.atomic_mass[this.id];\r\n }\r\n ejectInc(num) {\r\n num = (num === undefined) ? 1 : num;\r\n let btn = document.querySelector(`#eject${this.id} .trade .add`);\r\n if (btn === null) {return false;}\r\n Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"disableMult\"])();\r\n for (let i = 0;i < num;i++) {\r\n btn.click();\r\n }\r\n return true;\r\n }\r\n ejectDec(num) {\r\n num = (num === undefined) ? 1 : num;\r\n let btn = document.querySelector(`#eject${this.id} .trade .sub`);\r\n if (btn === null) {return false;}\r\n Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"disableMult\"])();\r\n for (let i = 0;i < num;i++) {\r\n btn.click();\r\n }\r\n return true;\r\n }\r\n\r\n get crateNum() {\r\n return window.evolve.global.resource[this.id].crates;\r\n }\r\n get containerNum() {\r\n return window.evolve.global.resource[this.id].containers;\r\n }\r\n get crateable() {\r\n return window.evolve.global.resource[this.id].stackable;\r\n }\r\n crateInc(num) {\r\n num = (num === undefined) ? 1 : num;\r\n let btn = document.querySelector(`#stack-${this.id} .trade:nth-child(2) .add`);\r\n if (btn === null) {return false;}\r\n Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"disableMult\"])();\r\n for (let i = 0;i < num;i++) {\r\n btn.click();\r\n }\r\n return true;\r\n }\r\n crateDec(num) {\r\n num = (num === undefined) ? 1 : num;\r\n let btn = document.querySelector(`#stack-${this.id} .trade:nth-child(2) .sub`);\r\n if (btn === null) {return false;}\r\n Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"disableMult\"])();\r\n for (let i = 0;i < num;i++) {\r\n btn.click();\r\n }\r\n return true;\r\n }\r\n containerInc(num) {\r\n num = (num === undefined) ? 1 : num;\r\n let btn = document.querySelector(`#stack-${this.id} .trade:nth-child(3) .add`);\r\n if (btn === null) {return false;}\r\n Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"disableMult\"])();\r\n for (let i = 0;i < num;i++) {\r\n btn.click();\r\n }\r\n return true;\r\n }\r\n containerDec(num) {\r\n num = (num === undefined) ? 1 : num;\r\n let btn = document.querySelector(`#stack-${this.id} .trade:nth-child(3) .sub`);\r\n if (btn === null) {return false;}\r\n Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"disableMult\"])();\r\n for (let i = 0;i < num;i++) {\r\n btn.click();\r\n }\r\n return false;\r\n }\r\n\r\n\r\n decStorePriority(mult) {\r\n if (this.storePriority == 0) {return;}\r\n this.storePriority -= mult;\r\n if (this.storePriority < 0) {this.storePriority = 0;}\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"updateSettings\"])();\r\n console.log(\"Decrementing Store Priority\", this.id, this.storePriority);\r\n }\r\n incStorePriority(mult) {\r\n this.storePriority += mult;\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"updateSettings\"])();\r\n console.log(\"Incrementing Store Priority\", this.id, this.storePriority);\r\n }\r\n decStoreMin(mult) {\r\n if (this.storeMin == 0) {return;}\r\n this.storeMin -= mult;\r\n if (this.storeMin < 0) {this.storeMin = 0;}\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"updateSettings\"])();\r\n console.log(\"Decrementing Store Minimum\", this.id, this.storeMin);\r\n }\r\n incStoreMin(mult) {\r\n this.storeMin += mult;\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"updateSettings\"])();\r\n console.log(\"Incrementing Store Minimum\", this.id, this.storeMin);\r\n }\r\n decStoreMax(mult) {\r\n if (this.storeMax == -1) {return;}\r\n this.storeMax -= mult;\r\n if (this.storeMax < -1) {this.storeMax = -1;}\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"updateSettings\"])();\r\n console.log(\"Decrementing Store Maximum\", this.id, this.storeMax);\r\n }\r\n incStoreMax(mult) {\r\n this.storeMax += mult;\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"updateSettings\"])();\r\n console.log(\"Incrementing Store Maximum\", this.id, this.storeMax);\r\n }\r\n\r\n get basePriority() {return _settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].basePriority;}\r\n set basePriority(basePriority) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].basePriority = basePriority;}\r\n get priority() {return _settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].basePriority;}\r\n\r\n decBasePriority(mult) {\r\n if (this.basePriority == 0) {return;}\r\n this.basePriority -= mult;\r\n if (this.basePriority < 0) {this.basePrioriity = 0;}\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"updateSettings\"])();\r\n console.log(\"Decrementing Base Priority\", this.id, this.basePriority);\r\n }\r\n incBasePriority(mult) {\r\n this.basePriority += mult;\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"updateSettings\"])();\r\n console.log(\"Incrementing Base Priority\", this.id, this.basePriority);\r\n }\r\n}\r\n\r\n// Class for resources that can be traded\r\nclass TradeableResource extends Resource {\r\n constructor(id) {\r\n super(id);\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources.hasOwnProperty(this.id)) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id] = {};}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].hasOwnProperty('autoSell')) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].autoSell = false;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].hasOwnProperty('autoBuy')) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].autoBuy = false;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].hasOwnProperty('buyRatio')) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].buyRatio = 0.5;}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].hasOwnProperty('sellRatio')) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].sellRatio = 0.9;}\r\n }\r\n\r\n get autoSell() {return _settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].autoSell};\r\n set autoSell(autoSell) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].autoSell = autoSell;}\r\n get autoBuy() {return _settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].autoBuy};\r\n set autoBuy(autoBuy) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].autoBuy = autoBuy;}\r\n get buyRatio() {return _settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].buyRatio};\r\n set buyRatio(buyRatio) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].buyRatio = buyRatio;}\r\n get sellRatio() {return _settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].sellRatio};\r\n set sellRatio(sellRatio) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].sellRatio = sellRatio;}\r\n\r\n buyDec(mult) {\r\n if (this.buyRatio > 0) {\r\n this.buyRatio = parseFloat(Number(this.buyRatio - 0.1 * mult).toFixed(1));\r\n if (this.buyRatio < 0) {this.buyRatio = 0;}\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"updateSettings\"])();\r\n console.log(this.id, \"Decrementing Buy Ratio\", this.buyRatio);\r\n }\r\n }\r\n buyInc(mult) {\r\n if (this.buyRatio < 1) {\r\n this.buyRatio = parseFloat(Number(this.buyRatio + 0.1 * mult).toFixed(1));\r\n if (this.buyRatio > 1) {this.buyRatio = 0;}\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"updateSettings\"])();\r\n console.log(this.id, \"Incrementing Buy Ratio\", this.buyRatio);\r\n }\r\n }\r\n sellDec(mult) {\r\n if (this.sellRatio > 0) {\r\n this.sellRatio = parseFloat(Number(this.sellRatio - 0.1 * mult).toFixed(1));\r\n if (this.sellRatio < 0) {this.sellRatio = 0;}\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"updateSettings\"])();\r\n console.log(this.id, \"Decrementing Sell Ratio\", this.sellRatio);\r\n }\r\n }\r\n sellInc(mult) {\r\n if (this.sellRatio < 1) {\r\n this.sellRatio = parseFloat(Number(this.sellRatio + 0.1 * mult).toFixed(1));\r\n if (this.sellRatio > 1) {this.sellRatio = 1;}\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"updateSettings\"])();\r\n console.log(this.id, \"Incrementing Sell Ratio\", this.sellRatio);\r\n }\r\n }\r\n\r\n get tradeLabel() {\r\n return document.querySelector('#market-'+this.id+' > .trade > .current');\r\n }\r\n get tradeDecSpan() {\r\n return document.querySelector(`#market-${this.id} .trade span:nth-child(4)`);\r\n }\r\n get tradeIncSpan() {\r\n return document.querySelector(`#market-${this.id} .trade span:nth-child(2)`);\r\n }\r\n get sellBtn() {\r\n let sellBtn = document.querySelectorAll('#market-'+this.id+' > .order');\r\n if (sellBtn !== null && sellBtn.length >= 2) {\r\n return sellBtn[1];\r\n } else {\r\n return null;\r\n }\r\n }\r\n get buyBtn() {\r\n let buyBtn = document.querySelectorAll('#market-'+this.id+' > .order');\r\n if (buyBtn !== null && buyBtn.length >= 1) {\r\n return buyBtn[0];\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n tradeDec(num) {\r\n num = (num === undefined) ? 1 : num;\r\n let btn = document.querySelector(`#market-${this.id} .trade .add`);\r\n if (btn === null) {return false;}\r\n Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"disableMult\"])();\r\n for (let i = 0;i < num;i++) {\r\n btn.click();\r\n }\r\n return true;\r\n }\r\n tradeInc(num) {\r\n num = (num === undefined) ? 1 : num;\r\n let btn = document.querySelector(`#market-${this.id} .trade .sub`);\r\n if (btn === null) {return false;}\r\n Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"disableMult\"])();\r\n for (let i = 0;i < num;i++) {\r\n btn.click();\r\n }\r\n return true;\r\n }\r\n\r\n get tradeNum() {\r\n return window.evolve.global.resource[this.id].trade;\r\n }\r\n get tradeSellCost() {\r\n if (this.tradeDecSpan !== null) {\r\n let dataStr = this.tradeDecSpan.attributes['data-label'].value;\r\n var reg = /.*([\\d\\.]+).*\\$([\\d\\.]+)/.exec(dataStr);\r\n return parseFloat(reg[2]);\r\n } else {\r\n console.log(\"Error:\", this.id, \"Trade Buy Cost\");\r\n return -1;\r\n }\r\n }\r\n get tradeBuyCost() {\r\n if (this.tradeIncSpan !== null) {\r\n let dataStr = this.tradeIncSpan.attributes['data-label'].value;\r\n var reg = /.*([\\d\\.]+).*\\$([\\d\\.]+)/.exec(dataStr);\r\n return parseFloat(reg[2]);\r\n } else {\r\n console.log(\"Error:\", this.id, \"Trade Sell Cost\");\r\n return -1;\r\n }\r\n }\r\n get tradeAmount() {\r\n return window.evolve.tradeRatio[this.id];\r\n }\r\n}\r\n\r\n// Loads resource data from the global\r\nvar resources = {};\r\nfunction loadResources() {\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].hasOwnProperty('resources')) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources = {};}\r\n Object.keys(window.evolve.global.resource).forEach(function(res) {\r\n // Craftable Resources\r\n if (window.evolve.craftCost[res] !== undefined) {\r\n //console.log(\"Craftable Resource:\", res);\r\n resources[res] = new CraftableResource(res);\r\n }\r\n // Tradeable Resources\r\n else if (window.evolve.global.resource[res].trade !== undefined) {\r\n //console.log(\"Tradeable Resource:\", res);\r\n resources[res] = new TradeableResource(res);\r\n }\r\n // Normal Resources\r\n else {\r\n //console.log(\"Normal Resource:\", res);\r\n resources[res] = new Resource(res);\r\n }\r\n });\r\n}\r\n\r\n// Class for resources that can be crafted\r\nclass CraftableResource extends Resource {\r\n constructor(id) {\r\n super(id);\r\n this.color = 'has-text-danger';\r\n this.sources = window.evolve.craftCost[id];\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources.hasOwnProperty(this.id)) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id] = {};}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].hasOwnProperty('enabled')) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].enabled = false;}\r\n }\r\n\r\n get enabled() {return _settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].enabled;}\r\n set enabled(enabled) {_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].resources[this.id].enabled = enabled;}\r\n\r\n get craftBtn() {\r\n return document.getElementById(\"inc\" + this.id + \"5\")\r\n }\r\n\r\n get canCraft() {\r\n // Crafting if resource is unlocked and enabled\r\n if (this.unlocked && this.enabled) {\r\n // Checking if every source can be used\r\n //console.log(\"Checking crafting of\", this);\r\n if (this.sources.every(function(element) {\r\n //console.log(\"Checking Resource\", element.res, element.res.ratio);\r\n return resources[element.r].ratio > 0.9;\r\n })) {\r\n //console.log(\"Can Craft\", this.name);\r\n // Determining number of crafts\r\n let total_crafts = 100000000000;\r\n for (let i = 0;i < this.sources.length;i++) {\r\n let res = resources[this.sources[i].r];\r\n let cost = this.sources[i].a * 5;\r\n let cur_crafts = Math.round((res.amount - (res.storage * .9)) / cost);\r\n //console.log(\"Checking\", res.name, \"A/S\", res.amount, res.storage, cur_crafts);\r\n if (cur_crafts < total_crafts) {\r\n total_crafts = cur_crafts;\r\n }\r\n }\r\n return total_crafts;\r\n }\r\n }\r\n return 0;\r\n }\r\n\r\n craft(num) {\r\n if (!this.unlocked || !this.enabled) {return false;}\r\n if (this.craftBtn === null) {return false;}\r\n let btn = this.craftBtn.children[0];\r\n let amt = Math.min(50,this.canCraft);\r\n for (let j = 0;j < amt;j++) {\r\n btn.click();\r\n }\r\n }\r\n}\r\n\r\n// Finds the total resource consumption (returns the negative value)\r\nfunction getConsumed(res) {\r\n let consumed = 0;\r\n for (let val in window.evolve.breakdown.p.consume[res]) {\r\n consumed += window.evolve.breakdown.p.consume[res][val];\r\n }\r\n return consumed;\r\n}\r\n\r\nfunction autoCraft() {\r\n //console.log(\"AutoCrafting\");\r\n for (var x in resources) {\r\n if (resources[x] instanceof CraftableResource) {\r\n resources[x].craft();\r\n }\r\n }\r\n}\r\n\r\nasync function autoMarket() {\r\n // Don't start autoMarket if haven't unlocked market\r\n if (!Object(_researches_js__WEBPACK_IMPORTED_MODULE_2__[\"researched\"])('tech-market')) {return;}\r\n let curMoney = resources.Money.amount;\r\n let maxMoney = resources.Money.storage;\r\n // If market input doesn't exist (aka cannot manual buy/sell) don't autoMarket\r\n let marketInput = document.querySelector(\".market input\");\r\n if (marketInput === null) {return;}\r\n let qty = Math.min(+marketInput.max, _settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].marketVolume);\r\n\r\n marketInput.value = qty;\r\n await Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"sleep\"])(25);\r\n\r\n for (var x in resources) {\r\n let resource = resources[x];\r\n // Continue if resource hasn't been unlocked\r\n if(!resource.unlocked) {continue;}\r\n // Continue if resource isn't tradeable\r\n if(!(resource instanceof TradeableResource)) {continue;}\r\n\r\n //console.log(\"Auto Market\", resource.name);\r\n let curResource = resource.amount;\r\n let maxResource = resource.storage;\r\n // Can sell resource\r\n //console.log(resource.id, resource.ratio, resource.sellRatio);\r\n if (resource.autoSell && resource.ratio > resource.sellRatio && resource.sellBtn !== null) {\r\n //console.log(\"Autoselling\", resource.name);\r\n let sellValue = Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"getRealValue\"])(resource.sellBtn.innerHTML.substr(1));\r\n let counter = 0;\r\n //console.log(\"CURM:\", curMoney, \"sellV\", sellValue, \"MAXM\", maxMoney, \"CURR\", curResource, \"MAXR\", maxResource);\r\n while(true) {\r\n // Break if too much money, not enough resources, or sell ratio reached\r\n if (curMoney + sellValue >= maxMoney || curResource - qty <= 0 || curResource / maxResource < resource.sellRatio) {\r\n //console.log(\"Sold\", counter*100);\r\n break;\r\n }\r\n counter += 1;\r\n resource.sellBtn.click();\r\n curMoney += sellValue;\r\n curResource -= qty;\r\n if (counter > 50) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (resource.autoBuy && resource.ratio < resource.buyRatio && resource.buyBtn !== null) {\r\n //console.log(\"Autobuying\", resource.name);\r\n let buyValue = Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"getRealValue\"])(resource.buyBtn.innerHTML.substr(1));\r\n let counter = 0;\r\n //console.log(\"CURM:\", curMoney, \"sellV\", buyValue, \"MAXM\", maxMoney, \"CURR\", curResource, \"MAXR\", maxResource, \"MINM\", getMinMoney());\r\n while(true) {\r\n // Break if too little money, too much resources, or buy ratio reached\r\n if (curMoney - buyValue < Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"getMinMoney\"])() || curResource + qty > resource.storage || curResource / maxResource > resource.buyRatio) {\r\n break;\r\n }\r\n resource.buyBtn.click();\r\n curMoney -= buyValue;\r\n curResource += qty;\r\n if (counter > 50) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction autoTrade(priorityData) {\r\n // If haven't researched trade, don't do anything\r\n if (!Object(_researches_js__WEBPACK_IMPORTED_MODULE_2__[\"researched\"])('tech-trade')) {return;}\r\n // Haven't made non-AutoPriority autoTrade, so ignore otherwise\r\n if (priorityData === null) {return;}\r\n let limits = priorityData.limits\r\n let PQs = priorityData.PQs\r\n // Finding total trade routes\r\n let totalTradeRouteStr = $('#tradeTotal').children()[0].innerText;\r\n let totalTradeRoutes = parseInt(/Trade Routes [\\d]+ \\/ ([\\d]+)/.exec(totalTradeRouteStr)[1]);\r\n // Finding full resources\r\n let sellingRes = [];\r\n for (var x in resources) {\r\n if (!resources[x].unlocked) {continue;}\r\n if (!(resources[x] instanceof TradeableResource)) {continue;}\r\n if (resources[x].ratio < 0.99) {continue;}\r\n sellingRes.push(resources[x]);\r\n }\r\n // Sort by sell cost\r\n sellingRes.sort(function(a,b) {\r\n return b.tradeSellCost - a.tradeSellCost;\r\n });\r\n // Finding sequence of selling trade routes\r\n let sellSequence = [];\r\n for (let i = 0;i < sellingRes.length;i++) {\r\n let res = sellingRes[i];\r\n let maxRoutes = Math.floor(res.temp_rate / res.tradeAmount);\r\n let sellRoutes = (maxRoutes < totalTradeRoutes) ? maxRoutes : totalTradeRoutes;\r\n for (let j = 0;j < sellRoutes;j++) {sellSequence.push(res.id);}\r\n }\r\n console.log(\"SELL SEQ:\", sellSequence);\r\n\r\n // Finding resource to focus on\r\n let focusList = [];\r\n for (x in limits) {\r\n // There exists an action that requires this resource\r\n if (limits[x] === null) {continue;}\r\n // Excluding craftable resources\r\n if (!(x in resources)) {continue;}\r\n // Excluding untradeable resources\r\n if (!(resources[x] instanceof TradeableResource) && x != 'Money') {continue;}\r\n // Excluding actions whose resource is already filled\r\n if (limits[x].completion[x] == true) {continue;}\r\n focusList.push({action:limits[x], res:x});\r\n //console.log(x, limits[x].id, limits[x].completionTime, priorityScale(Math.log(limits[x].completionTime[x]), limits[x].priority), limits[x].priority);\r\n }\r\n if (focusList.length > 0) {\r\n focusList.sort(function(a,b) {\r\n return Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"prioCompare\"])(a.action, b.action);\r\n });\r\n }\r\n console.log(\"FOC LIST:\", focusList);\r\n let focusSequence = [];\r\n let curNum = {};\r\n let wantedRatio = {};\r\n let totalPriority = 0;\r\n let priorities = [];\r\n let keys = [];\r\n let allocations = {};\r\n if (focusList.length > 0) {\r\n // Creating sequence of trade route allocations to match priority ratios\r\n let curError = 0;\r\n for (let i = 0;i < focusList.length;i++) {totalPriority += (resources[focusList[i].res].priority * focusList[i].action.priority)**2;}\r\n for (let i = 0;i < focusList.length;i++) {\r\n curNum[focusList[i].res] = 0;\r\n if (focusList[i].res !== 'Money') {\r\n let priority = (resources[focusList[i].res].priority * focusList[i].action.priority)**2;\r\n priorities.push(priority);\r\n keys.push(focusList[i].res);\r\n }\r\n else {\r\n resources.Money.trade = (resources[focusList[i].res].priority * focusList[i].action.priority)**2 / totalPriority;\r\n }\r\n //if (focusList[i].res == 'Money') {wantedRatio[focusList[i].res] /= totalPriority;}\r\n //console.log(focusList[i].res, focusList[i].action.priority , resources[focusList[i].res].basePriority, wantedRatio[focusList[i].res], wantedRatio[focusList[i].res] * totalTradeRoutes);\r\n }\r\n allocations = Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"allocate\"])(totalTradeRoutes,priorities);\r\n }\r\n // Allocating trade routes\r\n focusSequence = allocations['seq'];\r\n let newTradeRoutes = {};\r\n let curTradeRoutes = {};\r\n for (let x in resources) {\r\n if (!(resources[x] instanceof TradeableResource)) {continue;}\r\n newTradeRoutes[x] = 0;\r\n curTradeRoutes[x] = resources[x].tradeNum;\r\n }\r\n let curFocus = 0;\r\n let curSell = 0;\r\n // Allocating all possible trade routes with given money\r\n let curFreeTradeRoutes = totalTradeRoutes;\r\n // Keeping fraction of base money for money\r\n if (resources.Money.trade > 0) {resources.Money.temp_rate *= 1 - resources.Money.trade;}\r\n //console.log(wantedRatio.Money,resources.Money.temp_rate);\r\n // Begin allocating algorithm\r\n while (curFreeTradeRoutes > 0) {\r\n // Checking if can buy trade route\r\n if (focusSequence && focusSequence.length > curFocus && resources.Money.temp_rate > resources[keys[focusSequence[curFocus]]].tradeBuyCost) {\r\n // Can buy trade route\r\n //console.log(\"Buying\", focusSequence[curFocus], curFocus);\r\n newTradeRoutes[keys[focusSequence[curFocus]]] += 1;\r\n resources[keys[focusSequence[curFocus]]].temp_rate += resources[keys[focusSequence[curFocus]]].tradeAmount;\r\n resources.Money.temp_rate -= resources[keys[focusSequence[curFocus]]].tradeBuyCost;\r\n curFreeTradeRoutes -= 1;\r\n curFocus += 1;\r\n } else {\r\n // Cannot buy trade route, sell instead\r\n if (curSell == sellSequence.length) {break;}\r\n newTradeRoutes[sellSequence[curSell]] -= 1;\r\n resources[sellSequence[curSell]].temp_rate -= resources[sellSequence[curSell]].tradeAmount;\r\n resources.Money.temp_rate += resources[sellSequence[curSell]].tradeSellCost;\r\n curFreeTradeRoutes -= 1;\r\n curSell += 1;\r\n }\r\n }\r\n console.log(\"OLD TRADE ROUTES:\", curTradeRoutes);\r\n console.log(\"NEW TRADE ROUTES:\", newTradeRoutes);\r\n /*\r\n for (let x in resources) {\r\n if (!(resources[x] instanceof TradeableResource)) {continue;}\r\n window.evolve.global.resource[x].trade = 0;\r\n }\r\n for (let x in resources) {\r\n if (!(resources[x] instanceof TradeableResource)) {continue;}\r\n window.evolve.global.resource[x].trade = newTradeRoutes[x];\r\n }\r\n for (let x in resources) {\r\n if (!(resources[x] instanceof TradeableResource)) {continue;}\r\n if (newTradeRoutes[x] > 0) {\r\n resources[x].tradeDec();\r\n resources[x].tradeInc();\r\n }\r\n else {\r\n resources[x].tradeInc();\r\n resources[x].tradeDec();\r\n }\r\n }\r\n */\r\n\r\n for (let x in resources) {\r\n if (!(resources[x] instanceof TradeableResource)) {continue;}\r\n // Removing routes that don't need routes\r\n if (newTradeRoutes[x] == 0) {\r\n if (curTradeRoutes[x] > 0) {\r\n resources[x].tradeDec(curTradeRoutes[x]);\r\n curTradeRoutes[x] = 0;\r\n }\r\n else {\r\n resources[x].tradeInc(-curTradeRoutes[x]);\r\n curTradeRoutes[x] = 0;\r\n }\r\n }\r\n // Changing all routes that require less\r\n else {\r\n if (Math.abs(newTradeRoutes[x]) < Math.abs(curTradeRoutes[x])) {\r\n let routeChange = newTradeRoutes[x] - curTradeRoutes[x];\r\n if (routeChange < 0) {\r\n resources[x].tradeDec(-routeChange);\r\n curTradeRoutes[x] -= routeChange;\r\n }\r\n else {\r\n resources[x].tradeInc(routeChange);\r\n curTradeRoutes[x] += routeChange;\r\n }\r\n }\r\n }\r\n }\r\n for (let x in resources) {\r\n if (!(resources[x] instanceof TradeableResource)) {continue;}\r\n // Fixing the rest of the routes\r\n let routeChange = newTradeRoutes[x] - curTradeRoutes[x];\r\n if (routeChange < 0) {\r\n resources[x].tradeDec(-routeChange);\r\n }\r\n else if (routeChange > 0) {\r\n resources[x].tradeInc(routeChange);\r\n }\r\n }\r\n}\r\n\r\nfunction autoStorage() {\r\n // Don't do autoStorage if haven't unlocked storage\r\n if (!Object(_researches_js__WEBPACK_IMPORTED_MODULE_2__[\"researched\"])('tech-containerization')) {return;}\r\n // Finding values\r\n let totalCrates = window.evolve.global.resource.Crates.amount;\r\n let totalContainers = window.evolve.global.resource.Containers.amount;\r\n // Creating crateable object\r\n let storage = [];\r\n let totalPriority = 0;\r\n for (let x in resources) {\r\n if (resources[x].unlocked && resources[x].crateable) {\r\n storage.push(resources[x]);\r\n totalCrates += resources[x].crateNum;\r\n totalContainers += resources[x].containerNum;\r\n totalPriority += resources[x].storePriority;\r\n\r\n resources[x].wanted_crates = 0;\r\n resources[x].wanted_containers = 0;\r\n }\r\n }\r\n storage.sort(function(a,b) {\r\n return b.storePriority - a.storePriority;\r\n });\r\n\r\n //console.log(\"Current Crate Usage\", totalCrates);\r\n //console.log(\"Current Container Usage\", totalContainers);\r\n //console.log(storage);\r\n // Getting minStorage\r\n let minStorage = [];\r\n for (let i = 0;i < storage.length;i++) {if (storage[i].storeMin != 0) {minStorage.push(storage[i]);}}\r\n\r\n let remainingCrates = totalCrates;\r\n let remainingContainers = totalContainers;\r\n\r\n // Allocating minStorage first\r\n for (let i = 0;i < minStorage.length;i++) {\r\n let givenCrates = Math.min(remainingCrates, minStorage[i].storeMin);\r\n minStorage[i].wanted_crates += givenCrates;\r\n remainingCrates -= givenCrates;\r\n }\r\n\r\n // Allocating normal storage\r\n for (let i = 0;i < storage.length;i++) {\r\n let givenCrates = Math.ceil(totalCrates * storage[i].storePriority / totalPriority);\r\n givenCrates = Math.min(givenCrates, remainingCrates);\r\n if (storage[i].storeMax != -1) {\r\n givenCrates = Math.min(givenCrates, storage[i].storeMax);\r\n }\r\n // Has minStorage assigned\r\n if (storage[i].wanted_crates != 0) {\r\n givenCrates = Math.max(storage[i].wanted_crates, givenCrates);\r\n remainingCrates -= givenCrates - storage[i].wanted_crates;\r\n storage[i].wanted_crates = givenCrates;\r\n }\r\n else {\r\n storage[i].wanted_crates = givenCrates;\r\n remainingCrates -= givenCrates;\r\n }\r\n let givenContainers = Math.ceil(totalContainers * storage[i].storePriority / totalPriority);\r\n givenContainers = Math.min(givenContainers, remainingContainers);\r\n if (storage[i].storeMax != -1) {\r\n givenContainers = Math.min(givenContainers, storage[i].storeMax);\r\n }\r\n storage[i].wanted_containers = givenContainers;\r\n remainingContainers -= givenContainers;\r\n\r\n //console.log(storage[i].name, \"CR_WANT\", storage[i].wanted_crates, \"CO_WANT\", storage[i].wanted_containers);\r\n }\r\n\r\n // Removing extra storage\r\n for (let i = 0;i < storage.length;i++) {\r\n if (storage[i].wanted_crates < storage[i].crateNum) {\r\n storage[i].crateDec(storage[i].crateNum - storage[i].wanted_crates);\r\n }\r\n if (Object(_researches_js__WEBPACK_IMPORTED_MODULE_2__[\"researched\"])('tech-steel_containers') && storage[i].wanted_containers < storage[i].containerNum) {\r\n storage[i].containerDec(storage[i].containerNum - storage[i].wanted_containers);\r\n }\r\n }\r\n // Allocating storage\r\n for (let i = 0;i < storage.length;i++) {\r\n if (storage[i].wanted_crates > storage[i].crateNum) {\r\n storage[i].crateInc(storage[i].wanted_crates - storage[i].crateNum);\r\n }\r\n if (Object(_researches_js__WEBPACK_IMPORTED_MODULE_2__[\"researched\"])('tech-steel_containers') && storage[i].wanted_containers > storage[i].containerNum) {\r\n storage[i].containerInc(storage[i].wanted_containers - storage[i].containerNum);\r\n }\r\n }\r\n}\r\n\r\nfunction autoEjector() {\r\n // Don't do autoEjector if haven't unlocked mass ejectors\r\n if (!window.evolve.global.interstellar.hasOwnProperty('mass_ejector')) {return;}\r\n if (window.evolve.global.interstellar.mass_ejector.count == 0) {return;}\r\n // Don't do autoEjector if none are turned on\r\n let totalEjection = window.evolve.global.interstellar.mass_ejector.on * 1000;\r\n if (totalEjection == 0) {return;}\r\n\r\n // Getting ejectable resources\r\n let ejectables = [];\r\n for (let x in resources) {\r\n if (resources[x].ejectable) {\r\n ejectables.push(resources[x]);\r\n }\r\n }\r\n // Sort by ejectMass\r\n ejectables.sort(function(a,b) {\r\n return b.ejectMass - a.ejectMass;\r\n });\r\n console.log(\"SORTED:\", ejectables);\r\n // Finding sequence of selling trade routes\r\n let ejectAllocation = [];\r\n for (let i = 0;i < ejectables.length;i++) {\r\n let res = ejectables[i];\r\n // Ignoring non-full, non-enabled resources\r\n if (res.ratio != 1 && !res.eject) {\r\n ejectAllocation.push(0);\r\n continue;\r\n }\r\n let maxEject = Math.floor(res.temp_rate);\r\n let ejection = (maxEject < totalEjection) ? maxEject : totalEjection;\r\n ejectAllocation.push(ejection);\r\n totalEjection -= ejection;\r\n }\r\n console.log(\"EJECTABLE:\", ejectables, ejectAllocation);\r\n\r\n // Allocating\r\n for (let i = 0;i < ejectables.length;i++) {\r\n let res = ejectables[i];\r\n // Removing ejections\r\n if (res.ejectRate > ejectAllocation[i]) {\r\n res.ejectDec(res.ejectRate - ejectAllocation[i]);\r\n }\r\n }\r\n for (let i = 0;i < ejectables.length;i++) {\r\n let res = ejectables[i];\r\n // Adding ejections\r\n if (res.ejectRate < ejectAllocation[i]) {\r\n res.ejectInc(ejectAllocation[i] - res.ejectRate);\r\n }\r\n }\r\n /*\r\n for (let i = 0;i < ejectables.length;i++) {\r\n let res = ejectables[i];\r\n window.evolve.global.interstellar.mass_ejector[res.id] = 0;\r\n }\r\n for (let i = 0;i < ejectables.length;i++) {\r\n let res = ejectables[i];\r\n window.evolve.global.interstellar.mass_ejector[res.id] = ejectAllocation[i];\r\n }\r\n */\r\n}\n\n//# sourceURL=webpack:///./src/resources.js?");
/***/ }),
/***/ "./src/settings.js":
/*!*************************!*\
!*** ./src/settings.js ***!
\*************************/
/*! exports provided: settings, loadSettings, printSettings, updateSettings, importSettings, exportSettings, autoRefresh, autoPrestige */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"settings\", function() { return settings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loadSettings\", function() { return loadSettings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"printSettings\", function() { return printSettings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"updateSettings\", function() { return updateSettings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"importSettings\", function() { return importSettings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"exportSettings\", function() { return exportSettings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoRefresh\", function() { return autoRefresh; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoPrestige\", function() { return autoPrestige; });\n/* harmony import */ var _utility_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utility.js */ \"./src/utility.js\");\n/* harmony import */ var _evolution_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./evolution.js */ \"./src/evolution.js\");\n/* harmony import */ var _farm_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./farm.js */ \"./src/farm.js\");\n/* harmony import */ var _resources_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./resources.js */ \"./src/resources.js\");\n/* harmony import */ var _miscactions_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./miscactions.js */ \"./src/miscactions.js\");\n/* harmony import */ var _researches_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./researches.js */ \"./src/researches.js\");\n/* harmony import */ var _buildings_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./buildings.js */ \"./src/buildings.js\");\n/* harmony import */ var _jobs_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./jobs.js */ \"./src/jobs.js\");\n/* harmony import */ var _government_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./government.js */ \"./src/government.js\");\n/* harmony import */ var _industry_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./industry.js */ \"./src/industry.js\");\n/* harmony import */ var _support_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./support.js */ \"./src/support.js\");\n/* harmony import */ var _ui_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./ui.js */ \"./src/ui.js\");\n/* harmony import */ var _modal_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./modal.js */ \"./src/modal.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar settings = {};\r\nasync function loadSettings() {\r\n console.log(\"Loading Settings\");\r\n\r\n let jsonSettings = localStorage.getItem('settings');\r\n if (jsonSettings != null) {settings = JSON.parse(jsonSettings);}\r\n\r\n // Evolution\r\n try { Object(_evolution_js__WEBPACK_IMPORTED_MODULE_1__[\"loadEvolution\"])(); } catch(e) {console.log('Error: Load Evolution', e);}\r\n // Farm\r\n try { Object(_farm_js__WEBPACK_IMPORTED_MODULE_2__[\"loadFarm\"])(); } catch(e) {console.log('Error: Load Farm', e);}\r\n // Resources\r\n try { Object(_resources_js__WEBPACK_IMPORTED_MODULE_3__[\"loadResources\"])(); } catch(e) {console.log('Error: Load Resources', e);}\r\n // Storages\r\n try { Object(_miscactions_js__WEBPACK_IMPORTED_MODULE_4__[\"loadStorages\"])(); } catch(e) {console.log('Error: Load Storage', e);}\r\n // Misc Actions\r\n try { Object(_miscactions_js__WEBPACK_IMPORTED_MODULE_4__[\"loadMiscActions\"])(); } catch(e) {console.log('Error: Load Misc Actions', e);}\r\n // Research\r\n try { Object(_researches_js__WEBPACK_IMPORTED_MODULE_5__[\"loadResearches\"])(); } catch(e) {console.log('Error: Load Researches', e);}\r\n // Buildings\r\n try { Object(_buildings_js__WEBPACK_IMPORTED_MODULE_6__[\"loadBuildings\"])(); } catch(e) {console.log('Error: Load Buildings', e);}\r\n // Jobs\r\n try { Object(_jobs_js__WEBPACK_IMPORTED_MODULE_7__[\"loadJobs\"])(); } catch(e) {console.log('Error: Load Jobs', e);}\r\n try { Object(_jobs_js__WEBPACK_IMPORTED_MODULE_7__[\"loadCraftJobs\"])(); } catch(e) {console.log('Error: Load Craft Jobs', e);}\r\n // Government\r\n try { Object(_government_js__WEBPACK_IMPORTED_MODULE_8__[\"loadGovernments\"])(); } catch(e) {console.log('Error: Load Governments', e);}\r\n // ARPA\r\n try { Object(_miscactions_js__WEBPACK_IMPORTED_MODULE_4__[\"loadArpas\"])(); } catch(e) {console.log('Error: Load ARPAs', e);}\r\n\r\n // Smelter\r\n Object(_industry_js__WEBPACK_IMPORTED_MODULE_9__[\"loadSmelter\"])();\r\n // Factory\r\n Object(_industry_js__WEBPACK_IMPORTED_MODULE_9__[\"loadFactory\"])();\r\n // Mining Droid\r\n Object(_industry_js__WEBPACK_IMPORTED_MODULE_9__[\"loadDroid\"])();\r\n // Graphene Plant\r\n Object(_industry_js__WEBPACK_IMPORTED_MODULE_9__[\"loadGraphene\"])();\r\n // Support\r\n Object(_support_js__WEBPACK_IMPORTED_MODULE_10__[\"loadSupport\"])();\r\n\r\n if (!settings.hasOwnProperty('autoPrint')) {\r\n settings.autoPrint = true;\r\n }\r\n if (!settings.hasOwnProperty('printSettings')) {\r\n settings.printSettings = {};\r\n }\r\n for (let i = 0;i < printSettings.length;i++) {\r\n if (!settings.hasOwnProperty(printSettings[i])) {\r\n settings.printSettings[printSettings[i]] = true;\r\n }\r\n }\r\n if (!settings.hasOwnProperty('autoFarm')) {\r\n settings.autoFarm = false;\r\n }\r\n if (!settings.hasOwnProperty('farmRate')) {\r\n settings.farmRate = 10;\r\n }\r\n if (!settings.hasOwnProperty('autoRefresh')) {\r\n settings.autoRefresh = false;\r\n }\r\n if (!settings.hasOwnProperty('autoPrestige')) {\r\n settings.autoPrestige = false;\r\n }\r\n if (!settings.hasOwnProperty('prestige')) {\r\n settings.prestige = 'mad';\r\n }\r\n\r\n if (!settings.hasOwnProperty('autoEvolution')) {\r\n settings.autoEvolution = false;\r\n }\r\n for (let i = 0;i < _evolution_js__WEBPACK_IMPORTED_MODULE_1__[\"evoChallengeActions\"].length;i++) {\r\n if (!settings.hasOwnProperty(_evolution_js__WEBPACK_IMPORTED_MODULE_1__[\"evoChallengeActions\"][i])) {\r\n settings[_evolution_js__WEBPACK_IMPORTED_MODULE_1__[\"evoChallengeActions\"][i]] = false;\r\n }\r\n }\r\n if (!settings.hasOwnProperty('evolution')) {\r\n settings.evolution = \"antid\";\r\n }\r\n\r\n if (!settings.hasOwnProperty('autoEmploy')) {\r\n settings.autoEmploy = false;\r\n }\r\n if (!settings.hasOwnProperty('autoBattle')) {\r\n settings.autoBattle = false;\r\n }\r\n if (!settings.hasOwnProperty('minWinRate')) {\r\n settings.minWinRate = 60;\r\n }\r\n if (!settings.hasOwnProperty('maxCampaign')) {\r\n settings.maxCampaign = 4;\r\n }\r\n if (!settings.hasOwnProperty('woundedCheck')) {\r\n settings.woundedCheck = false;\r\n }\r\n if (!settings.hasOwnProperty('campaignFailCheck')) {\r\n settings.campaignFailCheck = false;\r\n }\r\n if (!settings.hasOwnProperty('campaignFailInterval')) {\r\n settings.campaignFailInterval = 5;\r\n }\r\n if (!settings.hasOwnProperty('autoFortress')) {\r\n settings.autoFortress = false;\r\n }\r\n\r\n if (!settings.hasOwnProperty('autoTax')) {\r\n settings.autoTax = false;\r\n }\r\n if (!settings.hasOwnProperty('minimumMorale')) {\r\n settings.minimumMorale = 100;\r\n }\r\n if (!settings.hasOwnProperty('autoGovernment')) {\r\n settings.autoGovernment = false;\r\n }\r\n if (!settings.hasOwnProperty('autoUnification')) {\r\n settings.autoUnification = false;\r\n }\r\n if (!settings.hasOwnProperty('unification')) {\r\n settings.unification = 'reject';\r\n }\r\n\r\n if (!settings.hasOwnProperty('autoCraft')) {\r\n settings.autoCraft = false;\r\n }\r\n if (!settings.hasOwnProperty('autoMarket')) {\r\n settings.autoMarket = false;\r\n }\r\n if (!settings.hasOwnProperty('marketVolume')) {\r\n settings.marketVolume = 1000;\r\n }\r\n if (!settings.hasOwnProperty('minimumMoney')) {\r\n settings.minimumMoney = 0;\r\n }\r\n if (!settings.hasOwnProperty('autoTrade')) {\r\n settings.autoTrade = false;\r\n }\r\n if (!settings.hasOwnProperty('autoStorage')) {\r\n settings.autoStorage = false;\r\n }\r\n if (!settings.hasOwnProperty('autoEjector')) {\r\n settings.autoEjector = false;\r\n }\r\n\r\n if (!settings.hasOwnProperty('autoSupport')) {\r\n settings.autoSupport = false;\r\n }\r\n if (!settings.hasOwnProperty('autoSmelter')) {\r\n settings.autoSmelter = false;\r\n }\r\n if (!settings.hasOwnProperty('autoFactory')) {\r\n settings.autoFactory = false;\r\n }\r\n if (!settings.hasOwnProperty('autoDroid')) {\r\n settings.autoDroid = false;\r\n }\r\n if (!settings.hasOwnProperty('autoGraphene')) {\r\n settings.autoGraphene = false;\r\n }\r\n\r\n if (!settings.hasOwnProperty('autoResearch')) {\r\n settings.autoResearch = false;\r\n }\r\n if (!settings.hasOwnProperty('religion1')) {\r\n settings.religion1 = \"fanaticism\";\r\n }\r\n if (!settings.hasOwnProperty('religion2')) {\r\n settings.religion2 = \"study\";\r\n }\r\n\r\n if (!settings.hasOwnProperty('autoPriority')) {\r\n settings.autoPriority = false;\r\n }\r\n if (!settings.hasOwnProperty('showAll')) {\r\n settings.showAll = false;\r\n }\r\n if (!settings.hasOwnProperty('showBuilding')) {\r\n settings.showBuilding = false;\r\n }\r\n if (!settings.hasOwnProperty('showResearch')) {\r\n settings.showResearch = false;\r\n }\r\n if (!settings.hasOwnProperty('showMisc')) {\r\n settings.showMisc = false;\r\n }\r\n\r\n if (!settings.hasOwnProperty('log')) {settings.log = []};\r\n}\r\n\r\nconst printSettings = ['Buildings','Researches','Misc'];\r\n\r\nfunction updateSettings(){\r\n localStorage.setItem('settings', JSON.stringify(settings));\r\n}\r\n\r\nfunction importSettings() {\r\n console.log(\"Importing Settings\");\r\n if ($('textarea#settingsImportExport').val().length > 0){\r\n let settingStr = $('textarea#settingsImportExport').val();\r\n settings = JSON.parse(LZString.decompressFromBase64(settingStr));\r\n updateSettings();\r\n Object(_ui_js__WEBPACK_IMPORTED_MODULE_11__[\"resetUI\"])();\r\n }\r\n}\r\nfunction exportSettings() {\r\n console.log(\"Exporting Settings\");\r\n $('textarea#settingsImportExport').val(LZString.compressToBase64(JSON.stringify(settings)));\r\n $('textarea#settingsImportExport').select();\r\n document.execCommand('copy');\r\n}\r\n\r\nlet refreshInterval = null;\r\nfunction autoRefresh() {\r\n if(settings.autoRefresh && refreshInterval === null) {\r\n refreshInterval = setInterval(function() {location.reload();}, 200 * 1000);\r\n } else {\r\n if (!settings.autoRefresh && !(refreshInterval === null)) {\r\n clearInterval(refreshInterval);\r\n refreshInterval = null;\r\n }\r\n }\r\n}\r\n\r\nlet prestigeCheck = false;\r\nasync function autoPrestige() {\r\n switch(settings.prestige) {\r\n case 'mad': {\r\n // Checking if MAD unlocked\r\n let mad = document.getElementById('mad');\r\n if (mad === null || mad.style.display == 'none') {return;}\r\n // Checking if already clicked\r\n if (prestigeCheck) {return;}\r\n // Checking if armed\r\n if (mad.classList.contains('armed')) {\r\n // Launch\r\n mad.querySelector('.button:not(.arm)').click();\r\n prestigeCheck = true;\r\n }\r\n else {\r\n mad.querySelector('.button.arm').click();\r\n }\r\n break;\r\n }\r\n case 'bioseed': {\r\n // Checking if seeder is available\r\n if (!window.evolve.global.starDock.hasOwnProperty('seeder')) {return;}\r\n // Checking if seeding is complete\r\n let seedCount = window.evolve.global.starDock.seeder.count;\r\n if (seedCount !== 100) {return;}\r\n // Checking if already clicked\r\n if (prestigeCheck) {return;}\r\n\r\n let opened = await Object(_modal_js__WEBPACK_IMPORTED_MODULE_12__[\"openModal\"])($('#space-star_dock > .special'));\r\n if (!opened) {return;}\r\n\r\n // Getting buttons\r\n let prep_ship = document.querySelector('#spcdock-prep_ship > a');\r\n let launch_ship = document.querySelector('#spcdock-launch_ship > a');\r\n if (prep_ship) {prep_ship.click();}\r\n if (launch_ship) {launch_ship.click();}\r\n // Closing modal\r\n await Object(_modal_js__WEBPACK_IMPORTED_MODULE_12__[\"closeModal\"])();\r\n\r\n prestigeCheck = true;\r\n break;\r\n }\r\n case 'blackhole': {\r\n // Loading reset tech buttons\r\n let exotic_infusion = document.querySelector('#tech-exotic_infusion > .button')\r\n let infusion_check = document.querySelector('#tech-infusion_check > .button')\r\n let infusion_confirm = document.querySelector('#tech-infusion_confirm > .button')\r\n // Clicking if available\r\n if (exotic_infusion) {exotic_infusion.click();}\r\n if (infusion_check) {infusion_check.click();}\r\n if (infusion_confirm) {infusion_confirm.click();}\r\n break;\r\n }\r\n }\r\n}\r\n\r\n\n\n//# sourceURL=webpack:///./src/settings.js?");
/***/ }),
/***/ "./src/support.js":
/*!************************!*\
!*** ./src/support.js ***!
\************************/
/*! exports provided: checkPowerRequirements, poweredBuildingList, getBaseCP, loadSupport, autoSupport */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"checkPowerRequirements\", function() { return checkPowerRequirements; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"poweredBuildingList\", function() { return poweredBuildingList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getBaseCP\", function() { return getBaseCP; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loadSupport\", function() { return loadSupport; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoSupport\", function() { return autoSupport; });\n/* harmony import */ var _resources_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./resources.js */ \"./src/resources.js\");\n/* harmony import */ var _buildings_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./buildings.js */ \"./src/buildings.js\");\n/* harmony import */ var _utility_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utility.js */ \"./src/utility.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./settings.js */ \"./src/settings.js\");\n/* harmony import */ var _researches_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./researches.js */ \"./src/researches.js\");\n\r\n\r\n\r\n\r\n\r\n\r\nfunction checkPowerRequirements(c_action){\r\n var isMet = true;\r\n if (c_action['power_reqs']){\r\n Object.keys(c_action.power_reqs).forEach(function (req){\r\n if (!window.evolve.global.tech.hasOwnProperty(req)) {\r\n isMet = false;\r\n }\r\n else if (window.evolve.global.tech[req] < c_action.power_reqs[req]){\r\n isMet = false;\r\n }\r\n });\r\n }\r\n\r\n return isMet;\r\n}\r\nconst poweredBuildingList = {\r\n 'city-apartment': ['electricity'],\r\n 'city-mill': [],\r\n 'city-windmill': [],\r\n 'city-sawmill': ['electricity'],\r\n 'city-rock_quarry': ['electricity'],\r\n 'city-cement_plant': ['electricity'],\r\n 'city-factory': ['electricity'],\r\n 'city-metal_refinery': ['electricity'],\r\n 'city-mine': ['electricity'],\r\n 'city-coal_mine': ['electricity'],\r\n 'city-tourist_center': ['Food'],\r\n 'city-casino': ['electricity', 'Money'],\r\n 'city-wardenclyffe': ['electricity'],\r\n 'city-biolab': ['electricity'],\r\n 'city-coal_power': ['electricity', 'Coal'],\r\n 'city-oil_power': ['electricity', 'Oil'],\r\n 'city-fission_power': ['electricity', 'Uranium'],\r\n 'city-mass_driver': ['electricity'],\r\n\r\n 'space-nav_beacon': ['electricity', 'moon_support', 'red_support'],\r\n 'space-moon_base': ['moon_support', 'Oil', 'electricity'],\r\n 'space-iridium_mine': ['moon_support', 'Iridium'],\r\n 'space-helium_mine': ['moon_support', 'Helium_3'],\r\n 'space-observatory': ['moon_support'],\r\n 'space-spaceport': ['red_support', 'Helium_3', 'electricity', 'Food'],\r\n 'space-red_tower': ['red_support', 'electricity'],\r\n 'space-living_quarters': ['red_support'],\r\n 'space-vr_center': ['red_support'],\r\n 'space-red_mine': ['red_support'],\r\n 'space-fabrication': ['red_support'],\r\n 'space-red_factory': ['electricity', 'Helium_3'],\r\n 'space-biodome': ['red_support'],\r\n 'space-exotic_lab': ['red_support'],\r\n 'space-space_barracks': ['Oil', 'Food'],\r\n 'space-geothermal': ['electricity', 'Helium_3'],\r\n 'space-swarm_control': ['swarm_support'],\r\n 'space-swarm_satellite': ['swarm_support', 'electricity'],\r\n 'space-gas_mining': ['Helium_3', 'electricity'],\r\n 'space-outpost': ['Neutronium', 'Oil', 'electricity'],\r\n 'space-oil_extractor': ['Oil', 'electricity'],\r\n 'space-space_station': ['belt_support', 'Helium_3', 'Food', 'electricity'],\r\n 'space-elerium_ship': ['belt_support', 'Elerium'],\r\n 'space-iridium_ship': ['belt_support', 'Iridium'],\r\n 'space-iron_ship': ['belt_support', 'Iron'],\r\n 'space-elerium_contain': ['electricity'],\r\n 'space-e_reactor': ['electricity', 'Elerium'],\r\n 'space-world_controller': ['electricity'],\r\n\r\n 'interstellar-starport': ['alpha_support', 'Helium_3', 'electricity', 'Food'],\r\n 'interstellar-habitat': ['alpha_support', 'electricity'],\r\n 'interstellar-mining_droid': ['alpha_support'],\r\n 'interstellar-processing': ['alpha_support'],\r\n 'interstellar-fusion': ['alpha_support', 'electricity', 'Deuterium'],\r\n 'interstellar-laboratory': ['alpha_support'],\r\n 'interstellar-exchange': ['alpha_support'],\r\n 'interstellar-g_factory': ['alpha_support'],\r\n 'interstellar-xfer_station': ['alpha_support', 'Uranium', 'electricity'],\r\n 'interstellar-cruiser': ['Helium_3'],\r\n 'interstellar-dyson': ['electricity'],\r\n 'interstellar-nexus': ['nebula_support', 'electricity', 'Money'],\r\n 'interstellar-harvester': ['nebula_support', 'Helium_3', 'Deuterium'],\r\n 'interstellar-elerium_prospector': ['nebula_support', 'Elerium'],\r\n 'interstellar-neutron_miner': ['Neutronium', 'Helium_3', 'electricity'],\r\n //'interstellar-citadel': TOOD Implement\r\n 'interstellar-far_reach': ['electricity'],\r\n 'interstellar-stellar_engine': ['electricity'],\r\n 'interstellar-mass_ejector': ['electricity'],\r\n\r\n 'portal-turret': ['electricity'],\r\n 'portal-war_droid': ['electricity'],\r\n 'portal-war_drone': ['electricity'],\r\n 'portal-sensor_drone': ['electricity'],\r\n 'portal-attractor': ['electricity'],\r\n}\r\nfunction getBaseCP(baseCPList, effect) {\r\n let consume = [];\r\n let produce = [];\r\n //console.log(`Getting base consume/produce:${baseCPList} ${effect}`);\r\n for (let i = 0;i < baseCPList.length;i++) {\r\n switch(baseCPList[i]) {\r\n case 'Money': {\r\n let money = /generates \\$([\\d\\.]+)/.exec(effect);\r\n if (money) {\r\n produce.push({res:'Money',cost:+money[1]});\r\n break;\r\n }\r\n money = /([+-]?)\\$([\\d\\.]+)\\/s/.exec(effect);\r\n if (money !== null) {\r\n //console.log(money[1], money[2]);\r\n if (money[1] == '-') {\r\n consume.push({res:'Money',cost:+money[2]});\r\n }\r\n else {\r\n produce.push({res:'Money',cost:+money[2]});\r\n }\r\n }\r\n break;\r\n }\r\n case 'Food': {\r\n let name = window.evolve.global.resource[baseCPList[i]].name;\r\n let reg = new RegExp(`([+-]?)([\\\\d\\\\.]+) ` + name);\r\n let food = reg.exec(effect);\r\n if (food) {\r\n //console.log(food[1], food[2]);\r\n if (food[1] == '-') {\r\n consume.push({res:'Food',cost:+food[2]});\r\n }\r\n else {\r\n produce.push({res:'Food',cost:+food[2]});\r\n }\r\n }\r\n break;\r\n }\r\n case 'Iron': {\r\n let name = window.evolve.global.resource[baseCPList[i]].name;\r\n let reg = new RegExp(`([+-]?)([\\\\d\\\\.]+) ` + name);\r\n let Iron = reg.exec(effect);\r\n if (Iron) {\r\n //console.log(Iron[1], Iron[2]);\r\n if (Iron[1] == '-') {\r\n consume.push({res:'Iron',cost:+Iron[2]});\r\n }\r\n else {\r\n produce.push({res:'Iron',cost:+Iron[2]});\r\n }\r\n }\r\n break;\r\n }\r\n case 'Coal': {\r\n let name = window.evolve.global.resource[baseCPList[i]].name;\r\n let reg = new RegExp(`([+-]?)([\\\\d\\\\.]+) ` + name);\r\n let Coal = reg.exec(effect);\r\n if (Coal) {\r\n //console.log(Coal[1], Coal[2]);\r\n if (Coal[1] == '-') {\r\n consume.push({res:'Coal',cost:+Coal[2]});\r\n }\r\n else {\r\n produce.push({res:'Coal',cost:+Coal[2]});\r\n }\r\n }\r\n break;\r\n }\r\n case 'Oil': {\r\n let name = window.evolve.global.resource[baseCPList[i]].name;\r\n let reg = new RegExp(`([+-]?)([\\\\d\\\\.]+) ` + name);\r\n let Oil = reg.exec(effect);\r\n if (Oil) {\r\n //console.log(Oil[1], Oil[2]);\r\n if (Oil[1] == '-') {\r\n consume.push({res:'Oil',cost:+Oil[2]});\r\n }\r\n else {\r\n produce.push({res:'Oil',cost:+Oil[2]});\r\n }\r\n }\r\n break;\r\n }\r\n case 'Uranium': {\r\n let name = window.evolve.global.resource[baseCPList[i]].name;\r\n let reg = new RegExp(`([+-]?)([\\\\d\\\\.]+) ` + name);\r\n let Uranium = reg.exec(effect);\r\n if (Uranium) {\r\n //console.log(Uranium[1], Uranium[2]);\r\n if (Uranium[1] == '-') {\r\n consume.push({res:'Uranium',cost:+Uranium[2]});\r\n }\r\n else {\r\n produce.push({res:'Uranium',cost:+Uranium[2]});\r\n }\r\n }\r\n break;\r\n }\r\n case 'Iridium': {\r\n let name = window.evolve.global.resource[baseCPList[i]].name;\r\n let reg = new RegExp(`([+-]?)([\\\\d\\\\.]+) ` + name);\r\n let Iridium = reg.exec(effect);\r\n if (Iridium) {\r\n //console.log(Iridium[1], Iridium[2]);\r\n if (Iridium[1] == '-') {\r\n consume.push({res:'Iridium',cost:+Iridium[2]});\r\n }\r\n else {\r\n produce.push({res:'Iridium',cost:+Iridium[2]});\r\n }\r\n }\r\n break;\r\n }\r\n case 'Helium_3': {\r\n let name = window.evolve.global.resource[baseCPList[i]].name;\r\n let reg = new RegExp(`([+-]?)([\\\\d\\\\.]+) ` + name);\r\n let Helium_3 = reg.exec(effect);\r\n if (Helium_3) {\r\n //console.log(Helium_3[1], Helium_3[2]);\r\n if (Helium_3[1] == '-') {\r\n consume.push({res:'Helium_3',cost:+Helium_3[2]});\r\n }\r\n else {\r\n produce.push({res:'Helium_3',cost:+Helium_3[2]});\r\n }\r\n }\r\n break;\r\n }\r\n case 'Deuterium': {\r\n let name = window.evolve.global.resource[baseCPList[i]].name;\r\n let reg = new RegExp(`([+-]?)([\\\\d\\\\.]+) ` + name);\r\n let Deuterium = reg.exec(effect);\r\n if (Deuterium) {\r\n //console.log(Deuterium[1], Deuterium[2]);\r\n if (Deuterium[1] == '-') {\r\n consume.push({res:'Deuterium',cost:+Deuterium[2]});\r\n }\r\n else {\r\n produce.push({res:'Deuterium',cost:+Deuterium[2]});\r\n }\r\n }\r\n break;\r\n }\r\n case 'Neutronium': {\r\n let name = window.evolve.global.resource[baseCPList[i]].name;\r\n let reg = new RegExp(`([+-]?)([\\\\d\\\\.]+) ` + name);\r\n let Neutronium = reg.exec(effect);\r\n if (Neutronium) {\r\n //console.log(Neutronium[1], Neutronium[2]);\r\n if (Neutronium[1] == '-') {\r\n consume.push({res:'Neutronium',cost:+Neutronium[2]});\r\n }\r\n else {\r\n produce.push({res:'Neutronium',cost:+Neutronium[2]});\r\n }\r\n }\r\n break;\r\n }\r\n case 'Elerium': {\r\n let name = window.evolve.global.resource[baseCPList[i]].name;\r\n let reg = new RegExp(`([+-]?)([\\\\d\\\\.]+) ` + name);\r\n let Elerium = reg.exec(effect);\r\n if (Elerium) {\r\n //console.log(Elerium[1], Elerium[2]);\r\n if (Elerium[1] == '-') {\r\n consume.push({res:'Elerium',cost:+Elerium[2]});\r\n }\r\n else {\r\n produce.push({res:'Elerium',cost:+Elerium[2]});\r\n }\r\n }\r\n break;\r\n }\r\n case 'electricity': {\r\n let electricity = /(Uses|uses|Consumes|consumes) ([\\d\\.]+)kW/.exec(effect);\r\n if (electricity) {\r\n //console.log('-', electricity[2]);\r\n consume.push({res:'electricity',cost:+electricity[2]});\r\n break;\r\n }\r\n electricity = /([+-]?)([\\d\\.]+)kW/.exec(effect);\r\n if (electricity) {\r\n //console.log(electricity[1], electricity[2]);\r\n if (electricity[1] == '-') {\r\n consume.push({res:'electricity',cost:+electricity[2]});\r\n }\r\n else {\r\n produce.push({res:'electricity',cost:+electricity[2]});\r\n }\r\n }\r\n break;\r\n }\r\n case 'moon_support': {\r\n let moon_support = /([+-]?)([\\d\\.]+) Moon/.exec(effect);\r\n if (moon_support !== null) {\r\n //console.log(moon_support[1], moon_support[2]);\r\n if (moon_support[1] == '-') {\r\n consume.push({res:'moon_support',cost:+moon_support[2]});\r\n }\r\n else {\r\n produce.push({res:'moon_support',cost:+moon_support[2]});\r\n }\r\n }\r\n break;\r\n }\r\n case 'red_support': {\r\n let race = window.evolve.global.race.species;\r\n let red = window.evolve.races[race].solar.red;\r\n let reg = new RegExp(`([+-])?([\\\\d\\\\.]+) ` + red);\r\n let red_support = reg.exec(effect);\r\n if (red_support !== null) {\r\n //console.log(red_support[1], red_support[2]);\r\n if (red_support[1] == '-') {\r\n consume.push({res:'red_support',cost:+red_support[2]});\r\n }\r\n else {\r\n produce.push({res:'red_support',cost:+red_support[2]});\r\n }\r\n }\r\n break;\r\n }\r\n case 'swarm_support': {\r\n let swarm_support = /([+-]?)([\\d\\.]+) Swarm/.exec(effect);\r\n if (swarm_support !== null) {\r\n //console.log(swarm_support[1], swarm_support[2]);\r\n if (swarm_support[1] == '-') {\r\n consume.push({res:'swarm_support',cost:+swarm_support[2]});\r\n }\r\n else {\r\n produce.push({res:'swarm_support',cost:+swarm_support[2]});\r\n }\r\n }\r\n break;\r\n }\r\n case 'belt_support': {\r\n let belt_support = /\\+([\\d\\.]+) Max Space Miner/.exec(effect);\r\n if (belt_support) {\r\n //console.log('+', belt_support[1]);\r\n produce.push({res:'belt_support',cost:+belt_support[1]});\r\n break;\r\n }\r\n belt_support = /Requires ([\\d\\.]+) Space Miner/.exec(effect);\r\n if (belt_support) {\r\n //console.log('-', belt_support[1]);\r\n consume.push({res:'belt_support',cost:+belt_support[1]});\r\n }\r\n break;\r\n }\r\n case 'alpha_support': {\r\n let alpha_support = /([+-]?)([\\d\\.]+) Alpha/.exec(effect);\r\n if (alpha_support) {\r\n //console.log(alpha_support[1], alpha_support[2]);\r\n if (alpha_support[1] == '-') {\r\n consume.push({res:'alpha_support',cost:+alpha_support[2]});\r\n }\r\n else {\r\n produce.push({res:'alpha_support',cost:+alpha_support[2]});\r\n }\r\n }\r\n break;\r\n }\r\n case 'nebula_support': {\r\n let nebula_support = /([+-]?)([\\d\\.]+) (Nebula|Helix Nebula)/.exec(effect);\r\n if (nebula_support) {\r\n //console.log(nebula_support[1], nebula_support[2]);\r\n if (nebula_support[1] == '-') {\r\n consume.push({res:'nebula_support',cost:+nebula_support[2]});\r\n }\r\n else {\r\n produce.push({res:'nebula_support',cost:+nebula_support[2]});\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n return [consume,produce];\r\n}\r\n\r\nfunction loadSupport() {\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_3__[\"settings\"].hasOwnProperty('supportSettings')) {_settings_js__WEBPACK_IMPORTED_MODULE_3__[\"settings\"].supportSettings = {};}\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_3__[\"settings\"].supportSettings.hasOwnProperty('Interval')) {_settings_js__WEBPACK_IMPORTED_MODULE_3__[\"settings\"].supportSettings.Interval = 23;}\r\n}\r\n\r\nasync function autoSupport(priorityData) {\r\n // Don't start autoSupport if haven't unlocked power\r\n if (!Object(_researches_js__WEBPACK_IMPORTED_MODULE_4__[\"researched\"])('tech-electricity')) {return;}\r\n let powered = [];\r\n let totalPowered = 0;\r\n let priorities = [];\r\n let totalPriority = 0;\r\n let ratios = [];\r\n let maxes = [];\r\n let support = {\r\n electricity:0,\r\n moon_support:0,\r\n red_support:0,\r\n swarm_support:0,\r\n belt_support:0,\r\n alpha_support:0,\r\n nebula_support:0\r\n }\r\n // Loading all buildings\r\n for (let x in _buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"]) {\r\n // Ignore not unlocked buildings\r\n if (!_buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].unlocked) {continue;}\r\n // Ignore non powered buildings\r\n if (!(_buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x] instanceof _buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"PoweredBuilding\"])) {continue;}\r\n // Ignore not power unlocked buildings\r\n if (!_buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].powerUnlocked) {continue;}\r\n // Ignore non-powered buildings\r\n if (!(_buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x] instanceof _buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"PoweredBuilding\"])) {continue;}\r\n\r\n // Loading production/consumption\r\n [_buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].consume, _buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].produce] = await _buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].getCP();\r\n\r\n // Checking for dyson net / stellar engine\r\n if (_buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].id == 'interstellar-stellar_engine') {\r\n if (_buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].numTotal == 100) {\r\n support.electricity += _buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].produce[0].cost;\r\n console.log(\"STELLAR: \", _buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].produce[0].cost);\r\n }\r\n continue;\r\n }\r\n if (_buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].id == 'interstellar-dyson') {\r\n if (_buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].numTotal == 100) {\r\n support.electricity += _buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].produce[0].cost;\r\n console.log(\"DYSON: \", _buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].produce[0].cost);\r\n }\r\n continue;\r\n }\r\n\r\n // Reverting consumption/production\r\n for (let i = 0;i < _buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].consume.length;i++) {\r\n if (_resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"][_buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].consume[i].res] !== undefined) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"][_buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].consume[i].res].temp_rate += _buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].numOn * _buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].consume[i].cost;\r\n }\r\n else {\r\n\r\n }\r\n }\r\n for (let i = 0;i < _buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].produce.length;i++) {\r\n if (_resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"][_buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].produce[i].res] !== undefined) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"][_buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].produce[i].res].temp_rate -= _buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].numOn * _buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].produce[i].cost * Object(_utility_js__WEBPACK_IMPORTED_MODULE_2__[\"getMultiplier\"])(_buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].produce[i].res) * Object(_utility_js__WEBPACK_IMPORTED_MODULE_2__[\"getMultiplier\"])('Global');\r\n }\r\n else {\r\n\r\n }\r\n }\r\n powered.push(_buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x]);\r\n totalPowered += _buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].numTotal;\r\n let priority = _buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].powerPriority ** 5;\r\n totalPriority += priority;\r\n priorities.push(priority);\r\n maxes.push(_buildings_js__WEBPACK_IMPORTED_MODULE_1__[\"buildings\"][x].numTotal);\r\n }\r\n for (let i = 0;i < powered.length;i++) {\r\n ratios.push(priorities[i] / totalPriority);\r\n }\r\n let canTurnOn = function(index, curNum) {\r\n let building = powered[index];\r\n // Checking if this building can be turned on by resources\r\n for (let j = 0;j < building.consume.length;j++) {\r\n let res = building.consume[j].res;\r\n let cost = building.consume[j].cost;\r\n if (_resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"][res] !== undefined) {\r\n //console.log(\"Checking\",building.id,\"RES\",res.id,res.temp_rate,cost);\r\n if (_resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"][res].temp_rate < cost) {\r\n return false;\r\n }\r\n } else {\r\n if (support[res] < cost) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n let turnOn = function(index, curNum) {\r\n let building = powered[index];\r\n // Turning on building\r\n for (let j = 0;j < building.consume.length;j++) {\r\n let res = building.consume[j].res;\r\n let cost = building.consume[j].cost;\r\n if (_resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"][res] !== undefined) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"][res].temp_rate -= cost;\r\n } else {\r\n support[res] -= cost;\r\n }\r\n }\r\n for (let j = 0;j < building.produce.length;j++) {\r\n let res = building.produce[j].res;\r\n let cost = building.produce[j].cost;\r\n if (_resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"][res] !== undefined) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_0__[\"resources\"][res].temp_rate += cost * Object(_utility_js__WEBPACK_IMPORTED_MODULE_2__[\"getMultiplier\"])(res) * Object(_utility_js__WEBPACK_IMPORTED_MODULE_2__[\"getMultiplier\"])('Global');\r\n } else {\r\n support[res] += cost;\r\n }\r\n }\r\n }\r\n\r\n let allocation = Object(_utility_js__WEBPACK_IMPORTED_MODULE_2__[\"allocate\"])(totalPowered,priorities,{max:maxes,requireFunc:canTurnOn,allocFunc:turnOn})\r\n\r\n console.log(\"POWERED:\", powered, \"PRIO:\", priorities, \"RATIO:\", ratios);\r\n console.log(\"SUPPORT ALLOC:\", allocation);\r\n console.log(\"REMAIN:\", support);\r\n\r\n // Allocating\r\n for (let i = 0;i < powered.length;i++) {\r\n let building = powered[i];\r\n /*\r\n for (let j = 0;j < building.consume.length;j++) {\r\n if (building.consume[j].res == 'electricity') {\r\n console.log(building.id, allocation.alloc[i], building.consume[j].cost, '-', allocation.alloc[i] * building.consume[j].cost);\r\n break;\r\n }\r\n }\r\n for (let j = 0;j < building.produce.length;j++) {\r\n if (building.produce[j].res == 'electricity') {\r\n console.log(building.id, allocation.alloc[i], building.produce[j].cost, '+', allocation.alloc[i] * building.produce[j].cost);\r\n break;\r\n }\r\n }\r\n */\r\n if (building.numOn < allocation.alloc[i]) {\r\n building.incPower(allocation.alloc[i] - building.numOn);\r\n }\r\n else {\r\n building.decPower(building.numOn - allocation.alloc[i]);\r\n }\r\n }\r\n}\n\n//# sourceURL=webpack:///./src/support.js?");
/***/ }),
/***/ "./src/ui.js":
/*!*******************!*\
!*** ./src/ui.js ***!
\*******************/
/*! exports provided: resetUICheck, updateUI, resetUI */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetUICheck\", function() { return resetUICheck; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"updateUI\", function() { return updateUI; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetUI\", function() { return resetUI; });\n/* harmony import */ var _main_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./main.js */ \"./src/main.js\");\n/* harmony import */ var _utility_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utility.js */ \"./src/utility.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settings.js */ \"./src/settings.js\");\n/* harmony import */ var _evolution_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./evolution.js */ \"./src/evolution.js\");\n/* harmony import */ var _farm_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./farm.js */ \"./src/farm.js\");\n/* harmony import */ var _resources_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./resources.js */ \"./src/resources.js\");\n/* harmony import */ var _actions_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./actions.js */ \"./src/actions.js\");\n/* harmony import */ var _miscactions_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./miscactions.js */ \"./src/miscactions.js\");\n/* harmony import */ var _researches_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./researches.js */ \"./src/researches.js\");\n/* harmony import */ var _buildings_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./buildings.js */ \"./src/buildings.js\");\n/* harmony import */ var _jobs_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./jobs.js */ \"./src/jobs.js\");\n/* harmony import */ var _government_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./government.js */ \"./src/government.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nlet farmReset = ['tech-club', 'tech-bone_tools'];\r\nlet jobReset = ['city-lumber_yard',\r\n 'city-rock_quarry',\r\n 'city-cement_plant',\r\n 'city-foundry',\r\n 'city-metal_refinery',\r\n 'city-mine',\r\n 'city-coal_mine',\r\n 'city-amphitheatre',\r\n 'city-university',\r\n 'city-wardenclyffe',\r\n 'tech-investing',\r\n 'tech-reclaimer',\r\n 'space-living_quarters',\r\n 'space-space_station',\r\n 'portal-carport',];\r\nlet resourceReset = ['city-garrison',\r\n 'city-storage_yard',\r\n 'city-warehouse',\r\n 'city-cement_plant',\r\n 'city-foundry',\r\n 'city-factory',\r\n 'city-metal_refinery',\r\n 'city-mine',\r\n 'city-coal_mine',\r\n 'city-oil_well',\r\n 'space-iridium_mine',\r\n 'space-helium_mine',\r\n 'space-outpost',\r\n 'interstellar-mining_droid',\r\n 'interstellar-g_factory',\r\n 'interstellar-nexus',\r\n 'portal-carport',];\r\nfunction resetUICheck(action) {\r\n if (farmReset.includes(action.id)) {Object(_farm_js__WEBPACK_IMPORTED_MODULE_4__[\"loadFarm\"])();}\r\n if (jobReset.includes(action.id)) {\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].autoEmploy) {createEmploySettings();}\r\n }\r\n if (resourceReset.includes(action.id)) {\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].autoMarket) {createMarketSettings();}\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].autoTrade) {createTradeSettings();}\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].autoStorage) {createStorageSettings();}\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].autoEjector) {createEjectorSettings();}\r\n }\r\n}\r\n\r\nlet toolTipClass = 'is-primary is-bottom is-small b-tooltip is-animated is-multiline';\r\nfunction createNumControl(currentValue, name, subFunc, addFunc, args) {\r\n args = args || {};\r\n let subBtn = $(`<span role=\"button\" aria-label=\"Decrease ${name}\" class=\"sub\">«</span>`);\r\n let label = $(`<span id=\"${name}_control\" class=\"count current\" style=\"width:2rem;\">${currentValue}</span>`);\r\n subBtn.on('click', function(e) {\r\n let mult = Object(_utility_js__WEBPACK_IMPORTED_MODULE_1__[\"keyMult\"])(e);\r\n document.getElementById(name+'_control').innerText = subFunc(mult);\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"updateSettings\"])();\r\n });\r\n let addBtn = $(`<span role=\"button\" aria-label=\"Increase ${name}\" class=\"add\">»</span>`);\r\n addBtn.on('click', function(e) {\r\n let mult = Object(_utility_js__WEBPACK_IMPORTED_MODULE_1__[\"keyMult\"])(e);\r\n document.getElementById(name+'_control').innerText = addFunc(mult);\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"updateSettings\"])();\r\n });\r\n let control = $(`<div class=\"controls as-${name}-settings\" style=\"display:flex\"></div>`).append(subBtn).append(label).append(addBtn);\r\n if (args.toolTip !== undefined) {\r\n control.addClass(toolTipClass);\r\n control.attr('data-label', args.toolTip);\r\n }\r\n return control;\r\n}\r\nfunction createToggleControl(toggleId, toggleName, args) {\r\n args = args || {};\r\n let controlName = (Array.isArray(toggleId)) ? toggleId.join('_') : toggleId;\r\n let checkStyle = (args.small !== undefined) ? 'style=\"height:5px;\"' : '';\r\n let toggle = $(`\r\n <label class=\"switch\" id=\"${controlName}_toggle\">\r\n <input type=\"checkbox\" true-value=\"true\" value=\"false\">\r\n <span class=\"check\" ${checkStyle}></span>\r\n <span class=\"control-label\"><span class=\"is-primary is-bottom is-small is-animated is-multiline\">${toggleName}</span>\r\n </span>\r\n </label>`);\r\n let setting = _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"];\r\n if (args.hasOwnProperty('path')) {\r\n setting = args.path[0];\r\n for (let i = 1;i < args.path.length-1;i++) {\r\n setting = setting[args.path[i]];\r\n }\r\n toggleId = args.path[args.path.length-1];\r\n }\r\n toggle.children('input').on('click', function(e){\r\n if (e.which != 1) {return;}\r\n let input = e.currentTarget;\r\n let state = !(input.getAttribute('value') === \"true\");\r\n input.setAttribute('value', state);\r\n setting[toggleId] = state;\r\n console.log(`Setting ${controlName} to ${state}`);\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"updateSettings\"])();\r\n if (state && args.enabledCallBack !== undefined) {\r\n args.enabledCallBack();\r\n }\r\n else if (args.disabledCallBack !== undefined) {\r\n args.disabledCallBack()\r\n }\r\n if (args.onChange !== undefined) {\r\n args.onChange(state);\r\n }\r\n });\r\n if(setting[toggleId]){\r\n setTimeout( function() {\r\n console.log(`Setting ${controlName} initially to true`);\r\n toggle.children('span.check').click();\r\n toggle.children('input').attr('value', true);\r\n }, 1000);\r\n }\r\n return toggle;\r\n}\r\nfunction createDropDownControl(currentValue, id, name, values, args) {\r\n args = args || {};\r\n let option = $(`<div style=\"display:flex;\" id=\"${id}_dropdown\"></div>`);\r\n let label = $(`<span class=\"has-text-warning\" style=\"width:12rem;\">${name}:</span>`);\r\n if (args.toolTip !== undefined) {\r\n label.addClass(toolTipClass);\r\n label.attr('data-label', args.toolTip);\r\n }\r\n option.append(label);\r\n let decision = $(`<select style=\"width:12rem;\"></select>`);\r\n for (let val in values) {\r\n decision.append($(`<option value=\"${val}\">${values[val]}</option>`));\r\n }\r\n decision[0].value = _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"][id];\r\n decision[0].onchange = function(){\r\n _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"][id] = decision[0].value;\r\n console.log(`Changing ${id} to ${_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"][id]}`);\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"updateSettings\"])();\r\n if (args.onChange !== undefined) {\r\n args.onChange(decision[0].value);\r\n }\r\n };\r\n option.append(decision);\r\n return option;\r\n}\r\nfunction createCheckBoxControl(currentValue, id, name, args) {\r\n args = args || {};\r\n let checkBox = $(`\r\n <label class=\"b-checkbox checkbox\" id=\"${id}\">\r\n <input type=\"checkbox\" true-value=\"Yes\" false-value=\"No\" value=\"false\">\r\n <span class=\"check is-dark\"></span>\r\n <span class=\"control-label\">${name}</span>\r\n </label>`);\r\n if (args.toolTip !== undefined) {\r\n checkBox.addClass(toolTipClass);\r\n checkBox.attr(\"data-label\", args.toolTip);\r\n }\r\n let setting = _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"];\r\n if (args.hasOwnProperty('path')) {\r\n setting = args.path[0];\r\n for (let i = 1;i < args.path.length-1;i++) {\r\n setting = setting[args.path[i]];\r\n }\r\n id = args.path[args.path.length-1];\r\n }\r\n checkBox.children('input').on('click', function(e){\r\n if (e.which != 1) {return;}\r\n let input = e.currentTarget;\r\n let state = !(input.getAttribute('value') === \"true\");\r\n input.setAttribute('value', state);\r\n setting[id] = state;\r\n console.log(\"Setting\", id, \"to\", state);\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"updateSettings\"])();\r\n if (state && args.enabledCallBack !== undefined){\r\n args.enabledCallBack();\r\n } else if(args.disabledCallBack !== undefined){\r\n args.disabledCallBack()\r\n }\r\n });\r\n if(setting[id]){\r\n setTimeout( function() {\r\n console.log(\"Setting initially to true\");\r\n checkBox.children('span.check').click();\r\n checkBox.children('input').attr('value', true);\r\n }, 1000);\r\n }\r\n return checkBox;\r\n}\r\nfunction createInputControl(currentValue, id, name, args) {\r\n args = args || {};\r\n let div = $(`<div style=\"display:flex\" id=\"${id}_input\"></div>`);\r\n let label = $(`<span class=\"has-text-warning\" style=\"width:12rem;\">${name}:</span>`);\r\n if (args.toolTip !== undefined) {\r\n label.addClass(toolTipClass);\r\n label.attr('data-label', args.toolTip);\r\n }\r\n div.append(label);\r\n let input = $(`<input type=\"text\" class=\"input is-small\" style=\"width:10rem;\"/>`);\r\n div.append(input);\r\n let setting = _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"];\r\n if (args.hasOwnProperty('path')) {\r\n setting = args.path[0];\r\n for (let i = 1;i < args.path.length-1;i++) {\r\n setting = setting[args.path[i]];\r\n }\r\n id = args.path[args.path.length-1];\r\n }\r\n input.val(currentValue);\r\n let setBtn = $(`<a class=\"button is-dark is-small\" id=\"${id}_input_set\" style=\"width:2rem;\"><span>Set</span></a>`);\r\n div.append(setBtn);\r\n setBtn.on('click', function(e) {\r\n if (e.which != 1) {return;}\r\n let val = input.val();\r\n // Converting input\r\n if (args.convertFunc !== undefined) {val = args.convertFunc(val);}\r\n if (val === null) {input.val(setting[id]);return;}\r\n console.log(`Setting input ${name} to ${val}`);\r\n setting[id] = val;\r\n input.val(val);\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"updateSettings\"])();\r\n // CallBack function\r\n if (args.setFunc !== undefined) {args.setFunc(setting.id);}\r\n });\r\n return div;\r\n}\r\n\r\nfunction updateUI(){\r\n if ($('.as-autolog').length == 0) {\r\n createAutoLog();\r\n }\r\n if ($('#autoSettingTab').length == 0) {\r\n createSettingTab();\r\n }\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].autoStorage && $('.as-storage-settings').length == 0) {\r\n createStorageSettings();\r\n }\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].autoEmploy && $('.as-employ-settings').length == 0) {\r\n createEmploySettings();\r\n }\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].autoMarket && $('.as-market-settings').length == 0) {\r\n createMarketSettings();\r\n }\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].autoTrade && $('.as-trade-settings').length == 0) {\r\n createTradeSettings();\r\n }\r\n if ($('#autoSettings').length == 0) {\r\n createAutoSettings();\r\n }\r\n if ($('#as-watermark').length == 0) {\r\n createScriptWatermark();\r\n }\r\n}\r\n\r\nfunction resetUI() {\r\n console.log(\"Resetting UI\");\r\n removeStorageSettings();\r\n removeMarketSettings();\r\n removeTradeSettings();\r\n removeEmploySettings();\r\n $('.as-autolog').remove();\r\n $('.as-settings').remove();\r\n $('#autoSettings').remove();\r\n}\r\n\r\nfunction createAutoSettings() {\r\n let parent = Object(_utility_js__WEBPACK_IMPORTED_MODULE_1__[\"getTab\"])(\"Settings\");\r\n parent.append($('<br></br>')[0]);\r\n let mainDiv = $('<div id=\"autoSettings\"></div>');\r\n let label = $('<label class=\"label\">Import/Export Auto Settings</label>');\r\n let ctrlDiv = $('<div class=\"control is-clearfix\"></div>');\r\n let textArea = $('<textarea id=\"settingsImportExport\" class=\"textarea\"></textarea>');\r\n ctrlDiv.append(textArea);\r\n let control = $('<div class=\"field\"></div>');\r\n control.append(label).append(ctrlDiv);\r\n let importBtn = $('<button class=\"button\">Import Settings</button><text> </text>');\r\n importBtn.on('click', function(e) {\r\n if (e.which != 1) {return;}\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"importSettings\"])();\r\n });\r\n let exportBtn = $('<button class=\"button\">Export Settings</button>');\r\n exportBtn.on('click', function(e) {\r\n if (e.which != 1) {return;}\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"exportSettings\"])();\r\n });\r\n mainDiv.append(control).append(importBtn).append(exportBtn);\r\n parent.append(mainDiv[0]);\r\n}\r\n\r\nfunction createStorageSetting(id) {\r\n if (!_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].unlocked) {return;}\r\n if (!_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].crateable) {return;}\r\n let resourceSpan = $('#stack-'+_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].id);\r\n let div = $('<div class=\"as-storage-settings\" style=\"display:flex\"></div>');\r\n let prioritySub = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].decStorePriority(mult);\r\n loadStorageUI();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].storePriority;\r\n }\r\n let priorityAdd = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].incStorePriority(mult);\r\n loadStorageUI();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].storePriority;\r\n }\r\n let priorityControls = createNumControl(_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].storePriority, id+\"-store-priority\", prioritySub, priorityAdd);\r\n div.append(priorityControls)\r\n\r\n let minSub = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].decStoreMin(mult);\r\n loadStorageUI();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].storeMin;\r\n }\r\n let minAdd = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].incStoreMin(mult);\r\n loadStorageUI();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].storeMin;\r\n }\r\n let minControls = createNumControl(_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].storeMin, id+\"-store-min\", minSub, minAdd);\r\n div.append(minControls)\r\n\r\n let maxSub = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].decStoreMax(mult);\r\n loadStorageUI();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].storeMax;\r\n }\r\n let maxAdd = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].incStoreMax(mult);\r\n loadStorageUI();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].storeMax;\r\n }\r\n let maxControls = createNumControl(_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].storeMax, id+\"-store-max\", maxSub, maxAdd);\r\n div.append(maxControls);\r\n\r\n resourceSpan.append(div);\r\n}\r\nfunction createStorageSettings() {\r\n // Don't render if haven't researched crates\r\n if (!Object(_researches_js__WEBPACK_IMPORTED_MODULE_8__[\"researched\"])('tech-containerization')) {return;}\r\n removeStorageSettings();\r\n // Creating labels\r\n let labelSpan = $('#createHead');\r\n let prioLabel = $('<div class=\"as-storage-settings\" style=\"display:inline-flex;margin-left:2rem\"><span class=\"has-text-warning\">Priority</span></div>');\r\n let minLabel = $('<div class=\"as-storage-settings\" style=\"display:inline-flex;margin-left:3rem\"><span class=\"has-text-warning\">Min</span></div>');\r\n let maxLabel = $('<div class=\"as-storage-settings\" style=\"display:inline-flex;margin-left:3rem\"><span class=\"has-text-warning\">Max</span></div>');\r\n labelSpan.append(prioLabel).append(minLabel).append(maxLabel);\r\n // Creating individual counters\r\n for (var x in _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"]) {\r\n createStorageSetting(x);\r\n }\r\n}\r\nfunction removeStorageSettings() {\r\n $('.as-storage-settings').remove();\r\n}\r\n\r\nfunction createMarketSetting(resource){\r\n let marketDiv = $(`<div style=\"display:flex;\" class=\"as-market-settings as-market-${resource.id}\"></div>`);\r\n\r\n let manualBuy = $('<div style=\"display:flex;\"></div>');\r\n marketDiv.append(manualBuy);\r\n let buyToggleOnChange = function(state) {\r\n let sellToggle = $(`#${resource.id}-autoSell_toggle`);\r\n let otherState = sellToggle.children('input').attr('value') === 'true';\r\n if(state && otherState){\r\n sellToggle.click();\r\n console.log(\"Turning off sellToggle\");\r\n resource.autoSell = false;\r\n sellToggle.children('input')[0].setAttribute('value',false);\r\n }\r\n loadTradeUI();\r\n }\r\n let buyToggle = createToggleControl(resource.id+'-autoBuy', '', {path:[_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"], resource.id, 'autoBuy'],small:true,onChange:buyToggleOnChange});\r\n manualBuy.append(buyToggle);\r\n\r\n let buyRatioSub = function(mult) {\r\n resource.buyDec(mult);\r\n loadTradeUI();\r\n return resource.buyRatio;\r\n }\r\n let buyRatioAdd = function(mult) {\r\n resource.buyInc(mult);\r\n loadTradeUI();\r\n return resource.buyRatio;\r\n }\r\n let buyRatioControl = createNumControl(resource.buyRatio, resource.id+'-buy-ratio',buyRatioSub,buyRatioAdd);\r\n manualBuy.append(buyRatioControl);\r\n\r\n let manualSell = $('<div style=\"display:flex;\"></div>');\r\n marketDiv.append(manualSell);\r\n let sellToggleOnChange = function(state) {\r\n let buyToggle = $(`#${resource.id}-autoBuy_toggle`);\r\n let otherState = buyToggle.children('input').attr('value') === 'true';\r\n if(state && otherState){\r\n buyToggle.click();\r\n console.log(\"Turning off buyToggle\");\r\n resource.autoBuy = false;\r\n buyToggle.children('input')[0].setAttribute('value',false);\r\n }\r\n loadTradeUI();\r\n }\r\n let sellToggle = createToggleControl(resource.id+'-autoSell', '', {path:[_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"], resource.id, 'autoSell'],small:true,onChange:sellToggleOnChange});\r\n manualSell.append(sellToggle);\r\n\r\n let sellRatioSub = function(mult) {\r\n resource.sellDec(mult);\r\n loadTradeUI();\r\n return resource.sellRatio;\r\n }\r\n let sellRatioAdd = function(mult) {\r\n resource.sellInc(mult);\r\n loadTradeUI();\r\n return resource.sellRatio;\r\n }\r\n let sellRatioControl = createNumControl(resource.sellRatio, resource.id+'-sell-ratio',sellRatioSub,sellRatioAdd);\r\n manualSell.append(sellRatioControl);\r\n\r\n return [marketDiv, manualBuy, manualSell];\r\n}\r\nfunction createMarketSettings(){\r\n // Don't render if haven't researched markets\r\n if (!Object(_researches_js__WEBPACK_IMPORTED_MODULE_8__[\"researched\"])('tech-market')) {return;}\r\n removeMarketSettings();\r\n let mainDiv = document.getElementById('market');\r\n mainDiv.insertBefore($('<div class=\"as-market-settings\"><br></div>')[0],mainDiv.children[1]);\r\n let firstRow = false;\r\n // Creating settings for TradeableResources\r\n for (var x in _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"]) {\r\n if (!(_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][x] instanceof _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"TradeableResource\"])) {continue;}\r\n let [marketDiv, manualBuy, manualSell] = createMarketSetting(_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][x]);\r\n if (!firstRow) {\r\n firstRow = true;\r\n let buyLabel = $('<div style=\"position:absolute;top:1.5rem;\"><span>Manual Buy</span></div>');\r\n manualBuy.prepend(buyLabel[0]);\r\n let sellLabel = $('<div style=\"position:absolute;top:1.5rem;\"><span>Manual Sell</span></div>');\r\n manualSell.prepend(sellLabel[0]);\r\n }\r\n let marketRow = $('#market-'+_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][x].id);\r\n marketRow.append(marketDiv);\r\n }\r\n}\r\nfunction removeMarketSettings(){\r\n $('.as-market-settings').remove();\r\n}\r\n\r\nfunction createTradeSetting(resource) {\r\n let marketDiv = $(`<div style=\"display:flex;\" class=\"as-trade-settings as-trade-${resource.id}\"></div>`);\r\n\r\n let prioritySub = function(mult) {\r\n resource.decBasePriority(mult);\r\n loadTradeUI();\r\n return resource.basePriority;\r\n }\r\n let priorityAdd = function(mult) {\r\n resource.incBasePriority(mult);\r\n loadTradeUI();\r\n return resource.basePriority;\r\n }\r\n let priorityControl = createNumControl(resource.basePriority, resource.id+'-trade-priority',prioritySub,priorityAdd);\r\n marketDiv.append(priorityControl);\r\n\r\n return [marketDiv, priorityControl];\r\n}\r\nfunction createTradeSettings() {\r\n // Don't render if haven't researched markets\r\n if (!Object(_researches_js__WEBPACK_IMPORTED_MODULE_8__[\"researched\"])('tech-trade')) {return;}\r\n removeTradeSettings();\r\n let mainDiv = document.getElementById('market');\r\n if ($('.as-market-settings > br').length == 0) {\r\n mainDiv.insertBefore($('<div class=\"as-trade-settings\"><br></div>')[0],mainDiv.children[1]);\r\n }\r\n let firstRow = false;\r\n let lastRow = null;\r\n // Creating settings for TradeableResources\r\n for (var x in _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"]) {\r\n if (!(_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][x] instanceof _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"TradeableResource\"])) {continue;}\r\n let [marketDiv, tradeControl] = createTradeSetting(_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][x]);\r\n if (!firstRow) {\r\n firstRow = true;\r\n let tradeLabel = $('<div style=\"position:absolute;top:1.5rem;\"><span>Trade</span></div>');\r\n tradeControl.prepend(tradeLabel[0]);\r\n }\r\n let marketRow = $('#market-'+_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][x].id);\r\n marketRow.append(marketDiv);\r\n if (marketRow[0].style.display != 'none') {lastRow = [tradeControl, marketDiv, marketRow];}\r\n }\r\n\r\n // Creating trade setting for money\r\n let tradeRow = document.getElementById(\"tradeTotal\");\r\n let moneyLabel = $('<div style=\"position:absolute;bottom:4rem;width:5.25rem;text-align:center;\"><span>$$$</span></div>');\r\n lastRow[0].prepend(moneyLabel);\r\n let priorityDiv = $('<div style=\"position:absolute;bottom:3rem;width:5.25rem;text-align:center;\"</div>');\r\n let prioritySub = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"].Money.decBasePriority(mult);\r\n loadTradeUI();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"].Money.basePriority;\r\n }\r\n let priorityAdd = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"].Money.incBasePriority(mult);\r\n loadTradeUI();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"].Money.basePriority;\r\n }\r\n let priorityControl = createNumControl(_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"].Money.basePriority,\"Money-trade-priority\",prioritySub,priorityAdd);\r\n priorityDiv.append(priorityControl);\r\n lastRow[0].prepend(priorityDiv[0]);\r\n}\r\nfunction removeTradeSettings() {\r\n $('.as-trade-settings').remove();\r\n}\r\n\r\nfunction createEjectorSetting(resource) {\r\n\r\n}\r\nfunction createEjectorSettings() {\r\n // Don't render if haven't unlocked mass ejectors\r\n if (!window.evolve.global.interstellar.hasOwnProperty('mass_ejector')) {return;}\r\n if (window.evolve.global.interstellar.mass_ejector.count == 0) {return;}\r\n removeEjectorSettings();\r\n\r\n}\r\nfunction removeEjectorSettings() {\r\n $('.as-ejector-settings').remove();\r\n}\r\n\r\nfunction createEmploySettings() {\r\n removeEmploySettings();\r\n for (var x in _jobs_js__WEBPACK_IMPORTED_MODULE_10__[\"jobs\"]) {\r\n let job = _jobs_js__WEBPACK_IMPORTED_MODULE_10__[\"jobs\"][x];\r\n if (!job.unlocked) {continue;}\r\n let prioritySub = function(mult) {\r\n job.lowerPriority(mult);\r\n loadEmployUI();\r\n return job._priority;\r\n }\r\n let priorityAdd = function(mult) {\r\n job.higherPriority(mult);\r\n loadEmployUI();\r\n return job._priority;\r\n }\r\n let priorityControl = createNumControl(job._priority, job.id+'-priority',prioritySub,priorityAdd);\r\n if (job.id != \"free\" || job.name == 'Hunter') {\r\n if (job.id == \"craftsman\") {\r\n let parent = $('#foundry > .job > .foundry').parent();\r\n let div = $('<div class=\"foundry as-employ-settings\" style=\"text-align:right;margin-left:4.5rem\"></div>');\r\n parent.append(div);\r\n div.append(priorityControl);\r\n //parent.append(priorityControl);\r\n } else if (job.id == 'free') {\r\n let div = $('<div class=\"as-employ-settings\" style=\"text-align:right;margin-left:4.5rem\"></div>');\r\n $('#civ-'+job.id).append(div);\r\n div.append(priorityControl);\r\n }else {\r\n let div = $('<div class=\"as-employ-settings\" style=\"text-align:right;margin-left:1.25rem\"></div>');\r\n $('#civ-'+job.id).append(div);\r\n div.append(priorityControl);\r\n }\r\n\r\n } else {\r\n let parent = document.getElementById(\"civ-\"+job.id);\r\n let priorityLabel = $('<span class=\"has-text-warning as-employ-settings\" style=\"text-align:right;min-width:9.25rem\">Priority</span>');\r\n $('#civ-'+job.id).append(priorityLabel);\r\n }\r\n }\r\n\r\n for (x in _jobs_js__WEBPACK_IMPORTED_MODULE_10__[\"craftJobs\"]) {\r\n let cjob = _jobs_js__WEBPACK_IMPORTED_MODULE_10__[\"craftJobs\"][x];\r\n if (!cjob.unlocked) {continue;}\r\n let prioritySub = function(mult) {\r\n cjob.lowerPriority(mult);\r\n loadEmployUI();\r\n return cjob._priority;\r\n }\r\n let priorityAdd = function(mult) {\r\n cjob.higherPriority(mult);\r\n loadEmployUI();\r\n return cjob._priority;\r\n }\r\n let priorityControl = createNumControl(cjob._priority, cjob.id+'-priority',prioritySub,priorityAdd);\r\n let div = $('<div class=\"as-employ-settings\" style=\"text-align:right;margin-left:1.25rem\">');\r\n div.append(priorityControl);\r\n $('#craft'+cjob.id).parent().append(div);\r\n }\r\n\r\n}\r\nfunction removeEmploySettings() {\r\n $('.as-employ-settings').remove();\r\n}\r\n\r\nfunction createAutoSettingPage(name, labelElm, contentElm) {\r\n let label = $('<li class=\"as-settings\"><a><span>'+name+'</span></a></li>');\r\n let tab = $('<div id=\"'+name+'_setting_tab'+'\" class=\"tab-item as-settings\" style=\"display:none;margin-left:1rem;\"><h2 class=\"is-sr-only\">'+name+'</h2></div>');\r\n label.on('click',function(e) {\r\n if (e.which != 1) {return;}\r\n for (let i = 0;i < labelElm.children().length;i++) {\r\n let tabLabel = labelElm.children()[i];\r\n let tabItem = contentElm.children()[i];\r\n if (tabLabel.classList.contains(\"is-active\")) {\r\n tabLabel.classList.remove(\"is-active\");\r\n tabItem.style.display = 'none';\r\n }\r\n }\r\n label.addClass(\"is-active\");\r\n tab[0].style.display = '';\r\n });\r\n labelElm.append(label);\r\n contentElm.append(tab);\r\n return tab;\r\n}\r\nfunction createSettingTab() {\r\n let settingTabLabel = $('<li class=\"as-settings\"><a><span>Auto Settings</span></a></li>');\r\n let settingTab = $('<div id=\"autoSettingTab\" class=\"tab-item as-settings\" style=\"display:none\"><h2 class=\"is-sr-only\">Auto Settings</h2></div>');\r\n // Creating click functions for other tabs\r\n for (let i = 1;i <= $('#mainColumn > .content > .b-tabs > .tabs > ul').children().length;i++) {\r\n let tabLabel = $('#mainColumn > .content > .b-tabs > .tabs > ul > li:nth-child('+i+')');\r\n let tabItem = $('#mainColumn > .content > .b-tabs > .tab-content').children()[i-1];\r\n tabLabel.on('click',function(e) {\r\n if (e.which != 1) {return;}\r\n if (settingTabLabel.hasClass(\"is-active\")) {\r\n settingTabLabel.removeClass(\"is-active\");\r\n tabItem.style.display = '';\r\n }\r\n settingTab[0].style.display = 'none';\r\n if (!tabLabel.hasClass(\"is-active\")) {tabLabel.addClass(\"is-active\");}\r\n });\r\n }\r\n $('#mainColumn > .content > .b-tabs > .tabs > ul').append(settingTabLabel);\r\n $('#mainColumn > .content > .b-tabs > .tab-content').append(settingTab);\r\n settingTabLabel.on('click',function(e) {\r\n if (e.which != 1) {return;}\r\n // For every other tab\r\n for (let i = 1;i <= $('#mainColumn > .content > .b-tabs > .tabs > ul').children().length-1;i++) {\r\n let tabLabel = $('#mainColumn > .content > .b-tabs > .tabs > ul > li:nth-child('+i+')');\r\n let tabItem = $('#mainColumn > .content > .b-tabs > .tab-content').children()[i-1];\r\n tabLabel.removeClass(\"is-active\");\r\n tabItem.style.display = 'none';\r\n }\r\n settingTabLabel.addClass(\"is-active\");\r\n settingTab[0].style.display = '';\r\n });\r\n\r\n let tabDiv = $('<div class=\"b-tabs resTabs\"></div>');\r\n let nav = $('<nav class=\"tabs\"></nav>');\r\n tabDiv.append(nav);\r\n let section = $('<section class=\"tab-content\"></section>');\r\n tabDiv.append(section);\r\n let ul = $('<ul></ul>');\r\n nav.append(ul);\r\n settingTab.append(tabDiv);\r\n\r\n let generalTab = createAutoSettingPage(\"General\", ul, section);\r\n createAutoSettingGeneralPage(generalTab);\r\n let evolutionTab = createAutoSettingPage(\"Evolution\", ul, section);\r\n createAutoSettingEvolutionPage(evolutionTab);\r\n if (!Object(_utility_js__WEBPACK_IMPORTED_MODULE_1__[\"inEvolution\"])()) {\r\n let jobTab = createAutoSettingPage(\"Jobs/Army\", ul, section);\r\n createAutoSettingJobPage(jobTab);\r\n let govTab = createAutoSettingPage(\"Government\", ul, section);\r\n createAutoSettingGovPage(govTab);\r\n let resourceTab = createAutoSettingPage(\"Resources\", ul, section);\r\n createAutoSettingResourcePage(resourceTab);\r\n let buildingTab = createAutoSettingPage(\"Buildings\", ul, section);\r\n createAutoSettingBuildingPage(buildingTab);\r\n let researchTab = createAutoSettingPage(\"Research\", ul, section);\r\n createAutoSettingResearchPage(researchTab);\r\n let priorityTab = createAutoSettingPage(\"Priority\", ul, section);\r\n createAutoSettingPriorityPage(priorityTab);\r\n }\r\n}\r\nfunction createAutoSettingToggle(id, name, description, hasContent, tab, enabledCallBack, disabledCallBack) {\r\n tab.append($('<br></br>'));\r\n let settingDiv = $(`<div id=as-${id}-title></div>`)\r\n tab.append(settingDiv)\r\n let titleDiv = $('<div style=\"display:flex;justify-content:space-between;\"></div>');\r\n settingDiv.append(titleDiv);\r\n let toggle = createToggleControl(id, name, {enabledCallBack:enabledCallBack, disabledCallBack:disabledCallBack});\r\n titleDiv.append(toggle);\r\n let details = $(`<span>${description}</span>`);\r\n settingDiv.append(details);\r\n let content = null;\r\n if (hasContent) {\r\n let contentId = 'as-' + id + '-content';\r\n let style = 'margin-left:0.5em;overflow:hidden;max-height:0;transition:max-height 0.2s ease-out;'\r\n content = $(`<div style=\"${style}\" id=\"${contentId}\"></div>`);\r\n tab.append(content);\r\n content.append($('<br></br>'));\r\n let btn = $(`<div class=\"sub\" style=\"position:absolute;left:0px;width:1.5rem;height:25px;\">+</button>`);\r\n settingDiv.prepend(btn);\r\n btn.on('click', function(e) {\r\n if (content[0].style.maxHeight != '0px'){\r\n content[0].style.maxHeight = '0px';\r\n btn[0].innerText = '+';\r\n content[0].style.overflow = 'hidden';\r\n } else {\r\n content[0].style.maxHeight = content[0].scrollHeight + 'px';\r\n btn[0].innerText = '-';\r\n content[0].style.overflow = '';\r\n }\r\n });\r\n }\r\n return [titleDiv, content];\r\n}\r\n\r\nfunction createAutoSettingGeneralPage(tab) {\r\n\r\n // Auto Print\r\n let autoPrintDesc = 'Prints out script details in the script printing window. Currently only action details are implemented. Toggle to ignore certain actions from appearing in the message queue.';\r\n let [autoPrintTitle, autoPrintContent] = createAutoSettingToggle('autoPrint', 'Auto Print', autoPrintDesc, true, tab);\r\n\r\n let printOption = $('<div style=\"display:flex;\"></div>');\r\n autoPrintContent.append(printOption);\r\n let printToolTip = 'Checking these will send the print messages to the script message queue.';\r\n printOption.append($(`<div><span class=\"has-text-warning ${toolTipClass}\" style=\"width:12rem;\" data-label=\"${printToolTip}\">Print Settings:</span></div>`));\r\n let printToggles = $('<div></div>');\r\n printOption.append(printToggles);\r\n for (let i = 0;i < _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"printSettings\"].length;i++) {\r\n let toggleVal = _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].printSettings[_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"printSettings\"][i]];\r\n let toggleId = _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"printSettings\"][i];\r\n let str = _evolution_js__WEBPACK_IMPORTED_MODULE_3__[\"evoChallengeActions\"][i].split('-')[1];\r\n let toggleName = _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"printSettings\"][i];\r\n let toggle = createCheckBoxControl(toggleVal, toggleId, toggleName, {path:[_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"], 'printSettings', toggleId]});\r\n let toggleDiv = $('<div></div>');\r\n toggleDiv.append(toggle);\r\n printToggles.append(toggleDiv);\r\n }\r\n\r\n // Auto Farm\r\n let autoFarmDesc = 'Auto-clicks the manual farming buttons that exist on the screen. If the buttons are not being auto-clicked, try reloading the UI. Defaults to click at 100/s (10 ms).';\r\n let [autoFarmTitle, autoFarmContent] = createAutoSettingToggle('autoFarm', 'Auto Farm', autoFarmDesc, true, tab);\r\n\r\n let farmToolTip = 'Determines how fast the manual buttons will be clicked (every # milliseconds)';\r\n let convertFunc = function(val) {\r\n if (isNaN(val)) {return null;}\r\n val = parseInt(val);\r\n if (val <= 0) {return null;}\r\n return val;\r\n }\r\n let setFunc = function(val) {\r\n // Clearing farmInterval to refresh with new farm rate\r\n if (farmInterval !== null) {\r\n clearInterval(farmInterval);\r\n farmInterval = null;\r\n }\r\n }\r\n let farmRateInput = createInputControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].farmRate, 'farmRate', 'Farm Rate', {convertFunc:convertFunc,setFunc:setFunc,toolTip:farmToolTip});\r\n autoFarmContent.append(farmRateInput);\r\n\r\n // Auto Refresh\r\n let autoRefreshDesc = 'Automatically reloads the page every 200 seconds. This setting was made due to the modal windows lagging after too many launches. Refreshing will remove this lag.';\r\n let [autoRefreshTitle, autoRefreshContent] = createAutoSettingToggle('autoRefresh', 'Auto Refresh', autoRefreshDesc, false, tab);\r\n let reloadBtnDetails = 'Resets the UI and reloads the backend variables.';\r\n let reloadBtn = $(`<div role=\"button\" class=\"is-primary is-bottom is-small b-tooltip is-animated is-multiline\" data-label=\"${reloadBtnDetails}\"><button class=\"button is-primary\"><span>Reset UI</span></button></div>`);\r\n reloadBtn.on('click', function(e){\r\n if (e.which != 1) {return;}\r\n resetUI();\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"updateSettings\"])();\r\n Object(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"loadSettings\"])();\r\n });\r\n autoRefreshTitle.append(reloadBtn);\r\n\r\n // Auto Prestige\r\n let autoPrestigeDesc = 'Automatically prestiges when the options are availible. Maybe will add min prestige resource gain setting if wanted.';\r\n let [autoPrestigeTitle, autoPrestigeContent] = createAutoSettingToggle('autoPrestige', 'Auto Prestige', autoPrestigeDesc, true, tab);\r\n\r\n let prestige = createDropDownControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].prestige, 'prestige', 'Prestige Choice', {mad:'MAD',bioseed:'Bioseed',blackhole:'Blackhole'});\r\n autoPrestigeContent.append(prestige);\r\n\r\n // Advanced\r\n}\r\n\r\nfunction createAutoSettingEvolutionPage(tab) {\r\n\r\n // Auto Evolution/Challenge\r\n let autoEvolutionDesc = 'Automatically plays the Evolution stage. It will buy the mininum amount of RNA/DNA storage for evolving, as well as automatically purchase challenges.';\r\n let [autoEvolutionTitle, autoEvolutionContent] = createAutoSettingToggle('autoEvolution', 'Auto Evolution', autoEvolutionDesc, true, tab);\r\n\r\n let raceValues = {};\r\n for (let race in window.evolve.races) {\r\n if (race == 'protoplasm' || race == 'junker') {continue;}\r\n raceValues[race] = window.evolve.races[race].name;\r\n }\r\n let raceOption = createDropDownControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].evolution, 'evolution', 'Evolution Decision', raceValues);\r\n autoEvolutionContent.append(raceOption);\r\n autoEvolutionContent.append($('<br></br>'));\r\n\r\n let challengeOption = $('<div style=\"display:flex;\"></div>');\r\n autoEvolutionContent.append(challengeOption);\r\n challengeOption.append($('<h3 class=\"has-text-warning\" style=\"width:12rem;\">Challenges:</h3>'));\r\n let challengeToggles = $('<div></div>');\r\n challengeOption.append(challengeToggles);\r\n for (let i = 0;i < _evolution_js__WEBPACK_IMPORTED_MODULE_3__[\"evoChallengeActions\"].length;i++) {\r\n let toggleVal = _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"][_evolution_js__WEBPACK_IMPORTED_MODULE_3__[\"evoChallengeActions\"][i]];\r\n let toggleId = _evolution_js__WEBPACK_IMPORTED_MODULE_3__[\"evoChallengeActions\"][i];\r\n let str = _evolution_js__WEBPACK_IMPORTED_MODULE_3__[\"evoChallengeActions\"][i].split('-')[1];\r\n let toggleName = str.charAt(0).toUpperCase() + str.slice(1);\r\n let toggle = createCheckBoxControl(toggleVal, toggleId+'_checkbox', toggleName, {path:[_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"], toggleId]});\r\n let toggleDiv = $('<div></div>');\r\n toggleDiv.append(toggle);\r\n challengeToggles.append(toggleDiv);\r\n }\r\n}\r\n\r\nfunction loadEmployUI(content) {\r\n if (content === null || content == undefined) {content = $('#as-autoEmploy-content');}\r\n $('.as-employui').remove();\r\n let i = 0;\r\n let labelDiv = $('<div style=\"display:flex\" class=\"alt market-item as-employui\"></div>');\r\n content.append(labelDiv);\r\n let jobLabel = $('<span class=\"has-text-warning\" style=\"width:12rem;\">Job</span>');\r\n labelDiv.append(jobLabel);\r\n let priorityLabel = $('<span class=\"has-text-warning\" style=\"width:12rem;\">Priority</span>');\r\n labelDiv.append(priorityLabel);\r\n\r\n for (let x in _jobs_js__WEBPACK_IMPORTED_MODULE_10__[\"jobs\"]) {\r\n let id = x;\r\n let div = null;\r\n i += 1;\r\n if (i % 2) {\r\n div = $('<div style=\"display:flex\" class=\"market-item as-employui\"></div>');\r\n } else {\r\n div = $('<div style=\"display:flex\" class=\"alt market-item as-employui\"></div>');\r\n }\r\n content.append(div);\r\n\r\n // Setting Hunter priority\r\n let name = (x == 'free') ? 'Hunter' : _jobs_js__WEBPACK_IMPORTED_MODULE_10__[\"jobs\"][x].name;\r\n let label = $(`<span class=\"has-text-info\" style=\"width:12rem;\">${name}</h3>`);\r\n div.append(label);\r\n\r\n let priorityDiv = $('<div style=\"width:12rem;\"></div>');\r\n div.append(priorityDiv);\r\n let prioritySub = function(mult) {\r\n _jobs_js__WEBPACK_IMPORTED_MODULE_10__[\"jobs\"][id].lowerPriority(mult);\r\n createEmploySettings();\r\n return _jobs_js__WEBPACK_IMPORTED_MODULE_10__[\"jobs\"][id]._priority;\r\n }\r\n let priorityAdd = function(mult) {\r\n _jobs_js__WEBPACK_IMPORTED_MODULE_10__[\"jobs\"][id].higherPriority(mult);\r\n createEmploySettings();\r\n return _jobs_js__WEBPACK_IMPORTED_MODULE_10__[\"jobs\"][id]._priority;\r\n }\r\n let priorityControl = createNumControl(_jobs_js__WEBPACK_IMPORTED_MODULE_10__[\"jobs\"][id]._priority, _jobs_js__WEBPACK_IMPORTED_MODULE_10__[\"jobs\"][id].id+'_priority',prioritySub,priorityAdd);\r\n priorityDiv.append(priorityControl);\r\n }\r\n for (let x in _jobs_js__WEBPACK_IMPORTED_MODULE_10__[\"craftJobs\"]) {\r\n let id = x;\r\n let div = null;\r\n i += 1;\r\n if (i % 2) {\r\n div = $('<div style=\"display:flex\" class=\"market-item as-employui\"></div>');\r\n } else {\r\n div = $('<div style=\"display:flex\" class=\"alt market-item as-employui\"></div>');\r\n }\r\n content.append(div);\r\n\r\n let label = $(`<span class=\"has-text-danger\" style=\"width:12rem;\">${_jobs_js__WEBPACK_IMPORTED_MODULE_10__[\"craftJobs\"][x].name}</h3>`);\r\n div.append(label);\r\n\r\n let priorityDiv = $('<div style=\"width:12rem;\"></div>');\r\n div.append(priorityDiv);\r\n let prioritySub = function(mult) {\r\n _jobs_js__WEBPACK_IMPORTED_MODULE_10__[\"craftJobs\"][id].lowerPriority(mult);\r\n createEmploySettings();\r\n return _jobs_js__WEBPACK_IMPORTED_MODULE_10__[\"craftJobs\"][id]._priority;\r\n }\r\n let priorityAdd = function(mult) {\r\n _jobs_js__WEBPACK_IMPORTED_MODULE_10__[\"craftJobs\"][id].higherPriority(mult);\r\n createEmploySettings();\r\n return _jobs_js__WEBPACK_IMPORTED_MODULE_10__[\"craftJobs\"][id]._priority;\r\n }\r\n let priorityControl = createNumControl(_jobs_js__WEBPACK_IMPORTED_MODULE_10__[\"craftJobs\"][id]._priority, _jobs_js__WEBPACK_IMPORTED_MODULE_10__[\"craftJobs\"][id].id+'_priority',prioritySub,priorityAdd);\r\n priorityDiv.append(priorityControl);\r\n }\r\n}\r\nfunction loadBattleUI(content) {\r\n\r\n // FirstDiv contains Max Campaign and Check Unwounded\r\n\r\n let firstDiv = $('<div style=\"display:flex;\"></div>');\r\n content.append(firstDiv);\r\n\r\n let maxCampaignOptions = {0:'Ambush',1:'Raid',2:'Pillage',3:'Assault',4:'Siege'};\r\n let maxCampaignOption = createDropDownControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].maxCampaign, 'maxCampaign', 'Max Campaign', maxCampaignOptions);\r\n firstDiv.append(maxCampaignOption);\r\n\r\n firstDiv.append($('<div style=\"width:6rem;\"></div>'));\r\n\r\n let woundedCheckToolTip = 'Enable to stop running campaigns if there are wounded soldiers. Disable to run campaigns as soon as there are enough healthy soldiers to fight. Disabling causes more lag due to the algorithm running continously.';\r\n let woundedCheck = createCheckBoxControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].woundedCheck, 'woundedCheck', \"Check Wounded\", {toolTip:woundedCheckToolTip});\r\n firstDiv.append(woundedCheck);\r\n\r\n content.append($('<br></br>'));\r\n\r\n // Minimum Win Rate\r\n\r\n let convertFunc = function(val) {\r\n if (isNaN(val)) {return null;}\r\n val = parseFloat(val);\r\n if (val < 0 || val > 100) {return null;}\r\n return val;\r\n }\r\n let minWinRateInput = createInputControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].minWinRate, 'minWinRate', 'Minimum Win Rate', {convertFunc:convertFunc});\r\n content.append(minWinRateInput);\r\n content.append($('<br></br>'));\r\n\r\n // SecondDiv contains Campaign Fail Interval and Campaign Fail Check\r\n\r\n let secondDiv = $('<div style=\"display:flex;\"></div>');\r\n content.append(secondDiv);\r\n\r\n let campaignFailIntervalInputToolTip = 'Sets the time in seconds to wait after a failed campaign check.';\r\n convertFunc = function(val) {\r\n if (isNaN(val)) {return null;}\r\n val = parseFloat(val);\r\n if (val < 0) {return null;}\r\n return val;\r\n }\r\n let campaignFailIntervalInput = createInputControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].campaignFailInterval, 'campaignFailInterval', 'Campaign Fail Interval', {convertFunc:convertFunc,toolTip:campaignFailIntervalInputToolTip});\r\n secondDiv.append(campaignFailIntervalInput);\r\n\r\n secondDiv.append($('<div style=\"width:6rem;\"></div>'));\r\n\r\n let campaignFailCheckStr = 'Enable to stop Auto Battle for an time if the campaign algorithm fails. This is to stop infinite loops when the algorithm cannot find a optimal battle.';\r\n let campaignFailCheck = createCheckBoxControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].campaignFailCheck, 'campaignFailCheck', \"Fail Check\", {toolTip:campaignFailCheckStr});\r\n secondDiv.append(campaignFailCheck);\r\n}\r\nfunction createAutoSettingJobPage(tab) {\r\n\r\n // Auto Employ\r\n let autoEmployDesc = 'Allocates the population to jobs. May add min/max settings later on.';\r\n let [autoEmployTitle, autoEmployContent] = createAutoSettingToggle('autoEmploy', 'Auto Employ', autoEmployDesc, true, tab, createEmploySettings, removeEmploySettings);\r\n loadEmployUI(autoEmployContent);\r\n\r\n // Auto Battle\r\n let autoBattleDesc = 'Automatically runs battle campaigns. Will choose the highest campaign that allows for the minimum win rate. You can limit the highest campaign as well, as Siege is always less efficient.';\r\n let [autoBattleTitle, autoBattleContent] = createAutoSettingToggle('autoBattle', 'Auto Battle', autoBattleDesc, true, tab);\r\n loadBattleUI(autoBattleContent);\r\n\r\n // Auto Fortress\r\n let autoFortressDesc = 'Manages soldier allocation in the fortress. Currently not yet implemented.';\r\n let [autoFortressTitle, autoFortressContent] = createAutoSettingToggle('autoFortress', 'Auto Fortress', autoFortressDesc, true, tab);\r\n}\r\n\r\nfunction createAutoSettingGovPage(tab) {\r\n\r\n // Auto Tax\r\n let autoTaxDesc = 'Manages the tax rate for optimal morale and taxes.';\r\n let [autoTaxTitle, autoTaxContent] = createAutoSettingToggle('autoTax', 'Auto Tax', autoTaxDesc, true, tab);\r\n\r\n let minMoraleDiv = $('<div style=\"display:flex;\"></div>');\r\n autoTaxContent.append(minMoraleDiv);\r\n let minMoraleTxt = $('<span class=\"has-text-warning\" style=\"width:12rem;\">Minimum Morale:</span>')\r\n minMoraleDiv.append(minMoraleTxt);\r\n\r\n let minMoraleSub = function(mult) {\r\n _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].minimumMorale -= mult;\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].minimumMorale < 50) {_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].minimumMorale = 50;}\r\n return _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].minimumMorale;\r\n }\r\n let minMoraleAdd = function(mult) {\r\n _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].minimumMorale += mult;\r\n return _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].minimumMorale;\r\n }\r\n let minMoraleControl = createNumControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].minimumMorale, \"minimum_morale\", minMoraleSub, minMoraleAdd);\r\n minMoraleDiv.append(minMoraleControl);\r\n\r\n // Auto Government\r\n let autoGovDesc = 'Manages changing government types. Will choose the highest priority government type available.';\r\n let [autoGovTitle, autoGovContent] = createAutoSettingToggle('autoGovernment', 'Auto Government', autoGovDesc, true, tab);\r\n\r\n // Government Priority\r\n let labelDiv = $('<div style=\"display:flex\" class=\"alt market-item\"></div>');\r\n autoGovContent.append(labelDiv);\r\n let govLabel = $('<span class=\"has-text-warning\" style=\"width:12rem;\">Government Types:</span>');\r\n labelDiv.append(govLabel);\r\n let priorityLabel = $('<span class=\"has-text-warning\" style=\"width:12rem;\">Priority</span>');\r\n labelDiv.append(priorityLabel);\r\n for (let i = 0;i < _government_js__WEBPACK_IMPORTED_MODULE_11__[\"governments\"].length;i++) {\r\n let gov = _government_js__WEBPACK_IMPORTED_MODULE_11__[\"governments\"][i];\r\n let div = null;\r\n if (i % 2) {\r\n div = $('<div style=\"display:flex\" class=\"alt market-item\"></div>');\r\n } else {\r\n div = $('<div style=\"display:flex\" class=\"market-item\"></div>');\r\n }\r\n autoGovContent.append(div);\r\n\r\n let label = $(`<span class=\"has-text-danger\" style=\"width:12rem;\">${gov}</span>`);\r\n div.append(label);\r\n\r\n let prioDec = function(mult) {\r\n _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].government[gov].priority -= mult;\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].government[gov].priority < 0) {_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].government[gov].priority = 0;}\r\n return _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].government[gov].priority;\r\n }\r\n let prioInc = function(mult) {\r\n _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].government[gov].priority += mult;\r\n return _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].government[gov].priority;\r\n }\r\n let value = _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].government[gov].priority;\r\n let prioControls = createNumControl(value,gov+\"_priority\",prioDec,prioInc);\r\n div.append(prioControls);\r\n }\r\n\r\n // Auto Unification\r\n\r\n let autoUniDesc = 'Manages spies for unification. Automatically purchases the research as well when available.';\r\n let [autoUniTitle, autoUniContent] = createAutoSettingToggle('autoUnification', 'Auto Unification', autoUniDesc, true, tab);\r\n\r\n let optionToolTips = {};\r\n optionToolTips['reject'] = 'Does not do any espionage, and automatically rejects unity';\r\n optionToolTips['conquest'] = 'Always sabotages and begins sieges when available.';\r\n optionToolTips['money'] = 'Does no espionage.';\r\n optionToolTips['morale'] = 'Always influences until max relations, then incites.';\r\n let unify = createDropDownControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].unification, 'unification', 'Unification', {reject:'Reject Unity',conquest:'Conquest',morale:'Cultural Supremacy',money:'Buy the World'}, {optionToolTips:optionToolTips});\r\n autoUniContent.append(unify);\r\n}\r\n\r\nfunction loadTradeUI(content) {\r\n if (content === null || content == undefined) {content = $('#as-autoTrade-content');}\r\n $('.as-tradeui').remove();\r\n let i = 0;\r\n let labelDiv = $('<div style=\"display:flex\" class=\"alt market-item as-tradeui\"></div>');\r\n content.append(labelDiv);\r\n let resourceLabel = $('<span class=\"has-text-warning\" style=\"width:12rem;\">Tradeable Resource</h3>');\r\n labelDiv.append(resourceLabel);\r\n let buyLabel = $('<span class=\"has-text-warning\" style=\"width:12rem;\">Manual Buy</h3>');\r\n labelDiv.append(buyLabel);\r\n let sellLabel = $('<span class=\"has-text-warning\" style=\"width:12rem;\">Manual Sell</h3>');\r\n labelDiv.append(sellLabel);\r\n let tradeLabel = $('<span class=\"has-text-warning\" style=\"width:12rem;\">Trade Priority</h3>');\r\n labelDiv.append(tradeLabel);\r\n i += 1;\r\n let moneyDiv = $('<div style=\"display:flex\" class=\"market-item as-tradeui\"></div>');\r\n content.append(moneyDiv);\r\n let moneyLabel = $('<span class=\"has-text-advanced\" style=\"width:12rem;\">Money</span>');\r\n moneyDiv.append(moneyLabel);\r\n let padding = $('<div style=\"width:24rem;\"></div>');\r\n moneyDiv.append(padding);\r\n let moneyPrioritySub = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"]['Money'].decBasePriority(mult);\r\n createMarketSettings();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"]['Money'].basePriority;\r\n }\r\n let moneyPriorityAdd = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"]['Money'].incBasePriority(mult);\r\n createMarketSettings();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"]['Money'].basePriority;\r\n }\r\n let moneyPriorityControl = createNumControl(_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"]['Money'].basePriority, _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"]['Money'].id+'_priority',moneyPrioritySub,moneyPriorityAdd);\r\n moneyDiv.append(moneyPriorityControl);\r\n for (var x in _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"]) {\r\n if (!(_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][x] instanceof _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"TradeableResource\"])) {continue;}\r\n let id = x;\r\n let div = null;\r\n i += 1;\r\n if (i % 2) {\r\n div = $('<div style=\"display:flex\" class=\"market-item as-tradeui\"></div>');\r\n } else {\r\n div = $('<div style=\"display:flex\" class=\"alt market-item as-tradeui\"></div>');\r\n }\r\n content.append(div);\r\n\r\n var label = $(`<span class=\"has-text-info\" style=\"width:12rem;\">${_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][x].name}</h3>`);\r\n div.append(label);\r\n\r\n let manualBuy = $('<div style=\"width:12rem;display:flex;\"></div>');\r\n div.append(manualBuy);\r\n\r\n let buyToggleOnChange = function(state) {\r\n let sellToggle = $(`#${id}_autoSell_toggle`);\r\n let otherState = sellToggle.children('input').attr('value') === 'true';\r\n if(state && otherState){\r\n sellToggle.click();\r\n console.log(\"Turning off sellToggle\");\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].autoSell = false;\r\n sellToggle.children('input')[0].setAttribute('value',false);\r\n }\r\n createMarketSettings();\r\n }\r\n let buyToggle = createToggleControl(id+'_autoBuy', '', {path:[_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"], id, 'autoBuy'],small:true,onChange:buyToggleOnChange});\r\n manualBuy.append(buyToggle);\r\n\r\n let buyDec = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].buyDec(mult);\r\n createMarketSettings();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].buyRatio;\r\n }\r\n let buyInc = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].buyInc(mult);\r\n createMarketSettings();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].buyRatio;\r\n }\r\n let buyVal = _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].buyRatio;\r\n let buyControls = createNumControl(buyVal,_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].name+\"_buy_ratio\",buyDec,buyInc);\r\n manualBuy.append(buyControls);\r\n\r\n let manualSell = $('<div style=\"width:12rem;display:flex;\"></div>');\r\n div.append(manualSell);\r\n\r\n let sellToggleOnChange = function(state) {\r\n let buyToggle = $(`#${id}_autoBuy_toggle`);\r\n let otherState = buyToggle.children('input').attr('value') === 'true';\r\n if(state && otherState){\r\n buyToggle.click();\r\n console.log(\"Turning off buyToggle\");\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].autoBuy = false;\r\n buyToggle.children('input')[0].setAttribute('value',false);\r\n }\r\n createMarketSettings();\r\n }\r\n let sellToggle = createToggleControl(id+'_autoSell', '', {path:[_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"], id, 'autoSell'],small:true,onChange:sellToggleOnChange});\r\n manualSell.append(sellToggle);\r\n\r\n let sellDec = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].sellDec(mult);\r\n createMarketSettings();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].sellRatio;\r\n }\r\n let sellInc = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].sellInc(mult);\r\n createMarketSettings();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].sellRatio;\r\n }\r\n let sellVal = _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].sellRatio;\r\n let sellControls = createNumControl(sellVal,_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].name+\"_sell_ratio\",sellDec,sellInc);\r\n manualSell.append(sellControls);\r\n\r\n let prioritySub = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].decBasePriority(mult);\r\n createMarketSettings();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].basePriority;\r\n }\r\n let priorityAdd = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].incBasePriority(mult);\r\n createMarketSettings();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].basePriority;\r\n }\r\n let priorityControl = createNumControl(_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].basePriority, _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].id+'_priority',prioritySub,priorityAdd);\r\n div.append(priorityControl);\r\n }\r\n}\r\nfunction loadStorageUI(content) {\r\n if (content === null || content == undefined) {content = $('#as-autoStorage-content');}\r\n $('.as-storageui').remove();\r\n let i = 0;\r\n let labelDiv = $('<div style=\"display:flex\" class=\"alt market-item as-storageui\"></div>');\r\n content.append(labelDiv);\r\n let resourceLabel = $('<span class=\"has-text-warning\" style=\"width:12rem;\">Storable Resource</span>');\r\n labelDiv.append(resourceLabel);\r\n let priorityLabel = $('<span class=\"has-text-warning\" style=\"width:12rem;\">Priority</span>');\r\n labelDiv.append(priorityLabel);\r\n let minLabel = $('<span class=\"has-text-warning\" style=\"width:12rem;\">Minimum Storage</h3>');\r\n labelDiv.append(minLabel);\r\n let maxLabel = $('<span class=\"has-text-warning\" style=\"width:12rem;\">Maximum Storage</h3>');\r\n labelDiv.append(maxLabel);\r\n\r\n for (var x in _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"]) {\r\n let id = x;\r\n if (!(_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][x].crateable)) {continue;}\r\n let div = null;\r\n i += 1;\r\n if (i % 2) {\r\n div = $('<div style=\"display:flex\" class=\"market-item as-storageui\"></div>');\r\n } else {\r\n div = $('<div style=\"display:flex\" class=\"alt market-item as-storageui\"></div>');\r\n }\r\n content.append(div);\r\n\r\n var label = $(`<span class=\"has-text-info\" style=\"width:12rem;\">${_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][x].name}</h3>`);\r\n div.append(label);\r\n\r\n let storePriorityDiv = $('<div style=\"width:12rem;\"></div>');\r\n div.append(storePriorityDiv);\r\n let storePrioritySub = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].decStorePriority(mult);\r\n createStorageSettings();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].storePriority;\r\n }\r\n let storePriorityAdd = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].incStorePriority(mult);\r\n createStorageSettings();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].storePriority;\r\n }\r\n let storePriorityControl = createNumControl(_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].storePriority, _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].id+'_store_priority',storePrioritySub,storePriorityAdd);\r\n storePriorityDiv.append(storePriorityControl);\r\n\r\n let storeMinDiv = $('<div style=\"width:12rem;\"></div>');\r\n div.append(storeMinDiv);\r\n let storeMinSub = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].decStoreMin(mult);\r\n createStorageSettings();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].storeMin;\r\n }\r\n let storeMinAdd = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].incStoreMin(mult);\r\n createStorageSettings();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].storeMin;\r\n }\r\n let storeMinControl = createNumControl(_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].storeMin, _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].id+'_store_min',storeMinSub,storeMinAdd);\r\n storeMinDiv.append(storeMinControl);\r\n\r\n let storeMaxDiv = $('<div style=\"width:12rem;\"></div>');\r\n div.append(storeMaxDiv);\r\n let storeMaxSub = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].decStoreMax(mult);\r\n createStorageSettings();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].storeMax;\r\n }\r\n let storeMaxAdd = function(mult) {\r\n _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].incStoreMax(mult);\r\n createStorageSettings();\r\n return _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].storeMax;\r\n }\r\n let storeMaxControl = createNumControl(_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].storeMax, _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][id].id+'_store_max',storeMaxSub,storeMaxAdd);\r\n storeMaxDiv.append(storeMaxControl);\r\n }\r\n}\r\nfunction loadEjectorUI(content) {\r\n let labelDiv = $('<div style=\"display:flex\" class=\"alt market-item\"></div>');\r\n content.append(labelDiv);\r\n let resourceLabel = $('<span class=\"has-text-warning\" style=\"width:12rem;\">Ejectable Resource</h3>');\r\n labelDiv.append(resourceLabel);\r\n let enableLabel = $('<span class=\"has-text-warning\" style=\"width:12rem;\">Enable</h3>');\r\n labelDiv.append(enableLabel);\r\n let i = 0;\r\n for (var x in _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"]) {\r\n if (!(_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][x].ejectable)) {continue;}\r\n let div = null;\r\n i += 1;\r\n if (i % 2) {\r\n div = $('<div style=\"display:flex\" class=\"market-item\"></div>');\r\n } else {\r\n div = $('<div style=\"display:flex\" class=\"alt market-item\"></div>');\r\n }\r\n content.append(div);\r\n let label = $(`<span class=\"${_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][x].color}\" style=\"width:12rem;\">${_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][x].name}</h3>`);\r\n div.append(label);\r\n let id = x;\r\n let toggle = createToggleControl(id+'_eject', '', {path:[_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"], id, 'eject'],small:true});\r\n div.append(toggle);\r\n }\r\n}\r\nfunction createAutoSettingResourcePage(tab) {\r\n\r\n // Auto Craft\r\n let autoCraftDesc = 'Crafts resources if the required resources are above 90% full. Only works when Manual Crafting is enabled (disabled in No Craft challenge).';\r\n let [autoCraftTitle, autoCraftContent] = createAutoSettingToggle('autoCraft', 'Auto Craft', autoCraftDesc, true, tab);\r\n let i = 0;\r\n let labelDiv = $('<div style=\"display:flex\" class=\"alt market-item\"></div>');\r\n autoCraftContent.append(labelDiv);\r\n let resourceLabel = $('<span class=\"has-text-warning\" style=\"width:12rem;\">Craftable Resource</h3>');\r\n labelDiv.append(resourceLabel);\r\n let enableLabel = $('<span class=\"has-text-warning\" style=\"width:12rem;\">Enable</h3>');\r\n labelDiv.append(enableLabel);\r\n for (var x in _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"]) {\r\n if (!(_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][x] instanceof _resources_js__WEBPACK_IMPORTED_MODULE_5__[\"CraftableResource\"])) {continue;}\r\n let div = null;\r\n i += 1;\r\n if (i % 2) {\r\n div = $('<div style=\"display:flex\" class=\"market-item\"></div>');\r\n } else {\r\n div = $('<div style=\"display:flex\" class=\"alt market-item\"></div>');\r\n }\r\n autoCraftContent.append(div);\r\n let label = $(`<span class=\"has-text-danger\" style=\"width:12rem;\">${_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"][x].name}</h3>`);\r\n div.append(label);\r\n let id = x;\r\n let toggle = createToggleControl(id+'_enabled', '', {path:[_resources_js__WEBPACK_IMPORTED_MODULE_5__[\"resources\"], id, 'enabled'],small:true});\r\n div.append(toggle);\r\n }\r\n\r\n // Auto Market\r\n let autoMarketDesc = 'Buys/sells resources when they are below/above a certain storage ratio. This also makes sure when buying that the money never goes under the minimum value. Only works when Manual Trading is enabled (disabled in No Trade challenge).';\r\n let [autoMarketTitle, autoMarketContent] = createAutoSettingToggle('autoMarket', 'Auto Market', autoMarketDesc, true, tab, createMarketSettings, removeMarketSettings);\r\n let volumeOption = $('<div style=\"display:flex;\"></div>');\r\n autoMarketContent.append(volumeOption);\r\n autoMarketContent.append($('<br></br>'));\r\n let volumeConvert = function(val) {\r\n val = Object(_utility_js__WEBPACK_IMPORTED_MODULE_1__[\"getRealValue\"])(val);\r\n if (isNaN(val)) {return null;}\r\n if (val <= 0) {return 1;}\r\n if (val > 1000000) {return 1000000;}\r\n return val;\r\n }\r\n let volumeInput = createInputControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].marketVolume, 'marketVolume', 'Market Volume', {convertFunc:volumeConvert});\r\n volumeOption.append(volumeInput);\r\n\r\n let convertFunc = function(val) {\r\n val = Object(_utility_js__WEBPACK_IMPORTED_MODULE_1__[\"getRealValue\"])(val);\r\n if (!isNaN(val)) {\r\n return val;\r\n }\r\n return null;\r\n }\r\n let minMoneyInput = createInputControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].minimumMoney, 'minimumMoney', 'Minimum Money', {convertFunc:convertFunc});\r\n autoMarketContent.append(minMoneyInput);\r\n\r\n // Auto Trade\r\n let autoTradeDesc = 'Allocates trade routes based on the trade priority (as well as Auto Prioritize).';\r\n let [autoTradeTitle, autoTradeContent] = createAutoSettingToggle('autoTrade', 'Auto Trade', autoTradeDesc, true, tab, createTradeSettings, removeTradeSettings);\r\n loadTradeUI(autoTradeContent);\r\n\r\n // Auto Storage\r\n let autoStorageDesc = 'Allocates crates and containers to resources based on priority. Also has a minimum storage setting for steel and other resources that need initial storage.';\r\n let [autoStorageTitle, autoStorageContent] = createAutoSettingToggle('autoStorage', 'Auto Storage', autoStorageDesc, true, tab, createStorageSettings, removeStorageSettings);\r\n loadStorageUI(autoStorageContent);\r\n\r\n // Auto Ejector\r\n let autoEjectorDesc = 'Automatically ejects resources to maximize ejection volume. Full resources will override the enable setting (If a resource is full, it\\'ll be seen as enabled). Enabling a resource will eject the resource until the rate is close to 0.';\r\n let [autoEjectorTitle, autoEjectorContent] = createAutoSettingToggle('autoEjector', 'Auto Ejector', autoEjectorDesc, true, tab, createEjectorSettings, removeEjectorSettings);\r\n loadEjectorUI(autoEjectorContent);\r\n}\r\n\r\nfunction createBuildingSetting(loc, id, name, toolTip) {\r\n let resText = $(`<span class=\"has-text-warning\" style=\"width:12rem;\">${name}:</span>`);\r\n if (toolTip) {\r\n resText.addClass(toolTipClass);\r\n resText.attr(\"data-label\", toolTip);\r\n }\r\n let resSub = function(mult) {\r\n _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"][loc][id] -= mult;\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"][loc][id] < 0) {_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"][loc][id] = 0;}\r\n return _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"][loc][id];\r\n }\r\n let resAdd = function(mult) {\r\n _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"][loc][id] += mult;\r\n return _settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"][loc][id];\r\n }\r\n let resControls = createNumControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"][loc][id], `${loc}_${id}`, resSub, resAdd);\r\n let div = $('<div style=\"display:flex\"></div>').append(resText).append(resControls);\r\n return div;\r\n}\r\nfunction loadSmelterUI(content) {\r\n\r\n let woodControl = createBuildingSetting('smelterSettings', 'Wood', 'Wood Priority');\r\n let coalControl = createBuildingSetting('smelterSettings', 'Coal', 'Coal Priority');\r\n let oilControl = createBuildingSetting('smelterSettings', 'Oil', 'Oil Priority');\r\n content.append(woodControl);\r\n content.append(coalControl);\r\n content.append(oilControl);\r\n content.append($('<br>'));\r\n\r\n let ironControl = createBuildingSetting('smelterSettings', 'Iron', 'Iron Priority');\r\n let steelControl = createBuildingSetting('smelterSettings', 'Steel', 'Steel Priority');\r\n content.append(ironControl);\r\n content.append(steelControl);\r\n}\r\nfunction loadFactoryUI(content) {\r\n\r\n let luxControl = createBuildingSetting('factorySettings', 'Luxury_Goods', 'Luxury Goods Priority');\r\n let alloyControl = createBuildingSetting('factorySettings', 'Alloy', 'Alloy Priority');\r\n let polymerControl = createBuildingSetting('factorySettings', 'Polymer', 'Polymer Priority');\r\n let nanoControl = createBuildingSetting('factorySettings', 'Nano_Tube', 'Nano Tube Priority');\r\n let staneneControl = createBuildingSetting('factorySettings', 'Stanene', 'Stanene Priority');\r\n content.append(luxControl);\r\n content.append(alloyControl);\r\n content.append(polymerControl);\r\n content.append(nanoControl);\r\n content.append(staneneControl);\r\n}\r\nfunction loadDroidUI(content) {\r\n\r\n let adamControl = createBuildingSetting('droidSettings', 'Adamantite', 'Adamantite Priority');\r\n let uranControl = createBuildingSetting('droidSettings', 'Uranium', 'Uranium Priority');\r\n let coalControl = createBuildingSetting('droidSettings', 'Coal', 'Coal Priority');\r\n let alumControl = createBuildingSetting('droidSettings', 'Aluminium', 'Aluminium Priority');\r\n content.append(adamControl);\r\n content.append(uranControl);\r\n content.append(coalControl);\r\n content.append(alumControl);\r\n}\r\nfunction loadGrapheneUI(content) {\r\n\r\n let woodControl = createBuildingSetting('grapheneSettings', 'Wood', 'Wood Priority');\r\n let coalControl = createBuildingSetting('grapheneSettings', 'Coal', 'Coal Priority');\r\n let oilControl = createBuildingSetting('grapheneSettings', 'Oil', 'Oil Priority');\r\n content.append(woodControl);\r\n content.append(coalControl);\r\n content.append(oilControl);\r\n content.append($('<br>'));\r\n}\r\nfunction createAutoSettingBuildingPage(tab) {\r\n\r\n // Auto Support\r\n let autoSupportDesc = 'Powers buildings and allocates support. Power Priority can be changed in the Priority Tab.';\r\n let [autoSupportTitle, autoSupportContent] = createAutoSettingToggle('autoSupport', 'Auto Support', autoSupportDesc, false, tab);\r\n\r\n // Auto Smelter\r\n let autoSmelterDesc = \"Allocates the smelter building. The priorities determine how much each resource is weighted. Can choose whether to depend on the Auto Priority queue or just the priorities here.\";\r\n let [autoSmelterTitle, autoSmelterContent] = createAutoSettingToggle('autoSmelter', 'Auto Smelter', autoSmelterDesc, true, tab);\r\n loadSmelterUI(autoSmelterContent);\r\n\r\n let smelterPQToolTip = 'Enable to make Auto Smelter depend on the Auto Priority queue.';\r\n let smelterPQCheck = createCheckBoxControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].smelterSettings.pqCheck, 'smelterPQCheck', \"Auto Priority\", {path:[_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"], 'smelterSettings', 'pqCheck'],toolTip:smelterPQToolTip});\r\n autoSmelterTitle.append(smelterPQCheck);\r\n\r\n // Auto Factory\r\n let autoFactoryDesc = \"Allocates the factory building. The priorities determine how much each resource is weighted. Can choose whether to depend on the Auto Priority queue or just the priorities here.\";\r\n let [autoFactoryTitle, autoFactoryContent] = createAutoSettingToggle('autoFactory', 'Auto Factory', autoFactoryDesc, true, tab);\r\n loadFactoryUI(autoFactoryContent);\r\n\r\n let factoryPQToolTip = 'Enable to make Auto Factory depend on the Auto Priority queue.';\r\n let factoryPQCheck = createCheckBoxControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].factorySettings.pqCheck, 'factoryPQCheck', \"Auto Priority\", {path:[_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"], 'factorySettings', 'pqCheck'],toolTip:factoryPQToolTip});\r\n autoFactoryTitle.append(factoryPQCheck);\r\n\r\n // Auto Mining Droid\r\n let autoDroidDesc = \"Allocates mining droids. The priorities determine how much each resource is weighted. Can choose whether to depend on the Auto Priority queue or just the priorities here.\";\r\n let [autoDroidTitle, autoDroidContent] = createAutoSettingToggle('autoDroid', 'Auto Mining Droid', autoDroidDesc, true, tab);\r\n loadDroidUI(autoDroidContent);\r\n\r\n let droidPQToolTip = 'Enable to make Auto Droid depend on the Auto Priority queue.';\r\n let droidPQCheck = createCheckBoxControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].droidSettings.pqCheck, 'droidPQCheck', \"Auto Priority\", {path:[_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"], 'droidSettings', 'pqCheck'],toolTip:droidPQToolTip});\r\n autoDroidTitle.append(droidPQCheck);\r\n\r\n // Auto Graphene Plant\r\n let autoGrapheneDesc = \"Allocates graphene plants. The priorities determine how much each resource is weighted. Can choose whether to depend on the Auto Priority queue or just the priorities here.\";\r\n let [autoGrapheneTitle, autoGrapheneContent] = createAutoSettingToggle('autoGraphene', 'Auto Graphene Plants', autoGrapheneDesc, true, tab);\r\n loadGrapheneUI(autoGrapheneContent);\r\n\r\n let graphenePQToolTip = 'Enable to make Auto Graphene depend on the Auto Priority queue.';\r\n let graphenePQCheck = createCheckBoxControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].grapheneSettings.pqCheck, 'graphenePQCheck', \"Auto Priority\", {path:[_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"], 'grapheneSettings', 'pqCheck'],toolTip:graphenePQToolTip});\r\n autoGrapheneTitle.append(graphenePQCheck);\r\n}\r\n\r\nfunction createAutoSettingResearchPage(tab) {\r\n\r\n // Research Settings\r\n\r\n let autoResearchDesc = 'Controls which research branches to take. Turning this off will have irregular research purchases.';\r\n let [autoResearchTitle, autoResearchContent] = createAutoSettingToggle('autoResearch', 'Auto Research', autoResearchDesc, true, tab);\r\n // Creating Fanaticism/Anthropology choice\r\n let religionStr1 = 'This setting chooses between Fanaticism and Anthropology. This setting becomes obsolete after getting Transcendence.';\r\n let religionDetails1 = $(`<div><span>${religionStr1}</span></div>`);\r\n autoResearchContent.append(religionDetails1);\r\n let religion1 = createDropDownControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].religion1, 'religion1', 'Religion Tier 1', {fanaticism:'Fanaticism',anthropology:'Anthropology'});\r\n autoResearchContent.append(religion1);\r\n\r\n // Creating Fanaticism/Anthropology choice\r\n let religionStr2 = 'This setting chooses between Study and Deify Ancients.';\r\n let religionDetails2 = $(`<div><span>${religionStr2}</span></div>`);\r\n autoResearchContent.append(religionDetails2);\r\n let religion2 = createDropDownControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].religion2, 'religion2', 'Religion Tier 2', {study:'Study Ancients',deify:'Deify Ancients'});\r\n autoResearchContent.append(religion2);\r\n}\r\n\r\nfunction nameCompare(a, b) {\r\n return a.name.localeCompare(b.name);\r\n}\r\nfunction priorityCompare(a, b) {\r\n return b.basePriority - a.basePriority;\r\n}\r\nfunction powerCompare(a, b) {\r\n let bPP = (b instanceof _buildings_js__WEBPACK_IMPORTED_MODULE_9__[\"PoweredBuilding\"]) ? b.powerPriority : -1;\r\n let aPP = (a instanceof _buildings_js__WEBPACK_IMPORTED_MODULE_9__[\"PoweredBuilding\"]) ? a.powerPriority : -1;\r\n return bPP - aPP;\r\n}\r\nfunction getActionFromId(id) {\r\n let [a, t] = id.split('-');\r\n let action = null;\r\n if (t === undefined) {\r\n if (a == \"Container\" || a == \"Crate\") {\r\n action = _miscactions_js__WEBPACK_IMPORTED_MODULE_7__[\"storages\"][a];\r\n } else if (a == 'Gene' || a == 'Mercenary' || a == 'FortressMercenary' || a == 'Sacrifice') {\r\n action = _miscactions_js__WEBPACK_IMPORTED_MODULE_7__[\"miscActions\"][a];\r\n } else {\r\n action = _miscactions_js__WEBPACK_IMPORTED_MODULE_7__[\"arpas\"][a];\r\n }\r\n } else {\r\n if (a == 'tech') {\r\n action = _researches_js__WEBPACK_IMPORTED_MODULE_8__[\"researches\"][id];\r\n } else {\r\n action = _buildings_js__WEBPACK_IMPORTED_MODULE_9__[\"buildings\"][id];\r\n }\r\n }\r\n return action;\r\n}\r\nfunction updatePriorityList() {\r\n console.log(\"Updating Priority List\");\r\n let search = $('#priorityInput')[0];\r\n let sort = $('#prioritySort')[0];\r\n let priorityList = $('#priorityList')[0];\r\n\r\n // Finding search parameters\r\n let terms = search.value.split(' ');\r\n let names = [];\r\n let locs = [];\r\n let res = [];\r\n for (let i = 0;i < terms.length;i++) {\r\n let locCheck = /loc:(.+)/.exec(terms[i]);\r\n let resCheck = /res:(.+)/.exec(terms[i]);\r\n //console.log(terms[i], tagCheck, resCheck);\r\n if (locCheck !== null) {\r\n locs.push(locCheck[1]);\r\n } else if (resCheck !== null) {\r\n res.push(resCheck[1]);\r\n } else {\r\n names.push(terms[i]);\r\n }\r\n }\r\n\r\n // Sorting if necessary\r\n let sortMethod = null;\r\n if (sort.value == 'name') {\r\n sortMethod = nameCompare;\r\n } else if (sort.value == 'priority') {\r\n sortMethod = priorityCompare;\r\n } else if (sort.value == 'powerPriority') {\r\n sortMethod = powerCompare;\r\n }\r\n if (sortMethod !== null) {\r\n console.log(\"Sorting by\", sort.value);\r\n var newPriorityList = priorityList.cloneNode(false);\r\n\r\n let header = priorityList.childNodes[0];\r\n // Add all lis to an array\r\n var divs = [];\r\n for(let i = 1;i < priorityList.childNodes.length;i++){\r\n divs.push(priorityList.childNodes[i]);\r\n }\r\n // Sort the lis in descending order\r\n divs.sort(function(a, b){\r\n let bAction = getActionFromId(b.id.split('=')[0]);\r\n let aAction = getActionFromId(a.id.split('=')[0]);\r\n return sortMethod(aAction, bAction);\r\n });\r\n console.log(divs[0]);\r\n\r\n // Add them into the ul in order\r\n newPriorityList.appendChild(header);\r\n for (let i = 0; i < divs.length; i++) {\r\n newPriorityList.appendChild(divs[i]);\r\n }\r\n priorityList.parentNode.replaceChild(newPriorityList, priorityList);\r\n priorityList = newPriorityList;\r\n }\r\n\r\n for (let i = 1;i < priorityList.children.length;i++) {\r\n // Getting action\r\n let div = priorityList.children[i];\r\n let id = div.id.split('=')[0];\r\n let action = getActionFromId(id);\r\n\r\n // Checking if available\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].showAll && !action.unlocked) {\r\n div.style.display = 'none';\r\n continue;\r\n }\r\n // Checking if type shown\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].showBuilding && action instanceof _buildings_js__WEBPACK_IMPORTED_MODULE_9__[\"Building\"] && !(action instanceof _miscactions_js__WEBPACK_IMPORTED_MODULE_7__[\"ArpaAction\"])) {\r\n div.style.display = 'none';\r\n continue;\r\n }\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].showResearch && action instanceof _researches_js__WEBPACK_IMPORTED_MODULE_8__[\"Research\"]) {\r\n div.style.display = 'none';\r\n continue;\r\n }\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].showMisc && (action instanceof _miscactions_js__WEBPACK_IMPORTED_MODULE_7__[\"MiscAction\"] || action instanceof _miscactions_js__WEBPACK_IMPORTED_MODULE_7__[\"ArpaAction\"])) {\r\n div.style.display = 'none';\r\n continue;\r\n }\r\n // Searching for if any names appear in building name\r\n if (names.length != 0) {\r\n let pass = false;\r\n for (let i = 0;i < names.length;i++) {\r\n var name;\r\n if (action.name !== null) {\r\n name = action.name;\r\n } else {\r\n name = action.id.split('-')[1];\r\n }\r\n if (name.toLowerCase().indexOf(names[i]) >= 0) {\r\n pass = true;\r\n break;\r\n }\r\n }\r\n if (!pass) {\r\n div.style.display = 'none';\r\n continue;\r\n }\r\n }\r\n // Searching for if any tags appear in research name\r\n if (locs.length != 0) {\r\n let pass = false;\r\n for (let i = 0;i < locs.length;i++) {\r\n if (action.loc.includes(locs[i])) {\r\n pass = true;\r\n break;\r\n }\r\n }\r\n if (!pass) {\r\n div.style.display = 'none';\r\n continue;\r\n }\r\n }\r\n // Searching for if any resources appear in research requirements\r\n if (res.length != 0 && action.res !== null) {\r\n let pass = false;\r\n for (let i = 0;i < res.length;i++) {\r\n console.log(action.id, res, action.def.cost, action.getResDep(res[i]));\r\n if (action.getResDep(res[i]) !== null && action.getResDep(res[i]) > 0) {\r\n pass = true;\r\n break;\r\n }\r\n }\r\n if (!pass) {\r\n div.style.display = 'none';\r\n continue;\r\n }\r\n }\r\n\r\n div.style.display = 'flex';\r\n\r\n }\r\n\r\n // Set focus back on search\r\n search.focus();\r\n}\r\nfunction drawBuildingItem(building, buildingDiv) {\r\n\r\n // Building At Least\r\n let atLeastSub = function(mult) {\r\n building.decAtLeast(mult);\r\n return building.atLeast;\r\n }\r\n let atLeastAdd = function(mult) {\r\n building.incAtLeast(mult);\r\n return building.atLeast;\r\n }\r\n let atLeastControls = createNumControl(building.atLeast, building.id+'-min', atLeastSub, atLeastAdd);\r\n let atLeastDiv = $('<div style=\"width:10%;\" title=\"'+building.id+' Minimum\"></div>');\r\n atLeastDiv.append(atLeastControls);\r\n buildingDiv.append(atLeastDiv);\r\n\r\n // Building Limit\r\n let limSub = function(mult) {\r\n building.decLimit(mult);\r\n return building.limit;\r\n }\r\n let limAdd = function(mult) {\r\n building.incLimit(mult);\r\n return building.limit;\r\n }\r\n let limControls = createNumControl(building.limit, building.id+'-max', limSub, limAdd);\r\n let limDiv = $('<div style=\"width:10%;\" title=\"'+building.id+' Maximum\"></div>');\r\n limDiv.append(limControls);\r\n buildingDiv.append(limDiv);\r\n\r\n // Building SoftCap\r\n let softCapSub = function(mult) {\r\n building.decSoftCap(mult);\r\n return building.softCap;\r\n }\r\n let softCapAdd = function(mult) {\r\n building.incSoftCap(mult);\r\n return building.softCap;\r\n }\r\n let softCapControls = createNumControl(building.softCap, building.id+'-softcap', softCapSub, softCapAdd);\r\n let softCapDiv = $('<div style=\"width:10%;\" title=\"'+building.id+' Soft Cap\"></div>');\r\n softCapDiv.append(softCapControls);\r\n buildingDiv.append(softCapDiv);\r\n\r\n // Power Priority\r\n if (building instanceof _buildings_js__WEBPACK_IMPORTED_MODULE_9__[\"PoweredBuilding\"]) {\r\n let powerSub = function(mult) {\r\n building.decPowerPriority(mult);\r\n return building.powerPriority;\r\n }\r\n let powerAdd = function(mult) {\r\n building.incPowerPriority(mult);\r\n return building.powerPriority;\r\n }\r\n let powerControls = createNumControl(building.powerPriority, building.id+'-power-prio', powerSub, powerAdd);\r\n let powerDiv = $('<div style=\"width:10%;\" title=\"'+building.id+' Power Priority\"></div>');\r\n powerDiv.append(powerControls);\r\n buildingDiv.append(powerDiv);\r\n }\r\n}\r\nfunction drawArpaItem(arpa, arpaDiv) {\r\n\r\n // Adding filler\r\n arpaDiv.append($('<div style=\"width:10%;\"></div>'));\r\n\r\n // Arpa Increments\r\n let sizeSub = function(mult) {\r\n arpa.decSize();\r\n return arpa.size;\r\n }\r\n let sizeAdd = function(mult) {\r\n arpa.incSize();\r\n return arpa.size;\r\n }\r\n\r\n let toolTip = 'Determines what increment size to build. Used in case 25x is beyond storage cap.';\r\n let sizeControls = createNumControl(arpa.size, arpa.id+'-size', sizeSub, sizeAdd, {toolTip:toolTip});\r\n let sizeDiv = $('<div style=\"width:10%;\"></div>');\r\n sizeDiv.append(sizeControls);\r\n arpaDiv.append(sizeDiv);\r\n}\r\nfunction drawStorageItem(storage, storageDiv) {\r\n\r\n // Adding filler\r\n storageDiv.append($('<div style=\"width:40%;\"></div>'));\r\n\r\n // Arpa Increments\r\n let sizeSub = function(mult) {\r\n storage.decSize(mult);\r\n return storage.size;\r\n }\r\n let sizeAdd = function(mult) {\r\n storage.incSize(mult);\r\n return storage.size;\r\n }\r\n\r\n let toolTip = 'Determines how many to build each time.';\r\n let sizeControls = createNumControl(storage.size, storage.id+'-size', sizeSub, sizeAdd, {toolTip:toolTip});\r\n let sizeDiv = $('<div style=\"width:10%;\"></div>');\r\n sizeDiv.append(sizeControls);\r\n storageDiv.append(sizeDiv);\r\n}\r\nfunction drawMercenaryItem(action, actionDiv) {\r\n\r\n // Adding filler\r\n actionDiv.append($('<div style=\"width:40%;\"></div>'));\r\n\r\n // Increments\r\n let priceSub = function(mult) {\r\n action.decMaxPrice(mult);\r\n return action.maxPrice;\r\n }\r\n let priceAdd = function(mult) {\r\n action.incMaxPrice(mult);\r\n return action.maxPrice;\r\n }\r\n\r\n let toolTip = 'Determines the max price to buy mercenaries. Set to -1 to ignore.';\r\n let priceControls = createNumControl(action.maxPrice, action.id+'-maxPrice', priceSub, priceAdd, {toolTip:toolTip});\r\n let priceDiv = $('<div style=\"width:10%;\"></div>');\r\n priceDiv.append(priceControls);\r\n actionDiv.append(priceDiv);\r\n}\r\nfunction populatePriorityList() {\r\n let priorityList = $('#priorityList')[0];\r\n var x;\r\n var name;\r\n let temp_l = [];\r\n for (x in _buildings_js__WEBPACK_IMPORTED_MODULE_9__[\"buildings\"]) {temp_l.push(_buildings_js__WEBPACK_IMPORTED_MODULE_9__[\"buildings\"][x]);}\r\n for (x in _researches_js__WEBPACK_IMPORTED_MODULE_8__[\"researches\"]) {temp_l.push(_researches_js__WEBPACK_IMPORTED_MODULE_8__[\"researches\"][x]);}\r\n for (x in _miscactions_js__WEBPACK_IMPORTED_MODULE_7__[\"arpas\"]) {temp_l.push(_miscactions_js__WEBPACK_IMPORTED_MODULE_7__[\"arpas\"][x]);}\r\n for (x in _miscactions_js__WEBPACK_IMPORTED_MODULE_7__[\"storages\"]) {temp_l.push(_miscactions_js__WEBPACK_IMPORTED_MODULE_7__[\"storages\"][x]);}\r\n for (x in _miscactions_js__WEBPACK_IMPORTED_MODULE_7__[\"miscActions\"]) {temp_l.push(_miscactions_js__WEBPACK_IMPORTED_MODULE_7__[\"miscActions\"][x]);}\r\n while(priorityList.childNodes.length != 1) {\r\n priorityList.removeChild(priorityList.lastChild);\r\n }\r\n // Drawing buildings into list\r\n for (let i = 0;i < temp_l.length;i++) {\r\n let action = temp_l[i];\r\n var actionDiv;\r\n if (i % 2) {\r\n actionDiv = $('<div id=\"'+action.id+'=prio\" style=\"display:flex\" class=\"market-item\"></div>');\r\n } else {\r\n actionDiv = $('<div id=\"'+action.id+'=prio\" style=\"display:flex\" class=\"resource alt market-item\"></div>');\r\n }\r\n priorityList.appendChild(actionDiv[0]);\r\n\r\n // Name Label\r\n if (action.name === null) {\r\n name = action.id.split('-')[1];\r\n } else {\r\n name = action.name;\r\n }\r\n let nameDiv = $(`<span class=\"${toolTipClass}\" style=\"width:20%;\" data-label=\"Id:${action.id}, Loc:${action.loc[action.loc.length-1]}\">${name}</span>`);\r\n nameDiv[0].classList.add(action.color);\r\n actionDiv.append(nameDiv);\r\n\r\n // Priority\r\n let prioSub = function(mult) {\r\n action.decBasePriority(mult);\r\n return action.basePriority;\r\n }\r\n let prioAdd = function(mult) {\r\n action.incBasePriority(mult);\r\n return action.basePriority;\r\n }\r\n let settingVal = action.basePriority;\r\n let prioControls = createNumControl(settingVal,\"action_\"+action.id+\"_priority\",prioSub,prioAdd);\r\n let prioDiv = $('<div style=\"width:10%;\" title=\"'+action.id+' Priority\"></div>');\r\n prioDiv.append(prioControls);\r\n actionDiv.append(prioDiv);\r\n\r\n // Enable Toggle\r\n let enableDiv = $('<div style=\"width:10%;\" title=\"'+action.id+' Enabled\"></div>');\r\n actionDiv.append(enableDiv);\r\n let toggle = createToggleControl(action.id+'_enabled', '', {path:[action, 'enabled'],small:true});\r\n enableDiv.append(toggle);\r\n\r\n if (action instanceof _buildings_js__WEBPACK_IMPORTED_MODULE_9__[\"Building\"]) {\r\n drawBuildingItem(action,actionDiv);\r\n }\r\n\r\n if (action instanceof _miscactions_js__WEBPACK_IMPORTED_MODULE_7__[\"ArpaAction\"]) {\r\n drawArpaItem(action,actionDiv);\r\n }\r\n\r\n if (action instanceof _miscactions_js__WEBPACK_IMPORTED_MODULE_7__[\"StorageAction\"]) {\r\n drawStorageItem(action,actionDiv);\r\n }\r\n\r\n if (action instanceof _miscactions_js__WEBPACK_IMPORTED_MODULE_7__[\"MercenaryAction\"]) {\r\n drawMercenaryItem(action,actionDiv);\r\n }\r\n }\r\n}\r\nfunction createPriorityList(settingsTab) {\r\n // Creation Priority List\r\n let priorityLabel = $('<div><h3 class=\"name has-text-warning\" title=\"Set the Priority settings\">Actions:</h3></div></br>');\r\n settingsTab.append(priorityLabel);\r\n let prioritySettingsDiv = $('<div id=\"prioritySettingsDiv\" style=\"overflow:auto\"></div>');\r\n let prioritySettingsLeft = $('<div id=\"prioritySettingsLeft\" style=\"float:left\"></div>');\r\n let prioritySettingsRight = $('<div id=\"prioritySettingsRight\" style=\"float:right\"></div>');\r\n\r\n let topLeft = $('<div id=\"prioritySettingsTopLeft\"></div>');\r\n let bottomLeft = $('<div id=\"prioritySettingsBottomLeft\"></div>');\r\n let topRight = $('<div id=\"prioritySettingsTopRight\" style=\"float:right\"></div>');\r\n let bottomRight = $('<div id=\"prioritySettingsBottomRight\"></div>');\r\n let search = $('<input type=\"text\" id=\"priorityInput\" placeholder=\"Search for actions (ex: \\'iron loc:city res:money\\')\" style=\"width:20rem;\">');\r\n search.on('input', updatePriorityList);\r\n let sortLabel = $('<span style=\"padding-left:20px;padding-right:20px;\">Sort:</span>');\r\n let sort = $('<select style=\"width:110px;\" id=\"prioritySort\"><option value=\"none\">None</option><option value=\"name\">Name</option><option value=\"priority\">Priority</option><option value=\"powerPriority\">Power Priority</option></select>');\r\n sort.on('change', updatePriorityList);\r\n topLeft.append(search).append(sortLabel).append(sort);\r\n\r\n let showAll = createCheckBoxControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].showAll, 'showAll', 'Show All', {enabledCallBack:updatePriorityList, disabledCallBack:updatePriorityList});\r\n let showBuilding = createCheckBoxControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].showBuilding, 'showBuilding', 'Show Buildings', {enabledCallBack:updatePriorityList, disabledCallBack:updatePriorityList});\r\n let showResearch = createCheckBoxControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].showResearch, 'showResearch', 'Show Researches', {enabledCallBack:updatePriorityList, disabledCallBack:updatePriorityList});\r\n let showMisc = createCheckBoxControl(_settings_js__WEBPACK_IMPORTED_MODULE_2__[\"settings\"].showMisc, 'showMisc', 'Show Misc.', {enabledCallBack:updatePriorityList, disabledCallBack:updatePriorityList});\r\n bottomLeft.append(showAll).append(showBuilding).append(showResearch).append(showMisc);\r\n\r\n let enableLabel = $('<span style=\"padding-right:10px;\">Enable:</span>');\r\n let enableAllBtn = $('<a class=\"button is-dark is-small\" id=\"enable-all-btn\"><span>All</span></a>');\r\n enableAllBtn.on('click', function(e){\r\n if (e.which != 1) {return;}\r\n let priorityList = $('#priorityList')[0];\r\n for (let i = 1;i < priorityList.childNodes.length;i++) {\r\n getActionFromId(priorityList.childNodes[i].id.split('=')[0]).enabled = true;\r\n }\r\n populatePriorityList();\r\n updatePriorityList();\r\n });\r\n let enableVisBtn = $('<a class=\"button is-dark is-small\" id=\"enable-vis-btn\"><span>Visible</span></a>');\r\n enableVisBtn.on('click', function(e){\r\n if (e.which != 1) {return;}\r\n let priorityList = $('#priorityList')[0];\r\n for (let i = 1;i < priorityList.childNodes.length;i++) {\r\n if (priorityList.childNodes[i].style.display !== 'none') {\r\n getActionFromId(priorityList.childNodes[i].id.split('=')[0]).enabled = true;\r\n }\r\n }\r\n populatePriorityList();\r\n updatePriorityList();\r\n });\r\n topRight.append(enableLabel).append(enableAllBtn).append(enableVisBtn);\r\n\r\n let disableLabel = $('<span style=\"padding-right:10px;\">Disable:</span>');\r\n let disableAllBtn = $('<a class=\"button is-dark is-small\" id=\"disable-all-btn\"><span>All</span></a>');\r\n disableAllBtn.on('click', function(e){\r\n if (e.which != 1) {return;}\r\n let priorityList = $('#priorityList')[0];\r\n for (let i = 1;i < priorityList.childNodes.length;i++) {\r\n getActionFromId(priorityList.childNodes[i].id.split('=')[0]).enabled = false;\r\n }\r\n populatePriorityList();\r\n updatePriorityList();\r\n });\r\n let disableVisBtn = $('<a class=\"button is-dark is-small\" id=\"disable-vis-btn\"><span>Visible</span></a>');\r\n disableVisBtn.on('click', function(e){\r\n if (e.which != 1) {return;}\r\n let priorityList = $('#priorityList')[0];\r\n for (let i = 1;i < priorityList.childNodes.length;i++) {\r\n if (priorityList.childNodes[i].style.display !== 'none') {\r\n getActionFromId(priorityList.childNodes[i].id.split('=')[0]).enabled = false;\r\n }\r\n }\r\n populatePriorityList();\r\n updatePriorityList();\r\n });\r\n bottomRight.append(disableLabel).append(disableAllBtn).append(disableVisBtn);\r\n\r\n prioritySettingsLeft.append(topLeft).append(bottomLeft);\r\n prioritySettingsRight.append(topRight).append(bottomRight);\r\n prioritySettingsDiv.append(prioritySettingsLeft).append(prioritySettingsRight);\r\n settingsTab.append(prioritySettingsDiv);\r\n\r\n let priorityList = $('<div id=\"priorityList\"></div>');\r\n let priorityListLabel = $(`<div style=\"display:flex;\">\r\n <div style=\"width:20%;text-align:left;padding-left:1rem;\"><span class=\"name has-text-warning ${toolTipClass}\" data-label=\"Action Name. Can be lowercase id if not currently available\">Action</span></div>\r\n <div style=\"width:10%;text-align:center;padding-left:1rem;\"><span class=\"name has-text-warning ${toolTipClass}\" data-label=\"Sets the priority of this action\">Priority</span></div>\r\n <div style=\"width:10%;text-align:center;padding-left:1rem;\"><span class=\"name has-text-warning ${toolTipClass}\" data-label=\"Enables this action for being automatically taken\">Enabled</span></div>\r\n <div style=\"width:10%;text-align:center;padding-left:1rem;\"><span class=\"name has-text-warning ${toolTipClass}\" data-label=\"Will focus on buying this amount of this building before anything else.\">Min</span></div>\r\n <div style=\"width:10%;text-align:center;padding-left:1rem;\"><span class=\"name has-text-warning ${toolTipClass}\" data-label=\"Will stop building this building after reaching this limit\">Max</span></div>\r\n <div style=\"width:10%;text-align:center;padding-left:1rem;\"><span class=\"name has-text-warning ${toolTipClass}\" data-label=\"Will softcap this building after reaching this limit, however will still build if resources full\">Soft Cap</span></div>\r\n <div style=\"width:10%;text-align:center;padding-left:1rem;\"><span class=\"name has-text-warning ${toolTipClass}\" data-label=\"Sets the priority for powering this building\">Power</span></div>\r\n <div style=\"width:10%;text-align:center;padding-left:1rem;\"><span class=\"name has-text-warning ${toolTipClass}\" data-label=\"Special settings for this action. Hover over for details.\">Special</span></div>\r\n </div>`);\r\n priorityList.append(priorityListLabel);\r\n settingsTab.append(priorityList);\r\n populatePriorityList();\r\n updatePriorityList();\r\n}\r\nfunction createAutoSettingPriorityPage(tab) {\r\n\r\n // Auto Priority\r\n let autoPriorityDesc = 'Main Priority System. Creates a priority queue for all the buildings/research/misc. The priority queue can also be used to manage allocation for other settings (smelter, trade, etc). This will probably be heavily reworked in the future.';\r\n let [autoPriorityTitle, autoPriorityContent] = createAutoSettingToggle('autoPriority', 'Auto Priority', autoPriorityDesc, false, tab);\r\n\r\n createPriorityList(tab);\r\n}\r\n\r\nfunction createAutoLog() {\r\n let autolog = $('<div id=\"autolog\" class=\"msgQueue right resource alt as-autolog\"></div>');\r\n $('#queueColumn').append(autolog);\r\n}\r\n\r\nfunction createScriptWatermark() {\r\n let watermark = $(`<div id=\"as-watermark\" style=\"text-align:center\"><span>Evolve AutoScript by HLXII - Version <a href=\"${_main_js__WEBPACK_IMPORTED_MODULE_0__[\"url\"]}\">${_main_js__WEBPACK_IMPORTED_MODULE_0__[\"version\"]}</a></span></div>`);\r\n $('#resources').append(watermark);\r\n watermark = $(`<div id=\"as-watermark-2\" style=\"text-align:center\"><span>Working for Game Version ${_main_js__WEBPACK_IMPORTED_MODULE_0__[\"workingVersion\"]}</span></div>`);\r\n $('#resources').append(watermark);\r\n}\r\n\n\n//# sourceURL=webpack:///./src/ui.js?");
/***/ }),
/***/ "./src/utility.js":
/*!************************!*\
!*** ./src/utility.js ***!
\************************/
/*! exports provided: sleep, getMultiplier, prioCompare, oldAllocate, allocate, messageQueue, getTotalGameDays, getYear, getDay, getLunarPhase, getRace, disableMult, keyMult, getRealValue, inEvolution, civicsOn, getTab, perkUnlocked, achievementUnlocked, getMinMoney */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sleep\", function() { return sleep; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getMultiplier\", function() { return getMultiplier; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"prioCompare\", function() { return prioCompare; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"oldAllocate\", function() { return oldAllocate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"allocate\", function() { return allocate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"messageQueue\", function() { return messageQueue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getTotalGameDays\", function() { return getTotalGameDays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getYear\", function() { return getYear; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDay\", function() { return getDay; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLunarPhase\", function() { return getLunarPhase; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getRace\", function() { return getRace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"disableMult\", function() { return disableMult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keyMult\", function() { return keyMult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getRealValue\", function() { return getRealValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"inEvolution\", function() { return inEvolution; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"civicsOn\", function() { return civicsOn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getTab\", function() { return getTab; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"perkUnlocked\", function() { return perkUnlocked; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"achievementUnlocked\", function() { return achievementUnlocked; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getMinMoney\", function() { return getMinMoney; });\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./settings.js */ \"./src/settings.js\");\n/* harmony import */ var _resources_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./resources.js */ \"./src/resources.js\");\n\r\n\r\n\r\n// async function for sleeping\r\nfunction sleep(ms) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n}\r\n\r\n// Gets the multiplier on the resource\r\n// 'Global' returns the global multiplier\r\nfunction getMultiplier(res) {\r\n let multiplier = 1;\r\n for (let val in window.evolve.breakdown.p[res]) {\r\n let data = window.evolve.breakdown.p[res][val];\r\n if (data[data.length-1] == '%') {\r\n multiplier *= 1 + (+data.substring(0, data.length - 1)/100)\r\n }\r\n }\r\n return multiplier;\r\n}\r\n\r\nfunction prioCompare(a, b) {\r\n return b.priority - a.priority;\r\n}\r\n\r\nfunction oldAllocate(totalNum,priorities,ratios,args) {\r\n args = args || {};\r\n let allocationList = [];\r\n let curNum = [];\r\n let totalAllocated = 0;\r\n for (let i = 0;i < priorities.length;i++) {curNum.push(0);}\r\n for (let i = 0;i < totalNum;i++) {\r\n let total = i+1;\r\n let error = null;\r\n let choice = null;\r\n for (let j = 0;j < priorities.length;j++) {\r\n // Ignoring zero priority zero ratio choices\r\n if (priorities[j] == 0 || ratios[j] == 0) {continue;}\r\n\r\n // Checking maxes\r\n if (args.hasOwnProperty('max') && args.max[j] != -1 && curNum[j] >= args.max[j]) {continue;}\r\n\r\n // Checking requirement function\r\n if (args.hasOwnProperty('requireFunc') && !args.requireFunc(j, curNum[j])) {continue;}\r\n\r\n // Checking mins\r\n if (args.hasOwnProperty('min') && curNum[j] < args.min[j]) {\r\n choice = j;\r\n break;\r\n }\r\n\r\n // Finding error differential\r\n let tempError = (((curNum[j]+1) / total) - ratios[j]) ** 2;\r\n if (total != 1) {tempError -= ((curNum[j] / (total-1)) - ratios[j]) ** 2;}\r\n\r\n if (error === null || tempError < error) {\r\n error = tempError;\r\n choice = j;\r\n }\r\n }\r\n if (choice === null) {\r\n break;\r\n }\r\n allocationList[i] = choice;\r\n curNum[choice] += 1;\r\n totalAllocated += 1;\r\n if (args.hasOwnProperty('allocFunc')) {\r\n args.allocFunc(choice, curNum[choice]);\r\n }\r\n }\r\n return {seq:allocationList,alloc:curNum,total:totalAllocated};\r\n}\r\n\r\nfunction allocate(totalNum,priorities,args) {\r\n args = args || {};\r\n let allocSeq = [];\r\n let allocNum = [];\r\n let totalAllocated = 0;\r\n // Setting up curNum array\r\n for (let i = 0;i < priorities.length;i++) {allocNum.push(0);}\r\n for (let i = 0;i < totalNum;i++) {\r\n let candidates = [];\r\n let totalPriority = 0;\r\n let total = totalAllocated;\r\n for (let j = 0;j < priorities.length;j++) {\r\n // Assuming will ignore, remove allocated from total pool\r\n total -= allocNum[j];\r\n\r\n // Ignoring zero priority zero ratio choices\r\n if (priorities[j] == 0) {continue;}\r\n\r\n // Checking maxes\r\n if (args.hasOwnProperty('max') && args.max[j] != -1 && allocNum[j] >= args.max[j]) {continue;}\r\n\r\n // Checking requirement function\r\n if (args.hasOwnProperty('requireFunc') && !args.requireFunc(j, allocNum[j])) {continue;}\r\n\r\n // Checking mins\r\n if (args.hasOwnProperty('min') && allocNum[j] < args.min[j]) {\r\n candidates = [j];\r\n break;\r\n }\r\n\r\n candidates.push(j);\r\n totalPriority += priorities[j];\r\n\r\n // Did not ignore, re-add allocated to pool\r\n total += allocNum[j];\r\n }\r\n\r\n // Calculating new ratios\r\n total += 1;\r\n let error = null;\r\n let choice = null;\r\n let ratios = [];\r\n for (let k = 0;k < candidates.length;k++) {\r\n let candidate = candidates[k];\r\n let ratio = priorities[candidate] / totalPriority;\r\n // Finding error differential\r\n let tempError = (((allocNum[candidate]+1) / total) - ratio) ** 2;\r\n if (total != 1) {tempError -= ((allocNum[candidate] / (total-1)) - ratio) ** 2;}\r\n\r\n if (error === null || tempError < error) {\r\n error = tempError;\r\n choice = candidate;\r\n }\r\n }\r\n\r\n if (choice === null) {\r\n break;\r\n }\r\n allocSeq[i] = choice;\r\n allocNum[choice] += 1;\r\n totalAllocated += 1;\r\n if (args.hasOwnProperty('allocFunc')) {\r\n args.allocFunc(choice, allocNum[choice]);\r\n }\r\n }\r\n return {seq:allocSeq,alloc:allocNum,total:totalAllocated};\r\n}\r\n\r\nfunction messageQueue(msg,color){\r\n color = color || 'warning';\r\n var new_message = $('<p class=\"has-text-'+color+'\">'+msg+'</p>');\r\n $('#autolog').prepend(new_message);\r\n if ($('#autolog').children().length > 30){\r\n $('#autolog').children().last().remove();\r\n }\r\n}\r\n\r\nfunction getTotalGameDays() {\r\n try {\r\n let str = $('#statsPanel')[0].children[$('#statsPanel')[0].children.length-1].innerText;\r\n let reg = /Game Days Played: ([\\d]+)/.exec(str);\r\n return parseInt(reg[1]);\r\n } catch(e) {\r\n console.log('Error in getting total game days');\r\n return null;\r\n }\r\n}\r\nfunction getYear() {\r\n try {\r\n return parseInt($('.year > .has-text-warning')[0].innerText);\r\n } catch(e) {\r\n console.log('Error in getting current year');\r\n return null;\r\n }\r\n}\r\nfunction getDay() {\r\n try {\r\n return parseInt($('.day > .has-text-warning')[0].innerText);\r\n } catch(e) {\r\n console.log('Error: Day');\r\n return null;\r\n }\r\n}\r\nfunction getLunarPhase() {\r\n let moon = document.querySelector('.calendar > .is-primary');\r\n if (moon !== null) {\r\n return moon.attributes['data-label'].value;\r\n } else {\r\n console.log(\"Error: Lunar Phase\");\r\n return \"\";\r\n }\r\n}\r\nfunction getRace() {\r\n try {\r\n return $('#race > .column > span')[0].innerText;\r\n } catch(e) {\r\n console.log('Error in getting current race');\r\n return null;\r\n }\r\n}\r\n\r\n// Forces keyup event for all the multiplier keys\r\nfunction disableMult() {\r\n var evt = new KeyboardEvent('keyup', {'ctrlKey':false, 'shiftKey':false, 'altKey':false});\r\n document.dispatchEvent (evt);\r\n}\r\n// Finds total key multiplier from keyEvent\r\nfunction keyMult(e) {\r\n let mult = 1;\r\n mult *= (e.ctrlKey) ? 10 : 1;\r\n mult *= (e.shiftKey) ? 25 : 1;\r\n mult *= (e.altKey) ? 100 : 1;\r\n return mult;\r\n}\r\n\r\n// Convert from abbreviated value to actual number\r\nfunction getRealValue(num){\r\n var suffix = {\r\n K:1000,\r\n M:1000000\r\n }\r\n var currSuff = /([-]?)([\\.0-9]+)([^\\d\\.])/.exec(num);\r\n if(currSuff !== null && currSuff.length == 4){\r\n var sign = (currSuff[1] == \"-\") ? -1 : 1;\r\n var n = parseFloat(currSuff[2]);\r\n var suff = currSuff[3];\r\n if (suffix[suff] !== null) {n *= suffix[suff];}\r\n n *= sign;\r\n return n;\r\n }\r\n return parseFloat(num);\r\n}\r\n\r\n// Determines if stage is currently in evolution\r\nfunction inEvolution() {\r\n return window.evolve.global.race.species == 'protoplasm';\r\n}\r\n// Determines if the civics tab has been unlocked\r\nfunction civicsOn() {\r\n let civicsTabLabel = getTabLabel(\"Civics\");\r\n if (civicsTabLabel === null) {return false;}\r\n return civicsTabLabel.style.display != 'none';\r\n}\r\n// Finding tab-items\r\nfunction getTab(name) {\r\n let nav = $('#mainColumn > .content > .b-tabs > .tabs > ul > li > a > span');\r\n for (let i = 0;i < nav.length;i++) {\r\n if (nav[i].innerText.trim() == name) {\r\n let nth=i+1\r\n nav = null;\r\n return document.querySelector('#mainColumn > .content > .b-tabs > .tab-content > div:nth-child('+nth+')')\r\n }\r\n }\r\n nav = null;\r\n return null;\r\n}\r\nfunction getTabLabel(name) {\r\n let nav = $('#mainColumn > .content > .b-tabs > .tabs > ul > li > a > span');\r\n for (let i = 0;i < nav.length;i++) {\r\n if (nav[i].innerText.trim() == name) {\r\n let nth=i+1\r\n return document.querySelector('#mainColumn > .content > .b-tabs > .tabs > ul > li:nth-child('+nth+')')\r\n }\r\n }\r\n return null;\r\n}\r\n\r\n// Determines if a perk has been unlocked\r\nfunction perkUnlocked(perk) {\r\n let pat = \"\";\r\n switch(perk) {\r\n case 'Morphogenesis':\r\n pat = /Evolution costs decreased/;\r\n break;\r\n default:\r\n return false;\r\n }\r\n let divList = $('#perksPanel > div');\r\n for (let i = 0;i < divList.length;i++) {\r\n if (pat.exec(divList[i].innerText) !== null) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n// Determines if an achievement has been unlocked\r\n// Returns the achievement level (1-5) if unlocked\r\n// Returns -1 if not unlocked\r\nfunction achievementUnlocked(achievement) {\r\n let divList = $('.achievement');\r\n for (let i = 0;i < divList.length;i++) {\r\n if (divList[i].children[0].innerText == achievement) {\r\n if (divList[i].children.length < 3) { return 1; }\r\n return divList[i].children[2].children[0].attributes.class.value[4];\r\n }\r\n }\r\n return -1;\r\n}\r\n\r\nfunction getMinMoney() {\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].minimumMoney < 1) {\r\n return _settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].minimumMoney * _resources_js__WEBPACK_IMPORTED_MODULE_1__[\"resources\"].Money.storage;\r\n } else {\r\n return _settings_js__WEBPACK_IMPORTED_MODULE_0__[\"settings\"].minimumMoney;\r\n }\r\n}\n\n//# sourceURL=webpack:///./src/utility.js?");
/***/ }),
/***/ "./src/war.js":
/*!********************!*\
!*** ./src/war.js ***!
\********************/
/*! exports provided: getMaxSoldiers, getAvailableSoldiers, autoBattle */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getMaxSoldiers\", function() { return getMaxSoldiers; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAvailableSoldiers\", function() { return getAvailableSoldiers; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoBattle\", function() { return autoBattle; });\n/* harmony import */ var _utility_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utility.js */ \"./src/utility.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settings.js */ \"./src/settings.js\");\n/* harmony import */ var _researches_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./researches.js */ \"./src/researches.js\");\n \r\n\r\n\r\n\r\nfunction getWounded() {\r\n return window.evolve.global.civic.garrison.wounded;\r\n}\r\nfunction getTotalSoldiers() {\r\n return window.evolve.global.civic.garrison.max;\r\n}\r\nfunction getFortressSoldiers() {\r\n if (window.evolve.global.portal.hasOwnProperty('fortress')) {\r\n return window.evolve.global.portal.fortress.assigned;\r\n }\r\n return 0;\r\n}\r\nfunction getMaxSoldiers() {\r\n return getTotalSoldiers() - getFortressSoldiers();\r\n}\r\nfunction getAvailableSoldiers() {\r\n if (window.evolve.global.portal.hasOwnProperty('fortress')) {\r\n return window.evolve.global.civic.garrison.workers - window.evolve.global.portal.fortress.assigned;\r\n }\r\n return window.evolve.global.civic.garrison.workers;\r\n}\r\nfunction getCurrentSoldiers() {\r\n return window.evolve.global.civic.garrison.raid;\r\n}\r\nfunction armyRating() {\r\n let armyRating = document.querySelector('#garrison > .header > span > span:nth-child(2)');\r\n if (armyRating === null) {return 0;}\r\n return parseInt(armyRating);\r\n}\r\nfunction decCampaign(num) {\r\n num = (num === undefined) ? 1 : num;\r\n let decCampaignBtn = document.querySelector('#tactics > .sub');\r\n if (decCampaignBtn === null) {return;}\r\n Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"disableMult\"])();\r\n for (let i = 0;i < num;i++) {\r\n decCampaignBtn.click();\r\n }\r\n}\r\nfunction incCampaign(num) {\r\n num = (num === undefined) ? 1 : num;\r\n let incCampaignBtn = document.querySelector('#tactics > .add');\r\n if (incCampaignBtn === null) {return;}\r\n Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"disableMult\"])();\r\n for (let i = 0;i < num;i++) {\r\n incCampaignBtn.click();\r\n }\r\n}\r\nfunction getCurrentCampaign() {\r\n return window.evolve.global.civic.garrison.tactic;\r\n}\r\nfunction addSoldiers(num) {\r\n num = num ? num : 1;\r\n let btn = document.querySelector('#battalion > .add');\r\n if (btn === null) {return;}\r\n Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"disableMult\"])();\r\n for (let i = 0;i < num;i++) {\r\n btn.click();\r\n }\r\n}\r\nfunction subSoldiers(num) {\r\n num = num ? num : 1;\r\n let btn = document.querySelector('#battalion > .sub');\r\n if (btn === null) {return;}\r\n Object(_utility_js__WEBPACK_IMPORTED_MODULE_0__[\"disableMult\"])();\r\n for (let i = 0;i < num;i++) {\r\n btn.click();\r\n }\r\n}\r\nfunction getWinRate(num) {\r\n let span = document.querySelector(`#garrison > div:nth-child(4) > div:nth-child(${num+1}) > span`);\r\n if (span === null) {return 0;}\r\n span = span.attributes['data-label'].value;\r\n span = /([\\d\\.]+)% ([\\w]+)/.exec(span);\r\n if (span === null) {return 0;}\r\n let [ meh, winRate, advantage] = span;\r\n winRate = parseFloat(winRate);\r\n winRate *= (advantage == 'advantage') ? 1 : -1;\r\n return winRate;\r\n}\r\nfunction runCampaign(num) {\r\n let btn = document.querySelector(`#garrison > div:nth-child(4) > div:nth-child(${num+1}) > span > button`);\r\n if (btn === null) {return;}\r\n btn.click();\r\n}\r\nlet armyStatus = false;\r\nlet armySetupStage = 0;\r\nlet chosenCampaign = false;\r\nlet failTimer = 0;\r\nfunction battle() {\r\n // Don't autoBattle if garrison not unlocked\r\n if (!Object(_researches_js__WEBPACK_IMPORTED_MODULE_2__[\"researched\"])('tech-garrison')) {return;}\r\n // Don't autoBattle if unified\r\n if (window.evolve.global.tech['world_control']) {return;}\r\n // Don't autoBattle if failed recently\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].campaignFailCheck && failTimer > 0) {\r\n failTimer -= 1;\r\n return;\r\n }\r\n // If army isn't ready, wait until it is\r\n let avaSoldiers = getAvailableSoldiers();\r\n let maxSoldiers = getMaxSoldiers();\r\n let wounded = getWounded();\r\n let healthy = getTotalSoldiers() - wounded;\r\n //console.log(avaSoldiers, maxSoldiers, wounded);\r\n // Determining of army is ready\r\n if (avaSoldiers && avaSoldiers == maxSoldiers) {\r\n if (!(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].woundedCheck && wounded > 0)) {\r\n armyStatus = true;\r\n }\r\n } else {\r\n armyStatus = false;\r\n chosenCampaign = false;\r\n armySetupStage = 0;\r\n }\r\n // Army is ready\r\n if (armyStatus) {\r\n switch(armySetupStage) {\r\n // Initial Stage\r\n case 0: {\r\n // Setting campaign to max campaign setting\r\n decCampaign(4);\r\n incCampaign(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].maxCampaign);\r\n // Setting army size to max\r\n addSoldiers(maxSoldiers);\r\n armySetupStage += 1;\r\n //console.log(\"Campaign Ready - Setting up soldiers\");\r\n break;\r\n }\r\n // Decrement Stage\r\n case 1: {\r\n // Checking winrate\r\n let winrate = getWinRate(1);\r\n //console.log(\"WIN:\", winrate);\r\n // Lower Win Rate\r\n if (winrate <= _settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].minWinRate) {\r\n // Checking if campaign chosen\r\n if (chosenCampaign) {\r\n //console.log(\"Chosen Campaign\", getCurrentCampaign(), \"Win\", winrate, settings.minWinRate);\r\n addSoldiers();\r\n if (getCurrentSoldiers() <= healthy) {\r\n runCampaign(1);\r\n }\r\n armyStatus = false;\r\n chosenCampaign = false;\r\n armySetupStage = 0;\r\n }\r\n // Campaign not chosen yet\r\n else {\r\n if (getCurrentCampaign() == 0) {\r\n //console.log(\"Cannot beat Ambush, resetting army algorithm\");\r\n armyStatus = false;\r\n chosenCampaign = false;\r\n armySetupStage = 0;\r\n // Setting fail timer if enabled\r\n if (_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].campaignFailCheck) {\r\n failTimer = _settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].campaignFailInterval * 1000 / 25;\r\n }\r\n } else {\r\n //console.log(\"Cannot win at this campaign\", getCurrentCampaign(), \" decrementing campaign\");\r\n decCampaign();\r\n }\r\n }\r\n }\r\n // Higher Win Rate\r\n else {\r\n //console.log(\"Can win at this campaign\",getWinRate(), getCurrentCampaign(),\"subtracting soldiers\");\r\n chosenCampaign = true;\r\n subSoldiers();\r\n if (getCurrentSoldiers() == 0) {\r\n addSoldiers();\r\n if (getCurrentSoldiers() < healthy) {\r\n runCampaign(1);\r\n }\r\n armyStatus = false;\r\n chosenCampaign = false;\r\n armySetupStage = 0;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n\r\n }\r\n}\r\nlet battleInterval = null;\r\nfunction autoBattle() {\r\n if(_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].autoBattle && battleInterval === null) {\r\n battleInterval = setInterval(battle, 25);\r\n } else {\r\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_1__[\"settings\"].autoBattle && !(battleInterval === null)) {\r\n clearInterval(battleInterval);\r\n battleInterval = null;\r\n }\r\n }\r\n}\n\n//# sourceURL=webpack:///./src/war.js?");
/***/ })
/******/ });