diff --git a/assets/gameLoop.5743fd98.js b/assets/gameLoop.90de4a71.js similarity index 87% rename from assets/gameLoop.5743fd98.js rename to assets/gameLoop.90de4a71.js index 0902ffd..23c3af1 100644 --- a/assets/gameLoop.5743fd98.js +++ b/assets/gameLoop.90de4a71.js @@ -1 +1 @@ -import{_ as d,s as u,p as e,a as l,l as T,D as a,b as m,g as p}from"./index.47b676b1.js";import"./vue.8b6e16f3.js";import{b2 as c}from"./@vue.6f8187b0.js";/* empty css */import"./lz-string.bfbf8ec3.js";import"./nanoevents.1080beb7.js";import"./unofficial-galaxy-sdk.21372393.js";import"./vue-textarea-autosize.35804eaf.js";import"./vue-next-select.d60d437a.js";import"./vuedraggable.56f5e1e2.js";import"./sortablejs.8abbd596.js";import"./vue-toastification.c011d2f2.js";let n=null,f=null;function o(){const t=Date.now();let i=(t-e.time)/1e3;e.time=t;const r=i;if(l.lastTenTicks.push(r),l.lastTenTicks.length>10&&(l.lastTenTicks=l.lastTenTicks.slice(1)),!((f==null?void 0:f.value)&&!e.keepGoing)&&!l.hasNaN&&(i=Math.max(i,0),e.devSpeed!==0)){if(T.value=!1,e.offlineTime!=null){if(a.gt(e.offlineTime,m.offlineLimit*3600)&&(e.offlineTime=m.offlineLimit*3600),a.gt(e.offlineTime,0)&&e.devSpeed!==0){const s=Math.max(e.offlineTime/10,i);e.offlineTime=e.offlineTime-s,i+=s}else e.devSpeed===0&&(e.offlineTime+=i);(!e.offlineProd||a.lt(e.offlineTime,0))&&(e.offlineTime=null)}i=Math.min(i,m.maxTickLength),e.devSpeed!=null&&(i*=e.devSpeed),Number.isFinite(i)||(i=1e308),!a.eq(i,0)&&(e.timePlayed+=i,Number.isFinite(e.timePlayed)||(e.timePlayed=1e308),p.emit("update",i,r),u.unthrottled?(requestAnimationFrame(o),n!=null&&(clearInterval(n),n=null)):n==null&&(n=setInterval(o,50)))}}async function w(){f=(await d(()=>import("./index.47b676b1.js").then(function(t){return t.c}),["assets/index.47b676b1.js","assets/index.e930493e.css","assets/@fontsource.f66d05e7.css","assets/vue.8b6e16f3.js","assets/lz-string.bfbf8ec3.js","assets/@vue.6f8187b0.js","assets/nanoevents.1080beb7.js","assets/unofficial-galaxy-sdk.21372393.js","assets/vue-textarea-autosize.35804eaf.js","assets/vue-next-select.d60d437a.js","assets/vue-next-select.9e6f4164.css","assets/vuedraggable.56f5e1e2.js","assets/sortablejs.8abbd596.js","assets/vue-toastification.c011d2f2.js","assets/vue-toastification.4b5f8ac8.css"])).hasWon,c(f,t=>{t&&p.emit("gameWon")}),u.unthrottled?requestAnimationFrame(o):n=setInterval(o,50)}export{w as startGameLoop}; +import{_ as d,s as u,p as e,a as l,l as T,D as a,b as m,g as p}from"./index.7104c9b1.js";import"./vue.8b6e16f3.js";import{b2 as c}from"./@vue.6f8187b0.js";/* empty css */import"./lz-string.bfbf8ec3.js";import"./nanoevents.1080beb7.js";import"./unofficial-galaxy-sdk.21372393.js";import"./vue-textarea-autosize.35804eaf.js";import"./vue-next-select.d60d437a.js";import"./vuedraggable.56f5e1e2.js";import"./sortablejs.8abbd596.js";import"./vue-toastification.c011d2f2.js";let n=null,f=null;function o(){const t=Date.now();let i=(t-e.time)/1e3;e.time=t;const r=i;if(l.lastTenTicks.push(r),l.lastTenTicks.length>10&&(l.lastTenTicks=l.lastTenTicks.slice(1)),!((f==null?void 0:f.value)&&!e.keepGoing)&&!l.hasNaN&&(i=Math.max(i,0),e.devSpeed!==0)){if(T.value=!1,e.offlineTime!=null){if(a.gt(e.offlineTime,m.offlineLimit*3600)&&(e.offlineTime=m.offlineLimit*3600),a.gt(e.offlineTime,0)&&e.devSpeed!==0){const s=Math.max(e.offlineTime/10,i);e.offlineTime=e.offlineTime-s,i+=s}else e.devSpeed===0&&(e.offlineTime+=i);(!e.offlineProd||a.lt(e.offlineTime,0))&&(e.offlineTime=null)}i=Math.min(i,m.maxTickLength),e.devSpeed!=null&&(i*=e.devSpeed),Number.isFinite(i)||(i=1e308),!a.eq(i,0)&&(e.timePlayed+=i,Number.isFinite(e.timePlayed)||(e.timePlayed=1e308),p.emit("update",i,r),u.unthrottled?(requestAnimationFrame(o),n!=null&&(clearInterval(n),n=null)):n==null&&(n=setInterval(o,50)))}}async function w(){f=(await d(()=>import("./index.7104c9b1.js").then(function(t){return t.c}),["assets/index.7104c9b1.js","assets/index.785aa1c3.css","assets/@fontsource.f66d05e7.css","assets/vue.8b6e16f3.js","assets/lz-string.bfbf8ec3.js","assets/@vue.6f8187b0.js","assets/nanoevents.1080beb7.js","assets/unofficial-galaxy-sdk.21372393.js","assets/vue-textarea-autosize.35804eaf.js","assets/vue-next-select.d60d437a.js","assets/vue-next-select.9e6f4164.css","assets/vuedraggable.56f5e1e2.js","assets/sortablejs.8abbd596.js","assets/vue-toastification.c011d2f2.js","assets/vue-toastification.4b5f8ac8.css"])).hasWon,c(f,t=>{t&&p.emit("gameWon")}),u.unthrottled?requestAnimationFrame(o):n=setInterval(o,50)}export{w as startGameLoop}; diff --git a/assets/index.47b676b1.js b/assets/index.7104c9b1.js similarity index 99% rename from assets/index.47b676b1.js rename to assets/index.7104c9b1.js index aeaf845..56a3ba6 100644 --- a/assets/index.47b676b1.js +++ b/assets/index.7104c9b1.js @@ -14,5 +14,5 @@ Stack: ${_e} Trying to pop ${n.id}`);_e.pop(),L(n,"color"),L(n,"display"),L(n,"classes"),L(n,"style"),L(n,"name"),ce(n,"name",n.id),L(n,"minWidth"),ce(n,"minWidth",600),L(n,"minimizable"),ce(n,"minimizable",!0),L(n,"minimizedDisplay");const i=n.style;return n.style=F(()=>{var a,c;let s=l(n.minWidth);return(typeof s=="number"||!Number.isNaN(parseInt(s)))&&(s=s+"px"),[(a=l(i))!=null?a:"",(c=n.minimized)!=null&&c.value?{flexGrow:"0",flexShrink:"0",width:"60px",minWidth:"",flexBasis:"",margin:"0"}:{flexGrow:"",flexShrink:"",width:"",minWidth:s,flexBasis:s,margin:""}]}),n})}function On(e,t){if(console.info("Adding layer",e.id),le[e.id]){console.error("Attempted to add layer with same ID as existing layer",e.id,le[e.id]);return}ce(t,"layers",{}),t.layers[e.id]==null&&(t.layers[e.id]={}),le[e.id]=e,oe.emit("addLayer",e,t.layers[e.id])}function na(e){return le[e]}function Vn(e){console.info("Removing layer",e.id),oe.emit("removeLayer",e),le[e.id]=void 0}function ra(e){Vn(e),On(e,T)}function ia(e){const t=x(!1);return{openModal:()=>t.value=!0,modal:te(()=>_(Ue,{modelValue:t.value,"onUpdate:modelValue":n=>t.value=n},{header:()=>_("h2",null,[l(e.name)]),body:l(e.display)}))}}oe.on("update",function(t){Object.values(le).forEach(n=>{n==null||n.emit("preUpdate",t)}),Object.values(le).forEach(n=>{n==null||n.emit("update",t)}),Object.values(le).forEach(n=>{n==null||n.emit("postUpdate",t)})});var sa=Object.freeze(Object.defineProperty({__proto__:null,RegisterNodeInjectionKey:Kt,UnregisterNodeInjectionKey:Zt,NodesInjectionKey:Yt,BoundsInjectionKey:Xt,layers:le,persistentRefs:tt,addingLayers:_e,createLayer:Qt,addLayer:On,getLayer:na,removeLayer:Vn,reloadLayer:ra,setupLayerModal:ia},Symbol.toStringTag,{value:"Module"}));const aa=B({__name:"Context",emits:["updateNodes"],setup(e,{emit:t}){var b;const n=x({}),r=new ResizeObserver(c),i=x(null);yt(()=>{const v=i.value;v!=null&&r.observe(v)});let s=!0,a=x((b=i.value)==null?void 0:b.getBoundingClientRect());function c(){s&&(s=!1,Je(()=>{var v;a.value=(v=i.value)==null?void 0:v.getBoundingClientRect(),Object.values(n.value).filter(N=>N).forEach(N=>N.rect=N.element.getBoundingClientRect()),t("updateNodes",n.value),s=!0}))}oe.on("fontsLoaded",c);const d={attributes:!1,childList:!0,subtree:!1};Ct(Kt,(v,N)=>{const k=new MutationObserver(()=>f(v));k.observe(N,d),n.value[v]={element:N,observer:k,rect:N.getBoundingClientRect()},c()}),Ct(Zt,v=>{var N;(N=n.value[v])==null||N.observer.disconnect(),n.value[v]=void 0,c()}),Ct(Yt,n),Ct(Xt,a);function f(v){const N=n.value[v];N!=null&&(N.rect=N.element.getBoundingClientRect(),t("updateNodes",n.value))}return(v,N)=>(h(),w(W,null,[Le(v.$slots,"default",{},void 0,!0),m("div",{ref_key:"resizeListener",ref:i,class:"resize-listener"},null,512)],64))}});var Ln=G(aa,[["__scopeId","data-v-2b1dc1bc"]]);const oa=["onPointerdown"],la={class:"modal-wrapper"},ua=["width"],ca={class:"modal-header"},da={class:"modal-body"},fa={class:"modal-footer"},ga=m("div",{class:"modal-default-flex-grow"},null,-1),Ue=B({__name:"Modal",props:{modelValue:{type:Boolean},preventClosing:{type:Boolean},width:null},emits:["update:modelValue"],setup(e,{expose:t,emit:n}){const i=de(e),s=F(()=>l(i.modelValue)||c.value);function a(){l(i.preventClosing)!==!0&&n("update:modelValue",!1)}const c=x(!1),d=x(null),f=F(()=>{var b,v;return(v=(b=d.value)==null?void 0:b.nodes)!=null?v:null});return t({isOpen:s,nodes:f}),(b,v)=>(h(),R(Zn,{to:"#modal-root"},[_(yn,{name:"modal",onBeforeEnter:v[0]||(v[0]=N=>c.value=!0),onAfterLeave:v[1]||(v[1]=N=>c.value=!1),appear:""},{default:O(()=>[Wt(m("div",Ae({class:"modal-mask",onPointerdown:gt(a,["self"])},b.$attrs),[m("div",la,[m("div",{class:"modal-container",width:e.width},[m("div",ca,[Le(b.$slots,"header",{shown:l(s)},()=>[E(" default header ")])]),m("div",da,[_(Ln,{ref_key:"contextRef",ref:d},{default:O(()=>[Le(b.$slots,"body",{shown:l(s)},()=>[E(" default body ")])]),_:3},512)]),m("div",fa,[Le(b.$slots,"footer",{shown:l(s)},()=>[m("div",{class:"modal-default-footer"},[ga,m("button",{class:"button modal-default-button",onClick:a}," Close ")])])])],8,ua)])],16,oa),[[Kn,e.modelValue]])]),_:3})]))}}),Ge={variables:{"--foreground":"#dfdfdf","--background":"#0f0f0f","--feature-foreground":"#0f0f0f","--tooltip-background":"rgba(0, 0, 0, 0.75)","--raised-background":"#0f0f0f","--points":"#ffffff","--locked":"#bf8f8f","--highlighted":"#333","--bought":"#77bf5f","--danger":"rgb(220, 53, 69)","--link":"#02f2f2","--outline":"#dfdfdf","--accent1":"#627a82","--accent2":"#658262","--accent3":"#7c6282","--border-radius":"15px","--modal-border":"solid 2px var(--color)","--feature-margin":"0px"},floatingTabs:!0,mergeAdjacent:!0,showPin:!0};var en=(e=>(e.Classic="classic",e.Paper="paper",e.Nordic="nordic",e.Aqua="aqua",e))(en||{}),tn={classic:Ge,paper:{...Ge,variables:{...Ge.variables,"--background":"#2a323d","--feature-foreground":"#000","--raised-background":"#333c4a","--locked":"#3a3e45","--bought":"#5C8A58","--outline":"#333c4a","--border-radius":"4px","--modal-border":"","--feature-margin":"5px"},floatingTabs:!1},nordic:{...Ge,variables:{...Ge.variables,"--foreground":"#D8DEE9","--background":"#2E3440","--feature-foreground":"#000","--raised-background":"#3B4252","--points":"#E5E9F0","--locked":"#4c566a","--highlighted":"#434c5e","--bought":"#8FBCBB","--danger":"#D08770","--link":"#88C0D0","--outline":"#3B4252","--accent1":"#B48EAD","--accent2":"#A3BE8C","--accent3":"#EBCB8B","--border-radius":"4px","--modal-border":"solid 2px #3B4252","--feature-margin":"5px"},floatingTabs:!1},aqua:{...Ge,variables:{...Ge.variables,"--foreground":"#bfdfff","--background":"#001f3f","--tooltip-background":"rgba(0, 15, 31, 0.75)","--raised-background":"#001f3f","--points":"#dfefff","--locked":"#c4a7b3","--outline":"#bfdfff"}}};function xe(e={}){return Object.assign({id:`${U.id}-0`,name:"Default Save",tabs:U.initialTabs.slice(),time:Date.now(),autosave:!0,offlineProd:!0,offlineTime:0,timePlayed:0,keepGoing:!1,modID:U.id,modVersion:U.versionNumber,layers:{}},e)}function se(e){const t=Be.compressToUTF16(rt(e!=null?e:T));return localStorage.setItem((e!=null?e:T).id,t),t}async function ma(){ba();try{let e=localStorage.getItem(j.active);if(e==null){await Pe(nt());return}if(e=qe(e),e==null)throw"Unable to determine save encoding";const t=JSON.parse(e);if(t.modID!==U.id){await Pe(nt());return}t.id=j.active,await Pe(t)}catch(e){console.error(`Failed to load save. Falling back to new save. `,e),await Pe(nt())}}function qe(e){if(e[0]!=="{")if(e[0]==="e")e=decodeURIComponent(escape(atob(e)));else if(e[0]==="\u1BE1")e=Be.decompressFromUTF16(e);else return console.warn("Unable to determine preset encoding",e),null;return e}function nt(){const e=ft(),t=xe({id:e});return se(t),j.saves.push(e),t}function ft(){let e,t=0;do e=`${U.id}-${t++}`;while(localStorage.getItem(e)!=null);return e}const nn=x(!1);async function Pe(e){console.info("Loading save",e),nn.value=!0;const{layers:t,removeLayer:n,addLayer:r}=await mt(()=>Promise.resolve().then(function(){return sa}),void 0),{fixOldSave:i,getInitialLayers:s}=await mt(()=>Promise.resolve().then(function(){return Vu}),void 0);for(const a in t){const c=t[a];c&&n(c)}s(e).forEach(a=>r(a,e)),e=xe(e),e.offlineProd&&e.time!=null&&e.time&&e.devSpeed!==0&&(e.offlineTime==null&&(e.offlineTime=0),e.offlineTime+=Math.min(e.offlineTime+(Date.now()-e.time)/1e3,U.offlineLimit*3600)),e.time=Date.now(),e.modVersion!==U.versionNumber&&(i(e.modVersion,e),e.modVersion=U.versionNumber),Object.assign(T,e),j.active=T.id,oe.emit("onLoad")}const ye=Ot({});function ha(e){if(ye[e]==null){let t=localStorage.getItem(e);if(t==null)ye[e]={error:"Save doesn't exist in localStorage",id:e};else if(t==="dW5kZWZpbmVk")ye[e]={error:"Save is undefined",id:e};else try{if(t=qe(t),t==null)return console.warn("Unable to determine preset encoding",t),ye[e]={error:"Unable to determine preset encoding",id:e},ye[e];ye[e]={...JSON.parse(t),id:e}}catch(n){ye[e]={error:n,id:e},console.warn(`Failed to load info about save with id ${e}: ${n} -${t}`)}}return ye[e]}function pa(){Object.keys(ye).forEach(e=>delete ye[e])}function kt(e){ye[e]=void 0}setInterval(()=>{T.autosave&&se()},1e3);window.onbeforeunload=()=>{T.autosave&&se()};window.save=se;const va=window.hardReset=async()=>{await Pe(nt())};window.deleteLowerSaves=()=>{const e=Object.values(j.saves).indexOf(T.id)+1;Object.values(j.saves).slice(e).forEach(t=>localStorage.removeItem(t)),j.saves=j.saves.slice(0,e)};const vt=it({active:"",saves:[],showTPS:!0,theme:en.Nordic,unthrottled:!1,alignUnits:!1});he(vt,e=>{const t=Be.compressToUTF16(JSON.stringify(e));localStorage.setItem(U.id,t)},{deep:!0});var j=window.settings=vt;window.hardResetSettings=()=>{const e={active:"",saves:[],showTPS:!0,theme:en.Nordic,alignUnits:!1};oe.emit("loadSettings",e),Object.assign(vt,e),va()};function ba(){try{let e=localStorage.getItem(U.id);if(e!=null&&e!==""){if(e=qe(e),e==null){console.warn("Unable to determine settings encoding",e);return}const t=JSON.parse(e);typeof t=="object"&&Object.assign(vt,t)}oe.emit("loadSettings",vt)}catch{}}const ya=it([]),Dn=it([]);function _a(e){Dn.push(e)}const Na=it([]),ge=x(),Se=x([]),ot=x([]);function wa(){var e;((e=ge.value)==null?void 0:e.loggedIn)===!0&&(Se.value.length>0||ge.value.getSaveList().then(Rn).then(t=>{ot.value=t.map(n=>n.content.id)}).catch(console.error))}nr({supportsSaving:!0,supportsSaveManager:!0,onLoggedInChanged:vn}).then(e=>{ge.value=e,vn(e)}).catch(console.error);function vn(e){e.loggedIn===!0&&(Se.value.length>0||(e.getSaveList().then(t=>{const n=Rn(t);if(ot.value=n.map(r=>r.content.id),T.timePlayed<120*1e3&&n.length>0){const r=n.reduce((i,s)=>i.content.times)),r=Object.keys(e).map(i=>{var c;const{label:s,content:a}=e[i];try{return{slot:parseInt(i),label:s,content:JSON.parse((c=qe(a))!=null?c:"")}}catch{return null}}).filter(i=>i!=null&&typeof i.content.id=="string"&&typeof i.content.time=="number"&&typeof i.content.timePlayed=="number").filter(i=>{var a,c,d,f,b,v;i.label!=null&&(i.content.name=i.label),n.delete(i.slot);const s=j.saves.find(N=>N===i.content.id);if(s==null)j.saves.push(i.content.id),se(xe(i.content));else{t.delete(s);try{const N=JSON.parse((c=qe((a=localStorage.getItem(s))!=null?a:""))!=null?c:"");if(N==null)return!1;N.id=s,N.time=(d=N.time)!=null?d:0,N.timePlayed=(f=N.timePlayed)!=null?f:0;const k=Math.abs(N.timePlayed-i.content.timePlayed),y=Math.abs(N.time-i.content.time);k<120*1e3&&y<120*1e3?N.time{var s,a,c;try{if(n.size>0){const d=(s=localStorage.getItem(i))!=null?s:"",f=JSON.parse((a=qe(d))!=null?a:""),b=n.values().next().value;(c=ge.value)==null||c.save(b,d,f.name).then(()=>ot.value.push(f.id)).catch(console.error),n.delete(b)}}catch{}}),r}function ue(e,t="span"){return typeof e=="function"?B({render:e}):typeof e=="string"?e.length>0?(e=e.trim(),e.charAt(0)!=="<"&&(e=`<${t}>${e}`),B({template:e})):B({render:()=>({})}):e}function Nt(e){if(Rt(e))return typeof e=="function"?e():ue(e);const t=e[De];return _(t,e[Re](),null)}function Mt(e){if(Rt(e))return typeof e=="function"?e():typeof e=="string"?_(W,null,[e]):_(e,null,null);const t=e[De];return _(t,e[Re](),null)}function Rt(e){return typeof e=="string"?!0:typeof e=="object"?e==null?!1:"render"in e||"component"in e:typeof e=="function"&&e[pt]===!0}function qn(e,t){const n=x(null),r=x(void 0);function i(c){n.value||(n.value=setInterval(a,250)),r.value=c}function s(){n.value&&(clearInterval(n.value),n.value=null)}function a(){t&&t.value?t.value():e&&e.value&&e.value(r.value)}return _n(s),{start:i,stop:s,handleHolding:a}}function Ca(e,t="div"){const n=Ne();return We(()=>{n.value=ue(we(e),t)}),n}function lt(e,t="div"){const n=Ne(null);return We(()=>{const r=we(e);n.value=r===""||r==null?null:ue(r,t)}),n}function we(e){return l(l(e))}function z(...e){return e.includes(Object)||e.push(Object),e}function ka(e){return Object.keys(e).reduce((t,n)=>(t[ki(n)]=e[n],t),{})}var Sa=B({props:{element:Object,display:{type:z(Object,String,Function),required:!0},style:z(Object,String,Array),classes:z(Object),direction:z(String),xoffset:z(String),yoffset:z(String),pinned:Object},setup(e){const{element:t,display:n,pinned:r}=de(e),i=x(!1),s=F(()=>(we(r)||i.value)&&a.value),a=lt(n),c=Ne(ue(te(()=>{const b=we(t);return b==null?"":Mt(b)})));function d(b){const v=r;b.shiftKey&&v&&(v.value=!v.value,b.stopPropagation(),b.preventDefault())}const f=F(()=>we(r)&&tn[j.theme].showPin);return{Direction:J,isHovered:i,isShown:s,comp:a,elementComp:c,unref:l,togglePinned:d,showPin:f}}});const Ia={key:0,class:"material-icons pinned"};function Ma(e,t,n,r,i,s){return h(),w("div",{class:ee(["tooltip-container",{shown:e.isShown}]),onMouseenter:t[0]||(t[0]=a=>e.isHovered=!0),onMouseleave:t[1]||(t[1]=a=>e.isHovered=!1),onClickCapture:t[2]||(t[2]=(...a)=>e.togglePinned&&e.togglePinned(...a))},[Le(e.$slots,"default",{},void 0,!0),e.elementComp?(h(),R(ae(e.elementComp),{key:0})):M("",!0),_(yn,{name:"fade"},{default:O(()=>{var a;return[e.isShown?(h(),w("div",{key:0,class:ee(["tooltip",{top:e.unref(e.direction)===e.Direction.Up,left:e.unref(e.direction)===e.Direction.Left,right:e.unref(e.direction)===e.Direction.Right,bottom:e.unref(e.direction)===e.Direction.Down,...e.unref(e.classes)}]),style:me([{"--xoffset":e.unref(e.xoffset)||"0px","--yoffset":e.unref(e.yoffset)||"0px"},(a=e.unref(e.style))!=null?a:{}])},[e.showPin?(h(),w("span",Ia,"push_pin")):M("",!0),e.comp?(h(),R(ae(e.comp),{key:1})):M("",!0)],6)):M("",!0)]}),_:1})],34)}var Q=G(Sa,[["render",Ma],["__scopeId","data-v-6102fa3a"]]);const $a={key:0},xa=["onClick","disabled"],Pa={key:0},Ta=["onClick"],Fa=B({__name:"DangerButton",props:{disabled:{type:Boolean},skipConfirm:{type:Boolean}},emits:["click","confirmingChanged"],setup(e,{emit:t}){const r=de(e),i=x(!1);he(i,c=>{t("confirmingChanged",c)});function s(){if(l(r.skipConfirm)){t("click");return}i.value&&t("click"),i.value=!i.value}function a(){i.value=!1}return(c,d)=>(h(),w("span",{class:ee(["container",{confirming:i.value}])},[i.value?(h(),w("span",$a,"Are you sure?")):M("",!0),m("button",{onClick:gt(s,["stop"]),class:"button danger",disabled:e.disabled},[i.value?(h(),w("span",Pa,"Yes")):Le(c.$slots,"default",{key:1},void 0,!0)],8,xa),i.value?(h(),w("button",{key:1,class:"button",onClick:gt(a,["stop"])},"No",8,Ta)):M("",!0)],2))}});var Ea=G(Fa,[["__scopeId","data-v-2f8ef34c"]]);const Oa=["onSubmit"],Va={class:"field"},La={key:0,class:"field-title"},Da=["placeholder"],Ra=B({__name:"Text",props:{title:null,modelValue:null,textArea:{type:Boolean},placeholder:null,maxHeight:null,submitOnBlur:{type:Boolean}},emits:["update:modelValue","submit","cancel"],setup(e,{emit:t}){const n=e,r=lt(Te(n,"title"),"span"),i=Ne(null);yt(()=>{var d;(d=i.value)==null||d.focus()});const s=F({get(){var d;return(d=l(n.modelValue))!=null?d:""},set(d){t("update:modelValue",d)}});function a(){t("submit")}function c(){n.submitOnBlur!==!1?t("submit"):t("cancel")}return(d,f)=>(h(),w("form",{onSubmit:gt(a,["prevent"])},[m("div",Va,[l(r)?(h(),w("span",La,[(h(),R(ae(l(r))))])):M("",!0),e.textArea?(h(),R(l(rr),{key:1,modelValue:l(s),"onUpdate:modelValue":f[0]||(f[0]=b=>ie(s)?s.value=b:null),placeholder:e.placeholder,maxHeight:e.maxHeight,onBlur:c,ref_key:"field",ref:i},null,8,["modelValue","placeholder","maxHeight"])):Wt((h(),w("input",{key:2,type:"text","onUpdate:modelValue":f[1]||(f[1]=b=>ie(s)?s.value=b:null),placeholder:e.placeholder,class:ee({fullWidth:!e.title}),onBlur:c,ref_key:"field",ref:i},null,42,Da)),[[Yn,l(s)]])])],40,Oa))}});var An=G(Ra,[["__scopeId","data-v-90bd4994"]]);const Fe=e=>(Ie("data-v-2fbabe5d"),e=e(),Me(),e),qa={key:0,class:"handle material-icons"},Aa={key:1,class:"actions"},Ba=Fe(()=>m("span",{class:"material-icons"},"content_paste",-1)),Ua=Fe(()=>m("span",{class:"material-icons"},"content_copy",-1)),za=Fe(()=>m("span",{class:"material-icons"},"edit",-1)),Ga=Fe(()=>m("span",{class:"material-icons",style:{margin:"-2px"}},"delete",-1)),ja={key:2,class:"actions"},Ha=Fe(()=>m("span",{class:"material-icons"},"check",-1)),Wa=Fe(()=>m("span",{class:"material-icons"},"close",-1)),Ja={key:3,class:"details"},Ka=Fe(()=>m("span",{class:"material-icons synced"},"cloud",-1)),Za=["disabled"],Ya={class:"save-version"},Xa=Fe(()=>m("br",null,null,-1)),Qa={key:1,class:"time"},eo={key:4,class:"details"},to={key:5,class:"details error"},no=Fe(()=>m("br",null,null,-1)),ro=B({__name:"Save",props:{save:null,readonly:{type:Boolean}},emits:["export","open","duplicate","delete","editName"],setup(e,{emit:t}){const n=e,{save:r,readonly:i}=de(n),s=new Intl.DateTimeFormat("en-US",{year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric"}),a=x(!1),c=x(!1),d=x("");he(a,()=>{var k;return d.value=(k=r.value.name)!=null?k:""});const f=F(()=>r.value!=null&&r.value.id===T.id&&!l(i)),b=F(()=>{var k;return f.value?T.time:(k=r.value!=null&&r.value.time)!=null?k:0}),v=F(()=>{var k;return!l(i)&&((k=ge.value)==null?void 0:k.loggedIn)===!0&&ot.value.includes(r.value.id)});function N(){t("editName",d.value),a.value=!1}return(k,y)=>(h(),w("div",{class:ee(["save",{active:l(f),readonly:l(i)}])},[l(i)!==!0?(h(),w("div",qa,"drag_handle")):M("",!0),!a.value&&l(i)!==!0?(h(),w("div",Aa,[l(r).error==null&&!c.value?(h(),R(Jt,{key:0,onClick:y[0]||(y[0]=S=>t("export")),class:"button",left:""},{default:O(()=>[_(Q,{display:"Export",direction:l(J).Left,class:"info"},{default:O(()=>[Ba]),_:1},8,["direction"])]),_:1})):M("",!0),l(r).error==null&&!c.value?(h(),w("button",{key:1,onClick:y[1]||(y[1]=S=>t("duplicate")),class:"button"},[_(Q,{display:"Duplicate",direction:l(J).Left,class:"info"},{default:O(()=>[Ua]),_:1},8,["direction"])])):M("",!0),l(r).error==null&&!c.value?(h(),w("button",{key:2,onClick:y[2]||(y[2]=S=>a.value=!a.value),class:"button"},[_(Q,{display:"Edit Name",direction:l(J).Left,class:"info"},{default:O(()=>[za]),_:1},8,["direction"])])):M("",!0),_(Ea,{disabled:l(f),onClick:y[3]||(y[3]=S=>t("delete")),onConfirmingChanged:y[4]||(y[4]=S=>c.value=S)},{default:O(()=>[_(Q,{display:"Delete",direction:l(J).Left,class:"info"},{default:O(()=>[Ga]),_:1},8,["direction"])]),_:1},8,["disabled"])])):l(i)!==!0?(h(),w("div",ja,[m("button",{onClick:N,class:"button"},[_(Q,{display:"Save",direction:l(J).Left,class:"info"},{default:O(()=>[Ha]),_:1},8,["direction"])]),m("button",{onClick:y[5]||(y[5]=S=>a.value=!a.value),class:"button"},[_(Q,{display:"Cancel",direction:l(J).Left,class:"info"},{default:O(()=>[Wa]),_:1},8,["direction"])])])):M("",!0),l(r).error==null&&!a.value?(h(),w("div",Ja,[l(v)?(h(),R(Q,{key:0,display:"Synced!",direction:l(J).Right},{default:O(()=>[Ka]),_:1},8,["direction"])):M("",!0),m("button",{class:"button open",onClick:y[6]||(y[6]=S=>t("open")),disabled:l(i)},[m("h3",null,V(l(r).name),1)],8,Za),m("span",Ya,"v"+V(l(r).modVersion),1),Xa,l(b)?(h(),w("div",Qa," Last played "+V(l(s).format(l(b))),1)):M("",!0)])):l(r).error==null&&a.value?(h(),w("div",eo,[_(An,{modelValue:d.value,"onUpdate:modelValue":y[7]||(y[7]=S=>d.value=S),class:"editname",onSubmit:N},null,8,["modelValue"])])):(h(),w("div",to,[E(" Error: Failed to load save with id "+V(l(r).id),1),no,E(V(l(r).error),1)]))],2))}});var Ht=G(ro,[["__scopeId","data-v-2fbabe5d"]]);const rn=e=>(Ie("data-v-a123f6ba"),e=e(),Me(),e),io={class:"cloud-saves-modal-header"},so=rn(()=>m("br",null,null,-1)),ao=["onClick"],oo={key:0,class:"note"},lo={key:1,class:"note"},uo=["onClick"],co={key:0,class:"note"},fo={key:1,class:"note"},go=["onClick"],mo=rn(()=>m("h2",null,"Both",-1)),ho=rn(()=>m("div",{class:"save"},"Keep Both",-1)),po=[mo,ho],vo=B({__name:"CloudSaveResolver",setup(e){const t=x(!1),n=x([]),r=F(()=>Se.value.length>1?"saves":"save"),i=x(null);he(()=>Se.value.length>0,f=>{f&&(n.value=Se.value.map(({local:b,cloud:v})=>{var N,k;return((N=b.time)!=null?N:0)<((k=v.time)!=null?k:0)?"cloud":"local"}),t.value=!0)},{immediate:!0}),he(()=>{var f;return(f=i.value)==null?void 0:f.isOpen},f=>{f===!1&&(Se.value=[])});function s(f){n.value[f]="local"}function a(f){n.value[f]="cloud"}function c(f){n.value[f]="both"}function d(){var f,b;for(let v=0;v(h(),R(Ue,{modelValue:t.value,"onUpdate:modelValue":b[0]||(b[0]=v=>t.value=v),width:"960px",ref_key:"modal",ref:i,"prevent-closing":!0},{header:O(()=>[m("div",io,[m("h2",null,"Cloud "+V(l(r))+" loaded!",1)])]),body:O(()=>[m("div",null," Upon loading, your cloud "+V(l(r))+" "+V(l(Se).length>1?"appear":"appears")+" to be out of sync with your local "+V(l(r))+". Which "+V(l(r))+" do you want to keep? ",1),so,(h(!0),w(W,null,Oe(l(l(Se)),(v,N)=>{var k,y,S,P,I,$,q,ne;return h(),w("div",{key:v.id,class:"conflict-container"},[m("div",{onClick:fe=>a(N),class:ee({selected:n.value[N]==="cloud"})},[m("h2",null,[E(" Cloud "),((k=v.cloud.time)!=null?k:0)>((y=v.local.time)!=null?y:0)?(h(),w("span",oo,"(more recent)")):M("",!0),((S=v.cloud.timePlayed)!=null?S:0)>((P=v.local.timePlayed)!=null?P:0)?(h(),w("span",lo,"(more playtime)")):M("",!0)]),_(Ht,{save:v.cloud,readonly:!0},null,8,["save"])],10,ao),m("div",{onClick:fe=>s(N),class:ee({selected:n.value[N]==="local"})},[m("h2",null,[E(" Local "),((I=v.cloud.time)!=null?I:0)<=(($=v.local.time)!=null?$:0)?(h(),w("span",co,"(more recent)")):M("",!0),((q=v.cloud.timePlayed)!=null?q:0)<=((ne=v.local.timePlayed)!=null?ne:0)?(h(),w("span",fo,"(more playtime)")):M("",!0)]),_(Ht,{save:v.local,readonly:!0},null,8,["save"])],10,uo),m("div",{onClick:fe=>c(N),class:ee({selected:n.value[N]==="both"}),style:{"flex-basis":"30%"}},po,10,go)])}),128))]),footer:O(()=>[m("div",{class:"cloud-saves-footer"},[m("button",{onClick:d,class:"button"},"Confirm")])]),_:1},8,["modelValue"]))}});var bo=G(vo,[["__scopeId","data-v-a123f6ba"]]);const yo=B({components:{Context:Ln,ErrorVue:wn},props:{index:{type:Number,required:!0},display:{type:z(Object,String,Function),required:!0},minimizedDisplay:z(Object,String,Function),minimized:{type:Object,required:!0},name:{type:z(String),required:!0},color:z(String),minimizable:z(Boolean),nodes:{type:Object,required:!0}},emits:["setMinimized"],setup(e){const{display:t,index:n,minimized:r,minimizedDisplay:i}=de(e),s=Ca(t),a=lt(i),c=F(()=>U.allowGoBack&&n.value>0&&!we(r));function d(){T.tabs.splice(l(e.index),1/0)}function f(v){e.nodes.value=v}const b=x([]);return Xn((v,N,k)=>(console.warn(`Error caught in "${e.name}" layer`,v,N,k),b.value.push(v instanceof Error?v:new Error(JSON.stringify(v))),!1)),{component:s,minimizedComponent:a,showGoBack:c,updateNodes:f,unref:l,goBack:d,errors:b}}}),_o={key:1};function No(e,t,n,r,i,s){const a=Ke("ErrorVue"),c=Ke("Context");return e.errors.length>0?(h(),R(a,{key:0,errors:e.errors},null,8,["errors"])):(h(),w("div",Ae({key:1,class:"layer-container",style:{"--layer-color":e.unref(e.color)}},e.$attrs),[e.showGoBack?(h(),w("button",{key:0,class:"goBack",onClick:t[0]||(t[0]=(...d)=>e.goBack&&e.goBack(...d))},"\u274C")):M("",!0),e.unref(e.minimized)?(h(),w("button",{key:1,class:"layer-tab minimized",onClick:t[1]||(t[1]=d=>e.$emit("setMinimized",!1))},[e.minimizedComponent?(h(),R(ae(e.minimizedComponent),{key:0})):(h(),w("div",_o,V(e.unref(e.name)),1))])):(h(),w("div",{key:2,class:ee(["layer-tab",{showGoBack:e.showGoBack}])},[_(c,{onUpdateNodes:e.updateNodes},{default:O(()=>[(h(),R(ae(e.component)))]),_:1},8,["onUpdateNodes"])],2)),e.unref(e.minimizable)?(h(),w("button",{key:3,class:"minimize",onClick:t[2]||(t[2]=d=>e.$emit("setMinimized",!0))}," \u25BC ")):M("",!0)],16))}var wo=G(yo,[["render",No],["__scopeId","data-v-a9f5b1da"]]);const Bn=e=>(Ie("data-v-4b4bda40"),e=e(),Me(),e),Co=Bn(()=>m("h2",null,"Changelog",-1)),ko=Bn(()=>m("details",{open:""},[m("summary",null,[E("v0.0 Initial Commit - "),m("time",null,"2021-09-04")]),E(" This is the first release :D "),m("ul",null,[m("li",{class:"feature"},"Did everything"),m("li",{class:"fix"},"Had some fun"),m("li",{class:"breaking"},"Removed everything"),m("li",{class:"balancing"},"Created some bugs to fix later")])],-1)),So=B({__name:"Changelog",setup(e,{expose:t}){const n=x(!1);return t({open(){n.value=!0}}),(r,i)=>(h(),R(Ue,{modelValue:n.value,"onUpdate:modelValue":i[0]||(i[0]=s=>n.value=s)},{header:O(()=>[Co]),body:O(()=>[ko]),_:1},8,["modelValue"]))}});var Io=G(So,[["__scopeId","data-v-4b4bda40"]]);const Xe=e=>(Ie("data-v-10effbe8"),e=e(),Me(),e),Mo={class:"info-modal-header"},$o=["src","alt"],xo={class:"info-modal-title"},Po={key:0},To={key:0},Fo={key:0},Eo=Xe(()=>m("div",null," Made in Profectus, by thepaperpilot with inspiration from Acameada and Jacorb ",-1)),Oo=Xe(()=>m("br",null,null,-1)),Vo=Xe(()=>m("br",null,null,-1)),Lo=["href"],Do=Xe(()=>m("span",{class:"material-icons info-modal-discord"},"discord",-1)),Ro=Xe(()=>m("div",null,[m("a",{href:"https://discord.gg/yJ4fjnjU54",class:"info-modal-discord-link",target:"_blank"},[m("span",{class:"material-icons info-modal-discord"},"discord"),E(" Profectus & Friends ")])],-1)),qo=Xe(()=>m("div",null,[m("a",{href:"https://discord.gg/F3xveHV",class:"info-modal-discord-link",target:"_blank"},[m("span",{class:"material-icons info-modal-discord"},"discord"),E(" The Modding Tree ")])],-1)),Ao=Xe(()=>m("br",null,null,-1));var Bo=B({__name:"Info",props:{changelog:null},setup(e,{expose:t}){const n=e,{title:r,logo:i,author:s,discordName:a,discordLink:c,versionNumber:d,versionTitle:f}=U,b=de(n),v=x(!1),N=F(()=>Lt(T.timePlayed)),k=F(()=>ue(te(()=>_(W,null,[Dn.map(Nt)]))));t({open(){v.value=!0}});function y(){var S;(S=l(b.changelog))==null||S.open()}return(S,P)=>(h(),R(Ue,{modelValue:v.value,"onUpdate:modelValue":P[0]||(P[0]=I=>v.value=I)},{header:O(()=>[m("div",Mo,[l(i)?(h(),w("img",{key:0,class:"info-modal-logo",src:l(i),alt:l(r)},null,8,$o)):M("",!0),m("div",xo,[m("h2",null,V(l(r)),1),m("h4",null,[E(" v"+V(l(d)),1),l(f)?(h(),w("span",Po,": "+V(l(f)),1)):M("",!0)])])])]),body:O(({shown:I})=>[I?(h(),w("div",To,[l(s)?(h(),w("div",Fo,"By "+V(l(s)),1)):M("",!0),Eo,Oo,m("div",{class:"link",onClick:y},"Changelog"),Vo,m("div",null,[l(c)?(h(),w("a",{key:0,href:l(c),class:"info-modal-discord-link",target:"_blank"},[Do,E(" "+V(l(a)),1)],8,Lo)):M("",!0)]),Ro,qo,Ao,m("div",null,"Time Played: "+V(l(N)),1),(h(),R(ae(l(k))))])):M("",!0)]),_:1},8,["modelValue"]))}});var Uo=G(Bo,[["__scopeId","data-v-10effbe8"]]);const zo={class:"field"},Go={key:0,class:"field-title"},Un=B({__name:"Select",props:{title:null,modelValue:null,options:null,placeholder:null,closeOnSelect:{type:Boolean}},emits:["update:modelValue"],setup(e,{emit:t}){var a;const n=e,r=lt(Te(n,"title"),"span"),i=x((a=n.options.find(c=>c.value===n.modelValue))!=null?a:null);he(Te(n,"modelValue"),c=>{var d;we(i)!==c&&(i.value=(d=n.options.find(f=>f.value===c))!=null?d:null)});function s(c){t("update:modelValue",c.value)}return(c,d)=>(h(),w("div",zo,[l(r)?(h(),w("span",Go,[(h(),R(ae(l(r))))])):M("",!0),_(l(ir),{options:e.options,modelValue:i.value,"onUpdate:modelValue":[d[0]||(d[0]=f=>i.value=f),s],min:1,"label-by":"label",placeholder:e.placeholder,"close-on-select":e.closeOnSelect},null,8,["options","modelValue","placeholder","close-on-select"])]))}});const jo={class:"field"},Ho=B({__name:"Toggle",props:{title:null,modelValue:{type:Boolean}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,r=F(()=>{var s;return ue((s=l(n.title))!=null?s:"","span")}),i=F({get(){return!!n.modelValue},set(s){t("update:modelValue",s)}});return(s,a)=>(h(),w("label",jo,[Wt(m("input",{type:"checkbox",class:"toggle","onUpdate:modelValue":a[0]||(a[0]=c=>ie(i)?i.value=c:null)},null,512),[[Qn,l(i)]]),(h(),R(ae(l(r))))]))}});var $e=G(Ho,[["__scopeId","data-v-11046116"]]);const Wo={class:"header"},Jo=m("h2",null,"Settings",-1),Ko={class:"option-tabs"},Zo={key:0},Yo={key:1};var Xo=B({__name:"Options",setup(e,{expose:t}){const n=x(!1),r=x("behaviour");function i(be){return be==r.value}function s(be){r.value=be}t({isTab:i,setTab:s,save:se,open(){n.value=!0}});const a=Object.keys(tn).map(be=>({label:xn(be),value:be})),c=F(()=>ue(te(()=>_(W,null,[ya.map(Nt)])))),{showTPS:d,theme:f,unthrottled:b,alignUnits:v}=de(j),{autosave:N,offlineProd:k}=de(T),y=F({get(){return T.devSpeed===0},set(be){T.devSpeed=be?0:null}}),S=te(()=>_("span",{class:"option-title"},[E("Unthrottled"),_("desc",null,[E("Allow the game to run as fast as possible. Not battery friendly.")])])),P=te(()=>_("span",{class:"option-title"},[E("Offline Production"),_(Q,{display:"Save-specific",direction:J.Right},{default:()=>[E("*")]}),_("desc",null,[E("Simulate production that occurs while the game is closed.")])])),I=te(()=>_("span",{class:"option-title"},[E("Autosave"),_(Q,{display:"Save-specific",direction:J.Right},{default:()=>[E("*")]}),_("desc",null,[E("Automatically save the game every second or when the game is closed.")])])),$=te(()=>_("span",{class:"option-title"},[E("Pause game"),_(Q,{display:"Save-specific",direction:J.Right},{default:()=>[E("*")]}),_("desc",null,[E("Stop everything from moving.")])])),q=te(()=>_("span",{class:"option-title"},[E("Theme"),_("desc",null,[E("How the game looks.")])])),ne=te(()=>_("span",{class:"option-title"},[E("Show TPS"),_("desc",null,[E("Show TPS meter at the bottom-left corner of the page.")])])),fe=te(()=>_("span",{class:"option-title"},[E("Align modifier units"),_("desc",null,[E("Align numbers to the beginning of the unit in modifier view.")])]));return(be,H)=>(h(),R(Ue,{modelValue:n.value,"onUpdate:modelValue":H[10]||(H[10]=re=>n.value=re)},{header:O(()=>[m("div",Wo,[Jo,m("div",Ko,[m("button",{class:ee({selected:i("behaviour")}),onClick:H[0]||(H[0]=re=>s("behaviour"))},"Behaviour",2),m("button",{class:ee({selected:i("appearance")}),onClick:H[1]||(H[1]=re=>s("appearance"))},"Appearance",2)])])]),body:O(()=>[i("behaviour")?(h(),w("div",Zo,[_($e,{title:l(S),modelValue:l(b),"onUpdate:modelValue":H[2]||(H[2]=re=>ie(b)?b.value=re:null)},null,8,["title","modelValue"]),l(U).enablePausing?(h(),R($e,{key:0,title:l($),modelValue:l(y),"onUpdate:modelValue":H[3]||(H[3]=re=>ie(y)?y.value=re:null)},null,8,["title","modelValue"])):M("",!0),_($e,{title:l(P),modelValue:l(k),"onUpdate:modelValue":H[4]||(H[4]=re=>ie(k)?k.value=re:null)},null,8,["title","modelValue"]),_($e,{title:l(I),modelValue:l(N),"onUpdate:modelValue":H[5]||(H[5]=re=>ie(N)?N.value=re:null)},null,8,["title","modelValue"]),l(N)?M("",!0):(h(),R(Jt,{key:1,class:"button save-button",onClick:H[6]||(H[6]=re=>l(se)())},{default:O(()=>[E("Manually save")]),_:1}))])):M("",!0),i("appearance")?(h(),w("div",Yo,[_(Un,{title:l(q),options:l(a),modelValue:l(f),"onUpdate:modelValue":H[7]||(H[7]=re=>ie(f)?f.value=re:null)},null,8,["title","options","modelValue"]),(h(),R(ae(l(c)))),_($e,{title:l(ne),modelValue:l(d),"onUpdate:modelValue":H[8]||(H[8]=re=>ie(d)?d.value=re:null)},null,8,["title","modelValue"]),_($e,{title:l(fe),modelValue:l(v),"onUpdate:modelValue":H[9]||(H[9]=re=>ie(v)?v.value=re:null)},null,8,["title","modelValue"])])):M("",!0)]),_:1},8,["modelValue"]))}});const sn=e=>(Ie("data-v-b84e3a02"),e=e(),Me(),e),Qo=sn(()=>m("h2",null,"Saves Manager",-1)),el={key:0,style:{color:"var(--danger)"}},tl={class:"modal-footer"},nl={class:"field"},rl=sn(()=>m("span",{class:"field-title"},"Create Save",-1)),il={class:"field-buttons"},sl={class:"footer"},al=sn(()=>m("div",{style:{"flex-grow":"1"}},null,-1)),ol=B({__name:"SavesManager",setup(e,{expose:t}){const n=x(!1),r=x(null);t({open(){n.value=!0}});const i=x(!1),s=x(""),a=x(null);he(s,I=>{I?Je(()=>{var $;try{if(I=($=qe(I))!=null?$:"",I===""){console.warn("Unable to determine preset encoding",I),i.value=!0;return}const q=JSON.parse(I);if(typeof q!="object"){i.value=!0;return}const ne=ft();q.id=ne,se(q),s.value="",i.value=!1,j.saves.push(ne)}catch{i.value=!0}}):i.value=!1});let c={},d=x(Object.keys(c).reduce((I,$)=>(I.push({label:$.split("/").slice(-1)[0].slice(0,-4),value:c[$]}),I),[]));he(n,I=>{I&&pa()});const f=F(()=>j.saves.reduce((I,$)=>(I[$]=ha($),I),{})),b=F(()=>{var I;return((I=ge.value)==null?void 0:I.loggedIn)===!0&&j.saves.length{var fe;const ne=Object.keys(q).find(be=>{const H=q[be].content;try{if(JSON.parse(H).id===I)return!0}catch{return!1}});ne!=null&&((fe=ge.value)==null||fe.save(parseInt(ne),"","").catch(console.error))}),j.saves=j.saves.filter(q=>q!==I),localStorage.removeItem(I),kt(I)}function y(I){f.value[T.id].time=T.time,se(),kt(T.id),Pe(f.value[I]),kt(I)}function S(I){var q;if(a.value=I,Je(()=>{a.value=null}),I=(q=qe(I))!=null?q:"",I===""){console.warn("Unable to determine preset encoding",I);return}const $=JSON.parse(I);$.id=ft(),se($),j.saves.push($.id),y($.id)}function P(I,$){const q=f.value[I];q!=null&&(q.name=$,T.id===I?(T.name=$,se()):(se(q),kt(I)))}return(I,$)=>(h(),R(Ue,{modelValue:n.value,"onUpdate:modelValue":$[4]||($[4]=q=>n.value=q),ref_key:"modal",ref:r},{header:O(()=>[Qo]),body:O(({shown:q})=>[l(b)?(h(),w("div",el," Not all saves are synced! You may need to delete stale saves. ")):M("",!0),q?(h(),R(l(sr),{key:1,list:l(j).saves,handle:".handle",itemKey:ne=>ne},{item:O(({element:ne})=>[_(Ht,{save:l(f)[ne],onOpen:fe=>y(ne),onExport:fe=>v(ne),onEditName:fe=>P(ne,fe),onDuplicate:fe=>N(ne),onDelete:fe=>k(ne)},null,8,["save","onOpen","onExport","onEditName","onDuplicate","onDelete"])]),_:1},8,["list","itemKey"])):M("",!0)]),footer:O(()=>[m("div",tl,[_(An,{modelValue:s.value,"onUpdate:modelValue":$[0]||($[0]=q=>s.value=q),title:"Import Save",placeholder:"Paste your save here!",class:ee({importingFailed:i.value})},null,8,["modelValue","class"]),m("div",nl,[rl,m("div",il,[m("button",{class:"button",onClick:$[1]||($[1]=q=>y(l(nt)().id))},"New Game"),Object.keys(l(d)).length>0?(h(),R(Un,{key:0,options:l(d),modelValue:a.value,"onUpdate:modelValue":$[2]||($[2]=q=>S(q)),closeOnSelect:"",placeholder:"Select preset",class:"presets"},null,8,["options","modelValue"])):M("",!0)])]),m("div",sl,[al,m("button",{class:"button modal-default-button",onClick:$[3]||($[3]=q=>n.value=!1)}," Close ")])])]),_:1},8,["modelValue"]))}});var zn=G(ol,[["__scopeId","data-v-b84e3a02"]]);const ke=e=>(Ie("data-v-b1a52b1c"),e=e(),Me(),e),ll=["src","alt"],ul={key:1,class:"title"},cl=ke(()=>m("div",{style:{"flex-grow":"1",cursor:"unset"}},null,-1)),dl={class:"discord"},fl={class:"discord-links"},gl={key:0},ml=["href"],hl=ke(()=>m("li",null,[m("a",{href:"https://discord.gg/yJ4fjnjU54",target:"_blank"},"Profectus & Friends")],-1)),pl=ke(()=>m("li",null,[m("a",{href:"https://discord.gg/F3xveHV",target:"_blank"},"The Modding Tree")],-1)),vl={href:"https://forums.moddingtree.com/",target:"_blank"},bl=ke(()=>m("span",{class:"material-icons"},"forum",-1)),yl=ke(()=>m("span",{class:"material-icons"},"info",-1)),_l=ke(()=>m("span",{class:"material-icons"},"settings",-1)),Nl=ke(()=>m("span",{class:"material-icons"},"settings",-1)),wl=ke(()=>m("span",{class:"material-icons"},"info",-1)),Cl={href:"https://forums.moddingtree.com/",target:"_blank"},kl=ke(()=>m("span",{class:"material-icons"},"forum",-1)),Sl={class:"discord"},Il={class:"discord-links"},Ml={key:0},$l=["href"],xl=ke(()=>m("li",null,[m("a",{href:"https://discord.gg/yJ4fjnjU54",target:"_blank"},"Profectus & Friends")],-1)),Pl=ke(()=>m("li",null,[m("a",{href:"https://discord.gg/F3xveHV",target:"_blank"},"The Modding Tree")],-1)),Tl=B({__name:"Nav",setup(e){const t=x(null),n=x(null),r=x(null),i=x(null),{useHeader:s,banner:a,title:c,discordName:d,discordLink:f,versionNumber:b}=U;function v(){window.open(f,"mywindow")}const N=F(()=>{var k;return((k=ge.value)==null?void 0:k.loggedIn)===!0&&!ot.value.includes(j.active)});return(k,y)=>(h(),w(W,null,[l(s)?(h(),w("div",Ae({key:0,class:"nav"},k.$attrs),[l(a)?(h(),w("img",{key:0,src:l(a),class:"banner",alt:l(c)},null,8,ll)):(h(),w("div",ul,V(l(c)),1)),m("div",{onClick:y[0]||(y[0]=S=>{var P;return(P=i.value)==null?void 0:P.open()}),class:"version-container"},[_(Q,{display:"Changelog",direction:l(J).Down,class:"version"},{default:O(()=>[m("span",null,"v"+V(l(b)),1)]),_:1},8,["direction"])]),cl,m("div",dl,[m("span",{onClick:v,class:"material-icons"},"discord"),m("ul",fl,[l(f)?(h(),w("li",gl,[m("a",{href:l(f),target:"_blank"},V(l(d)),9,ml)])):M("",!0),hl,pl])]),m("div",null,[m("a",vl,[_(Q,{display:"Forums",direction:l(J).Down,yoffset:"5px"},{default:O(()=>[bl]),_:1},8,["direction"])])]),m("div",{onClick:y[1]||(y[1]=S=>{var P;return(P=t.value)==null?void 0:P.open()})},[_(Q,{display:"Info",direction:l(J).Down,class:"info"},{default:O(()=>[yl]),_:1},8,["direction"])]),m("div",{onClick:y[2]||(y[2]=S=>{var P;return(P=n.value)==null?void 0:P.open()})},[_(Q,{display:"Saves",direction:l(J).Down,xoffset:"-20px"},{default:O(()=>[m("span",{class:ee(["material-icons",{needsSync:l(N)}])},"library_books",2)]),_:1},8,["direction"])]),m("div",{onClick:y[3]||(y[3]=S=>{var P;return(P=r.value)==null?void 0:P.open()})},[_(Q,{display:"Settings",direction:l(J).Down,xoffset:"-66px"},{default:O(()=>[_l]),_:1},8,["direction"])])],16)):(h(),w("div",Ae({key:1,class:"overlay-nav"},k.$attrs),[m("div",{onClick:y[4]||(y[4]=S=>{var P;return(P=i.value)==null?void 0:P.open()}),class:"version-container"},[_(Q,{display:"Changelog",direction:l(J).Right,xoffset:"25%",class:"version"},{default:O(()=>[m("span",null,"v"+V(l(b)),1)]),_:1},8,["direction"])]),m("div",{onClick:y[5]||(y[5]=S=>{var P;return(P=n.value)==null?void 0:P.open()})},[_(Q,{display:"Saves",direction:l(J).Right},{default:O(()=>[m("span",{class:ee(["material-icons",{needsSync:l(N)}])},"library_books",2)]),_:1},8,["direction"])]),m("div",{onClick:y[6]||(y[6]=S=>{var P;return(P=r.value)==null?void 0:P.open()})},[_(Q,{display:"Settings",direction:l(J).Right},{default:O(()=>[Nl]),_:1},8,["direction"])]),m("div",{onClick:y[7]||(y[7]=S=>{var P;return(P=t.value)==null?void 0:P.open()})},[_(Q,{display:"Info",direction:l(J).Right},{default:O(()=>[wl]),_:1},8,["direction"])]),m("div",null,[m("a",Cl,[_(Q,{display:"Forums",direction:l(J).Right,xoffset:"7px"},{default:O(()=>[kl]),_:1},8,["direction"])])]),m("div",Sl,[m("span",{onClick:v,class:"material-icons"},"discord"),m("ul",Il,[l(f)?(h(),w("li",Ml,[m("a",{href:l(f),target:"_blank"},V(l(d)),9,$l)])):M("",!0),xl,Pl])])],16)),_(Uo,{ref_key:"info",ref:t,changelog:i.value},null,8,["changelog"]),_(zn,{ref_key:"savesManager",ref:n},null,512),_(Xo,{ref_key:"options",ref:r},null,512),_(Io,{ref_key:"changelog",ref:i},null,512)],64))}});var Gn=G(Tl,[["__scopeId","data-v-b1a52b1c"]]);const Fl={class:"inner-tab"},El=B({__name:"Game",setup(e){const t=Te(T,"tabs"),n=F(()=>Object.keys(le)),r=U.useHeader;function i(s){const{display:a,minimized:c,name:d,color:f,minimizable:b,nodes:v,minimizedDisplay:N}=s;return{display:a,minimized:c,name:d,color:f,minimizable:b,nodes:v,minimizedDisplay:N}}return(s,a)=>(h(),w("div",{class:ee(["tabs-container",{useHeader:l(r)}])},[(h(!0),w(W,null,Oe(l(t),(c,d)=>{var f,b;return h(),w("div",{key:d,class:ee(["tab",l((f=l(le)[c])==null?void 0:f.classes)]),style:me(l((b=l(le)[c])==null?void 0:b.style))},[d===0&&!l(r)?(h(),R(Gn,{key:0})):M("",!0),m("div",Fl,[l(n).includes(c)?(h(),R(wo,Ae({key:0},i(l(le)[c]),{index:d,onSetMinimized:v=>l(le)[c].minimized.value=v}),null,16,["index","onSetMinimized"])):(h(),R(ae(c),{key:1,index:d},null,8,["index"]))])],6)}),128))],2))}});var Ol=G(El,[["__scopeId","data-v-dcd207b4"]]);const Vl=B({__name:"Node",props:{id:null},setup(e){const n=de(e),r=$t(Kt,()=>{}),i=$t(Zt,()=>{}),s=Ne(null),a=F(()=>s.value&&s.value.parentElement);return he([a,n.id],([c,d],[f,b])=>{f&&i(l(b)),c&&r(d,c)}),_n(()=>i(l(n.id))),(c,d)=>(h(),w("div",{class:"node",ref_key:"node",ref:s},null,512))}});var Qe=G(Vl,[["__scopeId","data-v-a48cb382"]]);const Ll=B({__name:"Spacer",props:{width:{default:"8px"},height:{default:"17px"}},setup(e){return(t,n)=>(h(),w("div",{style:me({width:e.width,height:e.height})},null,4))}});function jn(e,t="points",n=0,r=void 0){const i=ie(e)?e:_t(e);if(i.displayName=t,i.precision=n,i.small=r,!ie(e)){const s=i[Ve];s.displayName=t,s.precision=n,s.small=r}return i}function Dl(e){const t=_t(e.value);return he(e,n=>{nn.value||u.gt(n,t.value)&&(t.value=n)}),t}function Rl(e){const t=_t(e.value);return he(e,(n,r)=>{nn.value||u.gt(n,r)&&(t.value=u.add(t.value,u.sub(n,r)))}),t}const ql=new u("10^^8"),Al=new u("1e100");function Bl(e,t){const n=x(0),r=x(0),i=x(0);return oe.on("update",a=>{if(r.value=0,u.lte(e.value,Al)){i.value=e.value;return}let c=e.value,d=i.value;if(i.value=c,u.gt(c,d))if(u.gte(c,ql))c=u.slog(c,1e10),d=u.slog(d,1e10),n.value=c.sub(d).div(a),r.value=-1;else for(;u.div(c,d).log(10).div(a).gte("100")&&r.value<=5&&u.gt(d,0);)c=u.log10(c),d=u.log10(d),n.value=c.sub(d).div(a),r.value++}),F(()=>r.value===0?t?Ce(t.value,e.precision,e.small)+" "+e.displayName+"/s":"":Ce(n.value)+" OOM"+(r.value<0?"^OOM":"^"+r.value)+"s/sec")}function Tt(e,t){const n=t!=null?t:e.value;return u.eq(e.precision,0)?ht(e.small?n:u.floor(n)):Ce(n,e.precision,e.small)}const Ul=["x1","y1","x2","y2"],zl=B({__name:"Link",props:{link:null,startNode:null,endNode:null,boundingRect:null},setup(e){const t=e,n=de(t),r=F(()=>{const a=n.startNode.value.rect,c=n.boundingRect.value,d=c?{x:a.x+a.width/2-c.x,y:a.y+a.height/2-c.y}:{x:0,y:0};return n.link.value.offsetStart&&(d.x+=n.link.value.offsetStart.x,d.y+=n.link.value.offsetStart.y),d}),i=F(()=>{const a=n.endNode.value.rect,c=n.boundingRect.value,d=c?{x:a.x+a.width/2-c.x,y:a.y+a.height/2-c.y}:{x:0,y:0};return n.link.value.offsetEnd&&(d.x+=n.link.value.offsetEnd.x,d.y+=n.link.value.offsetEnd.y),d}),s=F(()=>ka(t.link));return(a,c)=>(h(),w("line",Ae({"stroke-width":"15px",stroke:"white"},l(s),{x1:l(r).x,y1:l(r).y,x2:l(i).x,y2:l(i).y}),null,16,Ul))}});const Gl=B({__name:"Links",props:{links:null},setup(e){var d;const n=Te(e,"links"),r=x(null),i=$t(Yt,x({})),s=$t(Xt,x(void 0)),a=x((d=r.value)==null?void 0:d.getBoundingClientRect());he(s,()=>{var f;return a.value=(f=r.value)==null?void 0:f.getBoundingClientRect()}),yt(()=>{var f;return a.value=(f=r.value)==null?void 0:f.getBoundingClientRect()});const c=F(()=>{var b,v;const f=i.value;return(v=(b=n.value)==null?void 0:b.filter(N=>{var k,y;return((k=f[N.startNode.id])==null?void 0:k.rect)&&((y=f[N.startNode.id])==null?void 0:y.rect)}))!=null?v:[]});return(f,b)=>(h(),w(W,null,[l(c)?(h(),w("svg",er(Ae({key:0},f.$attrs)),[(h(!0),w(W,null,Oe(l(c),(v,N)=>(h(),R(zl,{key:N,link:v,boundingRect:a.value,startNode:l(i)[v.startNode.id],endNode:l(i)[v.endNode.id]},null,8,["link","boundingRect","startNode","endNode"]))),128))],16)):M("",!0),m("div",{ref_key:"resizeListener",ref:r,class:"resize-listener"},null,512)],64))}});var jl=G(Gl,[["__scopeId","data-v-063f6d6b"]]),Hl=B({props:{nodes:{type:z(Array),required:!0},leftSideNodes:z(Array),rightSideNodes:z(Array),branches:z(Array)},components:{Links:jl},setup(e){const{nodes:t,leftSideNodes:n,rightSideNodes:r}=de(e),i=Ne();We(()=>{const c=we(t);i.value=ue(te(()=>_(W,null,[c.map(d=>_("span",{class:"row tree-row",style:"margin: 50px auto;"},[d.map(Mt)]))])))});const s=Ne();We(()=>{const c=we(n);s.value=c?ue(te(()=>_("span",{class:"left-side-nodes small"},[c.map(Mt)]))):""});const a=Ne();return We(()=>{const c=we(r);a.value=c?ue(te(()=>_("span",{class:"side-nodes small"},[c.map(Mt)]))):""}),{unref:l,nodesComp:i,leftNodesComp:s,rightNodesComp:a}}});function Wl(e,t,n,r,i,s){const a=Ke("Links");return h(),w(W,null,[(h(),R(ae(e.nodesComp))),e.leftNodesComp?(h(),R(ae(e.leftNodesComp),{key:0})):M("",!0),e.rightNodesComp?(h(),R(ae(e.rightNodesComp),{key:1})):M("",!0),e.branches?(h(),R(a,{key:2,links:e.unref(e.branches)},null,8,["links"])):M("",!0)],64)}var Jl=G(Hl,[["render",Wl],["__scopeId","data-v-39ca96d0"]]);const Kl={key:0},Zl={key:0,class:"mark star"},Yl=["src"],Xl=B({__name:"MarkNode",props:{mark:{type:[Boolean,String]}},setup(e){return(t,n)=>e.mark?(h(),w("div",Kl,[e.mark===!0?(h(),w("div",Zl)):(h(),w("img",{key:1,class:"mark",src:e.mark},null,8,Yl))])):M("",!0)}});var Hn=G(Xl,[["__scopeId","data-v-2207999f"]]);const Ql=B({props:{display:z(Object,String,Function),visibility:{type:z(Number,Boolean),required:!0},style:z(String,Object,Array),classes:z(Object),onClick:Function,onHold:Function,color:z(String),glowColor:z(String),canClick:{type:z(Boolean),required:!0},mark:z(Boolean,String),id:{type:String,required:!0}},components:{MarkNode:Hn,Node:Qe},setup(e){const{onClick:t,onHold:n,display:r}=de(e),i=lt(r),{start:s,stop:a}=qn(t,n);return{start:s,stop:a,comp:i,unref:l,Visibility:st,isCoercableComponent:Rt,isVisible:Pn,isHidden:Tn}}});function eu(e,t,n,r,i,s){var d;const a=Ke("MarkNode"),c=Ke("Node");return e.isVisible(e.visibility)?(h(),w("div",{key:0,style:me({visibility:e.isHidden(e.visibility)?"hidden":void 0}),class:ee({treeNode:!0,can:e.unref(e.canClick),...e.unref(e.classes)}),onClick:t[0]||(t[0]=(...f)=>e.onClick&&e.onClick(...f)),onMousedown:t[1]||(t[1]=(...f)=>e.start&&e.start(...f)),onMouseleave:t[2]||(t[2]=(...f)=>e.stop&&e.stop(...f)),onMouseup:t[3]||(t[3]=(...f)=>e.stop&&e.stop(...f)),onTouchstartPassive:t[4]||(t[4]=(...f)=>e.start&&e.start(...f)),onTouchendPassive:t[5]||(t[5]=(...f)=>e.stop&&e.stop(...f)),onTouchcancelPassive:t[6]||(t[6]=(...f)=>e.stop&&e.stop(...f))},[m("div",{style:me([{backgroundColor:e.unref(e.color),boxShadow:`-4px -4px 4px rgba(0, 0, 0, 0.25) inset, 0 0 20px ${e.unref(e.glowColor)}`},(d=e.unref(e.style))!=null?d:[]])},[(h(),R(ae(e.unref(e.comp))))],4),_(a,{mark:e.unref(e.mark)},null,8,["mark"]),_(c,{id:e.id},null,8,["id"])],38)):M("",!0)}var tu=G(Ql,[["render",eu],["__scopeId","data-v-727230a6"]]);const nu=Symbol("TreeNode"),ru=Symbol("Tree");function iu(e,...t){const n=t.reduce((r,i)=>{var s;return Object.assign(r,(s=i.getPersistentData)==null?void 0:s.call(i))},{});return Ye(r=>{var a,c,d;const i=(a=e==null?void 0:e.call(r,r))!=null?a:{};i.id=Dt("treeNode-"),i.type=nu,i[De]=tu;for(const f of t)(c=f.preConstruct)==null||c.call(f,i);Object.assign(n),L(i,"visibility"),ce(i,"visibility",st.Visible),L(i,"canClick"),ce(i,"canClick",!0),L(i,"color"),L(i,"display"),L(i,"glowColor"),L(i,"classes"),L(i,"style"),L(i,"mark");for(const f of t)(d=f.postConstruct)==null||d.call(f,i);if(i.onClick){const f=i.onClick.bind(i);i.onClick=function(b){l(i.canClick)!==!1&&f(b)}}if(i.onHold){const f=i.onHold.bind(i);i.onHold=function(){l(i.canClick)!==!1&&f()}}const s=t.reduce((f,b)=>{var v;return Object.assign(f,(v=b.getGatheredProps)==null?void 0:v.call(b,i))},{});return i[Re]=function(){const{display:f,visibility:b,style:v,classes:N,onClick:k,onHold:y,color:S,glowColor:P,canClick:I,mark:$,id:q}=this;return{display:f,visibility:b,style:v,classes:N,onClick:k,onHold:y,color:S,glowColor:P,canClick:I,mark:$,id:q,...s}},i})}function su(e){return Ye(t=>{const n=e.call(t,t);return n.id=Dt("tree-"),n.type=ru,n[De]=Jl,n.isResetting=x(!1),n.resettingNode=Ne(null),n.reset=function(r){var s,a;const i=n;i.isResetting.value=!0,i.resettingNode.value=r,(s=i.resetPropagation)==null||s.call(i,i,r),(a=i.onReset)==null||a.call(i,r),i.isResetting.value=!1,i.resettingNode.value=null},n.links=F(()=>{var i;return(i=l(n.branches))!=null?i:[]}),L(n,"visibility"),ce(n,"visibility",st.Visible),L(n,"nodes"),L(n,"leftSideNodes"),L(n,"rightSideNodes"),L(n,"branches"),n[Re]=function(){const{nodes:r,leftSideNodes:i,rightSideNodes:s,branches:a}=this;return{nodes:r,leftSideNodes:i,rightSideNodes:s,branches:a}},n})}const au=function(e,t){var s;const n=l(e.branches);if(n==null)return;const r=[];let i=[t];for(;i.length!==0;){const a=[];for(const c of i)for(const d of n.filter(f=>f.startNode===c))[...r,...i].includes(d.endNode)||(a.push(d.endNode),(s=d.endNode.reset)==null||s.reset());r.push(...i),i=a}};function ou(e,t=null,n=0){const r=zt(n);return F(()=>t==null||u.gte(e.value,l(r))?Tt(e)+" "+e.displayName:`Reach ${u.eq(t.precision,0)?ht(l(r)):Ce(l(r),t.precision)} ${t.displayName} to unlock (You have ${u.eq(t.precision,0)?ht(t.value):Ce(t.value,t.precision)})`)}function lu(e,...t){return Ye(n=>{var i,s;const r=e.call(n,n);for(const a of t)(i=a.preConstruct)==null||i.call(a,r);r.formula=r.formula(o.variable(r.baseResource)),r.currentGain==null&&(r.currentGain=F(()=>{let a=u.floor(r.formula.evaluate(r.baseResource.value)).max(0);return l(r.buyMax)===!1&&(a=a.min(1)),a})),r.actualGain==null&&(r.actualGain=r.currentGain),r.currentAt==null&&(r.currentAt=F(()=>r.formula.invert(u.floor(l(r.currentGain))))),r.nextAt==null&&(r.nextAt=F(()=>r.formula.invert(u.floor(l(r.currentGain)).add(1)))),r.convert==null&&(r.convert=function(){var c;const a=l(r.currentGain);r.gainResource.value=u.add(r.gainResource.value,a),r.spend(a),(c=r.onConvert)==null||c.call(r,a)}),r.spend==null&&(r.spend=function(){r.baseResource.value=0}),L(r,"currentGain"),L(r,"actualGain"),L(r,"currentAt"),L(r,"nextAt"),L(r,"buyMax"),ce(r,"buyMax",!0);for(const a of t)(s=a.postConstruct)==null||s.call(a,r);return r})}function uu(e){return lu(e)}const Wn=e=>(Ie("data-v-5e2d38ce"),e=e(),Me(),e),cu=Wn(()=>m("div",{class:"key"},"Ctrl",-1)),du=Wn(()=>m("div",{class:"key"},"Shift",-1)),fu={class:"key"},gu=B({__name:"Hotkey",props:{hotkey:null},setup(e){const t=e;let n="",r=!1,i=!1,s=!1;return We(()=>{n=t.hotkey.key,r=n.startsWith("ctrl+"),r&&(n=n.slice(5)),i=n.startsWith("shift+"),i&&(n=n.slice(6)),s=n.length==1&&n.toLowerCase()!=n.toUpperCase(),s&&(n=n.toUpperCase())}),(a,c)=>(h(),w(W,null,[l(r)?(h(),w(W,{key:0},[cu,E("+")],64)):M("",!0),l(i)?(h(),w(W,{key:1},[du,E("+")],64)):M("",!0),m("div",fu,V(l(n)),1)],64))}});var mu=G(gu,[["__scopeId","data-v-5e2d38ce"]]);const bt=Ot({}),an=Symbol("Hotkey"),ct=[")","!","@","#","$","%","^","&","*","("];function hu(e){return Ye(t=>{const n=e.call(t,t);return n.type=an,L(n,"enabled"),ce(n,"enabled",!0),L(n,"description"),n})}oe.on("addLayer",e=>{Fn(e,an).forEach(t=>{bt[t.key]=t})});oe.on("removeLayer",e=>{Fn(e,an).forEach(t=>{bt[t.key]=void 0})});document.onkeydown=function(e){var r,i;if(((r=e.target)==null?void 0:r.tagName)==="INPUT"||on.value&&!T.keepGoing)return;const t=[e.key];e.shiftKey&&e.ctrlKey?(t.splice(0,1),t.push("ctrl+shift+"+e.key.toUpperCase()),t.push("shift+ctrl+"+e.key.toUpperCase()),ct.includes(e.key)?(t.push("ctrl+shift+"+ct.indexOf(e.key)),t.push("shift+ctrl+"+ct.indexOf(e.key))):(t.push("ctrl+shift+"+e.key.toLowerCase()),t.push("shift+ctrl+"+e.key.toLowerCase()))):ct.includes(e.key)?(t.push("shift+"+e.key),t.push("shift+"+ct.indexOf(e.key))):e.shiftKey?(t.push("shift+"+e.key.toUpperCase()),t.push("shift+"+e.key.toLowerCase())):e.ctrlKey&&(t.splice(0,1),t.push("ctrl+"+e.key));const n=bt[(i=t.find(s=>s in bt))!=null?i:""];n&&l(n.enabled)&&(e.preventDefault(),n.onPress())};_a(te(()=>{const e=Object.values(bt).filter(t=>l(t==null?void 0:t.enabled));return e.length===0?"":_("div",null,[_("br",null,null),_("h4",null,[E("Hotkeys")]),_("div",{style:"column-count: 2"},[e.map(t=>_("div",null,[_(mu,{hotkey:t},null),E(" "),t==null?void 0:t.description]))])])}));const pu=Symbol("Reset");function vu(e){return Ye(t=>{const n=e.call(t,t);return n.id=Dt("reset-"),n.type=pu,n.reset=function(){var i;const r=s=>{if(s!=null&&typeof s=="object"&&!(s instanceof u)&&!(s instanceof o)){if(jt in s&&s[jt]===!0)return;if(Ze in s){const a=s;a.value=a[Ze]}else!(s instanceof u)&&!ie(s)&&Object.values(s).forEach(a=>r(a))}};l(n.thingsToReset).forEach(r),oe.emit("reset",n),(i=n.onReset)==null||i.call(n)},L(n,"thingsToReset"),n})}const St={};oe.on("removeLayer",e=>{var t;(t=St[e.id])==null||t.call(St),St[e.id]=void 0});const bu=B({__name:"Sticky",setup(e){const t=x("0"),n=new ResizeObserver(i),r=Ne(null);function i(){let s=r.value;if(s==null)return;let a=0;for(;s.previousSibling;){const c=s.previousSibling;c.dataset&&"vSticky"in c.dataset&&(a+=c.offsetHeight),s=c}t.value=a+"px"}return Je(i),document.fonts.ready.then(i),yt(()=>{var a;const s=(a=r.value)==null?void 0:a.parentElement;s&&n.observe(s)}),(s,a)=>(h(),w("div",{class:"sticky",style:me({top:t.value}),ref_key:"element",ref:r,"data-v-sticky":""},[Le(s.$slots,"default",{},void 0,!0)],4))}});var yu=G(bu,[["__scopeId","data-v-cccac690"]]);const _u=B({__name:"Resource",props:{resource:null,color:null},setup(e){const t=e,n=F(()=>Tt(t.resource));return(r,i)=>(h(),w("h2",{style:me({color:e.color,"text-shadow":"0px 0px 10px "+e.color})},V(l(n)),5))}});const Nu={class:"main-display"},wu={key:0},Cu={key:1},ku=B({__name:"MainDisplay",props:{resource:null,color:null,classes:null,style:null,effectDisplay:null},setup(e){const n=de(e),r=x(null),i=lt(n.effectDisplay),s=F(()=>u.lt(n.resource.value,"1e1000"));return(a,c)=>(h(),R(yu,null,{default:O(()=>{var d,f,b,v;return[m("div",{class:ee(["main-display-container",(d=e.classes)!=null?d:{}]),style:me([{height:`${((b=(f=r.value)==null?void 0:f.$el.clientHeight)!=null?b:0)+50}px`},(v=e.style)!=null?v:{}])},[m("div",Nu,[l(s)?(h(),w("span",wu,"You have ")):M("",!0),_(_u,{resource:e.resource,color:e.color||"white"},null,8,["resource","color"]),E(" "+V(e.resource.displayName),1),l(i)?(h(),w("span",Cu,[E(", "),(h(),R(ae(l(i)),{ref_key:"effectRef",ref:r},null,512))])):M("",!0)])],6)]}),_:1}))}});function Su(e,t){return L(t,"display"),L(t,"classes"),L(t,"style"),L(t,"direction"),ce(t,"direction",J.Up),L(t,"xoffset"),L(t,"yoffset"),t.pinnable&&(t.pinned=_t(!1,!1)),Je(()=>{const n=e[De];e[De]=Q;const r=e[Re].bind(e);e[Re]=function(){const{display:s,classes:a,style:c,direction:d,xoffset:f,yoffset:b,pinned:v}=this;return{element:{[De]:n,[Re]:r},display:s,classes:a,style:l(c),direction:d,xoffset:f,yoffset:b,pinned:v}}.bind(t)}),t}var Iu=B({props:{display:{type:z(Object,String,Function),required:!0},visibility:{type:z(Number,Boolean),required:!0},style:z(Object,String,Array),classes:z(Object),onClick:Function,onHold:Function,canClick:{type:z(Boolean),required:!0},small:Boolean,mark:z(Boolean,String),id:{type:String,required:!0}},components:{Node:Qe,MarkNode:Hn},setup(e){const{display:t,onClick:n,onHold:r}=de(e),i=Ne("");We(()=>{var b;const c=we(t);if(c==null){i.value="";return}if(Rt(c)){i.value=ue(c);return}const d=ue((b=c.title)!=null?b:"","h3"),f=ue(c.description,"div");i.value=ue(te(()=>_("span",null,[c.title!=null?_("div",null,[_(d,null,null)]):null,_(f,null,null)])))});const{start:s,stop:a}=qn(n,r);return{start:s,stop:a,comp:i,Visibility:st,isVisible:Pn,isHidden:Tn,unref:l}}});function Mu(e,t,n,r,i,s){var d;const a=Ke("MarkNode"),c=Ke("Node");return e.isVisible(e.visibility)?(h(),w("button",{key:0,style:me([{visibility:e.isHidden(e.visibility)?"hidden":void 0},(d=e.unref(e.style))!=null?d:[]]),onClick:t[0]||(t[0]=(...f)=>e.onClick&&e.onClick(...f)),onMousedown:t[1]||(t[1]=(...f)=>e.start&&e.start(...f)),onMouseleave:t[2]||(t[2]=(...f)=>e.stop&&e.stop(...f)),onMouseup:t[3]||(t[3]=(...f)=>e.stop&&e.stop(...f)),onTouchstartPassive:t[4]||(t[4]=(...f)=>e.start&&e.start(...f)),onTouchendPassive:t[5]||(t[5]=(...f)=>e.stop&&e.stop(...f)),onTouchcancelPassive:t[6]||(t[6]=(...f)=>e.stop&&e.stop(...f)),class:ee({feature:!0,clickable:!0,can:e.unref(e.canClick),locked:!e.unref(e.canClick),small:e.small,...e.unref(e.classes)})},[e.unref(e.comp)?(h(),R(ae(e.unref(e.comp)),{key:0})):M("",!0),_(a,{mark:e.unref(e.mark)},null,8,["mark"]),_(c,{id:e.id},null,8,["id"])],38)):M("",!0)}var $u=G(Iu,[["render",Mu],["__scopeId","data-v-211328c0"]]);const xu=Symbol("Clickable");function Pu(e,...t){const n=t.reduce((r,i)=>{var s;return Object.assign(r,(s=i.getPersistentData)==null?void 0:s.call(i))},{});return Ye(r=>{var a,c,d;const i=(a=e==null?void 0:e.call(r,r))!=null?a:{};i.id=Dt("clickable-"),i.type=xu,i[De]=$u;for(const f of t)(c=f.preConstruct)==null||c.call(f,i);if(Object.assign(i,n),L(i,"visibility"),ce(i,"visibility",st.Visible),L(i,"canClick"),ce(i,"canClick",!0),L(i,"classes"),L(i,"style"),L(i,"mark"),L(i,"display"),i.onClick){const f=i.onClick.bind(i);i.onClick=function(b){l(i.canClick)!==!1&&f(b)}}if(i.onHold){const f=i.onHold.bind(i);i.onHold=function(){l(i.canClick)!==!1&&f()}}for(const f of t)(d=f.postConstruct)==null||d.call(f,i);const s=t.reduce((f,b)=>{var v;return Object.assign(f,(v=b.getGatheredProps)==null?void 0:v.call(b,i))},{});return i[Re]=function(){const{display:f,visibility:b,style:v,classes:N,onClick:k,onHold:y,canClick:S,small:P,mark:I,id:$}=this;return{display:f,visibility:b,style:l(v),classes:N,onClick:k,onHold:y,canClick:S,small:P,mark:I,id:$,...s}},i})}function Tu(e){return Pu(t=>{const n=e.call(t,t);L(n,"showNextAt"),ce(n,"showNextAt",!0),ce(n,"minimumGain",1),n.resetDescription==null?n.resetDescription=F(()=>u.lt(n.conversion.gainResource.value,1e3)?"Reset for ":""):L(n,"resetDescription"),n.display==null&&(n.display=te(()=>_("span",null,[l(n.resetDescription),_("b",null,[Tt(n.conversion.gainResource,u.max(l(n.conversion.actualGain),l(n.minimumGain)))])," ",n.conversion.gainResource.displayName,l(n.showNextAt)!=null?_("div",null,[_("br",null,null),l(n.conversion.buyMax)?"Next:":"Req:"," ",Tt(n.conversion.baseResource,!l(n.conversion.buyMax)&&u.gte(l(n.conversion.actualGain),1)?l(n.conversion.currentAt):l(n.conversion.nextAt))," ",n.conversion.baseResource.displayName]):null]))),n.canClick==null&&(n.canClick=F(()=>u.gte(l(n.conversion.actualGain),l(n.minimumGain))));const r=n.onClick;return n.onClick=function(i){l(n.canClick)!==!1&&(n.conversion.convert(),n.tree.reset(n.treeNode),n.resetTime&&(n.resetTime.value=n.resetTime[Ze]),r==null||r(i))},n})}function Fu(e){return iu(t=>{const n=e.call(t,t);return ce(n,"display",xn(n.layerID)),L(n,"append"),{...n,onClick:l(n.append)?function(){if(T.tabs.includes(n.layerID)){const r=T.tabs.lastIndexOf(n.layerID);T.tabs.splice(r,1)}else T.tabs.push(n.layerID)}:function(){T.tabs.splice(1,1,n.layerID)}}})}const bn="p",Ft=Qt(bn,function(){const e="Prestige",t="#4BDC13",n=jn(0,"prestige points"),r=uu(()=>({formula:f=>f.div(10).sqrt(),baseResource:Et.points,gainResource:n})),i=vu(()=>({thingsToReset:()=>[Ft]})),s=Fu(()=>({layerID:bn,color:t,reset:i})),a=Su(s,{display:ou(n),pinnable:!0}),c=Tu(()=>({conversion:r,tree:Et.tree,treeNode:s})),d=hu(()=>({description:"Reset for prestige points",key:"p",onPress:c.onClick}));return{name:e,color:t,points:n,tooltip:a,display:te(()=>_(W,null,[_(ku,{resource:n,color:t},null),Nt(c)])),treeNode:s,hotkey:d}}),Et=Qt("main",function(){const e=jn(10),t=Dl(e),n=Rl(e),r=F(()=>new u(1));oe.on("update",a=>{e.value=u.add(e.value,u.times(r.value,a))});const i=Bl(e,r),s=su(()=>({nodes:[[Ft.treeNode]],branches:[],onReset(){e.value=cn(this.resettingNode.value)===cn(Ft.treeNode)?0:10,t.value=e.value,n.value=e.value},resetPropagation:au}));return{name:"Tree",links:s.links,display:te(()=>_(W,null,[T.devSpeed===0?_("div",null,[E("Game Paused"),_(Qe,{id:"paused"},null)]):null,T.devSpeed!=null&&T.devSpeed!==0&&T.devSpeed!==1?_("div",null,[E("Dev Speed: "),Ce(T.devSpeed),E("x"),_(Qe,{id:"devspeed"},null)]):null,T.offlineTime!=null&&T.offlineTime!==0?_("div",null,[E("Offline Time: "),Lt(T.offlineTime),_(Qe,{id:"offline"},null)]):null,_("div",null,[u.lt(e.value,"1e1000")?_("span",null,[E("You have ")]):null,_("h2",null,[Ce(e.value)]),u.lt(e.value,"1e1e6")?_("span",null,[E(" points")]):null]),u.gt(r.value,0)?_("div",null,[E("("),i.value,E(")"),_(Qe,{id:"oomps"},null)]):null,_(Ll,null,null),Nt(s)])),points:e,best:t,total:n,oomps:i,tree:s}}),Eu=e=>[Et,Ft],on=F(()=>!1);function Ou(e,t){}var Vu=Object.freeze(Object.defineProperty({__proto__:null,main:Et,getInitialLayers:Eu,hasWon:on,fixOldSave:Ou},Symbol.toStringTag,{value:"Module"}));const wt=e=>(Ie("data-v-4a50ce42"),e=e(),Me(),e),Lu={class:"game-over-modal-header"},Du=["src","alt"],Ru={class:"game-over-modal-title"},qu=wt(()=>m("h2",null,"Congratulations!",-1)),Au={key:0},Bu=wt(()=>m("br",null,null,-1)),Uu=wt(()=>m("div",null," Please check the Discord to discuss the game or to check for new content updates! ",-1)),zu=wt(()=>m("br",null,null,-1)),Gu=["href"],ju=wt(()=>m("span",{class:"material-icons game-over-modal-discord"},"discord",-1)),Hu=B({__name:"GameOverScreen",setup(e){const{title:t,logo:n,discordName:r,discordLink:i,versionNumber:s,versionTitle:a}=U,c=F(()=>Lt(T.timePlayed)),d=F(()=>on.value&&!T.keepGoing),f=Te(T,"autosave");function b(){T.keepGoing=!0}function v(){Pe(nt())}return(N,k)=>(h(),R(Ue,{"model-value":l(d)},{header:O(()=>[m("div",Lu,[l(n)?(h(),w("img",{key:0,class:"game-over-modal-logo",src:l(n),alt:l(t)},null,8,Du)):M("",!0),m("div",Ru,[qu,m("h4",null,"You've beaten "+V(l(t))+" v"+V(l(s))+": "+V(l(a)),1)])])]),body:O(({shown:y})=>[y?(h(),w("div",Au,[m("div",null,"It took you "+V(l(c))+" to beat the game.",1),Bu,Uu,zu,m("div",null,[m("a",{href:l(i),class:"game-over-modal-discord-link"},[ju,E(" "+V(l(r)),1)],8,Gu)]),_($e,{title:"Autosave",modelValue:l(f),"onUpdate:modelValue":k[0]||(k[0]=S=>ie(f)?f.value=S:null)},null,8,["modelValue"])])):M("",!0)]),footer:O(()=>[m("div",{class:"game-over-footer"},[m("button",{onClick:b,class:"button"},"Keep Going"),m("button",{onClick:v,class:"button danger"},"Play Again")])]),_:1},8,["model-value"]))}});var Wu=G(Hu,[["__scopeId","data-v-4a50ce42"]]);const qt=e=>(Ie("data-v-6a99220e"),e=e(),Me(),e),Ju=qt(()=>m("div",{class:"nan-modal-header"},[m("h2",null,"NaN value detected!")],-1)),Ku={key:0},Zu=qt(()=>m("br",null,null,-1)),Yu=["href"],Xu=qt(()=>m("span",{class:"material-icons nan-modal-discord"},"discord",-1)),Qu=qt(()=>m("br",null,null,-1)),ec={class:"nan-footer"},tc=B({__name:"NaNScreen",setup(e){const{discordName:t,discordLink:n}=U,r=x(!0),i=x(!0),s=Te(Z,"hasNaN"),a=x(null);he(s,N=>{N?(r.value=T.autosave,i.value=T.devSpeed===0):(T.autosave=r.value,T.devSpeed=i.value?0:null)});const c=F(()=>{var N;return(N=Z.NaNPath)==null?void 0:N.join(".")}),d=F(()=>Z.NaNPersistent!=null?Z.NaNPersistent.value:null);function f(){Z.NaNPersistent!=null&&(Z.NaNPersistent.value=new u(0),Z.hasNaN=!1)}function b(){Z.NaNPersistent&&(Z.NaNPersistent.value=new u(1),Z.hasNaN=!1)}function v(){Z.NaNPersistent&&(Z.NaNPersistent.value=new u(NaN),Z.hasNaN=!1)}return(N,k)=>(h(),w(W,null,[_(Ue,Ae({modelValue:l(s),"onUpdate:modelValue":k[4]||(k[4]=y=>ie(s)?s.value=y:null)},N.$attrs),{header:O(()=>[Ju]),body:O(()=>[m("div",null,[E(' Attempted to assign "'+V(l(c))+'" to NaN',1),l(d)?(h(),w("span",Ku,V(" ")+"(previously "+V(l(Ce)(l(d)))+")",1)):M("",!0),E(". Auto-saving has been "+V(r.value?"enabled":"disabled")+". Check the console for more details, and consider sharing it with the developers on discord. ",1)]),Zu,m("div",null,[m("a",{href:l(n)||"https://discord.gg/yJ4fjnjU54",class:"nan-modal-discord-link"},[Xu,E(" "+V(l(t)||"Profectus & Friends"),1)],8,Yu)]),Qu,_($e,{title:"Autosave",modelValue:r.value,"onUpdate:modelValue":k[0]||(k[0]=y=>r.value=y)},null,8,["modelValue"]),l(U).enablePausing?(h(),R($e,{key:0,title:"Pause game",modelValue:i.value,"onUpdate:modelValue":k[1]||(k[1]=y=>i.value=y)},null,8,["modelValue"])):M("",!0)]),footer:O(()=>[m("div",ec,[m("button",{onClick:k[2]||(k[2]=y=>{var S;return(S=a.value)==null?void 0:S.open()}),class:"button"},"Open Saves Manager"),m("button",{onClick:f,class:"button"},"Set to 0"),m("button",{onClick:b,class:"button"},"Set to 1"),l(d)&&l(u).neq(l(d),0)&&l(u).neq(l(d),1)?(h(),w("button",{key:0,onClick:k[3]||(k[3]=y=>s.value=!1),class:"button"}," Set to previous ")):M("",!0),m("button",{onClick:v,class:"button danger"},"Ignore")])]),_:1},16,["modelValue"]),_(zn,{ref_key:"savesManager",ref:a},null,512)],64))}});var nc=G(tc,[["__scopeId","data-v-6a99220e"]]);const rc={key:0,class:"tpsDisplay"},ic=B({__name:"TPS",setup(e){const t=F(()=>u.div(Z.lastTenTicks.length,Z.lastTenTicks.reduce((n,r)=>n+r,0)));return(n,r)=>l(t).isNan()?M("",!0):(h(),w("div",rc,"TPS: "+V(l(ht)(l(t))),1))}});var sc=G(ic,[["__scopeId","data-v-89b89152"]]);var ac=B({__name:"App",setup(e){const t=U.useHeader,n=F(()=>tn[j.theme].variables),r=Te(j,"showTPS"),i=Te(Z,"errors"),s=F(()=>ue(te(()=>_(W,null,[Na.map(Nt)]))));return(a,c)=>l(i).length>0?(h(),w("div",{key:0,class:"error-container",style:me(l(n))},[_(wn,{errors:l(i)},null,8,["errors"])],4)):(h(),w(W,{key:1},[m("div",{id:"modal-root",style:me(l(n))},null,4),m("div",{class:ee(["app",{useHeader:l(t)}]),style:me(l(n))},[l(t)?(h(),R(Gn,{key:0})):M("",!0),_(Ol),l(l(r))?(h(),R(sc,{key:1})):M("",!0),_(Wu),_(nc),_(bo),(h(),R(ae(l(s))))],6)],64))}});var oc=G(ac,[["__scopeId","data-v-5d695520"]]);oe.on("setupVue",e=>e.use(ar));function lc(e={}){const{immediate:t=!1,onNeedRefresh:n,onOfflineReady:r,onRegistered:i,onRegisteredSW:s,onRegisterError:a}=e;let c,d,f,b;const v=async(k=!0)=>{await f,k&&(c==null||c.addEventListener("controlling",y=>{y.isUpdate&&window.location.reload()})),await(b==null?void 0:b())};async function N(){if("serviceWorker"in navigator){const{Workbox:k,messageSW:y}=await mt(()=>import("./workbox-window.4a8794bb.js"),[]);b=async()=>{d&&d.waiting&&await y(d.waiting,{type:"SKIP_WAITING"})},c=new k("./sw.js",{scope:"./",type:"classic"}),c.addEventListener("activated",S=>{S.isUpdate||r==null||r()});{const S=()=>{n==null||n()};c.addEventListener("waiting",S),c.addEventListener("externalwaiting",S)}c.register({immediate:t}).then(S=>{d=S,s?s("./sw.js",S):i==null||i(S)}).catch(S=>{a==null||a(S)})}}return f=N(),v}function uc(e={}){const{immediate:t=!0,onNeedRefresh:n,onOfflineReady:r,onRegistered:i,onRegisteredSW:s,onRegisterError:a}=e,c=x(!1),d=x(!1);return{updateServiceWorker:lc({immediate:t,onNeedRefresh(){c.value=!0,n==null||n()},onOfflineReady(){d.value=!0,r==null||r()},onRegistered:i,onRegisteredSW:s,onRegisterError:a}),offlineReady:d,needRefresh:c}}const ln=console.error;console.error=function(...e){ln(...e)};window.onerror=function(e,t,n,r,i){return Z.errors.push(i instanceof Error?i:new Error(JSON.stringify(i))),ln(i),!0};window.onunhandledrejection=function(e){Z.errors.push(e.reason instanceof Error?e.reason:new Error(JSON.stringify(e.reason))),ln(e.reason)};document.title=U.title;window.projInfo=U;U.id===""&&console.error("Project ID is empty!","Please select a unique ID for this project in /src/data/projInfo.json");requestAnimationFrame(async()=>{console.log(`%cMade in Profectus%c -Learn more at www.moddingtree.com`,"font-weight: bold; font-size: 24px; color: #A3BE8C; background: #2E3440; padding: 4px 8px; border-radius: 8px;","padding: 4px;"),await ma();const{globalBus:e}=await mt(()=>Promise.resolve().then(function(){return Ii}),void 0),{startGameLoop:t}=await mt(()=>import("./gameLoop.5743fd98.js"),["assets/gameLoop.5743fd98.js","assets/@fontsource.f66d05e7.css","assets/vue.8b6e16f3.js","assets/lz-string.bfbf8ec3.js","assets/@vue.6f8187b0.js","assets/nanoevents.1080beb7.js","assets/unofficial-galaxy-sdk.21372393.js","assets/vue-textarea-autosize.35804eaf.js","assets/vue-next-select.d60d437a.js","assets/vue-next-select.9e6f4164.css","assets/vuedraggable.56f5e1e2.js","assets/sortablejs.8abbd596.js","assets/vue-toastification.c011d2f2.js","assets/vue-toastification.4b5f8ac8.css"]),n=window.vue=tr(oc);n.config.errorHandler=function(r,i,s){console.error(r,s,i)},e.emit("setupVue",n),n.mount("#app"),Je(()=>{const r=or(),{updateServiceWorker:i}=uc({onNeedRefresh(){r.info("New content available, click here to update.",{timeout:!1,closeOnClick:!1,draggable:!1,icon:{iconClass:"material-icons",iconChildren:"refresh",iconTag:"i"},rtl:!1,onClick(){i()}})},onOfflineReady(){r.info("App ready to work offline")},onRegisterError:console.warn,onRegistered(s){s&&setInterval(()=>s.update(),60*60*1e3)}})}),t()});export{u as D,mt as _,Z as a,U as b,Vu as c,oe as g,nn as l,T as p,j as s}; +${t}`)}}return ye[e]}function pa(){Object.keys(ye).forEach(e=>delete ye[e])}function kt(e){ye[e]=void 0}setInterval(()=>{T.autosave&&se()},1e3);window.onbeforeunload=()=>{T.autosave&&se()};window.save=se;const va=window.hardReset=async()=>{await Pe(nt())};window.deleteLowerSaves=()=>{const e=Object.values(j.saves).indexOf(T.id)+1;Object.values(j.saves).slice(e).forEach(t=>localStorage.removeItem(t)),j.saves=j.saves.slice(0,e)};const vt=it({active:"",saves:[],showTPS:!0,theme:en.Nordic,unthrottled:!1,alignUnits:!1});he(vt,e=>{const t=Be.compressToUTF16(JSON.stringify(e));localStorage.setItem(U.id,t)},{deep:!0});var j=window.settings=vt;window.hardResetSettings=()=>{const e={active:"",saves:[],showTPS:!0,theme:en.Nordic,alignUnits:!1};oe.emit("loadSettings",e),Object.assign(vt,e),va()};function ba(){try{let e=localStorage.getItem(U.id);if(e!=null&&e!==""){if(e=qe(e),e==null){console.warn("Unable to determine settings encoding",e);return}const t=JSON.parse(e);typeof t=="object"&&Object.assign(vt,t)}oe.emit("loadSettings",vt)}catch{}}const ya=it([]),Dn=it([]);function _a(e){Dn.push(e)}const Na=it([]),ge=x(),Se=x([]),ot=x([]);function wa(){var e;((e=ge.value)==null?void 0:e.loggedIn)===!0&&(Se.value.length>0||ge.value.getSaveList().then(Rn).then(t=>{ot.value=t.map(n=>n.content.id)}).catch(console.error))}nr({supportsSaving:!0,supportsSaveManager:!0,onLoggedInChanged:vn}).then(e=>{ge.value=e,vn(e)}).catch(console.error);function vn(e){e.loggedIn===!0&&(Se.value.length>0||(e.getSaveList().then(t=>{const n=Rn(t);if(ot.value=n.map(r=>r.content.id),T.timePlayed<120*1e3&&n.length>0){const r=n.reduce((i,s)=>i.content.times)),r=Object.keys(e).map(i=>{var c;const{label:s,content:a}=e[i];try{return{slot:parseInt(i),label:s,content:JSON.parse((c=qe(a))!=null?c:"")}}catch{return null}}).filter(i=>i!=null&&typeof i.content.id=="string"&&typeof i.content.time=="number"&&typeof i.content.timePlayed=="number").filter(i=>{var a,c,d,f,b,v;i.label!=null&&(i.content.name=i.label),n.delete(i.slot);const s=j.saves.find(N=>N===i.content.id);if(s==null)j.saves.push(i.content.id),se(xe(i.content));else{t.delete(s);try{const N=JSON.parse((c=qe((a=localStorage.getItem(s))!=null?a:""))!=null?c:"");if(N==null)return!1;N.id=s,N.time=(d=N.time)!=null?d:0,N.timePlayed=(f=N.timePlayed)!=null?f:0;const k=Math.abs(N.timePlayed-i.content.timePlayed),y=Math.abs(N.time-i.content.time);k<120*1e3&&y<120*1e3?N.time{var s,a,c;try{if(n.size>0){const d=(s=localStorage.getItem(i))!=null?s:"",f=JSON.parse((a=qe(d))!=null?a:""),b=n.values().next().value;(c=ge.value)==null||c.save(b,d,f.name).then(()=>ot.value.push(f.id)).catch(console.error),n.delete(b)}}catch{}}),r}function ue(e,t="span"){return typeof e=="function"?B({render:e}):typeof e=="string"?e.length>0?(e=e.trim(),e.charAt(0)!=="<"&&(e=`<${t}>${e}`),B({template:e})):B({render:()=>({})}):e}function Nt(e){if(Rt(e))return typeof e=="function"?e():ue(e);const t=e[De];return _(t,e[Re](),null)}function Mt(e){if(Rt(e))return typeof e=="function"?e():typeof e=="string"?_(W,null,[e]):_(e,null,null);const t=e[De];return _(t,e[Re](),null)}function Rt(e){return typeof e=="string"?!0:typeof e=="object"?e==null?!1:"render"in e||"component"in e:typeof e=="function"&&e[pt]===!0}function qn(e,t){const n=x(null),r=x(void 0);function i(c){n.value||(n.value=setInterval(a,250)),r.value=c}function s(){n.value&&(clearInterval(n.value),n.value=null)}function a(){t&&t.value?t.value():e&&e.value&&e.value(r.value)}return _n(s),{start:i,stop:s,handleHolding:a}}function Ca(e,t="div"){const n=Ne();return We(()=>{n.value=ue(we(e),t)}),n}function lt(e,t="div"){const n=Ne(null);return We(()=>{const r=we(e);n.value=r===""||r==null?null:ue(r,t)}),n}function we(e){return l(l(e))}function z(...e){return e.includes(Object)||e.push(Object),e}function ka(e){return Object.keys(e).reduce((t,n)=>(t[ki(n)]=e[n],t),{})}var Sa=B({props:{element:Object,display:{type:z(Object,String,Function),required:!0},style:z(Object,String,Array),classes:z(Object),direction:z(String),xoffset:z(String),yoffset:z(String),pinned:Object},setup(e){const{element:t,display:n,pinned:r}=de(e),i=x(!1),s=F(()=>(we(r)||i.value)&&a.value),a=lt(n),c=Ne(ue(te(()=>{const b=we(t);return b==null?"":Mt(b)})));function d(b){const v=r;b.shiftKey&&v&&(v.value=!v.value,b.stopPropagation(),b.preventDefault())}const f=F(()=>we(r)&&tn[j.theme].showPin);return{Direction:J,isHovered:i,isShown:s,comp:a,elementComp:c,unref:l,togglePinned:d,showPin:f}}});const Ia={key:0,class:"material-icons pinned"};function Ma(e,t,n,r,i,s){return h(),w("div",{class:ee(["tooltip-container",{shown:e.isShown}]),onMouseenter:t[0]||(t[0]=a=>e.isHovered=!0),onMouseleave:t[1]||(t[1]=a=>e.isHovered=!1),onClickCapture:t[2]||(t[2]=(...a)=>e.togglePinned&&e.togglePinned(...a))},[Le(e.$slots,"default",{},void 0,!0),e.elementComp?(h(),R(ae(e.elementComp),{key:0})):M("",!0),_(yn,{name:"fade"},{default:O(()=>{var a;return[e.isShown?(h(),w("div",{key:0,class:ee(["tooltip",{top:e.unref(e.direction)===e.Direction.Up,left:e.unref(e.direction)===e.Direction.Left,right:e.unref(e.direction)===e.Direction.Right,bottom:e.unref(e.direction)===e.Direction.Down,...e.unref(e.classes)}]),style:me([{"--xoffset":e.unref(e.xoffset)||"0px","--yoffset":e.unref(e.yoffset)||"0px"},(a=e.unref(e.style))!=null?a:{}])},[e.showPin?(h(),w("span",Ia,"push_pin")):M("",!0),e.comp?(h(),R(ae(e.comp),{key:1})):M("",!0)],6)):M("",!0)]}),_:1})],34)}var Q=G(Sa,[["render",Ma],["__scopeId","data-v-6102fa3a"]]);const $a={key:0},xa=["onClick","disabled"],Pa={key:0},Ta=["onClick"],Fa=B({__name:"DangerButton",props:{disabled:{type:Boolean},skipConfirm:{type:Boolean}},emits:["click","confirmingChanged"],setup(e,{emit:t}){const r=de(e),i=x(!1);he(i,c=>{t("confirmingChanged",c)});function s(){if(l(r.skipConfirm)){t("click");return}i.value&&t("click"),i.value=!i.value}function a(){i.value=!1}return(c,d)=>(h(),w("span",{class:ee(["container",{confirming:i.value}])},[i.value?(h(),w("span",$a,"Are you sure?")):M("",!0),m("button",{onClick:gt(s,["stop"]),class:"button danger",disabled:e.disabled},[i.value?(h(),w("span",Pa,"Yes")):Le(c.$slots,"default",{key:1},void 0,!0)],8,xa),i.value?(h(),w("button",{key:1,class:"button",onClick:gt(a,["stop"])},"No",8,Ta)):M("",!0)],2))}});var Ea=G(Fa,[["__scopeId","data-v-2f8ef34c"]]);const Oa=["onSubmit"],Va={class:"field"},La={key:0,class:"field-title"},Da=["placeholder"],Ra=B({__name:"Text",props:{title:null,modelValue:null,textArea:{type:Boolean},placeholder:null,maxHeight:null,submitOnBlur:{type:Boolean}},emits:["update:modelValue","submit","cancel"],setup(e,{emit:t}){const n=e,r=lt(Te(n,"title"),"span"),i=Ne(null);yt(()=>{var d;(d=i.value)==null||d.focus()});const s=F({get(){var d;return(d=l(n.modelValue))!=null?d:""},set(d){t("update:modelValue",d)}});function a(){t("submit")}function c(){n.submitOnBlur!==!1?t("submit"):t("cancel")}return(d,f)=>(h(),w("form",{onSubmit:gt(a,["prevent"])},[m("div",Va,[l(r)?(h(),w("span",La,[(h(),R(ae(l(r))))])):M("",!0),e.textArea?(h(),R(l(rr),{key:1,modelValue:l(s),"onUpdate:modelValue":f[0]||(f[0]=b=>ie(s)?s.value=b:null),placeholder:e.placeholder,maxHeight:e.maxHeight,onBlur:c,ref_key:"field",ref:i},null,8,["modelValue","placeholder","maxHeight"])):Wt((h(),w("input",{key:2,type:"text","onUpdate:modelValue":f[1]||(f[1]=b=>ie(s)?s.value=b:null),placeholder:e.placeholder,class:ee({fullWidth:!e.title}),onBlur:c,ref_key:"field",ref:i},null,42,Da)),[[Yn,l(s)]])])],40,Oa))}});var An=G(Ra,[["__scopeId","data-v-90bd4994"]]);const Fe=e=>(Ie("data-v-2fbabe5d"),e=e(),Me(),e),qa={key:0,class:"handle material-icons"},Aa={key:1,class:"actions"},Ba=Fe(()=>m("span",{class:"material-icons"},"content_paste",-1)),Ua=Fe(()=>m("span",{class:"material-icons"},"content_copy",-1)),za=Fe(()=>m("span",{class:"material-icons"},"edit",-1)),Ga=Fe(()=>m("span",{class:"material-icons",style:{margin:"-2px"}},"delete",-1)),ja={key:2,class:"actions"},Ha=Fe(()=>m("span",{class:"material-icons"},"check",-1)),Wa=Fe(()=>m("span",{class:"material-icons"},"close",-1)),Ja={key:3,class:"details"},Ka=Fe(()=>m("span",{class:"material-icons synced"},"cloud",-1)),Za=["disabled"],Ya={class:"save-version"},Xa=Fe(()=>m("br",null,null,-1)),Qa={key:1,class:"time"},eo={key:4,class:"details"},to={key:5,class:"details error"},no=Fe(()=>m("br",null,null,-1)),ro=B({__name:"Save",props:{save:null,readonly:{type:Boolean}},emits:["export","open","duplicate","delete","editName"],setup(e,{emit:t}){const n=e,{save:r,readonly:i}=de(n),s=new Intl.DateTimeFormat("en-US",{year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric"}),a=x(!1),c=x(!1),d=x("");he(a,()=>{var k;return d.value=(k=r.value.name)!=null?k:""});const f=F(()=>r.value!=null&&r.value.id===T.id&&!l(i)),b=F(()=>{var k;return f.value?T.time:(k=r.value!=null&&r.value.time)!=null?k:0}),v=F(()=>{var k;return!l(i)&&((k=ge.value)==null?void 0:k.loggedIn)===!0&&ot.value.includes(r.value.id)});function N(){t("editName",d.value),a.value=!1}return(k,y)=>(h(),w("div",{class:ee(["save",{active:l(f),readonly:l(i)}])},[l(i)!==!0?(h(),w("div",qa,"drag_handle")):M("",!0),!a.value&&l(i)!==!0?(h(),w("div",Aa,[l(r).error==null&&!c.value?(h(),R(Jt,{key:0,onClick:y[0]||(y[0]=S=>t("export")),class:"button",left:""},{default:O(()=>[_(Q,{display:"Export",direction:l(J).Left,class:"info"},{default:O(()=>[Ba]),_:1},8,["direction"])]),_:1})):M("",!0),l(r).error==null&&!c.value?(h(),w("button",{key:1,onClick:y[1]||(y[1]=S=>t("duplicate")),class:"button"},[_(Q,{display:"Duplicate",direction:l(J).Left,class:"info"},{default:O(()=>[Ua]),_:1},8,["direction"])])):M("",!0),l(r).error==null&&!c.value?(h(),w("button",{key:2,onClick:y[2]||(y[2]=S=>a.value=!a.value),class:"button"},[_(Q,{display:"Edit Name",direction:l(J).Left,class:"info"},{default:O(()=>[za]),_:1},8,["direction"])])):M("",!0),_(Ea,{disabled:l(f),onClick:y[3]||(y[3]=S=>t("delete")),onConfirmingChanged:y[4]||(y[4]=S=>c.value=S)},{default:O(()=>[_(Q,{display:"Delete",direction:l(J).Left,class:"info"},{default:O(()=>[Ga]),_:1},8,["direction"])]),_:1},8,["disabled"])])):l(i)!==!0?(h(),w("div",ja,[m("button",{onClick:N,class:"button"},[_(Q,{display:"Save",direction:l(J).Left,class:"info"},{default:O(()=>[Ha]),_:1},8,["direction"])]),m("button",{onClick:y[5]||(y[5]=S=>a.value=!a.value),class:"button"},[_(Q,{display:"Cancel",direction:l(J).Left,class:"info"},{default:O(()=>[Wa]),_:1},8,["direction"])])])):M("",!0),l(r).error==null&&!a.value?(h(),w("div",Ja,[l(v)?(h(),R(Q,{key:0,display:"Synced!",direction:l(J).Right},{default:O(()=>[Ka]),_:1},8,["direction"])):M("",!0),m("button",{class:"button open",onClick:y[6]||(y[6]=S=>t("open")),disabled:l(i)},[m("h3",null,V(l(r).name),1)],8,Za),m("span",Ya,"v"+V(l(r).modVersion),1),Xa,l(b)?(h(),w("div",Qa," Last played "+V(l(s).format(l(b))),1)):M("",!0)])):l(r).error==null&&a.value?(h(),w("div",eo,[_(An,{modelValue:d.value,"onUpdate:modelValue":y[7]||(y[7]=S=>d.value=S),class:"editname",onSubmit:N},null,8,["modelValue"])])):(h(),w("div",to,[E(" Error: Failed to load save with id "+V(l(r).id),1),no,E(V(l(r).error),1)]))],2))}});var Ht=G(ro,[["__scopeId","data-v-2fbabe5d"]]);const rn=e=>(Ie("data-v-a123f6ba"),e=e(),Me(),e),io={class:"cloud-saves-modal-header"},so=rn(()=>m("br",null,null,-1)),ao=["onClick"],oo={key:0,class:"note"},lo={key:1,class:"note"},uo=["onClick"],co={key:0,class:"note"},fo={key:1,class:"note"},go=["onClick"],mo=rn(()=>m("h2",null,"Both",-1)),ho=rn(()=>m("div",{class:"save"},"Keep Both",-1)),po=[mo,ho],vo=B({__name:"CloudSaveResolver",setup(e){const t=x(!1),n=x([]),r=F(()=>Se.value.length>1?"saves":"save"),i=x(null);he(()=>Se.value.length>0,f=>{f&&(n.value=Se.value.map(({local:b,cloud:v})=>{var N,k;return((N=b.time)!=null?N:0)<((k=v.time)!=null?k:0)?"cloud":"local"}),t.value=!0)},{immediate:!0}),he(()=>{var f;return(f=i.value)==null?void 0:f.isOpen},f=>{f===!1&&(Se.value=[])});function s(f){n.value[f]="local"}function a(f){n.value[f]="cloud"}function c(f){n.value[f]="both"}function d(){var f,b;for(let v=0;v(h(),R(Ue,{modelValue:t.value,"onUpdate:modelValue":b[0]||(b[0]=v=>t.value=v),width:"960px",ref_key:"modal",ref:i,"prevent-closing":!0},{header:O(()=>[m("div",io,[m("h2",null,"Cloud "+V(l(r))+" loaded!",1)])]),body:O(()=>[m("div",null," Upon loading, your cloud "+V(l(r))+" "+V(l(Se).length>1?"appear":"appears")+" to be out of sync with your local "+V(l(r))+". Which "+V(l(r))+" do you want to keep? ",1),so,(h(!0),w(W,null,Oe(l(l(Se)),(v,N)=>{var k,y,S,P,I,$,q,ne;return h(),w("div",{key:v.id,class:"conflict-container"},[m("div",{onClick:fe=>a(N),class:ee({selected:n.value[N]==="cloud"})},[m("h2",null,[E(" Cloud "),((k=v.cloud.time)!=null?k:0)>((y=v.local.time)!=null?y:0)?(h(),w("span",oo,"(more recent)")):M("",!0),((S=v.cloud.timePlayed)!=null?S:0)>((P=v.local.timePlayed)!=null?P:0)?(h(),w("span",lo,"(more playtime)")):M("",!0)]),_(Ht,{save:v.cloud,readonly:!0},null,8,["save"])],10,ao),m("div",{onClick:fe=>s(N),class:ee({selected:n.value[N]==="local"})},[m("h2",null,[E(" Local "),((I=v.cloud.time)!=null?I:0)<=(($=v.local.time)!=null?$:0)?(h(),w("span",co,"(more recent)")):M("",!0),((q=v.cloud.timePlayed)!=null?q:0)<=((ne=v.local.timePlayed)!=null?ne:0)?(h(),w("span",fo,"(more playtime)")):M("",!0)]),_(Ht,{save:v.local,readonly:!0},null,8,["save"])],10,uo),m("div",{onClick:fe=>c(N),class:ee({selected:n.value[N]==="both"}),style:{"flex-basis":"30%"}},po,10,go)])}),128))]),footer:O(()=>[m("div",{class:"cloud-saves-footer"},[m("button",{onClick:d,class:"button"},"Confirm")])]),_:1},8,["modelValue"]))}});var bo=G(vo,[["__scopeId","data-v-a123f6ba"]]);const yo=B({components:{Context:Ln,ErrorVue:wn},props:{index:{type:Number,required:!0},display:{type:z(Object,String,Function),required:!0},minimizedDisplay:z(Object,String,Function),minimized:{type:Object,required:!0},name:{type:z(String),required:!0},color:z(String),minimizable:z(Boolean),nodes:{type:Object,required:!0}},emits:["setMinimized"],setup(e){const{display:t,index:n,minimized:r,minimizedDisplay:i}=de(e),s=Ca(t),a=lt(i),c=F(()=>U.allowGoBack&&n.value>0&&!we(r));function d(){T.tabs.splice(l(e.index),1/0)}function f(v){e.nodes.value=v}const b=x([]);return Xn((v,N,k)=>(console.warn(`Error caught in "${e.name}" layer`,v,N,k),b.value.push(v instanceof Error?v:new Error(JSON.stringify(v))),!1)),{component:s,minimizedComponent:a,showGoBack:c,updateNodes:f,unref:l,goBack:d,errors:b}}}),_o={key:1};function No(e,t,n,r,i,s){const a=Ke("ErrorVue"),c=Ke("Context");return e.errors.length>0?(h(),R(a,{key:0,errors:e.errors},null,8,["errors"])):(h(),w("div",Ae({key:1,class:"layer-container",style:{"--layer-color":e.unref(e.color)}},e.$attrs),[e.showGoBack?(h(),w("button",{key:0,class:"goBack",onClick:t[0]||(t[0]=(...d)=>e.goBack&&e.goBack(...d))},"\u274C")):M("",!0),e.unref(e.minimized)?(h(),w("button",{key:1,class:"layer-tab minimized",onClick:t[1]||(t[1]=d=>e.$emit("setMinimized",!1))},[e.minimizedComponent?(h(),R(ae(e.minimizedComponent),{key:0})):(h(),w("div",_o,V(e.unref(e.name)),1))])):(h(),w("div",{key:2,class:ee(["layer-tab",{showGoBack:e.showGoBack}])},[_(c,{onUpdateNodes:e.updateNodes},{default:O(()=>[(h(),R(ae(e.component)))]),_:1},8,["onUpdateNodes"])],2)),e.unref(e.minimizable)?(h(),w("button",{key:3,class:"minimize",onClick:t[2]||(t[2]=d=>e.$emit("setMinimized",!0))}," \u25BC ")):M("",!0)],16))}var wo=G(yo,[["render",No],["__scopeId","data-v-a9f5b1da"]]);const Bn=e=>(Ie("data-v-4b4bda40"),e=e(),Me(),e),Co=Bn(()=>m("h2",null,"Changelog",-1)),ko=Bn(()=>m("details",{open:""},[m("summary",null,[E("v0.0 Initial Commit - "),m("time",null,"2021-09-04")]),E(" This is the first release :D "),m("ul",null,[m("li",{class:"feature"},"Did everything"),m("li",{class:"fix"},"Had some fun"),m("li",{class:"breaking"},"Removed everything"),m("li",{class:"balancing"},"Created some bugs to fix later")])],-1)),So=B({__name:"Changelog",setup(e,{expose:t}){const n=x(!1);return t({open(){n.value=!0}}),(r,i)=>(h(),R(Ue,{modelValue:n.value,"onUpdate:modelValue":i[0]||(i[0]=s=>n.value=s)},{header:O(()=>[Co]),body:O(()=>[ko]),_:1},8,["modelValue"]))}});var Io=G(So,[["__scopeId","data-v-4b4bda40"]]);const Xe=e=>(Ie("data-v-10effbe8"),e=e(),Me(),e),Mo={class:"info-modal-header"},$o=["src","alt"],xo={class:"info-modal-title"},Po={key:0},To={key:0},Fo={key:0},Eo=Xe(()=>m("div",null," Made in Profectus, by thepaperpilot with inspiration from Acameada and Jacorb ",-1)),Oo=Xe(()=>m("br",null,null,-1)),Vo=Xe(()=>m("br",null,null,-1)),Lo=["href"],Do=Xe(()=>m("span",{class:"material-icons info-modal-discord"},"discord",-1)),Ro=Xe(()=>m("div",null,[m("a",{href:"https://discord.gg/yJ4fjnjU54",class:"info-modal-discord-link",target:"_blank"},[m("span",{class:"material-icons info-modal-discord"},"discord"),E(" Profectus & Friends ")])],-1)),qo=Xe(()=>m("div",null,[m("a",{href:"https://discord.gg/F3xveHV",class:"info-modal-discord-link",target:"_blank"},[m("span",{class:"material-icons info-modal-discord"},"discord"),E(" The Modding Tree ")])],-1)),Ao=Xe(()=>m("br",null,null,-1));var Bo=B({__name:"Info",props:{changelog:null},setup(e,{expose:t}){const n=e,{title:r,logo:i,author:s,discordName:a,discordLink:c,versionNumber:d,versionTitle:f}=U,b=de(n),v=x(!1),N=F(()=>Lt(T.timePlayed)),k=F(()=>ue(te(()=>_(W,null,[Dn.map(Nt)]))));t({open(){v.value=!0}});function y(){var S;(S=l(b.changelog))==null||S.open()}return(S,P)=>(h(),R(Ue,{modelValue:v.value,"onUpdate:modelValue":P[0]||(P[0]=I=>v.value=I)},{header:O(()=>[m("div",Mo,[l(i)?(h(),w("img",{key:0,class:"info-modal-logo",src:l(i),alt:l(r)},null,8,$o)):M("",!0),m("div",xo,[m("h2",null,V(l(r)),1),m("h4",null,[E(" v"+V(l(d)),1),l(f)?(h(),w("span",Po,": "+V(l(f)),1)):M("",!0)])])])]),body:O(({shown:I})=>[I?(h(),w("div",To,[l(s)?(h(),w("div",Fo,"By "+V(l(s)),1)):M("",!0),Eo,Oo,m("div",{class:"link",onClick:y},"Changelog"),Vo,m("div",null,[l(c)?(h(),w("a",{key:0,href:l(c),class:"info-modal-discord-link",target:"_blank"},[Do,E(" "+V(l(a)),1)],8,Lo)):M("",!0)]),Ro,qo,Ao,m("div",null,"Time Played: "+V(l(N)),1),(h(),R(ae(l(k))))])):M("",!0)]),_:1},8,["modelValue"]))}});var Uo=G(Bo,[["__scopeId","data-v-10effbe8"]]);const zo={class:"field"},Go={key:0,class:"field-title"},Un=B({__name:"Select",props:{title:null,modelValue:null,options:null,placeholder:null,closeOnSelect:{type:Boolean}},emits:["update:modelValue"],setup(e,{emit:t}){var a;const n=e,r=lt(Te(n,"title"),"span"),i=x((a=n.options.find(c=>c.value===n.modelValue))!=null?a:null);he(Te(n,"modelValue"),c=>{var d;we(i)!==c&&(i.value=(d=n.options.find(f=>f.value===c))!=null?d:null)});function s(c){t("update:modelValue",c.value)}return(c,d)=>(h(),w("div",zo,[l(r)?(h(),w("span",Go,[(h(),R(ae(l(r))))])):M("",!0),_(l(ir),{options:e.options,modelValue:i.value,"onUpdate:modelValue":[d[0]||(d[0]=f=>i.value=f),s],min:1,"label-by":"label",placeholder:e.placeholder,"close-on-select":e.closeOnSelect},null,8,["options","modelValue","placeholder","close-on-select"])]))}});const jo={class:"field"},Ho=B({__name:"Toggle",props:{title:null,modelValue:{type:Boolean}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,r=F(()=>{var s;return ue((s=l(n.title))!=null?s:"","span")}),i=F({get(){return!!n.modelValue},set(s){t("update:modelValue",s)}});return(s,a)=>(h(),w("label",jo,[Wt(m("input",{type:"checkbox",class:"toggle","onUpdate:modelValue":a[0]||(a[0]=c=>ie(i)?i.value=c:null)},null,512),[[Qn,l(i)]]),(h(),R(ae(l(r))))]))}});var $e=G(Ho,[["__scopeId","data-v-11046116"]]);const Wo={class:"header"},Jo=m("h2",null,"Settings",-1),Ko={class:"option-tabs"},Zo={key:0},Yo={key:1};var Xo=B({__name:"Options",setup(e,{expose:t}){const n=x(!1),r=x("behaviour");function i(be){return be==r.value}function s(be){r.value=be}t({isTab:i,setTab:s,save:se,open(){n.value=!0}});const a=Object.keys(tn).map(be=>({label:xn(be),value:be})),c=F(()=>ue(te(()=>_(W,null,[ya.map(Nt)])))),{showTPS:d,theme:f,unthrottled:b,alignUnits:v}=de(j),{autosave:N,offlineProd:k}=de(T),y=F({get(){return T.devSpeed===0},set(be){T.devSpeed=be?0:null}}),S=te(()=>_("span",{class:"option-title"},[E("Unthrottled"),_("desc",null,[E("Allow the game to run as fast as possible. Not battery friendly.")])])),P=te(()=>_("span",{class:"option-title"},[E("Offline Production"),_(Q,{display:"Save-specific",direction:J.Right},{default:()=>[E("*")]}),_("desc",null,[E("Simulate production that occurs while the game is closed.")])])),I=te(()=>_("span",{class:"option-title"},[E("Autosave"),_(Q,{display:"Save-specific",direction:J.Right},{default:()=>[E("*")]}),_("desc",null,[E("Automatically save the game every second or when the game is closed.")])])),$=te(()=>_("span",{class:"option-title"},[E("Pause game"),_(Q,{display:"Save-specific",direction:J.Right},{default:()=>[E("*")]}),_("desc",null,[E("Stop everything from moving.")])])),q=te(()=>_("span",{class:"option-title"},[E("Theme"),_("desc",null,[E("How the game looks.")])])),ne=te(()=>_("span",{class:"option-title"},[E("Show TPS"),_("desc",null,[E("Show TPS meter at the bottom-left corner of the page.")])])),fe=te(()=>_("span",{class:"option-title"},[E("Align modifier units"),_("desc",null,[E("Align numbers to the beginning of the unit in modifier view.")])]));return(be,H)=>(h(),R(Ue,{modelValue:n.value,"onUpdate:modelValue":H[10]||(H[10]=re=>n.value=re)},{header:O(()=>[m("div",Wo,[Jo,m("div",Ko,[m("button",{class:ee({selected:i("behaviour")}),onClick:H[0]||(H[0]=re=>s("behaviour"))},"Behaviour",2),m("button",{class:ee({selected:i("appearance")}),onClick:H[1]||(H[1]=re=>s("appearance"))},"Appearance",2)])])]),body:O(()=>[i("behaviour")?(h(),w("div",Zo,[_($e,{title:l(S),modelValue:l(b),"onUpdate:modelValue":H[2]||(H[2]=re=>ie(b)?b.value=re:null)},null,8,["title","modelValue"]),l(U).enablePausing?(h(),R($e,{key:0,title:l($),modelValue:l(y),"onUpdate:modelValue":H[3]||(H[3]=re=>ie(y)?y.value=re:null)},null,8,["title","modelValue"])):M("",!0),_($e,{title:l(P),modelValue:l(k),"onUpdate:modelValue":H[4]||(H[4]=re=>ie(k)?k.value=re:null)},null,8,["title","modelValue"]),_($e,{title:l(I),modelValue:l(N),"onUpdate:modelValue":H[5]||(H[5]=re=>ie(N)?N.value=re:null)},null,8,["title","modelValue"]),l(N)?M("",!0):(h(),R(Jt,{key:1,class:"button save-button",onClick:H[6]||(H[6]=re=>l(se)())},{default:O(()=>[E("Manually save")]),_:1}))])):M("",!0),i("appearance")?(h(),w("div",Yo,[_(Un,{title:l(q),options:l(a),modelValue:l(f),"onUpdate:modelValue":H[7]||(H[7]=re=>ie(f)?f.value=re:null)},null,8,["title","options","modelValue"]),(h(),R(ae(l(c)))),_($e,{title:l(ne),modelValue:l(d),"onUpdate:modelValue":H[8]||(H[8]=re=>ie(d)?d.value=re:null)},null,8,["title","modelValue"]),_($e,{title:l(fe),modelValue:l(v),"onUpdate:modelValue":H[9]||(H[9]=re=>ie(v)?v.value=re:null)},null,8,["title","modelValue"])])):M("",!0)]),_:1},8,["modelValue"]))}});const sn=e=>(Ie("data-v-0d78a988"),e=e(),Me(),e),Qo=sn(()=>m("h2",null,"Saves Manager",-1)),el={key:0,style:{color:"var(--danger)"}},tl={class:"modal-footer"},nl={class:"field"},rl=sn(()=>m("span",{class:"field-title"},"Create Save",-1)),il={class:"field-buttons"},sl={class:"footer"},al=sn(()=>m("div",{style:{"flex-grow":"1"}},null,-1)),ol=B({__name:"SavesManager",setup(e,{expose:t}){const n=x(!1),r=x(null);t({open(){n.value=!0}});const i=x(!1),s=x(""),a=x(null);he(s,I=>{I?Je(()=>{var $;try{if(I=($=qe(I))!=null?$:"",I===""){console.warn("Unable to determine preset encoding",I),i.value=!0;return}const q=JSON.parse(I);if(typeof q!="object"){i.value=!0;return}const ne=ft();q.id=ne,se(q),s.value="",i.value=!1,j.saves.push(ne)}catch{i.value=!0}}):i.value=!1});let c={},d=x(Object.keys(c).reduce((I,$)=>(I.push({label:$.split("/").slice(-1)[0].slice(0,-4),value:c[$]}),I),[]));he(n,I=>{I&&pa()});const f=F(()=>j.saves.reduce((I,$)=>(I[$]=ha($),I),{})),b=F(()=>{var I;return((I=ge.value)==null?void 0:I.loggedIn)===!0&&j.saves.length{var fe;const ne=Object.keys(q).find(be=>{const H=q[be].content;try{if(JSON.parse(H).id===I)return!0}catch{return!1}});ne!=null&&((fe=ge.value)==null||fe.save(parseInt(ne),"","").catch(console.error))}),j.saves=j.saves.filter(q=>q!==I),localStorage.removeItem(I),kt(I)}function y(I){f.value[T.id].time=T.time,se(),kt(T.id),Pe(f.value[I]),kt(I)}function S(I){var q;if(a.value=I,Je(()=>{a.value=null}),I=(q=qe(I))!=null?q:"",I===""){console.warn("Unable to determine preset encoding",I);return}const $=JSON.parse(I);$.id=ft(),se($),j.saves.push($.id),y($.id)}function P(I,$){const q=f.value[I];q!=null&&(q.name=$,T.id===I?(T.name=$,se()):(se(q),kt(I)))}return(I,$)=>(h(),R(Ue,{modelValue:n.value,"onUpdate:modelValue":$[4]||($[4]=q=>n.value=q),ref_key:"modal",ref:r},{header:O(()=>[Qo]),body:O(({shown:q})=>[l(b)?(h(),w("div",el," Not all saves are synced! You may need to delete stale saves. ")):M("",!0),q?(h(),R(l(sr),{key:1,list:l(j).saves,handle:".handle",itemKey:ne=>ne},{item:O(({element:ne})=>[_(Ht,{save:l(f)[ne],onOpen:fe=>y(ne),onExport:fe=>v(ne),onEditName:fe=>P(ne,fe),onDuplicate:fe=>N(ne),onDelete:fe=>k(ne)},null,8,["save","onOpen","onExport","onEditName","onDuplicate","onDelete"])]),_:1},8,["list","itemKey"])):M("",!0)]),footer:O(()=>[m("div",tl,[_(An,{modelValue:s.value,"onUpdate:modelValue":$[0]||($[0]=q=>s.value=q),title:"Import Save",placeholder:"Paste your save here!",class:ee({importingFailed:i.value})},null,8,["modelValue","class"]),m("div",nl,[rl,m("div",il,[m("button",{class:"button",onClick:$[1]||($[1]=q=>y(l(nt)().id))},"New Game"),Object.keys(l(d)).length>0?(h(),R(Un,{key:0,options:l(d),modelValue:a.value,"onUpdate:modelValue":$[2]||($[2]=q=>S(q)),closeOnSelect:"",placeholder:"Select preset",class:"presets"},null,8,["options","modelValue"])):M("",!0)])]),m("div",sl,[al,m("button",{class:"button modal-default-button",onClick:$[3]||($[3]=q=>n.value=!1)}," Close ")])])]),_:1},8,["modelValue"]))}});var zn=G(ol,[["__scopeId","data-v-0d78a988"]]);const ke=e=>(Ie("data-v-b1a52b1c"),e=e(),Me(),e),ll=["src","alt"],ul={key:1,class:"title"},cl=ke(()=>m("div",{style:{"flex-grow":"1",cursor:"unset"}},null,-1)),dl={class:"discord"},fl={class:"discord-links"},gl={key:0},ml=["href"],hl=ke(()=>m("li",null,[m("a",{href:"https://discord.gg/yJ4fjnjU54",target:"_blank"},"Profectus & Friends")],-1)),pl=ke(()=>m("li",null,[m("a",{href:"https://discord.gg/F3xveHV",target:"_blank"},"The Modding Tree")],-1)),vl={href:"https://forums.moddingtree.com/",target:"_blank"},bl=ke(()=>m("span",{class:"material-icons"},"forum",-1)),yl=ke(()=>m("span",{class:"material-icons"},"info",-1)),_l=ke(()=>m("span",{class:"material-icons"},"settings",-1)),Nl=ke(()=>m("span",{class:"material-icons"},"settings",-1)),wl=ke(()=>m("span",{class:"material-icons"},"info",-1)),Cl={href:"https://forums.moddingtree.com/",target:"_blank"},kl=ke(()=>m("span",{class:"material-icons"},"forum",-1)),Sl={class:"discord"},Il={class:"discord-links"},Ml={key:0},$l=["href"],xl=ke(()=>m("li",null,[m("a",{href:"https://discord.gg/yJ4fjnjU54",target:"_blank"},"Profectus & Friends")],-1)),Pl=ke(()=>m("li",null,[m("a",{href:"https://discord.gg/F3xveHV",target:"_blank"},"The Modding Tree")],-1)),Tl=B({__name:"Nav",setup(e){const t=x(null),n=x(null),r=x(null),i=x(null),{useHeader:s,banner:a,title:c,discordName:d,discordLink:f,versionNumber:b}=U;function v(){window.open(f,"mywindow")}const N=F(()=>{var k;return((k=ge.value)==null?void 0:k.loggedIn)===!0&&!ot.value.includes(j.active)});return(k,y)=>(h(),w(W,null,[l(s)?(h(),w("div",Ae({key:0,class:"nav"},k.$attrs),[l(a)?(h(),w("img",{key:0,src:l(a),class:"banner",alt:l(c)},null,8,ll)):(h(),w("div",ul,V(l(c)),1)),m("div",{onClick:y[0]||(y[0]=S=>{var P;return(P=i.value)==null?void 0:P.open()}),class:"version-container"},[_(Q,{display:"Changelog",direction:l(J).Down,class:"version"},{default:O(()=>[m("span",null,"v"+V(l(b)),1)]),_:1},8,["direction"])]),cl,m("div",dl,[m("span",{onClick:v,class:"material-icons"},"discord"),m("ul",fl,[l(f)?(h(),w("li",gl,[m("a",{href:l(f),target:"_blank"},V(l(d)),9,ml)])):M("",!0),hl,pl])]),m("div",null,[m("a",vl,[_(Q,{display:"Forums",direction:l(J).Down,yoffset:"5px"},{default:O(()=>[bl]),_:1},8,["direction"])])]),m("div",{onClick:y[1]||(y[1]=S=>{var P;return(P=t.value)==null?void 0:P.open()})},[_(Q,{display:"Info",direction:l(J).Down,class:"info"},{default:O(()=>[yl]),_:1},8,["direction"])]),m("div",{onClick:y[2]||(y[2]=S=>{var P;return(P=n.value)==null?void 0:P.open()})},[_(Q,{display:"Saves",direction:l(J).Down,xoffset:"-20px"},{default:O(()=>[m("span",{class:ee(["material-icons",{needsSync:l(N)}])},"library_books",2)]),_:1},8,["direction"])]),m("div",{onClick:y[3]||(y[3]=S=>{var P;return(P=r.value)==null?void 0:P.open()})},[_(Q,{display:"Settings",direction:l(J).Down,xoffset:"-66px"},{default:O(()=>[_l]),_:1},8,["direction"])])],16)):(h(),w("div",Ae({key:1,class:"overlay-nav"},k.$attrs),[m("div",{onClick:y[4]||(y[4]=S=>{var P;return(P=i.value)==null?void 0:P.open()}),class:"version-container"},[_(Q,{display:"Changelog",direction:l(J).Right,xoffset:"25%",class:"version"},{default:O(()=>[m("span",null,"v"+V(l(b)),1)]),_:1},8,["direction"])]),m("div",{onClick:y[5]||(y[5]=S=>{var P;return(P=n.value)==null?void 0:P.open()})},[_(Q,{display:"Saves",direction:l(J).Right},{default:O(()=>[m("span",{class:ee(["material-icons",{needsSync:l(N)}])},"library_books",2)]),_:1},8,["direction"])]),m("div",{onClick:y[6]||(y[6]=S=>{var P;return(P=r.value)==null?void 0:P.open()})},[_(Q,{display:"Settings",direction:l(J).Right},{default:O(()=>[Nl]),_:1},8,["direction"])]),m("div",{onClick:y[7]||(y[7]=S=>{var P;return(P=t.value)==null?void 0:P.open()})},[_(Q,{display:"Info",direction:l(J).Right},{default:O(()=>[wl]),_:1},8,["direction"])]),m("div",null,[m("a",Cl,[_(Q,{display:"Forums",direction:l(J).Right,xoffset:"7px"},{default:O(()=>[kl]),_:1},8,["direction"])])]),m("div",Sl,[m("span",{onClick:v,class:"material-icons"},"discord"),m("ul",Il,[l(f)?(h(),w("li",Ml,[m("a",{href:l(f),target:"_blank"},V(l(d)),9,$l)])):M("",!0),xl,Pl])])],16)),_(Uo,{ref_key:"info",ref:t,changelog:i.value},null,8,["changelog"]),_(zn,{ref_key:"savesManager",ref:n},null,512),_(Xo,{ref_key:"options",ref:r},null,512),_(Io,{ref_key:"changelog",ref:i},null,512)],64))}});var Gn=G(Tl,[["__scopeId","data-v-b1a52b1c"]]);const Fl={class:"inner-tab"},El=B({__name:"Game",setup(e){const t=Te(T,"tabs"),n=F(()=>Object.keys(le)),r=U.useHeader;function i(s){const{display:a,minimized:c,name:d,color:f,minimizable:b,nodes:v,minimizedDisplay:N}=s;return{display:a,minimized:c,name:d,color:f,minimizable:b,nodes:v,minimizedDisplay:N}}return(s,a)=>(h(),w("div",{class:ee(["tabs-container",{useHeader:l(r)}])},[(h(!0),w(W,null,Oe(l(t),(c,d)=>{var f,b;return h(),w("div",{key:d,class:ee(["tab",l((f=l(le)[c])==null?void 0:f.classes)]),style:me(l((b=l(le)[c])==null?void 0:b.style))},[d===0&&!l(r)?(h(),R(Gn,{key:0})):M("",!0),m("div",Fl,[l(n).includes(c)?(h(),R(wo,Ae({key:0},i(l(le)[c]),{index:d,onSetMinimized:v=>l(le)[c].minimized.value=v}),null,16,["index","onSetMinimized"])):(h(),R(ae(c),{key:1,index:d},null,8,["index"]))])],6)}),128))],2))}});var Ol=G(El,[["__scopeId","data-v-dcd207b4"]]);const Vl=B({__name:"Node",props:{id:null},setup(e){const n=de(e),r=$t(Kt,()=>{}),i=$t(Zt,()=>{}),s=Ne(null),a=F(()=>s.value&&s.value.parentElement);return he([a,n.id],([c,d],[f,b])=>{f&&i(l(b)),c&&r(d,c)}),_n(()=>i(l(n.id))),(c,d)=>(h(),w("div",{class:"node",ref_key:"node",ref:s},null,512))}});var Qe=G(Vl,[["__scopeId","data-v-a48cb382"]]);const Ll=B({__name:"Spacer",props:{width:{default:"8px"},height:{default:"17px"}},setup(e){return(t,n)=>(h(),w("div",{style:me({width:e.width,height:e.height})},null,4))}});function jn(e,t="points",n=0,r=void 0){const i=ie(e)?e:_t(e);if(i.displayName=t,i.precision=n,i.small=r,!ie(e)){const s=i[Ve];s.displayName=t,s.precision=n,s.small=r}return i}function Dl(e){const t=_t(e.value);return he(e,n=>{nn.value||u.gt(n,t.value)&&(t.value=n)}),t}function Rl(e){const t=_t(e.value);return he(e,(n,r)=>{nn.value||u.gt(n,r)&&(t.value=u.add(t.value,u.sub(n,r)))}),t}const ql=new u("10^^8"),Al=new u("1e100");function Bl(e,t){const n=x(0),r=x(0),i=x(0);return oe.on("update",a=>{if(r.value=0,u.lte(e.value,Al)){i.value=e.value;return}let c=e.value,d=i.value;if(i.value=c,u.gt(c,d))if(u.gte(c,ql))c=u.slog(c,1e10),d=u.slog(d,1e10),n.value=c.sub(d).div(a),r.value=-1;else for(;u.div(c,d).log(10).div(a).gte("100")&&r.value<=5&&u.gt(d,0);)c=u.log10(c),d=u.log10(d),n.value=c.sub(d).div(a),r.value++}),F(()=>r.value===0?t?Ce(t.value,e.precision,e.small)+" "+e.displayName+"/s":"":Ce(n.value)+" OOM"+(r.value<0?"^OOM":"^"+r.value)+"s/sec")}function Tt(e,t){const n=t!=null?t:e.value;return u.eq(e.precision,0)?ht(e.small?n:u.floor(n)):Ce(n,e.precision,e.small)}const Ul=["x1","y1","x2","y2"],zl=B({__name:"Link",props:{link:null,startNode:null,endNode:null,boundingRect:null},setup(e){const t=e,n=de(t),r=F(()=>{const a=n.startNode.value.rect,c=n.boundingRect.value,d=c?{x:a.x+a.width/2-c.x,y:a.y+a.height/2-c.y}:{x:0,y:0};return n.link.value.offsetStart&&(d.x+=n.link.value.offsetStart.x,d.y+=n.link.value.offsetStart.y),d}),i=F(()=>{const a=n.endNode.value.rect,c=n.boundingRect.value,d=c?{x:a.x+a.width/2-c.x,y:a.y+a.height/2-c.y}:{x:0,y:0};return n.link.value.offsetEnd&&(d.x+=n.link.value.offsetEnd.x,d.y+=n.link.value.offsetEnd.y),d}),s=F(()=>ka(t.link));return(a,c)=>(h(),w("line",Ae({"stroke-width":"15px",stroke:"white"},l(s),{x1:l(r).x,y1:l(r).y,x2:l(i).x,y2:l(i).y}),null,16,Ul))}});const Gl=B({__name:"Links",props:{links:null},setup(e){var d;const n=Te(e,"links"),r=x(null),i=$t(Yt,x({})),s=$t(Xt,x(void 0)),a=x((d=r.value)==null?void 0:d.getBoundingClientRect());he(s,()=>{var f;return a.value=(f=r.value)==null?void 0:f.getBoundingClientRect()}),yt(()=>{var f;return a.value=(f=r.value)==null?void 0:f.getBoundingClientRect()});const c=F(()=>{var b,v;const f=i.value;return(v=(b=n.value)==null?void 0:b.filter(N=>{var k,y;return((k=f[N.startNode.id])==null?void 0:k.rect)&&((y=f[N.startNode.id])==null?void 0:y.rect)}))!=null?v:[]});return(f,b)=>(h(),w(W,null,[l(c)?(h(),w("svg",er(Ae({key:0},f.$attrs)),[(h(!0),w(W,null,Oe(l(c),(v,N)=>(h(),R(zl,{key:N,link:v,boundingRect:a.value,startNode:l(i)[v.startNode.id],endNode:l(i)[v.endNode.id]},null,8,["link","boundingRect","startNode","endNode"]))),128))],16)):M("",!0),m("div",{ref_key:"resizeListener",ref:r,class:"resize-listener"},null,512)],64))}});var jl=G(Gl,[["__scopeId","data-v-063f6d6b"]]),Hl=B({props:{nodes:{type:z(Array),required:!0},leftSideNodes:z(Array),rightSideNodes:z(Array),branches:z(Array)},components:{Links:jl},setup(e){const{nodes:t,leftSideNodes:n,rightSideNodes:r}=de(e),i=Ne();We(()=>{const c=we(t);i.value=ue(te(()=>_(W,null,[c.map(d=>_("span",{class:"row tree-row",style:"margin: 50px auto;"},[d.map(Mt)]))])))});const s=Ne();We(()=>{const c=we(n);s.value=c?ue(te(()=>_("span",{class:"left-side-nodes small"},[c.map(Mt)]))):""});const a=Ne();return We(()=>{const c=we(r);a.value=c?ue(te(()=>_("span",{class:"side-nodes small"},[c.map(Mt)]))):""}),{unref:l,nodesComp:i,leftNodesComp:s,rightNodesComp:a}}});function Wl(e,t,n,r,i,s){const a=Ke("Links");return h(),w(W,null,[(h(),R(ae(e.nodesComp))),e.leftNodesComp?(h(),R(ae(e.leftNodesComp),{key:0})):M("",!0),e.rightNodesComp?(h(),R(ae(e.rightNodesComp),{key:1})):M("",!0),e.branches?(h(),R(a,{key:2,links:e.unref(e.branches)},null,8,["links"])):M("",!0)],64)}var Jl=G(Hl,[["render",Wl],["__scopeId","data-v-39ca96d0"]]);const Kl={key:0},Zl={key:0,class:"mark star"},Yl=["src"],Xl=B({__name:"MarkNode",props:{mark:{type:[Boolean,String]}},setup(e){return(t,n)=>e.mark?(h(),w("div",Kl,[e.mark===!0?(h(),w("div",Zl)):(h(),w("img",{key:1,class:"mark",src:e.mark},null,8,Yl))])):M("",!0)}});var Hn=G(Xl,[["__scopeId","data-v-2207999f"]]);const Ql=B({props:{display:z(Object,String,Function),visibility:{type:z(Number,Boolean),required:!0},style:z(String,Object,Array),classes:z(Object),onClick:Function,onHold:Function,color:z(String),glowColor:z(String),canClick:{type:z(Boolean),required:!0},mark:z(Boolean,String),id:{type:String,required:!0}},components:{MarkNode:Hn,Node:Qe},setup(e){const{onClick:t,onHold:n,display:r}=de(e),i=lt(r),{start:s,stop:a}=qn(t,n);return{start:s,stop:a,comp:i,unref:l,Visibility:st,isCoercableComponent:Rt,isVisible:Pn,isHidden:Tn}}});function eu(e,t,n,r,i,s){var d;const a=Ke("MarkNode"),c=Ke("Node");return e.isVisible(e.visibility)?(h(),w("div",{key:0,style:me({visibility:e.isHidden(e.visibility)?"hidden":void 0}),class:ee({treeNode:!0,can:e.unref(e.canClick),...e.unref(e.classes)}),onClick:t[0]||(t[0]=(...f)=>e.onClick&&e.onClick(...f)),onMousedown:t[1]||(t[1]=(...f)=>e.start&&e.start(...f)),onMouseleave:t[2]||(t[2]=(...f)=>e.stop&&e.stop(...f)),onMouseup:t[3]||(t[3]=(...f)=>e.stop&&e.stop(...f)),onTouchstartPassive:t[4]||(t[4]=(...f)=>e.start&&e.start(...f)),onTouchendPassive:t[5]||(t[5]=(...f)=>e.stop&&e.stop(...f)),onTouchcancelPassive:t[6]||(t[6]=(...f)=>e.stop&&e.stop(...f))},[m("div",{style:me([{backgroundColor:e.unref(e.color),boxShadow:`-4px -4px 4px rgba(0, 0, 0, 0.25) inset, 0 0 20px ${e.unref(e.glowColor)}`},(d=e.unref(e.style))!=null?d:[]])},[(h(),R(ae(e.unref(e.comp))))],4),_(a,{mark:e.unref(e.mark)},null,8,["mark"]),_(c,{id:e.id},null,8,["id"])],38)):M("",!0)}var tu=G(Ql,[["render",eu],["__scopeId","data-v-727230a6"]]);const nu=Symbol("TreeNode"),ru=Symbol("Tree");function iu(e,...t){const n=t.reduce((r,i)=>{var s;return Object.assign(r,(s=i.getPersistentData)==null?void 0:s.call(i))},{});return Ye(r=>{var a,c,d;const i=(a=e==null?void 0:e.call(r,r))!=null?a:{};i.id=Dt("treeNode-"),i.type=nu,i[De]=tu;for(const f of t)(c=f.preConstruct)==null||c.call(f,i);Object.assign(n),L(i,"visibility"),ce(i,"visibility",st.Visible),L(i,"canClick"),ce(i,"canClick",!0),L(i,"color"),L(i,"display"),L(i,"glowColor"),L(i,"classes"),L(i,"style"),L(i,"mark");for(const f of t)(d=f.postConstruct)==null||d.call(f,i);if(i.onClick){const f=i.onClick.bind(i);i.onClick=function(b){l(i.canClick)!==!1&&f(b)}}if(i.onHold){const f=i.onHold.bind(i);i.onHold=function(){l(i.canClick)!==!1&&f()}}const s=t.reduce((f,b)=>{var v;return Object.assign(f,(v=b.getGatheredProps)==null?void 0:v.call(b,i))},{});return i[Re]=function(){const{display:f,visibility:b,style:v,classes:N,onClick:k,onHold:y,color:S,glowColor:P,canClick:I,mark:$,id:q}=this;return{display:f,visibility:b,style:v,classes:N,onClick:k,onHold:y,color:S,glowColor:P,canClick:I,mark:$,id:q,...s}},i})}function su(e){return Ye(t=>{const n=e.call(t,t);return n.id=Dt("tree-"),n.type=ru,n[De]=Jl,n.isResetting=x(!1),n.resettingNode=Ne(null),n.reset=function(r){var s,a;const i=n;i.isResetting.value=!0,i.resettingNode.value=r,(s=i.resetPropagation)==null||s.call(i,i,r),(a=i.onReset)==null||a.call(i,r),i.isResetting.value=!1,i.resettingNode.value=null},n.links=F(()=>{var i;return(i=l(n.branches))!=null?i:[]}),L(n,"visibility"),ce(n,"visibility",st.Visible),L(n,"nodes"),L(n,"leftSideNodes"),L(n,"rightSideNodes"),L(n,"branches"),n[Re]=function(){const{nodes:r,leftSideNodes:i,rightSideNodes:s,branches:a}=this;return{nodes:r,leftSideNodes:i,rightSideNodes:s,branches:a}},n})}const au=function(e,t){var s;const n=l(e.branches);if(n==null)return;const r=[];let i=[t];for(;i.length!==0;){const a=[];for(const c of i)for(const d of n.filter(f=>f.startNode===c))[...r,...i].includes(d.endNode)||(a.push(d.endNode),(s=d.endNode.reset)==null||s.reset());r.push(...i),i=a}};function ou(e,t=null,n=0){const r=zt(n);return F(()=>t==null||u.gte(e.value,l(r))?Tt(e)+" "+e.displayName:`Reach ${u.eq(t.precision,0)?ht(l(r)):Ce(l(r),t.precision)} ${t.displayName} to unlock (You have ${u.eq(t.precision,0)?ht(t.value):Ce(t.value,t.precision)})`)}function lu(e,...t){return Ye(n=>{var i,s;const r=e.call(n,n);for(const a of t)(i=a.preConstruct)==null||i.call(a,r);r.formula=r.formula(o.variable(r.baseResource)),r.currentGain==null&&(r.currentGain=F(()=>{let a=u.floor(r.formula.evaluate(r.baseResource.value)).max(0);return l(r.buyMax)===!1&&(a=a.min(1)),a})),r.actualGain==null&&(r.actualGain=r.currentGain),r.currentAt==null&&(r.currentAt=F(()=>r.formula.invert(u.floor(l(r.currentGain))))),r.nextAt==null&&(r.nextAt=F(()=>r.formula.invert(u.floor(l(r.currentGain)).add(1)))),r.convert==null&&(r.convert=function(){var c;const a=l(r.currentGain);r.gainResource.value=u.add(r.gainResource.value,a),r.spend(a),(c=r.onConvert)==null||c.call(r,a)}),r.spend==null&&(r.spend=function(){r.baseResource.value=0}),L(r,"currentGain"),L(r,"actualGain"),L(r,"currentAt"),L(r,"nextAt"),L(r,"buyMax"),ce(r,"buyMax",!0);for(const a of t)(s=a.postConstruct)==null||s.call(a,r);return r})}function uu(e){return lu(e)}const Wn=e=>(Ie("data-v-5e2d38ce"),e=e(),Me(),e),cu=Wn(()=>m("div",{class:"key"},"Ctrl",-1)),du=Wn(()=>m("div",{class:"key"},"Shift",-1)),fu={class:"key"},gu=B({__name:"Hotkey",props:{hotkey:null},setup(e){const t=e;let n="",r=!1,i=!1,s=!1;return We(()=>{n=t.hotkey.key,r=n.startsWith("ctrl+"),r&&(n=n.slice(5)),i=n.startsWith("shift+"),i&&(n=n.slice(6)),s=n.length==1&&n.toLowerCase()!=n.toUpperCase(),s&&(n=n.toUpperCase())}),(a,c)=>(h(),w(W,null,[l(r)?(h(),w(W,{key:0},[cu,E("+")],64)):M("",!0),l(i)?(h(),w(W,{key:1},[du,E("+")],64)):M("",!0),m("div",fu,V(l(n)),1)],64))}});var mu=G(gu,[["__scopeId","data-v-5e2d38ce"]]);const bt=Ot({}),an=Symbol("Hotkey"),ct=[")","!","@","#","$","%","^","&","*","("];function hu(e){return Ye(t=>{const n=e.call(t,t);return n.type=an,L(n,"enabled"),ce(n,"enabled",!0),L(n,"description"),n})}oe.on("addLayer",e=>{Fn(e,an).forEach(t=>{bt[t.key]=t})});oe.on("removeLayer",e=>{Fn(e,an).forEach(t=>{bt[t.key]=void 0})});document.onkeydown=function(e){var r,i;if(((r=e.target)==null?void 0:r.tagName)==="INPUT"||on.value&&!T.keepGoing)return;const t=[e.key];e.shiftKey&&e.ctrlKey?(t.splice(0,1),t.push("ctrl+shift+"+e.key.toUpperCase()),t.push("shift+ctrl+"+e.key.toUpperCase()),ct.includes(e.key)?(t.push("ctrl+shift+"+ct.indexOf(e.key)),t.push("shift+ctrl+"+ct.indexOf(e.key))):(t.push("ctrl+shift+"+e.key.toLowerCase()),t.push("shift+ctrl+"+e.key.toLowerCase()))):ct.includes(e.key)?(t.push("shift+"+e.key),t.push("shift+"+ct.indexOf(e.key))):e.shiftKey?(t.push("shift+"+e.key.toUpperCase()),t.push("shift+"+e.key.toLowerCase())):e.ctrlKey&&(t.splice(0,1),t.push("ctrl+"+e.key));const n=bt[(i=t.find(s=>s in bt))!=null?i:""];n&&l(n.enabled)&&(e.preventDefault(),n.onPress())};_a(te(()=>{const e=Object.values(bt).filter(t=>l(t==null?void 0:t.enabled));return e.length===0?"":_("div",null,[_("br",null,null),_("h4",null,[E("Hotkeys")]),_("div",{style:"column-count: 2"},[e.map(t=>_("div",null,[_(mu,{hotkey:t},null),E(" "),t==null?void 0:t.description]))])])}));const pu=Symbol("Reset");function vu(e){return Ye(t=>{const n=e.call(t,t);return n.id=Dt("reset-"),n.type=pu,n.reset=function(){var i;const r=s=>{if(s!=null&&typeof s=="object"&&!(s instanceof u)&&!(s instanceof o)){if(jt in s&&s[jt]===!0)return;if(Ze in s){const a=s;a.value=a[Ze]}else!(s instanceof u)&&!ie(s)&&Object.values(s).forEach(a=>r(a))}};l(n.thingsToReset).forEach(r),oe.emit("reset",n),(i=n.onReset)==null||i.call(n)},L(n,"thingsToReset"),n})}const St={};oe.on("removeLayer",e=>{var t;(t=St[e.id])==null||t.call(St),St[e.id]=void 0});const bu=B({__name:"Sticky",setup(e){const t=x("0"),n=new ResizeObserver(i),r=Ne(null);function i(){let s=r.value;if(s==null)return;let a=0;for(;s.previousSibling;){const c=s.previousSibling;c.dataset&&"vSticky"in c.dataset&&(a+=c.offsetHeight),s=c}t.value=a+"px"}return Je(i),document.fonts.ready.then(i),yt(()=>{var a;const s=(a=r.value)==null?void 0:a.parentElement;s&&n.observe(s)}),(s,a)=>(h(),w("div",{class:"sticky",style:me({top:t.value}),ref_key:"element",ref:r,"data-v-sticky":""},[Le(s.$slots,"default",{},void 0,!0)],4))}});var yu=G(bu,[["__scopeId","data-v-cccac690"]]);const _u=B({__name:"Resource",props:{resource:null,color:null},setup(e){const t=e,n=F(()=>Tt(t.resource));return(r,i)=>(h(),w("h2",{style:me({color:e.color,"text-shadow":"0px 0px 10px "+e.color})},V(l(n)),5))}});const Nu={class:"main-display"},wu={key:0},Cu={key:1},ku=B({__name:"MainDisplay",props:{resource:null,color:null,classes:null,style:null,effectDisplay:null},setup(e){const n=de(e),r=x(null),i=lt(n.effectDisplay),s=F(()=>u.lt(n.resource.value,"1e1000"));return(a,c)=>(h(),R(yu,null,{default:O(()=>{var d,f,b,v;return[m("div",{class:ee(["main-display-container",(d=e.classes)!=null?d:{}]),style:me([{height:`${((b=(f=r.value)==null?void 0:f.$el.clientHeight)!=null?b:0)+50}px`},(v=e.style)!=null?v:{}])},[m("div",Nu,[l(s)?(h(),w("span",wu,"You have ")):M("",!0),_(_u,{resource:e.resource,color:e.color||"white"},null,8,["resource","color"]),E(" "+V(e.resource.displayName),1),l(i)?(h(),w("span",Cu,[E(", "),(h(),R(ae(l(i)),{ref_key:"effectRef",ref:r},null,512))])):M("",!0)])],6)]}),_:1}))}});function Su(e,t){return L(t,"display"),L(t,"classes"),L(t,"style"),L(t,"direction"),ce(t,"direction",J.Up),L(t,"xoffset"),L(t,"yoffset"),t.pinnable&&(t.pinned=_t(!1,!1)),Je(()=>{const n=e[De];e[De]=Q;const r=e[Re].bind(e);e[Re]=function(){const{display:s,classes:a,style:c,direction:d,xoffset:f,yoffset:b,pinned:v}=this;return{element:{[De]:n,[Re]:r},display:s,classes:a,style:l(c),direction:d,xoffset:f,yoffset:b,pinned:v}}.bind(t)}),t}var Iu=B({props:{display:{type:z(Object,String,Function),required:!0},visibility:{type:z(Number,Boolean),required:!0},style:z(Object,String,Array),classes:z(Object),onClick:Function,onHold:Function,canClick:{type:z(Boolean),required:!0},small:Boolean,mark:z(Boolean,String),id:{type:String,required:!0}},components:{Node:Qe,MarkNode:Hn},setup(e){const{display:t,onClick:n,onHold:r}=de(e),i=Ne("");We(()=>{var b;const c=we(t);if(c==null){i.value="";return}if(Rt(c)){i.value=ue(c);return}const d=ue((b=c.title)!=null?b:"","h3"),f=ue(c.description,"div");i.value=ue(te(()=>_("span",null,[c.title!=null?_("div",null,[_(d,null,null)]):null,_(f,null,null)])))});const{start:s,stop:a}=qn(n,r);return{start:s,stop:a,comp:i,Visibility:st,isVisible:Pn,isHidden:Tn,unref:l}}});function Mu(e,t,n,r,i,s){var d;const a=Ke("MarkNode"),c=Ke("Node");return e.isVisible(e.visibility)?(h(),w("button",{key:0,style:me([{visibility:e.isHidden(e.visibility)?"hidden":void 0},(d=e.unref(e.style))!=null?d:[]]),onClick:t[0]||(t[0]=(...f)=>e.onClick&&e.onClick(...f)),onMousedown:t[1]||(t[1]=(...f)=>e.start&&e.start(...f)),onMouseleave:t[2]||(t[2]=(...f)=>e.stop&&e.stop(...f)),onMouseup:t[3]||(t[3]=(...f)=>e.stop&&e.stop(...f)),onTouchstartPassive:t[4]||(t[4]=(...f)=>e.start&&e.start(...f)),onTouchendPassive:t[5]||(t[5]=(...f)=>e.stop&&e.stop(...f)),onTouchcancelPassive:t[6]||(t[6]=(...f)=>e.stop&&e.stop(...f)),class:ee({feature:!0,clickable:!0,can:e.unref(e.canClick),locked:!e.unref(e.canClick),small:e.small,...e.unref(e.classes)})},[e.unref(e.comp)?(h(),R(ae(e.unref(e.comp)),{key:0})):M("",!0),_(a,{mark:e.unref(e.mark)},null,8,["mark"]),_(c,{id:e.id},null,8,["id"])],38)):M("",!0)}var $u=G(Iu,[["render",Mu],["__scopeId","data-v-211328c0"]]);const xu=Symbol("Clickable");function Pu(e,...t){const n=t.reduce((r,i)=>{var s;return Object.assign(r,(s=i.getPersistentData)==null?void 0:s.call(i))},{});return Ye(r=>{var a,c,d;const i=(a=e==null?void 0:e.call(r,r))!=null?a:{};i.id=Dt("clickable-"),i.type=xu,i[De]=$u;for(const f of t)(c=f.preConstruct)==null||c.call(f,i);if(Object.assign(i,n),L(i,"visibility"),ce(i,"visibility",st.Visible),L(i,"canClick"),ce(i,"canClick",!0),L(i,"classes"),L(i,"style"),L(i,"mark"),L(i,"display"),i.onClick){const f=i.onClick.bind(i);i.onClick=function(b){l(i.canClick)!==!1&&f(b)}}if(i.onHold){const f=i.onHold.bind(i);i.onHold=function(){l(i.canClick)!==!1&&f()}}for(const f of t)(d=f.postConstruct)==null||d.call(f,i);const s=t.reduce((f,b)=>{var v;return Object.assign(f,(v=b.getGatheredProps)==null?void 0:v.call(b,i))},{});return i[Re]=function(){const{display:f,visibility:b,style:v,classes:N,onClick:k,onHold:y,canClick:S,small:P,mark:I,id:$}=this;return{display:f,visibility:b,style:l(v),classes:N,onClick:k,onHold:y,canClick:S,small:P,mark:I,id:$,...s}},i})}function Tu(e){return Pu(t=>{const n=e.call(t,t);L(n,"showNextAt"),ce(n,"showNextAt",!0),ce(n,"minimumGain",1),n.resetDescription==null?n.resetDescription=F(()=>u.lt(n.conversion.gainResource.value,1e3)?"Reset for ":""):L(n,"resetDescription"),n.display==null&&(n.display=te(()=>_("span",null,[l(n.resetDescription),_("b",null,[Tt(n.conversion.gainResource,u.max(l(n.conversion.actualGain),l(n.minimumGain)))])," ",n.conversion.gainResource.displayName,l(n.showNextAt)!=null?_("div",null,[_("br",null,null),l(n.conversion.buyMax)?"Next:":"Req:"," ",Tt(n.conversion.baseResource,!l(n.conversion.buyMax)&&u.gte(l(n.conversion.actualGain),1)?l(n.conversion.currentAt):l(n.conversion.nextAt))," ",n.conversion.baseResource.displayName]):null]))),n.canClick==null&&(n.canClick=F(()=>u.gte(l(n.conversion.actualGain),l(n.minimumGain))));const r=n.onClick;return n.onClick=function(i){l(n.canClick)!==!1&&(n.conversion.convert(),n.tree.reset(n.treeNode),n.resetTime&&(n.resetTime.value=n.resetTime[Ze]),r==null||r(i))},n})}function Fu(e){return iu(t=>{const n=e.call(t,t);return ce(n,"display",xn(n.layerID)),L(n,"append"),{...n,onClick:l(n.append)?function(){if(T.tabs.includes(n.layerID)){const r=T.tabs.lastIndexOf(n.layerID);T.tabs.splice(r,1)}else T.tabs.push(n.layerID)}:function(){T.tabs.splice(1,1,n.layerID)}}})}const bn="p",Ft=Qt(bn,function(){const e="Prestige",t="#4BDC13",n=jn(0,"prestige points"),r=uu(()=>({formula:f=>f.div(10).sqrt(),baseResource:Et.points,gainResource:n})),i=vu(()=>({thingsToReset:()=>[Ft]})),s=Fu(()=>({layerID:bn,color:t,reset:i})),a=Su(s,{display:ou(n),pinnable:!0}),c=Tu(()=>({conversion:r,tree:Et.tree,treeNode:s})),d=hu(()=>({description:"Reset for prestige points",key:"p",onPress:c.onClick}));return{name:e,color:t,points:n,tooltip:a,display:te(()=>_(W,null,[_(ku,{resource:n,color:t},null),Nt(c)])),treeNode:s,hotkey:d}}),Et=Qt("main",function(){const e=jn(10),t=Dl(e),n=Rl(e),r=F(()=>new u(1));oe.on("update",a=>{e.value=u.add(e.value,u.times(r.value,a))});const i=Bl(e,r),s=su(()=>({nodes:[[Ft.treeNode]],branches:[],onReset(){e.value=cn(this.resettingNode.value)===cn(Ft.treeNode)?0:10,t.value=e.value,n.value=e.value},resetPropagation:au}));return{name:"Tree",links:s.links,display:te(()=>_(W,null,[T.devSpeed===0?_("div",null,[E("Game Paused"),_(Qe,{id:"paused"},null)]):null,T.devSpeed!=null&&T.devSpeed!==0&&T.devSpeed!==1?_("div",null,[E("Dev Speed: "),Ce(T.devSpeed),E("x"),_(Qe,{id:"devspeed"},null)]):null,T.offlineTime!=null&&T.offlineTime!==0?_("div",null,[E("Offline Time: "),Lt(T.offlineTime),_(Qe,{id:"offline"},null)]):null,_("div",null,[u.lt(e.value,"1e1000")?_("span",null,[E("You have ")]):null,_("h2",null,[Ce(e.value)]),u.lt(e.value,"1e1e6")?_("span",null,[E(" points")]):null]),u.gt(r.value,0)?_("div",null,[E("("),i.value,E(")"),_(Qe,{id:"oomps"},null)]):null,_(Ll,null,null),Nt(s)])),points:e,best:t,total:n,oomps:i,tree:s}}),Eu=e=>[Et,Ft],on=F(()=>!1);function Ou(e,t){}var Vu=Object.freeze(Object.defineProperty({__proto__:null,main:Et,getInitialLayers:Eu,hasWon:on,fixOldSave:Ou},Symbol.toStringTag,{value:"Module"}));const wt=e=>(Ie("data-v-4a50ce42"),e=e(),Me(),e),Lu={class:"game-over-modal-header"},Du=["src","alt"],Ru={class:"game-over-modal-title"},qu=wt(()=>m("h2",null,"Congratulations!",-1)),Au={key:0},Bu=wt(()=>m("br",null,null,-1)),Uu=wt(()=>m("div",null," Please check the Discord to discuss the game or to check for new content updates! ",-1)),zu=wt(()=>m("br",null,null,-1)),Gu=["href"],ju=wt(()=>m("span",{class:"material-icons game-over-modal-discord"},"discord",-1)),Hu=B({__name:"GameOverScreen",setup(e){const{title:t,logo:n,discordName:r,discordLink:i,versionNumber:s,versionTitle:a}=U,c=F(()=>Lt(T.timePlayed)),d=F(()=>on.value&&!T.keepGoing),f=Te(T,"autosave");function b(){T.keepGoing=!0}function v(){Pe(nt())}return(N,k)=>(h(),R(Ue,{"model-value":l(d)},{header:O(()=>[m("div",Lu,[l(n)?(h(),w("img",{key:0,class:"game-over-modal-logo",src:l(n),alt:l(t)},null,8,Du)):M("",!0),m("div",Ru,[qu,m("h4",null,"You've beaten "+V(l(t))+" v"+V(l(s))+": "+V(l(a)),1)])])]),body:O(({shown:y})=>[y?(h(),w("div",Au,[m("div",null,"It took you "+V(l(c))+" to beat the game.",1),Bu,Uu,zu,m("div",null,[m("a",{href:l(i),class:"game-over-modal-discord-link"},[ju,E(" "+V(l(r)),1)],8,Gu)]),_($e,{title:"Autosave",modelValue:l(f),"onUpdate:modelValue":k[0]||(k[0]=S=>ie(f)?f.value=S:null)},null,8,["modelValue"])])):M("",!0)]),footer:O(()=>[m("div",{class:"game-over-footer"},[m("button",{onClick:b,class:"button"},"Keep Going"),m("button",{onClick:v,class:"button danger"},"Play Again")])]),_:1},8,["model-value"]))}});var Wu=G(Hu,[["__scopeId","data-v-4a50ce42"]]);const qt=e=>(Ie("data-v-6a99220e"),e=e(),Me(),e),Ju=qt(()=>m("div",{class:"nan-modal-header"},[m("h2",null,"NaN value detected!")],-1)),Ku={key:0},Zu=qt(()=>m("br",null,null,-1)),Yu=["href"],Xu=qt(()=>m("span",{class:"material-icons nan-modal-discord"},"discord",-1)),Qu=qt(()=>m("br",null,null,-1)),ec={class:"nan-footer"},tc=B({__name:"NaNScreen",setup(e){const{discordName:t,discordLink:n}=U,r=x(!0),i=x(!0),s=Te(Z,"hasNaN"),a=x(null);he(s,N=>{N?(r.value=T.autosave,i.value=T.devSpeed===0):(T.autosave=r.value,T.devSpeed=i.value?0:null)});const c=F(()=>{var N;return(N=Z.NaNPath)==null?void 0:N.join(".")}),d=F(()=>Z.NaNPersistent!=null?Z.NaNPersistent.value:null);function f(){Z.NaNPersistent!=null&&(Z.NaNPersistent.value=new u(0),Z.hasNaN=!1)}function b(){Z.NaNPersistent&&(Z.NaNPersistent.value=new u(1),Z.hasNaN=!1)}function v(){Z.NaNPersistent&&(Z.NaNPersistent.value=new u(NaN),Z.hasNaN=!1)}return(N,k)=>(h(),w(W,null,[_(Ue,Ae({modelValue:l(s),"onUpdate:modelValue":k[4]||(k[4]=y=>ie(s)?s.value=y:null)},N.$attrs),{header:O(()=>[Ju]),body:O(()=>[m("div",null,[E(' Attempted to assign "'+V(l(c))+'" to NaN',1),l(d)?(h(),w("span",Ku,V(" ")+"(previously "+V(l(Ce)(l(d)))+")",1)):M("",!0),E(". Auto-saving has been "+V(r.value?"enabled":"disabled")+". Check the console for more details, and consider sharing it with the developers on discord. ",1)]),Zu,m("div",null,[m("a",{href:l(n)||"https://discord.gg/yJ4fjnjU54",class:"nan-modal-discord-link"},[Xu,E(" "+V(l(t)||"Profectus & Friends"),1)],8,Yu)]),Qu,_($e,{title:"Autosave",modelValue:r.value,"onUpdate:modelValue":k[0]||(k[0]=y=>r.value=y)},null,8,["modelValue"]),l(U).enablePausing?(h(),R($e,{key:0,title:"Pause game",modelValue:i.value,"onUpdate:modelValue":k[1]||(k[1]=y=>i.value=y)},null,8,["modelValue"])):M("",!0)]),footer:O(()=>[m("div",ec,[m("button",{onClick:k[2]||(k[2]=y=>{var S;return(S=a.value)==null?void 0:S.open()}),class:"button"},"Open Saves Manager"),m("button",{onClick:f,class:"button"},"Set to 0"),m("button",{onClick:b,class:"button"},"Set to 1"),l(d)&&l(u).neq(l(d),0)&&l(u).neq(l(d),1)?(h(),w("button",{key:0,onClick:k[3]||(k[3]=y=>s.value=!1),class:"button"}," Set to previous ")):M("",!0),m("button",{onClick:v,class:"button danger"},"Ignore")])]),_:1},16,["modelValue"]),_(zn,{ref_key:"savesManager",ref:a},null,512)],64))}});var nc=G(tc,[["__scopeId","data-v-6a99220e"]]);const rc={key:0,class:"tpsDisplay"},ic=B({__name:"TPS",setup(e){const t=F(()=>u.div(Z.lastTenTicks.length,Z.lastTenTicks.reduce((n,r)=>n+r,0)));return(n,r)=>l(t).isNan()?M("",!0):(h(),w("div",rc,"TPS: "+V(l(ht)(l(t))),1))}});var sc=G(ic,[["__scopeId","data-v-89b89152"]]);var ac=B({__name:"App",setup(e){const t=U.useHeader,n=F(()=>tn[j.theme].variables),r=Te(j,"showTPS"),i=Te(Z,"errors"),s=F(()=>ue(te(()=>_(W,null,[Na.map(Nt)]))));return(a,c)=>l(i).length>0?(h(),w("div",{key:0,class:"error-container",style:me(l(n))},[_(wn,{errors:l(i)},null,8,["errors"])],4)):(h(),w(W,{key:1},[m("div",{id:"modal-root",style:me(l(n))},null,4),m("div",{class:ee(["app",{useHeader:l(t)}]),style:me(l(n))},[l(t)?(h(),R(Gn,{key:0})):M("",!0),_(Ol),l(l(r))?(h(),R(sc,{key:1})):M("",!0),_(Wu),_(nc),_(bo),(h(),R(ae(l(s))))],6)],64))}});var oc=G(ac,[["__scopeId","data-v-5d695520"]]);oe.on("setupVue",e=>e.use(ar));function lc(e={}){const{immediate:t=!1,onNeedRefresh:n,onOfflineReady:r,onRegistered:i,onRegisteredSW:s,onRegisterError:a}=e;let c,d,f,b;const v=async(k=!0)=>{await f,k&&(c==null||c.addEventListener("controlling",y=>{y.isUpdate&&window.location.reload()})),await(b==null?void 0:b())};async function N(){if("serviceWorker"in navigator){const{Workbox:k,messageSW:y}=await mt(()=>import("./workbox-window.4a8794bb.js"),[]);b=async()=>{d&&d.waiting&&await y(d.waiting,{type:"SKIP_WAITING"})},c=new k("./sw.js",{scope:"./",type:"classic"}),c.addEventListener("activated",S=>{S.isUpdate||r==null||r()});{const S=()=>{n==null||n()};c.addEventListener("waiting",S),c.addEventListener("externalwaiting",S)}c.register({immediate:t}).then(S=>{d=S,s?s("./sw.js",S):i==null||i(S)}).catch(S=>{a==null||a(S)})}}return f=N(),v}function uc(e={}){const{immediate:t=!0,onNeedRefresh:n,onOfflineReady:r,onRegistered:i,onRegisteredSW:s,onRegisterError:a}=e,c=x(!1),d=x(!1);return{updateServiceWorker:lc({immediate:t,onNeedRefresh(){c.value=!0,n==null||n()},onOfflineReady(){d.value=!0,r==null||r()},onRegistered:i,onRegisteredSW:s,onRegisterError:a}),offlineReady:d,needRefresh:c}}const ln=console.error;console.error=function(...e){ln(...e)};window.onerror=function(e,t,n,r,i){return Z.errors.push(i instanceof Error?i:new Error(JSON.stringify(i))),ln(i),!0};window.onunhandledrejection=function(e){Z.errors.push(e.reason instanceof Error?e.reason:new Error(JSON.stringify(e.reason))),ln(e.reason)};document.title=U.title;window.projInfo=U;U.id===""&&console.error("Project ID is empty!","Please select a unique ID for this project in /src/data/projInfo.json");requestAnimationFrame(async()=>{console.log(`%cMade in Profectus%c +Learn more at www.moddingtree.com`,"font-weight: bold; font-size: 24px; color: #A3BE8C; background: #2E3440; padding: 4px 8px; border-radius: 8px;","padding: 4px;"),await ma();const{globalBus:e}=await mt(()=>Promise.resolve().then(function(){return Ii}),void 0),{startGameLoop:t}=await mt(()=>import("./gameLoop.90de4a71.js"),["assets/gameLoop.90de4a71.js","assets/@fontsource.f66d05e7.css","assets/vue.8b6e16f3.js","assets/lz-string.bfbf8ec3.js","assets/@vue.6f8187b0.js","assets/nanoevents.1080beb7.js","assets/unofficial-galaxy-sdk.21372393.js","assets/vue-textarea-autosize.35804eaf.js","assets/vue-next-select.d60d437a.js","assets/vue-next-select.9e6f4164.css","assets/vuedraggable.56f5e1e2.js","assets/sortablejs.8abbd596.js","assets/vue-toastification.c011d2f2.js","assets/vue-toastification.4b5f8ac8.css"]),n=window.vue=tr(oc);n.config.errorHandler=function(r,i,s){console.error(r,s,i)},e.emit("setupVue",n),n.mount("#app"),Je(()=>{const r=or(),{updateServiceWorker:i}=uc({onNeedRefresh(){r.info("New content available, click here to update.",{timeout:!1,closeOnClick:!1,draggable:!1,icon:{iconClass:"material-icons",iconChildren:"refresh",iconTag:"i"},rtl:!1,onClick(){i()}})},onOfflineReady(){r.info("App ready to work offline")},onRegisterError:console.warn,onRegistered(s){s&&setInterval(()=>s.update(),60*60*1e3)}})}),t()});export{u as D,mt as _,Z as a,U as b,Vu as c,oe as g,nn as l,T as p,j as s}; diff --git a/assets/index.e930493e.css b/assets/index.785aa1c3.css similarity index 98% rename from assets/index.e930493e.css rename to assets/index.785aa1c3.css index e8fbdbf..43c58d4 100644 --- a/assets/index.e930493e.css +++ b/assets/index.785aa1c3.css @@ -1 +1 @@ -.feedback[data-v-01a1b95c]{position:relative}.feedback[data-v-01a1b95c]:after{position:absolute;left:calc(100% + 5px);top:50%;transform:translateY(-50%);content:"\2714";opacity:0;pointer-events:none;box-shadow:inset 0 0 0 35px #6f94b600;text-shadow:none}.feedback.left[data-v-01a1b95c]:after{left:unset;right:calc(100% + 5px)}.feedback.activated[data-v-01a1b95c]:after{animation:feedback-01a1b95c .5s ease-out forwards}@keyframes feedback-01a1b95c{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%)}}.error[data-v-ac351c02]{border:solid 10px var(--danger);position:absolute;top:0;left:0;right:0;min-height:calc(100% - 20px);text-align:left;color:var(--foreground)}.error-title[data-v-ac351c02]{background:var(--danger);color:var(--feature-foreground);display:block;margin:-10px 0 10px;position:sticky;top:0}.error-details[data-v-ac351c02]{white-space:nowrap;overflow:auto;padding:10px;background-color:var(--raised-background)}.instructions[data-v-ac351c02]{padding:10px}.discord-link[data-v-ac351c02]{display:inline}summary[data-v-ac351c02]{cursor:pointer;user-select:none}.resize-listener[data-v-2b1dc1bc]{position:absolute;top:0px;left:0;right:-4px;bottom:5px;z-index:-10;pointer-events:none}.modal-mask{position:fixed;z-index:9998;top:0;left:0;bottom:0;right:0;background-color:#00000080;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{-webkit-transform:scale(1.1);transform:scale(1.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)}.row-grid.mergeAdjacent>.feature:not(.dontMerge),.row-grid.mergeAdjacent>.tooltip-container>.feature:not(.dontMerge){margin:0;border-radius:0}.row-grid.mergeAdjacent>.feature:not(.dontMerge):last-child,.row-grid.mergeAdjacent>.tooltip-container:last-child>.feature:not(.dontMerge){border-radius:0}.row-grid.mergeAdjacent>.feature:not(.dontMerge):first-child,.row-grid.mergeAdjacent>.tooltip-container:first-child>.feature:not(.dontMerge){border-radius:0}.table-grid>.row-grid.mergeAdjacent:last-child>.feature:not(.dontMerge):first-child{border-radius:0 0 0 var(--border-radius)}.table-grid>.row-grid.mergeAdjacent:first-child>.feature:not(.dontMerge):last-child{border-radius:0 var(--border-radius) 0 0}.table-grid>.row-grid.mergeAdjacent:first-child>.feature:not(.dontMerge):first-child{border-radius:var(--border-radius) 0 0 0}.table-grid>.row-grid.mergeAdjacent:last-child>.feature:not(.dontMerge):last-child{border-radius:0 0 var(--border-radius) 0}.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)}.tooltip-container[data-v-6102fa3a]{position:relative;--xoffset: 0px;--yoffset: 0px;text-shadow:none!important}.tooltip[data-v-6102fa3a],.tooltip[data-v-6102fa3a]:after{pointer-events:none;position:absolute}.tooltip[data-v-6102fa3a]{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:translate(-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-6102fa3a] hr{margin:var(--feature-margin) 0}.shown[data-v-6102fa3a]{z-index:10}.fade-enter-from[data-v-6102fa3a],.fade-leave-to[data-v-6102fa3a]{opacity:0}.tooltip[data-v-6102fa3a]: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}.tooltip.left[data-v-6102fa3a],.side-nodes .tooltip[data-v-6102fa3a]:not(.right):not(.bottom):not(.top){bottom:calc(50% + var(--yoffset));left:unset;right:calc(100% + var(--xoffset));margin-bottom:unset;margin-right:5px;transform:translateY(50%)}.tooltip.left[data-v-6102fa3a]:after,.side-nodes .tooltip[data-v-6102fa3a]:not(.right):not(.bottom):not(.top):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-6102fa3a]{bottom:calc(50% + var(--yoffset));left:calc(100% + var(--xoffset));margin-bottom:unset;margin-left:5px;transform:translateY(50%)}.tooltip.right[data-v-6102fa3a]: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-6102fa3a]{top:calc(100% + var(--yoffset));bottom:unset;left:calc(50% + var(--xoffset));margin-bottom:unset;margin-top:5px;transform:translate(-50%)}.tooltip.bottom[data-v-6102fa3a]:after{top:0;margin-top:-10px;border-color:transparent transparent var(--tooltip-background) transparent}.pinned[data-v-6102fa3a]{position:absolute;right:-5px;top:-5px;transform:rotate(45deg)}.container[data-v-2f8ef34c]{display:flex;align-items:center;background:var(--raised-background);box-shadow:var(--raised-background) 0 2px 3px 5px}.container.confirming button[data-v-2f8ef34c]{font-size:1em}.container>*[data-v-2f8ef34c]{margin:0 4px}.danger,.button.danger{position:relative;border:solid 2px var(--danger);border-right-width:16px}.danger:after{position:absolute;content:"!";color:#fff;right:-13px}.field{display:flex;position:relative;min-height:2em;margin:10px 0;user-select:none;justify-content:space-between;align-items:center}.field>*{margin:0}form[data-v-90bd4994]{margin:0;width:100%}.field>*[data-v-90bd4994]{margin:0}input[data-v-90bd4994]{width:50%;outline:none;border:solid 1px var(--outline);background-color:unset;border-radius:var(--border-radius)}.fullWidth[data-v-90bd4994]{width:100%}.save[data-v-2fbabe5d]{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-2fbabe5d]{border-color:var(--bought)}.open[data-v-2fbabe5d]{display:inline;margin:0;padding-left:0}.open[data-v-2fbabe5d]:disabled{cursor:inherit;color:var(--foreground);opacity:1;pointer-events:none}.handle[data-v-2fbabe5d]{flex-grow:0;margin-right:8px;margin-left:0;cursor:pointer}.details[data-v-2fbabe5d]{margin:0 80px 0 0;flex-grow:1}.save.readonly .details[data-v-2fbabe5d]{margin-right:0}.error[data-v-2fbabe5d]{font-size:.8em;color:var(--danger)}.save-version[data-v-2fbabe5d]{margin-left:4px;font-size:.7em;opacity:.7}.actions[data-v-2fbabe5d]{position:absolute;top:0;bottom:0;right:4px;display:flex;padding:4px;z-index:1}.editname[data-v-2fbabe5d]{margin:0}.time[data-v-2fbabe5d]{font-size:small}.synced[data-v-2fbabe5d]{font-size:100%;margin-right:.5em;vertical-align:middle;cursor:default}.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}.save .field{margin:0}.details>.tooltip-container{display:inline}.cloud-saves-modal-header[data-v-a123f6ba]{padding:10px 0;margin-left:10px}.cloud-saves-footer[data-v-a123f6ba]{display:flex;justify-content:flex-end}.cloud-saves-footer button[data-v-a123f6ba]{margin:0 10px}.conflict-container[data-v-a123f6ba]{display:flex}.conflict-container>*[data-v-a123f6ba]{flex-basis:50%;display:flex;flex-flow:column;margin:0}.conflict-container+.conflict-container[data-v-a123f6ba]{margin-top:1em}.conflict-container h2[data-v-a123f6ba]{display:flex;flex-flow:column wrap;height:1.5em;margin:0}.note[data-v-a123f6ba]{font-size:x-small;opacity:.7;margin-right:1em}.save[data-v-a123f6ba]{border:solid 4px var(--outline);padding:4px;background:var(--raised-background);margin:var(--feature-margin);display:flex;align-items:center;min-height:30px;height:100%}.conflict-container .save{cursor:pointer}.conflict-container .selected .save{border-color:var(--bought)}.layer-container[data-v-a9f5b1da]{min-width:100%;min-height:100%;margin:0;flex-grow:1;display:flex;isolation:isolate}.layer-tab[data-v-a9f5b1da]: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-a9f5b1da]:not(.minimized){padding-top:50px}.layer-tab.minimized[data-v-a9f5b1da]{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;padding:55px 0 0;margin:0;cursor:pointer;font-size:40px;color:var(--foreground);border:none;background-color:transparent}.layer-tab.minimized>*[data-v-a9f5b1da]{margin:0;writing-mode:vertical-rl;text-align:left;padding-left:10px;width:50px}.inner-tab>.layer-container>.layer-tab[data-v-a9f5b1da]:not(.minimized){margin:-50px -10px;padding:50px 10px}.modal-body .layer-tab[data-v-a9f5b1da]{padding-bottom:0}.modal-body .layer-tab[data-v-a9f5b1da]:not(.hasSubtabs){padding-top:0}.minimize[data-v-a9f5b1da]{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-a9f5b1da]{transform:rotate(-90deg);top:10px;right:18px;pointer-events:none}.goBack[data-v-a9f5b1da]{position:sticky;top:10px;left:10px;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:30px;cursor:pointer;z-index:7}.goBack[data-v-a9f5b1da]:hover{transform:scale(1.1);text-shadow:0 0 7px var(--foreground)}.layer-tab.minimized>*>.desc{color:var(--accent1);font-size:30px}details[data-v-4b4bda40]{margin:10px 0;padding-left:18px}summary[data-v-4b4bda40]{cursor:pointer;margin-bottom:10px;margin-left:-18px}ul[data-v-4b4bda40]{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-4b4bda40]{margin:8px 0}li[data-v-4b4bda40]:before{padding:2px 8px;margin-right:8px;border-radius:var(--border-radius)}.feature[data-v-4b4bda40]:before{content:"Feature";background:var(--accent1)}.fix[data-v-4b4bda40]:before{content:"Fix";background:var(--accent2)}.balancing[data-v-4b4bda40]:before{content:"Balancing";background:var(--accent3)}.breaking[data-v-4b4bda40]:before{content:"Breaking";background:var(--danger)}.info-modal-header[data-v-10effbe8]{display:flex;margin:-20px -20px 0;background:var(--raised-background);align-items:center}.info-modal-header *[data-v-10effbe8]{margin:0}.info-modal-logo[data-v-10effbe8]{height:4em;width:4em}.info-modal-title[data-v-10effbe8]{display:flex;flex-direction:column;padding:10px 0;margin-left:10px}.info-modal-discord-link[data-v-10effbe8]{display:flex;align-items:center}.info-modal-discord[data-v-10effbe8]{margin:0 4px 0 0}.vue-select{width:50%;border-radius:var(--border-radius)}.field-buttons .vue-select{width:unset}.vue-select,.vue-dropdown{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.selected,.vue-dropdown-item.highlighted.selected{background-color:var(--bought)}.vue-input input{font-size:inherit}.vue-input input::placeholder{color:var(--link)}.field[data-v-11046116]{cursor:pointer}input[data-v-11046116]{appearance:none;pointer-events:none}span[data-v-11046116]{width:100%;padding-right:41px;position:relative}input+span[data-v-11046116]:before{content:"";position:absolute;top:calc(50% - 7px);right:0px;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-11046116]:after{content:"";position:absolute;top:calc(50% - 10px);right:16px;border-radius:50%;width:20px;height:20px;background-color:var(--locked);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;transition:background-color .2s,transform .2s}input:checked+span[data-v-11046116]:before{background-color:var(--link);opacity:.6}input:checked+span[data-v-11046116]:after{background-color:var(--link);transform:translate(16px)}input:active+span[data-v-11046116]:before{background-color:var(--link);opacity:.6}input:checked:active+span[data-v-11046116]:before{background-color:var(--outline);opacity:.38}input:disabled+span[data-v-11046116]{color:#000;opacity:.38;cursor:default}input:disabled+span[data-v-11046116]:before{background-color:var(--outline);opacity:.38}input:checked:disabled+span[data-v-11046116]:before{background-color:var(--link);opacity:.6}.option-tabs{border-bottom:2px solid var(--outline);margin-top:10px;margin-bottom:-10px}.option-tabs button{background-color:transparent;color:var(--foreground);margin-bottom:-2px;font-size:14px;cursor:pointer;padding:5px 20px;border:none;border-bottom:2px solid var(--foreground)}.option-tabs button:not(.selected){border-bottom-color:transparent}.option-title .tooltip-container{display:inline;margin-left:5px}.option-title desc{display:block;opacity:.6;font-size:small;width:300px;margin-left:0}.save-button{text-align:right}.field form[data-v-b84e3a02],.field .field-title[data-v-b84e3a02],.field .field-buttons[data-v-b84e3a02]{margin:0}.field-buttons[data-v-b84e3a02]{display:flex}.field-buttons .field[data-v-b84e3a02]{margin:0 0 0 8px}.modal-footer[data-v-b84e3a02]{margin-top:-20px}.footer[data-v-b84e3a02]{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-b1a52b1c]{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-b1a52b1c]{height:46px;width:46px;display:flex;cursor:pointer;flex-shrink:0}.nav>.banner[data-v-b1a52b1c]{height:100%;width:unset}.overlay-nav[data-v-b1a52b1c]{position:fixed;top:10px;left:10px;display:flex;flex-direction:column;z-index:2}.overlay-nav>*[data-v-b1a52b1c]{height:50px;width:50px;display:flex;cursor:pointer;margin:0;align-items:center;justify-content:center}.title[data-v-b1a52b1c]{font-size:36px;text-align:left;margin-left:12px;cursor:unset}.nav>.title[data-v-b1a52b1c]{width:unset;flex-shrink:1;overflow:hidden;white-space:nowrap}.nav .saves[data-v-b1a52b1c],.nav .info[data-v-b1a52b1c]{display:flex}.tooltip-container[data-v-b1a52b1c]{width:100%;height:100%;display:flex}.overlay-nav .discord[data-v-b1a52b1c]{position:relative}.discord img[data-v-b1a52b1c]{width:100%;height:100%}.discord-links[data-v-b1a52b1c]{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-b1a52b1c]{position:absolute;left:-280px;right:unset;transition:left .25s ease}.overlay-nav .discord:hover .discord-links[data-v-b1a52b1c]{left:-10px}.discord-links li[data-v-b1a52b1c]{margin-bottom:4px}.discord-links li[data-v-b1a52b1c]:first-child{font-size:1.2em}*:not(.overlay-nav) .discord:hover .discord-links[data-v-b1a52b1c]{right:0}.material-icons[data-v-b1a52b1c]{font-size:36px}.material-icons[data-v-b1a52b1c]:hover{text-shadow:5px 0 10px var(--link),-3px 0 12px var(--foreground)}.nav .version-container[data-v-b1a52b1c]{display:flex;height:25px;margin-bottom:0;margin-left:10px}.overlay-nav .version-container[data-v-b1a52b1c]{width:unset;height:25px}.version[data-v-b1a52b1c]{color:var(--points)}.version:hover span[data-v-b1a52b1c]{text-shadow:5px 0 10px var(--points),-3px 0 12px var(--points)}.nav>div>a[data-v-b1a52b1c],.overlay-nav>div>a[data-v-b1a52b1c]{color:var(--foreground);text-shadow:none}.needsSync[data-v-b1a52b1c]{color:var(--danger);animation:4s wiggle-b1a52b1c ease infinite}@keyframes wiggle-b1a52b1c{0%{transform:rotate(-3deg);box-shadow:0 2px 2px #0003}5%{transform:rotate(20deg)}10%{transform:rotate(-15deg)}15%{transform:rotate(5deg)}20%{transform:rotate(-1deg)}25%{transform:rotate(0);box-shadow:0 2px 2px #0003}}.tabs-container[data-v-dcd207b4]{width:100vw;flex-grow:1;overflow-x:auto;overflow-y:hidden;display:flex}.tabs-container[data-v-dcd207b4]:not(.useHeader){width:calc(100vw - 50px);margin-left:50px}.tab[data-v-dcd207b4]{position:relative;height:100%;flex-grow:1;transition-duration:0s;overflow-y:auto;overflow-x:hidden}.inner-tab[data-v-dcd207b4]{padding:50px 10px;min-height:calc(100% - 100px);display:flex;flex-direction:column;margin:0;flex-grow:1}.tab+.tab>.inner-tab[data-v-dcd207b4]{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}.node[data-v-a48cb382]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.resize-listener[data-v-063f6d6b]{position:absolute;top:0px;left:0;right:-4px;bottom:5px;z-index:-10;pointer-events:none}svg[data-v-063f6d6b]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-10;pointer-events:none}.left-side-nodes[data-v-39ca96d0]{position:absolute;left:15px;top:65px}.side-nodes[data-v-39ca96d0]{position:absolute;right:15px;top:65px}.left-side-nodes[data-v-39ca96d0] .treeNode,.side-nodes[data-v-39ca96d0] .treeNode{margin:20px auto}.small[data-v-39ca96d0] .treeNode{height:60px;width:60px}.small[data-v-39ca96d0] .treeNode>*:first-child{font-size:30px}.mark[data-v-2207999f]{position:absolute;left:-25px;top:-10px;width:30px;height:30px;z-index:1;pointer-events:none;margin-left:.9em;margin-right:.9em;margin-bottom:1.2em;border-right:.3em solid transparent;border-bottom:.7em solid transparent;border-left:.3em solid transparent;font-size:10px}.star[data-v-2207999f]{left:-10px;width:0;height:0;margin-left:.9em;margin-right:.9em;margin-bottom:1.2em;border-right:.3em solid transparent;border-bottom:.7em solid #ffcc00;border-left:.3em solid transparent;font-size:10px;pointer-events:none}.star[data-v-2207999f]:before,.star[data-v-2207999f]:after{content:"";width:0;height:0;position:absolute;top:.6em;left:-1em;border-right:1em solid transparent;border-bottom:.7em solid #ffcc00;border-left:1em solid transparent;transform:rotate(-35deg)}.star[data-v-2207999f]:after{transform:rotate(35deg)}.treeNode[data-v-727230a6]{height:100px;width:100px;border-radius:50%;padding:0;margin:0 10px}.treeNode>*[data-v-727230a6]:first-child{width:100%;height:100%;border:2px solid rgba(0,0,0,.125);border-radius:inherit;font-size:40px;color:#00000080;text-shadow:2px 2px 4px rgba(0,0,0,.25);box-shadow:-4px -4px 4px #00000040 inset,0 0 20px var(--background);display:flex}.treeNode>*:first-child>*[data-v-727230a6]{pointer-events:none}.key[data-v-5e2d38ce]{display:inline-block;height:1.4em;min-width:1em;margin-block:.1em;padding-inline:.2em;vertical-align:.1em;background:var(--foreground);color:var(--feature-foreground);border:1px solid #0007;border-radius:.3em;box-shadow:0 .1em #0007,0 .1em var(--foreground);font-size:smaller;text-align:center;user-select:none;transition:transform 0s,box-shadow 0s}.key[data-v-5e2d38ce]:active{transform:translateY(.1em);box-shadow:none}.sticky[data-v-cccac690]{position:sticky;background:var(--background);width:calc(100% - 2px);z-index:3}.main-display-container{vertical-align:middle;margin-bottom:20px;display:flex;transition-duration:0s}.collapsible-container[data-v-a72c16aa]{width:calc(100% - 10px)}.collapsible-toggle[data-v-a72c16aa]{max-width:unset;width:calc(100% + 0px);margin:0 0 0 -5px;background:var(--raised-background);padding:var(--feature-margin);color:var(--foreground);cursor:pointer;transition-duration:0s}.collapsible-toggle[data-v-a72c16aa]:last-child{margin-left:unset}[data-v-a72c16aa] .collapsible-toggle+.table{max-width:unset;width:calc(100% + 10px);margin-left:-5px}[data-v-a72c16aa] .col{margin-top:0;margin-bottom:0;width:100%}.mergeAdjacent .collapsible-toggle[data-v-a72c16aa]{border:0;border-top-left-radius:0!important;border-top-right-radius:0!important}[data-v-a72c16aa] .mergeAdjacent .feature:not(.dontMerge):first-child{border-top-left-radius:0!important;border-top-right-radius:0!important}.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}.clickable[data-v-211328c0]{min-height:120px;width:120px;font-size:10px}.clickable.small[data-v-211328c0]{min-height:unset}.clickable>*[data-v-211328c0]{pointer-events:none}.modifier-toggle{padding-right:10px;transform:translateY(-1px);display:inline-block}.modifier-toggle.collapsed{transform:translate(-5px,-5px) rotate(-90deg)}.game-over-modal-header[data-v-4a50ce42]{display:flex;margin:-20px -20px 0;background:var(--raised-background);align-items:center}.game-over-modal-header *[data-v-4a50ce42]{margin:0}.game-over-modal-logo[data-v-4a50ce42]{height:4em;width:4em}.game-over-modal-title[data-v-4a50ce42]{display:flex;flex-direction:column;padding:10px 0;margin-left:10px}.game-over-footer[data-v-4a50ce42]{display:flex;justify-content:flex-end}.game-over-footer button[data-v-4a50ce42]{margin:0 10px}.game-over-modal-discord-link[data-v-4a50ce42]{display:flex;align-items:center}.game-over-modal-discord[data-v-4a50ce42]{margin:0 4px 0 0}.nan-modal-header[data-v-6a99220e]{padding:10px 0;margin-left:10px}.nan-footer[data-v-6a99220e]{display:flex;justify-content:flex-end}.nan-footer button[data-v-6a99220e]{margin:0 10px}.nan-modal-discord-link[data-v-6a99220e]{display:flex;align-items:center}.nan-modal-discord[data-v-6a99220e]{margin:0 4px 0 0}.tpsDisplay[data-v-89b89152]{position:absolute;left:10px;bottom:10px;z-index:100}.low[data-v-89b89152]{color:var(--danger)}.fade-leave-to[data-v-89b89152]{opacity:0}:root{color-scheme:dark}*{transition-duration:.5s;font-family:Roboto Mono,monospace;font-weight:700;margin:auto;text-size-adjust:none}*:focus{outline:none}body{overflow:hidden;transition:none;text-align:center}html,body,#app{min-height:100%;height:100%}h1,h2,h3,b,input{display:inline}button{color:#000}a,.button,.link{display:block;color:var(--link);background:none;border:none;cursor:pointer;text-decoration:none}a:hover,.button:hover,.link: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}:disabled{pointer-events:none}.app[data-v-5d695520]{background-color:var(--background);color:var(--foreground);display:flex;flex-flow:column;min-height:100%;height:100%}#modal-root[data-v-5d695520]{position:absolute;min-height:100%;height:100%;color:var(--foreground)}.error-container[data-v-5d695520]{background:var(--background);overflow:auto;width:100%;height:100%}.error-container>.error[data-v-5d695520]{position:static} +.feedback[data-v-01a1b95c]{position:relative}.feedback[data-v-01a1b95c]:after{position:absolute;left:calc(100% + 5px);top:50%;transform:translateY(-50%);content:"\2714";opacity:0;pointer-events:none;box-shadow:inset 0 0 0 35px #6f94b600;text-shadow:none}.feedback.left[data-v-01a1b95c]:after{left:unset;right:calc(100% + 5px)}.feedback.activated[data-v-01a1b95c]:after{animation:feedback-01a1b95c .5s ease-out forwards}@keyframes feedback-01a1b95c{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%)}}.error[data-v-ac351c02]{border:solid 10px var(--danger);position:absolute;top:0;left:0;right:0;min-height:calc(100% - 20px);text-align:left;color:var(--foreground)}.error-title[data-v-ac351c02]{background:var(--danger);color:var(--feature-foreground);display:block;margin:-10px 0 10px;position:sticky;top:0}.error-details[data-v-ac351c02]{white-space:nowrap;overflow:auto;padding:10px;background-color:var(--raised-background)}.instructions[data-v-ac351c02]{padding:10px}.discord-link[data-v-ac351c02]{display:inline}summary[data-v-ac351c02]{cursor:pointer;user-select:none}.resize-listener[data-v-2b1dc1bc]{position:absolute;top:0px;left:0;right:-4px;bottom:5px;z-index:-10;pointer-events:none}.modal-mask{position:fixed;z-index:9998;top:0;left:0;bottom:0;right:0;background-color:#00000080;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{-webkit-transform:scale(1.1);transform:scale(1.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)}.row-grid.mergeAdjacent>.feature:not(.dontMerge),.row-grid.mergeAdjacent>.tooltip-container>.feature:not(.dontMerge){margin:0;border-radius:0}.row-grid.mergeAdjacent>.feature:not(.dontMerge):last-child,.row-grid.mergeAdjacent>.tooltip-container:last-child>.feature:not(.dontMerge){border-radius:0}.row-grid.mergeAdjacent>.feature:not(.dontMerge):first-child,.row-grid.mergeAdjacent>.tooltip-container:first-child>.feature:not(.dontMerge){border-radius:0}.table-grid>.row-grid.mergeAdjacent:last-child>.feature:not(.dontMerge):first-child{border-radius:0 0 0 var(--border-radius)}.table-grid>.row-grid.mergeAdjacent:first-child>.feature:not(.dontMerge):last-child{border-radius:0 var(--border-radius) 0 0}.table-grid>.row-grid.mergeAdjacent:first-child>.feature:not(.dontMerge):first-child{border-radius:var(--border-radius) 0 0 0}.table-grid>.row-grid.mergeAdjacent:last-child>.feature:not(.dontMerge):last-child{border-radius:0 0 var(--border-radius) 0}.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)}.tooltip-container[data-v-6102fa3a]{position:relative;--xoffset: 0px;--yoffset: 0px;text-shadow:none!important}.tooltip[data-v-6102fa3a],.tooltip[data-v-6102fa3a]:after{pointer-events:none;position:absolute}.tooltip[data-v-6102fa3a]{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:translate(-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-6102fa3a] hr{margin:var(--feature-margin) 0}.shown[data-v-6102fa3a]{z-index:10}.fade-enter-from[data-v-6102fa3a],.fade-leave-to[data-v-6102fa3a]{opacity:0}.tooltip[data-v-6102fa3a]: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}.tooltip.left[data-v-6102fa3a],.side-nodes .tooltip[data-v-6102fa3a]:not(.right):not(.bottom):not(.top){bottom:calc(50% + var(--yoffset));left:unset;right:calc(100% + var(--xoffset));margin-bottom:unset;margin-right:5px;transform:translateY(50%)}.tooltip.left[data-v-6102fa3a]:after,.side-nodes .tooltip[data-v-6102fa3a]:not(.right):not(.bottom):not(.top):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-6102fa3a]{bottom:calc(50% + var(--yoffset));left:calc(100% + var(--xoffset));margin-bottom:unset;margin-left:5px;transform:translateY(50%)}.tooltip.right[data-v-6102fa3a]: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-6102fa3a]{top:calc(100% + var(--yoffset));bottom:unset;left:calc(50% + var(--xoffset));margin-bottom:unset;margin-top:5px;transform:translate(-50%)}.tooltip.bottom[data-v-6102fa3a]:after{top:0;margin-top:-10px;border-color:transparent transparent var(--tooltip-background) transparent}.pinned[data-v-6102fa3a]{position:absolute;right:-5px;top:-5px;transform:rotate(45deg)}.container[data-v-2f8ef34c]{display:flex;align-items:center;background:var(--raised-background);box-shadow:var(--raised-background) 0 2px 3px 5px}.container.confirming button[data-v-2f8ef34c]{font-size:1em}.container>*[data-v-2f8ef34c]{margin:0 4px}.danger,.button.danger{position:relative;border:solid 2px var(--danger);border-right-width:16px}.danger:after{position:absolute;content:"!";color:#fff;right:-13px}.field{display:flex;position:relative;min-height:2em;margin:10px 0;user-select:none;justify-content:space-between;align-items:center}.field>*{margin:0}form[data-v-90bd4994]{margin:0;width:100%}.field>*[data-v-90bd4994]{margin:0}input[data-v-90bd4994]{width:50%;outline:none;border:solid 1px var(--outline);background-color:unset;border-radius:var(--border-radius)}.fullWidth[data-v-90bd4994]{width:100%}.save[data-v-2fbabe5d]{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-2fbabe5d]{border-color:var(--bought)}.open[data-v-2fbabe5d]{display:inline;margin:0;padding-left:0}.open[data-v-2fbabe5d]:disabled{cursor:inherit;color:var(--foreground);opacity:1;pointer-events:none}.handle[data-v-2fbabe5d]{flex-grow:0;margin-right:8px;margin-left:0;cursor:pointer}.details[data-v-2fbabe5d]{margin:0 80px 0 0;flex-grow:1}.save.readonly .details[data-v-2fbabe5d]{margin-right:0}.error[data-v-2fbabe5d]{font-size:.8em;color:var(--danger)}.save-version[data-v-2fbabe5d]{margin-left:4px;font-size:.7em;opacity:.7}.actions[data-v-2fbabe5d]{position:absolute;top:0;bottom:0;right:4px;display:flex;padding:4px;z-index:1}.editname[data-v-2fbabe5d]{margin:0}.time[data-v-2fbabe5d]{font-size:small}.synced[data-v-2fbabe5d]{font-size:100%;margin-right:.5em;vertical-align:middle;cursor:default}.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}.save .field{margin:0}.details>.tooltip-container{display:inline}.cloud-saves-modal-header[data-v-a123f6ba]{padding:10px 0;margin-left:10px}.cloud-saves-footer[data-v-a123f6ba]{display:flex;justify-content:flex-end}.cloud-saves-footer button[data-v-a123f6ba]{margin:0 10px}.conflict-container[data-v-a123f6ba]{display:flex}.conflict-container>*[data-v-a123f6ba]{flex-basis:50%;display:flex;flex-flow:column;margin:0}.conflict-container+.conflict-container[data-v-a123f6ba]{margin-top:1em}.conflict-container h2[data-v-a123f6ba]{display:flex;flex-flow:column wrap;height:1.5em;margin:0}.note[data-v-a123f6ba]{font-size:x-small;opacity:.7;margin-right:1em}.save[data-v-a123f6ba]{border:solid 4px var(--outline);padding:4px;background:var(--raised-background);margin:var(--feature-margin);display:flex;align-items:center;min-height:30px;height:100%}.conflict-container .save{cursor:pointer}.conflict-container .selected .save{border-color:var(--bought)}.layer-container[data-v-a9f5b1da]{min-width:100%;min-height:100%;margin:0;flex-grow:1;display:flex;isolation:isolate}.layer-tab[data-v-a9f5b1da]: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-a9f5b1da]:not(.minimized){padding-top:50px}.layer-tab.minimized[data-v-a9f5b1da]{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;padding:55px 0 0;margin:0;cursor:pointer;font-size:40px;color:var(--foreground);border:none;background-color:transparent}.layer-tab.minimized>*[data-v-a9f5b1da]{margin:0;writing-mode:vertical-rl;text-align:left;padding-left:10px;width:50px}.inner-tab>.layer-container>.layer-tab[data-v-a9f5b1da]:not(.minimized){margin:-50px -10px;padding:50px 10px}.modal-body .layer-tab[data-v-a9f5b1da]{padding-bottom:0}.modal-body .layer-tab[data-v-a9f5b1da]:not(.hasSubtabs){padding-top:0}.minimize[data-v-a9f5b1da]{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-a9f5b1da]{transform:rotate(-90deg);top:10px;right:18px;pointer-events:none}.goBack[data-v-a9f5b1da]{position:sticky;top:10px;left:10px;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:30px;cursor:pointer;z-index:7}.goBack[data-v-a9f5b1da]:hover{transform:scale(1.1);text-shadow:0 0 7px var(--foreground)}.layer-tab.minimized>*>.desc{color:var(--accent1);font-size:30px}details[data-v-4b4bda40]{margin:10px 0;padding-left:18px}summary[data-v-4b4bda40]{cursor:pointer;margin-bottom:10px;margin-left:-18px}ul[data-v-4b4bda40]{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-4b4bda40]{margin:8px 0}li[data-v-4b4bda40]:before{padding:2px 8px;margin-right:8px;border-radius:var(--border-radius)}.feature[data-v-4b4bda40]:before{content:"Feature";background:var(--accent1)}.fix[data-v-4b4bda40]:before{content:"Fix";background:var(--accent2)}.balancing[data-v-4b4bda40]:before{content:"Balancing";background:var(--accent3)}.breaking[data-v-4b4bda40]:before{content:"Breaking";background:var(--danger)}.info-modal-header[data-v-10effbe8]{display:flex;margin:-20px -20px 0;background:var(--raised-background);align-items:center}.info-modal-header *[data-v-10effbe8]{margin:0}.info-modal-logo[data-v-10effbe8]{height:4em;width:4em}.info-modal-title[data-v-10effbe8]{display:flex;flex-direction:column;padding:10px 0;margin-left:10px}.info-modal-discord-link[data-v-10effbe8]{display:flex;align-items:center}.info-modal-discord[data-v-10effbe8]{margin:0 4px 0 0}.vue-select{width:50%;border-radius:var(--border-radius)}.field-buttons .vue-select{width:unset}.vue-select,.vue-dropdown{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.selected,.vue-dropdown-item.highlighted.selected{background-color:var(--bought)}.vue-input input{font-size:inherit}.vue-input input::placeholder{color:var(--link)}.field[data-v-11046116]{cursor:pointer}input[data-v-11046116]{appearance:none;pointer-events:none}span[data-v-11046116]{width:100%;padding-right:41px;position:relative}input+span[data-v-11046116]:before{content:"";position:absolute;top:calc(50% - 7px);right:0px;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-11046116]:after{content:"";position:absolute;top:calc(50% - 10px);right:16px;border-radius:50%;width:20px;height:20px;background-color:var(--locked);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;transition:background-color .2s,transform .2s}input:checked+span[data-v-11046116]:before{background-color:var(--link);opacity:.6}input:checked+span[data-v-11046116]:after{background-color:var(--link);transform:translate(16px)}input:active+span[data-v-11046116]:before{background-color:var(--link);opacity:.6}input:checked:active+span[data-v-11046116]:before{background-color:var(--outline);opacity:.38}input:disabled+span[data-v-11046116]{color:#000;opacity:.38;cursor:default}input:disabled+span[data-v-11046116]:before{background-color:var(--outline);opacity:.38}input:checked:disabled+span[data-v-11046116]:before{background-color:var(--link);opacity:.6}.option-tabs{border-bottom:2px solid var(--outline);margin-top:10px;margin-bottom:-10px}.option-tabs button{background-color:transparent;color:var(--foreground);margin-bottom:-2px;font-size:14px;cursor:pointer;padding:5px 20px;border:none;border-bottom:2px solid var(--foreground)}.option-tabs button:not(.selected){border-bottom-color:transparent}.option-title .tooltip-container{display:inline;margin-left:5px}.option-title desc{display:block;opacity:.6;font-size:small;width:300px;margin-left:0}.save-button{text-align:right}.field form[data-v-0d78a988],.field .field-title[data-v-0d78a988],.field .field-buttons[data-v-0d78a988]{margin:0}.field-buttons[data-v-0d78a988]{display:flex}.field-buttons .field[data-v-0d78a988]{margin:0 0 0 8px}.modal-footer[data-v-0d78a988]{margin-top:-20px}.footer[data-v-0d78a988]{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-b1a52b1c]{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-b1a52b1c]{height:46px;width:46px;display:flex;cursor:pointer;flex-shrink:0}.nav>.banner[data-v-b1a52b1c]{height:100%;width:unset}.overlay-nav[data-v-b1a52b1c]{position:fixed;top:10px;left:10px;display:flex;flex-direction:column;z-index:2}.overlay-nav>*[data-v-b1a52b1c]{height:50px;width:50px;display:flex;cursor:pointer;margin:0;align-items:center;justify-content:center}.title[data-v-b1a52b1c]{font-size:36px;text-align:left;margin-left:12px;cursor:unset}.nav>.title[data-v-b1a52b1c]{width:unset;flex-shrink:1;overflow:hidden;white-space:nowrap}.nav .saves[data-v-b1a52b1c],.nav .info[data-v-b1a52b1c]{display:flex}.tooltip-container[data-v-b1a52b1c]{width:100%;height:100%;display:flex}.overlay-nav .discord[data-v-b1a52b1c]{position:relative}.discord img[data-v-b1a52b1c]{width:100%;height:100%}.discord-links[data-v-b1a52b1c]{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-b1a52b1c]{position:absolute;left:-280px;right:unset;transition:left .25s ease}.overlay-nav .discord:hover .discord-links[data-v-b1a52b1c]{left:-10px}.discord-links li[data-v-b1a52b1c]{margin-bottom:4px}.discord-links li[data-v-b1a52b1c]:first-child{font-size:1.2em}*:not(.overlay-nav) .discord:hover .discord-links[data-v-b1a52b1c]{right:0}.material-icons[data-v-b1a52b1c]{font-size:36px}.material-icons[data-v-b1a52b1c]:hover{text-shadow:5px 0 10px var(--link),-3px 0 12px var(--foreground)}.nav .version-container[data-v-b1a52b1c]{display:flex;height:25px;margin-bottom:0;margin-left:10px}.overlay-nav .version-container[data-v-b1a52b1c]{width:unset;height:25px}.version[data-v-b1a52b1c]{color:var(--points)}.version:hover span[data-v-b1a52b1c]{text-shadow:5px 0 10px var(--points),-3px 0 12px var(--points)}.nav>div>a[data-v-b1a52b1c],.overlay-nav>div>a[data-v-b1a52b1c]{color:var(--foreground);text-shadow:none}.needsSync[data-v-b1a52b1c]{color:var(--danger);animation:4s wiggle-b1a52b1c ease infinite}@keyframes wiggle-b1a52b1c{0%{transform:rotate(-3deg);box-shadow:0 2px 2px #0003}5%{transform:rotate(20deg)}10%{transform:rotate(-15deg)}15%{transform:rotate(5deg)}20%{transform:rotate(-1deg)}25%{transform:rotate(0);box-shadow:0 2px 2px #0003}}.tabs-container[data-v-dcd207b4]{width:100vw;flex-grow:1;overflow-x:auto;overflow-y:hidden;display:flex}.tabs-container[data-v-dcd207b4]:not(.useHeader){width:calc(100vw - 50px);margin-left:50px}.tab[data-v-dcd207b4]{position:relative;height:100%;flex-grow:1;transition-duration:0s;overflow-y:auto;overflow-x:hidden}.inner-tab[data-v-dcd207b4]{padding:50px 10px;min-height:calc(100% - 100px);display:flex;flex-direction:column;margin:0;flex-grow:1}.tab+.tab>.inner-tab[data-v-dcd207b4]{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}.node[data-v-a48cb382]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.resize-listener[data-v-063f6d6b]{position:absolute;top:0px;left:0;right:-4px;bottom:5px;z-index:-10;pointer-events:none}svg[data-v-063f6d6b]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-10;pointer-events:none}.left-side-nodes[data-v-39ca96d0]{position:absolute;left:15px;top:65px}.side-nodes[data-v-39ca96d0]{position:absolute;right:15px;top:65px}.left-side-nodes[data-v-39ca96d0] .treeNode,.side-nodes[data-v-39ca96d0] .treeNode{margin:20px auto}.small[data-v-39ca96d0] .treeNode{height:60px;width:60px}.small[data-v-39ca96d0] .treeNode>*:first-child{font-size:30px}.mark[data-v-2207999f]{position:absolute;left:-25px;top:-10px;width:30px;height:30px;z-index:1;pointer-events:none;margin-left:.9em;margin-right:.9em;margin-bottom:1.2em;border-right:.3em solid transparent;border-bottom:.7em solid transparent;border-left:.3em solid transparent;font-size:10px}.star[data-v-2207999f]{left:-10px;width:0;height:0;margin-left:.9em;margin-right:.9em;margin-bottom:1.2em;border-right:.3em solid transparent;border-bottom:.7em solid #ffcc00;border-left:.3em solid transparent;font-size:10px;pointer-events:none}.star[data-v-2207999f]:before,.star[data-v-2207999f]:after{content:"";width:0;height:0;position:absolute;top:.6em;left:-1em;border-right:1em solid transparent;border-bottom:.7em solid #ffcc00;border-left:1em solid transparent;transform:rotate(-35deg)}.star[data-v-2207999f]:after{transform:rotate(35deg)}.treeNode[data-v-727230a6]{height:100px;width:100px;border-radius:50%;padding:0;margin:0 10px}.treeNode>*[data-v-727230a6]:first-child{width:100%;height:100%;border:2px solid rgba(0,0,0,.125);border-radius:inherit;font-size:40px;color:#00000080;text-shadow:2px 2px 4px rgba(0,0,0,.25);box-shadow:-4px -4px 4px #00000040 inset,0 0 20px var(--background);display:flex}.treeNode>*:first-child>*[data-v-727230a6]{pointer-events:none}.key[data-v-5e2d38ce]{display:inline-block;height:1.4em;min-width:1em;margin-block:.1em;padding-inline:.2em;vertical-align:.1em;background:var(--foreground);color:var(--feature-foreground);border:1px solid #0007;border-radius:.3em;box-shadow:0 .1em #0007,0 .1em var(--foreground);font-size:smaller;text-align:center;user-select:none;transition:transform 0s,box-shadow 0s}.key[data-v-5e2d38ce]:active{transform:translateY(.1em);box-shadow:none}.sticky[data-v-cccac690]{position:sticky;background:var(--background);width:calc(100% - 2px);z-index:3}.main-display-container{vertical-align:middle;margin-bottom:20px;display:flex;transition-duration:0s}.collapsible-container[data-v-a72c16aa]{width:calc(100% - 10px)}.collapsible-toggle[data-v-a72c16aa]{max-width:unset;width:calc(100% + 0px);margin:0 0 0 -5px;background:var(--raised-background);padding:var(--feature-margin);color:var(--foreground);cursor:pointer;transition-duration:0s}.collapsible-toggle[data-v-a72c16aa]:last-child{margin-left:unset}[data-v-a72c16aa] .collapsible-toggle+.table{max-width:unset;width:calc(100% + 10px);margin-left:-5px}[data-v-a72c16aa] .col{margin-top:0;margin-bottom:0;width:100%}.mergeAdjacent .collapsible-toggle[data-v-a72c16aa]{border:0;border-top-left-radius:0!important;border-top-right-radius:0!important}[data-v-a72c16aa] .mergeAdjacent .feature:not(.dontMerge):first-child{border-top-left-radius:0!important;border-top-right-radius:0!important}.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}.clickable[data-v-211328c0]{min-height:120px;width:120px;font-size:10px}.clickable.small[data-v-211328c0]{min-height:unset}.clickable>*[data-v-211328c0]{pointer-events:none}.modifier-toggle{padding-right:10px;transform:translateY(-1px);display:inline-block}.modifier-toggle.collapsed{transform:translate(-5px,-5px) rotate(-90deg)}.game-over-modal-header[data-v-4a50ce42]{display:flex;margin:-20px -20px 0;background:var(--raised-background);align-items:center}.game-over-modal-header *[data-v-4a50ce42]{margin:0}.game-over-modal-logo[data-v-4a50ce42]{height:4em;width:4em}.game-over-modal-title[data-v-4a50ce42]{display:flex;flex-direction:column;padding:10px 0;margin-left:10px}.game-over-footer[data-v-4a50ce42]{display:flex;justify-content:flex-end}.game-over-footer button[data-v-4a50ce42]{margin:0 10px}.game-over-modal-discord-link[data-v-4a50ce42]{display:flex;align-items:center}.game-over-modal-discord[data-v-4a50ce42]{margin:0 4px 0 0}.nan-modal-header[data-v-6a99220e]{padding:10px 0;margin-left:10px}.nan-footer[data-v-6a99220e]{display:flex;justify-content:flex-end}.nan-footer button[data-v-6a99220e]{margin:0 10px}.nan-modal-discord-link[data-v-6a99220e]{display:flex;align-items:center}.nan-modal-discord[data-v-6a99220e]{margin:0 4px 0 0}.tpsDisplay[data-v-89b89152]{position:absolute;left:10px;bottom:10px;z-index:100}.low[data-v-89b89152]{color:var(--danger)}.fade-leave-to[data-v-89b89152]{opacity:0}:root{color-scheme:dark}*{transition-duration:.5s;font-family:Roboto Mono,monospace;font-weight:700;margin:auto;text-size-adjust:none}*:focus{outline:none}body{overflow:hidden;transition:none;text-align:center}html,body,#app{min-height:100%;height:100%}h1,h2,h3,b,input{display:inline}button{color:#000}a,.button,.link{display:block;color:var(--link);background:none;border:none;cursor:pointer;text-decoration:none}a:hover,.button:hover,.link: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}:disabled{pointer-events:none}.app[data-v-5d695520]{background-color:var(--background);color:var(--foreground);display:flex;flex-flow:column;min-height:100%;height:100%}#modal-root[data-v-5d695520]{position:absolute;min-height:100%;height:100%;color:var(--foreground)}.error-container[data-v-5d695520]{background:var(--background);overflow:auto;width:100%;height:100%}.error-container>.error[data-v-5d695520]{position:static} diff --git a/index.html b/index.html index 244bbc8..e0edf92 100644 --- a/index.html +++ b/index.html @@ -13,7 +13,7 @@ Profectus - + @@ -26,7 +26,7 @@ - + diff --git a/sw.js b/sw.js index 9ad67c0..1b8e59c 100644 --- a/sw.js +++ b/sw.js @@ -1 +1 @@ -if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()})).then((()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e})));self.define=(n,l)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(s[r])return;let o={};const a=e=>i(e,r),u={module:{uri:r},exports:o,require:a};s[r]=Promise.all(n.map((e=>u[e]||a(e)))).then((e=>(l(...e),o)))}}define(["./workbox-7369c0e1"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"apple-touch-icon.png",revision:"26e53bb981d06c8069ffd9d2a14fce0e"},{url:"assets/@fontsource.f66d05e7.css",revision:null},{url:"assets/@vue.6f8187b0.js",revision:null},{url:"assets/gameLoop.5743fd98.js",revision:null},{url:"assets/index.47b676b1.js",revision:null},{url:"assets/index.e930493e.css",revision:null},{url:"assets/lz-string.bfbf8ec3.js",revision:null},{url:"assets/nanoevents.1080beb7.js",revision:null},{url:"assets/sortablejs.8abbd596.js",revision:null},{url:"assets/unofficial-galaxy-sdk.21372393.js",revision:null},{url:"assets/vue-next-select.9e6f4164.css",revision:null},{url:"assets/vue-next-select.d60d437a.js",revision:null},{url:"assets/vue-textarea-autosize.35804eaf.js",revision:null},{url:"assets/vue-toastification.4b5f8ac8.css",revision:null},{url:"assets/vue-toastification.c011d2f2.js",revision:null},{url:"assets/vue.8b6e16f3.js",revision:null},{url:"assets/vuedraggable.56f5e1e2.js",revision:null},{url:"assets/workbox-window.4a8794bb.js",revision:null},{url:"favicon.ico",revision:"eead31eb5b19fa3bdc34af83d898c0b7"},{url:"favicon.svg",revision:"c8dd2748f1fedd25449164d7dda6aecb"},{url:"index.html",revision:"f413e0e3b2c1b2efd6eb840f8ae9b953"},{url:"pwa-192x192.png",revision:"a16785d9e890858c5b508e0ef6954aaf"},{url:"pwa-512x512.png",revision:"b84004b93fd62ef6599ff179372861a1"},{url:"favicon.ico",revision:"eead31eb5b19fa3bdc34af83d898c0b7"},{url:"robots.txt",revision:"5e0bd1c281a62a380d7a948085bfe2d1"},{url:"apple-touch-icon.png",revision:"26e53bb981d06c8069ffd9d2a14fce0e"},{url:"pwa-192x192.png",revision:"a16785d9e890858c5b508e0ef6954aaf"},{url:"pwa-512x512.png",revision:"b84004b93fd62ef6599ff179372861a1"},{url:"manifest.webmanifest",revision:"49b9cd04ee2139bfe785f8100ba3f74f"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))})); +if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()})).then((()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e})));self.define=(n,l)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(s[r])return;let a={};const o=e=>i(e,r),u={module:{uri:r},exports:a,require:o};s[r]=Promise.all(n.map((e=>u[e]||o(e)))).then((e=>(l(...e),a)))}}define(["./workbox-7369c0e1"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"apple-touch-icon.png",revision:"26e53bb981d06c8069ffd9d2a14fce0e"},{url:"assets/@fontsource.f66d05e7.css",revision:null},{url:"assets/@vue.6f8187b0.js",revision:null},{url:"assets/gameLoop.90de4a71.js",revision:null},{url:"assets/index.7104c9b1.js",revision:null},{url:"assets/index.785aa1c3.css",revision:null},{url:"assets/lz-string.bfbf8ec3.js",revision:null},{url:"assets/nanoevents.1080beb7.js",revision:null},{url:"assets/sortablejs.8abbd596.js",revision:null},{url:"assets/unofficial-galaxy-sdk.21372393.js",revision:null},{url:"assets/vue-next-select.9e6f4164.css",revision:null},{url:"assets/vue-next-select.d60d437a.js",revision:null},{url:"assets/vue-textarea-autosize.35804eaf.js",revision:null},{url:"assets/vue-toastification.4b5f8ac8.css",revision:null},{url:"assets/vue-toastification.c011d2f2.js",revision:null},{url:"assets/vue.8b6e16f3.js",revision:null},{url:"assets/vuedraggable.56f5e1e2.js",revision:null},{url:"assets/workbox-window.4a8794bb.js",revision:null},{url:"favicon.ico",revision:"eead31eb5b19fa3bdc34af83d898c0b7"},{url:"favicon.svg",revision:"c8dd2748f1fedd25449164d7dda6aecb"},{url:"index.html",revision:"02dca2619b8e6ff3a7bd7e7d9a80465a"},{url:"pwa-192x192.png",revision:"a16785d9e890858c5b508e0ef6954aaf"},{url:"pwa-512x512.png",revision:"b84004b93fd62ef6599ff179372861a1"},{url:"favicon.ico",revision:"eead31eb5b19fa3bdc34af83d898c0b7"},{url:"robots.txt",revision:"5e0bd1c281a62a380d7a948085bfe2d1"},{url:"apple-touch-icon.png",revision:"26e53bb981d06c8069ffd9d2a14fce0e"},{url:"pwa-192x192.png",revision:"a16785d9e890858c5b508e0ef6954aaf"},{url:"pwa-512x512.png",revision:"b84004b93fd62ef6599ff179372861a1"},{url:"manifest.webmanifest",revision:"49b9cd04ee2139bfe785f8100ba3f74f"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))}));