pages/voidlings/js/index.7410a362.js.map
2021-04-11 23:54:09 -05:00

1 line
No EOL
328 KiB
Text

{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///D:/projects/incremental-game-template/src/assets/socials/isha.png","webpack:///./src/assets sync ^\\.\\/.*$","webpack:///D:/projects/incremental-game-template/src/components/features/wheel/igt-wheel-feature.vue?af23","webpack:///D:/projects/incremental-game-template/src/assets/socials/docusaurus.svg","webpack:///D:/projects/incremental-game-template/src/components/features/settings/igt-settings.vue?23be","webpack:///D:/projects/incremental-game-template/src/components/features/factory/igt-factory-feature.vue?5401","webpack:///D:/projects/incremental-game-template/src/lib/break_eternity.min.js","webpack:///D:/projects/incremental-game-template/src/assets/socials/discord.png","webpack:///D:/projects/incremental-game-template/src/assets/logo.png","webpack:///D:/projects/incremental-game-template/src/components/util/sidebar/igt-sidebar-layout.vue?6c37","webpack:///D:/projects/incremental-game-template/src/assets/socials/github.png","webpack:///D:/projects/incremental-game-template/src/ig-template/GameState.ts","webpack:///D:/projects/incremental-game-template/src/App.vue?bb33","webpack:///D:/projects/incremental-game-template/src/ig-template/tools/saving/LocalStorage.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/features/wallet/CurrencyType.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/developer-panel/DeveloperPanel.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/developer-panel/DeveloperPanelTab.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/developer-panel/fields/AbstractField.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/developer-panel/fields/FunctionField.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/developer-panel/fields/DisplayField.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/developer-panel/fields/ChoiceField.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/Game.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/features/Feature.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/features/settings/SettingId.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/developer-panel/fields/NumberField.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/features/wallet/Wallet.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/features/key-items/KeyItemId.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/tools/requirements/Progress.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/tools/requirements/Requirement.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/tools/requirements/NoRequirement.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/features/settings/Setting.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/features/settings/MultipleChoiceSetting.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/features/settings/SettingOption.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/features/settings/BooleanSetting.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/features/settings/Settings.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/features/key-items/KeyItem.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/features/key-items/KeyItems.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/tools/upgrades/UpgradeId.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/tools/upgrades/UpgradeType.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/features/UpgradesFeature.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/tools/actions/AbstractAction.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/features/wallet/Currency.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/tools/actions/CombatAction.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/tools/upgrades/AbstractUpgrade.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/tools/upgrades/ContinuousUpgrade.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/features/combat/CombatFeature.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/features/factory/FactoryFeature.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/tools/probability/Random.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/tools/probability/WeightedDistribution.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/tools/probability/Outcome.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/features/wheel/WheelFeature.ts","webpack:///D:/projects/incremental-game-template/src/ig-template/features/wheel/WheelOutcome.ts","webpack:///D:/projects/incremental-game-template/src/App.ts","webpack:///D:/projects/incremental-game-template/src/components/util/sidebar/igt-sidebar-layout.vue?9d92","webpack:///D:/projects/incremental-game-template/src/components/util/sidebar/igt-sidebar-layout.vue","webpack:///D:/projects/incremental-game-template/src/components/util/sidebar/igt-sidebar-layout.vue?b904","webpack:///D:/projects/incremental-game-template/src/components/util/sidebar/igt-sidebar-layout.vue?df01","webpack:///D:/projects/incremental-game-template/src/components/util/igt-tab.vue?3a28","webpack:///D:/projects/incremental-game-template/src/components/util/igt-tab.vue","webpack:///D:/projects/incremental-game-template/src/components/util/igt-tab.vue?0f71","webpack:///D:/projects/incremental-game-template/src/components/util/igt-tab.vue?93fd","webpack:///D:/projects/incremental-game-template/src/components/util/igt-notifications.vue?9086","webpack:///D:/projects/incremental-game-template/src/components/util/igt-notification.vue?df78","webpack:///D:/projects/incremental-game-template/src/components/util/igt-notification.vue","webpack:///D:/projects/incremental-game-template/src/components/util/igt-notification.vue?5911","webpack:///D:/projects/incremental-game-template/src/components/util/igt-notification.vue?b694","webpack:///D:/projects/incremental-game-template/src/components/util/igt-notifications.vue","webpack:///D:/projects/incremental-game-template/src/components/util/igt-notifications.vue?f46a","webpack:///D:/projects/incremental-game-template/src/components/util/igt-notifications.vue?e5eb","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/igt-developer-panel.vue?d4c5","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/fields/igt-number-field.vue?13ec","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/fields/igt-number-field.vue","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/fields/igt-number-field.vue?2204","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/fields/igt-number-field.vue?9fd8","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/fields/igt-button-field.vue?837e","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/fields/igt-button-field.vue","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/fields/igt-button-field.vue?d1b0","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/fields/igt-button-field.vue?21b3","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/fields/igt-range-field.vue?6cc7","webpack:///D:/projects/incremental-game-template/src/ig-template/developer-panel/fields/RangeField.ts","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/fields/igt-range-field.vue","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/fields/igt-range-field.vue?3000","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/fields/igt-range-field.vue?2da5","webpack:///D:/projects/incremental-game-template/src/components/util/igt-tabs.vue?c499","webpack:///D:/projects/incremental-game-template/src/components/util/igt-tabs.vue","webpack:///D:/projects/incremental-game-template/src/components/util/igt-tabs.vue?a6c6","webpack:///D:/projects/incremental-game-template/src/components/util/igt-tabs.vue?9211","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/fields/igt-display-field.vue?7f74","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/fields/igt-display-field.vue","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/fields/igt-display-field.vue?ba44","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/fields/igt-display-field.vue?565a","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/fields/igt-choice-field.vue?fece","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/fields/igt-choice-field.vue","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/fields/igt-choice-field.vue?4bbc","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/fields/igt-choice-field.vue?0cf6","webpack:///D:/projects/incremental-game-template/src/components/util/igt-feature.vue?8885","webpack:///D:/projects/incremental-game-template/src/components/util/igt-feature.vue","webpack:///D:/projects/incremental-game-template/src/components/util/igt-feature.vue?35ea","webpack:///D:/projects/incremental-game-template/src/components/util/igt-feature.vue?816e","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/igt-developer-panel.vue","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/igt-developer-panel.vue?423f","webpack:///D:/projects/incremental-game-template/src/components/developer-panel/igt-developer-panel.vue?f37b","webpack:///D:/projects/incremental-game-template/src/components/util/sidebar/igt-sidebar-category.vue?224a","webpack:///D:/projects/incremental-game-template/src/components/util/sidebar/igt-sidebar-category.vue","webpack:///D:/projects/incremental-game-template/src/components/util/sidebar/igt-sidebar-category.vue?dd53","webpack:///D:/projects/incremental-game-template/src/components/util/sidebar/igt-sidebar-category.vue?a107","webpack:///D:/projects/incremental-game-template/src/components/util/sidebar/igt-sidebar-external-link.vue?9b6e","webpack:///D:/projects/incremental-game-template/src/components/util/sidebar/igt-sidebar-external-link.vue","webpack:///D:/projects/incremental-game-template/src/components/util/sidebar/igt-sidebar-external-link.vue?3f5f","webpack:///D:/projects/incremental-game-template/src/components/util/sidebar/igt-sidebar-external-link.vue?b6fd","webpack:///D:/projects/incremental-game-template/src/components/features/settings/igt-settings.vue?6a64","webpack:///D:/projects/incremental-game-template/src/components/features/settings/igt-boolean-setting.vue?d7a9","webpack:///D:/projects/incremental-game-template/src/components/features/settings/igt-boolean-setting.vue","webpack:///D:/projects/incremental-game-template/src/components/features/settings/igt-boolean-setting.vue?af2c","webpack:///D:/projects/incremental-game-template/src/components/features/settings/igt-boolean-setting.vue?6d44","webpack:///D:/projects/incremental-game-template/src/components/features/settings/igt-settings.vue","webpack:///D:/projects/incremental-game-template/src/components/features/settings/igt-settings.vue?d6e0","webpack:///D:/projects/incremental-game-template/src/components/features/settings/igt-settings.vue?4aee","webpack:///D:/projects/incremental-game-template/src/components/features/key-items/igt-key-items.vue?1a35","webpack:///D:/projects/incremental-game-template/src/components/features/key-items/igt-key-item.vue?6ef1","webpack:///D:/projects/incremental-game-template/src/components/features/key-items/igt-key-item.vue","webpack:///D:/projects/incremental-game-template/src/components/features/key-items/igt-key-item.vue?510d","webpack:///D:/projects/incremental-game-template/src/components/features/key-items/igt-key-item.vue?158a","webpack:///D:/projects/incremental-game-template/src/ig-template/features/key-items/KeyItemRequirement.ts","webpack:///D:/projects/incremental-game-template/src/components/features/key-items/igt-key-items.vue","webpack:///D:/projects/incremental-game-template/src/components/features/key-items/igt-key-items.vue?2b25","webpack:///D:/projects/incremental-game-template/src/components/features/key-items/igt-key-items.vue?b767","webpack:///D:/projects/incremental-game-template/src/components/util/sidebar/igt-sidebar-currency.vue?05b0","webpack:///D:/projects/incremental-game-template/src/ig-template/util/NumberFormatter.ts","webpack:///D:/projects/incremental-game-template/src/components/util/sidebar/igt-sidebar-currency.vue","webpack:///D:/projects/incremental-game-template/src/components/util/sidebar/igt-sidebar-currency.vue?a656","webpack:///D:/projects/incremental-game-template/src/components/util/sidebar/igt-sidebar-currency.vue?6172","webpack:///D:/projects/incremental-game-template/src/components/features/combat/igt-combat-feature.vue?e0b3","webpack:///D:/projects/incremental-game-template/src/components/tools/actions/igt-action.vue?6d0b","webpack:///D:/projects/incremental-game-template/src/components/util/igt-progress-bar.vue?142e","webpack:///D:/projects/incremental-game-template/src/components/util/igt-progress-bar.vue","webpack:///D:/projects/incremental-game-template/src/components/util/igt-progress-bar.vue?1121","webpack:///D:/projects/incremental-game-template/src/components/util/igt-progress-bar.vue?5d62","webpack:///D:/projects/incremental-game-template/src/components/tools/actions/igt-action.vue","webpack:///D:/projects/incremental-game-template/src/components/tools/actions/igt-action.vue?9cbb","webpack:///D:/projects/incremental-game-template/src/components/tools/actions/igt-action.vue?57e5","webpack:///D:/projects/incremental-game-template/src/components/tools/upgrades/igt-discrete-upgrade.vue?0761","webpack:///D:/projects/incremental-game-template/src/components/tools/upgrades/igt-discrete-upgrade.vue","webpack:///D:/projects/incremental-game-template/src/components/tools/upgrades/igt-discrete-upgrade.vue?8a7e","webpack:///D:/projects/incremental-game-template/src/components/tools/upgrades/igt-discrete-upgrade.vue?6fe7","webpack:///D:/projects/incremental-game-template/src/components/features/combat/igt-combat-feature.vue","webpack:///D:/projects/incremental-game-template/src/components/features/combat/igt-combat-feature.vue?0f3b","webpack:///D:/projects/incremental-game-template/src/components/features/combat/igt-combat-feature.vue?726a","webpack:///D:/projects/incremental-game-template/src/components/features/factory/igt-factory-feature.vue?625a","webpack:///D:/projects/incremental-game-template/src/components/features/factory/igt-factory-feature.vue","webpack:///D:/projects/incremental-game-template/src/components/features/factory/igt-factory-feature.vue?9b83","webpack:///D:/projects/incremental-game-template/src/components/features/factory/igt-factory-feature.vue?06de","webpack:///D:/projects/incremental-game-template/src/components/features/wheel/igt-wheel-feature.vue?b4d2","webpack:///D:/projects/incremental-game-template/src/components/features/wheel/igt-wheel-feature.vue","webpack:///D:/projects/incremental-game-template/src/components/features/wheel/igt-wheel-feature.vue?eabc","webpack:///D:/projects/incremental-game-template/src/components/features/wheel/igt-wheel-feature.vue?9b7e","webpack:///D:/projects/incremental-game-template/src/App.vue","webpack:///D:/projects/incremental-game-template/src/App.vue?eea0","webpack:///D:/projects/incremental-game-template/src/App.vue?6059","webpack:///D:/projects/incremental-game-template/src/VueFilters.ts","webpack:///D:/projects/incremental-game-template/src/main.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","map","webpackContext","req","id","webpackContextResolve","e","Error","code","keys","resolve","_instanceof","hasInstance","_typeof","iterator","constructor","define","Math","log10","Number","h","fromValue_noAlloc","fromComponents","fromComponents_noNormalize","a","ceil","abs","round","pow","parseFloat","toFixed","max","sign","arguments","isFinite","log","exp","this","NaN","layer","mag","fromDecimal","fromNumber","fromString","floor","set","fromMantissaExponent","exponent","configurable","POSITIVE_INFINITY","fromMantissaExponent_noNormalize","fromValue","neg","negate","negated","sgn","trunc","add","plus","sub","subtract","minus","mul","multiply","times","div","divide","recip","reciprocal","reciprocate","cmp","cmpabs","compare","eq","equals","neq","notEquals","lt","lte","gt","gte","min","minabs","maxabs","clamp","clampMin","clampMax","cmp_tolerance","compare_tolerance","eq_tolerance","equals_tolerance","neq_tolerance","notEquals_tolerance","lt_tolerance","lte_tolerance","gt_tolerance","gte_tolerance","pLog10","absLog10","log2","ln","logarithm","pow10","root","factorial","gamma","lngamma","sqr","sqrt","cube","cbrt","tetrate","iteratedexp","iteratedlog","layeradd10","layeradd","slog","lambertw","ssqrt","pentate","affordGeometricSeries","affordGeometricSeries_core","sumGeometricSeries","sumGeometricSeries_core","affordArithmeticSeries","affordArithmeticSeries_core","sumArithmeticSeries","sumArithmeticSeries_core","efficiencyOfPurchase","efficiencyOfPurchase_core","randomDecimalForTesting","random","normalize","replace","split","u","g","f","trim","toLowerCase","y","M","charAt","b","N","v","charCodeAt","substr","_","F","toNumber","NEGATIVE_INFINITY","mantissaWithDecimalPlaces","isNaN","magnitudeWithDecimalPlaces","toString","repeat","toExponential","toStringWithDecimalPlaces","toPrecision","valueOf","toJSON","dZero","divideBy","dividedBy","dNaN","dOne","pow_base","E","dNegOne","sin","cos","tan","asin","acos","atan","Infinity","sinh","cosh","tanh","asinh","acosh","atanh","ascensionPenalty","egg","lessThanOrEqualTo","lessThan","greaterThanOrEqualTo","greaterThan","dTwo","dTen","dInf","dNegInf","dNumberMax","MAX_VALUE","dNumberMin","MIN_VALUE","GameState","_vm","_h","$createElement","_c","_self","class","darkMode","attrs","CurrencyType","Voidlings","CombatBots","VoidBatteries","factoryRequirement","isCompleted","wheelRequirement","_e","staticRenderFns","localStorage","setItem","JSON","stringify","parse","getItem","removeItem","tabs","label","children","propertyName","cssClass","undefined","console","warn","componentName","func","setComponentName","options","features","_tickInterval","TICK_DURATION","SAVE_INTERVAL","_nextSave","gameSpeed","_lastUpdate","SAVE_KEY","state","Launching","setObject","start","setCssClass","pause","resume","stop","featureList","feature","fields","getDeveloperPanelFields","field","tab","saveKey","isEmpty","now","Date","getTime","timeDifference","Playing","delta","update","save","type","multiplier","getTotalCurrencyMultiplier","initialize","Stopped","setInterval","debug","printStateWarning","clearInterval","Paused","res","store","delete","saveData","featureSaveData","load","reason","values","SettingId","supportedCurrencies","_currencies","_multipliers","_onCurrencyGain","_supportedCurrencies","supportsCurrencyType","currency","amount","getCurrencyMultiplier","isValid","dispatch","costs","cost","hasCurrency","currencies","loseCurrency","hasCurrencies","loseMultipleCurrencies","includes","voidlings","combatBots","batteries","combatBotsMod","asEvent","KeyItemId","actual","target","actualValue","targetValue","displayName","defaultValue","requirement","canAccess","validValue","option","find","RangeError","displayText","list","setting","getSetting","registerSetting","DarkMode","ExampleMultipleChoiceSetting","settingSave","description","unlockHint","image","isUnlocked","UpgradeId","UpgradeType","_onKeyItemGain","registerKeyItem","Factory","Wheel","StrongerWeapons","CombatEfficiency","WheelOfFortune","WheelOfButter","Synergy","MassMurder","Victory","keyItem","getKeyItem","item","didUnlock","unlock","forEach","upgrades","_wallet","wallet","upgrade","canBuy","buy","canAfford","upgradeSaveData","getUpgrade","durationFunc","isStarted","currentProgress","_onCompletion","canBeCompleted","complete","canRepeat","gainReward","repeatAction","canPerform","combat","costFunc","multiCompleteFunc","_combat","completions","getAmount","stronger","getBonus","handleCompletions","getCombatCost","ret","gainCurrency","maxLevel","level","getBonusForLevel","isMaxLevel","getCost","levelUp","bonusFunc","_keyItems","combatAction","efficiency","mass","keyItems","onCompletion","killedVoidlings","gainKeyItem","game","wheel","spin","Nanobots","perform","combatProgress","combatStarted","factories","factoriesSquared","factoriesCubed","factory","factorySquared","FactorySquared","factoryCubed","FactoryCubed","factoryTesseracted","FactoryTesseracted","synergy","factoriesTesseractedBonus","factoriesCubedBonus","factoriesSquaredBonus","factoriesBonus","probability","requireNormalizedProbability","chance","intBetween","array","arrayIndex","temporaryValue","randomIndex","currentIndex","outcomes","filter","canGet","outcomesWithMetRequirements","totalWeight","getTotalWeight","floatBetween","weight","outcome","error","fromArray","index","indexOf","distribution","initial","progress","spins","multispin","grease","MultiSpin","Grease","isSpinning","current","duration","draw","hasKeyItem","ease","x","getDefaultGame","App","setCurrencyMultiplier","settings","inProduction","staticClass","sidebarOpen","on","$event","_v","_s","title","_l","_obj","isActive","isCategory","style","link","canSelect","selectTab","classes","hideSeparator","activeTab","_t","props","String","required","dropdownOpen","computed","visibleTabs","created","$children","methods","component","directives","rawName","expression","selected","visible","href","mounted","scopedSlots","_u","fn","ref","notifications","notification","backgroundColor","icon","textColor","text","components","developerPanel","_f","tag","displayLabel","modifiers","domProps","composing","$set","_n","$forceUpdate","run","step","$$selectedVal","Array","val","_value","multiple","containerClass","default","IgtFeature","IgtChoiceField","isExternalLink","resetSave","toggle","trueIcon","falseIcon","confirmed","location","reload","itemId","items","gainItem1","onKeyItemGain","subscribe","places","NumberFormatter","format","commaFormat","exponentialFormat","regularFormat","formatWhole","mantissa","firstPart","secondPart","containerStyle","combatCost","staticStyle","nextUnlock","currentKills","strongerRequirement","nativeOn","buyUpgrade","efficiencyRequirement","massRequirement","action","progressPercentage","bgClass","fgClass","percentage","getProgress","getPercentage","currencyName","Boolean","hasMax","amounts","displayNames","gains","gainResources","synergyRequirement","isStopped","currentResult","transform","background","reduce","acc","curr","gradient","multispinRequirement","greaseRequirement","IgtCombatFeature","IgtFactoryFeature","IgtWheelFeature","IgtSidebarCurrency","IgtKeyItems","IgtSettings","IgtSidebarExternalLink","IgtSidebarCategory","IgtSidebar","showDevPanel","date","year","Intl","DateTimeFormat","month","day","hours","getHours","hoursString","minutes","getMinutes","minutesString","string","toUpperCase","config","productionTip","use","onload","render","$mount"],"mappings":"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","file":"js/index.7410a362.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"index\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = __webpack_public_path__ + \"img/isha.f0621815.png\";","var map = {\n\t\"./logo.png\": \"5ad7\",\n\t\"./socials/discord.png\": \"5894\",\n\t\"./socials/docusaurus.svg\": \"1ee1\",\n\t\"./socials/github.png\": \"6692\",\n\t\"./socials/isha.png\": \"0db4\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"1771\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-wheel-feature.vue?vue&type=style&index=0&id=7694784a&scoped=true&lang=css&\"","module.exports = __webpack_public_path__ + \"img/docusaurus.09a7b121.svg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-settings.vue?vue&type=style&index=0&id=5a724c9b&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-factory-feature.vue?vue&type=style&index=0&id=bb4c6242&scoped=true&lang=css&\"","// @ts-ignore\r\n\"use strict\";function _instanceof(t,r){return null!=r&&\"undefined\"!=typeof Symbol&&r[Symbol.hasInstance]?!!r[Symbol.hasInstance](t):t instanceof r}function _typeof(t){return(_typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}!function(t,r){\"object\"===(\"undefined\"==typeof exports?\"undefined\":_typeof(exports))&&\"undefined\"!=typeof module?module.exports=r():\"function\"==typeof define&&define.amd?define(r):(t=t||self).Decimal=r()}(void 0,function(){var t=Math.log10(9e15),r=function(){for(var t=[],r=-323;r<=308;r++)t.push(Number(\"1e\"+r));return function(r){return t[r+323]}}(),i=function(t){return h.fromValue_noAlloc(t)},e=function(t,r,i){return h.fromComponents(t,r,i)},n=function(t,r,i){return h.fromComponents_noNormalize(t,r,i)},a=function(t,r){var i=r+1,e=Math.ceil(Math.log10(Math.abs(t))),n=Math.round(t*Math.pow(10,i-e))*Math.pow(10,e-i);return parseFloat(n.toFixed(Math.max(i-e,0)))},s=function(t){return Math.sign(t)*Math.log10(Math.abs(t))},o=function(t){var r,i,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-10;if(!Number.isFinite(t))return t;if(0===t)return t;if(1===t)return.5671432904097838;r=t<10?0:Math.log(t)-Math.log(Math.log(t));for(var n=0;n<100;++n){if(i=(t*Math.exp(-r)+r*r)/(r+1),Math.abs(i-r)<e*Math.abs(i))return i;r=i}throw Error(\"Iteration failed to converge: \"+t)},h=function(){function h(t){this.sign=Number.NaN,this.layer=Number.NaN,this.mag=Number.NaN,_instanceof(t,h)?this.fromDecimal(t):\"number\"==typeof t?this.fromNumber(t):\"string\"==typeof t?this.fromString(t):(this.sign=0,this.layer=0,this.mag=0)}Object.defineProperty(h.prototype,\"m\",{get:function(){if(0===this.sign)return 0;if(0===this.layer){var t,i=Math.floor(Math.log10(this.mag));return t=5e-324===this.mag?5:this.mag/r(i),this.sign*t}if(1===this.layer){var e=this.mag-Math.floor(this.mag);return this.sign*Math.pow(10,e)}return this.sign},set:function(t){this.layer<=2?this.fromMantissaExponent(t,this.e):(this.sign=Math.sign(t),0===this.sign&&(this.layer,this.exponent))},enumerable:!0,configurable:!0}),Object.defineProperty(h.prototype,\"e\",{get:function(){return 0===this.sign?0:0===this.layer?Math.floor(Math.log10(this.mag)):1===this.layer?Math.floor(this.mag):2===this.layer?Math.floor(Math.sign(this.mag)*Math.pow(10,Math.abs(this.mag))):this.mag*Number.POSITIVE_INFINITY},set:function(t){this.fromMantissaExponent(this.m,t)},enumerable:!0,configurable:!0}),Object.defineProperty(h.prototype,\"s\",{get:function(){return this.sign},set:function(t){0===t?(this.sign=0,this.layer=0,this.mag=0):this.sign=t},enumerable:!0,configurable:!0}),Object.defineProperty(h.prototype,\"mantissa\",{get:function(){return this.m},set:function(t){this.m=t},enumerable:!0,configurable:!0}),Object.defineProperty(h.prototype,\"exponent\",{get:function(){return this.e},set:function(t){this.e=t},enumerable:!0,configurable:!0}),h.fromComponents=function(t,r,i){return(new h).fromComponents(t,r,i)},h.fromComponents_noNormalize=function(t,r,i){return(new h).fromComponents_noNormalize(t,r,i)},h.fromMantissaExponent=function(t,r){return(new h).fromMantissaExponent(t,r)},h.fromMantissaExponent_noNormalize=function(t,r){return(new h).fromMantissaExponent_noNormalize(t,r)},h.fromDecimal=function(t){return(new h).fromDecimal(t)},h.fromNumber=function(t){return(new h).fromNumber(t)},h.fromString=function(t){return(new h).fromString(t)},h.fromValue=function(t){return(new h).fromValue(t)},h.fromValue_noAlloc=function(t){return _instanceof(t,h)?t:new h(t)},h.abs=function(t){return i(t).abs()},h.neg=function(t){return i(t).neg()},h.negate=function(t){return i(t).neg()},h.negated=function(t){return i(t).neg()},h.sign=function(t){return i(t).sign()},h.sgn=function(t){return i(t).sign()},h.round=function(t){return i(t).round()},h.floor=function(t){return i(t).floor()},h.ceil=function(t){return i(t).ceil()},h.trunc=function(t){return i(t).trunc()},h.add=function(t,r){return i(t).add(r)},h.plus=function(t,r){return i(t).add(r)},h.sub=function(t,r){return i(t).sub(r)},h.subtract=function(t,r){return i(t).sub(r)},h.minus=function(t,r){return i(t).sub(r)},h.mul=function(t,r){return i(t).mul(r)},h.multiply=function(t,r){return i(t).mul(r)},h.times=function(t,r){return i(t).mul(r)},h.div=function(t,r){return i(t).div(r)},h.divide=function(t,r){return i(t).div(r)},h.recip=function(t){return i(t).recip()},h.reciprocal=function(t){return i(t).recip()},h.reciprocate=function(t){return i(t).reciprocate()},h.cmp=function(t,r){return i(t).cmp(r)},h.cmpabs=function(t,r){return i(t).cmpabs(r)},h.compare=function(t,r){return i(t).cmp(r)},h.eq=function(t,r){return i(t).eq(r)},h.equals=function(t,r){return i(t).eq(r)},h.neq=function(t,r){return i(t).neq(r)},h.notEquals=function(t,r){return i(t).notEquals(r)},h.lt=function(t,r){return i(t).lt(r)},h.lte=function(t,r){return i(t).lte(r)},h.gt=function(t,r){return i(t).gt(r)},h.gte=function(t,r){return i(t).gte(r)},h.max=function(t,r){return i(t).max(r)},h.min=function(t,r){return i(t).min(r)},h.minabs=function(t,r){return i(t).minabs(r)},h.maxabs=function(t,r){return i(t).maxabs(r)},h.clamp=function(t,r,e){return i(t).clamp(r,e)},h.clampMin=function(t,r){return i(t).clampMin(r)},h.clampMax=function(t,r){return i(t).clampMax(r)},h.cmp_tolerance=function(t,r,e){return i(t).cmp_tolerance(r,e)},h.compare_tolerance=function(t,r,e){return i(t).cmp_tolerance(r,e)},h.eq_tolerance=function(t,r,e){return i(t).eq_tolerance(r,e)},h.equals_tolerance=function(t,r,e){return i(t).eq_tolerance(r,e)},h.neq_tolerance=function(t,r,e){return i(t).neq_tolerance(r,e)},h.notEquals_tolerance=function(t,r,e){return i(t).notEquals_tolerance(r,e)},h.lt_tolerance=function(t,r,e){return i(t).lt_tolerance(r,e)},h.lte_tolerance=function(t,r,e){return i(t).lte_tolerance(r,e)},h.gt_tolerance=function(t,r,e){return i(t).gt_tolerance(r,e)},h.gte_tolerance=function(t,r,e){return i(t).gte_tolerance(r,e)},h.pLog10=function(t){return i(t).pLog10()},h.absLog10=function(t){return i(t).absLog10()},h.log10=function(t){return i(t).log10()},h.log=function(t,r){return i(t).log(r)},h.log2=function(t){return i(t).log2()},h.ln=function(t){return i(t).ln()},h.logarithm=function(t,r){return i(t).logarithm(r)},h.pow=function(t,r){return i(t).pow(r)},h.pow10=function(t){return i(t).pow10()},h.root=function(t,r){return i(t).root(r)},h.factorial=function(t,r){return i(t).factorial()},h.gamma=function(t,r){return i(t).gamma()},h.lngamma=function(t,r){return i(t).lngamma()},h.exp=function(t){return i(t).exp()},h.sqr=function(t){return i(t).sqr()},h.sqrt=function(t){return i(t).sqrt()},h.cube=function(t){return i(t).cube()},h.cbrt=function(t){return i(t).cbrt()},h.tetrate=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:n(1,0,1);return i(t).tetrate(r,e)},h.iteratedexp=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:n(1,0,1);return i(t).iteratedexp(r,e)},h.iteratedlog=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return i(t).iteratedlog(r,e)},h.layeradd10=function(t,r){return i(t).layeradd10(r)},h.layeradd=function(t,r){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10;return i(t).layeradd(r,e)},h.slog=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;return i(t).slog(r)},h.lambertw=function(t){return i(t).lambertw()},h.ssqrt=function(t){return i(t).ssqrt()},h.pentate=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:n(1,0,1);return i(t).pentate(r,e)},h.affordGeometricSeries=function(t,r,e,n){return this.affordGeometricSeries_core(i(t),i(r),i(e),n)},h.sumGeometricSeries=function(t,r,e,n){return this.sumGeometricSeries_core(t,i(r),i(e),n)},h.affordArithmeticSeries=function(t,r,e,n){return this.affordArithmeticSeries_core(i(t),i(r),i(e),i(n))},h.sumArithmeticSeries=function(t,r,e,n){return this.sumArithmeticSeries_core(i(t),i(r),i(e),i(n))},h.efficiencyOfPurchase=function(t,r,e){return this.efficiencyOfPurchase_core(i(t),i(r),i(e))},h.randomDecimalForTesting=function(t){if(20*Math.random()<1)return n(0,0,0);var r=Math.random()>.5?1:-1;if(20*Math.random()<1)return n(r,0,1);var i=Math.floor(Math.random()*(t+1)),a=0===i?616*Math.random()-308:16*Math.random();Math.random()>.9&&(a=Math.trunc(a));var s=Math.pow(10,a);return Math.random()>.9&&(s=Math.trunc(s)),e(r,i,s)},h.affordGeometricSeries_core=function(t,r,i,e){var n=r.mul(i.pow(e));return h.floor(t.div(n).mul(i.sub(1)).add(1).log10().div(i.log10()))},h.sumGeometricSeries_core=function(t,r,i,e){return r.mul(i.pow(e)).mul(h.sub(1,i.pow(t))).div(h.sub(1,i))},h.affordArithmeticSeries_core=function(t,r,i,e){var n=r.add(e.mul(i)).sub(i.div(2)),a=n.pow(2);return n.neg().add(a.add(i.mul(t).mul(2)).sqrt()).div(i).floor()},h.sumArithmeticSeries_core=function(t,r,i,e){var n=r.add(e.mul(i));return t.div(2).mul(n.mul(2).plus(t.sub(1).mul(i)))},h.efficiencyOfPurchase_core=function(t,r,i){return t.div(r).add(t.div(i))},h.prototype.normalize=function(){if(0===this.sign||0===this.mag&&0===this.layer)return this.sign=0,this.mag=0,this.layer=0,this;if(0===this.layer&&this.mag<0&&(this.mag=-this.mag,this.sign=-this.sign),0===this.layer&&this.mag<1/9e15)return this.layer+=1,this.mag=Math.log10(this.mag),this;var r=Math.abs(this.mag),i=Math.sign(this.mag);if(r>=9e15)return this.layer+=1,this.mag=i*Math.log10(r),this;for(;r<t&&this.layer>0;)this.layer-=1,0===this.layer?this.mag=Math.pow(10,this.mag):(this.mag=i*Math.pow(10,r),r=Math.abs(this.mag),i=Math.sign(this.mag));return 0===this.layer&&(this.mag<0?(this.mag=-this.mag,this.sign=-this.sign):0===this.mag&&(this.sign=0)),this},h.prototype.fromComponents=function(t,r,i){return this.sign=t,this.layer=r,this.mag=i,this.normalize(),this},h.prototype.fromComponents_noNormalize=function(t,r,i){return this.sign=t,this.layer=r,this.mag=i,this},h.prototype.fromMantissaExponent=function(t,r){return this.layer=1,this.sign=Math.sign(t),t=Math.abs(t),this.mag=r+Math.log10(t),this.normalize(),this},h.prototype.fromMantissaExponent_noNormalize=function(t,r){return this.fromMantissaExponent(t,r),this},h.prototype.fromDecimal=function(t){return this.sign=t.sign,this.layer=t.layer,this.mag=t.mag,this},h.prototype.fromNumber=function(t){return this.mag=Math.abs(t),this.sign=Math.sign(t),this.layer=0,this.normalize(),this};h.prototype.fromString=function(t){var r=(t=t.replace(\",\",\"\")).split(\"^^^\");if(2===r.length){var n=parseFloat(r[0]),a=parseFloat(r[1]),o=1;if(2===(l=r[1].split(\";\")).length){o=parseFloat(l[1]);isFinite(o)||(o=1)}if(isFinite(n)&&isFinite(a)){var u=h.pentate(n,a,o);return this.sign=u.sign,this.layer=u.layer,this.mag=u.mag,this}}var g=t.split(\"^^\");if(2===g.length){var l;n=parseFloat(g[0]),a=parseFloat(g[1]);if(2===(l=g[1].split(\";\")).length){o=parseFloat(l[1]);isFinite(o)||(o=1)}if(isFinite(n)&&isFinite(a)){u=h.tetrate(n,a,o);return this.sign=u.sign,this.layer=u.layer,this.mag=u.mag,this}}var m,f=t.split(\"^\");if(2===f.length){n=parseFloat(f[0]);var c=parseFloat(f[1]);if(isFinite(n)&&isFinite(c)){u=h.pow(n,c);return this.sign=u.sign,this.layer=u.layer,this.mag=u.mag,this}}if(2===(m=(t=t.trim().toLowerCase()).split(\"pt\")).length){n=10,a=parseFloat(m[0]),m[1]=m[1].replace(\"(\",\"\"),m[1]=m[1].replace(\")\",\"\");o=parseFloat(m[1]);if(isFinite(o)||(o=1),isFinite(n)&&isFinite(a)){u=h.tetrate(n,a,o);return this.sign=u.sign,this.layer=u.layer,this.mag=u.mag,this}}if(2===(m=t.split(\"p\")).length){n=10,a=parseFloat(m[0]),m[1]=m[1].replace(\"(\",\"\"),m[1]=m[1].replace(\")\",\"\");o=parseFloat(m[1]);if(isFinite(o)||(o=1),isFinite(n)&&isFinite(a)){u=h.tetrate(n,a,o);return this.sign=u.sign,this.layer=u.layer,this.mag=u.mag,this}}var p=t.split(\"e\"),y=p.length-1;if(0===y){var d=parseFloat(t);if(isFinite(d))return this.fromNumber(d)}else if(1===y){d=parseFloat(t);if(isFinite(d)&&0!==d)return this.fromNumber(d)}var M=t.split(\"e^\");if(2===M.length){this.sign=1,\"-\"==M[0].charAt(0)&&(this.sign=-1);for(var b=\"\",N=0;N<M[1].length;++N){var v=M[1].charCodeAt(N);if(!(v>=43&&v<=57||101===v))return this.layer=parseFloat(b),this.mag=parseFloat(M[1].substr(N+1)),this.normalize(),this;b+=M[1].charAt(N)}}if(y<1)return this.sign=0,this.layer=0,this.mag=0,this;var _=parseFloat(p[0]);if(0===_)return this.sign=0,this.layer=0,this.mag=0,this;c=parseFloat(p[p.length-1]);if(y>=2){var F=parseFloat(p[p.length-2]);isFinite(F)&&(c*=Math.sign(F),c+=s(F))}if(isFinite(_))if(1===y)this.sign=Math.sign(_),this.layer=1,this.mag=c+Math.log10(Math.abs(_));else{if(this.sign=Math.sign(_),this.layer=y,2===y){u=h.mul(e(1,2,c),i(_));return this.sign=u.sign,this.layer=u.layer,this.mag=u.mag,this}this.mag=c}else this.sign=\"-\"===p[0]?-1:1,this.layer=y,this.mag=c;return this.normalize(),this},h.prototype.fromValue=function(t){return _instanceof(t,h)?this.fromDecimal(t):\"number\"==typeof t?this.fromNumber(t):\"string\"==typeof t?this.fromString(t):(this.sign=0,this.layer=0,this.mag=0,this)},h.prototype.toNumber=function(){return Number.isFinite(this.layer)?0===this.layer?this.sign*this.mag:1===this.layer?this.sign*Math.pow(10,this.mag):this.mag>0?this.sign>0?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:0:Number.NaN},h.prototype.mantissaWithDecimalPlaces=function(t){return isNaN(this.m)?Number.NaN:0===this.m?0:a(this.m,t)},h.prototype.magnitudeWithDecimalPlaces=function(t){return isNaN(this.mag)?Number.NaN:0===this.mag?0:a(this.mag,t)},h.prototype.toString=function(){return 0===this.layer?this.mag<1e21&&this.mag>1e-7||0===this.mag?(this.sign*this.mag).toString():this.m+\"e\"+this.e:1===this.layer?this.m+\"e\"+this.e:this.layer<=5?(-1===this.sign?\"-\":\"\")+\"e\".repeat(this.layer)+this.mag:(-1===this.sign?\"-\":\"\")+\"(e^\"+this.layer+\")\"+this.mag},h.prototype.toExponential=function(t){return 0===this.layer?(this.sign*this.mag).toExponential(t):this.toStringWithDecimalPlaces(t)},h.prototype.toFixed=function(t){return 0===this.layer?(this.sign*this.mag).toFixed(t):this.toStringWithDecimalPlaces(t)},h.prototype.toPrecision=function(t){return this.e<=-7?this.toExponential(t-1):t>this.e?this.toFixed(t-this.exponent-1):this.toExponential(t-1)},h.prototype.valueOf=function(){return this.toString()},h.prototype.toJSON=function(){return this.toString()},h.prototype.toStringWithDecimalPlaces=function(t){return 0===this.layer?this.mag<1e21&&this.mag>1e-7||0===this.mag?(this.sign*this.mag).toFixed(t):a(this.m,t)+\"e\"+a(this.e,t):1===this.layer?a(this.m,t)+\"e\"+a(this.e,t):this.layer<=5?(-1===this.sign?\"-\":\"\")+\"e\".repeat(this.layer)+a(this.mag,t):(-1===this.sign?\"-\":\"\")+\"(e^\"+this.layer+\")\"+a(this.mag,t)},h.prototype.abs=function(){return n(0===this.sign?0:1,this.layer,this.mag)},h.prototype.neg=function(){return n(-this.sign,this.layer,this.mag)},h.prototype.negate=function(){return this.neg()},h.prototype.negated=function(){return this.neg()},h.prototype.sign=function(){return this.sign},h.prototype.sgn=function(){return this.sign},h.prototype.round=function(){return this.mag<0?h.dZero:0===this.layer?e(this.sign,0,Math.round(this.mag)):this},h.prototype.floor=function(){return this.mag<0?h.dZero:0===this.layer?e(this.sign,0,Math.floor(this.mag)):this},h.prototype.ceil=function(){return this.mag<0?h.dZero:0===this.layer?e(this.sign,0,Math.ceil(this.mag)):this},h.prototype.trunc=function(){return this.mag<0?h.dZero:0===this.layer?e(this.sign,0,Math.trunc(this.mag)):this},h.prototype.add=function(t){var r,a,s=i(t);if(!Number.isFinite(this.layer))return this;if(!Number.isFinite(s.layer))return s;if(0===this.sign)return s;if(0===s.sign)return this;if(this.sign===-s.sign&&this.layer===s.layer&&this.mag===s.mag)return n(0,0,0);if(this.layer>=2||s.layer>=2)return this.maxabs(s);if(h.cmpabs(this,s)>0?(r=this,a=s):(r=s,a=this),0===r.layer&&0===a.layer)return i(r.sign*r.mag+a.sign*a.mag);var o=r.layer*Math.sign(r.mag),u=a.layer*Math.sign(a.mag);if(o-u>=2)return r;if(0===o&&-1===u){if(Math.abs(a.mag-Math.log10(r.mag))>17)return r;var g=Math.pow(10,Math.log10(r.mag)-a.mag),l=a.sign+r.sign*g;return e(Math.sign(l),1,a.mag+Math.log10(Math.abs(l)))}if(1===o&&0===u){if(Math.abs(r.mag-Math.log10(a.mag))>17)return r;g=Math.pow(10,r.mag-Math.log10(a.mag)),l=a.sign+r.sign*g;return e(Math.sign(l),1,Math.log10(a.mag)+Math.log10(Math.abs(l)))}if(Math.abs(r.mag-a.mag)>17)return r;g=Math.pow(10,r.mag-a.mag),l=a.sign+r.sign*g;return e(Math.sign(l),1,a.mag+Math.log10(Math.abs(l)))},h.prototype.plus=function(t){return this.add(t)},h.prototype.sub=function(t){return this.add(i(t).neg())},h.prototype.subtract=function(t){return this.sub(t)},h.prototype.minus=function(t){return this.sub(t)},h.prototype.mul=function(t){var r,a,s=i(t);if(!Number.isFinite(this.layer))return this;if(!Number.isFinite(s.layer))return s;if(0===this.sign||0===s.sign)return n(0,0,0);if(this.layer===s.layer&&this.mag===-s.mag)return n(this.sign*s.sign,0,1);if(this.layer>s.layer||this.layer==s.layer&&Math.abs(this.mag)>Math.abs(s.mag)?(r=this,a=s):(r=s,a=this),0===r.layer&&0===a.layer)return i(r.sign*a.sign*r.mag*a.mag);if(r.layer>=3||r.layer-a.layer>=2)return e(r.sign*a.sign,r.layer,r.mag);if(1===r.layer&&0===a.layer)return e(r.sign*a.sign,1,r.mag+Math.log10(a.mag));if(1===r.layer&&1===a.layer)return e(r.sign*a.sign,1,r.mag+a.mag);if(2===r.layer&&1===a.layer){var o=e(Math.sign(r.mag),r.layer-1,Math.abs(r.mag)).add(e(Math.sign(a.mag),a.layer-1,Math.abs(a.mag)));return e(r.sign*a.sign,o.layer+1,o.sign*o.mag)}if(2===r.layer&&2===a.layer){o=e(Math.sign(r.mag),r.layer-1,Math.abs(r.mag)).add(e(Math.sign(a.mag),a.layer-1,Math.abs(a.mag)));return e(r.sign*a.sign,o.layer+1,o.sign*o.mag)}throw Error(\"Bad arguments to mul: \"+this+\", \"+t)},h.prototype.multiply=function(t){return this.mul(t)},h.prototype.times=function(t){return this.mul(t)},h.prototype.div=function(t){var r=i(t);return this.mul(r.recip())},h.prototype.divide=function(t){return this.div(t)},h.prototype.divideBy=function(t){return this.div(t)},h.prototype.dividedBy=function(t){return this.div(t)},h.prototype.recip=function(){return 0===this.mag?h.dNaN:0===this.layer?e(this.sign,0,1/this.mag):e(this.sign,this.layer,-this.mag)},h.prototype.reciprocal=function(){return this.recip()},h.prototype.reciprocate=function(){return this.recip()},h.prototype.cmp=function(t){var r=i(t);return this.sign>r.sign?1:this.sign<r.sign?-1:this.sign*this.cmpabs(t)},h.prototype.cmpabs=function(t){var r=i(t),e=this.mag>0?this.layer:-this.layer,n=r.mag>0?r.layer:-r.layer;return e>n?1:e<n?-1:this.mag>r.mag?1:this.mag<r.mag?-1:0},h.prototype.compare=function(t){return this.cmp(t)},h.prototype.eq=function(t){var r=i(t);return this.sign===r.sign&&this.layer===r.layer&&this.mag===r.mag},h.prototype.equals=function(t){return this.eq(t)},h.prototype.neq=function(t){return!this.eq(t)},h.prototype.notEquals=function(t){return this.neq(t)},h.prototype.lt=function(t){i(t);return-1===this.cmp(t)},h.prototype.lte=function(t){return!this.gt(t)},h.prototype.gt=function(t){i(t);return 1===this.cmp(t)},h.prototype.gte=function(t){return!this.lt(t)},h.prototype.max=function(t){var r=i(t);return this.lt(r)?r:this},h.prototype.min=function(t){var r=i(t);return this.gt(r)?r:this},h.prototype.maxabs=function(t){var r=i(t);return this.cmpabs(r)<0?r:this},h.prototype.minabs=function(t){var r=i(t);return this.cmpabs(r)>0?r:this},h.prototype.clamp=function(t,r){return this.max(t).min(r)},h.prototype.clampMin=function(t){return this.max(t)},h.prototype.clampMax=function(t){return this.min(t)},h.prototype.cmp_tolerance=function(t,r){var e=i(t);return this.eq_tolerance(e,r)?0:this.cmp(e)},h.prototype.compare_tolerance=function(t,r){return this.cmp_tolerance(t,r)},h.prototype.eq_tolerance=function(t,r){var e=i(t);if(null==r&&(r=1e-7),this.sign!==e.sign)return!1;if(Math.abs(this.layer-e.layer)>1)return!1;var n=this.mag,a=e.mag;return this.layer>e.layer&&(a=s(a)),this.layer<e.layer&&(n=s(n)),Math.abs(n-a)<=r*Math.max(Math.abs(n),Math.abs(a))},h.prototype.equals_tolerance=function(t,r){return this.eq_tolerance(t,r)},h.prototype.neq_tolerance=function(t,r){return!this.eq_tolerance(t,r)},h.prototype.notEquals_tolerance=function(t,r){return this.neq_tolerance(t,r)},h.prototype.lt_tolerance=function(t,r){var e=i(t);return!this.eq_tolerance(e,r)&&this.lt(e)},h.prototype.lte_tolerance=function(t,r){var e=i(t);return this.eq_tolerance(e,r)||this.lt(e)},h.prototype.gt_tolerance=function(t,r){var e=i(t);return!this.eq_tolerance(e,r)&&this.gt(e)},h.prototype.gte_tolerance=function(t,r){var e=i(t);return this.eq_tolerance(e,r)||this.gt(e)},h.prototype.pLog10=function(){return this.lt(h.dZero)?h.dZero:this.log10()},h.prototype.absLog10=function(){return 0===this.sign?h.dNaN:this.layer>0?e(Math.sign(this.mag),this.layer-1,Math.abs(this.mag)):e(1,0,Math.log10(this.mag))},h.prototype.log10=function(){return this.sign<=0?h.dNaN:this.layer>0?e(Math.sign(this.mag),this.layer-1,Math.abs(this.mag)):e(this.sign,0,Math.log10(this.mag))},h.prototype.log=function(t){return t=i(t),this.sign<=0?h.dNaN:t.sign<=0?h.dNaN:1===t.sign&&0===t.layer&&1===t.mag?h.dNaN:0===this.layer&&0===t.layer?e(this.sign,0,Math.log(this.mag)/Math.log(t.mag)):h.div(this.log10(),t.log10())},h.prototype.log2=function(){return this.sign<=0?h.dNaN:0===this.layer?e(this.sign,0,Math.log2(this.mag)):1===this.layer?e(Math.sign(this.mag),0,3.321928094887362*Math.abs(this.mag)):2===this.layer?e(Math.sign(this.mag),1,Math.abs(this.mag)+.5213902276543247):e(Math.sign(this.mag),this.layer-1,Math.abs(this.mag))},h.prototype.ln=function(){return this.sign<=0?h.dNaN:0===this.layer?e(this.sign,0,Math.log(this.mag)):1===this.layer?e(Math.sign(this.mag),0,2.302585092994046*Math.abs(this.mag)):2===this.layer?e(Math.sign(this.mag),1,Math.abs(this.mag)+.36221568869946325):e(Math.sign(this.mag),this.layer-1,Math.abs(this.mag))},h.prototype.logarithm=function(t){return this.log(t)},h.prototype.pow=function(t){var r=this,e=i(t);if(0===r.sign)return r;if(1===r.sign&&0===r.layer&&1===r.mag)return r;if(0===e.sign)return n(1,0,1);if(1===e.sign&&0===e.layer&&1===e.mag)return r;var a=r.absLog10().mul(e).pow10();return-1===this.sign&&e.toNumber()%2==1?a.neg():a},h.prototype.pow10=function(){if(!Number.isFinite(this.layer)||!Number.isFinite(this.mag))return h.dNaN;var t=this;if(0===t.layer){var r=Math.pow(10,t.sign*t.mag);if(Number.isFinite(r)&&Math.abs(r)>.1)return e(1,0,r);if(0===t.sign)return h.dOne;t=n(t.sign,t.layer+1,Math.log10(t.mag))}return t.sign>0&&t.mag>0?e(t.sign,t.layer+1,t.mag):t.sign<0&&t.mag>0?e(-t.sign,t.layer+1,-t.mag):h.dOne},h.prototype.pow_base=function(t){return i(t).pow(this)},h.prototype.root=function(t){var r=i(t);return this.pow(r.recip())},h.prototype.factorial=function(){return this.mag<0?this.toNumber().add(1).gamma():0===this.layer?this.add(1).gamma():1===this.layer?h.exp(h.mul(this,h.ln(this).sub(1))):h.exp(this)},h.prototype.gamma=function(){if(this.mag<0)return this.recip();if(0===this.layer){if(this.lt(n(1,0,24)))return i(function(t){if(!isFinite(t))return t;if(t<-50)return t===Math.trunc(t)?Number.NEGATIVE_INFINITY:0;for(var r=1;t<10;)r*=t,++t;var i=.9189385332046727;i+=(.5+(t-=1))*Math.log(t),i-=t;var e=t*t,n=t;return i+=1/(12*n),i+=1/(360*(n*=e)),i+=1/(1260*(n*=e)),i+=1/(1680*(n*=e)),i+=1/(1188*(n*=e)),i+=691/(360360*(n*=e)),i+=7/(1092*(n*=e)),i+=3617/(122400*(n*=e)),Math.exp(i)/r}(this.sign*this.mag));var t=this.mag-1,r=.9189385332046727;r+=(t+.5)*Math.log(t);var e=t*t,a=t,s=12*a,o=1/s,u=(r-=t)+o;if(u===r)return h.exp(r);if((u=(r=u)-(o=1/(s=360*(a*=e))))===r)return h.exp(r);r=u;var g=1/(s=1260*(a*=e));return r+=g,r-=g=1/(s=1680*(a*=e)),h.exp(r)}return 1===this.layer?h.exp(h.mul(this,h.ln(this).sub(1))):h.exp(this)},h.prototype.lngamma=function(){return this.gamma().ln()},h.prototype.exp=function(){return this.mag<0?h.dOne:0===this.layer&&this.mag<=709.7?i(Math.exp(this.sign*this.mag)):0===this.layer?e(1,1,this.sign*Math.log10(Math.E)*this.mag):1===this.layer?e(1,2,this.sign*(Math.log10(.4342944819032518)+this.mag)):e(1,this.layer+1,this.sign*this.mag)},h.prototype.sqr=function(){return this.pow(2)},h.prototype.sqrt=function(){if(0===this.layer)return i(Math.sqrt(this.sign*this.mag));if(1===this.layer)return e(1,2,Math.log10(this.mag)-.3010299956639812);var t=h.div(n(this.sign,this.layer-1,this.mag),n(1,0,2));return t.layer+=1,t.normalize(),t},h.prototype.cube=function(){return this.pow(3)},h.prototype.cbrt=function(){return this.pow(1/3)},h.prototype.tetrate=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n(1,0,1);if(t===Number.POSITIVE_INFINITY){var e=h.ln(this).neg();return e.lambertw().div(e)}if(t<0)return h.iteratedlog(r,this,-t);r=i(r);var a=t-(t=Math.trunc(t));0!==a&&(r.eq(h.dOne)?(++t,r=new h(a)):r=this.eq(10)?r.layeradd10(a):r.layeradd(a,this));for(var s=0;s<t;++s){if(r=this.pow(r),!isFinite(r.layer)||!isFinite(r.mag))return r;if(r.layer-this.layer>3)return n(r.sign,r.layer+(t-s-1),r.mag);if(s>100)return r}return r},h.prototype.iteratedexp=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n(1,0,1);return this.tetrate(t,r)},h.prototype.iteratedlog=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(r<0)return h.tetrate(t,-r,this);t=i(t);var e=i(this),n=r-(r=Math.trunc(r));if(e.layer-t.layer>3){var a=Math.min(r,e.layer-t.layer-3);r-=a,e.layer-=a}for(var s=0;s<r;++s){if(e=e.log(t),!isFinite(e.layer)||!isFinite(e.mag))return e;if(s>100)return e}return n>0&&n<1&&(e=t.eq(10)?e.layeradd10(-n):e.layeradd(-n,t)),e},h.prototype.slog=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;if(this.mag<0)return h.dNegOne;t=i(t);var r=0,e=i(this);if(e.layer-t.layer>3){var n=e.layer-t.layer-3;r+=n,e.layer-=n}for(var a=0;a<100;++a)if(e.lt(h.dZero))e=h.pow(t,e),r-=1;else{if(e.lte(h.dOne))return i(r+e.toNumber()-1);r+=1,e=h.log(e,t)}return i(r)},h.prototype.layeradd10=function(t){t=h.fromValue_noAlloc(t).toNumber();var r,e=i(this);t>=1&&(t-=r=Math.trunc(t),e.layer+=r);if(t<=-1&&(t-=r=Math.trunc(t),e.layer+=r,e.layer<0))for(var n=0;n<100;++n){if(e.layer++,e.mag=Math.log10(e.mag),!isFinite(e.mag))return e;if(e.layer>=0)break}if(t>0){for(var a=0;Number.isFinite(e.mag)&&e.mag<10;)e.mag=Math.pow(10,e.mag),++a;for(e.mag>1e10&&(e.mag=Math.log10(e.mag),e.layer++),(s=Math.log10(Math.log(1e10)/Math.log(e.mag),10))<t&&(e.mag=Math.log10(1e10),e.layer++,t-=s),e.mag=Math.pow(e.mag,Math.pow(10,t));a>0;)e.mag=Math.log10(e.mag),--a}else if(t<0){for(a=0;Number.isFinite(e.mag)&&e.mag<10;)e.mag=Math.pow(10,e.mag),++a;var s;for(e.mag>1e10&&(e.mag=Math.log10(e.mag),e.layer++),(s=Math.log10(1/Math.log10(e.mag)))>t&&(e.mag=1e10,e.layer--,t-=s),e.mag=Math.pow(e.mag,Math.pow(10,t));a>0;)e.mag=Math.log10(e.mag),--a}for(;e.layer<0;)e.layer++,e.mag=Math.log10(e.mag);return e.normalize(),e},h.prototype.layeradd=function(t,r){var i=this.slog(r).toNumber()+t;return i>=0?h.tetrate(r,i):Number.isFinite(i)?i>=-1?h.log(h.tetrate(r,i+1),r):void h.log(h.log(h.tetrate(r,i+2),r),r):h.dNaN},h.prototype.lambertw=function(){if(this.lt(-.3678794411710499))throw Error(\"lambertw is unimplemented for results less than -1, sorry!\");return this.mag<0?i(o(this.toNumber())):0===this.layer?i(o(this.sign*this.mag)):1===this.layer?u(this):2===this.layer?u(this):this.layer>=3?n(this.sign,this.layer-1,this.mag):void 0};var u=function(t){var r,i,e,n,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-10;if(!Number.isFinite(t.mag))return t;if(0===t)return t;if(1===t)return.5671432904097838;h.abs(t);r=h.ln(t);for(var s=0;s<100;++s){if(i=h.exp(-r),e=r.sub(t.mul(i)),n=r.sub(e.div(r.add(1).sub(r.add(2).mul(e).div(h.mul(2,r).add(2))))),h.abs(n.sub(r)).lt(h.abs(n).mul(a)))return n;r=n}throw Error(\"Iteration failed to converge: \"+t)};return h.prototype.ssqrt=function(){if(1==this.sign&&this.layer>=3)return n(this.sign,this.layer-1,this.mag);var t=this.ln();return t.div(t.lambertw())},h.prototype.pentate=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n(1,0,1);r=i(r);var e=t-(t=Math.trunc(t));0!==e&&(r.eq(h.dOne)?(++t,r=new h(e)):r=this.eq(10)?r.layeradd10(e):r.layeradd(e,this));for(var a=0;a<t;++a){if(r=this.tetrate(r),!isFinite(r.layer)||!isFinite(r.mag))return r;if(a>10)return r}return r},h.prototype.sin=function(){return this.mag<0?this:0===this.layer?i(Math.sin(this.sign*this.mag)):n(0,0,0)},h.prototype.cos=function(){return this.mag<0?h.dOne:0===this.layer?i(Math.cos(this.sign*this.mag)):n(0,0,0)},h.prototype.tan=function(){return this.mag<0?this:0===this.layer?i(Math.tan(this.sign*this.mag)):n(0,0,0)},h.prototype.asin=function(){return this.mag<0?this:0===this.layer?i(Math.asin(this.sign*this.mag)):n(Number.NaN,Number.NaN,Number.NaN)},h.prototype.acos=function(){return this.mag<0?i(Math.acos(this.toNumber())):0===this.layer?i(Math.acos(this.sign*this.mag)):n(Number.NaN,Number.NaN,Number.NaN)},h.prototype.atan=function(){return this.mag<0?this:0===this.layer?i(Math.atan(this.sign*this.mag)):i(Math.atan(Infinity*this.sign))},h.prototype.sinh=function(){return this.exp().sub(this.negate().exp()).div(2)},h.prototype.cosh=function(){return this.exp().add(this.negate().exp()).div(2)},h.prototype.tanh=function(){return this.sinh().div(this.cosh())},h.prototype.asinh=function(){return h.ln(this.add(this.sqr().add(1).sqrt()))},h.prototype.acosh=function(){return h.ln(this.add(this.sqr().sub(1).sqrt()))},h.prototype.atanh=function(){return this.abs().gte(1)?n(Number.NaN,Number.NaN,Number.NaN):h.ln(this.add(1).div(i(1).sub(this))).div(2)},h.prototype.ascensionPenalty=function(t){return 0===t?this:this.root(h.pow(10,t))},h.prototype.egg=function(){return this.add(9)},h.prototype.lessThanOrEqualTo=function(t){return this.cmp(t)<1},h.prototype.lessThan=function(t){return this.cmp(t)<0},h.prototype.greaterThanOrEqualTo=function(t){return this.cmp(t)>-1},h.prototype.greaterThan=function(t){return this.cmp(t)>0},h}();return h.dZero=n(0,0,0),h.dOne=n(1,0,1),h.dNegOne=n(-1,0,1),h.dTwo=n(1,0,2),h.dTen=n(1,0,10),h.dNaN=n(Number.NaN,Number.NaN,Number.NaN),h.dInf=n(1,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),h.dNegInf=n(-1,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),h.dNumberMax=e(1,0,Number.MAX_VALUE),h.dNumberMin=e(1,0,Number.MIN_VALUE),h});","module.exports = __webpack_public_path__ + \"img/discord.872a595c.png\";","module.exports = __webpack_public_path__ + \"img/logo.76d0d8bf.png\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-sidebar-layout.vue?vue&type=style&index=0&id=7c34c0a1&scoped=true&lang=css&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAABVlJREFUeJztm1uIVVUYgL+zx5x0Zo4zZpldxiYltasVpYxjmFERQhAV0RWh7DL4Ug8DQRe7oUZNmmC99mBQYEVk+FAaRTeCgvJSk9GJmpysRmvOwaxxpod/n+ac3dp7r3/fzg764Idhz7/+yzp77b3W+tcukD6dwGLgfGA+cBowE2gHml2dI8Ah4CegBOwFPgM+BH7IIMZEKQA9wEZgHzAeU74GNgBLXNu5pQPoA74hftJBndGH3D25YTqwDiiTXuJeGQHWIp3eMBxgNTBMdol75Veg140lU+YBH8UIPGn5ADgj1YxrWAlUUkwmqpSBW9NLG5qATTlINEyeIYUh0Qy8loPkbOUVYHKSyW/PQVJaeTOJTmjiv/XLe2UrMYfDszlIIq70R01+ZQ6CT0pu9kvSb249D/gUmBrQQWPAFcBh4BzgKlcSe/j4cAQZ39uBXUCr+3fQOqGMLMb22ThwsJvkvGdoewLwKPCbRXutHAQeBmYY/NrE+z6GTppkMNYLLDJc9/K24doB4CHk2fEEsKrGaQX4EvgW2I8sfw+7/5uCrClOArqQO3CK+78x4HngQWTabWKnRczdwF2uLV+mYz+3vy7EIciy+G7gTHRP4yZkWPW6gYdxk2XMPxOyklxnaWgcWKpIKG2WYx/3Y35GOtAtaXtSSSUay7CP+3dgWrVh7W25CmhRODU9jBrF8QrdNiRXYKIDCsgDQsO5Sv00OVupf6f3Qg/619KO6PEmzjvo419ca2CjsvFfwCWppqRjGTCKLoenag1od28fTzefSKxFl8OeasNOZcMfmZik5IkWpK6gyWWWg2csWLCZiRlcnqgAzynbdDvIIkHDFqV+lryo1F/oIOUqW0rIXD6vDACDCv0FDlKrs+ULVTiNYZdCt8tBCpW2DCmDaQT7FbozHXR1tlFlMI1AE2OHw0SJ2oY8vv68BO1ieWl2kA0HW1qVwTQCTYxjDrp3+qnKYBpBp0K34iB7ALbMUQaTNQXgdIV+2UH33pyhdJA184GiQn/QAb5TOlmu1M+SS5X6JQf4StnoBqV+lmhjGwC4Bt0KagxYkEy8iXIe+k2RqwFOjtBwazY5qXgDfR6zqo33Rmh8ffo5WWNbF6iVujXD0xEMjAAXppqWHRcT7cjOk7VGuiMYGEfKW5elmFwYlyP7/FFi/1cpbSCioaNIb2Y5TS4idf+jEWPebTLa56O8Byl49hP8rDgAPIAUONOiE1gD/BIQh43cazI+DXNZ+1XqCyi3IePfz/goUopeA1wJnBgx2QKy9liBVJo/Rl7BcRIfR4q/vner39byW8ApNXoXhXSCV7YhFV9bjkFK3nGTNckjQY7bkRKyqeEg9YuhWywdVqjvPFu6gD8STn4IqQ0Gck+Agc+p30CxOUEWeCAhhBciJuont9s4dZDjL35G7q/RLSLndIOcrtDn/Q/XKpILk50ovjeYi/9ZgWHqy+jNyLjyPpnLwMvEO9I+NyAhjYwgQ0pF0PRytUG/CSlTLwXOQh5kcWkLiEEjkaft/T4Gh8lmY+RYH/8aWR8nAAe5jU2GS8DCOMYtmOrj21a2kMB3RpORg4kmB38ixdILfBxptqdMtPj4tZHXSWYYAtIJL4U4PIScLn0X+AT43r1uOotoS2uIz6BfPo5fIw7Rls1xfoViBH/rSfnzuhvRHafTVJ68aDpghAw3aeYgt7pNYJpSlZd2Sx870FW5E8FBjpuFHUvRnD30clyI7SFketvQL0qLyPHTg5iDjPMm8OuAYWT2GbqwyZI24D5kA6UaaIl4v84k5FBW1d5uZDMj90XaRcitGWUZ7GU2cAey+fk/SfM3fwVWkQmXJ1MAAAAASUVORK5CYII=\"","/**\r\n * Launching: The default, game is still starting up\r\n * Playing: Normal gameplay\r\n * Paused: Gameplay is suspended, to continue you need to resume\r\n * Stopped: Gameplay is stopped, to continue you need to start\r\n */\r\nexport enum GameState {\r\n Launching = \"Launching\",\r\n Playing = \"Playing\",\r\n Paused = \"Paused\",\r\n Stopped = \"Stopped\",\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{'dark': _vm.darkMode}},[_c('igt-notifications'),_c('igt-sidebar',{attrs:{\"title\":\"Voidlings Sphere\"}},[_c('igt-sidebar-currency',{attrs:{\"currency\":_vm.CurrencyType.Voidlings}}),_c('igt-sidebar-currency',{attrs:{\"currency\":_vm.CurrencyType.CombatBots,\"label\":\"Nanobots\"}}),_c('igt-sidebar-currency',{attrs:{\"currency\":_vm.CurrencyType.VoidBatteries,\"label\":\"Void Batteries\"}}),_c('igt-tab',{attrs:{\"name\":\"Combat\",\"selected\":true}},[_c('igt-combat-feature')],1),_c('igt-tab',{attrs:{\"name\":\"Factory\",\"visible\":_vm.factoryRequirement.isCompleted}},[_c('igt-factory-feature')],1),_c('igt-tab',{attrs:{\"name\":\"Wheel\",\"visible\":_vm.wheelRequirement.isCompleted}},[_c('igt-wheel-feature')],1),_c('igt-tab',{attrs:{\"name\":\"Accomplishments\"}},[_c('igt-key-items')],1),_c('igt-tab',{attrs:{\"name\":\"Settings\"}},[_c('igt-settings')],1),(_vm.showDevPanel)?_c('igt-sidebar-category',{attrs:{\"name\":\"Other\"}}):_vm._e(),(_vm.showDevPanel)?_c('igt-tab',{attrs:{\"name\":\"Developer Panel\"}},[_c('igt-developer-panel')],1):_vm._e(),_c('igt-sidebar-category',{attrs:{\"name\":\"Socials\"}}),_c('igt-sidebar-external-link',{attrs:{\"name\":\"Discord\",\"link\":\"https://discord.gg/WzejVAx\",\"image\":\"socials/discord.png\"}}),_c('igt-sidebar-external-link',{attrs:{\"name\":\"GitHub\",\"link\":\"https://github.com/thepaperpilot/incremental-game-template\",\"image\":\"socials/github.png\"}}),_c('igt-sidebar-external-link',{attrs:{\"name\":\"Made with IGT\",\"link\":\"https://github.com/123ishaTest/incremental-game-template\",\"image\":\"socials/isha.png\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export class LocalStorage {\r\n public static store(key: string, data: Record<string, unknown>): void {\r\n localStorage.setItem(key, JSON.stringify(data));\r\n }\r\n\r\n // TODO(@Isha) add error handling here\r\n public static get(key: string): Record<string, unknown> {\r\n return JSON.parse(localStorage.getItem(key) as string) as Record<string, unknown>;\r\n }\r\n\r\n public static delete(key: string): void {\r\n localStorage.removeItem(key)\r\n }\r\n}\r\n","export enum CurrencyType {\r\n Voidlings = \"Voidlings\",\r\n CombatBots = \"CombatBots\",\r\n VoidBatteries = \"VoidBatteries\"\r\n}\r\n","import {DeveloperPanelTab} from \"@/ig-template/developer-panel/DeveloperPanelTab\";\r\n\r\nexport class DeveloperPanel {\r\n tabs: DeveloperPanelTab[];\r\n\r\n constructor(tabs: DeveloperPanelTab[]) {\r\n this.tabs = tabs;\r\n }\r\n}","import {AbstractField} from \"@/ig-template/developer-panel/fields/AbstractField\";\r\n\r\nexport class DeveloperPanelTab {\r\n label: string;\r\n children: AbstractField[];\r\n\r\n\r\n constructor(label: string, children: AbstractField[]) {\r\n this.label = label;\r\n this.children = children;\r\n }\r\n\r\n isEmpty(): boolean {\r\n return this.children.length == 0;\r\n }\r\n}","export class AbstractField {\r\n object: object | undefined;\r\n componentName: string | undefined;\r\n\r\n propertyName: string;\r\n label: string | undefined;\r\n\r\n cssClass: string;\r\n\r\n constructor(propertyName: string, label?: string) {\r\n this.propertyName = propertyName;\r\n this.label = label;\r\n this.cssClass = 'btn-green';\r\n }\r\n\r\n get displayLabel() {\r\n return this.label ?? this.propertyName;\r\n }\r\n\r\n get value() {\r\n if (this.object == undefined) {\r\n console.warn(`Cannot get warning as object is undefined for AbstractField ${this.propertyName}`)\r\n return '';\r\n }\r\n return (this.object as any)[this.propertyName];\r\n }\r\n\r\n set value(value: any) {\r\n (this.object as any)[this.propertyName] = value;\r\n }\r\n\r\n setObject(object: object): this {\r\n this.object = object;\r\n return this;\r\n }\r\n\r\n setCssClass(cssClass: string): this {\r\n this.cssClass = cssClass;\r\n return this;\r\n }\r\n\r\n setComponentName(name: string): this {\r\n this.componentName = name;\r\n return this;\r\n }\r\n}","import {AbstractField} from \"@/ig-template/developer-panel/fields/AbstractField\";\r\n\r\n/**\r\n * Runs a custom function when the button is pressed\r\n */\r\nexport class FunctionField extends AbstractField {\r\n\r\n func: Function ;\r\n\r\n constructor(func: Function, label?: string) {\r\n super('', label);\r\n this.func = func;\r\n this.setComponentName('igt-button-field');\r\n }\r\n\r\n}","import {AbstractField} from \"@/ig-template/developer-panel/fields/AbstractField\";\r\n\r\nexport class DisplayField extends AbstractField {\r\n\r\n constructor(propertyName: string, label?: string) {\r\n super(propertyName, label);\r\n this.setComponentName('igt-display-field');\r\n }\r\n\r\n}","import {AbstractField} from \"@/ig-template/developer-panel/fields/AbstractField\";\r\n\r\nexport class ChoiceField extends AbstractField {\r\n options: [string, number][];\r\n\r\n constructor(propertyName: string, options: [string, number][], label?: string) {\r\n super(propertyName, label);\r\n this.options = options;\r\n this.setComponentName('igt-choice-field');\r\n }\r\n\r\n}","import {GameState} from \"./GameState\";\r\nimport {LocalStorage} from \"@/ig-template/tools/saving/LocalStorage\";\r\nimport {CurrencyType} from \"@/ig-template/features/wallet/CurrencyType\";\r\nimport {Features} from \"@/ig-template/Features\";\r\nimport {Feature} from \"@/ig-template/features/Feature\";\r\nimport {DeveloperPanel} from \"@/ig-template/developer-panel/DeveloperPanel\";\r\nimport {DeveloperPanelTab} from \"@/ig-template/developer-panel/DeveloperPanelTab\";\r\nimport {FunctionField} from \"@/ig-template/developer-panel/fields/FunctionField\";\r\nimport {DisplayField} from \"@/ig-template/developer-panel/fields/DisplayField\";\r\nimport {ChoiceField} from \"@/ig-template/developer-panel/fields/ChoiceField\";\r\n\r\nexport class Game {\r\n private _tickInterval: number = -1;\r\n\r\n /**\r\n * Object with registered features. If you want them as a list use this.featureList\r\n */\r\n public readonly features: Features;\r\n\r\n public state: GameState;\r\n\r\n\r\n private readonly TICK_DURATION = 0.05;\r\n private readonly SAVE_INTERVAL = 30;\r\n private _nextSave = this.SAVE_INTERVAL;\r\n\r\n private gameSpeed = 1;\r\n private _lastUpdate: number = 0;\r\n\r\n /**\r\n * TODO Make sure this key is unique to your game.\r\n * Otherwise you might run into loading conflicts when multiple games are hosted on the same domain (such as <username.github.io/game)\r\n */\r\n private readonly SAVE_KEY = \"thepaperpilot.voidlings\";\r\n\r\n constructor(features: Features) {\r\n this.features = features;\r\n\r\n this.state = GameState.Launching;\r\n }\r\n\r\n public getDeveloperPanel(): DeveloperPanel {\r\n // Start with play buttons for the game\r\n const tabs: DeveloperPanelTab[] = [\r\n new DeveloperPanelTab('Game', [\r\n new DisplayField('state', 'State').setObject(this),\r\n new ChoiceField('gameSpeed', [\r\n ['0.5x', 0.5],\r\n ['1x', 1],\r\n ['2x', 2],\r\n ['4x', 4],\r\n ], 'Game speed').setObject(this),\r\n new FunctionField(() => {\r\n this.start()\r\n }, 'Start').setCssClass('btn-green'),\r\n new FunctionField(() => {\r\n this.pause()\r\n }, 'Pause').setCssClass('btn-blue'),\r\n new FunctionField(() => {\r\n this.resume()\r\n }, 'Resume').setCssClass('btn-green'),\r\n new FunctionField(() => {\r\n this.stop()\r\n }, 'Stop').setCssClass('btn-red'),\r\n ]),\r\n\r\n ];\r\n\r\n\r\n for (const feature of this.featureList) {\r\n const fields = feature.getDeveloperPanelFields();\r\n\r\n // Inject the feature into the field.\r\n for (const field of fields) {\r\n field.setObject(feature);\r\n }\r\n\r\n const tab = new DeveloperPanelTab(feature.saveKey, fields)\r\n if (!tab.isEmpty()) {\r\n tabs.push(tab)\r\n }\r\n }\r\n return new DeveloperPanel(tabs);\r\n }\r\n\r\n /**\r\n * Update all features\r\n */\r\n public update(): void {\r\n const now = new Date().getTime() / 1000;\r\n const timeDifference = Math.max(0, now - this._lastUpdate);\r\n\r\n if (this.state != GameState.Playing) {\r\n return;\r\n }\r\n\r\n const delta = timeDifference * this.gameSpeed;\r\n for (const feature of this.featureList) {\r\n feature.update(delta)\r\n }\r\n\r\n this._lastUpdate = now;\r\n this._nextSave -= delta;\r\n if (this._nextSave <= 0) {\r\n this.save();\r\n this._nextSave = this.SAVE_INTERVAL;\r\n }\r\n }\r\n\r\n public getTotalCurrencyMultiplier(type: CurrencyType): number {\r\n let multiplier = 1;\r\n for (const feature of this.featureList) {\r\n multiplier *= feature.getTotalCurrencyMultiplier(type);\r\n }\r\n return multiplier;\r\n }\r\n\r\n /**\r\n * Initialize all features\r\n */\r\n public initialize(): void {\r\n for (const feature of this.featureList) {\r\n feature.initialize(this.features);\r\n }\r\n }\r\n\r\n /**\r\n * Start the main update loop\r\n */\r\n public start(): void {\r\n if (this.state !== GameState.Stopped && this.state !== GameState.Launching) {\r\n this.printStateWarning(\"Cannot start the game twice.\");\r\n return;\r\n }\r\n\r\n for (const feature of this.featureList) {\r\n feature.start();\r\n }\r\n\r\n this._lastUpdate = new Date().getTime() / 1000;\r\n this._tickInterval = setInterval(() => this.update(), this.TICK_DURATION * 1000);\r\n\r\n this.state = GameState.Playing;\r\n console.debug(\"Game Started\");\r\n }\r\n\r\n public pause(): void {\r\n if (this.state !== GameState.Playing) {\r\n this.printStateWarning(\"Cannot pause the game if we're not playing.\");\r\n return;\r\n }\r\n clearInterval(this._tickInterval);\r\n\r\n this.state = GameState.Paused;\r\n console.debug(\"Game Paused\");\r\n }\r\n\r\n\r\n public resume(): void {\r\n if (this.state !== GameState.Paused) {\r\n this.printStateWarning(\"Cannot resume the game if we're not paused.\");\r\n return;\r\n }\r\n\r\n this._lastUpdate = new Date().getTime() / 1000;\r\n this._tickInterval = setInterval(() => this.update(), this.TICK_DURATION * 1000);\r\n\r\n this.state = GameState.Playing;\r\n console.debug(\"Game Resumed\");\r\n }\r\n\r\n /**\r\n * Stop the main update loop\r\n */\r\n public stop(): void {\r\n if (this.state === GameState.Stopped) {\r\n this.printStateWarning(\"Cannot stop the game if we're already stopped.\");\r\n return;\r\n }\r\n clearInterval(this._tickInterval);\r\n\r\n for (const feature of this.featureList) {\r\n feature.stop();\r\n }\r\n\r\n this.state = GameState.Stopped;\r\n console.debug(\"Stopped\");\r\n }\r\n\r\n /**\r\n * Recursively save all registered features\r\n */\r\n public save(): void {\r\n const res: Record<string, unknown> = {};\r\n for (const feature of this.featureList) {\r\n res[feature.saveKey] = feature.save()\r\n }\r\n LocalStorage.store(this.SAVE_KEY, res)\r\n }\r\n\r\n /**\r\n * Delete the locally stored save\r\n */\r\n public deleteSave(): void {\r\n LocalStorage.delete(this.SAVE_KEY);\r\n }\r\n\r\n /**\r\n * Recursively load all registered features\r\n */\r\n public load(): void {\r\n const saveData = LocalStorage.get(this.SAVE_KEY)\r\n if (saveData == null) {\r\n return;\r\n }\r\n for (const feature of this.featureList) {\r\n const featureSaveData: Record<string, unknown> = saveData[feature.saveKey] as Record<string, unknown>;\r\n if (featureSaveData == null) {\r\n continue;\r\n }\r\n feature.load(featureSaveData);\r\n }\r\n }\r\n\r\n private printStateWarning(reason: string): void {\r\n console.warn(`Current state = ${this.state}.`, reason);\r\n }\r\n\r\n private get featureList(): Feature[] {\r\n return Object.values(this.features)\r\n }\r\n\r\n}\r\n","import {Saveable} from \"@/ig-template/tools/saving/Saveable\";\r\nimport {SaveData} from \"@/ig-template/tools/saving/SaveData\";\r\nimport {CurrencyType} from \"@/ig-template/features/wallet/CurrencyType\";\r\nimport {Features} from \"@/ig-template/Features\";\r\nimport {AbstractField} from \"@/ig-template/developer-panel/fields/AbstractField\";\r\n\r\n/**\r\n * An abstract class that all features should extend for.\r\n */\r\nexport abstract class Feature implements Saveable {\r\n\r\n /**\r\n * Initialize all feature attributes.\r\n * Note that you should not assume other features exist already here\r\n * @param saveKey\r\n */\r\n protected constructor(saveKey: string) {\r\n this.saveKey = saveKey;\r\n }\r\n\r\n /**\r\n * Called in dev mode, decides which fields to show in the developer panel.\r\n */\r\n getDeveloperPanelFields(): AbstractField[] {\r\n return []\r\n }\r\n\r\n /**\r\n * Called after all features are created.\r\n * Can be used to subscribe to other features events\r\n */\r\n initialize(features: Features): void {\r\n // This method intentionally left blank\r\n }\r\n\r\n /**\r\n * Runs when the game gets started. Can be run multiple times if the player can stop the game\r\n */\r\n start(): void {\r\n // This method intentionally left blank\r\n }\r\n\r\n /**\r\n * Runs when the game gets stopped. NOT when the game closes\r\n */\r\n stop(): void {\r\n // This method intentionally left blank\r\n }\r\n\r\n /**\r\n * Default false to avoid not implementing the proper restrictions\r\n */\r\n canAccess(): boolean {\r\n return false;\r\n }\r\n\r\n /**\r\n * Override in features if specified\r\n * IMPORTANT: Make sure to always return 1 as the default\r\n */\r\n getTotalCurrencyMultiplier(type: CurrencyType) {\r\n return 1;\r\n }\r\n\r\n /**\r\n * Gets called every Game.TICK_DURATION\r\n * @param delta time since last update\r\n */\r\n update(delta: number): void {\r\n // Override in subclass if needed\r\n }\r\n\r\n // Saving logic\r\n saveKey: string;\r\n\r\n abstract load(data: SaveData): void;\r\n\r\n abstract save(): SaveData;\r\n\r\n\r\n}\r\n","export enum SettingId {\r\n DarkMode = 'dark-mode',\r\n ExampleMultipleChoiceSetting = 'multiple-choice',\r\n}\r\n","import {AbstractField} from \"@/ig-template/developer-panel/fields/AbstractField\";\r\n\r\nexport class NumberField extends AbstractField {\r\n\r\n\r\n constructor(propertyName: string, label?: string) {\r\n super(propertyName, label);\r\n this.setComponentName('igt-number-field');\r\n }\r\n\r\n}","import {Currency} from \"@/ig-template/features/wallet/Currency\";\r\nimport Decimal from \"@/lib/break_eternity.min\";\r\nimport {WalletSaveData} from \"@/ig-template/features/wallet/WalletSaveData\";\r\nimport {Feature} from \"@/ig-template/features/Feature\";\r\nimport {CurrencyType} from \"@/ig-template/features/wallet/CurrencyType\";\r\nimport {ISimpleEvent, SimpleEventDispatcher} from \"strongly-typed-events\";\r\nimport {AbstractField} from \"@/ig-template/developer-panel/fields/AbstractField\";\r\nimport {NumberField} from \"@/ig-template/developer-panel/fields/NumberField\";\r\nimport {FunctionField} from \"@/ig-template/developer-panel/fields/FunctionField\";\r\nimport {RangeField} from \"@/ig-template/developer-panel/fields/RangeField\";\r\nimport {DecimalValue} from \"@/lib/DecimalValueType\";\r\n\r\n\r\nexport class Wallet extends Feature {\r\n // We now store a dictionary of Decimals instead of numbers\r\n private _currencies: Record<CurrencyType, Decimal> = {} as Record<CurrencyType, Decimal>;\r\n private _multipliers: Record<CurrencyType, Decimal> = {} as Record<CurrencyType, Decimal>;\r\n\r\n private _onCurrencyGain = new SimpleEventDispatcher<Currency>();\r\n\r\n private readonly _supportedCurrencies: CurrencyType[];\r\n\r\n constructor(supportedCurrencies: CurrencyType[]) {\r\n super(\"wallet\");\r\n\r\n this._supportedCurrencies = supportedCurrencies;\r\n\r\n // Initialize currencies and multipliers\r\n for (const type of this._supportedCurrencies) {\r\n this._currencies[type as CurrencyType] = new Decimal(0);\r\n this._multipliers[type as CurrencyType] = new Decimal(1);\r\n }\r\n this._currencies[CurrencyType.Voidlings] = new Decimal(1e6);\r\n this._currencies[CurrencyType.CombatBots] = new Decimal(1);\r\n }\r\n\r\n public getAmount(type: CurrencyType): Decimal {\r\n if (!this.supportsCurrencyType(type)) {\r\n return new Decimal(0);\r\n }\r\n return this._currencies[type];\r\n }\r\n\r\n /**\r\n * Gain the specified currency and apply the global multiplier\r\n */\r\n public gainCurrency(currency: Currency): void {\r\n // Should've just used loseCurrency but oh well time constraints\r\n if (currency.amount.gt(0)) {\r\n currency.amount = currency.amount.multiply(this.getCurrencyMultiplier(currency.type));\r\n }\r\n\r\n if (!currency.isValid() || !this.supportsCurrencyType(currency.type)) {\r\n console.warn(`Could not add currency ${currency.toString()}`);\r\n return;\r\n }\r\n\r\n this._onCurrencyGain.dispatch(currency);\r\n this._currencies[currency.type] = this._currencies[currency.type].add(currency.amount);\r\n }\r\n\r\n /**\r\n * Return true if all currencies are valid and the player has the specified amount.\r\n */\r\n hasCurrencies(costs: Currency[]) {\r\n for (const cost of costs) {\r\n if (!this.hasCurrency(cost)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Return true if the currency is valid and the player has the specified amount.\r\n */\r\n public hasCurrency(currency: Currency): boolean {\r\n if (!this.supportsCurrencyType(currency.type)) {\r\n return false;\r\n }\r\n return this._currencies[currency.type].gte(currency.amount);\r\n }\r\n\r\n /**\r\n * Remove the currency amount from the specified currency.\r\n * IMPORTANT: This method does not care if amounts go negative\r\n * @param currency\r\n */\r\n public loseCurrency(currency: Currency): void {\r\n if (!currency.isValid() || !this.supportsCurrencyType(currency.type)) {\r\n console.warn(`Could not lose currency ${currency.toString()}`);\r\n return;\r\n }\r\n this._currencies[currency.type] = this._currencies[currency.type].sub(currency.amount);\r\n }\r\n\r\n /**\r\n * Remove the currencies amounts from the specified currency.\r\n * IMPORTANT: This method does not care if amounts go negative\r\n */\r\n public loseMultipleCurrencies(currencies: Currency[]) {\r\n for (const currency of currencies) {\r\n this.loseCurrency(currency);\r\n }\r\n }\r\n\r\n /**\r\n * Subtracts the specified currencies and returns true if the wallet has enough.\r\n * Otherwise return false and don't subtract anything\r\n */\r\n public payMultipleIfPossible(currencies: Currency[]): boolean {\r\n if (this.hasCurrencies(currencies)) {\r\n this.loseMultipleCurrencies(currencies);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Subtracts the specified currency and returns true if the wallet has enough.\r\n * Otherwise return false and don't subtract anything\r\n * @param currency\r\n * @constructor\r\n */\r\n public payIfPossible(currency: Currency): boolean {\r\n if (this.hasCurrency(currency)) {\r\n this.loseCurrency(currency);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Return 1 if the multiplier is not set\r\n */\r\n public getCurrencyMultiplier(type: CurrencyType): Decimal {\r\n return this._multipliers[type] ?? new Decimal(1);\r\n }\r\n\r\n public setCurrencyMultiplier(multiplier: DecimalValue, type: CurrencyType): void {\r\n multiplier = new Decimal(multiplier);\r\n if (multiplier.lte(0) || isNaN(multiplier.sign) || isNaN(multiplier.layer) || isNaN(multiplier.mag) || !this.supportsCurrencyType(type)) {\r\n return;\r\n }\r\n this._multipliers[type] = multiplier;\r\n }\r\n\r\n public supportsCurrencyType(type: CurrencyType): boolean {\r\n return this._supportedCurrencies.includes(type);\r\n }\r\n\r\n public canAccess(): boolean {\r\n return true;\r\n }\r\n\r\n public save(): WalletSaveData {\r\n return {\r\n voidlings: this._currencies[CurrencyType.Voidlings].toString(),\r\n combatBots: this._currencies[CurrencyType.CombatBots].toString(),\r\n batteries: this._currencies[CurrencyType.VoidBatteries].toString(),\r\n combatBotsMod: this._multipliers[CurrencyType.CombatBots].toString()\r\n }\r\n }\r\n\r\n public load(data: WalletSaveData): void {\r\n this._currencies[CurrencyType.Voidlings] = new Decimal(data.voidlings);\r\n this._currencies[CurrencyType.CombatBots] = new Decimal(data.combatBots);\r\n this._currencies[CurrencyType.VoidBatteries] = new Decimal(data.batteries);\r\n this._multipliers[CurrencyType.CombatBots] = new Decimal(data.combatBotsMod);\r\n }\r\n\r\n /**\r\n * Emitted whenever a currency is gained\r\n * @private\r\n */\r\n public get onCurrencyGain(): ISimpleEvent<Currency> {\r\n return this._onCurrencyGain.asEvent();\r\n }\r\n\r\n public get voidlings(): Decimal {\r\n return this._currencies.Voidlings;\r\n }\r\n\r\n public set voidlings(value: Decimal) {\r\n this._currencies.Voidlings = value;\r\n }\r\n\r\n public get combatBots(): Decimal {\r\n return this._currencies.CombatBots;\r\n }\r\n\r\n public set combatBots(value: Decimal) {\r\n this._currencies.CombatBots = value;\r\n }\r\n\r\n\r\n getDeveloperPanelFields(): AbstractField[] {\r\n return [\r\n new NumberField('voidlings', 'Voidlings'),\r\n new FunctionField(() => {\r\n this.voidlings = new Decimal(1e6);\r\n }, 'Set voidlins to 1e6').setCssClass('btn-blue')\r\n ]\r\n }\r\n}\r\n","export enum KeyItemId {\r\n Factory = 'Factory',\r\n StrongerWeapons = 'StrongerWeapons',\r\n CombatEfficiency = 'CombatEfficiency',\r\n WheelOfFortune = 'WheelOfFortune',\r\n WheelOfButter = 'WheelOfButter',\r\n Synergy = 'Synergy',\r\n Wheel = 'Wheel',\r\n MassMurder = 'MassMurder',\r\n Victory = 'Victory'\r\n}\r\n","import Decimal from \"@/lib/break_eternity.min\";\r\nimport {DecimalValue} from \"@/lib/DecimalValueType\";\r\n\r\nexport class Progress {\r\n actual: Decimal;\r\n target: Decimal;\r\n\r\n constructor(actual: DecimalValue, target: DecimalValue) {\r\n this.actual = new Decimal(actual);\r\n this.target = new Decimal(target);\r\n }\r\n\r\n getPercentage(): number {\r\n return this.actual.div(this.target).clamp(0, 1).toNumber();\r\n }\r\n}\r\n","import {Progress} from \"./Progress\";\r\nimport Decimal from \"@/lib/break_eternity.min\";\r\nimport {DecimalValue} from \"@/lib/DecimalValueType\";\r\n\r\n/**\r\n * Abstract class that can be configured to whatever requirements you like.\r\n */\r\nexport abstract class Requirement {\r\n\r\n // Getters as the user should view these as attributes\r\n\r\n get isCompleted(): boolean {\r\n return Decimal.gte(this.actualValue, this.targetValue);\r\n }\r\n\r\n get progress(): Progress {\r\n return new Progress(Decimal.min(this.actualValue, this.targetValue), this.targetValue);\r\n }\r\n\r\n abstract get hint(): string;\r\n\r\n abstract get actualValue(): DecimalValue;\r\n\r\n abstract get targetValue(): DecimalValue;\r\n}\r\n","import {Requirement} from \"@/ig-template/tools/requirements/Requirement\";\r\n\r\n/**\r\n * A requirement that is always completed\r\n */\r\nexport class NoRequirement extends Requirement {\r\n\r\n get isCompleted(): boolean {\r\n return true;\r\n }\r\n\r\n get actualValue(): number {\r\n return 0;\r\n }\r\n\r\n get hint(): string {\r\n return \"\";\r\n }\r\n\r\n get targetValue(): number {\r\n return 0;\r\n }\r\n}\r\n","import {SettingId} from \"@/ig-template/features/settings/SettingId\";\r\nimport {Requirement} from \"@/ig-template/tools/requirements/Requirement\";\r\nimport {NoRequirement} from \"@/ig-template/tools/requirements/NoRequirement\";\r\nimport {SettingOption} from \"@/ig-template/features/settings/SettingOption\";\r\nimport {SettingsValue} from \"@/ig-template/features/settings/SettingsValueType\";\r\n\r\n\r\nexport abstract class Setting {\r\n id: SettingId;\r\n displayName: string;\r\n options: SettingOption[];\r\n defaultValue: SettingsValue;\r\n value: SettingsValue;\r\n\r\n requirement: Requirement;\r\n\r\n protected constructor(id: SettingId, displayName: string, options: SettingOption[], defaultValue: SettingsValue, requirement: Requirement = new NoRequirement()) {\r\n this.id = id;\r\n this.displayName = displayName;\r\n this.options = options;\r\n this.defaultValue = defaultValue;\r\n\r\n this.value = defaultValue;\r\n\r\n this.requirement = requirement;\r\n }\r\n\r\n set(value: SettingsValue): void {\r\n if (!this.canAccess) {\r\n return;\r\n }\r\n if (this.validValue(value)) {\r\n this.value = value;\r\n } else {\r\n console.warn(`${value} is not a valid value for setting ${this.id}. It could be that the option is not yet unlocked.`);\r\n }\r\n }\r\n\r\n validValue(value: SettingsValue): boolean {\r\n const option = this.options.find((option) => option.value === value);\r\n if (option == undefined || !option.canAccess) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n isSelected(value: SettingsValue): boolean {\r\n return this.value === value;\r\n }\r\n\r\n get canAccess(): boolean {\r\n return this.requirement.isCompleted\r\n }\r\n\r\n}\r\n","import {Setting} from \"@/ig-template/features/settings/Setting\";\r\nimport {SettingId} from \"@/ig-template/features/settings/SettingId\";\r\nimport {SettingOption} from \"@/ig-template/features/settings/SettingOption\";\r\nimport {Requirement} from \"@/ig-template/tools/requirements/Requirement\";\r\nimport {SettingsValue} from \"@/ig-template/features/settings/SettingsValueType\";\r\n\r\nexport class MultipleChoiceSetting extends Setting {\r\n\r\n constructor(id: SettingId, displayName: string, options: SettingOption[], defaultValue: SettingsValue, requirement?: Requirement) {\r\n super(id, displayName, options, defaultValue, requirement);\r\n\r\n if (!this.validValue(this.defaultValue)) {\r\n throw new RangeError(`${this.defaultValue} is not a valid value for setting ${this.id}.`);\r\n }\r\n }\r\n}\r\n","import {Requirement} from \"@/ig-template/tools/requirements/Requirement\";\r\nimport {NoRequirement} from \"@/ig-template/tools/requirements/NoRequirement\";\r\nimport {SettingsValue} from \"@/ig-template/features/settings/SettingsValueType\";\r\n\r\nexport class SettingOption {\r\n displayText: string;\r\n value: SettingsValue;\r\n\r\n requirement: Requirement;\r\n\r\n\r\n constructor(displayText: string, value: SettingsValue, requirement: Requirement = new NoRequirement()) {\r\n this.displayText = displayText;\r\n this.value = value;\r\n this.requirement = requirement;\r\n }\r\n\r\n get canAccess() {\r\n return this.requirement.isCompleted;\r\n }\r\n}\r\n","import {Setting} from \"@/ig-template/features/settings/Setting\";\r\nimport {SettingId} from \"@/ig-template/features/settings/SettingId\";\r\nimport {Requirement} from \"@/ig-template/tools/requirements/Requirement\";\r\nimport {SettingOption} from \"@/ig-template/features/settings/SettingOption\";\r\n\r\n/**\r\n * A setting that can only be on or off.\r\n * The options can't have requirements but this can be solved by using the correct defaultValue and requirement.\r\n */\r\nexport class BooleanSetting extends Setting {\r\n\r\n constructor(id: SettingId, displayName: string, defaultValue: boolean, requirement?: Requirement) {\r\n super(id, displayName, [\r\n new SettingOption(\"On\", true),\r\n new SettingOption(\"Off\", false)\r\n ], defaultValue, requirement);\r\n }\r\n\r\n public toggle(): void {\r\n this.value = !this.value;\r\n }\r\n}","import {Feature} from \"@/ig-template/features/Feature\";\r\nimport {SettingsSaveData} from \"@/ig-template/features/settings/SettingsSaveData\";\r\nimport {Setting} from \"@/ig-template/features/settings/Setting\";\r\nimport {SettingId} from \"@/ig-template/features/settings/SettingId\";\r\nimport {MultipleChoiceSetting} from \"@/ig-template/features/settings/MultipleChoiceSetting\";\r\nimport {SettingOption} from \"@/ig-template/features/settings/SettingOption\";\r\nimport {BooleanSetting} from \"@/ig-template/features/settings/BooleanSetting\";\r\nimport {SettingsValue} from \"@/ig-template/features/settings/SettingsValueType\";\r\n\r\nexport class Settings extends Feature {\r\n list: Setting[];\r\n\r\n darkMode: BooleanSetting;\r\n\r\n constructor() {\r\n super(\"settings\");\r\n this.list = [];\r\n\r\n // Empty, will be overwritten in initialize()\r\n this.darkMode = {} as BooleanSetting;\r\n }\r\n\r\n registerSetting<T extends Setting>(setting: T): T {\r\n if (!this.getSetting(setting.id)) {\r\n this.list.push(setting);\r\n }\r\n return setting;\r\n }\r\n\r\n initialize() {\r\n this.darkMode = this.registerSetting(new BooleanSetting(SettingId.DarkMode, \"Dark Mode\", true));\r\n\r\n this.registerSetting(\r\n new MultipleChoiceSetting(SettingId.ExampleMultipleChoiceSetting, \"Example setting\", [\r\n new SettingOption(\"Option 1\", 1),\r\n new SettingOption(\"Option 2\", 2),\r\n new SettingOption(\"Option 3\", 3),\r\n ], 2)\r\n )\r\n }\r\n\r\n setSetting(id: SettingId, value: SettingsValue) {\r\n const setting = this.getSetting(id);\r\n if (setting) {\r\n setting.set(value);\r\n } else {\r\n console.warn(`Setting ${id} does not exist`);\r\n }\r\n\r\n }\r\n\r\n getSetting<T extends Setting>(id: SettingId): T | null {\r\n for (let i = 0; i < this.list.length; i++) {\r\n if (this.list[i].id == id) {\r\n return this.list[i] as T;\r\n }\r\n }\r\n console.warn(`Setting ${id} does not exist`);\r\n return null;\r\n }\r\n\r\n\r\n load(data: SettingsSaveData): void {\r\n for (const settingSave of data.list) {\r\n this.getSetting(settingSave.id)?.set(settingSave.value);\r\n }\r\n }\r\n\r\n save(): SettingsSaveData {\r\n\r\n return {\r\n list: this.list.map(setting => {\r\n return {\r\n id: setting.id,\r\n value: setting.value\r\n }\r\n })\r\n }\r\n\r\n }\r\n}\r\n","import {KeyItemId} from \"@/ig-template/features/key-items/KeyItemId\";\r\nimport {NoRequirement} from \"@/ig-template/tools/requirements/NoRequirement\";\r\nimport {Requirement} from \"@/ig-template/tools/requirements/Requirement\";\r\n\r\nexport class KeyItem {\r\n id: KeyItemId;\r\n name: string;\r\n description: string;\r\n unlockHint: string;\r\n image: string\r\n isUnlocked: boolean = false;\r\n requirement: Requirement;\r\n\r\n constructor(id: KeyItemId, name: string, description: string, unlockHint: string = \"\", image: string = \"\", requirement: Requirement = new NoRequirement()) {\r\n this.id = id;\r\n this.name = name;\r\n this.description = description;\r\n this.unlockHint = unlockHint;\r\n this.image = image;\r\n this.requirement = requirement;\r\n }\r\n\r\n unlock(): boolean {\r\n if (this.requirement.isCompleted && !this.isUnlocked) {\r\n this.isUnlocked = true;\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","import {Feature} from \"@/ig-template/features/Feature\";\r\nimport {ISimpleEvent, SimpleEventDispatcher} from \"strongly-typed-events\";\r\nimport {KeyItem} from \"@/ig-template/features/key-items/KeyItem\";\r\nimport {KeyItemId} from \"@/ig-template/features/key-items/KeyItemId\";\r\nimport {KeyItemSaveData} from \"@/ig-template/features/key-items/KeyItemSaveData\";\r\n\r\nexport class KeyItems extends Feature {\r\n list: Record<KeyItemId, KeyItem>\r\n\r\n private _onKeyItemGain = new SimpleEventDispatcher<KeyItem>();\r\n\r\n constructor() {\r\n super('key-items');\r\n this.list = {} as Record<KeyItemId, KeyItem>;\r\n }\r\n\r\n\r\n initialize() {\r\n this.registerKeyItem(new KeyItem(KeyItemId.Factory, \"Factory\", \"Grants access to the factory\", \"Defeat 1 voidling\", \"logo.png\"));\r\n this.registerKeyItem(new KeyItem(KeyItemId.Wheel, \"Wheel\", \"Grants access to the mystic wheel\", \"Defeat 10 voidlings\", \"logo.png\"));\r\n this.registerKeyItem(new KeyItem(KeyItemId.StrongerWeapons, \"Stronger weapons\", \"Empowers you to kill voidlings with fewer nanobots\", \"Defeat 100 voidlings\", \"logo.png\"));\r\n this.registerKeyItem(new KeyItem(KeyItemId.CombatEfficiency, \"Combat Efficiency\", \"Empowers you to kill voidlings quicker\", \"Defeat 500 voidlings\", \"logo.png\"));\r\n this.registerKeyItem(new KeyItem(KeyItemId.WheelOfFortune, \"Wheel of Fortune\", \"Empowers you to increase the effect of wheel rewards\", \"Defeat 1,000 voidlings\", \"logo.png\"));\r\n this.registerKeyItem(new KeyItem(KeyItemId.WheelOfButter, \"Wheel of Butter\", \"Empowers you to increase the speed of the wheel, and make it auto-spin\", \"Defeat 2,500 voidlings\", \"logo.png\"));\r\n this.registerKeyItem(new KeyItem(KeyItemId.Synergy, \"Synergy\", \"Empowers you to increase the efficiency of your factory\", \"Defeat 10,000 voidlings\", \"logo.png\"));\r\n this.registerKeyItem(new KeyItem(KeyItemId.MassMurder, \"Mass Murder\", \"Empowers you to kill more voidlings at once\", \"Defeat 100,000 voidlings\", \"logo.png\"));\r\n this.registerKeyItem(new KeyItem(KeyItemId.Victory, \"Victory\", \"You've won the game!\", \"Defeat 1,000,000 voidlings\", \"logo.png\"));\r\n }\r\n\r\n public registerKeyItem<T extends KeyItem>(keyItem: T): T {\r\n this.list[keyItem.id] = keyItem;\r\n return keyItem;\r\n }\r\n\r\n hasKeyItem(id: KeyItemId): boolean {\r\n return this.getKeyItem(id)?.isUnlocked;\r\n }\r\n\r\n getKeyItem(id: KeyItemId): KeyItem {\r\n return this.list[id];\r\n }\r\n\r\n gainKeyItem(id: KeyItemId) {\r\n const item = this.getKeyItem(id);\r\n if (!item) {\r\n console.warn(`Key Item with id ${id} could not be found`);\r\n return;\r\n }\r\n const didUnlock = item.unlock();\r\n if (didUnlock) {\r\n this._onKeyItemGain.dispatch(item);\r\n }\r\n }\r\n\r\n /**\r\n * Emitted whenever a currency is gained\r\n * @private\r\n */\r\n public get onKeyItemGain(): ISimpleEvent<KeyItem> {\r\n return this._onKeyItemGain.asEvent();\r\n }\r\n\r\n load(data: KeyItemSaveData): void {\r\n data.list?.forEach(id => {\r\n const item = this.getKeyItem(id);\r\n if (item) {\r\n item.isUnlocked = true;\r\n }\r\n })\r\n }\r\n\r\n save(): KeyItemSaveData {\r\n const list = [];\r\n for (const key in this.list) {\r\n if (this.list[key as KeyItemId].isUnlocked) {\r\n list.push(key as KeyItemId)\r\n }\r\n }\r\n return {\r\n list: list,\r\n };\r\n }\r\n}\r\n","export enum UpgradeId {\r\n Factory = \"Factory\",\r\n FactorySquared = \"FactorySquared\",\r\n FactoryCubed = \"FactoryCubed\",\r\n FactoryTesseracted = \"FactoryTesseracted\",\r\n Synergy = 'Synergy',\r\n StrongerWeapons = \"StrongerWeapons\",\r\n CombatEfficiency = \"CombatEfficiency\",\r\n MassMurder = \"MassMurder\",\r\n MultiSpin = \"MultiSpin\",\r\n Grease = \"Grease\"\r\n}","/**\r\n * UpgradeTypes can be used to group multiplicative bonuses together\r\n */\r\nexport enum UpgradeType {\r\n None,\r\n VoidBatteries,\r\n Nanobots\r\n}","import {AbstractUpgrade} from \"@/ig-template/tools/upgrades/AbstractUpgrade\";\r\nimport {Wallet} from \"@/ig-template/features/wallet/Wallet\";\r\nimport {UpgradeId} from \"@/ig-template/tools/upgrades/UpgradeId\";\r\nimport {Feature} from \"@/ig-template/features/Feature\";\r\nimport {Features} from \"@/ig-template/Features\";\r\nimport {UpgradesFeatureSaveData} from \"@/ig-template/tools/saving/UpgradesFeatureSaveData\";\r\n\r\n/**\r\n * An abstract class for all features that need to buy Upgrades\r\n */\r\nexport abstract class UpgradesFeature extends Feature {\r\n\r\n _wallet: Wallet = null as unknown as Wallet;\r\n upgrades: AbstractUpgrade[];\r\n\r\n protected constructor(saveKey: string, upgrades: AbstractUpgrade[] = []) {\r\n super(saveKey);\r\n this.upgrades = upgrades;\r\n }\r\n\r\n /**\r\n * When overriding, make sure to call super.initialize() or you won't have access to the _wallet\r\n */\r\n initialize(features: Features) {\r\n this._wallet = features.wallet;\r\n }\r\n\r\n getUpgrade(id: UpgradeId): AbstractUpgrade | undefined {\r\n return this.upgrades.find(upgrade => {\r\n return upgrade.id === id;\r\n });\r\n }\r\n\r\n buyUpgrade(upgrade: AbstractUpgrade): boolean {\r\n if (!this._wallet) {\r\n console.warn(\"Wallet not found, are you sure it is initialized?\")\r\n return false;\r\n }\r\n if (!upgrade.canBuy(this._wallet)) {\r\n return false;\r\n }\r\n return upgrade.buy(this._wallet);\r\n }\r\n\r\n canAfford(upgrade: AbstractUpgrade): boolean {\r\n return upgrade.canAfford(this._wallet);\r\n }\r\n\r\n /**\r\n * IMPORTANT: Make sure to call super().load(data) when overriding to also load upgrades.\r\n */\r\n load(data: UpgradesFeatureSaveData) {\r\n data.upgrades?.forEach(upgradeSaveData => {\r\n this.getUpgrade(upgradeSaveData.id as UpgradeId)?.load(upgradeSaveData);\r\n });\r\n }\r\n\r\n /**\r\n * IMPORTANT: Make sure to call super().save() when overriding to also save upgrades.\r\n */\r\n save(): UpgradesFeatureSaveData {\r\n return {\r\n upgrades: this.upgrades.map(upgrade => {\r\n return upgrade.save();\r\n })\r\n }\r\n }\r\n}\r\n","import {ISimpleEvent, SimpleEventDispatcher} from \"strongly-typed-events\";\r\nimport {Progress} from \"@/ig-template/tools/requirements/Progress\";\r\nimport {Requirement} from \"@/ig-template/tools/requirements/Requirement\";\r\nimport {NoRequirement} from \"@/ig-template/tools/requirements/NoRequirement\";\r\nimport Decimal from \"@/lib/break_eternity.min\";\r\n\r\nexport abstract class AbstractAction {\r\n description: string;\r\n durationFunc: () => number;\r\n repeat: number; // 0, x, Infinity (until error)\r\n\r\n isStarted: boolean = false;\r\n currentProgress: number = 0;\r\n\r\n requirement: Requirement;\r\n\r\n // One iteration done\r\n protected _onCompletion = new SimpleEventDispatcher<Decimal>();\r\n\r\n protected constructor(description: string, durationFunc: () => number, repeat: number = Infinity, requirement: Requirement = new NoRequirement()) {\r\n this.description = description;\r\n this.durationFunc = durationFunc;\r\n this.repeat = repeat;\r\n this.requirement = requirement\r\n }\r\n\r\n perform(delta: number): void {\r\n if (!this.isStarted) {\r\n return;\r\n }\r\n\r\n this.currentProgress += delta;\r\n\r\n if (this.canBeCompleted()) {\r\n this.complete();\r\n }\r\n }\r\n\r\n canBeCompleted() {\r\n return this.isStarted && this.currentProgress >= this.durationFunc();\r\n }\r\n\r\n complete(): void {\r\n this._onCompletion.dispatch(new Decimal(1));\r\n const canRepeat: boolean = this.gainReward();\r\n if (canRepeat && this.repeat > 0) {\r\n this.repeatAction();\r\n } else {\r\n this.stop();\r\n }\r\n }\r\n\r\n getProgress(): Progress {\r\n return new Progress(this.currentProgress, this.durationFunc());\r\n }\r\n\r\n repeatAction() {\r\n this.repeat--;\r\n this.currentProgress = 0;\r\n }\r\n\r\n /**\r\n * Override if more permissions exist.\r\n */\r\n canPerform(): boolean {\r\n return this.requirement.isCompleted;\r\n }\r\n\r\n toggle() {\r\n if (this.isStarted) {\r\n this.stop();\r\n } else {\r\n this.start();\r\n }\r\n }\r\n\r\n start(): boolean {\r\n if (!this.canPerform()) {\r\n console.log(`Can't start action ${this.description}`)\r\n return false;\r\n }\r\n this.isStarted = true;\r\n return true;\r\n }\r\n\r\n stop() {\r\n this.currentProgress = 0;\r\n this.isStarted = false;\r\n }\r\n\r\n /**\r\n * Implement with whatever the reward should be for your action.\r\n * Return false if something is blocking a repeat (full inventory, etc)\r\n */\r\n abstract gainReward(): boolean;\r\n\r\n public get onCompletion(): ISimpleEvent<Decimal> {\r\n return this._onCompletion.asEvent();\r\n }\r\n}\r\n","import {CurrencyType} from \"./CurrencyType\";\r\nimport Decimal from \"@/lib/break_eternity.min\";\r\nimport {DecimalValue} from \"@/lib/DecimalValueType\";\r\n\r\n/**\r\n * A class to store currency amounts\r\n */\r\nexport class Currency {\r\n amount: Decimal;\r\n type: CurrencyType;\r\n\r\n constructor(amount: DecimalValue, type: CurrencyType) {\r\n this.amount = new Decimal(amount);\r\n this.type = type;\r\n }\r\n\r\n /**\r\n * Whether or not this currency is valid. Your game can have different rules\r\n */\r\n public isValid(): boolean {\r\n if (isNaN(this.amount.sign) || isNaN(this.amount.layer) || isNaN(this.amount.mag)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public toString(): string {\r\n return `Currency(${this.amount}, ${this.type})`;\r\n }\r\n}\r\n","import {Requirement} from \"@/ig-template/tools/requirements/Requirement\";\r\nimport {AbstractAction} from \"@/ig-template/tools/actions/AbstractAction\";\r\nimport {NoRequirement} from \"@/ig-template/tools/requirements/NoRequirement\";\r\nimport {Wallet} from \"@/ig-template/features/wallet/Wallet\";\r\nimport {CurrencyType} from \"@/ig-template/features/wallet/CurrencyType\";\r\nimport Decimal from \"@/lib/break_eternity.min\";\r\nimport {Currency} from \"@/ig-template/features/wallet/Currency\";\r\nimport {DecimalValue} from \"@/lib/DecimalValueType\";\r\nimport {CombatFeature} from \"@/ig-template/features/combat/CombatFeature\";\r\n\r\nexport class CombatAction extends AbstractAction {\r\n durationFunc: () => number;\r\n requirement: Requirement;\r\n costFunc: (amount: Decimal) => Decimal;\r\n multiCompleteFunc: () => DecimalValue;\r\n\r\n _wallet: Wallet = null as unknown as Wallet;\r\n _combat: CombatFeature = null as unknown as CombatFeature;\r\n\r\n constructor(wallet: Wallet, combat: CombatFeature, description: string, durationFunc: () => number, costFunc: (amount: Decimal) => Decimal, multiCompleteFunc: () => DecimalValue, requirement: Requirement = new NoRequirement()) {\r\n super(description, durationFunc, Infinity);\r\n this._wallet = wallet;\r\n this._combat = combat;\r\n this.durationFunc = durationFunc;\r\n this.costFunc = costFunc;\r\n this.multiCompleteFunc = multiCompleteFunc;\r\n this.requirement = requirement;\r\n }\r\n\r\n complete(): void {\r\n let completions = Decimal.floor(Decimal.div(this.currentProgress, this.durationFunc())).times(this.multiCompleteFunc());\r\n completions = Decimal.min(completions, this.repeat);\r\n // For the sake of the game jam I'm not using the costFun here lol\r\n completions = Decimal.min(completions, Decimal.affordGeometricSeries(this._wallet.getAmount(CurrencyType.CombatBots), 1, Decimal.times(.1, this._combat.stronger.getBonus()).add(1), Decimal.sub(1e6, this._wallet.getAmount(CurrencyType.Voidlings)).add(1)).add(1).toNumber());\r\n this._onCompletion.dispatch(completions);\r\n\r\n const canRepeat: boolean = this.handleCompletions(completions);\r\n if (canRepeat && completions.lt(this.repeat)) {\r\n this.repeatAction();\r\n } else {\r\n this.stop();\r\n }\r\n }\r\n\r\n getCombatCost() {\r\n return this.costFunc(Decimal.sub(1e6, this._wallet.getAmount(CurrencyType.Voidlings)));\r\n }\r\n\r\n canPerform(): boolean {\r\n if (this.isStarted) {\r\n if (this._wallet.getAmount(CurrencyType.CombatBots).lt(0)) {\r\n return false;\r\n }\r\n } else {\r\n if (this._wallet.getAmount(CurrencyType.CombatBots).lt(this.getCombatCost())) {\r\n return false;\r\n }\r\n }\r\n\r\n return super.canPerform();\r\n }\r\n\r\n start(): boolean {\r\n const ret = super.start();\r\n if (ret) {\r\n this._wallet.gainCurrency(new Currency(this.getCombatCost().neg(), CurrencyType.CombatBots));\r\n }\r\n return ret;\r\n }\r\n\r\n stop() {\r\n super.stop();\r\n this._wallet.gainCurrency(new Currency(this.getCombatCost().div(this._wallet.getCurrencyMultiplier(CurrencyType.CombatBots)), CurrencyType.CombatBots));\r\n // I don't know what's causing this and it's too late to find out\r\n if (this._wallet.getAmount(CurrencyType.CombatBots).lt(0)) {\r\n this._wallet.gainCurrency(new Currency(this._wallet.getAmount(CurrencyType.CombatBots).neg().div(this._wallet.getCurrencyMultiplier(CurrencyType.CombatBots)), CurrencyType.CombatBots));\r\n }\r\n }\r\n\r\n handleCompletions(completions: Decimal): boolean {\r\n // If we killed more than 1, remove the combatBots for the non-first completion\r\n if (completions.gt(1)) {\r\n this._wallet.gainCurrency(new Currency(Decimal.sumGeometricSeries(completions.sub(1), 1, Decimal.times(.1, this._combat.stronger.getBonus()).add(1), Decimal.sub(1e6, this._wallet.getAmount(CurrencyType.Voidlings))).neg(), CurrencyType.CombatBots));\r\n }\r\n // Note: we remove this either way because stop() will add the cost back if we return false\r\n this._wallet.gainCurrency(new Currency(this.getCombatCost().neg(), CurrencyType.CombatBots));\r\n\r\n\r\n if (!this.canPerform()) {\r\n return false;\r\n }\r\n\r\n // Check if we can still perform this recipe again\r\n return true;\r\n }\r\n\r\n gainReward(): boolean {\r\n return false;\r\n }\r\n\r\n}\r\n","/**\r\n * Generic upgrade class\r\n */\r\nimport {Saveable} from \"@/ig-template/tools/saving/Saveable\";\r\nimport {UpgradeType} from \"@/ig-template/tools/upgrades/UpgradeType\";\r\nimport {UpgradeId} from \"@/ig-template/tools/upgrades/UpgradeId\";\r\nimport {Currency} from \"@/ig-template/features/wallet/Currency\";\r\nimport {UpgradeSaveData} from \"@/ig-template/tools/upgrades/UpgradeSaveData\";\r\nimport {Wallet} from \"@/ig-template/features/wallet/Wallet\";\r\nimport {DecimalValue} from \"@/lib/DecimalValueType\";\r\nimport Decimal from \"@/lib/break_eternity.min\";\r\n\r\nexport abstract class AbstractUpgrade implements Saveable {\r\n id: UpgradeId;\r\n type: UpgradeType;\r\n displayName: string;\r\n maxLevel: Decimal;\r\n level: Decimal;\r\n\r\n protected constructor(id: UpgradeId, type: UpgradeType, displayName: string, maxLevel: DecimalValue) {\r\n this.id = id;\r\n this.type = type;\r\n this.displayName = displayName;\r\n this.maxLevel = new Decimal(maxLevel);\r\n this.level = new Decimal(0);\r\n }\r\n\r\n abstract getCost(): Currency;\r\n\r\n getBonus(): Decimal {\r\n return this.getBonusForLevel(this.level);\r\n }\r\n\r\n abstract getBonusForLevel(level: Decimal): Decimal;\r\n\r\n getUpgradeBonus(): Decimal {\r\n if (!this.isMaxLevel()) {\r\n return this.getBonusForLevel(this.level.add(1)).sub(this.getBonusForLevel(this.level));\r\n }\r\n return new Decimal(0);\r\n }\r\n\r\n isMaxLevel(): boolean {\r\n return this.level.gte(this.maxLevel);\r\n }\r\n\r\n canAfford(wallet: Wallet): boolean {\r\n return wallet.hasCurrency(this.getCost());\r\n }\r\n\r\n // Override in subclass when other requirements exist.\r\n canBuy(wallet: Wallet): boolean {\r\n return this.level.lt(this.maxLevel) && this.canAfford(wallet);\r\n }\r\n\r\n buy(wallet: Wallet): boolean {\r\n if (!this.canBuy(wallet)) {\r\n return false;\r\n }\r\n\r\n wallet.loseCurrency(this.getCost());\r\n this.levelUp();\r\n return true;\r\n }\r\n\r\n levelUp(): void {\r\n this.level = this.level.add(1);\r\n }\r\n\r\n\r\n // Save logic\r\n saveKey: string = this.id;\r\n\r\n load(data: UpgradeSaveData): void {\r\n this.level = Decimal.fromString(data.level);\r\n }\r\n\r\n save(): UpgradeSaveData {\r\n return {\r\n 'id': this.id,\r\n 'level': this.level.toString(),\r\n }\r\n }\r\n\r\n}","import {AbstractUpgrade} from \"@/ig-template/tools/upgrades/AbstractUpgrade\";\r\nimport {Currency} from \"@/ig-template/features/wallet/Currency\";\r\nimport {UpgradeId} from \"@/ig-template/tools/upgrades/UpgradeId\";\r\nimport {UpgradeType} from \"@/ig-template/tools/upgrades/UpgradeType\";\r\nimport {DecimalValue} from \"@/lib/DecimalValueType\";\r\nimport Decimal from \"@/lib/break_eternity.min\";\r\n\r\nexport class ContinuousUpgrade extends AbstractUpgrade {\r\n bonusFunc: (level: Decimal) => Decimal;\r\n costFunc: (level: Decimal) => Currency;\r\n\r\n\r\n constructor(id: UpgradeId, type: UpgradeType, displayName: string, maxLevel: DecimalValue, bonusFunc: (level: Decimal) => Decimal, costFunc: (level: Decimal) => Currency) {\r\n super(id, type, displayName, maxLevel);\r\n this.bonusFunc = bonusFunc;\r\n this.costFunc = costFunc;\r\n }\r\n\r\n getBonusForLevel(level: Decimal): Decimal {\r\n return this.bonusFunc(level);\r\n }\r\n\r\n getCost(): Currency {\r\n return this.costFunc(this.level);\r\n }\r\n\r\n}","import {Features} from \"@/ig-template/Features\";\r\nimport {UpgradesFeature} from \"@/ig-template/features/UpgradesFeature\";\r\nimport {CombatAction} from \"@/ig-template/tools/actions/CombatAction\";\r\nimport {Currency} from \"@/ig-template/features/wallet/Currency\";\r\nimport {CurrencyType} from \"@/ig-template/features/wallet/CurrencyType\";\r\nimport {ContinuousUpgrade} from \"@/ig-template/tools/upgrades/ContinuousUpgrade\";\r\nimport {KeyItems} from \"@/ig-template/features/key-items/KeyItems\";\r\nimport {UpgradeId} from \"@/ig-template/tools/upgrades/UpgradeId\";\r\nimport {UpgradeType} from \"@/ig-template/tools/upgrades/UpgradeType\";\r\nimport Decimal from \"@/lib/break_eternity.min\";\r\nimport {KeyItemId} from \"@/ig-template/features/key-items/KeyItemId\";\r\nimport {CombatFeatureSaveData} from \"@/ig-template/features/combat/CombatFeatureSaveData\";\r\nimport {App} from \"@/App\";\r\n\r\nexport class CombatFeature extends UpgradesFeature {\r\n\r\n _keyItems: KeyItems = null as unknown as KeyItems;\r\n\r\n combatAction = undefined as unknown as CombatAction;\r\n\r\n stronger: ContinuousUpgrade = null as unknown as ContinuousUpgrade;\r\n efficiency: ContinuousUpgrade = null as unknown as ContinuousUpgrade;\r\n mass: ContinuousUpgrade = null as unknown as ContinuousUpgrade;\r\n\r\n constructor() {\r\n super('combat-feature');\r\n }\r\n\r\n initialize(features: Features) {\r\n this._wallet = features.wallet;\r\n this._keyItems = features.keyItems;\r\n\r\n this.combatAction = new CombatAction(features.wallet, this, \"Destroy a voidling\", () => new Decimal(5).divide(this.efficiency.getBonus()).toNumber(), amount => Decimal.pow(Decimal.times(.1, this.stronger.getBonus()).add(1), amount).div(this.stronger.getBonus()), () => this.mass.getBonus());\r\n this.combatAction.onCompletion.sub((completions) => {\r\n this._wallet.gainCurrency(new Currency(completions, CurrencyType.VoidBatteries));\r\n this._wallet.gainCurrency(new Currency(completions.neg(), CurrencyType.Voidlings));\r\n const killedVoidlings = Decimal.sub(1e6, this._wallet.getAmount(CurrencyType.Voidlings)).add(1);\r\n if (killedVoidlings.gte(1)) {\r\n this._keyItems.gainKeyItem(KeyItemId.Factory);\r\n }\r\n if (killedVoidlings.gte(10)) {\r\n this._keyItems.gainKeyItem(KeyItemId.Wheel);\r\n }\r\n if (killedVoidlings.gte(100)) {\r\n this._keyItems.gainKeyItem(KeyItemId.StrongerWeapons);\r\n }\r\n if (killedVoidlings.gte(500)) {\r\n this._keyItems.gainKeyItem(KeyItemId.CombatEfficiency);\r\n }\r\n if (killedVoidlings.gte(1000)) {\r\n this._keyItems.gainKeyItem(KeyItemId.WheelOfFortune);\r\n }\r\n if (killedVoidlings.gte(2500)) {\r\n this._keyItems.gainKeyItem(KeyItemId.WheelOfButter);\r\n App.game.features.wheel.spin();\r\n }\r\n if (killedVoidlings.gte(10000)) {\r\n this._keyItems.gainKeyItem(KeyItemId.Synergy);\r\n }\r\n if (killedVoidlings.gte(100000)) {\r\n this._keyItems.gainKeyItem(KeyItemId.MassMurder);\r\n }\r\n if (killedVoidlings.gte(1000000)) {\r\n this._keyItems.gainKeyItem(KeyItemId.Victory);\r\n App.game.pause();\r\n }\r\n });\r\n\r\n this.stronger = new ContinuousUpgrade(\r\n UpgradeId.StrongerWeapons,\r\n UpgradeType.VoidBatteries,\r\n 'Stronger Weapons',\r\n 10,\r\n (level) => {\r\n return Decimal.pow(.6, level);\r\n }, (level) => {\r\n return new Currency(Decimal.pow(10, level.add(2)), CurrencyType.VoidBatteries);\r\n }\r\n );\r\n this.efficiency = new ContinuousUpgrade(\r\n UpgradeId.CombatEfficiency,\r\n UpgradeType.Nanobots,\r\n 'Combat efficiency',\r\n 5,\r\n (level) => {\r\n return Decimal.pow(2, level);\r\n }, (level) => {\r\n return new Currency(Decimal.pow(100, level.add(5)), CurrencyType.CombatBots);\r\n }\r\n );\r\n this.mass = new ContinuousUpgrade(\r\n UpgradeId.MassMurder,\r\n UpgradeType.VoidBatteries,\r\n 'Mass Murder',\r\n 5,\r\n (level) => {\r\n return Decimal.pow(2, level);\r\n }, (level) => {\r\n return new Currency(Decimal.pow(10, level.add(3)), CurrencyType.VoidBatteries);\r\n }\r\n );\r\n\r\n this.upgrades = [\r\n this.stronger,\r\n this.efficiency,\r\n this.mass\r\n ]\r\n }\r\n\r\n update(delta: number) {\r\n this.combatAction.perform(delta);\r\n }\r\n\r\n save(): CombatFeatureSaveData {\r\n return {\r\n ...super.save(),\r\n combatProgress: this.combatAction.currentProgress,\r\n combatStarted: this.combatAction.isStarted\r\n };\r\n }\r\n\r\n load(data: CombatFeatureSaveData) {\r\n super.load(data);\r\n this.combatAction.currentProgress = data.combatProgress ? data.combatProgress : 0;\r\n this.combatAction.isStarted = data.combatStarted;\r\n }\r\n}\r\n","import {UpgradesFeature} from \"@/ig-template/features/UpgradesFeature\";\r\nimport {ContinuousUpgrade} from \"@/ig-template/tools/upgrades/ContinuousUpgrade\";\r\nimport {UpgradeId} from \"@/ig-template/tools/upgrades/UpgradeId\";\r\nimport {UpgradeType} from \"@/ig-template/tools/upgrades/UpgradeType\";\r\nimport {Currency} from \"@/ig-template/features/wallet/Currency\";\r\nimport {CurrencyType} from \"@/ig-template/features/wallet/CurrencyType\";\r\nimport Decimal from \"@/lib/break_eternity.min\";\r\nimport {FactoryFeatureSaveData} from \"@/ig-template/features/factory/FactoryFeatureSaveData\";\r\n\r\nexport class FactoryFeature extends UpgradesFeature {\r\n\r\n factory: ContinuousUpgrade;\r\n factorySquared: ContinuousUpgrade;\r\n factoryCubed: ContinuousUpgrade;\r\n factoryTesseracted: ContinuousUpgrade;\r\n synergy: ContinuousUpgrade;\r\n\r\n factories: Decimal = new Decimal(0);\r\n factoriesSquared: Decimal = new Decimal(0);\r\n factoriesCubed: Decimal = new Decimal(0);\r\n\r\n constructor() {\r\n super('factory-feature');\r\n\r\n this.factory = new ContinuousUpgrade(\r\n UpgradeId.Factory,\r\n UpgradeType.VoidBatteries,\r\n 'Nanobots Factory',\r\n Infinity,\r\n (level) => {\r\n return level.add(1);\r\n }, (level) => {\r\n return new Currency(Decimal.pow(5, level), CurrencyType.VoidBatteries);\r\n }\r\n );\r\n this.factorySquared = new ContinuousUpgrade(\r\n UpgradeId.FactorySquared,\r\n UpgradeType.VoidBatteries,\r\n 'Nanobots Factory Squared',\r\n Infinity,\r\n (level) => {\r\n return level.add(1);\r\n }, (level) => {\r\n return new Currency(Decimal.pow(10, level.add(2)), CurrencyType.VoidBatteries);\r\n }\r\n );\r\n this.factoryCubed = new ContinuousUpgrade(\r\n UpgradeId.FactoryCubed,\r\n UpgradeType.VoidBatteries,\r\n 'Nanobots Factory Cubed',\r\n Infinity,\r\n (level) => {\r\n return level.add(1);\r\n }, (level) => {\r\n return new Currency(Decimal.pow(20, level.add(3)), CurrencyType.VoidBatteries);\r\n }\r\n );\r\n this.factoryTesseracted = new ContinuousUpgrade(\r\n UpgradeId.FactoryTesseracted,\r\n UpgradeType.VoidBatteries,\r\n 'Nanobots Factory Tesseracted',\r\n Infinity,\r\n (level) => {\r\n return level.add(1);\r\n }, (level) => {\r\n return new Currency(Decimal.pow(40, level.add(4)), CurrencyType.VoidBatteries);\r\n }\r\n );\r\n this.synergy = new ContinuousUpgrade(\r\n UpgradeId.Synergy,\r\n UpgradeType.VoidBatteries,\r\n 'Synergize all factories',\r\n 10,\r\n (level) => {\r\n return level.add(1);\r\n }, (level) => {\r\n return new Currency(Decimal.pow(1e3, level.add(2)), CurrencyType.VoidBatteries);\r\n }\r\n );\r\n\r\n this.upgrades = [\r\n this.factory,\r\n this.factorySquared,\r\n this.factoryCubed,\r\n this.factoryTesseracted,\r\n this.synergy\r\n ];\r\n }\r\n\r\n update(delta: number) {\r\n const synergy = this.synergy.getBonus();\r\n\r\n const factoriesTesseractedBonus = this.factoryTesseracted.getBonus().pow(synergy).sub(1);\r\n this.factoriesCubed = this.factoriesCubed.add(factoriesTesseractedBonus.times(delta).times(Decimal.pow(2, factoriesTesseractedBonus)));\r\n\r\n const factoriesCubedBonus = this.factoryCubed.getBonus().pow(synergy).sub(1);\r\n this.factoriesSquared = this.factoriesSquared.add(this.factoriesCubed.add(factoriesCubedBonus).times(delta).times(Decimal.pow(2, factoriesCubedBonus)));\r\n\r\n const factoriesSquaredBonus = this.factorySquared.getBonus().pow(synergy).sub(1);\r\n this.factories = this.factories.add(this.factoriesSquared.add(factoriesSquaredBonus).times(delta).times(Decimal.pow(2, factoriesSquaredBonus)));\r\n\r\n const factoriesBonus = this.factory.getBonus().pow(synergy).sub(1);\r\n this._wallet.gainCurrency(new Currency(this.factories.add(factoriesBonus).times(delta).times(Decimal.pow(2, factoriesBonus)), CurrencyType.CombatBots));\r\n }\r\n\r\n save(): FactoryFeatureSaveData {\r\n return {\r\n ...super.save(),\r\n factories: this.factories.toString(),\r\n factoriesSquared: this.factoriesSquared.toString(),\r\n factoriesCubed:this.factoriesCubed.toString()\r\n };\r\n }\r\n\r\n load(data: FactoryFeatureSaveData) {\r\n super.load(data);\r\n this.factories = data.factories ? Decimal.fromString(data.factories) : new Decimal(0);\r\n this.factoriesSquared = data.factoriesSquared ? Decimal.fromString(data.factoriesSquared) : new Decimal(0);\r\n this.factoriesCubed = data.factoriesCubed ? Decimal.fromString(data.factoriesCubed) : new Decimal(0);\r\n }\r\n}\r\n","export class Random {\r\n /**\r\n * Return a random integer between min (inclusive) and max (exclusive)\r\n * @param min inclusive\r\n * @param max exclusive\r\n */\r\n static intBetween(min: number, max: number): number {\r\n return Math.floor(Math.random() * (max - min) + min);\r\n }\r\n\r\n /**\r\n * Return a boolean with probability [0, 1] to be true.\r\n * Returns false if the probability is not in this range. Can be ignored with the second argument requireNormalizedProbability.\r\n */\r\n static booleanWithProbability(probability: number, requireNormalizedProbability: boolean = true): boolean {\r\n if (requireNormalizedProbability && (probability < 0 || probability > 1)) {\r\n console.warn(`Trying to generate a boolean with probability ${probability} outside of [0,1].\r\n Run this method with requireNormalizedProbability=false if you're okay with this.`);\r\n return false;\r\n }\r\n return Math.random() < probability;\r\n }\r\n\r\n /**\r\n * Return a boolean with a 1 in chance to be true.\r\n * booleanWithChance(300) for example\r\n * @param chance\r\n */\r\n static booleanWithOneInChance(chance: number): boolean {\r\n return this.intBetween(0, chance) == 0;\r\n }\r\n\r\n /**\r\n * Return a random float between min (inclusive) and max (exclusive)\r\n * @param min inclusive\r\n * @param max exclusive\r\n */\r\n static floatBetween(min: number, max: number): number {\r\n return Math.random() * (max - min) + min;\r\n }\r\n\r\n /**\r\n * Return a random index from the array\r\n */\r\n static arrayIndex<T>(array: T[]): number {\r\n return this.intBetween(0, array.length);\r\n }\r\n\r\n /**\r\n * Get a random entry from the array\r\n */\r\n static fromArray<T>(array: T[]): T {\r\n return array[this.arrayIndex(array)];\r\n }\r\n\r\n /**\r\n * Shuffle an array using fisher-yates\r\n * @param array\r\n */\r\n static shuffle<T>(array: T[]): T[] {\r\n let currentIndex = array.length, temporaryValue, randomIndex;\r\n\r\n // While there remain elements to shuffle...\r\n while (0 !== currentIndex) {\r\n // Pick a remaining element...\r\n randomIndex = Math.floor(Math.random() * currentIndex);\r\n currentIndex -= 1;\r\n\r\n // And swap it with the current element.\r\n temporaryValue = array[currentIndex];\r\n array[currentIndex] = array[randomIndex];\r\n array[randomIndex] = temporaryValue;\r\n }\r\n\r\n return array;\r\n }\r\n}\r\n","import {Outcome} from \"@/ig-template/tools/probability/Outcome\";\r\nimport {Random} from \"@/ig-template/tools/probability/Random\";\r\n\r\nexport class WeightedDistribution<T> {\r\n outcomes: Outcome<T>[];\r\n\r\n constructor(outcomes: Outcome<T>[] = []) {\r\n this.outcomes = outcomes;\r\n }\r\n\r\n public outcomesWithMetRequirements(): Outcome<T>[] {\r\n return this.outcomes.filter(o => o.canGet());\r\n }\r\n\r\n draw(random?: number): T {\r\n if (this.outcomesWithMetRequirements().length === 0) {\r\n throw new Error(\"Cannot draw from empty distribution\");\r\n }\r\n const totalWeight = this.getTotalWeight();\r\n random = random == null ? Random.floatBetween(0, totalWeight) : totalWeight * random;\r\n\r\n let weight: number = 0;\r\n for (const outcome of this.outcomesWithMetRequirements()) {\r\n weight += outcome.weight;\r\n if (random <= weight) {\r\n return outcome.item;\r\n }\r\n }\r\n console.error(`Could not draw an item for random ${random}. This should never happen`);\r\n return Random.fromArray(this.outcomesWithMetRequirements()).item;\r\n }\r\n\r\n /**\r\n * Calculate the total weight of all outcomes\r\n */\r\n getTotalWeight(): number {\r\n let weight = 0;\r\n for (const outcome of this.outcomesWithMetRequirements()) {\r\n weight += outcome.weight;\r\n }\r\n return weight;\r\n }\r\n\r\n addOutcome(outcome: Outcome<T>) {\r\n this.outcomes.push(outcome);\r\n }\r\n\r\n removeOutcome(outcome: Outcome<T>) {\r\n const index = this.outcomes.indexOf(outcome);\r\n if (index !== -1) {\r\n this.outcomes.splice(index, 1);\r\n }\r\n }\r\n}","import {Requirement} from \"@/ig-template/tools/requirements/Requirement\";\r\nimport {NoRequirement} from \"@/ig-template/tools/requirements/NoRequirement\";\r\n\r\nexport class Outcome<T> {\r\n public item: T;\r\n public weight: number;\r\n public requirement: Requirement\r\n\r\n constructor(item: T, weight: number, requirement: Requirement = new NoRequirement()) {\r\n this.item = item;\r\n this.weight = weight;\r\n this.requirement = requirement;\r\n }\r\n\r\n canGet(): boolean {\r\n return this.requirement.isCompleted;\r\n }\r\n}","import {WeightedDistribution} from \"@/ig-template/tools/probability/WeightedDistribution\";\r\nimport Decimal from \"@/lib/break_eternity.min\";\r\nimport {Random} from \"@/ig-template/tools/probability/Random\";\r\nimport {WheelFeatureSaveData} from \"@/ig-template/features/wheel/WheelFeatureSaveData\";\r\nimport {WheelOutcome} from \"@/ig-template/features/wheel/WheelOutcome\";\r\nimport {UpgradesFeature} from \"@/ig-template/features/UpgradesFeature\";\r\nimport {ContinuousUpgrade} from \"@/ig-template/tools/upgrades/ContinuousUpgrade\";\r\nimport {UpgradeId} from \"@/ig-template/tools/upgrades/UpgradeId\";\r\nimport {UpgradeType} from \"@/ig-template/tools/upgrades/UpgradeType\";\r\nimport {Currency} from \"@/ig-template/features/wallet/Currency\";\r\nimport {CurrencyType} from \"@/ig-template/features/wallet/CurrencyType\";\r\nimport {KeyItemId} from \"@/ig-template/features/key-items/KeyItemId\";\r\nimport {App} from \"@/App\";\r\n\r\nexport class WheelFeature extends UpgradesFeature {\r\n\r\n initial: number = 0;\r\n progress: number = 0;\r\n target: number = 0;\r\n spins: Decimal = new Decimal(-1);\r\n distribution: WeightedDistribution<WheelOutcome>;\r\n multispin: ContinuousUpgrade = null as unknown as ContinuousUpgrade;\r\n grease: ContinuousUpgrade = null as unknown as ContinuousUpgrade;\r\n\r\n constructor(distribution: WeightedDistribution<WheelOutcome>) {\r\n super('wheel');\r\n this.distribution = distribution;\r\n\r\n this.multispin = new ContinuousUpgrade(\r\n UpgradeId.MultiSpin,\r\n UpgradeType.Nanobots,\r\n 'Multi Spin',\r\n 25,\r\n (level) => {\r\n return level.add(1);\r\n }, (level) => {\r\n return new Currency(Decimal.pow(10, level.add(10)), CurrencyType.CombatBots);\r\n }\r\n );\r\n this.grease = new ContinuousUpgrade(\r\n UpgradeId.Grease,\r\n UpgradeType.VoidBatteries,\r\n 'Grease',\r\n 5,\r\n (level) => {\r\n return Decimal.pow(2, level);\r\n }, (level) => {\r\n return new Currency(Decimal.pow(10, level.add(4)), CurrencyType.VoidBatteries);\r\n }\r\n );\r\n\r\n this.upgrades = [\r\n this.multispin,\r\n this.grease\r\n ]\r\n }\r\n\r\n spin() {\r\n if (this.spins.neq(0) && !this.isSpinning()) {\r\n this.initial = this.current;\r\n this.progress = 0;\r\n this.target = Random.floatBetween(2, 4);\r\n this.spins = this.spins.sub(1);\r\n }\r\n }\r\n\r\n isSpinning(): boolean {\r\n return this.current !== this.target;\r\n }\r\n\r\n update(delta: number) {\r\n if (this.initial !== this.target) {\r\n this.progress += delta;\r\n if (this.progress > this.duration) {\r\n this.initial = this.target = this.target % 1;\r\n this.distribution.draw(this.current).func();\r\n if (App.game.features.keyItems.hasKeyItem(KeyItemId.WheelOfButter)) {\r\n this.spin();\r\n }\r\n }\r\n }\r\n }\r\n\r\n save(): WheelFeatureSaveData {\r\n return {\r\n ...super.save(),\r\n initial: this.initial,\r\n progress: this.progress,\r\n target: this.target,\r\n spins: this.spins.toString()\r\n };\r\n }\r\n\r\n load(data: WheelFeatureSaveData) {\r\n super.load(data);\r\n this.initial = data.initial || 0;\r\n this.progress = data.progress || 0;\r\n this.target = data.target || 0;\r\n this.spins = data.spins ? Decimal.fromString(data.spins) : new Decimal(0);\r\n }\r\n\r\n get current(): number {\r\n return this.initial + (this.target - this.initial) * this.ease(this.progress / this.duration);\r\n }\r\n\r\n ease(x: number): number {\r\n return 1 - Math.pow(1 - x, 4);\r\n /*\r\n const c1 = 1.70158;\r\n const c3 = c1 + 1;\r\n\r\n return 1 + c3 * Math.pow(x - 1, 3) + c1 * Math.pow(x - 1, 2);\r\n */\r\n }\r\n\r\n get duration(): number {\r\n return Decimal.div(4, this.grease.getBonus()).toNumber();\r\n }\r\n\r\n}\r\n","export class WheelOutcome {\r\n\r\n func: () => void;\r\n description: string;\r\n\r\n constructor(func: () => void, description: string) {\r\n this.func = func;\r\n this.description = description;\r\n }\r\n}","import {Game} from \"./ig-template/Game\";\r\nimport {Wallet} from \"@/ig-template/features/wallet/Wallet\";\r\nimport {CurrencyType} from \"@/ig-template/features/wallet/CurrencyType\";\r\nimport {Settings} from \"@/ig-template/features/settings/Settings\";\r\nimport {KeyItems} from \"@/ig-template/features/key-items/KeyItems\";\r\nimport {CombatFeature} from \"@/ig-template/features/combat/CombatFeature\";\r\nimport {FactoryFeature} from \"@/ig-template/features/factory/FactoryFeature\";\r\nimport {WeightedDistribution} from \"@/ig-template/tools/probability/WeightedDistribution\";\r\nimport {Outcome} from \"@/ig-template/tools/probability/Outcome\";\r\nimport {WheelFeature} from \"@/ig-template/features/wheel/WheelFeature\";\r\nimport {WheelOutcome} from \"@/ig-template/features/wheel/WheelOutcome\";\r\nimport {Currency} from \"@/ig-template/features/wallet/Currency\";\r\nimport Decimal from \"@/lib/break_eternity.min\";\r\n\r\nexport class App {\r\n static inProduction: boolean = (process.env.NODE_ENV === \"production\");\r\n\r\n static game: Game;\r\n\r\n static start(): void {\r\n\r\n this.game = this.getDefaultGame();\r\n this.game.initialize();\r\n this.game.load();\r\n this.game.start();\r\n }\r\n\r\n\r\n public static getDefaultGame(): Game {\r\n return new Game(\r\n {\r\n // TODO Add more currencies here\r\n wallet: new Wallet([CurrencyType.Voidlings, CurrencyType.CombatBots, CurrencyType.VoidBatteries]),\r\n combat: new CombatFeature(),\r\n factory: new FactoryFeature(),\r\n wheel: new WheelFeature(new WeightedDistribution([\r\n new Outcome<WheelOutcome>(new WheelOutcome(() => App.game.features.wallet.gainCurrency(new Currency(Decimal.sub(1e6, App.game.features.wallet.voidlings).div(4).times(App.game.features.wheel.multispin.getBonus()), CurrencyType.VoidBatteries)), \"Gain some batteries based on killed voidlings\"), 5),\r\n new Outcome<WheelOutcome>(new WheelOutcome(() => App.game.features.wallet.gainCurrency(new Currency(Decimal.sub(1e6, App.game.features.wallet.voidlings).times(App.game.features.wheel.multispin.getBonus()), CurrencyType.VoidBatteries)), \"Gain many batteries based on killed voidlings\"), 2),\r\n new Outcome<WheelOutcome>(new WheelOutcome(() => {\r\n for (const feature of Object.values(App.game.features)) {\r\n feature.update(Decimal.times(60, App.game.features.wheel.multispin.getBonus()).toNumber());\r\n }\r\n }, \"Skip 1 minute in time\"), 5),\r\n new Outcome<WheelOutcome>(new WheelOutcome(() => {\r\n for (const feature of Object.values(App.game.features)) {\r\n feature.update(Decimal.times(900, App.game.features.wheel.multispin.getBonus()).toNumber());\r\n }\r\n }, \"Skip 15 minutes in time\"), 1),\r\n new Outcome<WheelOutcome>(new WheelOutcome(() => App.game.features.wallet.setCurrencyMultiplier(App.game.features.wallet.getCurrencyMultiplier(CurrencyType.CombatBots).add(App.game.features.wheel.multispin.getBonus()), CurrencyType.CombatBots), \"Gain permanent +1x nanobots gain\"), 1)\r\n ])),\r\n settings: new Settings(),\r\n keyItems: new KeyItems()\r\n }\r\n );\r\n }\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"flex h-screen bg-gray-100 dark:bg-gray-800 font-roboto\"},[_c('div',{staticClass:\"fixed z-20 inset-0 bg-black opacity-50 transition-opacity lg:hidden\",class:_vm.sidebarOpen ? 'block' : 'hidden',on:{\"click\":function($event){_vm.sidebarOpen = false}}}),_c('div',{staticClass:\"fixed z-30 inset-y-0 left-0 w-60 transition duration-300 transform bg-white dark:bg-gray-900 overflow-y-auto lg:translate-x-0 lg:static lg:inset-0 shadow-xl\",class:_vm.sidebarOpen ? 'translate-x-0 ease-out' : '-translate-x-full ease-in'},[_c('div',{staticClass:\"flex items-center justify-center mt-2\"},[_c('div',{staticClass:\"flex items-center p-2 mx-2\"},[_c('img',{staticClass:\"h-12 w-12\",attrs:{\"src\":require(\"@/assets/logo.png\"),\"alt\":\"logo\"}}),_c('span',{staticClass:\"text-gray-800 dark:text-white text-xl font-semibold text-center\"},[_vm._v(_vm._s(_vm.title))])])]),_c('nav',{staticClass:\"flex flex-col mt-10 px-4 text-left\"},_vm._l((_vm.visibleTabs),function(tab,index){\nvar _obj;\nreturn _c('a',{key:'tabasd'+index,staticClass:\"flex flex-row w-full justify-between items-center tab-entry dark:text-white\",class:{\n 'bg-gray-200 dark:text-gray-700': tab.isActive,\n 'hover:text-gray-700 hover:bg-gray-200 cursor-pointer dark:hover:text-gray-700': !tab.isCategory\n },style:(tab.containerStyle),attrs:{\"href\":tab.link,\"target\":\"_blank\"},on:{\"click\":function($event){tab.canSelect ? _vm.selectTab(tab) : ''}}},[(tab.isCategory)?_c('div',{key:'tab'+index,class:( _obj = { 'w-full text-sm text-left': true }, _obj[tab.classes] = true, _obj )},[_vm._v(\" \"+_vm._s(tab.name)+\" \"),(tab.hideSeparator !== false)?_c('hr'):_vm._e()]):_c('span',[_vm._v(_vm._s(tab.name))]),(tab.image)?_c('img',{staticClass:\"w-8 h-8\",attrs:{\"src\":require('@/assets/' +tab.image),\"alt\":tab.image}}):_vm._e()])}),0)]),_c('div',{staticClass:\"flex-1 flex flex-col overflow-hidden\"},[_c('header',{staticClass:\"flex justify-between items-center p-6\"},[_c('div',{staticClass:\"flex items-center space-x-4 lg:space-x-0\"},[_c('button',{staticClass:\"text-gray-500 dark:text-gray-300 focus:outline-none lg:hidden\",on:{\"click\":function($event){_vm.sidebarOpen = true}}},[_c('svg',{staticClass:\"h-6 w-6\",attrs:{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M4 6H20M4 12H20M4 18H11\",\"stroke\":\"currentColor\",\"stroke-width\":\"2\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})])]),_c('div',[(_vm.activeTab)?_c('h1',{staticClass:\"text-2xl font-medium text-gray-800 dark:text-white\"},[_vm._v(_vm._s(_vm.activeTab.name))]):_vm._e()])])]),_c('main',{staticClass:\"flex-1 overflow-x-hidden overflow-y-auto\"},[_c('div',{staticClass:\"container mx-auto px-6 py-8\"},[_c('div',{staticClass:\"grid place-items-center text-gray-500 dark:text-gray-300 text-xl border-4 border-gray-300 shadow-md\"},[_c('div',{staticClass:\"w-full\"},[_vm._t(\"default\")],2)])])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <div class=\"flex h-screen bg-gray-100 dark:bg-gray-800 font-roboto\">\r\n <div :class=\"sidebarOpen ? 'block' : 'hidden'\" @click=\"sidebarOpen = false\"\r\n class=\"fixed z-20 inset-0 bg-black opacity-50 transition-opacity lg:hidden\"></div>\r\n\r\n <div :class=\"sidebarOpen ? 'translate-x-0 ease-out' : '-translate-x-full ease-in'\"\r\n class=\"fixed z-30 inset-y-0 left-0 w-60 transition duration-300 transform bg-white dark:bg-gray-900 overflow-y-auto lg:translate-x-0 lg:static lg:inset-0 shadow-xl\">\r\n <div class=\"flex items-center justify-center mt-2\">\r\n <div class=\"flex items-center p-2 mx-2\">\r\n <img class=\"h-12 w-12\" :src=\"require(`@/assets/logo.png`)\" alt=\"logo\">\r\n <span\r\n class=\"text-gray-800 dark:text-white text-xl font-semibold text-center\">{{ title }}</span>\r\n </div>\r\n </div>\r\n\r\n <nav class=\"flex flex-col mt-10 px-4 text-left\">\r\n\r\n <a class=\"flex flex-row w-full justify-between items-center tab-entry dark:text-white\" :key=\"'tabasd'+index\"\r\n v-for=\"(tab, index) in visibleTabs\"\r\n :class=\"{\r\n 'bg-gray-200 dark:text-gray-700': tab.isActive,\r\n 'hover:text-gray-700 hover:bg-gray-200 cursor-pointer dark:hover:text-gray-700': !tab.isCategory\r\n }\"\r\n :style=\"tab.containerStyle\"\r\n :href=\"tab.link\" target=\"_blank\"\r\n @click=\"tab.canSelect ? selectTab(tab) : ''\"\r\n >\r\n\r\n <div v-if=\"tab.isCategory\" :class=\"{ 'w-full text-sm text-left': true, [tab.classes]: true }\" :key=\"'tab'+index\">\r\n {{ tab.name }}\r\n <hr v-if=\"tab.hideSeparator !== false\"/>\r\n </div>\r\n <span v-else>{{ tab.name }}</span>\r\n <img v-if=\"tab.image\" class=\"w-8 h-8\" :src=\"require('@/assets/' +tab.image)\" :alt=\"tab.image\"/>\r\n\r\n </a>\r\n\r\n </nav>\r\n </div>\r\n\r\n <div class=\"flex-1 flex flex-col overflow-hidden\">\r\n <header class=\"flex justify-between items-center p-6\">\r\n <div class=\"flex items-center space-x-4 lg:space-x-0\">\r\n <button @click=\"sidebarOpen = true\"\r\n class=\"text-gray-500 dark:text-gray-300 focus:outline-none lg:hidden\">\r\n <svg class=\"h-6 w-6\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M4 6H20M4 12H20M4 18H11\" stroke=\"currentColor\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </button>\r\n\r\n <div>\r\n <h1 v-if=activeTab class=\"text-2xl font-medium text-gray-800 dark:text-white\">{{ activeTab.name }}</h1>\r\n </div>\r\n </div>\r\n\r\n\r\n </header>\r\n\r\n <main class=\"flex-1 overflow-x-hidden overflow-y-auto\">\r\n <div class=\"container mx-auto px-6 py-8\">\r\n <div\r\n class=\"grid place-items-center text-gray-500 dark:text-gray-300 text-xl border-4 border-gray-300 shadow-md\">\r\n <div class=\"w-full\">\r\n <slot></slot>\r\n </div>\r\n </div>\r\n </div>\r\n </main>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\nexport default {\r\n name: \"igt-sidebar\",\r\n props: {\r\n title: {\r\n type: String,\r\n required: true\r\n },\r\n },\r\n\r\n data() {\r\n return {\r\n sidebarOpen: true,\r\n darkMode: true,\r\n dropdownOpen: true,\r\n tabs: [],\r\n };\r\n },\r\n\r\n computed: {\r\n activeTab() {\r\n return this.tabs.find(tab => {\r\n return tab.isActive;\r\n });\r\n },\r\n visibleTabs() {\r\n return this.tabs.filter(tab => tab.visible !== false);\r\n }\r\n },\r\n created() {\r\n this.tabs = this.$children;\r\n },\r\n methods: {\r\n selectTab(selectedTab) {\r\n this.tabs.forEach(tab => {\r\n tab.isActive = (tab.name === selectedTab.name);\r\n });\r\n }\r\n }\r\n\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.tab-entry {\r\n @apply mt-1 p-2 text-sm text-gray-600 rounded w-full h-10;\r\n}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-sidebar-layout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-sidebar-layout.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-sidebar-layout.vue?vue&type=template&id=7c34c0a1&scoped=true&\"\nimport script from \"./igt-sidebar-layout.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-sidebar-layout.vue?vue&type=script&lang=js&\"\nimport style0 from \"./igt-sidebar-layout.vue?vue&type=style&index=0&id=7c34c0a1&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7c34c0a1\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isActive),expression:\"isActive\"}]},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div v-show=\"isActive\">\r\n <slot></slot>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\nexport default {\r\n name: \"igt-tab\",\r\n props: {\r\n name: {required: true},\r\n selected: {default: false},\r\n visible: {default: true}\r\n },\r\n\r\n data() {\r\n return {\r\n canSelect: true,\r\n isActive: false\r\n };\r\n },\r\n\r\n computed: {\r\n href() {\r\n return '#' + this.name.toLowerCase().replace(/ /g, '-');\r\n }\r\n },\r\n\r\n mounted() {\r\n this.isActive = this.selected;\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-tab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-tab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-tab.vue?vue&type=template&id=7810e5d8&scoped=true&\"\nimport script from \"./igt-tab.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-tab.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7810e5d8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('notificationGroup',{attrs:{\"group\":\"top-left\"}},[_c('div',{staticClass:\"z-50 fixed inset-0 flex px-4 py-6 pointer-events-none p-6 items-start justify-start\"},[_c('div',{staticClass:\"max-w-sm w-full\"},[_c('notification',{scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar notifications = ref.notifications;\nreturn _vm._l((notifications),function(notification){return _c('div',{key:notification.id,staticClass:\"max-w-sm w-full mx-auto bg-white shadow-md rounded-lg overflow-hidden mt-4\"},[_c('igt-notification',{attrs:{\"notification\":notification}})],1)})}}])})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"flex justify-center items-center w-12\",class:_vm.backgroundColor},[_c('div',{staticClass:\"text-xl fa\",class:_vm.icon})]),_c('div',{staticClass:\"-mx-3 py-2 px-4\"},[_c('div',{staticClass:\"mx-3\"},[_c('span',{staticClass:\"font-semibold\",class:_vm.textColor},[_vm._v(_vm._s(_vm.notification.title))]),_c('p',{staticClass:\"text-gray-600 text-sm\"},[_vm._v(_vm._s(_vm.notification.text))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"flex\">\r\n <div class=\"flex justify-center items-center w-12\" :class=\"backgroundColor\">\r\n <div class=\"text-xl fa\" :class=\"icon\"></div>\r\n </div>\r\n\r\n <div class=\"-mx-3 py-2 px-4\">\r\n <div class=\"mx-3\">\r\n <span class=\"font-semibold\" :class=\"textColor\">{{ notification.title }}</span>\r\n <p class=\"text-gray-600 text-sm\">{{ notification.text }}</p>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\nexport default {\r\n name: \"igt-notification\",\r\n props: {\r\n notification: {\r\n type: Object,\r\n required: true,\r\n },\r\n },\r\n computed: {\r\n textColor() {\r\n switch (this.notification.type) {\r\n case 'success':\r\n return 'text-green-500'\r\n case 'error':\r\n return 'text-red-500'\r\n default:\r\n return 'text-gray-500';\r\n }\r\n },\r\n backgroundColor() {\r\n switch (this.notification.type) {\r\n case 'success':\r\n return 'bg-green-500'\r\n case 'error':\r\n return 'bg-red-500'\r\n default:\r\n return 'bg-gray-500';\r\n }\r\n },\r\n icon() {\r\n switch (this.notification.type) {\r\n case 'success':\r\n return 'fa-check'\r\n case 'error':\r\n return 'fa-times'\r\n default:\r\n return 'fa-question';\r\n }\r\n }\r\n },\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-notification.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-notification.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-notification.vue?vue&type=template&id=c18bba3c&scoped=true&\"\nimport script from \"./igt-notification.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-notification.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c18bba3c\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <notificationGroup group=\"top-left\">\r\n <div\r\n class=\"z-50 fixed inset-0 flex px-4 py-6 pointer-events-none p-6 items-start justify-start\"\r\n >\r\n <div class=\"max-w-sm w-full\">\r\n <notification v-slot=\"{notifications}\">\r\n <div\r\n class=\"max-w-sm w-full mx-auto bg-white shadow-md rounded-lg overflow-hidden mt-4\"\r\n v-for=\"notification in notifications\"\r\n :key=\"notification.id\"\r\n >\r\n <igt-notification :notification=\"notification\"></igt-notification>\r\n </div>\r\n </notification>\r\n </div>\r\n </div>\r\n </notificationGroup>\r\n</template>\r\n\r\n<script>\r\n\r\nimport IgtNotification from \"@/components/util/igt-notification\";\r\n\r\nexport default {\r\n name: \"igt-notifications\",\r\n components: {IgtNotification},\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-notifications.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-notifications.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-notifications.vue?vue&type=template&id=ff769dd2&scoped=true&\"\nimport script from \"./igt-notifications.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-notifications.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ff769dd2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('igt-feature',{attrs:{\"container-class\":\"bg-yellow-100 dark:bg-gray-700\"}},[_c('igt-tabs',_vm._l((_vm.developerPanel.tabs),function(tab,index){return _c('igt-tab',{key:index + '-' +tab.label,attrs:{\"name\":_vm._f(\"humanizeString\")(tab.label),\"selected\":index === 0}},_vm._l((tab.children),function(field,index){return _c('div',{key:index + '-' +field.propertyName},[_c(field.componentName,{tag:\"component\",attrs:{\"field\":field}})],1)}),0)}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"flex flex-row\"},[_c('span',{staticClass:\"align-middle m-4\"},[_vm._v(_vm._s(_vm.field.displayLabel))]),_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.field.value),expression:\"field.value\",modifiers:{\"number\":true}}],staticClass:\"input-primary w-32\",attrs:{\"type\":\"number\"},domProps:{\"value\":(_vm.field.value)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.field, \"value\", _vm._n($event.target.value))},\"blur\":function($event){return _vm.$forceUpdate()}}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"flex flex-row\">\r\n <span class=\"align-middle m-4\">{{ field.displayLabel }}</span>\r\n <label>\r\n <input class=\"input-primary w-32\" v-model.number=\"field.value\" type=\"number\">\r\n </label>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {NumberField} from \"@/ig-template/developer-panel/fields/NumberField\";\r\n\r\nexport default {\r\n name: \"igt-number-field\",\r\n\r\n props: {\r\n field: {\r\n type: NumberField,\r\n required: true,\r\n }\r\n },\r\n\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-number-field.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-number-field.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-number-field.vue?vue&type=template&id=513e79e2&scoped=true&\"\nimport script from \"./igt-number-field.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-number-field.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"513e79e2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"flex flex-row\"},[_c('button',{staticClass:\"btn\",class:_vm.field.cssClass,on:{\"click\":function($event){return _vm.run()}}},[_vm._v(\" \"+_vm._s(_vm.field.displayLabel)+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"flex flex-row\">\r\n <button class=\"btn\" :class=\"field.cssClass\" @click=\"run()\">\r\n {{ field.displayLabel }}\r\n </button>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {FunctionField} from \"@/ig-template/developer-panel/fields/FunctionField\";\r\n\r\nexport default {\r\n name: \"igt-button-field\",\r\n\r\n props: {\r\n field: {\r\n type: FunctionField,\r\n required: true,\r\n }\r\n },\r\n methods: {\r\n run: function () {\r\n this.field.func();\r\n }\r\n },\r\n\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-button-field.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-button-field.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-button-field.vue?vue&type=template&id=67107b8a&scoped=true&\"\nimport script from \"./igt-button-field.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-button-field.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"67107b8a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"flex flex-row\"},[_c('div',{staticClass:\"align-middle m-2\"},[_vm._v(_vm._s(_vm.field.displayLabel)+\" - \"+_vm._s(_vm.field.value))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.field.value),expression:\"field.value\",modifiers:{\"number\":true}}],staticClass:\"input-range\",attrs:{\"type\":\"range\"},domProps:{\"value\":(_vm.field.value)},on:{\"__r\":function($event){_vm.$set(_vm.field, \"value\", _vm._n($event.target.value))},\"blur\":function($event){return _vm.$forceUpdate()}}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import {AbstractField} from \"@/ig-template/developer-panel/fields/AbstractField\";\r\n\r\nexport class RangeField extends AbstractField {\r\n\r\n min: number;\r\n max: number\r\n step: number\r\n\r\n constructor(propertyName: string, min: number = 0, max: number = 100, step = 1, label?: string) {\r\n super(propertyName, label);\r\n this.min = min;\r\n this.max = max;\r\n this.step = step;\r\n this.setComponentName('igt-range-field');\r\n }\r\n\r\n}","<template>\r\n <div class=\"flex flex-row\">\r\n <div class=\"align-middle m-2\">{{ field.displayLabel }} - {{ field.value }}</div>\r\n <input type=\"range\" class=\"input-range\" v-model.number=\"field.value\"/>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {RangeField} from \"@/ig-template/developer-panel/fields/RangeField\";\r\n\r\nexport default {\r\n name: \"igt-range-field\",\r\n\r\n props: {\r\n field: {\r\n type: RangeField,\r\n required: true,\r\n }\r\n },\r\n\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-range-field.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-range-field.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-range-field.vue?vue&type=template&id=265de67a&scoped=true&\"\nimport script from \"./igt-range-field.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-range-field.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"265de67a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"tabs\"},[_c('ul',{staticClass:\"flex flex-row\"},_vm._l((_vm.tabs),function(tab,index){return _c('li',{key:'tab'+index,staticClass:\"p-2\",class:{ 'text-green-500': tab.isActive }},[_c('a',{staticClass:\"text-lg\",attrs:{\"href\":tab.href},on:{\"click\":function($event){return _vm.selectTab(tab)}}},[_vm._v(_vm._s(tab.name))])])}),0)]),_c('hr'),_c('br'),_c('div',{staticClass:\"tabs-details\"},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <div class=\"tabs\">\r\n <ul class=\"flex flex-row\">\r\n <li class=\"p-2\" :key=\"'tab'+index\" v-for=\"(tab, index) in tabs\" :class=\"{ 'text-green-500': tab.isActive }\">\r\n <a class=\"text-lg\" :href=\"tab.href\" @click=\"selectTab(tab)\">{{ tab.name }}</a>\r\n </li>\r\n </ul>\r\n </div>\r\n <hr/>\r\n <br>\r\n\r\n <div class=\"tabs-details\">\r\n <slot></slot>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\nexport default {\r\n name: \"igt-tabs\",\r\n data() {\r\n return {tabs: []};\r\n },\r\n\r\n created() {\r\n\r\n this.tabs = this.$children;\r\n\r\n },\r\n methods: {\r\n selectTab(selectedTab) {\r\n this.tabs.forEach(tab => {\r\n tab.isActive = (tab.name === selectedTab.name);\r\n });\r\n }\r\n }\r\n\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-tabs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-tabs.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-tabs.vue?vue&type=template&id=6b4f20d2&scoped=true&\"\nimport script from \"./igt-tabs.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-tabs.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6b4f20d2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-lg\"},[_vm._v(_vm._s(_vm.field.displayLabel)+\": \"+_vm._s(_vm.field.value)+\" \")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"text-lg\">{{ field.displayLabel }}:\r\n {{ field.value }}\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {DisplayField} from \"@/ig-template/developer-panel/fields/DisplayField\";\r\n\r\nexport default {\r\n name: \"igt-display-field\",\r\n\r\n props: {\r\n field: {\r\n type: DisplayField,\r\n required: true,\r\n }\r\n },\r\n\r\n\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-display-field.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-display-field.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-display-field.vue?vue&type=template&id=15aabec4&scoped=true&\"\nimport script from \"./igt-display-field.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-display-field.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"15aabec4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"flex flex-row\"},[_c('div',{staticClass:\"align-middle m-2\"},[_vm._v(_vm._s(_vm.field.displayLabel))]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.field.value),expression:\"field.value\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.field, \"value\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.field.options),function(option){return _c('option',{key:option.value,domProps:{\"value\":option[1]}},[_vm._v(\" \"+_vm._s(option[0])+\" \")])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"flex flex-row\">\r\n <div class=\"align-middle m-2\">{{ field.displayLabel }}</div>\r\n <select v-model=\"field.value\">\r\n <option :key=\"option.value\" v-for=\"option in field.options\" v-bind:value=\"option[1]\">\r\n {{ option[0] }}\r\n </option>\r\n </select>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {ChoiceField} from \"@/ig-template/developer-panel/fields/ChoiceField\";\r\n\r\nexport default {\r\n name: \"igt-choice-field\",\r\n\r\n props: {\r\n field: {\r\n type: ChoiceField,\r\n required: true,\r\n }\r\n },\r\n\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-choice-field.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-choice-field.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-choice-field.vue?vue&type=template&id=799c53f7&scoped=true&\"\nimport script from \"./igt-choice-field.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-choice-field.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"799c53f7\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"feature-tab\",class:_vm.containerClass},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"feature-tab\" :class=\"containerClass\">\r\n <slot></slot>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\nexport default {\r\n name: \"igt-feature\",\r\n props: {\r\n containerClass: {\r\n type: String,\r\n default: 'bg-gray-200 dark:bg-gray-700'\r\n },\r\n },\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-feature.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-feature.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-feature.vue?vue&type=template&id=b9bea2f4&scoped=true&\"\nimport script from \"./igt-feature.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-feature.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b9bea2f4\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <igt-feature container-class=\"bg-yellow-100 dark:bg-gray-700\">\r\n <igt-tabs>\r\n <igt-tab :name=\"tab.label | humanizeString \" :selected=\"index === 0\" :key=\"index + '-' +tab.label\"\r\n v-for=\"(tab, index) in developerPanel.tabs\">\r\n <div :key=\"index + '-' +field.propertyName\" v-for=\"(field, index) in tab.children\">\r\n <component :is=\"field.componentName\" :field=\"field\"></component>\r\n </div>\r\n </igt-tab>\r\n </igt-tabs>\r\n </igt-feature>\r\n</template>\r\n\r\n<script>\r\nimport {App} from \"@/App.ts\"\r\nimport IgtNumberField from \"@/components/developer-panel/fields/igt-number-field\";\r\nimport IgtButtonField from \"@/components/developer-panel/fields/igt-button-field\";\r\nimport IgtRangeField from \"@/components/developer-panel/fields/igt-range-field\";\r\nimport IgtTabs from \"@/components/util/igt-tabs\";\r\nimport IgtTab from \"@/components/util/igt-tab\";\r\nimport IgtDisplayField from \"@/components/developer-panel/fields/igt-display-field\";\r\nimport IgtChoiceField from \"@/components/developer-panel/fields/igt-choice-field\";\r\nimport IgtFeature from \"@/components/util/igt-feature\";\r\n\r\nexport default {\r\n name: \"igt-developer-panel\",\r\n components: {\r\n IgtFeature,\r\n IgtChoiceField, IgtDisplayField, IgtTab, IgtTabs, IgtRangeField, IgtButtonField, IgtNumberField\r\n },\r\n data() {\r\n return {\r\n developerPanel: App.game.getDeveloperPanel(),\r\n }\r\n },\r\n computed: {},\r\n\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-developer-panel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-developer-panel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-developer-panel.vue?vue&type=template&id=34e95240&scoped=true&\"\nimport script from \"./igt-developer-panel.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-developer-panel.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"34e95240\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isActive),expression:\"isActive\"}]})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div v-show=\"isActive\">\r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\nexport default {\r\n name: \"igt-sidebar-category\",\r\n props: {\r\n name: {required: true},\r\n selected: {default: false}\r\n },\r\n\r\n data() {\r\n return {\r\n isCategory: true,\r\n isActive: false\r\n };\r\n },\r\n\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-sidebar-category.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-sidebar-category.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-sidebar-category.vue?vue&type=template&id=1323ddac&scoped=true&\"\nimport script from \"./igt-sidebar-category.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-sidebar-category.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1323ddac\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isActive),expression:\"isActive\"}]})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div v-show=\"isActive\">\r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\nexport default {\r\n name: \"igt-sidebar-external-link\",\r\n props: {\r\n name: {required: true},\r\n link: {\r\n type: String,\r\n required: true,\r\n },\r\n image: {\r\n type: String,\r\n default: '',\r\n }\r\n },\r\n\r\n data() {\r\n return {\r\n isExternalLink: true,\r\n isActive: false\r\n };\r\n },\r\n\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-sidebar-external-link.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-sidebar-external-link.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-sidebar-external-link.vue?vue&type=template&id=b0bc8d86&scoped=true&\"\nimport script from \"./igt-sidebar-external-link.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-sidebar-external-link.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b0bc8d86\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('igt-feature',[_c('igt-boolean-setting',{attrs:{\"setting\":_vm.darkMode,\"true-icon\":\"fa-moon\",\"false-icon\":\"fa-sun\"}}),_c('button',{staticClass:\"btn btn-red\",on:{\"click\":_vm.resetSave}},[_vm._v(\"Reset Save\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('button',{staticClass:\"btn btn-blue\",on:{\"click\":_vm.toggle}},[_c('div',{staticClass:\"flex flex-row items-center\"},[(_vm.icon)?_c('span',{staticClass:\"fa text-lg p-2 w-8\",class:_vm.icon}):_vm._e(),_c('span',[_vm._v(_vm._s(_vm.setting.displayName))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <button @click=\"toggle\" class=\"btn btn-blue\">\r\n <div class=\"flex flex-row items-center\">\r\n <span v-if=\"icon\" class=\"fa text-lg p-2 w-8\" :class=\"icon\"></span>\r\n <span>{{ setting.displayName }}</span>\r\n </div>\r\n </button>\r\n </div>\r\n\r\n\r\n</template>\r\n\r\n<script>\r\nimport {BooleanSetting} from \"@/ig-template/features/settings/BooleanSetting\";\r\n\r\nexport default {\r\n name: \"igt-boolean-setting\",\r\n props: {\r\n setting: {\r\n type: BooleanSetting,\r\n required: true,\r\n },\r\n trueIcon: {\r\n type: String,\r\n default: '',\r\n },\r\n falseIcon: {\r\n type: String,\r\n default: '',\r\n },\r\n },\r\n methods: {\r\n toggle() {\r\n this.setting.toggle();\r\n },\r\n },\r\n computed: {\r\n icon() {\r\n return this.setting.value ? this.trueIcon : this.falseIcon;\r\n },\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-boolean-setting.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-boolean-setting.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-boolean-setting.vue?vue&type=template&id=7093dd88&scoped=true&\"\nimport script from \"./igt-boolean-setting.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-boolean-setting.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7093dd88\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <igt-feature>\r\n <igt-boolean-setting :setting=\"darkMode\" true-icon=\"fa-moon\" false-icon=\"fa-sun\"></igt-boolean-setting>\r\n <button class=\"btn btn-red\" @click=\"resetSave\">Reset Save</button>\r\n </igt-feature>\r\n</template>\r\n\r\n<script>\r\nimport {App} from \"@/App.ts\"\r\nimport IgtFeature from \"@/components/util/igt-feature\";\r\nimport IgtBooleanSetting from \"@/components/features/settings/igt-boolean-setting\";\r\n\r\nexport default {\r\n name: \"igt-settings\",\r\n components: {IgtBooleanSetting, IgtFeature},\r\n data() {\r\n return {\r\n settings: App.game.features.settings,\r\n }\r\n },\r\n methods: {\r\n resetSave() {\r\n const confirmed = confirm(\"Are you sure you want to delete your save? This will not give you any rewards\");\r\n if (!confirmed) {\r\n return;\r\n }\r\n App.game.deleteSave();\r\n location.reload();\r\n }\r\n },\r\n computed: {\r\n darkMode() {\r\n return this.settings.darkMode;\r\n }\r\n },\r\n}\r\n</script>\r\n\r\n<style scoped>\r\nth, td {\r\n padding: 5px;\r\n}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-settings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-settings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-settings.vue?vue&type=template&id=5a724c9b&scoped=true&\"\nimport script from \"./igt-settings.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-settings.vue?vue&type=script&lang=js&\"\nimport style0 from \"./igt-settings.vue?vue&type=style&index=0&id=5a724c9b&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5a724c9b\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('igt-feature',[_c('div',{staticClass:\"flex flex-row flex-wrap\"},_vm._l((_vm.items),function(item){return _c('igt-key-item',{key:item.id,attrs:{\"item\":item}})}),1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"flex flex-col border-2 m-2 p-2 h-56 w-36 justify-between shadow-md\",class:{'bg-gray-400': !_vm.item.isUnlocked, 'bg-green-500': _vm.item.isUnlocked},attrs:{\"title\":_vm.item.isUnlocked ? _vm.item.description : _vm.item.unlockHint}},[_c('div',[_c('p',{staticClass:\"text-lg text-center font-semibold\"},[_vm._v(\" \"+_vm._s(_vm.item.name))]),_c('hr'),_c('div',{staticClass:\"mt-2 w-16 h-16 mx-auto\"},[(_vm.item.image)?_c('img',{class:{'filter-grayscale': !_vm.item.isUnlocked},attrs:{\"src\":require((\"@/assets/\" + (_vm.item.image))),\"alt\":_vm.item.image}}):_vm._e()]),_c('p',{staticClass:\"text-sm\"},[_vm._v(\" \"+_vm._s(_vm.item.description))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"flex flex-col border-2 m-2 p-2 h-56 w-36 justify-between shadow-md\"\r\n :class=\"{'bg-gray-400': !item.isUnlocked, 'bg-green-500': item.isUnlocked}\"\r\n :title=\"item.isUnlocked ? item.description : item.unlockHint\"\r\n >\r\n <div>\r\n\r\n <p class=\"text-lg text-center font-semibold\"> {{ item.name }}</p>\r\n <hr>\r\n\r\n <div class=\"mt-2 w-16 h-16 mx-auto\">\r\n <img v-if=\"item.image\"\r\n :class=\"{'filter-grayscale': !item.isUnlocked}\"\r\n :src=\"require(`@/assets/${item.image}`)\" :alt=\"item.image\">\r\n </div>\r\n <p class=\"text-sm\"> {{ item.description }}</p>\r\n </div>\r\n\r\n </div>\r\n\r\n</template>\r\n\r\n<script>\r\nimport {KeyItem} from \"@/ig-template/features/key-items/KeyItem\";\r\n\r\nexport default {\r\n name: \"igt-key-item\",\r\n props: {\r\n item: {\r\n type: KeyItem,\r\n required: true,\r\n },\r\n },\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-key-item.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-key-item.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-key-item.vue?vue&type=template&id=765b0b79&scoped=true&\"\nimport script from \"./igt-key-item.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-key-item.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"765b0b79\",\n null\n \n)\n\nexport default component.exports","import {Requirement} from \"@/ig-template/tools/requirements/Requirement\";\r\nimport {KeyItems} from \"@/ig-template/features/key-items/KeyItems\";\r\nimport {KeyItemId} from \"@/ig-template/features/key-items/KeyItemId\";\r\nimport {DecimalValue} from \"@/lib/DecimalValueType\";\r\n\r\nexport class KeyItemRequirement extends Requirement {\r\n _keyItems: KeyItems;\r\n itemId: KeyItemId;\r\n\r\n constructor(keyItems: KeyItems, itemId: KeyItemId) {\r\n super();\r\n this._keyItems = keyItems;\r\n this.itemId = itemId;\r\n }\r\n\r\n get actualValue(): DecimalValue {\r\n return this._keyItems.hasKeyItem(this.itemId) ? 1 : 0;\r\n }\r\n\r\n get hint(): string {\r\n return `Unlock the ${this._keyItems.getKeyItem(this.itemId).name}`;\r\n }\r\n\r\n get targetValue(): DecimalValue {\r\n return 1;\r\n }\r\n\r\n\r\n}\r\n","<template>\r\n <igt-feature>\r\n <div class=\"flex flex-row flex-wrap\">\r\n <igt-key-item :key=\"item.id\" v-for=\"item in items\" :item=\"item\"></igt-key-item>\r\n </div>\r\n </igt-feature>\r\n</template>\r\n\r\n<script>\r\nimport {App} from \"@/App.ts\"\r\nimport IgtFeature from \"@/components/util/igt-feature\";\r\nimport IgtKeyItem from \"@/components/features/key-items/igt-key-item\";\r\nimport {KeyItemId} from \"@/ig-template/features/key-items/KeyItemId\";\r\nimport {KeyItemRequirement} from \"@/ig-template/features/key-items/KeyItemRequirement\";\r\n\r\nexport default {\r\n name: \"igt-key-items\",\r\n components: {IgtKeyItem, IgtFeature},\r\n data() {\r\n return {\r\n keyItems: App.game.features.keyItems\r\n }\r\n },\r\n computed: {\r\n items() {\r\n return this.keyItems.list;\r\n }\r\n },\r\n methods: {\r\n gainItem1() {\r\n this.keyItems.gainKeyItem(KeyItemId.Factory);\r\n }\r\n },\r\n mounted() {\r\n this.keyItems.onKeyItemGain.subscribe((keyItem) => {\r\n this.$notify(\r\n {\r\n title: `Accomplishment: ${keyItem.name}`,\r\n text: keyItem.description,\r\n type: \"success\",\r\n group: \"top-left\",\r\n },\r\n 4000\r\n );\r\n })\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-key-items.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-key-items.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-key-items.vue?vue&type=template&id=0c951a6e&scoped=true&\"\nimport script from \"./igt-key-items.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-key-items.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0c951a6e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.visible)?_c('div'):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Decimal from \"@/lib/break_eternity.min\";\r\nimport {DecimalValue} from \"@/lib/DecimalValueType\";\r\n\r\nexport class NumberFormatter {\r\n\r\n static format(value: DecimalValue, places: number = 2): string {\r\n value = new Decimal(value);\r\n if (isNaN(value.sign) || isNaN(value.layer) || isNaN(value.mag)) {\r\n return \"NaN\";\r\n }\r\n if (value.sign < 0) {\r\n return \"-\" + NumberFormatter.format(value.neg(), places);\r\n }\r\n if (value.mag === Number.POSITIVE_INFINITY) {\r\n return \"Infinity\";\r\n }\r\n if (value.gte(\"eeee1000\")) {\r\n const slog = value.slog();\r\n if (slog.gte(1e6)) {\r\n return \"F\" + NumberFormatter.format(slog.floor());\r\n } else {\r\n return Decimal.pow(10, slog.sub(slog.floor())).toStringWithDecimalPlaces(3) + \"F\" + NumberFormatter.commaFormat(slog.floor(), 0);\r\n }\r\n } else if (value.gte(\"1e100000\")) {\r\n return NumberFormatter.exponentialFormat(value, 0, false);\r\n } else if (value.gte(\"1e1000\")) {\r\n return NumberFormatter.exponentialFormat(value, 0);\r\n } else if (value.gte(1e9)) {\r\n return NumberFormatter.exponentialFormat(value, places);\r\n } else if (value.gte(1e3)) {\r\n return NumberFormatter.commaFormat(value, 0);\r\n } else {\r\n return NumberFormatter.regularFormat(value, places);\r\n }\r\n }\r\n\r\n static formatWhole(value: DecimalValue): string {\r\n value = new Decimal(value);\r\n if (value.sign < 0) {\r\n return \"-\" + NumberFormatter.formatWhole(value.neg());\r\n }\r\n if (value.gte(1e9)) {\r\n return NumberFormatter.format(value, 2);\r\n }\r\n if (value.lte(0.98) && !value.eq(0)) {\r\n return NumberFormatter.format(value, 2);\r\n }\r\n return NumberFormatter.format(value, 0);\r\n }\r\n\r\n static exponentialFormat(value: DecimalValue, places: number = 2, mantissa: boolean = true): string {\r\n value = new Decimal(value);\r\n let e = value.log10().floor();\r\n let m = value.div(Decimal.pow(10, e));\r\n if(m.toStringWithDecimalPlaces(places) === \"10\") {\r\n m = new Decimal(1);\r\n e = e.add(1);\r\n }\r\n const exp = NumberFormatter.commaFormat(e);\r\n if (mantissa) {\r\n return m.toStringWithDecimalPlaces(places) + \"e\" + exp;\r\n } else {\r\n return \"e\" + exp;\r\n }\r\n }\r\n\r\n static commaFormat(value: DecimalValue, places: number | undefined = undefined): string {\r\n if (value === null || value === undefined) {\r\n return \"NaN\";\r\n }\r\n value = new Decimal(value);\r\n if (value.mag < 0.001) {\r\n return (0).toFixed(places);\r\n }\r\n if (places === undefined) {\r\n if (value.layer > 1) {\r\n const firstPart = Decimal.fromComponents(value.sign, value.layer, Math.floor(value.mag));\r\n const secondPart = Decimal.fromComponents(value.sign, 0, value.mag - firstPart.mag);\r\n return firstPart.floor().toString().replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, \"$1,\") + secondPart.toStringWithDecimalPlaces(2).substr(1);\r\n }\r\n return value.floor().toString().replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, \"$1,\");\r\n }\r\n return value.toStringWithDecimalPlaces(places).replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, \"$1,\");\r\n }\r\n\r\n static regularFormat(value: DecimalValue, places: number = 2): string {\r\n if (value === null || value === undefined) {\r\n return \"NaN\";\r\n }\r\n value = new Decimal(value);\r\n if (value.eq(0)) {\r\n return (0).toFixed(places);\r\n }\r\n if (value.mag < 0.001) {\r\n return value.toExponential(places);\r\n }\r\n return value.toStringWithDecimalPlaces(places);\r\n }\r\n}","<template>\r\n <div v-if=\"visible\"></div>\r\n</template>\r\n\r\n<script>\r\nimport {App} from \"@/App\";\r\nimport {NumberFormatter} from \"@/ig-template/util/NumberFormatter\";\r\n\r\nexport default {\r\n name: \"igt-sidebar-currency\",\r\n data() {\r\n return {\r\n wallet: App.game.features.wallet,\r\n isCategory: true,\r\n isActive: false,\r\n containerStyle: { marginBottom: \"1em\" },\r\n classes: 'text-xl font-bold'\r\n }\r\n },\r\n props: {\r\n currency: {\r\n required: true\r\n },\r\n label: String\r\n },\r\n computed: {\r\n name() {\r\n return `${NumberFormatter.formatWhole(this.wallet._currencies[this.currency])} ${this.label || this.currency}`;\r\n },\r\n visible() {\r\n return this.wallet._currencies[this.currency].neq(0);\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-sidebar-currency.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-sidebar-currency.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-sidebar-currency.vue?vue&type=template&id=a74b2af2&scoped=true&\"\nimport script from \"./igt-sidebar-currency.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-sidebar-currency.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a74b2af2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('igt-feature',[_c('div',{staticClass:\"flex flex-row flex-wrap\"},[_c('igt-action',{attrs:{\"action\":_vm.combat.combatAction,\"description\":_vm.combatCost + ' Nanobots'}})],1),_c('div',{staticStyle:{\"font-size\":\"x-large\",\"margin\":\"10px 0\"}},[_vm._v(\"Next accomplishment at \"+_vm._s(_vm._f(\"numberFormatWhole\")(_vm.nextUnlock))+\" killed voidlings (\"+_vm._s(_vm._f(\"numberFormatWhole\")(_vm.currentKills))+\" killed so far)\")]),_c('div',{staticClass:\"flex flex-row flex-wrap\"},[(_vm.strongerRequirement.isCompleted)?_c('igt-upgrade',{attrs:{\"upgrade\":_vm.combat.stronger,\"currency-name\":\"Void Batteries\",\"can-buy\":_vm.combat.stronger.level.lt(_vm.combat.stronger.maxLevel) && _vm.combat.canAfford(_vm.combat.stronger)},nativeOn:{\"click\":function($event){return _vm.combat.buyUpgrade(_vm.combat.stronger)}}}):_vm._e(),(_vm.efficiencyRequirement.isCompleted)?_c('igt-upgrade',{attrs:{\"upgrade\":_vm.combat.efficiency,\"currency-name\":\"Nanobots\",\"can-buy\":_vm.combat.efficiency.level.lt(_vm.combat.efficiency.maxLevel) && _vm.combat.canAfford(_vm.combat.efficiency)},nativeOn:{\"click\":function($event){return _vm.combat.buyUpgrade(_vm.combat.efficiency)}}}):_vm._e(),(_vm.massRequirement.isCompleted)?_c('igt-upgrade',{attrs:{\"upgrade\":_vm.combat.mass,\"can-buy\":_vm.combat.mass.level.lt(_vm.combat.mass.maxLevel) && _vm.combat.canAfford(_vm.combat.mass)},nativeOn:{\"click\":function($event){return _vm.combat.buyUpgrade(_vm.combat.mass)}}}):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{\n 'p-4 w-72 h-36 border-green-700 border-4 shadow-lg hover-highlight flex flex-row items-center': true,\n 'bg-green-500': _vm.canPerform || _vm.isStarted,\n 'bg-red-500': !(_vm.canPerform || _vm.isStarted)\n },on:{\"click\":function($event){return _vm.action.toggle()}}},[_c('div',{staticClass:\"flex flex-col w-full space-y-1\"},[_c('p',{staticClass:\"text-center text-white\"},[_vm._v(_vm._s(_vm.action.description)),(_vm.description)?_c('br'):_vm._e(),_vm._v(_vm._s(_vm.description))]),_c('span',{staticClass:\"text-center text-white\"},[_c('span',{staticClass:\"fa fa-clock\"}),_vm._v(\" \"+_vm._s(_vm._f(\"numberFormat\")(_vm.action.durationFunc())))]),_c('igt-progress-bar',{attrs:{\"percentage\":_vm.progressPercentage}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"overflow-hidden h-2 mb-4 text-xs flex rounded\",class:_vm.bgClass},[_c('div',{staticClass:\"shadow-none flex flex-col text-center whitespace-nowrap text-white justify-center\",class:_vm.fgClass,style:({'width' : _vm.percentage * 100 + '%'})})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"overflow-hidden h-2 mb-4 text-xs flex rounded\" :class=\"bgClass\">\r\n <div :style=\"{'width' : percentage * 100 + '%'}\"\r\n class=\"shadow-none flex flex-col text-center whitespace-nowrap text-white justify-center\"\r\n :class=\"fgClass\"></div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\nexport default {\r\n name: \"igt-progress-bar\",\r\n props: {\r\n percentage: {\r\n type: Number,\r\n required: true,\r\n },\r\n bgClass: {\r\n type: String,\r\n default: 'bg-pink-200'\r\n },\r\n fgClass: {\r\n type: String,\r\n default: 'bg-pink-500'\r\n },\r\n },\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-progress-bar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-progress-bar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-progress-bar.vue?vue&type=template&id=5cd368c3&scoped=true&\"\nimport script from \"./igt-progress-bar.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-progress-bar.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5cd368c3\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div v-bind:class=\"{\r\n 'p-4 w-72 h-36 border-green-700 border-4 shadow-lg hover-highlight flex flex-row items-center': true,\r\n 'bg-green-500': canPerform || isStarted,\r\n 'bg-red-500': !(canPerform || isStarted)\r\n }\"\r\n @click=\"action.toggle()\">\r\n <div class=\"flex flex-col w-full space-y-1\">\r\n <p class=\"text-center text-white\">{{ action.description }}<br v-if=\"description\" />{{ description }}</p>\r\n <span class=\"text-center text-white\"> <span class=\"fa fa-clock\"/> {{ action.durationFunc() | numberFormat }}</span>\r\n <igt-progress-bar :percentage=\"progressPercentage\"></igt-progress-bar>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\n\r\nimport IgtProgressBar from \"@/components/util/igt-progress-bar\";\r\nimport {AbstractAction} from \"@/ig-template/tools/actions/AbstractAction\";\r\n\r\nexport default {\r\n name: \"igt-action\",\r\n components: {IgtProgressBar},\r\n props: {\r\n action: {\r\n type: AbstractAction,\r\n required: true,\r\n },\r\n description: String\r\n },\r\n computed: {\r\n progress() {\r\n return this.action.getProgress();\r\n },\r\n progressPercentage() {\r\n return this.progress.getPercentage();\r\n },\r\n canPerform() {\r\n return this.action.canPerform()\r\n },\r\n isStarted() {\r\n return this.action.isStarted;\r\n }\r\n },\r\n\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-action.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-action.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-action.vue?vue&type=template&id=371eaeed&scoped=true&\"\nimport script from \"./igt-action.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-action.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"371eaeed\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"btn btn-blue\",attrs:{\"disabled\":!_vm.canBuy}},[_c('span',{staticClass:\"flex flex-col\"},[_c('span',[_vm._v(_vm._s(_vm.upgrade.displayName))]),(_vm.hasMax)?_c('span',[_vm._v(\"Lvl. \"+_vm._s(_vm._f(\"numberFormatWhole\")(_vm.upgrade.level))+\" / \"+_vm._s(_vm._f(\"numberFormatWhole\")(_vm.upgrade.maxLevel)))]):_c('span',[_vm._v(\"Lvl. \"+_vm._s(_vm._f(\"numberFormatWhole\")(_vm.upgrade.level)))]),(!_vm.upgrade.isMaxLevel())?_c('span',[_vm._v(_vm._s(_vm._f(\"numberFormatWhole\")(_vm.upgrade.getCost().amount))+\" \"+_vm._s(_vm.currencyName || _vm.upgrade.getCost().type))]):_c('span',[_vm._v(\"Max\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <button class=\"btn btn-blue\" :disabled=\"!canBuy\">\r\n <span class=\"flex flex-col\">\r\n <span>{{ upgrade.displayName }}</span>\r\n <span v-if=\"hasMax\">Lvl. {{ upgrade.level | numberFormatWhole }} / {{ upgrade.maxLevel | numberFormatWhole }}</span>\r\n <span v-else>Lvl. {{ upgrade.level | numberFormatWhole }}</span>\r\n <span v-if=\"!upgrade.isMaxLevel()\">{{ upgrade.getCost().amount | numberFormatWhole }} {{ currencyName || upgrade.getCost().type }}</span>\r\n <span v-else>Max</span>\r\n </span>\r\n </button>\r\n</template>\r\n\r\n<script>\r\nimport {AbstractUpgrade} from \"@/ig-template/tools/upgrades/AbstractUpgrade\";\r\nimport Decimal from \"@/lib/break_eternity.min\";\r\n\r\nexport default {\r\n name: \"igt-upgrade\",\r\n props: {\r\n upgrade: {\r\n type: AbstractUpgrade,\r\n required: true,\r\n },\r\n canBuy: {\r\n type: Boolean,\r\n required: true,\r\n },\r\n currencyName: String\r\n },\r\n computed: {\r\n hasMax() {\r\n return this.upgrade.maxLevel.neq(Decimal.dNumberMax) && this.upgrade.maxLevel.neq(Infinity);\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-discrete-upgrade.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-discrete-upgrade.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-discrete-upgrade.vue?vue&type=template&id=55a454b4&scoped=true&\"\nimport script from \"./igt-discrete-upgrade.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-discrete-upgrade.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"55a454b4\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <igt-feature>\r\n <div class=\"flex flex-row flex-wrap\">\r\n <igt-action :action=\"combat.combatAction\" :description=\"combatCost + ' Nanobots'\"></igt-action>\r\n </div>\r\n <div style=\"font-size: x-large; margin: 10px 0;\">Next accomplishment at {{ nextUnlock | numberFormatWhole }} killed voidlings ({{ currentKills | numberFormatWhole }} killed so far)</div>\r\n <div class=\"flex flex-row flex-wrap\">\r\n <igt-upgrade v-if=\"strongerRequirement.isCompleted\" :upgrade=\"combat.stronger\" @click.native=\"combat.buyUpgrade(combat.stronger)\" currency-name=\"Void Batteries\"\r\n :can-buy=\"combat.stronger.level.lt(combat.stronger.maxLevel) && combat.canAfford(combat.stronger)\"></igt-upgrade>\r\n <igt-upgrade v-if=\"efficiencyRequirement.isCompleted\" :upgrade=\"combat.efficiency\" @click.native=\"combat.buyUpgrade(combat.efficiency)\" currency-name=\"Nanobots\"\r\n :can-buy=\"combat.efficiency.level.lt(combat.efficiency.maxLevel) && combat.canAfford(combat.efficiency)\"></igt-upgrade>\r\n <igt-upgrade v-if=\"massRequirement.isCompleted\" :upgrade=\"combat.mass\" @click.native=\"combat.buyUpgrade(combat.mass)\"\r\n :can-buy=\"combat.mass.level.lt(combat.mass.maxLevel) && combat.canAfford(combat.mass)\"></igt-upgrade>\r\n </div>\r\n </igt-feature>\r\n</template>\r\n\r\n<script>\r\nimport {App} from \"@/App.ts\"\r\nimport IgtFeature from \"@/components/util/igt-feature\";\r\nimport IgtAction from \"@/components/tools/actions/igt-action\";\r\nimport {NumberFormatter} from '@/ig-template/util/NumberFormatter';\r\nimport {CurrencyType} from \"@/ig-template/features/wallet/CurrencyType\";\r\nimport IgtUpgrade from \"@/components/tools/upgrades/igt-discrete-upgrade\";\r\nimport {KeyItemRequirement} from \"@/ig-template/features/key-items/KeyItemRequirement\";\r\nimport {KeyItemId} from \"@/ig-template/features/key-items/KeyItemId\";\r\nimport Decimal from \"@/lib/break_eternity.min\";\r\n\r\nexport default {\r\n name: \"igt-combat-feature\",\r\n components: {IgtUpgrade, IgtAction, IgtFeature},\r\n data() {\r\n return {\r\n combat: App.game.features.combat,\r\n strongerRequirement: new KeyItemRequirement(App.game.features.keyItems, KeyItemId.StrongerWeapons),\r\n efficiencyRequirement: new KeyItemRequirement(App.game.features.keyItems, KeyItemId.CombatEfficiency),\r\n massRequirement: new KeyItemRequirement(App.game.features.keyItems, KeyItemId.MassMurder)\r\n }\r\n },\r\n computed: {\r\n nextUnlock: () => [1, 10, 100, 500, 1000, 2500, 10000, 100000, 1000000].find(amount => Decimal.sub(1e6, App.game.features.wallet.getAmount(CurrencyType.Voidlings)).lt(amount)),\r\n currentKills: () => Decimal.sub(1e6, App.game.features.wallet.getAmount(CurrencyType.Voidlings)),\r\n combatCost: () => NumberFormatter.formatWhole(App.game.features.combat.combatAction.getCombatCost().floor()),\r\n combatBots: () => App.game.features.wallet.getAmount(CurrencyType.CombatBots).floor()\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-combat-feature.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-combat-feature.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-combat-feature.vue?vue&type=template&id=5a62b0c3&scoped=true&\"\nimport script from \"./igt-combat-feature.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-combat-feature.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5a62b0c3\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('igt-feature',[_c('div',{staticClass:\"flex flex-row flex-wrap justify-center sm:justify-start\"},_vm._l((_vm.factory.upgrades.slice(0, 4)),function(upgrade,index){return _c('div',{key:upgrade.id,staticClass:\"factory\"},[_c('igt-upgrade',{attrs:{\"upgrade\":upgrade,\"currency-name\":\"Void Batteries\",\"can-buy\":_vm.factory.canAfford(upgrade)},nativeOn:{\"click\":function($event){return _vm.buyUpgrade(upgrade)}}}),_c('div',{staticClass:\"details\"},[_c('span',[_vm._v(_vm._s(_vm._f(\"numberFormatWhole\")(_vm.amounts[index]))+\" \"+_vm._s(_vm.displayNames[index]))]),_c('span',[_vm._v(\"+\"+_vm._s(_vm._f(\"numberFormat\")(_vm.gains[index]))+\" \"+_vm._s(_vm.gainResources[index])+\"/s\")])])],1)}),0),(_vm.synergyRequirement.isCompleted)?_c('igt-upgrade',{attrs:{\"upgrade\":_vm.synergy,\"currency-name\":\"Void Batteries\",\"can-buy\":_vm.factory.canAfford(_vm.synergy)},nativeOn:{\"click\":function($event){return _vm.buyUpgrade(_vm.synergy)}}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <igt-feature>\r\n <div class=\"flex flex-row flex-wrap justify-center sm:justify-start\">\r\n <div v-for=\"(upgrade, index) in factory.upgrades.slice(0, 4)\" :key=\"upgrade.id\" class=\"factory\">\r\n <igt-upgrade :upgrade=\"upgrade\" @click.native=\"buyUpgrade(upgrade)\" currency-name=\"Void Batteries\"\r\n :can-buy=\"factory.canAfford(upgrade)\"></igt-upgrade>\r\n <div class=\"details\">\r\n <span>{{ amounts[index] | numberFormatWhole }} {{ displayNames[index] }}</span>\r\n <span>+{{ gains[index] | numberFormat}} {{ gainResources[index] }}/s</span>\r\n </div>\r\n </div>\r\n </div>\r\n <igt-upgrade v-if=\"synergyRequirement.isCompleted\" :upgrade=\"synergy\" @click.native=\"buyUpgrade(synergy)\" currency-name=\"Void Batteries\"\r\n :can-buy=\"factory.canAfford(synergy)\"></igt-upgrade>\r\n </igt-feature>\r\n</template>\r\n\r\n <script>\r\nimport {App} from \"@/App.ts\"\r\nimport IgtFeature from \"@/components/util/igt-feature\";\r\nimport IgtUpgrade from \"@/components/tools/upgrades/igt-discrete-upgrade\";\r\nimport Decimal from \"@/lib/break_eternity.min\";\r\nimport {CurrencyType} from \"@/ig-template/features/wallet/CurrencyType\";\r\nimport {KeyItemId} from \"@/ig-template/features/key-items/KeyItemId\";\r\nimport {KeyItemRequirement} from \"@/ig-template/features/key-items/KeyItemRequirement\";\r\n\r\nexport default {\r\n name: \"igt-feature-feature\",\r\n components: {IgtUpgrade, IgtFeature},\r\n data() {\r\n return {\r\n factory: App.game.features.factory,\r\n displayNames: [\r\n \"Factories\",\r\n \"Factories Squared\",\r\n \"Factories Cubed\",\r\n \"Factories Tesseracted\",\r\n ],\r\n gainResources: [\r\n \"Nanobots\",\r\n \"Factories\",\r\n \"Factories Squared\",\r\n \"Factories Cubed\"\r\n ],\r\n synergyRequirement: new KeyItemRequirement(App.game.features.keyItems, KeyItemId.Synergy)\r\n }\r\n },\r\n methods: {\r\n buyUpgrade(id) {\r\n this.factory.buyUpgrade(id);\r\n },\r\n },\r\n computed: {\r\n amounts() {\r\n return [\r\n App.game.features.factory.factories.add(App.game.features.factory.factory.getBonus()),\r\n App.game.features.factory.factoriesSquared.add(App.game.features.factory.factorySquared.getBonus()),\r\n App.game.features.factory.factoriesCubed.add(App.game.features.factory.factoryCubed.getBonus()),\r\n App.game.features.factory.factoryTesseracted.getBonus()\r\n ];\r\n },\r\n gains() {\r\n const synergy = App.game.features.factory.synergy.getBonus();\r\n const factoriesBonus = App.game.features.factory.factory.getBonus().pow(synergy);\r\n const factoriesSquaredBonus = App.game.features.factory.factorySquared.getBonus().pow(synergy);\r\n const factoriesCubedBonus = App.game.features.factory.factoryCubed.getBonus().pow(synergy);\r\n const factoriesTesseractedBonus = App.game.features.factory.factoryTesseracted.getBonus().pow(synergy);\r\n return [\r\n App.game.features.factory.factories.add(factoriesBonus).times(Decimal.pow(2, factoriesBonus)).times(App.game.features.wallet.getCurrencyMultiplier(CurrencyType.CombatBots)),\r\n App.game.features.factory.factoriesSquared.add(factoriesSquaredBonus).times(Decimal.pow(2, factoriesSquaredBonus)),\r\n App.game.features.factory.factoriesCubed.add(factoriesCubedBonus).times(Decimal.pow(2, factoriesCubedBonus)),\r\n factoriesTesseractedBonus.times(Decimal.pow(2, factoriesTesseractedBonus))\r\n ]\r\n },\r\n synergy() {\r\n return this.factory.synergy;\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.factory {\r\n display: flex;\r\n width: 100%;\r\n}\r\n\r\n.factory .btn {\r\n width: 50%;\r\n}\r\n\r\n.factory .details {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n font-size: xx-large;\r\n line-height: 1.25em;\r\n margin-left: 10px;\r\n}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-factory-feature.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-factory-feature.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-factory-feature.vue?vue&type=template&id=bb4c6242&scoped=true&\"\nimport script from \"./igt-factory-feature.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-factory-feature.vue?vue&type=script&lang=js&\"\nimport style0 from \"./igt-factory-feature.vue?vue&type=style&index=0&id=bb4c6242&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bb4c6242\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('igt-feature',[_c('div',{staticClass:\"result\",class:{ isStopped: _vm.isStopped }},[_vm._v(_vm._s(_vm.currentResult.description))]),(false)?_c('div',{staticClass:\"wheel\"},_vm._l((_vm.options),function(option,index){return _c('div',{key:index,staticClass:\"slice\",style:({ '--hue': 360 * index / _vm.options.length, '--weight': option.weight / _vm.totalWeight, transform: (\"rotate(\" + (_vm.options.slice(0, index).reduce(function (acc, curr) { return acc + curr.weight; }, option.weight / 2) * 360 / _vm.totalWeight) + \"deg)\") })})}),0):_vm._e(),_c('div',{staticClass:\"wheel-2\",style:({ transform: (\"rotate(\" + (-_vm.current * 360) + \"deg)\"), background: (\"conic-gradient(\" + (_vm.options.slice(1).reduce(function (acc, curr, i) {\n return { weight: acc.weight + curr.weight, gradient: acc.gradient + \", hsl(\" + (360 * (i + 1) / _vm.options.length) + \", 100%, 50%) \" + (acc.weight * 360 / _vm.totalWeight) + \"deg \" + ((acc.weight + curr.weight) * 360 / _vm.totalWeight) + \"deg\" }\n }, { weight: _vm.options[0].weight, gradient: 'red ' + _vm.options[0].weight * 360 / _vm.totalWeight + 'deg' }).gradient) + \")\") })}),_c('button',{staticClass:\"wheel-btn btn btn-blue\",attrs:{\"disabled\":!_vm.isStopped},on:{\"click\":function($event){return _vm.spin()}}},[_vm._v(\" Spin! \")]),(_vm.multispinRequirement.isCompleted)?_c('igt-upgrade',{attrs:{\"upgrade\":_vm.multispin,\"currency-name\":\"Nanobots\",\"can-buy\":_vm.multispin.level.lt(_vm.multispin.maxLevel) && _vm.wheel.canAfford(_vm.multispin)},nativeOn:{\"click\":function($event){return _vm.wheel.buyUpgrade(_vm.multispin)}}}):_vm._e(),(_vm.greaseRequirement.isCompleted)?_c('igt-upgrade',{attrs:{\"upgrade\":_vm.grease,\"currency-name\":\"Void Batteries\",\"can-buy\":_vm.grease.level.lt(_vm.grease.maxLevel) && _vm.wheel.canAfford(_vm.grease)},nativeOn:{\"click\":function($event){return _vm.wheel.buyUpgrade(_vm.grease)}}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <igt-feature>\r\n <div class=\"result\" v-bind:class=\"{ isStopped }\">{{ currentResult.description }}</div>\r\n <div class=\"wheel\" v-if=\"false\">\r\n <div class=\"slice\" v-for=\"(option, index) in options\" v-bind:style=\"{ '--hue': 360 * index / options.length, '--weight': option.weight / totalWeight, transform: `rotate(${options.slice(0, index).reduce((acc, curr) => acc + curr.weight, option.weight / 2) * 360 / totalWeight}deg)` }\" v-bind:key=\"index\">\r\n </div>\r\n </div>\r\n <div class=\"wheel-2\" v-bind:style=\"{ transform: `rotate(${-current * 360}deg)`, background: `conic-gradient(${options.slice(1).reduce((acc, curr, i) => {\r\n return { weight: acc.weight + curr.weight, gradient: acc.gradient + `, hsl(${360 * (i + 1) / options.length}, 100%, 50%) ${acc.weight * 360 / totalWeight}deg ${(acc.weight + curr.weight) * 360 / totalWeight}deg` }\r\n }, { weight: options[0].weight, gradient: 'red ' + options[0].weight * 360 / totalWeight + 'deg' }).gradient})` }\"></div>\r\n <button class=\"wheel-btn btn btn-blue\" @click=\"spin()\" :disabled=\"!isStopped\">\r\n Spin!\r\n </button>\r\n <igt-upgrade v-if=\"multispinRequirement.isCompleted\" :upgrade=\"multispin\" @click.native=\"wheel.buyUpgrade(multispin)\" currency-name=\"Nanobots\"\r\n :can-buy=\"multispin.level.lt(multispin.maxLevel) && wheel.canAfford(multispin)\"></igt-upgrade>\r\n <igt-upgrade v-if=\"greaseRequirement.isCompleted\" :upgrade=\"grease\" @click.native=\"wheel.buyUpgrade(grease)\" currency-name=\"Void Batteries\"\r\n :can-buy=\"grease.level.lt(grease.maxLevel) && wheel.canAfford(grease)\"></igt-upgrade>\r\n </igt-feature>\r\n</template>\r\n\r\n<script>\r\nimport {App} from \"@/App.ts\"\r\nimport IgtFeature from \"@/components/util/igt-feature\";\r\nimport IgtUpgrade from \"@/components/tools/upgrades/igt-discrete-upgrade\";\r\nimport {KeyItemId} from \"@/ig-template/features/key-items/KeyItemId\";\r\nimport {KeyItemRequirement} from \"@/ig-template/features/key-items/KeyItemRequirement\";\r\n\r\nexport default {\r\n name: \"igt-wheel-feature\",\r\n components: {IgtUpgrade, IgtFeature},\r\n data() {\r\n return {\r\n wheel: App.game.features.wheel,\r\n multispinRequirement: new KeyItemRequirement(App.game.features.keyItems, KeyItemId.WheelOfFortune),\r\n greaseRequirement: new KeyItemRequirement(App.game.features.keyItems, KeyItemId.WheelOfButter)\r\n }\r\n },\r\n computed: {\r\n options: () => App.game.features.wheel.distribution.outcomes,\r\n totalWeight: () => App.game.features.wheel.distribution.getTotalWeight(),\r\n currentResult: () => App.game.features.wheel.distribution.draw(App.game.features.wheel.current % 1),\r\n isStopped: () => !App.game.features.wheel.isSpinning(),\r\n current: () => App.game.features.wheel.current % 1,\r\n multispin: () => App.game.features.wheel.multispin,\r\n grease: () => App.game.features.wheel.grease\r\n },\r\n methods: {\r\n spin() {\r\n App.game.features.wheel.spin();\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.wheel {\r\n --radius: 200px;\r\n --circumference: calc(var(--radius) * 6.283185307); /* 2 * pi * radius */\r\n width: var(--radius);\r\n height: var(--radius);\r\n position: relative;\r\n border-radius: 100%;\r\n overflow: hidden;\r\n}\r\n\r\n.slice {\r\n --slice-height: calc(var(--circumference) * var(--weight));\r\n --slice-offset: calc(var(--slice-height) / 2);\r\n position: absolute;\r\n top: calc(50% - var(--slice-offset));\r\n height: var(--slice-height)px;\r\n left: 50%;\r\n width: 50%;\r\n color: white;\r\n transform-origin: left center;\r\n}\r\n.slice:before,\r\n.slice:after {\r\n content: \"\";\r\n width: 0;\r\n height: 0;\r\n border-style: solid;\r\n display: block;\r\n}\r\n.slice:before {\r\n margin-bottom: -1px;\r\n margin-top: -2px;\r\n border-width: 0 0 calc((var(--slice-height) / 2) + 4px) var(--radius);\r\n border-color: transparent transparent hsl(var(--hue), 100%, 50%) transparent;\r\n}\r\n.slice:after {\r\n margin-top: -1px;\r\n margin-bottom: -2px;\r\n border-width: 0 var(--radius) calc((var(--slice-height) / 2) + 4px) 0;\r\n border-color: transparent hsl(var(--hue), 100%, 50%) transparent transparent;\r\n}\r\n\r\n.wheel-2 {\r\n --radius: 60vmin;\r\n width: var(--radius);\r\n height: var(--radius);\r\n border-radius: 100%;\r\n margin: auto;\r\n}\r\n\r\n.result {\r\n text-align: center;\r\n position: relative;\r\n margin-bottom: 50px;\r\n}\r\n\r\n.result::after {\r\n content: \"\";\r\n position: absolute;\r\n top: 100%;\r\n left: 50%;\r\n transform: translate(-50%);\r\n border-left: 30px solid transparent;\r\n border-right: 30px solid transparent;\r\n border-top: 80px solid brown;\r\n z-index: 1;\r\n}\r\n\r\n.wheel-btn {\r\n margin: 20px auto;\r\n display: block;\r\n}\r\n\r\n.result.isStopped {\r\n color: gold;\r\n }\r\n</style>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-wheel-feature.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./igt-wheel-feature.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./igt-wheel-feature.vue?vue&type=template&id=7694784a&scoped=true&\"\nimport script from \"./igt-wheel-feature.vue?vue&type=script&lang=js&\"\nexport * from \"./igt-wheel-feature.vue?vue&type=script&lang=js&\"\nimport style0 from \"./igt-wheel-feature.vue?vue&type=style&index=0&id=7694784a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7694784a\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div :class=\"{'dark': darkMode}\">\r\n <igt-notifications></igt-notifications>\r\n <igt-sidebar title=\"Voidlings Sphere\">\r\n\r\n <igt-sidebar-currency v-bind:currency=\"CurrencyType.Voidlings\"></igt-sidebar-currency>\r\n <igt-sidebar-currency v-bind:currency=\"CurrencyType.CombatBots\" label=\"Nanobots\"></igt-sidebar-currency>\r\n <igt-sidebar-currency v-bind:currency=\"CurrencyType.VoidBatteries\" label=\"Void Batteries\"></igt-sidebar-currency>\r\n\r\n <igt-tab name=\"Combat\" :selected=\"true\">\r\n <igt-combat-feature></igt-combat-feature>\r\n </igt-tab>\r\n\r\n <igt-tab name=\"Factory\" :visible=\"factoryRequirement.isCompleted\">\r\n <igt-factory-feature></igt-factory-feature>\r\n </igt-tab>\r\n\r\n <igt-tab name=\"Wheel\" :visible=\"wheelRequirement.isCompleted\">\r\n <igt-wheel-feature></igt-wheel-feature>\r\n </igt-tab>\r\n\r\n <igt-tab name=\"Accomplishments\">\r\n <igt-key-items></igt-key-items>\r\n </igt-tab>\r\n\r\n <igt-tab name=\"Settings\">\r\n <igt-settings></igt-settings>\r\n </igt-tab>\r\n\r\n <igt-sidebar-category name=\"Other\" v-if=\"showDevPanel\"></igt-sidebar-category>\r\n\r\n <igt-tab name=\"Developer Panel\" v-if=\"showDevPanel\">\r\n <igt-developer-panel></igt-developer-panel>\r\n </igt-tab>\r\n\r\n <igt-sidebar-category name=\"Socials\"></igt-sidebar-category>\r\n <igt-sidebar-external-link name=\"Discord\" link=\"https://discord.gg/WzejVAx\"\r\n image=\"socials/discord.png\"></igt-sidebar-external-link>\r\n <igt-sidebar-external-link name=\"GitHub\" link=\"https://github.com/thepaperpilot/incremental-game-template\"\r\n image=\"socials/github.png\"></igt-sidebar-external-link>\r\n <igt-sidebar-external-link name=\"Made with IGT\" link=\"https://github.com/123ishaTest/incremental-game-template\"\r\n image=\"socials/isha.png\"></igt-sidebar-external-link>\r\n </igt-sidebar>\r\n\r\n </div>\r\n\r\n</template>\r\n\r\n<script>\r\nimport {App} from \"@/App.ts\"\r\nimport IgtSidebar from \"@/components/util/sidebar/igt-sidebar-layout\";\r\nimport IgtTab from \"@/components/util/igt-tab\";\r\nimport IgtNotifications from \"@/components/util/igt-notifications\";\r\nimport IgtDeveloperPanel from \"@/components/developer-panel/igt-developer-panel\";\r\nimport IgtSidebarCategory from \"@/components/util/sidebar/igt-sidebar-category\";\r\nimport IgtSidebarExternalLink from \"@/components/util/sidebar/igt-sidebar-external-link\";\r\nimport IgtSettings from \"@/components/features/settings/igt-settings\";\r\nimport IgtKeyItems from \"@/components/features/key-items/igt-key-items\";\r\nimport IgtSidebarCurrency from \"@/components/util/sidebar/igt-sidebar-currency\";\r\nimport {CurrencyType} from '@/ig-template/features/wallet/CurrencyType';\r\nimport IgtCombatFeature from \"@/components/features/combat/igt-combat-feature\";\r\nimport IgtFactoryFeature from \"@/components/features/factory/igt-factory-feature\";\r\nimport IgtWheelFeature from \"@/components/features/wheel/igt-wheel-feature\";\r\nimport {KeyItemRequirement} from \"@/ig-template/features/key-items/KeyItemRequirement\";\r\nimport {KeyItemId} from \"@/ig-template/features/key-items/KeyItemId\";\r\n\r\nexport default {\r\n components: {\r\n IgtCombatFeature,\r\n IgtFactoryFeature,\r\n IgtWheelFeature,\r\n IgtSidebarCurrency,\r\n IgtKeyItems,\r\n IgtSettings,\r\n IgtSidebarExternalLink,\r\n IgtSidebarCategory, IgtDeveloperPanel, IgtNotifications, IgtTab, IgtSidebar\r\n },\r\n data() {\r\n return {\r\n game: App.game,\r\n CurrencyType,\r\n factoryRequirement: new KeyItemRequirement(App.game.features.keyItems, KeyItemId.Factory),\r\n wheelRequirement: new KeyItemRequirement(App.game.features.keyItems, KeyItemId.Wheel),\r\n }\r\n },\r\n computed: {\r\n showDevPanel() {\r\n return !App.inProduction;\r\n },\r\n darkMode() {\r\n return App.game.features.settings.darkMode.value;\r\n }\r\n },\r\n}\r\n</script>\r\n\r\n<style>\r\n</style>\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=6e704e97&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport {DecimalValue} from \"@/lib/DecimalValueType\";\r\nimport {NumberFormatter} from \"@/ig-template/util/NumberFormatter\";\r\n\r\nVue.filter('numberFormat', function (value: DecimalValue) {\r\n return NumberFormatter.format(value);\r\n})\r\n\r\nVue.filter('numberFormatWhole', function (value: DecimalValue) {\r\n return NumberFormatter.formatWhole(value);\r\n})\r\n\r\nVue.filter('dateFormat', function (date: Date) {\r\n if (date == undefined) {\r\n return \"\";\r\n }\r\n\r\n const year = new Intl.DateTimeFormat('en', {year: 'numeric'}).format(date);\r\n const month = new Intl.DateTimeFormat('en', {month: 'long'}).format(date);\r\n const day = new Intl.DateTimeFormat('en', {day: '2-digit'}).format(date);\r\n\r\n const hours = date.getHours();\r\n const hoursString = hours < 10 ? `0${hours}` : `${hours}`;\r\n const minutes = date.getMinutes();\r\n const minutesString = minutes < 10 ? `0${minutes}` : `${minutes}`;\r\n\r\n return `${day} ${month} ${year} ${hoursString}:${minutesString}`;\r\n\r\n})\r\n\r\nVue.filter('humanizeString', function (string: string) {\r\n if (string == undefined) {\r\n return \"\";\r\n }\r\n string = string.charAt(0).toUpperCase() + string.slice(1);\r\n string.replace(\"_\", \" \").replace(\"-\", \" \");\r\n return string;\r\n})\r\n","import Vue from 'vue'\r\nimport VueApp from './App.vue'\r\nimport {App} from \"./App\";\r\n\r\nimport Notifications from \"vt-notifications\";\r\n\r\nimport './VueFilters';\r\n\r\nimport \"./index.css\";\r\n\r\nVue.config.productionTip = false\r\n\r\nVue.use(Notifications);\r\n\r\ndeclare global {\r\n interface Window {\r\n App: App;\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Start the application when all html elements are loaded.\r\n */\r\nwindow.onload = function () {\r\n App.start();\r\n\r\n // Expose the App class to the window (and the console)\r\n // if (process.env.DEBUG && typeof window !== undefined) {\r\n\r\n console.log('Exposing App to console');\r\n window.App = App;\r\n // }\r\n\r\n\r\n console.log(\"Launched\");\r\n\r\n new Vue({\r\n render: h => h(VueApp),\r\n }).$mount('#app')\r\n\r\n\r\n};\r\n\r\n\r\n"],"sourceRoot":""}