mirror of
https://github.com/IvarK/AntimatterDimensionsSourceCode.git
synced 2024-09-20 11:01:45 +00:00
Hi spec
This commit is contained in:
commit
4862020479
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"extends": [
|
||||
"eslint:recommended",
|
||||
"plugin:import/recommended",
|
||||
"plugin:vue/recommended"
|
||||
],
|
||||
"env": {
|
||||
|
@ -14,7 +15,46 @@
|
|||
"sourceType": "module",
|
||||
"parser": "@babel/eslint-parser"
|
||||
},
|
||||
"settings": {
|
||||
"import/resolver": {
|
||||
"alias": {
|
||||
"map": [
|
||||
["@", "./src"]
|
||||
],
|
||||
"extensions": [".js", ".vue"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"rules": {
|
||||
"import/prefer-default-export": "off",
|
||||
|
||||
"import/no-unresolved": "error",
|
||||
"import/named": "error",
|
||||
"import/namespace": "error",
|
||||
"import/default": "error",
|
||||
"import/export": "error",
|
||||
"import/no-named-as-default": "warn",
|
||||
"import/no-named-as-default-member": "warn",
|
||||
"import/no-duplicates": "warn",
|
||||
"import/extensions": ["warn", "never"],
|
||||
"import/first": "warn",
|
||||
"import/newline-after-import": "warn",
|
||||
"import/no-named-default": "warn",
|
||||
"import/no-self-import": "warn",
|
||||
"import/order": [
|
||||
"warn",
|
||||
{
|
||||
"newlines-between": "always-and-inside-groups",
|
||||
"pathGroups": [{ "pattern": "@/**", "group": "sibling" }]
|
||||
}
|
||||
],
|
||||
"sort-imports": [
|
||||
"warn",
|
||||
{
|
||||
"ignoreCase": true,
|
||||
"allowSeparatedGroups": true
|
||||
}
|
||||
],
|
||||
"no-console": "warn",
|
||||
"no-template-curly-in-string": "warn",
|
||||
"array-callback-return": "error",
|
||||
|
@ -32,7 +72,6 @@
|
|||
"allowElseIf": false
|
||||
}
|
||||
],
|
||||
|
||||
"vue/one-component-per-file": "error",
|
||||
"vue/component-definition-name-casing": "warn",
|
||||
"vue/order-in-components": "warn",
|
||||
|
|
3
.stylelintignore
Normal file
3
.stylelintignore
Normal file
|
@ -0,0 +1,3 @@
|
|||
public/stylesheets/fontawesome/**/*.css
|
||||
public/stylesheets/codemirror/*.css
|
||||
public/stylesheets/vis-network.css
|
425
.stylelintrc.json
Normal file
425
.stylelintrc.json
Normal file
|
@ -0,0 +1,425 @@
|
|||
{
|
||||
"plugins": [
|
||||
"stylelint-order"
|
||||
],
|
||||
"extends": [
|
||||
"stylelint-config-standard"
|
||||
],
|
||||
"rules": {
|
||||
"no-descending-specificity": null,
|
||||
"font-family-no-missing-generic-family-keyword": null,
|
||||
"no-empty-source": null,
|
||||
|
||||
"color-hex-length": "long",
|
||||
"custom-property-empty-line-before": null,
|
||||
"color-function-notation": null,
|
||||
"declaration-empty-line-before": null,
|
||||
"comment-empty-line-before": null,
|
||||
|
||||
"property-no-vendor-prefix": [
|
||||
true,
|
||||
{
|
||||
"ignoreProperties": ["appearance", "background-clip", "backdrop-filter", "clip-path", "user-select"]
|
||||
}
|
||||
],
|
||||
|
||||
"unit-allowed-list": [
|
||||
"rem",
|
||||
"%",
|
||||
"px",
|
||||
"deg",
|
||||
"s",
|
||||
"ms",
|
||||
"fr"
|
||||
],
|
||||
"custom-property-pattern": [
|
||||
"^([_a-z][a-z0-9]*)([-_]{1,2}[a-z0-9]+)*$",
|
||||
{
|
||||
"message": "Expected custom property name to be kebab-case"
|
||||
}
|
||||
],
|
||||
"selector-class-pattern": [
|
||||
"^(CodeMirror.*|([_a-z][a-z0-9]*)([-_]{1,2}[a-z0-9]+)*)$",
|
||||
{
|
||||
"message": "Expected class selector name to be kebab-case"
|
||||
}
|
||||
],
|
||||
"keyframes-name-pattern": [
|
||||
"^([_a-z][a-z0-9]*)([-_]{1,2}[a-z0-9]+)*$",
|
||||
{
|
||||
"message": "Expected keyframe name to be kebab-case"
|
||||
}
|
||||
],
|
||||
"selector-id-pattern": [
|
||||
"^([_a-z][a-z0-9]*)([-_]{1,2}[a-z0-9]+)*$",
|
||||
{
|
||||
"message": "Expected id selector name to be kebab-case"
|
||||
}
|
||||
],
|
||||
|
||||
"order/order": [
|
||||
"custom-properties",
|
||||
"at-rules",
|
||||
"rules",
|
||||
"declarations"
|
||||
],
|
||||
"order/properties-order": [
|
||||
[
|
||||
{
|
||||
"groupName": "content",
|
||||
"emptyLineBefore": "never",
|
||||
"noEmptyLineBetween": true,
|
||||
"properties": [
|
||||
"content"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "display",
|
||||
"emptyLineBefore": "never",
|
||||
"noEmptyLineBetween": true,
|
||||
"properties": [
|
||||
"display",
|
||||
"visibility",
|
||||
"float",
|
||||
"clear",
|
||||
"resize",
|
||||
"overflow",
|
||||
"overflow-x",
|
||||
"overflow-y",
|
||||
"white-space",
|
||||
"word-break",
|
||||
"overflow-wrap",
|
||||
"tab-size",
|
||||
"clip",
|
||||
"zoom"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "flex",
|
||||
"emptyLineBefore": "never",
|
||||
"noEmptyLineBetween": true,
|
||||
"properties": [
|
||||
"flex",
|
||||
"flex-grow",
|
||||
"flex-shrink",
|
||||
"flex-basis",
|
||||
"flex-flow",
|
||||
"flex-direction",
|
||||
"flex-wrap"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "grid",
|
||||
"emptyLineBefore": "never",
|
||||
"noEmptyLineBetween": true,
|
||||
"properties": [
|
||||
"grid",
|
||||
"grid-auto-columns",
|
||||
"grid-auto-flow",
|
||||
"grid-auto-rows",
|
||||
"grid-template-areas",
|
||||
"grid-template-columns",
|
||||
"grid-template-rows",
|
||||
"grid-row-gap",
|
||||
"grid-column-gap",
|
||||
"row-gap",
|
||||
"column-gap",
|
||||
"grid-row",
|
||||
"grid-row-start",
|
||||
"grid-row-end",
|
||||
"grid-column",
|
||||
"grid-column-start",
|
||||
"grid-column-end"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "table",
|
||||
"emptyLineBefore": "never",
|
||||
"noEmptyLineBetween": true,
|
||||
"properties": [
|
||||
"table-layout",
|
||||
"empty-cells",
|
||||
"caption-side",
|
||||
"border-spacing",
|
||||
"border-collapse",
|
||||
"list-style",
|
||||
"list-style-position",
|
||||
"list-style-type",
|
||||
"list-style-image"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "size",
|
||||
"emptyLineBefore": "never",
|
||||
"noEmptyLineBetween": true,
|
||||
"properties": [
|
||||
"width",
|
||||
"height",
|
||||
"min-width",
|
||||
"max-width",
|
||||
"min-height",
|
||||
"max-height"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "position",
|
||||
"emptyLineBefore": "never",
|
||||
"noEmptyLineBetween": true,
|
||||
"properties": [
|
||||
"position",
|
||||
"will-change",
|
||||
"inset",
|
||||
"top",
|
||||
"right",
|
||||
"bottom",
|
||||
"left",
|
||||
"z-index"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "alignment",
|
||||
"emptyLineBefore": "never",
|
||||
"noEmptyLineBetween": true,
|
||||
"properties": [
|
||||
"place-content",
|
||||
"justify-content",
|
||||
"align-content",
|
||||
"align-items",
|
||||
"align-self",
|
||||
"vertical-align",
|
||||
"text-align",
|
||||
"text-align-last"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "scrollbar",
|
||||
"emptyLineBefore": "never",
|
||||
"noEmptyLineBetween": true,
|
||||
"properties": [
|
||||
"scrollbar-color",
|
||||
"scrollbar-width"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "svg",
|
||||
"emptyLineBefore": "never",
|
||||
"noEmptyLineBetween": true,
|
||||
"properties": [
|
||||
"stroke",
|
||||
"stroke-width",
|
||||
"stroke-linecap",
|
||||
"stroke-dasharray",
|
||||
"fill",
|
||||
"text-anchor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "font",
|
||||
"emptyLineBefore": "never",
|
||||
"noEmptyLineBetween": true,
|
||||
"properties": [
|
||||
"font",
|
||||
"font-family",
|
||||
"font-size",
|
||||
"font-stretch",
|
||||
"font-style",
|
||||
"font-variant",
|
||||
"font-weight",
|
||||
"font-smoothing",
|
||||
"font-smooth",
|
||||
"line-height",
|
||||
"src",
|
||||
"unicode-range"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "color",
|
||||
"emptyLineBefore": "never",
|
||||
"noEmptyLineBetween": true,
|
||||
"properties": [
|
||||
"opacity",
|
||||
"color"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "text",
|
||||
"emptyLineBefore": "never",
|
||||
"noEmptyLineBetween": true,
|
||||
"properties": [
|
||||
"text-shadow",
|
||||
"text-decoration"
|
||||
]
|
||||
},
|
||||
"appearance",
|
||||
{
|
||||
"groupName": "background",
|
||||
"emptyLineBefore": "never",
|
||||
"noEmptyLineBetween": true,
|
||||
"properties": [
|
||||
"background",
|
||||
"background-attachment",
|
||||
"background-clip",
|
||||
"background-color",
|
||||
"background-image",
|
||||
"background-origin",
|
||||
"background-position",
|
||||
"background-position-x",
|
||||
"background-position-y",
|
||||
"background-repeat",
|
||||
"background-size"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "border",
|
||||
"emptyLineBefore": "never",
|
||||
"noEmptyLineBetween": true,
|
||||
"properties": [
|
||||
"border",
|
||||
"border-color",
|
||||
"border-style",
|
||||
"border-width",
|
||||
"border-top",
|
||||
"border-top-color",
|
||||
"border-top-style",
|
||||
"border-top-width",
|
||||
"border-right",
|
||||
"border-right-color",
|
||||
"border-right-style",
|
||||
"border-right-width",
|
||||
"border-bottom",
|
||||
"border-bottom-color",
|
||||
"border-bottom-style",
|
||||
"border-bottom-width",
|
||||
"border-left",
|
||||
"border-left-color",
|
||||
"border-left-style",
|
||||
"border-left-width",
|
||||
"border-radius",
|
||||
"border-top-left-radius",
|
||||
"border-top-right-radius",
|
||||
"border-bottom-right-radius",
|
||||
"border-bottom-left-radius",
|
||||
"border-spacing"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "box",
|
||||
"emptyLineBefore": "never",
|
||||
"noEmptyLineBetween": true,
|
||||
"properties": [
|
||||
"box-shadow",
|
||||
"box-sizing"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "outline",
|
||||
"emptyLineBefore": "never",
|
||||
"noEmptyLineBetween": true,
|
||||
"properties": [
|
||||
"outline",
|
||||
"outline-width",
|
||||
"outline-style",
|
||||
"outline-color",
|
||||
"outline-offset"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "margin",
|
||||
"emptyLineBefore": "never",
|
||||
"noEmptyLineBetween": true,
|
||||
"properties": [
|
||||
"margin",
|
||||
"margin-top",
|
||||
"margin-right",
|
||||
"margin-bottom",
|
||||
"margin-left"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "padding",
|
||||
"emptyLineBefore": "never",
|
||||
"noEmptyLineBetween": true,
|
||||
"properties": [
|
||||
"padding",
|
||||
"padding-top",
|
||||
"padding-right",
|
||||
"padding-bottom",
|
||||
"padding-left"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "animation",
|
||||
"emptyLineBefore": "never",
|
||||
"noEmptyLineBetween": true,
|
||||
"properties": [
|
||||
"transform",
|
||||
"transform-origin",
|
||||
"filter",
|
||||
"mix-blend-mode",
|
||||
"transition",
|
||||
"transition-delay",
|
||||
"transition-timing-function",
|
||||
"transition-duration",
|
||||
"transition-property",
|
||||
"animation",
|
||||
"animation-name",
|
||||
"animation-duration",
|
||||
"animation-play-state",
|
||||
"animation-timing-function",
|
||||
"animation-delay",
|
||||
"animation-iteration-count",
|
||||
"animation-direction",
|
||||
"animation-fill-mode"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "pointer",
|
||||
"emptyLineBefore": "never",
|
||||
"noEmptyLineBetween": true,
|
||||
"properties": [
|
||||
"pointer-events",
|
||||
"user-select",
|
||||
"cursor"
|
||||
]
|
||||
}
|
||||
],
|
||||
{
|
||||
"unspecified": "bottomAlphabetical",
|
||||
"emptyLineBeforeUnspecified": "always"
|
||||
}
|
||||
]
|
||||
},
|
||||
"overrides": [
|
||||
{
|
||||
"files": [
|
||||
"*.vue",
|
||||
"**/*.vue"
|
||||
],
|
||||
"extends": [
|
||||
"stylelint-config-recommended",
|
||||
"stylelint-config-html"
|
||||
],
|
||||
"rules": {
|
||||
"selector-pseudo-class-no-unknown": [
|
||||
true,
|
||||
{
|
||||
"ignorePseudoClasses": [
|
||||
"deep",
|
||||
"global"
|
||||
]
|
||||
}
|
||||
],
|
||||
"selector-pseudo-element-no-unknown": [
|
||||
true,
|
||||
{
|
||||
"ignorePseudoElements": [
|
||||
"v-deep",
|
||||
"v-global",
|
||||
"v-slotted"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
import { GameMechanicState } from "../game-mechanics/index.js";
|
||||
import { GameMechanicState } from "../game-mechanics/index";
|
||||
|
||||
class AchievementState extends GameMechanicState {
|
||||
constructor(config) {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { GameMechanicState } from "../game-mechanics/index.js";
|
||||
import { GameMechanicState } from "../game-mechanics/index";
|
||||
|
||||
class SecretAchievementState extends GameMechanicState {
|
||||
constructor(config) {
|
||||
|
|
|
@ -1,64 +1,64 @@
|
|||
import MessageModal from "@/components/modals/MessageModal";
|
||||
import CelestialQuoteModal from "@/components/modals/CelestialQuoteModal";
|
||||
import CloudSaveConflictModal from "@/components/modals/cloud/CloudSaveConflictModal";
|
||||
import CloudLoadConflictModal from "@/components/modals/cloud/CloudLoadConflictModal";
|
||||
import CloudSaveConflictModal from "@/components/modals/cloud/CloudSaveConflictModal";
|
||||
import EternityChallengeStartModal from "@/components/modals/challenges/EternityChallengeStartModal";
|
||||
import InfinityChallengeStartModal from "@/components/modals/challenges/InfinityChallengeStartModal";
|
||||
import MessageModal from "@/components/modals/MessageModal";
|
||||
import NormalChallengeStartModal from "@/components/modals/challenges/NormalChallengeStartModal";
|
||||
|
||||
import DimensionBoostModal from "@/components/modals/prestige/DimensionBoostModal";
|
||||
import AntimatterGalaxyModal from "@/components/modals/prestige/AntimatterGalaxyModal";
|
||||
import BigCrunchModal from "@/components/modals/prestige/BigCrunchModal";
|
||||
import ReplicantiGalaxyModal from "@/components/modals/prestige/ReplicantiGalaxyModal";
|
||||
import EternityModal from "@/components/modals/prestige/EternityModal";
|
||||
import EnterDilationModal from "@/components/modals/prestige/EnterDilationModal";
|
||||
import RealityModal from "@/components/modals/prestige/RealityModal";
|
||||
import ResetRealityModal from "@/components/modals/prestige/ResetRealityModal";
|
||||
import ExitCelestialModal from "@/components/modals/prestige/ExitCelestialModal";
|
||||
import EnterCelestialsModal from "@/components/modals/prestige/EnterCelestialsModal";
|
||||
import HardResetModal from "@/components/modals/prestige/HardResetModal";
|
||||
import SpeedrunModeModal from "@/components/modals/SpeedrunModeModal";
|
||||
import ChangeNameModal from "@/components/modals/ChangeNameModal";
|
||||
import ArmageddonModal from "@/components/modals/prestige/ArmageddonModal";
|
||||
import BigCrunchModal from "@/components/modals/prestige/BigCrunchModal";
|
||||
import ChangeNameModal from "@/components/modals/ChangeNameModal";
|
||||
import DimensionBoostModal from "@/components/modals/prestige/DimensionBoostModal";
|
||||
import EnterCelestialsModal from "@/components/modals/prestige/EnterCelestialsModal";
|
||||
import EnterDilationModal from "@/components/modals/prestige/EnterDilationModal";
|
||||
import EternityModal from "@/components/modals/prestige/EternityModal";
|
||||
import ExitCelestialModal from "@/components/modals/prestige/ExitCelestialModal";
|
||||
import HardResetModal from "@/components/modals/prestige/HardResetModal";
|
||||
import RealityModal from "@/components/modals/prestige/RealityModal";
|
||||
import ReplicantiGalaxyModal from "@/components/modals/prestige/ReplicantiGalaxyModal";
|
||||
import ResetRealityModal from "@/components/modals/prestige/ResetRealityModal";
|
||||
import SpeedrunModeModal from "@/components/modals/SpeedrunModeModal";
|
||||
|
||||
import ConfirmationOptionsModal from "@/components/modals/options/ConfirmationOptionsModal";
|
||||
import InfoDisplayOptionsModal from "@/components/modals/options/InfoDisplayOptionsModal";
|
||||
import AwayProgressOptionsModal from "@/components/modals/options/AwayProgressOptionsModal";
|
||||
import HotkeysModal from "@/components/modals/options/HotkeysModal";
|
||||
import NewsOptionsModal from "@/components/modals/options/NewsOptionsModal";
|
||||
import AnimationOptionsModal from "@/components/modals/options/AnimationOptionsModal";
|
||||
import PreferredTreeModal from "@/components/modals/options/PreferredTreeModal";
|
||||
import AwayProgressOptionsModal from "@/components/modals/options/AwayProgressOptionsModal";
|
||||
import ConfirmationOptionsModal from "@/components/modals/options/ConfirmationOptionsModal";
|
||||
import HiddenTabsModal from "@/components/modals/options/hidden-tabs/HiddenTabsModal";
|
||||
import HotkeysModal from "@/components/modals/options/HotkeysModal";
|
||||
import InfoDisplayOptionsModal from "@/components/modals/options/InfoDisplayOptionsModal";
|
||||
import NewsOptionsModal from "@/components/modals/options/NewsOptionsModal";
|
||||
import PreferredTreeModal from "@/components/modals/options/PreferredTreeModal";
|
||||
|
||||
import DeleteCompanionGlyphModal from "@/components/modals/glyph-management/DeleteCompanionGlyphModal";
|
||||
import DeleteGlyphModal from "@/components/modals/glyph-management/DeleteGlyphModal";
|
||||
import PurgeGlyphModal from "@/components/modals/glyph-management/PurgeGlyphModal";
|
||||
import SacrificeGlyphModal from "@/components/modals/glyph-management/SacrificeGlyphModal";
|
||||
import RefineGlyphModal from "@/components/modals/glyph-management/RefineGlyphModal";
|
||||
import PurgeAllUnprotectedGlyphsModal from "@/components/modals/glyph-management/PurgeAllUnprotectedGlyphsModal";
|
||||
import PurgeAllRejectedGlyphsModal from "@/components/modals/glyph-management/PurgeAllRejectedGlyphsModal";
|
||||
import PurgeAllUnprotectedGlyphsModal from "@/components/modals/glyph-management/PurgeAllUnprotectedGlyphsModal";
|
||||
import PurgeGlyphModal from "@/components/modals/glyph-management/PurgeGlyphModal";
|
||||
import RefineGlyphModal from "@/components/modals/glyph-management/RefineGlyphModal";
|
||||
import SacrificeGlyphModal from "@/components/modals/glyph-management/SacrificeGlyphModal";
|
||||
|
||||
import H2PModal from "@/components/modals/H2PModal";
|
||||
import InformationModal from "@/components/modals/InformationModal";
|
||||
import GlyphShowcasePanelModal from "@/components/modals/GlyphShowcasePanelModal";
|
||||
import UndoGlyphModal from "@/components/modals/UndoGlyphModal";
|
||||
import ReplaceGlyphModal from "@/components/modals/ReplaceGlyphModal";
|
||||
import UiChoiceModal from "@/components/modals/UiChoiceModal";
|
||||
import AwayProgressModal from "@/components/modals/AwayProgressModal";
|
||||
import LoadGameModal from "@/components/modals/LoadGameModal";
|
||||
import ImportSaveModal from "@/components/modals/ImportSaveModal";
|
||||
import ImportAutomatorScriptModal from "@/components/modals/ImportAutomatorScriptModal";
|
||||
import DeleteAutomatorScriptModal from "@/components/modals/DeleteAutomatorScriptModal";
|
||||
import AutomatorScriptTemplate from "@/components/modals/AutomatorScriptTemplate";
|
||||
import AwayProgressModal from "@/components/modals/AwayProgressModal";
|
||||
import BreakInfinityModal from "@/components/modals/BreakInfinityModal";
|
||||
import DeleteAutomatorScriptModal from "@/components/modals/DeleteAutomatorScriptModal";
|
||||
import EnslavedHintsModal from "@/components/modals/EnslavedHintsModal";
|
||||
import GlyphSetSaveDeleteModal from "@/components/modals/GlyphSetSaveDeleteModal";
|
||||
import GlyphShowcasePanelModal from "@/components/modals/GlyphShowcasePanelModal";
|
||||
import H2PModal from "@/components/modals/H2PModal";
|
||||
import ImportAutomatorScriptModal from "@/components/modals/ImportAutomatorScriptModal";
|
||||
import ImportSaveModal from "@/components/modals/ImportSaveModal";
|
||||
import InformationModal from "@/components/modals/InformationModal";
|
||||
import LoadGameModal from "@/components/modals/LoadGameModal";
|
||||
import PelleEffectsModal from "@/components/modals/PelleEffectsModal";
|
||||
import RealityGlyphCreationModal from "@/components/modals/RealityGlyphCreationModal";
|
||||
import ReplaceGlyphModal from "@/components/modals/ReplaceGlyphModal";
|
||||
import SacrificeModal from "@/components/modals/SacrificeModal";
|
||||
import SingularityMilestonesModal from "@/components/modals/SingularityMilestonesModal";
|
||||
import StdStoreModal from "@/components/modals/StdStoreModal";
|
||||
import StudyStringModal from "@/components/modals/StudyStringModal";
|
||||
import SacrificeModal from "@/components/modals/SacrificeModal";
|
||||
import BreakInfinityModal from "@/components/modals/BreakInfinityModal";
|
||||
import GlyphSetSaveDeleteModal from "@/components/modals/GlyphSetSaveDeleteModal";
|
||||
import RealityGlyphCreationModal from "@/components/modals/RealityGlyphCreationModal";
|
||||
import EnslavedHintsModal from "@/components/modals/EnslavedHintsModal";
|
||||
import SingularityMilestonesModal from "@/components/modals/SingularityMilestonesModal";
|
||||
import PelleEffectsModal from "@/components/modals/PelleEffectsModal";
|
||||
import UiChoiceModal from "@/components/modals/UiChoiceModal";
|
||||
import UndoGlyphModal from "@/components/modals/UndoGlyphModal";
|
||||
|
||||
|
||||
export class Modal {
|
||||
|
@ -66,6 +66,7 @@ export class Modal {
|
|||
this._component = component;
|
||||
this._bare = bare;
|
||||
this._modalConfig = {};
|
||||
this._prioritize = false;
|
||||
}
|
||||
|
||||
show(modalConfig) {
|
||||
|
@ -73,7 +74,19 @@ export class Modal {
|
|||
this._props = Object.assign({}, modalConfig || {});
|
||||
if (ui.view.modal.queue.length === 0) ui.view.modal.current = this;
|
||||
// New modals go to the back of the queue (shown last).
|
||||
if (!ui.view.modal.queue.includes(this)) ui.view.modal.queue.push(this);
|
||||
if (!ui.view.modal.queue.includes(this)) {
|
||||
if (this._prioritize) {
|
||||
ui.view.modal.queue.unshift(this);
|
||||
ui.view.modal.current = this;
|
||||
} else {
|
||||
ui.view.modal.queue.push(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
prioritize() {
|
||||
this._prioritize = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
get isOpen() {
|
||||
|
@ -131,20 +144,20 @@ Modal.startEternityChallenge = new ChallengeConfirmationModal(EternityChallengeS
|
|||
Modal.startInfinityChallenge = new ChallengeConfirmationModal(InfinityChallengeStartModal);
|
||||
Modal.startNormalChallenge = new ChallengeConfirmationModal(NormalChallengeStartModal);
|
||||
|
||||
Modal.dimensionBoost = new Modal(DimensionBoostModal);
|
||||
Modal.antimatterGalaxy = new Modal(AntimatterGalaxyModal);
|
||||
Modal.bigCrunch = new Modal(BigCrunchModal);
|
||||
Modal.replicantiGalaxy = new Modal(ReplicantiGalaxyModal);
|
||||
Modal.eternity = new Modal(EternityModal);
|
||||
Modal.enterDilation = new Modal(EnterDilationModal);
|
||||
Modal.reality = new Modal(RealityModal);
|
||||
Modal.resetReality = new Modal(ResetRealityModal);
|
||||
Modal.exitCelestialReality = new Modal(ExitCelestialModal);
|
||||
Modal.celestials = new Modal(EnterCelestialsModal);
|
||||
Modal.hardReset = new Modal(HardResetModal);
|
||||
Modal.dimensionBoost = new Modal(DimensionBoostModal).prioritize();
|
||||
Modal.antimatterGalaxy = new Modal(AntimatterGalaxyModal).prioritize();
|
||||
Modal.bigCrunch = new Modal(BigCrunchModal).prioritize();
|
||||
Modal.replicantiGalaxy = new Modal(ReplicantiGalaxyModal).prioritize();
|
||||
Modal.eternity = new Modal(EternityModal).prioritize();
|
||||
Modal.enterDilation = new Modal(EnterDilationModal).prioritize();
|
||||
Modal.reality = new Modal(RealityModal).prioritize();
|
||||
Modal.resetReality = new Modal(ResetRealityModal).prioritize();
|
||||
Modal.exitCelestialReality = new Modal(ExitCelestialModal).prioritize();
|
||||
Modal.celestials = new Modal(EnterCelestialsModal).prioritize();
|
||||
Modal.hardReset = new Modal(HardResetModal).prioritize();
|
||||
Modal.enterSpeedrun = new Modal(SpeedrunModeModal);
|
||||
Modal.changeName = new Modal(ChangeNameModal);
|
||||
Modal.armageddon = new Modal(ArmageddonModal);
|
||||
Modal.armageddon = new Modal(ArmageddonModal).prioritize();
|
||||
|
||||
Modal.confirmationOptions = new Modal(ConfirmationOptionsModal);
|
||||
Modal.infoDisplayOptions = new Modal(InfoDisplayOptionsModal);
|
||||
|
@ -155,16 +168,16 @@ Modal.animationOptions = new Modal(AnimationOptionsModal);
|
|||
Modal.hiddenTabs = new Modal(HiddenTabsModal);
|
||||
Modal.preferredTree = new Modal(PreferredTreeModal);
|
||||
|
||||
Modal.deleteCompanion = new Modal(DeleteCompanionGlyphModal);
|
||||
Modal.glyphDelete = new Modal(DeleteGlyphModal);
|
||||
Modal.glyphPurge = new Modal(PurgeGlyphModal);
|
||||
Modal.glyphSacrifice = new Modal(SacrificeGlyphModal);
|
||||
Modal.glyphRefine = new Modal(RefineGlyphModal);
|
||||
Modal.deleteAllUnprotectedGlyphs = new Modal(PurgeAllUnprotectedGlyphsModal);
|
||||
Modal.deleteAllRejectedGlyphs = new Modal(PurgeAllRejectedGlyphsModal);
|
||||
Modal.deleteCompanion = new Modal(DeleteCompanionGlyphModal).prioritize();
|
||||
Modal.glyphDelete = new Modal(DeleteGlyphModal).prioritize();
|
||||
Modal.glyphPurge = new Modal(PurgeGlyphModal).prioritize();
|
||||
Modal.glyphSacrifice = new Modal(SacrificeGlyphModal).prioritize();
|
||||
Modal.glyphRefine = new Modal(RefineGlyphModal).prioritize();
|
||||
Modal.deleteAllUnprotectedGlyphs = new Modal(PurgeAllUnprotectedGlyphsModal).prioritize();
|
||||
Modal.deleteAllRejectedGlyphs = new Modal(PurgeAllRejectedGlyphsModal).prioritize();
|
||||
|
||||
Modal.glyphShowcasePanel = new Modal(GlyphShowcasePanelModal);
|
||||
Modal.glyphUndo = new Modal(UndoGlyphModal);
|
||||
Modal.glyphUndo = new Modal(UndoGlyphModal).prioritize();
|
||||
Modal.glyphReplace = new Modal(ReplaceGlyphModal);
|
||||
Modal.enslavedHints = new Modal(EnslavedHintsModal);
|
||||
Modal.realityGlyph = new Modal(RealityGlyphCreationModal);
|
||||
|
@ -182,11 +195,11 @@ Modal.shop = new Modal(StdStoreModal);
|
|||
Modal.studyString = new Modal(StudyStringModal);
|
||||
Modal.singularityMilestones = new Modal(SingularityMilestonesModal);
|
||||
Modal.pelleEffects = new Modal(PelleEffectsModal);
|
||||
Modal.sacrifice = new Modal(SacrificeModal);
|
||||
Modal.sacrifice = new Modal(SacrificeModal).prioritize();
|
||||
Modal.breakInfinity = new Modal(BreakInfinityModal);
|
||||
Modal.celestialQuote = new class extends Modal {
|
||||
show(celestial, lines) {
|
||||
if (!GameUI.initialized) return;
|
||||
if (!GameUI.initialized || player.speedrun.isActive) return;
|
||||
const newLines = lines.map(l => Modal.celestialQuote.getLineMapping(celestial, l));
|
||||
if (ui.view.modal.queue.includes(this)) {
|
||||
// This shouldn't come up often, but in case we do have a pile of quotes
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
import { notify } from "./notify.js";
|
||||
import { state } from "./ui.init.js";
|
||||
import VTooltip from "v-tooltip";
|
||||
import { useLongPress, useRepeatingClick } from "./longpress";
|
||||
import VueGtag from "vue-gtag";
|
||||
|
||||
import { useLongPress, useRepeatingClick } from "./longpress";
|
||||
import { notify } from "./notify";
|
||||
import { state } from "./ui.init";
|
||||
|
||||
import GameUIComponent from "@/components/GameUIComponent";
|
||||
|
||||
Vue.mixin({
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Autobuyer, AutobuyerState } from "./autobuyer.js";
|
||||
import { Autobuyer, AutobuyerState } from "./autobuyer";
|
||||
|
||||
Autobuyer.annihilation = new class AnnihilationAutobuyerState extends AutobuyerState {
|
||||
get data() {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { Autobuyer, UpgradeableAutobuyerState } from "./autobuyer.js";
|
||||
import { DC } from "../constants.js";
|
||||
import { DC } from "../constants";
|
||||
|
||||
import { Autobuyer, UpgradeableAutobuyerState } from "./autobuyer";
|
||||
|
||||
class AntimatterDimensionAutobuyerState extends UpgradeableAutobuyerState {
|
||||
get tier() {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Autobuyer } from "./autobuyer.js";
|
||||
import { Autobuyer } from "./autobuyer";
|
||||
|
||||
export const Autobuyers = (function() {
|
||||
const antimatterDimensions = Autobuyer.antimatterDimension.zeroIndexed;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Autobuyer, UpgradeableAutobuyerState } from "./autobuyer.js";
|
||||
import { Autobuyer, UpgradeableAutobuyerState } from "./autobuyer";
|
||||
|
||||
Autobuyer.bigCrunch = new class BigCrunchAutobuyerState extends UpgradeableAutobuyerState {
|
||||
get data() {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Autobuyer, AutobuyerState } from "./autobuyer.js";
|
||||
import { Autobuyer, AutobuyerState } from "./autobuyer";
|
||||
|
||||
class BlackHolePowerAutobuyerState extends AutobuyerState {
|
||||
get data() {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Autobuyer, IntervaledAutobuyerState } from "./autobuyer.js";
|
||||
import { Autobuyer, IntervaledAutobuyerState } from "./autobuyer";
|
||||
|
||||
Autobuyer.darkMatterDimsAscension =
|
||||
new class DarkMatterDimensionAscensionAutobuyerState extends IntervaledAutobuyerState {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Autobuyer, IntervaledAutobuyerState } from "./autobuyer.js";
|
||||
import { Autobuyer, IntervaledAutobuyerState } from "./autobuyer";
|
||||
|
||||
Autobuyer.darkMatterDims = new class DarkMatterDimensionAutobuyerState extends IntervaledAutobuyerState {
|
||||
get data() {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Autobuyer, IntervaledAutobuyerState } from "./autobuyer.js";
|
||||
import { Autobuyer, IntervaledAutobuyerState } from "./autobuyer";
|
||||
|
||||
class DilationUpgradeAutobuyerState extends IntervaledAutobuyerState {
|
||||
get _upgradeName() { return ["dtGain", "galaxyThreshold", "tachyonGain"][this.id - 1]; }
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Autobuyer, UpgradeableAutobuyerState } from "./autobuyer.js";
|
||||
import { Autobuyer, UpgradeableAutobuyerState } from "./autobuyer";
|
||||
|
||||
Autobuyer.dimboost = new class DimBoostAutobuyerState extends UpgradeableAutobuyerState {
|
||||
get data() {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Autobuyer, AutobuyerState } from "./autobuyer.js";
|
||||
import { Autobuyer, AutobuyerState } from "./autobuyer";
|
||||
|
||||
Autobuyer.eternity = new class EternityAutobuyerState extends AutobuyerState {
|
||||
get data() {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Autobuyer, UpgradeableAutobuyerState } from "./autobuyer.js";
|
||||
import { Autobuyer, UpgradeableAutobuyerState } from "./autobuyer";
|
||||
|
||||
Autobuyer.galaxy = new class GalaxyAutobuyerState extends UpgradeableAutobuyerState {
|
||||
get data() {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Autobuyer, AutobuyerState } from "./autobuyer.js";
|
||||
import { Autobuyer, AutobuyerState } from "./autobuyer";
|
||||
|
||||
class ImaginaryUpgradeAutobuyerState extends AutobuyerState {
|
||||
get name() {
|
||||
|
|
|
@ -1,27 +1,27 @@
|
|||
import "./autobuyer.js";
|
||||
import "./autobuyer";
|
||||
|
||||
import "./antimatter-dimension-autobuyer.js";
|
||||
import "./tickspeed-autobuyer.js";
|
||||
import "./dimboost-autobuyer.js";
|
||||
import "./galaxy-autobuyer.js";
|
||||
import "./big-crunch-autobuyer.js";
|
||||
import "./sacrifice-autobuyer.js";
|
||||
import "./eternity-autobuyer.js";
|
||||
import "./reality-autobuyer.js";
|
||||
import "./antimatter-dimension-autobuyer";
|
||||
import "./tickspeed-autobuyer";
|
||||
import "./dimboost-autobuyer";
|
||||
import "./galaxy-autobuyer";
|
||||
import "./big-crunch-autobuyer";
|
||||
import "./sacrifice-autobuyer";
|
||||
import "./eternity-autobuyer";
|
||||
import "./reality-autobuyer";
|
||||
|
||||
import "./infinity-dimension-autobuyer.js";
|
||||
import "./time-dimension-autobuyer.js";
|
||||
import "./time-theorem-autobuyer.js";
|
||||
import "./black-hole-power-autobuyer.js";
|
||||
import "./reality-upgrade-autobuyer.js";
|
||||
import "./imaginary-upgrade-autobuyer.js";
|
||||
import "./replicanti-upgrade-autobuyer.js";
|
||||
import "./dilation-upgrade-autobuyer.js";
|
||||
import "./prestige-currency-multiplier-autobuyer.js";
|
||||
import "./replicanti-galaxy-autobuyer.js";
|
||||
import "./dark-matter-dimension-autobuyer.js";
|
||||
import "./dark-matter-dimension-ascension-autobuyer.js";
|
||||
import "./singularity-autobuyer.js";
|
||||
import "./annihilation-autobuyer.js";
|
||||
import "./infinity-dimension-autobuyer";
|
||||
import "./time-dimension-autobuyer";
|
||||
import "./time-theorem-autobuyer";
|
||||
import "./black-hole-power-autobuyer";
|
||||
import "./reality-upgrade-autobuyer";
|
||||
import "./imaginary-upgrade-autobuyer";
|
||||
import "./replicanti-upgrade-autobuyer";
|
||||
import "./dilation-upgrade-autobuyer";
|
||||
import "./prestige-currency-multiplier-autobuyer";
|
||||
import "./replicanti-galaxy-autobuyer";
|
||||
import "./dark-matter-dimension-autobuyer";
|
||||
import "./dark-matter-dimension-ascension-autobuyer";
|
||||
import "./singularity-autobuyer";
|
||||
import "./annihilation-autobuyer";
|
||||
|
||||
export * from "./autobuyers.js";
|
||||
export * from "./autobuyers";
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { InfinityDimensions } from "../globals.js";
|
||||
import { Autobuyer, IntervaledAutobuyerState } from "./autobuyer.js";
|
||||
import { InfinityDimensions } from "../globals";
|
||||
|
||||
import { Autobuyer, IntervaledAutobuyerState } from "./autobuyer";
|
||||
|
||||
class InfinityDimensionAutobuyerState extends IntervaledAutobuyerState {
|
||||
get tier() {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Autobuyer, AutobuyerState } from "./autobuyer.js";
|
||||
import { Autobuyer, AutobuyerState } from "./autobuyer";
|
||||
|
||||
Autobuyer.ipMult = new class IPMultAutobuyerState extends AutobuyerState {
|
||||
get data() {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Autobuyer, AutobuyerState } from "./autobuyer.js";
|
||||
import { Autobuyer, AutobuyerState } from "./autobuyer";
|
||||
|
||||
Autobuyer.reality = new class RealityAutobuyerState extends AutobuyerState {
|
||||
get data() {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Autobuyer, AutobuyerState } from "./autobuyer.js";
|
||||
import { Autobuyer, AutobuyerState } from "./autobuyer";
|
||||
|
||||
class RealityUpgradeAutobuyerState extends AutobuyerState {
|
||||
get name() {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Autobuyer, AutobuyerState } from "./autobuyer.js";
|
||||
import { Autobuyer, AutobuyerState } from "./autobuyer";
|
||||
|
||||
Autobuyer.replicantiGalaxy = new class ReplicantiGalaxyAutobuyerState extends AutobuyerState {
|
||||
get data() {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Autobuyer, IntervaledAutobuyerState } from "./autobuyer.js";
|
||||
import { Autobuyer, IntervaledAutobuyerState } from "./autobuyer";
|
||||
|
||||
class ReplicantiUpgradeAutobuyerState extends IntervaledAutobuyerState {
|
||||
get _upgradeName() { return ["chance", "interval", "galaxies"][this.id - 1]; }
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Autobuyer, AutobuyerState } from "./autobuyer.js";
|
||||
import { Autobuyer, AutobuyerState } from "./autobuyer";
|
||||
|
||||
Autobuyer.sacrifice = new class SacrificeAutobuyerState extends AutobuyerState {
|
||||
get data() {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Autobuyer, AutobuyerState } from "./autobuyer.js";
|
||||
import { Autobuyer, AutobuyerState } from "./autobuyer";
|
||||
|
||||
Autobuyer.singularity = new class SingularityAutobuyerState extends AutobuyerState {
|
||||
get data() {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { Autobuyer, UpgradeableAutobuyerState } from "./autobuyer.js";
|
||||
import { DC } from "../constants.js";
|
||||
import { DC } from "../constants";
|
||||
|
||||
import { Autobuyer, UpgradeableAutobuyerState } from "./autobuyer";
|
||||
|
||||
Autobuyer.tickspeed = new class TickspeedAutobuyerState extends UpgradeableAutobuyerState {
|
||||
get data() {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Autobuyer, IntervaledAutobuyerState } from "./autobuyer.js";
|
||||
import { Autobuyer, IntervaledAutobuyerState } from "./autobuyer";
|
||||
|
||||
class TimeDimensionAutobuyerState extends IntervaledAutobuyerState {
|
||||
get tier() {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Autobuyer, AutobuyerState } from "./autobuyer.js";
|
||||
import { Autobuyer, AutobuyerState } from "./autobuyer";
|
||||
|
||||
Autobuyer.timeTheorem = new class TimeTheoremAutobuyerState extends AutobuyerState {
|
||||
get data() {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { AutomatorGrammar } from "./parser.js";
|
||||
import { AutomatorLexer } from "./lexer.js";
|
||||
import { AutomatorGrammar } from "./parser";
|
||||
import { AutomatorLexer } from "./lexer";
|
||||
|
||||
(function() {
|
||||
function walkSuggestion(suggestion, prefix, output) {
|
||||
|
@ -60,7 +60,7 @@ import { AutomatorLexer } from "./lexer.js";
|
|||
{ regex: /blob\s\s/ui, token: "blob" },
|
||||
{
|
||||
// eslint-disable-next-line max-len
|
||||
regex: /auto\s|if\s|pause\s|studies\s|tt\s|time theorems\s|until\s|wait\s|while\s|black[ \t]+hole\s|stored?[ \t]time\s|notify/ui,
|
||||
regex: /(auto|if|pause|studies|tt|time[ \t]+theorems?|until|wait|while|black[ \t]+hole|stored?[ \t]+game[ \t]+time|notify)\s/ui,
|
||||
token: "keyword",
|
||||
next: "commandArgs"
|
||||
},
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { AutomatorLexer } from "./lexer.js";
|
||||
import { AutomatorLexer } from "./lexer";
|
||||
|
||||
/**
|
||||
* Note: the $ shorthand for the parser object is required by Chevrotain. Don't mess with it.
|
||||
|
@ -559,9 +559,9 @@ export const AutomatorCommands = ((() => {
|
|||
})
|
||||
},
|
||||
{
|
||||
id: "storeTime",
|
||||
id: "storeGameTime",
|
||||
rule: $ => () => {
|
||||
$.CONSUME(T.StoreTime);
|
||||
$.CONSUME(T.StoreGameTime);
|
||||
$.OR([
|
||||
{ ALT: () => $.CONSUME(T.On) },
|
||||
{ ALT: () => $.CONSUME(T.Off) },
|
||||
|
@ -569,10 +569,10 @@ export const AutomatorCommands = ((() => {
|
|||
]);
|
||||
},
|
||||
validate: (ctx, V) => {
|
||||
ctx.startLine = ctx.StoreTime[0].startLine;
|
||||
ctx.startLine = ctx.StoreGameTime[0].startLine;
|
||||
if (!Enslaved.isUnlocked) {
|
||||
V.addError(ctx.StoreTime[0], "You do not yet know how to store time",
|
||||
"Unlock the ability to store time");
|
||||
V.addError(ctx.StoreGameTime[0], "You do not yet know how to store game time",
|
||||
"Unlock the ability to store game time");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -581,9 +581,9 @@ export const AutomatorCommands = ((() => {
|
|||
if (ctx.Use) return () => {
|
||||
if (Enslaved.isUnlocked) {
|
||||
Enslaved.useStoredTime(false);
|
||||
AutomatorData.logCommandEvent(`Stored time used`, ctx.startLine);
|
||||
AutomatorData.logCommandEvent(`Stored game time used`, ctx.startLine);
|
||||
} else {
|
||||
AutomatorData.logCommandEvent(`Attempted to use stored time, but failed (not unlocked yet)`,
|
||||
AutomatorData.logCommandEvent(`Attempted to use stored game time, but failed (not unlocked yet)`,
|
||||
ctx.startLine);
|
||||
}
|
||||
return AUTOMATOR_COMMAND_STATUS.NEXT_INSTRUCTION;
|
||||
|
@ -591,14 +591,14 @@ export const AutomatorCommands = ((() => {
|
|||
const on = Boolean(ctx.On);
|
||||
return () => {
|
||||
if (on !== player.celestials.enslaved.isStoring) Enslaved.toggleStoreBlackHole();
|
||||
AutomatorData.logCommandEvent(`Storing time toggled ${ctx.On ? "ON" : "OFF"}`, ctx.startLine);
|
||||
AutomatorData.logCommandEvent(`Storing game time toggled ${ctx.On ? "ON" : "OFF"}`, ctx.startLine);
|
||||
return AUTOMATOR_COMMAND_STATUS.NEXT_INSTRUCTION;
|
||||
};
|
||||
},
|
||||
blockify: ctx => ({
|
||||
// eslint-disable-next-line no-nested-ternary
|
||||
target: ctx.Use ? "USE" : (ctx.On ? "ON" : "OFF"),
|
||||
...automatorBlocksMap["STORE TIME"]
|
||||
...automatorBlocksMap["STORE GAME TIME"]
|
||||
})
|
||||
},
|
||||
{
|
||||
|
@ -723,7 +723,7 @@ export const AutomatorCommands = ((() => {
|
|||
if (missingStudyCount === 0) {
|
||||
AutomatorData.logCommandEvent(`Fully loaded study preset ${ctx.Preset[0].image}`, ctx.startLine);
|
||||
} else if (afterCount > beforeCount) {
|
||||
AutomatorData.logCommandEvent(`Partially loaded study preset ${ctx.Preset[0].image}
|
||||
AutomatorData.logCommandEvent(`Partially loaded study preset ${ctx.Preset[0].image}
|
||||
(missing ${quantifyInt("study", missingStudyCount)})`, ctx.startLine);
|
||||
}
|
||||
return ctx.Nowait !== undefined || missingStudyCount === 0
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { AutomatorCommands } from "./automator-commands.js";
|
||||
import { AutomatorGrammar } from "./parser.js";
|
||||
import { AutomatorLexer } from "./lexer.js";
|
||||
import { AutomatorCommands } from "./automator-commands";
|
||||
import { AutomatorGrammar } from "./parser";
|
||||
import { AutomatorLexer } from "./lexer";
|
||||
|
||||
(function() {
|
||||
if (AutomatorGrammar === undefined) {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import "./compiler.js";
|
||||
import "./automator-codemirror.js";
|
||||
import "./compiler";
|
||||
import "./automator-codemirror";
|
||||
|
||||
export { AutomatorGrammar } from "./parser.js";
|
||||
export { standardizeAutomatorCurrencyName } from "./lexer.js";
|
||||
export { AutomatorGrammar } from "./parser";
|
||||
export { standardizeAutomatorCurrencyName } from "./lexer";
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
/* eslint-disable require-unicode-regexp */
|
||||
/* eslint-disable camelcase */
|
||||
import { createToken, Lexer } from "chevrotain";
|
||||
import { DC } from "../constants.js";
|
||||
|
||||
import { DC } from "../constants";
|
||||
|
||||
export const AutomatorLexer = (() => {
|
||||
const createCategory = name => createToken({ name, pattern: Lexer.NA, longer_alt: Identifier });
|
||||
|
@ -304,8 +305,8 @@ export const AutomatorLexer = (() => {
|
|||
createKeyword("BlackHole", /black[ \t]+hole/i, {
|
||||
$autocomplete: "black hole",
|
||||
});
|
||||
createKeyword("StoreTime", /stored?[ \t]+time/i, {
|
||||
$autocomplete: "store time",
|
||||
createKeyword("StoreGameTime", /stored?[ \t]+game[ \t]+time/i, {
|
||||
$autocomplete: "store game time",
|
||||
});
|
||||
|
||||
createKeyword("Dilation", /dilation/i);
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import { Parser, EOF } from "chevrotain";
|
||||
import { AutomatorCommands } from "./automator-commands.js";
|
||||
import { AutomatorLexer } from "./lexer.js";
|
||||
import { EOF, Parser } from "chevrotain";
|
||||
|
||||
import { AutomatorCommands } from "./automator-commands";
|
||||
import { AutomatorLexer } from "./lexer";
|
||||
|
||||
export const AutomatorGrammar = (function() {
|
||||
const T = AutomatorLexer.tokenMap;
|
||||
|
|
|
@ -63,8 +63,9 @@ export class ScriptTemplate {
|
|||
storeTreeData(params) {
|
||||
const nowaitStr = params.treeNowait ? " nowait" : "";
|
||||
if (params.treePreset) {
|
||||
const presetObj = player.timestudy.presets.find(p => p.name === params.treePreset);
|
||||
this.storedTreeStr = `studies${nowaitStr} load preset ${presetObj.name}`;
|
||||
const presetObj = player.timestudy.presets.map((p, i) => ({ ...p, id: i + 1 }))
|
||||
.find(p => (p.name === params.treePreset || p.id === Number(params.treePreset)));
|
||||
this.storedTreeStr = `studies${nowaitStr} load preset ${presetObj.name || presetObj.id}`;
|
||||
this.storedTreeObj = new TimeStudyTree(presetObj.studies);
|
||||
} else {
|
||||
this.storedTreeStr = `studies${nowaitStr} ${params.treeStudies}`;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { GameMechanicState, SetPurchasableMechanicState, RebuyableMechanicState } from "./game-mechanics/index.js";
|
||||
import { DC } from "./constants.js";
|
||||
import { SpeedrunMilestones } from "./speedrun.js";
|
||||
import { GameMechanicState, RebuyableMechanicState, SetPurchasableMechanicState } from "./game-mechanics/index";
|
||||
import { DC } from "./constants";
|
||||
import FullScreenAnimationHandler from "./full-screen-animation-handler";
|
||||
import { SpeedrunMilestones } from "./speedrun";
|
||||
|
||||
export function bigCrunchAnimation() {
|
||||
FullScreenAnimationHandler.display("implode", 2);
|
||||
|
@ -50,10 +50,10 @@ export function bigCrunchReset() {
|
|||
if (Pelle.isDoomed) PelleStrikes.infinity.trigger();
|
||||
|
||||
EventHub.dispatch(GAME_EVENT.BIG_CRUNCH_AFTER);
|
||||
if (firstInfinity && !Pelle.isDoomed) Modal.message.show(`Upon Infinity, all Dimensions, Dimension Boosts, and Antimatter
|
||||
Galaxies are reset, but in return, you gain an Infinity Point (IP). This allows you to buy multiple upgrades that
|
||||
you can find in the Infinity tab. You will also gain one Infinity, which is the stat shown in the Statistics
|
||||
tab.`);
|
||||
if (firstInfinity && !Pelle.isDoomed) Modal.message.show(`Upon Infinity, all Dimensions, Dimension Boosts, and
|
||||
Antimatter Galaxies are reset, but in return, you gain an Infinity Point (IP). This allows you to buy multiple
|
||||
upgrades that you can find in the Infinity tab. You will also gain one Infinity, which is the stat shown in the
|
||||
Statistics tab.`);
|
||||
}
|
||||
|
||||
function bigCrunchUpdateStatistics() {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { DC } from "./constants.js";
|
||||
import { SpeedrunMilestones } from "./speedrun.js";
|
||||
import { DC } from "./constants";
|
||||
import { SpeedrunMilestones } from "./speedrun";
|
||||
|
||||
class BlackHoleUpgradeState {
|
||||
constructor(config) {
|
||||
|
@ -355,6 +355,7 @@ export const BlackHoles = {
|
|||
Currency.realityMachines.purchase(100);
|
||||
SpeedrunMilestones(17).tryComplete();
|
||||
Achievement(144).unlock();
|
||||
EventHub.dispatch(GAME_EVENT.BLACK_HOLE_UNLOCKED);
|
||||
},
|
||||
|
||||
togglePause: () => {
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
import { GameDatabase } from "../secret-formula/game-database.js";
|
||||
import { GameMechanicState, BitUpgradeState } from "../game-mechanics/index.js";
|
||||
import { CelestialQuotes } from "./quotes.js";
|
||||
import { SpeedrunMilestones } from "../speedrun.js";
|
||||
import { BitUpgradeState, GameMechanicState } from "../game-mechanics/index";
|
||||
import { GameDatabase } from "../secret-formula/game-database";
|
||||
|
||||
import { SpeedrunMilestones } from "../speedrun";
|
||||
|
||||
import { CelestialQuotes } from "./quotes";
|
||||
|
||||
/**
|
||||
* Information about how to format runUnlocks:
|
||||
|
@ -25,7 +27,7 @@ class VRunUnlockState extends GameMechanicState {
|
|||
}
|
||||
|
||||
get canBeReduced() {
|
||||
return this.completions < this.config.values.length &&
|
||||
return this.completions < this.config.values.length && this.completions !== 0 &&
|
||||
new Decimal(this.reduction).neq(this.config.maxShardReduction(this.conditionBaseValue));
|
||||
}
|
||||
|
||||
|
@ -172,7 +174,7 @@ export const V = {
|
|||
}
|
||||
},
|
||||
get canUnlockCelestial() {
|
||||
return VUnlocks.vAchievementUnlock.canUnlock;
|
||||
return VUnlocks.vAchievementUnlock.canBeUnlocked;
|
||||
},
|
||||
unlockCelestial() {
|
||||
// eslint-disable-next-line no-bitwise
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
import { Teresa } from "./teresa.js";
|
||||
import { Effarig } from "./effarig.js";
|
||||
import { Enslaved } from "./enslaved.js";
|
||||
import { V } from "./V.js";
|
||||
import { Ra } from "./ra/ra.js";
|
||||
import { Laitela } from "./laitela/laitela.js";
|
||||
import { Effarig } from "./effarig";
|
||||
import { Enslaved } from "./enslaved";
|
||||
import { Laitela } from "./laitela/laitela";
|
||||
import { Pelle } from "./pelle/pelle";
|
||||
import { Ra } from "./ra/ra";
|
||||
import { Teresa } from "./teresa";
|
||||
import { V } from "./V";
|
||||
|
||||
export const Celestials = {
|
||||
teresa: Teresa,
|
||||
|
@ -44,7 +44,7 @@ GameDatabase.celestials.descriptions = [
|
|||
Tachyon Particle production and Dilated Time production are severely reduced
|
||||
Time Theorem generation from Dilation Glyphs is disabled
|
||||
Certain challenge goals have been increased
|
||||
Stored Time is discharged at a reduced effectiveness (exponent^${format(0.55, 2, 2)}) `;
|
||||
Stored game time is discharged at a reduced effectiveness (exponent^${format(0.55, 2, 2)}) `;
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
import { GameDatabase } from "../secret-formula/game-database.js";
|
||||
import { BitUpgradeState } from "../game-mechanics/index.js";
|
||||
import { CelestialQuotes } from "./quotes.js";
|
||||
import { DC } from "../constants.js";
|
||||
import { BitUpgradeState } from "../game-mechanics/index";
|
||||
import { GameDatabase } from "../secret-formula/game-database";
|
||||
|
||||
import { DC } from "../constants";
|
||||
|
||||
import { CelestialQuotes } from "./quotes";
|
||||
|
||||
export const EFFARIG_STAGES = {
|
||||
INFINITY: 1,
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import { GameDatabase } from "../secret-formula/game-database.js";
|
||||
import { BitUpgradeState } from "../game-mechanics/index.js";
|
||||
import { CelestialQuotes } from "./quotes.js";
|
||||
import { BitUpgradeState } from "../game-mechanics/index";
|
||||
import { GameDatabase } from "../secret-formula/game-database";
|
||||
|
||||
import { CelestialQuotes } from "./quotes";
|
||||
|
||||
export const ENSLAVED_UNLOCKS = {
|
||||
FREE_TICKSPEED_SOFTCAP: {
|
||||
|
@ -152,6 +153,9 @@ export const Enslaved = {
|
|||
return Math.max(baseRealityBoostRatio, Math.floor(player.celestials.enslaved.storedReal /
|
||||
Math.max(1000, Time.thisRealityRealTime.totalMilliseconds)));
|
||||
},
|
||||
get canAmplify() {
|
||||
return this.realityBoostRatio > 1 && !Pelle.isDoomed && !isInCelestialReality();
|
||||
},
|
||||
storedTimeInsideEnslaved(stored) {
|
||||
if (stored <= 1e3) return stored;
|
||||
return Math.pow(10, Math.pow(Math.log10(stored / 1e3), 0.55)) * 1e3;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { DimensionState } from "../../dimensions/dimension.js";
|
||||
import { DC } from "../../constants.js";
|
||||
import { DC } from "../../constants";
|
||||
import { DimensionState } from "../../dimensions/dimension";
|
||||
|
||||
/**
|
||||
* Constants for easily adjusting values
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import { CelestialQuotes } from "../quotes.js";
|
||||
import { DC } from "../../constants.js";
|
||||
import { DarkMatterDimensions } from "./dark-matter-dimension.js";
|
||||
import { CelestialQuotes } from "../quotes";
|
||||
import { DC } from "../../constants";
|
||||
|
||||
import { DarkMatterDimensions } from "./dark-matter-dimension";
|
||||
|
||||
export const Laitela = {
|
||||
displayName: "Lai'tela",
|
||||
|
@ -52,7 +53,7 @@ export const Laitela = {
|
|||
},
|
||||
// Note that entropy goes from 0 to 1, with 1 being completion
|
||||
get entropyGainPerSecond() {
|
||||
return Math.clamp(Math.pow(Currency.antimatter.value.log10() / 1e11, 2), 0, 100) / 200;
|
||||
return Math.clamp(Math.pow(Currency.antimatter.value.add(1).log10() / 1e11, 2), 0, 100) / 200;
|
||||
},
|
||||
get darkMatterMultGain() {
|
||||
return Decimal.pow(Currency.darkMatter.value.dividedBy(this.annihilationDMRequirement)
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import { GameMechanicState } from "../../game-mechanics/index.js";
|
||||
import { GameMechanicState } from "../../game-mechanics/index";
|
||||
|
||||
import { deepmergeAll } from "@/utility/deepmerge";
|
||||
|
||||
class SingularityMilestoneState extends GameMechanicState {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { DC } from "../../constants";
|
||||
import { RebuyableMechanicState } from "../../game-mechanics/rebuyable";
|
||||
|
||||
import { PelleRifts } from "./rifts";
|
||||
|
||||
export const GalaxyGenerator = {
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
import { DC } from "../../constants";
|
||||
import { Currency } from "../../currency";
|
||||
import { DC } from "../../constants";
|
||||
import { RebuyableMechanicState } from "../../game-mechanics/rebuyable";
|
||||
import { SetPurchasableMechanicState } from "../../utils";
|
||||
|
||||
import { CelestialQuotes } from "../quotes";
|
||||
|
||||
import zalgo from "./zalgo";
|
||||
import { CelestialQuotes } from "../quotes.js";
|
||||
|
||||
const disabledMechanicUnlocks = {
|
||||
achievements: () => ({}),
|
||||
|
@ -116,7 +118,7 @@ export const Pelle = {
|
|||
},
|
||||
|
||||
get disabledAchievements() {
|
||||
return [143, 142, 141, 125, 118, 117, 111, 104, 103, 92, 91, 78, 76, 74, 65, 55, 54, 37];
|
||||
return [143, 142, 141, 133, 125, 118, 117, 111, 104, 103, 92, 91, 78, 76, 74, 65, 55, 54, 37];
|
||||
},
|
||||
|
||||
get uselessInfinityUpgrades() {
|
||||
|
@ -152,36 +154,13 @@ export const Pelle = {
|
|||
|
||||
get specialGlyphEffect() {
|
||||
const isUnlocked = this.isDoomed && PelleRifts.chaos.milestones[1].canBeApplied;
|
||||
let description;
|
||||
switch (Pelle.activeGlyphType) {
|
||||
case "infinity":
|
||||
description = "Infinity Point gain {value} (based on current IP)";
|
||||
break;
|
||||
case "time":
|
||||
description = "Eternity Point gain {value} (based on current EP)";
|
||||
break;
|
||||
case "replication":
|
||||
description = "Replication speed {value} (based on Famine)";
|
||||
break;
|
||||
case "dilation":
|
||||
description = "Dilated Time gain {value} (based on Tachyon Galaxies)";
|
||||
break;
|
||||
case "power":
|
||||
description = `Galaxies are ${formatPercents(0.02)} stronger`;
|
||||
break;
|
||||
case "companion":
|
||||
description = `You feel ${formatPercents(0.34)} better`;
|
||||
break;
|
||||
default:
|
||||
description = "No glyph equipped!";
|
||||
break;
|
||||
}
|
||||
const description = this.getSpecialGlyphEffectDescription(this.activeGlyphType);
|
||||
const isActive = type => isUnlocked && this.activeGlyphType === type;
|
||||
return {
|
||||
isUnlocked,
|
||||
description,
|
||||
infinity: (isActive("infinity") && player.challenge.eternity.current <= 8)
|
||||
? Currency.infinityPoints.value.pow(0.2)
|
||||
? Currency.infinityPoints.value.plus(1).pow(0.2)
|
||||
: DC.D1,
|
||||
time: isActive("time")
|
||||
? Currency.eternityPoints.value.plus(1).pow(0.3)
|
||||
|
@ -201,6 +180,32 @@ export const Pelle = {
|
|||
isScaling: () => ["infinity", "time", "replication", "dilation"].includes(this.activeGlyphType),
|
||||
};
|
||||
},
|
||||
getSpecialGlyphEffectDescription(type) {
|
||||
switch (type) {
|
||||
case "infinity":
|
||||
return `Infinity Point gain ${player.challenge.eternity.current <= 8
|
||||
? formatX(Currency.infinityPoints.value.plus(1).pow(0.2), 2)
|
||||
: formatX(DC.D1, 2)} (based on current IP)`;
|
||||
case "time":
|
||||
return `Eternity Point gain ${formatX(Currency.eternityPoints.value.plus(1).pow(0.3), 2)}
|
||||
(based on current EP)`;
|
||||
case "replication":
|
||||
return `Replication speed ${formatX(10 ** 53 ** (PelleRifts.famine.percentage), 2)} (based on Famine)`;
|
||||
case "dilation":
|
||||
return `Dilated Time gain ${formatX(Decimal.pow(player.dilation.totalTachyonGalaxies, 1.5).max(1), 2)}
|
||||
(based on Tachyon Galaxies)`;
|
||||
case "power":
|
||||
return `Galaxies are ${formatPercents(0.02)} stronger`;
|
||||
case "companion":
|
||||
return `You feel ${formatPercents(0.34)} better`;
|
||||
// Undefined means that there is no glyph equipped, needs to be here since this function is used in
|
||||
// both Current Glyph Effects and Glyph Tooltip
|
||||
case undefined:
|
||||
return "No glyph equipped!";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
},
|
||||
|
||||
get remnantRequirementForDilation() {
|
||||
return 3.8e7;
|
||||
|
@ -268,7 +273,7 @@ export const Pelle = {
|
|||
// Transition text from "from" to "to", stage is 0-1, 0 is fully "from" and 1 is fully "to"
|
||||
// Also adds more zalgo the bigger the stage
|
||||
transitionText(from, to, stage = 0) {
|
||||
const len = (from.length * (1 - stage) + to.length * stage);
|
||||
const len = Math.round((from.length * (1 - stage) + to.length * stage) * 1e8) / 1e8;
|
||||
const toInterval = len * (1 - stage);
|
||||
let req = toInterval;
|
||||
let str = "";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { GameMechanicState } from "../../game-mechanics/index.js";
|
||||
import { GameMechanicState } from "../../game-mechanics/index";
|
||||
|
||||
/**
|
||||
* @abstract
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { GameMechanicState, BitUpgradeState } from "../../game-mechanics/index.js";
|
||||
import { CelestialQuotes } from "../quotes.js";
|
||||
import { BitUpgradeState, GameMechanicState } from "../../game-mechanics/index";
|
||||
import { CelestialQuotes } from "../quotes";
|
||||
|
||||
class RaUnlockState extends BitUpgradeState {
|
||||
get bits() { return player.celestials.ra.unlockBits; }
|
||||
|
@ -94,7 +94,7 @@ class RaPetState extends GameMechanicState {
|
|||
}
|
||||
|
||||
get level() {
|
||||
return this.data.level;
|
||||
return this.isUnlocked ? this.data.level : 0;
|
||||
}
|
||||
|
||||
set level(value) {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import { GameDatabase } from "../secret-formula/game-database.js";
|
||||
import { BitUpgradeState, RebuyableMechanicState } from "../game-mechanics/index.js";
|
||||
import { CelestialQuotes } from "./quotes.js";
|
||||
import { BitUpgradeState, RebuyableMechanicState } from "../game-mechanics/index";
|
||||
import { GameDatabase } from "../secret-formula/game-database";
|
||||
|
||||
import { CelestialQuotes } from "./quotes";
|
||||
|
||||
export const Teresa = {
|
||||
timePoured: 0,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { GameMechanicState } from "./game-mechanics/index.js";
|
||||
import { DC } from "./constants.js";
|
||||
import { DC } from "./constants";
|
||||
import { GameMechanicState } from "./game-mechanics/index";
|
||||
|
||||
// This function does *not* reset anything. Only call it when you've already
|
||||
// done all the non-UI stuff. Right now the only UI thing to do is switch to
|
||||
|
@ -190,7 +190,8 @@ class InfinityChallengeState extends GameMechanicState {
|
|||
}
|
||||
|
||||
get isUnlocked() {
|
||||
return player.records.thisEternity.maxAM.gte(this.unlockAM) || Achievement(133).isUnlocked;
|
||||
return player.records.thisEternity.maxAM.gte(this.unlockAM) || (Achievement(133).isUnlocked && !Pelle.isDoomed) ||
|
||||
(PelleUpgrade.keepInfinityChallenges.canBeApplied && Pelle.cel.records.totalAntimatter.gte(this.unlockAM));
|
||||
}
|
||||
|
||||
get isRunning() {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { DC } from "./constants.js";
|
||||
import { DC } from "./constants";
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
import { DC } from "./constants.js";
|
||||
import { sha512_256 } from "js-sha512";
|
||||
import FullScreenAnimationHandler from "./full-screen-animation-handler";
|
||||
|
||||
import { DC } from "./constants";
|
||||
|
||||
/* eslint-disable no-console */
|
||||
// Disabling no-console here seems
|
||||
// reasonable, since these are the devtools after all
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { SetPurchasableMechanicState, RebuyableMechanicState } from "./game-mechanics/index.js";
|
||||
import { DC } from "./constants.js";
|
||||
import { SpeedrunMilestones } from "./speedrun.js";
|
||||
import { RebuyableMechanicState, SetPurchasableMechanicState } from "./game-mechanics/index";
|
||||
import { DC } from "./constants";
|
||||
import FullScreenAnimationHandler from "./full-screen-animation-handler";
|
||||
import { SpeedrunMilestones } from "./speedrun";
|
||||
|
||||
export function animateAndDilate() {
|
||||
FullScreenAnimationHandler.display("dilate", 2);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { DC } from "./constants.js";
|
||||
import { DC } from "./constants";
|
||||
|
||||
class DimBoostRequirement {
|
||||
constructor(tier, amount) {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { DimensionState } from "./dimension.js";
|
||||
import { DC } from "../constants.js";
|
||||
import { DC } from "../constants";
|
||||
|
||||
import { DimensionState } from "./dimension";
|
||||
|
||||
// Multiplier applied to all Antimatter Dimensions, regardless of tier. This is cached using a Lazy
|
||||
// and invalidated every update.
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { DimensionState } from "./dimension.js";
|
||||
import { DC } from "../constants.js";
|
||||
import { DC } from "../constants";
|
||||
|
||||
import { DimensionState } from "./dimension";
|
||||
|
||||
export function infinityDimensionCommonMultiplier() {
|
||||
let mult = new Decimal(ShopPurchase.allDimPurchases.currentMult)
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { DimensionState } from "./dimension.js";
|
||||
import { DC } from "../constants.js";
|
||||
import { DC } from "../constants";
|
||||
|
||||
import { DimensionState } from "./dimension";
|
||||
|
||||
export function buySingleTimeDimension(tier) {
|
||||
const dim = TimeDimension(tier);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { GameMechanicState, SetPurchasableMechanicState } from "./game-mechanics/index.js";
|
||||
import { DC } from "./constants.js";
|
||||
import { GameMechanicState, SetPurchasableMechanicState } from "./game-mechanics/index";
|
||||
import { DC } from "./constants";
|
||||
import FullScreenAnimationHandler from "./full-screen-animation-handler";
|
||||
|
||||
function giveEternityRewards(auto) {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { GameMechanicState } from "./game-mechanics/index.js";
|
||||
import { DC } from "./constants.js";
|
||||
import { DC } from "./constants";
|
||||
import { deepmergeAll } from "@/utility/deepmerge";
|
||||
import { GameMechanicState } from "./game-mechanics/index";
|
||||
|
||||
export function startEternityChallenge() {
|
||||
initializeChallengeCompletions();
|
||||
|
|
|
@ -94,6 +94,7 @@ window.GAME_EVENT = {
|
|||
REALITY_UPGRADE_BOUGHT: "REALITY_UPGRADE_BOUGHT",
|
||||
REALITY_UPGRADE_TEN_BOUGHT: "REALITY_UPGRADE_TEN_BOUGHT",
|
||||
PERK_BOUGHT: "PERK_BOUGHT",
|
||||
BLACK_HOLE_UNLOCKED: "BLACK_HOLE_UNLOCKED",
|
||||
BLACK_HOLE_UPGRADE_BOUGHT: "BLACK_HOLE_UPGRADE_BOUGHT",
|
||||
GAME_LOAD: "GAME_LOAD",
|
||||
SAVE_CONVERTED_FROM_PREVIOUS_VERSION: "SAVE_CONVERTED_FROM_PREVIOUS_VERSION",
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { PurchasableMechanicState } from "./puchasable.js";
|
||||
import { PurchasableMechanicState } from "./puchasable";
|
||||
|
||||
/**
|
||||
* @abstract
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { GameMechanicState } from "./game-mechanic.js";
|
||||
import { GameMechanicState } from "./game-mechanic";
|
||||
|
||||
/**
|
||||
* @abstract
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Effect } from "./effect.js";
|
||||
import { Effect } from "./effect";
|
||||
|
||||
/**
|
||||
* @abstract
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
export * from "./effect.js";
|
||||
export * from "./effects.js";
|
||||
export * from "./game-mechanic.js";
|
||||
export * from "./bit-upgrade-state.js";
|
||||
export * from "./puchasable.js";
|
||||
export * from "./set-purchasable.js";
|
||||
export * from "./bit-purchasable.js";
|
||||
export * from "./rebuyable.js";
|
||||
export * from "./effect";
|
||||
export * from "./effects";
|
||||
export * from "./game-mechanic";
|
||||
export * from "./bit-upgrade-state";
|
||||
export * from "./puchasable";
|
||||
export * from "./set-purchasable";
|
||||
export * from "./bit-purchasable";
|
||||
export * from "./rebuyable";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { GameMechanicState } from "./game-mechanic.js";
|
||||
import { GameMechanicState } from "./game-mechanic";
|
||||
|
||||
/**
|
||||
* @abstract
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { GameMechanicState } from "./game-mechanic.js";
|
||||
import { GameMechanicState } from "./game-mechanic";
|
||||
|
||||
/**
|
||||
* @abstract
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { PurchasableMechanicState } from "./puchasable.js";
|
||||
import { PurchasableMechanicState } from "./puchasable";
|
||||
|
||||
/**
|
||||
* @abstract
|
||||
|
|
|
@ -1,90 +1,90 @@
|
|||
export * from "./glyph-effects.js";
|
||||
export * from "./player.js";
|
||||
export * from "./glyph-effects";
|
||||
export * from "./player";
|
||||
|
||||
export * from "./automator/automator-backend.js";
|
||||
export * from "./performance-stats.js";
|
||||
export * from "./currency.js";
|
||||
export * from "./cache.js";
|
||||
export * from "./intervals.js";
|
||||
export * from "./keyboard.js";
|
||||
export * from "./hotkeys.js";
|
||||
export * from "./galaxy.js";
|
||||
export * from "./away-progress.js";
|
||||
export * from "./confirmations.js";
|
||||
export * from "./automator/automator-backend";
|
||||
export * from "./performance-stats";
|
||||
export * from "./currency";
|
||||
export * from "./cache";
|
||||
export * from "./intervals";
|
||||
export * from "./keyboard";
|
||||
export * from "./hotkeys";
|
||||
export * from "./galaxy";
|
||||
export * from "./away-progress";
|
||||
export * from "./confirmations";
|
||||
|
||||
export * from "./autobuyers/index.js";
|
||||
export * from "./storage/index.js";
|
||||
export * from "./autobuyers/index";
|
||||
export * from "./storage/index";
|
||||
|
||||
export * from "./notations.js";
|
||||
export * from "./tutorial.js";
|
||||
export * from "./notations";
|
||||
export * from "./tutorial";
|
||||
|
||||
export * from "./new-game.js";
|
||||
export * from "./new-game";
|
||||
|
||||
export * from "./celestials/quotes.js";
|
||||
export * from "./celestials/teresa.js";
|
||||
export * from "./celestials/effarig.js";
|
||||
export * from "./celestials/enslaved.js";
|
||||
export * from "./celestials/V.js";
|
||||
export * from "./celestials/ra/ra.js";
|
||||
export * from "./celestials/ra/alchemy.js";
|
||||
export * from "./celestials/laitela/laitela.js";
|
||||
export * from "./celestials/laitela/dark-matter-dimension.js";
|
||||
export * from "./celestials/laitela/singularity.js";
|
||||
export * from "./celestials/pelle/pelle.js";
|
||||
export * from "./celestials/pelle/strikes.js";
|
||||
export * from "./celestials/pelle/rifts.js";
|
||||
export * from "./celestials/pelle/galaxy-generator.js";
|
||||
export * from "./celestials/pelle/game-end.js";
|
||||
export * from "./celestials/celestials.js";
|
||||
export * from "./celestials/quotes";
|
||||
export * from "./celestials/teresa";
|
||||
export * from "./celestials/effarig";
|
||||
export * from "./celestials/enslaved";
|
||||
export * from "./celestials/V";
|
||||
export * from "./celestials/ra/ra";
|
||||
export * from "./celestials/ra/alchemy";
|
||||
export * from "./celestials/laitela/laitela";
|
||||
export * from "./celestials/laitela/dark-matter-dimension";
|
||||
export * from "./celestials/laitela/singularity";
|
||||
export * from "./celestials/pelle/pelle";
|
||||
export * from "./celestials/pelle/strikes";
|
||||
export * from "./celestials/pelle/rifts";
|
||||
export * from "./celestials/pelle/galaxy-generator";
|
||||
export * from "./celestials/pelle/game-end";
|
||||
export * from "./celestials/celestials";
|
||||
|
||||
export * from "./automator/index.js";
|
||||
export * from "./automator/automator-points.js";
|
||||
export * from "./automator/index";
|
||||
export * from "./automator/automator-points";
|
||||
|
||||
export * from "./app/player-progress.js";
|
||||
export * from "./app/modal.js";
|
||||
export * from "./app/themes.js";
|
||||
export * from "./app/options.js";
|
||||
export * from "./app/ui.js";
|
||||
export * from "./app/player-progress";
|
||||
export * from "./app/modal";
|
||||
export * from "./app/themes";
|
||||
export * from "./app/options";
|
||||
export * from "./app/ui";
|
||||
|
||||
export * from "./achievements/normal-achievement.js";
|
||||
export * from "./achievements/secret-achievement.js";
|
||||
export * from "./achievements/achievement-timer.js";
|
||||
export * from "./achievements/normal-achievement";
|
||||
export * from "./achievements/secret-achievement";
|
||||
export * from "./achievements/achievement-timer";
|
||||
|
||||
export * from "./glyphs/glyph-core.js";
|
||||
export * from "./glyphs/glyph-effects.js";
|
||||
export * from "./glyphs/glyph-generator.js";
|
||||
export * from "./glyphs/glyph-purge-handler.js";
|
||||
export * from "./glyphs/auto-glyph-processor.js";
|
||||
export * from "./glyphs/glyph-core";
|
||||
export * from "./glyphs/glyph-effects";
|
||||
export * from "./glyphs/glyph-generator";
|
||||
export * from "./glyphs/glyph-purge-handler";
|
||||
export * from "./glyphs/auto-glyph-processor";
|
||||
|
||||
export * from "./time.js";
|
||||
export * from "./tickspeed.js";
|
||||
export * from "./time";
|
||||
export * from "./tickspeed";
|
||||
|
||||
export * from "./dimensions/antimatter-dimension.js";
|
||||
export * from "./dimensions/infinity-dimension.js";
|
||||
export * from "./dimensions/time-dimension.js";
|
||||
export * from "./dimensions/antimatter-dimension";
|
||||
export * from "./dimensions/infinity-dimension";
|
||||
export * from "./dimensions/time-dimension";
|
||||
|
||||
export * from "./time-studies/index.js";
|
||||
export * from "./time-studies/index";
|
||||
|
||||
export * from "./dimboost.js";
|
||||
export * from "./sacrifice.js";
|
||||
export * from "./big_crunch.js";
|
||||
export * from "./challenge.js";
|
||||
export * from "./eternity.js";
|
||||
export * from "./eternity_challenge.js";
|
||||
export * from "./reality.js";
|
||||
export * from "./replicanti.js";
|
||||
export * from "./time-theorems.js";
|
||||
export * from "./reality-upgrades.js";
|
||||
export * from "./imaginary-upgrades.js";
|
||||
export * from "./perks.js";
|
||||
export * from "./dilation.js";
|
||||
export * from "./black_hole.js";
|
||||
export * from "./machines.js";
|
||||
export * from "./devtools.js";
|
||||
export * from "./news-ticker.js";
|
||||
export * from "./kong.js";
|
||||
export * from "./ui/tabs.js";
|
||||
export * from "./ui/tab-notifications.js";
|
||||
export * from "./speedrun.js";
|
||||
export * from "./dimboost";
|
||||
export * from "./sacrifice";
|
||||
export * from "./big_crunch";
|
||||
export * from "./challenge";
|
||||
export * from "./eternity";
|
||||
export * from "./eternity_challenge";
|
||||
export * from "./reality";
|
||||
export * from "./replicanti";
|
||||
export * from "./time-theorems";
|
||||
export * from "./reality-upgrades";
|
||||
export * from "./imaginary-upgrades";
|
||||
export * from "./perks";
|
||||
export * from "./dilation";
|
||||
export * from "./black_hole";
|
||||
export * from "./machines";
|
||||
export * from "./devtools";
|
||||
export * from "./news-ticker";
|
||||
export * from "./kong";
|
||||
export * from "./ui/tabs";
|
||||
export * from "./ui/tab-notifications";
|
||||
export * from "./speedrun";
|
||||
|
||||
export * from "./automator/script-templates.js";
|
||||
export * from "./automator/script-templates";
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { GameDatabase } from "./secret-formula/game-database.js";
|
||||
import { DC } from "./constants.js";
|
||||
import { DC } from "./constants";
|
||||
import { GameDatabase } from "./secret-formula/game-database";
|
||||
|
||||
// There is a little too much stuff about glyph effects to put in constants.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { GameMechanicState } from "../game-mechanics/index.js";
|
||||
import { GameMechanicState } from "../game-mechanics/index";
|
||||
|
||||
export const orderedEffectList = ["powerpow", "infinitypow", "replicationpow", "timepow",
|
||||
"dilationpow", "timeshardpow", "powermult", "powerdimboost", "powerbuy10",
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import { GameKeyboard } from "./keyboard.js";
|
||||
import Mousetrap from "mousetrap";
|
||||
|
||||
import { GameKeyboard } from "./keyboard";
|
||||
|
||||
// Add your hotkeys and combinations here
|
||||
// GameKeyboard.bind for single press combinations
|
||||
// GameKeyboard.bindRepeatable for repeatable combinations
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { BitPurchasableMechanicState, RebuyableMechanicState } from "./game-mechanics/index.js";
|
||||
import { DC } from "./constants.js";
|
||||
import { BitPurchasableMechanicState, RebuyableMechanicState } from "./game-mechanics/index";
|
||||
import { DC } from "./constants";
|
||||
|
||||
class ImaginaryUpgradeState extends BitPurchasableMechanicState {
|
||||
constructor(config) {
|
||||
|
|
|
@ -57,19 +57,6 @@ export const GameIntervals = (function() {
|
|||
checkCloudSave: interval(() => {
|
||||
if (player.options.cloudEnabled && Cloud.loggedIn) Cloud.saveCheck();
|
||||
}, 300000),
|
||||
submitKongStats: interval(() => {
|
||||
kong.submitStats("Log10 of total antimatter", player.records.totalAntimatter.e);
|
||||
kong.submitStats("Log10 of Infinity Points", player.infinityPoints.e);
|
||||
kong.submitStats("Log10 of Eternity Points", player.eternityPoints.e);
|
||||
kong.submitStats("NormalChallenge 9 time record (ms)", Math.floor(player.challenge.normal.bestTimes[8]));
|
||||
kong.submitStats("Fastest Infinity time (ms)", Math.floor(player.records.bestInfinity.time));
|
||||
// FIXME: Infinitified is now Decimal so decide what happens here!
|
||||
// kong.submitStats('Infinitied', Currency.infinitiesTotal);
|
||||
// FIXME: Eternity count is now a Decimal.
|
||||
// kong.submitStats("Eternities", Currency.eternities);
|
||||
kong.submitStats("Achievements", Achievements.effectiveCount +
|
||||
SecretAchievements.all.countWhere(a => a.isUnlocked));
|
||||
}, 60000),
|
||||
randomSecretAchievement: interval(() => {
|
||||
if (Math.random() < 0.00001) SecretAchievement(18).unlock();
|
||||
}, 1000),
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { RebuyableMechanicState } from "./game-mechanics/index.js";
|
||||
import { RebuyableMechanicState } from "./game-mechanics/index";
|
||||
|
||||
export const kong = {};
|
||||
|
||||
|
@ -17,14 +17,6 @@ kong.init = function() {
|
|||
} catch (err) { console.log("Couldn't load Kongregate API"); }
|
||||
};
|
||||
|
||||
kong.submitStats = function(name, value) {
|
||||
if (!kong.enabled) return;
|
||||
try {
|
||||
kongregate.stats.submit(name, value);
|
||||
// eslint-disable-next-line no-console
|
||||
} catch (e) { console.log(e); }
|
||||
};
|
||||
|
||||
class ShopPurchaseState extends RebuyableMechanicState {
|
||||
|
||||
get currency() {
|
||||
|
@ -95,17 +87,17 @@ kong.purchaseLongerTimeSkip = function(cost) {
|
|||
kong.buyMoreSTD = function(STD, kreds) {
|
||||
if (!kong.enabled) return;
|
||||
kongregate.mtx.purchaseItems([`${kreds}worthofstd`], result => {
|
||||
if (result.success) {
|
||||
player.IAP.totalSTD += STD;
|
||||
}
|
||||
if (result.success) {
|
||||
player.IAP.totalSTD += STD;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
kong.updatePurchases = function() {
|
||||
if (!kong.enabled) return;
|
||||
try {
|
||||
kongregate.mtx.requestUserItemList("", items);
|
||||
// eslint-disable-next-line no-console
|
||||
kongregate.mtx.requestUserItemList("", items);
|
||||
// eslint-disable-next-line no-console
|
||||
} catch (e) { console.error(e); }
|
||||
|
||||
function items(result) {
|
||||
|
@ -114,40 +106,40 @@ kong.updatePurchases = function() {
|
|||
const item = result.data[i];
|
||||
switch (item.identifier) {
|
||||
case "doublemult":
|
||||
totalSTD += 30;
|
||||
break;
|
||||
totalSTD += 30;
|
||||
break;
|
||||
|
||||
case "doubleip":
|
||||
totalSTD += 40;
|
||||
break;
|
||||
totalSTD += 40;
|
||||
break;
|
||||
|
||||
case "tripleep":
|
||||
totalSTD += 50;
|
||||
break;
|
||||
totalSTD += 50;
|
||||
break;
|
||||
|
||||
case "alldimboost":
|
||||
totalSTD += 60;
|
||||
break;
|
||||
totalSTD += 60;
|
||||
break;
|
||||
|
||||
case "20worthofstd":
|
||||
totalSTD += 20;
|
||||
break;
|
||||
totalSTD += 20;
|
||||
break;
|
||||
|
||||
case "50worthofstd":
|
||||
totalSTD += 60;
|
||||
break;
|
||||
totalSTD += 60;
|
||||
break;
|
||||
|
||||
case "100worthofstd":
|
||||
totalSTD += 140;
|
||||
break;
|
||||
totalSTD += 140;
|
||||
break;
|
||||
|
||||
case "200worthofstd":
|
||||
totalSTD += 300;
|
||||
break;
|
||||
totalSTD += 300;
|
||||
break;
|
||||
|
||||
case "500worthofstd":
|
||||
totalSTD += 1000;
|
||||
break;
|
||||
totalSTD += 1000;
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -162,41 +154,41 @@ kong.updatePurchases = function() {
|
|||
kong.migratePurchases = function() {
|
||||
if (!kong.enabled) return;
|
||||
try {
|
||||
kongregate.mtx.requestUserItemList("", items);
|
||||
// eslint-disable-next-line no-console
|
||||
kongregate.mtx.requestUserItemList("", items);
|
||||
// eslint-disable-next-line no-console
|
||||
} catch (e) { console.log(e); }
|
||||
|
||||
function items(result) {
|
||||
let ipPurchases = 0;
|
||||
let dimPurchases = 0;
|
||||
let epPurchases = 0;
|
||||
let alldimPurchases = 0;
|
||||
for (const item of result.data) {
|
||||
if (item.identifier === "doublemult") {
|
||||
player.IAP.totalSTD += 30;
|
||||
player.IAP.spentSTD += 30;
|
||||
dimPurchases++;
|
||||
}
|
||||
if (item.identifier === "doubleip") {
|
||||
player.IAP.totalSTD += 40;
|
||||
player.IAP.spentSTD += 40;
|
||||
ipPurchases++;
|
||||
}
|
||||
if (item.identifier === "tripleep") {
|
||||
player.IAP.totalSTD += 50;
|
||||
player.IAP.spentSTD += 50;
|
||||
epPurchases++;
|
||||
}
|
||||
if (item.identifier === "alldimboost") {
|
||||
player.IAP.totalSTD += 60;
|
||||
player.IAP.spentSTD += 60;
|
||||
alldimPurchases++;
|
||||
}
|
||||
|
||||
let ipPurchases = 0;
|
||||
let dimPurchases = 0;
|
||||
let epPurchases = 0;
|
||||
let alldimPurchases = 0;
|
||||
for (const item of result.data) {
|
||||
if (item.identifier === "doublemult") {
|
||||
player.IAP.totalSTD += 30;
|
||||
player.IAP.spentSTD += 30;
|
||||
dimPurchases++;
|
||||
}
|
||||
player.IAP.dimPurchases = dimPurchases;
|
||||
player.IAP.allDimPurchases = alldimPurchases;
|
||||
player.IAP.IPPurchases = ipPurchases;
|
||||
player.IAP.EPPurchases = epPurchases;
|
||||
if (item.identifier === "doubleip") {
|
||||
player.IAP.totalSTD += 40;
|
||||
player.IAP.spentSTD += 40;
|
||||
ipPurchases++;
|
||||
}
|
||||
if (item.identifier === "tripleep") {
|
||||
player.IAP.totalSTD += 50;
|
||||
player.IAP.spentSTD += 50;
|
||||
epPurchases++;
|
||||
}
|
||||
if (item.identifier === "alldimboost") {
|
||||
player.IAP.totalSTD += 60;
|
||||
player.IAP.spentSTD += 60;
|
||||
alldimPurchases++;
|
||||
}
|
||||
|
||||
}
|
||||
player.IAP.dimPurchases = dimPurchases;
|
||||
player.IAP.allDimPurchases = alldimPurchases;
|
||||
player.IAP.IPPurchases = ipPurchases;
|
||||
player.IAP.EPPurchases = epPurchases;
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { DC } from "./constants.js";
|
||||
import { DC } from "./constants";
|
||||
|
||||
export const MachineHandler = {
|
||||
get baseRMCap() { return DC.E1000; },
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import { DC } from "./constants.js";
|
||||
import { log as lngamma } from "gamma";
|
||||
|
||||
import { DC } from "./constants";
|
||||
|
||||
/* eslint-disable no-use-before-define */
|
||||
/* eslint-disable max-params */
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { SetPurchasableMechanicState } from "./game-mechanics/index.js";
|
||||
import { SetPurchasableMechanicState } from "./game-mechanics/index";
|
||||
|
||||
class PerkState extends SetPurchasableMechanicState {
|
||||
constructor(config) {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { GlyphTypes } from "./glyph-effects.js";
|
||||
import { AUTOMATOR_MODE, AUTOMATOR_TYPE } from "./automator/automator-backend.js";
|
||||
import { DC } from "./constants.js";
|
||||
import { AUTOMATOR_MODE, AUTOMATOR_TYPE } from "./automator/automator-backend";
|
||||
import { DC } from "./constants";
|
||||
import { deepmergeAll } from "@/utility/deepmerge";
|
||||
import { GlyphTypes } from "./glyph-effects";
|
||||
|
||||
// This is actually reassigned when importing saves
|
||||
// eslint-disable-next-line prefer-const
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { BitPurchasableMechanicState, RebuyableMechanicState } from "./game-mechanics/index.js";
|
||||
import { BitPurchasableMechanicState, RebuyableMechanicState } from "./game-mechanics/index";
|
||||
|
||||
class RealityUpgradeState extends BitPurchasableMechanicState {
|
||||
constructor(config) {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { DC } from "./constants.js";
|
||||
import { DC } from "./constants";
|
||||
|
||||
/**
|
||||
* Object that manages the selection of glyphs offered to the player
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { DC } from "./constants.js";
|
||||
import { DC } from "./constants";
|
||||
|
||||
// Slowdown parameters for replicanti growth, interval will increase by scaleFactor for every scaleLog10
|
||||
// OoM past the cap (default is 308.25 (log10 of 1.8e308), 1.2, Number.MAX_VALUE)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { DC } from "./constants.js";
|
||||
import { DC } from "./constants";
|
||||
|
||||
export class Sacrifice {
|
||||
// This is tied to the "buying an 8th dimension" achievement in order to hide it from new players before they reach
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { GameDatabase } from "../game-database.js";
|
||||
import { DC } from "../../constants.js";
|
||||
import { DC } from "../../constants";
|
||||
import { GameDatabase } from "../game-database";
|
||||
|
||||
GameDatabase.achievements.normal = [
|
||||
{
|
||||
|
@ -950,10 +950,7 @@ GameDatabase.achievements.normal = [
|
|||
player.IPMultPurchases === 0 &&
|
||||
Currency.infinityPoints.exponent >= 200000,
|
||||
checkEvent: GAME_EVENT.GAME_TICK_AFTER,
|
||||
get reward() {
|
||||
if (Pelle.isDoomed) return "You start Eternities with all Infinity Challenges unlocked.";
|
||||
return "You start Eternities with all Infinity Challenges unlocked and completed.";
|
||||
}
|
||||
reward: "You start Eternities with all Infinity Challenges unlocked and completed."
|
||||
},
|
||||
{
|
||||
id: 134,
|
||||
|
@ -1027,7 +1024,8 @@ GameDatabase.achievements.normal = [
|
|||
name: "How does this work?",
|
||||
description: "Unlock the automator.",
|
||||
checkRequirement: () => Player.automatorUnlocked,
|
||||
checkEvent: GAME_EVENT.REALITY_RESET_AFTER,
|
||||
checkEvent: [GAME_EVENT.REALITY_RESET_AFTER, GAME_EVENT.REALITY_UPGRADE_BOUGHT, GAME_EVENT.PERK_BOUGHT,
|
||||
GAME_EVENT.BLACK_HOLE_BOUGHT],
|
||||
get reward() { return `Dimension Boosts are ${formatPercents(0.5)} stronger.`; },
|
||||
effect: 1.5,
|
||||
},
|
||||
|
@ -1307,7 +1305,8 @@ GameDatabase.achievements.normal = [
|
|||
id: 182,
|
||||
name: "One more time",
|
||||
description: "Gain back all Antimatter Dimension autobuyers.",
|
||||
checkRequirement: () => player.celestials.pelle.upgrades.has(4),
|
||||
checkRequirement: () => PelleUpgrade.antimatterDimAutobuyers1.canBeApplied &&
|
||||
PelleUpgrade.antimatterDimAutobuyers2.canBeApplied,
|
||||
checkEvent: GAME_EVENT.GAME_TICK_AFTER
|
||||
},
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { GameDatabase } from "../game-database.js";
|
||||
import { GameDatabase } from "../game-database";
|
||||
|
||||
GameDatabase.achievements.secret = [
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { GameDatabase } from "./game-database.js";
|
||||
import { GameDatabase } from "./game-database";
|
||||
|
||||
GameDatabase.awayProgressTypes = [
|
||||
{
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { GameDatabase } from "../game-database.js";
|
||||
import { DC } from "../../constants.js";
|
||||
import { DC } from "../../constants";
|
||||
import { GameDatabase } from "../game-database";
|
||||
|
||||
GameDatabase.celestials.alchemy = {
|
||||
resources: {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { GameDatabase } from "../game-database.js";
|
||||
import { DC } from "../../constants.js";
|
||||
import { DC } from "../../constants";
|
||||
import { GameDatabase } from "../game-database";
|
||||
|
||||
GameDatabase.celestials.effarig = {
|
||||
unlocks: {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { GameDatabase } from "../game-database.js";
|
||||
import { GameDatabase } from "../game-database";
|
||||
|
||||
GameDatabase.celestials.enslaved = {
|
||||
// Note that "condition" isn't displayed in-game. These are meant to be indicators here of
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { GameDatabase } from "../game-database.js";
|
||||
import { GameDatabase } from "../game-database";
|
||||
|
||||
GameDatabase.celestials.pelle.galaxyGeneratorUpgrades = (function() {
|
||||
const formatCost = c => format(c, 2);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { GameDatabase } from "../game-database.js";
|
||||
import { DC } from "../../constants.js";
|
||||
import { DC } from "../../constants";
|
||||
import { GameDatabase } from "../game-database";
|
||||
|
||||
export function emphasizeEnd(fraction) {
|
||||
return Math.pow(fraction, 10);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { GameDatabase } from "../game-database.js";
|
||||
import { GameDatabase } from "../game-database";
|
||||
|
||||
GameDatabase.celestials.pelle.quotes = {};
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { GameDatabase } from "../game-database.js";
|
||||
import { GameDatabase } from "../game-database";
|
||||
|
||||
GameDatabase.celestials.pelle.upgrades = (function() {
|
||||
const formatCost = c => format(c, 2);
|
||||
|
@ -62,37 +62,37 @@ GameDatabase.celestials.pelle.upgrades = (function() {
|
|||
}),
|
||||
antimatterDimAutobuyers1: {
|
||||
id: 0,
|
||||
description: "Gain back autobuyers for Antimatter Dimensions 1-4",
|
||||
description: "Gain back Autobuyers for Antimatter Dimensions 1-4",
|
||||
cost: 1e5,
|
||||
formatCost,
|
||||
},
|
||||
dimBoostAutobuyer: {
|
||||
id: 1,
|
||||
description: "Gain back autobuyer for Dimension Boosts",
|
||||
description: "Gain back the Autobuyer for Dimension Boosts",
|
||||
cost: 5e5,
|
||||
formatCost,
|
||||
},
|
||||
keepAutobuyers: {
|
||||
id: 2,
|
||||
description: "Keep your autobuyer upgrades on Armageddon",
|
||||
description: "Keep your Autobuyer upgrades on Armageddon",
|
||||
cost: 5e6,
|
||||
formatCost,
|
||||
},
|
||||
antimatterDimAutobuyers2: {
|
||||
id: 3,
|
||||
description: "Gain back autobuyers for Antimatter Dimensions 5-8",
|
||||
description: "Gain back Autobuyers for Antimatter Dimensions 5-8",
|
||||
cost: 2.5e7,
|
||||
formatCost,
|
||||
},
|
||||
galaxyAutobuyer: {
|
||||
id: 4,
|
||||
description: "Gain back autobuyer for Antimatter Galaxies",
|
||||
description: "Gain back the Autobuyer for Antimatter Galaxies",
|
||||
cost: 1e8,
|
||||
formatCost,
|
||||
},
|
||||
tickspeedAutobuyer: {
|
||||
id: 5,
|
||||
description: "Gain back autobuyer for Tickspeed",
|
||||
description: "Gain back the Autobuyer for Tickspeed",
|
||||
cost: 1e9,
|
||||
formatCost,
|
||||
},
|
||||
|
@ -110,19 +110,19 @@ GameDatabase.celestials.pelle.upgrades = (function() {
|
|||
},
|
||||
IDAutobuyers: {
|
||||
id: 8,
|
||||
description: "Gain Back Infinity Dimension Autobuyers",
|
||||
description: "Gain back Infinity Dimension Autobuyers",
|
||||
cost: 1e14,
|
||||
formatCost,
|
||||
},
|
||||
keepInfinityChallenges: {
|
||||
id: 9,
|
||||
description: "You keep your Infinity Challenge completions through Armageddons",
|
||||
description: "You keep your Infinity Challenge unlocks and completions through Armageddons",
|
||||
cost: 1e15,
|
||||
formatCost,
|
||||
},
|
||||
replicantiAutobuyers: {
|
||||
id: 10,
|
||||
description: "Gain back Replicanti autobuyers",
|
||||
description: "Gain back Replicanti Upgrade Autobuyers",
|
||||
cost: 1e17,
|
||||
formatCost,
|
||||
},
|
||||
|
@ -158,7 +158,7 @@ GameDatabase.celestials.pelle.upgrades = (function() {
|
|||
},
|
||||
TDAutobuyers: {
|
||||
id: 16,
|
||||
description: "Gain Back Time Dimension Autobuyers",
|
||||
description: "Gain back Time Dimension Autobuyers",
|
||||
cost: 1e25,
|
||||
formatCost,
|
||||
},
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { GameDatabase } from "../game-database.js";
|
||||
import { GameDatabase } from "../game-database";
|
||||
|
||||
GameDatabase.celestials.perkShop = (function() {
|
||||
function rebuyableCost(initialCost, increment, id) {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { GameDatabase } from "../game-database.js";
|
||||
import { GameDatabase } from "../game-database";
|
||||
|
||||
GameDatabase.celestials.ra = {
|
||||
pets: {
|
||||
|
@ -254,7 +254,8 @@ GameDatabase.celestials.ra = {
|
|||
effect: () => Math.floor(Ra.pets.v.level / 6),
|
||||
pet: "v",
|
||||
level: 6,
|
||||
displayIcon: `<span class="fas fa-trophy"></span>`
|
||||
displayIcon: `<span class="fas fa-trophy"></span>`,
|
||||
disabledByPelle: true
|
||||
},
|
||||
continuousTTBoost: {
|
||||
id: 25,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { GameDatabase } from "../game-database.js";
|
||||
import { DC } from "../../constants.js";
|
||||
import { DC } from "../../constants";
|
||||
import { GameDatabase } from "../game-database";
|
||||
|
||||
GameDatabase.celestials.pelle.rifts = {
|
||||
famine: {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { GameDatabase } from "../game-database.js";
|
||||
import { GameDatabase } from "../game-database";
|
||||
|
||||
// Used for UI purposes to give different theming for different kinds of upgrades
|
||||
export const LAITELA_UPGRADE_DIRECTION = {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { GameDatabase } from "../game-database.js";
|
||||
import { DC } from "../../constants.js";
|
||||
import { DC } from "../../constants";
|
||||
import { GameDatabase } from "../game-database";
|
||||
|
||||
GameDatabase.celestials.pelle.strikes = {
|
||||
infinity: {
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user