diff --git a/css/app.af8cdc48.css b/css/app.af8cdc48.css
deleted file mode 100644
index 2fa60fa..0000000
--- a/css/app.af8cdc48.css
+++ /dev/null
@@ -1 +0,0 @@
-.table{display:flex;flex-flow:column wrap;justify-content:center;align-items:center;max-width:100%;margin:0 auto}.table+.table{margin-top:10px}.row{display:flex;flex-flow:row wrap;justify-content:center;align-items:stretch;max-width:100%;margin:0 10px}.row>:not(.feature){margin:0;display:flex}.col{display:flex;flex-flow:column wrap;justify-content:center;align-items:center;height:100%;margin:10px 0}.row.mergeAdjacent>.feature:not(.dontMerge),.row.mergeAdjacent>.tooltip-container>.feature:not(.dontMerge){margin-left:0;margin-right:0;border-radius:0}.row.mergeAdjacent>.feature:not(.dontMerge):first-child,.row.mergeAdjacent>.tooltip-container:first-child>.feature:not(.dontMerge){border-radius:var(--border-radius) 0 0 var(--border-radius)}.row.mergeAdjacent>.feature:not(.dontMerge):last-child,.row.mergeAdjacent>.tooltip-container:last-child>.feature:not(.dontMerge){border-radius:0 var(--border-radius) var(--border-radius) 0}.row.mergeAdjacent>.feature:not(.dontMerge):first-child:last-child,.row.mergeAdjacent>.tooltip-container:first-child:last-child>.feature:not(.dontMerge){border-radius:var(--border-radius)}.col.mergeAdjacent .feature:not(.dontMerge){margin-top:0;margin-bottom:0;border-radius:0}.col.mergeAdjacent .feature:not(.dontMerge):first-child{border-radius:var(--border-radius) var(--border-radius) 0 0}.col.mergeAdjacent .feature:not(.dontMerge):last-child{border-radius:0 0 var(--border-radius) var(--border-radius)}.col.mergeAdjacent .feature:not(.dontMerge):first-child:last-child{border-radius:var(--border-radius)}.modal-mask{position:fixed;z-index:9998;top:0;left:0;bottom:0;right:0;background-color:rgba(0,0,0,.5);transition:opacity .3s ease}.modal-wrapper{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.modal-container{width:640px;max-width:95vw;max-height:95vh;background-color:var(--background);padding:20px;border-radius:5px;transition:all .3s ease;text-align:left;border:var(--modal-border);box-sizing:border-box;display:flex;flex-direction:column}.modal-header{width:100%}.modal-body{margin:20px 0;width:100%;overflow-y:auto;overflow-x:hidden}.modal-footer{width:100%}.modal-default-footer{display:flex}.modal-default-flex-grow{flex-grow:1}.modal-enter-from,.modal-leave-active{opacity:0}.modal-enter-from .modal-container,.modal-leave-active .modal-container{transform:scale(1.1)}.layer-container[data-v-47e532a2]{min-width:100%;min-height:100%;margin:0;flex-grow:1;display:flex;isolation:isolate}.layer-tab[data-v-47e532a2]:not(.minimized){padding-top:20px;padding-bottom:20px;min-height:100%;flex-grow:1;text-align:center;position:relative}.inner-tab>.layer-container>.layer-tab[data-v-47e532a2]:not(.minimized){padding-top:50px}.layer-tab.minimized[data-v-47e532a2]{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;padding:0;padding-top:55px;margin:0;cursor:pointer;font-size:40px;color:var(--foreground);border:none;background-color:transparent}.layer-tab.minimized div[data-v-47e532a2]{margin:0;-ms-writing-mode:tb-rl;writing-mode:vertical-rl;padding-left:10px;width:50px}.inner-tab>.layer-container>.layer-tab[data-v-47e532a2]:not(.minimized){margin:-50px -10px;padding:50px 10px}.modal-body .layer-tab[data-v-47e532a2]{padding-bottom:0}.modal-body .layer-tab[data-v-47e532a2]:not(.hasSubtabs){padding-top:0}.minimize[data-v-47e532a2]{position:sticky;top:6px;right:9px;z-index:7;line-height:30px;width:30px;border:none;background:var(--background);box-shadow:var(--background) 0 2px 3px 5px;border-radius:50%;color:var(--foreground);font-size:40px;cursor:pointer;padding:0;margin-top:-44px;margin-right:-30px}.minimized+.minimize[data-v-47e532a2]{transform:rotate(-90deg);top:10px;right:18px;pointer-events:none}.goBack[data-v-47e532a2]{position:absolute;top:0;left:20px;background-color:transparent;border:1px solid transparent;color:var(--foreground);font-size:40px;cursor:pointer;line-height:40px;z-index:7}.goBack[data-v-47e532a2]:hover{transform:scale(1.1);text-shadow:0 0 7px var(--foreground)}details[data-v-5f8298e6]{margin:10px 0;padding-left:18px}summary[data-v-5f8298e6]{cursor:pointer;margin-bottom:10px;margin-left:-18px}ul[data-v-5f8298e6]{margin:var(--feature-margin) 0;background:var(--raised-background);border:2px solid rgba(0,0,0,.125);padding:5px 5px 5px 15px;list-style:inside}li[data-v-5f8298e6]{margin:8px 0}li[data-v-5f8298e6]:before{padding:2px 8px;margin-right:8px;border-radius:var(--border-radius)}.feature[data-v-5f8298e6]:before{content:"Feature";background:var(--accent1)}.fix[data-v-5f8298e6]:before{content:"Fix";background:var(--accent2)}.balancing[data-v-5f8298e6]:before{content:"Balancing";background:var(--accent3)}.breaking[data-v-5f8298e6]:before{content:"Breaking";background:var(--danger)}.info-modal-header[data-v-3eb46986]{display:flex;margin:-20px;margin-bottom:0;background:var(--raised-background);align-items:center}.info-modal-header [data-v-3eb46986]{margin:0}.info-modal-logo[data-v-3eb46986]{height:4em;width:4em}.info-modal-title[data-v-3eb46986]{display:flex;flex-direction:column;padding:10px 0;margin-left:10px}.info-modal-discord-link[data-v-3eb46986]{display:flex;align-items:center}.info-modal-discord[data-v-3eb46986]{margin:0;margin-right:4px}.field{display:flex;position:relative;min-height:2em;margin:10px 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;justify-content:space-between;align-items:center}.field>*{margin:0}.vue-select{width:50%;border-radius:var(--border-radius)}.field-buttons .vue-select{width:unset}.vue-dropdown,.vue-select{border-color:var(--outline)}.vue-dropdown{background:var(--raised-background)}.vue-dropdown-item{color:var(--foreground)}.vue-dropdown-item,.vue-dropdown-item *{transition-duration:0s}.vue-dropdown-item.highlighted{background-color:var(--highlighted)}.vue-dropdown-item.highlighted.selected,.vue-dropdown-item.selected{background-color:var(--bought)}.vue-input input::-moz-placeholder{color:var(--link)}.vue-input input:-ms-input-placeholder{color:var(--link)}.vue-input input::placeholder{color:var(--link)}.field[data-v-43cf95d0]{cursor:pointer}input[data-v-43cf95d0]{-webkit-appearance:none;-moz-appearance:none;appearance:none;pointer-events:none}span[data-v-43cf95d0]{width:100%;position:relative}input+span[data-v-43cf95d0]:before{content:"";float:right;margin:5px 0 5px 10px;border-radius:7px;width:36px;height:14px;background-color:var(--outline);opacity:.38;vertical-align:top;transition:background-color .2s,opacity .2s}input+span[data-v-43cf95d0]:after{content:"";position:absolute;top:2px;right:16px;border-radius:50%;width:20px;height:20px;background-color:var(--locked);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);transition:background-color .2s,transform .2s}input:checked+span[data-v-43cf95d0]:before{background-color:var(--link);opacity:.6}input:checked+span[data-v-43cf95d0]:after{background-color:var(--link);transform:translateX(16px)}input:active+span[data-v-43cf95d0]:before{background-color:var(--link);opacity:.6}input:checked:active+span[data-v-43cf95d0]:before{background-color:var(--outline);opacity:.38}input:disabled+span[data-v-43cf95d0]{color:#000;opacity:.38;cursor:default}input:disabled+span[data-v-43cf95d0]:before{background-color:var(--outline);opacity:.38}input:checked:disabled+span[data-v-43cf95d0]:before{background-color:var(--link);opacity:.6}.tooltip-container[data-v-adb5f26e]{position:relative;--xoffset:0px;--yoffset:0px}.tooltip[data-v-adb5f26e],.tooltip[data-v-adb5f26e]:after{pointer-events:none;position:absolute}.tooltip[data-v-adb5f26e]{text-align:center;width:150px;font-size:14px;line-height:1.2;bottom:calc(100% + var(--yoffset));left:calc(50% + var(--xoffset));margin-bottom:5px;transform:translateX(-50%);padding:7px;border-radius:3px;background-color:var(--tooltip-background);color:var(--points);z-index:100!important;word-break:break-word}.tooltip[data-v-adb5f26e] hr{margin:var(--feature-margin) 0}.shown[data-v-adb5f26e]{z-index:10}.fade-enter-from[data-v-adb5f26e],.fade-leave-to[data-v-adb5f26e]{opacity:0}.tooltip[data-v-adb5f26e]:after{content:" ";position:absolute;top:100%;bottom:100%;left:calc(50% - var(--xoffset));width:0;margin-left:-5px;border-width:5px;border-style:solid;border-color:var(--tooltip-background) transparent transparent transparent}.side-nodes .tooltip[data-v-adb5f26e]:not(.right):not(.bottom):not(.top),.tooltip.left[data-v-adb5f26e]{bottom:calc(50% + var(--yoffset));left:unset;right:calc(100% + var(--xoffset));margin-bottom:unset;margin-right:5px;transform:translateY(50%)}.side-nodes .tooltip[data-v-adb5f26e]:not(.right):not(.bottom):not(.top):after,.tooltip.left[data-v-adb5f26e]:after{top:calc(50% + var(--yoffset));bottom:unset;left:100%;right:100%;margin-left:unset;margin-top:-5px;border-color:transparent transparent transparent var(--tooltip-background)}.tooltip.right[data-v-adb5f26e]{bottom:calc(50% + var(--yoffset));left:calc(100% + var(--xoffset));margin-bottom:unset;margin-left:5px;transform:translateY(50%)}.tooltip.right[data-v-adb5f26e]:after{top:calc(50% + var(--yoffset));left:0;right:100%;margin-left:-10px;margin-top:-5px;border-color:transparent var(--tooltip-background) transparent transparent}.tooltip.bottom[data-v-adb5f26e]{top:calc(100% + var(--yoffset));bottom:unset;left:calc(50% + var(--xoffset));margin-bottom:unset;margin-top:5px;transform:translateX(-50%)}.tooltip.bottom[data-v-adb5f26e]:after{top:0;margin-top:-10px;border-color:transparent transparent var(--tooltip-background) transparent}.pinned[data-v-adb5f26e]{position:absolute;right:-5px;top:-5px;transform:rotate(45deg)}.header[data-v-85d7ae40]{margin-bottom:-10px}[data-v-85d7ae40] .tooltip-container{display:inline;margin-left:5px}form[data-v-8bda704a]{margin:0;width:100%}.field>[data-v-8bda704a]{margin:0}input[data-v-8bda704a]{width:50%;outline:none;border:solid 1px var(--outline);background-color:unset;border-radius:var(--border-radius)}.fullWidth[data-v-8bda704a]{width:100%}.container[data-v-bf59fca4]{display:flex;align-items:center;background:var(--raised-background);box-shadow:var(--raised-background) 0 2px 3px 5px}.container.confirming button[data-v-bf59fca4]{font-size:1em}.container>[data-v-bf59fca4]{margin:0 4px}.button.danger,.danger{position:relative;border:solid 2px var(--danger);border-right-width:16px}.danger:after{position:absolute;content:"!";color:#fff;right:-13px}.feedback[data-v-5bbcedd3]{position:relative}.feedback[data-v-5bbcedd3]:after{position:absolute;left:calc(100% + 5px);top:50%;transform:translateY(-50%);content:"✔";opacity:0;pointer-events:none;box-shadow:inset 0 0 0 35px rgba(111,148,182,0);text-shadow:none}.feedback.left[data-v-5bbcedd3]:after{left:unset;right:calc(100% + 5px)}.feedback.activated[data-v-5bbcedd3]:after{-webkit-animation:feedback-5bbcedd3 .5s ease-out forwards;animation:feedback-5bbcedd3 .5s ease-out forwards}@-webkit-keyframes feedback-5bbcedd3{0%{opacity:1;transform:scale3d(.4,.4,1),translateY(-50%)}80%{opacity:.1}to{opacity:0;transform:scale3d(1.2,1.2,1),translateY(-50%)}}@keyframes feedback-5bbcedd3{0%{opacity:1;transform:scale3d(.4,.4,1),translateY(-50%)}80%{opacity:.1}to{opacity:0;transform:scale3d(1.2,1.2,1),translateY(-50%)}}.save[data-v-6a0cf7ac]{position:relative;border:solid 4px var(--outline);padding:4px;background:var(--raised-background);margin:var(--feature-margin);display:flex;align-items:center;min-height:30px}.save.active[data-v-6a0cf7ac]{border-color:var(--bought)}.open[data-v-6a0cf7ac]{display:inline;margin:0;padding-left:0}.handle[data-v-6a0cf7ac]{flex-grow:0;margin-right:8px;margin-left:0;cursor:pointer}.details[data-v-6a0cf7ac]{margin:0;flex-grow:1;margin-right:80px}.error[data-v-6a0cf7ac]{font-size:.8em;color:var(--danger)}.save-version[data-v-6a0cf7ac]{margin-left:4px;font-size:.7em;opacity:.7}.actions[data-v-6a0cf7ac]{position:absolute;top:0;bottom:0;right:4px;display:flex;padding:4px;z-index:1}.editname[data-v-6a0cf7ac]{margin:0}.save button{transition-duration:0s}.save .actions button{display:flex;font-size:1.2em}.save .actions button .material-icons{font-size:unset}.save .button.danger{display:flex;align-items:center;padding:4px}.field .field-buttons[data-v-458d7fce],.field .field-title[data-v-458d7fce],.field form[data-v-458d7fce],.save .field{margin:0}.field-buttons[data-v-458d7fce]{display:flex}.field-buttons .field[data-v-458d7fce]{margin:0;margin-left:8px}.modal-footer[data-v-458d7fce]{margin-top:-20px}.footer[data-v-458d7fce]{display:flex;margin-top:20px}.importingFailed input{color:red}.field-buttons .v-select{width:220px}.presets .vue-select[aria-expanded=true] vue-dropdown{visibility:hidden}.nav[data-v-71847eca]{background-color:var(--raised-background);display:flex;left:0;right:0;top:0;height:46px;width:100%;border-bottom:4px solid var(--outline)}.nav>[data-v-71847eca]{height:46px;width:46px;display:flex;cursor:pointer;flex-shrink:0}.nav>.banner[data-v-71847eca]{height:100%;width:unset}.overlay-nav[data-v-71847eca]{position:fixed;top:10px;left:10px;display:flex;flex-direction:column;z-index:2}.overlay-nav>[data-v-71847eca]{height:50px;width:50px;display:flex;cursor:pointer;margin:0;align-items:center;justify-content:center}.title[data-v-71847eca]{font-size:36px;text-align:left;margin-left:12px;cursor:unset}.nav>.title[data-v-71847eca]{width:unset;flex-shrink:1;overflow:hidden;white-space:nowrap}.nav .info[data-v-71847eca],.nav .saves[data-v-71847eca]{display:flex}.tooltip-container[data-v-71847eca]{width:100%;height:100%;display:flex}.overlay-nav .discord[data-v-71847eca]{position:relative}.discord img[data-v-71847eca]{width:100%;height:100%}.discord-links[data-v-71847eca]{position:fixed;top:45px;padding:20px;right:-280px;width:200px;transition:right .25s ease;background:var(--raised-background);z-index:10}.overlay-nav .discord-links[data-v-71847eca]{position:absolute;left:-280px;right:unset;transition:left .25s ease}.overlay-nav .discord:hover .discord-links[data-v-71847eca]{left:-10px}.discord-links li[data-v-71847eca]{margin-bottom:4px}.discord-links li[data-v-71847eca]:first-child{font-size:1.2em}:not(.overlay-nav) .discord:hover .discord-links[data-v-71847eca]{right:0}.material-icons[data-v-71847eca]{font-size:36px}.material-icons[data-v-71847eca]:hover{text-shadow:5px 0 10px var(--link),-3px 0 12px var(--foreground)}.nav .version-container[data-v-71847eca]{display:flex;height:25px;margin-bottom:0;margin-left:10px}.overlay-nav .version-container[data-v-71847eca]{width:unset;height:25px}.version[data-v-71847eca]{color:var(--points)}.version:hover span[data-v-71847eca]{text-shadow:5px 0 10px var(--points),-3px 0 12px var(--points)}.nav>div>a[data-v-71847eca],.overlay-nav>div>a[data-v-71847eca]{color:var(--foreground);text-shadow:none}.tabs-container[data-v-eda60da0]{width:100vw;flex-grow:1;overflow-x:auto;overflow-y:hidden;display:flex}.tabs-container[data-v-eda60da0]:not(.useHeader){width:calc(100vw - 50px);margin-left:50px}.tab[data-v-eda60da0]{position:relative;height:100%;flex-grow:1;transition-duration:0s;overflow-y:auto;overflow-x:hidden}.inner-tab[data-v-eda60da0]{padding:50px 10px;min-height:calc(100% - 100px);display:flex;flex-direction:column;margin:0;flex-grow:1}.tab+.tab>.inner-tab[data-v-eda60da0]{border-left:solid 4px var(--outline)}.tab hr{height:4px;border:none;background:var(--outline);margin:var(--feature-margin) 0}.tab .modal-body hr{margin:7px 0}svg[data-v-07150322]{background:#2e3440}svg .svg-elem-1[data-v-07150322]{stroke-dashoffset:2648.758056640625px;stroke-dasharray:1324.3790283203125px;transition:stroke-dashoffset 1s cubic-bezier(.47,0,.745,.715) 0s}svg.v-enter-from .svg-elem-1[data-v-07150322],svg.v-leave-to .svg-elem-1[data-v-07150322]{stroke-dashoffset:1324.3790283203125px}svg .svg-elem-2[data-v-07150322]{stroke-dashoffset:680.4000854492188px;stroke-dasharray:340.2000427246094px;transition:stroke-dashoffset 1s ease-out .4s}svg.v-enter-from .svg-elem-2[data-v-07150322],svg.v-leave-to .svg-elem-2[data-v-07150322]{stroke-dashoffset:340.2000427246094px}svg .svg-elem-3[data-v-07150322]{stroke-dashoffset:76.21031951904297px;stroke-dasharray:38.105159759521484px;transition:stroke-dashoffset 1s ease-out .8s}svg.v-enter-from .svg-elem-3[data-v-07150322],svg.v-leave-to .svg-elem-3[data-v-07150322]{stroke-dashoffset:38.105159759521484px}svg .svg-elem-4[data-v-07150322]{stroke-dashoffset:175.18072509765625px;stroke-dasharray:87.59036254882812px;transition:stroke-dashoffset 1s cubic-bezier(.47,0,.745,.715) .36s}svg.v-enter-from .svg-elem-4[data-v-07150322],svg.v-leave-to .svg-elem-4[data-v-07150322]{stroke-dashoffset:87.59036254882812px}svg .svg-elem-5[data-v-07150322]{stroke-dashoffset:671.9447021484375px;stroke-dasharray:335.97235107421875px;transition:stroke-dashoffset 1s ease-out .8s}svg.v-enter-from .svg-elem-5[data-v-07150322],svg.v-leave-to .svg-elem-5[data-v-07150322]{stroke-dashoffset:335.97235107421875px}svg .svg-elem-6[data-v-07150322]{stroke-dashoffset:173.96141052246094px;stroke-dasharray:86.98070526123047px;transition:stroke-dashoffset 1s ease-out 1s}svg.v-enter-from .svg-elem-6[data-v-07150322],svg.v-leave-to .svg-elem-6[data-v-07150322]{stroke-dashoffset:86.98070526123047px}svg .svg-elem-7[data-v-07150322]{stroke-dashoffset:172.99151611328125px;stroke-dasharray:86.49575805664062px;transition:stroke-dashoffset 1s ease-out .85s}svg.v-enter-from .svg-elem-7[data-v-07150322],svg.v-leave-to .svg-elem-7[data-v-07150322]{stroke-dashoffset:86.49575805664062px}.resize-listener[data-v-e35b0402],svg[data-v-e35b0402]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-10;pointer-events:none}.left-side-nodes[data-v-aa87859c]{position:absolute;left:15px;top:65px}.side-nodes[data-v-aa87859c]{position:absolute;right:15px;top:65px}.left-side-nodes[data-v-aa87859c] .treeNode,.side-nodes[data-v-aa87859c] .treeNode{margin:20px auto}.small[data-v-aa87859c] .treeNode{height:60px;width:60px}.small[data-v-aa87859c] .treeNode>:first-child{font-size:30px}.node[data-v-63ded336]{position:absolute;z-index:-10;top:0;left:0;width:100%;height:100%;pointer-events:none}.mark[data-v-c476c56a]{position:absolute;left:-25px;top:-10px;width:30px;height:30px;z-index:1;border-bottom:.7em solid transparent}.mark[data-v-c476c56a],.star[data-v-c476c56a]{pointer-events:none;margin-left:.9em;margin-right:.9em;margin-bottom:1.2em;border-right:.3em solid transparent;border-left:.3em solid transparent;font-size:10px}.star[data-v-c476c56a]{left:-10px;width:0;height:0;border-bottom:.7em solid #fc0}.star[data-v-c476c56a]:after,.star[data-v-c476c56a]:before{content:"";width:0;height:0;position:absolute;top:.6em;left:-1em;border-right:1em solid transparent;border-bottom:.7em solid #fc0;border-left:1em solid transparent;transform:rotate(-35deg)}.star[data-v-c476c56a]:after{transform:rotate(35deg)}.treeNode[data-v-3de1d1bc]{height:100px;width:100px;border-radius:50%;padding:0;margin:0 10px 0 10px}.treeNode>[data-v-3de1d1bc]:first-child{width:100%;height:100%;border:2px solid rgba(0,0,0,.125);border-radius:inherit;font-size:40px;color:rgba(0,0,0,.5);text-shadow:2px 2px 4px rgba(0,0,0,.25);box-shadow:-4px -4px 4px rgba(0,0,0,.25) inset,0 0 20px var(--background);text-transform:capitalize;display:flex}.treeNode>:first-child>[data-v-3de1d1bc]{pointer-events:none}.feature:not(li),.feature:not(li) button{position:relative;padding:5px;border-radius:var(--border-radius);border:2px solid rgba(0,0,0,.125);margin:var(--feature-margin);box-sizing:border-box;color:var(--feature-foreground);z-index:0;transition:all .5s,z-index 0s .5s}.can,.can button{background-color:var(--layer-color);cursor:pointer}.can:hover,.can:hover button{transform:scale(1.15);box-shadow:0 0 20px var(--points);z-index:1;transition:all .5s,z-index 0s}.locked,.locked button{background-color:var(--locked);cursor:not-allowed}.bought,.bought button{background-color:var(--bought);cursor:default}.achievement[data-v-e3f32402]{height:90px;width:90px;font-size:10px;color:#fff;text-shadow:0 0 2px #000}.tile[data-v-567cf21f]{min-height:80px;width:80px;font-size:10px;background-color:var(--layer-color)}.tile>[data-v-567cf21f]{pointer-events:none}.clickable[data-v-7fbde57e]{min-height:120px;width:120px;font-size:10px}.clickable.small[data-v-7fbde57e]{min-height:unset}.clickable>[data-v-7fbde57e]{pointer-events:none}.infobox[data-v-6447a93e]{position:relative;width:600px;max-width:95%;margin-top:0;text-align:left;border-style:solid;border-width:0;box-sizing:border-box;border-radius:5px}.infobox.stacked[data-v-6447a93e]{border-width:4px}.infobox:not(.stacked)+.infobox[data-v-6447a93e]:not(.stacked){margin-top:20px}.infobox[data-v-6447a93e]+:not(.infobox){margin-top:10px}.title[data-v-6447a93e]{font-size:24px;color:#000;cursor:pointer;border:none;padding:4px;width:auto;text-align:left;padding-left:30px}.infobox:not(.stacked) .title[data-v-6447a93e]{border-top-left-radius:5px;border-top-right-radius:5px}.infobox.stacked+.infobox.stacked[data-v-6447a93e]{border-top-left-radius:0;border-top-right-radius:0;margin-top:-5px}.stacked .title[data-v-6447a93e]{width:100%}.collapsed:not(.stacked) .title[data-v-6447a93e]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background-color:inherit}.toggle[data-v-6447a93e]{position:absolute;left:10px}.collapsed .toggle[data-v-6447a93e]{transform:rotate(-90deg)}.body[data-v-6447a93e]{transition-duration:.5s;border-radius:5px;border-top-left-radius:0}.infobox:not(.stacked) .body[data-v-6447a93e]{padding:4px}.body>[data-v-6447a93e]{padding:8px;width:100%;display:block;box-sizing:border-box;border-radius:5px;border-top-left-radius:0;background-color:var(--background)}.not-fullscreen[data-v-4e1c0c10],.resize-listener[data-v-4e1c0c10]{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.modifier-container{display:flex}.modifier-container:nth-child(2n){background:var(--raised-background)}.modifier-amount{flex-basis:100px;flex-shrink:0}.modifier-description{flex-grow:1}.fullWidth[data-v-20a0a34d]{width:100%}.sticky[data-v-77aa21df]{position:sticky;background:var(--background);width:calc(100% - 2px);z-index:3}.vr[data-v-15f6e746]{width:4px;background:var(--outline);height:100%;margin:auto var(--feature-margin)}.bar[data-v-e6e3c366]{position:relative;display:table}.overlayTextContainer[data-v-e6e3c366]{position:absolute;border-radius:10px;vertical-align:middle;display:flex;justify-content:center;z-index:3}.overlayText[data-v-e6e3c366]{z-index:6}.border[data-v-e6e3c366]{border:2px solid;border-radius:10px;border-color:var(--foreground);overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC);mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC);margin:0}.fill[data-v-e6e3c366]{position:absolute;background-color:var(--foreground);overflow:hidden;margin-left:-.5px;transition-duration:.2s;z-index:2}.challenge[data-v-5e580749]{background-color:var(--locked);width:300px;min-height:300px;color:#000;font-size:15px;display:flex;flex-flow:column;align-items:center}.challenge.done[data-v-5e580749]{background-color:var(--bought)}.challenge button[data-v-5e580749]{min-height:50px;width:120px;border-radius:var(--border-radius);box-shadow:none!important;background:transparent}.challenge.canStart button[data-v-5e580749]{cursor:pointer;background-color:var(--layer-color)}.milestone[data-v-0b660ac3]{width:calc(100% - 10px);min-width:120px;padding-left:5px;padding-right:5px;background-color:var(--locked);border-width:4px;border-radius:5px;color:rgba(0,0,0,.5)}.milestone.done[data-v-0b660ac3]{background-color:var(--bought);cursor:default}.milestone[data-v-0b660ac3] .equal-spaced{display:flex;justify-content:center}.milestone[data-v-0b660ac3] .equal-spaced>*{margin:auto}.tabButton[data-v-3e3f03f9]{background-color:transparent;color:var(--foreground);font-size:20px;cursor:pointer;padding:5px 20px;margin:5px;border-radius:5px;border:2px solid;flex-shrink:0;border-color:var(--layer-color)}.tabButton[data-v-3e3f03f9]:hover{transform:scale(1.1);text-shadow:0 0 7px var(--foreground)}:not(.floating)>.tabButton[data-v-3e3f03f9]{height:50px;margin:0;border-left:none;border-right:none;border-top:none;border-bottom-width:4px;border-radius:0;transform:unset}:not(.floating) .tabButton[data-v-3e3f03f9]:not(.active){border-bottom-color:transparent}.tabButton>[data-v-3e3f03f9]{pointer-events:none}.tab-family-container[data-v-028a8f68]{margin:calc(50px + var(--feature-margin)) 20px var(--feature-margin) 20px;position:relative;border:4px solid;border-color:var(--outline)}.layer-tab>.tab-family-container[data-v-028a8f68]:first-child{margin:-4px -11px var(--feature-margin) -11px}.layer-tab>.tab-family-container[data-v-028a8f68]:first-child:nth-last-child(3){border-bottom-style:none;border-left-style:none;border-right-style:none;height:calc(100% + 50px)}.modal-body>.tab-family-container[data-v-028a8f68]:first-child{margin:calc(10px + var(--feature-margin)) 10px 0 10px;border:none}.tab-family-container[data-v-028a8f68]>:nth-child(2){margin-top:20px}.modal-body>.tab-family-container[data-v-028a8f68]>:nth-child(2){margin-top:50px}.tab-family-container[data-v-f18896fc][data-v-028a8f68]>:last-child{margin-bottom:20px}.tab-buttons-container[data-v-028a8f68]{z-index:4}.tab-buttons-container[data-v-028a8f68]:not(.floating){border-bottom:4px solid;border-color:inherit}:not(.layer-tab):not(.modal-body)>.tab-family-container>.tab-buttons-container[data-v-028a8f68]:not(.floating){width:calc(100% + 6px);margin-left:-3px}.tab-buttons-container:not(.floating) .tab-buttons[data-v-028a8f68]{text-align:left;margin-bottom:-4px}.tab-buttons-container.floating .tab-buttons[data-v-028a8f68]{justify-content:center;margin-top:-25px}.tab-buttons[data-v-028a8f68]{margin-bottom:24px;display:flex;flex-flow:wrap;z-index:4}.layer-tab>.tab-family-container:first-child:nth-last-child(3)>.tab-buttons-container>.tab-buttons[data-v-028a8f68]{padding-right:60px}.tab-buttons[data-v-028a8f68]:not(.floating){text-align:left;border-bottom:inherit;border-width:4px;box-sizing:border-box;height:50px}.modal-body .tab-buttons[data-v-028a8f68]{width:100%;margin-left:0;margin-right:0;padding-left:0}.showGoBack>.tab-family-container>.tab-buttons-container:not(.floating):first-child .tab-buttons[data-v-028a8f68]{padding-left:70px}:not(.showGoBack)>.tab-family-container>.tab-buttons-container:not(.floating):first-child .tab-buttons[data-v-028a8f68]{padding-left:0}.minimizable>.tab-buttons-container[data-v-028a8f68]:not(.floating):first-child{padding-right:50px}.tab-buttons-container:not(.floating):first-child .tab-buttons[data-v-028a8f68]{margin-top:-50px}.tab-buttons-container+[data-v-028a8f68]{margin-top:20px}.upgrade[data-v-6f164fe2]{min-height:120px;width:120px;font-size:10px}.upgrade>[data-v-6f164fe2]{pointer-events:none}.game-over-modal-header[data-v-06188cc8]{display:flex;margin:-20px;margin-bottom:0;background:var(--raised-background);align-items:center}.game-over-modal-header [data-v-06188cc8]{margin:0}.game-over-modal-logo[data-v-06188cc8]{height:4em;width:4em}.game-over-modal-title[data-v-06188cc8]{display:flex;flex-direction:column;padding:10px 0;margin-left:10px}.game-over-footer[data-v-06188cc8]{display:flex;justify-content:flex-end}.game-over-footer button[data-v-06188cc8]{margin:0 10px}.game-over-modal-discord-link[data-v-06188cc8]{display:flex;align-items:center}.game-over-modal-discord[data-v-06188cc8]{margin:0;margin-right:4px}.nan-modal-header[data-v-5935214c]{padding:10px 0;margin-left:10px}.nan-footer[data-v-5935214c]{display:flex;justify-content:flex-end}.nan-footer button[data-v-5935214c]{margin:0 10px}.nan-modal-discord-link[data-v-5935214c]{display:flex;align-items:center}.nan-modal-discord[data-v-5935214c]{margin:0;margin-right:4px}.tpsDisplay[data-v-c0663118]{position:absolute;left:10px;bottom:10px;z-index:100}.low[data-v-c0663118]{color:var(--danger)}.fade-leave-to[data-v-c0663118]{opacity:0}:root{color-scheme:dark}*{transition-duration:.5s;font-family:Roboto Mono,monospace;font-weight:700;margin:auto;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}:focus{outline:none}body{overflow:hidden;transition:none;text-align:center}#app,body,html{min-height:100%;height:100%}b,h1,h2,h3,input{display:inline}button{color:#000}.button,.link,a{display:block;color:var(--link);background:none;border:none;cursor:pointer;text-decoration:none}.button:hover,.link:hover,a:hover{text-shadow:5px 0 10px var(--link),-3px 0 12px var(--link)}.button:disabled{opacity:.5;cursor:not-allowed}.button:disabled:hover{text-shadow:none}ul{list-style-type:none}.Vue-Toastification__toast{margin:unset}.app[data-v-f13f28b6]{background-color:var(--background);color:var(--foreground);display:flex;flex-flow:column;min-height:100%;height:100%}#modal-root[data-v-f13f28b6]{position:absolute;min-height:100%;height:100%}
\ No newline at end of file
diff --git a/css/app.f57a7fd8.css b/css/app.f57a7fd8.css
new file mode 100644
index 0000000..56c9d88
--- /dev/null
+++ b/css/app.f57a7fd8.css
@@ -0,0 +1 @@
+.table{display:flex;flex-flow:column wrap;justify-content:center;align-items:center;max-width:100%;margin:0 auto}.table+.table{margin-top:10px}.row{display:flex;flex-flow:row wrap;justify-content:center;align-items:stretch;max-width:100%;margin:0 10px}.row>:not(.feature){margin:0;display:flex}.col{display:flex;flex-flow:column wrap;justify-content:center;align-items:center;height:100%;margin:10px 0}.row.mergeAdjacent>.feature:not(.dontMerge),.row.mergeAdjacent>.tooltip-container>.feature:not(.dontMerge){margin-left:0;margin-right:0;border-radius:0}.row.mergeAdjacent>.feature:not(.dontMerge):first-child,.row.mergeAdjacent>.tooltip-container:first-child>.feature:not(.dontMerge){border-radius:var(--border-radius) 0 0 var(--border-radius)}.row.mergeAdjacent>.feature:not(.dontMerge):last-child,.row.mergeAdjacent>.tooltip-container:last-child>.feature:not(.dontMerge){border-radius:0 var(--border-radius) var(--border-radius) 0}.row.mergeAdjacent>.feature:not(.dontMerge):first-child:last-child,.row.mergeAdjacent>.tooltip-container:first-child:last-child>.feature:not(.dontMerge){border-radius:var(--border-radius)}.col.mergeAdjacent .feature:not(.dontMerge){margin-top:0;margin-bottom:0;border-radius:0}.col.mergeAdjacent .feature:not(.dontMerge):first-child{border-radius:var(--border-radius) var(--border-radius) 0 0}.col.mergeAdjacent .feature:not(.dontMerge):last-child{border-radius:0 0 var(--border-radius) var(--border-radius)}.col.mergeAdjacent .feature:not(.dontMerge):first-child:last-child{border-radius:var(--border-radius)}.modal-mask{position:fixed;z-index:9998;top:0;left:0;bottom:0;right:0;background-color:rgba(0,0,0,.5);transition:opacity .3s ease}.modal-wrapper{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.modal-container{width:640px;max-width:95vw;max-height:95vh;background-color:var(--background);padding:20px;border-radius:5px;transition:all .3s ease;text-align:left;border:var(--modal-border);box-sizing:border-box;display:flex;flex-direction:column}.modal-header{width:100%}.modal-body{margin:20px 0;width:100%;overflow-y:auto;overflow-x:hidden}.modal-footer{width:100%}.modal-default-footer{display:flex}.modal-default-flex-grow{flex-grow:1}.modal-enter-from,.modal-leave-active{opacity:0}.modal-enter-from .modal-container,.modal-leave-active .modal-container{transform:scale(1.1)}.layer-container[data-v-52bbc8a4]{min-width:100%;min-height:100%;margin:0;flex-grow:1;display:flex;isolation:isolate}.layer-tab[data-v-52bbc8a4]:not(.minimized){padding-top:20px;padding-bottom:20px;min-height:100%;flex-grow:1;text-align:center;position:relative}.inner-tab>.layer-container>.layer-tab[data-v-52bbc8a4]:not(.minimized){padding-top:50px}.layer-tab.minimized[data-v-52bbc8a4]{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;padding:0;padding-top:55px;margin:0;cursor:pointer;font-size:40px;color:var(--foreground);border:none;background-color:transparent}.layer-tab.minimized div[data-v-52bbc8a4]{margin:0;-ms-writing-mode:tb-rl;writing-mode:vertical-rl;padding-left:10px;width:50px}.inner-tab>.layer-container>.layer-tab[data-v-52bbc8a4]:not(.minimized){margin:-50px -10px;padding:50px 10px}.modal-body .layer-tab[data-v-52bbc8a4]{padding-bottom:0}.modal-body .layer-tab[data-v-52bbc8a4]:not(.hasSubtabs){padding-top:0}.minimize[data-v-52bbc8a4]{position:sticky;top:6px;right:9px;z-index:7;line-height:30px;border:none;background:var(--background);box-shadow:var(--background) 0 2px 3px 5px;border-radius:50%;color:var(--foreground);font-size:40px;cursor:pointer;margin-top:-44px;margin-right:-30px}.minimized+.minimize[data-v-52bbc8a4]{transform:rotate(-90deg);top:10px;right:18px;pointer-events:none}.goBack[data-v-52bbc8a4]{position:sticky;top:6px;left:20px;line-height:30px;margin-top:-50px;margin-left:-35px;border:none;background:var(--background);box-shadow:var(--background) 0 2px 3px 5px;border-radius:50%;color:var(--foreground);font-size:40px;cursor:pointer;z-index:7}.goBack[data-v-52bbc8a4]:hover{transform:scale(1.1);text-shadow:0 0 7px var(--foreground)}details[data-v-5f8298e6]{margin:10px 0;padding-left:18px}summary[data-v-5f8298e6]{cursor:pointer;margin-bottom:10px;margin-left:-18px}ul[data-v-5f8298e6]{margin:var(--feature-margin) 0;background:var(--raised-background);border:2px solid rgba(0,0,0,.125);padding:5px 5px 5px 15px;list-style:inside}li[data-v-5f8298e6]{margin:8px 0}li[data-v-5f8298e6]:before{padding:2px 8px;margin-right:8px;border-radius:var(--border-radius)}.feature[data-v-5f8298e6]:before{content:"Feature";background:var(--accent1)}.fix[data-v-5f8298e6]:before{content:"Fix";background:var(--accent2)}.balancing[data-v-5f8298e6]:before{content:"Balancing";background:var(--accent3)}.breaking[data-v-5f8298e6]:before{content:"Breaking";background:var(--danger)}.info-modal-header[data-v-3eb46986]{display:flex;margin:-20px;margin-bottom:0;background:var(--raised-background);align-items:center}.info-modal-header [data-v-3eb46986]{margin:0}.info-modal-logo[data-v-3eb46986]{height:4em;width:4em}.info-modal-title[data-v-3eb46986]{display:flex;flex-direction:column;padding:10px 0;margin-left:10px}.info-modal-discord-link[data-v-3eb46986]{display:flex;align-items:center}.info-modal-discord[data-v-3eb46986]{margin:0;margin-right:4px}.field{display:flex;position:relative;min-height:2em;margin:10px 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;justify-content:space-between;align-items:center}.field>*{margin:0}.vue-select{width:50%;border-radius:var(--border-radius)}.field-buttons .vue-select{width:unset}.vue-dropdown,.vue-select{border-color:var(--outline)}.vue-dropdown{background:var(--raised-background)}.vue-dropdown-item{color:var(--foreground)}.vue-dropdown-item,.vue-dropdown-item *{transition-duration:0s}.vue-dropdown-item.highlighted{background-color:var(--highlighted)}.vue-dropdown-item.highlighted.selected,.vue-dropdown-item.selected{background-color:var(--bought)}.vue-input input::-moz-placeholder{color:var(--link)}.vue-input input:-ms-input-placeholder{color:var(--link)}.vue-input input::placeholder{color:var(--link)}.field[data-v-43cf95d0]{cursor:pointer}input[data-v-43cf95d0]{-webkit-appearance:none;-moz-appearance:none;appearance:none;pointer-events:none}span[data-v-43cf95d0]{width:100%;position:relative}input+span[data-v-43cf95d0]:before{content:"";float:right;margin:5px 0 5px 10px;border-radius:7px;width:36px;height:14px;background-color:var(--outline);opacity:.38;vertical-align:top;transition:background-color .2s,opacity .2s}input+span[data-v-43cf95d0]:after{content:"";position:absolute;top:2px;right:16px;border-radius:50%;width:20px;height:20px;background-color:var(--locked);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);transition:background-color .2s,transform .2s}input:checked+span[data-v-43cf95d0]:before{background-color:var(--link);opacity:.6}input:checked+span[data-v-43cf95d0]:after{background-color:var(--link);transform:translateX(16px)}input:active+span[data-v-43cf95d0]:before{background-color:var(--link);opacity:.6}input:checked:active+span[data-v-43cf95d0]:before{background-color:var(--outline);opacity:.38}input:disabled+span[data-v-43cf95d0]{color:#000;opacity:.38;cursor:default}input:disabled+span[data-v-43cf95d0]:before{background-color:var(--outline);opacity:.38}input:checked:disabled+span[data-v-43cf95d0]:before{background-color:var(--link);opacity:.6}.tooltip-container[data-v-adb5f26e]{position:relative;--xoffset:0px;--yoffset:0px}.tooltip[data-v-adb5f26e],.tooltip[data-v-adb5f26e]:after{pointer-events:none;position:absolute}.tooltip[data-v-adb5f26e]{text-align:center;width:150px;font-size:14px;line-height:1.2;bottom:calc(100% + var(--yoffset));left:calc(50% + var(--xoffset));margin-bottom:5px;transform:translateX(-50%);padding:7px;border-radius:3px;background-color:var(--tooltip-background);color:var(--points);z-index:100!important;word-break:break-word}.tooltip[data-v-adb5f26e] hr{margin:var(--feature-margin) 0}.shown[data-v-adb5f26e]{z-index:10}.fade-enter-from[data-v-adb5f26e],.fade-leave-to[data-v-adb5f26e]{opacity:0}.tooltip[data-v-adb5f26e]:after{content:" ";position:absolute;top:100%;bottom:100%;left:calc(50% - var(--xoffset));width:0;margin-left:-5px;border-width:5px;border-style:solid;border-color:var(--tooltip-background) transparent transparent transparent}.side-nodes .tooltip[data-v-adb5f26e]:not(.right):not(.bottom):not(.top),.tooltip.left[data-v-adb5f26e]{bottom:calc(50% + var(--yoffset));left:unset;right:calc(100% + var(--xoffset));margin-bottom:unset;margin-right:5px;transform:translateY(50%)}.side-nodes .tooltip[data-v-adb5f26e]:not(.right):not(.bottom):not(.top):after,.tooltip.left[data-v-adb5f26e]:after{top:calc(50% + var(--yoffset));bottom:unset;left:100%;right:100%;margin-left:unset;margin-top:-5px;border-color:transparent transparent transparent var(--tooltip-background)}.tooltip.right[data-v-adb5f26e]{bottom:calc(50% + var(--yoffset));left:calc(100% + var(--xoffset));margin-bottom:unset;margin-left:5px;transform:translateY(50%)}.tooltip.right[data-v-adb5f26e]:after{top:calc(50% + var(--yoffset));left:0;right:100%;margin-left:-10px;margin-top:-5px;border-color:transparent var(--tooltip-background) transparent transparent}.tooltip.bottom[data-v-adb5f26e]{top:calc(100% + var(--yoffset));bottom:unset;left:calc(50% + var(--xoffset));margin-bottom:unset;margin-top:5px;transform:translateX(-50%)}.tooltip.bottom[data-v-adb5f26e]:after{top:0;margin-top:-10px;border-color:transparent transparent var(--tooltip-background) transparent}.pinned[data-v-adb5f26e]{position:absolute;right:-5px;top:-5px;transform:rotate(45deg)}.header[data-v-85d7ae40]{margin-bottom:-10px}[data-v-85d7ae40] .tooltip-container{display:inline;margin-left:5px}form[data-v-8bda704a]{margin:0;width:100%}.field>[data-v-8bda704a]{margin:0}input[data-v-8bda704a]{width:50%;outline:none;border:solid 1px var(--outline);background-color:unset;border-radius:var(--border-radius)}.fullWidth[data-v-8bda704a]{width:100%}.container[data-v-bf59fca4]{display:flex;align-items:center;background:var(--raised-background);box-shadow:var(--raised-background) 0 2px 3px 5px}.container.confirming button[data-v-bf59fca4]{font-size:1em}.container>[data-v-bf59fca4]{margin:0 4px}.button.danger,.danger{position:relative;border:solid 2px var(--danger);border-right-width:16px}.danger:after{position:absolute;content:"!";color:#fff;right:-13px}.feedback[data-v-5bbcedd3]{position:relative}.feedback[data-v-5bbcedd3]:after{position:absolute;left:calc(100% + 5px);top:50%;transform:translateY(-50%);content:"✔";opacity:0;pointer-events:none;box-shadow:inset 0 0 0 35px rgba(111,148,182,0);text-shadow:none}.feedback.left[data-v-5bbcedd3]:after{left:unset;right:calc(100% + 5px)}.feedback.activated[data-v-5bbcedd3]:after{-webkit-animation:feedback-5bbcedd3 .5s ease-out forwards;animation:feedback-5bbcedd3 .5s ease-out forwards}@-webkit-keyframes feedback-5bbcedd3{0%{opacity:1;transform:scale3d(.4,.4,1),translateY(-50%)}80%{opacity:.1}to{opacity:0;transform:scale3d(1.2,1.2,1),translateY(-50%)}}@keyframes feedback-5bbcedd3{0%{opacity:1;transform:scale3d(.4,.4,1),translateY(-50%)}80%{opacity:.1}to{opacity:0;transform:scale3d(1.2,1.2,1),translateY(-50%)}}.save[data-v-6a0cf7ac]{position:relative;border:solid 4px var(--outline);padding:4px;background:var(--raised-background);margin:var(--feature-margin);display:flex;align-items:center;min-height:30px}.save.active[data-v-6a0cf7ac]{border-color:var(--bought)}.open[data-v-6a0cf7ac]{display:inline;margin:0;padding-left:0}.handle[data-v-6a0cf7ac]{flex-grow:0;margin-right:8px;margin-left:0;cursor:pointer}.details[data-v-6a0cf7ac]{margin:0;flex-grow:1;margin-right:80px}.error[data-v-6a0cf7ac]{font-size:.8em;color:var(--danger)}.save-version[data-v-6a0cf7ac]{margin-left:4px;font-size:.7em;opacity:.7}.actions[data-v-6a0cf7ac]{position:absolute;top:0;bottom:0;right:4px;display:flex;padding:4px;z-index:1}.editname[data-v-6a0cf7ac]{margin:0}.save button{transition-duration:0s}.save .actions button{display:flex;font-size:1.2em}.save .actions button .material-icons{font-size:unset}.save .button.danger{display:flex;align-items:center;padding:4px}.field .field-buttons[data-v-458d7fce],.field .field-title[data-v-458d7fce],.field form[data-v-458d7fce],.save .field{margin:0}.field-buttons[data-v-458d7fce]{display:flex}.field-buttons .field[data-v-458d7fce]{margin:0;margin-left:8px}.modal-footer[data-v-458d7fce]{margin-top:-20px}.footer[data-v-458d7fce]{display:flex;margin-top:20px}.importingFailed input{color:red}.field-buttons .v-select{width:220px}.presets .vue-select[aria-expanded=true] vue-dropdown{visibility:hidden}.nav[data-v-71847eca]{background-color:var(--raised-background);display:flex;left:0;right:0;top:0;height:46px;width:100%;border-bottom:4px solid var(--outline)}.nav>[data-v-71847eca]{height:46px;width:46px;display:flex;cursor:pointer;flex-shrink:0}.nav>.banner[data-v-71847eca]{height:100%;width:unset}.overlay-nav[data-v-71847eca]{position:fixed;top:10px;left:10px;display:flex;flex-direction:column;z-index:2}.overlay-nav>[data-v-71847eca]{height:50px;width:50px;display:flex;cursor:pointer;margin:0;align-items:center;justify-content:center}.title[data-v-71847eca]{font-size:36px;text-align:left;margin-left:12px;cursor:unset}.nav>.title[data-v-71847eca]{width:unset;flex-shrink:1;overflow:hidden;white-space:nowrap}.nav .info[data-v-71847eca],.nav .saves[data-v-71847eca]{display:flex}.tooltip-container[data-v-71847eca]{width:100%;height:100%;display:flex}.overlay-nav .discord[data-v-71847eca]{position:relative}.discord img[data-v-71847eca]{width:100%;height:100%}.discord-links[data-v-71847eca]{position:fixed;top:45px;padding:20px;right:-280px;width:200px;transition:right .25s ease;background:var(--raised-background);z-index:10}.overlay-nav .discord-links[data-v-71847eca]{position:absolute;left:-280px;right:unset;transition:left .25s ease}.overlay-nav .discord:hover .discord-links[data-v-71847eca]{left:-10px}.discord-links li[data-v-71847eca]{margin-bottom:4px}.discord-links li[data-v-71847eca]:first-child{font-size:1.2em}:not(.overlay-nav) .discord:hover .discord-links[data-v-71847eca]{right:0}.material-icons[data-v-71847eca]{font-size:36px}.material-icons[data-v-71847eca]:hover{text-shadow:5px 0 10px var(--link),-3px 0 12px var(--foreground)}.nav .version-container[data-v-71847eca]{display:flex;height:25px;margin-bottom:0;margin-left:10px}.overlay-nav .version-container[data-v-71847eca]{width:unset;height:25px}.version[data-v-71847eca]{color:var(--points)}.version:hover span[data-v-71847eca]{text-shadow:5px 0 10px var(--points),-3px 0 12px var(--points)}.nav>div>a[data-v-71847eca],.overlay-nav>div>a[data-v-71847eca]{color:var(--foreground);text-shadow:none}.tabs-container[data-v-eda60da0]{width:100vw;flex-grow:1;overflow-x:auto;overflow-y:hidden;display:flex}.tabs-container[data-v-eda60da0]:not(.useHeader){width:calc(100vw - 50px);margin-left:50px}.tab[data-v-eda60da0]{position:relative;height:100%;flex-grow:1;transition-duration:0s;overflow-y:auto;overflow-x:hidden}.inner-tab[data-v-eda60da0]{padding:50px 10px;min-height:calc(100% - 100px);display:flex;flex-direction:column;margin:0;flex-grow:1}.tab+.tab>.inner-tab[data-v-eda60da0]{border-left:solid 4px var(--outline)}.tab hr{height:4px;border:none;background:var(--outline);margin:var(--feature-margin) 0}.tab .modal-body hr{margin:7px 0}svg[data-v-07150322]{background:#2e3440}svg .svg-elem-1[data-v-07150322]{stroke-dashoffset:2648.758056640625px;stroke-dasharray:1324.3790283203125px;transition:stroke-dashoffset 1s cubic-bezier(.47,0,.745,.715) 0s}svg.v-enter-from .svg-elem-1[data-v-07150322],svg.v-leave-to .svg-elem-1[data-v-07150322]{stroke-dashoffset:1324.3790283203125px}svg .svg-elem-2[data-v-07150322]{stroke-dashoffset:680.4000854492188px;stroke-dasharray:340.2000427246094px;transition:stroke-dashoffset 1s ease-out .4s}svg.v-enter-from .svg-elem-2[data-v-07150322],svg.v-leave-to .svg-elem-2[data-v-07150322]{stroke-dashoffset:340.2000427246094px}svg .svg-elem-3[data-v-07150322]{stroke-dashoffset:76.21031951904297px;stroke-dasharray:38.105159759521484px;transition:stroke-dashoffset 1s ease-out .8s}svg.v-enter-from .svg-elem-3[data-v-07150322],svg.v-leave-to .svg-elem-3[data-v-07150322]{stroke-dashoffset:38.105159759521484px}svg .svg-elem-4[data-v-07150322]{stroke-dashoffset:175.18072509765625px;stroke-dasharray:87.59036254882812px;transition:stroke-dashoffset 1s cubic-bezier(.47,0,.745,.715) .36s}svg.v-enter-from .svg-elem-4[data-v-07150322],svg.v-leave-to .svg-elem-4[data-v-07150322]{stroke-dashoffset:87.59036254882812px}svg .svg-elem-5[data-v-07150322]{stroke-dashoffset:671.9447021484375px;stroke-dasharray:335.97235107421875px;transition:stroke-dashoffset 1s ease-out .8s}svg.v-enter-from .svg-elem-5[data-v-07150322],svg.v-leave-to .svg-elem-5[data-v-07150322]{stroke-dashoffset:335.97235107421875px}svg .svg-elem-6[data-v-07150322]{stroke-dashoffset:173.96141052246094px;stroke-dasharray:86.98070526123047px;transition:stroke-dashoffset 1s ease-out 1s}svg.v-enter-from .svg-elem-6[data-v-07150322],svg.v-leave-to .svg-elem-6[data-v-07150322]{stroke-dashoffset:86.98070526123047px}svg .svg-elem-7[data-v-07150322]{stroke-dashoffset:172.99151611328125px;stroke-dasharray:86.49575805664062px;transition:stroke-dashoffset 1s ease-out .85s}svg.v-enter-from .svg-elem-7[data-v-07150322],svg.v-leave-to .svg-elem-7[data-v-07150322]{stroke-dashoffset:86.49575805664062px}.resize-listener[data-v-6ef44f8d],svg[data-v-6ef44f8d]{position:absolute;top:5px;left:5px;right:5px;bottom:5px;z-index:-10;pointer-events:none}.left-side-nodes[data-v-aa87859c]{position:absolute;left:15px;top:65px}.side-nodes[data-v-aa87859c]{position:absolute;right:15px;top:65px}.left-side-nodes[data-v-aa87859c] .treeNode,.side-nodes[data-v-aa87859c] .treeNode{margin:20px auto}.small[data-v-aa87859c] .treeNode{height:60px;width:60px}.small[data-v-aa87859c] .treeNode>:first-child{font-size:30px}.node[data-v-63ded336]{position:absolute;z-index:-10;top:0;left:0;width:100%;height:100%;pointer-events:none}.mark[data-v-c476c56a]{position:absolute;left:-25px;top:-10px;width:30px;height:30px;z-index:1;border-bottom:.7em solid transparent}.mark[data-v-c476c56a],.star[data-v-c476c56a]{pointer-events:none;margin-left:.9em;margin-right:.9em;margin-bottom:1.2em;border-right:.3em solid transparent;border-left:.3em solid transparent;font-size:10px}.star[data-v-c476c56a]{left:-10px;width:0;height:0;border-bottom:.7em solid #fc0}.star[data-v-c476c56a]:after,.star[data-v-c476c56a]:before{content:"";width:0;height:0;position:absolute;top:.6em;left:-1em;border-right:1em solid transparent;border-bottom:.7em solid #fc0;border-left:1em solid transparent;transform:rotate(-35deg)}.star[data-v-c476c56a]:after{transform:rotate(35deg)}.treeNode[data-v-3de1d1bc]{height:100px;width:100px;border-radius:50%;padding:0;margin:0 10px 0 10px}.treeNode>[data-v-3de1d1bc]:first-child{width:100%;height:100%;border:2px solid rgba(0,0,0,.125);border-radius:inherit;font-size:40px;color:rgba(0,0,0,.5);text-shadow:2px 2px 4px rgba(0,0,0,.25);box-shadow:-4px -4px 4px rgba(0,0,0,.25) inset,0 0 20px var(--background);text-transform:capitalize;display:flex}.treeNode>:first-child>[data-v-3de1d1bc]{pointer-events:none}.feature:not(li),.feature:not(li) button{position:relative;padding:5px;border-radius:var(--border-radius);border:2px solid rgba(0,0,0,.125);margin:var(--feature-margin);box-sizing:border-box;color:var(--feature-foreground);z-index:0;transition:all .5s,z-index 0s .5s}.can,.can button{background-color:var(--layer-color);cursor:pointer}.can:hover,.can:hover button{transform:scale(1.15);box-shadow:0 0 20px var(--points);z-index:1;transition:all .5s,z-index 0s}.locked,.locked button{background-color:var(--locked);cursor:not-allowed}.bought,.bought button{background-color:var(--bought);cursor:default}.achievement[data-v-e3f32402]{height:90px;width:90px;font-size:10px;color:#fff;text-shadow:0 0 2px #000}.tile[data-v-567cf21f]{min-height:80px;width:80px;font-size:10px;background-color:var(--layer-color)}.tile>[data-v-567cf21f]{pointer-events:none}.clickable[data-v-7fbde57e]{min-height:120px;width:120px;font-size:10px}.clickable.small[data-v-7fbde57e]{min-height:unset}.clickable>[data-v-7fbde57e]{pointer-events:none}.infobox[data-v-6447a93e]{position:relative;width:600px;max-width:95%;margin-top:0;text-align:left;border-style:solid;border-width:0;box-sizing:border-box;border-radius:5px}.infobox.stacked[data-v-6447a93e]{border-width:4px}.infobox:not(.stacked)+.infobox[data-v-6447a93e]:not(.stacked){margin-top:20px}.infobox[data-v-6447a93e]+:not(.infobox){margin-top:10px}.title[data-v-6447a93e]{font-size:24px;color:#000;cursor:pointer;border:none;padding:4px;width:auto;text-align:left;padding-left:30px}.infobox:not(.stacked) .title[data-v-6447a93e]{border-top-left-radius:5px;border-top-right-radius:5px}.infobox.stacked+.infobox.stacked[data-v-6447a93e]{border-top-left-radius:0;border-top-right-radius:0;margin-top:-5px}.stacked .title[data-v-6447a93e]{width:100%}.collapsed:not(.stacked) .title[data-v-6447a93e]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background-color:inherit}.toggle[data-v-6447a93e]{position:absolute;left:10px}.collapsed .toggle[data-v-6447a93e]{transform:rotate(-90deg)}.body[data-v-6447a93e]{transition-duration:.5s;border-radius:5px;border-top-left-radius:0}.infobox:not(.stacked) .body[data-v-6447a93e]{padding:4px}.body>[data-v-6447a93e]{padding:8px;width:100%;display:block;box-sizing:border-box;border-radius:5px;border-top-left-radius:0;background-color:var(--background)}.not-fullscreen[data-v-c6c07f60],.resize-listener[data-v-c6c07f60]{position:absolute;top:5px;left:5px;right:5px;bottom:5px;pointer-events:none}.modifier-container{display:flex}.modifier-container:nth-child(2n){background:var(--raised-background)}.modifier-amount{flex-basis:100px;flex-shrink:0}.modifier-description{flex-grow:1}.fullWidth[data-v-20a0a34d]{width:100%}.sticky[data-v-77aa21df]{position:sticky;background:var(--background);width:calc(100% - 2px);z-index:3}.vr[data-v-15f6e746]{width:4px;background:var(--outline);height:100%;margin:auto var(--feature-margin)}.bar[data-v-e6e3c366]{position:relative;display:table}.overlayTextContainer[data-v-e6e3c366]{position:absolute;border-radius:10px;vertical-align:middle;display:flex;justify-content:center;z-index:3}.overlayText[data-v-e6e3c366]{z-index:6}.border[data-v-e6e3c366]{border:2px solid;border-radius:10px;border-color:var(--foreground);overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC);mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC);margin:0}.fill[data-v-e6e3c366]{position:absolute;background-color:var(--foreground);overflow:hidden;margin-left:-.5px;transition-duration:.2s;z-index:2}.challenge[data-v-5e580749]{background-color:var(--locked);width:300px;min-height:300px;color:#000;font-size:15px;display:flex;flex-flow:column;align-items:center}.challenge.done[data-v-5e580749]{background-color:var(--bought)}.challenge button[data-v-5e580749]{min-height:50px;width:120px;border-radius:var(--border-radius);box-shadow:none!important;background:transparent}.challenge.canStart button[data-v-5e580749]{cursor:pointer;background-color:var(--layer-color)}.milestone[data-v-0b660ac3]{width:calc(100% - 10px);min-width:120px;padding-left:5px;padding-right:5px;background-color:var(--locked);border-width:4px;border-radius:5px;color:rgba(0,0,0,.5)}.milestone.done[data-v-0b660ac3]{background-color:var(--bought);cursor:default}.milestone[data-v-0b660ac3] .equal-spaced{display:flex;justify-content:center}.milestone[data-v-0b660ac3] .equal-spaced>*{margin:auto}.tabButton[data-v-3e3f03f9]{background-color:transparent;color:var(--foreground);font-size:20px;cursor:pointer;padding:5px 20px;margin:5px;border-radius:5px;border:2px solid;flex-shrink:0;border-color:var(--layer-color)}.tabButton[data-v-3e3f03f9]:hover{transform:scale(1.1);text-shadow:0 0 7px var(--foreground)}:not(.floating)>.tabButton[data-v-3e3f03f9]{height:50px;margin:0;border-left:none;border-right:none;border-top:none;border-bottom-width:4px;border-radius:0;transform:unset}:not(.floating) .tabButton[data-v-3e3f03f9]:not(.active){border-bottom-color:transparent}.tabButton>[data-v-3e3f03f9]{pointer-events:none}.tab-family-container[data-v-028a8f68]{margin:calc(50px + var(--feature-margin)) 20px var(--feature-margin) 20px;position:relative;border:4px solid;border-color:var(--outline)}.layer-tab>.tab-family-container[data-v-028a8f68]:first-child{margin:-4px -11px var(--feature-margin) -11px}.layer-tab>.tab-family-container[data-v-028a8f68]:first-child:nth-last-child(3){border-bottom-style:none;border-left-style:none;border-right-style:none;height:calc(100% + 50px)}.modal-body>.tab-family-container[data-v-028a8f68]:first-child{margin:calc(10px + var(--feature-margin)) 10px 0 10px;border:none}.tab-family-container[data-v-028a8f68]>:nth-child(2){margin-top:20px}.modal-body>.tab-family-container[data-v-028a8f68]>:nth-child(2){margin-top:50px}.tab-family-container[data-v-f18896fc][data-v-028a8f68]>:last-child{margin-bottom:20px}.tab-buttons-container[data-v-028a8f68]{z-index:4}.tab-buttons-container[data-v-028a8f68]:not(.floating){border-bottom:4px solid;border-color:inherit}:not(.layer-tab):not(.modal-body)>.tab-family-container>.tab-buttons-container[data-v-028a8f68]:not(.floating){width:calc(100% + 6px);margin-left:-3px}.tab-buttons-container:not(.floating) .tab-buttons[data-v-028a8f68]{text-align:left;margin-bottom:-4px}.tab-buttons-container.floating .tab-buttons[data-v-028a8f68]{justify-content:center;margin-top:-25px}.tab-buttons[data-v-028a8f68]{margin-bottom:24px;display:flex;flex-flow:wrap;z-index:4}.layer-tab>.tab-family-container:first-child:nth-last-child(3)>.tab-buttons-container>.tab-buttons[data-v-028a8f68]{padding-right:60px}.tab-buttons[data-v-028a8f68]:not(.floating){text-align:left;border-bottom:inherit;border-width:4px;box-sizing:border-box;height:50px}.modal-body .tab-buttons[data-v-028a8f68]{width:100%;margin-left:0;margin-right:0;padding-left:0}.showGoBack>.tab-family-container>.tab-buttons-container:not(.floating):first-child .tab-buttons[data-v-028a8f68]{padding-left:70px}:not(.showGoBack)>.tab-family-container>.tab-buttons-container:not(.floating):first-child .tab-buttons[data-v-028a8f68]{padding-left:0}.minimizable>.tab-buttons-container[data-v-028a8f68]:not(.floating):first-child{padding-right:50px}.tab-buttons-container:not(.floating):first-child .tab-buttons[data-v-028a8f68]{margin-top:-50px}.tab-buttons-container+[data-v-028a8f68]{margin-top:20px}.upgrade[data-v-6f164fe2]{min-height:120px;width:120px;font-size:10px}.upgrade>[data-v-6f164fe2]{pointer-events:none}.game-over-modal-header[data-v-06188cc8]{display:flex;margin:-20px;margin-bottom:0;background:var(--raised-background);align-items:center}.game-over-modal-header [data-v-06188cc8]{margin:0}.game-over-modal-logo[data-v-06188cc8]{height:4em;width:4em}.game-over-modal-title[data-v-06188cc8]{display:flex;flex-direction:column;padding:10px 0;margin-left:10px}.game-over-footer[data-v-06188cc8]{display:flex;justify-content:flex-end}.game-over-footer button[data-v-06188cc8]{margin:0 10px}.game-over-modal-discord-link[data-v-06188cc8]{display:flex;align-items:center}.game-over-modal-discord[data-v-06188cc8]{margin:0;margin-right:4px}.nan-modal-header[data-v-5935214c]{padding:10px 0;margin-left:10px}.nan-footer[data-v-5935214c]{display:flex;justify-content:flex-end}.nan-footer button[data-v-5935214c]{margin:0 10px}.nan-modal-discord-link[data-v-5935214c]{display:flex;align-items:center}.nan-modal-discord[data-v-5935214c]{margin:0;margin-right:4px}.tpsDisplay[data-v-c0663118]{position:absolute;left:10px;bottom:10px;z-index:100}.low[data-v-c0663118]{color:var(--danger)}.fade-leave-to[data-v-c0663118]{opacity:0}:root{color-scheme:dark}*{transition-duration:.5s;font-family:Roboto Mono,monospace;font-weight:700;margin:auto;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}:focus{outline:none}body{overflow:hidden;transition:none;text-align:center}#app,body,html{min-height:100%;height:100%}b,h1,h2,h3,input{display:inline}button{color:#000}.button,.link,a{display:block;color:var(--link);background:none;border:none;cursor:pointer;text-decoration:none}.button:hover,.link:hover,a:hover{text-shadow:5px 0 10px var(--link),-3px 0 12px var(--link)}.button:disabled{opacity:.5;cursor:not-allowed}.button:disabled:hover{text-shadow:none}ul{list-style-type:none}.Vue-Toastification__toast{margin:unset}.app[data-v-f13f28b6]{background-color:var(--background);color:var(--foreground);display:flex;flex-flow:column;min-height:100%;height:100%}#modal-root[data-v-f13f28b6]{position:absolute;min-height:100%;height:100%}
\ No newline at end of file
diff --git a/index.html b/index.html
index 6f122be..21c7a86 100644
--- a/index.html
+++ b/index.html
@@ -1 +1 @@
-
profectus
\ No newline at end of file
+profectus
\ No newline at end of file
diff --git a/js/app-legacy.16fd29cf.js.map b/js/app-legacy.16fd29cf.js.map
deleted file mode 100644
index 1488566..0000000
--- a/js/app-legacy.16fd29cf.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"js/app-legacy.16fd29cf.js","mappings":"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","sources":["webpack://profectus/./src/data/themes.ts","webpack://profectus/./src/features/feature.ts","webpack://profectus/./src/features/tooltips/tooltip.ts","webpack://profectus/./src/game/events.ts","webpack://profectus/./src/game/persistence.ts","webpack://profectus/./src/game/player.ts","webpack://profectus/./src/game/settings.ts","webpack://profectus/./src/game/state.ts","webpack://profectus/./src/components/Layer.vue?f0dc","webpack://profectus/./src/components/Layer.vue?ea1e","webpack://profectus/./src/components/Layer.vue","webpack://profectus/./src/data/Changelog.vue?6b26","webpack://profectus/./src/data/Changelog.vue","webpack://profectus/./src/components/Info.vue?962a","webpack://profectus/./src/components/Info.vue","webpack://profectus/./src/components/Options.vue?ba84","webpack://profectus/./src/components/Options.vue","webpack://profectus/./src/components/fields/DangerButton.vue?bf6c","webpack://profectus/./src/components/fields/DangerButton.vue","webpack://profectus/./src/components/fields/FeedbackButton.vue?2dba","webpack://profectus/./src/components/fields/FeedbackButton.vue","webpack://profectus/./src/components/Save.vue?548a","webpack://profectus/./src/components/Save.vue","webpack://profectus/./src/components/SavesManager.vue?f8a3","webpack://profectus/./src/components/SavesManager.vue","webpack://profectus/./src/components/Nav.vue?b4a5","webpack://profectus/./src/components/Nav.vue","webpack://profectus/./src/components/Game.vue?fa24","webpack://profectus/./src/components/Game.vue","webpack://profectus/./src/components/GameOverScreen.vue?ee8d","webpack://profectus/./src/components/GameOverScreen.vue","webpack://profectus/./src/components/NaNScreen.vue?4f64","webpack://profectus/./src/components/NaNScreen.vue","webpack://profectus/./src/components/TPS.vue?e36e","webpack://profectus/./src/components/TPS.vue","webpack://profectus/./src/App.vue?94f9","webpack://profectus/./src/App.vue","webpack://profectus/./src/main.ts","webpack://profectus/./src/lib/break_eternity.ts","webpack://profectus/./src/util/break_eternity.ts","webpack://profectus/./src/util/bignum.ts","webpack://profectus/./src/util/common.ts","webpack://profectus/./src/util/computed.ts","webpack://profectus/./src/util/proxies.ts","webpack://profectus/./src/util/save.ts","webpack://profectus/./src/features/particles/Particles.vue?11ca","webpack://profectus/./src/components/Profectus.vue","webpack://profectus/./src/components/Profectus.vue?94a9","webpack://profectus/./src/components/layout/Spacer.vue?e0bd","webpack://profectus/./src/components/layout/Spacer.vue","webpack://profectus/./src/features/resources/resource.ts","webpack://profectus/./src/features/trees/Tree.vue?d078","webpack://profectus/./src/features/links/Link.vue?f30b","webpack://profectus/./src/features/links/Link.vue","webpack://profectus/./src/features/links/Links.vue?7529","webpack://profectus/./src/features/links/Links.vue","webpack://profectus/./src/features/trees/Tree.vue?698b","webpack://profectus/./src/features/trees/Tree.vue","webpack://profectus/./src/features/trees/TreeNode.vue?20ed","webpack://profectus/./src/components/Node.vue?6bf5","webpack://profectus/./src/components/Node.vue","webpack://profectus/./src/components/MarkNode.vue?acb3","webpack://profectus/./src/components/MarkNode.vue","webpack://profectus/./src/features/trees/TreeNode.vue?9a03","webpack://profectus/./src/features/trees/TreeNode.vue","webpack://profectus/./src/features/trees/tree.ts","webpack://profectus/./src/features/achievements/Achievement.vue?3070","webpack://profectus/./src/features/achievements/Achievement.vue?dcde","webpack://profectus/./src/features/achievements/Achievement.vue","webpack://profectus/./src/game/notifications.ts","webpack://profectus/./src/features/achievements/achievement.tsx","webpack://profectus/./src/features/grids/Grid.vue?6522","webpack://profectus/./src/features/grids/GridCell.vue?d554","webpack://profectus/./src/features/grids/GridCell.vue?58b8","webpack://profectus/./src/features/grids/GridCell.vue","webpack://profectus/./src/features/grids/Grid.vue?3299","webpack://profectus/./src/features/grids/Grid.vue","webpack://profectus/./src/features/grids/grid.ts","webpack://profectus/./src/features/clickables/Clickable.vue?0089","webpack://profectus/./src/features/clickables/Clickable.vue?22aa","webpack://profectus/./src/features/clickables/Clickable.vue","webpack://profectus/./src/features/clickables/clickable.ts","webpack://profectus/./src/data/common.tsx","webpack://profectus/./src/features/conversion.ts","webpack://profectus/./src/features/infoboxes/Infobox.vue?b869","webpack://profectus/./src/features/infoboxes/Infobox.vue?c704","webpack://profectus/./src/features/infoboxes/Infobox.vue","webpack://profectus/./src/features/infoboxes/infobox.ts","webpack://profectus/./src/features/particles/Particles.vue?8e41","webpack://profectus/./src/features/particles/Particles.vue","webpack://profectus/./src/features/particles/particles.tsx","webpack://profectus/./src/features/reset.ts","webpack://profectus/./src/features/resources/Resource.vue?0822","webpack://profectus/./src/features/resources/Resource.vue","webpack://profectus/./src/features/resources/MainDisplay.vue?8bde","webpack://profectus/./src/features/resources/MainDisplay.vue","webpack://profectus/./src/game/modifiers.tsx","webpack://profectus/./src/components/fields/Slider.vue?f27e","webpack://profectus/./src/components/fields/Slider.vue","webpack://profectus/./src/components/layout/Sticky.vue?32f6","webpack://profectus/./src/components/layout/Sticky.vue","webpack://profectus/./src/components/layout/VerticalRule.vue?aaf3","webpack://profectus/./src/components/layout/VerticalRule.vue","webpack://profectus/./src/features/bars/Bar.vue?b455","webpack://profectus/./src/features/bars/Bar.vue?da91","webpack://profectus/./src/features/bars/Bar.vue","webpack://profectus/./src/features/bars/bar.ts","webpack://profectus/./src/features/buyable.tsx","webpack://profectus/./src/features/challenges/Challenge.vue?43ae","webpack://profectus/./src/features/challenges/Challenge.vue?5ee1","webpack://profectus/./src/features/challenges/Challenge.vue","webpack://profectus/./src/features/challenges/challenge.tsx","webpack://profectus/./src/features/hotkey.tsx","webpack://profectus/./src/features/links/links.ts","webpack://profectus/./src/features/milestones/Milestone.vue?08ca","webpack://profectus/./src/features/milestones/Milestone.vue?d607","webpack://profectus/./src/features/milestones/Milestone.vue","webpack://profectus/./src/features/milestones/milestone.tsx","webpack://profectus/./src/features/tabs/Tab.vue?50ee","webpack://profectus/./src/features/tabs/Tab.vue","webpack://profectus/./src/features/tabs/tab.ts","webpack://profectus/./src/features/tabs/TabButton.vue?7f39","webpack://profectus/./src/features/tabs/TabButton.vue?a3c5","webpack://profectus/./src/features/tabs/TabButton.vue","webpack://profectus/./src/features/tabs/TabFamily.vue?09b2","webpack://profectus/./src/features/tabs/TabFamily.vue?2385","webpack://profectus/./src/features/tabs/TabFamily.vue","webpack://profectus/./src/features/tabs/tabFamily.ts","webpack://profectus/./src/features/upgrades/Upgrade.vue?4ec3","webpack://profectus/./src/features/upgrades/Upgrade.vue?4a14","webpack://profectus/./src/features/upgrades/Upgrade.vue","webpack://profectus/./src/features/upgrades/upgrade.ts","webpack://profectus/./src/data/layers/aca/c.tsx","webpack://profectus/./src/data/layers/aca/f.tsx","webpack://profectus/./src/data/layers/aca/a.tsx","webpack://profectus/./src/data/projEntry.tsx","webpack://profectus/./src/game/layers.tsx","webpack://profectus/./src/util/vue.tsx","webpack://profectus/./src/components/Context.vue?2f6e","webpack://profectus/./src/components/Context.vue","webpack://profectus/./src/components/Modal.vue?1099","webpack://profectus/./src/components/Modal.vue","webpack://profectus/./src/components/fields/Select.vue?c5ab","webpack://profectus/./src/components/fields/Select.vue","webpack://profectus/./src/components/fields/Text.vue?ba89","webpack://profectus/./src/components/fields/Text.vue","webpack://profectus/./src/components/fields/Toggle.vue?20df","webpack://profectus/./src/components/fields/Toggle.vue","webpack://profectus/./src/components/layout/Column.vue?cbbe","webpack://profectus/./src/components/layout/Column.vue","webpack://profectus/./src/components/layout/Row.vue?506d","webpack://profectus/./src/components/layout/Row.vue","webpack://profectus/./src/features/tooltips/Tooltip.vue?8920","webpack://profectus/./src/features/tooltips/Tooltip.vue?9cc7","webpack://profectus/./src/features/tooltips/Tooltip.vue","webpack://profectus/|/\\.txt$/","webpack://profectus/webpack/bootstrap","webpack://profectus/webpack/runtime/chunk loaded","webpack://profectus/webpack/runtime/compat get default export","webpack://profectus/webpack/runtime/define property getters","webpack://profectus/webpack/runtime/global","webpack://profectus/webpack/runtime/harmony module decorator","webpack://profectus/webpack/runtime/hasOwnProperty shorthand","webpack://profectus/webpack/runtime/make namespace object","webpack://profectus/webpack/runtime/node module decorator","webpack://profectus/webpack/runtime/jsonp chunk loading","webpack://profectus/webpack/startup"],"sourcesContent":["export interface ThemeVars {\n \"--foreground\": string;\n \"--background\": string;\n \"--feature-foreground\": string;\n \"--tooltip-background\": string;\n \"--raised-background\": string;\n \"--points\": string;\n \"--locked\": string;\n \"--highlighted\": string;\n \"--bought\": string;\n \"--danger\": string;\n \"--link\": string;\n \"--outline\": string;\n \"--accent1\": string;\n \"--accent2\": string;\n \"--accent3\": string;\n \"--border-radius\": string;\n \"--modal-border\": string;\n \"--feature-margin\": string;\n}\n\nexport interface Theme {\n variables: ThemeVars;\n floatingTabs: boolean;\n mergeAdjacent: boolean;\n showPin: boolean;\n}\n\ndeclare module \"@vue/runtime-dom\" {\n // eslint-disable-next-line @typescript-eslint/no-empty-interface\n interface CSSProperties extends Partial {}\n}\n\nconst defaultTheme: Theme = {\n variables: {\n \"--foreground\": \"#dfdfdf\",\n \"--background\": \"#0f0f0f\",\n \"--feature-foreground\": \"#0f0f0f\",\n \"--tooltip-background\": \"rgba(0, 0, 0, 0.75)\",\n \"--raised-background\": \"#0f0f0f\",\n \"--points\": \"#ffffff\",\n \"--locked\": \"#bf8f8f\",\n \"--highlighted\": \"#333\",\n \"--bought\": \"#77bf5f\",\n \"--danger\": \"rgb(220, 53, 69)\",\n \"--link\": \"#02f2f2\",\n \"--outline\": \"#dfdfdf\",\n \"--accent1\": \"#627a82\",\n \"--accent2\": \"#658262\",\n \"--accent3\": \"#7c6282\",\n\n \"--border-radius\": \"15px\",\n \"--modal-border\": \"solid 2px var(--color)\",\n \"--feature-margin\": \"0px\"\n },\n floatingTabs: true,\n mergeAdjacent: true,\n showPin: true\n};\n\nexport enum Themes {\n Classic = \"classic\",\n Paper = \"paper\",\n Nordic = \"nordic\",\n Aqua = \"aqua\"\n}\n\nexport default {\n classic: defaultTheme,\n paper: {\n ...defaultTheme,\n variables: {\n ...defaultTheme.variables,\n \"--background\": \"#2a323d\",\n \"--feature-foreground\": \"#000\",\n \"--raised-background\": \"#333c4a\",\n \"--locked\": \"#3a3e45\",\n \"--bought\": \"#5C8A58\",\n \"--outline\": \"#333c4a\",\n \"--border-radius\": \"4px\",\n \"--modal-border\": \"\",\n \"--feature-margin\": \"5px\"\n },\n floatingTabs: false\n } as Theme,\n // Based on https://www.nordtheme.com\n nordic: {\n ...defaultTheme,\n variables: {\n ...defaultTheme.variables,\n \"--foreground\": \"#D8DEE9\",\n \"--background\": \"#2E3440\",\n \"--feature-foreground\": \"#000\",\n \"--raised-background\": \"#3B4252\",\n \"--points\": \"#E5E9F0\",\n \"--locked\": \"#4c566a\",\n \"--highlighted\": \"#434c5e\",\n \"--bought\": \"#8FBCBB\",\n \"--danger\": \"#D08770\",\n \"--link\": \"#88C0D0\",\n \"--outline\": \"#3B4252\",\n \"--accent1\": \"#B48EAD\",\n \"--accent2\": \"#A3BE8C\",\n \"--accent3\": \"#EBCB8B\",\n \"--border-radius\": \"4px\",\n \"--modal-border\": \"solid 2px #3B4252\",\n \"--feature-margin\": \"5px\"\n },\n floatingTabs: false\n } as Theme,\n aqua: {\n ...defaultTheme,\n variables: {\n ...defaultTheme.variables,\n \"--foreground\": \"#bfdfff\",\n \"--background\": \"#001f3f\",\n \"--tooltip-background\": \"rgba(0, 15, 31, 0.75)\",\n \"--raised-background\": \"#001f3f\",\n \"--points\": \"#dfefff\",\n \"--locked\": \"#c4a7b3\",\n \"--outline\": \"#bfdfff\"\n }\n } as Theme\n} as Record;\n","import { DefaultValue } from \"game/persistence\";\nimport Decimal from \"util/bignum\";\nimport { DoNotCache, ProcessedComputable } from \"util/computed\";\nimport { CSSProperties, DefineComponent, isRef } from \"vue\";\n\nexport const Component = Symbol(\"Component\");\nexport const GatherProps = Symbol(\"GatherProps\");\n\nexport type JSXFunction = (() => JSX.Element) & { [DoNotCache]: true };\nexport type CoercableComponent = string | DefineComponent | JSXFunction;\nexport type StyleValue = string | CSSProperties | Array;\n\n// TODO if importing .vue components in .tsx can become type safe,\n// this type can probably be safely removed\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type GenericComponent = DefineComponent;\n\nexport type FeatureComponent = Omit<\n {\n [K in keyof T]: T[K] extends ProcessedComputable ? S : T[K];\n },\n typeof Component | typeof DefaultValue\n>;\n\nexport type Replace = S & Omit;\n\nexport type OptionsFunc> = () => T & ThisType & Partial;\n\nlet id = 0;\n// Get a unique ID to allow a feature to be found for creating branches\n// and any other uses requiring unique identifiers for each feature\n// IDs are gauranteed unique, but should not be saved as they are not\n// guaranteed to be persistent through updates and such\nexport function getUniqueID(prefix = \"feature-\"): string {\n return prefix + id++;\n}\n\nexport enum Visibility {\n Visible,\n Hidden,\n None\n}\n\nexport function jsx(func: () => JSX.Element | \"\"): JSXFunction {\n (func as Partial)[DoNotCache] = true;\n return func as JSXFunction;\n}\n\nexport function showIf(condition: boolean, otherwise = Visibility.None): Visibility {\n return condition ? Visibility.Visible : otherwise;\n}\n\nexport function setDefault(\n object: T,\n key: K,\n value: T[K]\n): asserts object is Exclude & Required> {\n if (object[key] === undefined && value != undefined) {\n object[key] = value;\n }\n}\n\nexport function findFeatures(obj: Record, type: symbol): unknown[] {\n const objects: unknown[] = [];\n const handleObject = (obj: Record) => {\n Object.keys(obj).forEach(key => {\n const value = obj[key];\n if (value && typeof value === \"object\") {\n if ((value as Record).type === type) {\n objects.push(value);\n } else if (!(value instanceof Decimal) && !isRef(value)) {\n handleObject(value as Record);\n }\n }\n });\n };\n handleObject(obj);\n return objects;\n}\n","import TooltipComponent from \"./Tooltip.vue\";\nimport {\n CoercableComponent,\n Component,\n GatherProps,\n Replace,\n setDefault,\n StyleValue\n} from \"features/feature\";\nimport {\n Computable,\n GetComputableType,\n GetComputableTypeWithDefault,\n processComputable,\n ProcessedComputable\n} from \"util/computed\";\nimport { VueFeature } from \"util/vue\";\nimport { nextTick, Ref, unref } from \"vue\";\nimport { persistent } from \"game/persistence\";\n\ndeclare module \"@vue/runtime-dom\" {\n interface CSSProperties {\n \"--xoffset\"?: string;\n \"--yoffset\"?: string;\n }\n}\n\nexport enum TooltipDirection {\n UP,\n LEFT,\n RIGHT,\n DOWN\n}\n\nexport interface TooltipOptions {\n pinnable?: boolean;\n display: Computable;\n classes?: Computable>;\n style?: Computable;\n direction?: Computable;\n xoffset?: Computable;\n yoffset?: Computable;\n}\n\nexport interface BaseTooltip {\n pinned?: Ref;\n}\n\nexport type Tooltip = Replace<\n T & BaseTooltip,\n {\n pinnable: T[\"pinnable\"] extends undefined ? false : T[\"pinnable\"];\n pinned: T[\"pinnable\"] extends true ? Ref : undefined;\n display: GetComputableType;\n classes: GetComputableType;\n style: GetComputableType;\n direction: GetComputableTypeWithDefault;\n xoffset: GetComputableType;\n yoffset: GetComputableType;\n }\n>;\n\nexport type GenericTooltip = Replace<\n Tooltip,\n {\n pinnable: boolean;\n pinned: Ref | undefined;\n direction: ProcessedComputable;\n }\n>;\n\nexport function addTooltip(\n element: VueFeature,\n options: T & ThisType> & Partial\n): Tooltip {\n processComputable(options as T, \"display\");\n processComputable(options as T, \"classes\");\n processComputable(options as T, \"style\");\n processComputable(options as T, \"direction\");\n setDefault(options, \"direction\", TooltipDirection.UP);\n processComputable(options as T, \"xoffset\");\n processComputable(options as T, \"yoffset\");\n\n nextTick(() => {\n if (options.pinnable) {\n if (\"pinned\" in element) {\n console.error(\n \"Cannot add pinnable tooltip to element that already has a property called 'pinned'\"\n );\n options.pinnable = false;\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (element as any).pinned = options.pinned = persistent(false);\n }\n }\n\n const elementComponent = element[Component];\n element[Component] = TooltipComponent;\n const elementGratherProps = element[GatherProps].bind(element);\n element[GatherProps] = function gatherTooltipProps(this: GenericTooltip) {\n const { display, classes, style, direction, xoffset, yoffset, pinned } = this;\n return {\n element: {\n [Component]: elementComponent,\n [GatherProps]: elementGratherProps\n },\n display,\n classes,\n style: unref(style),\n direction,\n xoffset,\n yoffset,\n pinned\n };\n }.bind(options as GenericTooltip);\n });\n\n return options as unknown as Tooltip;\n}\n","import projInfo from \"data/projInfo.json\";\nimport Decimal from \"util/bignum\";\nimport { createNanoEvents } from \"nanoevents\";\nimport { App, Ref, watch } from \"vue\";\nimport { GenericLayer } from \"./layers\";\nimport player from \"./player\";\nimport settings, { Settings } from \"./settings\";\nimport state from \"./state\";\n\nexport interface GlobalEvents {\n addLayer: (layer: GenericLayer, saveData: Record) => void;\n removeLayer: (layer: GenericLayer) => void;\n update: (diff: number, trueDiff: number) => void;\n loadSettings: (settings: Partial) => void;\n gameWon: VoidFunction;\n setupVue: (vue: App) => void;\n}\n\nexport const globalBus = createNanoEvents();\n\nlet intervalID: number | null = null;\n\n// Not imported immediately due to dependency cycles\n// This gets set during startGameLoop(), and will only be used in the update function\nlet hasWon: null | Ref = null;\n\nfunction update() {\n const now = Date.now();\n let diff = (now - player.time) / 1e3;\n player.time = now;\n const trueDiff = diff;\n\n state.lastTenTicks.push(trueDiff);\n if (state.lastTenTicks.length > 10) {\n state.lastTenTicks = state.lastTenTicks.slice(1);\n }\n\n // Stop here if the game is paused on the win screen\n if (hasWon?.value && !player.keepGoing) {\n return;\n }\n // Stop here if the player had a NaN value\n if (state.hasNaN) {\n return;\n }\n\n diff = Math.max(diff, 0);\n\n if (player.devSpeed === 0) {\n return;\n }\n\n // Add offline time if any\n if (player.offlineTime != undefined) {\n if (Decimal.gt(player.offlineTime, projInfo.offlineLimit * 3600)) {\n player.offlineTime = projInfo.offlineLimit * 3600;\n }\n if (Decimal.gt(player.offlineTime, 0) && player.devSpeed !== 0) {\n const offlineDiff = Math.max(player.offlineTime / 10, diff);\n player.offlineTime = player.offlineTime - offlineDiff;\n diff += offlineDiff;\n } else if (player.devSpeed === 0) {\n player.offlineTime += diff;\n }\n if (!player.offlineProd || Decimal.lt(player.offlineTime, 0)) {\n player.offlineTime = null;\n }\n }\n\n // Cap at max tick length\n diff = Math.min(diff, projInfo.maxTickLength);\n\n // Apply dev speed\n if (player.devSpeed != undefined) {\n diff *= player.devSpeed;\n }\n\n if (!Number.isFinite(diff)) {\n diff = 1e308;\n }\n\n // Update\n if (Decimal.eq(diff, 0)) {\n return;\n }\n\n player.timePlayed += diff;\n if (!Number.isFinite(player.timePlayed)) {\n player.timePlayed = 1e308;\n }\n globalBus.emit(\"update\", diff, trueDiff);\n\n if (settings.unthrottled) {\n requestAnimationFrame(update);\n if (intervalID != null) {\n clearInterval(intervalID);\n intervalID = null;\n }\n } else if (intervalID == null) {\n intervalID = setInterval(update, 50);\n }\n}\n\nexport async function startGameLoop() {\n hasWon = (await import(\"data/projEntry\")).hasWon;\n watch(hasWon, hasWon => {\n if (hasWon) {\n globalBus.emit(\"gameWon\");\n }\n });\n if (settings.unthrottled) {\n requestAnimationFrame(update);\n } else {\n intervalID = setInterval(update, 50);\n }\n}\n","import { globalBus } from \"game/events\";\nimport Decimal, { DecimalSource } from \"util/bignum\";\nimport { ProxyState } from \"util/proxies\";\nimport { isArray } from \"@vue/shared\";\nimport { isReactive, isRef, Ref, ref } from \"vue\";\nimport { addingLayers, GenericLayer, persistentRefs } from \"./layers\";\n\nexport const PersistentState = Symbol(\"PersistentState\");\nexport const DefaultValue = Symbol(\"DefaultValue\");\nexport const StackTrace = Symbol(\"StackTrace\");\nexport const Deleted = Symbol(\"Deleted\");\n\n// Note: This is a union of things that should be safely stringifiable without needing\n// special processes for knowing what to load them in as\n// - Decimals aren't allowed because we'd need to know to parse them back.\n// - DecimalSources are allowed because the string is a valid value for them\nexport type State =\n | string\n | number\n | boolean\n | DecimalSource\n | { [key: string]: State }\n | { [key: number]: State };\n\nexport type Persistent = Ref & {\n [PersistentState]: Ref;\n [DefaultValue]: T;\n [StackTrace]: string;\n [Deleted]: boolean;\n};\n\nfunction getStackTrace() {\n return (\n new Error().stack\n ?.split(\"\\n\")\n .slice(3, 5)\n .map(line => line.trim())\n .join(\"\\n\") || \"\"\n );\n}\n\nexport function persistent(defaultValue: T | Ref): Persistent {\n const persistent = (\n isRef(defaultValue) ? defaultValue : (ref(defaultValue) as unknown)\n ) as Persistent;\n\n persistent[PersistentState] = persistent;\n persistent[DefaultValue] = isRef(defaultValue) ? defaultValue.value : defaultValue;\n persistent[StackTrace] = getStackTrace();\n persistent[Deleted] = false;\n\n if (addingLayers.length === 0) {\n console.warn(\n \"Creating a persistent ref outside of a layer. This is not officially supported\",\n persistent,\n \"\\nCreated at:\\n\" + persistent[StackTrace]\n );\n } else {\n persistentRefs[addingLayers[addingLayers.length - 1]].add(persistent);\n }\n\n return persistent as Persistent;\n}\n\nexport function deletePersistent(persistent: Persistent) {\n if (addingLayers.length === 0) {\n console.warn(\"Deleting a persistent ref outside of a layer. Ignoring...\", persistent);\n } else {\n persistentRefs[addingLayers[addingLayers.length - 1]].delete(persistent);\n }\n persistent[Deleted] = true;\n}\n\nglobalBus.on(\"addLayer\", (layer: GenericLayer, saveData: Record) => {\n const features: { type: typeof Symbol }[] = [];\n const handleObject = (obj: Record, path: string[] = []): boolean => {\n let foundPersistent = false;\n Object.keys(obj).forEach(key => {\n const value = obj[key];\n if (value && typeof value === \"object\") {\n if (PersistentState in value) {\n foundPersistent = true;\n if ((value as Persistent)[Deleted]) {\n console.warn(\n \"Deleted persistent ref present in returned object. Ignoring...\",\n value,\n \"\\nCreated at:\\n\" + (value as Persistent)[StackTrace]\n );\n return;\n }\n persistentRefs[layer.id].delete(\n ProxyState in value\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ((value as any)[ProxyState] as Persistent)\n : (value as Persistent)\n );\n\n // Construct save path if it doesn't exist\n const persistentState = path.reduce>((acc, curr) => {\n if (!(curr in acc)) {\n acc[curr] = {};\n }\n return acc[curr] as Record;\n }, saveData);\n\n // Cache currently saved value\n const savedValue = persistentState[key];\n // Add ref to save data\n persistentState[key] = (value as Persistent)[PersistentState];\n // Load previously saved value\n if (isReactive(persistentState)) {\n if (savedValue != null) {\n persistentState[key] = savedValue;\n } else {\n persistentState[key] = (value as Persistent)[DefaultValue];\n }\n } else {\n if (savedValue != null) {\n (persistentState[key] as Ref).value = savedValue;\n } else {\n (persistentState[key] as Ref).value = (value as Persistent)[\n DefaultValue\n ];\n }\n }\n } else if (\n !(value instanceof Decimal) &&\n !isRef(value) &&\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n !features.includes(value as { type: typeof Symbol })\n ) {\n if (typeof (value as { type: typeof Symbol }).type === \"symbol\") {\n features.push(value as { type: typeof Symbol });\n }\n\n // Continue traversing\n const foundPersistentInChild = handleObject(value as Record, [\n ...path,\n key\n ]);\n\n // Show warning for persistent values inside arrays\n // TODO handle arrays better\n if (foundPersistentInChild) {\n if (isArray(value) && !isArray(obj)) {\n console.warn(\n \"Found array that contains persistent values when adding layer. Keep in mind changing the order of elements in the array will mess with existing player saves.\",\n ProxyState in obj\n ? (obj as Record)[ProxyState]\n : obj,\n key\n );\n } else {\n foundPersistent = true;\n }\n }\n }\n }\n });\n return foundPersistent;\n };\n handleObject(layer);\n persistentRefs[layer.id].forEach(persistent => {\n console.error(\n `Created persistent ref in ${layer.id} without registering it to the layer! Make sure to include everything persistent in the returned object`,\n persistent,\n \"\\nCreated at:\\n\" + persistent[StackTrace]\n );\n });\n persistentRefs[layer.id].clear();\n});\n","import Decimal from \"util/bignum\";\nimport { isPlainObject } from \"util/common\";\nimport { ProxiedWithState, ProxyPath, ProxyState } from \"util/proxies\";\nimport { reactive, unref } from \"vue\";\nimport transientState from \"./state\";\n\nexport interface PlayerData {\n id: string;\n devSpeed: number | null;\n name: string;\n tabs: Array;\n time: number;\n autosave: boolean;\n offlineProd: boolean;\n offlineTime: number | null;\n timePlayed: number;\n keepGoing: boolean;\n modID: string;\n modVersion: string;\n layers: Record>;\n}\n\nexport type Player = ProxiedWithState;\n\nconst state = reactive({\n id: \"\",\n devSpeed: null,\n name: \"\",\n tabs: [],\n time: -1,\n autosave: true,\n offlineProd: true,\n offlineTime: null,\n timePlayed: 0,\n keepGoing: false,\n modID: \"\",\n modVersion: \"\",\n layers: {}\n});\n\nexport function stringifySave(player: PlayerData): string {\n return JSON.stringify(player, (key, value) => unref(value));\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst playerHandler: ProxyHandler> = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(target: Record, key: PropertyKey): any {\n if (key === ProxyState || key === ProxyPath) {\n return target[key];\n }\n\n const value = target[ProxyState][key];\n if (key !== \"value\" && isPlainObject(value) && !(value instanceof Decimal)) {\n if (value !== target[key]?.[ProxyState]) {\n const path = [...target[ProxyPath], key];\n target[key] = new Proxy({ [ProxyState]: value, [ProxyPath]: path }, playerHandler);\n }\n return target[key];\n }\n\n return value;\n },\n set(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n target: Record,\n property: PropertyKey,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any,\n receiver: ProxyConstructor\n ): boolean {\n if (\n !transientState.hasNaN &&\n ((typeof value === \"number\" && isNaN(value)) ||\n (value instanceof Decimal &&\n (isNaN(value.sign) || isNaN(value.layer) || isNaN(value.mag))))\n ) {\n const currentValue = target[ProxyState][property];\n if (\n !(\n (typeof currentValue === \"number\" && isNaN(currentValue)) ||\n (currentValue instanceof Decimal &&\n (isNaN(currentValue.sign) ||\n isNaN(currentValue.layer) ||\n isNaN(currentValue.mag)))\n )\n ) {\n state.autosave = false;\n transientState.hasNaN = true;\n transientState.NaNPath = [...target[ProxyPath], property];\n transientState.NaNReceiver = receiver as unknown as Record;\n console.error(\n `Attempted to set NaN value`,\n [...target[ProxyPath], property],\n target[ProxyState]\n );\n throw \"Attempted to set NaN value. See above for details\";\n }\n }\n target[ProxyState][property] = value;\n return true;\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ownKeys(target: Record) {\n return Reflect.ownKeys(target[ProxyState]);\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n has(target: Record, key: string) {\n return Reflect.has(target[ProxyState], key);\n },\n getOwnPropertyDescriptor(target, key) {\n return Object.getOwnPropertyDescriptor(target[ProxyState], key);\n }\n};\nexport default window.player = new Proxy(\n { [ProxyState]: state, [ProxyPath]: [\"player\"] },\n playerHandler\n) as Player;\n","import projInfo from \"data/projInfo.json\";\nimport { Themes } from \"data/themes\";\nimport { CoercableComponent } from \"features/feature\";\nimport { globalBus } from \"game/events\";\nimport LZString from \"lz-string\";\nimport { hardReset } from \"util/save\";\nimport { reactive, watch } from \"vue\";\n\nexport interface Settings {\n active: string;\n saves: string[];\n showTPS: boolean;\n theme: Themes;\n unthrottled: boolean;\n}\n\nconst state = reactive>({\n active: \"\",\n saves: [],\n showTPS: true,\n theme: Themes.Nordic,\n unthrottled: false\n});\n\nwatch(\n state,\n state => {\n let stringifiedSettings = JSON.stringify(state);\n switch (projInfo.saveEncoding) {\n default:\n console.warn(`Unknown save encoding: ${projInfo.saveEncoding}. Defaulting to lz`);\n case \"lz\":\n stringifiedSettings = LZString.compressToUTF16(stringifiedSettings);\n break;\n case \"base64\":\n stringifiedSettings = btoa(unescape(encodeURIComponent(stringifiedSettings)));\n break;\n case \"plain\":\n break;\n }\n localStorage.setItem(projInfo.id, stringifiedSettings);\n },\n { deep: true }\n);\nexport default window.settings = state as Settings;\n\nexport function loadSettings(): void {\n try {\n let item: string | null = localStorage.getItem(projInfo.id);\n if (item != null && item !== \"\") {\n if (item[0] === \"{\") {\n // plaintext. No processing needed\n } else if (item[0] === \"e\") {\n // Assumed to be base64, which starts with e\n item = decodeURIComponent(escape(atob(item)));\n } else if (item[0] === \"ᯡ\") {\n // Assumed to be lz, which starts with ᯡ\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n item = LZString.decompressFromUTF16(item)!;\n } else {\n console.warn(\"Unable to determine settings encoding\", item);\n return;\n }\n const settings = JSON.parse(item);\n if (typeof settings === \"object\") {\n Object.assign(state, settings);\n }\n }\n globalBus.emit(\"loadSettings\", state);\n // eslint-disable-next-line no-empty\n } catch {}\n}\n\nexport const hardResetSettings = (window.hardResetSettings = () => {\n const settings = {\n active: \"\",\n saves: [],\n showTPS: true,\n theme: Themes.Nordic\n };\n globalBus.emit(\"loadSettings\", settings);\n Object.assign(state, settings);\n hardReset();\n});\n\nexport const settingFields: CoercableComponent[] = reactive([]);\nexport function registerSettingField(component: CoercableComponent) {\n settingFields.push(component);\n}\n\nexport const infoComponents: CoercableComponent[] = reactive([]);\nexport function registerInfoComponent(component: CoercableComponent) {\n infoComponents.push(component);\n}\n\nexport const gameComponents: CoercableComponent[] = reactive([]);\nexport function registerGameComponent(component: CoercableComponent) {\n gameComponents.push(component);\n}\n","import { shallowReactive } from \"vue\";\n\nexport interface Transient {\n lastTenTicks: number[];\n hasNaN: boolean;\n NaNPath?: string[];\n NaNReceiver?: Record;\n}\n\nexport default window.state = shallowReactive({\n lastTenTicks: [],\n hasNaN: false,\n NaNPath: []\n});\n","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveDynamicComponent as _resolveDynamicComponent, createBlock as _createBlock, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Context = _resolveComponent(\"Context\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"layer-container\",\n style: _normalizeStyle({ '--layer-color': _ctx.unref(_ctx.color) })\n }, [\n (_ctx.showGoBack)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"goBack\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.goBack && _ctx.goBack(...args)))\n }, \"←\"))\n : _createCommentVNode(\"\", true),\n (_ctx.minimized.value)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n class: \"layer-tab minimized\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.minimized.value = false))\n }, [\n _createElementVNode(\"div\", null, _toDisplayString(_ctx.unref(_ctx.name)), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 2,\n class: _normalizeClass([\"layer-tab\", [{ showGoBack: _ctx.showGoBack }, _ctx.unref(_ctx.classes)]]),\n style: _normalizeStyle(_ctx.unref(_ctx.style))\n }, [\n _createVNode(_component_Context, { ref: \"contextRef\" }, {\n default: _withCtx(() => [\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.component)))\n ]),\n _: 1\n }, 512)\n ], 6)),\n (_ctx.unref(_ctx.minimizable))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 3,\n class: \"minimize\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.minimized.value = true))\n }, \" ▼ \"))\n : _createCommentVNode(\"\", true)\n ], 4))\n}","\nimport projInfo from \"data/projInfo.json\";\nimport { CoercableComponent, StyleValue } from \"features/feature\";\nimport { FeatureNode } from \"game/layers\";\nimport { Persistent } from \"game/persistence\";\nimport player from \"game/player\";\nimport { computeComponent, processedPropType, wrapRef } from \"util/vue\";\nimport { computed, defineComponent, nextTick, PropType, Ref, ref, toRefs, unref, watch } from \"vue\";\nimport Context from \"./Context.vue\";\n\nexport default defineComponent({\n components: { Context },\n props: {\n index: {\n type: Number,\n required: true\n },\n tab: {\n type: Function as PropType<() => HTMLElement | undefined>,\n required: true\n },\n display: {\n type: processedPropType(Object, String, Function),\n required: true\n },\n minimized: {\n type: Object as PropType>,\n required: true\n },\n minWidth: {\n type: processedPropType(Number, String),\n required: true\n },\n name: {\n type: processedPropType(String),\n required: true\n },\n color: processedPropType(String),\n style: processedPropType(String, Object, Array),\n classes: processedPropType>(Object),\n minimizable: processedPropType(Boolean),\n nodes: {\n type: Object as PropType[>>,\n required: true\n }\n },\n setup(props) {\n const { display, index, minimized, minWidth, tab } = toRefs(props);\n\n const component = computeComponent(display);\n const showGoBack = computed(\n () => projInfo.allowGoBack && index.value > 0 && !minimized.value\n );\n\n function goBack() {\n player.tabs.splice(unref(props.index), Infinity);\n }\n\n nextTick(() => updateTab(minimized.value, unref(minWidth.value)));\n watch([minimized, wrapRef(minWidth)], ([minimized, minWidth]) =>\n updateTab(minimized, minWidth)\n );\n\n const contextRef = ref(null);\n watch(\n () => contextRef.value?.nodes,\n nodes => {\n if (nodes) {\n props.nodes.value = nodes;\n }\n }\n );\n\n function updateTab(minimized: boolean, minWidth: number | string) {\n const width =\n typeof minWidth === \"number\" || Number.isNaN(parseInt(minWidth))\n ? minWidth + \"px\"\n : minWidth;\n const tabValue = tab.value();\n if (tabValue != undefined) {\n if (minimized) {\n tabValue.style.flexGrow = \"0\";\n tabValue.style.flexShrink = \"0\";\n tabValue.style.width = \"60px\";\n tabValue.style.minWidth = tabValue.style.flexBasis = \"\";\n tabValue.style.margin = \"0\";\n } else {\n tabValue.style.flexGrow = \"\";\n tabValue.style.flexShrink = \"\";\n tabValue.style.width = \"\";\n tabValue.style.minWidth = tabValue.style.flexBasis = width;\n tabValue.style.margin = \"\";\n }\n }\n }\n\n return {\n component,\n showGoBack,\n contextRef,\n unref,\n goBack\n };\n }\n});\n","import { render } from \"./Layer.vue?vue&type=template&id=47e532a2&scoped=true&ts=true\"\nimport script from \"./Layer.vue?vue&type=script&lang=ts\"\nexport * from \"./Layer.vue?vue&type=script&lang=ts\"\n\nimport \"./Layer.vue?vue&type=style&index=0&id=47e532a2&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-47e532a2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5f8298e6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", null, \"Changelog\", -1))\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"details\", { open: \"\" }, [\n /*#__PURE__*/_createElementVNode(\"summary\", null, [\n /*#__PURE__*/_createTextVNode(\"v0.0 Initial Commit - \"),\n /*#__PURE__*/_createElementVNode(\"time\", null, \"2021-09-04\")\n ]),\n /*#__PURE__*/_createTextVNode(\" This is the first release :D \"),\n /*#__PURE__*/_createElementVNode(\"ul\", null, [\n /*#__PURE__*/_createElementVNode(\"li\", { class: \"feature\" }, \"Did everything\"),\n /*#__PURE__*/_createElementVNode(\"li\", { class: \"fix\" }, \"Had some fun\"),\n /*#__PURE__*/_createElementVNode(\"li\", { class: \"breaking\" }, \"Removed everything\"),\n /*#__PURE__*/_createElementVNode(\"li\", { class: \"balancing\" }, \"Created some bugs to fix later\")\n ])\n], -1))\n\nimport Modal from \"components/Modal.vue\";\nimport { ref } from \"vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props, { expose }) {\n\nconst isOpen = ref(false);\n\nexpose({\n open() {\n isOpen.value = true;\n }\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(Modal, {\n modelValue: isOpen.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((isOpen).value = $event))\n }, {\n header: _withCtx(() => [\n _hoisted_1\n ]),\n body: _withCtx(() => [\n _hoisted_2\n ]),\n _: 1\n }, 8, [\"modelValue\"]))\n}\n}\n\n})","import script from \"./Changelog.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Changelog.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Changelog.vue?vue&type=style&index=0&id=5f8298e6&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5f8298e6\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveDynamicComponent as _resolveDynamicComponent, createBlock as _createBlock, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3eb46986\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"info-modal-header\" }\nconst _hoisted_2 = [\"src\", \"alt\"]\nconst _hoisted_3 = { class: \"info-modal-title\" }\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = { key: 0 }\nconst _hoisted_6 = { key: 0 }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", null, \" Made in Profectus, by thepaperpilot with inspiration from Acameada and Jacorb \", -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_10 = [\"href\"]\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons info-modal-discord\" }, \"discord\", -1))\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", null, [\n /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://discord.gg/WzejVAx\",\n class: \"info-modal-discord-link\"\n }, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons info-modal-discord\" }, \"discord\"),\n /*#__PURE__*/_createTextVNode(\" The Paper Pilot Community \")\n ])\n], -1))\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", null, [\n /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://discord.gg/F3xveHV\",\n class: \"info-modal-discord-link\"\n }, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons info-modal-discord\" }, \"discord\"),\n /*#__PURE__*/_createTextVNode(\" The Modding Tree \")\n ])\n], -1))\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\n\nimport Modal from \"components/Modal.vue\";\nimport type Changelog from \"data/Changelog.vue\";\nimport projInfo from \"data/projInfo.json\";\nimport { jsx } from \"features/feature\";\nimport player from \"game/player\";\nimport { infoComponents } from \"game/settings\";\nimport { formatTime } from \"util/bignum\";\nimport { coerceComponent, render } from \"util/vue\";\nimport { computed, ref, toRefs, unref } from \"vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\n changelog: null\n },\n setup(__props: any, { expose }) {\n\nconst _props = __props as { changelog: typeof Changelog | null }\n\nconst { title, logo, author, discordName, discordLink, versionNumber, versionTitle } = projInfo;\n\n\nconst props = toRefs(_props);\n\nconst isOpen = ref(false);\n\nconst timePlayed = computed(() => formatTime(player.timePlayed));\n\nconst infoComponent = computed(() => {\n return coerceComponent(jsx(() => <>{infoComponents.map(render)}>));\n});\n\nexpose({\n open() {\n isOpen.value = true;\n }\n});\n\nfunction openChangelog() {\n unref(props.changelog)?.open();\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(Modal, {\n modelValue: isOpen.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((isOpen).value = $event))\n }, {\n header: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n (_unref(logo))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"info-modal-logo\",\n src: _unref(logo),\n alt: _unref(title)\n }, null, 8, _hoisted_2))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"h2\", null, _toDisplayString(_unref(title)), 1),\n _createElementVNode(\"h4\", null, [\n _createTextVNode(\" v\" + _toDisplayString(_unref(versionNumber)), 1),\n (_unref(versionTitle))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, \": \" + _toDisplayString(_unref(versionTitle)), 1))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ])\n ]),\n body: _withCtx(({ shown }) => [\n shown\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n (_unref(author))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, \"By \" + _toDisplayString(_unref(author)), 1))\n : _createCommentVNode(\"\", true),\n _hoisted_7,\n _hoisted_8,\n _createElementVNode(\"div\", {\n class: \"link\",\n onClick: openChangelog\n }, \"Changelog\"),\n _hoisted_9,\n _createElementVNode(\"div\", null, [\n (_unref(discordLink) !== 'https://discord.gg/WzejVAx')\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n href: _unref(discordLink),\n class: \"info-modal-discord-link\"\n }, [\n _hoisted_11,\n _createTextVNode(\" \" + _toDisplayString(_unref(discordName)), 1)\n ], 8, _hoisted_10))\n : _createCommentVNode(\"\", true)\n ]),\n _hoisted_12,\n _hoisted_13,\n _hoisted_14,\n _createElementVNode(\"div\", null, \"Time Played: \" + _toDisplayString(_unref(timePlayed)), 1),\n (_openBlock(), _createBlock(_resolveDynamicComponent(_unref(infoComponent))))\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"modelValue\"]))\n}\n}\n\n})","import script from \"./Info.vue?vue&type=script&setup=true&lang=tsx\"\nexport * from \"./Info.vue?vue&type=script&setup=true&lang=tsx\"\n\nimport \"./Info.vue?vue&type=style&index=0&id=3eb46986&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3eb46986\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, isRef as _isRef, createVNode as _createVNode, resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-85d7ae40\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"header\" }, [\n /*#__PURE__*/_createElementVNode(\"h2\", null, \"Options\")\n], -1))\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"hr\", null, null, -1))\n\nimport Modal from \"components/Modal.vue\";\nimport projInfo from \"data/projInfo.json\";\nimport rawThemes from \"data/themes\";\nimport { jsx } from \"features/feature\";\nimport player from \"game/player\";\nimport settings, { settingFields } from \"game/settings\";\nimport { camelToTitle } from \"util/common\";\nimport { coerceComponent, render } from \"util/vue\";\nimport { computed, ref, toRefs } from \"vue\";\nimport Select from \"./fields/Select.vue\";\nimport Toggle from \"./fields/Toggle.vue\";\nimport Tooltip from \"features/tooltips/Tooltip.vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props, { expose }) {\n\nconst isOpen = ref(false);\n\nexpose({\n open() {\n isOpen.value = true;\n }\n});\n\nconst themes = Object.keys(rawThemes).map(theme => ({\n label: camelToTitle(theme),\n value: theme\n}));\n\nconst settingFieldsComponent = computed(() => {\n return coerceComponent(jsx(() => <>{settingFields.map(render)}>));\n});\n\nconst { showTPS, theme, unthrottled } = toRefs(settings);\nconst { autosave, offlineProd } = toRefs(player);\nconst isPaused = computed({\n get() {\n return player.devSpeed === 0;\n },\n set(value: boolean) {\n player.devSpeed = value ? 0 : null;\n }\n});\n\nconst offlineProdTitle = jsx(() => (\n \n Offline Production*\n \n));\nconst autosaveTitle = jsx(() => (\n \n Autosave*\n \n));\nconst isPausedTitle = jsx(() => (\n \n Pause game*\n \n));\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(Modal, {\n modelValue: isOpen.value,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((isOpen).value = $event))\n }, {\n header: _withCtx(() => [\n _hoisted_1\n ]),\n body: _withCtx(() => [\n _createVNode(Select, {\n title: \"Theme\",\n options: _unref(themes),\n modelValue: _unref(theme),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => (_isRef(theme) ? (theme).value = $event : null))\n }, null, 8, [\"options\", \"modelValue\"]),\n (_openBlock(), _createBlock(_resolveDynamicComponent(_unref(settingFieldsComponent)))),\n _createVNode(Toggle, {\n title: \"Show TPS\",\n modelValue: _unref(showTPS),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (_isRef(showTPS) ? (showTPS).value = $event : null))\n }, null, 8, [\"modelValue\"]),\n _hoisted_2,\n _createVNode(Toggle, {\n title: \"Unthrottled\",\n modelValue: _unref(unthrottled),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => (_isRef(unthrottled) ? (unthrottled).value = $event : null))\n }, null, 8, [\"modelValue\"]),\n _createVNode(Toggle, {\n title: _unref(offlineProdTitle),\n modelValue: _unref(offlineProd),\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => (_isRef(offlineProd) ? (offlineProd).value = $event : null))\n }, null, 8, [\"title\", \"modelValue\"]),\n _createVNode(Toggle, {\n title: _unref(autosaveTitle),\n modelValue: _unref(autosave),\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => (_isRef(autosave) ? (autosave).value = $event : null))\n }, null, 8, [\"title\", \"modelValue\"]),\n (_unref(projInfo).enablePausing)\n ? (_openBlock(), _createBlock(Toggle, {\n key: 0,\n title: _unref(isPausedTitle),\n modelValue: _unref(isPaused),\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => (_isRef(isPaused) ? (isPaused).value = $event : null))\n }, null, 8, [\"title\", \"modelValue\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"modelValue\"]))\n}\n}\n\n})","import script from \"./Options.vue?vue&type=script&setup=true&lang=tsx\"\nexport * from \"./Options.vue?vue&type=script&setup=true&lang=tsx\"\n\nimport \"./Options.vue?vue&type=style&index=0&id=85d7ae40&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-85d7ae40\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderSlot as _renderSlot, withModifiers as _withModifiers, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-bf59fca4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = [\"onClick\", \"disabled\"]\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = [\"onClick\"]\n\nimport { ref, toRefs, unref, watch } from \"vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\n disabled: { type: Boolean },\n skipConfirm: { type: Boolean }\n },\n emits: [\"click\", \"confirmingChanged\"],\n setup(__props: any, { emit }: { emit: ({\n (e: \"click\"): void;\n (e: \"confirmingChanged\", value: boolean): void;\n}), expose: any, slots: any, attrs: any }) {\n\nconst _props = __props as {\n disabled?: boolean;\n skipConfirm?: boolean;\n}\n\n\nconst props = toRefs(_props);\n\n\nconst isConfirming = ref(false);\n\nwatch(isConfirming, isConfirming => {\n emit(\"confirmingChanged\", isConfirming);\n});\n\nfunction click() {\n if (unref(props.skipConfirm)) {\n emit(\"click\");\n return;\n }\n if (isConfirming.value) {\n emit(\"click\");\n }\n isConfirming.value = !isConfirming.value;\n}\n\nfunction cancel() {\n isConfirming.value = false;\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n class: _normalizeClass([\"container\", { confirming: isConfirming.value }])\n }, [\n (isConfirming.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_1, \"Are you sure?\"))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _withModifiers(click, [\"stop\"]),\n class: \"button danger\",\n disabled: __props.disabled\n }, [\n (isConfirming.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, \"Yes\"))\n : _renderSlot(_ctx.$slots, \"default\", { key: 1 })\n ], 8, _hoisted_2),\n (isConfirming.value)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n class: \"button\",\n onClick: _withModifiers(cancel, [\"stop\"])\n }, \"No\", 8, _hoisted_4))\n : _createCommentVNode(\"\", true)\n ], 2))\n}\n}\n\n})","import script from \"./DangerButton.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DangerButton.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./DangerButton.vue?vue&type=style&index=0&id=bf59fca4&scoped=true&lang=css\"\nimport \"./DangerButton.vue?vue&type=style&index=1&id=bf59fca4&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-bf59fca4\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, withModifiers as _withModifiers, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5bbcedd3\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"onClick\"]\n\nimport { nextTick, ref } from \"vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\n left: { type: Boolean }\n },\n emits: [\"click\"],\n setup(__props: any, { emit }: { emit: ({\n (e: \"click\"): void;\n}), expose: any, slots: any, attrs: any }) {\n\n\n\n\nconst activated = ref(false);\nconst activatedTimeout = ref(null);\n\nfunction click() {\n emit(\"click\");\n\n // Give feedback to user\n if (activatedTimeout.value) {\n clearTimeout(activatedTimeout.value);\n }\n activated.value = false;\n nextTick(() => {\n activated.value = true;\n activatedTimeout.value = setTimeout(() => (activated.value = false), 500);\n });\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"button\", {\n onClick: _withModifiers(click, [\"stop\"]),\n class: _normalizeClass([\"feedback\", { activated: activated.value, left: __props.left }])\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ], 10, _hoisted_1))\n}\n}\n\n})","import script from \"./FeedbackButton.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FeedbackButton.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FeedbackButton.vue?vue&type=style&index=0&id=5bbcedd3&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5bbcedd3\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6a0cf7ac\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"handle material-icons\" }, \"drag_handle\", -1))\nconst _hoisted_2 = {\n key: 0,\n class: \"actions\"\n}\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"content_paste\", -1))\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"content_copy\", -1))\nconst _hoisted_5 = [\n _hoisted_4\n]\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"edit\", -1))\nconst _hoisted_7 = [\n _hoisted_6\n]\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", {\n class: \"material-icons\",\n style: {\"margin\":\"-2px\"}\n}, \"delete\", -1))\nconst _hoisted_9 = {\n key: 1,\n class: \"actions\"\n}\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"check\", -1))\nconst _hoisted_11 = [\n _hoisted_10\n]\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"close\", -1))\nconst _hoisted_13 = [\n _hoisted_12\n]\nconst _hoisted_14 = {\n key: 2,\n class: \"details\"\n}\nconst _hoisted_15 = { class: \"save-version\" }\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_17 = { key: 0 }\nconst _hoisted_18 = {\n key: 3,\n class: \"details\"\n}\nconst _hoisted_19 = {\n key: 4,\n class: \"details error\"\n}\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\n\nimport player from \"game/player\";\nimport { computed, ref, toRefs, watch } from \"vue\";\nimport DangerButton from \"./fields/DangerButton.vue\";\nimport FeedbackButton from \"./fields/FeedbackButton.vue\";\nimport Text from \"./fields/Text.vue\";\nimport { LoadablePlayerData } from \"./SavesManager.vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\n save: null\n },\n emits: [\"export\", \"open\", \"duplicate\", \"delete\", \"editName\"],\n setup(__props: any, { emit }: { emit: ({\n (e: \"export\"): void;\n (e: \"open\"): void;\n (e: \"duplicate\"): void;\n (e: \"delete\"): void;\n (e: \"editName\", name: string): void;\n}), expose: any, slots: any, attrs: any }) {\n\nconst _props = __props as {\n save: LoadablePlayerData;\n}\n\n\nconst { save } = toRefs(_props);\n\n\nconst dateFormat = new Intl.DateTimeFormat(\"en-US\", {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n second: \"numeric\"\n});\n\nconst isEditing = ref(false);\nconst isConfirming = ref(false);\nconst newName = ref(\"\");\n\nwatch(isEditing, () => (newName.value = save.value.name || \"\"));\n\nconst isActive = computed(() => save.value && save.value.id === player.id);\nconst currentTime = computed(() =>\n isActive.value ? player.time : (save.value && save.value.time) || 0\n);\n\nfunction changeName() {\n emit(\"editName\", newName.value);\n isEditing.value = false;\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"save\", { active: _unref(isActive) }])\n }, [\n _hoisted_1,\n (!isEditing.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_unref(save).error == undefined && !isConfirming.value)\n ? (_openBlock(), _createBlock(FeedbackButton, {\n key: 0,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('export'))),\n class: \"button\",\n left: \"\"\n }, {\n default: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_unref(save).error == undefined && !isConfirming.value)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n onClick: _cache[1] || (_cache[1] = ($event: any) => (emit('duplicate'))),\n class: \"button\"\n }, _hoisted_5))\n : _createCommentVNode(\"\", true),\n (_unref(save).error == undefined && !isConfirming.value)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 2,\n onClick: _cache[2] || (_cache[2] = ($event: any) => (isEditing.value = !isEditing.value)),\n class: \"button\"\n }, _hoisted_7))\n : _createCommentVNode(\"\", true),\n _createVNode(DangerButton, {\n disabled: _unref(isActive),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (emit('delete'))),\n onConfirmingChanged: _cache[4] || (_cache[4] = value => (isConfirming.value = value))\n }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createElementVNode(\"button\", {\n onClick: changeName,\n class: \"button\"\n }, _hoisted_11),\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (isEditing.value = !isEditing.value)),\n class: \"button\"\n }, _hoisted_13)\n ])),\n (_unref(save).error == undefined && !isEditing.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n _createElementVNode(\"button\", {\n class: \"button open\",\n onClick: _cache[6] || (_cache[6] = ($event: any) => (emit('open')))\n }, [\n _createElementVNode(\"h3\", null, _toDisplayString(_unref(save).name), 1)\n ]),\n _createElementVNode(\"span\", _hoisted_15, \"v\" + _toDisplayString(_unref(save).modVersion), 1),\n _hoisted_16,\n (_unref(currentTime))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, \"Last played \" + _toDisplayString(_unref(dateFormat).format(_unref(currentTime))), 1))\n : _createCommentVNode(\"\", true)\n ]))\n : (_unref(save).error == undefined && isEditing.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_18, [\n _createVNode(Text, {\n modelValue: newName.value,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((newName).value = $event)),\n class: \"editname\",\n onSubmit: changeName\n }, null, 8, [\"modelValue\"])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_19, [\n _createTextVNode(\" Error: Failed to load save with id \" + _toDisplayString(_unref(save).id), 1),\n _hoisted_20,\n _createTextVNode(_toDisplayString(_unref(save).error), 1)\n ]))\n ], 2))\n}\n}\n\n})","import script from \"./Save.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Save.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Save.vue?vue&type=style&index=0&id=6a0cf7ac&scoped=true&lang=css\"\nimport \"./Save.vue?vue&type=style&index=1&id=6a0cf7ac&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6a0cf7ac\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-458d7fce\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", null, \"Saves Manager\", -1))\nconst _hoisted_2 = { class: \"modal-footer\" }\nconst _hoisted_3 = { class: \"field\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"field-title\" }, \"Create Save\", -1))\nconst _hoisted_5 = { class: \"field-buttons\" }\nconst _hoisted_6 = { class: \"footer\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { style: {\"flex-grow\":\"1\"} }, null, -1))\n\nimport projInfo from \"data/projInfo.json\";\nimport Modal from \"components/Modal.vue\";\nimport player, { PlayerData } from \"game/player\";\nimport settings from \"game/settings\";\nimport { getUniqueID, loadSave, save, newSave } from \"util/save\";\nimport { ComponentPublicInstance, computed, nextTick, ref, shallowReactive, watch } from \"vue\";\nimport Select from \"./fields/Select.vue\";\nimport Text from \"./fields/Text.vue\";\nimport Save from \"./Save.vue\";\nimport Draggable from \"vuedraggable\";\nimport LZString from \"lz-string\";\n\nexport type LoadablePlayerData = Omit, \"id\"> & { id: string; error?: unknown };\n\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props, { expose }) {\n\nconst isOpen = ref(false);\nconst modal = ref | null>(null);\n\nexpose({\n open() {\n isOpen.value = true;\n }\n});\n\nconst importingFailed = ref(false);\nconst saveToImport = ref(\"\");\n\nwatch(saveToImport, importedSave => {\n if (importedSave) {\n nextTick(() => {\n try {\n if (importedSave[0] === \"{\") {\n // plaintext. No processing needed\n } else if (importedSave[0] === \"e\") {\n // Assumed to be base64, which starts with e\n importedSave = decodeURIComponent(escape(atob(importedSave)));\n } else if (importedSave[0] === \"ᯡ\") {\n // Assumed to be lz, which starts with ᯡ\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n importedSave = LZString.decompressFromUTF16(importedSave)!;\n } else {\n console.warn(\"Unable to determine preset encoding\", importedSave);\n importingFailed.value = true;\n return;\n }\n const playerData = JSON.parse(importedSave);\n if (typeof playerData !== \"object\") {\n importingFailed.value = true;\n return;\n }\n const id = getUniqueID();\n playerData.id = id;\n save(playerData);\n saveToImport.value = \"\";\n importingFailed.value = false;\n\n settings.saves.push(id);\n } catch (e) {\n importingFailed.value = true;\n }\n });\n } else {\n importingFailed.value = false;\n }\n});\n\nlet bankContext = require.context(\"raw-loader!../../saves\", true, /\\.txt$/);\nlet bank = ref(\n bankContext.keys().reduce((acc: Array<{ label: string; value: string }>, curr) => {\n // .slice(2, -4) strips the leading ./ and the trailing .txt\n acc.push({\n label: curr.slice(2, -4),\n value: bankContext(curr).default\n });\n return acc;\n }, [])\n);\n\nconst cachedSaves = shallowReactive>({});\nfunction getCachedSave(id: string) {\n if (cachedSaves[id] == null) {\n let save = localStorage.getItem(id);\n if (save == null) {\n cachedSaves[id] = { error: `Save doesn't exist in localStorage`, id };\n } else if (save === \"dW5kZWZpbmVk\") {\n cachedSaves[id] = { error: `Save is undefined`, id };\n } else {\n try {\n if (save[0] === \"{\") {\n // plaintext. No processing needed\n } else if (save[0] === \"e\") {\n // Assumed to be base64, which starts with e\n save = decodeURIComponent(escape(atob(save)));\n } else if (save[0] === \"ᯡ\") {\n // Assumed to be lz, which starts with ᯡ\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n save = LZString.decompressFromUTF16(save)!;\n } else {\n console.warn(\"Unable to determine preset encoding\", save);\n importingFailed.value = true;\n cachedSaves[id] = { error: \"Unable to determine preset encoding\", id };\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return cachedSaves[id]!;\n }\n cachedSaves[id] = { ...JSON.parse(save), id };\n } catch (error) {\n cachedSaves[id] = { error, id };\n console.warn(\n `SavesManager: Failed to load info about save with id ${id}:\\n${error}\\n${save}`\n );\n }\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return cachedSaves[id]!;\n}\n// Wipe cache whenever the modal is opened\nwatch(isOpen, isOpen => {\n if (isOpen) {\n Object.keys(cachedSaves).forEach(key => delete cachedSaves[key]);\n }\n});\n\nconst saves = computed(() =>\n settings.saves.reduce((acc: Record, curr: string) => {\n acc[curr] = getCachedSave(curr);\n return acc;\n }, {})\n);\n\nfunction exportSave(id: string) {\n let saveToExport;\n if (player.id === id) {\n saveToExport = save();\n } else {\n saveToExport = JSON.stringify(saves.value[id]);\n switch (projInfo.saveEncoding) {\n default:\n console.warn(`Unknown save encoding: ${projInfo.saveEncoding}. Defaulting to lz`);\n case \"lz\":\n saveToExport = LZString.compressToUTF16(saveToExport);\n break;\n case \"base64\":\n saveToExport = btoa(unescape(encodeURIComponent(saveToExport)));\n break;\n case \"plain\":\n break;\n }\n }\n\n // Put on clipboard. Using the clipboard API asks for permissions and stuff\n const el = document.createElement(\"textarea\");\n el.value = saveToExport;\n document.body.appendChild(el);\n el.select();\n el.setSelectionRange(0, 99999);\n document.execCommand(\"copy\");\n document.body.removeChild(el);\n}\n\nfunction duplicateSave(id: string) {\n if (player.id === id) {\n save();\n }\n\n const playerData = { ...saves.value[id], id: getUniqueID() };\n save(playerData as PlayerData);\n\n settings.saves.push(playerData.id);\n}\n\nfunction deleteSave(id: string) {\n settings.saves = settings.saves.filter((save: string) => save !== id);\n localStorage.removeItem(id);\n cachedSaves[id] = undefined;\n}\n\nfunction openSave(id: string) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n saves.value[player.id]!.time = player.time;\n save();\n cachedSaves[player.id] = undefined;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n loadSave(saves.value[id]!);\n // Delete cached version in case of opening it again\n cachedSaves[id] = undefined;\n}\n\nfunction newFromPreset(preset: string) {\n if (preset[0] === \"{\") {\n // plaintext. No processing needed\n } else if (preset[0] === \"e\") {\n // Assumed to be base64, which starts with e\n preset = decodeURIComponent(escape(atob(preset)));\n } else if (preset[0] === \"ᯡ\") {\n // Assumed to be lz, which starts with ᯡ\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n preset = LZString.decompressFromUTF16(preset)!;\n } else {\n console.warn(\"Unable to determine preset encoding\", preset);\n return;\n }\n const playerData = JSON.parse(preset);\n playerData.id = getUniqueID();\n save(playerData as PlayerData);\n\n settings.saves.push(playerData.id);\n}\n\nfunction editSave(id: string, newName: string) {\n const currSave = saves.value[id];\n if (currSave) {\n currSave.name = newName;\n if (player.id === id) {\n player.name = newName;\n save();\n } else {\n save(currSave as PlayerData);\n cachedSaves[id] = undefined;\n }\n }\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(Modal, {\n modelValue: isOpen.value,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((isOpen).value = $event)),\n ref_key: \"modal\",\n ref: modal\n }, {\n header: _withCtx(() => [\n _hoisted_1\n ]),\n body: _withCtx(({ shown }) => [\n shown\n ? (_openBlock(), _createBlock(_unref(Draggable), {\n key: 0,\n list: _unref(settings).saves,\n handle: \".handle\",\n itemKey: (save) => save\n }, {\n item: _withCtx(({ element }) => [\n _createVNode(Save, {\n save: _unref(saves)[element],\n onOpen: ($event: any) => (openSave(element)),\n onExport: ($event: any) => (exportSave(element)),\n onEditName: name => editSave(element, name),\n onDuplicate: ($event: any) => (duplicateSave(element)),\n onDelete: ($event: any) => (deleteSave(element))\n }, null, 8, [\"save\", \"onOpen\", \"onExport\", \"onEditName\", \"onDuplicate\", \"onDelete\"])\n ]),\n _: 1\n }, 8, [\"list\", \"itemKey\"]))\n : _createCommentVNode(\"\", true)\n ]),\n footer: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(Text, {\n modelValue: saveToImport.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((saveToImport).value = $event)),\n title: \"Import Save\",\n placeholder: \"Paste your save here!\",\n class: _normalizeClass({ importingFailed: importingFailed.value })\n }, null, 8, [\"modelValue\", \"class\"]),\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", {\n class: \"button\",\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_unref(newSave) && _unref(newSave)(...args)))\n }, \"New Game\"),\n (Object.keys(_unref(bank)).length > 0)\n ? (_openBlock(), _createBlock(Select, {\n key: 0,\n options: _unref(bank),\n modelValue: undefined,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = preset => newFromPreset(preset as string)),\n closeOnSelect: \"\",\n placeholder: \"Select preset\",\n class: \"presets\"\n }, null, 8, [\"options\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _hoisted_7,\n _createElementVNode(\"button\", {\n class: \"button modal-default-button\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (isOpen.value = false))\n }, \" Close \")\n ])\n ])\n ]),\n _: 1\n }, 8, [\"modelValue\"]))\n}\n}\n\n})","import script from \"./SavesManager.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SavesManager.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./SavesManager.vue?vue&type=style&index=0&id=458d7fce&scoped=true&lang=css\"\nimport \"./SavesManager.vue?vue&type=style&index=1&id=458d7fce&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-458d7fce\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, withCtx as _withCtx, createVNode as _createVNode, mergeProps as _mergeProps, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-71847eca\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"src\", \"alt\"]\nconst _hoisted_2 = {\n key: 1,\n class: \"title\"\n}\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { style: {\"flex-grow\":\"1\",\"cursor\":\"unset\"} }, null, -1))\nconst _hoisted_4 = { class: \"discord\" }\nconst _hoisted_5 = { class: \"discord-links\" }\nconst _hoisted_6 = { key: 0 }\nconst _hoisted_7 = [\"href\"]\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"li\", null, [\n /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://discord.gg/WzejVAx\",\n target: \"_blank\"\n }, \"The Paper Pilot Community\")\n], -1))\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"li\", null, [\n /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://discord.gg/F3xveHV\",\n target: \"_blank\"\n }, \"The Modding Tree\")\n], -1))\nconst _hoisted_10 = {\n href: \"https://forums.moddingtree.com/\",\n target: \"_blank\"\n}\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"forum\", -1))\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"info\", -1))\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"library_books\", -1))\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"settings\", -1))\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"library_books\", -1))\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"settings\", -1))\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"info\", -1))\nconst _hoisted_18 = {\n href: \"https://forums.moddingtree.com/\",\n target: \"_blank\"\n}\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons\" }, \"forum\", -1))\nconst _hoisted_20 = { class: \"discord\" }\nconst _hoisted_21 = { class: \"discord-links\" }\nconst _hoisted_22 = { key: 0 }\nconst _hoisted_23 = [\"href\"]\nconst _hoisted_24 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"li\", null, [\n /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://discord.gg/WzejVAx\",\n target: \"_blank\"\n }, \"The Paper Pilot Community\")\n], -1))\nconst _hoisted_25 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"li\", null, [\n /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://discord.gg/F3xveHV\",\n target: \"_blank\"\n }, \"The Modding Tree\")\n], -1))\n\nimport Changelog from \"data/Changelog.vue\";\nimport projInfo from \"data/projInfo.json\";\nimport { ComponentPublicInstance, ref } from \"vue\";\nimport Info from \"./Info.vue\";\nimport Options from \"./Options.vue\";\nimport SavesManager from \"./SavesManager.vue\";\nimport Tooltip from \"features/tooltips/Tooltip.vue\";\nimport { TooltipDirection } from \"features/tooltips/tooltip\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\nconst info = ref | null>(null);\nconst savesManager = ref | null>(null);\nconst options = ref | null>(null);\n// For some reason Info won't accept the changelog unless I do this:\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst changelog = ref | null>(null);\n\nconst { useHeader, banner, title, discordName, discordLink, versionNumber } = projInfo;\n\nfunction openDiscord() {\n window.open(discordLink, \"mywindow\");\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_unref(useHeader))\n ? (_openBlock(), _createElementBlock(\"div\", _mergeProps({\n key: 0,\n class: \"nav\"\n }, _ctx.$attrs), [\n (_unref(banner))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: _unref(banner),\n class: \"banner\",\n alt: _unref(title)\n }, null, 8, _hoisted_1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_unref(title)), 1)),\n _createElementVNode(\"div\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (changelog.value?.open())),\n class: \"version-container\"\n }, [\n _createVNode(Tooltip, {\n display: \"Changelog\",\n direction: _unref(TooltipDirection).DOWN,\n class: \"version\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, \"v\" + _toDisplayString(_unref(versionNumber)), 1)\n ]),\n _: 1\n }, 8, [\"direction\"])\n ]),\n _hoisted_3,\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", {\n onClick: openDiscord,\n class: \"material-icons\"\n }, \"discord\"),\n _createElementVNode(\"ul\", _hoisted_5, [\n (_unref(discordLink) !== 'https://discord.gg/WzejVAx')\n ? (_openBlock(), _createElementBlock(\"li\", _hoisted_6, [\n _createElementVNode(\"a\", {\n href: _unref(discordLink),\n target: \"_blank\"\n }, _toDisplayString(_unref(discordName)), 9, _hoisted_7)\n ]))\n : _createCommentVNode(\"\", true),\n _hoisted_8,\n _hoisted_9\n ])\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"a\", _hoisted_10, [\n _createVNode(Tooltip, {\n display: \"Forums\",\n direction: _unref(TooltipDirection).DOWN,\n yoffset: \"5px\"\n }, {\n default: _withCtx(() => [\n _hoisted_11\n ]),\n _: 1\n }, 8, [\"direction\"])\n ])\n ]),\n _createElementVNode(\"div\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (info.value?.open()))\n }, [\n _createVNode(Tooltip, {\n display: \"Info\",\n direction: _unref(TooltipDirection).DOWN,\n class: \"info\"\n }, {\n default: _withCtx(() => [\n _hoisted_12\n ]),\n _: 1\n }, 8, [\"direction\"])\n ]),\n _createElementVNode(\"div\", {\n onClick: _cache[2] || (_cache[2] = ($event: any) => (savesManager.value?.open()))\n }, [\n _createVNode(Tooltip, {\n display: \"Saves\",\n direction: _unref(TooltipDirection).DOWN,\n xoffset: \"-20px\"\n }, {\n default: _withCtx(() => [\n _hoisted_13\n ]),\n _: 1\n }, 8, [\"direction\"])\n ]),\n _createElementVNode(\"div\", {\n onClick: _cache[3] || (_cache[3] = ($event: any) => (options.value?.open()))\n }, [\n _createVNode(Tooltip, {\n display: \"Options\",\n direction: _unref(TooltipDirection).DOWN,\n xoffset: \"-66px\"\n }, {\n default: _withCtx(() => [\n _hoisted_14\n ]),\n _: 1\n }, 8, [\"direction\"])\n ])\n ], 16))\n : (_openBlock(), _createElementBlock(\"div\", _mergeProps({\n key: 1,\n class: \"overlay-nav\"\n }, _ctx.$attrs), [\n _createElementVNode(\"div\", {\n onClick: _cache[4] || (_cache[4] = ($event: any) => (changelog.value?.open())),\n class: \"version-container\"\n }, [\n _createVNode(Tooltip, {\n display: \"Changelog\",\n direction: _unref(TooltipDirection).RIGHT,\n xoffset: \"25%\",\n class: \"version\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, \"v\" + _toDisplayString(_unref(versionNumber)), 1)\n ]),\n _: 1\n }, 8, [\"direction\"])\n ]),\n _createElementVNode(\"div\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (savesManager.value?.open()))\n }, [\n _createVNode(Tooltip, {\n display: \"Saves\",\n direction: _unref(TooltipDirection).RIGHT\n }, {\n default: _withCtx(() => [\n _hoisted_15\n ]),\n _: 1\n }, 8, [\"direction\"])\n ]),\n _createElementVNode(\"div\", {\n onClick: _cache[6] || (_cache[6] = ($event: any) => (options.value?.open()))\n }, [\n _createVNode(Tooltip, {\n display: \"Options\",\n direction: _unref(TooltipDirection).RIGHT\n }, {\n default: _withCtx(() => [\n _hoisted_16\n ]),\n _: 1\n }, 8, [\"direction\"])\n ]),\n _createElementVNode(\"div\", {\n onClick: _cache[7] || (_cache[7] = ($event: any) => (info.value?.open()))\n }, [\n _createVNode(Tooltip, {\n display: \"Info\",\n direction: _unref(TooltipDirection).RIGHT\n }, {\n default: _withCtx(() => [\n _hoisted_17\n ]),\n _: 1\n }, 8, [\"direction\"])\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"a\", _hoisted_18, [\n _createVNode(Tooltip, {\n display: \"Forums\",\n direction: _unref(TooltipDirection).RIGHT,\n xoffset: \"7px\"\n }, {\n default: _withCtx(() => [\n _hoisted_19\n ]),\n _: 1\n }, 8, [\"direction\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"span\", {\n onClick: openDiscord,\n class: \"material-icons\"\n }, \"discord\"),\n _createElementVNode(\"ul\", _hoisted_21, [\n (_unref(discordLink) !== 'https://discord.gg/WzejVAx')\n ? (_openBlock(), _createElementBlock(\"li\", _hoisted_22, [\n _createElementVNode(\"a\", {\n href: _unref(discordLink),\n target: \"_blank\"\n }, _toDisplayString(_unref(discordName)), 9, _hoisted_23)\n ]))\n : _createCommentVNode(\"\", true),\n _hoisted_24,\n _hoisted_25\n ])\n ])\n ], 16)),\n _createVNode(Info, {\n ref_key: \"info\",\n ref: info,\n changelog: changelog.value\n }, null, 8, [\"changelog\"]),\n _createVNode(SavesManager, {\n ref_key: \"savesManager\",\n ref: savesManager\n }, null, 512),\n _createVNode(Options, {\n ref_key: \"options\",\n ref: options\n }, null, 512),\n _createVNode(Changelog, {\n ref_key: \"changelog\",\n ref: changelog\n }, null, 512)\n ], 64))\n}\n}\n\n})","import script from \"./Nav.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Nav.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Nav.vue?vue&type=style&index=0&id=71847eca&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-71847eca\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, mergeProps as _mergeProps, resolveDynamicComponent as _resolveDynamicComponent, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-eda60da0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"inner-tab\" }\n\nimport projInfo from \"data/projInfo.json\";\nimport { GenericLayer, layers } from \"game/layers\";\nimport player from \"game/player\";\nimport { computed, toRef } from \"vue\";\nimport Layer from \"./Layer.vue\";\nimport Nav from \"./Nav.vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\nconst tabs = toRef(player, \"tabs\");\nconst layerKeys = computed(() => Object.keys(layers));\nconst useHeader = projInfo.useHeader;\n\nfunction gatherLayerProps(layer: GenericLayer) {\n const { display, minimized, minWidth, name, color, style, classes, minimizable, nodes } = layer;\n return { display, minimized, minWidth, name, color, style, classes, minimizable, nodes };\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"tabs-container\", { useHeader: _unref(useHeader) }])\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(tabs), (tab, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: index,\n class: \"tab\",\n ref_for: true,\n ref: `tab-${index}`\n }, [\n (index === 0 && !_unref(useHeader))\n ? (_openBlock(), _createBlock(Nav, { key: 0 }))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_1, [\n (_unref(layerKeys).includes(tab))\n ? (_openBlock(), _createBlock(Layer, _mergeProps({ key: 0 }, gatherLayerProps(_unref(layers)[tab]!), {\n index: index,\n tab: () => ((_ctx.$refs[`tab-${index}`] as HTMLElement[] | undefined)?.[0])\n }), null, 16, [\"index\", \"tab\"]))\n : (_openBlock(), _createBlock(_resolveDynamicComponent(tab), {\n key: 1,\n index: index\n }, null, 8, [\"index\"]))\n ])\n ]))\n }), 128))\n ], 2))\n}\n}\n\n})","import script from \"./Game.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Game.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Game.vue?vue&type=style&index=0&id=eda60da0&scoped=true&lang=css\"\nimport \"./Game.vue?vue&type=style&index=1&id=eda60da0&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-eda60da0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, isRef as _isRef, createVNode as _createVNode, withCtx as _withCtx, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-06188cc8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"game-over-modal-header\" }\nconst _hoisted_2 = [\"src\", \"alt\"]\nconst _hoisted_3 = { class: \"game-over-modal-title\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", null, \"Congratulations!\", -1))\nconst _hoisted_5 = { key: 0 }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", null, \" Please check the Discord to discuss the game or to check for new content updates! \", -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_9 = [\"href\"]\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons game-over-modal-discord\" }, \"discord\", -1))\n\nimport Modal from \"components/Modal.vue\";\nimport { hasWon } from \"data/projEntry\";\nimport projInfo from \"data/projInfo.json\";\nimport player from \"game/player\";\nimport { formatTime } from \"util/bignum\";\nimport { loadSave, newSave } from \"util/save\";\nimport { computed, toRef } from \"vue\";\nimport Toggle from \"./fields/Toggle.vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\nconst { title, logo, discordName, discordLink, versionNumber, versionTitle } = projInfo;\n\nconst timePlayed = computed(() => formatTime(player.timePlayed));\nconst isOpen = computed(() => hasWon.value && !player.keepGoing);\nconst autosave = toRef(player, \"autosave\");\n\nfunction keepGoing() {\n player.keepGoing = true;\n}\n\nfunction playAgain() {\n loadSave(newSave());\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(Modal, { \"model-value\": _unref(isOpen) }, {\n header: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n (_unref(logo))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"game-over-modal-logo\",\n src: _unref(logo),\n alt: _unref(title)\n }, null, 8, _hoisted_2))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createElementVNode(\"h4\", null, \"You've beaten \" + _toDisplayString(_unref(title)) + \" v\" + _toDisplayString(_unref(versionNumber)) + \": \" + _toDisplayString(_unref(versionTitle)), 1)\n ])\n ])\n ]),\n body: _withCtx(({ shown }) => [\n shown\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", null, \"It took you \" + _toDisplayString(_unref(timePlayed)) + \" to beat the game.\", 1),\n _hoisted_6,\n _hoisted_7,\n _hoisted_8,\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"a\", {\n href: _unref(discordLink),\n class: \"game-over-modal-discord-link\"\n }, [\n _hoisted_10,\n _createTextVNode(\" \" + _toDisplayString(_unref(discordName)), 1)\n ], 8, _hoisted_9)\n ]),\n _createVNode(Toggle, {\n title: \"Autosave\",\n modelValue: _unref(autosave),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => (_isRef(autosave) ? (autosave).value = $event : null))\n }, null, 8, [\"modelValue\"])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n footer: _withCtx(() => [\n _createElementVNode(\"div\", { class: \"game-over-footer\" }, [\n _createElementVNode(\"button\", {\n onClick: keepGoing,\n class: \"button\"\n }, \"Keep Going\"),\n _createElementVNode(\"button\", {\n onClick: playAgain,\n class: \"button danger\"\n }, \"Play Again\")\n ])\n ]),\n _: 1\n }, 8, [\"model-value\"]))\n}\n}\n\n})","import script from \"./GameOverScreen.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./GameOverScreen.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./GameOverScreen.vue?vue&type=style&index=0&id=06188cc8&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-06188cc8\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, isRef as _isRef, createVNode as _createVNode, createBlock as _createBlock, mergeProps as _mergeProps, withCtx as _withCtx, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5935214c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"nan-modal-header\" }, [\n /*#__PURE__*/_createElementVNode(\"h2\", null, \"NaN value detected!\")\n], -1))\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_4 = [\"href\"]\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"material-icons nan-modal-discord\" }, \"discord\", -1))\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_7 = { class: \"nan-footer\" }\n\nimport Modal from \"components/Modal.vue\";\nimport projInfo from \"data/projInfo.json\";\nimport player from \"game/player\";\nimport state from \"game/state\";\nimport Decimal, { DecimalSource, format } from \"util/bignum\";\nimport { ComponentPublicInstance, computed, ref, toRef } from \"vue\";\nimport Toggle from \"./fields/Toggle.vue\";\nimport SavesManager from \"./SavesManager.vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\nconst { discordName, discordLink } = projInfo;\nconst autosave = toRef(player, \"autosave\");\nconst hasNaN = toRef(state, \"hasNaN\");\nconst savesManager = ref | null>(null);\n\nconst path = computed(() => state.NaNPath?.join(\".\"));\nconst property = computed(() => state.NaNPath?.slice(-1)[0]);\nconst previous = computed(() => {\n if (state.NaNReceiver && property.value) {\n return state.NaNReceiver[property.value] as DecimalSource;\n }\n return null;\n});\nconst isPaused = computed({\n get() {\n return player.devSpeed === 0;\n },\n set(value: boolean) {\n player.devSpeed = value ? null : 0;\n }\n});\n\nfunction setZero() {\n if (state.NaNReceiver && property.value) {\n state.NaNReceiver[property.value] = new Decimal(0);\n state.hasNaN = false;\n }\n}\n\nfunction setOne() {\n if (state.NaNReceiver && property.value) {\n state.NaNReceiver[property.value] = new Decimal(1);\n state.hasNaN = false;\n }\n}\n\nfunction ignore() {\n if (state.NaNReceiver && property.value) {\n state.NaNReceiver[property.value] = new Decimal(NaN);\n state.hasNaN = false;\n }\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(Modal, _mergeProps({\n modelValue: _unref(hasNaN),\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => (_isRef(hasNaN) ? (hasNaN).value = $event : null))\n }, _ctx.$attrs), {\n header: _withCtx(() => [\n _hoisted_1\n ]),\n body: _withCtx(() => [\n _createElementVNode(\"div\", null, [\n _createTextVNode(\" Attempted to assign \\\"\" + _toDisplayString(_unref(path)) + \"\\\" to NaN\", 1),\n (_unref(previous))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, _toDisplayString(\" \") + \"(previously \" + _toDisplayString(_unref(format)(_unref(previous))) + \")\", 1))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\". Auto-saving has been \" + _toDisplayString(_unref(autosave) ? \"enabled\" : \"disabled\") + \". Check the console for more details, and consider sharing it with the developers on discord. \", 1)\n ]),\n _hoisted_3,\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"a\", {\n href: _unref(discordLink),\n class: \"nan-modal-discord-link\"\n }, [\n _hoisted_5,\n _createTextVNode(\" \" + _toDisplayString(_unref(discordName)), 1)\n ], 8, _hoisted_4)\n ]),\n _hoisted_6,\n _createVNode(Toggle, {\n title: \"Autosave\",\n modelValue: _unref(autosave),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => (_isRef(autosave) ? (autosave).value = $event : null))\n }, null, 8, [\"modelValue\"]),\n (_unref(projInfo).enablePausing)\n ? (_openBlock(), _createBlock(Toggle, {\n key: 0,\n title: \"Pause game\",\n modelValue: _unref(isPaused),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (_isRef(isPaused) ? (isPaused).value = $event : null))\n }, null, 8, [\"modelValue\"]))\n : _createCommentVNode(\"\", true)\n ]),\n footer: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n onClick: _cache[2] || (_cache[2] = ($event: any) => (savesManager.value?.open())),\n class: \"button\"\n }, \"Open Saves Manager\"),\n _createElementVNode(\"button\", {\n onClick: setZero,\n class: \"button\"\n }, \"Set to 0\"),\n _createElementVNode(\"button\", {\n onClick: setOne,\n class: \"button\"\n }, \"Set to 1\"),\n (_unref(previous) && _unref(Decimal).neq(_unref(previous), 0) && _unref(Decimal).neq(_unref(previous), 1))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[3] || (_cache[3] = ($event: any) => (hasNaN.value = false)),\n class: \"button\"\n }, \" Set to previous \"))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: ignore,\n class: \"button danger\"\n }, \"Ignore\")\n ])\n ]),\n _: 1\n }, 16, [\"modelValue\"]),\n _createVNode(SavesManager, {\n ref_key: \"savesManager\",\n ref: savesManager\n }, null, 512)\n ], 64))\n}\n}\n\n})","import script from \"./NaNScreen.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NaNScreen.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./NaNScreen.vue?vue&type=style&index=0&id=5935214c&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5935214c\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, Transition as _Transition, withCtx as _withCtx, createVNode as _createVNode, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-c0663118\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"tpsDisplay\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"low\"\n}\n\nimport state from \"game/state\";\nimport Decimal, { DecimalSource, formatWhole } from \"util/bignum\";\nimport { computed, ref, watchEffect } from \"vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\nconst tps = computed(() =>\n Decimal.div(\n state.lastTenTicks.length,\n state.lastTenTicks.reduce((acc, curr) => acc + curr, 0)\n )\n);\n\nconst lastTenFPS = ref([]);\nwatchEffect(() => {\n lastTenFPS.value.push(Math.round(tps.value.toNumber()));\n if (lastTenFPS.value.length > 10) {\n lastTenFPS.value = lastTenFPS.value.slice(1);\n }\n});\n\nconst low = computed(() =>\n lastTenFPS.value.reduce((acc, curr) => Decimal.max(acc, curr), 0)\n);\n\nconst showLow = computed(() => Decimal.sub(tps.value, low.value).gt(1));\n\nreturn (_ctx: any,_cache: any) => {\n return (!_unref(tps).isNan())\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createTextVNode(\" TPS: \" + _toDisplayString(_unref(formatWhole)(_unref(tps))) + \" \", 1),\n _createVNode(_Transition, { name: \"fade\" }, {\n default: _withCtx(() => [\n (_unref(showLow))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, _toDisplayString(_unref(formatWhole)(_unref(low))), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./TPS.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TPS.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./TPS.vue?vue&type=style&index=0&id=c0663118&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-c0663118\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, resolveDynamicComponent as _resolveDynamicComponent, normalizeClass as _normalizeClass, Fragment as _Fragment, createElementBlock as _createElementBlock } from \"vue\"\n\nimport { jsx } from \"features/feature\";\nimport { coerceComponent, render } from \"util/vue\";\nimport { computed, toRef, unref } from \"vue\";\nimport Game from \"./components/Game.vue\";\nimport GameOverScreen from \"./components/GameOverScreen.vue\";\nimport NaNScreen from \"./components/NaNScreen.vue\";\nimport Nav from \"./components/Nav.vue\";\nimport TPS from \"./components/TPS.vue\";\nimport projInfo from \"./data/projInfo.json\";\nimport themes from \"./data/themes\";\nimport settings, { gameComponents } from \"./game/settings\";\nimport \"./main.css\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\nconst useHeader = projInfo.useHeader;\nconst theme = computed(() => themes[settings.theme].variables);\nconst showTPS = toRef(settings, \"showTPS\");\n\nconst gameComponent = computed(() => {\n return coerceComponent(jsx(() => <>{gameComponents.map(render)}>));\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", {\n id: \"modal-root\",\n style: _normalizeStyle(_unref(theme))\n }, null, 4),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"app\", { useHeader: _unref(useHeader) }]),\n style: _normalizeStyle(_unref(theme))\n }, [\n (_unref(useHeader))\n ? (_openBlock(), _createBlock(Nav, { key: 0 }))\n : _createCommentVNode(\"\", true),\n _createVNode(Game),\n (unref(_unref(showTPS)))\n ? (_openBlock(), _createBlock(TPS, { key: 1 }))\n : _createCommentVNode(\"\", true),\n _createVNode(GameOverScreen),\n _createVNode(NaNScreen),\n (_openBlock(), _createBlock(_resolveDynamicComponent(_unref(gameComponent))))\n ], 6)\n ], 64))\n}\n}\n\n})","import script from \"./App.vue?vue&type=script&setup=true&lang=tsx\"\nexport * from \"./App.vue?vue&type=script&setup=true&lang=tsx\"\n\nimport \"./App.vue?vue&type=style&index=0&id=f13f28b6&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f13f28b6\"]])\n\nexport default __exports__","import { App as VueApp, createApp } from \"vue\";\nimport App from \"./App.vue\";\nimport projInfo from \"./data/projInfo.json\";\nimport { GenericLayer } from \"./game/layers\";\nimport { PlayerData } from \"./game/player\";\nimport { Settings } from \"./game/settings\";\nimport { Transient } from \"./game/state\";\nimport Decimal, { DecimalSource } from \"./util/bignum\";\nimport { load } from \"./util/save\";\n\ndocument.title = projInfo.title;\nif (projInfo.id === \"\") {\n throw \"Project ID is empty! Please select a unique ID for this project in /src/data/projInfo.json\";\n}\n\ndeclare global {\n interface Window {\n vue: VueApp;\n save: VoidFunction;\n hardReset: VoidFunction;\n hardResetSettings: VoidFunction;\n layers: Record | undefined>;\n player: PlayerData;\n state: Transient;\n settings: Settings;\n Decimal: typeof Decimal;\n exponentialFormat: (num: DecimalSource, precision: number, mantissa: boolean) => string;\n commaFormat: (num: DecimalSource, precision: number) => string;\n regularFormat: (num: DecimalSource, precision: number) => string;\n format: (num: DecimalSource, precision?: number, small?: boolean) => string;\n formatWhole: (num: DecimalSource) => string;\n formatTime: (s: number) => string;\n toPlaces: (x: DecimalSource, precision: number, maxAccepted: DecimalSource) => string;\n formatSmall: (x: DecimalSource, precision?: number) => string;\n invertOOM: (x: DecimalSource) => Decimal;\n projInfo: typeof projInfo;\n }\n}\n\nrequestAnimationFrame(async () => {\n console.log(\n \"%cMade in Profectus%c\\nLearn more at www.moddingtree.com\",\n \"font-weight: bold; font-size: 24px; color: #A3BE8C; background: #2E3440; padding: 4px 8px; border-radius: 8px;\",\n \"padding: 4px;\"\n );\n await load();\n const { globalBus, startGameLoop } = await require(\"./game/events\");\n\n // Create Vue\n const vue = (window.vue = createApp(App));\n globalBus.emit(\"setupVue\", vue);\n vue.mount(\"#app\");\n\n startGameLoop();\n});\n\nwindow.projInfo = projInfo;\n","/* eslint-disable @typescript-eslint/no-this-alias */\nexport type CompareResult = -1 | 0 | 1;\n\nconst MAX_SIGNIFICANT_DIGITS = 17; //Maximum number of digits of precision to assume in Number\n\nconst EXP_LIMIT = 9e15; //If we're ABOVE this value, increase a layer. (9e15 is close to the largest integer that can fit in a Number.)\n\nconst LAYER_DOWN: number = Math.log10(9e15);\n\nconst FIRST_NEG_LAYER = 1 / 9e15; //At layer 0, smaller non-zero numbers than this become layer 1 numbers with negative mag. After that the pattern continues as normal.\n\nconst NUMBER_EXP_MAX = 308; //The largest exponent that can appear in a Number, though not all mantissas are valid here.\n\nconst NUMBER_EXP_MIN = -324; //The smallest exponent that can appear in a Number, though not all mantissas are valid here.\n\nconst MAX_ES_IN_A_ROW = 5; //For default toString behaviour, when to swap from eee... to (e^n) syntax.\n\nconst IGNORE_COMMAS = true;\nconst COMMAS_ARE_DECIMAL_POINTS = false;\n\nconst powerOf10 = (function() {\n // We need this lookup table because Math.pow(10, exponent)\n // when exponent's absolute value is large is slightly inaccurate.\n // You can fix it with the power of math... or just make a lookup table.\n // Faster AND simpler\n const powersOf10: number[] = [];\n\n for (let i = NUMBER_EXP_MIN + 1; i <= NUMBER_EXP_MAX; i++) {\n powersOf10.push(Number(\"1e\" + i));\n }\n\n const indexOf0InPowersOf10 = 323;\n return function(power: number) {\n return powersOf10[power + indexOf0InPowersOf10];\n };\n})();\n\n//tetration/slog to real height stuff\n//background info and tables of values for critical functions taken here: https://github.com/Patashu/break_eternity.js/issues/22\nconst critical_headers = [2, Math.E, 3, 4, 5, 6, 7, 8, 9, 10];\nconst critical_tetr_values = [\n [\n // Base 2\n 1,\n 1.0891168053867777,\n 1.1789745164521264,\n 1.2701428397304229,\n 1.3632066654400328,\n 1.4587804913784246,\n 1.557523817412741,\n 1.660158301473385,\n 1.767487542936873,\n 1.8804205225512542,\n 2\n ],\n [\n // Base E\n 1, //0.0\n 1.1121114330934, //0.1\n 1.23103892493161, //0.2\n 1.35838369631113, //0.3\n 1.49605193039935, //0.4\n 1.64635423375119, //0.5\n 1.81213853570186, //0.6\n 1.99697132461829, //0.7\n 2.20538955455724, //0.8\n 2.44325744833852, //0.9\n Math.E //1.0\n ],\n [\n // Base 3\n 1,\n 1.1187738849693603,\n 1.2464963939368214,\n 1.38527004705667,\n 1.5376664685821402,\n 1.7068895236551784,\n 1.897001227148399,\n 2.1132403089001035,\n 2.362480153784171,\n 2.6539010333870774,\n 3\n ],\n [\n // Base 4\n 1,\n 1.1367350847096405,\n 1.2889510672956703,\n 1.4606478703324786,\n 1.6570295196661111,\n 1.8850062585672889,\n 2.1539465047453485,\n 2.476829779693097,\n 2.872061932789197,\n 3.3664204535587183,\n 4\n ],\n [\n // Base 5\n 1,\n 1.1494592900767588,\n 1.319708228183931,\n 1.5166291280087583,\n 1.748171114438024,\n 2.0253263297298045,\n 2.3636668498288547,\n 2.7858359149579424,\n 3.3257226212448145,\n 4.035730287722532,\n 5\n ],\n [\n // Base 6\n 1,\n 1.159225940787673,\n 1.343712473580932,\n 1.5611293155111927,\n 1.8221199554561318,\n 2.14183924486326,\n 2.542468319282638,\n 3.0574682501653316,\n 3.7390572020926873,\n 4.6719550537360774,\n 6\n ],\n [\n // Base 7\n 1,\n 1.1670905356972596,\n 1.3632807444991446,\n 1.5979222279405536,\n 1.8842640123816674,\n 2.2416069644878687,\n 2.69893426559423,\n 3.3012632110403577,\n 4.121250340630164,\n 5.281493033448316,\n 7\n ],\n [\n // Base 8\n 1,\n 1.1736630594087796,\n 1.379783782386201,\n 1.6292821855668218,\n 1.9378971836180754,\n 2.3289975651071977,\n 2.8384347394720835,\n 3.5232708454565906,\n 4.478242031114584,\n 5.868592169644505,\n 8\n ],\n [\n // Base 9\n 1,\n 1.1793017514670474,\n 1.394054150657457,\n 1.65664127441059,\n 1.985170999970283,\n 2.4069682290577457,\n 2.9647310119960752,\n 3.7278665320924946,\n 4.814462547283592,\n 6.436522247411611,\n 9\n ],\n [\n // Base 10\n 1,\n 1.18422737399915,\n 1.4066113788546144,\n 1.680911177655277,\n 2.027492094355525,\n 2.4775152854601967,\n 3.080455730250329,\n 3.918234505962507,\n 5.1332705696484595,\n 6.9878696918072905,\n 10\n ]\n];\nconst critical_slog_values = [\n [\n // Base 2\n -1,\n -0.9194161097107025,\n -0.8335625019330468,\n -0.7425599821143978,\n -0.6466611521029437,\n -0.5462617907227869,\n -0.4419033816638769,\n -0.3342645487554494,\n -0.224140440909962,\n -0.11241087890006762,\n 0\n ],\n [\n // Base E\n -1, //0.0\n -0.90603157029014, //0.1\n -0.80786507256596, //0.2\n -0.7064666939634, //0.3\n -0.60294836853664, //0.4\n -0.49849837513117, //0.5\n -0.39430303318768, //0.6\n -0.29147201034755, //0.7\n -0.19097820800866, //0.8\n -0.09361896280296, //0.9\n 0 //1.0\n ],\n [\n // Base 3\n -1,\n -0.9021579584316141,\n -0.8005762598234203,\n -0.6964780623319391,\n -0.5911906810998454,\n -0.486050182576545,\n -0.3823089430815083,\n -0.28106046722897615,\n -0.1831906535795894,\n -0.08935809204418144,\n 0\n ],\n [\n // Base 4\n -1,\n -0.8917227442365535,\n -0.781258746326964,\n -0.6705130326902455,\n -0.5612813129406509,\n -0.4551067709033134,\n -0.35319256652135966,\n -0.2563741554088552,\n -0.1651412821106526,\n -0.0796919581982668,\n 0\n ],\n [\n // Base 5\n -1,\n -0.8843387974366064,\n -0.7678744063886243,\n -0.6529563724510552,\n -0.5415870994657841,\n -0.4352842206588936,\n -0.33504449124791424,\n -0.24138853420685147,\n -0.15445285440944467,\n -0.07409659641336663,\n 0\n ],\n [\n // Base 6\n -1,\n -0.8786709358426346,\n -0.7577735191184886,\n -0.6399546189952064,\n -0.527284921869926,\n -0.4211627631006314,\n -0.3223479611761232,\n -0.23107655627789858,\n -0.1472057700818259,\n -0.07035171210706326,\n 0\n ],\n [\n // Base 7\n -1,\n -0.8740862815291583,\n -0.7497032990976209,\n -0.6297119746181752,\n -0.5161838335958787,\n -0.41036238255751956,\n -0.31277212146489963,\n -0.2233976621705518,\n -0.1418697367979619,\n -0.06762117662323441,\n 0\n ],\n [\n // Base 8\n -1,\n -0.8702632331800649,\n -0.7430366914122081,\n -0.6213373075161548,\n -0.5072025698095242,\n -0.40171437727184167,\n -0.30517930701410456,\n -0.21736343968190863,\n -0.137710238299109,\n -0.06550774483471955,\n 0\n ],\n [\n // Base 9\n -1,\n -0.8670016295947213,\n -0.7373984232432306,\n -0.6143173985094293,\n -0.49973884395492807,\n -0.394584953527678,\n -0.2989649949848695,\n -0.21245647317021688,\n -0.13434688362382652,\n -0.0638072667348083,\n 0\n ],\n [\n // Base 10\n -1,\n -0.8641642839543857,\n -0.732534623168535,\n -0.6083127477059322,\n -0.4934049257184696,\n -0.3885773075899922,\n -0.29376029055315767,\n -0.2083678561173622,\n -0.13155653399373268,\n -0.062401588652553186,\n 0\n ]\n];\n\nconst D = function D(value: DecimalSource): Decimal {\n return Decimal.fromValue_noAlloc(value);\n};\n\nconst FC = function(sign: number, layer: number, mag: number) {\n return Decimal.fromComponents(sign, layer, mag);\n};\n\nconst FC_NN = function FC_NN(sign: number, layer: number, mag: number) {\n return Decimal.fromComponents_noNormalize(sign, layer, mag);\n};\n\nconst ME = function ME(mantissa: number, exponent: number) {\n return Decimal.fromMantissaExponent(mantissa, exponent);\n};\n\nconst ME_NN = function ME_NN(mantissa: number, exponent: number) {\n return Decimal.fromMantissaExponent_noNormalize(mantissa, exponent);\n};\n\nconst decimalPlaces = function decimalPlaces(value: number, places: number): number {\n const len = places + 1;\n const numDigits = Math.ceil(Math.log10(Math.abs(value)));\n const rounded =\n Math.round(value * Math.pow(10, len - numDigits)) * Math.pow(10, numDigits - len);\n return parseFloat(rounded.toFixed(Math.max(len - numDigits, 0)));\n};\n\nconst f_maglog10 = function(n: number) {\n return Math.sign(n) * Math.log10(Math.abs(n));\n};\n\n//from HyperCalc source code\nconst f_gamma = function(n: number) {\n if (!isFinite(n)) {\n return n;\n }\n if (n < -50) {\n if (n === Math.trunc(n)) {\n return Number.NEGATIVE_INFINITY;\n }\n return 0;\n }\n\n let scal1 = 1;\n while (n < 10) {\n scal1 = scal1 * n;\n ++n;\n }\n\n n -= 1;\n let l = 0.9189385332046727; //0.5*Math.log(2*Math.PI)\n l = l + (n + 0.5) * Math.log(n);\n l = l - n;\n const n2 = n * n;\n let np = n;\n l = l + 1 / (12 * np);\n np = np * n2;\n l = l + 1 / (360 * np);\n np = np * n2;\n l = l + 1 / (1260 * np);\n np = np * n2;\n l = l + 1 / (1680 * np);\n np = np * n2;\n l = l + 1 / (1188 * np);\n np = np * n2;\n l = l + 691 / (360360 * np);\n np = np * n2;\n l = l + 7 / (1092 * np);\n np = np * n2;\n l = l + 3617 / (122400 * np);\n\n return Math.exp(l) / scal1;\n};\n\nconst _twopi = 6.2831853071795864769252842; // 2*pi\nconst _EXPN1 = 0.36787944117144232159553; // exp(-1)\nconst OMEGA = 0.56714329040978387299997; // W(1, 0)\n//from https://math.stackexchange.com/a/465183\n// The evaluation can become inaccurate very close to the branch point\nconst f_lambertw = function(z: number, tol = 1e-10): number {\n let w;\n let wn;\n\n if (!Number.isFinite(z)) {\n return z;\n }\n if (z === 0) {\n return z;\n }\n if (z === 1) {\n return OMEGA;\n }\n\n if (z < 10) {\n w = 0;\n } else {\n w = Math.log(z) - Math.log(Math.log(z));\n }\n\n for (let i = 0; i < 100; ++i) {\n wn = (z * Math.exp(-w) + w * w) / (w + 1);\n if (Math.abs(wn - w) < tol * Math.abs(wn)) {\n return wn;\n } else {\n w = wn;\n }\n }\n\n throw Error(`Iteration failed to converge: ${z.toString()}`);\n //return Number.NaN;\n};\n\n//from https://github.com/scipy/scipy/blob/8dba340293fe20e62e173bdf2c10ae208286692f/scipy/special/lambertw.pxd\n// The evaluation can become inaccurate very close to the branch point\n// at ``-1/e``. In some corner cases, `lambertw` might currently\n// fail to converge, or can end up on the wrong branch.\nfunction d_lambertw(z: Decimal, tol = 1e-10): Decimal {\n let w;\n let ew, wew, wewz, wn;\n\n if (!Number.isFinite(z.mag)) {\n return z;\n }\n if (z === Decimal.dZero) {\n return z;\n }\n if (z === Decimal.dOne) {\n //Split out this case because the asymptotic series blows up\n return D(OMEGA);\n }\n\n const absz = Decimal.abs(z);\n //Get an initial guess for Halley's method\n w = Decimal.ln(z);\n\n //Halley's method; see 5.9 in [1]\n\n for (let i = 0; i < 100; ++i) {\n ew = Decimal.exp(-w);\n wewz = w.sub(z.mul(ew));\n wn = w.sub(\n wewz.div(\n w.add(1).sub(\n w\n .add(2)\n .mul(wewz)\n .div(Decimal.mul(2, w).add(2))\n )\n )\n );\n if (Decimal.abs(wn.sub(w)).lt(Decimal.abs(wn).mul(tol))) {\n return wn;\n } else {\n w = wn;\n }\n }\n\n throw Error(`Iteration failed to converge: ${z.toString()}`);\n //return Decimal.dNaN;\n}\n\nexport type DecimalSource = Decimal | number | string;\n\n/**\n * The Decimal's value is simply mantissa * 10^exponent.\n */\nexport default class Decimal {\n public static readonly dZero = FC_NN(0, 0, 0);\n public static readonly dOne = FC_NN(1, 0, 1);\n public static readonly dNegOne = FC_NN(-1, 0, 1);\n public static readonly dTwo = FC_NN(1, 0, 2);\n public static readonly dTen = FC_NN(1, 0, 10);\n public static readonly dNaN = FC_NN(Number.NaN, Number.NaN, Number.NaN);\n public static readonly dInf = FC_NN(1, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY);\n public static readonly dNegInf = FC_NN(-1, Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY);\n public static readonly dNumberMax = FC(1, 0, Number.MAX_VALUE);\n public static readonly dNumberMin = FC(1, 0, Number.MIN_VALUE);\n\n public sign: number = Number.NaN;\n public mag: number = Number.NaN;\n public layer: number = Number.NaN;\n\n constructor(value?: DecimalSource) {\n if (value instanceof Decimal || (value != null && typeof value === \"object\" && \"sign\" in value && \"mag\" in value && \"layer\" in value)) {\n this.fromDecimal(value);\n } else if (typeof value === \"number\") {\n this.fromNumber(value);\n } else if (typeof value === \"string\") {\n this.fromString(value);\n } else {\n this.sign = 0;\n this.layer = 0;\n this.mag = 0;\n }\n }\n\n get m(): number {\n if (this.sign === 0) {\n return 0;\n } else if (this.layer === 0) {\n const exp = Math.floor(Math.log10(this.mag));\n //handle special case 5e-324\n let man;\n if (this.mag === 5e-324) {\n man = 5;\n } else {\n man = this.mag / powerOf10(exp);\n }\n return this.sign * man;\n } else if (this.layer === 1) {\n const residue = this.mag - Math.floor(this.mag);\n return this.sign * Math.pow(10, residue);\n } else {\n //mantissa stops being relevant past 1e9e15 / ee15.954\n return this.sign;\n }\n }\n\n set m(value: number) {\n if (this.layer <= 2) {\n this.fromMantissaExponent(value, this.e);\n } else {\n //don't even pretend mantissa is meaningful\n this.sign = Math.sign(value);\n if (this.sign === 0) {\n this.layer === 0;\n this.exponent === 0;\n }\n }\n }\n\n get e(): number {\n if (this.sign === 0) {\n return 0;\n } else if (this.layer === 0) {\n return Math.floor(Math.log10(this.mag));\n } else if (this.layer === 1) {\n return Math.floor(this.mag);\n } else if (this.layer === 2) {\n return Math.floor(Math.sign(this.mag) * Math.pow(10, Math.abs(this.mag)));\n } else {\n return this.mag * Number.POSITIVE_INFINITY;\n }\n }\n set e(value: number) {\n this.fromMantissaExponent(this.m, value);\n }\n\n get s(): number {\n return this.sign;\n }\n set s(value: number) {\n if (value === 0) {\n this.sign = 0;\n this.layer = 0;\n this.mag = 0;\n } else {\n this.sign = value;\n }\n }\n\n // Object.defineProperty(Decimal.prototype, \"mantissa\", {\n get mantissa(): number {\n return this.m;\n }\n\n set mantissa(value: number) {\n this.m = value;\n }\n\n get exponent(): number {\n return this.e;\n }\n set exponent(value: number) {\n this.e = value;\n }\n\n public static fromComponents(sign: number, layer: number, mag: number): Decimal {\n return new Decimal().fromComponents(sign, layer, mag);\n }\n\n public static fromComponents_noNormalize(sign: number, layer: number, mag: number): Decimal {\n return new Decimal().fromComponents_noNormalize(sign, layer, mag);\n }\n\n public static fromMantissaExponent(mantissa: number, exponent: number): Decimal {\n return new Decimal().fromMantissaExponent(mantissa, exponent);\n }\n\n public static fromMantissaExponent_noNormalize(mantissa: number, exponent: number): Decimal {\n return new Decimal().fromMantissaExponent_noNormalize(mantissa, exponent);\n }\n\n public static fromDecimal(value: Decimal): Decimal {\n return new Decimal().fromDecimal(value);\n }\n\n public static fromNumber(value: number): Decimal {\n return new Decimal().fromNumber(value);\n }\n\n public static fromString(value: string): Decimal {\n return new Decimal().fromString(value);\n }\n\n public static fromValue(value: DecimalSource): Decimal {\n return new Decimal().fromValue(value);\n }\n\n public static fromValue_noAlloc(value: DecimalSource): Decimal {\n return value instanceof Decimal ? value : new Decimal(value);\n }\n\n public static abs(value: DecimalSource): Decimal {\n return D(value).abs();\n }\n\n public static neg(value: DecimalSource): Decimal {\n return D(value).neg();\n }\n\n public static negate(value: DecimalSource): Decimal {\n return D(value).neg();\n }\n\n public static negated(value: DecimalSource): Decimal {\n return D(value).neg();\n }\n\n public static sign(value: DecimalSource): number {\n return D(value).sign;\n }\n\n public static sgn(value: DecimalSource): number {\n return D(value).sign;\n }\n\n public static round(value: DecimalSource): Decimal {\n return D(value).round();\n }\n\n public static floor(value: DecimalSource): Decimal {\n return D(value).floor();\n }\n\n public static ceil(value: DecimalSource): Decimal {\n return D(value).ceil();\n }\n\n public static trunc(value: DecimalSource): Decimal {\n return D(value).trunc();\n }\n\n public static add(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).add(other);\n }\n\n public static plus(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).add(other);\n }\n\n public static sub(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).sub(other);\n }\n\n public static subtract(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).sub(other);\n }\n\n public static minus(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).sub(other);\n }\n\n public static mul(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).mul(other);\n }\n\n public static multiply(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).mul(other);\n }\n\n public static times(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).mul(other);\n }\n\n public static div(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).div(other);\n }\n\n public static divide(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).div(other);\n }\n\n public static recip(value: DecimalSource): Decimal {\n return D(value).recip();\n }\n\n public static reciprocal(value: DecimalSource): Decimal {\n return D(value).recip();\n }\n\n public static reciprocate(value: DecimalSource): Decimal {\n return D(value).reciprocate();\n }\n\n public static cmp(value: DecimalSource, other: DecimalSource): CompareResult {\n return D(value).cmp(other);\n }\n\n public static cmpabs(value: DecimalSource, other: DecimalSource): CompareResult {\n return D(value).cmpabs(other);\n }\n\n public static compare(value: DecimalSource, other: DecimalSource): CompareResult {\n return D(value).cmp(other);\n }\n\n public static isNaN(value: DecimalSource): boolean {\n value = D(value);\n return isNaN(value.sign) || isNaN(value.layer) || isNaN(value.mag);\n }\n\n public static isFinite(value: DecimalSource): boolean {\n value = D(value);\n return isFinite(value.sign) && isFinite(value.layer) && isFinite(value.mag);\n }\n\n public static eq(value: DecimalSource, other: DecimalSource): boolean {\n return D(value).eq(other);\n }\n\n public static equals(value: DecimalSource, other: DecimalSource): boolean {\n return D(value).eq(other);\n }\n\n public static neq(value: DecimalSource, other: DecimalSource): boolean {\n return D(value).neq(other);\n }\n\n public static notEquals(value: DecimalSource, other: DecimalSource): boolean {\n return D(value).notEquals(other);\n }\n\n public static lt(value: DecimalSource, other: DecimalSource): boolean {\n return D(value).lt(other);\n }\n\n public static lte(value: DecimalSource, other: DecimalSource): boolean {\n return D(value).lte(other);\n }\n\n public static gt(value: DecimalSource, other: DecimalSource): boolean {\n return D(value).gt(other);\n }\n\n public static gte(value: DecimalSource, other: DecimalSource): boolean {\n return D(value).gte(other);\n }\n\n public static max(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).max(other);\n }\n\n public static min(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).min(other);\n }\n\n public static minabs(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).minabs(other);\n }\n\n public static maxabs(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).maxabs(other);\n }\n\n public static clamp(value: DecimalSource, min: DecimalSource, max: DecimalSource): Decimal {\n return D(value).clamp(min, max);\n }\n\n public static clampMin(value: DecimalSource, min: DecimalSource): Decimal {\n return D(value).clampMin(min);\n }\n\n public static clampMax(value: DecimalSource, max: DecimalSource): Decimal {\n return D(value).clampMax(max);\n }\n\n public static cmp_tolerance(\n value: DecimalSource,\n other: DecimalSource,\n tolerance: number\n ): CompareResult {\n return D(value).cmp_tolerance(other, tolerance);\n }\n\n public static compare_tolerance(\n value: DecimalSource,\n other: DecimalSource,\n tolerance: number\n ): CompareResult {\n return D(value).cmp_tolerance(other, tolerance);\n }\n\n public static eq_tolerance(\n value: DecimalSource,\n other: DecimalSource,\n tolerance: number\n ): boolean {\n return D(value).eq_tolerance(other, tolerance);\n }\n\n public static equals_tolerance(\n value: DecimalSource,\n other: DecimalSource,\n tolerance: number\n ): boolean {\n return D(value).eq_tolerance(other, tolerance);\n }\n\n public static neq_tolerance(\n value: DecimalSource,\n other: DecimalSource,\n tolerance: number\n ): boolean {\n return D(value).neq_tolerance(other, tolerance);\n }\n\n public static notEquals_tolerance(\n value: DecimalSource,\n other: DecimalSource,\n tolerance: number\n ): boolean {\n return D(value).notEquals_tolerance(other, tolerance);\n }\n\n public static lt_tolerance(\n value: DecimalSource,\n other: DecimalSource,\n tolerance: number\n ): boolean {\n return D(value).lt_tolerance(other, tolerance);\n }\n\n public static lte_tolerance(\n value: DecimalSource,\n other: DecimalSource,\n tolerance: number\n ): boolean {\n return D(value).lte_tolerance(other, tolerance);\n }\n\n public static gt_tolerance(\n value: DecimalSource,\n other: DecimalSource,\n tolerance: number\n ): boolean {\n return D(value).gt_tolerance(other, tolerance);\n }\n\n public static gte_tolerance(\n value: DecimalSource,\n other: DecimalSource,\n tolerance: number\n ): boolean {\n return D(value).gte_tolerance(other, tolerance);\n }\n\n public static pLog10(value: DecimalSource): Decimal {\n return D(value).pLog10();\n }\n\n public static absLog10(value: DecimalSource): Decimal {\n return D(value).absLog10();\n }\n\n public static log10(value: DecimalSource): Decimal {\n return D(value).log10();\n }\n\n public static log(value: DecimalSource, base: DecimalSource): Decimal {\n return D(value).log(base);\n }\n\n public static log2(value: DecimalSource): Decimal {\n return D(value).log2();\n }\n\n public static ln(value: DecimalSource): Decimal {\n return D(value).ln();\n }\n\n public static logarithm(value: DecimalSource, base: DecimalSource): Decimal {\n return D(value).logarithm(base);\n }\n\n public static pow(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).pow(other);\n }\n\n public static pow10(value: DecimalSource): Decimal {\n return D(value).pow10();\n }\n\n public static root(value: DecimalSource, other: DecimalSource): Decimal {\n return D(value).root(other);\n }\n\n public static factorial(value: DecimalSource, _other?: never): Decimal {\n return D(value).factorial();\n }\n\n public static gamma(value: DecimalSource, _other?: never): Decimal {\n return D(value).gamma();\n }\n\n public static lngamma(value: DecimalSource, _other?: never): Decimal {\n return D(value).lngamma();\n }\n\n public static exp(value: DecimalSource): Decimal {\n return D(value).exp();\n }\n\n public static sqr(value: DecimalSource): Decimal {\n return D(value).sqr();\n }\n\n public static sqrt(value: DecimalSource): Decimal {\n return D(value).sqrt();\n }\n\n public static cube(value: DecimalSource): Decimal {\n return D(value).cube();\n }\n\n public static cbrt(value: DecimalSource): Decimal {\n return D(value).cbrt();\n }\n\n public static tetrate(\n value: DecimalSource,\n height = 2,\n payload: DecimalSource = FC_NN(1, 0, 1)\n ): Decimal {\n return D(value).tetrate(height, payload);\n }\n\n public static iteratedexp(value: DecimalSource, height = 2, payload = FC_NN(1, 0, 1)): Decimal {\n return D(value).iteratedexp(height, payload);\n }\n\n public static iteratedlog(value: DecimalSource, base: DecimalSource = 10, times = 1): Decimal {\n return D(value).iteratedlog(base, times);\n }\n\n public static layeradd10(value: DecimalSource, diff: DecimalSource): Decimal {\n return D(value).layeradd10(diff);\n }\n\n public static layeradd(value: DecimalSource, diff: number, base = 10): Decimal {\n return D(value).layeradd(diff, base);\n }\n\n public static slog(value: DecimalSource, base = 10): Decimal {\n return D(value).slog(base);\n }\n\n public static lambertw(value: DecimalSource): Decimal {\n return D(value).lambertw();\n }\n\n public static ssqrt(value: DecimalSource): Decimal {\n return D(value).ssqrt();\n }\n\n public static pentate(\n value: DecimalSource,\n height = 2,\n payload: DecimalSource = FC_NN(1, 0, 1)\n ): Decimal {\n return D(value).pentate(height, payload);\n }\n\n /**\n * If you're willing to spend 'resourcesAvailable' and want to buy something\n * with exponentially increasing cost each purchase (start at priceStart,\n * multiply by priceRatio, already own currentOwned), how much of it can you buy?\n * Adapted from Trimps source code.\n */\n\n public static affordGeometricSeries(\n resourcesAvailable: DecimalSource,\n priceStart: DecimalSource,\n priceRatio: DecimalSource,\n currentOwned: DecimalSource\n ): Decimal {\n return this.affordGeometricSeries_core(\n D(resourcesAvailable),\n D(priceStart),\n D(priceRatio),\n currentOwned\n );\n }\n /**\n * How much resource would it cost to buy (numItems) items if you already have currentOwned,\n * the initial price is priceStart and it multiplies by priceRatio each purchase?\n */\n\n public static sumGeometricSeries(\n numItems: DecimalSource,\n priceStart: DecimalSource,\n priceRatio: DecimalSource,\n currentOwned: DecimalSource\n ): Decimal {\n return this.sumGeometricSeries_core(numItems, D(priceStart), D(priceRatio), currentOwned);\n }\n /**\n * If you're willing to spend 'resourcesAvailable' and want to buy something with additively\n * increasing cost each purchase (start at priceStart, add by priceAdd, already own currentOwned),\n * how much of it can you buy?\n */\n\n public static affordArithmeticSeries(\n resourcesAvailable: DecimalSource,\n priceStart: DecimalSource,\n priceAdd: DecimalSource,\n currentOwned: DecimalSource\n ): Decimal {\n return this.affordArithmeticSeries_core(\n D(resourcesAvailable),\n D(priceStart),\n D(priceAdd),\n D(currentOwned)\n );\n }\n /**\n * How much resource would it cost to buy (numItems) items if you already have currentOwned,\n * the initial price is priceStart and it adds priceAdd each purchase?\n * Adapted from http://www.mathwords.com/a/arithmetic_series.htm\n */\n\n public static sumArithmeticSeries(\n numItems: DecimalSource,\n priceStart: DecimalSource,\n priceAdd: DecimalSource,\n currentOwned: DecimalSource\n ): Decimal {\n return this.sumArithmeticSeries_core(\n D(numItems),\n D(priceStart),\n D(priceAdd),\n D(currentOwned)\n );\n }\n /**\n * When comparing two purchases that cost (resource) and increase your resource/sec by (deltaRpS),\n * the lowest efficiency score is the better one to purchase.\n * From Frozen Cookies:\n * http://cookieclicker.wikia.com/wiki/Frozen_Cookies_(JavaScript_Add-on)#Efficiency.3F_What.27s_that.3F\n */\n\n public static efficiencyOfPurchase(\n cost: DecimalSource,\n currentRpS: DecimalSource,\n deltaRpS: DecimalSource\n ): Decimal {\n return this.efficiencyOfPurchase_core(D(cost), D(currentRpS), D(deltaRpS));\n }\n\n public static randomDecimalForTesting(maxLayers: number): Decimal {\n // NOTE: This doesn't follow any kind of sane random distribution, so use this for testing purposes only.\n //5% of the time, return 0\n if (Math.random() * 20 < 1) {\n return FC_NN(0, 0, 0);\n }\n\n const randomsign = Math.random() > 0.5 ? 1 : -1;\n\n //5% of the time, return 1 or -1\n if (Math.random() * 20 < 1) {\n return FC_NN(randomsign, 0, 1);\n }\n\n //pick a random layer\n const layer = Math.floor(Math.random() * (maxLayers + 1));\n\n let randomexp = layer === 0 ? Math.random() * 616 - 308 : Math.random() * 16;\n //10% of the time, make it a simple power of 10\n if (Math.random() > 0.9) {\n randomexp = Math.trunc(randomexp);\n }\n let randommag = Math.pow(10, randomexp);\n //10% of the time, trunc mag\n if (Math.random() > 0.9) {\n randommag = Math.trunc(randommag);\n }\n return FC(randomsign, layer, randommag);\n }\n\n public static affordGeometricSeries_core(\n resourcesAvailable: Decimal,\n priceStart: Decimal,\n priceRatio: Decimal,\n currentOwned: DecimalSource\n ): Decimal {\n const actualStart = priceStart.mul(priceRatio.pow(currentOwned));\n return Decimal.floor(\n resourcesAvailable\n .div(actualStart)\n .mul(priceRatio.sub(1))\n .add(1)\n .log10()\n .div(priceRatio.log10())\n );\n }\n\n public static sumGeometricSeries_core(\n numItems: DecimalSource,\n priceStart: Decimal,\n priceRatio: Decimal,\n currentOwned: DecimalSource\n ): Decimal {\n return priceStart\n .mul(priceRatio.pow(currentOwned))\n .mul(Decimal.sub(1, priceRatio.pow(numItems)))\n .div(Decimal.sub(1, priceRatio));\n }\n\n public static affordArithmeticSeries_core(\n resourcesAvailable: Decimal,\n priceStart: Decimal,\n priceAdd: Decimal,\n currentOwned: Decimal\n ): Decimal {\n // n = (-(a-d/2) + sqrt((a-d/2)^2+2dS))/d\n // where a is actualStart, d is priceAdd and S is resourcesAvailable\n // then floor it and you're done!\n const actualStart = priceStart.add(currentOwned.mul(priceAdd));\n const b = actualStart.sub(priceAdd.div(2));\n const b2 = b.pow(2);\n return b\n .neg()\n .add(b2.add(priceAdd.mul(resourcesAvailable).mul(2)).sqrt())\n .div(priceAdd)\n .floor();\n }\n\n public static sumArithmeticSeries_core(\n numItems: Decimal,\n priceStart: Decimal,\n priceAdd: Decimal,\n currentOwned: Decimal\n ): Decimal {\n const actualStart = priceStart.add(currentOwned.mul(priceAdd)); // (n/2)*(2*a+(n-1)*d)\n\n return numItems.div(2).mul(actualStart.mul(2).plus(numItems.sub(1).mul(priceAdd)));\n }\n\n public static efficiencyOfPurchase_core(\n cost: Decimal,\n currentRpS: Decimal,\n deltaRpS: Decimal\n ): Decimal {\n return cost.div(currentRpS).add(cost.div(deltaRpS));\n }\n\n public [Symbol.for(\"+\")](other: DecimalSource): DecimalSource {\n return this.add(other);\n }\n\n public [Symbol.for(\"-\")](other: DecimalSource): DecimalSource {\n return this.sub(other);\n }\n\n public [Symbol.for(\"*\")](other: DecimalSource): DecimalSource {\n return this.times(other);\n }\n\n public [Symbol.for(\"/\")](other: DecimalSource): DecimalSource {\n return this.div(other);\n }\n\n public [Symbol.for(\"minus\")](): DecimalSource {\n return this.neg();\n }\n\n public [Symbol.for(\"==\")](other: DecimalSource): boolean {\n return this.eq(other);\n }\n\n public [Symbol.for(\">\")](other: DecimalSource): boolean {\n return this.gt(other);\n }\n\n public [Symbol.for(\"<\")](other: DecimalSource): boolean {\n return this.lt(other);\n }\n\n public [Symbol.for(\">=\")](other: DecimalSource): boolean {\n return this.gte(other);\n }\n\n public [Symbol.for(\"<=\")](other: DecimalSource): boolean {\n return this.lte(other);\n }\n\n public [Symbol.for(\"!=\")](other: DecimalSource): boolean {\n return this.neq(other);\n }\n\n public normalize(): this {\n /*\n PSEUDOCODE:\n Whenever we are partially 0 (sign is 0 or mag and layer is 0), make it fully 0.\n Whenever we are at or hit layer 0, extract sign from negative mag.\n If layer === 0 and mag < FIRST_NEG_LAYER (1/9e15), shift to 'first negative layer' (add layer, log10 mag).\n While abs(mag) > EXP_LIMIT (9e15), layer += 1, mag = maglog10(mag).\n While abs(mag) < LAYER_DOWN (15.954) and layer > 0, layer -= 1, mag = pow(10, mag).\n\n When we're done, all of the following should be true OR one of the numbers is not IsFinite OR layer is not IsInteger (error state):\n Any 0 is totally zero (0, 0, 0).\n Anything layer 0 has mag 0 OR mag > 1/9e15 and < 9e15.\n Anything layer 1 or higher has abs(mag) >= 15.954 and < 9e15.\n We will assume in calculations that all Decimals are either erroneous or satisfy these criteria. (Otherwise: Garbage in, garbage out.)\n */\n if (this.sign === 0 || (this.mag === 0 && this.layer === 0)) {\n this.sign = 0;\n this.mag = 0;\n this.layer = 0;\n return this;\n }\n\n if (this.layer === 0 && this.mag < 0) {\n //extract sign from negative mag at layer 0\n this.mag = -this.mag;\n this.sign = -this.sign;\n }\n\n //Handle shifting from layer 0 to negative layers.\n if (this.layer === 0 && this.mag < FIRST_NEG_LAYER) {\n this.layer += 1;\n this.mag = Math.log10(this.mag);\n return this;\n }\n\n let absmag = Math.abs(this.mag);\n let signmag = Math.sign(this.mag);\n\n if (absmag >= EXP_LIMIT) {\n this.layer += 1;\n this.mag = signmag * Math.log10(absmag);\n return this;\n } else {\n while (absmag < LAYER_DOWN && this.layer > 0) {\n this.layer -= 1;\n if (this.layer === 0) {\n this.mag = Math.pow(10, this.mag);\n } else {\n this.mag = signmag * Math.pow(10, absmag);\n absmag = Math.abs(this.mag);\n signmag = Math.sign(this.mag);\n }\n }\n if (this.layer === 0) {\n if (this.mag < 0) {\n //extract sign from negative mag at layer 0\n this.mag = -this.mag;\n this.sign = -this.sign;\n } else if (this.mag === 0) {\n //excessive rounding can give us all zeroes\n this.sign = 0;\n }\n }\n }\n\n return this;\n }\n\n public fromComponents(sign: number, layer: number, mag: number): this {\n this.sign = sign;\n this.layer = layer;\n this.mag = mag;\n\n this.normalize();\n return this;\n }\n\n public fromComponents_noNormalize(sign: number, layer: number, mag: number): this {\n this.sign = sign;\n this.layer = layer;\n this.mag = mag;\n return this;\n }\n\n public fromMantissaExponent(mantissa: number, exponent: number): this {\n this.layer = 1;\n this.sign = Math.sign(mantissa);\n mantissa = Math.abs(mantissa);\n this.mag = exponent + Math.log10(mantissa);\n\n this.normalize();\n return this;\n }\n\n public fromMantissaExponent_noNormalize(mantissa: number, exponent: number): this {\n //The idea of 'normalizing' a break_infinity.js style Decimal doesn't really apply. So just do the same thing.\n this.fromMantissaExponent(mantissa, exponent);\n return this;\n }\n\n public fromDecimal(value: Decimal): this {\n this.sign = value.sign;\n this.layer = value.layer;\n this.mag = value.mag;\n return this;\n }\n\n public fromNumber(value: number): this {\n this.mag = Math.abs(value);\n this.sign = Math.sign(value);\n this.layer = 0;\n this.normalize();\n return this;\n }\n\n public fromString(value: string): Decimal {\n if (IGNORE_COMMAS) {\n value = value.replace(\",\", \"\");\n } else if (COMMAS_ARE_DECIMAL_POINTS) {\n value = value.replace(\",\", \".\");\n }\n\n //Handle x^^^y format.\n const pentationparts = value.split(\"^^^\");\n if (pentationparts.length === 2) {\n const base = parseFloat(pentationparts[0]);\n const height = parseFloat(pentationparts[1]);\n const heightparts = pentationparts[1].split(\";\");\n let payload = 1;\n if (heightparts.length === 2) {\n payload = parseFloat(heightparts[1]);\n if (!isFinite(payload)) {\n payload = 1;\n }\n }\n if (isFinite(base) && isFinite(height)) {\n const result = Decimal.pentate(base, height, payload);\n this.sign = result.sign;\n this.layer = result.layer;\n this.mag = result.mag;\n return this;\n }\n }\n\n //Handle x^^y format.\n const tetrationparts = value.split(\"^^\");\n if (tetrationparts.length === 2) {\n const base = parseFloat(tetrationparts[0]);\n const height = parseFloat(tetrationparts[1]);\n const heightparts = tetrationparts[1].split(\";\");\n let payload = 1;\n if (heightparts.length === 2) {\n payload = parseFloat(heightparts[1]);\n if (!isFinite(payload)) {\n payload = 1;\n }\n }\n if (isFinite(base) && isFinite(height)) {\n const result = Decimal.tetrate(base, height, payload);\n this.sign = result.sign;\n this.layer = result.layer;\n this.mag = result.mag;\n return this;\n }\n }\n\n //Handle x^y format.\n const powparts = value.split(\"^\");\n if (powparts.length === 2) {\n const base = parseFloat(powparts[0]);\n const exponent = parseFloat(powparts[1]);\n if (isFinite(base) && isFinite(exponent)) {\n const result = Decimal.pow(base, exponent);\n this.sign = result.sign;\n this.layer = result.layer;\n this.mag = result.mag;\n return this;\n }\n }\n\n //Handle various cases involving it being a Big Number.\n value = value.trim().toLowerCase();\n\n //handle X PT Y format.\n let base;\n let height;\n let ptparts = value.split(\"pt\");\n if (ptparts.length === 2) {\n base = 10;\n height = parseFloat(ptparts[0]);\n ptparts[1] = ptparts[1].replace(\"(\", \"\");\n ptparts[1] = ptparts[1].replace(\")\", \"\");\n let payload = parseFloat(ptparts[1]);\n if (!isFinite(payload)) {\n payload = 1;\n }\n if (isFinite(base) && isFinite(height)) {\n const result = Decimal.tetrate(base, height, payload);\n this.sign = result.sign;\n this.layer = result.layer;\n this.mag = result.mag;\n return this;\n }\n }\n\n //handle XpY format (it's the same thing just with p).\n ptparts = value.split(\"p\");\n if (ptparts.length === 2) {\n base = 10;\n height = parseFloat(ptparts[0]);\n ptparts[1] = ptparts[1].replace(\"(\", \"\");\n ptparts[1] = ptparts[1].replace(\")\", \"\");\n let payload = parseFloat(ptparts[1]);\n if (!isFinite(payload)) {\n payload = 1;\n }\n if (isFinite(base) && isFinite(height)) {\n const result = Decimal.tetrate(base, height, payload);\n this.sign = result.sign;\n this.layer = result.layer;\n this.mag = result.mag;\n return this;\n }\n }\n\n const parts = value.split(\"e\");\n const ecount = parts.length - 1;\n\n //Handle numbers that are exactly floats (0 or 1 es).\n if (ecount === 0) {\n const numberAttempt = parseFloat(value);\n if (isFinite(numberAttempt)) {\n return this.fromNumber(numberAttempt);\n }\n } else if (ecount === 1) {\n //Very small numbers (\"2e-3000\" and so on) may look like valid floats but round to 0.\n const numberAttempt = parseFloat(value);\n if (isFinite(numberAttempt) && numberAttempt !== 0) {\n return this.fromNumber(numberAttempt);\n }\n }\n\n //Handle new (e^N)X format.\n const newparts = value.split(\"e^\");\n if (newparts.length === 2) {\n this.sign = 1;\n if (newparts[0].charAt(0) == \"-\") {\n this.sign = -1;\n }\n let layerstring = \"\";\n for (let i = 0; i < newparts[1].length; ++i) {\n const chrcode = newparts[1].charCodeAt(i);\n if ((chrcode >= 43 && chrcode <= 57) || chrcode === 101) {\n //is \"0\" to \"9\" or \"+\" or \"-\" or \".\" or \"e\" (or \",\" or \"/\")\n layerstring += newparts[1].charAt(i);\n } //we found the end of the layer count\n else {\n this.layer = parseFloat(layerstring);\n this.mag = parseFloat(newparts[1].substr(i + 1));\n this.normalize();\n return this;\n }\n }\n }\n\n if (ecount < 1) {\n this.sign = 0;\n this.layer = 0;\n this.mag = 0;\n return this;\n }\n const mantissa = parseFloat(parts[0]);\n if (mantissa === 0) {\n this.sign = 0;\n this.layer = 0;\n this.mag = 0;\n return this;\n }\n let exponent = parseFloat(parts[parts.length - 1]);\n //handle numbers like AeBeC and AeeeeBeC\n if (ecount >= 2) {\n const me = parseFloat(parts[parts.length - 2]);\n if (isFinite(me)) {\n exponent *= Math.sign(me);\n exponent += f_maglog10(me);\n }\n }\n\n //Handle numbers written like eee... (N es) X\n if (!isFinite(mantissa)) {\n this.sign = parts[0] === \"-\" ? -1 : 1;\n this.layer = ecount;\n this.mag = exponent;\n }\n //Handle numbers written like XeY\n else if (ecount === 1) {\n this.sign = Math.sign(mantissa);\n this.layer = 1;\n //Example: 2e10 is equal to 10^log10(2e10) which is equal to 10^(10+log10(2))\n this.mag = exponent + Math.log10(Math.abs(mantissa));\n }\n //Handle numbers written like Xeee... (N es) Y\n else {\n this.sign = Math.sign(mantissa);\n this.layer = ecount;\n if (ecount === 2) {\n const result = Decimal.mul(FC(1, 2, exponent), D(mantissa));\n this.sign = result.sign;\n this.layer = result.layer;\n this.mag = result.mag;\n return this;\n } else {\n //at eee and above, mantissa is too small to be recognizable!\n this.mag = exponent;\n }\n }\n\n this.normalize();\n return this;\n }\n\n public fromValue(value: DecimalSource): Decimal {\n if (value instanceof Decimal || (value != null && typeof value === \"object\" && \"sign\" in value && \"mag\" in value && \"layer\" in value)) {\n return this.fromDecimal(value);\n }\n\n if (typeof value === \"number\") {\n return this.fromNumber(value);\n }\n\n if (typeof value === \"string\") {\n return this.fromString(value);\n }\n\n this.sign = 0;\n this.layer = 0;\n this.mag = 0;\n return this;\n }\n\n public toNumber(): number {\n if (!Number.isFinite(this.layer)) {\n return Number.NaN;\n }\n if (this.layer === 0) {\n return this.sign * this.mag;\n } else if (this.layer === 1) {\n return this.sign * Math.pow(10, this.mag);\n } //overflow for any normalized Decimal\n else {\n return this.mag > 0\n ? this.sign > 0\n ? Number.POSITIVE_INFINITY\n : Number.NEGATIVE_INFINITY\n : 0;\n }\n }\n\n public mantissaWithDecimalPlaces(places: number): number {\n // https://stackoverflow.com/a/37425022\n if (isNaN(this.m)) {\n return Number.NaN;\n }\n\n if (this.m === 0) {\n return 0;\n }\n\n return decimalPlaces(this.m, places);\n }\n\n public magnitudeWithDecimalPlaces(places: number): number {\n // https://stackoverflow.com/a/37425022\n if (isNaN(this.mag)) {\n return Number.NaN;\n }\n\n if (this.mag === 0) {\n return 0;\n }\n\n return decimalPlaces(this.mag, places);\n }\n\n public toString(): string {\n if (isNaN(this.layer) || isNaN(this.sign) || isNaN(this.mag)) {\n return \"NaN\";\n }\n if (this.mag === Number.POSITIVE_INFINITY || this.layer === Number.POSITIVE_INFINITY) {\n return this.sign === 1 ? \"Infinity\" : \"-Infinity\";\n }\n\n if (this.layer === 0) {\n if ((this.mag < 1e21 && this.mag > 1e-7) || this.mag === 0) {\n return (this.sign * this.mag).toString();\n }\n return this.m + \"e\" + this.e;\n } else if (this.layer === 1) {\n return this.m + \"e\" + this.e;\n } else {\n //layer 2+\n if (this.layer <= MAX_ES_IN_A_ROW) {\n return (this.sign === -1 ? \"-\" : \"\") + \"e\".repeat(this.layer) + this.mag;\n } else {\n return (this.sign === -1 ? \"-\" : \"\") + \"(e^\" + this.layer + \")\" + this.mag;\n }\n }\n }\n\n public toExponential(places: number): string {\n if (this.layer === 0) {\n return (this.sign * this.mag).toExponential(places);\n }\n return this.toStringWithDecimalPlaces(places);\n }\n\n public toFixed(places: number): string {\n if (this.layer === 0) {\n return (this.sign * this.mag).toFixed(places);\n }\n return this.toStringWithDecimalPlaces(places);\n }\n\n public toPrecision(places: number): string {\n if (this.e <= -7) {\n return this.toExponential(places - 1);\n }\n\n if (places > this.e) {\n return this.toFixed(places - this.exponent - 1);\n }\n\n return this.toExponential(places - 1);\n }\n\n public valueOf(): string {\n return this.toString();\n }\n\n public toJSON(): string {\n return this.toString();\n }\n\n public toStringWithDecimalPlaces(places: number): string {\n if (this.layer === 0) {\n if ((this.mag < 1e21 && this.mag > 1e-7) || this.mag === 0) {\n return (this.sign * this.mag).toFixed(places);\n }\n return decimalPlaces(this.m, places) + \"e\" + decimalPlaces(this.e, places);\n } else if (this.layer === 1) {\n return decimalPlaces(this.m, places) + \"e\" + decimalPlaces(this.e, places);\n } else {\n //layer 2+\n if (this.layer <= MAX_ES_IN_A_ROW) {\n return (\n (this.sign === -1 ? \"-\" : \"\") +\n \"e\".repeat(this.layer) +\n decimalPlaces(this.mag, places)\n );\n } else {\n return (\n (this.sign === -1 ? \"-\" : \"\") +\n \"(e^\" +\n this.layer +\n \")\" +\n decimalPlaces(this.mag, places)\n );\n }\n }\n }\n\n public abs(): Decimal {\n return FC_NN(this.sign === 0 ? 0 : 1, this.layer, this.mag);\n }\n\n public neg(): Decimal {\n return FC_NN(-this.sign, this.layer, this.mag);\n }\n\n public negate(): Decimal {\n return this.neg();\n }\n\n public negated(): Decimal {\n return this.neg();\n }\n\n // public sign () {\n // return this.sign;\n // }\n\n public sgn(): number {\n return this.sign;\n }\n\n public round(): this | Decimal {\n if (this.mag < 0) {\n return Decimal.dZero;\n }\n if (this.layer === 0) {\n return FC(this.sign, 0, Math.round(this.mag));\n }\n return this;\n }\n\n public floor(): this | Decimal {\n if (this.mag < 0) {\n return Decimal.dZero;\n }\n if (this.layer === 0) {\n return FC(this.sign, 0, Math.floor(this.mag));\n }\n return this;\n }\n\n public ceil(): this | Decimal {\n if (this.mag < 0) {\n return Decimal.dZero;\n }\n if (this.layer === 0) {\n return FC(this.sign, 0, Math.ceil(this.mag));\n }\n return this;\n }\n\n public trunc(): this | Decimal {\n if (this.mag < 0) {\n return Decimal.dZero;\n }\n if (this.layer === 0) {\n return FC(this.sign, 0, Math.trunc(this.mag));\n }\n return this;\n }\n\n public add(value: DecimalSource): this | Decimal {\n const decimal = D(value);\n\n //inf/nan check\n if (!Number.isFinite(this.layer)) {\n return this;\n }\n if (!Number.isFinite(decimal.layer)) {\n return decimal;\n }\n\n //Special case - if one of the numbers is 0, return the other number.\n if (this.sign === 0) {\n return decimal;\n }\n if (decimal.sign === 0) {\n return this;\n }\n\n //Special case - Adding a number to its negation produces 0, no matter how large.\n if (\n this.sign === -decimal.sign &&\n this.layer === decimal.layer &&\n this.mag === decimal.mag\n ) {\n return FC_NN(0, 0, 0);\n }\n\n let a;\n let b;\n\n //Special case: If one of the numbers is layer 2 or higher, just take the bigger number.\n if (this.layer >= 2 || decimal.layer >= 2) {\n return this.maxabs(decimal);\n }\n\n if (Decimal.cmpabs(this, decimal) > 0) {\n a = this;\n b = decimal;\n } else {\n a = decimal;\n b = this;\n }\n\n if (a.layer === 0 && b.layer === 0) {\n return D(a.sign * a.mag + b.sign * b.mag);\n }\n\n const layera = a.layer * Math.sign(a.mag);\n const layerb = b.layer * Math.sign(b.mag);\n\n //If one of the numbers is 2+ layers higher than the other, just take the bigger number.\n if (layera - layerb >= 2) {\n return a;\n }\n\n if (layera === 0 && layerb === -1) {\n if (Math.abs(b.mag - Math.log10(a.mag)) > MAX_SIGNIFICANT_DIGITS) {\n return a;\n } else {\n const magdiff = Math.pow(10, Math.log10(a.mag) - b.mag);\n const mantissa = b.sign + a.sign * magdiff;\n return FC(Math.sign(mantissa), 1, b.mag + Math.log10(Math.abs(mantissa)));\n }\n }\n\n if (layera === 1 && layerb === 0) {\n if (Math.abs(a.mag - Math.log10(b.mag)) > MAX_SIGNIFICANT_DIGITS) {\n return a;\n } else {\n const magdiff = Math.pow(10, a.mag - Math.log10(b.mag));\n const mantissa = b.sign + a.sign * magdiff;\n return FC(\n Math.sign(mantissa),\n 1,\n Math.log10(b.mag) + Math.log10(Math.abs(mantissa))\n );\n }\n }\n\n if (Math.abs(a.mag - b.mag) > MAX_SIGNIFICANT_DIGITS) {\n return a;\n } else {\n const magdiff = Math.pow(10, a.mag - b.mag);\n const mantissa = b.sign + a.sign * magdiff;\n return FC(Math.sign(mantissa), 1, b.mag + Math.log10(Math.abs(mantissa)));\n }\n\n throw Error(\"Bad arguments to add: \" + this + \", \" + value);\n }\n\n public plus(value: DecimalSource): Decimal {\n return this.add(value);\n }\n\n public sub(value: DecimalSource): Decimal {\n return this.add(D(value).neg());\n }\n\n public subtract(value: DecimalSource): Decimal {\n return this.sub(value);\n }\n\n public minus(value: DecimalSource): Decimal {\n return this.sub(value);\n }\n\n public mul(value: DecimalSource): Decimal {\n const decimal = D(value);\n\n //inf/nan check\n if (!Number.isFinite(this.layer)) {\n return this;\n }\n if (!Number.isFinite(decimal.layer)) {\n return decimal;\n }\n\n //Special case - if one of the numbers is 0, return 0.\n if (this.sign === 0 || decimal.sign === 0) {\n return FC_NN(0, 0, 0);\n }\n\n //Special case - Multiplying a number by its own reciprocal yields +/- 1, no matter how large.\n if (this.layer === decimal.layer && this.mag === -decimal.mag) {\n return FC_NN(this.sign * decimal.sign, 0, 1);\n }\n\n let a;\n let b;\n\n //Which number is bigger in terms of its multiplicative distance from 1?\n if (\n this.layer > decimal.layer ||\n (this.layer == decimal.layer && Math.abs(this.mag) > Math.abs(decimal.mag))\n ) {\n a = this;\n b = decimal;\n } else {\n a = decimal;\n b = this;\n }\n\n if (a.layer === 0 && b.layer === 0) {\n return D(a.sign * b.sign * a.mag * b.mag);\n }\n\n //Special case: If one of the numbers is layer 3 or higher or one of the numbers is 2+ layers bigger than the other, just take the bigger number.\n if (a.layer >= 3 || a.layer - b.layer >= 2) {\n return FC(a.sign * b.sign, a.layer, a.mag);\n }\n\n if (a.layer === 1 && b.layer === 0) {\n return FC(a.sign * b.sign, 1, a.mag + Math.log10(b.mag));\n }\n\n if (a.layer === 1 && b.layer === 1) {\n return FC(a.sign * b.sign, 1, a.mag + b.mag);\n }\n\n if (a.layer === 2 && b.layer === 1) {\n const newmag = FC(Math.sign(a.mag), a.layer - 1, Math.abs(a.mag)).add(\n FC(Math.sign(b.mag), b.layer - 1, Math.abs(b.mag))\n );\n return FC(a.sign * b.sign, newmag.layer + 1, newmag.sign * newmag.mag);\n }\n\n if (a.layer === 2 && b.layer === 2) {\n const newmag = FC(Math.sign(a.mag), a.layer - 1, Math.abs(a.mag)).add(\n FC(Math.sign(b.mag), b.layer - 1, Math.abs(b.mag))\n );\n return FC(a.sign * b.sign, newmag.layer + 1, newmag.sign * newmag.mag);\n }\n\n throw Error(\"Bad arguments to mul: \" + this + \", \" + value);\n }\n\n public multiply(value: DecimalSource): Decimal {\n return this.mul(value);\n }\n\n public times(value: DecimalSource): Decimal {\n return this.mul(value);\n }\n\n public div(value: DecimalSource): Decimal {\n const decimal = D(value);\n return this.mul(decimal.recip());\n }\n\n public divide(value: DecimalSource): Decimal {\n return this.div(value);\n }\n\n public divideBy(value: DecimalSource): Decimal {\n return this.div(value);\n }\n\n public dividedBy(value: DecimalSource): Decimal {\n return this.div(value);\n }\n\n public recip(): Decimal {\n if (this.mag === 0) {\n return Decimal.dNaN;\n } else if (this.layer === 0) {\n return FC(this.sign, 0, 1 / this.mag);\n } else {\n return FC(this.sign, this.layer, -this.mag);\n }\n }\n\n public reciprocal(): Decimal {\n return this.recip();\n }\n\n public reciprocate(): Decimal {\n return this.recip();\n }\n\n /**\n * -1 for less than value, 0 for equals value, 1 for greater than value\n */\n public cmp(value: DecimalSource): CompareResult {\n const decimal = D(value);\n if (this.sign > decimal.sign) {\n return 1;\n }\n if (this.sign < decimal.sign) {\n return -1;\n }\n return (this.sign * this.cmpabs(value)) as CompareResult;\n }\n\n public cmpabs(value: DecimalSource): CompareResult {\n const decimal = D(value);\n const layera = this.mag > 0 ? this.layer : -this.layer;\n const layerb = decimal.mag > 0 ? decimal.layer : -decimal.layer;\n if (layera > layerb) {\n return 1;\n }\n if (layera < layerb) {\n return -1;\n }\n if (this.mag > decimal.mag) {\n return 1;\n }\n if (this.mag < decimal.mag) {\n return -1;\n }\n return 0;\n }\n\n public compare(value: DecimalSource): CompareResult {\n return this.cmp(value);\n }\n\n public isNan(): boolean {\n return isNaN(this.sign) || isNaN(this.layer) || isNaN(this.mag);\n }\n\n public isFinite(): boolean {\n return isFinite(this.sign) && isFinite(this.layer) && isFinite(this.mag);\n }\n\n public eq(value: DecimalSource): boolean {\n const decimal = D(value);\n return (\n this.sign === decimal.sign && this.layer === decimal.layer && this.mag === decimal.mag\n );\n }\n\n public equals(value: DecimalSource): boolean {\n return this.eq(value);\n }\n\n public neq(value: DecimalSource): boolean {\n return !this.eq(value);\n }\n\n public notEquals(value: DecimalSource): boolean {\n return this.neq(value);\n }\n\n public lt(value: DecimalSource): boolean {\n return this.cmp(value) === -1;\n }\n\n public lte(value: DecimalSource): boolean {\n return !this.gt(value);\n }\n\n public gt(value: DecimalSource): boolean {\n return this.cmp(value) === 1;\n }\n\n public gte(value: DecimalSource): boolean {\n return !this.lt(value);\n }\n\n public max(value: DecimalSource): Decimal {\n const decimal = D(value);\n return this.lt(decimal) ? decimal : this;\n }\n\n public min(value: DecimalSource): Decimal {\n const decimal = D(value);\n return this.gt(decimal) ? decimal : this;\n }\n\n public maxabs(value: DecimalSource): Decimal {\n const decimal = D(value);\n return this.cmpabs(decimal) < 0 ? decimal : this;\n }\n\n public minabs(value: DecimalSource): Decimal {\n const decimal = D(value);\n return this.cmpabs(decimal) > 0 ? decimal : this;\n }\n\n public clamp(min: DecimalSource, max: DecimalSource): Decimal {\n return this.max(min).min(max);\n }\n\n public clampMin(min: DecimalSource): Decimal {\n return this.max(min);\n }\n\n public clampMax(max: DecimalSource): Decimal {\n return this.min(max);\n }\n\n public cmp_tolerance(value: DecimalSource, tolerance: number): CompareResult {\n const decimal = D(value);\n return this.eq_tolerance(decimal, tolerance) ? 0 : this.cmp(decimal);\n }\n\n public compare_tolerance(value: DecimalSource, tolerance: number): CompareResult {\n return this.cmp_tolerance(value, tolerance);\n }\n\n /**\n * Tolerance is a relative tolerance, multiplied by the greater of the magnitudes of the two arguments.\n * For example, if you put in 1e-9, then any number closer to the\n * larger number than (larger number)*1e-9 will be considered equal.\n */\n public eq_tolerance(value: DecimalSource, tolerance: number): boolean {\n const decimal = D(value); // https://stackoverflow.com/a/33024979\n if (tolerance == null) {\n tolerance = 1e-7;\n }\n //Numbers that are too far away are never close.\n if (this.sign !== decimal.sign) {\n return false;\n }\n if (Math.abs(this.layer - decimal.layer) > 1) {\n return false;\n }\n // return abs(a-b) <= tolerance * max(abs(a), abs(b))\n let magA = this.mag;\n let magB = decimal.mag;\n if (this.layer > decimal.layer) {\n magB = f_maglog10(magB);\n }\n if (this.layer < decimal.layer) {\n magA = f_maglog10(magA);\n }\n return Math.abs(magA - magB) <= tolerance * Math.max(Math.abs(magA), Math.abs(magB));\n }\n\n public equals_tolerance(value: DecimalSource, tolerance: number): boolean {\n return this.eq_tolerance(value, tolerance);\n }\n\n public neq_tolerance(value: DecimalSource, tolerance: number): boolean {\n return !this.eq_tolerance(value, tolerance);\n }\n\n public notEquals_tolerance(value: DecimalSource, tolerance: number): boolean {\n return this.neq_tolerance(value, tolerance);\n }\n\n public lt_tolerance(value: DecimalSource, tolerance: number): boolean {\n const decimal = D(value);\n return !this.eq_tolerance(decimal, tolerance) && this.lt(decimal);\n }\n\n public lte_tolerance(value: DecimalSource, tolerance: number): boolean {\n const decimal = D(value);\n return this.eq_tolerance(decimal, tolerance) || this.lt(decimal);\n }\n\n public gt_tolerance(value: DecimalSource, tolerance: number): boolean {\n const decimal = D(value);\n return !this.eq_tolerance(decimal, tolerance) && this.gt(decimal);\n }\n\n public gte_tolerance(value: DecimalSource, tolerance: number): boolean {\n const decimal = D(value);\n return this.eq_tolerance(decimal, tolerance) || this.gt(decimal);\n }\n\n public pLog10(): Decimal {\n if (this.lt(Decimal.dZero)) {\n return Decimal.dZero;\n }\n return this.log10();\n }\n\n public absLog10(): Decimal {\n if (this.sign === 0) {\n return Decimal.dNaN;\n } else if (this.layer > 0) {\n return FC(Math.sign(this.mag), this.layer - 1, Math.abs(this.mag));\n } else {\n return FC(1, 0, Math.log10(this.mag));\n }\n }\n\n public log10(): Decimal {\n if (this.sign <= 0) {\n return Decimal.dNaN;\n } else if (this.layer > 0) {\n return FC(Math.sign(this.mag), this.layer - 1, Math.abs(this.mag));\n } else {\n return FC(this.sign, 0, Math.log10(this.mag));\n }\n }\n\n public log(base: DecimalSource): Decimal {\n base = D(base);\n if (this.sign <= 0) {\n return Decimal.dNaN;\n }\n if (base.sign <= 0) {\n return Decimal.dNaN;\n }\n if (base.sign === 1 && base.layer === 0 && base.mag === 1) {\n return Decimal.dNaN;\n } else if (this.layer === 0 && base.layer === 0) {\n return FC(this.sign, 0, Math.log(this.mag) / Math.log(base.mag));\n }\n\n return Decimal.div(this.log10(), base.log10());\n }\n\n public log2(): Decimal {\n if (this.sign <= 0) {\n return Decimal.dNaN;\n } else if (this.layer === 0) {\n return FC(this.sign, 0, Math.log2(this.mag));\n } else if (this.layer === 1) {\n return FC(Math.sign(this.mag), 0, Math.abs(this.mag) * 3.321928094887362); //log2(10)\n } else if (this.layer === 2) {\n return FC(Math.sign(this.mag), 1, Math.abs(this.mag) + 0.5213902276543247); //-log10(log10(2))\n } else {\n return FC(Math.sign(this.mag), this.layer - 1, Math.abs(this.mag));\n }\n }\n\n public ln(): Decimal {\n if (this.sign <= 0) {\n return Decimal.dNaN;\n } else if (this.layer === 0) {\n return FC(this.sign, 0, Math.log(this.mag));\n } else if (this.layer === 1) {\n return FC(Math.sign(this.mag), 0, Math.abs(this.mag) * 2.302585092994046); //ln(10)\n } else if (this.layer === 2) {\n return FC(Math.sign(this.mag), 1, Math.abs(this.mag) + 0.36221568869946325); //log10(log10(e))\n } else {\n return FC(Math.sign(this.mag), this.layer - 1, Math.abs(this.mag));\n }\n }\n\n public logarithm(base: DecimalSource): Decimal {\n return this.log(base);\n }\n\n public pow(value: DecimalSource): Decimal {\n const decimal = D(value);\n const a = this;\n const b = decimal;\n\n //special case: if a is 0, then return 0 (UNLESS b is 0, then return 1)\n if (a.sign === 0) {\n return b.eq(0) ? FC_NN(1, 0, 1) : a;\n }\n //special case: if a is 1, then return 1\n if (a.sign === 1 && a.layer === 0 && a.mag === 1) {\n return a;\n }\n //special case: if b is 0, then return 1\n if (b.sign === 0) {\n return FC_NN(1, 0, 1);\n }\n //special case: if b is 1, then return a\n if (b.sign === 1 && b.layer === 0 && b.mag === 1) {\n return a;\n }\n\n const result = a\n .absLog10()\n .mul(b)\n .pow10();\n\n if (this.sign === -1) {\n if (Math.abs(b.toNumber() % 2) % 2 === 1) {\n return result.neg();\n } else if (Math.abs(b.toNumber() % 2) % 2 === 0) {\n return result;\n }\n return Decimal.dNaN;\n }\n\n return result;\n }\n\n public pow10(): Decimal {\n /*\n There are four cases we need to consider:\n 1) positive sign, positive mag (e15, ee15): +1 layer (e.g. 10^15 becomes e15, 10^e15 becomes ee15)\n 2) negative sign, positive mag (-e15, -ee15): +1 layer but sign and mag sign are flipped (e.g. 10^-15 becomes e-15, 10^-e15 becomes ee-15)\n 3) positive sign, negative mag (e-15, ee-15): layer 0 case would have been handled in the Math.pow check, so just return 1\n 4) negative sign, negative mag (-e-15, -ee-15): layer 0 case would have been handled in the Math.pow check, so just return 1\n */\n\n if (!Number.isFinite(this.layer) || !Number.isFinite(this.mag)) {\n return Decimal.dNaN;\n }\n\n let a = this;\n\n //handle layer 0 case - if no precision is lost just use Math.pow, else promote one layer\n if (a.layer === 0) {\n const newmag = Math.pow(10, a.sign * a.mag);\n if (Number.isFinite(newmag) && Math.abs(newmag) >= 0.1) {\n return FC(1, 0, newmag);\n } else {\n if (a.sign === 0) {\n return Decimal.dOne;\n } else {\n a = FC_NN(a.sign, a.layer + 1, Math.log10(a.mag)) as this;\n }\n }\n }\n\n //handle all 4 layer 1+ cases individually\n if (a.sign > 0 && a.mag >= 0) {\n return FC(a.sign, a.layer + 1, a.mag);\n }\n if (a.sign < 0 && a.mag >= 0) {\n return FC(-a.sign, a.layer + 1, -a.mag);\n }\n //both the negative mag cases are identical: one +/- rounding error\n return Decimal.dOne;\n }\n\n public pow_base(value: DecimalSource): Decimal {\n return D(value).pow(this);\n }\n\n public root(value: DecimalSource): Decimal {\n const decimal = D(value);\n return this.pow(decimal.recip());\n }\n\n public factorial(): Decimal {\n if (this.mag < 0) {\n return this.add(1).gamma();\n } else if (this.layer === 0) {\n return this.add(1).gamma();\n } else if (this.layer === 1) {\n return Decimal.exp(Decimal.mul(this, Decimal.ln(this).sub(1)));\n } else {\n return Decimal.exp(this);\n }\n }\n\n //from HyperCalc source code\n public gamma(): Decimal {\n if (this.mag < 0) {\n return this.recip();\n } else if (this.layer === 0) {\n if (this.lt(FC_NN(1, 0, 24))) {\n return D(f_gamma(this.sign * this.mag));\n }\n\n const t = this.mag - 1;\n let l = 0.9189385332046727; //0.5*Math.log(2*Math.PI)\n l = l + (t + 0.5) * Math.log(t);\n l = l - t;\n const n2 = t * t;\n let np = t;\n let lm = 12 * np;\n let adj = 1 / lm;\n let l2 = l + adj;\n if (l2 === l) {\n return Decimal.exp(l);\n }\n\n l = l2;\n np = np * n2;\n lm = 360 * np;\n adj = 1 / lm;\n l2 = l - adj;\n if (l2 === l) {\n return Decimal.exp(l);\n }\n\n l = l2;\n np = np * n2;\n lm = 1260 * np;\n let lt = 1 / lm;\n l = l + lt;\n np = np * n2;\n lm = 1680 * np;\n lt = 1 / lm;\n l = l - lt;\n return Decimal.exp(l);\n } else if (this.layer === 1) {\n return Decimal.exp(Decimal.mul(this, Decimal.ln(this).sub(1)));\n } else {\n return Decimal.exp(this);\n }\n }\n\n public lngamma(): Decimal {\n return this.gamma().ln();\n }\n\n public exp(): Decimal {\n if (this.mag < 0) {\n return Decimal.dOne;\n }\n if (this.layer === 0 && this.mag <= 709.7) {\n return D(Math.exp(this.sign * this.mag));\n } else if (this.layer === 0) {\n return FC(1, 1, this.sign * Math.log10(Math.E) * this.mag);\n } else if (this.layer === 1) {\n return FC(1, 2, this.sign * (Math.log10(0.4342944819032518) + this.mag));\n } else {\n return FC(1, this.layer + 1, this.sign * this.mag);\n }\n }\n\n public sqr(): Decimal {\n return this.pow(2);\n }\n\n public sqrt(): Decimal {\n if (this.layer === 0) {\n return D(Math.sqrt(this.sign * this.mag));\n } else if (this.layer === 1) {\n return FC(1, 2, Math.log10(this.mag) - 0.3010299956639812);\n } else {\n const result = Decimal.div(FC_NN(this.sign, this.layer - 1, this.mag), FC_NN(1, 0, 2));\n result.layer += 1;\n result.normalize();\n return result;\n }\n }\n\n public cube(): Decimal {\n return this.pow(3);\n }\n\n public cbrt(): Decimal {\n return this.pow(1 / 3);\n }\n\n //Tetration/tetrate: The result of exponentiating 'this' to 'this' 'height' times in a row. https://en.wikipedia.org/wiki/Tetration\n //If payload != 1, then this is 'iterated exponentiation', the result of exping (payload) to base (this) (height) times. https://andydude.github.io/tetration/archives/tetration2/ident.html\n //Works with negative and positive real heights.\n public tetrate(height = 2, payload: DecimalSource = FC_NN(1, 0, 1)): Decimal {\n //x^^1 == x\n if (height === 1) {\n return Decimal.pow(this, payload);\n }\n //x^^0 == 1\n if (height === 0) {\n return new Decimal(payload);\n }\n //1^^x == 1\n if (this.eq(Decimal.dOne)) {\n return Decimal.dOne;\n }\n //-1^^x == -1\n if (this.eq(-1)) {\n return Decimal.pow(this, payload);\n }\n\n if (height === Number.POSITIVE_INFINITY) {\n const this_num = this.toNumber();\n //within the convergence range?\n if (this_num <= 1.44466786100976613366 && this_num >= 0.06598803584531253708) {\n //hotfix for the very edge of the number range not being handled properly\n if (this_num > 1.444667861009099) {\n return new Decimal(Math.E);\n }\n //Formula for infinite height power tower.\n const negln = Decimal.ln(this).neg();\n return negln.lambertw().div(negln);\n } else if (this_num > 1.44466786100976613366) {\n //explodes to infinity\n return new Decimal(Number.POSITIVE_INFINITY);\n } else {\n //0.06598803584531253708 > this_num >= 0: never converges\n //this_num < 0: quickly becomes a complex number\n return Decimal.dNaN;\n }\n }\n\n //0^^x oscillates if we define 0^0 == 1 (which in javascript land we do), since then 0^^1 is 0, 0^^2 is 1, 0^^3 is 0, etc. payload is ignored\n //using the linear approximation for height (TODO: don't know a better way to calculate it ATM, but it wouldn't surprise me if it's just NaN)\n if (this.eq(Decimal.dZero)) {\n let result = Math.abs((height + 1) % 2);\n if (result > 1) {\n result = 2 - result;\n }\n return new Decimal(result);\n }\n\n if (height < 0) {\n return Decimal.iteratedlog(payload, this, -height);\n }\n\n payload = D(payload);\n const oldheight = height;\n height = Math.trunc(height);\n const fracheight = oldheight - height;\n\n if (this.gt(Decimal.dZero) && this.lte(1.44466786100976613366)) {\n //similar to 0^^n, flip-flops between two values, converging slowly (or if it's below 0.06598803584531253708, never. so once again, the fractional part at the end will be a linear approximation (TODO: again pending knowledge of how to approximate better, although tbh I think it should in reality just be NaN)\n height = Math.min(10000, height);\n for (let i = 0; i < height; ++i) {\n const old_payload: Decimal = payload;\n payload = this.pow(payload);\n //stop early if we converge\n if (old_payload.eq(payload)) {\n return payload;\n }\n }\n if (fracheight != 0) {\n const next_payload = this.pow(payload);\n return payload.mul(1 - fracheight).add(next_payload.mul(fracheight));\n }\n return payload;\n }\n //TODO: base < 0, but it's hard for me to reason about (probably all non-integer heights are NaN automatically?)\n\n if (fracheight !== 0) {\n if (payload.eq(Decimal.dOne)) {\n //TODO: for bases above 10, revert to old linear approximation until I can think of something better\n if (this.gt(10)) {\n payload = this.pow(fracheight);\n } else {\n payload = D(Decimal.tetrate_critical(this.toNumber(), fracheight));\n //TODO: until the critical section grid can handle numbers below 2, scale them to the base\n //TODO: maybe once the critical section grid has very large bases, this math can be appropriate for them too? I'll think about it\n if (this.lt(2)) {\n payload = payload\n .sub(1)\n .mul(this.minus(1))\n .plus(1);\n }\n }\n } else {\n if (this.eq(10)) {\n payload = payload.layeradd10(fracheight);\n } else {\n payload = payload.layeradd(fracheight, this);\n }\n }\n }\n\n for (let i = 0; i < height; ++i) {\n payload = this.pow(payload);\n //bail if we're NaN\n if (!isFinite(payload.layer) || !isFinite(payload.mag)) {\n return payload.normalize();\n }\n //shortcut\n if (payload.layer - this.layer > 3) {\n return FC_NN(payload.sign, payload.layer + (height - i - 1), payload.mag);\n }\n //give up after 10000 iterations if nothing is happening\n if (i > 10000) {\n return payload;\n }\n }\n return payload;\n }\n\n //iteratedexp/iterated exponentiation: - all cases handled in tetrate, so just call it\n public iteratedexp(height = 2, payload = FC_NN(1, 0, 1)): Decimal {\n return this.tetrate(height, payload);\n }\n\n //iterated log/repeated log: The result of applying log(base) 'times' times in a row. Approximately equal to subtracting (times) from the number's slog representation. Equivalent to tetrating to a negative height.\n //Works with negative and positive real heights.\n public iteratedlog(base: DecimalSource = 10, times = 1): Decimal {\n if (times < 0) {\n return Decimal.tetrate(base, -times, this);\n }\n\n base = D(base);\n let result = D(this);\n const fulltimes = times;\n times = Math.trunc(times);\n const fraction = fulltimes - times;\n if (result.layer - base.layer > 3) {\n const layerloss = Math.min(times, result.layer - base.layer - 3);\n times -= layerloss;\n result.layer -= layerloss;\n }\n\n for (let i = 0; i < times; ++i) {\n result = result.log(base);\n //bail if we're NaN\n if (!isFinite(result.layer) || !isFinite(result.mag)) {\n return result.normalize();\n }\n //give up after 10000 iterations if nothing is happening\n if (i > 10000) {\n return result;\n }\n }\n\n //handle fractional part\n if (fraction > 0 && fraction < 1) {\n if (base.eq(10)) {\n result = result.layeradd10(-fraction);\n } else {\n result = result.layeradd(-fraction, base);\n }\n }\n\n return result;\n }\n\n //Super-logarithm, one of tetration's inverses, tells you what size power tower you'd have to tetrate base to to get number. By definition, will never be higher than 1.8e308 in break_eternity.js, since a power tower 1.8e308 numbers tall is the largest representable number.\n // https://en.wikipedia.org/wiki/Super-logarithm\n public slog(base: DecimalSource = 10): Decimal {\n base = D(base);\n\n //special cases:\n //slog base 0 or lower is NaN\n if (base.lte(Decimal.dZero)) {\n return Decimal.dNaN;\n }\n //slog base 1 is NaN\n if (base.eq(Decimal.dOne)) {\n return Decimal.dNaN;\n }\n //need to handle these small, wobbling bases specially\n if (base.lt(Decimal.dOne)) {\n if (this.eq(Decimal.dOne)) {\n return Decimal.dZero;\n }\n if (this.eq(Decimal.dZero)) {\n return Decimal.dNegOne;\n }\n //0 < this < 1: ambiguous (happens multiple times)\n //this < 0: impossible (as far as I can tell)\n //this > 1: partially complex (http://myweb.astate.edu/wpaulsen/tetcalc/tetcalc.html base 0.25 for proof)\n return Decimal.dNaN;\n }\n //slog_n(0) is -1\n if (this.mag < 0 || this.eq(Decimal.dZero)) {\n return Decimal.dNegOne;\n }\n\n let result = 0;\n let copy = D(this);\n if (copy.layer - base.layer > 3) {\n const layerloss = copy.layer - base.layer - 3;\n result += layerloss;\n copy.layer -= layerloss;\n }\n\n for (let i = 0; i < 100; ++i) {\n if (copy.lt(Decimal.dZero)) {\n copy = Decimal.pow(base, copy);\n result -= 1;\n } else if (copy.lte(Decimal.dOne)) {\n return D(result + Decimal.slog_critical(base.toNumber(), copy.toNumber()));\n } else {\n result += 1;\n copy = Decimal.log(copy, base);\n }\n }\n return D(result);\n }\n\n //background info and tables of values for critical functions taken here: https://github.com/Patashu/break_eternity.js/issues/22\n public static slog_critical(base: number, height: number): number {\n //TODO: for bases above 10, revert to old linear approximation until I can think of something better\n if (base > 10) {\n return height - 1;\n }\n return Decimal.critical_section(base, height, critical_slog_values);\n }\n\n public static tetrate_critical(base: number, height: number): number {\n return Decimal.critical_section(base, height, critical_tetr_values);\n }\n\n public static critical_section(base: number, height: number, grid: number[][]): number {\n //this part is simple at least, since it's just 0.1 to 0.9\n height *= 10;\n if (height < 0) {\n height = 0;\n }\n if (height > 10) {\n height = 10;\n }\n //have to do this complicated song and dance since one of the critical_headers is Math.E, and in the future I'd like 1.5 as well\n if (base < 2) {\n base = 2;\n }\n if (base > 10) {\n base = 10;\n }\n let lower = 0;\n let upper = 0;\n //basically, if we're between bases, we interpolate each bases' relevant values together\n //then we interpolate based on what the fractional height is.\n //accuracy could be improved by doing a non-linear interpolation (maybe), by adding more bases and heights (definitely) but this is AFAIK the best you can get without running some pari.gp or mathematica program to calculate exact values\n for (let i = 0; i < critical_headers.length; ++i) {\n if (critical_headers[i] == base) {\n // exact match\n lower = grid[i][Math.floor(height)];\n upper = grid[i][Math.ceil(height)];\n break;\n } else if (critical_headers[i] < base && critical_headers[i + 1] > base) {\n // interpolate between this and the next\n const basefrac =\n (base - critical_headers[i]) / (critical_headers[i + 1] - critical_headers[i]);\n lower =\n grid[i][Math.floor(height)] * (1 - basefrac) +\n grid[i + 1][Math.floor(height)] * basefrac;\n upper =\n grid[i][Math.ceil(height)] * (1 - basefrac) +\n grid[i + 1][Math.ceil(height)] * basefrac;\n break;\n }\n }\n const frac = height - Math.floor(height);\n const result = lower * (1 - frac) + upper * frac;\n return result;\n }\n\n //Function for adding/removing layers from a Decimal, even fractional layers (e.g. its slog10 representation).\n //Moved this over to use the same critical section as tetrate/slog.\n public layeradd10(diff: DecimalSource): Decimal {\n diff = Decimal.fromValue_noAlloc(diff).toNumber();\n const result = D(this);\n if (diff >= 1) {\n //bug fix: if result is very smol (mag < 0, layer > 0) turn it into 0 first\n if (result.mag < 0 && result.layer > 0) {\n result.sign = 0;\n result.mag = 0;\n result.layer = 0;\n } else if (result.sign === -1 && result.layer == 0) {\n //bug fix - for stuff like -3.layeradd10(1) we need to move the sign to the mag\n result.sign = 1;\n result.mag = -result.mag;\n }\n const layeradd = Math.trunc(diff);\n diff -= layeradd;\n result.layer += layeradd;\n }\n if (diff <= -1) {\n const layeradd = Math.trunc(diff);\n diff -= layeradd;\n result.layer += layeradd;\n if (result.layer < 0) {\n for (let i = 0; i < 100; ++i) {\n result.layer++;\n result.mag = Math.log10(result.mag);\n if (!isFinite(result.mag)) {\n //another bugfix: if we hit -Infinity mag, then we should return negative infinity, not 0. 0.layeradd10(-1) h its this\n if (result.sign === 0) {\n result.sign = 1;\n }\n //also this, for 0.layeradd10(-2)\n if (result.layer < 0) {\n result.layer = 0;\n }\n return result.normalize();\n }\n if (result.layer >= 0) {\n break;\n }\n }\n }\n }\n\n while (result.layer < 0) {\n result.layer++;\n result.mag = Math.log10(result.mag);\n }\n //bugfix: before we normalize: if we started with 0, we now need to manually fix a layer ourselves!\n if (result.sign === 0) {\n result.sign = 1;\n if (result.mag === 0 && result.layer >= 1) {\n result.layer -= 1;\n result.mag = 1;\n }\n }\n result.normalize();\n\n //layeradd10: like adding 'diff' to the number's slog(base) representation. Very similar to tetrate base 10 and iterated log base 10. Also equivalent to adding a fractional amount to the number's layer in its break_eternity.js representation.\n if (diff !== 0) {\n return result.layeradd(diff, 10); //safe, only calls positive height 1 payload tetration, slog and log\n }\n\n return result;\n }\n\n //layeradd: like adding 'diff' to the number's slog(base) representation. Very similar to tetrate base 'base' and iterated log base 'base'.\n public layeradd(diff: number, base: DecimalSource): Decimal {\n const slogthis = this.slog(base).toNumber();\n const slogdest = slogthis + diff;\n if (slogdest >= 0) {\n return Decimal.tetrate(base, slogdest);\n } else if (!Number.isFinite(slogdest)) {\n return Decimal.dNaN;\n } else if (slogdest >= -1) {\n return Decimal.log(Decimal.tetrate(base, slogdest + 1), base);\n } else {\n return Decimal.log(Decimal.log(Decimal.tetrate(base, slogdest + 2), base), base);\n }\n }\n\n //The Lambert W function, also called the omega function or product logarithm, is the solution W(x) === x*e^x.\n // https://en.wikipedia.org/wiki/Lambert_W_function\n //Some special values, for testing: https://en.wikipedia.org/wiki/Lambert_W_function#Special_values\n public lambertw(): Decimal {\n if (this.lt(-0.3678794411710499)) {\n throw Error(\"lambertw is unimplemented for results less than -1, sorry!\");\n } else if (this.mag < 0) {\n return D(f_lambertw(this.toNumber()));\n } else if (this.layer === 0) {\n return D(f_lambertw(this.sign * this.mag));\n } else if (this.layer === 1) {\n return d_lambertw(this);\n } else if (this.layer === 2) {\n return d_lambertw(this);\n }\n if (this.layer >= 3) {\n return FC_NN(this.sign, this.layer - 1, this.mag);\n }\n\n throw \"Unhandled behavior in lambertw()\";\n }\n\n //The super square-root function - what number, tetrated to height 2, equals this?\n //Other sroots are possible to calculate probably through guess and check methods, this one is easy though.\n // https://en.wikipedia.org/wiki/Tetration#Super-root\n public ssqrt(): Decimal {\n if (this.sign == 1 && this.layer >= 3) {\n return FC_NN(this.sign, this.layer - 1, this.mag);\n }\n const lnx = this.ln();\n return lnx.div(lnx.lambertw());\n }\n /*\n\nUnit tests for tetrate/iteratedexp/iteratedlog/layeradd10/layeradd/slog:\n(note: these won't be exactly precise with the new slog implementation, but that's okay)\n\nfor (var i = 0; i < 1000; ++i)\n{\n var first = Math.random()*100;\n var both = Math.random()*100;\n var expected = first+both+1;\n var result = new Decimal(10).layeradd10(first).layeradd10(both).slog();\n if (Number.isFinite(result.mag) && !Decimal.eq_tolerance(expected, result))\n {\n console.log(first + \", \" + both);\n }\n}\n\nfor (var i = 0; i < 1000; ++i)\n{\n var first = Math.random()*100;\n var both = Math.random()*100;\n first += both;\n var expected = first-both+1;\n var result = new Decimal(10).layeradd10(first).layeradd10(-both).slog();\n if (Number.isFinite(result.mag) && !Decimal.eq_tolerance(expected, result))\n {\n console.log(first + \", \" + both);\n }\n}\n\nfor (var i = 0; i < 1000; ++i)\n{\n var first = Math.random()*100;\n var both = Math.random()*100;\n var base = Math.random()*8+2;\n var expected = first+both+1;\n var result = new Decimal(base).layeradd(first, base).layeradd(both, base).slog(base);\n if (Number.isFinite(result.mag) && !Decimal.eq_tolerance(expected, result))\n {\n console.log(first + \", \" + both);\n }\n}\n\nfor (var i = 0; i < 1000; ++i)\n{\n var first = Math.random()*100;\n var both = Math.random()*100;\n var base = Math.random()*8+2;\n first += both;\n var expected = first-both+1;\n var result = new Decimal(base).layeradd(first, base).layeradd(-both, base).slog(base);\n if (Number.isFinite(result.mag) && !Decimal.eq_tolerance(expected, result))\n {\n console.log(first + \", \" + both);\n }\n}\n\nfor (var i = 0; i < 1000; ++i)\n{\nvar first = Math.round((Math.random()*30))/10;\nvar both = Math.round((Math.random()*30))/10;\nvar tetrateonly = Decimal.tetrate(10, first);\nvar tetrateandlog = Decimal.tetrate(10, first+both).iteratedlog(10, both);\nif (!Decimal.eq_tolerance(tetrateonly, tetrateandlog))\n{\n console.log(first + \", \" + both);\n}\n}\n\nfor (var i = 0; i < 1000; ++i)\n{\nvar first = Math.round((Math.random()*30))/10;\nvar both = Math.round((Math.random()*30))/10;\nvar base = Math.random()*8+2;\nvar tetrateonly = Decimal.tetrate(base, first);\nvar tetrateandlog = Decimal.tetrate(base, first+both).iteratedlog(base, both);\nif (!Decimal.eq_tolerance(tetrateonly, tetrateandlog))\n{\n console.log(first + \", \" + both);\n}\n}\n\nfor (var i = 0; i < 1000; ++i)\n{\nvar first = Math.round((Math.random()*30))/10;\nvar both = Math.round((Math.random()*30))/10;\nvar base = Math.random()*8+2;\nvar tetrateonly = Decimal.tetrate(base, first, base);\nvar tetrateandlog = Decimal.tetrate(base, first+both, base).iteratedlog(base, both);\nif (!Decimal.eq_tolerance(tetrateonly, tetrateandlog))\n{\n console.log(first + \", \" + both);\n}\n}\n\nfor (var i = 0; i < 1000; ++i)\n{\n var xex = new Decimal(-0.3678794411710499+Math.random()*100);\n var x = Decimal.lambertw(xex);\n if (!Decimal.eq_tolerance(xex, x.mul(Decimal.exp(x))))\n {\n console.log(xex);\n }\n}\n\nfor (var i = 0; i < 1000; ++i)\n{\n var xex = new Decimal(-0.3678794411710499+Math.exp(Math.random()*100));\n var x = Decimal.lambertw(xex);\n if (!Decimal.eq_tolerance(xex, x.mul(Decimal.exp(x))))\n {\n console.log(xex);\n }\n}\n\nfor (var i = 0; i < 1000; ++i)\n{\n var a = Decimal.randomDecimalForTesting(Math.random() > 0.5 ? 0 : 1);\n var b = Decimal.randomDecimalForTesting(Math.random() > 0.5 ? 0 : 1);\n if (Math.random() > 0.5) { a = a.recip(); }\n if (Math.random() > 0.5) { b = b.recip(); }\n var c = a.add(b).toNumber();\n if (Number.isFinite(c) && !Decimal.eq_tolerance(c, a.toNumber()+b.toNumber()))\n {\n console.log(a + \", \" + b);\n }\n}\n\nfor (var i = 0; i < 100; ++i)\n{\n var a = Decimal.randomDecimalForTesting(Math.round(Math.random()*4));\n var b = Decimal.randomDecimalForTesting(Math.round(Math.random()*4));\n if (Math.random() > 0.5) { a = a.recip(); }\n if (Math.random() > 0.5) { b = b.recip(); }\n var c = a.mul(b).toNumber();\n if (Number.isFinite(c) && Number.isFinite(a.toNumber()) && Number.isFinite(b.toNumber()) && a.toNumber() != 0 && b.toNumber() != 0 && c != 0 && !Decimal.eq_tolerance(c, a.toNumber()*b.toNumber()))\n {\n console.log(\"Test 1: \" + a + \", \" + b);\n }\n else if (!Decimal.mul(a.recip(), b.recip()).eq_tolerance(Decimal.mul(a, b).recip()))\n {\n console.log(\"Test 3: \" + a + \", \" + b);\n }\n}\n\nfor (var i = 0; i < 10; ++i)\n{\n var a = Decimal.randomDecimalForTesting(Math.round(Math.random()*4));\n var b = Decimal.randomDecimalForTesting(Math.round(Math.random()*4));\n if (Math.random() > 0.5 && a.sign !== 0) { a = a.recip(); }\n if (Math.random() > 0.5 && b.sign !== 0) { b = b.recip(); }\n var c = a.pow(b);\n var d = a.root(b.recip());\n var e = a.pow(b.recip());\n var f = a.root(b);\n\n if (!c.eq_tolerance(d) && a.sign !== 0 && b.sign !== 0)\n {\n console.log(\"Test 1: \" + a + \", \" + b);\n }\n if (!e.eq_tolerance(f) && a.sign !== 0 && b.sign !== 0)\n {\n console.log(\"Test 2: \" + a + \", \" + b);\n }\n}\n\nfor (var i = 0; i < 10; ++i)\n{\n var a = Math.round(Math.random()*18-9);\n var b = Math.round(Math.random()*100-50);\n var c = Math.round(Math.random()*18-9);\n var d = Math.round(Math.random()*100-50);\n console.log(\"Decimal.pow(Decimal.fromMantissaExponent(\" + a + \", \" + b + \"), Decimal.fromMantissaExponent(\" + c + \", \" + d + \")).toString()\");\n}\n\n*/\n\n //Pentation/pentate: The result of tetrating 'height' times in a row. An absurdly strong operator - Decimal.pentate(2, 4.28) and Decimal.pentate(10, 2.37) are already too huge for break_eternity.js!\n // https://en.wikipedia.org/wiki/Pentation\n public pentate(height = 2, payload: DecimalSource = FC_NN(1, 0, 1)): Decimal {\n payload = D(payload);\n const oldheight = height;\n height = Math.trunc(height);\n const fracheight = oldheight - height;\n\n //I have no idea if this is a meaningful approximation for pentation to continuous heights, but it is monotonic and continuous.\n if (fracheight !== 0) {\n if (payload.eq(Decimal.dOne)) {\n ++height;\n payload = new Decimal(fracheight);\n } else {\n if (this.eq(10)) {\n payload = payload.layeradd10(fracheight);\n } else {\n payload = payload.layeradd(fracheight, this);\n }\n }\n }\n\n for (let i = 0; i < height; ++i) {\n payload = this.tetrate(payload.toNumber());\n //bail if we're NaN\n if (!isFinite(payload.layer) || !isFinite(payload.mag)) {\n return payload.normalize();\n }\n //give up after 10 iterations if nothing is happening\n if (i > 10) {\n return payload;\n }\n }\n\n return payload;\n }\n\n // trig functions!\n public sin(): this | Decimal {\n if (this.mag < 0) {\n return this;\n }\n if (this.layer === 0) {\n return D(Math.sin(this.sign * this.mag));\n }\n return FC_NN(0, 0, 0);\n }\n\n public cos(): Decimal {\n if (this.mag < 0) {\n return Decimal.dOne;\n }\n if (this.layer === 0) {\n return D(Math.cos(this.sign * this.mag));\n }\n return FC_NN(0, 0, 0);\n }\n\n public tan(): this | Decimal {\n if (this.mag < 0) {\n return this;\n }\n if (this.layer === 0) {\n return D(Math.tan(this.sign * this.mag));\n }\n return FC_NN(0, 0, 0);\n }\n\n public asin(): this | Decimal {\n if (this.mag < 0) {\n return this;\n }\n if (this.layer === 0) {\n return D(Math.asin(this.sign * this.mag));\n }\n return FC_NN(Number.NaN, Number.NaN, Number.NaN);\n }\n\n public acos(): Decimal {\n if (this.mag < 0) {\n return D(Math.acos(this.toNumber()));\n }\n if (this.layer === 0) {\n return D(Math.acos(this.sign * this.mag));\n }\n return FC_NN(Number.NaN, Number.NaN, Number.NaN);\n }\n\n public atan(): this | Decimal {\n if (this.mag < 0) {\n return this;\n }\n if (this.layer === 0) {\n return D(Math.atan(this.sign * this.mag));\n }\n return D(Math.atan(this.sign * 1.8e308));\n }\n\n public sinh(): Decimal {\n return this.exp()\n .sub(this.negate().exp())\n .div(2);\n }\n\n public cosh(): Decimal {\n return this.exp()\n .add(this.negate().exp())\n .div(2);\n }\n\n public tanh(): Decimal {\n return this.sinh().div(this.cosh());\n }\n\n public asinh(): Decimal {\n return Decimal.ln(\n this.add(\n this.sqr()\n .add(1)\n .sqrt()\n )\n );\n }\n\n public acosh(): Decimal {\n return Decimal.ln(\n this.add(\n this.sqr()\n .sub(1)\n .sqrt()\n )\n );\n }\n\n public atanh(): Decimal {\n if (this.abs().gte(1)) {\n return FC_NN(Number.NaN, Number.NaN, Number.NaN);\n }\n\n return Decimal.ln(this.add(1).div(D(1).sub(this))).div(2);\n }\n\n /**\n * Joke function from Realm Grinder\n */\n public ascensionPenalty(ascensions: DecimalSource): Decimal {\n if (ascensions === 0) {\n return this;\n }\n\n return this.root(Decimal.pow(10, ascensions));\n }\n\n /**\n * Joke function from Cookie Clicker. It's 'egg'\n */\n public egg(): Decimal {\n return this.add(9);\n }\n\n public lessThanOrEqualTo(other: DecimalSource): boolean {\n return this.cmp(other) < 1;\n }\n\n public lessThan(other: DecimalSource): boolean {\n return this.cmp(other) < 0;\n }\n\n public greaterThanOrEqualTo(other: DecimalSource): boolean {\n return this.cmp(other) > -1;\n }\n\n public greaterThan(other: DecimalSource): boolean {\n return this.cmp(other) > 0;\n }\n\n // return Decimal;\n}\n\n// return Decimal;\n","import Decimal, { DecimalSource } from \"lib/break_eternity\";\nimport projInfo from \"data/projInfo.json\";\n\nexport default Decimal;\n\nconst decimalOne = new Decimal(1);\n\nexport function exponentialFormat(num: DecimalSource, precision: number, mantissa = true): string {\n let e = Decimal.log10(num).floor();\n let m = Decimal.div(num, Decimal.pow(10, e));\n if (m.toStringWithDecimalPlaces(precision) === \"10\") {\n m = decimalOne;\n e = e.add(1);\n }\n const eString = e.gte(1e9)\n ? format(e, Math.max(Math.max(precision, 3), projInfo.defaultDecimalsShown))\n : e.gte(10000)\n ? commaFormat(e, 0)\n : e.toStringWithDecimalPlaces(0);\n if (mantissa) {\n return m.toStringWithDecimalPlaces(precision) + \"e\" + eString;\n } else {\n return \"e\" + eString;\n }\n}\n\nexport function commaFormat(num: DecimalSource, precision: number): string {\n if (num === null || num === undefined) {\n return \"NaN\";\n }\n num = new Decimal(num);\n if (num.mag < 0.001) {\n return (0).toFixed(precision);\n }\n const init = num.toStringWithDecimalPlaces(precision);\n const portions = init.split(\".\");\n portions[0] = portions[0].replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, \"$1,\");\n if (portions.length == 1) return portions[0];\n return portions[0] + \".\" + portions[1];\n}\n\nexport function regularFormat(num: DecimalSource, precision: number): string {\n if (num === null || num === undefined) {\n return \"NaN\";\n }\n num = new Decimal(num);\n if (num.mag < 0.0001) {\n return (0).toFixed(precision);\n }\n if (num.mag < 0.1 && precision !== 0) {\n precision = Math.max(Math.max(precision, 4), projInfo.defaultDecimalsShown);\n }\n return num.toStringWithDecimalPlaces(precision);\n}\n\nconst eeee1000 = new Decimal(\"eeee1000\");\nconst e100000 = new Decimal(\"e100000\");\nconst e1000 = new Decimal(\"e1000\");\nconst e9 = new Decimal(1e9);\nconst e6 = new Decimal(1e6);\nconst e3 = new Decimal(1e3);\nconst nearOne = new Decimal(0.98);\nconst thousandth = new Decimal(0.001);\nconst zero = new Decimal(0);\nexport function format(num: DecimalSource, precision?: number, small?: boolean): string {\n if (precision == null) precision = projInfo.defaultDecimalsShown;\n small = small ?? projInfo.defaultShowSmall;\n num = new Decimal(num);\n if (isNaN(num.sign) || isNaN(num.layer) || isNaN(num.mag)) {\n return \"NaN\";\n }\n if (num.sign < 0) {\n return \"-\" + format(num.neg(), precision);\n }\n if (num.mag === Number.POSITIVE_INFINITY) {\n return \"Infinity\";\n }\n if (num.gte(eeee1000)) {\n const slog = num.slog();\n if (slog.gte(e6)) {\n return \"F\" + format(slog.floor());\n } else {\n return (\n Decimal.pow(10, slog.sub(slog.floor())).toStringWithDecimalPlaces(3) +\n \"F\" +\n commaFormat(slog.floor(), 0)\n );\n }\n } else if (num.gte(e100000)) {\n return exponentialFormat(num, 0, false);\n } else if (num.gte(e1000)) {\n return exponentialFormat(num, 0);\n } else if (num.gte(e9)) {\n return exponentialFormat(num, precision);\n } else if (num.gte(e3)) {\n return commaFormat(num, 0);\n } else if (num.gte(thousandth) || !small) {\n return regularFormat(num, precision);\n } else if (num.eq(zero)) {\n return (0).toFixed(precision);\n }\n\n num = invertOOM(num);\n if (num.lt(e1000)) {\n const val = exponentialFormat(num, precision);\n return val.replace(/([^(?:e|F)]*)$/, \"-$1\");\n } else {\n return format(num, precision) + \"⁻¹\";\n }\n}\n\nexport function formatWhole(num: DecimalSource): string {\n num = new Decimal(num);\n if (num.sign < 0) {\n return \"-\" + formatWhole(num.neg());\n }\n if (num.gte(e9)) {\n return format(num);\n }\n if (num.lte(nearOne) && !num.eq(zero)) {\n return format(num);\n }\n return format(num, 0);\n}\n\nexport function formatTime(seconds: DecimalSource): string {\n if (Decimal.lt(seconds, 0)) {\n return \"-\" + formatTime(Decimal.neg(seconds));\n }\n if (Decimal.gt(seconds, 2 ** 51)) {\n // integer precision limit\n return format(Decimal.div(seconds, 31536000)) + \"y\";\n }\n seconds = new Decimal(seconds).toNumber();\n if (seconds < 60) {\n return format(seconds) + \"s\";\n } else if (seconds < 3600) {\n return formatWhole(Math.floor(seconds / 60)) + \"m \" + format(seconds % 60) + \"s\";\n } else if (seconds < 86400) {\n return (\n formatWhole(Math.floor(seconds / 3600)) +\n \"h \" +\n formatWhole(Math.floor(seconds / 60) % 60) +\n \"m \" +\n formatWhole(seconds % 60) +\n \"s\"\n );\n } else if (seconds < 31536000) {\n return (\n formatWhole(Math.floor(seconds / 84600) % 365) +\n \"d \" +\n formatWhole(Math.floor(seconds / 3600) % 24) +\n \"h \" +\n formatWhole(Math.floor(seconds / 60) % 60) +\n \"m\"\n );\n } else {\n return (\n formatWhole(Math.floor(seconds / 31536000)) +\n \"y \" +\n formatWhole(Math.floor(seconds / 84600) % 365) +\n \"d \" +\n formatWhole(Math.floor(seconds / 3600) % 24) +\n \"h\"\n );\n }\n}\n\nexport function toPlaces(x: DecimalSource, precision: number, maxAccepted: DecimalSource): string {\n x = new Decimal(x);\n let result = x.toStringWithDecimalPlaces(precision);\n if (new Decimal(result).gte(maxAccepted)) {\n result = Decimal.sub(maxAccepted, Math.pow(0.1, precision)).toStringWithDecimalPlaces(\n precision\n );\n }\n return result;\n}\n\n// Will also display very small numbers\nexport function formatSmall(x: DecimalSource, precision?: number): string {\n return format(x, precision, true);\n}\n\nexport function invertOOM(x: DecimalSource): Decimal {\n let e = Decimal.log10(x).ceil();\n const m = Decimal.div(x, Decimal.pow(10, e));\n e = e.neg();\n x = new Decimal(10).pow(e).times(m);\n\n return x;\n}\n","// Import Decimal and numberUtils from a different file to globally change which big num library gets used\n// This way switching out big number libraries just needs to happen here, not every file that needs big numbers\nimport { DecimalSource as RawDecimalSource } from \"lib/break_eternity\";\nimport Decimal, * as numberUtils from \"util/break_eternity\";\n\nexport const {\n exponentialFormat,\n commaFormat,\n regularFormat,\n format,\n formatWhole,\n formatTime,\n toPlaces,\n formatSmall,\n invertOOM\n} = numberUtils;\n\nexport type DecimalSource = RawDecimalSource;\n\nwindow.Decimal = Decimal;\nwindow.exponentialFormat = exponentialFormat;\nwindow.commaFormat = commaFormat;\nwindow.regularFormat = regularFormat;\nwindow.format = format;\nwindow.formatWhole = formatWhole;\nwindow.formatTime = formatTime;\nwindow.toPlaces = toPlaces;\nwindow.formatSmall = formatSmall;\nwindow.invertOOM = invertOOM;\n\nexport default Decimal;\n","// Reference:\n// https://stackoverflow.com/questions/7225407/convert-camelcasetext-to-sentence-case-text\nexport function camelToTitle(camel: string): string {\n let title = camel.replace(/([A-Z])/g, \" $1\");\n title = title.charAt(0).toUpperCase() + title.slice(1);\n return title;\n}\n\nexport function isPlainObject(object: unknown): boolean {\n return Object.prototype.toString.call(object) === \"[object Object]\";\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isFunction(func: unknown): func is Function {\n return typeof func === \"function\";\n}\n","import { computed, Ref } from \"vue\";\nimport { isFunction } from \"./common\";\n\nexport const DoNotCache = Symbol(\"DoNotCache\");\n\nexport type Computable = T | Ref | (() => T);\nexport type ProcessedComputable = T | Ref;\nexport type GetComputableType = T extends { [DoNotCache]: true }\n ? T\n : T extends () => infer S\n ? Ref]\n : undefined extends T\n ? undefined\n : T;\nexport type GetComputableTypeWithDefault = undefined extends T\n ? S\n : GetComputableType>;\nexport type UnwrapComputableType = T extends Ref ? S : T extends () => infer S ? S : T;\n\nexport type ComputableKeysOf = Pick<\n T,\n {\n [K in keyof T]: T[K] extends Computable ? K : never;\n }[keyof T]\n>;\n\n// TODO fix the typing of this function, such that casting isn't necessary and can be used to\n// detect if a createX function is validly written\nexport function processComputable>(\n obj: T,\n key: S\n): asserts obj is T & { [K in S]: ProcessedComputable> } {\n const computable = obj[key];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isFunction(computable) && computable.length === 0 && !(computable as any)[DoNotCache]) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n obj[key] = computed(computable.bind(obj));\n }\n}\n\nexport function convertComputable(obj: Computable): ProcessedComputable {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isFunction(obj) && !(obj as any)[DoNotCache]) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n obj = computed(obj);\n }\n return obj as ProcessedComputable;\n}\n","import Decimal from \"./bignum\";\n\nexport const ProxyState = Symbol(\"ProxyState\");\nexport const ProxyPath = Symbol(\"ProxyPath\");\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type ProxiedWithState = NonNullable extends Record\n ? NonNullable extends Decimal\n ? T\n : {\n [K in keyof T]: ProxiedWithState;\n } & {\n [ProxyState]: T;\n [ProxyPath]: string[];\n }\n : T;\n\n// Takes a function that returns an object and pretends to be that object\n// Note that the object is lazily calculated\nexport function createLazyProxy(\n objectFunc: (baseObject: S) => T & S,\n baseObject: S = {} as S\n): T {\n const obj: S & Partial = baseObject;\n let calculated = false;\n function calculateObj(): T {\n if (!calculated) {\n Object.assign(obj, objectFunc(obj));\n calculated = true;\n }\n return obj as S & T;\n }\n\n return new Proxy(obj, {\n get(target, key) {\n if (key === ProxyState) {\n return calculateObj();\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (calculateObj() as any)[key];\n },\n set(target, key, value) {\n // TODO give warning about this? It should only be done with caution\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (calculateObj() as any)[key] = value;\n return true;\n },\n has(target, key) {\n if (key === ProxyState) {\n return true;\n }\n return Reflect.has(calculateObj(), key);\n },\n ownKeys() {\n return Reflect.ownKeys(calculateObj());\n },\n getOwnPropertyDescriptor(target, key) {\n if (!calculated) {\n Object.assign(obj, objectFunc(obj));\n calculated = true;\n }\n return Object.getOwnPropertyDescriptor(target, key);\n }\n }) as S & T;\n}\n","import projInfo from \"data/projInfo.json\";\nimport player, { Player, PlayerData, stringifySave } from \"game/player\";\nimport settings, { loadSettings } from \"game/settings\";\nimport { ProxyState } from \"./proxies\";\nimport LZString from \"lz-string\";\n\nexport function setupInitialStore(player: Partial = {}): Player {\n return Object.assign(\n {\n id: `${projInfo.id}-0`,\n name: \"Default Save\",\n tabs: projInfo.initialTabs.slice(),\n time: Date.now(),\n autosave: true,\n offlineProd: true,\n offlineTime: 0,\n timePlayed: 0,\n keepGoing: false,\n modID: projInfo.id,\n modVersion: projInfo.versionNumber,\n layers: {}\n },\n player\n ) as Player;\n}\n\nexport function save(playerData?: PlayerData): string {\n let stringifiedSave = stringifySave(playerData ?? player[ProxyState]);\n switch (projInfo.saveEncoding) {\n default:\n console.warn(`Unknown save encoding: ${projInfo.saveEncoding}. Defaulting to lz`);\n case \"lz\":\n stringifiedSave = LZString.compressToUTF16(stringifiedSave);\n break;\n case \"base64\":\n stringifiedSave = btoa(unescape(encodeURIComponent(stringifiedSave)));\n break;\n case \"plain\":\n break;\n }\n localStorage.setItem((playerData ?? player[ProxyState]).id, stringifiedSave);\n return stringifiedSave;\n}\n\nexport async function load(): Promise {\n // Load global settings\n loadSettings();\n\n try {\n let save = localStorage.getItem(settings.active);\n if (save == null) {\n await loadSave(newSave());\n return;\n }\n if (save[0] === \"{\") {\n // plaintext. No processing needed\n } else if (save[0] === \"e\") {\n // Assumed to be base64, which starts with e\n save = decodeURIComponent(escape(atob(save)));\n } else if (save[0] === \"ᯡ\") {\n // Assumed to be lz, which starts with ᯡ\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n save = LZString.decompressFromUTF16(save)!;\n } else {\n throw `Unable to determine save encoding`;\n }\n const player = JSON.parse(save);\n if (player.modID !== projInfo.id) {\n await loadSave(newSave());\n return;\n }\n player.id = settings.active;\n await loadSave(player);\n } catch (e) {\n console.error(\"Failed to load save. Falling back to new save.\\n\", e);\n await loadSave(newSave());\n }\n}\n\nexport function newSave(): PlayerData {\n const id = getUniqueID();\n const player = setupInitialStore({ id });\n save(player);\n\n settings.saves.push(id);\n\n return player;\n}\n\nexport function getUniqueID(): string {\n let id,\n i = 0;\n do {\n id = `${projInfo.id}-${i++}`;\n } while (localStorage.getItem(id));\n return id;\n}\n\nexport async function loadSave(playerObj: Partial): Promise {\n console.info(\"Loading save\", playerObj);\n const { layers, removeLayer, addLayer } = await import(\"game/layers\");\n const { fixOldSave, getInitialLayers } = await import(\"data/projEntry\");\n\n for (const layer in layers) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n removeLayer(layers[layer]!);\n }\n getInitialLayers(playerObj).forEach(layer => addLayer(layer, playerObj));\n\n playerObj = setupInitialStore(playerObj);\n if (playerObj.offlineProd && playerObj.time) {\n if (playerObj.offlineTime == undefined) playerObj.offlineTime = 0;\n playerObj.offlineTime += (Date.now() - playerObj.time) / 1000;\n }\n playerObj.time = Date.now();\n if (playerObj.modVersion !== projInfo.versionNumber) {\n fixOldSave(playerObj.modVersion, playerObj);\n }\n\n Object.assign(player, playerObj);\n settings.active = player.id;\n}\n\nsetInterval(() => {\n if (player.autosave) {\n save();\n }\n}, 1000);\nwindow.onbeforeunload = () => {\n if (player.autosave) {\n save();\n }\n};\nwindow.save = save;\nexport const hardReset = (window.hardReset = async () => {\n await loadSave(newSave());\n});\n","\nimport { StyleValue } from \"features/feature\";\nimport { FeatureNode, NodesInjectionKey } from \"game/layers\";\nimport { Application } from \"pixi.js\";\nimport { processedPropType } from \"util/vue\";\nimport {\n defineComponent,\n inject,\n nextTick,\n onBeforeUnmount,\n onMounted,\n PropType,\n ref,\n unref\n} from \"vue\";\n\n// TODO get typing support on the Particles component\nexport default defineComponent({\n props: {\n style: processedPropType(String, Object, Array),\n classes: processedPropType>(Object),\n onInit: {\n type: Function as PropType<(app: Application) => void>,\n required: true\n },\n id: {\n type: String,\n required: true\n },\n onContainerResized: Function as PropType<(rect: DOMRect) => void>,\n onHotReload: Function as PropType\n },\n setup(props) {\n const app = ref(null);\n\n const resizeObserver = new ResizeObserver(updateBounds);\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const nodes = inject(NodesInjectionKey)!;\n\n const resizeListener = ref(null);\n\n onMounted(() => {\n // ResizeListener exists because ResizeObserver's don't work when told to observe an SVG element\n const resListener = resizeListener.value;\n if (resListener != null) {\n resizeObserver.observe(resListener);\n app.value = new Application({\n resizeTo: resListener,\n backgroundAlpha: 0\n });\n resizeListener.value?.appendChild(app.value.view);\n props.onInit(app.value as Application);\n }\n updateBounds();\n if (module.hot?.status() === \"apply\" && props.onHotReload) {\n nextTick(props.onHotReload);\n }\n });\n onBeforeUnmount(() => {\n app.value?.destroy();\n });\n\n let isDirty = true;\n function updateBounds() {\n if (isDirty) {\n isDirty = false;\n nextTick(() => {\n if (resizeListener.value != null && props.onContainerResized) {\n // TODO don't overlap with Links.vue\n (Object.values(nodes.value).filter(n => n) as FeatureNode[]).forEach(\n node => (node.rect = node.element.getBoundingClientRect())\n );\n props.onContainerResized(resizeListener.value.getBoundingClientRect());\n app.value?.resize();\n }\n isDirty = true;\n });\n }\n }\n document.fonts.ready.then(updateBounds);\n\n return {\n unref,\n resizeListener\n };\n }\n});\n","\n \n \n \n\n\n\n","import { render } from \"./Profectus.vue?vue&type=template&id=07150322&scoped=true\"\nconst script = {}\n\nimport \"./Profectus.vue?vue&type=style&index=0&id=07150322&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-07150322\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\n width: { default: \"8px\" },\n height: { default: \"17px\" }\n },\n setup(__props: any) {\n\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n style: _normalizeStyle({ width: __props.width, height: __props.height })\n }, null, 4))\n}\n}\n\n})","import script from \"./Spacer.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Spacer.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import Decimal, { DecimalSource, format, formatWhole } from \"util/bignum\";\nimport { computed, ComputedRef, isRef, ref, Ref, watch } from \"vue\";\nimport { globalBus } from \"game/events\";\nimport { State, persistent } from \"game/persistence\";\n\nexport interface Resource extends Ref {\n displayName: string;\n precision: number;\n small?: boolean;\n}\n\nexport function createResource(\n defaultValue: T | Ref,\n displayName = \"points\",\n precision = 0,\n small = undefined\n): Resource {\n const resource: Partial> = isRef(defaultValue)\n ? defaultValue\n : persistent(defaultValue);\n resource.displayName = displayName;\n resource.precision = precision;\n resource.small = small;\n return resource as Resource;\n}\n\nexport function trackBest(resource: Resource): Ref {\n const best = persistent(resource.value);\n watch(resource, amount => {\n if (Decimal.gt(amount, best.value)) {\n best.value = amount;\n }\n });\n return best;\n}\n\nexport function trackTotal(resource: Resource): Ref {\n const total = persistent(resource.value);\n watch(resource, (amount, prevAmount) => {\n if (Decimal.gt(amount, prevAmount)) {\n total.value = Decimal.add(total.value, Decimal.sub(amount, prevAmount));\n }\n });\n return total;\n}\n\nconst tetra8 = new Decimal(\"10^^8\");\nconst e100 = new Decimal(\"1e100\");\nexport function trackOOMPS(\n resource: Resource,\n pointGain?: ComputedRef\n): Ref {\n const oomps = ref(0);\n const oompsMag = ref(0);\n const lastPoints = ref(0);\n\n globalBus.on(\"update\", diff => {\n oompsMag.value = 0;\n if (Decimal.lte(resource.value, e100)) {\n lastPoints.value = resource.value;\n return;\n }\n\n let curr = resource.value;\n let prev = lastPoints.value;\n lastPoints.value = curr;\n if (Decimal.gt(curr, prev)) {\n if (Decimal.gte(curr, tetra8)) {\n curr = Decimal.slog(curr, 1e10);\n prev = Decimal.slog(prev, 1e10);\n oomps.value = curr.sub(prev).div(diff);\n oompsMag.value = -1;\n } else {\n while (\n Decimal.div(curr, prev).log(10).div(diff).gte(\"100\") &&\n oompsMag.value <= 5 &&\n Decimal.gt(prev, 0)\n ) {\n curr = Decimal.log10(curr);\n prev = Decimal.log10(prev);\n oomps.value = curr.sub(prev).div(diff);\n oompsMag.value++;\n }\n }\n }\n });\n\n const oompsString = computed(() => {\n if (oompsMag.value === 0) {\n return pointGain\n ? format(pointGain.value, resource.precision, resource.small) +\n \" \" +\n resource.displayName +\n \"/s\"\n : \"\";\n }\n return (\n format(oomps.value) +\n \" OOM\" +\n (oompsMag.value < 0 ? \"^OOM\" : \"^\" + oompsMag.value) +\n \"s/sec\"\n );\n });\n return oompsString;\n}\n\nexport function displayResource(resource: Resource, overrideAmount?: DecimalSource): string {\n const amount = overrideAmount ?? resource.value;\n if (Decimal.eq(resource.precision, 0)) {\n return formatWhole(amount);\n }\n return format(amount, resource.precision, resource.small);\n}\n","import { resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, Fragment as _Fragment, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Links = _resolveComponent(\"Links\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.nodesComp))),\n (_ctx.leftNodesComp)\n ? (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.leftNodesComp), { key: 0 }))\n : _createCommentVNode(\"\", true),\n (_ctx.rightNodesComp)\n ? (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.rightNodesComp), { key: 1 }))\n : _createCommentVNode(\"\", true),\n (_ctx.branches)\n ? (_openBlock(), _createBlock(_component_Links, {\n key: 2,\n links: _ctx.unref(_ctx.branches)\n }, null, 8, [\"links\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, mergeProps as _mergeProps, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"x1\", \"y1\", \"x2\", \"y2\"]\n\nimport { Link } from \"features/links/links\";\nimport { FeatureNode } from \"game/layers\";\nimport { computed, toRefs } from \"vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\n link: null,\n startNode: null,\n endNode: null,\n boundingRect: null\n },\n setup(__props: any) {\n\nconst _props = __props as {\n link: Link;\n startNode: FeatureNode;\n endNode: FeatureNode;\n boundingRect: DOMRect | undefined;\n}\n\n\nconst props = toRefs(_props);\n\nconst startPosition = computed(() => {\n const rect = props.startNode.value.rect;\n const boundingRect = props.boundingRect.value;\n const position = boundingRect\n ? {\n x: rect.x + rect.width / 2 - boundingRect.x,\n y: rect.y + rect.height / 2 - boundingRect.y\n }\n : { x: 0, y: 0 };\n if (props.link.value.offsetStart) {\n position.x += props.link.value.offsetStart.x;\n position.y += props.link.value.offsetStart.y;\n }\n return position;\n});\n\nconst endPosition = computed(() => {\n const rect = props.endNode.value.rect;\n const boundingRect = props.boundingRect.value;\n const position = boundingRect\n ? {\n x: rect.x + rect.width / 2 - boundingRect.x,\n y: rect.y + rect.height / 2 - boundingRect.y\n }\n : { x: 0, y: 0 };\n if (props.link.value.offsetEnd) {\n position.x += props.link.value.offsetEnd.x;\n position.y += props.link.value.offsetEnd.y;\n }\n return position;\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"line\", _mergeProps({\n \"stroke-width\": \"15px\",\n stroke: \"white\"\n }, __props.link, {\n x1: _unref(startPosition).x,\n y1: _unref(startPosition).y,\n x2: _unref(endPosition).x,\n y2: _unref(endPosition).y\n }), null, 16, _hoisted_1))\n}\n}\n\n})","import script from \"./Link.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Link.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, normalizeProps as _normalizeProps, guardReactiveProps as _guardReactiveProps, mergeProps as _mergeProps, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nimport { Link } from \"features/links/links\";\nimport { FeatureNode, NodesInjectionKey } from \"game/layers\";\nimport { computed, inject, nextTick, onMounted, ref, toRef } from \"vue\";\nimport LinkVue from \"./Link.vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\n links: null\n },\n setup(__props: any) {\n\nconst _props = __props as { links?: Link[] }\n\n\nconst links = toRef(_props, \"links\");\n\nconst resizeObserver = new ResizeObserver(updateNodes);\n\n// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\nconst nodes = inject(NodesInjectionKey)!;\n\nconst resizeListener = ref(null);\n\nonMounted(() => {\n // ResizeListener exists because ResizeObserver's don't work when told to observe an SVG element\n const resListener = resizeListener.value;\n if (resListener != null) {\n resizeObserver.observe(resListener);\n }\n});\n\nlet isDirty = true;\nlet boundingRect = ref(resizeListener.value?.getBoundingClientRect());\nfunction updateNodes() {\n if (resizeListener.value != null && isDirty) {\n isDirty = false;\n nextTick(() => {\n boundingRect.value = resizeListener.value?.getBoundingClientRect();\n (Object.values(nodes.value) as FeatureNode[]).forEach(\n node => (node.rect = node.element.getBoundingClientRect())\n );\n isDirty = true;\n });\n }\n}\ndocument.fonts.ready.then(updateNodes);\n\nconst validLinks = computed(() => {\n const n = nodes.value;\n return (\n links.value?.filter(link => n[link.startNode.id]?.rect && n[link.startNode.id]?.rect) ?? []\n );\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_unref(validLinks))\n ? (_openBlock(), _createElementBlock(\"svg\", _normalizeProps(_mergeProps({ key: 0 }, _ctx.$attrs)), [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(validLinks), (link, index) => {\n return (_openBlock(), _createBlock(LinkVue, {\n key: index,\n link: link,\n boundingRect: _unref(boundingRect),\n startNode: _unref(nodes)[link.startNode.id]!,\n endNode: _unref(nodes)[link.endNode.id]!\n }, null, 8, [\"link\", \"boundingRect\", \"startNode\", \"endNode\"]))\n }), 128))\n ], 16))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n ref_key: \"resizeListener\",\n ref: resizeListener,\n class: \"resize-listener\"\n }, null, 512)\n ], 64))\n}\n}\n\n})","import script from \"./Links.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Links.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Links.vue?vue&type=style&index=0&id=e35b0402&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-e35b0402\"]])\n\nexport default __exports__","\nimport \"components/common/table.css\";\nimport { GenericTreeNode, TreeBranch } from \"features/trees/tree\";\nimport { coerceComponent, processedPropType, renderJSX, unwrapRef } from \"util/vue\";\nimport { Component, defineComponent, shallowRef, toRefs, unref, watchEffect } from \"vue\";\nimport Links from \"features/links/Links.vue\";\nimport { jsx } from \"features/feature\";\n\nexport default defineComponent({\n props: {\n nodes: {\n type: processedPropType(Array),\n required: true\n },\n leftSideNodes: processedPropType(Array),\n rightSideNodes: processedPropType(Array),\n branches: processedPropType(Array)\n },\n components: { Links },\n setup(props) {\n const { nodes, leftSideNodes, rightSideNodes } = toRefs(props);\n\n const nodesComp = shallowRef();\n watchEffect(() => {\n const currNodes = unwrapRef(nodes);\n nodesComp.value = coerceComponent(\n jsx(() => (\n <>\n {currNodes.map(row => (\n \n {row.map(renderJSX)}\n \n ))}\n >\n ))\n );\n });\n\n const leftNodesComp = shallowRef();\n watchEffect(() => {\n const currNodes = unwrapRef(leftSideNodes);\n leftNodesComp.value = currNodes\n ? coerceComponent(\n jsx(() => (\n {currNodes.map(renderJSX)}\n ))\n )\n : \"\";\n });\n\n const rightNodesComp = shallowRef();\n watchEffect(() => {\n const currNodes = unwrapRef(rightSideNodes);\n rightNodesComp.value = currNodes\n ? coerceComponent(\n jsx(() => {currNodes.map(renderJSX)})\n )\n : \"\";\n });\n\n return {\n unref,\n nodesComp,\n leftNodesComp,\n rightNodesComp\n };\n }\n});\n","import { render } from \"./Tree.vue?vue&type=template&id=aa87859c&scoped=true&ts=true\"\nimport script from \"./Tree.vue?vue&type=script&lang=tsx\"\nexport * from \"./Tree.vue?vue&type=script&lang=tsx\"\n\nimport \"./Tree.vue?vue&type=style&index=0&id=aa87859c&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-aa87859c\"]])\n\nexport default __exports__","import { resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_MarkNode = _resolveComponent(\"MarkNode\")!\n const _component_Node = _resolveComponent(\"Node\")!\n\n return (_ctx.unref(_ctx.visibility) !== _ctx.Visibility.None)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n style: _normalizeStyle({ visibility: _ctx.unref(_ctx.visibility) === _ctx.Visibility.Hidden ? 'hidden' : undefined }),\n class: _normalizeClass({\n treeNode: true,\n can: _ctx.unref(_ctx.canClick),\n ..._ctx.unref(_ctx.classes)\n })\n }, [\n _createElementVNode(\"div\", {\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.onClick && _ctx.onClick(...args))),\n onMousedown: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.start && _ctx.start(...args))),\n onMouseleave: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.stop && _ctx.stop(...args))),\n onMouseup: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.stop && _ctx.stop(...args))),\n onTouchstart: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.start && _ctx.start(...args))),\n onTouchend: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.stop && _ctx.stop(...args))),\n onTouchcancel: _cache[6] || (_cache[6] = \n//@ts-ignore\n(...args) => (_ctx.stop && _ctx.stop(...args))),\n style: _normalizeStyle([\n {\n backgroundColor: _ctx.unref(_ctx.color),\n boxShadow: `-4px -4px 4px rgba(0, 0, 0, 0.25) inset, 0 0 20px ${_ctx.unref(\n _ctx.glowColor\n )}`\n },\n _ctx.unref(_ctx.style) ?? []\n ])\n }, [\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.unref(_ctx.comp))))\n ], 36),\n _createVNode(_component_MarkNode, {\n mark: _ctx.unref(_ctx.mark)\n }, null, 8, [\"mark\"]),\n _createVNode(_component_Node, { id: _ctx.id }, null, 8, [\"id\"])\n ], 6))\n : _createCommentVNode(\"\", true)\n}","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nimport { RegisterNodeInjectionKey, UnregisterNodeInjectionKey } from \"game/layers\";\nimport { computed, inject, onUnmounted, ref, toRefs, unref, watch } from \"vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\n id: null\n },\n setup(__props: any) {\n\nconst _props = __props as { id: string }\n\n\nconst props = toRefs(_props);\n\nconst register = inject(RegisterNodeInjectionKey);\nconst unregister = inject(UnregisterNodeInjectionKey);\n\nconst node = ref(null);\nconst parentNode = computed(() => node.value && node.value.parentElement);\n\nif (register && unregister) {\n watch([parentNode, props.id], ([newNode, newID], [prevNode, prevID]) => {\n if (prevNode) {\n unregister(unref(prevID));\n }\n if (newNode) {\n register(newID, newNode);\n }\n });\n\n onUnmounted(() => unregister(unref(props.id)));\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"node\",\n ref_key: \"node\",\n ref: node\n }, null, 512))\n}\n}\n\n})","import script from \"./Node.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Node.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Node.vue?vue&type=style&index=0&id=63ded336&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-63ded336\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-c476c56a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = {\n key: 0,\n class: \"mark star\"\n}\nconst _hoisted_3 = [\"src\"]\n\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\n mark: { type: [Boolean, String] }\n },\n setup(__props: any) {\n\n\n\nreturn (_ctx: any,_cache: any) => {\n return (__props.mark)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (__props.mark === true)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2))\n : (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n class: \"mark\",\n src: __props.mark\n }, null, 8, _hoisted_3))\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./MarkNode.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./MarkNode.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./MarkNode.vue?vue&type=style&index=0&id=c476c56a&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-c476c56a\"]])\n\nexport default __exports__","\nimport Node from \"components/Node.vue\";\nimport MarkNode from \"components/MarkNode.vue\";\nimport { CoercableComponent, StyleValue, Visibility } from \"features/feature\";\nimport {\n computeOptionalComponent,\n isCoercableComponent,\n processedPropType,\n setupHoldToClick\n} from \"util/vue\";\nimport { defineComponent, PropType, toRefs, unref } from \"vue\";\n\nexport default defineComponent({\n props: {\n display: processedPropType(Object, String, Function),\n visibility: {\n type: processedPropType(Number),\n required: true\n },\n style: processedPropType(String, Object, Array),\n classes: processedPropType>(Object),\n onClick: Function as PropType<(e?: MouseEvent | TouchEvent) => void>,\n onHold: Function as PropType,\n color: processedPropType(String),\n glowColor: processedPropType(String),\n canClick: {\n type: processedPropType(Boolean),\n required: true\n },\n mark: processedPropType(Boolean, String),\n id: {\n type: String,\n required: true\n }\n },\n components: {\n MarkNode,\n Node\n },\n setup(props) {\n const { onClick, onHold, display } = toRefs(props);\n\n const comp = computeOptionalComponent(display);\n\n const { start, stop } = setupHoldToClick(onClick, onHold);\n\n return {\n start,\n stop,\n comp,\n unref,\n Visibility,\n isCoercableComponent\n };\n }\n});\n","import { render } from \"./TreeNode.vue?vue&type=template&id=3de1d1bc&scoped=true&ts=true\"\nimport script from \"./TreeNode.vue?vue&type=script&lang=ts\"\nexport * from \"./TreeNode.vue?vue&type=script&lang=ts\"\n\nimport \"./TreeNode.vue?vue&type=style&index=0&id=3de1d1bc&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3de1d1bc\"]])\n\nexport default __exports__","import {\n CoercableComponent,\n Component,\n OptionsFunc,\n GatherProps,\n getUniqueID,\n Replace,\n setDefault,\n StyleValue,\n Visibility\n} from \"features/feature\";\nimport { Link } from \"features/links/links\";\nimport { GenericReset } from \"features/reset\";\nimport { displayResource, Resource } from \"features/resources/resource\";\nimport TreeComponent from \"features/trees/Tree.vue\";\nimport TreeNodeComponent from \"features/trees/TreeNode.vue\";\nimport Decimal, { DecimalSource, format, formatWhole } from \"util/bignum\";\nimport {\n Computable,\n convertComputable,\n GetComputableType,\n GetComputableTypeWithDefault,\n processComputable,\n ProcessedComputable\n} from \"util/computed\";\nimport { createLazyProxy } from \"util/proxies\";\nimport { computed, ref, Ref, shallowRef, unref } from \"vue\";\n\nexport const TreeNodeType = Symbol(\"TreeNode\");\nexport const TreeType = Symbol(\"Tree\");\n\nexport interface TreeNodeOptions {\n visibility?: Computable;\n canClick?: Computable;\n color?: Computable;\n display?: Computable;\n glowColor?: Computable;\n classes?: Computable>;\n style?: Computable;\n mark?: Computable;\n reset?: GenericReset;\n onClick?: (e?: MouseEvent | TouchEvent) => void;\n onHold?: VoidFunction;\n}\n\nexport interface BaseTreeNode {\n id: string;\n type: typeof TreeNodeType;\n [Component]: typeof TreeNodeComponent;\n [GatherProps]: () => Record;\n}\n\nexport type TreeNode = Replace<\n T & BaseTreeNode,\n {\n visibility: GetComputableTypeWithDefault;\n canClick: GetComputableTypeWithDefault;\n color: GetComputableType;\n display: GetComputableType;\n glowColor: GetComputableType;\n classes: GetComputableType;\n style: GetComputableType;\n mark: GetComputableType;\n }\n>;\n\nexport type GenericTreeNode = Replace<\n TreeNode,\n {\n visibility: ProcessedComputable;\n canClick: ProcessedComputable;\n }\n>;\n\nexport function createTreeNode(\n optionsFunc?: OptionsFunc, BaseTreeNode>\n): TreeNode {\n return createLazyProxy(() => {\n const treeNode = optionsFunc?.() ?? ({} as ReturnType>);\n treeNode.id = getUniqueID(\"treeNode-\");\n treeNode.type = TreeNodeType;\n treeNode[Component] = TreeNodeComponent;\n\n processComputable(treeNode as T, \"visibility\");\n setDefault(treeNode, \"visibility\", Visibility.Visible);\n processComputable(treeNode as T, \"canClick\");\n setDefault(treeNode, \"canClick\", true);\n processComputable(treeNode as T, \"color\");\n processComputable(treeNode as T, \"display\");\n processComputable(treeNode as T, \"glowColor\");\n processComputable(treeNode as T, \"classes\");\n processComputable(treeNode as T, \"style\");\n processComputable(treeNode as T, \"mark\");\n\n if (treeNode.onClick) {\n const onClick = treeNode.onClick.bind(treeNode);\n treeNode.onClick = function () {\n if (unref(treeNode.canClick)) {\n onClick();\n }\n };\n }\n if (treeNode.onHold) {\n const onHold = treeNode.onHold.bind(treeNode);\n treeNode.onHold = function () {\n if (unref(treeNode.canClick)) {\n onHold();\n }\n };\n }\n\n treeNode[GatherProps] = function (this: GenericTreeNode) {\n const {\n display,\n visibility,\n style,\n classes,\n onClick,\n onHold,\n color,\n glowColor,\n canClick,\n mark,\n id\n } = this;\n return {\n display,\n visibility,\n style,\n classes,\n onClick,\n onHold,\n color,\n glowColor,\n canClick,\n mark,\n id\n };\n };\n\n return treeNode as unknown as TreeNode;\n });\n}\n\nexport interface TreeBranch extends Omit {\n startNode: GenericTreeNode;\n endNode: GenericTreeNode;\n}\n\nexport interface TreeOptions {\n visibility?: Computable;\n nodes: Computable;\n leftSideNodes?: Computable;\n rightSideNodes?: Computable;\n branches?: Computable;\n resetPropagation?: ResetPropagation;\n onReset?: (node: GenericTreeNode) => void;\n}\n\nexport interface BaseTree {\n id: string;\n links: Ref;\n reset: (node: GenericTreeNode) => void;\n isResetting: Ref;\n resettingNode: Ref;\n type: typeof TreeType;\n [Component]: typeof TreeComponent;\n [GatherProps]: () => Record;\n}\n\nexport type Tree = Replace<\n T & BaseTree,\n {\n visibility: GetComputableTypeWithDefault;\n nodes: GetComputableType;\n leftSideNodes: GetComputableType;\n rightSideNodes: GetComputableType;\n branches: GetComputableType;\n }\n>;\n\nexport type GenericTree = Replace<\n Tree,\n {\n visibility: ProcessedComputable;\n }\n>;\n\nexport function createTree(\n optionsFunc: OptionsFunc, BaseTree>\n): Tree {\n return createLazyProxy(() => {\n const tree = optionsFunc();\n tree.id = getUniqueID(\"tree-\");\n tree.type = TreeType;\n tree[Component] = TreeComponent;\n\n tree.isResetting = ref(false);\n tree.resettingNode = shallowRef(null);\n\n tree.reset = function (node) {\n const genericTree = tree as GenericTree;\n genericTree.isResetting.value = true;\n genericTree.resettingNode.value = node;\n genericTree.resetPropagation?.(genericTree, node);\n genericTree.onReset?.(node);\n genericTree.isResetting.value = false;\n genericTree.resettingNode.value = null;\n };\n tree.links = computed(() => {\n const genericTree = tree as GenericTree;\n return unref(genericTree.branches) ?? [];\n });\n\n processComputable(tree as T, \"visibility\");\n setDefault(tree, \"visibility\", Visibility.Visible);\n processComputable(tree as T, \"nodes\");\n processComputable(tree as T, \"leftSideNodes\");\n processComputable(tree as T, \"rightSideNodes\");\n processComputable(tree as T, \"branches\");\n\n tree[GatherProps] = function (this: GenericTree) {\n const { nodes, leftSideNodes, rightSideNodes, branches } = this;\n return { nodes, leftSideNodes, rightSideNodes, branches };\n };\n\n return tree as unknown as Tree;\n });\n}\n\nexport type ResetPropagation = {\n (tree: GenericTree, resettingNode: GenericTreeNode): void;\n};\n\nexport const defaultResetPropagation = function (\n tree: GenericTree,\n resettingNode: GenericTreeNode\n): void {\n const nodes = unref(tree.nodes);\n const row = nodes.findIndex(nodes => nodes.includes(resettingNode)) - 1;\n for (let x = row; x >= 0; x--) {\n nodes[x].forEach(node => node.reset?.reset());\n }\n};\n\nexport const invertedResetPropagation = function (\n tree: GenericTree,\n resettingNode: GenericTreeNode\n): void {\n const nodes = unref(tree.nodes);\n const row = nodes.findIndex(nodes => nodes.includes(resettingNode)) + 1;\n for (let x = row; x < nodes.length; x++) {\n nodes[x].forEach(node => node.reset?.reset());\n }\n};\n\nexport const branchedResetPropagation = function (\n tree: GenericTree,\n resettingNode: GenericTreeNode\n): void {\n const visitedNodes = [resettingNode];\n let currentNodes = [resettingNode];\n if (tree.branches != null) {\n const branches = unref(tree.branches);\n while (currentNodes.length > 0) {\n const nextNodes: GenericTreeNode[] = [];\n currentNodes.forEach(node => {\n branches\n .filter(branch => branch.startNode === node || branch.endNode === node)\n .map(branch => {\n if (branch.startNode === node) {\n return branch.endNode;\n }\n return branch.startNode;\n })\n .filter(node => !visitedNodes.includes(node))\n .forEach(node => {\n // Check here instead of in the filter because this check's results may\n // change as we go through each node\n if (!nextNodes.includes(node)) {\n nextNodes.push(node);\n node.reset?.reset();\n }\n });\n });\n currentNodes = nextNodes;\n visitedNodes.push(...currentNodes);\n }\n }\n};\n\nexport function createResourceTooltip(\n resource: Resource,\n requiredResource: Resource | null = null,\n requirement: Computable = 0\n): Ref {\n const req = convertComputable(requirement);\n return computed(() => {\n if (requiredResource == null || Decimal.gte(resource.value, unref(req))) {\n return displayResource(resource) + \" \" + resource.displayName;\n }\n return `Reach ${\n Decimal.eq(requiredResource.precision, 0)\n ? formatWhole(unref(req))\n : format(unref(req), requiredResource.precision)\n } ${requiredResource.displayName} to unlock (You have ${\n Decimal.eq(requiredResource.precision, 0)\n ? formatWhole(requiredResource.value)\n : format(requiredResource.value, requiredResource.precision)\n })`;\n });\n}\n","import { resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_MarkNode = _resolveComponent(\"MarkNode\")!\n const _component_Node = _resolveComponent(\"Node\")!\n\n return (_ctx.unref(_ctx.visibility) !== _ctx.Visibility.None)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n style: _normalizeStyle([\n {\n visibility: _ctx.unref(_ctx.visibility) === _ctx.Visibility.Hidden ? 'hidden' : undefined,\n backgroundImage: (_ctx.earned && _ctx.image && `url(${_ctx.image})`) || ''\n },\n _ctx.unref(_ctx.style) ?? []\n ]),\n class: _normalizeClass({\n feature: true,\n achievement: true,\n locked: !_ctx.unref(_ctx.earned),\n bought: _ctx.unref(_ctx.earned),\n ..._ctx.unref(_ctx.classes)\n })\n }, [\n (_ctx.component)\n ? (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.component), { key: 0 }))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_MarkNode, {\n mark: _ctx.unref(_ctx.mark)\n }, null, 8, [\"mark\"]),\n _createVNode(_component_Node, { id: _ctx.id }, null, 8, [\"id\"])\n ], 6))\n : _createCommentVNode(\"\", true)\n}","\nimport { CoercableComponent, Visibility } from \"features/feature\";\nimport { computeOptionalComponent, processedPropType } from \"util/vue\";\nimport { defineComponent, StyleValue, toRefs, unref } from \"vue\";\nimport Node from \"components/Node.vue\";\nimport MarkNode from \"components/MarkNode.vue\";\nimport \"components/common/features.css\";\n\nexport default defineComponent({\n props: {\n visibility: {\n type: processedPropType(Number),\n required: true\n },\n display: processedPropType(Object, String, Function),\n earned: {\n type: processedPropType(Boolean),\n required: true\n },\n image: processedPropType(String),\n style: processedPropType(String, Object, Array),\n classes: processedPropType>(Object),\n mark: processedPropType(Boolean, String),\n id: {\n type: String,\n required: true\n }\n },\n components: {\n Node,\n MarkNode\n },\n setup(props) {\n const { display } = toRefs(props);\n\n return {\n component: computeOptionalComponent(display),\n unref,\n Visibility\n };\n }\n});\n","import { render } from \"./Achievement.vue?vue&type=template&id=e3f32402&scoped=true&ts=true\"\nimport script from \"./Achievement.vue?vue&type=script&lang=ts\"\nexport * from \"./Achievement.vue?vue&type=script&lang=ts\"\n\nimport \"./Achievement.vue?vue&type=style&index=0&id=e3f32402&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e3f32402\"]])\n\nexport default __exports__","import { globalBus } from \"game/events\";\nimport Toast from \"vue-toastification\";\nimport \"vue-toastification/dist/index.css\";\n\nglobalBus.on(\"setupVue\", vue => vue.use(Toast));\n\nexport function getNotifyStyle(color = \"white\", strength = \"8px\") {\n return {\n transform: \"scale(1.05, 1.05)\",\n borderColor: \"rgba(0, 0, 0, 0.125)\",\n boxShadow: `-4px -4px 4px rgba(0, 0, 0, 0.25) inset, 0 0 ${strength} ${color}`,\n zIndex: 1\n };\n}\n\nexport function getHighNotifyStyle() {\n return getNotifyStyle(\"red\", \"20px\");\n}\n","import AchievementComponent from \"features/achievements/Achievement.vue\";\nimport {\n CoercableComponent,\n Component,\n OptionsFunc,\n GatherProps,\n getUniqueID,\n Replace,\n setDefault,\n StyleValue,\n Visibility\n} from \"features/feature\";\nimport \"game/notifications\";\nimport { Persistent, persistent } from \"game/persistence\";\nimport {\n Computable,\n GetComputableType,\n GetComputableTypeWithDefault,\n processComputable,\n ProcessedComputable\n} from \"util/computed\";\nimport { createLazyProxy } from \"util/proxies\";\nimport { coerceComponent } from \"util/vue\";\nimport { unref, watchEffect } from \"vue\";\nimport { useToast } from \"vue-toastification\";\n\nconst toast = useToast();\n\nexport const AchievementType = Symbol(\"Achievement\");\n\nexport interface AchievementOptions {\n visibility?: Computable;\n shouldEarn?: () => boolean;\n display?: Computable;\n mark?: Computable;\n image?: Computable;\n style?: Computable;\n classes?: Computable>;\n onComplete?: VoidFunction;\n}\n\nexport interface BaseAchievement {\n id: string;\n earned: Persistent;\n complete: VoidFunction;\n type: typeof AchievementType;\n [Component]: typeof AchievementComponent;\n [GatherProps]: () => Record;\n}\n\nexport type Achievement = Replace<\n T & BaseAchievement,\n {\n visibility: GetComputableTypeWithDefault;\n display: GetComputableType;\n mark: GetComputableType;\n image: GetComputableType;\n style: GetComputableType;\n classes: GetComputableType;\n }\n>;\n\nexport type GenericAchievement = Replace<\n Achievement,\n {\n visibility: ProcessedComputable;\n }\n>;\n\nexport function createAchievement(\n optionsFunc?: OptionsFunc, BaseAchievement>\n): Achievement {\n const earned = persistent(false);\n return createLazyProxy(() => {\n const achievement = optionsFunc?.() ?? ({} as ReturnType>);\n achievement.id = getUniqueID(\"achievement-\");\n achievement.type = AchievementType;\n achievement[Component] = AchievementComponent;\n\n achievement.earned = earned;\n achievement.complete = function () {\n earned.value = true;\n };\n\n processComputable(achievement as T, \"visibility\");\n setDefault(achievement, \"visibility\", Visibility.Visible);\n processComputable(achievement as T, \"display\");\n processComputable(achievement as T, \"mark\");\n processComputable(achievement as T, \"image\");\n processComputable(achievement as T, \"style\");\n processComputable(achievement as T, \"classes\");\n\n achievement[GatherProps] = function (this: GenericAchievement) {\n const { visibility, display, earned, image, style, classes, mark, id } = this;\n return { visibility, display, earned, image, style: unref(style), classes, mark, id };\n };\n\n if (achievement.shouldEarn) {\n const genericAchievement = achievement as GenericAchievement;\n watchEffect(() => {\n if (\n !genericAchievement.earned.value &&\n unref(genericAchievement.visibility) === Visibility.Visible &&\n genericAchievement.shouldEarn?.()\n ) {\n genericAchievement.earned.value = true;\n genericAchievement.onComplete?.();\n if (genericAchievement.display) {\n const Display = coerceComponent(unref(genericAchievement.display));\n toast.info(\n \n
Achievement earned!
\n
\n {/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */}\n {/* @ts-ignore */}\n \n
\n
\n );\n }\n }\n });\n }\n\n return achievement as unknown as Achievement;\n });\n}\n","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, mergeProps as _mergeProps, createBlock as _createBlock, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createCommentVNode as _createCommentVNode } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_GridCell = _resolveComponent(\"GridCell\")!\n\n return (_ctx.unref(_ctx.visibility) !== _ctx.Visibility.None)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n style: _normalizeStyle({\n visibility: _ctx.unref(_ctx.visibility) === _ctx.Visibility.Hidden ? 'hidden' : undefined\n }),\n class: \"table\"\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.unref(_ctx.rows), (row) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"row\", { mergeAdjacent: _ctx.mergeAdjacent }]),\n key: row\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.unref(_ctx.cols), (col) => {\n return (_openBlock(), _createBlock(_component_GridCell, _mergeProps({ key: col }, _ctx.gatherCellProps(_ctx.unref(_ctx.cells)[row * 100 + col])), null, 16))\n }), 128))\n ], 2))\n }), 128))\n ], 4))\n : _createCommentVNode(\"\", true)\n}","import { resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-567cf21f\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 0 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Node = _resolveComponent(\"Node\")!\n\n return (_ctx.unref(_ctx.visibility) !== _ctx.Visibility.None)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: _normalizeClass({ feature: true, tile: true, can: _ctx.unref(_ctx.canClick), locked: !_ctx.unref(_ctx.canClick) }),\n style: _normalizeStyle([\n {\n visibility: _ctx.unref(_ctx.visibility) === _ctx.Visibility.Hidden ? 'hidden' : undefined\n },\n _ctx.unref(_ctx.style) ?? {}\n ]),\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.onClick && _ctx.onClick(...args))),\n onMousedown: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.start && _ctx.start(...args))),\n onMouseleave: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.stop && _ctx.stop(...args))),\n onMouseup: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.stop && _ctx.stop(...args))),\n onTouchstart: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.start && _ctx.start(...args))),\n onTouchend: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.stop && _ctx.stop(...args))),\n onTouchcancel: _cache[6] || (_cache[6] = \n//@ts-ignore\n(...args) => (_ctx.stop && _ctx.stop(...args)))\n }, [\n (_ctx.title)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.titleComponent)))\n ]))\n : _createCommentVNode(\"\", true),\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.component), { style: {\"white-space\":\"pre-line\"} })),\n _createVNode(_component_Node, { id: _ctx.id }, null, 8, [\"id\"])\n ], 38))\n : _createCommentVNode(\"\", true)\n}","\nimport \"components/common/features.css\";\nimport Node from \"components/Node.vue\";\nimport { CoercableComponent, StyleValue, Visibility } from \"features/feature\";\nimport {\n computeComponent,\n computeOptionalComponent,\n processedPropType,\n setupHoldToClick\n} from \"util/vue\";\nimport { defineComponent, PropType, toRefs, unref } from \"vue\";\n\nexport default defineComponent({\n props: {\n visibility: {\n type: processedPropType(Number),\n required: true\n },\n onClick: Function as PropType<(e?: MouseEvent | TouchEvent) => void>,\n onHold: Function as PropType,\n display: {\n type: processedPropType(Object, String, Function),\n required: true\n },\n title: processedPropType(Object, String, Function),\n style: processedPropType(String, Object, Array),\n canClick: {\n type: processedPropType(Boolean),\n required: true\n },\n id: {\n type: String,\n required: true\n }\n },\n components: {\n Node\n },\n setup(props) {\n const { onClick, onHold, title, display } = toRefs(props);\n\n const { start, stop } = setupHoldToClick(onClick, onHold);\n\n const titleComponent = computeOptionalComponent(title);\n const component = computeComponent(display);\n\n return {\n start,\n stop,\n titleComponent,\n component,\n Visibility,\n unref\n };\n }\n});\n","import { render } from \"./GridCell.vue?vue&type=template&id=567cf21f&scoped=true&ts=true\"\nimport script from \"./GridCell.vue?vue&type=script&lang=ts\"\nexport * from \"./GridCell.vue?vue&type=script&lang=ts\"\n\nimport \"./GridCell.vue?vue&type=style&index=0&id=567cf21f&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/TMT-Demo/TMT-Demo/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-567cf21f\"]])\n\nexport default __exports__","\nimport \"components/common/table.css\";\nimport themes from \"data/themes\";\nimport { Visibility } from \"features/feature\";\nimport { GridCell } from \"features/grids/grid\";\nimport settings from \"game/settings\";\nimport { processedPropType } from \"util/vue\";\nimport { computed, defineComponent, unref } from \"vue\";\nimport GridCellVue from \"./GridCell.vue\";\n\nexport default defineComponent({\n props: {\n visibility: {\n type: processedPropType(Number),\n required: true\n },\n rows: {\n type: processedPropType(Number),\n required: true\n },\n cols: {\n type: processedPropType(Number),\n required: true\n },\n cells: {\n type: processedPropType