From bbdcb5801ea589e29eacee58f07aeeea50258ebf Mon Sep 17 00:00:00 2001 From: thepaperpilot Date: Tue, 16 May 2023 02:19:00 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20thepaper?= =?UTF-8?q?pilot/Planar-Pioneers@45e36e553b45553e462ec441c109a8c90e89db93?= =?UTF-8?q?=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/{gameLoop.43d5abfb.js => gameLoop.2f646917.js} | 2 +- assets/{index.ab068b59.js => index.8245842e.js} | 4 ++-- index.html | 2 +- sw.js | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) rename assets/{gameLoop.43d5abfb.js => gameLoop.2f646917.js} (92%) rename assets/{index.ab068b59.js => index.8245842e.js} (96%) diff --git a/assets/gameLoop.43d5abfb.js b/assets/gameLoop.2f646917.js similarity index 92% rename from assets/gameLoop.43d5abfb.js rename to assets/gameLoop.2f646917.js index a0001f0..bc85e6c 100644 --- a/assets/gameLoop.43d5abfb.js +++ b/assets/gameLoop.2f646917.js @@ -1 +1 @@ -import{_ as d,s as p,p as e,a as o,l as T,D as l,b as m,g as u}from"./index.ab068b59.js";import"./vue.c16a309b.js";import{b2 as c}from"./@vue.6b211d3c.js";/* empty css */import"./nanoevents.1080beb7.js";import"./lz-string.dccec454.js";import"./vue-next-select.ded54c4a.js";import"./vuedraggable.1879de79.js";import"./amator.1e5a40c8.js";import"./bezier-easing.a990b400.js";import"./sortablejs.a0f68e5e.js";import"./vue-textarea-autosize.35804eaf.js";import"./vue-panzoom.8ce6f9b1.js";import"./panzoom.30c56ba6.js";import"./wheel.f2ae740f.js";import"./ngraph.events.083734c6.js";import"./vue-toastification.9c2dad53.js";let n=null,f=null;function a(){const t=Date.now();let i=(t-e.time)/1e3;e.time=t;const r=i;if(o.lastTenTicks.push(r),o.lastTenTicks.length>10&&(o.lastTenTicks=o.lastTenTicks.slice(1)),!((f==null?void 0:f.value)&&!e.keepGoing)&&!o.hasNaN&&(i=Math.max(i,0),e.devSpeed!==0)){if(T.value=!1,e.offlineTime!=null){if(l.gt(e.offlineTime,m.offlineLimit*3600)&&(e.offlineTime=m.offlineLimit*3600),l.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||l.lt(e.offlineTime,0))&&(e.offlineTime=null)}i=Math.min(i,m.maxTickLength),e.devSpeed!=null&&(i*=e.devSpeed),Number.isFinite(i)||(i=1e308),!l.eq(i,0)&&(e.timePlayed+=i,Number.isFinite(e.timePlayed)||(e.timePlayed=1e308),u.emit("update",i,r),p.unthrottled?(requestAnimationFrame(a),n!=null&&(clearInterval(n),n=null)):n==null&&(n=setInterval(a,50)))}}async function A(){f=(await d(()=>import("./index.ab068b59.js").then(function(t){return t.c}),["assets/index.ab068b59.js","assets/index.85fc03ab.css","assets/@fontsource.f66d05e7.css","assets/vue.c16a309b.js","assets/amator.1e5a40c8.js","assets/bezier-easing.a990b400.js","assets/@vue.6b211d3c.js","assets/nanoevents.1080beb7.js","assets/lz-string.dccec454.js","assets/vue-next-select.ded54c4a.js","assets/vue-next-select.9e6f4164.css","assets/vuedraggable.1879de79.js","assets/sortablejs.a0f68e5e.js","assets/vue-textarea-autosize.35804eaf.js","assets/vue-panzoom.8ce6f9b1.js","assets/panzoom.30c56ba6.js","assets/wheel.f2ae740f.js","assets/ngraph.events.083734c6.js","assets/vue-toastification.9c2dad53.js","assets/vue-toastification.4b5f8ac8.css"])).hasWon,c(f,t=>{t&&u.emit("gameWon")}),p.unthrottled?requestAnimationFrame(a):n=setInterval(a,50)}export{A as startGameLoop}; +import{_ as d,s as p,p as e,a as o,l as T,D as l,b as m,g as u}from"./index.8245842e.js";import"./vue.c16a309b.js";import{b2 as c}from"./@vue.6b211d3c.js";/* empty css */import"./nanoevents.1080beb7.js";import"./lz-string.dccec454.js";import"./vue-next-select.ded54c4a.js";import"./vuedraggable.1879de79.js";import"./amator.1e5a40c8.js";import"./bezier-easing.a990b400.js";import"./sortablejs.a0f68e5e.js";import"./vue-textarea-autosize.35804eaf.js";import"./vue-panzoom.8ce6f9b1.js";import"./panzoom.30c56ba6.js";import"./wheel.f2ae740f.js";import"./ngraph.events.083734c6.js";import"./vue-toastification.9c2dad53.js";let n=null,f=null;function a(){const t=Date.now();let i=(t-e.time)/1e3;e.time=t;const r=i;if(o.lastTenTicks.push(r),o.lastTenTicks.length>10&&(o.lastTenTicks=o.lastTenTicks.slice(1)),!((f==null?void 0:f.value)&&!e.keepGoing)&&!o.hasNaN&&(i=Math.max(i,0),e.devSpeed!==0)){if(T.value=!1,e.offlineTime!=null){if(l.gt(e.offlineTime,m.offlineLimit*3600)&&(e.offlineTime=m.offlineLimit*3600),l.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||l.lt(e.offlineTime,0))&&(e.offlineTime=null)}i=Math.min(i,m.maxTickLength),e.devSpeed!=null&&(i*=e.devSpeed),Number.isFinite(i)||(i=1e308),!l.eq(i,0)&&(e.timePlayed+=i,Number.isFinite(e.timePlayed)||(e.timePlayed=1e308),u.emit("update",i,r),p.unthrottled?(requestAnimationFrame(a),n!=null&&(clearInterval(n),n=null)):n==null&&(n=setInterval(a,50)))}}async function A(){f=(await d(()=>import("./index.8245842e.js").then(function(t){return t.c}),["assets/index.8245842e.js","assets/index.85fc03ab.css","assets/@fontsource.f66d05e7.css","assets/vue.c16a309b.js","assets/amator.1e5a40c8.js","assets/bezier-easing.a990b400.js","assets/@vue.6b211d3c.js","assets/nanoevents.1080beb7.js","assets/lz-string.dccec454.js","assets/vue-next-select.ded54c4a.js","assets/vue-next-select.9e6f4164.css","assets/vuedraggable.1879de79.js","assets/sortablejs.a0f68e5e.js","assets/vue-textarea-autosize.35804eaf.js","assets/vue-panzoom.8ce6f9b1.js","assets/panzoom.30c56ba6.js","assets/wheel.f2ae740f.js","assets/ngraph.events.083734c6.js","assets/vue-toastification.9c2dad53.js","assets/vue-toastification.4b5f8ac8.css"])).hasWon,c(f,t=>{t&&u.emit("gameWon")}),p.unthrottled?requestAnimationFrame(a):n=setInterval(a,50)}export{A as startGameLoop}; diff --git a/assets/index.ab068b59.js b/assets/index.8245842e.js similarity index 96% rename from assets/index.ab068b59.js rename to assets/index.8245842e.js index a45b45c..9dd5a38 100644 --- a/assets/index.ab068b59.js +++ b/assets/index.8245842e.js @@ -14,5 +14,5 @@ ${B} ${A}`)}}return p[I]}ht(n,I=>{I&&Object.keys(p).forEach(A=>delete p[A])});const f=C(()=>te.saves.reduce((I,A)=>(I[A]=v(A),I),{}));function b(I){let A;switch(Z.id===I?A=xr(Z):A=JSON.stringify(f.value[I]),we.exportEncoding){default:console.warn(`Unknown save encoding: ${we.exportEncoding}. Defaulting to lz`);case"lz":A=Qt.compressToUTF16(A);break;case"base64":A=btoa(unescape(encodeURIComponent(A)));break;case"plain":break}const B=document.createElement("textarea");B.value=A,document.body.appendChild(B),B.select(),B.setSelectionRange(0,99999),document.execCommand("copy"),document.body.removeChild(B)}function h(I){Z.id===I&&mt();const A={...f.value[I],id:ui()};mt(A),te.saves.push(A.id)}function y(I){te.saves=te.saves.filter(A=>A!==I),localStorage.removeItem(I),p[I]=void 0}function N(I){f.value[Z.id].time=Z.time,mt(),p[Z.id]=void 0,pn(f.value[I]),p[I]=void 0}function E(I){if(u.value=I,Gt(()=>{u.value=null}),I[0]!=="{")if(I[0]==="e")I=decodeURIComponent(escape(atob(I)));else if(I[0]==="\u1BE1")I=Qt.decompressFromUTF16(I);else{console.warn("Unable to determine preset encoding",I);return}const A=JSON.parse(I);A.id=ui(),mt(A),te.saves.push(A.id),N(A.id)}function P(I,A){const B=f.value[I];B!=null&&(B.name=A,Z.id===I?(Z.name=A,mt()):(mt(B),p[I]=void 0))}return(I,A)=>(S(),ne(Ot,{modelValue:n.value,"onUpdate:modelValue":A[4]||(A[4]=B=>n.value=B),ref_key:"modal",ref:i},{header:Y(()=>[$u]),body:Y(({shown:B})=>[B?(S(),ne(s(ga),{key:0,list:s(te).saves,handle:".handle",itemKey:ce=>ce},{item:Y(({element:ce})=>[d(xu,{save:s(f)[ce],onOpen:le=>N(ce),onExport:le=>b(ce),onEditName:le=>P(ce,le),onDuplicate:le=>h(ce),onDelete:le=>y(ce)},null,8,["save","onOpen","onExport","onEditName","onDuplicate","onDelete"])]),_:1},8,["list","itemKey"])):z("",!0)]),footer:Y(()=>[k("div",Eu,[d(Br,{modelValue:a.value,"onUpdate:modelValue":A[0]||(A[0]=B=>a.value=B),title:"Import Save",placeholder:"Paste your save here!",class:Ne({importingFailed:r.value})},null,8,["modelValue","class"]),k("div",Du,[Tu,k("div",Pu,[k("button",{class:"button",onClick:A[1]||(A[1]=B=>N(s(In)().id))},"New Game"),Object.keys(s(c)).length>0?(S(),ne(Ki,{key:0,options:s(c),modelValue:u.value,"onUpdate:modelValue":A[2]||(A[2]=B=>E(B)),closeOnSelect:"",placeholder:"Select preset",class:"presets"},null,8,["options","modelValue"])):z("",!0)])]),k("div",Au,[Ru,k("button",{class:"button modal-default-button",onClick:A[3]||(A[3]=B=>n.value=!1)}," Close ")])])]),_:1},8,["modelValue"]))}});var Lr=ve(Fu,[["__scopeId","data-v-2a4275be"]]);const _t=e=>(vn("data-v-318a1c31"),e=e(),hn(),e),Ou=["src","alt"],qu={key:1,class:"title"},Vu=_t(()=>k("div",{style:{"flex-grow":"1",cursor:"unset"}},null,-1)),Bu={class:"discord"},Lu={class:"discord-links"},ju={key:0},zu=["href"],Gu=_t(()=>k("li",null,[k("a",{href:"https://discord.gg/yJ4fjnjU54",target:"_blank"},"The Paper Pilot Community")],-1)),Uu=_t(()=>k("li",null,[k("a",{href:"https://discord.gg/F3xveHV",target:"_blank"},"The Modding Tree")],-1)),Wu={href:"https://forums.moddingtree.com/",target:"_blank"},Hu=_t(()=>k("span",{class:"material-icons"},"forum",-1)),Yu=_t(()=>k("span",{class:"material-icons"},"info",-1)),Zu=_t(()=>k("span",{class:"material-icons"},"library_books",-1)),Xu=_t(()=>k("span",{class:"material-icons"},"settings",-1)),Ku=_t(()=>k("span",{class:"material-icons"},"library_books",-1)),Ju=_t(()=>k("span",{class:"material-icons"},"settings",-1)),Qu=_t(()=>k("span",{class:"material-icons"},"info",-1)),ec={href:"https://forums.moddingtree.com/",target:"_blank"},tc=_t(()=>k("span",{class:"material-icons"},"forum",-1)),nc={class:"discord"},ic={class:"discord-links"},rc={key:0},ac=["href"],sc=_t(()=>k("li",null,[k("a",{href:"https://discord.gg/yJ4fjnjU54",target:"_blank"},"The Paper Pilot Community")],-1)),oc=_t(()=>k("li",null,[k("a",{href:"https://discord.gg/F3xveHV",target:"_blank"},"The Modding Tree")],-1)),lc=X({__name:"Nav",setup(e){const t=G(null),n=G(null),i=G(null),r=G(null),{useHeader:a,banner:u,title:l,discordName:c,discordLink:p,versionNumber:v}=we;function f(){window.open(p,"mywindow")}return(b,h)=>(S(),R(oe,null,[s(a)?(S(),R("div",Ut({key:0,class:"nav"},b.$attrs),[s(u)?(S(),R("img",{key:0,src:s(u),class:"banner",alt:s(l)},null,8,Ou)):(S(),R("div",qu,pe(s(l)),1)),k("div",{onClick:h[0]||(h[0]=y=>{var N;return(N=r.value)==null?void 0:N.open()}),class:"version-container"},[d(Fe,{display:"Changelog",direction:s(W).Down,class:"version"},{default:Y(()=>[k("span",null,"v"+pe(s(v)),1)]),_:1},8,["direction"])]),Vu,k("div",Bu,[k("span",{onClick:f,class:"material-icons"},"discord"),k("ul",Lu,[s(p)?(S(),R("li",ju,[k("a",{href:s(p),target:"_blank"},pe(s(c)),9,zu)])):z("",!0),Gu,Uu])]),k("div",null,[k("a",Wu,[d(Fe,{display:"Forums",direction:s(W).Down,yoffset:"5px"},{default:Y(()=>[Hu]),_:1},8,["direction"])])]),k("div",{onClick:h[1]||(h[1]=y=>{var N;return(N=t.value)==null?void 0:N.open()})},[d(Fe,{display:"Info",direction:s(W).Down,class:"info"},{default:Y(()=>[Yu]),_:1},8,["direction"])]),k("div",{onClick:h[2]||(h[2]=y=>{var N;return(N=n.value)==null?void 0:N.open()})},[d(Fe,{display:"Saves",direction:s(W).Down,xoffset:"-20px"},{default:Y(()=>[Zu]),_:1},8,["direction"])]),k("div",{onClick:h[3]||(h[3]=y=>{var N;return(N=i.value)==null?void 0:N.open()})},[d(Fe,{display:"Settings",direction:s(W).Down,xoffset:"-66px"},{default:Y(()=>[Xu]),_:1},8,["direction"])])],16)):(S(),R("div",Ut({key:1,class:"overlay-nav"},b.$attrs),[k("div",{onClick:h[4]||(h[4]=y=>{var N;return(N=r.value)==null?void 0:N.open()}),class:"version-container"},[d(Fe,{display:"Changelog",direction:s(W).Right,xoffset:"25%",class:"version"},{default:Y(()=>[k("span",null,"v"+pe(s(v)),1)]),_:1},8,["direction"])]),k("div",{onClick:h[5]||(h[5]=y=>{var N;return(N=n.value)==null?void 0:N.open()})},[d(Fe,{display:"Saves",direction:s(W).Right},{default:Y(()=>[Ku]),_:1},8,["direction"])]),k("div",{onClick:h[6]||(h[6]=y=>{var N;return(N=i.value)==null?void 0:N.open()})},[d(Fe,{display:"Settings",direction:s(W).Right},{default:Y(()=>[Ju]),_:1},8,["direction"])]),k("div",{onClick:h[7]||(h[7]=y=>{var N;return(N=t.value)==null?void 0:N.open()})},[d(Fe,{display:"Info",direction:s(W).Right},{default:Y(()=>[Qu]),_:1},8,["direction"])]),k("div",null,[k("a",ec,[d(Fe,{display:"Forums",direction:s(W).Right,xoffset:"7px"},{default:Y(()=>[tc]),_:1},8,["direction"])])]),k("div",nc,[k("span",{onClick:f,class:"material-icons"},"discord"),k("ul",ic,[s(p)?(S(),R("li",rc,[k("a",{href:s(p),target:"_blank"},pe(s(c)),9,ac)])):z("",!0),sc,oc])])],16)),d(Ll,{ref_key:"info",ref:t,changelog:r.value},null,8,["changelog"]),d(Lr,{ref_key:"savesManager",ref:n},null,512),d(Ql,{ref_key:"options",ref:i},null,512),d(Nl,{ref_key:"changelog",ref:r},null,512)],64))}});var jr=ve(lc,[["__scopeId","data-v-318a1c31"]]);const uc={class:"inner-tab"},cc=X({__name:"Game",setup(e){const t=nn(Z,"tabs"),n=C(()=>Object.keys(ge)),i=we.useHeader;function r(a){const{display:u,minimized:l,name:c,color:p,minimizable:v,nodes:f,minimizedDisplay:b}=a;return{display:u,minimized:l,name:c,color:p,minimizable:v,nodes:f,minimizedDisplay:b}}return(a,u)=>(S(),R("div",{class:Ne(["tabs-container",{useHeader:s(i)}])},[(S(!0),R(oe,null,$n(s(t),(l,c)=>{var p,v;return S(),R("div",{key:c,class:Ne(["tab",s((p=s(ge)[l])==null?void 0:p.classes)]),style:Be(s((v=s(ge)[l])==null?void 0:v.style))},[c===0&&!s(i)?(S(),ne(jr,{key:0})):z("",!0),k("div",uc,[s(n).includes(l)?(S(),ne(bl,Ut({key:0},r(s(ge)[l]),{index:c,onSetMinimized:f=>s(ge)[l].minimized.value=f}),null,16,["index","onSetMinimized"])):(S(),ne(Ke(l),{key:1,index:c},null,8,["index"]))])],6)}),128))],2))}});var dc=ve(cc,[["__scopeId","data-v-dcd207b4"]]);const pc=X({__name:"Sticky",setup(e){const t=G("0"),n=new ResizeObserver(r),i=bt(null);function r(){let a=i.value;if(a==null)return;let u=0;for(;a.previousSibling;){const l=a.previousSibling;l.dataset&&"vSticky"in l.dataset&&(u+=l.offsetHeight),a=l}t.value=u+"px"}return Gt(r),document.fonts.ready.then(r),vi(()=>{var u;const a=(u=i.value)==null?void 0:u.parentElement;a&&n.observe(a)}),(a,u)=>(S(),R("div",{class:"sticky",style:Be({top:t.value}),ref_key:"element",ref:i,"data-v-sticky":""},[Rt(a.$slots,"default",{},void 0,!0)],4))}});var gi=ve(pc,[["__scopeId","data-v-cccac690"]]);const fc=["x1","y1","x2","y2"],gc=X({__name:"BoardLink",props:{link:null,dragging:null,dragged:null},setup(e){const n=De(e),i=C(()=>{var u,l,c,p,v,f,b;const a={...n.link.value.startNode.position};return n.link.value.offsetStart&&(a.x+=s(n.link.value.offsetStart).x,a.y+=s(n.link.value.offsetStart).y),((u=n.dragging)==null?void 0:u.value)===n.link.value.startNode&&(a.x+=(p=(c=(l=n.dragged)==null?void 0:l.value)==null?void 0:c.x)!=null?p:0,a.y+=(b=(f=(v=n.dragged)==null?void 0:v.value)==null?void 0:f.y)!=null?b:0),a}),r=C(()=>{var u,l,c,p,v,f,b;const a={...n.link.value.endNode.position};return n.link.value.offsetEnd&&(a.x+=s(n.link.value.offsetEnd).x,a.y+=s(n.link.value.offsetEnd).y),((u=n.dragging)==null?void 0:u.value)===n.link.value.endNode&&(a.x+=(p=(c=(l=n.dragged)==null?void 0:l.value)==null?void 0:c.x)!=null?p:0,a.y+=(b=(f=(v=n.dragged)==null?void 0:v.value)==null?void 0:f.y)!=null?b:0),a});return(a,u)=>(S(),R("line",Ut({class:"link"},e.link,{class:{pulsing:e.link.pulsing},x1:s(i).x,y1:s(i).y,x2:s(r).x,y2:s(r).y}),null,16,fc))}});var mc=ve(gc,[["__scopeId","data-v-58e8d695"]]);const vc={key:0},hc=["transform","onMousedown","onTouchstart","onMouseup","onTouchend"],bc=["fill","stroke-width","stroke"],yc=["fill"],wc=X({__name:"BoardNodeAction",props:{node:null,nodeType:null,actions:null,isSelected:{type:Boolean},selectedAction:null},emits:["clickAction"],setup(e,{emit:t}){const i=De(e),r=C(()=>me(i.nodeType.value.size,s(i.node))),a=C(()=>{var v;return(v=me(i.nodeType.value.outlineColor,s(i.node)))!=null?v:Ct[te.theme].variables["--outline"]}),u=C(()=>{var v;return(v=me(i.nodeType.value.titleColor,s(i.node)))!=null?v:Ct[te.theme].variables["--foreground"]}),l=C(()=>me(i.nodeType.value.actionDistance,s(i.node)));function c(v,f){t("clickAction",f.id),v.preventDefault(),v.stopPropagation()}function p(v,f){var b;((b=s(i.selectedAction))==null?void 0:b.id)===f.id&&(v.preventDefault(),v.stopPropagation())}return(v,f)=>(S(),ne(Gn,{name:"actions",appear:""},{default:Y(()=>[e.isSelected&&e.actions?(S(),R("g",vc,[(S(!0),R(oe,null,$n(e.actions,(b,h)=>{var y,N;return S(),R("g",{key:b.id,class:Ne(["action",{selected:((y=e.selectedAction)==null?void 0:y.id)===b.id}]),transform:`translate( ${(-s(r)-30)*Math.sin(((e.actions.length-1)/2-h)*s(l))}, ${(s(r)+30)*Math.cos(((e.actions.length-1)/2-h)*s(l))} - )`,onMousedown:E=>c(E,b),onTouchstart:E=>c(E,b),onMouseup:E=>p(E,b),onTouchend:xn(E=>p(E,b),["stop"])},[k("circle",{fill:s(me)(b.fillColor,e.node),r:"20","stroke-width":((N=e.selectedAction)==null?void 0:N.id)===b.id?4:0,stroke:s(a)},null,8,bc),k("text",{fill:s(u),class:"material-icons"},pe(s(me)(b.icon,e.node)),9,yc)],42,hc)}),128))])):z("",!0)]),_:1}))}});var _c=ve(wc,[["__scopeId","data-v-9efb2a56"]]);const Nc=["transform"],Cc={key:0},kc=["r","fill","stroke"],Mc=["r","fill","stroke"],Sc=["r","fill"],Ic=["r","stroke-dasharray","stroke-dashoffset","stroke"],xc={key:1,transform:"rotate(45, 0, 0)"},$c=["width","height","transform","fill","stroke"],Ec=["width","height","transform","fill","stroke"],Dc=["width","height","transform","fill"],Tc=["width","height","transform","stroke-dasharray","stroke-dashoffset","stroke"],Pc=["fill","y"],Ac=["fill"],Rc=["fill","y"],Fc={key:0},Oc=["fill","y"],qc=["fill","y"],Vc=X({__name:"BoardNode",props:{node:null,nodeType:null,dragging:null,dragged:null,hasDragged:{type:Boolean},receivingNode:{type:Boolean},isSelected:{type:Boolean},selectedAction:null},emits:["mouseDown","endDragging","clickAction"],setup(e,{emit:t}){const n=e,i=Math.sqrt(2),r=De(n),a=C(()=>me(r.nodeType.value.draggable,s(r.node)));ht(a,U=>{const be=s(r.node);s(r.dragging)===be&&!U&&t("endDragging",be)});const u=C(()=>{var be;const U=s(r.node);return(be=me(r.nodeType.value.actions,U))==null?void 0:be.filter(je=>He(me(je.visibility,U)))}),l=C(()=>{var be;const U=s(r.node);if(me(r.nodeType.value.draggable,U)&&((be=s(r.dragging))==null?void 0:be.id)===U.id&&s(r.dragged)!=null){const{x:je,y:pt}=s(r.dragged);return{x:U.position.x+Math.round(je/25)*25,y:U.position.y+Math.round(pt/25)*25}}return U.position}),c=C(()=>me(r.nodeType.value.shape,s(r.node))),p=C(()=>me(r.nodeType.value.title,s(r.node))),v=C(()=>me(r.nodeType.value.subtitle,s(r.node))),f=C(()=>me(r.nodeType.value.otherSubtitle,s(r.node))),b=C(()=>{var U;return(U=r.isSelected.value?s(r.selectedAction)&&me(s(r.selectedAction).tooltip,s(r.node)):null)!=null?U:me(r.nodeType.value.label,s(r.node))}),h=C(()=>{var U,be;return me((be=(U=s(r.selectedAction))==null?void 0:U.confirmationLabel)!=null?be:{text:"Tap again to confirm"},s(r.node))}),y=C(()=>me(r.nodeType.value.size,s(r.node))),N=C(()=>{var U;return(U=me(r.nodeType.value.progress,s(r.node)))!=null?U:0}),E=C(()=>Ct[te.theme].variables["--background"]),P=C(()=>{var U;return(U=me(r.nodeType.value.outlineColor,s(r.node)))!=null?U:Ct[te.theme].variables["--outline"]}),I=C(()=>{var U;return(U=me(r.nodeType.value.fillColor,s(r.node)))!=null?U:Ct[te.theme].variables["--raised-background"]}),A=C(()=>me(r.nodeType.value.progressColor,s(r.node))),B=C(()=>{var U;return(U=me(r.nodeType.value.titleColor,s(r.node)))!=null?U:Ct[te.theme].variables["--foreground"]}),ce=C(()=>me(r.nodeType.value.progressDisplay,s(r.node))),le=C(()=>r.dragging.value!=null&&s(r.hasDragged)&&me(r.nodeType.value.canAccept,s(r.node),r.dragging.value)),ie=C(()=>me(r.nodeType.value.style,s(r.node))),Q=C(()=>me(r.nodeType.value.classes,s(r.node)));function Ie(U){t("mouseDown",U,r.node.value,a.value)}function he(U){var be,je,pt;(be=r.hasDragged)!=null&&be.value||(t("endDragging",r.node.value),(pt=(je=r.nodeType.value).onClick)==null||pt.call(je,r.node.value),U.stopPropagation())}return(U,be)=>{var je,pt,Lt;return S(),R("g",{class:Ne(["boardnode",{[e.node.type]:!0,isSelected:e.isSelected,isDraggable:s(a),...s(Q)}]),style:Be([{opacity:((je=e.dragging)==null?void 0:je.id)===e.node.id&&e.hasDragged?.5:1},(pt=s(ie))!=null?pt:[]]),transform:`translate(${s(l).x},${s(l).y})${e.isSelected?" scale(1.2)":""}`},[d(_c,{actions:(Lt=s(u))!=null?Lt:[],"is-selected":e.isSelected,node:e.node,"node-type":e.nodeType,"selected-action":e.selectedAction,onClickAction:be[0]||(be[0]=ft=>t("clickAction",ft))},null,8,["actions","is-selected","node","node-type","selected-action"]),k("g",{class:"node-container",onMousedown:Ie,onTouchstartPassive:Ie,onMouseup:he,onTouchendPassive:he},[s(c)===s(Le).Circle?(S(),R("g",Cc,[s(le)?(S(),R("circle",{key:0,class:"receiver",r:s(y)+8,fill:s(E),stroke:e.receivingNode?"#0F0":"#0F03","stroke-width":2},null,8,kc)):z("",!0),k("circle",{class:"body",r:s(y),fill:s(I),stroke:s(P),"stroke-width":4},null,8,Mc),s(ce)===s(rn).Fill?(S(),R("circle",{key:1,class:"progress progressFill",r:Math.max(s(y)*s(N)-2,0),fill:s(A)},null,8,Sc)):(S(),R("circle",{key:2,r:s(y)+4.5,class:"progress progressRing",fill:"transparent","stroke-dasharray":(s(y)+4.5)*2*Math.PI,"stroke-width":5,"stroke-dashoffset":(s(y)+4.5)*2*Math.PI-s(N)*(s(y)+4.5)*2*Math.PI,stroke:s(A)},null,8,Ic))])):s(c)===s(Le).Diamond?(S(),R("g",xc,[s(le)?(S(),R("rect",{key:0,class:"receiver",width:s(y)*s(i)+16,height:s(y)*s(i)+16,transform:`translate(${-(s(y)*s(i)+16)/2}, ${-(s(y)*s(i)+16)/2})`,fill:s(E),stroke:e.receivingNode?"#0F0":"#0F03","stroke-width":2},null,8,$c)):z("",!0),k("rect",{class:"body",width:s(y)*s(i),height:s(y)*s(i),transform:`translate(${-s(y)*s(i)/2}, ${-s(y)*s(i)/2})`,fill:s(I),stroke:s(P),"stroke-width":4},null,8,Ec),s(ce)===s(rn).Fill?(S(),R("rect",{key:1,class:"progress progressFill",width:Math.max(s(y)*s(i)*s(N)-2,0),height:Math.max(s(y)*s(i)*s(N)-2,0),transform:`translate(${-Math.max(s(y)*s(i)*s(N)-2,0)/2}, ${-Math.max(s(y)*s(i)*s(N)-2,0)/2})`,fill:s(A)},null,8,Dc)):(S(),R("rect",{key:2,class:"progress progressDiamond",width:s(y)*s(i)+9,height:s(y)*s(i)+9,transform:`translate(${-(s(y)*s(i)+9)/2}, ${-(s(y)*s(i)+9)/2})`,fill:"transparent","stroke-dasharray":(s(y)*s(i)+9)*4,"stroke-width":5,"stroke-dashoffset":(s(y)*s(i)+9)*4-s(N)*(s(y)*s(i)+9)*4,stroke:s(A)},null,8,Tc))])):z("",!0),k("text",{fill:s(B),class:"node-title",y:s(f)&&!s(v)?-10:0},pe(s(p)),9,Pc),s(v)?(S(),R("text",{key:2,fill:s(B),class:"node-subtitle",y:"-25"},pe(s(v)),9,Ac)):z("",!0),s(f)?(S(),R("text",{key:3,fill:s(B),class:"node-subtitle",y:s(v)?25:15},pe(s(f)),9,Rc)):z("",!0)],32),d(Gn,{name:"fade",appear:""},{default:Y(()=>{var ft;return[s(b)?(S(),R("g",Fc,[k("text",{fill:(ft=s(b).color)!=null?ft:s(B),class:Ne(["node-title",{pulsing:s(b).pulsing}]),y:-s(y)-20},pe(s(b).text),11,Oc)])):z("",!0)]}),_:1}),d(Gn,{name:"fade",appear:""},{default:Y(()=>{var ft;return[e.isSelected&&e.selectedAction?(S(),R("text",{key:0,fill:(ft=s(h).color)!=null?ft:s(B),class:Ne(["node-title",{pulsing:s(h).pulsing}]),y:s(y)+75},pe(s(h).text),11,qc)):z("",!0)]}),_:1})],14,Nc)}}});var Bc=ve(Vc,[["__scopeId","data-v-19cf948c"]]);const Lc={class:"stage",width:"100%",height:"100%"},jc={class:"g1"},zc=X({__name:"Board",props:{nodes:null,types:null,state:null,visibility:null,width:null,height:null,style:null,classes:null,links:null,selectedAction:null,selectedNode:null,draggingNode:null,receivingNode:null,mousePosition:null,setReceivingNode:{type:Function},setDraggingNode:{type:Function}},setup(e){const n=De(e),i=G({x:0,y:0}),r=G({x:0,y:0}),a=G(!1),u=G(null),l=C(()=>{const h=n.nodes.value.slice();if(n.selectedNode.value){const y=h.splice(h.indexOf(n.selectedNode.value),1)[0];h.push(y)}if(n.draggingNode.value){const y=h.splice(h.indexOf(n.draggingNode.value),1)[0];h.push(y)}return h});$t(()=>{const h=n.draggingNode.value;if(h==null)return null;const y={x:h.position.x+r.value.x,y:h.position.y+r.value.y};let N=Number.MAX_VALUE;n.setReceivingNode.value(n.nodes.value.reduce((E,P)=>{if(P.id===h.id)return E;const I=n.types.value[P.type];if(!me(I.canAccept,P,h))return E;const B=Math.pow(y.x-P.position.x,2)+Math.pow(y.y-P.position.y,2);let ce=me(I.size,P);return B>N||B>ce*ce?E:(N=B,P)},null))});function c(h){h.setTransformOrigin(null),h.moveTo(u.value.$el.clientWidth/2,u.value.$el.clientHeight/2)}function p(h,y=null,N=!1){if(n.draggingNode.value==null){h.preventDefault(),h.stopPropagation();let E,P;if("touches"in h)if(h.touches.length===1)E=h.touches[0].clientX,P=h.touches[0].clientY;else return;else E=h.clientX,P=h.clientY;i.value={x:E,y:P},r.value={x:0,y:0},a.value=!1,N&&n.setDraggingNode.value(y)}y!=null&&(n.state.value.selectedNode=null,n.state.value.selectedAction=null)}function v(h){const{x:y,y:N,scale:E}=u.value.panZoomInstance.getTransform();let P,I;if("touches"in h)if(h.touches.length===1)P=h.touches[0].clientX,I=h.touches[0].clientY;else{f(n.draggingNode.value),n.mousePosition.value=null;return}else P=h.clientX,I=h.clientY;n.mousePosition.value={x:(P-y)/E,y:(I-N)/E},r.value={x:r.value.x+(P-i.value.x)/E,y:r.value.y+(I-i.value.y)/E},i.value={x:P,y:I},(Math.abs(r.value.x)>10||Math.abs(r.value.y)>10)&&(a.value=!0),n.draggingNode.value!=null&&(h.preventDefault(),h.stopPropagation())}function f(h,y=!1){var N,E;if(n.draggingNode.value!=null&&n.draggingNode.value===h){n.receivingNode.value==null&&(n.draggingNode.value.position.x+=Math.round(r.value.x/25)*25,n.draggingNode.value.position.y+=Math.round(r.value.y/25)*25);const P=n.nodes.value;P.push(P.splice(P.indexOf(n.draggingNode.value),1)[0]),n.receivingNode.value&&((E=(N=n.types.value[n.receivingNode.value.type]).onDrop)==null||E.call(N,n.receivingNode.value,n.draggingNode.value)),n.setDraggingNode.value(null)}else!a.value&&!y&&(n.state.value.selectedNode=null,n.state.value.selectedAction=null)}function b(h,y){var E,P;const N=n.types.value[h.type];me((P=(E=N.actions)==null?void 0:E.find(I=>I.id===y))==null?void 0:P.confirmationLabel,h)==null&&(n.state.value.selectedAction=y),n.state.value.selectedAction===y?s(n.selectedAction).onClick(s(n.selectedNode)):n.state.value={...n.state.value,selectedAction:y}}return(h,y)=>{const N=kt("panZoom");return s(He)(e.visibility)?(S(),ne(N,{key:0,style:Be([{width:e.width,height:e.height},e.style]),class:Ne(e.classes),selector:".g1",options:{initialZoom:1,minZoom:.1,maxZoom:10,zoomDoubleClickSpeed:1},ref_key:"stage",ref:u,onInit:c,onMousemove:v,onTouchmove:v,onMousedown:y[0]||(y[0]=E=>p(E)),onTouchstart:y[1]||(y[1]=E=>p(E)),onMouseup:y[2]||(y[2]=()=>f(s(e.draggingNode))),onTouchendPassive:y[3]||(y[3]=()=>f(s(e.draggingNode))),onMouseleave:y[4]||(y[4]=()=>f(s(e.draggingNode),!0))},{default:Y(()=>[(S(),R("svg",Lc,[k("g",jc,[d(rr,{name:"link",appear:""},{default:Y(()=>[(S(!0),R(oe,null,$n(s(e.links)||[],E=>(S(),R("g",{key:`${E.startNode.id}-${E.endNode.id}`},[d(mc,{link:E,dragging:s(e.draggingNode),dragged:E.startNode===s(e.draggingNode)||E.endNode===s(e.draggingNode)?r.value:void 0},null,8,["link","dragging","dragged"])]))),128))]),_:1}),d(rr,{name:"grow",duration:500,appear:""},{default:Y(()=>[(S(!0),R(oe,null,$n(s(l),E=>(S(),R("g",{key:E.id,style:{"transition-duration":"0s"}},[d(Bc,{node:E,nodeType:e.types[E.type],dragging:s(e.draggingNode),dragged:s(e.draggingNode)===E?r.value:void 0,hasDragged:s(e.draggingNode)==null?!1:a.value,receivingNode:s(e.receivingNode)===E,isSelected:s(e.selectedNode)===E,selectedAction:s(e.selectedNode)===E?s(e.selectedAction):null,onMouseDown:p,onEndDragging:f,onClickAction:P=>b(E,P)},null,8,["node","nodeType","dragging","dragged","hasDragged","receivingNode","isSelected","selectedAction","onClickAction"])]))),128))]),_:1})])]))]),_:1},8,["style","class","options"])):z("",!0)}}});Je.on("setupVue",e=>va.install(e));const zr=Symbol("Board");var rn=(e=>(e.Outline="Outline",e.Fill="Fill",e))(rn||{}),Le=(e=>(e.Circle="Circle",e.Diamond="Triangle",e))(Le||{});function Gc(e){const t=ot({nodes:[],selectedNode:null,selectedAction:null},!1);return Qe(n=>{const i=e.call(n,n);i.id=Ht("board-"),i.type=zr,i[dt]=zc,i.state?(Or(t),T(i,"state")):(t[Wt]={nodes:i.startNodes().map((l,c)=>(l.id=c,l)),selectedNode:null,selectedAction:null},i.state=t),i.nodes=C(()=>s(u.state).nodes),i.selectedNode=C({get(){return u.nodes.value.find(l=>l.id===s(u.state).selectedNode)||null},set(l){var c,p;Oe(u.state)?u.state.value={...u.state.value,selectedNode:(c=l==null?void 0:l.id)!=null?c:null}:u.state.selectedNode=(p=l==null?void 0:l.id)!=null?p:null}}),i.selectedAction=C({get(){const l=u.selectedNode.value;if(l==null)return null;const c=u.types[l.type];return c.actions==null?null:c.actions.find(p=>p.id===s(u.state).selectedAction)||null},set(l){var c,p;Oe(u.state)?u.state.value={...u.state.value,selectedAction:(c=l==null?void 0:l.id)!=null?c:null}:u.state.selectedAction=(p=l==null?void 0:l.id)!=null?p:null}}),i.mousePosition=G(null),i.links?T(i,"links"):i.links=C(()=>u.selectedAction.value==null?null:u.selectedAction.value.links&&u.selectedNode.value?me(u.selectedAction.value.links,u.selectedNode.value):null),i.draggingNode=G(null),i.receivingNode=G(null),T(i,"visibility"),se(i,"visibility",Me.Visible),T(i,"width"),se(i,"width","100%"),T(i,"height"),se(i,"height","100%"),T(i,"classes"),T(i,"style");for(const l in i.types){const c=i.types[l];if(T(c,"title"),T(c,"subtitle"),T(c,"otherSubtitle"),T(c,"label"),T(c,"size"),se(c,"size",50),T(c,"style"),T(c,"classes"),T(c,"draggable"),se(c,"draggable",!1),T(c,"shape"),se(c,"shape","Circle"),T(c,"canAccept"),se(c,"canAccept",!1),T(c,"progress"),T(c,"progressDisplay"),se(c,"progressDisplay","Fill"),T(c,"progressColor"),se(c,"progressColor","none"),T(c,"fillColor"),T(c,"outlineColor"),T(c,"titleColor"),T(c,"actionDistance"),se(c,"actionDistance",Math.PI/6),c.nodes=C(()=>s(u.state).nodes.filter(p=>p.type===l)),se(c,"onClick",function(p){s(u.state).selectedNode=p.id}),c.actions)for(const p of c.actions)T(p,"visibility"),se(p,"visibility",Me.Visible),T(p,"icon"),T(p,"fillColor"),T(p,"tooltip"),T(p,"confirmationLabel"),se(p,"confirmationLabel",{text:"Tap again to confirm"}),T(p,"links")}function r(l){i.draggingNode.value=l}function a(l){i.receivingNode.value=l}i.placeInAvailableSpace=function(l,c=100,p=W.Right){const v=u.nodes.value.slice().filter(f=>f===l||(p===W.Down||p===W.Up)&&Math.abs(f.position.x-l.position.x)>c||(p===W.Left||p===W.Right)&&Math.abs(f.position.y-l.position.y)>c?!1:!(p===W.Right&&f.position.xl.position.x+c||p===W.Up&&f.position.y>l.position.y+c||p===W.Down&&f.position.yf.position.x-b.position.x:p===W.Left?(f,b)=>b.position.x-f.position.x:p===W.Up?(f,b)=>b.position.y-f.position.y:(f,b)=>f.position.y-b.position.y);for(let f=0;f0&&h>c)break}},i[lt]=function(){const{nodes:l,types:c,state:p,visibility:v,width:f,height:b,style:h,classes:y,links:N,selectedAction:E,selectedNode:P,mousePosition:I,draggingNode:A,receivingNode:B}=this;return{nodes:l,types:c,state:p,visibility:v,width:f,height:b,style:s(h),classes:y,links:N,selectedAction:E,selectedNode:P,mousePosition:I,draggingNode:A,receivingNode:B,setDraggingNode:r,setReceivingNode:a}};const u=i;return u})}function me(e,t,...n){return Wn(e)?e(t,...n):s(e)}function En(e){let t=0;return e.nodes.value.forEach(n=>{n.id>=t&&(t=n.id+1)}),t}const jn={};Je.on("addLayer",e=>{const t=Yn(e,zr);jn[e.id]=e.on("postUpdate",n=>{t.forEach(i=>{Object.values(i.types).forEach(r=>r.nodes.value.forEach(a=>{var u;return(u=r.update)==null?void 0:u.call(r,a,n)}))})})});Je.on("removeLayer",e=>{var t;(t=jn[e.id])==null||t.call(jn),jn[e.id]=void 0});function Mn(e,t="points",n=0,i=void 0){const r=Oe(e)?e:ot(e);if(r.displayName=t,r.precision=n,r.small=i,!Oe(e)){const a=r[At];a.displayName=t,a.precision=n,a.small=i}return r}new o("10^^8");new o("1e100");function mi(e,t){const n=t!=null?t:e.value;return o.eq(e.precision,0)?at(e.small?n:o.floor(n)):xe(n,e.precision,e.small)}Je.on("setupVue",e=>e.use(ha));function Uc(e="white",t="8px"){return{transform:"scale(1.05, 1.05)",borderColor:"rgba(0, 0, 0, 0.125)",boxShadow:`-4px -4px 4px rgba(0, 0, 0, 0.25) inset, 0 0 ${t} ${e}`,zIndex:1}}const Wc=X({props:{visibility:{type:q(Number,Boolean),required:!0},display:{type:q(Object,String,Function),required:!0},style:q(String,Object,Array),classes:q(Object),glowColor:q(String),active:Boolean,floating:Boolean},emits:["selectTab"],setup(e,{emit:t}){const{display:n,glowColor:i,floating:r}=De(e),a=zi(n),u=C(()=>{const c=Ee(i);return c==null||c===""?{}:s(r)?Uc(c):{boxShadow:`0px 9px 5px -6px ${c}`}});function l(){t("selectTab")}return{selectTab:l,component:a,glowColorStyle:u,unref:s,Visibility:Me,isVisible:He,isHidden:bn}}});function Hc(e,t,n,i,r,a){var u;return e.isVisible(e.visibility)?(S(),R("button",{key:0,onClick:t[0]||(t[0]=(...l)=>e.selectTab&&e.selectTab(...l)),class:Ne(["tabButton",{active:e.active,...e.unref(e.classes)}]),style:Be([{visibility:e.isHidden(e.visibility)?"hidden":void 0},e.glowColorStyle,(u=e.unref(e.style))!=null?u:{}])},[(S(),ne(Ke(e.component)))],6)):z("",!0)}var Gr=ve(Wc,[["render",Hc],["__scopeId","data-v-21427abb"]]);const Yc=X({props:{visibility:{type:q(Number,Boolean),required:!0},activeTab:{type:q(Object),required:!0},selected:{type:Object,required:!0},tabs:{type:q(Object),required:!0},style:q(String,Object,Array),classes:q(Object),buttonContainerStyle:q(String,Object,Array),buttonContainerClasses:q(Object)},components:{Sticky:gi,TabButton:Gr},setup(e){const{activeTab:t}=De(e),n=C(()=>Ct[te.theme].floatingTabs),i=bt("");$t(()=>{const l=Ee(t);if(l==null){i.value="";return}if(Et(l)){i.value=fe(l);return}i.value=fe(s(l.display))});const r=C(()=>{const l=Ee(t);return Et(l)||!l?void 0:s(l.classes)}),a=C(()=>{const l=Ee(t);return Et(l)||!l?void 0:s(l.style)});function u(l){const{display:c,style:p,classes:v,glowColor:f,visibility:b}=l;return{display:c,style:s(p),classes:v,glowColor:f,visibility:b}}return{floating:n,tabClasses:r,tabStyle:a,Visibility:Me,component:i,gatherButtonProps:u,unref:s,isVisible:He,isHidden:bn}}});function Zc(e,t,n,i,r,a){var c,p;const u=kt("TabButton"),l=kt("Sticky");return e.isVisible(e.visibility)?(S(),R("div",{key:0,class:Ne(["tab-family-container",{...e.unref(e.classes),...e.tabClasses}]),style:Be([{visibility:e.isHidden(e.visibility)?"hidden":void 0},(c=e.unref(e.style))!=null?c:[],(p=e.tabStyle)!=null?p:[]])},[d(l,{class:Ne(["tab-buttons-container",e.unref(e.buttonContainerClasses)]),style:Be(e.unref(e.buttonContainerStyle))},{default:Y(()=>[k("div",{class:Ne(["tab-buttons",{floating:e.floating}])},[(S(!0),R(oe,null,$n(e.unref(e.tabs),(v,f)=>(S(),ne(u,Ut({onSelectTab:b=>e.selected.value=f,floating:e.floating,key:f,active:e.unref(v.tab)===e.unref(e.activeTab)},e.gatherButtonProps(v)),null,16,["onSelectTab","floating","active"]))),128))],2)]),_:1},8,["class","style"]),e.unref(e.activeTab)?(S(),ne(Ke(e.unref(e.component)),{key:0})):z("",!0)],6)):z("",!0)}var Xc=ve(Yc,[["render",Zc],["__scopeId","data-v-58dbf83a"]]);const Kc=Symbol("TabButton"),Jc=Symbol("TabFamily");function Ur(e,t){if(Object.keys(e).length===0)throw console.warn("Cannot create tab family with 0 tabs"),new Error("Cannot create tab family with 0 tabs");const n=ot(Object.keys(e)[0],!1);return Qe(i=>{var u;const r=(u=t==null?void 0:t.call(i,i))!=null?u:{};r.id=Ht("tabFamily-"),r.type=Jc,r[dt]=Xc,r.tabs=Object.keys(e).reduce((l,c)=>{const p=e[c]();return p.type=Kc,p[dt]=Gr,T(p,"visibility"),se(p,"visibility",Me.Visible),T(p,"tab"),T(p,"display"),T(p,"classes"),T(p,"style"),T(p,"glowColor"),l[c]=p,l},{}),r.selected=n,r.activeTab=C(()=>{const l=s(a.tabs);if(n.value in l&&He(l[n.value].visibility))return s(l[n.value].tab);const c=Object.values(l).find(p=>He(p.visibility));return c?s(c.tab):null}),T(r,"visibility"),se(r,"visibility",Me.Visible),T(r,"classes"),T(r,"style"),T(r,"buttonContainerClasses"),T(r,"buttonContainerStyle"),r[lt]=function(){const{visibility:l,activeTab:c,selected:p,tabs:v,style:f,classes:b,buttonContainerClasses:h,buttonContainerStyle:y}=this;return{visibility:l,activeTab:c,selected:p,tabs:v,style:s(f),classes:b,buttonContainerClasses:h,buttonContainerStyle:y}};const a=r;return a})}function jt(e){return Qe(t=>{const{addend:n,description:i,enabled:r,smallerIsBetter:a}=e.call(t,t),u=_e(n),l=_e(i),c=r==null?void 0:_e(r);return{apply:p=>o.add(p,s(u)),invert:p=>o.sub(p,s(u)),getFormula:p=>m.add(p,u),enabled:c,description:i==null?void 0:j(()=>d("div",{class:"modifier-container"},[s(l)!=null?d("span",{class:"modifier-description"},[wt(s(l))]):null,d("span",{class:"modifier-amount",style:(a===!0?o.gt(s(u),0):o.lt(s(u),0))?"color: var(--danger)":""},[o.gte(s(u),0)?"+":"",zt(s(u))])]))}})}function Ce(e){return Qe(t=>{const{multiplier:n,description:i,enabled:r,smallerIsBetter:a}=e.call(t,t),u=_e(n),l=_e(i),c=r==null?void 0:_e(r);return{apply:p=>o.times(p,s(u)),invert:p=>o.div(p,s(u)),getFormula:p=>m.times(p,u),enabled:c,description:i==null?void 0:j(()=>d("div",{class:"modifier-container"},[s(l)!=null?d("span",{class:"modifier-description"},[wt(s(l))]):null,d("span",{class:"modifier-amount",style:(a===!0?o.gt(s(u),1):o.lt(s(u),1))?"color: var(--danger)":""},[_("\xD7"),zt(s(u))])]))}})}function Qc(e){return Qe(t=>{const{exponent:n,description:i,enabled:r,supportLowNumbers:a,smallerIsBetter:u}=e.call(t,t),l=_e(n),c=_e(i),p=r==null?void 0:_e(r);return{apply:v=>{let f=v;return a&&(f=o.add(f,1)),f=o.pow(f,s(l)),a&&(f=o.sub(f,1)),f},invert:v=>{let f=v;return a&&(f=o.add(f,1)),f=o.root(f,s(l)),a&&(f=o.sub(f,1)),f},getFormula:v=>a?m.add(v,1).pow(l).sub(1):m.pow(v,l),enabled:p,description:i==null?void 0:j(()=>d("div",{class:"modifier-container"},[s(c)!=null?d("span",{class:"modifier-description"},[wt(s(c)),a?" (+1 effective)":null]):null,d("span",{class:"modifier-amount",style:(u===!0?o.gt(s(l),1):o.lt(s(l),1))?"color: var(--danger)":""},[_("^"),zt(s(l))])]))}})}function Nt(e){return Qe(()=>{const t=e();return{apply:n=>t.filter(i=>s(i.enabled)!==!1).reduce((i,r)=>r.apply(i),n),invert:t.every(n=>n.invert!=null)?n=>t.filter(i=>s(i.enabled)!==!1).reduceRight((i,r)=>r.invert(i),n):void 0,getFormula:t.every(n=>n.getFormula!=null)?n=>t.filter(i=>s(i.enabled)!==!1).reduce((i,r)=>r.getFormula(i),n):void 0,enabled:t.some(n=>n.enabled!=null)?C(()=>t.filter(n=>s(n.enabled)!==!1).length>0):void 0,description:t.some(n=>n.description!=null)?j(()=>d(oe,null,[t.filter(n=>s(n.enabled)!==!1).map(n=>s(n.description)).filter(n=>n).map(wt)])):void 0}})}const qi=m.variable(0).step(2e3,e=>e.pow_base(1.02)).step(100,e=>e.pow(1.5)).step(o.pow(900,1.5).add(100),e=>e.pow(1.5)).pow(1.5),an={id:"deselect",icon:"close",tooltip:e=>({text:"portals"in e.state?"Disconnect portals":"tools"in e.state?"Disconnect tools":"Disconnect resources"}),onClick(e){var t;Array.isArray((t=e.state)==null?void 0:t.data)?e.state={...e.state,data:[]}:"portals"in e.state?e.state={...e.state,portals:[]}:"resources"in e.state?e.state={...e.state,resources:[]}:"tools"in e.state&&(e.state={...e.state,tools:[]}),g.board.selectedAction.value=null,g.board.selectedNode.value=null},visibility:e=>{var t;return Array.isArray((t=e.state)==null?void 0:t.data)?e.state.data.length>0:"portals"in e.state?e.state.portals.length>0:"resources"in e.state?e.state.resources.length>0:"tools"in e.state?e.state.tools.length>0:!1}},qt={id:"toggle",icon:"bolt",tooltip:e=>({text:e.state.powered?"Turn Off":`Turn On - Always runs for ${at(g.nextPowerCost.value)} energy/s`}),onClick(e){e.state={...e.state,powered:!e.state.powered},g.board.selectedAction.value=null},fillColor:e=>e.state.powered?"var(--accent1)":"var(--locked)"};function wn(e,t=1/0){const n=e(m.variable(0));return{id:"moreConnections",icon:"hub",formula:n,tooltip(i){return{text:`Increase Connections - ${at(n.evaluate(i.state.maxConnections))} energy`}},fillColor(i){return o.gte(g.energy.value,n.evaluate(i.state.maxConnections))?"var(--bought)":"var(--locked)"},confirmationLabel:i=>o.gte(g.energy.value,n.evaluate(i.state.maxConnections))?{text:"Tap again to confirm"}:{text:"Cannot afford",color:"var(--danger)"},onClick(i){const r=n.evaluate(i.state.maxConnections);o.gte(g.energy.value,r)&&(g.energy.value=o.sub(g.energy.value,r),i.state={...i.state,maxConnections:o.add(i.state.maxConnections,1)},g.board.selectedAction.value=null)},visibility:i=>o.add(i.state.maxConnections,g.computedBonusConnectionsModifier.value).lt(t)}}function Wr(e,t){var n,i;if(((n=g.board.draggingNode.value)==null?void 0:n.type)==="resource"){const r=((i=g.board.draggingNode.value)==null?void 0:i.state).type,{maxConnections:a,resources:u}=e.state;return u.includes(r)?{text:"Disconnect",color:"var(--accent2)"}:o.add(a,g.computedBonusConnectionsModifier.value).lte(u.length)?{text:"Max connections",color:"var(--danger)"}:{text:t(r),color:"var(--accent2)"}}return null}function ed(e,t){var n,i;if(((n=g.board.draggingNode.value)==null?void 0:n.type)==="passive"){const r=(i=g.board.draggingNode.value)==null?void 0:i.state,{maxConnections:a,tools:u}=e.state;return u.includes(r)?{text:"Disconnect",color:"var(--accent2)"}:o.add(a,g.computedBonusConnectionsModifier.value).lte(u.length)?{text:"Max connections",color:"var(--danger)"}:{text:t(r),color:"var(--accent2)"}}return null}function yi(e,t){var n,i;if(((n=g.board.draggingNode.value)==null?void 0:n.type)==="portal"){const r=((i=g.board.draggingNode.value)==null?void 0:i.state).id,{maxConnections:a,portals:u}=e.state;return u.includes(r)?{text:"Disconnect",color:"var(--accent2)"}:o.add(a,g.computedBonusConnectionsModifier.value).lte(u.length)?{text:"Max connections",color:"var(--danger)"}:{text:t(r),color:"var(--accent2)"}}return null}function Hr(e,t){if(t.type!=="resource")return!1;const n=t.state.type,{maxConnections:i,resources:r}=e.state;return r.includes(n)?!0:!o.add(i,g.computedBonusConnectionsModifier.value).lte(r.length)}function Yr(e,t){if(t.type!=="resource")return;const n=t.state.type,i=e.state.resources;i.includes(n)?e.state={...e.state,resources:i.filter(r=>r!==n)}:e.state={...e.state,resources:[...i,n]},g.board.selectedNode.value=e}function td(e,t){if(t.type!=="passive")return!1;const n=t.state,{maxConnections:i,tools:r}=e.state;return r.includes(n)?!0:!o.add(i,g.computedBonusConnectionsModifier.value).lte(r.length)}function nd(e,t){if(t.type!=="passive")return;const n=t.state,i=e.state.tools;i.includes(n)?e.state={...e.state,tools:i.filter(r=>r!==n)}:e.state={...e.state,tools:[...i,n]},g.board.selectedNode.value=e}function wi(e,t){if(t.type!=="portal")return!1;const n=t.state.id,{maxConnections:i,portals:r}=e.state;return r.includes(n)?!0:!o.add(i,g.computedBonusConnectionsModifier.value).lte(r.length)}function _i(e,t){if(t.type!=="portal")return;const n=t.state.id,{portals:i}=e.state;i.includes(n)?e.state={...e.state,portals:i.filter(r=>r!==n)}:e.state={...e.state,portals:[...i,n]},g.board.selectedNode.value=e}function ke(e){return e===g.board.selectedNode.value||e.state.powered}function ee(e){return g.empowerer.value!=null&&ke(g.empowerer.value)&&g.empowerer.value.state.tools.includes(e)}function id(e){var a,u,l;const t=(l=(u=(a=g.resourceNodes.value[e])==null?void 0:a.state)==null?void 0:u.amount)!=null?l:0,n=g.resourceLevels.value[e],i=qi.evaluate(n),r=qi.evaluate(o.add(n,1));return o.sub(t,i).max(0).div(o.sub(r,i)).toNumber()}function cn(e,t,n){if(t.value){const i=t.value.state,r=i[n],a=i.maxConnections;o.gt(r.length,o.add(a,e))&&(t.value.state={...t.value.state,[n]:r.slice(0,o.add(a,e).toNumber())})}}function Vt(e){return{id:"help",icon:"question_mark",tooltip:{text:"Help"},onClick(){g.helpModals[e].showModal.value=!0,g.board.selectedAction.value=null},confirmationLabel:null}}function fr(e){return t=>te.lineVisibility||e===g.board.selectedNode.value||e===g.board.draggingNode.value||g.resourceNodes.value[t]===g.board.draggingNode.value}const rd={key:0},ad={key:0,class:"mark star"},sd=["src"],od=X({__name:"MarkNode",props:{mark:{type:[Boolean,String]}},setup(e){return(t,n)=>e.mark?(S(),R("div",rd,[e.mark===!0?(S(),R("div",ad)):(S(),R("img",{key:1,class:"mark",src:e.mark},null,8,sd))])):z("",!0)}});var Kn=ve(od,[["__scopeId","data-v-2207999f"]]);const ld=X({__name:"Node",props:{id:null},setup(e){const n=De(e),i=ci(Gi,()=>{}),r=ci(Ui,()=>{}),a=bt(null),u=C(()=>a.value&&a.value.parentElement);return ht([u,n.id],([l,c],[p,v])=>{p&&r(s(v)),l&&i(c,l)}),wr(()=>r(s(n.id))),(l,c)=>(S(),R("div",{class:"node",ref_key:"node",ref:a},null,512))}});var Jn=ve(ld,[["__scopeId","data-v-a48cb382"]]),ud=X({props:{display:{type:q(Object,String,Function),required:!0},visibility:{type:q(Number,Boolean),required:!0},style:q(Object,String,Array),classes:q(Object),onClick:Function,onHold:Function,canClick:{type:q(Boolean),required:!0},small:Boolean,mark:q(Boolean,String),id:{type:String,required:!0}},components:{Node:Jn,MarkNode:Kn},setup(e){const{display:t,onClick:n,onHold:i}=De(e),r=bt("");$t(()=>{var v;const l=Ee(t);if(l==null){r.value="";return}if(Et(l)){r.value=fe(l);return}const c=fe((v=l.title)!=null?v:"","h3"),p=fe(l.description,"div");r.value=fe(j(()=>d("span",null,[l.title!=null?d("div",null,[d(c,null,null)]):null,d(p,null,null)])))});const{start:a,stop:u}=Pr(n,i);return{start:a,stop:u,comp:r,Visibility:Me,isVisible:He,isHidden:bn,unref:s}}});function cd(e,t,n,i,r,a){var c;const u=kt("MarkNode"),l=kt("Node");return e.isVisible(e.visibility)?(S(),R("button",{key:0,style:Be([{visibility:e.isHidden(e.visibility)?"hidden":void 0},(c=e.unref(e.style))!=null?c:[]]),onClick:t[0]||(t[0]=(...p)=>e.onClick&&e.onClick(...p)),onMousedown:t[1]||(t[1]=(...p)=>e.start&&e.start(...p)),onMouseleave:t[2]||(t[2]=(...p)=>e.stop&&e.stop(...p)),onMouseup:t[3]||(t[3]=(...p)=>e.stop&&e.stop(...p)),onTouchstartPassive:t[4]||(t[4]=(...p)=>e.start&&e.start(...p)),onTouchendPassive:t[5]||(t[5]=(...p)=>e.stop&&e.stop(...p)),onTouchcancelPassive:t[6]||(t[6]=(...p)=>e.stop&&e.stop(...p)),class:Ne({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)?(S(),ne(Ke(e.unref(e.comp)),{key:0})):z("",!0),d(u,{mark:e.unref(e.mark)},null,8,["mark"]),d(l,{id:e.id},null,8,["id"])],38)):z("",!0)}var Zr=ve(ud,[["render",cd],["__scopeId","data-v-211328c0"]]);const Xr=Symbol("Clickable");function dd(e,...t){const n=t.reduce((i,r)=>{var a;return Object.assign(i,(a=r.getPersistentData)==null?void 0:a.call(r))},{});return Qe(i=>{var u,l,c;const r=(u=e==null?void 0:e.call(i,i))!=null?u:{};r.id=Ht("clickable-"),r.type=Xr,r[dt]=Zr;for(const p of t)(l=p.preConstruct)==null||l.call(p,r);if(Object.assign(r,n),T(r,"visibility"),se(r,"visibility",Me.Visible),T(r,"canClick"),se(r,"canClick",!0),T(r,"classes"),T(r,"style"),T(r,"mark"),T(r,"display"),r.onClick){const p=r.onClick.bind(r);r.onClick=function(v){s(r.canClick)!==!1&&p(v)}}if(r.onHold){const p=r.onHold.bind(r);r.onHold=function(){s(r.canClick)!==!1&&p()}}for(const p of t)(c=p.postConstruct)==null||c.call(p,r);const a=t.reduce((p,v)=>{var f;return Object.assign(p,(f=v.getGatheredProps)==null?void 0:f.call(v,r))},{});return r[lt]=function(){const{display:p,visibility:v,style:f,classes:b,onClick:h,onHold:y,canClick:N,small:E,mark:P,id:I}=this;return{display:p,visibility:v,style:s(f),classes:b,onClick:h,onHold:y,canClick:N,small:E,mark:P,id:I,...a}},r})}function pd(e,t,n=[]){n=n.length===0?Yn(e,Xr):n;const i=typeof t=="function"?C(t):t;return e.on("update",()=>{s(i)&&n.filter(r=>s(r.canClick)).forEach(r=>{var a;return(a=r.onClick)==null?void 0:a.call(r)})})}const fd=["x1","y1","x2","y2"],gd=X({__name:"Link",props:{link:null,startNode:null,endNode:null,boundingRect:null},setup(e){const n=De(e),i=C(()=>{const a=n.startNode.value.rect,u=n.boundingRect.value,l=u?{x:a.x+a.width/2-u.x,y:a.y+a.height/2-u.y}:{x:0,y:0};return n.link.value.offsetStart&&(l.x+=n.link.value.offsetStart.x,l.y+=n.link.value.offsetStart.y),l}),r=C(()=>{const a=n.endNode.value.rect,u=n.boundingRect.value,l=u?{x:a.x+a.width/2-u.x,y:a.y+a.height/2-u.y}:{x:0,y:0};return n.link.value.offsetEnd&&(l.x+=n.link.value.offsetEnd.x,l.y+=n.link.value.offsetEnd.y),l});return(a,u)=>(S(),R("line",Ut({"stroke-width":"15px",stroke:"white"},e.link,{x1:s(i).x,y1:s(i).y,x2:s(r).x,y2:s(r).y}),null,16,fd))}});const md=X({__name:"Links",props:{links:null},setup(e){var c;const n=nn(e,"links"),i=G(null),r=ci(Wi,G({})),a=ci(Hi,G(void 0)),u=G((c=i.value)==null?void 0:c.getBoundingClientRect());ht(a,()=>{var p;return u.value=(p=i.value)==null?void 0:p.getBoundingClientRect()}),vi(()=>{var p;return u.value=(p=i.value)==null?void 0:p.getBoundingClientRect()});const l=C(()=>{var v,f;const p=r.value;return(f=(v=n.value)==null?void 0:v.filter(b=>{var h,y;return((h=p[b.startNode.id])==null?void 0:h.rect)&&((y=p[b.startNode.id])==null?void 0:y.rect)}))!=null?f:[]});return(p,v)=>(S(),R(oe,null,[s(l)?(S(),R("svg",ca(Ut({key:0},p.$attrs)),[(S(!0),R(oe,null,$n(s(l),(f,b)=>(S(),ne(gd,{key:b,link:f,boundingRect:u.value,startNode:s(r)[f.startNode.id],endNode:s(r)[f.endNode.id]},null,8,["link","boundingRect","startNode","endNode"]))),128))],16)):z("",!0),k("div",{ref_key:"resizeListener",ref:i,class:"resize-listener"},null,512)],64))}});var vd=ve(md,[["__scopeId","data-v-063f6d6b"]]);X({props:{nodes:{type:q(Array),required:!0},leftSideNodes:q(Array),rightSideNodes:q(Array),branches:q(Array)},components:{Links:vd},setup(e){const{nodes:t,leftSideNodes:n,rightSideNodes:i}=De(e),r=bt();$t(()=>{const l=Ee(t);r.value=fe(j(()=>d(oe,null,[l.map(c=>d("span",{class:"row tree-row",style:"margin: 50px auto;"},[c.map(wt)]))])))});const a=bt();$t(()=>{const l=Ee(n);a.value=l?fe(j(()=>d("span",{class:"left-side-nodes small"},[l.map(wt)]))):""});const u=bt();return $t(()=>{const l=Ee(i);u.value=l?fe(j(()=>d("span",{class:"side-nodes small"},[l.map(wt)]))):""}),{unref:s,nodesComp:r,leftNodesComp:a,rightNodesComp:u}}});X({props:{display:q(Object,String,Function),visibility:{type:q(Number,Boolean),required:!0},style:q(String,Object,Array),classes:q(Object),onClick:Function,onHold:Function,color:q(String),glowColor:q(String),canClick:{type:q(Boolean),required:!0},mark:q(Boolean,String),id:{type:String,required:!0}},components:{MarkNode:Kn,Node:Jn},setup(e){const{onClick:t,onHold:n,display:i}=De(e),r=Dn(i),{start:a,stop:u}=Pr(t,n);return{start:a,stop:u,comp:r,unref:s,Visibility:Me,isCoercableComponent:Et,isVisible:He,isHidden:bn}}});function zn(e){const t=[],n={};let i=!1;function r(){return i||(t.push(...e()),n.base=t.map(l=>_e(l.base)),n.baseText=t.map(l=>_e(l.baseText)),n.visible=t.map(l=>_e(l.visible)),n.title=t.map(l=>_e(l.title)),n.subtitle=t.map(l=>_e(l.subtitle)),i=!0),t}const a=ot({},!1);return[j(()=>{const l=r();let c=!0;const p=l.map((v,f)=>{var P,I,A;if(s(n.visible[f])===!1)return null;const b=d("h3",{onClick:()=>a.value[f]=!a.value[f],style:"cursor: pointer"},[d("span",{class:"modifier-toggle"+(s(a.value[f])?" collapsed":"")},[_("\u25BC")]),s(n.title[f]),s(n.subtitle[f])!=null?d("span",{class:"subtitle"},[_(" ("),s(n.subtitle[f]),_(")")]):null]),h=s(a.value[f])?null:d(oe,null,[d("div",{class:"modifier-container"},[d("span",{class:"modifier-description"},[wt((P=s(n.baseText[f]))!=null?P:"Base")]),d("span",{class:"modifier-amount"},[xe((I=s(n.base[f]))!=null?I:1),v.unit])]),v.modifier.description==null?null:wt(s(v.modifier.description))]),y=!c;c=!1;const N=(A=s(n.base[f]))!=null?A:1,E=v.modifier.apply(N);return d(oe,null,[y?d("br",null,null):null,d("div",{style:{"--unit":te.alignUnits&&v.unit!=null?"'"+v.unit+"'":""}},[b,d("br",null,null),h,d("hr",null,null),d("div",{class:"modifier-container"},[d("span",{class:"modifier-description"},[_("Total")]),d("span",{class:"modifier-amount",style:(v.smallerIsBetter===!0?o.gt(E,N!=null?N:1):o.lt(E,N!=null?N:1))?"color: var(--danger)":""},[zt(E),v.unit])])])])});return d(oe,null,[p])}),a]}function Pi(e,t,n){const i=_e(t),r=_e(n);return C(()=>{const a=s(i),u=s(r);return o.gte(e.value,u)?"Now":o.lte(a,0)?"Never":bi(o.sub(u,e.value).div(a))})}function dn(e,t,n=1){const i=_e(t),r=_e(n);if(!e.hasVariable())throw new Error("Cannot create formula preview if the formula does not have a variable");return j(()=>{var a;if(s(i)){const u=zt(e.evaluate()),l=zt(e.evaluate(o.add(s((a=e.innermostVariable)!=null?a:0),s(r))));return d(oe,null,[d("b",null,[d("i",null,[u,_(" \u2192 "),l])])])}return d(oe,null,[zt(e.evaluate())])})}const xt={dirt:120,sand:60,gravel:40,wood:30,stone:24,coal:20,copper:15,iron:12,silver:10,gold:8,emerald:6,platinum:5,diamond:4,berylium:3,unobtainium:2,ultimatum:1},Tt=Object.keys(xt),Ve={dirt:{cost:1e3,name:"Pickaxe",type:"passive",state:"dirt"},sand:{cost:1e4,name:"Dowsing Rod",type:"dowsing",state:{resources:[],maxConnections:1,powered:!1}},gravel:{cost:1e5,name:"Ore Processor",type:"passive",state:"gravel"},wood:{cost:1e6,name:"Quarry",type:"quarry",state:{resources:[],maxConnections:1,powered:!1,progress:0}},stone:{cost:1e7,name:"Energizer",type:"passive",state:"stone"},coal:{cost:1e8,name:"Tool Empowerer",type:"empowerer",state:{tools:[],maxConnections:1,powered:!1}},copper:{cost:1e9,name:"Book",type:"passive",state:"copper"},iron:{cost:1e10,name:"Portal Generator",type:"portalGenerator",state:{tier:void 0,influences:[]}},silver:{cost:1e12,name:"Robotics",type:"passive",state:"silver"},gold:{cost:1e15,name:"Booster",type:"booster",state:{portals:[],maxConnections:1,powered:!1,level:1}},emerald:{cost:1e19,name:"AI",type:"passive",state:"emerald"},platinum:{cost:1e24,name:"Upgrader",type:"upgrader",state:{portals:[],maxConnections:1,powered:!1}},diamond:{cost:1e30,name:"ML",type:"passive",state:"diamond"},berylium:{cost:1e37,name:"Automator",type:"automator",state:{portals:[],maxConnections:1,powered:!1}},unobtainium:{cost:1e45,name:"National Grid",type:"passive",state:"unobtainium"},ultimatum:{cost:1e54,name:"Investments",type:"investments",state:{portals:[],maxConnections:1,powered:!1}}},Pt={dirt:"BOGO Coupon",sand:"Metal Detector",gravel:"Neural Nets",wood:"Mining Laser",stone:"Replicator",coal:"Planar Intelligence",copper:"Efficient Code",iron:"Trade Agreements",silver:"Machine Synergizer",gold:"XP Market",emerald:"Efficient Portals",platinum:"Time Dilation",diamond:"Paypal",berylium:"Tiered Mining",unobtainium:"OC'ed Portals",ultimatum:"Rebates"},hd={dirt:{description:e=>e?"Quadruples mining speed":"Doubles mining speed"},gravel:{description:e=>e?"Quadruples mine ore drops":"Doubles mine ore drops"},stone:{description:e=>e?"Quadruples energy gain":"Doubles energy gain"},copper:{description:e=>e?"Material level is 40% stronger":"Material level is 20% stronger"},silver:{description:e=>e?"Quadruples each plane's resource gain":"Doubles each plane's resource gain"},diamond:{description:e=>e?"+20% plane's resource gain per upgrade bought":"+10% plane's resource gain per upgrade bought"},emerald:{description:e=>e?"+2% plane's resource gain per minute active":"+1% plane's resource gain per minute active"},unobtainium:{description:e=>e?"+2 max connections per machine":"+1 max connections per machine"},dirtRelic:{description:e=>e?"2 free levels for repeatables":"1 free level for repeatables"},sandRelic:{description:e=>e?"Treasure's 2 tiers stronger":"Treasure's 1 tier stronger"},gravelRelic:{description:e=>e?"+2% plane's resource gain per repeatable purchase (diminishing)":"+1% plane's resource gain per repeatable purchase (diminishing)"},woodRelic:{description:e=>e?"(Relics)^2 boost mine speed":"Relics boost mine speed"},stoneRelic:{description:e=>e?"All upgrades apply twice":"Non-multiplicative upgrades apply twice"},coalRelic:{description:e=>e?"Every treasure boosts planar speed by +20%":"Every treasure boosts planar speed by +10%"},copperRelic:{description:e=>e?"Power 2 machines free":"Power 1 machine free"},ironRelic:{description:e=>e?"Conversions give quadruple output":"Conversions give double output"},silverRelic:{description:e=>e?"(Powered machines)^2 boost quarry speed":"Powered machines boost quarry speed"},goldRelic:{description:e=>e?"Each treasure gives +50% XP gain":"Each treasure gives +25% XP gain"},emeraldRelic:{description:e=>e?"Creating portals costs 20x less energy":"Creating portals costs 10x less energy"},platinumRelic:{description:e=>e?"Quadruple dimensions' tick rate":"Double dimensions' tick rate"},diamondRelic:{description:e=>e?"Repeatables/dimensions buy max at once":"Repeatables buy max at once"},beryliumRelic:{description:e=>e?"log(energy)^0.5 boosts planes' resource gain":"log(energy)^0.25 boosts planes' resource gain"},unobtainiumRelic:{description:e=>e?"Upgrades/repeatables/dimensions/prestige no longer spend on purchase":"Upgrades/repeatables no longer spend on purchase"}},vt={increaseResources:{display:"+resource",description:e=>{const t=e.data;return t.length===0?"Increase resource odds - Drag a resource to me!":t.length===1?`Increase ${t[0]}'s odds`:`Increase ${t.length} resources' odds`},cost:2,initialData:[]},decreaseResources:{display:"-resource",description:e=>{const t=e.data;return t.length===0?"Decrease resource odds - Drag a resource to me!":t.length===1?`Decrease ${t[0]}'s odds`:`Decrease ${t.length} resources' odds`},cost:2,initialData:[]},increaseLength:{display:"+length",description:"Increase length",cost:100,initialData:void 0},increaseCaches:{display:"+caches",description:"Increase caches odds",cost:10,initialData:void 0},increaseGens:{display:"+gens",description:"Increase generators odds",cost:10,initialData:void 0},increaseInfluences:{display:"+influences",description:"Increase influences odds",cost:10,initialData:void 0},increaseEnergyMults:{display:"+energy mults",description:"Increase energy mults odds",cost:10,initialData:void 0},increaseResourceMults:{display:"+resource mults",description:"Increase resource mults odds",cost:10,initialData:void 0},increaseDiff:{display:"+difficulty",description:"Increase difficulty/rewards odds",cost:10,initialData:void 0},decreaseDiff:{display:"-difficulty",description:"Decrease difficulty/rewards odds",cost:10,initialData:void 0},increaseRewards:{display:"+rewards",description:"Increase rewards level",cost:1e4,initialData:void 0},relic:{display:"+relic",description:"Max length/difficulty, add tier-unique relic",cost:1e6,initialData:void 0}},si=m.variable(0).add(8).times(2).pow10(),bd=X({__name:"Tab",props:{display:null},setup(e){const t=e,{display:n}=De(t),i=zi(n);return(r,a)=>(S(),ne(Ke(s(i))))}}),yd=Symbol("Tab");function Ai(e){return Qe(t=>{const n=e.call(t,t);return n.id=Ht("tab-"),n.type=yd,n[dt]=bd,n[lt]=function(){const{display:i}=this;return{display:i}},n})}function Bt(e,t,n={}){const i=ot(!1);return{modal:j(()=>d(Ot,{modelValue:i.value,"onUpdate:modelValue":a=>i.value=a},{header:()=>d("h2",null,[e]),body:t})),showModal:i,...n}}function wd(){return Bt("Getting Started",j(()=>d("div",null,[d("p",null,[_(`Welcome to Planar Pioneers! Your job is to gather resources and eventually explore and conquer increasingly difficult "planes", which are like alien worlds. To start you'll use the mine (\u26CF\uFE0F) machine to gather resources.`)]),d("br",null,null),d("p",null,[_(`You'll gain energy every second based on how much of each resource you have. You can check the exact calculation and various other information by clicking the "modifiers" button near the top of the screen.`)]),d("br",null,null),d("p",null,[_("Select the machine by clicking it to make the mine active. You can also drag them around to organize your various machines and other objects. While selected machines will have various actions you can take, such as viewing the help for that machine. There's also an action to power the machine, allowing it to be active even while not selected, at the cost of energy per second (cost increases based on the total number of machines being powered).")])])))}function _d(){return Bt("Forging",j(()=>d("div",null,[d("p",null,[_("You've repaired the forge (\u{1F6E0}\uFE0F)! This is the next main line of progression. Here you'll be able to craft a total of 16 machines and passive bonuses to create - one for each resource!")]),d("br",null,null),d("p",null,[_("Drag a resource onto the forge to select that resource tier. You can then use an action on the forge to create that item, at the cost of energy based on the resource tier. You can only have 1 of each item.")])])))}function Nd(){return Bt("Dowsing",j(()=>d("div",null,[d("p",null,[_("You've created the dowsing rod (\u{1F962})! This machine lets you bias the odds of specified resources from mining. It will double the odds of each specified resource, so keep in mind rare resources will still be fairly rare.")]),d("br",null,null),d("p",null,[_("Specify resources to boost by dragging them to the dowsing rod. You can only select a single resource to start, but that can be increased using an action.")])])))}function Cd(){return Bt("Quarry",j(()=>d("div",null,[d("p",null,[_("You've created the Quarry (\u26F0\uFE0F)! This machine lets you gather specified resources. Unlike the mine, this machine will always output the same resources. However, rarer resources will take longer to gather.")]),d("br",null,null),d("p",null,[_("Specify resources to gather by dragging them to the quarry. You can only select a single resource to start, but that can be increased using an action.")])])))}function kd(){return Bt("Tool Empowerer",j(()=>d("div",null,[d("p",null,[_("You've created the Tool Empowerer (\u{1F50C})! This machine lets you increase the effect of specified passives. Experimenting with which passives to empower can really help you progress!")]),d("br",null,null),d("p",null,[_("Specify passives to empower by dragging them to the empowerer. You can only select a single passive to start, but that can be increased using an action.")])])))}function Md(){const e=Ur({general:()=>({display:"General",glowColor(){return e.activeTab.value===this.tab?"white":""},tab:Ai(()=>({display:j(()=>d("div",null,[d("p",null,[_("You've created the Portal Generator (\u26E9\uFE0F)! This machine lets you create portals to other planes, which will have treasures that help you in various ways! To create a portal you need to specify a tier by dragging a resource to the generator - higher tier planes cost more energy to generate portals for, but offer more and better treasures! Keep in mind time in planes will be paused if the portal is inactive (not selected nor powered).")]),d("br",null,null),d("p",null,[_("You've also gained a trash can for portals (\u{1F5D1}\uFE0F). Dragging a portal here will permanently destroy it. Any treasures that require the portal to be active will no longer work. This can be used to keep your workspace clean from old portals you no longer need or want.")]),d("br",null,null),d("p",null,[_("Once you have portals, the lines on the board might getting particularly necessary. Here's a setting (also accessible in the settings modal) to disable resource gain lines unless the node is active.")]),d("br",null,null),d(It,{title:j(()=>d("span",{class:"option-title"},[_("Always show lines to resource nodes")])),modelValue:te.lineVisibility,"onUpdate:modelValue":t=>te.lineVisibility=t},null)]))}))}),treasures:()=>({display:"Treasures",glowColor(){return e.activeTab.value===this.tab?"white":""},tab:Ai(()=>({display:j(()=>d("div",null,[_("Types of potential treasures:"),d("ul",{style:"list-style-type: unset"},[d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("Caches")]),_(": Gain an amount of a resource based on your current amount.")]),d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("Gen")]),_(": Passively gain an amount of a resource while the portal is active (selected or powered).")]),d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("Resource Mult")]),_(": Increase the amount gained of a resource from all sources (except caches) while the portal is active (selected or powered).")]),d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("Energy Mult")]),_(": Increase the energy gained per second while the portal is active (selected or powered).")]),d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("Influences")]),_(": Gain a influence. See the influences tab for details. You can only have 1 of each influence.")]),d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("Relic")]),_(": Gain the relic unique to this tier of plane. These are powerful passive boosts that can be empowered. You can only have 1 of each relic. Relics can only appear with the +relic influence, and will always be the last treasure on a plane.")])])]))}))}),influences:()=>({display:"Influences",glowColor(){return e.activeTab.value===this.tab?"white":""},tab:Ai(()=>({display:j(()=>d("div",null,[d("p",null,[_("Some treasures will grant you influences that can help the portal generator create portals to planes with specified qualities. Each influence will multiply the energy cost of creating the portal.")]),d("br",null,null),Object.keys(g.influenceNodes.value).length>0?d("div",null,[_("Discovered influences:"),d("ul",{style:"list-style-type: unset"},[g.influenceNodes.value.increaseResources==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+resource")]),_(": Can be connected to resources and will cause any treasures that reference resources (caches, gens, and resource mults) to have increased odds of picking a selected resource.")]),g.influenceNodes.value.decreaseResources==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("-resource")]),_(": Can be connected to resources and will cause any treasures that reference resources (caches, gens, and resource mults) to have decreased odds of picking a selected resource.")]),g.influenceNodes.value.increaseLength==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+length")]),_(": Cause the plane to have 1 extra treasure than it otherwise would have.")]),g.influenceNodes.value.increaseCaches==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+caches")]),_(": Causes treasures to have an increased chance to be caches.")]),g.influenceNodes.value.increaseGens==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+gens")]),_(": Causes treasures to have an increased chance to be gens.")]),g.influenceNodes.value.increaseResourceMults==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+resource mults")]),_(": Causes treasures to have an increased chance to be resource mults.")]),g.influenceNodes.value.increaseEnergyMults==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+energy mults")]),_(": Causes treasures to have an increased chance to be energy mults.")]),g.influenceNodes.value.increaseInfluences==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+influences")]),_(": Causes treasures to have an increased chance to be influences.")]),g.influenceNodes.value.relic==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+relic")]),_(": Maximizes length and difficulty for this tier of plane, and makes the last treasure a relic (unique per tier of plane). Overrides any other difficulty-changing influences.")]),g.influenceNodes.value.increaseDiff==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+difficulty")]),_(": Causes the difficulty and rewards to be in the upper half of what's possible at this tier.")]),g.influenceNodes.value.decreaseDiff==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("-difficulty")]),_(": Causes the difficulty and rewards to be in the lower half of what's possible at this tier.")]),g.influenceNodes.value.increaseRewards==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+rewards")]),_(": Causes the quality of treasures to be 1 tier higher. Does not affect influences or relics treasures.")])])]):d("div",null,[_("Once you discover influences, summaries will appear here describing their effects.")])]))}))})});return Bt("Portal Generator",j(()=>wt(e)),{tabFamily:e})}function Sd(){return Bt("Booster",j(()=>d("div",null,[d("p",null,[_("You've created the Booster (\u231B)! This machine lets you increase the rate of time of planes! This affects its resource gain, gen treasures, and any other effects of time.")]),d("br",null,null),d("p",null,[_("Specify planes to boost by dragging their portals to the booster. You can only select a single plane to start, but that can be increased using an action.")]),d("br",null,null),d("p",null,[_("Initially the booster will double the rate of time, but that can be increased using an action.")])])))}function Id(){return Bt("Upgrader",j(()=>d("div",null,[d("p",null,[_("You've created the Upgrader (\u{1F916})! This machine lets you automatically purchase upgrades within planes (includes prestiges but not repeatables or dimensions)!")]),d("br",null,null),d("p",null,[_("Specify planes to auto-purchase upgrades from by dragging their portals to the booster. You can only select a single plane to start, but that can be increased using an action.")])])))}function xd(){return Bt("Automator",j(()=>d("div",null,[d("p",null,[_("You've created the Automator (\u{1F9BE})! This machine lets you automatically purchase repeatables and dimensions within planes!")]),d("br",null,null),d("p",null,[_("Specify planes to auto-purchase repeatables and dimensions from by dragging their portals to the booster. You can only select a single plane to start, but that can be increased using an action.")])])))}function $d(){return Bt("Investments",j(()=>d("div",null,[d("p",null,[_("You've created the Investments machine (\u{1F4B1})! This machine lets you automatically gain the resources from conversions without spending the plane's primary resource!")]),d("br",null,null),d("p",null,[_("Specify planes to gain converted resources from by dragging their portals to the booster. You can only select a single plane to start, but that can be increased using an action.")])])))}const Ed=X({__name:"Spacer",props:{width:{default:"8px"},height:{default:"17px"}},setup(e){return(t,n)=>(S(),R("div",{style:Be({width:e.width,height:e.height})},null,4))}});function qn(e){return Qe(t=>{var i;const n=e.call(t,t);return n.partialDisplay=r=>d("span",{style:s(n.requirementMet)?"":"color: var(--danger)"},[mi(n.resource,n.cost instanceof m?en(n.cost,r!=null?r:1,s(n.cumulativeCost),s(n.directSum)):s(n.cost))," ",n.resource.displayName]),n.display=r=>d("div",null,[s(n.requiresPay)?"Costs: ":"Requires: ",mi(n.resource,n.cost instanceof m?en(n.cost,r!=null?r:1,s(n.cumulativeCost),s(n.directSum)):s(n.cost))," ",n.resource.displayName]),T(n,"visibility"),se(n,"visibility",Me.Visible),T(n,"cost"),T(n,"requiresPay"),se(n,"requiresPay",!0),T(n,"cumulativeCost"),se(n,"cumulativeCost",!0),T(n,"maxBulkAmount"),se(n,"maxBulkAmount",1),T(n,"directSum"),se(n,"pay",function(r){const a=n.cost instanceof m?en(n.cost,r!=null?r:1,s(n.cumulativeCost),s(n.directSum)):s(n.cost);n.resource.value=o.sub(n.resource.value,a).max(0)}),n.canMaximize=C(()=>{var l;if(!(n.cost instanceof m))return!1;const r=s(n.maxBulkAmount);if(o.lte(r,1))return!1;const a=s(n.cumulativeCost),u=(l=s(n.directSum))!=null?l:a?10:0;return o.lte(r,u)?!0:!(!n.cost.isInvertible()||a===!0&&!n.cost.isIntegrable())}),n.cost instanceof m?n.requirementMet=Fr(n.cost,n.resource,(i=n.cumulativeCost)!=null?i:!0,n.directSum,n.maxBulkAmount):n.requirementMet=C(()=>o.gte(n.resource.value,s(n.cost))),n})}function Qi(e){return Qe(()=>({requirementMet:C(()=>He(e.visibility)),visibility:Me.None,requiresPay:!1}))}function Dd(e,t){return Qe(()=>({requirementMet:_e(e),partialDisplay:t==null?void 0:j(()=>wt(t)),display:t==null?void 0:j(()=>d(oe,null,[_("Req: "),wt(t)])),visibility:t==null?Me.None:Me.Visible,requiresPay:!1}))}function Ni(e){if(Ft(e))return e.every(Ni);const t=s(e.requirementMet);return typeof t=="boolean"?t:o.gt(t,0)}function Kr(e){if(Ft(e))return e.map(Kr).reduce(o.min);const t=s(e.requirementMet);return typeof t=="boolean"?t?o.dInf:0:o.gt(t,1)&&s(e.canMaximize)!==!0?1:t}function Ci(e,t=1){var n,i;if(Ft(e)&&(e=e.filter(r=>He(r.visibility)),e.length===1&&(e=e[0])),Ft(e)){e=e.filter(u=>"partialDisplay"in u);const r=e.filter(u=>s(u.requiresPay)),a=e.filter(u=>!s(u.requiresPay));return d(oe,null,[r.length>0?d("div",null,[_("Costs:")," ",cr(r.map(u=>u.partialDisplay(t)),d(oe,null,[_(", ")]))]):null,a.length>0?d("div",null,[_("Requires:")," ",cr(a.map(u=>u.partialDisplay(t)),d(oe,null,[_(", ")]))]):null])}return(i=(n=e.display)==null?void 0:n.call(e))!=null?i:d(oe,null,null)}function Jr(e,t=1){var n;Ft(e)?e.filter(i=>s(i.requiresPay)).forEach(i=>{var r;return(r=i.pay)==null?void 0:r.call(i,t)}):s(e.requiresPay)&&((n=e.pay)==null||n.call(e,t))}var Td=X({props:{visibility:{type:q(Number,Boolean),required:!0},display:q(Object,String,Function),earned:{type:q(Boolean),required:!0},requirements:q(Object,Array),image:q(String),style:q(String,Object,Array),classes:q(Object),mark:q(Boolean,String),small:q(Boolean),id:{type:String,required:!0}},components:{Node:Jn,MarkNode:Kn},setup(e){const{display:t,requirements:n,earned:i}=De(e),r=bt("");return $t(()=>{const a=Ee(t);if(a==null){r.value="";return}if(Et(a)){r.value=fe(a);return}const u=fe(a.requirement?a.requirement:j(()=>{var p;return Ci((p=Ee(n))!=null?p:[])}),"h3"),l=fe(a.effectDisplay||"","b"),c=Ee(i)?fe(a.optionsDisplay||"","span"):"";r.value=fe(j(()=>d("span",null,[d(u,null,null),a.effectDisplay!=null?d("div",null,[d(l,null,null)]):null,a.optionsDisplay!=null?d("div",{class:"equal-spaced"},[d(c,null,null)]):null])))}),{comp:r,unref:s,Visibility:Me,isVisible:He,isHidden:bn}}});function Pd(e,t,n,i,r,a){var c;const u=kt("MarkNode"),l=kt("Node");return e.isVisible(e.visibility)?(S(),R("div",{key:0,style:Be([{visibility:e.isHidden(e.visibility)?"hidden":void 0,backgroundImage:e.earned&&e.image&&`url(${e.image})`||""},(c=e.unref(e.style))!=null?c:[]]),class:Ne({feature:!0,achievement:!0,locked:!e.unref(e.earned),done:e.unref(e.earned),small:e.unref(e.small),...e.unref(e.classes)})},[e.comp?(S(),ne(Ke(e.comp),{key:0})):z("",!0),d(u,{mark:e.unref(e.mark)},null,8,["mark"]),d(l,{id:e.id},null,8,["id"])],6)):z("",!0)}var Ad=ve(Td,[["render",Pd],["__scopeId","data-v-5673325a"]]);const Rd=hi(),Fd=Symbol("Achievement");let Sn=function(e){return e.All="all",e.Configurable="configurable",e.Incomplete="incomplete",e.None="none",e}({});function Od(e,...t){const n=ot(!1,!1),i=t.reduce((r,a)=>{var u;return Object.assign(r,(u=a.getPersistentData)==null?void 0:u.call(a))},{});return Qe(r=>{var c,p,v;const a=(c=e==null?void 0:e.call(r,r))!=null?c:{};a.id=Ht("achievement-"),a.type=Fd,a[dt]=Ad;for(const f of t)(p=f.preConstruct)==null||p.call(f,a);a.earned=n,a.complete=function(){var b,h;if(n.value)return;n.value=!0;const f=a;if((b=f.onComplete)==null||b.call(f),f.display!=null&&s(f.showPopups)===!0){const y=s(f.display);let N;Et(y)?N=fe(y):y.requirement!=null?N=fe(y.requirement):N=Ci((h=f.requirements)!=null?h:[]),Rd.info(d("div",null,[d("h3",null,[_("Treasure earned!")]),d("div",null,[d(N,null,null)])]))}},Object.assign(a,i),T(a,"visibility"),se(a,"visibility",Me.Visible);const u=a.visibility;a.visibility=da(()=>{const f=s(a.display);switch(te.msDisplay){default:case Sn.All:return s(u);case Sn.Configurable:return s(a.earned)&&!(f!=null&&typeof f=="object"&&"optionsDisplay"in f)?Me.None:s(u);case Sn.Incomplete:return s(a.earned)?Me.None:s(u);case Sn.None:return Me.None}}),T(a,"display"),T(a,"mark"),T(a,"small"),T(a,"image"),T(a,"style"),T(a,"classes"),T(a,"showPopups"),se(a,"showPopups",!0);for(const f of t)(v=f.postConstruct)==null||v.call(f,a);const l=t.reduce((f,b)=>{var h;return Object.assign(f,(h=b.getGatheredProps)==null?void 0:h.call(b,a))},{});if(a[lt]=function(){const{visibility:f,display:b,requirements:h,earned:y,image:N,style:E,classes:P,mark:I,small:A,id:B}=this;return{visibility:f,display:b,requirements:h,earned:y,image:N,style:s(E),classes:P,mark:I,small:A,id:B,...l}},a.requirements){const f=a,b=[Qi(f),Dd(()=>!f.earned.value),...Ft(a.requirements)?a.requirements:[a.requirements]];$t(()=>{te.active===Z.id&&Ni(b)&&f.complete()})}return a})}Je.on("loadSettings",e=>{se(e,"msDisplay",Sn.All)});const qd=Object.values(Sn).map(e=>({label:it(e),value:e}));Dr(j(()=>d(Ki,{title:j(()=>d("span",{class:"option-title"},[_("Show achievements"),d("desc",null,[_("Select which achievements to display based on criterias.")])])),options:qd,"onUpdate:modelValue":e=>te.msDisplay=e,modelValue:te.msDisplay},null)));const Vd=X({props:{progress:{type:q(String,Object,Number),required:!0},width:{type:q(Number),required:!0},height:{type:q(Number),required:!0},direction:{type:q(String),required:!0},display:q(Object,String,Function),visibility:{type:q(Number,Boolean),required:!0},style:q(Object,String,Array),classes:q(Object),borderStyle:q(Object,String,Array),textStyle:q(Object,String,Array),baseStyle:q(Object,String,Array),fillStyle:q(Object,String,Array),mark:q(Boolean,String),id:{type:String,required:!0}},components:{MarkNode:Kn,Node:Jn},setup(e){const{progress:t,width:n,height:i,direction:r,display:a}=De(e),u=C(()=>{let p=t.value instanceof o?t.value.toNumber():Number(t.value);return(1-Math.min(Math.max(p,0),1))*100}),l=C(()=>{const p={width:Ee(n)+.5+"px",height:Ee(i)+.5+"px"};switch(s(r)){case W.Up:p.clipPath=`inset(${u.value}% 0% 0% 0%)`,p.width=Ee(n)+1+"px";break;case W.Down:p.clipPath=`inset(0% 0% ${u.value}% 0%)`,p.width=Ee(n)+1+"px";break;case W.Right:p.clipPath=`inset(0% ${u.value}% 0% 0%)`;break;case W.Left:p.clipPath=`inset(0% 0% 0% ${u.value} + '%)`;break;case W.Default:p.clipPath="inset(0% 50% 0% 0%)";break}return p}),c=Dn(a);return{normalizedProgress:u,barStyle:l,component:c,unref:s,Visibility:Me,isVisible:He,isHidden:bn}}});function Bd(e,t,n,i,r,a){var c,p,v,f,b,h,y;const u=kt("MarkNode"),l=kt("Node");return e.isVisible(e.visibility)?(S(),R("div",{key:0,style:Be([{width:e.unref(e.width)+"px",height:e.unref(e.height)+"px",visibility:e.isHidden(e.visibility)?"hidden":void 0},(c=e.unref(e.style))!=null?c:{}]),class:Ne({bar:!0,...e.unref(e.classes)})},[k("div",{class:"overlayTextContainer border",style:Be([{width:e.unref(e.width)+"px",height:e.unref(e.height)+"px"},(p=e.unref(e.borderStyle))!=null?p:{}])},[e.component?(S(),R("span",{key:0,class:"overlayText",style:Be(e.unref(e.textStyle))},[(S(),ne(Ke(e.component)))],4)):z("",!0)],4),k("div",{class:"border",style:Be([{width:e.unref(e.width)+"px",height:e.unref(e.height)+"px"},(v=e.unref(e.style))!=null?v:{},(f=e.unref(e.baseStyle))!=null?f:{},(b=e.unref(e.borderStyle))!=null?b:{}])},[k("div",{class:"fill",style:Be([e.barStyle,(h=e.unref(e.style))!=null?h:{},(y=e.unref(e.fillStyle))!=null?y:{}])},null,4)],4),d(u,{mark:e.unref(e.mark)},null,8,["mark"]),d(l,{id:e.id},null,8,["id"])],6)):z("",!0)}var Ld=ve(Vd,[["render",Bd],["__scopeId","data-v-6bd06b56"]]);const jd=Symbol("Bar");function zd(e,...t){const n=t.reduce((i,r)=>{var a;return Object.assign(i,(a=r.getPersistentData)==null?void 0:a.call(r))},{});return Qe(i=>{var u,l;const r=e.call(i,i);r.id=Ht("bar-"),r.type=jd,r[dt]=Ld;for(const c of t)(u=c.preConstruct)==null||u.call(c,r);Object.assign(r,n),T(r,"visibility"),se(r,"visibility",Me.Visible),T(r,"width"),T(r,"height"),T(r,"direction"),T(r,"style"),T(r,"classes"),T(r,"borderStyle"),T(r,"baseStyle"),T(r,"textStyle"),T(r,"fillStyle"),T(r,"progress"),T(r,"display"),T(r,"mark");for(const c of t)(l=c.postConstruct)==null||l.call(c,r);const a=t.reduce((c,p)=>{var v;return Object.assign(c,(v=p.getGatheredProps)==null?void 0:v.call(p,r))},{});return r[lt]=function(){const{progress:c,width:p,height:v,direction:f,display:b,visibility:h,style:y,classes:N,borderStyle:E,textStyle:P,baseStyle:I,fillStyle:A,mark:B,id:ce}=this;return{progress:c,width:p,height:v,direction:f,display:b,visibility:h,style:s(y),classes:N,borderStyle:E,textStyle:P,baseStyle:I,fillStyle:A,mark:B,id:ce,...a}},r})}function Gd(e,...t){return Qe(n=>{var r,a;const i=e.call(n,n);for(const u of t)(r=u.preConstruct)==null||r.call(u,i);i.formula=i.formula(m.variable(i.baseResource)),i.currentGain==null&&(i.currentGain=C(()=>{let u=o.floor(i.formula.evaluate(i.baseResource.value)).max(0);return s(i.buyMax)===!1&&(u=u.min(1)),u})),i.actualGain==null&&(i.actualGain=i.currentGain),i.currentAt==null&&(i.currentAt=C(()=>i.formula.invert(o.floor(s(i.currentGain))))),i.nextAt==null&&(i.nextAt=C(()=>i.formula.invert(o.floor(s(i.currentGain)).add(1)))),i.convert==null&&(i.convert=function(){var l;const u=s(i.currentGain);i.gainResource.value=o.add(i.gainResource.value,u),i.spend(u),(l=i.onConvert)==null||l.call(i,u)}),i.spend==null&&(i.spend=function(){i.baseResource.value=0}),T(i,"currentGain"),T(i,"actualGain"),T(i,"currentAt"),T(i,"nextAt"),T(i,"buyMax"),se(i,"buyMax",!0);for(const u of t)(a=u.postConstruct)==null||a.call(u,i);return i})}function Ud(e){return Gd(e)}function Wd(e,t,n=1,i=o.dInf){const r=_e(n),a=_e(i);e.on("preUpdate",u=>{const l=s(r);o.neq(l,0)&&(t.gainResource.value=o.add(t.gainResource.value,o.times(l,u).times(o.ceil(s(t.actualGain)))).min(s(a)).max(t.gainResource.value))})}const Hd={postConstruct(e){e.amount===void 0&&console.error(`Decorated feature ${e.id} does not contain the required 'amount' property"`),T(e,"bonusAmount"),e.totalAmount===void 0&&(e.totalAmount=C(()=>{var t;return o.add(s((t=e.amount)!=null?t:0),s(e.bonusAmount))}))}},Qr=Symbol("Repeatable");function gr(e,...t){const n=ot(0),i=t.reduce((r,a)=>{var u;return Object.assign(r,(u=a.getPersistentData)==null?void 0:u.call(a))},{});return Qe(r=>{var b,h,y;const a=e.call(r,r);a.id=Ht("repeatable-"),a.type=Qr,a[dt]=Zr;for(const N of t)(b=N.preConstruct)==null||b.call(N,a);a.amount=n,a.amount[Wt]=(h=a.initialAmount)!=null?h:0,Object.assign(a,i);const u={requirementMet:C(()=>o.sub(s(a.limit),a.amount.value)),requiresPay:!1,visibility:Me.None,canMaximize:!0},l=Qi(a);Ft(a.requirements)?(a.requirements.unshift(l),a.requirements.push(u)):a.requirements=[l,a.requirements,u],a.maxed=C(()=>o.gte(a.amount.value,s(a.limit))),T(a,"classes");const c=a.classes;a.classes=C(()=>{const N=s(c)||{};return a.maxed.value&&(N.bought=!0),N}),a.amountToIncrease=C(()=>o.clampMin(Kr(a.requirements),1)),a.canClick=C(()=>Ni(a.requirements));const p=a.onClick;a.onClick=function(N){var I;const E=a;if(!s(E.canClick))return;const P=(I=s(a.amountToIncrease))!=null?I:1;Jr(a.requirements,P),E.amount.value=o.add(E.amount.value,P),p==null||p(N)},T(a,"display");const v=a.display;a.display=j(()=>{var E,P,I;const N=s(v);if(Et(N)){const A=fe(N);return d(A,null,null)}if(N!=null){const A=a,B=fe((E=N.title)!=null?E:"","h3"),ce=fe((P=N.description)!=null?P:""),le=fe((I=N.effectDisplay)!=null?I:"");return d("span",null,[N.title==null?null:d("div",null,[d(B,null,null)]),N.description==null?null:d(ce,null,null),N.showAmount===!1?null:d("div",null,[d("br",null,null),d(oe,null,[_("Amount: "),at(A.amount.value)]),o.isFinite(s(A.limit))?d(oe,null,[_(" / "),at(s(A.limit))]):void 0]),N.effectDisplay==null?null:d("div",null,[d("br",null,null),_("Currently: "),d(le,null,null)]),A.maxed.value?null:d("div",null,[d("br",null,null),Ci(A.requirements,s(a.amountToIncrease))])])}return""}),T(a,"visibility"),se(a,"visibility",Me.Visible),T(a,"limit"),se(a,"limit",o.dInf),T(a,"style"),T(a,"mark"),T(a,"small");for(const N of t)(y=N.postConstruct)==null||y.call(N,a);const f=t.reduce((N,E)=>{var P;return Object.assign(N,(P=E.getGatheredProps)==null?void 0:P.call(E,a))},{});return a[lt]=function(){const{display:N,visibility:E,style:P,classes:I,onClick:A,canClick:B,small:ce,mark:le,id:ie}=this;return{display:N,visibility:E,style:s(P),classes:I,onClick:A,canClick:B,small:ce,mark:le,id:ie,...f}},a})}const Yd=Symbol("Reset");function Zd(e){return Qe(t=>{const n=e.call(t,t);return n.id=Ht("reset-"),n.type=Yd,n.reset=function(){var r;const i=a=>{if(a!=null&&typeof a=="object"&&!(a instanceof o)&&!(a instanceof m)){if(Xn in a&&a[Xn]===!0)return;if(Wt in a){const u=a;u.value=u[Wt]}else!(a instanceof o)&&!Oe(a)&&Object.values(a).forEach(u=>i(u))}};s(n.thingsToReset).forEach(i),Je.emit("reset",n),(r=n.onReset)==null||r.call(n)},T(n,"thingsToReset"),n})}const oi={};Je.on("removeLayer",e=>{var t;(t=oi[e.id])==null||t.call(oi),oi[e.id]=void 0});function Ri(e,t){return T(t,"display"),T(t,"classes"),T(t,"style"),T(t,"direction"),se(t,"direction",W.Up),T(t,"xoffset"),T(t,"yoffset"),t.pinnable&&(t.pinned=ot(!1,!1)),Gt(()=>{t.pinnable&&("pinned"in e?(console.error("Cannot add pinnable tooltip to element that already has a property called 'pinned'"),t.pinnable=!1,Or(t.pinned)):e.pinned=t.pinned);const n=e[dt];e[dt]=Fe;const i=e[lt].bind(e);e[lt]=function(){const{display:a,classes:u,style:l,direction:c,xoffset:p,yoffset:v,pinned:f}=this;return{element:{[dt]:n,[lt]:i},display:a,classes:u,style:s(l),direction:c,xoffset:p,yoffset:v,pinned:f}}.bind(t)}),t}var Xd=X({props:{display:{type:q(String,Object,Function),required:!0},visibility:{type:q(Number,Boolean),required:!0},style:q(String,Object,Array),classes:q(Object),requirements:{type:Object,required:!0},canPurchase:{type:q(Boolean),required:!0},bought:{type:q(Boolean),required:!0},mark:q(Boolean,String),id:{type:String,required:!0},purchase:{type:Function,required:!0}},components:{Node:Jn,MarkNode:Kn},setup(e){const{display:t,requirements:n,bought:i}=De(e),r=bt("");return $t(()=>{const a=Ee(t);if(a==null){r.value="";return}if(Et(a)){r.value=fe(a);return}const u=fe(a.title||"","h3"),l=fe(a.description,"div"),c=fe(a.effectDisplay||"");r.value=fe(j(()=>d("span",null,[a.title!=null?d("div",null,[d(u,null,null)]):null,d(l,null,null),a.effectDisplay!=null?d("div",null,[_("Currently: "),d(c,null,null)]):null,i.value?null:d(oe,null,[d("br",null,null),Ci(n.value)])])))}),{component:r,unref:s,Visibility:Me,isVisible:He,isHidden:bn}}});const Kd=["disabled"];function Jd(e,t,n,i,r,a){var c;const u=kt("MarkNode"),l=kt("Node");return e.isVisible(e.visibility)?(S(),R("button",{key:0,style:Be([{visibility:e.isHidden(e.visibility)?"hidden":void 0},(c=e.unref(e.style))!=null?c:{}]),onClick:t[0]||(t[0]=(...p)=>e.purchase&&e.purchase(...p)),class:Ne({feature:!0,upgrade:!0,can:e.unref(e.canPurchase),locked:!e.unref(e.canPurchase),bought:e.unref(e.bought),...e.unref(e.classes)}),disabled:!e.unref(e.canPurchase)},[e.unref(e.component)?(S(),ne(Ke(e.unref(e.component)),{key:0})):z("",!0),d(u,{mark:e.unref(e.mark)},null,8,["mark"]),d(l,{id:e.id},null,8,["id"])],14,Kd)):z("",!0)}var Qd=ve(Xd,[["render",Jd],["__scopeId","data-v-9be6bac0"]]);const er=Symbol("Upgrade");function mr(e,...t){const n=ot(!1,!1),i=t.reduce((r,a)=>{var u;return Object.assign(r,(u=a.getPersistentData)==null?void 0:u.call(a))},{});return Qe(r=>{var c,p;const a=e.call(r,r);a.id=Ht("upgrade-"),a.type=er,a[dt]=Qd;for(const v of t)(c=v.preConstruct)==null||c.call(v,a);a.bought=n,Object.assign(a,i),a.canPurchase=C(()=>!n.value&&Ni(a.requirements)),a.purchase=function(){var f;const v=a;!s(v.canPurchase)||(Jr(a.requirements),n.value=!0,(f=v.onPurchase)==null||f.call(v))};const u=Qi(a);Ft(a.requirements)?a.requirements.unshift(u):a.requirements=[u,a.requirements],T(a,"visibility"),se(a,"visibility",Me.Visible),T(a,"classes"),T(a,"style"),T(a,"display"),T(a,"mark");for(const v of t)(p=v.postConstruct)==null||p.call(v,a);const l=t.reduce((v,f)=>{var b;return Object.assign(v,(b=f.getGatheredProps)==null?void 0:b.call(f,a))},{});return a[lt]=function(){const{display:v,visibility:f,style:b,classes:h,requirements:y,canPurchase:N,bought:E,mark:P,id:I,purchase:A}=this;return{display:v,visibility:f,style:s(b),classes:h,requirements:y,canPurchase:N,bought:E,mark:P,id:I,purchase:A,...l}},a})}function ep(e,t,n=[]){n=n.length===0?Yn(e,er):n;const i=Wn(t)?C(t):t;e.on("update",()=>{s(i)&&n.forEach(r=>r.purchase())})}function tp(e,t,n,i){return function(){e>>>=0,t>>>=0,n>>>=0,i>>>=0;let r=e+t|0;return e=t^t>>>9,t=n+(n<<3)|0,n=n<<21|n>>>11,i=i+1|0,r=r+i|0,n=n+r|0,(r>>>0)/4294967296}}const np={1:["b","c","d","f","g","h","i","j","k","l","m","n","p","q","r","s","t","v","w","x","y","z"],2:["a","e","o","u"],3:["br","cr","dr","fr","gr","pr","str","tr","bl","cl","fl","gl","pl","sl","sc","sk","sm","sn","sp","st","sw","ch","sh","th","wh"],4:["ae","ai","ao","au","a","ay","ea","ei","eo","eu","e","ey","ua","ue","ui","uo","u","uy","ia","ie","iu","io","iy","oa","oe","ou","oi","o","oy"],5:["turn","ter","nus","rus","tania","hiri","hines","gawa","nides","carro","rilia","stea","lia","lea","ria","nov","phus","mia","nerth","wei","ruta","tov","zuno","vis","lara","nia","liv","tera","gantu","yama","tune","ter","nus","cury","bos","pra","thea","nope","tis","clite"],6:["una","ion","iea","iri","illes","ides","agua","olla","inda","eshan","oria","ilia","erth","arth","orth","oth","illon","ichi","ov","arvis","ara","ars","yke","yria","onoe","ippe","osie","one","ore","ade","adus","urn","ypso","ora","iuq","orix","apus","ion","eon","eron","ao","omia"]},vr=[[1,2,5],[2,3,6],[3,4,5],[4,3,6],[3,4,2,5],[2,1,3,6],[3,4,2,5],[4,3,1,6],[3,4,1,4,5],[4,1,4,3,6]];function Fi(e){const t=vr[Math.floor(e()*vr.length)];let n="";for(let i=0;in-n*t*Math.max(Math.min(a,4-a,1),0);return[i(5),i(3),i(1)]}const br=hi();function ea(e,t,n,i){return Yi(e,function(){const r=tp(0,n>>0,n>>32,1);for(let V=0;V<12;V++)r();const a=Fi(r),u=Vn([.64,.75,.55],r),l=Vn([.18,.2,.25],r),c=Mn(0,Fi(r)),p=ot(0),v=Tt.indexOf(t);let f=r();const b=i.reduce((V,L)=>(V[L.type]=L.data,V),{});"increaseDiff"in b&&(f=f/2+.5),"decreaseDiff"in b&&(f=f/2),"relic"in b&&(f=1);const h=f+v+1,y=g.toolNodes.value.sandRelic!=null?ee("sandRelic")?2:1:0,N=ot(y),E=C(()=>("increaseRewards"in b?h+1:h)+N.value);let P="relic"in b?v+2:Math.ceil(r()*(v+2));"increaseLength"in b&&P++;const I=[],A=Nt(()=>I),B=C(()=>A.apply(0)),ce=[],le={};function ie({feature:V,canClick:L,modifier:$e,cost:tt,previewModifier:Nn,showETA:ut,previewCost:gt}){L=_e(L),ut=_e(ut);const St=dr(V);ce.push({shouldShowPreview:C(()=>s(L)&&St.value),modifier:Nt(()=>{const Dt=I.slice();return Dt.splice(Dt.indexOf($e),1,Nn),Dt}),cost:gt!=null?gt:tt}),I.push($e);const Xt=Pi(c,B,()=>Se(tt)),Ze=Ri(V,{display:ut==null?Xt:()=>s(ut)?Xt.value:"",direction:W.Down});return{isHovering:St,eta:Xt,tooltip:Ze}}const Q=[],Ie=G(0);let he=m.variable(Ie).times(0),U=0,be=!0;const je=C(()=>o.add(h,r()-.5).pow_base(2).times(10).times(he.evaluate()));for(let V=0;V=P-1?0:4};switch(li(L,r)){case"upgrades":const $=[];for(let x=0;x<4;x++){const H=li({add:1,mult:V===0&&x===0?0:1},r),K=je.value,Ae=kn(r);let ze="",Re,ae;switch(H){case"add":{const de=o.add(K,10).pow(r()/4+1);ze=`Gain ${xe(de)} ${c.displayName}/s`,he=he.add(de),Re=nt=>jt(()=>({addend:de,description:Ae,enabled:nt==null?ye.bought:()=>nt()&&ye.bought.value})),ae=jt(()=>({addend:de}));break}case"mult":{const de=r()*5+1;ze=`Multiply previous ${c.displayName} gain by x${xe(de)}.`;const nt=U;he=he.add(o.sub(de,1).times(nt)),Re=Xe=>Ce(()=>({multiplier:de,description:Ae,enabled:Xe==null?ye.bought:()=>Xe()&&ye.bought.value})),ae=Ce(()=>({multiplier:de}));break}}U=he.evaluate(),Ie.value++;const Pe=be,ye=mr(()=>({requirements:qn(()=>({resource:Cn(c),cost:K,requiresPay:()=>g.toolNodes.value.unobtainiumRelic==null})),display:{title:Ae,description:ze},visibility:Pe}));ie({feature:ye,canClick:()=>ye.canPurchase.value,modifier:Re(),cost:K,previewCost:C(()=>g.toolNodes.value.unobtainiumRelic==null?K:0),showETA:()=>!ye.bought.value,previewModifier:ae}),I.push(Re(()=>H==="add"?g.toolNodes.value.stoneRelic!=null:ee("stoneRelic"))),$.push(ye)}Q.push($);break;case"repeatables":const D=[];for(let x=0;x<3;x++){const H=li({add:1.5,mult:3},r),K=Ie.value,Ae=je.value,ze=kn(r);let Re="",ae,Pe,ye,de;const nt=m.variable(C(()=>ue.amount.value)).times(2);switch(H){case"add":{const Ge=o.add(Ae,10).times(r()+.5);Re=`Gain ${xe(Ge)} ${c.displayName}/s`,de=nt.add(1).times(Ae),he=he.add(C(()=>o.sub(Ie.value,K).times(2).add(1).pow(2).clampMax(100).times(Ge))),ae=C(()=>xe(o.times(Ge,s(ue.totalAmount)))+"/s"),Pe=jt(()=>({addend:()=>o.times(Ge,s(ue.totalAmount)),description:ze,enabled:()=>o.gt(s(ue.totalAmount),0)})),ye=jt(()=>({addend:()=>o.add(s(ue.totalAmount),ue.amountToIncrease.value).times(Ge)}));break}case"mult":{const Ge=r()*.75+1.25;Re=`Multiply previous ${c.displayName} gain by x${xe(Ge)}.`,de=nt.add(1).pow_base(Ge).times(Ae);const rt=U;he=he.add(C(()=>o.sub(Ie.value,K).times(2).add(1).pow(2).clampMax(100).pow_base(Ge).sub(1).times(rt))),ae=C(()=>"x"+xe(o.pow(Ge,s(ue.totalAmount)))),Pe=Ce(()=>({multiplier:()=>o.pow(Ge,s(ue.totalAmount)),description:ze,enabled:()=>o.gt(s(ue.totalAmount),0)})),ye=Ce(()=>({multiplier:()=>o.add(s(ue.totalAmount),ue.amountToIncrease.value).pow_base(Ge)}));break}}U=he.evaluate(),Ie.value++;const Xe=be,ue=gr(()=>({requirements:qn(()=>({resource:Cn(c),cost:de,maxBulkAmount:()=>g.toolNodes.value.diamondRelic!=null?o.dInf:1,requiresPay:()=>g.toolNodes.value.unobtainiumRelic==null})),display:()=>({title:ze,description:`${Re}

Amount: ${at(ue.amount.value)}${o.gt(s(ue.bonusAmount),0)?` [+${at(s(ue.bonusAmount))}]`:""}`,effectDisplay:s(ae),showAmount:!1}),visibility:Xe,limit:100,bonusAmount:()=>o.gt(ue.amount.value,0)?ee("dirtRelic")?2:g.toolNodes.value.dirtRelic!=null?1:0:0}),Hd);ie({feature:ue,canClick:()=>s(ue.canClick),modifier:Pe,cost:de,previewModifier:ye,previewCost:C(()=>g.toolNodes.value.unobtainiumRelic==null?en(de,ue.amountToIncrease.value):0),showETA:()=>!ue.maxed.value}),D.push(ue)}Q.push(D);break;case"conversion":{const x=Mn(0,Fi(r)),O=Vn([.64,.75,.55],r),H=je.value,K=r()/2+.25,Ae=r()/2+.25,ze=Ie.value,Re=U;he=he.add(C(()=>o.sub(Ie.value,ze).add(1).pow10().times(Re)));const ae=Ud(()=>({baseResource:Cn(c),gainResource:x,formula:$i=>$i.div(H).pow(K).times(C(()=>g.toolNodes.value.ironRelic!=null?ee("ironRelic")?4:2:1)),spend(){c.value=0}}));U=he.evaluate(),Ie.value+=2;const Pe=be,ye=kn(r),de=m.variable(x).pow(Ae).add(1),nt=Ce(()=>({multiplier:()=>de.evaluate(),description:ye,enabled:()=>o.gt(x.value,0)})),Xe=Ce(()=>({multiplier:()=>de.evaluate(o.add(x.value,ae.actualGain.value))})),ue=dd(()=>({display:{title:ye,description:j(()=>d("span",null,[_("Reset "),c.displayName,_(" for")," ",mi(x,o.clampMin(ae.actualGain.value,1))," ",x.displayName,d("br",null,null),d("div",null,[_("Next:")," ",mi(c,o.lt(ae.actualGain.value,1)?ae.currentAt.value:ae.nextAt.value)," ",c.displayName])]))},style:{width:"200px",minHeight:"100px"},canClick:()=>o.gte(ae.actualGain.value,1),prestigeResource:x,onClick:ae.convert,visibility:Pe})),{isHovering:Ge}=ie({feature:ue,canClick:()=>s(ue.canClick),modifier:nt,cost:H,previewCost:c,previewModifier:Xe}),rt=C(()=>Ge.value&&ue.canClick.value);Q.push([ue]);const On=dn(m.variable(x),rt,ae.actualGain),et=dn(de,rt,ae.actualGain);le[V*2]=j(()=>d(oe,null,[He(ue.visibility)?d("div",{style:"margin: 10px"},[_("You have")," ",d("h2",{style:{color:O,textShadow:`0px 0px 10px ${O}`}},[On()])," ",x.displayName,_(","),d("br",null,null),_("providing a "),et(),_("x multiplier to previous")," ",c.displayName,_(" gain")]):null,Ti(ue)])),Wd(this,ae,()=>Ye.value.lengthen(ae,Pe.value,!0,10)),de=C(()=>en(ae,o.add(Pe.value,1),!0,10)),nt=C(()=>o.pow(Re,Pe.value)),Xe=Ce(()=>({multiplier:nt,description:K,enabled:()=>He(rt.visibility)})),ue=U;he=he.add(C(()=>o.sub(Ie.value,H).add(1).times(3).pow(Re).times(ue))),U=he.evaluate(),Ie.value+=2;const Ge=Vn([.64,.75,.55],r),rt=zd(()=>({direction:W.Right,width:300,height:20,progress:()=>o.sub(x.value,ye.value).div(o.sub(de.value,ye.value)).toNumber(),visibility:O,xp:x,display:j(()=>d("span",null,[xe(x.value),_("/"),xe(de.value)])),fillStyle:`background-color: ${Ge}`,textStyle:"text-shadow: 5px 0 10px black"}));this.on("preUpdate",On=>{if(Ye.value.lengthet.state.id===e)&&He(rt.visibility)){let et=o.times(Mt.value,On);g.toolNodes.value.goldRelic!=null&&(et=o.times(ee("goldRelic")?.5:.25,Ye.value.length).add(1).times(et)),x.value=o.add(et,x.value)}}),I.push(Xe),Q.push([rt]),le[V*2]=j(()=>d(oe,null,[He(rt.visibility)?d("div",{style:"margin: 10px"},[_("You have "),d("h3",null,[K]),_(" Lv. "),at(Pe.value),_(","),d("br",null,null),_("providing a "),xe(nt.value),_("x multiplier to previous")," ",c.displayName,_(" gain"),d("br",null,null)]):null,Ti(rt)]));break}case"dimensions":{const x=kn(r),O=Mn(0,x+" energy"),H=Vn([.64,.75,.55],r),K=Ie.value,Ae=U;he=he.add(C(()=>o.sub(Ie.value,K).add(1).pow_base(32).add(1).log2().add(1).times(Ae)));const ze=C(()=>o.add(O.value,1).log2().add(1)),Re=Ce(()=>({multiplier:ze,description:x,enabled:()=>o.gt(O.value,0)}));I.push(Re);const ae=be,Pe=[];for(let ye=0;ye<4;ye++){const de=o.add(h,r()-.5).pow_base(2).times(10).recip(),nt=je.value,Xe=m.variable(C(()=>et.amount.value)),ue=Xe.pow_base(o.pow10(ye+1)).times(nt),Ge=["First","Second","Third","Fourth"][ye]+" "+x+" Dimension",rt=Mn(0,Ge),On=Xe.sub(1).pow_base(2).times(de).times(C(()=>o.add(et.amount.value,rt.value))),et=gr(()=>({display:{title:Ge,description:j(()=>d("div",null,[d("div",null,[_("Amount:")," ",xe(o.add(rt.value,et.amount.value))," ",_("["),at(et.amount.value),_("]")])])),effectDisplay:j(()=>d("span",null,[na()," ",ye===0?O.displayName:["First","Second","Third","Fourth"][ye-1]+" "+x+" Dimension",_("/s")])),showAmount:!1},style:{width:"400px"},effect:On,dimensions:rt,limit:100,energy:ye===0?O:void 0,requirements:qn(()=>({resource:Cn(c),cost:ue,maxBulkAmount:()=>ee("diamondRelic")!=null?o.dInf:1,requiresPay:()=>!ee("unobtainiumRelic")})),visibility:ae}));Pe.push(et);const $i=dr(et),nr=C(()=>s(et.canClick)&&$i.value),ta=new m({inputs:[Xe],evaluate(ir){return o.sub(ir,1).pow_base(2).times(de).times(o.add(ir,rt.value))}}),na=dn(ta,nr);ce.push({shouldShowPreview:nr,cost:C(()=>ee("unobtainiumRelic")?0:en(ue,et.amountToIncrease.value))});const ia=Pi(c,B,()=>Se(ue));Ri(et,{display:ia,direction:W.Down}),U=he.evaluate(),Ie.value++}this.on("preUpdate",ye=>{if(Ye.value.lengthde.state.id===e)&&He(ae)){let de=o.times(Mt.value,ye);g.toolNodes.value.platinumRelic!=null&&(de=o.times(ee("platinumRelic")?4:2,de));const nt=Pe[0].effect.evaluate();O.value=o.times(nt,de).add(O.value);for(let Xe=1;Xe<4;Xe++){const ue=Pe[Xe].effect.evaluate();Pe[Xe-1].dimensions.value=o.times(ue,de).add(Pe[Xe-1].dimensions.value)}}}),Q.push(Pe),le[V*2]=j(()=>d(oe,null,[He(ae)?d("div",{style:"margin: 10px"},[_("You have")," ",d("h2",{style:{color:H,textShadow:`0px 0px 10px ${H}`}},[xe(O.value)])," ",O.displayName,_(","),d("br",null,null),_("providing a "),xe(ze.value),_("x multiplier to previous")," ",c.displayName,_(" gain")]):null,Ss(...Pe)]));break}case"prestige":{const x=kn(r),O=be,H=r()/10+1.1,K=je.value;he=he.pow(H);const Ae=Qc(()=>({exponent:H,description:x,enabled:ae.bought}));U=he.evaluate(),Ie.value+=20;const ze=Q.filter((ye,de)=>de%2===0),Re=Zd(()=>({thingsToReset:ze,onReset(){c.value=0}})),ae=mr(()=>({display:{title:x,description:`Reset all previous ${a} content to raise all previous ${c.displayName} gain to the ^${xe(H)}`},style:{width:"200px",minHeight:"100px"},onPurchase:()=>{ee("unobtainiumRelic")||Re.reset()},visibility:O,requirements:qn(()=>({resource:Cn(c),cost:K,requiresPay:!1}))})),Pe=Ce(()=>({multiplier:0}));ie({feature:ae,canClick:()=>s(ae.canPurchase),modifier:Ae,cost:K,previewCost:C(()=>ee("unobtainiumRelic")?0:c.value),previewModifier:Pe,showETA:()=>!s(ae.bought)}),Q.push([ae]);break}}const tt={cache:"increaseCaches"in b?8:.8,generation:"increaseGens"in b?10:1,resourceMulti:"increaseResourceMults"in b?10:1,energyMulti:"increaseEnergyMults"in b?2.5:.25,influences:"increaseInfluences"in b?20:2,relic:0};let Nn=li(tt,r);V===P-1&&"relic"in b&&(Nn="relic");let ut="",gt,St,Xt,Ze,Dt,sn;switch(Nn){case"cache":Ze=Oi(r,i),ut=`Cache: Gain ${xe(o.div(E.value,12))}x your current ${Ze} (no modifiers).`,St=()=>{var x,O,H;return g.grantResource(Ze,o.times((H=(O=(x=g.resourceNodes.value[Ze])==null?void 0:x.state)==null?void 0:O.amount)!=null?H:0,o.div(E.value,12)))};break;case"generation":Ze=Oi(r,i);const $=o.pow(E.value,2).div(40).times(xt[Ze]);ut=`Gen: Gain ${xe($)} ${Ze}/s while plane is active.`,gt=x=>g.grantResource(Ze,o.times(x,$)),Xt=Ze;break;case"resourceMulti":Dt=Ze=Oi(r,i),sn=o.pow(E.value,2).div(10).pow_base(1.5),ut=`Resource Mult: Gain ${xe(sn)}x ${Ze} while plane is active.`;break;case"energyMulti":Dt="energy",sn=o.div(E.value,8).add(1),ut=`Energy Mult: Gain ${xe(sn)}x energy while plane is active.`;break;case"influences":const D=Object.keys(vt)[Math.floor(r()*Object.keys(vt).length)];ut=`Influence: Gain a portal influence (${vt[D].display})`,St=()=>{if(D in g.influenceNodes.value){br.warning(`You already have a ${vt[D].display} influence, skipping treasure`);return}const x={id:En(g.board),position:{...g.board.types.portal.nodes.value.find(O=>O.state.id===e).position},type:"influence",state:{type:D,data:vt[D].initialData}};g.board.placeInAvailableSpace(x),g.board.nodes.value.push(x)};break;case"relic":ut=t==="ultimatum"?"Win the game!":`Relic: Gain the ${t}-tier planar relic (${Pt[t]})`,St=()=>{if(t==="ultimatum"){tr.value=!0;return}if(`${t}Relic`in g.toolNodes.value)br.warning(`You already have a ${Pt[t]} relic, skipping treasure`);else{const x={id:En(g.board),position:{...g.board.types.portal.nodes.value.find(O=>O.state.id===e).position},type:"passive",state:`${t}Relic`};g.board.placeInAvailableSpace(x),g.board.nodes.value.push(x)}}}const ri=be,Fn=je.value,on=Od(()=>({requirements:qn(()=>({resource:Cn(c),cost:Fn})),visibility:ri,display:{requirement:`${xe(Fn)} ${c.displayName}`,effectDisplay:ut},style:"width: 100%",classes:{final:V===P-1},update:gt,onComplete:St,link:Xt,effectedResource:Dt,resourceMulti:sn})),xi=Pi(c,B,Fn);Ri(on,{display:()=>on.earned.value?"":xi.value,direction:W.Down}),Q.push([on]),be=C(()=>on.earned.value)}const pt=Yn(Q,er),Lt=Yn(Q,Qr);I.push(Ce(()=>({multiplier:()=>ee("silver")?4:2,description:()=>(ee("silver")?"Empowered ":"")+Ve.silver.name,enabled:()=>g.toolNodes.value.silver!=null})),Ce(()=>({multiplier:()=>o.add(1,(ee("diamond")?2:1)*pt.filter(V=>V.bought.value).length/10),description:()=>(ee("diamond")?"Empowered ":"")+Ve.diamond.name,enabled:()=>g.toolNodes.value.diamond!=null})),Ce(()=>({multiplier:()=>o.div(p.value,6e3).times(ee("emerald")?2:1).add(1),description:()=>(ee("emerald")?"Empowered ":"")+Ve.emerald.name,enabled:()=>g.toolNodes.value.emerald!=null})),Ce(()=>({multiplier:()=>o.div(Lt.reduce((V,L)=>V.add(s(L.totalAmount)),o.dZero),100).times(ee("gravelRelic")?2:1).add(1).pow(.75),description:()=>(ee("gravelRelic")?"Empowered ":"")+Pt.gravel,enabled:()=>g.toolNodes.value.gravelRelic!=null})),Ce(()=>({multiplier:()=>o.add(g.energy.value,1).log10().add(1).pow(ee("beryliumRelic")?.5:.25),description:()=>(ee("beryliumRelic")?"Empowered ":"")+Pt.berylium,enabled:()=>g.toolNodes.value.beryliumRelic!=null})));const ft=Nt(()=>[Ce(()=>({multiplier:()=>{var V,L,$e;return o.add(($e=(L=(V=g.board.types.booster.nodes.value[0])==null?void 0:V.state)==null?void 0:L.level)!=null?$e:0,1)},description:"Booster",enabled:()=>{var V,L,$e;return($e=(L=(V=g.board.types.booster.nodes.value[0])==null?void 0:V.state)==null?void 0:L.portals.includes(e))!=null?$e:!1}})),Ce(()=>({multiplier:()=>o.times(ee("coalRelic")?.2:.1,Ye.value.length).add(1),description:()=>(ee("coalRelic")?"Empowered ":"")+Pt.coal,enabled:()=>g.toolNodes.value.coalRelic!=null}))]),Mt=C(()=>ft.apply(1)),[ei,Mi]=zn(()=>[{title:`${it(c.displayName)} Gain`,modifier:A,base:0,unit:"/s"},{title:`${it(c.displayName)} Time Speed`,modifier:ft,base:1,visible:()=>o.gt(Mt.value,1)}]),_n=G(!1),ti=j(()=>d(Ot,{modelValue:_n.value,"onUpdate:modelValue":V=>_n.value=V},{header:()=>d("h2",null,[_("Modifiers")]),body:()=>st(ei)}));this.on("preUpdate",V=>{if(!g.activePortals.value.some($e=>$e.state.id===e))return;const L=o.times(Mt.value,V);p.value=o.add(p.value,L),Ye.value.length{var tt;(tt=$e.update)==null||tt.call($e,L)})}),ep(this,()=>Ye.value.lengthYe.value.length{const V=ce.find(L=>L.shouldShowPreview.value);return V?o.neg(Se(V.cost)):0}),An=C(()=>{const V=ce.find(L=>L.shouldShowPreview.value);return V&&V.modifier?o.sub(V.modifier.apply(0),B.value):0}),Zt=dn(m.variable(0).add(c),()=>o.neq(Pn.value,0),Pn),Rn=dn(m.variable(0).add(B),()=>o.neq(An.value,0),An),ni=C(()=>{const V=[];return Ye.value.forEach(L=>{L.link&&V.push(L.link)}),V}),ii=C(()=>{const V={};return Ye.value.forEach(L=>{L.effectedResource!=null&&L.resourceMulti!=null&&(V[L.effectedResource]!=null?V[L.effectedResource]=o.times(V[L.effectedResource],L.resourceMulti):V[L.effectedResource]=L.resourceMulti)}),V}),Ye=C(()=>{const V=[];for(let L=1;Lo.lt(Ye.value.length,P)&&Q.some(V=>V.some(L=>"earned"in L&&s(L.earned)||"bought"in L&&s(L.bought)?!1:("canClick"in L&&s(L.canClick)||"canPurchase"in L&&s(L.canPurchase),!0)))),Ii=C(()=>{const V=Q.findIndex(($e,tt)=>tt>0&&tt%2===0&&!Q[tt-1][0].earned.value);let L;return V===-1?L=Q:L=Q.slice(0,V),L.map(($e,tt)=>tt in le?st(le[tt]):Ti(...$e))});return{tier:ot(t),seed:ot(n),influences:ot(i),name:a,color:u,resource:c,background:l,style:{background:l,"--background":l},features:Q,resourceTabCollapsed:Mi,links:ni,resourceMultis:ii,earnedTreasures:Ye,showNotif:Si,timeActive:p,bonusRewardsLevel:N,display:j(()=>d(oe,null,[d(gi,{class:"nav-container",style:"z-index: 5"},{default:()=>[d("span",{class:"nav-segment"},[d("h2",null,[a])]),d("span",{class:"nav-segment"},[d("h3",null,[t,_("-tier")])]),i.length===0?null:d("span",{class:"nav-segment"},[d(Fe,{display:i.map(V=>{const L=vt[V.type].description;return typeof L=="function"?L(V):L}).join("
"),direction:W.Down,style:"width: 300px"},{default:()=>[d("h3",null,[i.length,_(" influences")])]})]),d("span",{class:"nav-segment"},[d("button",{class:"button",style:"display: inline",onClick:()=>_n.value=!0},[_("modifiers")])])]}),d(gi,{class:"nav-container"},{default:()=>[d("span",{class:"nav-segment"},[d("h3",{style:`color: ${u}; text-shadow: 0px 0px 10px ${u};`},[st(Zt)])," ",c.displayName]),d("span",{class:"nav-segment"},[_("("),d("h3",{style:`color: ${u}; text-shadow: 0px 0px 10px ${u};`},[o.gt(B.value,0)?"+":"",st(Rn)]),_("/s)")]),o.neq(Mt.value,1)?d("span",{class:"nav-segment"},[_("Speed: "),xe(Mt.value),_("x")]):null]}),d(Ed,{height:"60px"},null),Ii.value,Ye.value.length+1d("div",null,[d("span",null,[a]),d("span",{style:"font-size: large; vertical-align: sub;"},[" ",Ye.value.length,_("/"),P,_(" treasures")])]))}})}function Oi(e,t){t=t.filter(l=>l.type==="increaseResources"||l.type==="decreaseResources");const n=Object.keys(xt).reduce((l,c)=>{let p=xt[c];return t.filter(v=>v.data===c).forEach(v=>{v.type==="increaseResources"?p*=1e3:p/=1e3}),l+p},0),i=Object.keys(xt),r=Math.floor(e()*n);let a=0,u;for(let l=0;ll+c),i=Object.keys(e);let r=0,a=null;const u=t()*n;for(let l=0;le===g.board.selectedNode.value?{text:"Mining"}:Object.keys(g.resourceNodes.value).length===0?{text:"Click me!"}:null,actionDistance:Math.PI/4,actions:[qt,Vt("mine")],progress:e=>ke(e)?new o(e.state.progress).toNumber():0,progressDisplay:rn.Outline,progressColor:"var(--accent2)",classes:e=>({running:ke(e)}),draggable:!0},op={shape:Le.Diamond,size:50,title:"\u{1F6E0}\uFE0F",label:e=>e===g.board.selectedNode.value?{text:"Broken Forge"}:null,actionDistance:Math.PI/4,actions:[{id:"repair",icon:"build",tooltip:{text:"Repair - 100 energy"},onClick(e){o.gte(g.energy.value,100)&&(e.type="factory",g.energy.value=o.sub(g.energy.value,100),g.helpModals.factory.showModal.value=!0)},confirmationLabel:()=>o.gte(g.energy.value,100)?{text:"Tap again to confirm"}:{text:"Cannot afford",color:"var(--danger)"}}],draggable:!0},lp={shape:Le.Diamond,size:50,title:"\u{1F6E0}\uFE0F",label:e=>{var t,n;if(e===g.board.selectedNode.value)return{text:e.state==null?"Forge - Drag a resource to me!":`Forging ${Ve[e.state].name}`};if(((t=g.board.draggingNode.value)==null?void 0:t.type)==="resource"){const i=((n=g.board.draggingNode.value)==null?void 0:n.state).type,r=e.state===i?"Disconnect":g.toolNodes.value[i]==null?Ve[i].name:"Already crafted",a=e.state===i||g.toolNodes.value[i]==null?"var(--accent2)":"var(--danger)";return{text:r,color:a}}return null},actionDistance:Math.PI/4,actions:[{id:"deselect",icon:"close",tooltip:{text:"Disconnect resource"},onClick(e){e.state=void 0,g.board.selectedAction.value=null,g.board.selectedNode.value=null},visibility:e=>e.state!=null},{id:"craft",icon:"done",tooltip:e=>({text:`Forge ${Ve[e.state].name} - ${We(Ve[e.state].cost)} energy`}),onClick(e){const t=Ve[e.state];if(o.gte(g.energy.value,t.cost)&&g.toolNodes.value[e.state]==null){g.energy.value=o.sub(g.energy.value,t.cost);const n={id:En(g.board),position:{...e.position},type:t.type,state:"state"in t?t.state:void 0};if(g.board.placeInAvailableSpace(n),g.board.nodes.value.push(n),e.state==="iron"){const i={id:En(g.board),position:{...e.position},type:"trashCan"};g.board.placeInAvailableSpace(i),g.board.nodes.value.push(i)}g.board.selectedAction.value=null,g.board.selectedNode.value=null,e.state=void 0,t.type in g.helpModals&&(g.helpModals[t.type].showModal.value=!0)}},fillColor:e=>o.gte(g.energy.value,Ve[e.state].cost)&&g.toolNodes.value[e.state]==null?"var(--accent2)":"var(--danger)",visibility:e=>e.state!=null,confirmationLabel:e=>o.gte(g.energy.value,Ve[e.state].cost)?g.toolNodes.value[e.state]==null?{text:"Tap again to confirm"}:{text:"Already crafted",color:"var(--danger)"}:{text:"Cannot afford",color:"var(--danger)"}},Vt("factory")],progress:e=>e.state==null||g.toolNodes.value[e.state]!=null?0:o.div(o.sqrt(g.energy.value),o.sqrt(Ve[e.state].cost)).clampMax(1).toNumber(),progressDisplay:rn.Fill,progressColor:e=>e.state!=null&&o.gte(g.energy.value,Ve[e.state].cost)?"var(--accent2)":"var(--foreground)",canAccept(e,t){var i;if(t.type!=="resource")return!1;const n=((i=g.board.draggingNode.value)==null?void 0:i.state).type;return g.toolNodes.value[n]==null},onDrop(e,t){const n=t.state.type;e.state===n?e.state=void 0:e.state=n,g.board.selectedNode.value=e},draggable:!0},up=["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII","XIII","XIV","XV","XVI"],cp={shape:Le.Circle,size:50,title:e=>it(e.state.type),subtitle:e=>We(e.state.amount),otherSubtitle:e=>up[Tt.indexOf(e.state.type)],progress:e=>id(e.state.type),onClick(){},progressDisplay:rn.Outline,progressColor:"var(--accent3)",classes:e=>{var t;return{"affected-node":g.dowsing.value!=null&&ke(g.dowsing.value)&&g.dowsing.value.state.resources.includes(e.state.type)||o.neq((t=g.planarMultis.value[e.state.type])!=null?t:1,1)}},draggable:!0},dp={shape:Le.Circle,size:50,title:e=>{const t=e.state;return t.includes("Relic")?Pt[t.slice(0,-5)]:Ve[t].name},label:e=>e===g.board.selectedNode.value?{text:hd[e.state].description(ee(e.state))}:null,outlineColor:"var(--bought)",classes:e=>({"affected-node":ee(e.state)}),draggable:!0},pp={shape:Le.Diamond,size:50,title:"\u{1F962}",label:e=>e===g.board.selectedNode.value?{text:e.state.resources.length===0?"Dowsing - Drag a resource to me!":`Dowsing (${e.state.resources.length}/${o.add(e.state.maxConnections,g.computedBonusConnectionsModifier.value)})`}:Wr(e,t=>`Double ${t} odds`),actionDistance:Math.PI/4,actions:[an,wn(e=>e.add(2).pow_base(100),16),qt,Vt("dowsing")],classes:e=>({running:ke(e)}),canAccept:Hr,onDrop:Yr,draggable:!0},fp={shape:Le.Diamond,size:50,title:"\u26F0\uFE0F",label:e=>e===g.board.selectedNode.value?{text:e.state.resources.length===0?"Quarry - Drag a resource to me!":`Quarrying (${e.state.resources.length}/${o.add(e.state.maxConnections,g.computedBonusConnectionsModifier.value)})`}:Wr(e,t=>`Gather ${yt(o.div(g.dropRates[t].computedModifier.value,100))} ${t}/s`),actionDistance:Math.PI/4,actions:[an,wn(e=>e.add(2).pow_base(1e4),16),qt,Vt("quarry")],progress:e=>ke(e)?o.eq(g.quarryProgressRequired.value,0)?0:new o(e.state.progress).div(g.quarryProgressRequired.value).toNumber():0,progressDisplay:rn.Outline,progressColor:"var(--accent2)",canAccept:Hr,onDrop:Yr,classes:e=>({running:ke(e)}),draggable:!0},gp={shape:Le.Diamond,size:50,title:"\u{1F50C}",label:e=>e===g.board.selectedNode.value?{text:e.state.tools.length===0?"Empowerer - Drag a tool to me!":`Empowering (${e.state.tools.length}/${o.add(e.state.maxConnections,g.computedBonusConnectionsModifier.value)})`}:ed(e,t=>t.includes("Relic")?`Double ${Pt[t.slice(0,-5)]}'s effect`:`Double ${Ve[t].name}'s effect`),actionDistance:Math.PI/4,actions:[an,wn(e=>e.add(3).pow_base(1e3),24),qt,Vt("empowerer")],canAccept:td,onDrop:nd,classes:e=>({running:ke(e)}),draggable:!0},mp={shape:Le.Diamond,size:50,title:"\u26E9\uFE0F",label:e=>{if(e===g.board.selectedNode.value)return{text:e.state.tier==null?"Portal Spawner - Drag a resource to me!":`Spawning ${e.state.tier}-tier portal`};const t=g.board.draggingNode.value;if((t==null?void 0:t.type)==="resource"){const n=t.state.type;return{text:e.state.tier===n?"Disconnect":`${it(n)}-tier Portal`,color:"var(--accent2)"}}else if((t==null?void 0:t.type)==="influence"){const n=t.state.type;if(e.state.influences.includes(n))return{text:"Disconnect",color:"var(--accent2)"};const r=vt[n].cost;let a;return o.lt(r,1e3)?a=We(r):a=Li(r,0),{text:`Add influence (${a}x cost)`,color:"var(--accent2)"}}else if((t==null?void 0:t.type)==="portal")return{text:`Copy tier/influences from ${ge[t.state.id].name}`};return null},actionDistance:Math.PI/4,actions:[{id:"deselect",icon:"close",tooltip:{text:"Disconnect all"},onClick(e){e.state={...e.state,tier:void 0,influences:[]},g.board.selectedAction.value=null,g.board.selectedNode.value=null},visibility:e=>{const{tier:t,influences:n}=e.state;return t!=null||n.length>0}},{id:"makePortal",icon:"done",tooltip:e=>({text:`Spawn ${e.state.tier}-tier portal - ${We(g.computedPortalCost.value)} energy`}),fillColor:()=>o.gte(g.energy.value,g.computedPortalCost.value)?"var(--accent2)":"var(--danger)",confirmationLabel:()=>o.gte(g.energy.value,g.computedPortalCost.value)?{text:"Tap again to confirm"}:{text:"Cannot afford",color:"var(--danger)"},onClick(e){if(o.lt(g.energy.value,g.computedPortalCost.value))return;let t=0;for(;`portal-${t}`in ge;)t++;g.energy.value=o.sub(g.energy.value,g.computedPortalCost.value);const{tier:n,influences:i}=e.state;Zi(ea(`portal-${t}`,n,Math.floor(Math.random()*4294967296),i.map(a=>g.influenceNodes.value[a].state)),Z);const r={id:En(g.board),position:{...e.position},type:"portal",state:{id:`portal-${t}`,powered:!1}};g.board.placeInAvailableSpace(r),g.board.nodes.value.push(r),g.board.selectedAction.value=null,g.board.selectedNode.value=null,e.state={tier:void 0,influences:[]}},visibility:e=>e.state.tier!=null},Vt("portalGenerator")],canAccept(e,t){return t.type==="resource"||t.type==="influence"||t.type==="portal"},onDrop(e,t){if(t.type==="resource"){const n=t.state.type,i=e.state.tier;e.state={...e.state,tier:n===i?void 0:n}}else if(t.type==="influence"){const n=t.state.type,i=e.state.influences;i.includes(n)?e.state={...e.state,influences:i.filter(r=>r!==n)}:e.state={...e.state,influences:[...i,n]}}else if(t.type==="portal"){const n=ge[t.state.id];e.state={...e.state,tier:n.tier.value,influences:n.influences.value.map(i=>i.type)}}g.board.selectedNode.value=e},progress:e=>e.state.tier==null?0:o.div(o.sqrt(g.energy.value),o.sqrt(g.computedPortalCost.value)).clampMax(1).toNumber(),progressDisplay:rn.Fill,progressColor:e=>e.state.tier!=null&&o.gte(g.energy.value,g.computedPortalCost.value)?"var(--accent2)":"var(--foreground)",draggable:!0},vp={shape:Le.Diamond,size:50,title:"\u{1F300}",label:e=>e===g.board.selectedNode.value?{text:`Portal to ${ge[e.state.id].name}`,color:ge[e.state.id].color}:null,actionDistance:Math.PI/4,actions:[qt],classes:e=>({running:ke(e),showNotif:ge[e.state.id].showNotif.value,"affected-node":g.booster.value!=null&&ke(g.booster.value)&&g.booster.value.state.portals.includes(e.state.id)}),outlineColor:e=>ge[e.state.id].background,draggable:!0},hp={shape:e=>e.state.type==="increaseResources"||e.state.type==="decreaseResources"?Le.Diamond:Le.Circle,size:50,title:e=>vt[e.state.type].display,otherSubtitle:e=>{const t=vt[e.state.type].cost;return o.lt(t,1e3)?`${We(t)}x cost`:`${Li(t,0)}x cost`},label:e=>{if(e===g.board.selectedNode.value){const n=e.state,i=vt[n.type].description;return{text:typeof i=="function"?i(n):i}}const t=g.board.draggingNode.value;if((t==null?void 0:t.type)==="resource"){const n=t.state.type,{type:i,data:r}=e.state;let a;if(Array.isArray(r)&&r.includes(n))a="Disconnect";else if(i==="increaseResources")a=`Increase ${it(n)} odds`;else if(i==="decreaseResources")a=`Decrease ${it(n)} odds`;else return null;return{text:a,color:"var(--accent2)"}}return null},actionDistance:Math.PI/4,actions:[an],canAccept:(e,t)=>t.type!=="resource"?!1:Array.isArray(e.state.data),onDrop:(e,t)=>{if(t.type!=="resource")return;const n=t.state.type,i=e.state.data;i!=null&&(i.includes(n)?e.state={...e.state,data:i.filter(r=>r!==n)}:e.state={...e.state,data:[...i,n]},g.board.selectedNode.value=e)},outlineColor:"var(--danger)",draggable:!0},bp={shape:Le.Diamond,size:50,title:"\u231B",label:e=>e===g.board.selectedNode.value?{text:e.state.portals.length===0?"Booster - Drag a portal to me!":`Boosting by ${We(o.add(1,e.state.level))}x (${e.state.portals.length}/${o.add(e.state.maxConnections,g.computedBonusConnectionsModifier.value)})`}:yi(e,t=>`Boost ${ge[t].name}'s speed`),actionDistance:Math.PI/4,actions:[an,wn(e=>e.add(6).pow_base(1e3)),{id:"increaseBoost",icon:"arrow_upward",tooltip(e){return{text:`Increase boost - ${We(si.evaluate(e.state.level))} energy`}},fillColor(e){return o.gte(g.energy.value,si.evaluate(e.state.level))?"var(--bought)":"var(--locked)"},confirmationLabel(e){return o.gte(g.energy.value,si.evaluate(e.state.level))?{text:"Tap again to confirm"}:{text:"Cannot afford",color:"var(--danger)"}},onClick(e){const t=si.evaluate(e.state.level);o.gte(g.energy.value,t)&&(g.energy.value=o.sub(g.energy.value,t),e.state={...e.state,level:o.add(e.state.level,1)},g.board.selectedAction.value=null)}},qt,Vt("booster")],canAccept:wi,onDrop:_i,classes:e=>({running:ke(e)}),draggable:!0},yp={shape:Le.Diamond,size:50,title:"\u{1F916}",label:e=>e===g.board.selectedNode.value?{text:e.state.portals.length===0?"Upgrader - Drag a portal to me!":`Auto-Upgrading (${e.state.portals.length}/${o.add(e.state.maxConnections,g.computedBonusConnectionsModifier.value)})`}:yi(e,t=>`Auto-buy ${ge[t].name}'s upgrades and prestiges`),actionDistance:Math.PI/4,actions:[an,wn(e=>e.add(4).pow_base(1e6)),qt,Vt("upgrader")],canAccept:wi,onDrop:_i,classes:e=>({running:ke(e)}),draggable:!0},wp={shape:Le.Diamond,size:50,title:"\u{1F9BE}",label:e=>e===g.board.selectedNode.value?{text:e.state.portals.length===0?"Automator - Drag a portal to me!":`Automatating (${e.state.portals.length}/${o.add(e.state.maxConnections,g.computedBonusConnectionsModifier.value)})`}:yi(e,t=>`Auto-buy ${ge[t].name}'s repeatables and dimensions`),actionDistance:Math.PI/4,actions:[an,wn(e=>e.add(4).pow_base(1e6)),qt,Vt("automator")],canAccept:wi,onDrop:_i,classes:e=>({running:ke(e)}),draggable:!0},_p={shape:Le.Diamond,size:50,title:"\u{1F4B1}",label:e=>e===g.board.selectedNode.value?{text:e.state.portals.length===0?"Investments - Drag a portal to me!":`Investing (${e.state.portals.length}/${o.add(e.state.maxConnections,g.computedBonusConnectionsModifier.value)})`}:yi(e,t=>`Passively generate ${ge[t].name}'s conversions`),actionDistance:Math.PI/4,actions:[an,wn(e=>e.add(3).pow_base(1e8)),qt,Vt("investments")],canAccept:wi,onDrop:_i,classes:e=>({running:ke(e)}),draggable:!0},Np={shape:Le.Diamond,size:50,title:"\u{1F5D1}\uFE0F",label:e=>{var t;if(e===g.board.selectedNode.value)return{text:"Trash Can - Drag a portal to me!"};if(((t=g.board.draggingNode.value)==null?void 0:t.type)==="portal"){const n=g.board.draggingNode.value.state.id;return{text:`Delete ${ge[n].name}!`,color:"var(--danger)"}}return null},canAccept:(e,t)=>t.type==="portal",onDrop:(e,t)=>{const n=t.state.id;Xi(ge[n]),delete Z.layers[n],g.board.state.value.nodes=g.board.state.value.nodes.filter(i=>i!==t),g.booster.value&&(g.booster.value.state={...g.booster.value.state,portals:g.booster.value.state.portals.filter(i=>i!==n)}),g.upgrader.value&&(g.upgrader.value.state={...g.upgrader.value.state,portals:g.upgrader.value.state.portals.filter(i=>i!==n)}),g.automator.value&&(g.automator.value.state={...g.automator.value.state,portals:g.automator.value.state.portals.filter(i=>i!==n)}),g.investments.value&&(g.investments.value.state={...g.investments.value.state,portals:g.investments.value.state.portals.filter(i=>i!==n)}),Z.tabs=Z.tabs.filter(i=>i!==n)},draggable:!0},yr=hi(),Cp={mine:sp,brokenFactory:op,factory:lp,resource:cp,passive:dp,dowsing:pp,quarry:fp,empowerer:gp,portalGenerator:mp,portal:vp,influence:hp,booster:bp,upgrader:yp,automator:wp,investments:_p,trashCan:Np},g=Yi("main",function(){const e=Mn(0,"energy"),t=C(()=>h.types.resource.nodes.value.reduce(($,D)=>($[D.state.type]=D,$),{})),n=C(()=>({...h.types.passive.nodes.value.reduce(($,D)=>($[D.state]=D,$),{}),sand:h.types.dowsing.nodes.value[0],wood:h.types.quarry.nodes.value[0],coal:h.types.empowerer.nodes.value[0],iron:h.types.portalGenerator.nodes.value[0],gold:h.types.booster.nodes.value[0],platinum:h.types.upgrader.nodes.value[0],berylium:h.types.automator.nodes.value[0],ultimatum:h.types.investments.nodes.value[0]})),i=C(()=>Object.keys(Pt).filter($=>`${$}Relic`in n.value).length),r=C(()=>({...h.types.influence.nodes.value.reduce(($,D)=>($[D.state.type]=D,$),{})})),a=C(()=>({...h.types.portal.nodes.value.reduce(($,D)=>($[D.state.id]=D,$),{})})),u=C(()=>Tt.reduce(($,D)=>{var O,H,K;const x=(K=(H=(O=t.value[D])==null?void 0:O.state)==null?void 0:H.amount)!=null?K:0;return $[D]=o.floor(qi.invert(x)),$},{})),l=mn({}),c=mn({});Gt(()=>{Tt.forEach($=>{ht(()=>u.value[$],(D,x)=>{const O=o.sub(D,x);o.gt(O,1)&&te.active===Z.id&&yr.info(d("div",null,[d("h3",null,[o.eq(D,1)?`${it($)} discovered`:`${it($)} is now Level ${at(D)}`,_("!")]),o.gt(O,1)?d("div",null,[_("Gained "),at(O),_(" levels")]):null]))})})});const p=C(()=>Q.filter($=>{var D,x;return(x=(D=$.value)==null?void 0:D.state)==null?void 0:x.powered}).length+h.types.portal.nodes.value.filter($=>$.state.powered).length),v=C(()=>{let $=p.value;return n.value.copperRelic!=null&&($--,ee("copperRelic")&&$--),$}),f=C(()=>{const $=v.value;return o.lt($,0)?0:o.eq($,0)?10:o.add($,1).pow_base(100).div(10).times(.99)}),b=C(()=>{if(P.value==null)return 0;let D=P.value.state.resources.reduce((x,O)=>o.div(100,Zt[O].computedModifier.value).add(x),o.dZero);return n.value.silverRelic!=null&&(D=o.div(D,o.add(p.value,1)),ee("silverRelic")&&(D=o.div(D,o.add(p.value,1)))),D}),h=Gc($=>({startNodes:()=>[{position:{x:0,y:0},type:"mine",state:{progress:0,powered:!1}},{position:{x:0,y:-200},type:"brokenFactory"}],types:Cp,style:{position:"absolute",top:0,left:0,right:0,bottom:0,overflow:"hidden"},links(){const D=[];if(D.push(...Object.keys(l).filter(fr(y.value)).map(x=>({startNode:y.value,endNode:t.value[x],stroke:"var(--accent3)",strokeWidth:5}))),N.value!=null&&N.value.state!=null&&D.push({startNode:N.value,endNode:t.value[N.value.state],stroke:"var(--foreground)",strokeWidth:4}),E.value!=null&&E.value.state.resources.forEach(x=>{D.push({startNode:E.value,endNode:t.value[x],stroke:ke(E.value)?"var(--accent1)":"var(--foreground)",strokeWidth:4})}),P.value!=null&&P.value.state.resources.forEach(x=>{D.push({startNode:P.value,endNode:t.value[x],stroke:x in c?"var(--accent3)":"var(--foreground)",strokeWidth:4})}),I.value!=null&&I.value.state.tools.forEach(x=>{D.push({startNode:I.value,endNode:n.value[x],stroke:ke(I.value)?"var(--accent1)":"var(--foreground)",strokeWidth:4})}),A.value!=null){const x=A.value.state;x.tier!=null&&D.push({startNode:A.value,endNode:t.value[x.tier],stroke:"var(--foreground)",strokeWidth:4}),x.influences.forEach(O=>{D.push({startNode:A.value,endNode:r.value[O],stroke:"var(--foreground)",strokeWidth:4})}),$.types.portal.nodes.value.forEach(O=>{const H=ge[O.state.id];return Tt.filter(fr(O)).forEach(K=>{let Ae;if(H.links.value.includes(K))Ae="var(--accent3)";else if(K in H.resourceMultis.value)Ae="var(--accent1)";else return;D.push({startNode:O,endNode:t.value[K],stroke:ke(O)?Ae:"var(--foreground)",strokeWidth:4})}),D})}return B.value!=null&&B.value.state.portals.filter(x=>a.value[x]!=null).forEach(x=>{D.push({startNode:B.value,endNode:a.value[x],stroke:ke(B.value)?"var(--accent1)":"var(--foreground)",strokeWidth:4})}),ce.value!=null&&ce.value.state.portals.filter(x=>a.value[x]!=null).forEach(x=>{D.push({startNode:ce.value,endNode:a.value[x],stroke:"var(--foreground)",strokeWidth:4})}),le.value!=null&&le.value.state.portals.filter(x=>a.value[x]!=null).forEach(x=>{D.push({startNode:le.value,endNode:a.value[x],stroke:"var(--foreground)",strokeWidth:4})}),ie.value!=null&&ie.value.state.portals.filter(x=>a.value[x]!=null).forEach(x=>{D.push({startNode:ie.value,endNode:a.value[x],stroke:"var(--foreground)",strokeWidth:4})}),Object.values(r.value).forEach(x=>{const O=x.state;(O.type==="increaseResources"||O.type==="decreaseResources")&&O.data.forEach(H=>{D.push({startNode:x,endNode:t.value[H],stroke:"var(--foreground)",strokeWidth:4})})}),D}})),y=C(()=>h.types.mine.nodes.value[0]),N=C(()=>h.types.factory.nodes.value[0]),E=C(()=>n.value.sand),P=C(()=>n.value.wood),I=C(()=>n.value.coal),A=C(()=>n.value.iron),B=C(()=>n.value.gold),ce=C(()=>n.value.platinum),le=C(()=>n.value.berylium),ie=C(()=>n.value.ultimatum),Q=[y,E,P,I,B,ce,le,ie];function Ie($,D){let x=t.value[$];if(D=o.times(D,Rn[$].computedModifier.value),x==null)x={id:En(h),position:{...y.value.position},type:"resource",state:{type:$,amount:D}},h.placeInAvailableSpace(x),h.nodes.value.push(x);else{const O=x.state;x.state={...O,amount:o.add(O.amount,D)}}}const he=C(()=>Object.keys(xt).reduce(($,D)=>$+new o(Zt[D].computedModifier.value).toNumber(),0)),U=C(()=>{const $={};return h.types.portal.nodes.value.forEach(D=>{if(!ke(D))return;const O=ge[D.state.id].resourceMultis.value;Object.keys(O).forEach(H=>{$[H]!=null?$[H]=o.times($[H],O[H]):$[H]=O[H]})}),$}),be=Nt(()=>Tt.map($=>jt(()=>({description:()=>it($),addend:()=>u.value[$],enabled:()=>o.gt(u.value[$],0)})))),je=C(()=>be.apply(0)),pt=Nt(()=>[jt(()=>({addend:je,description:"Resource Levels"})),Ce(()=>({multiplier:()=>o.pow(An.value,je.value),description:()=>`${zt(An.value,3)}x per Resource Level`})),Ce(()=>({multiplier:()=>ee("stone")?4:2,description:()=>(ee("stone")?"Empowered ":"")+Ve.stone.name,enabled:()=>n.value.stone!=null})),Ce(()=>({multiplier:()=>{var $;return($=U.value.energy)!=null?$:1},description:"Planar Treasures",enabled:()=>{var $;return o.neq(($=U.value.energy)!=null?$:1,1)}})),jt(()=>({addend:()=>o.pow(100,v.value).div(10).neg(),description:"Powered Machines (100^n/10 energy/s)",enabled:()=>o.gt(v.value,0)}))]),Lt=C(()=>pt.apply(0)),ft=Nt(()=>[jt(()=>({addend:()=>ee("unobtainium")?2:1,description:()=>(ee("unobtainium")?"Empowered ":"")+Ve.unobtainium.name,enabled:()=>n.value.unobtainium!=null}))]),Mt=C(()=>ft.apply(0)),ei=Nt(()=>[Ce(()=>({multiplier:()=>ee("dirt")?4:2,description:()=>(ee("dirt")?"Empowered ":"")+Ve.dirt.name,enabled:()=>n.value.dirt!=null})),Ce(()=>({multiplier:()=>o.pow(i.value,ee("woodRelic")?2:1),description:()=>(ee("woodRelic")?"Empowered ":"")+Pt.wood,enabled:()=>n.value.woodRelic!=null}))]),Mi=C(()=>ei.apply(1)),_n=Nt(()=>[Ce(()=>({multiplier:()=>ee("gravel")?4:2,description:()=>(ee("gravel")?"Empowered ":"")+Ve.gravel.name,enabled:()=>n.value.gravel!=null}))]),ti=C(()=>_n.apply(1)),Pn=Nt(()=>[jt(()=>({addend:()=>ee("copper")?.004:.002,description:()=>(ee("copper")?"Empowered ":"")+Ve.copper.name,enabled:()=>n.value.copper!=null}))]),An=C(()=>Pn.apply(1.01)),Zt=Object.keys(xt).reduce(($,D)=>{const x=Nt(()=>[Ce(()=>({multiplier:2,description:"Dowsing",enabled:()=>E.value!=null&&ke(E.value)&&E.value.state.resources.includes(D)}))]),O=C(()=>x.apply(xt[D])),H={title:`${it(D)} Drop Rate`,modifier:x,base:xt[D]};return $[D]={modifier:x,computedModifier:O,section:H},$},{}),Rn=Object.keys(xt).reduce(($,D)=>{const x=Nt(()=>[Ce(()=>({multiplier:()=>{var K;return(K=U.value[D])!=null?K:1},description:"Planar Treasures",enabled:()=>{var K;return o.neq((K=U.value[D])!=null?K:1,1)}}))]),O=C(()=>x.apply(1)),H={title:`${it(D)} Gain`,modifier:x};return $[D]={modifier:x,computedModifier:O,section:H},$},{}),ni=C(()=>{var D,x,O;const $=Tt.indexOf((O=(x=(D=A.value)==null?void 0:D.state)==null?void 0:x.tier)!=null?O:"dirt");return o.add($,1).times($).div(2).add(9).pow10()}),ii=Nt(()=>[...Object.keys(vt).map($=>Ce(()=>({multiplier:vt[$].cost,description:vt[$].display,enabled:()=>{var D,x,O;return(O=(x=(D=A.value)==null?void 0:D.state)==null?void 0:x.influences.includes($))!=null?O:!1},smallerIsBetter:!0}))),Ce(()=>({multiplier:()=>ee("emeraldRelic")?.05:.1,description:()=>(ee("emeraldRelic")?"Empowered ":"")+Pt.emerald,enabled:()=>n.value.emeraldRelic!=null,smallerIsBetter:!0}))]),Ye=C(()=>ii.apply(ni.value)),[Si,Ii]=zn(()=>[{title:"Resource Levels",modifier:be,base:0},{title:"Energy Gain",modifier:pt,base:0,unit:"/s"},{title:"Portal Cost",modifier:ii,base:ni,unit:" energy",baseText:()=>{var $,D,x;return`${it((x=(D=($=A.value)==null?void 0:$.state)==null?void 0:D.tier)!=null?x:"dirt")}-tier Base Cost`},visible:()=>A.value!=null,smallerIsBetter:!0},{title:"Bonus Connections",modifier:ft,base:0,visible:()=>o.gt(Mt.value,0)}]),[V,L]=zn(()=>[{title:"Mining Speed",modifier:ei,base:1,unit:"/s",visible:()=>n.value.dirt!=null},{title:"Ore Dropped",modifier:_n,base:1,visible:()=>n.value.gravel!=null},{title:"Material Level Effect",modifier:Pn,base:1.01,visible:()=>n.value.copper!=null}]),[$e,tt]=zn(()=>Object.values(Zt).map($=>$.section)),[Nn,ut]=zn(()=>Object.values(Rn).map($=>$.section)),gt=Ur({general:()=>({display:"General",glowColor(){return gt.activeTab.value===this.tab?"white":""},tab:Si,energyTabCollapsed:Ii}),mining:()=>({display:"Mine",glowColor(){return gt.activeTab.value===this.tab?"white":""},visibility:()=>Object.keys(n.value).length>0,tab:V,miningTabCollapsed:L}),resources:()=>({display:"Ore Rates",glowColor(){return gt.activeTab.value===this.tab?"white":""},visibility:()=>E.value!=null,tab:$e,resourcesCollapsed:tt}),resourcesGain:()=>({display:"Ore Gain",glowColor(){return gt.activeTab.value===this.tab?"white":""},visibility:()=>Object.values(Rn).some($=>o.neq($.computedModifier.value,1)),tab:Nn,resourceGainCollapsed:ut})}),St=G(!1),Xt=j(()=>d(Ot,{modelValue:St.value,"onUpdate:modelValue":$=>St.value=$},{header:()=>d("h2",null,[_("Modifiers")]),body:()=>st(gt)})),Ze={mine:wd(),factory:_d(),dowsing:Nd(),quarry:Cd(),empowerer:kd(),portalGenerator:Md(),booster:Sd(),upgrader:Id(),automator:xd(),investments:$d()};Ze.mine.showModal[Wt]=!0,Ze.mine.showModal.value=!0,this.on("preUpdate",$=>{if(Object.keys(l).forEach(D=>{l[D]-=$,l[D]<=0&&delete l[D]}),Object.keys(c).forEach(D=>{c[D]-=$,c[D]<=0&&delete c[D]}),ke(y.value)){const D=o.add(y.value.state.progress,o.times(Mi.value,$)),x=D.floor();y.value.state={...y.value.state,progress:o.sub(D,x)};const O=x.div(he.value).floor();O.gt(0)&&Tt.forEach(K=>{Ie(K,o.times(new o(Zt[K].computedModifier.value).toNumber(),O).times(ti.value)),l[K]=.3});const H=o.sub(x,O).toNumber();for(let K=0;K0){let O=o.add(D,$);const H=o.div(D,b.value).floor();O=o.sub(O,o.times(H,b.value)),P.value.state={...P.value.state,progress:O},o.gt(H,0)&&x.forEach(K=>{Ie(K,H),c[K]=.3})}}e.value=o.add(e.value,o.times(Lt.value,$)),o.lt(e.value,0)&&(e.value=0,Q.forEach(D=>{var x;((x=D.value)==null?void 0:x.state).powered=!1}),Object.values(a.value).forEach(D=>{D.state.powered=!1}),y.value.state={...y.value.state,powered:!1},yr.warning(d("div",null,[d("h3",null,[_("Ran out of energy!")]),d("div",null,[_("All machines have been turned off.")])])))});const Dt=C(()=>{var $,D;return h.selectedAction.value===h.types.brokenFactory.actions[0]?-100:h.selectedAction.value===h.types.factory.actions[1]?o.neg(Ve[h.selectedNode.value.state].cost):(($=h.selectedAction.value)==null?void 0:$.id)==="moreConnections"?o.neg(h.selectedAction.value.formula.evaluate(((D=h.selectedNode.value)==null?void 0:D.state).maxConnections)):0}),sn=dn(m.variable(0).add(e),()=>o.neq(Dt.value,0),Dt),ri=C(()=>{var $;return h.selectedAction.value===qt?(($=h.selectedNode.value)==null?void 0:$.state).powered?o.eq(p.value,1)?10:o.pow(100,p.value).div(10).times(.99):o.neg(f.value):0}),Fn=dn(m.variable(0).add(Lt),()=>o.neq(ri.value,0),ri),on=C(()=>h.types.portal.nodes.value.filter($=>ke($))),xi=C(()=>on.value.sort(($,D)=>{var H,K;const x=(H=ge[$.state.id])!=null&&H.minimized.value?1:0,O=(K=ge[D.state.id])!=null&&K.minimized.value?1:0;return x-O}).map($=>$.state.id));return ht(xi,$=>{Gt(()=>{Z.tabs=["main",...$]})}),ht(Mt,($,D)=>{o.lt($,D)&&(cn($,E,"resources"),cn($,P,"resources"),cn($,I,"tools"),cn($,B,"portals"),cn($,ce,"portals"),cn($,le,"portals"),cn($,ie,"portals"))}),{name:"World",board:h,energy:e,modifierTabs:gt,resourceNodes:t,toolNodes:n,influenceNodes:r,grantResource:Ie,activePortals:on,nextPowerCost:f,computedBonusConnectionsModifier:Mt,quarryProgressRequired:b,dropRates:Zt,dowsing:E,empowerer:I,booster:B,upgrader:ce,automator:le,investments:ie,resourceLevels:u,planarMultis:U,computedPortalCost:Ye,helpModals:Ze,display:j(()=>d(oe,null,[d(gi,{class:"nav-container"},{default:()=>[d("span",{class:"nav-segment"},[d("h2",{style:"color: white; text-shadow: 0px 0px 10px white;"},[st(sn)])," ",_("energy")]),d("span",{class:"nav-segment"},[_("("),d("h3",{style:"color: white; text-shadow: 0px 0px 10px white;"},[o.gt(Lt.value,0)?"+":"",st(Fn)]),_("/s)")]),o.gt(p.value,0)?d("span",{class:"nav-segment"},[d("h3",{style:"color: var(--accent1); text-shadow: 0px 0px 10px var(--accent1);"},[at(p.value)])," ",_("machines powered")]):null,d("span",{class:"nav-segment"},[d("button",{class:"button",style:"display: inline",onClick:()=>St.value=!0},[_("modifiers")])]),Z.devSpeed===0?d("span",{class:"nav-segment"},[_("Game Paused")]):Z.devSpeed!=null&&Z.devSpeed!==1?d("span",{class:"nav-segment"},[_("Dev Speed: "),xe(Z.devSpeed),_("x")]):null]}),st(h),st(Xt),Object.values(Ze).map(({modal:$})=>$())]))}});Je.on("loadSettings",e=>{se(e,"lineVisibility",!0)});Dr(j(()=>d(It,{title:j(()=>d("span",{class:"option-title"},[_("Always show lines to resource nodes"),d("desc",null,[_("Otherwise, will only be visible when either end of the line is selected.")])])),modelValue:te.lineVisibility,"onUpdate:modelValue":e=>te.lineVisibility=e},null)));const kp=e=>{var n,i,r,a,u;const t=[g];return(u=(a=(r=(i=(n=e.layers)==null?void 0:n.main)==null?void 0:i.board)==null?void 0:r.state)==null?void 0:a.nodes)==null||u.filter(l=>(l==null?void 0:l.type)==="portal").map(l=>{var c,p;return(p=(c=l==null?void 0:l.state)==null?void 0:c.id)!=null?p:""}).forEach(l=>{var p,v,f,b;const c=(p=e.layers)==null?void 0:p[l];t.push(ea(l,(v=c.tier)!=null?v:"dirt",(f=c.seed)!=null?f:Math.floor(Math.random()*4294967296),(b=c.influences)!=null?b:[]))}),t},tr=G(!1);function Mp(e,t){}var Sp=Object.freeze(Object.defineProperty({__proto__:null,main:g,getInitialLayers:kp,hasWon:tr,fixOldSave:Mp},Symbol.toStringTag,{value:"Module"}));const Qn=e=>(vn("data-v-4a50ce42"),e=e(),hn(),e),Ip={class:"game-over-modal-header"},xp=["src","alt"],$p={class:"game-over-modal-title"},Ep=Qn(()=>k("h2",null,"Congratulations!",-1)),Dp={key:0},Tp=Qn(()=>k("br",null,null,-1)),Pp=Qn(()=>k("div",null," Please check the Discord to discuss the game or to check for new content updates! ",-1)),Ap=Qn(()=>k("br",null,null,-1)),Rp=["href"],Fp=Qn(()=>k("span",{class:"material-icons game-over-modal-discord"},"discord",-1)),Op=X({__name:"GameOverScreen",setup(e){const{title:t,logo:n,discordName:i,discordLink:r,versionNumber:a,versionTitle:u}=we,l=C(()=>bi(Z.timePlayed)),c=C(()=>tr.value&&!Z.keepGoing),p=nn(Z,"autosave");function v(){Z.keepGoing=!0}function f(){pn(In())}return(b,h)=>(S(),ne(Ot,{"model-value":s(c)},{header:Y(()=>[k("div",Ip,[s(n)?(S(),R("img",{key:0,class:"game-over-modal-logo",src:s(n),alt:s(t)},null,8,xp)):z("",!0),k("div",$p,[Ep,k("h4",null,"You've beaten "+pe(s(t))+" v"+pe(s(a))+": "+pe(s(u)),1)])])]),body:Y(({shown:y})=>[y?(S(),R("div",Dp,[k("div",null,"It took you "+pe(s(l))+" to beat the game.",1),Tp,Pp,Ap,k("div",null,[k("a",{href:s(r),class:"game-over-modal-discord-link"},[Fp,_(" "+pe(s(i)),1)],8,Rp)]),d(It,{title:"Autosave",modelValue:s(p),"onUpdate:modelValue":h[0]||(h[0]=N=>Oe(p)?p.value=N:null)},null,8,["modelValue"])])):z("",!0)]),footer:Y(()=>[k("div",{class:"game-over-footer"},[k("button",{onClick:v,class:"button"},"Keep Going"),k("button",{onClick:f,class:"button danger"},"Play Again")])]),_:1},8,["model-value"]))}});var qp=ve(Op,[["__scopeId","data-v-4a50ce42"]]);const ki=e=>(vn("data-v-2776d67d"),e=e(),hn(),e),Vp=ki(()=>k("div",{class:"nan-modal-header"},[k("h2",null,"NaN value detected!")],-1)),Bp={key:0},Lp=ki(()=>k("br",null,null,-1)),jp=["href"],zp=ki(()=>k("span",{class:"material-icons nan-modal-discord"},"discord",-1)),Gp=ki(()=>k("br",null,null,-1)),Up={class:"nan-footer"},Wp=X({__name:"NaNScreen",setup(e){const{discordName:t,discordLink:n}=we,i=G(!0),r=G(!0),a=nn(Ue,"hasNaN"),u=G(null);ht(a,b=>{b?(i.value=Z.autosave,r.value=Z.devSpeed===0):(Z.autosave=i.value,Z.devSpeed=r.value?0:null)});const l=C(()=>{var b;return(b=Ue.NaNPath)==null?void 0:b.join(".")}),c=C(()=>Ue.NaNPersistent!=null?Ue.NaNPersistent.value:null);function p(){Ue.NaNPersistent!=null&&(Ue.NaNPersistent.value=new o(0),Ue.hasNaN=!1)}function v(){Ue.NaNPersistent&&(Ue.NaNPersistent.value=new o(1),Ue.hasNaN=!1)}function f(){Ue.NaNPersistent&&(Ue.NaNPersistent.value=new o(NaN),Ue.hasNaN=!1)}return(b,h)=>(S(),R(oe,null,[d(Ot,Ut({modelValue:s(a),"onUpdate:modelValue":h[4]||(h[4]=y=>Oe(a)?a.value=y:null)},b.$attrs),{header:Y(()=>[Vp]),body:Y(()=>[k("div",null,[_(' Attempted to assign "'+pe(s(l))+'" to NaN',1),s(c)?(S(),R("span",Bp,pe(" ")+"(previously "+pe(s(xe)(s(c)))+")",1)):z("",!0),_(". Auto-saving has been "+pe(i.value?"enabled":"disabled")+". Check the console for more details, and consider sharing it with the developers on discord. ",1)]),Lp,k("div",null,[k("a",{href:s(n)||"https://discord.gg/yJ4fjnjU54",class:"nan-modal-discord-link"},[zp,_(" "+pe(s(t)||"The Paper Pilot Community"),1)],8,jp)]),Gp,d(It,{title:"Autosave",modelValue:i.value,"onUpdate:modelValue":h[0]||(h[0]=y=>i.value=y)},null,8,["modelValue"]),s(we).enablePausing?(S(),ne(It,{key:0,title:"Pause game",modelValue:r.value,"onUpdate:modelValue":h[1]||(h[1]=y=>r.value=y)},null,8,["modelValue"])):z("",!0)]),footer:Y(()=>[k("div",Up,[k("button",{onClick:h[2]||(h[2]=y=>{var N;return(N=u.value)==null?void 0:N.open()}),class:"button"},"Open Saves Manager"),k("button",{onClick:p,class:"button"},"Set to 0"),k("button",{onClick:v,class:"button"},"Set to 1"),s(c)&&s(o).neq(s(c),0)&&s(o).neq(s(c),1)?(S(),R("button",{key:0,onClick:h[3]||(h[3]=y=>a.value=!1),class:"button"}," Set to previous ")):z("",!0),k("button",{onClick:f,class:"button danger"},"Ignore")])]),_:1},16,["modelValue"]),d(Lr,{ref_key:"savesManager",ref:u},null,512)],64))}});var Hp=ve(Wp,[["__scopeId","data-v-2776d67d"]]);const Yp={key:0,class:"tpsDisplay"},Zp=X({__name:"TPS",setup(e){const t=C(()=>o.div(Ue.lastTenTicks.length,Ue.lastTenTicks.reduce((n,i)=>n+i,0)));return(n,i)=>s(t).isNan()?z("",!0):(S(),R("div",Yp,"TPS: "+pe(s(at)(s(t))),1))}});var Xp=ve(Zp,[["__scopeId","data-v-89b89152"]]);var Kp=X({__name:"App",setup(e){const t=we.useHeader,n=C(()=>Ct[te.theme].variables),i=nn(te,"showTPS"),r=C(()=>fe(j(()=>d(oe,null,[_s.map(st)]))));return(a,u)=>(S(),R(oe,null,[k("div",{id:"modal-root",style:Be(s(n))},null,4),k("div",{class:Ne(["app",{useHeader:s(t)}]),style:Be(s(n))},[s(t)?(S(),ne(jr,{key:0})):z("",!0),d(dc),s(s(i))?(S(),ne(Xp,{key:1})):z("",!0),d(qp),d(Hp),(S(),ne(Ke(s(r))))],6)],64))}});var Jp=ve(Kp,[["__scopeId","data-v-41d15e5e"]]);function Qp(e={}){const{immediate:t=!1,onNeedRefresh:n,onOfflineReady:i,onRegistered:r,onRegisteredSW:a,onRegisterError:u}=e;let l,c,p,v;const f=async(h=!0)=>{await p,h&&(l==null||l.addEventListener("controlling",y=>{y.isUpdate&&window.location.reload()})),await(v==null?void 0:v())};async function b(){if("serviceWorker"in navigator){const{Workbox:h,messageSW:y}=await Un(()=>import("./workbox-window.4a8794bb.js"),[]);v=async()=>{c&&c.waiting&&await y(c.waiting,{type:"SKIP_WAITING"})},l=new h("./sw.js",{scope:"./",type:"classic"}),l.addEventListener("activated",N=>{N.isUpdate||i==null||i()});{const N=()=>{n==null||n()};l.addEventListener("waiting",N),l.addEventListener("externalwaiting",N)}l.register({immediate:t}).then(N=>{c=N,a?a("./sw.js",N):r==null||r(N)}).catch(N=>{u==null||u(N)})}}return p=b(),f}function ef(e={}){const{immediate:t=!0,onNeedRefresh:n,onOfflineReady:i,onRegistered:r,onRegisteredSW:a,onRegisterError:u}=e,l=G(!1),c=G(!1);return{updateServiceWorker:Qp({immediate:t,onNeedRefresh(){l.value=!0,n==null||n()},onOfflineReady(){c.value=!0,i==null||i()},onRegistered:r,onRegisteredSW:a,onRegisterError:u}),offlineReady:c,needRefresh:l}}document.title=we.title;window.projInfo=we;if(we.id==="")throw new 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 vs();const{globalBus:e}=await Un(()=>Promise.resolve().then(function(){return gs}),void 0),{startGameLoop:t}=await Un(()=>import("./gameLoop.43d5abfb.js"),["assets/gameLoop.43d5abfb.js","assets/@fontsource.f66d05e7.css","assets/vue.c16a309b.js","assets/amator.1e5a40c8.js","assets/bezier-easing.a990b400.js","assets/@vue.6b211d3c.js","assets/nanoevents.1080beb7.js","assets/lz-string.dccec454.js","assets/vue-next-select.ded54c4a.js","assets/vue-next-select.9e6f4164.css","assets/vuedraggable.1879de79.js","assets/sortablejs.a0f68e5e.js","assets/vue-textarea-autosize.35804eaf.js","assets/vue-panzoom.8ce6f9b1.js","assets/panzoom.30c56ba6.js","assets/wheel.f2ae740f.js","assets/ngraph.events.083734c6.js","assets/vue-toastification.9c2dad53.js","assets/vue-toastification.4b5f8ac8.css"]),n=window.vue=pa(Jp);e.emit("setupVue",n),n.mount("#app"),Gt(()=>{const i=hi(),{updateServiceWorker:r}=ef({onNeedRefresh(){i.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(){r()}})},onOfflineReady(){i.info("App ready to work offline")},onRegisterError:console.warn,onRegistered(a){a&&setInterval(()=>a.update(),60*60*1e3)}})}),t()});export{o as D,Un as _,Ue as a,we as b,Sp as c,Je as g,hs as l,Z as p,te as s}; + )`,onMousedown:E=>c(E,b),onTouchstart:E=>c(E,b),onMouseup:E=>p(E,b),onTouchend:xn(E=>p(E,b),["stop"])},[k("circle",{fill:s(me)(b.fillColor,e.node),r:"20","stroke-width":((N=e.selectedAction)==null?void 0:N.id)===b.id?4:0,stroke:s(a)},null,8,bc),k("text",{fill:s(u),class:"material-icons"},pe(s(me)(b.icon,e.node)),9,yc)],42,hc)}),128))])):z("",!0)]),_:1}))}});var _c=ve(wc,[["__scopeId","data-v-9efb2a56"]]);const Nc=["transform"],Cc={key:0},kc=["r","fill","stroke"],Mc=["r","fill","stroke"],Sc=["r","fill"],Ic=["r","stroke-dasharray","stroke-dashoffset","stroke"],xc={key:1,transform:"rotate(45, 0, 0)"},$c=["width","height","transform","fill","stroke"],Ec=["width","height","transform","fill","stroke"],Dc=["width","height","transform","fill"],Tc=["width","height","transform","stroke-dasharray","stroke-dashoffset","stroke"],Pc=["fill","y"],Ac=["fill"],Rc=["fill","y"],Fc={key:0},Oc=["fill","y"],qc=["fill","y"],Vc=X({__name:"BoardNode",props:{node:null,nodeType:null,dragging:null,dragged:null,hasDragged:{type:Boolean},receivingNode:{type:Boolean},isSelected:{type:Boolean},selectedAction:null},emits:["mouseDown","endDragging","clickAction"],setup(e,{emit:t}){const n=e,i=Math.sqrt(2),r=De(n),a=C(()=>me(r.nodeType.value.draggable,s(r.node)));ht(a,U=>{const be=s(r.node);s(r.dragging)===be&&!U&&t("endDragging",be)});const u=C(()=>{var be;const U=s(r.node);return(be=me(r.nodeType.value.actions,U))==null?void 0:be.filter(je=>He(me(je.visibility,U)))}),l=C(()=>{var be;const U=s(r.node);if(me(r.nodeType.value.draggable,U)&&((be=s(r.dragging))==null?void 0:be.id)===U.id&&s(r.dragged)!=null){const{x:je,y:pt}=s(r.dragged);return{x:U.position.x+Math.round(je/25)*25,y:U.position.y+Math.round(pt/25)*25}}return U.position}),c=C(()=>me(r.nodeType.value.shape,s(r.node))),p=C(()=>me(r.nodeType.value.title,s(r.node))),v=C(()=>me(r.nodeType.value.subtitle,s(r.node))),f=C(()=>me(r.nodeType.value.otherSubtitle,s(r.node))),b=C(()=>{var U;return(U=r.isSelected.value?s(r.selectedAction)&&me(s(r.selectedAction).tooltip,s(r.node)):null)!=null?U:me(r.nodeType.value.label,s(r.node))}),h=C(()=>{var U,be;return me((be=(U=s(r.selectedAction))==null?void 0:U.confirmationLabel)!=null?be:{text:"Tap again to confirm"},s(r.node))}),y=C(()=>me(r.nodeType.value.size,s(r.node))),N=C(()=>{var U;return(U=me(r.nodeType.value.progress,s(r.node)))!=null?U:0}),E=C(()=>Ct[te.theme].variables["--background"]),P=C(()=>{var U;return(U=me(r.nodeType.value.outlineColor,s(r.node)))!=null?U:Ct[te.theme].variables["--outline"]}),I=C(()=>{var U;return(U=me(r.nodeType.value.fillColor,s(r.node)))!=null?U:Ct[te.theme].variables["--raised-background"]}),A=C(()=>me(r.nodeType.value.progressColor,s(r.node))),B=C(()=>{var U;return(U=me(r.nodeType.value.titleColor,s(r.node)))!=null?U:Ct[te.theme].variables["--foreground"]}),ce=C(()=>me(r.nodeType.value.progressDisplay,s(r.node))),le=C(()=>r.dragging.value!=null&&s(r.hasDragged)&&me(r.nodeType.value.canAccept,s(r.node),r.dragging.value)),ie=C(()=>me(r.nodeType.value.style,s(r.node))),Q=C(()=>me(r.nodeType.value.classes,s(r.node)));function Ie(U){t("mouseDown",U,r.node.value,a.value)}function he(U){var be,je,pt;(be=r.hasDragged)!=null&&be.value||(t("endDragging",r.node.value),(pt=(je=r.nodeType.value).onClick)==null||pt.call(je,r.node.value),U.stopPropagation())}return(U,be)=>{var je,pt,Lt;return S(),R("g",{class:Ne(["boardnode",{[e.node.type]:!0,isSelected:e.isSelected,isDraggable:s(a),...s(Q)}]),style:Be([{opacity:((je=e.dragging)==null?void 0:je.id)===e.node.id&&e.hasDragged?.5:1},(pt=s(ie))!=null?pt:[]]),transform:`translate(${s(l).x},${s(l).y})${e.isSelected?" scale(1.2)":""}`},[d(_c,{actions:(Lt=s(u))!=null?Lt:[],"is-selected":e.isSelected,node:e.node,"node-type":e.nodeType,"selected-action":e.selectedAction,onClickAction:be[0]||(be[0]=ft=>t("clickAction",ft))},null,8,["actions","is-selected","node","node-type","selected-action"]),k("g",{class:"node-container",onMousedown:Ie,onTouchstartPassive:Ie,onMouseup:he,onTouchendPassive:he},[s(c)===s(Le).Circle?(S(),R("g",Cc,[s(le)?(S(),R("circle",{key:0,class:"receiver",r:s(y)+8,fill:s(E),stroke:e.receivingNode?"#0F0":"#0F03","stroke-width":2},null,8,kc)):z("",!0),k("circle",{class:"body",r:s(y),fill:s(I),stroke:s(P),"stroke-width":4},null,8,Mc),s(ce)===s(rn).Fill?(S(),R("circle",{key:1,class:"progress progressFill",r:Math.max(s(y)*s(N)-2,0),fill:s(A)},null,8,Sc)):(S(),R("circle",{key:2,r:s(y)+4.5,class:"progress progressRing",fill:"transparent","stroke-dasharray":(s(y)+4.5)*2*Math.PI,"stroke-width":5,"stroke-dashoffset":(s(y)+4.5)*2*Math.PI-s(N)*(s(y)+4.5)*2*Math.PI,stroke:s(A)},null,8,Ic))])):s(c)===s(Le).Diamond?(S(),R("g",xc,[s(le)?(S(),R("rect",{key:0,class:"receiver",width:s(y)*s(i)+16,height:s(y)*s(i)+16,transform:`translate(${-(s(y)*s(i)+16)/2}, ${-(s(y)*s(i)+16)/2})`,fill:s(E),stroke:e.receivingNode?"#0F0":"#0F03","stroke-width":2},null,8,$c)):z("",!0),k("rect",{class:"body",width:s(y)*s(i),height:s(y)*s(i),transform:`translate(${-s(y)*s(i)/2}, ${-s(y)*s(i)/2})`,fill:s(I),stroke:s(P),"stroke-width":4},null,8,Ec),s(ce)===s(rn).Fill?(S(),R("rect",{key:1,class:"progress progressFill",width:Math.max(s(y)*s(i)*s(N)-2,0),height:Math.max(s(y)*s(i)*s(N)-2,0),transform:`translate(${-Math.max(s(y)*s(i)*s(N)-2,0)/2}, ${-Math.max(s(y)*s(i)*s(N)-2,0)/2})`,fill:s(A)},null,8,Dc)):(S(),R("rect",{key:2,class:"progress progressDiamond",width:s(y)*s(i)+9,height:s(y)*s(i)+9,transform:`translate(${-(s(y)*s(i)+9)/2}, ${-(s(y)*s(i)+9)/2})`,fill:"transparent","stroke-dasharray":(s(y)*s(i)+9)*4,"stroke-width":5,"stroke-dashoffset":(s(y)*s(i)+9)*4-s(N)*(s(y)*s(i)+9)*4,stroke:s(A)},null,8,Tc))])):z("",!0),k("text",{fill:s(B),class:"node-title",y:s(f)&&!s(v)?-10:0},pe(s(p)),9,Pc),s(v)?(S(),R("text",{key:2,fill:s(B),class:"node-subtitle",y:"-25"},pe(s(v)),9,Ac)):z("",!0),s(f)?(S(),R("text",{key:3,fill:s(B),class:"node-subtitle",y:s(v)?25:15},pe(s(f)),9,Rc)):z("",!0)],32),d(Gn,{name:"fade",appear:""},{default:Y(()=>{var ft;return[s(b)?(S(),R("g",Fc,[k("text",{fill:(ft=s(b).color)!=null?ft:s(B),class:Ne(["node-title",{pulsing:s(b).pulsing}]),y:-s(y)-20},pe(s(b).text),11,Oc)])):z("",!0)]}),_:1}),d(Gn,{name:"fade",appear:""},{default:Y(()=>{var ft;return[e.isSelected&&e.selectedAction?(S(),R("text",{key:0,fill:(ft=s(h).color)!=null?ft:s(B),class:Ne(["node-title",{pulsing:s(h).pulsing}]),y:s(y)+75},pe(s(h).text),11,qc)):z("",!0)]}),_:1})],14,Nc)}}});var Bc=ve(Vc,[["__scopeId","data-v-19cf948c"]]);const Lc={class:"stage",width:"100%",height:"100%"},jc={class:"g1"},zc=X({__name:"Board",props:{nodes:null,types:null,state:null,visibility:null,width:null,height:null,style:null,classes:null,links:null,selectedAction:null,selectedNode:null,draggingNode:null,receivingNode:null,mousePosition:null,setReceivingNode:{type:Function},setDraggingNode:{type:Function}},setup(e){const n=De(e),i=G({x:0,y:0}),r=G({x:0,y:0}),a=G(!1),u=G(null),l=C(()=>{const h=n.nodes.value.slice();if(n.selectedNode.value){const y=h.splice(h.indexOf(n.selectedNode.value),1)[0];h.push(y)}if(n.draggingNode.value){const y=h.splice(h.indexOf(n.draggingNode.value),1)[0];h.push(y)}return h});$t(()=>{const h=n.draggingNode.value;if(h==null)return null;const y={x:h.position.x+r.value.x,y:h.position.y+r.value.y};let N=Number.MAX_VALUE;n.setReceivingNode.value(n.nodes.value.reduce((E,P)=>{if(P.id===h.id)return E;const I=n.types.value[P.type];if(!me(I.canAccept,P,h))return E;const B=Math.pow(y.x-P.position.x,2)+Math.pow(y.y-P.position.y,2);let ce=me(I.size,P);return B>N||B>ce*ce?E:(N=B,P)},null))});function c(h){h.setTransformOrigin(null),h.moveTo(u.value.$el.clientWidth/2,u.value.$el.clientHeight/2)}function p(h,y=null,N=!1){if(n.draggingNode.value==null){h.preventDefault(),h.stopPropagation();let E,P;if("touches"in h)if(h.touches.length===1)E=h.touches[0].clientX,P=h.touches[0].clientY;else return;else E=h.clientX,P=h.clientY;i.value={x:E,y:P},r.value={x:0,y:0},a.value=!1,N&&n.setDraggingNode.value(y)}y!=null&&(n.state.value.selectedNode=null,n.state.value.selectedAction=null)}function v(h){const{x:y,y:N,scale:E}=u.value.panZoomInstance.getTransform();let P,I;if("touches"in h)if(h.touches.length===1)P=h.touches[0].clientX,I=h.touches[0].clientY;else{f(n.draggingNode.value),n.mousePosition.value=null;return}else P=h.clientX,I=h.clientY;n.mousePosition.value={x:(P-y)/E,y:(I-N)/E},r.value={x:r.value.x+(P-i.value.x)/E,y:r.value.y+(I-i.value.y)/E},i.value={x:P,y:I},(Math.abs(r.value.x)>10||Math.abs(r.value.y)>10)&&(a.value=!0),n.draggingNode.value!=null&&(h.preventDefault(),h.stopPropagation())}function f(h,y=!1){var N,E;if(n.draggingNode.value!=null&&n.draggingNode.value===h){n.receivingNode.value==null&&(n.draggingNode.value.position.x+=Math.round(r.value.x/25)*25,n.draggingNode.value.position.y+=Math.round(r.value.y/25)*25);const P=n.nodes.value;P.push(P.splice(P.indexOf(n.draggingNode.value),1)[0]),n.receivingNode.value&&((E=(N=n.types.value[n.receivingNode.value.type]).onDrop)==null||E.call(N,n.receivingNode.value,n.draggingNode.value)),n.setDraggingNode.value(null)}else!a.value&&!y&&(n.state.value.selectedNode=null,n.state.value.selectedAction=null)}function b(h,y){var E,P;const N=n.types.value[h.type];me((P=(E=N.actions)==null?void 0:E.find(I=>I.id===y))==null?void 0:P.confirmationLabel,h)==null&&(n.state.value.selectedAction=y),n.state.value.selectedAction===y?s(n.selectedAction).onClick(s(n.selectedNode)):n.state.value={...n.state.value,selectedAction:y}}return(h,y)=>{const N=kt("panZoom");return s(He)(e.visibility)?(S(),ne(N,{key:0,style:Be([{width:e.width,height:e.height},e.style]),class:Ne(e.classes),selector:".g1",options:{initialZoom:1,minZoom:.1,maxZoom:10,zoomDoubleClickSpeed:1},ref_key:"stage",ref:u,onInit:c,onMousemove:v,onTouchmove:v,onMousedown:y[0]||(y[0]=E=>p(E)),onTouchstart:y[1]||(y[1]=E=>p(E)),onMouseup:y[2]||(y[2]=()=>f(s(e.draggingNode))),onTouchendPassive:y[3]||(y[3]=()=>f(s(e.draggingNode))),onMouseleave:y[4]||(y[4]=()=>f(s(e.draggingNode),!0))},{default:Y(()=>[(S(),R("svg",Lc,[k("g",jc,[d(rr,{name:"link",appear:""},{default:Y(()=>[(S(!0),R(oe,null,$n(s(e.links)||[],E=>(S(),R("g",{key:`${E.startNode.id}-${E.endNode.id}`},[d(mc,{link:E,dragging:s(e.draggingNode),dragged:E.startNode===s(e.draggingNode)||E.endNode===s(e.draggingNode)?r.value:void 0},null,8,["link","dragging","dragged"])]))),128))]),_:1}),d(rr,{name:"grow",duration:500,appear:""},{default:Y(()=>[(S(!0),R(oe,null,$n(s(l),E=>(S(),R("g",{key:E.id,style:{"transition-duration":"0s"}},[d(Bc,{node:E,nodeType:e.types[E.type],dragging:s(e.draggingNode),dragged:s(e.draggingNode)===E?r.value:void 0,hasDragged:s(e.draggingNode)==null?!1:a.value,receivingNode:s(e.receivingNode)===E,isSelected:s(e.selectedNode)===E,selectedAction:s(e.selectedNode)===E?s(e.selectedAction):null,onMouseDown:p,onEndDragging:f,onClickAction:P=>b(E,P)},null,8,["node","nodeType","dragging","dragged","hasDragged","receivingNode","isSelected","selectedAction","onClickAction"])]))),128))]),_:1})])]))]),_:1},8,["style","class","options"])):z("",!0)}}});Je.on("setupVue",e=>va.install(e));const zr=Symbol("Board");var rn=(e=>(e.Outline="Outline",e.Fill="Fill",e))(rn||{}),Le=(e=>(e.Circle="Circle",e.Diamond="Triangle",e))(Le||{});function Gc(e){const t=ot({nodes:[],selectedNode:null,selectedAction:null},!1);return Qe(n=>{const i=e.call(n,n);i.id=Ht("board-"),i.type=zr,i[dt]=zc,i.state?(Or(t),T(i,"state")):(t[Wt]={nodes:i.startNodes().map((l,c)=>(l.id=c,l)),selectedNode:null,selectedAction:null},i.state=t),i.nodes=C(()=>s(u.state).nodes),i.selectedNode=C({get(){return u.nodes.value.find(l=>l.id===s(u.state).selectedNode)||null},set(l){var c,p;Oe(u.state)?u.state.value={...u.state.value,selectedNode:(c=l==null?void 0:l.id)!=null?c:null}:u.state.selectedNode=(p=l==null?void 0:l.id)!=null?p:null}}),i.selectedAction=C({get(){const l=u.selectedNode.value;if(l==null)return null;const c=u.types[l.type];return c.actions==null?null:c.actions.find(p=>p.id===s(u.state).selectedAction)||null},set(l){var c,p;Oe(u.state)?u.state.value={...u.state.value,selectedAction:(c=l==null?void 0:l.id)!=null?c:null}:u.state.selectedAction=(p=l==null?void 0:l.id)!=null?p:null}}),i.mousePosition=G(null),i.links?T(i,"links"):i.links=C(()=>u.selectedAction.value==null?null:u.selectedAction.value.links&&u.selectedNode.value?me(u.selectedAction.value.links,u.selectedNode.value):null),i.draggingNode=G(null),i.receivingNode=G(null),T(i,"visibility"),se(i,"visibility",Me.Visible),T(i,"width"),se(i,"width","100%"),T(i,"height"),se(i,"height","100%"),T(i,"classes"),T(i,"style");for(const l in i.types){const c=i.types[l];if(T(c,"title"),T(c,"subtitle"),T(c,"otherSubtitle"),T(c,"label"),T(c,"size"),se(c,"size",50),T(c,"style"),T(c,"classes"),T(c,"draggable"),se(c,"draggable",!1),T(c,"shape"),se(c,"shape","Circle"),T(c,"canAccept"),se(c,"canAccept",!1),T(c,"progress"),T(c,"progressDisplay"),se(c,"progressDisplay","Fill"),T(c,"progressColor"),se(c,"progressColor","none"),T(c,"fillColor"),T(c,"outlineColor"),T(c,"titleColor"),T(c,"actionDistance"),se(c,"actionDistance",Math.PI/6),c.nodes=C(()=>s(u.state).nodes.filter(p=>p.type===l)),se(c,"onClick",function(p){s(u.state).selectedNode=p.id}),c.actions)for(const p of c.actions)T(p,"visibility"),se(p,"visibility",Me.Visible),T(p,"icon"),T(p,"fillColor"),T(p,"tooltip"),T(p,"confirmationLabel"),se(p,"confirmationLabel",{text:"Tap again to confirm"}),T(p,"links")}function r(l){i.draggingNode.value=l}function a(l){i.receivingNode.value=l}i.placeInAvailableSpace=function(l,c=100,p=W.Right){const v=u.nodes.value.slice().filter(f=>f===l||(p===W.Down||p===W.Up)&&Math.abs(f.position.x-l.position.x)>c||(p===W.Left||p===W.Right)&&Math.abs(f.position.y-l.position.y)>c?!1:!(p===W.Right&&f.position.xl.position.x+c||p===W.Up&&f.position.y>l.position.y+c||p===W.Down&&f.position.yf.position.x-b.position.x:p===W.Left?(f,b)=>b.position.x-f.position.x:p===W.Up?(f,b)=>b.position.y-f.position.y:(f,b)=>f.position.y-b.position.y);for(let f=0;f0&&h>c)break}},i[lt]=function(){const{nodes:l,types:c,state:p,visibility:v,width:f,height:b,style:h,classes:y,links:N,selectedAction:E,selectedNode:P,mousePosition:I,draggingNode:A,receivingNode:B}=this;return{nodes:l,types:c,state:p,visibility:v,width:f,height:b,style:s(h),classes:y,links:N,selectedAction:E,selectedNode:P,mousePosition:I,draggingNode:A,receivingNode:B,setDraggingNode:r,setReceivingNode:a}};const u=i;return u})}function me(e,t,...n){return Wn(e)?e(t,...n):s(e)}function En(e){let t=0;return e.nodes.value.forEach(n=>{n.id>=t&&(t=n.id+1)}),t}const jn={};Je.on("addLayer",e=>{const t=Yn(e,zr);jn[e.id]=e.on("postUpdate",n=>{t.forEach(i=>{Object.values(i.types).forEach(r=>r.nodes.value.forEach(a=>{var u;return(u=r.update)==null?void 0:u.call(r,a,n)}))})})});Je.on("removeLayer",e=>{var t;(t=jn[e.id])==null||t.call(jn),jn[e.id]=void 0});function Mn(e,t="points",n=0,i=void 0){const r=Oe(e)?e:ot(e);if(r.displayName=t,r.precision=n,r.small=i,!Oe(e)){const a=r[At];a.displayName=t,a.precision=n,a.small=i}return r}new o("10^^8");new o("1e100");function mi(e,t){const n=t!=null?t:e.value;return o.eq(e.precision,0)?at(e.small?n:o.floor(n)):xe(n,e.precision,e.small)}Je.on("setupVue",e=>e.use(ha));function Uc(e="white",t="8px"){return{transform:"scale(1.05, 1.05)",borderColor:"rgba(0, 0, 0, 0.125)",boxShadow:`-4px -4px 4px rgba(0, 0, 0, 0.25) inset, 0 0 ${t} ${e}`,zIndex:1}}const Wc=X({props:{visibility:{type:q(Number,Boolean),required:!0},display:{type:q(Object,String,Function),required:!0},style:q(String,Object,Array),classes:q(Object),glowColor:q(String),active:Boolean,floating:Boolean},emits:["selectTab"],setup(e,{emit:t}){const{display:n,glowColor:i,floating:r}=De(e),a=zi(n),u=C(()=>{const c=Ee(i);return c==null||c===""?{}:s(r)?Uc(c):{boxShadow:`0px 9px 5px -6px ${c}`}});function l(){t("selectTab")}return{selectTab:l,component:a,glowColorStyle:u,unref:s,Visibility:Me,isVisible:He,isHidden:bn}}});function Hc(e,t,n,i,r,a){var u;return e.isVisible(e.visibility)?(S(),R("button",{key:0,onClick:t[0]||(t[0]=(...l)=>e.selectTab&&e.selectTab(...l)),class:Ne(["tabButton",{active:e.active,...e.unref(e.classes)}]),style:Be([{visibility:e.isHidden(e.visibility)?"hidden":void 0},e.glowColorStyle,(u=e.unref(e.style))!=null?u:{}])},[(S(),ne(Ke(e.component)))],6)):z("",!0)}var Gr=ve(Wc,[["render",Hc],["__scopeId","data-v-21427abb"]]);const Yc=X({props:{visibility:{type:q(Number,Boolean),required:!0},activeTab:{type:q(Object),required:!0},selected:{type:Object,required:!0},tabs:{type:q(Object),required:!0},style:q(String,Object,Array),classes:q(Object),buttonContainerStyle:q(String,Object,Array),buttonContainerClasses:q(Object)},components:{Sticky:gi,TabButton:Gr},setup(e){const{activeTab:t}=De(e),n=C(()=>Ct[te.theme].floatingTabs),i=bt("");$t(()=>{const l=Ee(t);if(l==null){i.value="";return}if(Et(l)){i.value=fe(l);return}i.value=fe(s(l.display))});const r=C(()=>{const l=Ee(t);return Et(l)||!l?void 0:s(l.classes)}),a=C(()=>{const l=Ee(t);return Et(l)||!l?void 0:s(l.style)});function u(l){const{display:c,style:p,classes:v,glowColor:f,visibility:b}=l;return{display:c,style:s(p),classes:v,glowColor:f,visibility:b}}return{floating:n,tabClasses:r,tabStyle:a,Visibility:Me,component:i,gatherButtonProps:u,unref:s,isVisible:He,isHidden:bn}}});function Zc(e,t,n,i,r,a){var c,p;const u=kt("TabButton"),l=kt("Sticky");return e.isVisible(e.visibility)?(S(),R("div",{key:0,class:Ne(["tab-family-container",{...e.unref(e.classes),...e.tabClasses}]),style:Be([{visibility:e.isHidden(e.visibility)?"hidden":void 0},(c=e.unref(e.style))!=null?c:[],(p=e.tabStyle)!=null?p:[]])},[d(l,{class:Ne(["tab-buttons-container",e.unref(e.buttonContainerClasses)]),style:Be(e.unref(e.buttonContainerStyle))},{default:Y(()=>[k("div",{class:Ne(["tab-buttons",{floating:e.floating}])},[(S(!0),R(oe,null,$n(e.unref(e.tabs),(v,f)=>(S(),ne(u,Ut({onSelectTab:b=>e.selected.value=f,floating:e.floating,key:f,active:e.unref(v.tab)===e.unref(e.activeTab)},e.gatherButtonProps(v)),null,16,["onSelectTab","floating","active"]))),128))],2)]),_:1},8,["class","style"]),e.unref(e.activeTab)?(S(),ne(Ke(e.unref(e.component)),{key:0})):z("",!0)],6)):z("",!0)}var Xc=ve(Yc,[["render",Zc],["__scopeId","data-v-58dbf83a"]]);const Kc=Symbol("TabButton"),Jc=Symbol("TabFamily");function Ur(e,t){if(Object.keys(e).length===0)throw console.warn("Cannot create tab family with 0 tabs"),new Error("Cannot create tab family with 0 tabs");const n=ot(Object.keys(e)[0],!1);return Qe(i=>{var u;const r=(u=t==null?void 0:t.call(i,i))!=null?u:{};r.id=Ht("tabFamily-"),r.type=Jc,r[dt]=Xc,r.tabs=Object.keys(e).reduce((l,c)=>{const p=e[c]();return p.type=Kc,p[dt]=Gr,T(p,"visibility"),se(p,"visibility",Me.Visible),T(p,"tab"),T(p,"display"),T(p,"classes"),T(p,"style"),T(p,"glowColor"),l[c]=p,l},{}),r.selected=n,r.activeTab=C(()=>{const l=s(a.tabs);if(n.value in l&&He(l[n.value].visibility))return s(l[n.value].tab);const c=Object.values(l).find(p=>He(p.visibility));return c?s(c.tab):null}),T(r,"visibility"),se(r,"visibility",Me.Visible),T(r,"classes"),T(r,"style"),T(r,"buttonContainerClasses"),T(r,"buttonContainerStyle"),r[lt]=function(){const{visibility:l,activeTab:c,selected:p,tabs:v,style:f,classes:b,buttonContainerClasses:h,buttonContainerStyle:y}=this;return{visibility:l,activeTab:c,selected:p,tabs:v,style:s(f),classes:b,buttonContainerClasses:h,buttonContainerStyle:y}};const a=r;return a})}function jt(e){return Qe(t=>{const{addend:n,description:i,enabled:r,smallerIsBetter:a}=e.call(t,t),u=_e(n),l=_e(i),c=r==null?void 0:_e(r);return{apply:p=>o.add(p,s(u)),invert:p=>o.sub(p,s(u)),getFormula:p=>m.add(p,u),enabled:c,description:i==null?void 0:j(()=>d("div",{class:"modifier-container"},[s(l)!=null?d("span",{class:"modifier-description"},[wt(s(l))]):null,d("span",{class:"modifier-amount",style:(a===!0?o.gt(s(u),0):o.lt(s(u),0))?"color: var(--danger)":""},[o.gte(s(u),0)?"+":"",zt(s(u))])]))}})}function Ce(e){return Qe(t=>{const{multiplier:n,description:i,enabled:r,smallerIsBetter:a}=e.call(t,t),u=_e(n),l=_e(i),c=r==null?void 0:_e(r);return{apply:p=>o.times(p,s(u)),invert:p=>o.div(p,s(u)),getFormula:p=>m.times(p,u),enabled:c,description:i==null?void 0:j(()=>d("div",{class:"modifier-container"},[s(l)!=null?d("span",{class:"modifier-description"},[wt(s(l))]):null,d("span",{class:"modifier-amount",style:(a===!0?o.gt(s(u),1):o.lt(s(u),1))?"color: var(--danger)":""},[_("\xD7"),zt(s(u))])]))}})}function Qc(e){return Qe(t=>{const{exponent:n,description:i,enabled:r,supportLowNumbers:a,smallerIsBetter:u}=e.call(t,t),l=_e(n),c=_e(i),p=r==null?void 0:_e(r);return{apply:v=>{let f=v;return a&&(f=o.add(f,1)),f=o.pow(f,s(l)),a&&(f=o.sub(f,1)),f},invert:v=>{let f=v;return a&&(f=o.add(f,1)),f=o.root(f,s(l)),a&&(f=o.sub(f,1)),f},getFormula:v=>a?m.add(v,1).pow(l).sub(1):m.pow(v,l),enabled:p,description:i==null?void 0:j(()=>d("div",{class:"modifier-container"},[s(c)!=null?d("span",{class:"modifier-description"},[wt(s(c)),a?" (+1 effective)":null]):null,d("span",{class:"modifier-amount",style:(u===!0?o.gt(s(l),1):o.lt(s(l),1))?"color: var(--danger)":""},[_("^"),zt(s(l))])]))}})}function Nt(e){return Qe(()=>{const t=e();return{apply:n=>t.filter(i=>s(i.enabled)!==!1).reduce((i,r)=>r.apply(i),n),invert:t.every(n=>n.invert!=null)?n=>t.filter(i=>s(i.enabled)!==!1).reduceRight((i,r)=>r.invert(i),n):void 0,getFormula:t.every(n=>n.getFormula!=null)?n=>t.filter(i=>s(i.enabled)!==!1).reduce((i,r)=>r.getFormula(i),n):void 0,enabled:t.some(n=>n.enabled!=null)?C(()=>t.filter(n=>s(n.enabled)!==!1).length>0):void 0,description:t.some(n=>n.description!=null)?j(()=>d(oe,null,[t.filter(n=>s(n.enabled)!==!1).map(n=>s(n.description)).filter(n=>n).map(wt)])):void 0}})}const qi=m.variable(0).step(2e3,e=>e.pow_base(1.02)).step(100,e=>e.pow(1.5)).step(o.pow(900,1.5).add(100),e=>e.pow(1.5)).pow(1.5),an={id:"deselect",icon:"close",tooltip:e=>({text:"portals"in e.state?"Disconnect portals":"tools"in e.state?"Disconnect tools":"Disconnect resources"}),onClick(e){var t;Array.isArray((t=e.state)==null?void 0:t.data)?e.state={...e.state,data:[]}:"portals"in e.state?e.state={...e.state,portals:[]}:"resources"in e.state?e.state={...e.state,resources:[]}:"tools"in e.state&&(e.state={...e.state,tools:[]}),g.board.selectedAction.value=null,g.board.selectedNode.value=null},visibility:e=>{var t;return Array.isArray((t=e.state)==null?void 0:t.data)?e.state.data.length>0:"portals"in e.state?e.state.portals.length>0:"resources"in e.state?e.state.resources.length>0:"tools"in e.state?e.state.tools.length>0:!1}},qt={id:"toggle",icon:"bolt",tooltip:e=>({text:e.state.powered?"Turn Off":`Turn On - Always runs for ${at(g.nextPowerCost.value)} energy/s`}),onClick(e){e.state={...e.state,powered:!e.state.powered},g.board.selectedAction.value=null},fillColor:e=>e.state.powered?"var(--accent1)":"var(--locked)"};function wn(e,t=1/0){const n=e(m.variable(0));return{id:"moreConnections",icon:"hub",formula:n,tooltip(i){return{text:`Increase Connections - ${at(n.evaluate(i.state.maxConnections))} energy`}},fillColor(i){return o.gte(g.energy.value,n.evaluate(i.state.maxConnections))?"var(--bought)":"var(--locked)"},confirmationLabel:i=>o.gte(g.energy.value,n.evaluate(i.state.maxConnections))?{text:"Tap again to confirm"}:{text:"Cannot afford",color:"var(--danger)"},onClick(i){const r=n.evaluate(i.state.maxConnections);o.gte(g.energy.value,r)&&(g.energy.value=o.sub(g.energy.value,r),i.state={...i.state,maxConnections:o.add(i.state.maxConnections,1)},g.board.selectedAction.value=null)},visibility:i=>o.add(i.state.maxConnections,g.computedBonusConnectionsModifier.value).lt(t)}}function Wr(e,t){var n,i;if(((n=g.board.draggingNode.value)==null?void 0:n.type)==="resource"){const r=((i=g.board.draggingNode.value)==null?void 0:i.state).type,{maxConnections:a,resources:u}=e.state;return u.includes(r)?{text:"Disconnect",color:"var(--accent2)"}:o.add(a,g.computedBonusConnectionsModifier.value).lte(u.length)?{text:"Max connections",color:"var(--danger)"}:{text:t(r),color:"var(--accent2)"}}return null}function ed(e,t){var n,i;if(((n=g.board.draggingNode.value)==null?void 0:n.type)==="passive"){const r=(i=g.board.draggingNode.value)==null?void 0:i.state,{maxConnections:a,tools:u}=e.state;return u.includes(r)?{text:"Disconnect",color:"var(--accent2)"}:o.add(a,g.computedBonusConnectionsModifier.value).lte(u.length)?{text:"Max connections",color:"var(--danger)"}:{text:t(r),color:"var(--accent2)"}}return null}function yi(e,t){var n,i;if(((n=g.board.draggingNode.value)==null?void 0:n.type)==="portal"){const r=((i=g.board.draggingNode.value)==null?void 0:i.state).id,{maxConnections:a,portals:u}=e.state;return u.includes(r)?{text:"Disconnect",color:"var(--accent2)"}:o.add(a,g.computedBonusConnectionsModifier.value).lte(u.length)?{text:"Max connections",color:"var(--danger)"}:{text:t(r),color:"var(--accent2)"}}return null}function Hr(e,t){if(t.type!=="resource")return!1;const n=t.state.type,{maxConnections:i,resources:r}=e.state;return r.includes(n)?!0:!o.add(i,g.computedBonusConnectionsModifier.value).lte(r.length)}function Yr(e,t){if(t.type!=="resource")return;const n=t.state.type,i=e.state.resources;i.includes(n)?e.state={...e.state,resources:i.filter(r=>r!==n)}:e.state={...e.state,resources:[...i,n]},g.board.selectedNode.value=e}function td(e,t){if(t.type!=="passive")return!1;const n=t.state,{maxConnections:i,tools:r}=e.state;return r.includes(n)?!0:!o.add(i,g.computedBonusConnectionsModifier.value).lte(r.length)}function nd(e,t){if(t.type!=="passive")return;const n=t.state,i=e.state.tools;i.includes(n)?e.state={...e.state,tools:i.filter(r=>r!==n)}:e.state={...e.state,tools:[...i,n]},g.board.selectedNode.value=e}function wi(e,t){if(t.type!=="portal")return!1;const n=t.state.id,{maxConnections:i,portals:r}=e.state;return r.includes(n)?!0:!o.add(i,g.computedBonusConnectionsModifier.value).lte(r.length)}function _i(e,t){if(t.type!=="portal")return;const n=t.state.id,{portals:i}=e.state;i.includes(n)?e.state={...e.state,portals:i.filter(r=>r!==n)}:e.state={...e.state,portals:[...i,n]},g.board.selectedNode.value=e}function ke(e){return e===g.board.selectedNode.value||e.state.powered}function ee(e){return g.empowerer.value!=null&&ke(g.empowerer.value)&&g.empowerer.value.state.tools.includes(e)}function id(e){var a,u,l;const t=(l=(u=(a=g.resourceNodes.value[e])==null?void 0:a.state)==null?void 0:u.amount)!=null?l:0,n=g.resourceLevels.value[e],i=qi.evaluate(n),r=qi.evaluate(o.add(n,1));return o.sub(t,i).max(0).div(o.sub(r,i)).toNumber()}function cn(e,t,n){if(t.value){const i=t.value.state,r=i[n],a=i.maxConnections;o.gt(r.length,o.add(a,e))&&(t.value.state={...t.value.state,[n]:r.slice(0,o.add(a,e).toNumber())})}}function Vt(e){return{id:"help",icon:"question_mark",tooltip:{text:"Help"},onClick(){g.helpModals[e].showModal.value=!0,g.board.selectedAction.value=null},confirmationLabel:null}}function fr(e){return t=>te.lineVisibility||e===g.board.selectedNode.value||e===g.board.draggingNode.value||g.resourceNodes.value[t]===g.board.draggingNode.value}const rd={key:0},ad={key:0,class:"mark star"},sd=["src"],od=X({__name:"MarkNode",props:{mark:{type:[Boolean,String]}},setup(e){return(t,n)=>e.mark?(S(),R("div",rd,[e.mark===!0?(S(),R("div",ad)):(S(),R("img",{key:1,class:"mark",src:e.mark},null,8,sd))])):z("",!0)}});var Kn=ve(od,[["__scopeId","data-v-2207999f"]]);const ld=X({__name:"Node",props:{id:null},setup(e){const n=De(e),i=ci(Gi,()=>{}),r=ci(Ui,()=>{}),a=bt(null),u=C(()=>a.value&&a.value.parentElement);return ht([u,n.id],([l,c],[p,v])=>{p&&r(s(v)),l&&i(c,l)}),wr(()=>r(s(n.id))),(l,c)=>(S(),R("div",{class:"node",ref_key:"node",ref:a},null,512))}});var Jn=ve(ld,[["__scopeId","data-v-a48cb382"]]),ud=X({props:{display:{type:q(Object,String,Function),required:!0},visibility:{type:q(Number,Boolean),required:!0},style:q(Object,String,Array),classes:q(Object),onClick:Function,onHold:Function,canClick:{type:q(Boolean),required:!0},small:Boolean,mark:q(Boolean,String),id:{type:String,required:!0}},components:{Node:Jn,MarkNode:Kn},setup(e){const{display:t,onClick:n,onHold:i}=De(e),r=bt("");$t(()=>{var v;const l=Ee(t);if(l==null){r.value="";return}if(Et(l)){r.value=fe(l);return}const c=fe((v=l.title)!=null?v:"","h3"),p=fe(l.description,"div");r.value=fe(j(()=>d("span",null,[l.title!=null?d("div",null,[d(c,null,null)]):null,d(p,null,null)])))});const{start:a,stop:u}=Pr(n,i);return{start:a,stop:u,comp:r,Visibility:Me,isVisible:He,isHidden:bn,unref:s}}});function cd(e,t,n,i,r,a){var c;const u=kt("MarkNode"),l=kt("Node");return e.isVisible(e.visibility)?(S(),R("button",{key:0,style:Be([{visibility:e.isHidden(e.visibility)?"hidden":void 0},(c=e.unref(e.style))!=null?c:[]]),onClick:t[0]||(t[0]=(...p)=>e.onClick&&e.onClick(...p)),onMousedown:t[1]||(t[1]=(...p)=>e.start&&e.start(...p)),onMouseleave:t[2]||(t[2]=(...p)=>e.stop&&e.stop(...p)),onMouseup:t[3]||(t[3]=(...p)=>e.stop&&e.stop(...p)),onTouchstartPassive:t[4]||(t[4]=(...p)=>e.start&&e.start(...p)),onTouchendPassive:t[5]||(t[5]=(...p)=>e.stop&&e.stop(...p)),onTouchcancelPassive:t[6]||(t[6]=(...p)=>e.stop&&e.stop(...p)),class:Ne({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)?(S(),ne(Ke(e.unref(e.comp)),{key:0})):z("",!0),d(u,{mark:e.unref(e.mark)},null,8,["mark"]),d(l,{id:e.id},null,8,["id"])],38)):z("",!0)}var Zr=ve(ud,[["render",cd],["__scopeId","data-v-211328c0"]]);const Xr=Symbol("Clickable");function dd(e,...t){const n=t.reduce((i,r)=>{var a;return Object.assign(i,(a=r.getPersistentData)==null?void 0:a.call(r))},{});return Qe(i=>{var u,l,c;const r=(u=e==null?void 0:e.call(i,i))!=null?u:{};r.id=Ht("clickable-"),r.type=Xr,r[dt]=Zr;for(const p of t)(l=p.preConstruct)==null||l.call(p,r);if(Object.assign(r,n),T(r,"visibility"),se(r,"visibility",Me.Visible),T(r,"canClick"),se(r,"canClick",!0),T(r,"classes"),T(r,"style"),T(r,"mark"),T(r,"display"),r.onClick){const p=r.onClick.bind(r);r.onClick=function(v){s(r.canClick)!==!1&&p(v)}}if(r.onHold){const p=r.onHold.bind(r);r.onHold=function(){s(r.canClick)!==!1&&p()}}for(const p of t)(c=p.postConstruct)==null||c.call(p,r);const a=t.reduce((p,v)=>{var f;return Object.assign(p,(f=v.getGatheredProps)==null?void 0:f.call(v,r))},{});return r[lt]=function(){const{display:p,visibility:v,style:f,classes:b,onClick:h,onHold:y,canClick:N,small:E,mark:P,id:I}=this;return{display:p,visibility:v,style:s(f),classes:b,onClick:h,onHold:y,canClick:N,small:E,mark:P,id:I,...a}},r})}function pd(e,t,n=[]){n=n.length===0?Yn(e,Xr):n;const i=typeof t=="function"?C(t):t;return e.on("update",()=>{s(i)&&n.filter(r=>s(r.canClick)).forEach(r=>{var a;return(a=r.onClick)==null?void 0:a.call(r)})})}const fd=["x1","y1","x2","y2"],gd=X({__name:"Link",props:{link:null,startNode:null,endNode:null,boundingRect:null},setup(e){const n=De(e),i=C(()=>{const a=n.startNode.value.rect,u=n.boundingRect.value,l=u?{x:a.x+a.width/2-u.x,y:a.y+a.height/2-u.y}:{x:0,y:0};return n.link.value.offsetStart&&(l.x+=n.link.value.offsetStart.x,l.y+=n.link.value.offsetStart.y),l}),r=C(()=>{const a=n.endNode.value.rect,u=n.boundingRect.value,l=u?{x:a.x+a.width/2-u.x,y:a.y+a.height/2-u.y}:{x:0,y:0};return n.link.value.offsetEnd&&(l.x+=n.link.value.offsetEnd.x,l.y+=n.link.value.offsetEnd.y),l});return(a,u)=>(S(),R("line",Ut({"stroke-width":"15px",stroke:"white"},e.link,{x1:s(i).x,y1:s(i).y,x2:s(r).x,y2:s(r).y}),null,16,fd))}});const md=X({__name:"Links",props:{links:null},setup(e){var c;const n=nn(e,"links"),i=G(null),r=ci(Wi,G({})),a=ci(Hi,G(void 0)),u=G((c=i.value)==null?void 0:c.getBoundingClientRect());ht(a,()=>{var p;return u.value=(p=i.value)==null?void 0:p.getBoundingClientRect()}),vi(()=>{var p;return u.value=(p=i.value)==null?void 0:p.getBoundingClientRect()});const l=C(()=>{var v,f;const p=r.value;return(f=(v=n.value)==null?void 0:v.filter(b=>{var h,y;return((h=p[b.startNode.id])==null?void 0:h.rect)&&((y=p[b.startNode.id])==null?void 0:y.rect)}))!=null?f:[]});return(p,v)=>(S(),R(oe,null,[s(l)?(S(),R("svg",ca(Ut({key:0},p.$attrs)),[(S(!0),R(oe,null,$n(s(l),(f,b)=>(S(),ne(gd,{key:b,link:f,boundingRect:u.value,startNode:s(r)[f.startNode.id],endNode:s(r)[f.endNode.id]},null,8,["link","boundingRect","startNode","endNode"]))),128))],16)):z("",!0),k("div",{ref_key:"resizeListener",ref:i,class:"resize-listener"},null,512)],64))}});var vd=ve(md,[["__scopeId","data-v-063f6d6b"]]);X({props:{nodes:{type:q(Array),required:!0},leftSideNodes:q(Array),rightSideNodes:q(Array),branches:q(Array)},components:{Links:vd},setup(e){const{nodes:t,leftSideNodes:n,rightSideNodes:i}=De(e),r=bt();$t(()=>{const l=Ee(t);r.value=fe(j(()=>d(oe,null,[l.map(c=>d("span",{class:"row tree-row",style:"margin: 50px auto;"},[c.map(wt)]))])))});const a=bt();$t(()=>{const l=Ee(n);a.value=l?fe(j(()=>d("span",{class:"left-side-nodes small"},[l.map(wt)]))):""});const u=bt();return $t(()=>{const l=Ee(i);u.value=l?fe(j(()=>d("span",{class:"side-nodes small"},[l.map(wt)]))):""}),{unref:s,nodesComp:r,leftNodesComp:a,rightNodesComp:u}}});X({props:{display:q(Object,String,Function),visibility:{type:q(Number,Boolean),required:!0},style:q(String,Object,Array),classes:q(Object),onClick:Function,onHold:Function,color:q(String),glowColor:q(String),canClick:{type:q(Boolean),required:!0},mark:q(Boolean,String),id:{type:String,required:!0}},components:{MarkNode:Kn,Node:Jn},setup(e){const{onClick:t,onHold:n,display:i}=De(e),r=Dn(i),{start:a,stop:u}=Pr(t,n);return{start:a,stop:u,comp:r,unref:s,Visibility:Me,isCoercableComponent:Et,isVisible:He,isHidden:bn}}});function zn(e){const t=[],n={};let i=!1;function r(){return i||(t.push(...e()),n.base=t.map(l=>_e(l.base)),n.baseText=t.map(l=>_e(l.baseText)),n.visible=t.map(l=>_e(l.visible)),n.title=t.map(l=>_e(l.title)),n.subtitle=t.map(l=>_e(l.subtitle)),i=!0),t}const a=ot({},!1);return[j(()=>{const l=r();let c=!0;const p=l.map((v,f)=>{var P,I,A;if(s(n.visible[f])===!1)return null;const b=d("h3",{onClick:()=>a.value[f]=!a.value[f],style:"cursor: pointer"},[d("span",{class:"modifier-toggle"+(s(a.value[f])?" collapsed":"")},[_("\u25BC")]),s(n.title[f]),s(n.subtitle[f])!=null?d("span",{class:"subtitle"},[_(" ("),s(n.subtitle[f]),_(")")]):null]),h=s(a.value[f])?null:d(oe,null,[d("div",{class:"modifier-container"},[d("span",{class:"modifier-description"},[wt((P=s(n.baseText[f]))!=null?P:"Base")]),d("span",{class:"modifier-amount"},[xe((I=s(n.base[f]))!=null?I:1),v.unit])]),v.modifier.description==null?null:wt(s(v.modifier.description))]),y=!c;c=!1;const N=(A=s(n.base[f]))!=null?A:1,E=v.modifier.apply(N);return d(oe,null,[y?d("br",null,null):null,d("div",{style:{"--unit":te.alignUnits&&v.unit!=null?"'"+v.unit+"'":""}},[b,d("br",null,null),h,d("hr",null,null),d("div",{class:"modifier-container"},[d("span",{class:"modifier-description"},[_("Total")]),d("span",{class:"modifier-amount",style:(v.smallerIsBetter===!0?o.gt(E,N!=null?N:1):o.lt(E,N!=null?N:1))?"color: var(--danger)":""},[zt(E),v.unit])])])])});return d(oe,null,[p])}),a]}function Pi(e,t,n){const i=_e(t),r=_e(n);return C(()=>{const a=s(i),u=s(r);return o.gte(e.value,u)?"Now":o.lte(a,0)?"Never":bi(o.sub(u,e.value).div(a))})}function dn(e,t,n=1){const i=_e(t),r=_e(n);if(!e.hasVariable())throw new Error("Cannot create formula preview if the formula does not have a variable");return j(()=>{var a;if(s(i)){const u=zt(e.evaluate()),l=zt(e.evaluate(o.add(s((a=e.innermostVariable)!=null?a:0),s(r))));return d(oe,null,[d("b",null,[d("i",null,[u,_(" \u2192 "),l])])])}return d(oe,null,[zt(e.evaluate())])})}const xt={dirt:120,sand:60,gravel:40,wood:30,stone:24,coal:20,copper:15,iron:12,silver:10,gold:8,emerald:6,platinum:5,diamond:4,berylium:3,unobtainium:2,ultimatum:1},Tt=Object.keys(xt),Ve={dirt:{cost:1e3,name:"Pickaxe",type:"passive",state:"dirt"},sand:{cost:1e4,name:"Dowsing Rod",type:"dowsing",state:{resources:[],maxConnections:1,powered:!1}},gravel:{cost:1e5,name:"Ore Processor",type:"passive",state:"gravel"},wood:{cost:1e6,name:"Quarry",type:"quarry",state:{resources:[],maxConnections:1,powered:!1,progress:0}},stone:{cost:1e7,name:"Energizer",type:"passive",state:"stone"},coal:{cost:1e8,name:"Tool Empowerer",type:"empowerer",state:{tools:[],maxConnections:1,powered:!1}},copper:{cost:1e9,name:"Book",type:"passive",state:"copper"},iron:{cost:1e10,name:"Portal Generator",type:"portalGenerator",state:{tier:void 0,influences:[]}},silver:{cost:1e12,name:"Robotics",type:"passive",state:"silver"},gold:{cost:1e15,name:"Booster",type:"booster",state:{portals:[],maxConnections:1,powered:!1,level:1}},emerald:{cost:1e19,name:"AI",type:"passive",state:"emerald"},platinum:{cost:1e24,name:"Upgrader",type:"upgrader",state:{portals:[],maxConnections:1,powered:!1}},diamond:{cost:1e30,name:"ML",type:"passive",state:"diamond"},berylium:{cost:1e37,name:"Automator",type:"automator",state:{portals:[],maxConnections:1,powered:!1}},unobtainium:{cost:1e45,name:"National Grid",type:"passive",state:"unobtainium"},ultimatum:{cost:1e54,name:"Investments",type:"investments",state:{portals:[],maxConnections:1,powered:!1}}},Pt={dirt:"BOGO Coupon",sand:"Metal Detector",gravel:"Neural Nets",wood:"Mining Laser",stone:"Replicator",coal:"Planar Intelligence",copper:"Efficient Code",iron:"Trade Agreements",silver:"Machine Synergizer",gold:"XP Market",emerald:"Efficient Portals",platinum:"Time Dilation",diamond:"Paypal",berylium:"Tiered Mining",unobtainium:"OC'ed Portals",ultimatum:"Rebates"},hd={dirt:{description:e=>e?"Quadruples mining speed":"Doubles mining speed"},gravel:{description:e=>e?"Quadruples mine ore drops":"Doubles mine ore drops"},stone:{description:e=>e?"Quadruples energy gain":"Doubles energy gain"},copper:{description:e=>e?"Material level is 40% stronger":"Material level is 20% stronger"},silver:{description:e=>e?"Quadruples each plane's resource gain":"Doubles each plane's resource gain"},diamond:{description:e=>e?"+20% plane's resource gain per upgrade bought":"+10% plane's resource gain per upgrade bought"},emerald:{description:e=>e?"+2% plane's resource gain per minute active":"+1% plane's resource gain per minute active"},unobtainium:{description:e=>e?"+2 max connections per machine":"+1 max connections per machine"},dirtRelic:{description:e=>e?"2 free levels for repeatables":"1 free level for repeatables"},sandRelic:{description:e=>e?"Treasure's 2 tiers stronger":"Treasure's 1 tier stronger"},gravelRelic:{description:e=>e?"+2% plane's resource gain per repeatable purchase (diminishing)":"+1% plane's resource gain per repeatable purchase (diminishing)"},woodRelic:{description:e=>e?"(Relics)^2 boost mine speed":"Relics boost mine speed"},stoneRelic:{description:e=>e?"All upgrades apply twice":"Non-multiplicative upgrades apply twice"},coalRelic:{description:e=>e?"Every treasure boosts planar speed by +20%":"Every treasure boosts planar speed by +10%"},copperRelic:{description:e=>e?"Power 2 machines free":"Power 1 machine free"},ironRelic:{description:e=>e?"Conversions give quadruple output":"Conversions give double output"},silverRelic:{description:e=>e?"(Powered machines)^2 boost quarry speed":"Powered machines boost quarry speed"},goldRelic:{description:e=>e?"Each treasure gives +50% XP gain":"Each treasure gives +25% XP gain"},emeraldRelic:{description:e=>e?"Creating portals costs 20x less energy":"Creating portals costs 10x less energy"},platinumRelic:{description:e=>e?"Quadruple dimensions' tick rate":"Double dimensions' tick rate"},diamondRelic:{description:e=>e?"Repeatables/dimensions buy max at once":"Repeatables buy max at once"},beryliumRelic:{description:e=>e?"log(energy)^0.5 boosts planes' resource gain":"log(energy)^0.25 boosts planes' resource gain"},unobtainiumRelic:{description:e=>e?"Upgrades/repeatables/dimensions/prestige no longer spend on purchase":"Upgrades/repeatables no longer spend on purchase"}},vt={increaseResources:{display:"+resource",description:e=>{const t=e.data;return t.length===0?"Increase resource odds - Drag a resource to me!":t.length===1?`Increase ${t[0]}'s odds`:`Increase ${t.length} resources' odds`},cost:2,initialData:[]},decreaseResources:{display:"-resource",description:e=>{const t=e.data;return t.length===0?"Decrease resource odds - Drag a resource to me!":t.length===1?`Decrease ${t[0]}'s odds`:`Decrease ${t.length} resources' odds`},cost:2,initialData:[]},increaseLength:{display:"+length",description:"Increase length",cost:100,initialData:void 0},increaseCaches:{display:"+caches",description:"Increase caches odds",cost:10,initialData:void 0},increaseGens:{display:"+gens",description:"Increase generators odds",cost:10,initialData:void 0},increaseInfluences:{display:"+influences",description:"Increase influences odds",cost:10,initialData:void 0},increaseEnergyMults:{display:"+energy mults",description:"Increase energy mults odds",cost:10,initialData:void 0},increaseResourceMults:{display:"+resource mults",description:"Increase resource mults odds",cost:10,initialData:void 0},increaseDiff:{display:"+difficulty",description:"Increase difficulty/rewards odds",cost:10,initialData:void 0},decreaseDiff:{display:"-difficulty",description:"Decrease difficulty/rewards odds",cost:10,initialData:void 0},increaseRewards:{display:"+rewards",description:"Increase rewards level",cost:1e4,initialData:void 0},relic:{display:"+relic",description:"Max length/difficulty, add tier-unique relic",cost:1e6,initialData:void 0}},si=m.variable(0).add(8).times(2).pow10(),bd=X({__name:"Tab",props:{display:null},setup(e){const t=e,{display:n}=De(t),i=zi(n);return(r,a)=>(S(),ne(Ke(s(i))))}}),yd=Symbol("Tab");function Ai(e){return Qe(t=>{const n=e.call(t,t);return n.id=Ht("tab-"),n.type=yd,n[dt]=bd,n[lt]=function(){const{display:i}=this;return{display:i}},n})}function Bt(e,t,n={}){const i=ot(!1);return{modal:j(()=>d(Ot,{modelValue:i.value,"onUpdate:modelValue":a=>i.value=a},{header:()=>d("h2",null,[e]),body:t})),showModal:i,...n}}function wd(){return Bt("Getting Started",j(()=>d("div",null,[d("p",null,[_(`Welcome to Planar Pioneers! Your job is to gather resources and eventually explore and conquer increasingly difficult "planes", which are like alien worlds. To start you'll use the mine (\u26CF\uFE0F) machine to gather resources.`)]),d("br",null,null),d("p",null,[_(`You'll gain energy every second based on how much of each resource you have. You can check the exact calculation and various other information by clicking the "modifiers" button near the top of the screen.`)]),d("br",null,null),d("p",null,[_("Select the machine by clicking it to make the mine active. You can also drag them around to organize your various machines and other objects. While selected machines will have various actions you can take, such as viewing the help for that machine. There's also an action to power the machine, allowing it to be active even while not selected, at the cost of energy per second (cost increases based on the total number of machines being powered).")])])))}function _d(){return Bt("Forging",j(()=>d("div",null,[d("p",null,[_("You've repaired the forge (\u{1F6E0}\uFE0F)! This is the next main line of progression. Here you'll be able to craft a total of 16 machines and passive bonuses to create - one for each resource!")]),d("br",null,null),d("p",null,[_("Drag a resource onto the forge to select that resource tier. You can then use an action on the forge to create that item, at the cost of energy based on the resource tier. You can only have 1 of each item.")])])))}function Nd(){return Bt("Dowsing",j(()=>d("div",null,[d("p",null,[_("You've created the dowsing rod (\u{1F962})! This machine lets you bias the odds of specified resources from mining. It will double the odds of each specified resource, so keep in mind rare resources will still be fairly rare.")]),d("br",null,null),d("p",null,[_("Specify resources to boost by dragging them to the dowsing rod. You can only select a single resource to start, but that can be increased using an action.")])])))}function Cd(){return Bt("Quarry",j(()=>d("div",null,[d("p",null,[_("You've created the Quarry (\u26F0\uFE0F)! This machine lets you gather specified resources. Unlike the mine, this machine will always output the same resources. However, rarer resources will take longer to gather.")]),d("br",null,null),d("p",null,[_("Specify resources to gather by dragging them to the quarry. You can only select a single resource to start, but that can be increased using an action.")])])))}function kd(){return Bt("Tool Empowerer",j(()=>d("div",null,[d("p",null,[_("You've created the Tool Empowerer (\u{1F50C})! This machine lets you increase the effect of specified passives. Experimenting with which passives to empower can really help you progress!")]),d("br",null,null),d("p",null,[_("Specify passives to empower by dragging them to the empowerer. You can only select a single passive to start, but that can be increased using an action.")])])))}function Md(){const e=Ur({general:()=>({display:"General",glowColor(){return e.activeTab.value===this.tab?"white":""},tab:Ai(()=>({display:j(()=>d("div",null,[d("p",null,[_("You've created the Portal Generator (\u26E9\uFE0F)! This machine lets you create portals to other planes, which will have treasures that help you in various ways! To create a portal you need to specify a tier by dragging a resource to the generator - higher tier planes cost more energy to generate portals for, but offer more and better treasures! Keep in mind time in planes will be paused if the portal is inactive (not selected nor powered).")]),d("br",null,null),d("p",null,[_("You've also gained a trash can for portals (\u{1F5D1}\uFE0F). Dragging a portal here will permanently destroy it. Any treasures that require the portal to be active will no longer work. This can be used to keep your workspace clean from old portals you no longer need or want.")]),d("br",null,null),d("p",null,[_("Once you have portals, the lines on the board might getting particularly necessary. Here's a setting (also accessible in the settings modal) to disable resource gain lines unless the node is active.")]),d("br",null,null),d(It,{title:j(()=>d("span",{class:"option-title"},[_("Always show lines to resource nodes")])),modelValue:te.lineVisibility,"onUpdate:modelValue":t=>te.lineVisibility=t},null)]))}))}),treasures:()=>({display:"Treasures",glowColor(){return e.activeTab.value===this.tab?"white":""},tab:Ai(()=>({display:j(()=>d("div",null,[_("Types of potential treasures:"),d("ul",{style:"list-style-type: unset"},[d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("Caches")]),_(": Gain an amount of a resource based on your current amount.")]),d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("Gen")]),_(": Passively gain an amount of a resource while the portal is active (selected or powered).")]),d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("Resource Mult")]),_(": Increase the amount gained of a resource from all sources (except caches) while the portal is active (selected or powered).")]),d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("Energy Mult")]),_(": Increase the energy gained per second while the portal is active (selected or powered).")]),d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("Influences")]),_(": Gain a influence. See the influences tab for details. You can only have 1 of each influence.")]),d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("Relic")]),_(": Gain the relic unique to this tier of plane. These are powerful passive boosts that can be empowered. You can only have 1 of each relic. Relics can only appear with the +relic influence, and will always be the last treasure on a plane.")])])]))}))}),influences:()=>({display:"Influences",glowColor(){return e.activeTab.value===this.tab?"white":""},tab:Ai(()=>({display:j(()=>d("div",null,[d("p",null,[_("Some treasures will grant you influences that can help the portal generator create portals to planes with specified qualities. Each influence will multiply the energy cost of creating the portal.")]),d("br",null,null),Object.keys(g.influenceNodes.value).length>0?d("div",null,[_("Discovered influences:"),d("ul",{style:"list-style-type: unset"},[g.influenceNodes.value.increaseResources==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+resource")]),_(": Can be connected to resources and will cause any treasures that reference resources (caches, gens, and resource mults) to have increased odds of picking a selected resource.")]),g.influenceNodes.value.decreaseResources==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("-resource")]),_(": Can be connected to resources and will cause any treasures that reference resources (caches, gens, and resource mults) to have decreased odds of picking a selected resource.")]),g.influenceNodes.value.increaseLength==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+length")]),_(": Cause the plane to have 1 extra treasure than it otherwise would have.")]),g.influenceNodes.value.increaseCaches==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+caches")]),_(": Causes treasures to have an increased chance to be caches.")]),g.influenceNodes.value.increaseGens==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+gens")]),_(": Causes treasures to have an increased chance to be gens.")]),g.influenceNodes.value.increaseResourceMults==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+resource mults")]),_(": Causes treasures to have an increased chance to be resource mults.")]),g.influenceNodes.value.increaseEnergyMults==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+energy mults")]),_(": Causes treasures to have an increased chance to be energy mults.")]),g.influenceNodes.value.increaseInfluences==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+influences")]),_(": Causes treasures to have an increased chance to be influences.")]),g.influenceNodes.value.relic==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+relic")]),_(": Maximizes length and difficulty for this tier of plane, and makes the last treasure a relic (unique per tier of plane). Overrides any other difficulty-changing influences.")]),g.influenceNodes.value.increaseDiff==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+difficulty")]),_(": Causes the difficulty and rewards to be in the upper half of what's possible at this tier.")]),g.influenceNodes.value.decreaseDiff==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("-difficulty")]),_(": Causes the difficulty and rewards to be in the lower half of what's possible at this tier.")]),g.influenceNodes.value.increaseRewards==null?null:d("li",{style:"margin-top: var(--feature-margin)"},[d("b",{style:"color: var(--bought)"},[_("+rewards")]),_(": Causes the quality of treasures to be 1 tier higher. Does not affect influences or relics treasures.")])])]):d("div",null,[_("Once you discover influences, summaries will appear here describing their effects.")])]))}))})});return Bt("Portal Generator",j(()=>wt(e)),{tabFamily:e})}function Sd(){return Bt("Booster",j(()=>d("div",null,[d("p",null,[_("You've created the Booster (\u231B)! This machine lets you increase the rate of time of planes! This affects its resource gain, gen treasures, and any other effects of time.")]),d("br",null,null),d("p",null,[_("Specify planes to boost by dragging their portals to the booster. You can only select a single plane to start, but that can be increased using an action.")]),d("br",null,null),d("p",null,[_("Initially the booster will double the rate of time, but that can be increased using an action.")])])))}function Id(){return Bt("Upgrader",j(()=>d("div",null,[d("p",null,[_("You've created the Upgrader (\u{1F916})! This machine lets you automatically purchase upgrades within planes (includes prestiges but not repeatables or dimensions)!")]),d("br",null,null),d("p",null,[_("Specify planes to auto-purchase upgrades from by dragging their portals to the booster. You can only select a single plane to start, but that can be increased using an action.")])])))}function xd(){return Bt("Automator",j(()=>d("div",null,[d("p",null,[_("You've created the Automator (\u{1F9BE})! This machine lets you automatically purchase repeatables and dimensions within planes!")]),d("br",null,null),d("p",null,[_("Specify planes to auto-purchase repeatables and dimensions from by dragging their portals to the booster. You can only select a single plane to start, but that can be increased using an action.")])])))}function $d(){return Bt("Investments",j(()=>d("div",null,[d("p",null,[_("You've created the Investments machine (\u{1F4B1})! This machine lets you automatically gain the resources from conversions without spending the plane's primary resource!")]),d("br",null,null),d("p",null,[_("Specify planes to gain converted resources from by dragging their portals to the booster. You can only select a single plane to start, but that can be increased using an action.")])])))}const Ed=X({__name:"Spacer",props:{width:{default:"8px"},height:{default:"17px"}},setup(e){return(t,n)=>(S(),R("div",{style:Be({width:e.width,height:e.height})},null,4))}});function qn(e){return Qe(t=>{var i;const n=e.call(t,t);return n.partialDisplay=r=>d("span",{style:s(n.requirementMet)?"":"color: var(--danger)"},[mi(n.resource,n.cost instanceof m?en(n.cost,r!=null?r:1,s(n.cumulativeCost),s(n.directSum)):s(n.cost))," ",n.resource.displayName]),n.display=r=>d("div",null,[s(n.requiresPay)?"Costs: ":"Requires: ",mi(n.resource,n.cost instanceof m?en(n.cost,r!=null?r:1,s(n.cumulativeCost),s(n.directSum)):s(n.cost))," ",n.resource.displayName]),T(n,"visibility"),se(n,"visibility",Me.Visible),T(n,"cost"),T(n,"requiresPay"),se(n,"requiresPay",!0),T(n,"cumulativeCost"),se(n,"cumulativeCost",!0),T(n,"maxBulkAmount"),se(n,"maxBulkAmount",1),T(n,"directSum"),se(n,"pay",function(r){const a=n.cost instanceof m?en(n.cost,r!=null?r:1,s(n.cumulativeCost),s(n.directSum)):s(n.cost);n.resource.value=o.sub(n.resource.value,a).max(0)}),n.canMaximize=C(()=>{var l;if(!(n.cost instanceof m))return!1;const r=s(n.maxBulkAmount);if(o.lte(r,1))return!1;const a=s(n.cumulativeCost),u=(l=s(n.directSum))!=null?l:a?10:0;return o.lte(r,u)?!0:!(!n.cost.isInvertible()||a===!0&&!n.cost.isIntegrable())}),n.cost instanceof m?n.requirementMet=Fr(n.cost,n.resource,(i=n.cumulativeCost)!=null?i:!0,n.directSum,n.maxBulkAmount):n.requirementMet=C(()=>o.gte(n.resource.value,s(n.cost))),n})}function Qi(e){return Qe(()=>({requirementMet:C(()=>He(e.visibility)),visibility:Me.None,requiresPay:!1}))}function Dd(e,t){return Qe(()=>({requirementMet:_e(e),partialDisplay:t==null?void 0:j(()=>wt(t)),display:t==null?void 0:j(()=>d(oe,null,[_("Req: "),wt(t)])),visibility:t==null?Me.None:Me.Visible,requiresPay:!1}))}function Ni(e){if(Ft(e))return e.every(Ni);const t=s(e.requirementMet);return typeof t=="boolean"?t:o.gt(t,0)}function Kr(e){if(Ft(e))return e.map(Kr).reduce(o.min);const t=s(e.requirementMet);return typeof t=="boolean"?t?o.dInf:0:o.gt(t,1)&&s(e.canMaximize)!==!0?1:t}function Ci(e,t=1){var n,i;if(Ft(e)&&(e=e.filter(r=>He(r.visibility)),e.length===1&&(e=e[0])),Ft(e)){e=e.filter(u=>"partialDisplay"in u);const r=e.filter(u=>s(u.requiresPay)),a=e.filter(u=>!s(u.requiresPay));return d(oe,null,[r.length>0?d("div",null,[_("Costs:")," ",cr(r.map(u=>u.partialDisplay(t)),d(oe,null,[_(", ")]))]):null,a.length>0?d("div",null,[_("Requires:")," ",cr(a.map(u=>u.partialDisplay(t)),d(oe,null,[_(", ")]))]):null])}return(i=(n=e.display)==null?void 0:n.call(e))!=null?i:d(oe,null,null)}function Jr(e,t=1){var n;Ft(e)?e.filter(i=>s(i.requiresPay)).forEach(i=>{var r;return(r=i.pay)==null?void 0:r.call(i,t)}):s(e.requiresPay)&&((n=e.pay)==null||n.call(e,t))}var Td=X({props:{visibility:{type:q(Number,Boolean),required:!0},display:q(Object,String,Function),earned:{type:q(Boolean),required:!0},requirements:q(Object,Array),image:q(String),style:q(String,Object,Array),classes:q(Object),mark:q(Boolean,String),small:q(Boolean),id:{type:String,required:!0}},components:{Node:Jn,MarkNode:Kn},setup(e){const{display:t,requirements:n,earned:i}=De(e),r=bt("");return $t(()=>{const a=Ee(t);if(a==null){r.value="";return}if(Et(a)){r.value=fe(a);return}const u=fe(a.requirement?a.requirement:j(()=>{var p;return Ci((p=Ee(n))!=null?p:[])}),"h3"),l=fe(a.effectDisplay||"","b"),c=Ee(i)?fe(a.optionsDisplay||"","span"):"";r.value=fe(j(()=>d("span",null,[d(u,null,null),a.effectDisplay!=null?d("div",null,[d(l,null,null)]):null,a.optionsDisplay!=null?d("div",{class:"equal-spaced"},[d(c,null,null)]):null])))}),{comp:r,unref:s,Visibility:Me,isVisible:He,isHidden:bn}}});function Pd(e,t,n,i,r,a){var c;const u=kt("MarkNode"),l=kt("Node");return e.isVisible(e.visibility)?(S(),R("div",{key:0,style:Be([{visibility:e.isHidden(e.visibility)?"hidden":void 0,backgroundImage:e.earned&&e.image&&`url(${e.image})`||""},(c=e.unref(e.style))!=null?c:[]]),class:Ne({feature:!0,achievement:!0,locked:!e.unref(e.earned),done:e.unref(e.earned),small:e.unref(e.small),...e.unref(e.classes)})},[e.comp?(S(),ne(Ke(e.comp),{key:0})):z("",!0),d(u,{mark:e.unref(e.mark)},null,8,["mark"]),d(l,{id:e.id},null,8,["id"])],6)):z("",!0)}var Ad=ve(Td,[["render",Pd],["__scopeId","data-v-5673325a"]]);const Rd=hi(),Fd=Symbol("Achievement");let Sn=function(e){return e.All="all",e.Configurable="configurable",e.Incomplete="incomplete",e.None="none",e}({});function Od(e,...t){const n=ot(!1,!1),i=t.reduce((r,a)=>{var u;return Object.assign(r,(u=a.getPersistentData)==null?void 0:u.call(a))},{});return Qe(r=>{var c,p,v;const a=(c=e==null?void 0:e.call(r,r))!=null?c:{};a.id=Ht("achievement-"),a.type=Fd,a[dt]=Ad;for(const f of t)(p=f.preConstruct)==null||p.call(f,a);a.earned=n,a.complete=function(){var b,h;if(n.value)return;n.value=!0;const f=a;if((b=f.onComplete)==null||b.call(f),f.display!=null&&s(f.showPopups)===!0){const y=s(f.display);let N;Et(y)?N=fe(y):y.requirement!=null?N=fe(y.requirement):N=Ci((h=f.requirements)!=null?h:[]),Rd.info(d("div",null,[d("h3",null,[_("Treasure earned!")]),d("div",null,[d(N,null,null)])]))}},Object.assign(a,i),T(a,"visibility"),se(a,"visibility",Me.Visible);const u=a.visibility;a.visibility=da(()=>{const f=s(a.display);switch(te.msDisplay){default:case Sn.All:return s(u);case Sn.Configurable:return s(a.earned)&&!(f!=null&&typeof f=="object"&&"optionsDisplay"in f)?Me.None:s(u);case Sn.Incomplete:return s(a.earned)?Me.None:s(u);case Sn.None:return Me.None}}),T(a,"display"),T(a,"mark"),T(a,"small"),T(a,"image"),T(a,"style"),T(a,"classes"),T(a,"showPopups"),se(a,"showPopups",!0);for(const f of t)(v=f.postConstruct)==null||v.call(f,a);const l=t.reduce((f,b)=>{var h;return Object.assign(f,(h=b.getGatheredProps)==null?void 0:h.call(b,a))},{});if(a[lt]=function(){const{visibility:f,display:b,requirements:h,earned:y,image:N,style:E,classes:P,mark:I,small:A,id:B}=this;return{visibility:f,display:b,requirements:h,earned:y,image:N,style:s(E),classes:P,mark:I,small:A,id:B,...l}},a.requirements){const f=a,b=[Qi(f),Dd(()=>!f.earned.value),...Ft(a.requirements)?a.requirements:[a.requirements]];$t(()=>{te.active===Z.id&&Ni(b)&&f.complete()})}return a})}Je.on("loadSettings",e=>{se(e,"msDisplay",Sn.All)});const qd=Object.values(Sn).map(e=>({label:it(e),value:e}));Dr(j(()=>d(Ki,{title:j(()=>d("span",{class:"option-title"},[_("Show achievements"),d("desc",null,[_("Select which achievements to display based on criterias.")])])),options:qd,"onUpdate:modelValue":e=>te.msDisplay=e,modelValue:te.msDisplay},null)));const Vd=X({props:{progress:{type:q(String,Object,Number),required:!0},width:{type:q(Number),required:!0},height:{type:q(Number),required:!0},direction:{type:q(String),required:!0},display:q(Object,String,Function),visibility:{type:q(Number,Boolean),required:!0},style:q(Object,String,Array),classes:q(Object),borderStyle:q(Object,String,Array),textStyle:q(Object,String,Array),baseStyle:q(Object,String,Array),fillStyle:q(Object,String,Array),mark:q(Boolean,String),id:{type:String,required:!0}},components:{MarkNode:Kn,Node:Jn},setup(e){const{progress:t,width:n,height:i,direction:r,display:a}=De(e),u=C(()=>{let p=t.value instanceof o?t.value.toNumber():Number(t.value);return(1-Math.min(Math.max(p,0),1))*100}),l=C(()=>{const p={width:Ee(n)+.5+"px",height:Ee(i)+.5+"px"};switch(s(r)){case W.Up:p.clipPath=`inset(${u.value}% 0% 0% 0%)`,p.width=Ee(n)+1+"px";break;case W.Down:p.clipPath=`inset(0% 0% ${u.value}% 0%)`,p.width=Ee(n)+1+"px";break;case W.Right:p.clipPath=`inset(0% ${u.value}% 0% 0%)`;break;case W.Left:p.clipPath=`inset(0% 0% 0% ${u.value} + '%)`;break;case W.Default:p.clipPath="inset(0% 50% 0% 0%)";break}return p}),c=Dn(a);return{normalizedProgress:u,barStyle:l,component:c,unref:s,Visibility:Me,isVisible:He,isHidden:bn}}});function Bd(e,t,n,i,r,a){var c,p,v,f,b,h,y;const u=kt("MarkNode"),l=kt("Node");return e.isVisible(e.visibility)?(S(),R("div",{key:0,style:Be([{width:e.unref(e.width)+"px",height:e.unref(e.height)+"px",visibility:e.isHidden(e.visibility)?"hidden":void 0},(c=e.unref(e.style))!=null?c:{}]),class:Ne({bar:!0,...e.unref(e.classes)})},[k("div",{class:"overlayTextContainer border",style:Be([{width:e.unref(e.width)+"px",height:e.unref(e.height)+"px"},(p=e.unref(e.borderStyle))!=null?p:{}])},[e.component?(S(),R("span",{key:0,class:"overlayText",style:Be(e.unref(e.textStyle))},[(S(),ne(Ke(e.component)))],4)):z("",!0)],4),k("div",{class:"border",style:Be([{width:e.unref(e.width)+"px",height:e.unref(e.height)+"px"},(v=e.unref(e.style))!=null?v:{},(f=e.unref(e.baseStyle))!=null?f:{},(b=e.unref(e.borderStyle))!=null?b:{}])},[k("div",{class:"fill",style:Be([e.barStyle,(h=e.unref(e.style))!=null?h:{},(y=e.unref(e.fillStyle))!=null?y:{}])},null,4)],4),d(u,{mark:e.unref(e.mark)},null,8,["mark"]),d(l,{id:e.id},null,8,["id"])],6)):z("",!0)}var Ld=ve(Vd,[["render",Bd],["__scopeId","data-v-6bd06b56"]]);const jd=Symbol("Bar");function zd(e,...t){const n=t.reduce((i,r)=>{var a;return Object.assign(i,(a=r.getPersistentData)==null?void 0:a.call(r))},{});return Qe(i=>{var u,l;const r=e.call(i,i);r.id=Ht("bar-"),r.type=jd,r[dt]=Ld;for(const c of t)(u=c.preConstruct)==null||u.call(c,r);Object.assign(r,n),T(r,"visibility"),se(r,"visibility",Me.Visible),T(r,"width"),T(r,"height"),T(r,"direction"),T(r,"style"),T(r,"classes"),T(r,"borderStyle"),T(r,"baseStyle"),T(r,"textStyle"),T(r,"fillStyle"),T(r,"progress"),T(r,"display"),T(r,"mark");for(const c of t)(l=c.postConstruct)==null||l.call(c,r);const a=t.reduce((c,p)=>{var v;return Object.assign(c,(v=p.getGatheredProps)==null?void 0:v.call(p,r))},{});return r[lt]=function(){const{progress:c,width:p,height:v,direction:f,display:b,visibility:h,style:y,classes:N,borderStyle:E,textStyle:P,baseStyle:I,fillStyle:A,mark:B,id:ce}=this;return{progress:c,width:p,height:v,direction:f,display:b,visibility:h,style:s(y),classes:N,borderStyle:E,textStyle:P,baseStyle:I,fillStyle:A,mark:B,id:ce,...a}},r})}function Gd(e,...t){return Qe(n=>{var r,a;const i=e.call(n,n);for(const u of t)(r=u.preConstruct)==null||r.call(u,i);i.formula=i.formula(m.variable(i.baseResource)),i.currentGain==null&&(i.currentGain=C(()=>{let u=o.floor(i.formula.evaluate(i.baseResource.value)).max(0);return s(i.buyMax)===!1&&(u=u.min(1)),u})),i.actualGain==null&&(i.actualGain=i.currentGain),i.currentAt==null&&(i.currentAt=C(()=>i.formula.invert(o.floor(s(i.currentGain))))),i.nextAt==null&&(i.nextAt=C(()=>i.formula.invert(o.floor(s(i.currentGain)).add(1)))),i.convert==null&&(i.convert=function(){var l;const u=s(i.currentGain);i.gainResource.value=o.add(i.gainResource.value,u),i.spend(u),(l=i.onConvert)==null||l.call(i,u)}),i.spend==null&&(i.spend=function(){i.baseResource.value=0}),T(i,"currentGain"),T(i,"actualGain"),T(i,"currentAt"),T(i,"nextAt"),T(i,"buyMax"),se(i,"buyMax",!0);for(const u of t)(a=u.postConstruct)==null||a.call(u,i);return i})}function Ud(e){return Gd(e)}function Wd(e,t,n=1,i=o.dInf){const r=_e(n),a=_e(i);e.on("preUpdate",u=>{const l=s(r);o.neq(l,0)&&(t.gainResource.value=o.add(t.gainResource.value,o.times(l,u).times(o.ceil(s(t.actualGain)))).min(s(a)).max(t.gainResource.value))})}const Hd={postConstruct(e){e.amount===void 0&&console.error(`Decorated feature ${e.id} does not contain the required 'amount' property"`),T(e,"bonusAmount"),e.totalAmount===void 0&&(e.totalAmount=C(()=>{var t;return o.add(s((t=e.amount)!=null?t:0),s(e.bonusAmount))}))}},Qr=Symbol("Repeatable");function gr(e,...t){const n=ot(0),i=t.reduce((r,a)=>{var u;return Object.assign(r,(u=a.getPersistentData)==null?void 0:u.call(a))},{});return Qe(r=>{var b,h,y;const a=e.call(r,r);a.id=Ht("repeatable-"),a.type=Qr,a[dt]=Zr;for(const N of t)(b=N.preConstruct)==null||b.call(N,a);a.amount=n,a.amount[Wt]=(h=a.initialAmount)!=null?h:0,Object.assign(a,i);const u={requirementMet:C(()=>o.sub(s(a.limit),a.amount.value)),requiresPay:!1,visibility:Me.None,canMaximize:!0},l=Qi(a);Ft(a.requirements)?(a.requirements.unshift(l),a.requirements.push(u)):a.requirements=[l,a.requirements,u],a.maxed=C(()=>o.gte(a.amount.value,s(a.limit))),T(a,"classes");const c=a.classes;a.classes=C(()=>{const N=s(c)||{};return a.maxed.value&&(N.bought=!0),N}),a.amountToIncrease=C(()=>o.clampMin(Kr(a.requirements),1)),a.canClick=C(()=>Ni(a.requirements));const p=a.onClick;a.onClick=function(N){var I;const E=a;if(!s(E.canClick))return;const P=(I=s(a.amountToIncrease))!=null?I:1;Jr(a.requirements,P),E.amount.value=o.add(E.amount.value,P),p==null||p(N)},T(a,"display");const v=a.display;a.display=j(()=>{var E,P,I;const N=s(v);if(Et(N)){const A=fe(N);return d(A,null,null)}if(N!=null){const A=a,B=fe((E=N.title)!=null?E:"","h3"),ce=fe((P=N.description)!=null?P:""),le=fe((I=N.effectDisplay)!=null?I:"");return d("span",null,[N.title==null?null:d("div",null,[d(B,null,null)]),N.description==null?null:d(ce,null,null),N.showAmount===!1?null:d("div",null,[d("br",null,null),d(oe,null,[_("Amount: "),at(A.amount.value)]),o.isFinite(s(A.limit))?d(oe,null,[_(" / "),at(s(A.limit))]):void 0]),N.effectDisplay==null?null:d("div",null,[d("br",null,null),_("Currently: "),d(le,null,null)]),A.maxed.value?null:d("div",null,[d("br",null,null),Ci(A.requirements,s(a.amountToIncrease))])])}return""}),T(a,"visibility"),se(a,"visibility",Me.Visible),T(a,"limit"),se(a,"limit",o.dInf),T(a,"style"),T(a,"mark"),T(a,"small");for(const N of t)(y=N.postConstruct)==null||y.call(N,a);const f=t.reduce((N,E)=>{var P;return Object.assign(N,(P=E.getGatheredProps)==null?void 0:P.call(E,a))},{});return a[lt]=function(){const{display:N,visibility:E,style:P,classes:I,onClick:A,canClick:B,small:ce,mark:le,id:ie}=this;return{display:N,visibility:E,style:s(P),classes:I,onClick:A,canClick:B,small:ce,mark:le,id:ie,...f}},a})}const Yd=Symbol("Reset");function Zd(e){return Qe(t=>{const n=e.call(t,t);return n.id=Ht("reset-"),n.type=Yd,n.reset=function(){var r;const i=a=>{if(a!=null&&typeof a=="object"&&!(a instanceof o)&&!(a instanceof m)){if(Xn in a&&a[Xn]===!0)return;if(Wt in a){const u=a;u.value=u[Wt]}else!(a instanceof o)&&!Oe(a)&&Object.values(a).forEach(u=>i(u))}};s(n.thingsToReset).forEach(i),Je.emit("reset",n),(r=n.onReset)==null||r.call(n)},T(n,"thingsToReset"),n})}const oi={};Je.on("removeLayer",e=>{var t;(t=oi[e.id])==null||t.call(oi),oi[e.id]=void 0});function Ri(e,t){return T(t,"display"),T(t,"classes"),T(t,"style"),T(t,"direction"),se(t,"direction",W.Up),T(t,"xoffset"),T(t,"yoffset"),t.pinnable&&(t.pinned=ot(!1,!1)),Gt(()=>{t.pinnable&&("pinned"in e?(console.error("Cannot add pinnable tooltip to element that already has a property called 'pinned'"),t.pinnable=!1,Or(t.pinned)):e.pinned=t.pinned);const n=e[dt];e[dt]=Fe;const i=e[lt].bind(e);e[lt]=function(){const{display:a,classes:u,style:l,direction:c,xoffset:p,yoffset:v,pinned:f}=this;return{element:{[dt]:n,[lt]:i},display:a,classes:u,style:s(l),direction:c,xoffset:p,yoffset:v,pinned:f}}.bind(t)}),t}var Xd=X({props:{display:{type:q(String,Object,Function),required:!0},visibility:{type:q(Number,Boolean),required:!0},style:q(String,Object,Array),classes:q(Object),requirements:{type:Object,required:!0},canPurchase:{type:q(Boolean),required:!0},bought:{type:q(Boolean),required:!0},mark:q(Boolean,String),id:{type:String,required:!0},purchase:{type:Function,required:!0}},components:{Node:Jn,MarkNode:Kn},setup(e){const{display:t,requirements:n,bought:i}=De(e),r=bt("");return $t(()=>{const a=Ee(t);if(a==null){r.value="";return}if(Et(a)){r.value=fe(a);return}const u=fe(a.title||"","h3"),l=fe(a.description,"div"),c=fe(a.effectDisplay||"");r.value=fe(j(()=>d("span",null,[a.title!=null?d("div",null,[d(u,null,null)]):null,d(l,null,null),a.effectDisplay!=null?d("div",null,[_("Currently: "),d(c,null,null)]):null,i.value?null:d(oe,null,[d("br",null,null),Ci(n.value)])])))}),{component:r,unref:s,Visibility:Me,isVisible:He,isHidden:bn}}});const Kd=["disabled"];function Jd(e,t,n,i,r,a){var c;const u=kt("MarkNode"),l=kt("Node");return e.isVisible(e.visibility)?(S(),R("button",{key:0,style:Be([{visibility:e.isHidden(e.visibility)?"hidden":void 0},(c=e.unref(e.style))!=null?c:{}]),onClick:t[0]||(t[0]=(...p)=>e.purchase&&e.purchase(...p)),class:Ne({feature:!0,upgrade:!0,can:e.unref(e.canPurchase),locked:!e.unref(e.canPurchase),bought:e.unref(e.bought),...e.unref(e.classes)}),disabled:!e.unref(e.canPurchase)},[e.unref(e.component)?(S(),ne(Ke(e.unref(e.component)),{key:0})):z("",!0),d(u,{mark:e.unref(e.mark)},null,8,["mark"]),d(l,{id:e.id},null,8,["id"])],14,Kd)):z("",!0)}var Qd=ve(Xd,[["render",Jd],["__scopeId","data-v-9be6bac0"]]);const er=Symbol("Upgrade");function mr(e,...t){const n=ot(!1,!1),i=t.reduce((r,a)=>{var u;return Object.assign(r,(u=a.getPersistentData)==null?void 0:u.call(a))},{});return Qe(r=>{var c,p;const a=e.call(r,r);a.id=Ht("upgrade-"),a.type=er,a[dt]=Qd;for(const v of t)(c=v.preConstruct)==null||c.call(v,a);a.bought=n,Object.assign(a,i),a.canPurchase=C(()=>!n.value&&Ni(a.requirements)),a.purchase=function(){var f;const v=a;!s(v.canPurchase)||(Jr(a.requirements),n.value=!0,(f=v.onPurchase)==null||f.call(v))};const u=Qi(a);Ft(a.requirements)?a.requirements.unshift(u):a.requirements=[u,a.requirements],T(a,"visibility"),se(a,"visibility",Me.Visible),T(a,"classes"),T(a,"style"),T(a,"display"),T(a,"mark");for(const v of t)(p=v.postConstruct)==null||p.call(v,a);const l=t.reduce((v,f)=>{var b;return Object.assign(v,(b=f.getGatheredProps)==null?void 0:b.call(f,a))},{});return a[lt]=function(){const{display:v,visibility:f,style:b,classes:h,requirements:y,canPurchase:N,bought:E,mark:P,id:I,purchase:A}=this;return{display:v,visibility:f,style:s(b),classes:h,requirements:y,canPurchase:N,bought:E,mark:P,id:I,purchase:A,...l}},a})}function ep(e,t,n=[]){n=n.length===0?Yn(e,er):n;const i=Wn(t)?C(t):t;e.on("update",()=>{s(i)&&n.forEach(r=>r.purchase())})}function tp(e,t,n,i){return function(){e>>>=0,t>>>=0,n>>>=0,i>>>=0;let r=e+t|0;return e=t^t>>>9,t=n+(n<<3)|0,n=n<<21|n>>>11,i=i+1|0,r=r+i|0,n=n+r|0,(r>>>0)/4294967296}}const np={1:["b","c","d","f","g","h","i","j","k","l","m","n","p","q","r","s","t","v","w","x","y","z"],2:["a","e","o","u"],3:["br","cr","dr","fr","gr","pr","str","tr","bl","cl","fl","gl","pl","sl","sc","sk","sm","sn","sp","st","sw","ch","sh","th","wh"],4:["ae","ai","ao","au","a","ay","ea","ei","eo","eu","e","ey","ua","ue","ui","uo","u","uy","ia","ie","iu","io","iy","oa","oe","ou","oi","o","oy"],5:["turn","ter","nus","rus","tania","hiri","hines","gawa","nides","carro","rilia","stea","lia","lea","ria","nov","phus","mia","nerth","wei","ruta","tov","zuno","vis","lara","nia","liv","tera","gantu","yama","tune","ter","nus","cury","bos","pra","thea","nope","tis","clite"],6:["una","ion","iea","iri","illes","ides","agua","olla","inda","eshan","oria","ilia","erth","arth","orth","oth","illon","ichi","ov","arvis","ara","ars","yke","yria","onoe","ippe","osie","one","ore","ade","adus","urn","ypso","ora","iuq","orix","apus","ion","eon","eron","ao","omia"]},vr=[[1,2,5],[2,3,6],[3,4,5],[4,3,6],[3,4,2,5],[2,1,3,6],[3,4,2,5],[4,3,1,6],[3,4,1,4,5],[4,1,4,3,6]];function Fi(e){const t=vr[Math.floor(e()*vr.length)];let n="";for(let i=0;in-n*t*Math.max(Math.min(a,4-a,1),0);return[i(5),i(3),i(1)]}const br=hi();function ea(e,t,n,i){return Yi(e,function(){const r=tp(0,n>>0,n>>32,1);for(let V=0;V<12;V++)r();const a=Fi(r),u=Vn([.64,.75,.55],r),l=Vn([.18,.2,.25],r),c=Mn(0,Fi(r)),p=ot(0),v=Tt.indexOf(t);let f=r();const b=i.reduce((V,L)=>(V[L.type]=L.data,V),{});"increaseDiff"in b&&(f=f/2+.5),"decreaseDiff"in b&&(f=f/2),"relic"in b&&(f=1);const h=f+v+1,y=g.toolNodes.value.sandRelic!=null?ee("sandRelic")?2:1:0,N=ot(y),E=C(()=>("increaseRewards"in b?h+1:h)+N.value);let P="relic"in b?v+2:Math.ceil(r()*(v+2));"increaseLength"in b&&P++;const I=[],A=Nt(()=>I),B=C(()=>A.apply(0)),ce=[],le={};function ie({feature:V,canClick:L,modifier:$e,cost:tt,previewModifier:Nn,showETA:ut,previewCost:gt}){L=_e(L),ut=_e(ut);const St=dr(V);ce.push({shouldShowPreview:C(()=>s(L)&&St.value),modifier:Nt(()=>{const Dt=I.slice();return Dt.splice(Dt.indexOf($e),1,Nn),Dt}),cost:gt!=null?gt:tt}),I.push($e);const Xt=Pi(c,B,()=>Se(tt)),Ze=Ri(V,{display:ut==null?Xt:()=>s(ut)?Xt.value:"",direction:W.Down});return{isHovering:St,eta:Xt,tooltip:Ze}}const Q=[],Ie=G(0);let he=m.variable(Ie).times(0),U=0,be=!0;const je=C(()=>o.add(h,r()-.5).pow_base(2).times(10).times(he.evaluate()));for(let V=0;V=P-1?0:4};switch(li(L,r)){case"upgrades":const $=[];for(let x=0;x<4;x++){const H=li({add:1,mult:V===0&&x===0?0:1},r),K=je.value,Ae=kn(r);let ze="",Re,ae;switch(H){case"add":{const de=o.add(K,10).pow(r()/4+1);ze=`Gain ${xe(de)} ${c.displayName}/s`,he=he.add(de),Re=nt=>jt(()=>({addend:de,description:Ae,enabled:nt==null?ye.bought:()=>nt()&&ye.bought.value})),ae=jt(()=>({addend:de}));break}case"mult":{const de=r()*5+1;ze=`Multiply previous ${c.displayName} gain by x${xe(de)}.`;const nt=U;he=he.add(o.sub(de,1).times(nt)),Re=Xe=>Ce(()=>({multiplier:de,description:Ae,enabled:Xe==null?ye.bought:()=>Xe()&&ye.bought.value})),ae=Ce(()=>({multiplier:de}));break}}U=he.evaluate(),Ie.value++;const Pe=be,ye=mr(()=>({requirements:qn(()=>({resource:Cn(c),cost:K,requiresPay:()=>g.toolNodes.value.unobtainiumRelic==null})),display:{title:Ae,description:ze},visibility:Pe}));ie({feature:ye,canClick:()=>ye.canPurchase.value,modifier:Re(),cost:K,previewCost:C(()=>g.toolNodes.value.unobtainiumRelic==null?K:0),showETA:()=>!ye.bought.value,previewModifier:ae}),I.push(Re(()=>H==="add"?g.toolNodes.value.stoneRelic!=null:ee("stoneRelic"))),$.push(ye)}Q.push($);break;case"repeatables":const D=[];for(let x=0;x<3;x++){const H=li({add:1.5,mult:3},r),K=Ie.value,Ae=je.value,ze=kn(r);let Re="",ae,Pe,ye,de;const nt=m.variable(C(()=>ue.amount.value)).times(2);switch(H){case"add":{const Ge=o.add(Ae,10).times(r()+.5);Re=`Gain ${xe(Ge)} ${c.displayName}/s`,de=nt.add(1).times(Ae),he=he.add(C(()=>o.sub(Ie.value,K).times(2).add(1).pow(2).clampMax(100).times(Ge))),ae=C(()=>xe(o.times(Ge,s(ue.totalAmount)))+"/s"),Pe=jt(()=>({addend:()=>o.times(Ge,s(ue.totalAmount)),description:ze,enabled:()=>o.gt(s(ue.totalAmount),0)})),ye=jt(()=>({addend:()=>o.add(s(ue.totalAmount),ue.amountToIncrease.value).times(Ge)}));break}case"mult":{const Ge=r()*.75+1.25;Re=`Multiply previous ${c.displayName} gain by x${xe(Ge)}.`,de=nt.add(1).pow_base(Ge).times(Ae);const rt=U;he=he.add(C(()=>o.sub(Ie.value,K).times(2).add(1).pow(2).clampMax(100).pow_base(Ge).sub(1).times(rt))),ae=C(()=>"x"+xe(o.pow(Ge,s(ue.totalAmount)))),Pe=Ce(()=>({multiplier:()=>o.pow(Ge,s(ue.totalAmount)),description:ze,enabled:()=>o.gt(s(ue.totalAmount),0)})),ye=Ce(()=>({multiplier:()=>o.add(s(ue.totalAmount),ue.amountToIncrease.value).pow_base(Ge)}));break}}U=he.evaluate(),Ie.value++;const Xe=be,ue=gr(()=>({requirements:qn(()=>({resource:Cn(c),cost:de,maxBulkAmount:()=>g.toolNodes.value.diamondRelic!=null?o.dInf:1,requiresPay:()=>g.toolNodes.value.unobtainiumRelic==null})),display:()=>({title:ze,description:`${Re}

Amount: ${at(ue.amount.value)}${o.gt(s(ue.bonusAmount),0)?` [+${at(s(ue.bonusAmount))}]`:""}`,effectDisplay:s(ae),showAmount:!1}),visibility:Xe,limit:100,bonusAmount:()=>o.gt(ue.amount.value,0)?ee("dirtRelic")?2:g.toolNodes.value.dirtRelic!=null?1:0:0}),Hd);ie({feature:ue,canClick:()=>s(ue.canClick),modifier:Pe,cost:de,previewModifier:ye,previewCost:C(()=>g.toolNodes.value.unobtainiumRelic==null?en(de,ue.amountToIncrease.value):0),showETA:()=>!ue.maxed.value}),D.push(ue)}Q.push(D);break;case"conversion":{const x=Mn(0,Fi(r)),O=Vn([.64,.75,.55],r),H=je.value,K=r()/2+.25,Ae=r()/2+.25,ze=Ie.value,Re=U;he=he.add(C(()=>o.sub(Ie.value,ze).add(1).pow10().times(Re)));const ae=Ud(()=>({baseResource:Cn(c),gainResource:x,formula:$i=>$i.div(H).pow(K).times(C(()=>g.toolNodes.value.ironRelic!=null?ee("ironRelic")?4:2:1)),spend(){c.value=0}}));U=he.evaluate(),Ie.value+=2;const Pe=be,ye=kn(r),de=m.variable(x).pow(Ae).add(1),nt=Ce(()=>({multiplier:()=>de.evaluate(),description:ye,enabled:()=>o.gt(x.value,0)})),Xe=Ce(()=>({multiplier:()=>de.evaluate(o.add(x.value,ae.actualGain.value))})),ue=dd(()=>({display:{title:ye,description:j(()=>d("span",null,[_("Reset "),c.displayName,_(" for")," ",mi(x,o.clampMin(ae.actualGain.value,1))," ",x.displayName,d("br",null,null),d("div",null,[_("Next:")," ",mi(c,o.lt(ae.actualGain.value,1)?ae.currentAt.value:ae.nextAt.value)," ",c.displayName])]))},style:{width:"200px",minHeight:"100px"},canClick:()=>o.gte(ae.actualGain.value,1),prestigeResource:x,onClick:ae.convert,visibility:Pe})),{isHovering:Ge}=ie({feature:ue,canClick:()=>s(ue.canClick),modifier:nt,cost:H,previewCost:c,previewModifier:Xe}),rt=C(()=>Ge.value&&ue.canClick.value);Q.push([ue]);const On=dn(m.variable(x),rt,ae.actualGain),et=dn(de,rt,ae.actualGain);le[V*2]=j(()=>d(oe,null,[He(ue.visibility)?d("div",{style:"margin: 10px"},[_("You have")," ",d("h2",{style:{color:O,textShadow:`0px 0px 10px ${O}`}},[On()])," ",x.displayName,_(","),d("br",null,null),_("providing a "),et(),_("x multiplier to previous")," ",c.displayName,_(" gain")]):null,Ti(ue)])),Wd(this,ae,()=>Ye.value.lengthen(ae,Pe.value,!0,10)),de=C(()=>en(ae,o.add(Pe.value,1),!0,10)),nt=C(()=>o.pow(Re,Pe.value)),Xe=Ce(()=>({multiplier:nt,description:K,enabled:()=>He(rt.visibility)})),ue=U;he=he.add(C(()=>o.sub(Ie.value,H).add(1).times(3).pow(Re).times(ue))),U=he.evaluate(),Ie.value+=2;const Ge=Vn([.64,.75,.55],r),rt=zd(()=>({direction:W.Right,width:300,height:20,progress:()=>o.sub(x.value,ye.value).div(o.sub(de.value,ye.value)).toNumber(),visibility:O,xp:x,display:j(()=>d("span",null,[xe(x.value),_("/"),xe(de.value)])),fillStyle:`background-color: ${Ge}`,textStyle:"text-shadow: 5px 0 10px black"}));this.on("preUpdate",On=>{if(Ye.value.lengthet.state.id===e)&&He(rt.visibility)){let et=o.times(Mt.value,On);g.toolNodes.value.goldRelic!=null&&(et=o.times(ee("goldRelic")?.5:.25,Ye.value.length).add(1).times(et)),x.value=o.add(et,x.value)}}),I.push(Xe),Q.push([rt]),le[V*2]=j(()=>d(oe,null,[He(rt.visibility)?d("div",{style:"margin: 10px"},[_("You have "),d("h3",null,[K]),_(" Lv. "),at(Pe.value),_(","),d("br",null,null),_("providing a "),xe(nt.value),_("x multiplier to previous")," ",c.displayName,_(" gain"),d("br",null,null)]):null,Ti(rt)]));break}case"dimensions":{const x=kn(r),O=Mn(0,x+" energy"),H=Vn([.64,.75,.55],r),K=Ie.value,Ae=U;he=he.add(C(()=>o.sub(Ie.value,K).add(1).pow_base(32).add(1).log2().add(1).times(Ae)));const ze=C(()=>o.add(O.value,1).log2().add(1)),Re=Ce(()=>({multiplier:ze,description:x,enabled:()=>o.gt(O.value,0)}));I.push(Re);const ae=be,Pe=[];for(let ye=0;ye<4;ye++){const de=o.add(h,r()-.5).pow_base(2).times(10).recip(),nt=je.value,Xe=m.variable(C(()=>et.amount.value)),ue=Xe.pow_base(o.pow10(ye+1)).times(nt),Ge=["First","Second","Third","Fourth"][ye]+" "+x+" Dimension",rt=Mn(0,Ge),On=Xe.sub(1).pow_base(2).times(de).times(C(()=>o.add(et.amount.value,rt.value))),et=gr(()=>({display:{title:Ge,description:j(()=>d("div",null,[d("div",null,[_("Amount:")," ",xe(o.add(rt.value,et.amount.value))," ",_("["),at(et.amount.value),_("]")])])),effectDisplay:j(()=>d("span",null,[na()," ",ye===0?O.displayName:["First","Second","Third","Fourth"][ye-1]+" "+x+" Dimension",_("/s")])),showAmount:!1},style:{width:"400px"},effect:On,dimensions:rt,limit:100,energy:ye===0?O:void 0,requirements:qn(()=>({resource:Cn(c),cost:ue,maxBulkAmount:()=>ee("diamondRelic")!=null?o.dInf:1,requiresPay:()=>!ee("unobtainiumRelic")})),visibility:ae}));Pe.push(et);const $i=dr(et),nr=C(()=>s(et.canClick)&&$i.value),ta=new m({inputs:[Xe],evaluate(ir){return o.sub(ir,1).pow_base(2).times(de).times(o.add(ir,rt.value))}}),na=dn(ta,nr);ce.push({shouldShowPreview:nr,cost:C(()=>ee("unobtainiumRelic")?0:en(ue,et.amountToIncrease.value))});const ia=Pi(c,B,()=>Se(ue));Ri(et,{display:ia,direction:W.Down}),U=he.evaluate(),Ie.value++}this.on("preUpdate",ye=>{if(Ye.value.lengthde.state.id===e)&&He(ae)){let de=o.times(Mt.value,ye);g.toolNodes.value.platinumRelic!=null&&(de=o.times(ee("platinumRelic")?4:2,de));const nt=Pe[0].effect.evaluate();O.value=o.times(nt,de).add(O.value);for(let Xe=1;Xe<4;Xe++){const ue=Pe[Xe].effect.evaluate();Pe[Xe-1].dimensions.value=o.times(ue,de).add(Pe[Xe-1].dimensions.value)}}}),Q.push(Pe),le[V*2]=j(()=>d(oe,null,[He(ae)?d("div",{style:"margin: 10px"},[_("You have")," ",d("h2",{style:{color:H,textShadow:`0px 0px 10px ${H}`}},[xe(O.value)])," ",O.displayName,_(","),d("br",null,null),_("providing a "),xe(ze.value),_("x multiplier to previous")," ",c.displayName,_(" gain")]):null,Ss(...Pe)]));break}case"prestige":{const x=kn(r),O=be,H=r()/10+1.1,K=je.value;he=he.pow(H);const Ae=Qc(()=>({exponent:H,description:x,enabled:ae.bought}));U=he.evaluate(),Ie.value+=20;const ze=Q.filter((ye,de)=>de%2===0),Re=Zd(()=>({thingsToReset:ze,onReset(){c.value=0}})),ae=mr(()=>({display:{title:x,description:`Reset all previous ${a} content to raise all previous ${c.displayName} gain to the ^${xe(H)}`},style:{width:"200px",minHeight:"100px"},onPurchase:()=>{ee("unobtainiumRelic")||Re.reset()},visibility:O,requirements:qn(()=>({resource:Cn(c),cost:K,requiresPay:!1}))})),Pe=Ce(()=>({multiplier:0}));ie({feature:ae,canClick:()=>s(ae.canPurchase),modifier:Ae,cost:K,previewCost:C(()=>ee("unobtainiumRelic")?0:c.value),previewModifier:Pe,showETA:()=>!s(ae.bought)}),Q.push([ae]);break}}const tt={cache:"increaseCaches"in b?8:.8,generation:"increaseGens"in b?10:1,resourceMulti:"increaseResourceMults"in b?10:1,energyMulti:"increaseEnergyMults"in b?2.5:.25,influences:"increaseInfluences"in b?20:2,relic:0};let Nn=li(tt,r);V===P-1&&"relic"in b&&(Nn="relic");let ut="",gt,St,Xt,Ze,Dt,sn;switch(Nn){case"cache":Ze=Oi(r,i),ut=`Cache: Gain ${xe(o.div(E.value,12))}x your current ${Ze} (no modifiers).`,St=()=>{var x,O,H;return g.grantResource(Ze,o.times((H=(O=(x=g.resourceNodes.value[Ze])==null?void 0:x.state)==null?void 0:O.amount)!=null?H:0,o.div(E.value,12)))};break;case"generation":Ze=Oi(r,i);const $=o.pow(E.value,2).div(40).times(xt[Ze]);ut=`Gen: Gain ${xe($)} ${Ze}/s while plane is active.`,gt=x=>g.grantResource(Ze,o.times(x,$)),Xt=Ze;break;case"resourceMulti":Dt=Ze=Oi(r,i),sn=o.pow(E.value,2).div(10).pow_base(1.5),ut=`Resource Mult: Gain ${xe(sn)}x ${Ze} while plane is active.`;break;case"energyMulti":Dt="energy",sn=o.div(E.value,8).add(1),ut=`Energy Mult: Gain ${xe(sn)}x energy while plane is active.`;break;case"influences":const D=Object.keys(vt)[Math.floor(r()*Object.keys(vt).length)];ut=`Influence: Gain a portal influence (${vt[D].display})`,St=()=>{if(D in g.influenceNodes.value){br.warning(`You already have a ${vt[D].display} influence, skipping treasure`);return}const x={id:En(g.board),position:{...g.board.types.portal.nodes.value.find(O=>O.state.id===e).position},type:"influence",state:{type:D,data:vt[D].initialData}};g.board.placeInAvailableSpace(x),g.board.nodes.value.push(x)};break;case"relic":ut=t==="ultimatum"?"Win the game!":`Relic: Gain the ${t}-tier planar relic (${Pt[t]})`,St=()=>{if(t==="ultimatum"){tr.value=!0;return}if(`${t}Relic`in g.toolNodes.value)br.warning(`You already have a ${Pt[t]} relic, skipping treasure`);else{const x={id:En(g.board),position:{...g.board.types.portal.nodes.value.find(O=>O.state.id===e).position},type:"passive",state:`${t}Relic`};g.board.placeInAvailableSpace(x),g.board.nodes.value.push(x)}}}const ri=be,Fn=je.value,on=Od(()=>({requirements:qn(()=>({resource:Cn(c),cost:Fn})),visibility:ri,display:{requirement:`${xe(Fn)} ${c.displayName}`,effectDisplay:ut},style:"width: 100%",classes:{final:V===P-1},update:gt,onComplete:St,link:Xt,effectedResource:Dt,resourceMulti:sn})),xi=Pi(c,B,Fn);Ri(on,{display:()=>on.earned.value?"":xi.value,direction:W.Down}),Q.push([on]),be=C(()=>on.earned.value)}const pt=Yn(Q,er),Lt=Yn(Q,Qr);I.push(Ce(()=>({multiplier:()=>ee("silver")?4:2,description:()=>(ee("silver")?"Empowered ":"")+Ve.silver.name,enabled:()=>g.toolNodes.value.silver!=null})),Ce(()=>({multiplier:()=>o.add(1,(ee("diamond")?2:1)*pt.filter(V=>V.bought.value).length/10),description:()=>(ee("diamond")?"Empowered ":"")+Ve.diamond.name,enabled:()=>g.toolNodes.value.diamond!=null})),Ce(()=>({multiplier:()=>o.div(p.value,6e3).times(ee("emerald")?2:1).add(1),description:()=>(ee("emerald")?"Empowered ":"")+Ve.emerald.name,enabled:()=>g.toolNodes.value.emerald!=null})),Ce(()=>({multiplier:()=>o.div(Lt.reduce((V,L)=>V.add(s(L.totalAmount)),o.dZero),100).times(ee("gravelRelic")?2:1).add(1).pow(.75),description:()=>(ee("gravelRelic")?"Empowered ":"")+Pt.gravel,enabled:()=>g.toolNodes.value.gravelRelic!=null})),Ce(()=>({multiplier:()=>o.add(g.energy.value,1).log10().add(1).pow(ee("beryliumRelic")?.5:.25),description:()=>(ee("beryliumRelic")?"Empowered ":"")+Pt.berylium,enabled:()=>g.toolNodes.value.beryliumRelic!=null})));const ft=Nt(()=>[Ce(()=>({multiplier:()=>{var V,L,$e;return o.add(($e=(L=(V=g.board.types.booster.nodes.value[0])==null?void 0:V.state)==null?void 0:L.level)!=null?$e:0,1)},description:"Booster",enabled:()=>{var V,L,$e;return($e=(L=(V=g.board.types.booster.nodes.value[0])==null?void 0:V.state)==null?void 0:L.portals.includes(e))!=null?$e:!1}})),Ce(()=>({multiplier:()=>o.times(ee("coalRelic")?.2:.1,Ye.value.length).add(1),description:()=>(ee("coalRelic")?"Empowered ":"")+Pt.coal,enabled:()=>g.toolNodes.value.coalRelic!=null}))]),Mt=C(()=>ft.apply(1)),[ei,Mi]=zn(()=>[{title:`${it(c.displayName)} Gain`,modifier:A,base:0,unit:"/s"},{title:`${it(c.displayName)} Time Speed`,modifier:ft,base:1,visible:()=>o.gt(Mt.value,1)}]),_n=G(!1),ti=j(()=>d(Ot,{modelValue:_n.value,"onUpdate:modelValue":V=>_n.value=V},{header:()=>d("h2",null,[_("Modifiers")]),body:()=>st(ei)}));this.on("preUpdate",V=>{if(!g.activePortals.value.some($e=>$e.state.id===e))return;const L=o.times(Mt.value,V);p.value=o.add(p.value,L),Ye.value.length{var tt;(tt=$e.update)==null||tt.call($e,L)})}),ep(this,()=>Ye.value.lengthYe.value.length{const V=ce.find(L=>L.shouldShowPreview.value);return V?o.neg(Se(V.cost)):0}),An=C(()=>{const V=ce.find(L=>L.shouldShowPreview.value);return V&&V.modifier?o.sub(V.modifier.apply(0),B.value):0}),Zt=dn(m.variable(0).add(c),()=>o.neq(Pn.value,0),Pn),Rn=dn(m.variable(0).add(B),()=>o.neq(An.value,0),An),ni=C(()=>{const V=[];return Ye.value.forEach(L=>{L.link&&V.push(L.link)}),V}),ii=C(()=>{const V={};return Ye.value.forEach(L=>{L.effectedResource!=null&&L.resourceMulti!=null&&(V[L.effectedResource]!=null?V[L.effectedResource]=o.times(V[L.effectedResource],L.resourceMulti):V[L.effectedResource]=L.resourceMulti)}),V}),Ye=C(()=>{const V=[];for(let L=1;Lo.lt(Ye.value.length,P)&&Q.some(V=>V.some(L=>"earned"in L&&s(L.earned)||"bought"in L&&s(L.bought)?!1:("canClick"in L&&s(L.canClick)||"canPurchase"in L&&s(L.canPurchase),!0)))),Ii=C(()=>{const V=Q.findIndex(($e,tt)=>tt>0&&tt%2===0&&!Q[tt-1][0].earned.value);let L;return V===-1?L=Q:L=Q.slice(0,V),L.map(($e,tt)=>tt in le?st(le[tt]):Ti(...$e))});return{tier:ot(t),seed:ot(n),influences:ot(i),name:a,color:u,resource:c,background:l,style:{background:l,"--background":l},features:Q,resourceTabCollapsed:Mi,links:ni,resourceMultis:ii,earnedTreasures:Ye,showNotif:Si,timeActive:p,bonusRewardsLevel:N,display:j(()=>d(oe,null,[d(gi,{class:"nav-container",style:"z-index: 5"},{default:()=>[d("span",{class:"nav-segment"},[d("h2",null,[a])]),d("span",{class:"nav-segment"},[d("h3",null,[t,_("-tier")])]),i.length===0?null:d("span",{class:"nav-segment"},[d(Fe,{display:i.map(V=>{const L=vt[V.type].description;return typeof L=="function"?L(V):L}).join("
"),direction:W.Down,style:"width: 300px"},{default:()=>[d("h3",null,[i.length,_(" influences")])]})]),d("span",{class:"nav-segment"},[d("button",{class:"button",style:"display: inline",onClick:()=>_n.value=!0},[_("modifiers")])])]}),d(gi,{class:"nav-container"},{default:()=>[d("span",{class:"nav-segment"},[d("h3",{style:`color: ${u}; text-shadow: 0px 0px 10px ${u};`},[st(Zt)])," ",c.displayName]),d("span",{class:"nav-segment"},[_("("),d("h3",{style:`color: ${u}; text-shadow: 0px 0px 10px ${u};`},[o.gt(B.value,0)?"+":"",st(Rn)]),_("/s)")]),o.neq(Mt.value,1)?d("span",{class:"nav-segment"},[_("Speed: "),xe(Mt.value),_("x")]):null]}),d(Ed,{height:"60px"},null),Ii.value,Ye.value.length+1d("div",null,[d("span",null,[a]),d("span",{style:"font-size: large; vertical-align: sub;"},[" ",Ye.value.length,_("/"),P,_(" treasures")])]))}})}function Oi(e,t){t=t.filter(l=>l.type==="increaseResources"||l.type==="decreaseResources");const n=Object.keys(xt).reduce((l,c)=>{let p=xt[c];return t.filter(v=>v.data===c).forEach(v=>{v.type==="increaseResources"?p*=1e3:p/=1e3}),l+p},0),i=Object.keys(xt),r=Math.floor(e()*n);let a=0,u;for(let l=0;ll+c),i=Object.keys(e);let r=0,a=null;const u=t()*n;for(let l=0;le===g.board.selectedNode.value?{text:"Mining"}:Object.keys(g.resourceNodes.value).length===0?{text:"Click me!"}:null,actionDistance:Math.PI/4,actions:[qt,Vt("mine")],progress:e=>ke(e)?new o(e.state.progress).toNumber():0,progressDisplay:rn.Outline,progressColor:"var(--accent2)",classes:e=>({running:ke(e)}),draggable:!0},op={shape:Le.Diamond,size:50,title:"\u{1F6E0}\uFE0F",label:e=>e===g.board.selectedNode.value?{text:"Broken Forge"}:null,actionDistance:Math.PI/4,actions:[{id:"repair",icon:"build",tooltip:{text:"Repair - 100 energy"},onClick(e){o.gte(g.energy.value,100)&&(e.type="factory",g.energy.value=o.sub(g.energy.value,100),g.helpModals.factory.showModal.value=!0)},confirmationLabel:()=>o.gte(g.energy.value,100)?{text:"Tap again to confirm"}:{text:"Cannot afford",color:"var(--danger)"}}],draggable:!0},lp={shape:Le.Diamond,size:50,title:"\u{1F6E0}\uFE0F",label:e=>{var t,n;if(e===g.board.selectedNode.value)return{text:e.state==null?"Forge - Drag a resource to me!":`Forging ${Ve[e.state].name}`};if(((t=g.board.draggingNode.value)==null?void 0:t.type)==="resource"){const i=((n=g.board.draggingNode.value)==null?void 0:n.state).type,r=e.state===i?"Disconnect":g.toolNodes.value[i]==null?Ve[i].name:"Already crafted",a=e.state===i||g.toolNodes.value[i]==null?"var(--accent2)":"var(--danger)";return{text:r,color:a}}return null},actionDistance:Math.PI/4,actions:[{id:"deselect",icon:"close",tooltip:{text:"Disconnect resource"},onClick(e){e.state=void 0,g.board.selectedAction.value=null,g.board.selectedNode.value=null},visibility:e=>e.state!=null},{id:"craft",icon:"done",tooltip:e=>({text:`Forge ${Ve[e.state].name} - ${We(Ve[e.state].cost)} energy`}),onClick(e){const t=Ve[e.state];if(o.gte(g.energy.value,t.cost)&&g.toolNodes.value[e.state]==null){g.energy.value=o.sub(g.energy.value,t.cost);const n={id:En(g.board),position:{...e.position},type:t.type,state:"state"in t?t.state:void 0};if(g.board.placeInAvailableSpace(n),g.board.nodes.value.push(n),e.state==="iron"){const i={id:En(g.board),position:{...e.position},type:"trashCan"};g.board.placeInAvailableSpace(i),g.board.nodes.value.push(i)}g.board.selectedAction.value=null,g.board.selectedNode.value=null,e.state=void 0,t.type in g.helpModals&&(g.helpModals[t.type].showModal.value=!0)}},fillColor:e=>o.gte(g.energy.value,Ve[e.state].cost)&&g.toolNodes.value[e.state]==null?"var(--accent2)":"var(--danger)",visibility:e=>e.state!=null,confirmationLabel:e=>o.gte(g.energy.value,Ve[e.state].cost)?g.toolNodes.value[e.state]==null?{text:"Tap again to confirm"}:{text:"Already crafted",color:"var(--danger)"}:{text:"Cannot afford",color:"var(--danger)"}},Vt("factory")],progress:e=>e.state==null||g.toolNodes.value[e.state]!=null?0:o.div(o.sqrt(g.energy.value),o.sqrt(Ve[e.state].cost)).clampMax(1).toNumber(),progressDisplay:rn.Fill,progressColor:e=>e.state!=null&&o.gte(g.energy.value,Ve[e.state].cost)?"var(--accent2)":"var(--foreground)",canAccept(e,t){var i;if(t.type!=="resource")return!1;const n=((i=g.board.draggingNode.value)==null?void 0:i.state).type;return g.toolNodes.value[n]==null},onDrop(e,t){const n=t.state.type;e.state===n?e.state=void 0:e.state=n,g.board.selectedNode.value=e},draggable:!0},up=["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII","XIII","XIV","XV","XVI"],cp={shape:Le.Circle,size:50,title:e=>it(e.state.type),subtitle:e=>We(e.state.amount),otherSubtitle:e=>up[Tt.indexOf(e.state.type)],progress:e=>id(e.state.type),onClick(){},progressDisplay:rn.Outline,progressColor:"var(--accent3)",classes:e=>{var t;return{"affected-node":g.dowsing.value!=null&&ke(g.dowsing.value)&&g.dowsing.value.state.resources.includes(e.state.type)||o.neq((t=g.planarMultis.value[e.state.type])!=null?t:1,1)}},draggable:!0},dp={shape:Le.Circle,size:50,title:e=>{const t=e.state;return t.includes("Relic")?Pt[t.slice(0,-5)]:Ve[t].name},label:e=>e===g.board.selectedNode.value?{text:hd[e.state].description(ee(e.state))}:null,outlineColor:"var(--bought)",classes:e=>({"affected-node":ee(e.state)}),draggable:!0},pp={shape:Le.Diamond,size:50,title:"\u{1F962}",label:e=>e===g.board.selectedNode.value?{text:e.state.resources.length===0?"Dowsing - Drag a resource to me!":`Dowsing (${e.state.resources.length}/${o.add(e.state.maxConnections,g.computedBonusConnectionsModifier.value)})`}:Wr(e,t=>`Double ${t} odds`),actionDistance:Math.PI/4,actions:[an,wn(e=>e.add(2).pow_base(100),16),qt,Vt("dowsing")],classes:e=>({running:ke(e)}),canAccept:Hr,onDrop:Yr,draggable:!0},fp={shape:Le.Diamond,size:50,title:"\u26F0\uFE0F",label:e=>e===g.board.selectedNode.value?{text:e.state.resources.length===0?"Quarry - Drag a resource to me!":`Quarrying (${e.state.resources.length}/${o.add(e.state.maxConnections,g.computedBonusConnectionsModifier.value)})`}:Wr(e,t=>`Gather ${yt(o.div(g.dropRates[t].computedModifier.value,100))} ${t}/s`),actionDistance:Math.PI/4,actions:[an,wn(e=>e.add(2).pow_base(1e4),16),qt,Vt("quarry")],progress:e=>ke(e)?o.eq(g.quarryProgressRequired.value,0)?0:new o(e.state.progress).div(g.quarryProgressRequired.value).toNumber():0,progressDisplay:rn.Outline,progressColor:"var(--accent2)",canAccept:Hr,onDrop:Yr,classes:e=>({running:ke(e)}),draggable:!0},gp={shape:Le.Diamond,size:50,title:"\u{1F50C}",label:e=>e===g.board.selectedNode.value?{text:e.state.tools.length===0?"Empowerer - Drag a tool to me!":`Empowering (${e.state.tools.length}/${o.add(e.state.maxConnections,g.computedBonusConnectionsModifier.value)})`}:ed(e,t=>t.includes("Relic")?`Double ${Pt[t.slice(0,-5)]}'s effect`:`Double ${Ve[t].name}'s effect`),actionDistance:Math.PI/4,actions:[an,wn(e=>e.add(3).pow_base(1e3),24),qt,Vt("empowerer")],canAccept:td,onDrop:nd,classes:e=>({running:ke(e)}),draggable:!0},mp={shape:Le.Diamond,size:50,title:"\u26E9\uFE0F",label:e=>{if(e===g.board.selectedNode.value)return{text:e.state.tier==null?"Portal Spawner - Drag a resource to me!":`Spawning ${e.state.tier}-tier portal`};const t=g.board.draggingNode.value;if((t==null?void 0:t.type)==="resource"){const n=t.state.type;return{text:e.state.tier===n?"Disconnect":`${it(n)}-tier Portal`,color:"var(--accent2)"}}else if((t==null?void 0:t.type)==="influence"){const n=t.state.type;if(e.state.influences.includes(n))return{text:"Disconnect",color:"var(--accent2)"};const r=vt[n].cost;let a;return o.lt(r,1e3)?a=We(r):a=Li(r,0),{text:`Add influence (${a}x cost)`,color:"var(--accent2)"}}else if((t==null?void 0:t.type)==="portal")return{text:`Copy tier/influences from ${ge[t.state.id].name}`};return null},actionDistance:Math.PI/4,actions:[{id:"deselect",icon:"close",tooltip:{text:"Disconnect all"},onClick(e){e.state={...e.state,tier:void 0,influences:[]},g.board.selectedAction.value=null,g.board.selectedNode.value=null},visibility:e=>{const{tier:t,influences:n}=e.state;return t!=null||n.length>0}},{id:"makePortal",icon:"done",tooltip:e=>({text:`Spawn ${e.state.tier}-tier portal - ${We(g.computedPortalCost.value)} energy`}),fillColor:()=>o.gte(g.energy.value,g.computedPortalCost.value)?"var(--accent2)":"var(--danger)",confirmationLabel:()=>o.gte(g.energy.value,g.computedPortalCost.value)?{text:"Tap again to confirm"}:{text:"Cannot afford",color:"var(--danger)"},onClick(e){if(o.lt(g.energy.value,g.computedPortalCost.value))return;let t=0;for(;`portal-${t}`in ge;)t++;g.energy.value=o.sub(g.energy.value,g.computedPortalCost.value);const{tier:n,influences:i}=e.state;Zi(ea(`portal-${t}`,n,Math.floor(Math.random()*4294967296),i.map(a=>g.influenceNodes.value[a].state)),Z);const r={id:En(g.board),position:{...e.position},type:"portal",state:{id:`portal-${t}`,powered:!1}};g.board.placeInAvailableSpace(r),g.board.nodes.value.push(r),g.board.selectedAction.value=null,g.board.selectedNode.value=null,e.state={tier:void 0,influences:[]}},visibility:e=>e.state.tier!=null},Vt("portalGenerator")],canAccept(e,t){return t.type==="resource"||t.type==="influence"||t.type==="portal"},onDrop(e,t){if(t.type==="resource"){const n=t.state.type,i=e.state.tier;e.state={...e.state,tier:n===i?void 0:n}}else if(t.type==="influence"){const n=t.state.type,i=e.state.influences;i.includes(n)?e.state={...e.state,influences:i.filter(r=>r!==n)}:e.state={...e.state,influences:[...i,n]}}else if(t.type==="portal"){const n=ge[t.state.id];e.state={...e.state,tier:n.tier.value,influences:n.influences.value.map(i=>i.type)}}g.board.selectedNode.value=e},progress:e=>e.state.tier==null?0:o.div(o.sqrt(g.energy.value),o.sqrt(g.computedPortalCost.value)).clampMax(1).toNumber(),progressDisplay:rn.Fill,progressColor:e=>e.state.tier!=null&&o.gte(g.energy.value,g.computedPortalCost.value)?"var(--accent2)":"var(--foreground)",draggable:!0},vp={shape:Le.Diamond,size:50,title:"\u{1F300}",label:e=>e===g.board.selectedNode.value?{text:`Portal to ${ge[e.state.id].name}`,color:ge[e.state.id].color}:null,actionDistance:Math.PI/4,actions:[qt],classes:e=>({running:ke(e),showNotif:ge[e.state.id].showNotif.value,"affected-node":g.booster.value!=null&&ke(g.booster.value)&&g.booster.value.state.portals.includes(e.state.id)}),outlineColor:e=>ge[e.state.id].background,draggable:!0},hp={shape:e=>e.state.type==="increaseResources"||e.state.type==="decreaseResources"?Le.Diamond:Le.Circle,size:50,title:e=>vt[e.state.type].display,otherSubtitle:e=>{const t=vt[e.state.type].cost;return o.lt(t,1e3)?`${We(t)}x cost`:`${Li(t,0)}x cost`},label:e=>{if(e===g.board.selectedNode.value){const n=e.state,i=vt[n.type].description;return{text:typeof i=="function"?i(n):i}}const t=g.board.draggingNode.value;if((t==null?void 0:t.type)==="resource"){const n=t.state.type,{type:i,data:r}=e.state;let a;if(Array.isArray(r)&&r.includes(n))a="Disconnect";else if(i==="increaseResources")a=`Increase ${it(n)} odds`;else if(i==="decreaseResources")a=`Decrease ${it(n)} odds`;else return null;return{text:a,color:"var(--accent2)"}}return null},actionDistance:Math.PI/4,actions:[an],canAccept:(e,t)=>t.type!=="resource"?!1:Array.isArray(e.state.data),onDrop:(e,t)=>{if(t.type!=="resource")return;const n=t.state.type,i=e.state.data;i!=null&&(i.includes(n)?e.state={...e.state,data:i.filter(r=>r!==n)}:e.state={...e.state,data:[...i,n]},g.board.selectedNode.value=e)},outlineColor:"var(--danger)",draggable:!0},bp={shape:Le.Diamond,size:50,title:"\u231B",label:e=>e===g.board.selectedNode.value?{text:e.state.portals.length===0?"Booster - Drag a portal to me!":`Boosting by ${We(o.add(1,e.state.level))}x (${e.state.portals.length}/${o.add(e.state.maxConnections,g.computedBonusConnectionsModifier.value)})`}:yi(e,t=>`Boost ${ge[t].name}'s speed`),actionDistance:Math.PI/4,actions:[an,wn(e=>e.add(6).pow_base(1e3)),{id:"increaseBoost",icon:"arrow_upward",tooltip(e){return{text:`Increase boost - ${We(si.evaluate(e.state.level))} energy`}},fillColor(e){return o.gte(g.energy.value,si.evaluate(e.state.level))?"var(--bought)":"var(--locked)"},confirmationLabel(e){return o.gte(g.energy.value,si.evaluate(e.state.level))?{text:"Tap again to confirm"}:{text:"Cannot afford",color:"var(--danger)"}},onClick(e){const t=si.evaluate(e.state.level);o.gte(g.energy.value,t)&&(g.energy.value=o.sub(g.energy.value,t),e.state={...e.state,level:o.add(e.state.level,1)},g.board.selectedAction.value=null)}},qt,Vt("booster")],canAccept:wi,onDrop:_i,classes:e=>({running:ke(e)}),draggable:!0},yp={shape:Le.Diamond,size:50,title:"\u{1F916}",label:e=>e===g.board.selectedNode.value?{text:e.state.portals.length===0?"Upgrader - Drag a portal to me!":`Auto-Upgrading (${e.state.portals.length}/${o.add(e.state.maxConnections,g.computedBonusConnectionsModifier.value)})`}:yi(e,t=>`Auto-buy ${ge[t].name}'s upgrades and prestiges`),actionDistance:Math.PI/4,actions:[an,wn(e=>e.add(4).pow_base(1e6)),qt,Vt("upgrader")],canAccept:wi,onDrop:_i,classes:e=>({running:ke(e)}),draggable:!0},wp={shape:Le.Diamond,size:50,title:"\u{1F9BE}",label:e=>e===g.board.selectedNode.value?{text:e.state.portals.length===0?"Automator - Drag a portal to me!":`Automatating (${e.state.portals.length}/${o.add(e.state.maxConnections,g.computedBonusConnectionsModifier.value)})`}:yi(e,t=>`Auto-buy ${ge[t].name}'s repeatables and dimensions`),actionDistance:Math.PI/4,actions:[an,wn(e=>e.add(4).pow_base(1e6)),qt,Vt("automator")],canAccept:wi,onDrop:_i,classes:e=>({running:ke(e)}),draggable:!0},_p={shape:Le.Diamond,size:50,title:"\u{1F4B1}",label:e=>e===g.board.selectedNode.value?{text:e.state.portals.length===0?"Investments - Drag a portal to me!":`Investing (${e.state.portals.length}/${o.add(e.state.maxConnections,g.computedBonusConnectionsModifier.value)})`}:yi(e,t=>`Passively generate ${ge[t].name}'s conversions`),actionDistance:Math.PI/4,actions:[an,wn(e=>e.add(3).pow_base(1e8)),qt,Vt("investments")],canAccept:wi,onDrop:_i,classes:e=>({running:ke(e)}),draggable:!0},Np={shape:Le.Diamond,size:50,title:"\u{1F5D1}\uFE0F",label:e=>{var t;if(e===g.board.selectedNode.value)return{text:"Trash Can - Drag a portal to me!"};if(((t=g.board.draggingNode.value)==null?void 0:t.type)==="portal"){const n=g.board.draggingNode.value.state.id;return{text:`Delete ${ge[n].name}!`,color:"var(--danger)"}}return null},canAccept:(e,t)=>t.type==="portal",onDrop:(e,t)=>{const n=t.state.id;Xi(ge[n]),delete Z.layers[n],g.board.state.value.nodes=g.board.state.value.nodes.filter(i=>i!==t),g.booster.value&&(g.booster.value.state={...g.booster.value.state,portals:g.booster.value.state.portals.filter(i=>i!==n)}),g.upgrader.value&&(g.upgrader.value.state={...g.upgrader.value.state,portals:g.upgrader.value.state.portals.filter(i=>i!==n)}),g.automator.value&&(g.automator.value.state={...g.automator.value.state,portals:g.automator.value.state.portals.filter(i=>i!==n)}),g.investments.value&&(g.investments.value.state={...g.investments.value.state,portals:g.investments.value.state.portals.filter(i=>i!==n)}),Z.tabs=Z.tabs.filter(i=>i!==n)},draggable:!0},yr=hi(),Cp={mine:sp,brokenFactory:op,factory:lp,resource:cp,passive:dp,dowsing:pp,quarry:fp,empowerer:gp,portalGenerator:mp,portal:vp,influence:hp,booster:bp,upgrader:yp,automator:wp,investments:_p,trashCan:Np},g=Yi("main",function(){const e=Mn(0,"energy"),t=C(()=>h.types.resource.nodes.value.reduce(($,D)=>($[D.state.type]=D,$),{})),n=C(()=>({...h.types.passive.nodes.value.reduce(($,D)=>($[D.state]=D,$),{}),sand:h.types.dowsing.nodes.value[0],wood:h.types.quarry.nodes.value[0],coal:h.types.empowerer.nodes.value[0],iron:h.types.portalGenerator.nodes.value[0],gold:h.types.booster.nodes.value[0],platinum:h.types.upgrader.nodes.value[0],berylium:h.types.automator.nodes.value[0],ultimatum:h.types.investments.nodes.value[0]})),i=C(()=>Object.keys(Pt).filter($=>`${$}Relic`in n.value).length),r=C(()=>({...h.types.influence.nodes.value.reduce(($,D)=>($[D.state.type]=D,$),{})})),a=C(()=>({...h.types.portal.nodes.value.reduce(($,D)=>($[D.state.id]=D,$),{})})),u=C(()=>Tt.reduce(($,D)=>{var O,H,K;const x=(K=(H=(O=t.value[D])==null?void 0:O.state)==null?void 0:H.amount)!=null?K:0;return $[D]=o.floor(qi.invert(x)),$},{})),l=mn({}),c=mn({});Gt(()=>{Tt.forEach($=>{ht(()=>u.value[$],(D,x)=>{const O=o.sub(D,x);o.gt(O,1)&&te.active===Z.id&&yr.info(d("div",null,[d("h3",null,[o.eq(D,1)?`${it($)} discovered`:`${it($)} is now Level ${at(D)}`,_("!")]),o.gt(O,1)?d("div",null,[_("Gained "),at(O),_(" levels")]):null]))})})});const p=C(()=>Q.filter($=>{var D,x;return(x=(D=$.value)==null?void 0:D.state)==null?void 0:x.powered}).length+h.types.portal.nodes.value.filter($=>$.state.powered).length),v=C(()=>{let $=p.value;return n.value.copperRelic!=null&&($--,ee("copperRelic")&&$--),$}),f=C(()=>{const $=v.value;return o.lt($,0)?0:o.eq($,0)?10:o.add($,1).pow_base(100).div(10).times(.99)}),b=C(()=>{if(P.value==null)return 0;let D=P.value.state.resources.reduce((x,O)=>o.div(100,Zt[O].computedModifier.value).add(x),o.dZero);return n.value.silverRelic!=null&&(D=o.div(D,o.add(p.value,1)),ee("silverRelic")&&(D=o.div(D,o.add(p.value,1)))),D}),h=Gc($=>({startNodes:()=>[{position:{x:0,y:0},type:"mine",state:{progress:0,powered:!1}},{position:{x:0,y:-200},type:"brokenFactory"}],types:Cp,style:{position:"absolute",top:0,left:0,right:0,bottom:0,overflow:"hidden"},links(){const D=[];if(D.push(...Object.keys(l).filter(fr(y.value)).map(x=>({startNode:y.value,endNode:t.value[x],stroke:"var(--accent3)",strokeWidth:5}))),N.value!=null&&N.value.state!=null&&D.push({startNode:N.value,endNode:t.value[N.value.state],stroke:"var(--foreground)",strokeWidth:4}),E.value!=null&&E.value.state.resources.forEach(x=>{D.push({startNode:E.value,endNode:t.value[x],stroke:ke(E.value)?"var(--accent1)":"var(--foreground)",strokeWidth:4})}),P.value!=null&&P.value.state.resources.forEach(x=>{D.push({startNode:P.value,endNode:t.value[x],stroke:x in c?"var(--accent3)":"var(--foreground)",strokeWidth:4})}),I.value!=null&&I.value.state.tools.forEach(x=>{D.push({startNode:I.value,endNode:n.value[x],stroke:ke(I.value)?"var(--accent1)":"var(--foreground)",strokeWidth:4})}),A.value!=null){const x=A.value.state;x.tier!=null&&D.push({startNode:A.value,endNode:t.value[x.tier],stroke:"var(--foreground)",strokeWidth:4}),x.influences.forEach(O=>{D.push({startNode:A.value,endNode:r.value[O],stroke:"var(--foreground)",strokeWidth:4})}),$.types.portal.nodes.value.forEach(O=>{const H=ge[O.state.id];return Tt.filter(fr(O)).forEach(K=>{let Ae;if(H.links.value.includes(K))Ae="var(--accent3)";else if(K in H.resourceMultis.value)Ae="var(--accent1)";else return;D.push({startNode:O,endNode:t.value[K],stroke:ke(O)?Ae:"var(--foreground)",strokeWidth:4})}),D})}return B.value!=null&&B.value.state.portals.filter(x=>a.value[x]!=null).forEach(x=>{D.push({startNode:B.value,endNode:a.value[x],stroke:ke(B.value)?"var(--accent1)":"var(--foreground)",strokeWidth:4})}),ce.value!=null&&ce.value.state.portals.filter(x=>a.value[x]!=null).forEach(x=>{D.push({startNode:ce.value,endNode:a.value[x],stroke:"var(--foreground)",strokeWidth:4})}),le.value!=null&&le.value.state.portals.filter(x=>a.value[x]!=null).forEach(x=>{D.push({startNode:le.value,endNode:a.value[x],stroke:"var(--foreground)",strokeWidth:4})}),ie.value!=null&&ie.value.state.portals.filter(x=>a.value[x]!=null).forEach(x=>{D.push({startNode:ie.value,endNode:a.value[x],stroke:"var(--foreground)",strokeWidth:4})}),Object.values(r.value).forEach(x=>{const O=x.state;(O.type==="increaseResources"||O.type==="decreaseResources")&&O.data.forEach(H=>{D.push({startNode:x,endNode:t.value[H],stroke:"var(--foreground)",strokeWidth:4})})}),D}})),y=C(()=>h.types.mine.nodes.value[0]),N=C(()=>h.types.factory.nodes.value[0]),E=C(()=>n.value.sand),P=C(()=>n.value.wood),I=C(()=>n.value.coal),A=C(()=>n.value.iron),B=C(()=>n.value.gold),ce=C(()=>n.value.platinum),le=C(()=>n.value.berylium),ie=C(()=>n.value.ultimatum),Q=[y,E,P,I,B,ce,le,ie];function Ie($,D){let x=t.value[$];if(D=o.times(D,Rn[$].computedModifier.value),x==null)x={id:En(h),position:{...y.value.position},type:"resource",state:{type:$,amount:D}},h.placeInAvailableSpace(x),h.nodes.value.push(x);else{const O=x.state;x.state={...O,amount:o.add(O.amount,D)}}}const he=C(()=>Object.keys(xt).reduce(($,D)=>$+new o(Zt[D].computedModifier.value).toNumber(),0)),U=C(()=>{const $={};return h.types.portal.nodes.value.forEach(D=>{if(!ke(D))return;const O=ge[D.state.id].resourceMultis.value;Object.keys(O).forEach(H=>{$[H]!=null?$[H]=o.times($[H],O[H]):$[H]=O[H]})}),$}),be=Nt(()=>Tt.map($=>jt(()=>({description:()=>it($),addend:()=>u.value[$],enabled:()=>o.gt(u.value[$],0)})))),je=C(()=>be.apply(0)),pt=Nt(()=>[jt(()=>({addend:je,description:"Resource Levels"})),Ce(()=>({multiplier:()=>o.pow(An.value,je.value),description:()=>`${zt(An.value,3)}x per Resource Level`})),Ce(()=>({multiplier:()=>ee("stone")?4:2,description:()=>(ee("stone")?"Empowered ":"")+Ve.stone.name,enabled:()=>n.value.stone!=null})),Ce(()=>({multiplier:()=>{var $;return($=U.value.energy)!=null?$:1},description:"Planar Treasures",enabled:()=>{var $;return o.neq(($=U.value.energy)!=null?$:1,1)}})),jt(()=>({addend:()=>o.pow(100,v.value).div(10).neg(),description:"Powered Machines (100^n/10 energy/s)",enabled:()=>o.gt(v.value,0)}))]),Lt=C(()=>pt.apply(0)),ft=Nt(()=>[jt(()=>({addend:()=>ee("unobtainium")?2:1,description:()=>(ee("unobtainium")?"Empowered ":"")+Ve.unobtainium.name,enabled:()=>n.value.unobtainium!=null}))]),Mt=C(()=>ft.apply(0)),ei=Nt(()=>[Ce(()=>({multiplier:()=>ee("dirt")?4:2,description:()=>(ee("dirt")?"Empowered ":"")+Ve.dirt.name,enabled:()=>n.value.dirt!=null})),Ce(()=>({multiplier:()=>o.pow(i.value,ee("woodRelic")?2:1),description:()=>(ee("woodRelic")?"Empowered ":"")+Pt.wood,enabled:()=>n.value.woodRelic!=null}))]),Mi=C(()=>ei.apply(1)),_n=Nt(()=>[Ce(()=>({multiplier:()=>ee("gravel")?4:2,description:()=>(ee("gravel")?"Empowered ":"")+Ve.gravel.name,enabled:()=>n.value.gravel!=null}))]),ti=C(()=>_n.apply(1)),Pn=Nt(()=>[jt(()=>({addend:()=>ee("copper")?.004:.002,description:()=>(ee("copper")?"Empowered ":"")+Ve.copper.name,enabled:()=>n.value.copper!=null}))]),An=C(()=>Pn.apply(1.01)),Zt=Object.keys(xt).reduce(($,D)=>{const x=Nt(()=>[Ce(()=>({multiplier:2,description:"Dowsing",enabled:()=>E.value!=null&&ke(E.value)&&E.value.state.resources.includes(D)}))]),O=C(()=>x.apply(xt[D])),H={title:`${it(D)} Drop Rate`,modifier:x,base:xt[D]};return $[D]={modifier:x,computedModifier:O,section:H},$},{}),Rn=Object.keys(xt).reduce(($,D)=>{const x=Nt(()=>[Ce(()=>({multiplier:()=>{var K;return(K=U.value[D])!=null?K:1},description:"Planar Treasures",enabled:()=>{var K;return o.neq((K=U.value[D])!=null?K:1,1)}}))]),O=C(()=>x.apply(1)),H={title:`${it(D)} Gain`,modifier:x};return $[D]={modifier:x,computedModifier:O,section:H},$},{}),ni=C(()=>{var D,x,O;const $=Tt.indexOf((O=(x=(D=A.value)==null?void 0:D.state)==null?void 0:x.tier)!=null?O:"dirt");return o.add($,1).times($).div(2).add(9).pow10()}),ii=Nt(()=>[...Object.keys(vt).map($=>Ce(()=>({multiplier:vt[$].cost,description:vt[$].display,enabled:()=>{var D,x,O;return(O=(x=(D=A.value)==null?void 0:D.state)==null?void 0:x.influences.includes($))!=null?O:!1},smallerIsBetter:!0}))),Ce(()=>({multiplier:()=>ee("emeraldRelic")?.05:.1,description:()=>(ee("emeraldRelic")?"Empowered ":"")+Pt.emerald,enabled:()=>n.value.emeraldRelic!=null,smallerIsBetter:!0}))]),Ye=C(()=>ii.apply(ni.value)),[Si,Ii]=zn(()=>[{title:"Resource Levels",modifier:be,base:0},{title:"Energy Gain",modifier:pt,base:0,unit:"/s"},{title:"Portal Cost",modifier:ii,base:ni,unit:" energy",baseText:()=>{var $,D,x;return`${it((x=(D=($=A.value)==null?void 0:$.state)==null?void 0:D.tier)!=null?x:"dirt")}-tier Base Cost`},visible:()=>A.value!=null,smallerIsBetter:!0},{title:"Bonus Connections",modifier:ft,base:0,visible:()=>o.gt(Mt.value,0)}]),[V,L]=zn(()=>[{title:"Mining Speed",modifier:ei,base:1,unit:"/s",visible:()=>n.value.dirt!=null},{title:"Ore Dropped",modifier:_n,base:1,visible:()=>n.value.gravel!=null},{title:"Material Level Effect",modifier:Pn,base:1.01,visible:()=>n.value.copper!=null}]),[$e,tt]=zn(()=>Object.values(Zt).map($=>$.section)),[Nn,ut]=zn(()=>Object.values(Rn).map($=>$.section)),gt=Ur({general:()=>({display:"General",glowColor(){return gt.activeTab.value===this.tab?"white":""},tab:Si,energyTabCollapsed:Ii}),mining:()=>({display:"Mine",glowColor(){return gt.activeTab.value===this.tab?"white":""},visibility:()=>Object.keys(n.value).length>0,tab:V,miningTabCollapsed:L}),resources:()=>({display:"Ore Rates",glowColor(){return gt.activeTab.value===this.tab?"white":""},visibility:()=>E.value!=null,tab:$e,resourcesCollapsed:tt}),resourcesGain:()=>({display:"Ore Gain",glowColor(){return gt.activeTab.value===this.tab?"white":""},visibility:()=>Object.values(Rn).some($=>o.neq($.computedModifier.value,1)),tab:Nn,resourceGainCollapsed:ut})}),St=G(!1),Xt=j(()=>d(Ot,{modelValue:St.value,"onUpdate:modelValue":$=>St.value=$},{header:()=>d("h2",null,[_("Modifiers")]),body:()=>st(gt)})),Ze={mine:wd(),factory:_d(),dowsing:Nd(),quarry:Cd(),empowerer:kd(),portalGenerator:Md(),booster:Sd(),upgrader:Id(),automator:xd(),investments:$d()};Ze.mine.showModal[Wt]=!0,Ze.mine.showModal.value=!0,this.on("preUpdate",$=>{if(Object.keys(l).forEach(D=>{l[D]-=$,l[D]<=0&&delete l[D]}),Object.keys(c).forEach(D=>{c[D]-=$,c[D]<=0&&delete c[D]}),ke(y.value)){const D=o.add(y.value.state.progress,o.times(Mi.value,$)),x=D.floor();y.value.state={...y.value.state,progress:o.sub(D,x)};const O=x.div(he.value).floor();O.gt(0)&&Tt.forEach(K=>{Ie(K,o.times(new o(Zt[K].computedModifier.value).toNumber(),O).times(ti.value)),l[K]=.3});const H=o.sub(x,O).toNumber();for(let K=0;K0){let O=o.add(D,$);const H=o.div(D,b.value).floor();O=o.sub(O,o.times(H,b.value)),P.value.state={...P.value.state,progress:O},o.gt(H,0)&&x.forEach(K=>{Ie(K,H),c[K]=.3})}}e.value=o.add(e.value,o.times(Lt.value,$)),o.lt(e.value,0)&&(e.value=0,Q.forEach(D=>{var x;((x=D.value)==null?void 0:x.state).powered=!1}),Object.values(a.value).forEach(D=>{D.state.powered=!1}),y.value.state={...y.value.state,powered:!1},yr.warning(d("div",null,[d("h3",null,[_("Ran out of energy!")]),d("div",null,[_("All machines have been turned off.")])])))});const Dt=C(()=>{var $,D;return h.selectedAction.value===h.types.brokenFactory.actions[0]?-100:h.selectedAction.value===h.types.factory.actions[1]?o.neg(Ve[h.selectedNode.value.state].cost):(($=h.selectedAction.value)==null?void 0:$.id)==="moreConnections"?o.neg(h.selectedAction.value.formula.evaluate(((D=h.selectedNode.value)==null?void 0:D.state).maxConnections)):0}),sn=dn(m.variable(0).add(e),()=>o.neq(Dt.value,0),Dt),ri=C(()=>{var $;return h.selectedAction.value===qt?(($=h.selectedNode.value)==null?void 0:$.state).powered?o.eq(p.value,1)?10:o.pow(100,p.value).div(10).times(.99):o.neg(f.value):0}),Fn=dn(m.variable(0).add(Lt),()=>o.neq(ri.value,0),ri),on=C(()=>h.types.portal.nodes.value.filter($=>ke($))),xi=C(()=>on.value.sort(($,D)=>{var H,K;const x=(H=ge[$.state.id])!=null&&H.minimized.value?1:0,O=(K=ge[D.state.id])!=null&&K.minimized.value?1:0;return x-O}).map($=>$.state.id));return ht(xi,$=>{Gt(()=>{Z.tabs=["main",...$]})}),ht(Mt,($,D)=>{o.lt($,D)&&(cn($,E,"resources"),cn($,P,"resources"),cn($,I,"tools"),cn($,B,"portals"),cn($,ce,"portals"),cn($,le,"portals"),cn($,ie,"portals"))}),{name:"World",board:h,energy:e,modifierTabs:gt,resourceNodes:t,toolNodes:n,influenceNodes:r,grantResource:Ie,activePortals:on,nextPowerCost:f,computedBonusConnectionsModifier:Mt,quarryProgressRequired:b,dropRates:Zt,dowsing:E,empowerer:I,booster:B,upgrader:ce,automator:le,investments:ie,resourceLevels:u,planarMultis:U,computedPortalCost:Ye,helpModals:Ze,display:j(()=>d(oe,null,[d(gi,{class:"nav-container"},{default:()=>[d("span",{class:"nav-segment"},[d("h2",{style:"color: white; text-shadow: 0px 0px 10px white;"},[st(sn)])," ",_("energy")]),d("span",{class:"nav-segment"},[_("("),d("h3",{style:"color: white; text-shadow: 0px 0px 10px white;"},[o.gt(Lt.value,0)?"+":"",st(Fn)]),_("/s)")]),o.gt(p.value,0)?d("span",{class:"nav-segment"},[d("h3",{style:"color: var(--accent1); text-shadow: 0px 0px 10px var(--accent1);"},[at(p.value)])," ",o.eq(p.value,1)?"machine":"machines"," ",_("powered")]):null,d("span",{class:"nav-segment"},[d("button",{class:"button",style:"display: inline",onClick:()=>St.value=!0},[_("modifiers")])]),Z.devSpeed===0?d("span",{class:"nav-segment"},[_("Game Paused")]):Z.devSpeed!=null&&Z.devSpeed!==1?d("span",{class:"nav-segment"},[_("Dev Speed: "),xe(Z.devSpeed),_("x")]):null]}),st(h),st(Xt),Object.values(Ze).map(({modal:$})=>$())]))}});Je.on("loadSettings",e=>{se(e,"lineVisibility",!0)});Dr(j(()=>d(It,{title:j(()=>d("span",{class:"option-title"},[_("Always show lines to resource nodes"),d("desc",null,[_("Otherwise, will only be visible when either end of the line is selected.")])])),modelValue:te.lineVisibility,"onUpdate:modelValue":e=>te.lineVisibility=e},null)));const kp=e=>{var n,i,r,a,u;const t=[g];return(u=(a=(r=(i=(n=e.layers)==null?void 0:n.main)==null?void 0:i.board)==null?void 0:r.state)==null?void 0:a.nodes)==null||u.filter(l=>(l==null?void 0:l.type)==="portal").map(l=>{var c,p;return(p=(c=l==null?void 0:l.state)==null?void 0:c.id)!=null?p:""}).forEach(l=>{var p,v,f,b;const c=(p=e.layers)==null?void 0:p[l];t.push(ea(l,(v=c.tier)!=null?v:"dirt",(f=c.seed)!=null?f:Math.floor(Math.random()*4294967296),(b=c.influences)!=null?b:[]))}),t},tr=G(!1);function Mp(e,t){}var Sp=Object.freeze(Object.defineProperty({__proto__:null,main:g,getInitialLayers:kp,hasWon:tr,fixOldSave:Mp},Symbol.toStringTag,{value:"Module"}));const Qn=e=>(vn("data-v-4a50ce42"),e=e(),hn(),e),Ip={class:"game-over-modal-header"},xp=["src","alt"],$p={class:"game-over-modal-title"},Ep=Qn(()=>k("h2",null,"Congratulations!",-1)),Dp={key:0},Tp=Qn(()=>k("br",null,null,-1)),Pp=Qn(()=>k("div",null," Please check the Discord to discuss the game or to check for new content updates! ",-1)),Ap=Qn(()=>k("br",null,null,-1)),Rp=["href"],Fp=Qn(()=>k("span",{class:"material-icons game-over-modal-discord"},"discord",-1)),Op=X({__name:"GameOverScreen",setup(e){const{title:t,logo:n,discordName:i,discordLink:r,versionNumber:a,versionTitle:u}=we,l=C(()=>bi(Z.timePlayed)),c=C(()=>tr.value&&!Z.keepGoing),p=nn(Z,"autosave");function v(){Z.keepGoing=!0}function f(){pn(In())}return(b,h)=>(S(),ne(Ot,{"model-value":s(c)},{header:Y(()=>[k("div",Ip,[s(n)?(S(),R("img",{key:0,class:"game-over-modal-logo",src:s(n),alt:s(t)},null,8,xp)):z("",!0),k("div",$p,[Ep,k("h4",null,"You've beaten "+pe(s(t))+" v"+pe(s(a))+": "+pe(s(u)),1)])])]),body:Y(({shown:y})=>[y?(S(),R("div",Dp,[k("div",null,"It took you "+pe(s(l))+" to beat the game.",1),Tp,Pp,Ap,k("div",null,[k("a",{href:s(r),class:"game-over-modal-discord-link"},[Fp,_(" "+pe(s(i)),1)],8,Rp)]),d(It,{title:"Autosave",modelValue:s(p),"onUpdate:modelValue":h[0]||(h[0]=N=>Oe(p)?p.value=N:null)},null,8,["modelValue"])])):z("",!0)]),footer:Y(()=>[k("div",{class:"game-over-footer"},[k("button",{onClick:v,class:"button"},"Keep Going"),k("button",{onClick:f,class:"button danger"},"Play Again")])]),_:1},8,["model-value"]))}});var qp=ve(Op,[["__scopeId","data-v-4a50ce42"]]);const ki=e=>(vn("data-v-2776d67d"),e=e(),hn(),e),Vp=ki(()=>k("div",{class:"nan-modal-header"},[k("h2",null,"NaN value detected!")],-1)),Bp={key:0},Lp=ki(()=>k("br",null,null,-1)),jp=["href"],zp=ki(()=>k("span",{class:"material-icons nan-modal-discord"},"discord",-1)),Gp=ki(()=>k("br",null,null,-1)),Up={class:"nan-footer"},Wp=X({__name:"NaNScreen",setup(e){const{discordName:t,discordLink:n}=we,i=G(!0),r=G(!0),a=nn(Ue,"hasNaN"),u=G(null);ht(a,b=>{b?(i.value=Z.autosave,r.value=Z.devSpeed===0):(Z.autosave=i.value,Z.devSpeed=r.value?0:null)});const l=C(()=>{var b;return(b=Ue.NaNPath)==null?void 0:b.join(".")}),c=C(()=>Ue.NaNPersistent!=null?Ue.NaNPersistent.value:null);function p(){Ue.NaNPersistent!=null&&(Ue.NaNPersistent.value=new o(0),Ue.hasNaN=!1)}function v(){Ue.NaNPersistent&&(Ue.NaNPersistent.value=new o(1),Ue.hasNaN=!1)}function f(){Ue.NaNPersistent&&(Ue.NaNPersistent.value=new o(NaN),Ue.hasNaN=!1)}return(b,h)=>(S(),R(oe,null,[d(Ot,Ut({modelValue:s(a),"onUpdate:modelValue":h[4]||(h[4]=y=>Oe(a)?a.value=y:null)},b.$attrs),{header:Y(()=>[Vp]),body:Y(()=>[k("div",null,[_(' Attempted to assign "'+pe(s(l))+'" to NaN',1),s(c)?(S(),R("span",Bp,pe(" ")+"(previously "+pe(s(xe)(s(c)))+")",1)):z("",!0),_(". Auto-saving has been "+pe(i.value?"enabled":"disabled")+". Check the console for more details, and consider sharing it with the developers on discord. ",1)]),Lp,k("div",null,[k("a",{href:s(n)||"https://discord.gg/yJ4fjnjU54",class:"nan-modal-discord-link"},[zp,_(" "+pe(s(t)||"The Paper Pilot Community"),1)],8,jp)]),Gp,d(It,{title:"Autosave",modelValue:i.value,"onUpdate:modelValue":h[0]||(h[0]=y=>i.value=y)},null,8,["modelValue"]),s(we).enablePausing?(S(),ne(It,{key:0,title:"Pause game",modelValue:r.value,"onUpdate:modelValue":h[1]||(h[1]=y=>r.value=y)},null,8,["modelValue"])):z("",!0)]),footer:Y(()=>[k("div",Up,[k("button",{onClick:h[2]||(h[2]=y=>{var N;return(N=u.value)==null?void 0:N.open()}),class:"button"},"Open Saves Manager"),k("button",{onClick:p,class:"button"},"Set to 0"),k("button",{onClick:v,class:"button"},"Set to 1"),s(c)&&s(o).neq(s(c),0)&&s(o).neq(s(c),1)?(S(),R("button",{key:0,onClick:h[3]||(h[3]=y=>a.value=!1),class:"button"}," Set to previous ")):z("",!0),k("button",{onClick:f,class:"button danger"},"Ignore")])]),_:1},16,["modelValue"]),d(Lr,{ref_key:"savesManager",ref:u},null,512)],64))}});var Hp=ve(Wp,[["__scopeId","data-v-2776d67d"]]);const Yp={key:0,class:"tpsDisplay"},Zp=X({__name:"TPS",setup(e){const t=C(()=>o.div(Ue.lastTenTicks.length,Ue.lastTenTicks.reduce((n,i)=>n+i,0)));return(n,i)=>s(t).isNan()?z("",!0):(S(),R("div",Yp,"TPS: "+pe(s(at)(s(t))),1))}});var Xp=ve(Zp,[["__scopeId","data-v-89b89152"]]);var Kp=X({__name:"App",setup(e){const t=we.useHeader,n=C(()=>Ct[te.theme].variables),i=nn(te,"showTPS"),r=C(()=>fe(j(()=>d(oe,null,[_s.map(st)]))));return(a,u)=>(S(),R(oe,null,[k("div",{id:"modal-root",style:Be(s(n))},null,4),k("div",{class:Ne(["app",{useHeader:s(t)}]),style:Be(s(n))},[s(t)?(S(),ne(jr,{key:0})):z("",!0),d(dc),s(s(i))?(S(),ne(Xp,{key:1})):z("",!0),d(qp),d(Hp),(S(),ne(Ke(s(r))))],6)],64))}});var Jp=ve(Kp,[["__scopeId","data-v-41d15e5e"]]);function Qp(e={}){const{immediate:t=!1,onNeedRefresh:n,onOfflineReady:i,onRegistered:r,onRegisteredSW:a,onRegisterError:u}=e;let l,c,p,v;const f=async(h=!0)=>{await p,h&&(l==null||l.addEventListener("controlling",y=>{y.isUpdate&&window.location.reload()})),await(v==null?void 0:v())};async function b(){if("serviceWorker"in navigator){const{Workbox:h,messageSW:y}=await Un(()=>import("./workbox-window.4a8794bb.js"),[]);v=async()=>{c&&c.waiting&&await y(c.waiting,{type:"SKIP_WAITING"})},l=new h("./sw.js",{scope:"./",type:"classic"}),l.addEventListener("activated",N=>{N.isUpdate||i==null||i()});{const N=()=>{n==null||n()};l.addEventListener("waiting",N),l.addEventListener("externalwaiting",N)}l.register({immediate:t}).then(N=>{c=N,a?a("./sw.js",N):r==null||r(N)}).catch(N=>{u==null||u(N)})}}return p=b(),f}function ef(e={}){const{immediate:t=!0,onNeedRefresh:n,onOfflineReady:i,onRegistered:r,onRegisteredSW:a,onRegisterError:u}=e,l=G(!1),c=G(!1);return{updateServiceWorker:Qp({immediate:t,onNeedRefresh(){l.value=!0,n==null||n()},onOfflineReady(){c.value=!0,i==null||i()},onRegistered:r,onRegisteredSW:a,onRegisterError:u}),offlineReady:c,needRefresh:l}}document.title=we.title;window.projInfo=we;if(we.id==="")throw new 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 vs();const{globalBus:e}=await Un(()=>Promise.resolve().then(function(){return gs}),void 0),{startGameLoop:t}=await Un(()=>import("./gameLoop.2f646917.js"),["assets/gameLoop.2f646917.js","assets/@fontsource.f66d05e7.css","assets/vue.c16a309b.js","assets/amator.1e5a40c8.js","assets/bezier-easing.a990b400.js","assets/@vue.6b211d3c.js","assets/nanoevents.1080beb7.js","assets/lz-string.dccec454.js","assets/vue-next-select.ded54c4a.js","assets/vue-next-select.9e6f4164.css","assets/vuedraggable.1879de79.js","assets/sortablejs.a0f68e5e.js","assets/vue-textarea-autosize.35804eaf.js","assets/vue-panzoom.8ce6f9b1.js","assets/panzoom.30c56ba6.js","assets/wheel.f2ae740f.js","assets/ngraph.events.083734c6.js","assets/vue-toastification.9c2dad53.js","assets/vue-toastification.4b5f8ac8.css"]),n=window.vue=pa(Jp);e.emit("setupVue",n),n.mount("#app"),Gt(()=>{const i=hi(),{updateServiceWorker:r}=ef({onNeedRefresh(){i.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(){r()}})},onOfflineReady(){i.info("App ready to work offline")},onRegisterError:console.warn,onRegistered(a){a&&setInterval(()=>a.update(),60*60*1e3)}})}),t()});export{o as D,Un as _,Ue as a,we as b,Sp as c,Je as g,hs as l,Z as p,te as s}; diff --git a/index.html b/index.html index a86b1c0..f1fa499 100644 --- a/index.html +++ b/index.html @@ -13,7 +13,7 @@ Profectus - + diff --git a/sw.js b/sw.js index 2fa8f43..6ea5050 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 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.6b211d3c.js",revision:null},{url:"assets/amator.1e5a40c8.js",revision:null},{url:"assets/bezier-easing.a990b400.js",revision:null},{url:"assets/gameLoop.43d5abfb.js",revision:null},{url:"assets/index.85fc03ab.css",revision:null},{url:"assets/index.ab068b59.js",revision:null},{url:"assets/lz-string.dccec454.js",revision:null},{url:"assets/nanoevents.1080beb7.js",revision:null},{url:"assets/ngraph.events.083734c6.js",revision:null},{url:"assets/panzoom.30c56ba6.js",revision:null},{url:"assets/sortablejs.a0f68e5e.js",revision:null},{url:"assets/vue-next-select.9e6f4164.css",revision:null},{url:"assets/vue-next-select.ded54c4a.js",revision:null},{url:"assets/vue-panzoom.8ce6f9b1.js",revision:null},{url:"assets/vue-textarea-autosize.35804eaf.js",revision:null},{url:"assets/vue-toastification.4b5f8ac8.css",revision:null},{url:"assets/vue-toastification.9c2dad53.js",revision:null},{url:"assets/vue.c16a309b.js",revision:null},{url:"assets/vuedraggable.1879de79.js",revision:null},{url:"assets/wheel.f2ae740f.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:"70a3ff52d5c8e52ee7f83342c8aa8172"},{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:"e1e419fec40e2d042566c11fe4bce322"}],{}),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.6b211d3c.js",revision:null},{url:"assets/amator.1e5a40c8.js",revision:null},{url:"assets/bezier-easing.a990b400.js",revision:null},{url:"assets/gameLoop.2f646917.js",revision:null},{url:"assets/index.8245842e.js",revision:null},{url:"assets/index.85fc03ab.css",revision:null},{url:"assets/lz-string.dccec454.js",revision:null},{url:"assets/nanoevents.1080beb7.js",revision:null},{url:"assets/ngraph.events.083734c6.js",revision:null},{url:"assets/panzoom.30c56ba6.js",revision:null},{url:"assets/sortablejs.a0f68e5e.js",revision:null},{url:"assets/vue-next-select.9e6f4164.css",revision:null},{url:"assets/vue-next-select.ded54c4a.js",revision:null},{url:"assets/vue-panzoom.8ce6f9b1.js",revision:null},{url:"assets/vue-textarea-autosize.35804eaf.js",revision:null},{url:"assets/vue-toastification.4b5f8ac8.css",revision:null},{url:"assets/vue-toastification.9c2dad53.js",revision:null},{url:"assets/vue.c16a309b.js",revision:null},{url:"assets/vuedraggable.1879de79.js",revision:null},{url:"assets/wheel.f2ae740f.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:"b62200ea621e68f4530ed2f44d26e47b"},{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:"e1e419fec40e2d042566c11fe4bce322"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))}));