screeps-client 0.12.0 → 0.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -0
- package/dist/embedded/_client/BitmapFont-C69w2XRs.js +1 -0
- package/dist/embedded/_client/CanvasRenderer-CD6BmnSm.js +1 -0
- package/dist/embedded/_client/CodePanel-CgFwZdry.js +1 -0
- package/dist/embedded/_client/MapRenderer-BIugaYyt.js +2 -0
- package/dist/embedded/_client/MapViewer-CcdKq0z8.js +1 -0
- package/dist/embedded/_client/WebGLRenderer-DwTRFseK.js +1 -0
- package/dist/embedded/_client/WebGPURenderer-BRcQrvQf.js +1 -0
- package/dist/embedded/_client/browserAll-BXj2KCyJ.js +1 -0
- package/dist/embedded/_client/clientStore-WqbvVt9g.js +2 -0
- package/dist/embedded/_client/decompress-CWkNrR0q.js +1 -0
- package/dist/embedded/_client/decompress-DhdK5fhG.js +1 -0
- package/dist/embedded/_client/dist-js-CmlkNKgN.js +1 -0
- package/dist/embedded/_client/index-BQNPWMvV.js +18 -0
- package/dist/embedded/_client/rolldown-runtime-Bh1tDfsg.js +1 -0
- package/dist/embedded/_client/src-Df9fXZby.js +1 -0
- package/dist/embedded/_client/src-Jwtz4qDC.js +2 -0
- package/dist/embedded/_client/vendor-pixi-DHGNQ8y2.js +1274 -0
- package/dist/embedded/_client/webworkerAll-BXj2KCyJ.js +1 -0
- package/dist/embedded/index.html +7 -4
- package/dist/standalone/_client/BitmapFont-DLIasBqE.js +1 -0
- package/dist/standalone/_client/CanvasRenderer-DL8RbnV1.js +1 -0
- package/dist/standalone/_client/CodePanel-CuVWVfrb.js +1 -0
- package/dist/standalone/_client/MapRenderer-DyIJKwPC.js +2 -0
- package/dist/standalone/_client/MapViewer-COdsMuye.js +1 -0
- package/dist/standalone/_client/WebGLRenderer-DjUuuI3E.js +1 -0
- package/dist/standalone/_client/WebGPURenderer-BCsvVGHb.js +1 -0
- package/dist/standalone/_client/browserAll-DTCB4o-5.js +1 -0
- package/dist/standalone/_client/clientStore-ZaX4LUce.js +2 -0
- package/dist/standalone/_client/decompress-CWkNrR0q.js +1 -0
- package/dist/standalone/_client/decompress-DhdK5fhG.js +1 -0
- package/dist/standalone/_client/dist-js-CmlkNKgN.js +1 -0
- package/dist/standalone/_client/index-bznOpMx_.js +18 -0
- package/dist/standalone/_client/rolldown-runtime-Bh1tDfsg.js +1 -0
- package/dist/standalone/_client/src-Br0nU_Z4.js +1 -0
- package/dist/standalone/_client/src-CRRsf3N_.js +2 -0
- package/dist/standalone/_client/vendor-pixi-DuICDnEc.js +1274 -0
- package/dist/standalone/_client/webworkerAll-DTCB4o-5.js +1 -0
- package/dist/standalone/index.html +7 -4
- package/dist/xxscreeps-mod/_client/BitmapFont-JxbyT8Ge.js +1 -0
- package/dist/xxscreeps-mod/_client/CanvasRenderer-CclzSjxy.js +1 -0
- package/dist/xxscreeps-mod/_client/CodePanel-D84eibLe.js +1 -0
- package/dist/xxscreeps-mod/_client/MapRenderer-C1RRZ_lc.js +2 -0
- package/dist/xxscreeps-mod/_client/MapViewer-CI0hW6b6.js +1 -0
- package/dist/xxscreeps-mod/_client/WebGLRenderer-C3uVJ-nc.js +1 -0
- package/dist/xxscreeps-mod/_client/WebGPURenderer-Bz0pgUuB.js +1 -0
- package/dist/xxscreeps-mod/_client/browserAll-Buqnncum.js +1 -0
- package/dist/xxscreeps-mod/_client/clientStore-BMhdZHSz.js +2 -0
- package/dist/xxscreeps-mod/_client/decompress-CWkNrR0q.js +1 -0
- package/dist/xxscreeps-mod/_client/decompress-DhdK5fhG.js +1 -0
- package/dist/xxscreeps-mod/_client/dist-js-CmlkNKgN.js +1 -0
- package/dist/xxscreeps-mod/_client/index-Crb_GYOh.js +18 -0
- package/dist/xxscreeps-mod/_client/rolldown-runtime-Bh1tDfsg.js +1 -0
- package/dist/xxscreeps-mod/_client/src--XLK9p6c.js +2 -0
- package/dist/xxscreeps-mod/_client/src-DO_MHviu.js +1 -0
- package/dist/xxscreeps-mod/_client/vendor-pixi-D1Rirp-I.js +1274 -0
- package/dist/xxscreeps-mod/_client/webworkerAll-Buqnncum.js +1 -0
- package/dist/xxscreeps-mod/index.html +7 -4
- package/package.json +1 -1
- package/dist/embedded/_client/CodePanel-D5ETgtFO.js +0 -1
- package/dist/embedded/_client/MapViewer-DFQ7jJZw.js +0 -1
- package/dist/embedded/_client/decompress-DIM550rx.js +0 -1
- package/dist/embedded/_client/index-EZziD5mv.js +0 -19
- package/dist/embedded/_client/rolldown-runtime-QTnfLwEv.js +0 -1
- package/dist/embedded/_client/vendor-pixi-D8ed7Ewt.js +0 -1274
- package/dist/standalone/_client/CodePanel-DzUWmwLB.js +0 -1
- package/dist/standalone/_client/MapViewer-yzB_3QH9.js +0 -1
- package/dist/standalone/_client/decompress-DIM550rx.js +0 -1
- package/dist/standalone/_client/index-D88gazCV.js +0 -19
- package/dist/standalone/_client/rolldown-runtime-QTnfLwEv.js +0 -1
- package/dist/standalone/_client/vendor-pixi-DSR77-W8.js +0 -1274
- package/dist/xxscreeps-mod/_client/CodePanel-CcplJf29.js +0 -1
- package/dist/xxscreeps-mod/_client/MapViewer-PPsdyxO4.js +0 -1
- package/dist/xxscreeps-mod/_client/decompress-DIM550rx.js +0 -1
- package/dist/xxscreeps-mod/_client/index-CPAabLyi.js +0 -19
- package/dist/xxscreeps-mod/_client/rolldown-runtime-QTnfLwEv.js +0 -1
- package/dist/xxscreeps-mod/_client/vendor-pixi-DpCtDB71.js +0 -1274
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["_client/CodePanel-CgFwZdry.js","_client/vendor-codemirror-B6f_i0wP.js","_client/clientStore-WqbvVt9g.js","_client/vendor-pixi-DHGNQ8y2.js","_client/rolldown-runtime-Bh1tDfsg.js","_client/src-Jwtz4qDC.js","_client/decompress-CWkNrR0q.js","_client/MapViewer-CcdKq0z8.js","_client/MapRenderer-BIugaYyt.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{A as e,C as t,D as n,E as r,O as i,S as a,T as o,_ as s,b as c,c as l,d as u,f as d,g as f,h as p,j as m,l as h,m as g,p as _,u as v,v as y,w as b,x,y as S}from"./vendor-codemirror-B6f_i0wP.js";import{$ as C,A as w,B as T,C as E,D,E as O,F as k,G as A,H as ee,I as te,J as ne,K as j,L as re,M,N as ie,O as ae,P as oe,Q as N,R as se,S as ce,T as le,U as ue,V as de,W as fe,X as P,Y as F,Z as pe,_ as me,a as he,b as ge,c as _e,d as ve,et as ye,f as be,g as xe,h as Se,i as Ce,j as we,k as Te,l as Ee,m as De,n as I,o as Oe,q as L,r as ke,s as R,t as Ae,u as je,v as z,w as Me,x as Ne,y as Pe,z as B}from"./clientStore-WqbvVt9g.js";import{_ as Fe,a as Ie,b as Le,c as Re,d as ze,f as Be,g as Ve,h as He,l as V,m as Ue,o as We,p as Ge,u as Ke,v as qe,x as Je,y as Ye}from"./vendor-pixi-DHGNQ8y2.js";import{a as Xe,b as Ze,c as Qe,d as $e,i as et,n as tt,o as nt,s as rt,t as it,u as at}from"./src-Jwtz4qDC.js";import{$ as ot,A as st,At as ct,B as lt,C as ut,Ct as dt,D as ft,Dt as pt,E as mt,Et as ht,F as gt,Ft as _t,G as vt,H as yt,I as bt,It as xt,J as St,K as Ct,L as wt,M as Tt,Mt as Et,N as Dt,Nt as Ot,O as kt,Ot as At,P as jt,Pt as Mt,Q as Nt,R as Pt,Rt as Ft,S as It,St as Lt,T as Rt,Tt as H,U as zt,V as Bt,W as Vt,X as Ht,Y as Ut,Z as Wt,_ as Gt,_t as Kt,a as qt,at as Jt,b as Yt,c as Xt,ct as Zt,d as Qt,dt as $t,et as en,f as tn,ft as nn,g as rn,gt as an,h as on,ht as sn,i as cn,it as ln,j as un,jt as dn,k as fn,kt as pn,l as mn,lt as hn,m as gn,mt as _n,n as vn,nt as yn,o as bn,ot as xn,p as Sn,pt as Cn,q as wn,r as Tn,rt as En,s as Dn,st as On,tt as kn,u as An,ut as jn,vt as Mn,w as Nn,wt as Pn,x as Fn,xt as In,z as Ln}from"./MapRenderer-BIugaYyt.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var Rn={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`},zn=C(`<svg>`),Bn=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),Vn=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),Hn=e=>{let t=Vn(e);return t.charAt(0).toUpperCase()+t.slice(1)},Un=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),U=t=>{let[n,r]=e(t,[`color`,`size`,`strokeWidth`,`children`,`class`,`name`,`iconNode`,`absoluteStrokeWidth`]);return(()=>{var e=zn();return pe(e,o(Rn,{get width(){return n.size??Rn.width},get height(){return n.size??Rn.height},get stroke(){return n.color??Rn.stroke},get"stroke-width"(){return L(()=>!!n.absoluteStrokeWidth)()?Number(n.strokeWidth??Rn[`stroke-width`])*24/Number(n.size):Number(n.strokeWidth??Rn[`stroke-width`])},get class(){return Un(`lucide`,`lucide-icon`,...n.name==null?[]:[`lucide-${Bn(Hn(n.name))}`,`lucide-${Bn(n.name)}`],n.class==null?``:n.class)}},r),!0,!0),j(e,f(u,{get each(){return n.iconNode},children:([e,t])=>f(ue,o({component:e},t))})),e})()},Wn=[[`path`,{d:`M8 3 4 7l4 4`,key:`9rb6wj`}],[`path`,{d:`M4 7h16`,key:`6tx8e3`}],[`path`,{d:`m16 21 4-4-4-4`,key:`siv7j2`}],[`path`,{d:`M20 17H4`,key:`h6l3hr`}]],Gn=e=>f(U,o(e,{iconNode:Wn,name:`arrow-left-right`})),Kn=[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`path`,{d:`M20.2 20.2c2.04-2.03.02-7.36-4.5-11.9-4.54-4.52-9.87-6.54-11.9-4.5-2.04 2.03-.02 7.36 4.5 11.9 4.54 4.52 9.87 6.54 11.9 4.5Z`,key:`1l2ple`}],[`path`,{d:`M15.7 15.7c4.52-4.54 6.54-9.87 4.5-11.9-2.03-2.04-7.36-.02-11.9 4.5-4.52 4.54-6.54 9.87-4.5 11.9 2.03 2.04 7.36.02 11.9-4.5Z`,key:`1wam0m`}]],qn=e=>f(U,o(e,{iconNode:Kn,name:`atom`})),Jn=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m4.9 4.9 14.2 14.2`,key:`1m5liu`}]],Yn=e=>f(U,o(e,{iconNode:Jn,name:`ban`})),Xn=[[`path`,{d:`m11 7-3 5h4l-3 5`,key:`b4a64w`}],[`path`,{d:`M14.856 6H16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.935`,key:`lre1cr`}],[`path`,{d:`M22 14v-4`,key:`14q9d5`}],[`path`,{d:`M5.14 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2.936`,key:`13q5k0`}]],Zn=e=>f(U,o(e,{iconNode:Xn,name:`battery-charging`})),Qn=[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M17 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 .258-1.742`,key:`178tsu`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M8.668 3.01A6 6 0 0 1 18 8c0 2.687.77 4.653 1.707 6.05`,key:`1hqiys`}]],$n=e=>f(U,o(e,{iconNode:Qn,name:`bell-off`})),er=[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]],tr=e=>f(U,o(e,{iconNode:er,name:`bell`})),nr=[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]],rr=e=>f(U,o(e,{iconNode:nr,name:`check`})),ir=[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]],ar=e=>f(U,o(e,{iconNode:ir,name:`chevron-down`})),or=[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]],sr=e=>f(U,o(e,{iconNode:or,name:`chevron-right`})),cr=[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]],lr=e=>f(U,o(e,{iconNode:cr,name:`chevron-left`})),ur=[[`path`,{d:`m11 17-5-5 5-5`,key:`13zhaf`}],[`path`,{d:`m18 17-5-5 5-5`,key:`h8a8et`}]],dr=e=>f(U,o(e,{iconNode:ur,name:`chevrons-left`})),fr=[[`path`,{d:`m6 17 5-5-5-5`,key:`xnjwq`}],[`path`,{d:`m13 17 5-5-5-5`,key:`17xmmf`}]],pr=e=>f(U,o(e,{iconNode:fr,name:`chevrons-right`})),mr=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`9`,x2:`15`,y1:`15`,y2:`9`,key:`1dfufj`}]],hr=e=>f(U,o(e,{iconNode:mr,name:`circle-slash`})),gr=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`polyline`,{points:`12 6 12 12 16 14`,key:`68esgv`}]],_r=e=>f(U,o(e,{iconNode:gr,name:`clock`})),vr=[[`path`,{d:`m18 16 4-4-4-4`,key:`1inbqp`}],[`path`,{d:`m6 8-4 4 4 4`,key:`15zrgr`}],[`path`,{d:`m14.5 4-5 16`,key:`e7oirm`}]],yr=e=>f(U,o(e,{iconNode:vr,name:`code-xml`})),br=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`22`,x2:`18`,y1:`12`,y2:`12`,key:`l9bcsi`}],[`line`,{x1:`6`,x2:`2`,y1:`12`,y2:`12`,key:`13hhkx`}],[`line`,{x1:`12`,x2:`12`,y1:`6`,y2:`2`,key:`10w3f3`}],[`line`,{x1:`12`,x2:`12`,y1:`22`,y2:`18`,key:`15g9kq`}]],xr=e=>f(U,o(e,{iconNode:br,name:`crosshair`})),Sr=[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`,key:`1wlel7`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`,key:`mv7ke4`}]],Cr=e=>f(U,o(e,{iconNode:Sr,name:`database`})),wr=[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]],Tr=e=>f(U,o(e,{iconNode:wr,name:`eye`})),Er=[[`path`,{d:`M12 16h.01`,key:`1drbdi`}],[`path`,{d:`M16 16h.01`,key:`1f9h7w`}],[`path`,{d:`M3 19a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.5a.5.5 0 0 0-.769-.422l-4.462 2.844A.5.5 0 0 1 15 10.5v-2a.5.5 0 0 0-.769-.422L9.77 10.922A.5.5 0 0 1 9 10.5V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2z`,key:`1iv0i2`}],[`path`,{d:`M8 16h.01`,key:`18s6g9`}]],Dr=e=>f(U,o(e,{iconNode:Er,name:`factory`})),Or=[[`path`,{d:`M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z`,key:`i9b6wo`}],[`line`,{x1:`4`,x2:`4`,y1:`22`,y2:`15`,key:`1cm3nv`}]],kr=e=>f(U,o(e,{iconNode:Or,name:`flag`})),Ar=[[`path`,{d:`M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2`,key:`18mbvz`}],[`path`,{d:`M6.453 15h11.094`,key:`3shlmq`}],[`path`,{d:`M8.5 2h7`,key:`csnxdl`}]],jr=e=>f(U,o(e,{iconNode:Ar,name:`flask-conical`})),Mr=[[`path`,{d:`M6 3h12l4 6-10 13L2 9Z`,key:`1pcd5k`}],[`path`,{d:`M11 3 8 9l4 13 4-13-3-6`,key:`1fcu3u`}],[`path`,{d:`M2 9h20`,key:`16fsjt`}]],Nr=e=>f(U,o(e,{iconNode:Mr,name:`gem`})),Pr=[[`path`,{d:`m15 12-8.373 8.373a1 1 0 1 1-3-3L12 9`,key:`eefl8a`}],[`path`,{d:`m18 15 4-4`,key:`16gjal`}],[`path`,{d:`m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172V7l-2.26-2.26a6 6 0 0 0-4.202-1.756L9 2.96l.92.82A6.18 6.18 0 0 1 12 8.4V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5`,key:`b7pghm`}]],Fr=e=>f(U,o(e,{iconNode:Pr,name:`hammer`})),Ir=[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]],Lr=e=>f(U,o(e,{iconNode:Ir,name:`key-round`})),Rr=[[`rect`,{width:`7`,height:`9`,x:`3`,y:`3`,rx:`1`,key:`10lvy0`}],[`rect`,{width:`7`,height:`5`,x:`14`,y:`3`,rx:`1`,key:`16une8`}],[`rect`,{width:`7`,height:`9`,x:`14`,y:`12`,rx:`1`,key:`1hutg5`}],[`rect`,{width:`7`,height:`5`,x:`3`,y:`16`,rx:`1`,key:`ldoo1y`}]],zr=e=>f(U,o(e,{iconNode:Rr,name:`layout-dashboard`})),Br=[[`rect`,{width:`7`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`1g98yp`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`3`,rx:`1`,key:`6d4xhi`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`14`,rx:`1`,key:`nxv5o0`}],[`rect`,{width:`7`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`1bb6yr`}]],Vr=e=>f(U,o(e,{iconNode:Br,name:`layout-grid`})),Hr=[[`path`,{d:`M12 2v4`,key:`3427ic`}],[`path`,{d:`m16.2 7.8 2.9-2.9`,key:`r700ao`}],[`path`,{d:`M18 12h4`,key:`wj9ykh`}],[`path`,{d:`m16.2 16.2 2.9 2.9`,key:`1bxg5t`}],[`path`,{d:`M12 18v4`,key:`jadmvz`}],[`path`,{d:`m4.9 19.1 2.9-2.9`,key:`bwix9q`}],[`path`,{d:`M2 12h4`,key:`j09sii`}],[`path`,{d:`m4.9 4.9 2.9 2.9`,key:`giyufr`}]],Ur=e=>f(U,o(e,{iconNode:Hr,name:`loader`})),Wr=[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`,key:`1w4ew1`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`,key:`fwvmzm`}]],Gr=e=>f(U,o(e,{iconNode:Wr,name:`lock`})),Kr=[[`path`,{d:`m10 17 5-5-5-5`,key:`1bsop3`}],[`path`,{d:`M15 12H3`,key:`6jk70r`}],[`path`,{d:`M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4`,key:`u53s6r`}]],qr=e=>f(U,o(e,{iconNode:Kr,name:`log-in`})),Jr=[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]],Yr=e=>f(U,o(e,{iconNode:Jr,name:`log-out`})),Xr=[[`path`,{d:`M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z`,key:`169xi5`}],[`path`,{d:`M15 5.764v15`,key:`1pn4in`}],[`path`,{d:`M9 3.236v15`,key:`1uimfh`}]],Zr=e=>f(U,o(e,{iconNode:Xr,name:`map`})),Qr=[[`path`,{d:`M12 2v20`,key:`t6zp3m`}],[`path`,{d:`m15 19-3 3-3-3`,key:`11eu04`}],[`path`,{d:`m19 9 3 3-3 3`,key:`1mg7y2`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}],[`path`,{d:`m5 9-3 3 3 3`,key:`j64kie`}],[`path`,{d:`m9 5 3-3 3 3`,key:`l8vdw6`}]],$r=e=>f(U,o(e,{iconNode:Qr,name:`move`})),ei=[[`path`,{d:`M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14`,key:`e7tb2h`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`line`,{x1:`12`,x2:`12`,y1:`22`,y2:`12`,key:`a4e8g8`}],[`path`,{d:`m17 13 5 5m-5 0 5-5`,key:`im3w4b`}]],ti=e=>f(U,o(e,{iconNode:ei,name:`package-x`})),ni=[[`rect`,{x:`14`,y:`4`,width:`4`,height:`16`,rx:`1`,key:`zuxfzm`}],[`rect`,{x:`6`,y:`4`,width:`4`,height:`16`,rx:`1`,key:`1okwgv`}]],ri=e=>f(U,o(e,{iconNode:ni,name:`pause`})),ii=[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]],ai=e=>f(U,o(e,{iconNode:ii,name:`pencil`})),oi=[[`polygon`,{points:`6 3 20 12 6 21 6 3`,key:`1oa8hb`}]],si=e=>f(U,o(e,{iconNode:oi,name:`play`})),ci=[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]],li=e=>f(U,o(e,{iconNode:ci,name:`plus`})),ui=[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]],di=e=>f(U,o(e,{iconNode:ui,name:`refresh-cw`})),fi=[[`path`,{d:`M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z`,key:`m3kijz`}],[`path`,{d:`m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z`,key:`1fmvmk`}],[`path`,{d:`M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0`,key:`1f8sc4`}],[`path`,{d:`M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5`,key:`qeys4`}]],pi=e=>f(U,o(e,{iconNode:fi,name:`rocket`})),mi=[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]],hi=e=>f(U,o(e,{iconNode:mi,name:`rotate-ccw`})),gi=[[`path`,{d:`M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z`,key:`1qme2f`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]],_i=e=>f(U,o(e,{iconNode:gi,name:`settings`})),vi=[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]],yi=e=>f(U,o(e,{iconNode:vi,name:`shield-check`})),bi=[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}]],xi=e=>f(U,o(e,{iconNode:bi,name:`shield`})),Si=[[`path`,{d:`m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7`,key:`ztvudi`}],[`path`,{d:`M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8`,key:`1b2hhj`}],[`path`,{d:`M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4`,key:`2ebpfo`}],[`path`,{d:`M2 7h20`,key:`1fcdvo`}],[`path`,{d:`M22 7v3a2 2 0 0 1-2 2a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12a2 2 0 0 1-2-2V7`,key:`6c3vgh`}]],Ci=e=>f(U,o(e,{iconNode:Si,name:`store`})),wi=[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]],Ti=e=>f(U,o(e,{iconNode:wi,name:`sun`})),Ei=[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]],Di=e=>f(U,o(e,{iconNode:Ei,name:`terminal`})),Oi=[[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6`,key:`4alrt4`}],[`path`,{d:`M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2`,key:`v07s0e`}],[`line`,{x1:`10`,x2:`10`,y1:`11`,y2:`17`,key:`1uufr5`}],[`line`,{x1:`14`,x2:`14`,y1:`11`,y2:`17`,key:`xtxkd`}]],ki=e=>f(U,o(e,{iconNode:Oi,name:`trash-2`})),Ai=[[`path`,{d:`M16 7h6v6`,key:`box55l`}],[`path`,{d:`m22 7-8.5 8.5-5-5L2 17`,key:`1t1m79`}]],ji=e=>f(U,o(e,{iconNode:Ai,name:`trending-up`})),Mi=[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]],Ni=e=>f(U,o(e,{iconNode:Mi,name:`x`})),Pi=[[`path`,{d:`M10.513 4.856 13.12 2.17a.5.5 0 0 1 .86.46l-1.377 4.317`,key:`193nxd`}],[`path`,{d:`M15.656 10H20a1 1 0 0 1 .78 1.63l-1.72 1.773`,key:`27a7lr`}],[`path`,{d:`M16.273 16.273 10.88 21.83a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14H4a1 1 0 0 1-.78-1.63l4.507-4.643`,key:`1e0qe9`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]],Fi=e=>f(U,o(e,{iconNode:Pi,name:`zap-off`})),Ii=[[`path`,{d:`M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z`,key:`1xq2db`}]],Li=e=>f(U,o(e,{iconNode:Ii,name:`zap`})),Ri=C(`<span style=font-size:11px;display:inline-flex;align-items:center;gap:3px>`),zi=C(`<div style="color:#3fb950;font-size:14px;text-align:center;padding:8px 0">Account created! Logging you in…`),Bi=C(`<label style=display:flex;flex-direction:column;gap:4px><div style=display:flex;align-items:baseline;gap:8px><span style=font-size:12px;color:#8b949e>Username</span></div><input type=text name=username autocomplete=username>`),Vi=C(`<label style=display:flex;flex-direction:column;gap:4px><div style=display:flex;align-items:baseline;gap:8px><span style=font-size:12px;color:#8b949e>Email</span></div><input type=email name=email autocomplete=email>`),Hi=C(`<label style=display:flex;flex-direction:column;gap:4px><span style=font-size:12px;color:#8b949e>Password</span><input type=password name=new-password autocomplete=new-password>`),Ui=C(`<span style=font-size:11px;color:#f85149>Passwords don't match`),Wi=C(`<label style=display:flex;flex-direction:column;gap:4px><div style=display:flex;align-items:baseline;gap:8px><span style=font-size:12px;color:#8b949e>Confirm Password</span></div><input type=password name=confirm-password autocomplete=new-password>`),Gi=C(`<button type=submit style=padding:10px;border-radius:6px;border:none;background:#238636;color:#fff;font-weight:600>`),Ki=C(`<button type=button style="padding:8px;border-radius:6px;border:1px solid #30363d;background:transparent;color:#8b949e;font-size:12px;cursor:pointer">Back to Login`),qi=C(`<form style=display:flex;flex-direction:column;gap:16px><h2 style=margin:0;font-size:20px>Create Account`),Ji=C(`<div style=color:#f85149;font-size:13px>`),Yi=C(`<div style="width:360px;padding:16px 20px;border-radius:8px;background:#161b22;border:1px solid #30363d;color:#c9d1d9;font-size:13px;line-height:1.6">`),Xi=C(`<button type=button style=background:none;border:none;color:#58a6ff;font-size:12px;cursor:pointer;padding:0>Create account`),Zi=C(`<div style=display:flex;gap:8px><button type=button style="flex:1;padding:8px;border-radius:6px;border:1px solid #30363d;color:#fff;cursor:pointer">Password</button><button type=button style="flex:1;padding:8px;border-radius:6px;border:1px solid #30363d;color:#fff;cursor:pointer">Token`),Qi=C(`<label style=display:flex;flex-direction:column;gap:4px><span style=font-size:12px;color:#8b949e>Server URL</span><input type=url name=url autocomplete=url inputmode=url>`),$i=C(`<div style=color:#8b949e;font-size:12px;margin-top:-8px>`),ea=C(`<div style=display:flex;align-items:center;gap:8px;color:#484f58;font-size:12px><div style=flex:1;height:1px;background:#30363d></div>or<div style=flex:1;height:1px;background:#30363d>`),ta=C(`<button type=button style=padding:10px;border-radius:6px;border:none;background:#1b2838;color:#c7d5e0;font-weight:600>Login with Steam`),na=C(`<button type=button style="padding:8px;border-radius:6px;border:1px solid #30363d;background:transparent;color:#8b949e;font-size:12px">Connect as Guest (read-only)`),ra=C(`<form style=display:flex;flex-direction:column;gap:16px><div style=display:flex;align-items:baseline;justify-content:space-between><h2 style=margin:0;font-size:20px>Connect to Screeps</h2></div><label style=display:flex;flex-direction:column;gap:4px><span style=font-size:12px;color:#8b949e>Server Password <span style=color:#484f58>(optional)</span></span><input type=password name=server-password autocomplete=off data-1p-ignore data-lpignore=true placeholder="Leave empty if not required"></label><button type=submit style=padding:10px;border-radius:6px;border:none;background:#238636;color:#fff;font-weight:600>`),ia=C(`<div style="width:360px;padding:12px 20px;border-radius:8px;background:#161b22;border:1px solid #30363d"><div style=font-size:11px;color:#484f58;margin-bottom:8px;text-transform:uppercase;letter-spacing:0.05em>Server Mods</div><div style=display:flex;flex-wrap:wrap;gap:6px>`),aa=C(`<div style="display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;width:100%;height:100%;overflow:auto;padding:24px 0;box-sizing:border-box"><div style="display:flex;flex-direction:column;gap:16px;width:360px;padding:32px;border-radius:8px;background:#161b22;border:1px solid #30363d">`),oa=C(`<label style=display:flex;flex-direction:column;gap:4px><span style=font-size:12px;color:#8b949e>Email or Username</span><input type=text id=username name=username autocomplete=username>`),sa=C(`<label style=display:flex;flex-direction:column;gap:4px><span style=font-size:12px;color:#8b949e>Password</span><input type=password id=password name=password autocomplete=current-password>`),ca=C(`<label style=display:flex;flex-direction:column;gap:4px><span style=font-size:12px;color:#8b949e>Auth Token</span><input type=password name=token autocomplete=off>`),la=C(`<span style="font-size:11px;padding:2px 8px;border-radius:12px;background:#21262d;border:1px solid #30363d;color:#8b949e;font-family:monospace">`),ua={padding:`8px 12px`,"border-radius":`6px`,border:`1px solid #30363d`,background:`#0d1117`,color:`#c9d1d9`};function da(e){let[t,r]=a(null),[i,o]=a(null),[c,l]=a(null);return s(()=>{let t=e();r(null),o(null),l(null);let i=!1,a=setTimeout(async()=>{try{let e=await rt(t);if(i)return;if(r(e),l(null),Qe(e)){let e=await nt(t);i||o(e)}}catch{i||(l(`Could not reach server`),r(null))}},400);n(()=>{i=!0,clearTimeout(a)})}),{serverVersion:t,authModInfo:i,serverError:c}}function fa(e,t,r){let[i,o]=a(`idle`);return s(()=>{let i=t();if(!i){o(`idle`);return}o(`checking`);let a=!1,s=setTimeout(async()=>{try{let t=await r(e(),i);a||o(t.error?`taken`:`available`)}catch{a||o(`error`)}},500);n(()=>{a=!0,clearTimeout(s)})}),i}function pa(e){let t={idle:null,checking:{children:`Checking…`,color:`#8b949e`},available:{children:[f(rr,{size:12}),` Available`],color:`#3fb950`},taken:{children:[f(Ni,{size:12}),` Already taken`],color:`#f85149`},error:{children:`Could not verify`,color:`#d29922`}},n=()=>t[e.state];return f(_,{get when(){return n()},get children(){var e=Ri();return j(e,()=>n().children),S(t=>P(e,`color`,n().color)),e}})}function ma(e){let[t,n]=a(``),[r,i]=a(``),[o,s]=a(``),[c,l]=a(``),[u,d]=a(!1),[p,m]=a(null),[h,g]=a(!1),v=fa(()=>e.url,t,Xe),y=fa(()=>e.url,r,et),b=()=>c()!==``&&o()!==c(),x=()=>!u()&&t()!==``&&r()!==``&&o().length>=4&&o()===c()&&v()!==`taken`&&v()!==`checking`&&y()!==`taken`&&y()!==`checking`,C=async n=>{if(n.preventDefault(),x()){d(!0),m(null);try{let n=await at(e.url,t(),r(),o());if(n.error){m(n.error);return}g(!0),setTimeout(()=>e.onSuccess(r(),o()),1500)}catch(e){m(e instanceof Error?e.message:`Registration failed`)}finally{d(!1)}}};return(()=>{var a=qi();return a.firstChild,a.addEventListener(`submit`,C),j(a,f(_,{get when(){return h()},get children(){return zi()}}),null),j(a,f(_,{get when(){return!h()},get children(){return[(()=>{var e=Bi(),r=e.firstChild;r.firstChild;var i=r.nextSibling;return j(r,f(pa,{get state(){return v()}}),null),i.$$input=e=>n(e.currentTarget.value),S(e=>{var t=ua,n=u();return e.e=N(i,t,e.e),n!==e.t&&(i.disabled=e.t=n),e},{e:void 0,t:void 0}),S(()=>i.value=t()),e})(),(()=>{var e=Vi(),t=e.firstChild;t.firstChild;var n=t.nextSibling;return j(t,f(pa,{get state(){return y()}}),null),n.$$input=e=>i(e.currentTarget.value),S(e=>{var t=ua,r=u();return e.e=N(n,t,e.e),r!==e.t&&(n.disabled=e.t=r),e},{e:void 0,t:void 0}),S(()=>n.value=r()),e})(),(()=>{var e=Hi(),t=e.firstChild.nextSibling;return t.$$input=e=>s(e.currentTarget.value),S(e=>{var n=ua,r=u();return e.e=N(t,n,e.e),r!==e.t&&(t.disabled=e.t=r),e},{e:void 0,t:void 0}),S(()=>t.value=o()),e})(),(()=>{var e=Wi(),t=e.firstChild;t.firstChild;var n=t.nextSibling;return j(t,f(_,{get when(){return b()},get children(){return Ui()}}),null),n.$$input=e=>l(e.currentTarget.value),S(e=>{var t={...ua,border:b()?`1px solid #f85149`:`1px solid #30363d`},r=u();return e.e=N(n,t,e.e),r!==e.t&&(n.disabled=e.t=r),e},{e:void 0,t:void 0}),S(()=>n.value=c()),e})(),L(()=>L(()=>!!p())()&&(()=>{var e=Ji();return j(e,p),e})()),(()=>{var e=Gi();return j(e,()=>u()?`Creating account…`:`Create Account`),S(t=>{var n=!x(),r=x()?`pointer`:`not-allowed`,i=x()?1:.5;return n!==t.e&&(e.disabled=t.e=n),r!==t.t&&P(e,`cursor`,t.t=r),i!==t.a&&P(e,`opacity`,t.a=i),t},{e:void 0,t:void 0,a:void 0}),e})(),(()=>{var t=Ki();return t.$$click=()=>e.onCancel(),t})()]}}),null),a})()}function ha(){let e=re(),t=se(),[r,i]=a(`login`),[o,s]=a(`password`),[c,l]=a(e?te():window.location.origin),[d,p]=a(``),[m,h]=a(``),[g,v]=a(``),[y,b]=a(``),{serverVersion:x,authModInfo:C,serverError:w}=da(c),T=()=>x()?.serverData?.welcomeText??null,E=()=>(x()?.serverData?.features??[]).filter(e=>e.name!==`auth`&&e.version!=null),D=()=>{let e=x();return e?Qe(e)?.authTypes?.includes(`steam`)??!0:!0},O=()=>C()?.allowRegistration===!0||(x()?.serverData?.features??[]).some(e=>e.name===`official-like`),k=()=>{let e=c().replace(/\/$/,``),t=window.open(`${e}/api/auth/steam`,`screeps-steam-auth`,`width=800,height=600,left=200,top=100`),r=t=>{try{let n=JSON.parse(t.data);n.token&&(a(),ke({url:e,auth:`token`,authMethod:`steam`,token:n.token,serverPassword:y()||void 0,storage:null}))}catch{}},i=setInterval(()=>{t?.closed&&a()},500),a=()=>{clearInterval(i),window.removeEventListener(`message`,r)};window.addEventListener(`message`,r),n(a)},A=async e=>{e.preventDefault(),await ke({url:c(),auth:o(),email:d()||void 0,password:m()||void 0,token:g()||void 0,serverPassword:y()||void 0,storage:null})},ee=async e=>{e.preventDefault(),await ke({url:c(),auth:`guest`,serverPassword:y()||void 0,storage:null})},ne=async(e,t)=>{try{await ke({url:c(),auth:`password`,email:e,password:t,serverPassword:y()||void 0,storage:null})}catch{i(`login`),s(`password`),p(e),h(t)}},M=()=>De()===`connecting`;return(()=>{var n=aa(),a=n.firstChild;return j(n,f(_,{get when(){return T()},get children(){var e=Yi();return S(()=>e.innerHTML=T()),e}}),a),j(a,f(_,{get when(){return r()===`register`},get children(){return f(ma,{get url(){return c()},get serverPassword(){return y()},onSuccess:ne,onCancel:()=>i(`login`)})}}),null),j(a,f(_,{get when(){return r()===`login`},get children(){var n=ra(),r=n.firstChild;r.firstChild;var a=r.nextSibling,u=a.firstChild;u.firstChild.nextSibling;var x=u.nextSibling,C=a.nextSibling;return n.addEventListener(`submit`,A),j(r,f(_,{get when(){return O()},get children(){var e=Xi();return e.$$click=()=>i(`register`),e}}),null),j(n,f(_,{when:!e,get children(){var e=Zi(),t=e.firstChild,n=t.nextSibling;return t.$$click=()=>s(`password`),n.$$click=()=>s(`token`),S(e=>{var r=o()===`password`?`#238636`:`transparent`,i=o()===`token`?`#238636`:`transparent`;return r!==e.e&&P(t,`background`,e.e=r),i!==e.t&&P(n,`background`,e.t=i),e},{e:void 0,t:void 0}),e}}),a),j(n,f(_,{when:!e,get children(){return[(()=>{var e=Qi(),t=e.firstChild.nextSibling;return t.$$input=e=>l(e.currentTarget.value),S(e=>N(t,ua,e)),S(()=>t.value=c()),e})(),f(_,{get when(){return w()},get children(){var e=$i();return j(e,w),e}})]}}),a),j(n,(()=>{var e=L(()=>o()===`password`);return()=>e()?[(()=>{var e=oa(),t=e.firstChild.nextSibling;return t.$$input=e=>p(e.currentTarget.value),S(e=>N(t,ua,e)),S(()=>t.value=d()),e})(),(()=>{var e=sa(),t=e.firstChild.nextSibling;return t.$$input=e=>h(e.currentTarget.value),S(e=>N(t,ua,e)),S(()=>t.value=m()),e})()]:(()=>{var e=ca(),t=e.firstChild.nextSibling;return t.$$input=e=>v(e.currentTarget.value),S(e=>N(t,ua,e)),S(()=>t.value=g()),e})()})(),a),x.$$input=e=>b(e.currentTarget.value),j(n,(()=>{var e=L(()=>!!he());return()=>e()&&(()=>{var e=Ji();return j(e,he),e})()})(),C),j(C,()=>M()?`Connecting…`:`Connect`),j(n,f(_,{get when(){return D()},get children(){return[(()=>{var e=ea();return e.firstChild.nextSibling.nextSibling,e})(),(()=>{var e=ta();return e.$$click=k,S(t=>{var n=M(),r=M()?`not-allowed`:`pointer`,i=M()?.6:1;return n!==t.e&&(e.disabled=t.e=n),r!==t.t&&P(e,`cursor`,t.t=r),i!==t.a&&P(e,`opacity`,t.a=i),t},{e:void 0,t:void 0,a:void 0}),e})()]}}),null),j(n,f(_,{when:!e||t,get children(){var e=na();return e.addEventListener(`mouseleave`,e=>{e.currentTarget.style.borderColor=`#30363d`}),e.addEventListener(`mouseenter`,e=>{M()||(e.currentTarget.style.borderColor=`#8b949e`)}),e.$$click=ee,S(t=>{var n=M(),r=M()?`not-allowed`:`pointer`,i=M()?.6:1;return n!==t.e&&(e.disabled=t.e=n),r!==t.t&&P(e,`cursor`,t.t=r),i!==t.a&&P(e,`opacity`,t.a=i),t},{e:void 0,t:void 0,a:void 0}),e}}),null),S(e=>{var t=ua,n=M(),r=M()?`not-allowed`:`pointer`,i=M()?.6:1;return e.e=N(x,t,e.e),n!==e.t&&(C.disabled=e.t=n),r!==e.a&&P(C,`cursor`,e.a=r),i!==e.o&&P(C,`opacity`,e.o=i),e},{e:void 0,t:void 0,a:void 0,o:void 0}),S(()=>x.value=y()),n}}),null),j(n,f(_,{get when(){return E().length>0},get children(){var e=ia(),t=e.firstChild.nextSibling;return j(t,f(u,{get each(){return E()},children:e=>(()=>{var t=la();return j(t,()=>e.name,null),j(t,(()=>{var t=L(()=>!!e.version);return()=>t()?` ${e.version}`:``})(),null),t})()})),e}}),null),n})()}A([`input`,`click`]);var ga=C(`<div style=display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;width:100%;height:100%><div style="width:32px;height:32px;border:3px solid #30363d;border-top-color:#58a6ff;border-radius:50%;animation:spin 0.8s linear infinite"></div><div style=color:#8b949e;font-size:13px>Connecting…`);function _a(){return(()=>{var e=ga();return e.firstChild.nextSibling,e})()}var va=C(`<span style="padding:2px 8px;border-radius:4px;background:#21262d;border:1px solid #30363d;color:#8b949e;font-size:11px;font-weight:600;letter-spacing:0.05em;text-transform:uppercase">Guest`),ya=C(`<div style="display:flex;align-items:center;gap:12px;padding:8px 16px;border-bottom:1px solid #30363d;font-size:13px"><div style=display:flex;align-items:center;gap:6px><span style=width:8px;height:8px;border-radius:50%;display:inline-block></span><span style=color:#8b949e>`);function ba(){let e=()=>{switch(De()){case`connected`:return`#238636`;case`connecting`:return`#d29922`;case`error`:return`#f85149`;default:return`#8b949e`}};return(()=>{var t=ya(),n=t.firstChild.firstChild,r=n.nextSibling;return j(r,(()=>{var e=L(()=>De()===`connected`);return()=>e()?`Online`:De()})()),j(t,f(_,{get when(){return _e()},get children(){return va()}}),null),S(t=>P(n,`background-color`,e())),t})()}var xa=class{container;hoverGraphics;pendingGraphics;selectionContainer;selectionGraphics=new Map;selectionTypes=new Map;selectionVisuals=new Map;ticker=null;tickerCallback=null;constructor(e){this.container=new Fe,this.container.label=`hoverHighlight`,this.container.eventMode=`none`,this.hoverGraphics=new V,this.hoverGraphics.eventMode=`none`,this.container.addChild(this.hoverGraphics),this.pendingGraphics=new V,this.pendingGraphics.eventMode=`none`,this.container.addChild(this.pendingGraphics),this.selectionContainer=new Fe,this.selectionContainer.eventMode=`none`,this.container.addChild(this.selectionContainer),e&&(this.ticker=e,this.tickerCallback=()=>this.trackCreepRings(),e.add(this.tickerCallback))}setHoveredTile(e,t){if(this.hoverGraphics.clear(),e===null||t===null)return;let n=e*12,r=t*12;this.hoverGraphics.rect(n,r,12,12),this.hoverGraphics.stroke({width:1,color:16777215,alpha:.35}),this.hoverGraphics.rect(n,r,12,12),this.hoverGraphics.fill({color:16777215,alpha:.06})}setSelectedObjects(e){this.selectionContainer.removeChildren();for(let e of this.selectionGraphics.values())e.destroy();this.selectionGraphics.clear(),this.selectionTypes.clear(),this.selectionVisuals.clear();for(let{id:t,type:n,visual:r}of e){let e=new V;e.eventMode=`none`,this.selectionContainer.addChild(e),this.selectionGraphics.set(t,e),this.selectionTypes.set(t,n),this.selectionVisuals.set(t,r),n===`creep`?this.drawCreepRing(e,r.x,r.y):this.drawStructureBox(e,r.x,r.y)}}clearSelection(){this.selectionContainer.removeChildren();for(let e of this.selectionGraphics.values())e.destroy();this.selectionGraphics.clear(),this.selectionTypes.clear(),this.selectionVisuals.clear()}setPendingTile(e,t){if(this.pendingGraphics.clear(),e===null||t===null)return;let n=e*12,r=t*12,i=n+12/2,a=r+12/2,o=12*.35;this.pendingGraphics.moveTo(i-o,a),this.pendingGraphics.lineTo(i+o,a),this.pendingGraphics.moveTo(i,a-o),this.pendingGraphics.lineTo(i,a+o),this.pendingGraphics.stroke({width:1.5,color:15763518,alpha:.9}),this.pendingGraphics.rect(n+1,r+1,10,10),this.pendingGraphics.stroke({width:1.5,color:15763518,alpha:.6})}clearPendingTile(){this.pendingGraphics.clear()}drawCreepRing(e,t,n){e.clear();let r=t+12/2,i=n+12/2;e.circle(r,i,5.76),e.stroke({width:1.5,color:16777215,alpha:.9})}drawStructureBox(e,t,n){e.clear(),e.rect(t+1,n+1,10,10),e.stroke({width:1.5,color:16777215,alpha:.9}),e.rect(t+1,n+1,10,10),e.fill({color:16777215,alpha:.04})}trackCreepRings(){for(let[e,t]of this.selectionGraphics){if(this.selectionTypes.get(e)!==`creep`)continue;let n=this.selectionVisuals.get(e);!n||n.destroyed||this.drawCreepRing(t,n.x,n.y)}}destroy(){this.ticker&&this.tickerCallback&&this.ticker.remove(this.tickerCallback),this.ticker=null,this.tickerCallback=null,this.clearSelection(),this.clearPendingTile(),this.pendingGraphics.destroy(),this.hoverGraphics.destroy(),this.container.destroy()}},Sa=.2,Ca=3,wa=class{displaySprite;renderer;rt;scene;gradientTexture;lights=new Map;dirty=!1;destroyed=!1;constructor(e){this.renderer=e,this.gradientTexture=Ta(),this.rt=Ie.create({width:600,height:600}),this.scene=new Fe;let t=new V;t.rect(0,0,600,600),t.fill({color:0,alpha:Sa}),this.scene.addChild(t),this.displaySprite=new Ve(this.rt),this.render()}setLights(e){let t=new Set;for(let{id:n,cx:r,cy:i}of e){t.add(n);let e=this.lights.get(n);e||(e=new Ve(this.gradientTexture),e.anchor.set(.5),e.blendMode=`erase`,this.scene.addChild(e),this.lights.set(n,e)),e.position.set(r,i)}for(let[e,n]of this.lights)t.has(e)||(n.destroy(),this.lights.delete(e));this.dirty=!0}setLightPosition(e,t,n){let r=this.lights.get(e);r&&(r.x===t&&r.y===n||(r.position.set(t,n),this.dirty=!0))}render(){this.destroyed||!this.dirty||(this.renderer.render({container:this.scene,target:this.rt,clear:!0}),this.dirty=!1)}clear(){for(let e of this.lights.values())e.destroy();this.lights.clear(),this.dirty=!0,this.render()}destroy(){if(!this.destroyed){this.destroyed=!0;for(let e of this.lights.values())e.destroy();this.lights.clear(),this.scene.destroy({children:!0}),this.rt.destroy(!0),this.gradientTexture.destroy(!0),this.displaySprite.destroy()}}};function Ta(){let e=Ca*12,t=e*2,n=document.createElement(`canvas`);n.width=t,n.height=t;let r=n.getContext(`2d`),i=r.createRadialGradient(e,e,0,e,e,e);return i.addColorStop(0,`rgba(255,255,255,1)`),i.addColorStop(1,`rgba(255,255,255,0)`),r.fillStyle=i,r.beginPath(),r.arc(e,e,e,0,Math.PI*2),r.fill(),qe.from(n)}var Ea=48,Da=128,Oa={terrain:0,objects:10,animations:20,darkOverlay:30,visuals:40,hover:50,nav:60},ka=new Set([`road`,`constructedWall`,`rampart`]),Aa=class e{app;world;hoverLayer;darkOverlay;lightLayer;lighting;destroyed=!1;canDrag=!1;container;resizeObserver=null;bounceRaf=null;wheelTimeout=null;navOverlay;lastMouseX=0;lastMouseY=0;onHoverTile=null;onClickTile=null;onRightClick=null;constructor(e,t){this.app=e,this.container=t,this.world=new Fe({sortableChildren:!0}),this.app.stage.addChild(this.world),this.lighting=new wa(this.app.renderer),this.darkOverlay=this.lighting.displaySprite,this.darkOverlay.label=`darkOverlay`,this.darkOverlay.zIndex=Oa.darkOverlay,this.world.addChild(this.darkOverlay),this.lightLayer=new Fe,this.lightLayer.label=`lightLayer`,this.hoverLayer=new xa(e.ticker),this.hoverLayer.container.zIndex=Oa.hover,this.world.addChild(this.hoverLayer.container),this.navOverlay=new Fe,this.navOverlay.zIndex=Oa.nav,this.world.addChild(this.navOverlay),this.setupCamera(),this.centerView(),this.clampView(),this.setupResizeObserver()}bringNavOverlayToTop(){this.hoverLayer.container.parent===this.world&&(this.world.removeChild(this.hoverLayer.container),this.world.addChild(this.hoverLayer.container)),this.navOverlay.parent===this.world&&(this.world.removeChild(this.navOverlay),this.world.addChild(this.navOverlay))}static async create(t){let n=new He;return await n.init({background:`#0d1117`,antialias:!0,resolution:window.devicePixelRatio||1,autoDensity:!0}),t.appendChild(n.canvas),new e(n,t)}getMinScale(){let e=this.container.clientWidth,t=this.container.clientHeight;return Math.min(e,t)/664}clampView(e=!1){let t=600*this.world.scale.x,n=this.container.clientWidth,r=this.container.clientHeight,i=e?Da:0;if(t<=n){let r=n/2-t/2;e?this.world.x=Math.min(r+Da,Math.max(r-Da,this.world.x)):this.world.x=r}else{let e=n-t-Ea-i,r=Ea+i;this.world.x=Math.min(r,Math.max(e,this.world.x))}if(t<=r){let n=r/2-t/2;e?this.world.y=Math.min(n+Da,Math.max(n-Da,this.world.y)):this.world.y=n}else{let e=r-t-Ea-i,n=Ea+i;this.world.y=Math.min(n,Math.max(e,this.world.y))}this.canDrag=!0}getTargetPosition(){let e=600*this.world.scale.x,t=this.container.clientWidth,n=this.container.clientHeight,r=null,i=null;if(e<=t)r=t/2-e/2;else{let n=t-e-Ea,i=Ea;this.world.x<n?r=n:this.world.x>i&&(r=i)}if(e<=n)i=n/2-e/2;else{let t=n-e-Ea,r=Ea;this.world.y<t?i=t:this.world.y>r&&(i=r)}return r===null&&i===null?null:{x:r??this.world.x,y:i??this.world.y}}springBack(){let e=this.getTargetPosition(),t=this.getTargetScale();if(!e&&t===null)return;let n=this.world.x,r=this.world.y,i=this.world.scale.x,a=performance.now(),o=this.container.clientWidth/2,s=this.container.clientHeight/2,c=(o-n)/i,l=(s-r)/i,u=d=>{let f=d-a,p=Math.min(1,f/300),m=1-(1-p)**3;if(t!==null){let e=i+(t-i)*m;this.world.scale.set(e),this.world.x=o-c*e,this.world.y=s-l*e}e&&t===null&&(this.world.x=n+(e.x-n)*m,this.world.y=r+(e.y-r)*m),p<1?this.bounceRaf=requestAnimationFrame(u):(this.bounceRaf=null,this.clampView())};this.cancelBounce(),this.bounceRaf=requestAnimationFrame(u)}cancelBounce(){this.bounceRaf!==null&&(cancelAnimationFrame(this.bounceRaf),this.bounceRaf=null)}cancelWheelTimeout(){this.wheelTimeout!==null&&(clearTimeout(this.wheelTimeout),this.wheelTimeout=null)}getTargetScale(){let e=this.getMinScale();return this.world.scale.x<e?e:this.world.scale.x>5?5:null}setupCamera(){let e=!1,t=new Le(0,0),n=new Le(0,0),r=this.app.canvas;r.style.touchAction=`none`,r.style.userSelect=`none`;let i=new Map,a=!1,o=0,s=0,c=0,l=0;r.addEventListener(`pointerdown`,u=>{if(this.cancelBounce(),this.cancelWheelTimeout(),i.set(u.pointerId,{x:u.clientX,y:u.clientY}),r.setPointerCapture(u.pointerId),i.size>=2){e=!1,a=!0;let t=[...i.values()],n=r.getBoundingClientRect(),u=(t[0].x+t[1].x)/2-n.left,d=(t[0].y+t[1].y)/2-n.top;c=Math.hypot(t[1].x-t[0].x,t[1].y-t[0].y),l=this.world.scale.x,o=(u-this.world.x)/l,s=(d-this.world.y)/l}else a=!1,e=this.canDrag,t=new Le(u.clientX,u.clientY),n=new Le(u.clientX,u.clientY)}),r.addEventListener(`pointermove`,n=>{let u=r.getBoundingClientRect();if(this.lastMouseX=n.clientX-u.left,this.lastMouseY=n.clientY-u.top,i.has(n.pointerId)&&i.set(n.pointerId,{x:n.clientX,y:n.clientY}),a&&i.size===2){let e=[...i.values()],t=(e[0].x+e[1].x)/2-u.left,n=(e[0].y+e[1].y)/2-u.top,r=Math.hypot(e[1].x-e[0].x,e[1].y-e[0].y),a=this.getMinScale(),d=.6,f=r/c*l;f<a&&(f=a+(f-a)*d),f>5&&(f=5+(f-5)*d),this.cancelBounce(),this.world.scale.set(f),this.world.x=t-o*f,this.world.y=n-s*f,this.clampView(!0);return}if(!a){let e=this.screenToTile(this.lastMouseX,this.lastMouseY);this.hoverLayer.setHoveredTile(e?.tx??null,e?.ty??null),this.onHoverTile?.(e?.tx??null,e?.ty??null)}if(!e||!this.canDrag)return;let d=n.clientX-t.x,f=n.clientY-t.y;this.world.x+=d,this.world.y+=f,t=new Le(n.clientX,n.clientY),this.clampView(!0)});let u=t=>{if(r.releasePointerCapture(t.pointerId),i.delete(t.pointerId),a){i.size<2&&(a=!1,e=!1,this.springBack());return}e=!1;let o=t.clientX-n.x,s=t.clientY-n.y;if(Math.sqrt(o*o+s*s)<4){let e=r.getBoundingClientRect(),n=t.clientX-e.left,i=t.clientY-e.top,a=this.screenToTile(n,i);a&&this.onClickTile?.(a.tx,a.ty,t.ctrlKey||t.metaKey)}this.springBack()};r.addEventListener(`pointerup`,u),r.addEventListener(`pointercancel`,u),r.addEventListener(`contextmenu`,e=>{e.preventDefault(),e.button===2&&this.onRightClick?.()}),r.addEventListener(`pointerleave`,()=>{this.hoverLayer.setHoveredTile(null,null),this.onHoverTile?.(null,null)}),r.addEventListener(`wheel`,e=>{e.preventDefault();let t=e.deltaY>0?.9:1.1,n=this.getMinScale(),i=this.world.scale.x*t,a=.6;i<n&&(i=n+(i-n)*a),i>5&&(i=5+(i-5)*a);let o=r.getBoundingClientRect(),s=e.clientX-o.left,c=e.clientY-o.top;if(this.cancelBounce(),i<n){let e=this.container.clientWidth/2,t=this.container.clientHeight/2,n=(e-this.world.x)/this.world.scale.x,r=(t-this.world.y)/this.world.scale.y;this.world.scale.set(i),this.world.x=e-n*i,this.world.y=t-r*i}else{let e=(s-this.world.x)/this.world.scale.x,t=(c-this.world.y)/this.world.scale.y;this.world.scale.set(i),this.world.x=s-e*i,this.world.y=c-t*i}this.clampView(),this.cancelWheelTimeout(),this.wheelTimeout=window.setTimeout(()=>{this.wheelTimeout=null,this.springBack()},80)},{passive:!1})}setTileHandlers(e,t,n){this.onHoverTile=e,this.onClickTile=t,this.onRightClick=n??null}screenToTile(e,t){let n=(e-this.world.x)/this.world.scale.x,r=(t-this.world.y)/this.world.scale.y,i=Math.floor(n/12),a=Math.floor(r/12);return i<0||i>=50||a<0||a>=50?null:{tx:i,ty:a}}centerView(){let e=this.container.clientWidth/2,t=this.container.clientHeight/2,n=this.world.scale.x;this.world.x=e-600*n/2,this.world.y=t-600*n/2}resetView(){this.cancelBounce(),this.cancelWheelTimeout(),this.world.scale.set(this.getMinScale()),this.centerView(),this.clampView()}setupResizeObserver(){let{width:e,height:t}=this.container.getBoundingClientRect();this.app.renderer.resize(e,t),this.resizeObserver=new ResizeObserver(e=>{let{width:t,height:n}=e[0].contentRect;this.app.renderer.resize(t,n),this.clampView()}),this.resizeObserver.observe(this.container)}setupNavigationZones(e){this.navOverlay.removeChildren();let t=(e,t,n,r,i,a)=>{if(!a)return;let o=new V;o.x=e,o.y=t,o.hitArea=new Ye(0,0,n,r),o.fill({color:16777215,alpha:.12}),o.poly(i),o.fill(),o.eventMode=`static`,o.cursor=`pointer`,o.alpha=1,o.on(`pointerover`,()=>{o.clear(),o.fill({color:16777215,alpha:.06}),o.rect(0,0,n,r),o.fill(),o.fill({color:16777215,alpha:.35}),o.poly(i),o.fill()}),o.on(`pointerout`,()=>{o.clear(),o.fill({color:16777215,alpha:.12}),o.poly(i),o.fill()}),o.on(`pointerdown`,a),this.navOverlay.addChild(o)};t(-48,0,Ea,600,[18,300,Ea-6,282,Ea-6,318],e.west),t(600,0,Ea,600,[Ea-18,300,6,282,6,318],e.east),t(0,-48,600,Ea,[300,18,282,Ea-6,318,Ea-6],e.north),t(0,600,600,Ea,[300,Ea-18,282,6,318,6],e.south);for(let e of this.navOverlay.children){let t=e,n=t.hitArea,r=this.world.x+t.x*this.world.scale.x,i=this.world.y+t.y*this.world.scale.y,a=n.width*this.world.scale.x,o=n.height*this.world.scale.y;this.lastMouseX>=r&&this.lastMouseX<=r+a&&this.lastMouseY>=i&&this.lastMouseY<=i+o&&t.emit(`pointerover`,new Event(`pointerover`))}}clear(){for(let e=this.world.children.length-1;e>=0;e--){let t=this.world.children[e];t!==this.navOverlay&&t!==this.hoverLayer.container&&t!==this.darkOverlay&&this.world.removeChild(t)}this.navOverlay.removeChildren(),this.hoverLayer.clearSelection(),this.hoverLayer.setHoveredTile(null,null),this.clearLighting(),this.world.scale.set(1),this.cancelBounce(),this.cancelWheelTimeout(),this.clampView()}clearLighting(){this.lighting.clear()}updateLighting(e){let t=[];for(let n in e){let r=e[n];r&&(typeof r.type==`string`&&ka.has(r.type)||typeof r.x!=`number`||typeof r.y!=`number`||t.push({id:n,cx:(r.x+.5)*12,cy:(r.y+.5)*12}))}this.lighting.setLights(t),this.lighting.render()}destroy(){this.destroyed||(this.destroyed=!0,this.cancelBounce(),this.cancelWheelTimeout(),this.resizeObserver?.disconnect(),this.resizeObserver=null,this.hoverLayer.destroy(),this.lighting.destroy(),this.app.destroy(!0,{children:!0}))}};function ja(e){return e}function Ma(e){return{floorColor:e?.floorColor??3421243,swampFillColor:e?.swampFillColor??2632986,swampBorderColor:e?.swampBorderColor??2500383,swampBorderWidth:e?.swampBorderWidth??.2,swampGlowColor:e?.swampGlowColor??2771488,wallFillColor:e?.wallFillColor??1579032,wallBorderColor:e?.wallBorderColor??0,wallBorderWidth:e?.wallBorderWidth??.05,wallNoiseColor:e?.wallNoiseColor??2631720}}function Na(e,t,n,r){let i=!1;for(let r=0;r<50;r++)for(let a=0;a<50;a++){let o=t.get(a,r)===n,s=r>0&&t.get(a,r-1)===n,c=r<49&&t.get(a,r+1)===n,l=a>0&&t.get(a-1,r)===n,u=a<49&&t.get(a+1,r)===n,d=a*12+6,f=r*12+6;o?(i=!0,!s&&!l&&r>0&&a>0?(e.moveTo(d,r*12),e.arc(d,f,6,-Math.PI/2,Math.PI,!0),e.lineTo(d,f),e.closePath()):e.rect(a*12,r*12,6,6)):s&&l&&t.get(a-1,r-1)===n&&(i=!0,e.moveTo(d,r*12),e.lineTo(a*12,r*12),e.lineTo(a*12,f),e.arc(d,f,6,Math.PI,-Math.PI/2,!1),e.closePath()),o?!s&&!u&&r>0&&a<49?(e.moveTo(d,r*12),e.arc(d,f,6,-Math.PI/2,0,!1),e.lineTo(d,f),e.closePath()):e.rect(d,r*12,6,6):s&&u&&t.get(a+1,r-1)===n&&(i=!0,e.moveTo(d,r*12),e.lineTo(a*12+12,r*12),e.lineTo(a*12+12,f),e.arc(d,f,6,0,-Math.PI/2,!0),e.closePath()),o?!c&&!l&&r<49&&a>0?(e.moveTo(a*12,f),e.arc(d,f,6,Math.PI,Math.PI/2,!0),e.lineTo(d,f),e.closePath()):e.rect(a*12,f,6,6):c&&l&&t.get(a-1,r+1)===n&&(i=!0,e.moveTo(a*12,f),e.lineTo(a*12,r*12+12),e.lineTo(d,r*12+12),e.arc(d,f,6,Math.PI/2,Math.PI,!1),e.closePath()),o?!c&&!u&&r<49&&a<49?(e.moveTo(d,r*12+12),e.arc(d,f,6,Math.PI/2,0,!0),e.lineTo(d,f),e.closePath()):e.rect(d,f,6,6):c&&u&&t.get(a+1,r+1)===n&&(i=!0,e.moveTo(d,r*12+12),e.lineTo(a*12+12,r*12+12),e.lineTo(a*12+12,f),e.arc(d,f,6,0,Math.PI/2,!1),e.closePath())}i&&r(e)}function Pa(e,t){let n=Ft,r=(t,r,i)=>{let a=t*12+12/2,o=r*12+12/2,s=12*.3;i===`up`?(e.moveTo(a,o-s),e.lineTo(a+s,o+s),e.lineTo(a-s,o+s)):i===`down`?(e.moveTo(a,o+s),e.lineTo(a+s,o-s),e.lineTo(a-s,o-s)):i===`left`?(e.moveTo(a-s,o),e.lineTo(a+s,o-s),e.lineTo(a+s,o+s)):i===`right`&&(e.moveTo(a+s,o),e.lineTo(a-s,o-s),e.lineTo(a-s,o+s)),e.fill(n)};for(let e=0;e<50;e++)t.get(e,0)!==Ze.Wall&&r(e,0,`up`),t.get(e,49)!==Ze.Wall&&r(e,49,`down`);for(let e=0;e<50;e++)t.get(0,e)!==Ze.Wall&&r(0,e,`left`),t.get(49,e)!==Ze.Wall&&r(49,e,`right`)}function Fa(e){let t=new V;return t.rect(0,0,600,600),t.fill(e.floorColor),t}function Ia(e,t){let n=new V,r={color:t.swampBorderColor,width:12*t.swampBorderWidth,alignment:0,cap:`round`,join:`round`};return Na(n,e,Ze.Swamp,e=>e.stroke(r)),Na(n,e,Ze.Swamp,e=>e.fill(t.swampFillColor)),n}function La(e,t){let n=new V,r={color:t.wallBorderColor,width:12*t.wallBorderWidth,alignment:0,cap:`round`,join:`round`};return Na(n,e,Ze.Wall,e=>e.stroke(r)),Na(n,e,Ze.Wall,e=>e.fill(t.wallFillColor)),Pa(n,e),n.rect(0,0,600,600),n.stroke({width:1,color:xt}),n}function Ra(e,t){let n=new V;return n.label=`swampGlow`,Na(n,e,Ze.Swamp,e=>e.fill(t.swampGlowColor)),n.alpha=.45,n.filters=[new ze({strength:5,quality:3})],n}function za(e,t,n){let r=new V;Na(r,e,Ze.Wall,e=>e.fill(n.wallNoiseColor)),r.alpha=.5,r.filters=[new Ke({noise:.12,seed:1})],r.filterArea=new Ye(0,0,600,600);let i=t.generateTexture({target:r,frame:r.filterArea});r.filters=null,r.destroy();let a=new Ve(i);return a.label=`wallNoise`,a}function Ba(e,t,n){let r=Ma(n),i=new Fe,a=za(e,t,r),o=i.destroy.bind(i);if(i.destroy=e=>{a.destroyed||(a.removeFromParent(),a.destroy({texture:!0,textureSource:!0})),o(e)},i.addChild(Fa(r)),i.addChild(Ia(e,r)),i.addChild(La(e,r)),i.addChild(Ra(e,r)),i.addChild(a),n?.wallTextureUrl&&(a.visible=!1),n?.floorTextureUrl){let{floorTextureUrl:e,floorTextureTint:t=16777215,floorTextureAlpha:r=1,floorTextureTileScale:a=1}=n;Be.load(ja(e)).then(e=>{if(i.destroyed)return;let n=new Re({texture:e,width:600,height:600});n.tint=t,n.alpha=r,n.tileScale.set(a),i.addChildAt(n,2)}).catch(()=>{})}if(n?.wallTextureUrl){let{wallTextureUrl:t,wallTextureTint:r=16777215,wallTextureAlpha:a=1,wallTextureTileScale:o=1}=n;Be.load(ja(t)).then(t=>{if(i.destroyed)return;let n=new Re({texture:t,width:600,height:600});n.tint=r,n.alpha=a,n.tileScale.set(o);let s=new V;Na(s,e,Ze.Wall,e=>e.fill(16777215)),i.addChild(s),n.mask=s,i.addChild(n)}).catch(()=>{})}return i}function Va(e,t){e.getChildByLabel(`swampGlow`).visible=t,e.getChildByLabel(`wallNoise`).visible=t}function Ha(e,t){let n=parseInt(e.replace(`#`,``),16),r=Math.min(255,Math.round((n>>16&255)*t)),i=Math.min(255,Math.round((n>>8&255)*t)),a=Math.min(255,Math.round((n&255)*t));return r<<16|i<<8|a}function Ua(e){return parseInt(e.replace(`#`,``),16)}function Wa(e,t){if(e==null)return t;let n=Number(e);return isNaN(n)?t:n}function Ga(e,t,n){let r=n.terrain??{};e.floorBackgroundColor&&(r.floorColor=Ha(e.floorBackgroundColor,Wa(e.floorBackgroundBrightness,1))),e.swampColor&&(r.swampFillColor=Ua(e.swampColor)),e.swampStrokeColor&&(r.swampBorderColor=Ua(e.swampStrokeColor)),e.swampStrokeWidth!=null&&(r.swampBorderWidth=Wa(e.swampStrokeWidth,50)/250),e.roadsColor&&(n.roadColor=Ha(e.roadsColor,Wa(e.roadsBrightness,1))),t.floorForegroundUrl&&(r.floorTextureUrl=t.floorForegroundUrl,e.floorForegroundColor&&(r.floorTextureTint=Ha(e.floorForegroundColor,Wa(e.floorForegroundBrightness,1))),r.floorTextureAlpha=Wa(e.floorForegroundAlpha,1),r.floorTextureTileScale=Wa(e.tileScale??t.tileScale,1)),n.terrain=r}function Ka(e,t,n){let r=n.terrain??{};e.backgroundColor&&(r.wallFillColor=Ha(e.backgroundColor,Wa(e.backgroundBrightness,1))),e.strokeColor&&(r.wallBorderColor=Ha(e.strokeColor,Wa(e.strokeBrightness,1))),e.strokeWidth!=null&&(r.wallBorderWidth=Wa(e.strokeWidth,10)/250),t.foregroundUrl&&(r.wallTextureUrl=t.foregroundUrl,e.foregroundColor&&(r.wallTextureTint=Ha(e.foregroundColor,Wa(e.foregroundBrightness,1))),r.wallTextureAlpha=Wa(e.foregroundAlpha,1),r.wallTextureTileScale=Wa(e.tileScale??t.tileScale,1)),n.terrain=r}function qa(e){let t={};for(let n of e.decorations){let e=n.decoration.type;e===`floorLandscape`?Ga(n.active,n.decoration,t):e===`wallLandscape`&&Ka(n.active,n.decoration,t)}return t}var Ja={1:200,2:45e3,3:135e3,4:405e3,5:1215e3,6:3645e3,7:10935e3},Ya={1:2e4,2:1e4,3:2e4,4:4e4,5:8e4,6:12e4,7:15e4,8:2e5},Xa=new Vt,Za=12*.44,Qa=12*.28,$a=50,eo=32,to=12/eo,no=12/2-12*.44,ro=2,io=12*1.2/eo,ao=5,oo=2.5,so=2,co=2.6,lo=2,uo=12,fo=15790320,po=1710618,mo=12*.42,ho=12*.3,go=1,_o={H:2236962,O:2236962},vo=.2,yo=12*.42,bo=32,xo=9/bo,So=8,Co=1600,wo=16776428,To=4473924,Eo=1.7999999999999998;function Do(e,t){return t<=0?So:So*Math.max(0,Math.min(1,e/t))}function Oo(e){let t=e%Co/Co;return .5-.5*Math.cos(t*Math.PI*2)}function ko(e){return Ro(ht,wo,Oo(e))}function Ao(e,t,n){e.clear();let r=t<=0,i=So/2,a=So*.25;if(e.roundRect(6-i,6-i,So,So,a),e.fill(H),r)e.roundRect(6-i,6-i,So,So,a),e.stroke({width:Eo,color:Ro(H,To,Oo(n))});else{let r=t/2;e.roundRect(6-r,6-r,t,t,t*.25),e.fill(ko(n))}}function jo(e,t){let n=e.__sourceGraphics;n&&(e.__sourceSize=t,Ao(n,t,performance.now()))}function Mo(e){return{energy:typeof e.energy==`number`?e.energy:0,capacity:typeof e.energyCapacity==`number`?e.energyCapacity:3e3}}var No=12*.3,Po=1.44,Fo=No-Po/2,Io=12*.42,Lo=1500;function Ro(e,t,n){let r=e>>16&255,i=e>>8&255,a=e&255,o=t>>16&255,s=t>>8&255,c=t&255,l=Math.round(r+(o-r)*n),u=Math.round(i+(s-i)*n),d=Math.round(a+(c-a)*n);return l<<16|u<<8|d}function zo(e,t){e.clear(),e.circle(12/2,12/2,No),e.stroke({width:Po,color:t,alpha:.95})}var Bo=12*.975,Vo=2.16,Ho=Math.PI/3,Uo=1;function Wo(e,t){e.clear();for(let n=0;n<3;n++){let r=n*(2*Math.PI/3)+Ho/2,i=r+2*Math.PI/3-Ho;e.arc(0,0,Bo,r,i),e.stroke({width:Vo,color:t,cap:`round`})}}function Go(e,t,n,r,i,a,o){if(e.clear(),a<=0||i<=0)return;let s=Math.min(1,i/a);if(s>=1){e.circle(t,n,r),e.fill({color:o,alpha:.55});return}let c=-Math.PI/2,l=c+s*Math.PI*2;e.moveTo(t,n),e.lineTo(t+r*Math.cos(c),n+r*Math.sin(c)),e.arc(t,n,r,c,l),e.closePath(),e.fill({color:o,alpha:.55})}var Ko=12*.5,qo=1.2000000000000002;function Jo(e,t){let n=e.spawning;if(!n||typeof n!=`object`)return null;let r=typeof n.needTime==`number`&&n.needTime>0?n.needTime:null;return r===null?null:typeof n.remainingTime==`number`?{needTime:r,endTime:t+n.remainingTime}:typeof n.spawnTime==`number`?{needTime:r,endTime:n.spawnTime>t?n.spawnTime:n.spawnTime+r}:{needTime:r,endTime:t+r}}function Yo(e){let t=e.spawning;return!t||typeof t!=`object`?null:`${String(t.name)}:${String(t.needTime)}:${String(t.remainingTime)}:${String(t.spawnTime)}`}function Xo(e,t,n){return Math.max(0,Math.min(1,1-(t-n)/e))}function Zo(e,t){if(e.clear(),t===null||(e.circle(6,6,Ko),e.stroke({width:qo,color:16777215,alpha:.12}),t<=0))return;let n=-Math.PI/2,r=n+Math.min(1,t)*Math.PI*2;e.moveTo(6+Ko*Math.cos(n),6+Ko*Math.sin(n)),e.arc(6,6,Ko,n,r),e.stroke({width:qo,color:ht,alpha:.95,cap:`round`})}function Qo(e,t,n){return n.flatMap(([n,r])=>[e+n*12,t+r*12])}function $o(e,t,n,r){n-t<.001||(e.moveTo(Za*Math.cos(t),Za*Math.sin(t)),e.arc(0,0,Za,t,n),e.lineTo(Qa*Math.cos(n),Qa*Math.sin(n)),e.arc(0,0,Qa,n,t,!0),e.closePath(),e.fill(r))}var es=[[0,-.3],[.22,.05],[.15,.2],[-.15,.2],[-.22,.05]],ts=12*.073,ns=null;function rs(){if(ns)return ns;let e=Qo(12/2,12/2,es),t=new Ue({type:`linear`,start:{x:.5,y:0},end:{x:.5,y:1},colorStops:[{offset:0,color:Kt},{offset:1,color:an}]});return ns=new Ge().poly(e).fill(t).poly(e).stroke({width:ts,color:sn,alignment:.5,join:`miter`,miterLimit:6}),ns}function is(e){e.addChild(new V({context:rs()}))}function as(e){let t=0;if(typeof e.storeCapacity==`number`)t=e.storeCapacity;else{let n=e.body;n&&(t=n.filter(e=>e.type===`carry`).length*50)}if(t===0)return{used:0,capacity:0};let n=0;if(e.store&&typeof e.store==`object`){let t=e.store;for(let e in t){let r=t[e];typeof r==`number`&&(n+=r)}}else typeof e.energy==`number`&&(n=e.energy);return{used:n,capacity:t}}function os(e,t){return t<=0||e<=0?0:Qa*.8*Math.min(1,e/t)}function ss(e,t){let n=e.__creepFillGraphics;n&&(n.clear(),t>0&&(n.circle(0,0,t),n.fill(Cn)))}function cs(e){return Mn[e]??13226457}function ls(e){let t=50;typeof e.energyCapacity==`number`?t=e.energyCapacity:typeof e.storeCapacity==`number`?t=e.storeCapacity:e.storeCapacityResource&&typeof e.storeCapacityResource==`object`&&(t=e.storeCapacityResource.energy??50);let n=0;return typeof e.energy==`number`?n=e.energy:e.store&&typeof e.store==`object`&&(n=e.store.energy??0),{energy:n,capacity:t}}function us(e){return e>=200?1.15:e>=100?.85:.7}function ds(e,t){return t<=0||e<=0?0:ho*us(t)*Math.min(1,e/t)}var fs=12*.25,ps=12*.3;function ms(e,t){return t<=0||e<=0?0:Math.min(1,e/t)}function hs(e,t){let n=e.__linkFillGraphics;if(!n||(n.clear(),t<=0))return;let r=fs*t,i=ps*t;n.poly([6,6-i,6+r,6,6,6+i,6-r,6]),n.fill(ht)}function gs(e,t,n,r){let i=us(n),a=new V;a.circle(6,6,mo*i),a.fill(H),a.circle(6,6,mo*i),a.stroke({width:go*i,color:r}),a.circle(6,6,ho*i),a.fill(At),e.addChild(a);let o=new V,s=ds(t,n);s>0&&(o.circle(6,6,s),o.fill(ht)),e.addChild(o),e.__fillGraphics=o}function _s(e,t){let n=e.__fillGraphics;n&&(n.clear(),t>0&&(n.circle(6,6,t),n.fill(ht)))}var vs=-12*.4,ys=-12*.3,bs=12*.8,xs=12*.6,Ss=.4,Cs=.3,ws=Math.PI/2,Ts=Math.PI/2;function Es(e,t,n){let r=(t-e)%(Math.PI*2);return r>Math.PI?r-=Math.PI*2:r<-Math.PI&&(r+=Math.PI*2),e+r*n}var Ds=12*.45,Os=12*.6,ks=12*.275,As=12*.2,js=.5;function Ms(e,t){return t<=0||e<=0?0:Math.min(1,e/t)}function Ns(e,t){let n=e.__towerFillGraphics;if(!n||(n.clear(),t<=0))return;let r=e.__towerFillRect;if(r){let e=r.heightMax*t,i=r.yMin+r.heightMax-e,a=Math.min(r.rx,r.width/2,e/2);n.roundRect(r.x,i,r.width,e,a),n.fill(ht);return}let i=.5,a=xs*t;n.rect(vs+i,ys+xs-a+i,bs-i*2,a-i*2),n.fill(ht)}var Ps=0,Fs=-12*.1,Is=12,Ls=12*1.2,Rs=[`energy`,`power`];function zs(e){let t=typeof e.storeCapacity==`number`?e.storeCapacity:0;if(t===0||!e.store||typeof e.store!=`object`)return{bands:[],used:0,capacity:0,dominant:null};let n=e.store,r=[],i=null,a=0;for(let e in n){let t=n[e];typeof t==`number`&&t>0&&(r.push([e,t]),t>a&&(a=t,i=e))}r.sort(([e],[t])=>{let n=Rs.indexOf(e),r=Rs.indexOf(t);return(n===-1?99:n)-(r===-1?99:r)||(e<t?-1:+(e>t))});let o=0;return{bands:r.map(([e,t])=>(o+=t,{color:Pn[e]??7105644,amount:t})),used:o,capacity:t,dominant:i}}function Bs(e,t,n,r,i,a,o,s=0){if(i<=0||o<=0)return;let c=t+s,l=r-s*2,u=i-s*2,d=n-s;if(u<=0)return;if(!a||a.length===0){e.rect(c,d-u,l,u),e.fill(ht);return}let f=d;for(let t of a){let n=u*(t.amount/o);n>0&&(e.rect(c,f-n,l,n),e.fill(t.color)),f-=n}}function Vs(e,t){if(!e||e.length!==t.length)return!1;for(let n=0;n<t.length;n++)if(e[n].color!==t[n].color||e[n].amount!==t[n].amount)return!1;return!0}function Hs(e,t){return t<=0||e<=0?0:Os*Math.min(1,e/t)}function Us(e,t){let n=e.__containerFillG;n&&(n.clear(),Bs(n,ks,As+Os,Ds,t,e.__containerBands,e.__containerUsed??0,js))}function Ws(e,t){return t<=0||e<=0?0:Ls*Math.min(1,e/t)}function Gs(e,t){let n=e.__storageFillG;n&&(n.clear(),Bs(n,Ps,Fs+Ls,Is,t,e.__storageBands,e.__storageUsed??0))}function Ks(e){return Pn[e]??7105644}function W(e,t){return t<=0||e<=0?0:Math.min(1,e/t)}var qs=12*.35;function Js(e,t){let n=e.__terminalFillG;if(n&&(n.clear(),t>0)){let r=qs*t;n.rect(6-r,6-r,r*2,r*2),n.fill(e.__terminalFillColor??16771195)}}var Ys=16777215,Xs=.55,Zs=[[[0,-.65],[-.45,-.45],[.45,-.45]],[[.65,0],[.45,-.45],[.45,.45]],[[0,.65],[.45,.45],[-.45,.45]],[[-.65,0],[-.45,.45],[-.45,-.45]]];function Qs(e,t,n){for(let r of Zs)e.poly(Qo(t,n,r)),e.fill({color:Ys,alpha:Xs})}var $s=12*.025,ec=12*.36,tc=12*.05,nc=12*.8,rc=12*.9,ic=12*.25,ac=2e3,oc=3e3,sc=16777215,cc=12*.55,lc=12*.16,uc=12*.07,dc=.22,fc=.5;function pc(e,t,n){e.circle(t,n,cc),e.stroke({width:lc,color:sc,alpha:dc}),e.circle(t,n,cc),e.stroke({width:uc,color:sc,alpha:fc})}function mc(e){return typeof e.cooldownTime==`number`?e.cooldownTime:0}function hc(e){let t=e.store&&typeof e.store==`object`?e.store:{},n=e.storeCapacityResource&&typeof e.storeCapacityResource==`object`?e.storeCapacityResource:{},r=typeof t.energy==`number`?t.energy:0,i=typeof n.energy==`number`?n.energy:ac,a=null,o=0;for(let e in t){if(e===`energy`)continue;let n=t[e];typeof n==`number`&&n>o&&(o=n,a=e)}let s=a&&typeof n[a]==`number`?n[a]:oc;return{energy:r,energyCap:i,mineralType:a,mineral:o,mineralCap:s}}function gc(e,t,n){let r=e.__labMineralG;r&&(r.clear(),n>0)&&(r.circle(6,6-$s,ec*n),r.fill(e.__labMineralColor??7105644));let i=e.__labEnergyG;if(i&&(i.clear(),t>0)){let e=.5;i.rect(tc+e,nc+e,(rc-e*2)*t,ic-e*2),i.fill(ht)}}var _c=3e5,vc=5e3,yc=-.8,bc=.2,xc=.4,Sc=-.34,Cc=.34,wc=.27,Tc=.45;function Ec(e){let t=e.store&&typeof e.store==`object`?e.store:{},n=e.storeCapacityResource&&typeof e.storeCapacityResource==`object`?e.storeCapacityResource:{};return{energy:typeof t.energy==`number`?t.energy:0,energyCap:typeof n.energy==`number`?n.energy:typeof e.storeCapacity==`number`?e.storeCapacity:_c,ghodium:typeof t.G==`number`?t.G:0,ghodiumCap:typeof n.G==`number`?n.G:vc}}function Dc(e,t,n){let r=e.__nukerEnergyG;if(r&&(r.clear(),t>0)){let e=bc-yc,n=bc-e*t,i=xc*(n-yc)/e;r.poly([6+i*12,6+n*12,6+xc*12,6+bc*12,6-xc*12,6+bc*12,6-i*12,6+n*12]),r.fill(ht)}let i=e.__nukerGhodiumG;if(i&&(i.clear(),n>0)){let e=6+Sc*12,t=6+wc*12,r=(Cc-Sc)*12,a=(Tc-wc)*12;i.rect(e,t,r*n,a),i.fill(Ks(`G`))}}var Oc=100,kc=12*.51,Ac=12*.12;function jc(e){let t=e.store&&typeof e.store==`object`?e.store:{},n=e.storeCapacityResource&&typeof e.storeCapacityResource==`object`?e.storeCapacityResource:{};return{power:typeof t.power==`number`?t.power:0,powerCap:typeof n.power==`number`?n.power:Oc}}function Mc(e,t){if(e.clear(),!(t<=0)){if(t>=1)e.circle(6,6,kc);else{let n=-Math.PI/2,r=n+t*Math.PI*2;e.moveTo(6+kc*Math.cos(n),6+kc*Math.sin(n)),e.arc(6,6,kc,n,r)}e.stroke({width:Ac,color:ct})}}function Nc(e,t){e.__powerSpawnPowerG&&Mc(e.__powerSpawnPowerG,t)}var Pc=5e3,Fc=12/100,Ic=1.2000000000000002,Lc=3346705,Rc=6710886,zc=2e3,Bc=15998771,Vc=13832226,Hc=9240589,Uc=[-45,-75,45,-75,75,-45,75,45,45,75,-45,75,-75,45,-75,-45];function Wc(e){if(typeof e.power==`number`)return e.power;let t=e.store&&typeof e.store==`object`?e.store:{};return typeof t.power==`number`?t.power:0}function Gc(e){return Math.sqrt(Math.max(0,e)/Pc*3e3/Math.PI)*1.5*Fc}function Kc(e){let t=e%zc/zc;return t<1/3?Ro(Bc,Vc,t*3):t<2/3?Ro(Vc,Hc,(t-1/3)*3):Ro(Hc,Bc,(t-2/3)*3)}function qc(e,t,n){if(e.clear(),t<=0)return;let r=t*(.8+.2*Math.cos(n%zc/zc*2*Math.PI));e.circle(6,6,r),e.fill(Kc(n)),e.circle(6,6,r),e.stroke({width:Ic,color:Hc})}var Jc=8,Yc=12*.4,Xc=12*.5,Zc=.22,Qc=12*.25,$c=12*.32,el=12*.24,tl=12*.28,nl=12*.38,rl=12*.36,il=5,al=16777215;function ol(){let e=2*Math.PI/Jc,t=[];for(let n=0;n<Jc;n++){let r=-Math.PI/2+n*e,i=r-Zc,a=r+Zc,o=r-e+Zc;for(let e=0;e<=3;e++){let n=o+(i-o)*(e/3);t.push(6+Yc*Math.cos(n),6+Yc*Math.sin(n))}for(let e=0;e<=3;e++){let n=i+(a-i)*(e/3);t.push(6+Xc*Math.cos(n),6+Xc*Math.sin(n))}}return t}var sl=ol();function cl(e){return typeof e.cooldown==`number`&&e.cooldown>0}function ll(e,t){e.clear(),e.poly(sl),e.fill(H),e.poly(sl),e.stroke({width:12*.06,color:t})}function ul(e,t){e.clear();let n=.14,r=2*Math.PI/il-n;for(let i=0;i<il;i++){let a=-Math.PI/2+i*(2*Math.PI/il)+n/2,o=a+r;e.moveTo(6+Qc*Math.cos(a),6+Qc*Math.sin(a)),e.arc(6,6,$c,a,o),e.arc(6,6,Qc,o,a,!0),e.closePath(),e.fill(i<t?At:pt)}}function dl(e,t){return t<=0||e<=0?0:tl*Math.min(1,e/t)}function fl(e,t){let n=e.__factoryFillG;n&&(n.clear(),Bs(n,nl,rl+tl,el,t,e.__factoryBands,e.__factoryUsed??0,.5))}var pl=12*.65,ml=pl,hl=12*.42;function gl(e,t,n,r,i,a,o,s){e.clear();let c=.1,l=2*Math.PI/8-c;for(let u=0;u<8;u++){let d=-Math.PI/2+u*(2*Math.PI/8)+c/2,f=d+l,p=t+i*Math.cos(d),m=n+i*Math.sin(d);if(u<a)e.moveTo(p,m),e.arc(t,n,r,d,f),e.arc(t,n,i,f,d,!0),e.closePath(),e.fill({color:14540253,alpha:.9});else if(u===a&&s>0){if(e.moveTo(p,m),e.arc(t,n,r,d,f),e.arc(t,n,i,f,d,!0),e.closePath(),e.fill({color:1973790,alpha:.85}),o>0){let a=d+l*Math.min(1,o/s);e.moveTo(p,m),e.arc(t,n,r,d,a),e.arc(t,n,i,a,d,!0),e.closePath(),e.fill({color:14540253,alpha:.9})}}else e.moveTo(p,m),e.arc(t,n,r,d,f),e.arc(t,n,i,f,d,!0),e.closePath(),e.fill({color:1973790,alpha:.6})}}function _l(e,t,n,r){let i=e.__ctrlSegSprites;if(i)for(let e=0;e<i.length;e++)e<t?i[e].alpha=1:e===t&&r>0?i[e].alpha=Math.max(.15,n/r):i[e].alpha=.15}function vl(e,t){let n=e.user;return typeof n!=`string`||!t?!1:n!==t}var yl=`2`;function bl(e,t){let n=typeof e.user==`string`?e.user:void 0;return n?n===yl?!0:t?.[n]?.username===`Invader`:!1}function xl(e,t=!0,n,r,i,a,o,s){let c=new Fe,l=new V,u=cs(e.type),d=typeof e.user==`string`?e.user:void 0,f=d!==void 0&&n!==void 0&&d!==n?In:pn;switch(e.type){case`creep`:{if(bl(e,a)){is(c);break}let t=2*Math.PI,r=new Fe;r.position.set(6,6),r.rotation=-Math.PI/2;let o=vl(e,n);if(o){let e=new V;e.circle(0,0,Za+.75),e.stroke({width:1.5,color:In}),r.addChild(e)}let s=new V;s.circle(0,0,Za),s.fill(yn),r.addChild(s);let l=e.body??[],u=0,d=0,f=0,p=[],m={};for(let e of l)e.type===`work`?u++:e.type===`move`?d++:(m[e.type]===void 0&&(p.push(e.type),m[e.type]=0),m[e.type]++,f++);let h=u/$a*t,g=d/$a*t,_=f/$a*t,v=h/2,y=v+_/2,b=Math.PI-g/2,x=Math.PI+g/2,S=t-h/2-_/2,C=t-h/2,w=new V;h>0&&$o(w,-h/2,v,En.work??16770413);let T=v;for(let e of p){let n=(m[e]??0)/$a*t/2;$o(w,T,T+n,En[e]??7829367),T+=n}$o(w,y,b,Jt),g>0&&$o(w,b,x,En.move??11122630),$o(w,x,S,Jt);let E=C;for(let e of p){let n=(m[e]??0)/$a*t/2;$o(w,E-n,E,En[e]??7829367),E-=n}r.addChild(w);let D=new V;D.circle(0,0,Qa),D.fill(kn),r.addChild(D);let O=typeof e.user==`string`?e.user:void 0,k=O?a?.[O]?.badge:void 0;if(k&&i){let e=new Ve;e.anchor.set(.5,.5);let t=Qa*2;e.width=t,e.height=t,e.rotation=Math.PI/2,r.addChild(e),c.__creepBadgeSprite=e,i.getOrCreate(k).then(t=>{e.destroyed||(e.texture=t)}).catch(()=>{})}else if(o){let e=new V;e.circle(0,0,Qa*.82),e.fill({color:In,alpha:.9}),r.addChild(e),c.__creepForeignMark=e}let{used:A,capacity:ee}=as(e),te=os(A,ee),ne=new V;te>0&&(ne.circle(0,0,te),ne.fill(Cn)),r.addChild(ne),c.__creepFillGraphics=ne,c.__creepUsed=A,c.__creepCapacity=ee;let j=(Za+Qa)/2,re=(Za-Qa)*.45,M=new V;M.moveTo(Za,0),M.lineTo(j,-re),M.lineTo(j,re),M.closePath(),M.fill(ln),r.addChild(M),c.addChild(r),c.__bodyContainer=r;break}case`extension`:{let{energy:t,capacity:n}=ls(e);gs(c,t,n,f),c.__extEnergy=t,c.__extCapacity=n;break}case`spawn`:{l.circle(6,6,12*.65),l.fill(H),l.circle(6,6,12*.65),l.stroke({width:12*.1,color:13421772}),l.circle(6,6,12*.4),l.fill(ht),c.sortableChildren=!0;let t=new V;t.zIndex=1;let n=Jo(e,0),r=n?Xo(n.needTime,n.endTime,0):null;Zo(t,r),c.addChild(t);let i=c;i.__spawnRing=t,i.__spawnRatio=r,n&&(i.__spawnNeedTime=n.needTime,i.__spawnEndTime=n.endTime),i.__spawnSig=Yo(e);break}case`powerSpawn`:{l.circle(6,6,12*.65),l.fill(H),l.circle(6,6,12*.65),l.stroke({width:12*.1,color:ct}),l.circle(6,6,12*.4),l.fill(ht),c.sortableChildren=!0;let t=new V;t.zIndex=1;let{power:n,powerCap:r}=jc(e);Mc(t,W(n,r)),c.addChild(t);let i=c;i.__powerSpawnPowerG=t,i.__powerSpawnPower=n,i.__powerSpawnPowerCap=r;break}case`source`:{let{energy:t,capacity:n}=Mo(e),r=Do(t,n),i=new V;Ao(i,r,performance.now()),c.addChild(i),c.__sourceGraphics=i,c.__sourceEnergy=t,c.__sourceCapacity=n,c.__sourceSize=r;break}case`constructionSite`:{let t=typeof e.user==`string`?e.user:void 0,r=t!==void 0&&t===n,i=r?hn:xn,a=r?jn:On,o=r?$t:Zt,s=typeof e.progress==`number`?e.progress:0,l=typeof e.progressTotal==`number`?e.progressTotal:1,u=new V;c.addChild(u),c.__csBuildGlow=u;let d=new V;Go(d,6,6,Fo,s,l,i),c.addChild(d),c.__csFillGraphics=d;let f=new V;zo(f,i),c.addChild(f),c.__csRingGraphics=f,c.__csProgress=s,c.__csProgressTotal=l,c.__csUser=t,c.__csColor=i,c.__csColorDark=a,c.__csColorLight=o;break}case`mineral`:{let t=typeof e.mineralType==`string`?e.mineralType:`?`,n=o?.mineral;if(n&&s){let e=`mineral/${t}`,r=12*n.tileScale,i=(e,t)=>{e.texture=t,e.width=r,e.height=r},a=new Ve;a.anchor.set(.5,.5),a.x=6,a.y=6,c.addChild(a);let l=s.getTexture(o.atlasUrl,e);l?i(a,l):s.getOrLoad(o.atlasUrl).then(t=>{a.destroyed||i(a,t.textures[e]??qe.EMPTY)}).catch(()=>{})}else{let e=Pn[t]??7979263,n=_o[t]??16777215,r=new V;r.circle(6,6,yo),r.fill(e),c.addChild(r);let i=new We({text:t,style:{fontSize:bo,fill:n,fontWeight:`bold`}});i.anchor.set(.5,.5),i.scale.set(xo),i.position.set(6,6),c.addChild(i)}break}case`deposit`:{let t=typeof e.depositType==`string`?e.depositType:void 0,n=o?.deposit;if(t&&n&&s){let e=12*n.tileScale,r=(t,n)=>{t.texture=n,t.width=e,t.height=e},i=nn[t];for(let e of[`deposit/${t}/shape`,`deposit/${t}/fill`]){let t=e.endsWith(`/fill`),n=new Ve;n.anchor.set(.5,.5),n.x=6,n.y=6,i!==void 0&&(n.tint=i),t&&(n.alpha=vo),c.addChild(n);let a=s.getTexture(o.atlasUrl,e);a?r(n,a):s.getOrLoad(o.atlasUrl).then(t=>{n.destroyed||r(n,t.textures[e]??qe.EMPTY)}).catch(()=>{})}break}l.rect(2,2,8,8),l.fill(u),c.addChild(l);break}case`controller`:{let t=typeof e.level==`number`?e.level:0,n=typeof e.progress==`number`?e.progress:0,r=typeof e.progressTotal==`number`?e.progressTotal:0,l=e.reservation,u=typeof e.user==`string`?e.user:typeof l?.user==`string`?l.user:void 0,d=u?a?.[u]?.badge:void 0,f=o?.controller;if(f&&s){let e=12*f.tileScale,i=e/600,a=new Ve;a.anchor.set(.5,.5),a.x=6,a.y=6,a.width=e,a.height=e,c.addChild(a);let l=[];for(let e=0;e<8;e++){let t=new Ve;t.anchor.set(.5,.5),t.x=6,t.y=6,t.scale.set(i),t.rotation=Math.PI/4*e,c.addChild(t),l.push(t)}c.__ctrlSegSprites=l,_l(c,t,n,r);let u=()=>s.getOrLoad(o.atlasUrl),d=s.getTexture(o.atlasUrl,f.backgroundFrame);d?a.texture=d:u().then(e=>{a.destroyed||(a.texture=e.textures[f.backgroundFrame]??qe.EMPTY)}).catch(()=>{});let p=s.getTexture(o.atlasUrl,f.segmentFrame);if(p)for(let e of l)e.texture=p;else u().then(e=>{let t=e.textures[f.segmentFrame]??qe.EMPTY;for(let e of l)e.destroyed||(e.texture=t)}).catch(()=>{})}else{let e=new V,i=[];for(let e=0;e<8;e++){let t=-Math.PI/2+e*Math.PI/4;i.push(6+pl*Math.cos(t),6+pl*Math.sin(t))}e.poly(i),e.fill(2238513),e.poly(i),e.stroke({width:12*.07,color:8027781}),c.addChild(e);let a=new V;gl(a,6,6,ml,hl,t,n,r),c.addChild(a),c.__ctrlSegGraphics=a}c.__ctrlLevel=t,c.__ctrlProgress=n,c.__ctrlProgressTotal=r,c.__ctrlDowngradeTime=typeof e.downgradeTime==`number`?e.downgradeTime:void 0,c.__ctrlUserId=u;let p=new V;if(d?(p.circle(6,6,hl),p.fill(H)):(p.circle(6,6,hl),p.fill(3028031),p.circle(6,6,hl),p.stroke({width:12*.04,color:8027781}),p.circle(6,6,12*.16),p.fill(10133672)),c.addChild(p),d&&i){let e=new Ve;e.anchor.set(.5,.5),e.width=hl*2,e.height=hl*2,e.position.set(6,6);let t=new V;t.circle(6,6,hl),t.fill(16777215),c.addChild(e),e.mask=t,c.addChild(t),i.getOrCreate(d).then(t=>{e.destroyed||(e.texture=t)}).catch(()=>{})}break}case`energy`:l.circle(6,6,12*.2),l.fill(ht);break;case`road`:break;case`constructedWall`:break;case`rampart`:break;case`tower`:{let{energy:t,capacity:n}=ls(e),r=o?.tower;if(r&&s){let e=12*r.tileScale,i=new Ve;i.anchor.set(.5,.5),i.position.set(6,6),i.tint=f,c.addChild(i);let a=new Fe;a.position.set(6,6),c.addChild(a);let l=new Ve;l.anchor.set(.5,.5),a.addChild(l);let u=new V;a.addChild(u),c.__barrelContainer=a,c.__towerFillGraphics=u,c.__towerEnergy=t,c.__towerCapacity=n;let d=a=>{let o=a.orig?.width||a.width,s=o>0?e/o:1;i.scale.set(s),l.scale.set(s),c.__towerFillRect={x:r.fill.x*s,yMin:r.fill.yMin*s,width:r.fill.width*s,heightMax:r.fill.heightMax*s,rx:r.fill.rx*s,ry:r.fill.ry*s},Ns(c,Ms(t,n))},p=s.getTexture(o.atlasUrl,r.ringFrame),m=s.getTexture(o.atlasUrl,r.bodyFrame);p&&m?(i.texture=p,l.texture=m,d(m)):s.getOrLoad(o.atlasUrl).then(e=>{if(i.destroyed||(i.texture=e.textures[r.ringFrame]??qe.EMPTY),!l.destroyed){let t=e.textures[r.bodyFrame]??qe.EMPTY;l.texture=t,c.destroyed||d(t)}}).catch(()=>{});break}let i=new V;i.circle(6,6,12*.6),i.fill(H),i.circle(6,6,12*.6),i.stroke({width:12*.05,color:f}),c.addChild(i);let a=new Fe;a.position.set(6,6);let l=new V;l.rect(vs,ys,bs,xs),l.fill(H),a.addChild(l);let u=new V;a.addChild(u),c.__towerFillGraphics=u,c.__towerEnergy=t,c.__towerCapacity=n,Ns(c,Ms(t,n));let d=new V;d.rect(vs,ys,bs,xs),d.stroke({width:1,color:pt}),a.addChild(d);let p=new V;p.rect(-12*.2,-12*.9,12*.4,12*.5),p.fill(At),p.rect(-12*.2,-12*.9,12*.4,12*.5),p.stroke({width:12*.07,color:H}),a.addChild(p),c.addChild(a),c.__barrelContainer=a;break}case`storage`:{let t=o?.sprites.storage;if(t&&s){let{bands:n,used:r,capacity:i}=zs(e),a=12*t.tileScale,l=(e,t)=>{e.texture=t,e.width=a,e.height=a};for(let e of t.layers){let t=new Ve;t.anchor.set(.5,.5),t.x=6,t.y=6,e.tint===`owner`&&(t.tint=f),c.addChild(t);let n=s.getTexture(o.atlasUrl,e.frame);n?l(t,n):s.getOrLoad(o.atlasUrl).then(n=>{t.destroyed||l(t,n.textures[e.frame]??qe.EMPTY)}).catch(()=>{})}let u=new V;c.addChild(u),c.__storageFillG=u,c.__storageBands=n,c.__storageUsed=r,c.__storageCapacity=i,Gs(c,Ws(r,i));break}let{bands:n,used:r,capacity:i}=zs(e),a=Qo(6,6,[[-.6,-.7],[0,-.8],[.6,-.7],[.65,0],[.6,.7],[0,.8],[-.6,.7],[-.65,0],[-.6,-.7]]);l.poly(a),l.fill(H),l.poly(a),l.stroke({width:12*.05,color:f}),l.rect(6-12*.5,6-12*.6,12,12*1.2),l.fill(pt),c.addChild(l);let u=new V;c.addChild(u),c.__storageFillG=u,c.__storageBands=n,c.__storageUsed=r,c.__storageCapacity=i,Gs(c,Ws(r,i));let d=new V;d.rect(6-12*.5,6-12*.6,12,12*1.2),d.stroke({width:12*.1,color:H}),c.addChild(d);break}case`terminal`:{let t=Qo(6,6,[[0,-.8],[.55,-.55],[.8,0],[.55,.55],[0,.8],[-.55,.55],[-.8,0],[-.55,-.55],[0,-.8]]),n=Qo(6,6,[[0,-.65],[.45,-.45],[.65,0],[.45,.45],[0,.65],[-.45,.45],[-.65,0],[-.45,-.45],[0,-.65]]);l.poly(t),l.fill(H),l.poly(t),l.stroke({width:12*.05,color:f}),l.poly(n),l.fill(At),l.rect(6-12*.45,6-12*.45,12*.9,12*.9),l.fill(pt),l.rect(6-12*.45,6-12*.45,12*.9,12*.9),l.stroke({width:12*.1,color:H}),c.addChild(l);let{used:r,capacity:i,dominant:a}=zs(e),o=new V;c.addChild(o);let s=c;s.__terminalFillG=o,s.__terminalDominant=a??void 0,s.__terminalFillColor=a?Ks(a):ht,s.__terminalUsed=r,s.__terminalCapacity=i,Js(s,W(r,i));let u=new V;Qs(u,6,6),u.alpha=0,c.addChild(u),s.__terminalCooldownG=u,s.__terminalCooldownTime=mc(e);break}case`link`:{let t=Qo(6,6,[[0,-.5],[.4,0],[0,.5],[-.4,0],[0,-.5]]),n=Qo(6,6,[[0,-.3],[.25,0],[0,.3],[-.25,0],[0,-.3]]);l.poly(t),l.fill(H),l.poly(t),l.stroke({width:12*.05,color:f}),l.poly(n),l.fill(pt),c.addChild(l);let{energy:r,capacity:i}=ls(e),a=new V;c.addChild(a);let o=c;o.__linkFillGraphics=a,o.__linkEnergy=r,o.__linkCapacity=i,hs(o,ms(r,i));break}case`lab`:{let t=6-12*.025;l.circle(6,t,12*.55),l.fill(H),l.circle(6,t,12*.55),l.stroke({width:12*.05,color:f}),l.circle(6,t,12*.4),l.fill(pt),c.addChild(l);let{energy:n,energyCap:r,mineralType:i,mineral:a,mineralCap:o}=hc(e),s=new V;c.addChild(s);let u=new V;u.rect(6-12*.45,9.6,12*.9,12*.25),u.fill(H),u.poly(Qo(6,6,[[-.45,.3],[-.45,.55],[.45,.55],[.45,.3]])),u.stroke({width:12*.05,color:f}),c.addChild(u);let d=new V;c.addChild(d);let p=c;p.__labMineralG=s,p.__labEnergyG=d,p.__labMineralType=i??void 0,p.__labMineralColor=i?Ks(i):void 0,p.__labEnergy=n,p.__labEnergyCap=r,p.__labMineral=a,p.__labMineralCap=o,gc(p,W(n,r),W(a,o));let m=new V;pc(m,6,t),m.alpha=0,c.addChild(m),p.__labCooldownG=m,p.__labCooldownTime=mc(e);break}case`container`:{let{bands:t,used:n,capacity:r}=zs(e);l.rect(ks,As,Ds,Os),l.fill(H),l.rect(ks+js,As+js,Ds-js*2,Os-js*2),l.fill(pt),c.addChild(l);let i=new V;c.addChild(i),c.__containerFillG=i,c.__containerBands=t,c.__containerUsed=n,c.__containerCapacity=r,Us(c,Hs(n,r));let a=new V;a.rect(ks,As,Ds,Os),a.stroke({width:12*.1,color:H}),c.addChild(a);break}case`observer`:l.circle(6,6,12*.45),l.fill(H),l.circle(6,6,12*.45),l.stroke({width:12*.05,color:f}),l.circle(8.7,6,12*.2),l.fill(f);break;case`nuker`:{let t=Qo(6,6,[[0,-1],[-.47,.2],[-.5,.5],[.5,.5],[.47,.2],[0,-1]]),n=Qo(6,6,[[0,-.8],[-.4,.2],[.4,.2],[0,-.8]]);l.poly(t),l.fill(H),l.poly(t),l.stroke({width:12*.05,color:f}),l.poly(n),l.fill(pt),l.poly(n),l.stroke({width:12*.01,color:f}),c.addChild(l);let{energy:r,energyCap:i,ghodium:a,ghodiumCap:o}=Ec(e),s=new V;c.addChild(s);let u=new V;c.addChild(u);let d=c;d.__nukerEnergyG=s,d.__nukerGhodiumG=u,d.__nukerEnergy=r,d.__nukerEnergyCap=i,d.__nukerGhodium=a,d.__nukerGhodiumCap=o,Dc(d,W(r,i),W(a,o));break}case`factory`:{let t=typeof e.level==`number`?e.level:0,{bands:n,used:r,capacity:i}=zs(e),a=new V;ll(a,f),c.addChild(a),l.rect(nl,rl,el,tl),l.fill(pt),c.addChild(l);let o=new V;ul(o,t),c.addChild(o);let s=new V;c.addChild(s);let u=c;u.__factoryGearG=a,u.__factoryRingG=o,u.__factoryFillG=s,u.__factoryBands=n,u.__factoryUsed=r,u.__factoryCapacity=i,u.__factoryLevel=t,u.__factoryCooldownEnd=mc(e),u.__factoryGlowColor=f,fl(u,dl(r,i));break}case`extractor`:{let t=new V;t.position.set(6,6),Wo(t,d===void 0?Lt:f),c.addChild(t);let n=c;n.__extractorRing=t,n.__extractorActive=cl(e);break}case`invaderCore`:l.circle(6,6,12*.45),l.fill(H),l.circle(6,6,12*.45),l.stroke({width:12*.05,color:f}),l.circle(6,6,12*.35),l.fill(pt);break;case`flag`:{let n=typeof e.color==`number`?e.color:0,r=typeof e.secondaryColor==`number`?e.secondaryColor:0,i=_n[n]??_n[0],a=_n[r]??_n[0],u=o?.flag;if(u&&s){let e=12*u.tileScale,t=()=>s.getOrLoad(o.atlasUrl),l=(t,n)=>{t.texture=n,t.width=e,t.height=e},d=new Ve;d.anchor.set(.5,.5),d.x=6,d.y=6,d.tint=i,c.addChild(d);let f=s.getTexture(o.atlasUrl,u.mainFrame);if(f?l(d,f):t().then(e=>{d.destroyed||l(d,e.textures[u.mainFrame]??qe.EMPTY)}).catch(()=>{}),r!==n){let e=new Ve;e.anchor.set(.5,.5),e.x=6,e.y=6,e.tint=a,c.addChild(e);let n=s.getTexture(o.atlasUrl,u.secondFrame);n?l(e,n):t().then(t=>{e.destroyed||l(e,t.textures[u.secondFrame]??qe.EMPTY)}).catch(()=>{})}}else{l.rect(5.28,1.5,1.44,12.599999999999998),l.fill(8947848);let e=6.720000000000001,t=14.820000000000002,n=10.92/2,r=n;l.moveTo(e,1.5),l.lineTo(t,n),l.lineTo(e,r),l.closePath(),l.fill(i),l.moveTo(e,r),l.lineTo(t,n),l.lineTo(e,9.42),l.closePath(),l.fill(a),c.addChild(l)}if(c.__flagColor=n,c.__flagSecondaryColor=r,typeof e.name==`string`){let n=new We({text:e.name,style:{fontSize:eo,fill:16777215}});n.scale.set(to),n.anchor.set(.5,0),n.x=6,n.y=12.600000000000001,n.visible=t,c.__nameLabel=n,c.addChild(n)}break}case`ruin`:{let t=typeof e.user==`string`?e.user:void 0,r=t!==void 0&&t===n?hn:In,i=12*.42,a=Math.PI/5,o=new V;for(let e=0;e<6;e++){let t=e*Math.PI*2/6,n=t-a/2,s=t+a/2,c=6+i*Math.cos(n),l=6+i*Math.sin(n);o.moveTo(c,l),o.arc(6,6,i,n,s),o.stroke({width:12*.09,color:r,alpha:.75,cap:`round`})}c.addChild(o);let s=12*.18,l=new V;l.moveTo(6-s,6-s),l.lineTo(8.16,8.16),l.moveTo(8.16,6-s),l.lineTo(6-s,8.16),l.stroke({width:12*.11,color:r,cap:`round`}),c.addChild(l);break}case`tombstone`:{let t=typeof e.user==`string`?e.user:void 0,r=t!==void 0&&t===n?hn:In,i=o?.tombstone;if(i&&s){let e=12*i.tileScale,t=()=>s.getOrLoad(o.atlasUrl),n=new Ve;n.anchor.set(.5,.5),n.x=6,n.y=6,n.width=e,n.height=e,c.addChild(n);let a=new Ve;a.anchor.set(.5,.5),a.x=6,a.y=6,a.width=e,a.height=e,a.tint=r,c.addChild(a);let l=s.getTexture(o.atlasUrl,i.shellFrame);l?n.texture=l:t().then(e=>{n.destroyed||(n.texture=e.textures[i.shellFrame]??qe.EMPTY)}).catch(()=>{});let u=s.getTexture(o.atlasUrl,i.crossFrame);u?a.texture=u:t().then(e=>{a.destroyed||(a.texture=e.textures[i.crossFrame]??qe.EMPTY)}).catch(()=>{})}else{let e=12*.62,t=6-e/2,n=e/2,i=new V;i.moveTo(t,4.8),i.arc(6,4.8,n,Math.PI,0,!1),i.lineTo(9.719999999999999,10.92),i.lineTo(t,10.92),i.closePath(),i.fill(H),i.moveTo(t,4.8),i.arc(6,4.8,n,Math.PI,0,!1),i.lineTo(9.719999999999999,10.92),i.lineTo(t,10.92),i.closePath(),i.stroke({width:12*.07,color:r,alpha:.9}),c.addChild(i);let a=12*.18,o=new V;o.moveTo(6-a,6-a*.6),o.lineTo(8.16,7.296),o.moveTo(8.16,6-a*.6),o.lineTo(6-a,7.296),o.stroke({width:12*.09,color:r,cap:`round`}),c.addChild(o)}break}case`powerBank`:{let t=new V,n=[];for(let e=0;e<Uc.length;e+=2)n.push(6+Uc[e]*Fc,6+Uc[e+1]*Fc);t.poly(n),t.fill(Lc),t.poly(n),t.stroke({width:Ic,color:Rc}),c.addChild(t);let r=Wc(e),i=Gc(r),a=new V;qc(a,i,performance.now()),c.addChild(a);let o=c;o.__powerBankEllipseG=a,o.__powerBankPower=r,o.__powerBankRadius=i;break}default:l.rect(1,1,10,10),l.fill(u)}if(e.type!==`extension`&&e.type!==`road`&&e.type!==`creep`&&e.type!==`tower`&&e.type!==`controller`&&e.type!==`flag`&&e.type!==`source`&&e.type!==`constructionSite`&&e.type!==`mineral`&&e.type!==`tombstone`&&e.type!==`ruin`&&e.type!==`storage`&&e.type!==`constructedWall`&&e.type!==`rampart`&&e.type!==`container`&&e.type!==`deposit`&&e.type!==`link`&&e.type!==`terminal`&&e.type!==`lab`&&e.type!==`nuker`&&e.type!==`factory`&&e.type!==`powerBank`&&c.addChild(l),e.type===`creep`&&typeof e.name==`string`){let r=vl(e,n),i;if(r){let t=typeof e.user==`string`?e.user:void 0;i=bl(e,a)?`Invader`:t?a?.[t]?.username??t:`Hostile`}else i=e.name;let o=new We({text:i,style:{fontSize:eo,fill:r?In:16777215}});o.scale.set(to),o.anchor.set(.5,1),o.x=6,o.y=no-ro,o.visible=t,c.__nameLabel=o,c.addChild(o)}return c.zIndex=(e.type===`creep`?100:e.type===`flag`?200:0)+(e.type===`flag`?o?.flag?.zIndex??0:e.type===`controller`?o?.controller?.zIndex??0:e.type===`tombstone`?o?.tombstone?.zIndex??0:e.type===`mineral`?o?.mineral?.zIndex??0:e.type===`extractor`?Uo:o?.sprites[e.type]?.zIndex??0),c.position.set(e.x*12,e.y*12),c}function Sl(e){e.destroy({children:!0})}function Cl(e){let t=new We({text:e.length>uo?e.slice(0,uo):e,style:{fontSize:eo,fill:po,fontWeight:`600`}});t.scale.set(io),t.anchor.set(.5,.5);let n=t.width,r=t.height,i=n+ao*2,a=r+oo*2,o=a/2,s=new V;s.roundRect(-i/2,-a/2,i,a,o),s.fill(fo),s.roundRect(-i/2,-a/2,i,a,o),s.stroke({width:.4,color:1118481,alpha:.55}),s.moveTo(-2,a/2-.1),s.lineTo(0,a/2+co),s.lineTo(so,a/2-.1),s.closePath(),s.fill(fo),s.moveTo(-2,a/2-.1),s.lineTo(0,a/2+co),s.lineTo(so,a/2-.1),s.stroke({width:.4,color:1118481,alpha:.55});let c=new Fe;return c.addChild(s),c.addChild(t),c.pivot.set(0,a/2+co),c}var wl=class{container;objects=new Map;rawObjects=new Map;roadGraphics;rampartGraphics;rampartGlowGraphics;wallGraphics;wallMarkGraphics;ticker=null;tickerCallback=null;fillAnimations=new Map;buildGlowAnimations=new Map;ctrlFlashAnimations=new Map;currentGameTime=0;sayBubbles=new Set;moveDuration=600;tickMs=2e3;lastTickAt=0;EXT_ANIM_DURATION=300;instantMode=!1;lastWorldScale=1;showLabels;currentUserId;badge;badgeCache=Xa;users;activeTheme=null;atlasCache=null;roadColor=dt;lighting=null;constructor(e,t=!0,n,r,i){this.showLabels=t,this.currentUserId=n,this.badge=r,this.users=i,this.container=new Fe,this.container.sortableChildren=!0,this.wallGraphics=new V,this.wallGraphics.zIndex=-3,this.container.addChild(this.wallGraphics),this.wallMarkGraphics=new V,this.wallMarkGraphics.zIndex=-2,this.container.addChild(this.wallMarkGraphics),this.rampartGraphics=new V,this.rampartGraphics.zIndex=150,this.container.addChild(this.rampartGraphics),this.rampartGlowGraphics=new V,this.rampartGlowGraphics.zIndex=149,this.rampartGlowGraphics.filters=[new ze({strength:3,quality:3})],this.container.addChild(this.rampartGlowGraphics),this.roadGraphics=new V,this.container.addChild(this.roadGraphics),e&&(this.ticker=e,this.tickerCallback=()=>this.tick(),e.add(this.tickerCallback))}setTheme(e,t){this.activeTheme=e,this.atlasCache=t}setRoadColor(e){this.roadColor=e,this.redrawRoads()}setLightingLayer(e){this.lighting=e}tick(){let e=performance.now(),t=this.lighting;for(let[n,r]of this.objects){if(r.__targetX===void 0||r.__targetY===void 0)continue;let i=r.__moveDur??0,a=e-(r.__moveStartT??e);if(i<=0||a>=i){r.position.set(r.__targetX,r.__targetY),r.__targetX=void 0,r.__targetY=void 0,r.__moveStartX=void 0,r.__moveStartY=void 0,r.__moveStartT=void 0,r.__moveDur=void 0,t?.setLightPosition(n,r.x+12/2,r.y+12/2);continue}let o=a/i,s=r.__moveStartX??r.x,c=r.__moveStartY??r.y;r.x=s+(r.__targetX-s)*o,r.y=c+(r.__targetY-c)*o,t?.setLightPosition(n,r.x+12/2,r.y+12/2)}let n=this.container.parent?.scale.x??1;if(n!==this.lastWorldScale){this.lastWorldScale=n;for(let e of this.objects.values())this.applyLabelScale(e)}let r=performance.now(),i=r/1e3,a=.5+.5*Math.sin(r*2*Math.PI/Lo),o=Math.min(1,(r-this.lastTickAt)/this.tickMs),s=Math.sin(o*Math.PI);for(let e of this.objects.values()){if(e.__barrelContainer){let t=e.__barrelContainer;e.__towerAimUntil!==void 0&&r<e.__towerAimUntil&&e.__towerAimAngle!==void 0?t.rotation=Es(t.rotation,e.__towerAimAngle,Cs):(e.__towerAimUntil!==void 0&&(e.__towerIdlePhase=t.rotation-i*Ss,e.__towerAimUntil=void 0,e.__towerAimAngle=void 0),t.rotation=i*Ss+(e.__towerIdlePhase??0))}if(e.__extractorRing){let t=e.__extractorActive===!0;t&&!e.__extractorWasActive&&(e.__extractorPhase=e.__extractorRing.rotation-i*ws),t&&(e.__extractorRing.rotation=i*ws+(e.__extractorPhase??0)),e.__extractorWasActive=t}if(e.__csRingGraphics&&e.__csColorDark!==void 0&&e.__csColorLight!==void 0&&zo(e.__csRingGraphics,Ro(e.__csColorDark,e.__csColorLight,a)),e.__factoryGearG){let t=(e.__factoryCooldownEnd??0)>this.currentGameTime;t?ll(e.__factoryGearG,Ro(e.__factoryGlowColor??9419667,al,.5*a)):e.__factoryWasOnCd&&ll(e.__factoryGearG,e.__factoryGlowColor??9419667),e.__factoryWasOnCd=t}if(e.__labCooldownG){let t=(e.__labCooldownTime??0)>this.currentGameTime;e.__labCooldownG.alpha=t?s:0}if(e.__terminalCooldownG){let t=(e.__terminalCooldownTime??0)>this.currentGameTime;e.__terminalCooldownG.alpha=t?s:0}}for(let[e,t]of this.fillAnimations){let n=Math.min(1,(r-t.startTime)/this.EXT_ANIM_DURATION),i=n<.5?2*n*n:1-(-2*n+2)**2/2;t.apply(t.visual,t.fromA+(t.toA-t.fromA)*i,t.fromB+(t.toB-t.fromB)*i),n>=1&&this.fillAnimations.delete(e)}for(let e of this.objects.values()){let t=e.__sourceGraphics;t&&Ao(t,e.__sourceSize??So,r)}for(let e of this.objects.values()){let t=e.__powerBankEllipseG;t&&qc(t,e.__powerBankRadius??0,r)}for(let[e,t]of this.buildGlowAnimations){let n=this.objects.get(e),i=n?.__csBuildGlow;if(!n||!i){this.buildGlowAnimations.delete(e);continue}let a=(r-t.startTime)/t.duration,o;o=a<=0?0:a<.5?a/.5:a<.7?1:a<1?1-(a-.7)/.3:0,i.clear(),o>0&&(i.circle(12/2,12/2,Io),i.fill({color:ht,alpha:o*.75})),a>=1&&this.buildGlowAnimations.delete(e)}for(let[e,t]of this.ctrlFlashAnimations){let n=this.objects.get(e),i=n?.__ctrlSegSprites;if(!n||!i){this.ctrlFlashAnimations.delete(e);continue}let a=Math.min(1,(r-t.startTime)/t.duration),o=1-(1-a)*(1-a),s=i[t.segIndex];s&&!s.destroyed&&(s.alpha=1-.85*o),a>=1&&(s&&!s.destroyed&&(s.alpha=.15),this.ctrlFlashAnimations.delete(e))}for(let e of this.objects.values()){let t=e.__ctrlLevel,n=e.__ctrlSegSprites;if(!t||!n)continue;let i=e.__ctrlDowngradeTime;if(!i){for(let e=0;e<t;e++){let t=n[e];t&&!t.destroyed&&(t.tint=16777215)}continue}let a=Ya[t]??2e4,o=1-Math.max(0,i-this.currentGameTime)/a;if(o<=.2){for(let e=0;e<t;e++){let t=n[e];t&&!t.destroyed&&(t.tint=16777215)}continue}let s=(o-.2)/.8,c=.3+s*1.5,l=.5+.5*Math.sin(2*Math.PI*c*r/1e3),u=Ro(16777215,Ro(16768477,16720418,s),s*l);for(let e=0;e<t;e++){let t=n[e];t&&!t.destroyed&&(t.tint=u)}}this.lighting?.render()}startFill(e,t,n,r,i,a=0,o=0){if(this.instantMode){n(t,i,o);return}r===i&&a===o||this.fillAnimations.set(e,{visual:t,fromA:r,toA:i,fromB:a,toB:o,apply:n,startTime:performance.now()})}startExtAnimation(e,t,n,r,i,a){this.startFill(e,t,_s,ds(n,r),ds(i,a))}startLinkAnimation(e,t,n,r,i,a){this.startFill(e,t,hs,ms(n,r),ms(i,a))}startCreepFillAnimation(e,t,n,r,i,a){this.startFill(e,t,ss,os(n,r),os(i,a))}startTowerFillAnimation(e,t,n,r,i,a){this.startFill(e,t,Ns,Ms(n,r),Ms(i,a))}startStorageFillAnimation(e,t,n,r,i,a){this.startFill(e,t,Gs,Ws(n,r),Ws(i,a))}startContainerFillAnimation(e,t,n,r,i,a){this.startFill(e,t,Us,Hs(n,r),Hs(i,a))}startTerminalFillAnimation(e,t,n,r,i,a){this.startFill(e,t,Js,W(n,r),W(i,a))}startFactoryFillAnimation(e,t,n,r,i,a){this.startFill(e,t,fl,dl(n,r),dl(i,a))}startLabFillAnimation(e,t,n,r,i,a,o,s,c,l){this.startFill(e,t,gc,W(n,r),W(o,s),W(i,a),W(c,l))}startNukerFillAnimation(e,t,n,r,i,a,o,s,c,l){this.startFill(e,t,Dc,W(n,r),W(o,s),W(i,a),W(c,l))}startSourceAnimation(e,t,n,r,i,a){this.startFill(e,t,jo,Do(n,r),Do(i,a))}startPowerSpawnPowerAnimation(e,t,n,r,i,a){this.startFill(e,t,Nc,W(n,r),W(i,a))}update(e,t,n,r){n&&(this.users=n),r!==void 0&&(r!==this.currentGameTime&&(this.lastTickAt=performance.now()),this.currentGameTime=r);let i=!1,a=!1,o=!1;if(t)for(let n in t)if(t[n]===null){let e=this.rawObjects.get(n);e&&e.type===`road`&&(i=!0),e&&e.type===`constructedWall`&&(a=!0),e&&e.type===`rampart`&&(o=!0);let t=this.objects.get(n);t&&(this.container.removeChild(t),Sl(t),this.objects.delete(n),this.rawObjects.delete(n),this.fillAnimations.delete(n),this.buildGlowAnimations.delete(n),this.ctrlFlashAnimations.delete(n),this.sayBubbles.delete(n))}else{let t=e[n];if(!t)continue;if(t.type===`road`){let e=this.rawObjects.get(n);(!e||e.x!==t.x||e.y!==t.y)&&(i=!0)}else if(t.type===`constructedWall`){let e=this.rawObjects.get(n);(!e||e.x!==t.x||e.y!==t.y)&&(a=!0)}else if(t.type===`rampart`){let e=this.rawObjects.get(n);(!e||e.x!==t.x||e.y!==t.y||e.user!==t.user)&&(o=!0)}this.rawObjects.set(n,t);let r=this.objects.get(n);if(r){let e=t.x*12,i=t.y*12;if(t.type===`creep`){let a=t.x-(r.__tileX??t.x),o=t.y-(r.__tileY??t.y);(a!==0||o!==0)&&(r.__angle=Math.atan2(o,a),r.__bodyContainer&&(r.__bodyContainer.rotation=r.__angle)),r.__tileX=t.x,r.__tileY=t.y,this.instantMode?(r.position.set(e,i),r.__targetX=void 0,r.__targetY=void 0,r.__moveStartX=void 0,r.__moveStartY=void 0,r.__moveStartT=void 0,r.__moveDur=void 0):(r.x!==e||r.y!==i)&&(r.__targetX=e,r.__targetY=i,r.__moveStartX=r.x,r.__moveStartY=r.y,r.__moveStartT=performance.now(),r.__moveDur=this.moveDuration);let{used:s,capacity:c}=as(t);(r.__creepUsed!==s||r.__creepCapacity!==c)&&(this.startCreepFillAnimation(n,r,r.__creepUsed??0,r.__creepCapacity??c,s,c),r.__creepUsed=s,r.__creepCapacity=c)}else if(t.type===`flag`){let a=typeof t.color==`number`?t.color:0,o=typeof t.secondaryColor==`number`?t.secondaryColor:0;if(r.__flagColor!==a||r.__flagSecondaryColor!==o){this.container.removeChild(r),Sl(r),this.objects.delete(n);let e=xl(t,this.showLabels,this.currentUserId,this.badge,this.badgeCache,this.users,this.activeTheme,this.atlasCache);e.__tileX=t.x,e.__tileY=t.y,this.applyLabelScale(e),this.objects.set(n,e),this.container.addChild(e)}else r.position.set(e,i)}else r.position.set(e,i);if(t.type===`extension`){let{energy:e,capacity:i}=ls(t),a=r;(a.__extEnergy!==e||a.__extCapacity!==i)&&(this.startExtAnimation(n,r,a.__extEnergy??0,a.__extCapacity??i,e,i),a.__extEnergy=e,a.__extCapacity=i)}if(t.type===`link`){let{energy:e,capacity:i}=ls(t);(r.__linkEnergy!==e||r.__linkCapacity!==i)&&(this.startLinkAnimation(n,r,r.__linkEnergy??0,r.__linkCapacity??i,e,i),r.__linkEnergy=e,r.__linkCapacity=i)}if(t.type===`tower`){let{energy:e,capacity:i}=ls(t);(r.__towerEnergy!==e||r.__towerCapacity!==i)&&(this.startTowerFillAnimation(n,r,r.__towerEnergy??0,r.__towerCapacity??i,e,i),r.__towerEnergy=e,r.__towerCapacity=i)}if(t.type===`storage`){let{bands:e,used:i,capacity:a}=zs(t);if(r.__storageUsed!==i||r.__storageCapacity!==a){let t=r.__storageUsed??0,o=r.__storageCapacity??a;r.__storageBands=e,r.__storageUsed=i,r.__storageCapacity=a,this.startStorageFillAnimation(n,r,t,o,i,a)}else Vs(r.__storageBands,e)||(r.__storageBands=e,Gs(r,Ws(i,a)))}if(t.type===`container`){let{bands:e,used:i,capacity:a}=zs(t);if(r.__containerUsed!==i||r.__containerCapacity!==a){let t=r.__containerUsed??0,o=r.__containerCapacity??a;r.__containerBands=e,r.__containerUsed=i,r.__containerCapacity=a,this.startContainerFillAnimation(n,r,t,o,i,a)}else Vs(r.__containerBands,e)||(r.__containerBands=e,Us(r,Hs(i,a)))}if(t.type===`terminal`){let{used:e,capacity:i,dominant:a}=zs(t),o=a??void 0;if(r.__terminalDominant!==o&&(r.__terminalDominant=o,r.__terminalFillColor=o?Ks(o):ht,Js(r,W(e,i))),r.__terminalUsed!==e||r.__terminalCapacity!==i){let t=r.__terminalUsed??0,a=r.__terminalCapacity??i;r.__terminalUsed=e,r.__terminalCapacity=i,this.startTerminalFillAnimation(n,r,t,a,e,i)}r.__terminalCooldownTime=mc(t)}if(t.type===`lab`){let{energy:e,energyCap:i,mineralType:a,mineral:o,mineralCap:s}=hc(t),c=a??void 0;if(r.__labMineralType!==c&&(r.__labMineralType=c,r.__labMineralColor=a?Ks(a):void 0,gc(r,W(e,i),W(o,s))),r.__labEnergy!==e||r.__labEnergyCap!==i||r.__labMineral!==o||r.__labMineralCap!==s){let t=r.__labEnergy??0,a=r.__labEnergyCap??i,c=r.__labMineral??0,l=r.__labMineralCap??s;r.__labEnergy=e,r.__labEnergyCap=i,r.__labMineral=o,r.__labMineralCap=s,this.startLabFillAnimation(n,r,t,a,c,l,e,i,o,s)}r.__labCooldownTime=mc(t)}if(t.type===`nuker`){let{energy:e,energyCap:i,ghodium:a,ghodiumCap:o}=Ec(t);if(r.__nukerEnergy!==e||r.__nukerEnergyCap!==i||r.__nukerGhodium!==a||r.__nukerGhodiumCap!==o){let t=r.__nukerEnergy??0,s=r.__nukerEnergyCap??i,c=r.__nukerGhodium??0,l=r.__nukerGhodiumCap??o;r.__nukerEnergy=e,r.__nukerEnergyCap=i,r.__nukerGhodium=a,r.__nukerGhodiumCap=o,this.startNukerFillAnimation(n,r,t,s,c,l,e,i,a,o)}}if(t.type===`powerSpawn`){let{power:e,powerCap:i}=jc(t);if(r.__powerSpawnPower!==e||r.__powerSpawnPowerCap!==i){let t=r.__powerSpawnPower??0,a=r.__powerSpawnPowerCap??i;r.__powerSpawnPower=e,r.__powerSpawnPowerCap=i,this.startPowerSpawnPowerAnimation(n,r,t,a,e,i)}}if(t.type===`extractor`&&(r.__extractorActive=cl(t)),t.type===`factory`){let{bands:e,used:i,capacity:a}=zs(t),o=typeof t.level==`number`?t.level:0;if(r.__factoryLevel!==o&&r.__factoryRingG&&(r.__factoryLevel=o,ul(r.__factoryRingG,o)),r.__factoryCooldownEnd=mc(t),r.__factoryUsed!==i||r.__factoryCapacity!==a){let t=r.__factoryUsed??0,o=r.__factoryCapacity??a;r.__factoryBands=e,r.__factoryUsed=i,r.__factoryCapacity=a,this.startFactoryFillAnimation(n,r,t,o,i,a)}else Vs(r.__factoryBands,e)||(r.__factoryBands=e,fl(r,dl(i,a)))}if(t.type===`controller`){let e=typeof t.level==`number`?t.level:0,i=typeof t.progress==`number`?t.progress:0,a=typeof t.progressTotal==`number`?t.progressTotal:0,o=t.reservation,s=typeof t.user==`string`?t.user:typeof o?.user==`string`?o.user:void 0;if(r.__ctrlUserId!==s){this.container.removeChild(r),Sl(r),this.objects.delete(n);let e=xl(t,this.showLabels,this.currentUserId,this.badge,this.badgeCache,this.users,this.activeTheme,this.atlasCache);e.__tileX=t.x,e.__tileY=t.y,this.applyLabelScale(e),this.objects.set(n,e),this.container.addChild(e);continue}(r.__ctrlLevel!==e||r.__ctrlProgress!==i||r.__ctrlProgressTotal!==a)&&(r.__ctrlSegSprites?(!this.instantMode&&e<8&&i>(r.__ctrlProgress??0)&&this.ctrlFlashAnimations.set(n,{segIndex:e,startTime:performance.now(),duration:400}),_l(r,e,i,a)):r.__ctrlSegGraphics&&gl(r.__ctrlSegGraphics,12/2,12/2,ml,hl,e,i,a),r.__ctrlLevel=e,r.__ctrlProgress=i,r.__ctrlProgressTotal=a);let c=typeof t.downgradeTime==`number`?t.downgradeTime:void 0;r.__ctrlDowngradeTime!==c&&(r.__ctrlDowngradeTime=c)}if(t.type===`source`){let{energy:e,capacity:i}=Mo(t);(r.__sourceEnergy!==e||r.__sourceCapacity!==i)&&(this.startSourceAnimation(n,r,r.__sourceEnergy??0,r.__sourceCapacity??i,e,i),r.__sourceEnergy=e,r.__sourceCapacity=i)}if(t.type===`constructionSite`){let e=typeof t.progress==`number`?t.progress:0,n=typeof t.progressTotal==`number`?t.progressTotal:1;(r.__csProgress!==e||r.__csProgressTotal!==n)&&(r.__csFillGraphics&&Go(r.__csFillGraphics,12/2,12/2,Fo,e,n,r.__csColor??9419667),r.__csProgress=e,r.__csProgressTotal=n)}if(t.type===`powerBank`){let e=Wc(t);r.__powerBankPower!==e&&(r.__powerBankPower=e,r.__powerBankRadius=Gc(e))}}else{let e=xl(t,this.showLabels,this.currentUserId,this.badge,this.badgeCache,this.users,this.activeTheme,this.atlasCache);e.__tileX=t.x,e.__tileY=t.y,this.applyLabelScale(e),this.objects.set(n,e),this.container.addChild(e)}}else{let t=new Set;for(let n in e){let r=e[n];if(!r)continue;t.add(n),this.rawObjects.set(n,r);let i=this.objects.get(n);if(i){let e=r.x*12,t=r.y*12;if(r.type===`creep`){let a=r.x-(i.__tileX??r.x),o=r.y-(i.__tileY??r.y);(a!==0||o!==0)&&(i.__angle=Math.atan2(o,a),i.__bodyContainer&&(i.__bodyContainer.rotation=i.__angle)),i.__tileX=r.x,i.__tileY=r.y,this.instantMode?(i.position.set(e,t),i.__targetX=void 0,i.__targetY=void 0,i.__moveStartX=void 0,i.__moveStartY=void 0,i.__moveStartT=void 0,i.__moveDur=void 0):(i.x!==e||i.y!==t)&&(i.__targetX=e,i.__targetY=t,i.__moveStartX=i.x,i.__moveStartY=i.y,i.__moveStartT=performance.now(),i.__moveDur=this.moveDuration);let{used:s,capacity:c}=as(r);(i.__creepUsed!==s||i.__creepCapacity!==c)&&(this.startCreepFillAnimation(n,i,i.__creepUsed??0,i.__creepCapacity??c,s,c),i.__creepUsed=s,i.__creepCapacity=c)}else if(r.type===`flag`){let a=typeof r.color==`number`?r.color:0,o=typeof r.secondaryColor==`number`?r.secondaryColor:0;if(i.__flagColor!==a||i.__flagSecondaryColor!==o){this.container.removeChild(i),Sl(i),this.objects.delete(n);let e=xl(r,this.showLabels,this.currentUserId,this.badge,this.badgeCache,this.users,this.activeTheme,this.atlasCache);e.__tileX=r.x,e.__tileY=r.y,this.applyLabelScale(e),this.objects.set(n,e),this.container.addChild(e)}else i.position.set(e,t)}else i.position.set(e,t);if(r.type===`extension`){let{energy:e,capacity:t}=ls(r),a=i;(a.__extEnergy!==e||a.__extCapacity!==t)&&(this.startExtAnimation(n,i,a.__extEnergy??0,a.__extCapacity??t,e,t),a.__extEnergy=e,a.__extCapacity=t)}if(r.type===`link`){let{energy:e,capacity:t}=ls(r);(i.__linkEnergy!==e||i.__linkCapacity!==t)&&(this.startLinkAnimation(n,i,i.__linkEnergy??0,i.__linkCapacity??t,e,t),i.__linkEnergy=e,i.__linkCapacity=t)}if(r.type===`tower`){let{energy:e,capacity:t}=ls(r);(i.__towerEnergy!==e||i.__towerCapacity!==t)&&(this.startTowerFillAnimation(n,i,i.__towerEnergy??0,i.__towerCapacity??t,e,t),i.__towerEnergy=e,i.__towerCapacity=t)}if(r.type===`controller`){let e=typeof r.level==`number`?r.level:0,t=typeof r.progress==`number`?r.progress:0,a=typeof r.progressTotal==`number`?r.progressTotal:0,o=r.reservation,s=typeof r.user==`string`?r.user:typeof o?.user==`string`?o.user:void 0;if(i.__ctrlUserId!==s){this.container.removeChild(i),Sl(i),this.objects.delete(n);let e=xl(r,this.showLabels,this.currentUserId,this.badge,this.badgeCache,this.users,this.activeTheme,this.atlasCache);e.__tileX=r.x,e.__tileY=r.y,this.applyLabelScale(e),this.objects.set(n,e),this.container.addChild(e);continue}(i.__ctrlLevel!==e||i.__ctrlProgress!==t||i.__ctrlProgressTotal!==a)&&(i.__ctrlSegSprites?(!this.instantMode&&e>(i.__ctrlLevel??0)&&e>0&&this.ctrlFlashAnimations.set(n,{segIndex:e-1,startTime:performance.now(),duration:500}),_l(i,e,t,a)):i.__ctrlSegGraphics&&gl(i.__ctrlSegGraphics,12/2,12/2,ml,hl,e,t,a),i.__ctrlLevel=e,i.__ctrlProgress=t,i.__ctrlProgressTotal=a);let c=typeof r.downgradeTime==`number`?r.downgradeTime:void 0;i.__ctrlDowngradeTime!==c&&(i.__ctrlDowngradeTime=c)}if(r.type===`source`){let{energy:e,capacity:t}=Mo(r);(i.__sourceEnergy!==e||i.__sourceCapacity!==t)&&(this.startSourceAnimation(n,i,i.__sourceEnergy??0,i.__sourceCapacity??t,e,t),i.__sourceEnergy=e,i.__sourceCapacity=t)}if(r.type===`constructionSite`){let e=typeof r.progress==`number`?r.progress:0,t=typeof r.progressTotal==`number`?r.progressTotal:1;(i.__csProgress!==e||i.__csProgressTotal!==t)&&(i.__csFillGraphics&&Go(i.__csFillGraphics,12/2,12/2,Fo,e,t,i.__csColor??9419667),i.__csProgress=e,i.__csProgressTotal=t)}if(r.type===`powerBank`){let e=typeof r.power==`number`?r.power:0;i.__powerBankPower!==e&&(i.__powerBankPower=e,i.__powerBankRadius=Gc(e))}}else{let e=xl(r,this.showLabels,this.currentUserId,this.badge,this.badgeCache,this.users,this.activeTheme,this.atlasCache);e.__tileX=r.x,e.__tileY=r.y,this.applyLabelScale(e),this.objects.set(n,e),this.container.addChild(e)}}for(let[e,n]of this.objects)t.has(e)||(this.container.removeChild(n),Sl(n),this.objects.delete(e),this.rawObjects.delete(e),this.fillAnimations.delete(e),this.buildGlowAnimations.delete(e),this.ctrlFlashAnimations.delete(e),this.sayBubbles.delete(e));i=!0,a=!0,o=!0}a&&this.redrawWalls(),o&&this.redrawRamparts(),i&&this.redrawRoads();for(let[e,t]of this.objects){if(!t.__spawnRing)continue;let n=this.rawObjects.get(e),r=n?Yo(n):null;if(r!==t.__spawnSig){t.__spawnSig=r;let e=n&&r?Jo(n,this.currentGameTime):null;t.__spawnNeedTime=e?.needTime,t.__spawnEndTime=e?.endTime}let i=t.__spawnNeedTime!==void 0&&t.__spawnEndTime!==void 0?Xo(t.__spawnNeedTime,t.__spawnEndTime,this.currentGameTime):null;i!==t.__spawnRatio&&(Zo(t.__spawnRing,i),t.__spawnRatio=i)}this.refreshForeignCreepLabels(),this.refreshForeignCreepBadges()}redrawWalls(){this.wallGraphics.clear(),this.wallMarkGraphics.clear();let e=Array.from({length:50},()=>Array(50).fill(!1)),t=[];for(let n of this.rawObjects.values())n.type===`constructedWall`&&typeof n.x==`number`&&typeof n.y==`number`&&n.x>=0&&n.x<50&&n.y>=0&&n.y<50&&(e[n.x][n.y]=!0,t.push({x:n.x,y:n.y}));if(t.length===0)return;let n=t=>{let n=!1;for(let r=0;r<50;r++)for(let i=0;i<50;i++){let a=e[i][r],o=r>0&&e[i][r-1],s=r<49&&e[i][r+1],c=i>0&&e[i-1][r],l=i<49&&e[i+1][r],u=i*12+6,d=r*12+6;a?(n=!0,!o&&!c&&r>0&&i>0?(t.moveTo(u,r*12),t.arc(u,d,6,-Math.PI/2,Math.PI,!0),t.lineTo(u,d),t.closePath()):t.rect(i*12,r*12,6,6)):o&&c&&e[i-1][r-1]&&(n=!0,t.moveTo(u,r*12),t.lineTo(i*12,r*12),t.lineTo(i*12,d),t.arc(u,d,6,Math.PI,-Math.PI/2,!1),t.closePath()),a?!o&&!l&&r>0&&i<49?(t.moveTo(u,r*12),t.arc(u,d,6,-Math.PI/2,0,!1),t.lineTo(u,d),t.closePath()):t.rect(u,r*12,6,6):o&&l&&e[i+1][r-1]&&(n=!0,t.moveTo(u,r*12),t.lineTo(i*12+12,r*12),t.lineTo(i*12+12,d),t.arc(u,d,6,0,-Math.PI/2,!0),t.closePath()),a?!s&&!c&&r<49&&i>0?(t.moveTo(i*12,d),t.arc(u,d,6,Math.PI,Math.PI/2,!0),t.lineTo(u,d),t.closePath()):t.rect(i*12,d,6,6):s&&c&&e[i-1][r+1]&&(n=!0,t.moveTo(i*12,d),t.lineTo(i*12,r*12+12),t.lineTo(u,r*12+12),t.arc(u,d,6,Math.PI/2,Math.PI,!1),t.closePath()),a?!s&&!l&&r<49&&i<49?(t.moveTo(u,r*12+12),t.arc(u,d,6,Math.PI/2,0,!0),t.lineTo(u,d),t.closePath()):t.rect(u,d,6,6):s&&l&&e[i+1][r+1]&&(n=!0,t.moveTo(u,r*12+12),t.lineTo(i*12+12,r*12+12),t.lineTo(i*12+12,d),t.arc(u,d,6,0,Math.PI/2,!1),t.closePath())}return n};n(this.wallGraphics)&&this.wallGraphics.stroke({color:0,width:12*.06,alignment:0,cap:`round`,join:`round`}),n(this.wallGraphics),this.wallGraphics.fill(H);let r=12*.32,i=12*.09;for(let{x:e,y:n}of t){let t=e*12,a=n*12;this.wallMarkGraphics.rect(t+12*.12,a+12*.3,r,i),this.wallMarkGraphics.rect(t+12*.56,a+12*.58,r,i)}this.wallMarkGraphics.fill({color:4210752})}redrawRoads(){this.roadGraphics.clear();let e=this.roadColor,t=Array.from({length:50},()=>Array(50).fill(!1)),n=[];for(let e of this.rawObjects.values())e.type===`road`&&(n.push(e),e.x>=0&&e.x<50&&e.y>=0&&e.y<50&&(t[e.x][e.y]=!0));if(n.length===0)return;let r=12*.125;for(let e of n)this.roadGraphics.circle(e.x*12+6,e.y*12+6,r);this.roadGraphics.fill(e);let i=[[1,0],[1,1],[0,1],[-1,1]];for(let e of n){let n=e.x*12+6,r=e.y*12+6;for(let[a,o]of i){let i=e.x+a,s=e.y+o;if(i>=0&&i<50&&s>=0&&s<50&&t[i][s]){let e=i*12+6,t=s*12+6;this.roadGraphics.moveTo(n,r),this.roadGraphics.lineTo(e,t)}}}this.roadGraphics.stroke({width:r*2,color:e})}redrawRamparts(){this.rampartGraphics.clear(),this.rampartGlowGraphics.clear();let e=Array.from({length:50},()=>Array(50).fill(void 0));for(let t of this.rawObjects.values())t.type===`rampart`&&t.x>=0&&t.x<50&&t.y>=0&&t.y<50&&(e[t.x][t.y]=typeof t.user==`string`?t.user:void 0);let t=e=>!e||!this.currentUserId||e===this.currentUserId?{color:dn,alpha:.4}:{color:Et,alpha:.36},n=Array.from({length:50},()=>Array(50).fill(!1)),r=Array.from({length:50},()=>Array(50).fill(!1));for(let t=0;t<50;t++)for(let i=0;i<50;i++){let a=e[i][t];a!==void 0&&(!this.currentUserId||a===this.currentUserId?n[i][t]=!0:r[i][t]=!0)}let i=(e,t)=>{let n=t=>{let n=!1,r=(e,r,i,a)=>{t.moveTo(e,r),t.lineTo(i,a),n=!0},i=(e,r,i,a,o,s,c)=>{t.moveTo(e,r),t.arc(s,c,6,i,a,o),n=!0};for(let t=0;t<50;t++)for(let n=0;n<50;n++){let a=t>0&&e[n][t-1],o=t<49&&e[n][t+1],s=n>0&&e[n-1][t],c=n<49&&e[n+1][t],l=n>0&&t>0&&e[n-1][t-1],u=n<49&&t>0&&e[n+1][t-1],d=n>0&&t<49&&e[n-1][t+1],f=n<49&&t<49&&e[n+1][t+1],p=n*12+6,m=t*12+6;e[n][t]?(!a&&!s&&t>0&&n>0?i(p,t*12,-Math.PI/2,Math.PI,!0,p,m):(!a&&!(s&&l)&&r(n*12,t*12,p,t*12),!s&&!(a&&l)&&r(n*12,t*12,n*12,m)),!a&&!c&&t>0&&n<49?i(p,t*12,-Math.PI/2,0,!1,p,m):(!a&&!(c&&u)&&r(p,t*12,n*12+12,t*12),!c&&!(a&&u)&&r(n*12+12,t*12,n*12+12,m)),!o&&!s&&t<49&&n>0?i(n*12,m,Math.PI,Math.PI/2,!0,p,m):(!o&&!(s&&d)&&r(n*12,t*12+12,p,t*12+12),!s&&!(o&&d)&&r(n*12,m,n*12,t*12+12)),!o&&!c&&t<49&&n<49?i(p,t*12+12,Math.PI/2,0,!0,p,m):(!o&&!(c&&f)&&r(p,t*12+12,n*12+12,t*12+12),!c&&!(o&&f)&&r(n*12+12,m,n*12+12,t*12+12))):(a&&s&&l&&i(n*12,m,Math.PI,-Math.PI/2,!1,p,m),a&&c&&u&&i(n*12+12,m,0,-Math.PI/2,!0,p,m),o&&s&&d&&i(p,t*12+12,Math.PI/2,Math.PI,!1,p,m),o&&c&&f&&i(n*12+12,m,0,Math.PI/2,!1,p,m))}return n};n(this.rampartGlowGraphics)&&this.rampartGlowGraphics.stroke({color:t,width:12*.3,alpha:.55,alignment:.5,cap:`butt`,join:`round`}),n(this.rampartGraphics)&&this.rampartGraphics.stroke({color:t,width:12*.08,alpha:.9,alignment:.5,cap:`butt`,join:`round`})};for(let n=0;n<50;n++)for(let r=0;r<50;r++){let i=e[r][n],a=i!==void 0,o=n>0&&e[r][n-1]!==void 0,s=n<49&&e[r][n+1]!==void 0,c=r>0&&e[r-1][n]!==void 0,l=r<49&&e[r+1][n]!==void 0,u=r*12+6,d=n*12+6;if(a){let e=t(i);!o&&!c&&n>0&&r>0?(this.rampartGraphics.moveTo(u,n*12),this.rampartGraphics.arc(u,d,6,-Math.PI/2,Math.PI,!0),this.rampartGraphics.lineTo(u,d),this.rampartGraphics.fill(e)):(this.rampartGraphics.rect(r*12,n*12,6,6),this.rampartGraphics.fill(e))}else if(o&&c&&e[r-1][n-1]!==void 0){let i=t(e[r-1][n-1]);this.rampartGraphics.moveTo(u,n*12),this.rampartGraphics.lineTo(r*12,n*12),this.rampartGraphics.lineTo(r*12,d),this.rampartGraphics.arc(u,d,6,Math.PI,-Math.PI/2,!1),this.rampartGraphics.fill(i)}if(a){let e=t(i);!o&&!l&&n>0&&r<49?(this.rampartGraphics.moveTo(u,n*12),this.rampartGraphics.arc(u,d,6,-Math.PI/2,0,!1),this.rampartGraphics.lineTo(u,d),this.rampartGraphics.fill(e)):(this.rampartGraphics.rect(u,n*12,6,6),this.rampartGraphics.fill(e))}else if(o&&l&&e[r+1][n-1]!==void 0){let i=t(e[r+1][n-1]);this.rampartGraphics.moveTo(u,n*12),this.rampartGraphics.lineTo(r*12+12,n*12),this.rampartGraphics.lineTo(r*12+12,d),this.rampartGraphics.arc(u,d,6,0,-Math.PI/2,!0),this.rampartGraphics.fill(i)}if(a){let e=t(i);!s&&!c&&n<49&&r>0?(this.rampartGraphics.moveTo(r*12,d),this.rampartGraphics.arc(u,d,6,Math.PI,Math.PI/2,!0),this.rampartGraphics.lineTo(u,d),this.rampartGraphics.fill(e)):(this.rampartGraphics.rect(r*12,d,6,6),this.rampartGraphics.fill(e))}else if(s&&c&&e[r-1][n+1]!==void 0){let i=t(e[r-1][n+1]);this.rampartGraphics.moveTo(r*12,d),this.rampartGraphics.lineTo(r*12,n*12+12),this.rampartGraphics.lineTo(u,n*12+12),this.rampartGraphics.arc(u,d,6,Math.PI/2,Math.PI,!1),this.rampartGraphics.fill(i)}if(a){let e=t(i);!s&&!l&&n<49&&r<49?(this.rampartGraphics.moveTo(u,n*12+12),this.rampartGraphics.arc(u,d,6,Math.PI/2,0,!0),this.rampartGraphics.lineTo(u,d),this.rampartGraphics.fill(e)):(this.rampartGraphics.rect(u,d,6,6),this.rampartGraphics.fill(e))}else if(s&&l&&e[r+1][n+1]!==void 0){let i=t(e[r+1][n+1]);this.rampartGraphics.moveTo(u,n*12+12),this.rampartGraphics.lineTo(r*12+12,n*12+12),this.rampartGraphics.lineTo(r*12+12,d),this.rampartGraphics.arc(u,d,6,0,Math.PI/2,!1),this.rampartGraphics.fill(i)}}i(n,Mt),i(r,Ot)}getObjectsAtTile(e,t){let n=[];for(let[r,i]of this.objects){let a=this.rawObjects.get(r);a&&a.x===e&&a.y===t&&n.push({id:r,obj:a,visual:i})}return n}applyLabelScale(e){let t=this.lastWorldScale||1;e.__nameLabel&&(e.__nameLabel.scale.set(to/t),e.__nameLabel.anchor.y===0?e.__nameLabel.y=12.600000000000001:e.__nameLabel.y=no-ro/t),e.__sayBubble&&!e.__sayBubble.destroyed&&(e.__sayBubble.scale.set(1/t),e.__sayBubble.position.set(12/2,no-lo/t))}refreshForeignCreepLabels(){if(this.currentUserId)for(let[e,t]of this.objects){let n=this.rawObjects.get(e);if(!n||n.type!==`creep`||!t.__nameLabel||!vl(n,this.currentUserId))continue;let r=typeof n.user==`string`?n.user:void 0,i=bl(n,this.users)?`Invader`:r?this.users?.[r]?.username??r:`Hostile`;t.__nameLabel.text!==i&&(t.__nameLabel.text=i)}}refreshForeignCreepBadges(){if(this.currentUserId)for(let[e,t]of this.objects){let n=this.rawObjects.get(e);if(!n||n.type!==`creep`||!vl(n,this.currentUserId)||t.__creepBadgeSprite)continue;let r=typeof n.user==`string`?n.user:void 0,i=r?this.users?.[r]?.badge:void 0;if(!i)continue;let a=t.__bodyContainer;if(!a)continue;t.__creepForeignMark&&!t.__creepForeignMark.destroyed&&(a.removeChild(t.__creepForeignMark),t.__creepForeignMark.destroy(),t.__creepForeignMark=void 0);let o=new Ve;o.anchor.set(.5,.5);let s=Qa*2;o.width=s,o.height=s,o.rotation=Math.PI/2,a.addChild(o),t.__creepBadgeSprite=o,this.badgeCache.getOrCreate(i).then(e=>{o.destroyed||(o.texture=e)}).catch(()=>{o.destroyed||(a.removeChild(o),o.destroy()),t.__creepBadgeSprite=void 0})}}triggerBuildAt(e,t,n){if(!this.instantMode)for(let[r,i]of this.objects){let a=this.rawObjects.get(r);if(!(!a||a.type!==`constructionSite`)&&!(a.x!==e||a.y!==t)&&i.__csBuildGlow){this.buildGlowAnimations.set(r,{startTime:performance.now(),duration:n});return}}}triggerTowerAim(e,t,n,r){if(this.instantMode)return;let i=this.objects.get(e);if(!i||!i.__barrelContainer)return;let a=this.rawObjects.get(e);if(!a)return;let o=t-a.x,s=n-a.y;o===0&&s===0||(i.__towerAimAngle=Math.atan2(s,o)+Ts,i.__towerAimUntil=performance.now()+r)}triggerSay(e,t){let n=this.objects.get(e);if(!n||n.__sayMessage===t&&n.__sayBubble&&!n.__sayBubble.destroyed)return;n.__sayBubble&&!n.__sayBubble.destroyed&&(n.removeChild(n.__sayBubble),n.__sayBubble.destroy({children:!0}));let r=Cl(t);n.addChild(r),n.__sayBubble=r,n.__sayMessage=t,this.applyLabelScale(n),this.sayBubbles.add(e)}setMoveDuration(e){this.moveDuration=Math.max(0,e)}setTickDuration(e){this.tickMs=Math.max(1,e)}pruneSayBubblesExcept(e){if(this.sayBubbles.size!==0)for(let t of this.sayBubbles){if(e.has(t))continue;let n=this.objects.get(t);n?.__sayBubble&&!n.__sayBubble.destroyed&&(n.removeChild(n.__sayBubble),n.__sayBubble.destroy({children:!0})),n&&(n.__sayBubble=void 0,n.__sayMessage=void 0),this.sayBubbles.delete(t)}}setInstantMode(e){if(this.instantMode=e,e){for(let e of this.objects.values())e.__targetX!==void 0&&(e.position.set(e.__targetX,e.__targetY),e.__targetX=void 0,e.__targetY=void 0,e.__moveStartX=void 0,e.__moveStartY=void 0,e.__moveStartT=void 0,e.__moveDur=void 0),e.__sayBubble&&!e.__sayBubble.destroyed&&(e.removeChild(e.__sayBubble),e.__sayBubble.destroy({children:!0}),e.__sayBubble=void 0,e.__sayMessage=void 0);this.sayBubbles.clear();for(let e of this.fillAnimations.values())e.apply(e.visual,e.toA,e.toB);this.fillAnimations.clear(),this.buildGlowAnimations.clear(),this.ctrlFlashAnimations.clear()}}setShowLabels(e){this.showLabels=e;for(let t of this.objects.values())t.__nameLabel&&(t.__nameLabel.visible=e)}getVisualById(e){return this.objects.get(e)}clear(){for(let e of this.objects.values())Sl(e);this.objects.clear(),this.rawObjects.clear(),this.fillAnimations.clear(),this.buildGlowAnimations.clear(),this.ctrlFlashAnimations.clear(),this.sayBubbles.clear(),this.roadGraphics.clear(),this.rampartGraphics.clear(),this.rampartGlowGraphics.clear(),this.container.removeChildren(),this.container.addChild(this.rampartGraphics),this.container.addChild(this.rampartGlowGraphics),this.container.addChild(this.roadGraphics)}destroy(){this.clear(),this.ticker&&this.tickerCallback&&this.ticker.remove(this.tickerCallback),this.ticker=null,this.tickerCallback=null}},Tl=2,El=3,Dl=12*.45,Ol=.55;function kl(e,t){return{cx:e*12+12/2,cy:t*12+12/2}}var Al=class{container;graphics;animations=[];ticker=null;tickerCallback=null;constructor(e){this.container=new Fe,this.graphics=new V,this.container.addChild(this.graphics),e&&(this.ticker=e,this.tickerCallback=()=>this.animate(),e.add(this.tickerCallback))}addHarvest(e,t,n,r,i){let a=kl(e,t),o=kl(n,r);this.animations.push({fromX:a.cx,fromY:a.cy,toX:o.cx,toY:o.cy,startTime:performance.now(),duration:i,color:Ct,width:Tl,glowAtSource:!0})}addUpgradeController(e,t,n,r,i){let a=kl(e,t),o=kl(n,r);this.animations.push({fromX:a.cx,fromY:a.cy,toX:o.cx,toY:o.cy,startTime:performance.now(),duration:i,color:en,width:Tl})}addTransfer(e,t,n,r,i){let a=kl(e,t),o=kl(n,r);this.animations.push({fromX:a.cx,fromY:a.cy,toX:o.cx,toY:o.cy,startTime:performance.now(),duration:i,color:ot,width:Tl})}addBuild(e,t,n,r,i){let a=kl(e,t),o=kl(n,r);this.animations.push({fromX:a.cx,fromY:a.cy,toX:o.cx,toY:o.cy,startTime:performance.now(),duration:i,color:vt,width:Tl})}addRepair(e,t,n,r,i){let a=kl(e,t),o=kl(n,r);this.animations.push({fromX:a.cx,fromY:a.cy,toX:o.cx,toY:o.cy,startTime:performance.now(),duration:i,color:Ut,width:Tl})}addLinkTransfer(e,t,n,r,i){let a=kl(e,t),o=kl(n,r);this.animations.push({fromX:a.cx,fromY:a.cy,toX:o.cx,toY:o.cy,startTime:performance.now(),duration:i,color:St,width:Tl})}addLabReaction(e,t,n,r,i){let a=kl(e,t),o=kl(n,r);this.animations.push({fromX:a.cx,fromY:a.cy,toX:o.cx,toY:o.cy,startTime:performance.now(),duration:i,color:wn,width:Tl})}addTowerBeam(e,t,n,r,i,a){let o=kl(e,t),s=kl(n,r);this.animations.push({fromX:o.cx,fromY:o.cy,toX:s.cx,toY:s.cy,startTime:performance.now(),duration:i,color:a,width:El})}addTowerAttack(e,t,n,r,i){this.addTowerBeam(e,t,n,r,i,Ht)}addTowerHeal(e,t,n,r,i){this.addTowerBeam(e,t,n,r,i,Wt)}addTowerRepair(e,t,n,r,i){this.addTowerBeam(e,t,n,r,i,Nt)}animate(){this.graphics.clear();let e=performance.now(),t=!1;for(let n=this.animations.length-1;n>=0;n--){let r=this.animations[n],i=e-r.startTime,a=Math.min(1,i/r.duration),o,s,c,l,u=.5,d=.2;if(a<u){let e=a/u;o=r.fromX,s=r.fromY,c=r.fromX+(r.toX-r.fromX)*e,l=r.fromY+(r.toY-r.fromY)*e}else if(a<.7)o=r.fromX,s=r.fromY,c=r.toX,l=r.toY;else{let e=(a-u-d)/(1-u-d);o=r.fromX+(r.toX-r.fromX)*e,s=r.fromY+(r.toY-r.fromY)*e,c=r.toX,l=r.toY}if(this.graphics.moveTo(o,s),this.graphics.lineTo(c,l),this.graphics.stroke({width:r.width,color:r.color}),a>=u){let e=(a-u)/(1-u),t=(1-e)*Ol,n=r.width/Tl*Dl*(.7+.5*e),i=r.glowAtSource?r.fromX:r.toX,o=r.glowAtSource?r.fromY:r.toY;this.graphics.circle(i,o,n),this.graphics.fill({color:r.color,alpha:t*.4}),this.graphics.circle(i,o,n*.55),this.graphics.fill({color:r.color,alpha:t})}t=!0,a>=1&&this.animations.splice(n,1)}t||this.graphics.clear()}clear(){this.animations.length=0,this.graphics.clear()}destroy(){this.clear(),this.ticker&&this.tickerCallback&&this.ticker.remove(this.tickerCallback),this.ticker=null,this.tickerCallback=null,this.graphics.destroy(),this.container.destroy()}},jl=e=>(e+.5)*12,Ml={dashed:[.3*12,.25*12],dotted:[.1*12,.2*12]},Nl=2400;function Pl(e){if(e==null)return .7;if(typeof e==`number`)return e;let t=e.match(/^([0-9.]+)(px)?/);if(!t)return .7;let n=parseFloat(t[1]);return t[2]?n/12:n}function Fl(e){if(typeof e!=`string`)return`sans-serif`;let t=e.match(/^[0-9.]+(px)?\s+(.+)$/);return t?t[2]:`sans-serif`}var Il=class{container;canvas;ctx;texture;sprite;resolution;world;ticker;lastRaw=``;lastPhysSize=0;prevScaleX=-1;constructor(e,t,n){this.resolution=e.resolution,this.world=t,this.ticker=n,this.canvas=document.createElement(`canvas`),this.ctx=this.canvas.getContext(`2d`);let r=this.idealPhysSize();this.canvas.width=r,this.canvas.height=r,this.texture=qe.from(this.canvas,!0),this.lastPhysSize=r,this.sprite=new Ve(this.texture),this.sprite.scale.set(600/r),this.container=new Fe,this.container.label=`visuals`,this.container.addChild(this.sprite),this.ticker.add(this.onTick,this)}idealPhysSize(){return Math.min(Math.ceil(this.world.scale.x*this.resolution*600),Nl)}onTick=()=>{let e=this.world.scale.x,t=this.idealPhysSize();e===this.prevScaleX&&t!==this.lastPhysSize&&this.lastRaw&&(this.resizeTo(t),this.redraw()),this.prevScaleX=e};update(e){this.lastRaw=e;let t=this.idealPhysSize();t!==this.lastPhysSize&&this.resizeTo(t),this.redraw()}resizeTo(e){this.canvas.width=e,this.canvas.height=e;let t=this.texture;this.texture=qe.from(this.canvas,!0),this.sprite.texture=this.texture,this.sprite.scale.set(600/e),t.destroy(!0),this.lastPhysSize=e}redraw(){let{ctx:e,canvas:t}=this;if(e.clearRect(0,0,t.width,t.height),!this.lastRaw){this.sprite.visible=!1,this.texture.source.update();return}let n=t.width/600;e.save(),e.scale(n,n);for(let e of this.lastRaw.split(`
|
|
3
|
+
`)){if(!e.trim())continue;let t;try{t=JSON.parse(e)}catch{continue}let n=t.s??{},r=n.opacity??1;switch(t.t){case`l`:this.drawLine(t,n,r);break;case`c`:this.drawCircle(t,n,r);break;case`r`:this.drawRect(t,n,r);break;case`p`:this.drawPoly(t,n,r);break;case`t`:this.drawText(t,n,r);break}}e.restore(),this.texture.source.update(),this.sprite.visible=!0}drawLine(e,t,n){let{ctx:r}=this;r.save(),r.globalAlpha=n,r.strokeStyle=t.color??`#ffffff`,r.lineWidth=(t.width??.1)*12,r.setLineDash(t.lineStyle===`dotted`?Ml.dotted:t.lineStyle===`dashed`?Ml.dashed:[]),r.beginPath(),r.moveTo(jl(e.x1),jl(e.y1)),r.lineTo(jl(e.x2),jl(e.y2)),r.stroke(),r.restore()}drawCircle(e,t,n){let{ctx:r}=this;r.save(),r.globalAlpha=n,r.setLineDash(t.lineStyle===`dotted`?Ml.dotted:t.lineStyle===`dashed`?Ml.dashed:[]),r.beginPath(),r.arc(jl(e.x),jl(e.y),(t.radius??.5)*12,0,2*Math.PI),t.fill&&t.fill!==`transparent`&&(r.fillStyle=t.fill,r.fill()),t.stroke&&t.strokeWidth&&(r.strokeStyle=t.stroke,r.lineWidth=t.strokeWidth*12,r.stroke()),r.restore()}drawRect(e,t,n){let{ctx:r}=this;r.save(),r.globalAlpha=n,r.setLineDash(t.lineStyle===`dotted`?Ml.dotted:t.lineStyle===`dashed`?Ml.dashed:[]),r.beginPath(),r.rect(jl(e.x),jl(e.y),e.w*12,e.h*12),t.fill&&t.fill!==`transparent`&&(r.fillStyle=t.fill,r.fill()),t.stroke&&t.strokeWidth&&(r.strokeStyle=t.stroke,r.lineWidth=t.strokeWidth*12,r.stroke()),r.restore()}drawPoly(e,t,n){if(!e.points?.length)return;let{ctx:r}=this;r.save(),r.globalAlpha=n,r.setLineDash(t.lineStyle===`dotted`?Ml.dotted:t.lineStyle===`dashed`?Ml.dashed:[]),r.beginPath(),r.moveTo(jl(e.points[0][0]),jl(e.points[0][1]));for(let t=1;t<e.points.length;t++)r.lineTo(jl(e.points[t][0]),jl(e.points[t][1]));t.fill&&t.fill!==`transparent`&&(r.fillStyle=t.fill,r.fill()),t.stroke&&t.strokeWidth&&(r.closePath(),r.strokeStyle=t.stroke,r.lineWidth=t.strokeWidth*12,r.stroke()),r.restore()}drawText(e,t,n){let{ctx:r}=this,i=Pl(t.font)*12,a=Fl(t.font),o=t.align??`left`,s=jl(e.x),c=jl(e.y);if(r.save(),r.globalAlpha=n,r.font=`${i}px ${a}`,r.textAlign=o,r.textBaseline=`middle`,t.backgroundColor&&t.backgroundColor!==`transparent`){let n=r.measureText(e.text).width,a=(t.backgroundPadding??.3)*12,l=o===`center`?.5:+(o===`right`);r.fillStyle=t.backgroundColor,r.fillRect(s-l*n-a,c-i/2-a,n+a*2,i+a*2)}r.fillStyle=t.color??`#ffffff`,t.stroke&&t.strokeWidth&&(r.strokeStyle=t.stroke,r.lineWidth=t.strokeWidth*12,r.lineJoin=`round`,r.strokeText(e.text,s,c)),r.fillText(e.text,s,c),r.restore()}destroy(){this.ticker.remove(this.onTick,this),this.texture.destroy(!0),this.container.destroy({children:!0})}},Ll=Symbol(`store-raw`),Rl=Symbol(`store-node`),zl=Symbol(`store-has`),Bl=Symbol(`store-self`),Vl={onStoreNodeUpdate:null};function Hl(e){let t=e[l];if(!t&&(Object.defineProperty(e,l,{value:t=new Proxy(e,Xl)}),!Array.isArray(e))){let n=Object.keys(e),r=Object.getOwnPropertyDescriptors(e),i=Object.getPrototypeOf(e),a=i!==null&&typeof e==`object`&&!!e&&!Array.isArray(e)&&i!==Object.prototype;if(a){let e=Object.getOwnPropertyDescriptors(i);n.push(...Object.keys(e)),Object.assign(r,e)}for(let i=0,o=n.length;i<o;i++){let o=n[i];a&&o===`constructor`||r[o].get&&Object.defineProperty(e,o,{configurable:!0,enumerable:r[o].enumerable,get:r[o].get.bind(t)})}}return t}function Ul(e){let t;return typeof e==`object`&&!!e&&(e[l]||!(t=Object.getPrototypeOf(e))||t===Object.prototype||Array.isArray(e))}function Wl(e,t=new Set){let n,r,i,a;if(n=e!=null&&e[Ll])return n;if(!Ul(e)||t.has(e))return e;if(Array.isArray(e)){Object.isFrozen(e)?e=e.slice(0):t.add(e);for(let n=0,a=e.length;n<a;n++)i=e[n],(r=Wl(i,t))!==i&&(e[n]=r)}else{Object.isFrozen(e)?e=Object.assign({},e):t.add(e);let n=Object.keys(e),o=Object.getOwnPropertyDescriptors(e);for(let s=0,c=n.length;s<c;s++)a=n[s],!o[a].get&&(i=e[a],(r=Wl(i,t))!==i&&(e[a]=r))}return e}function Gl(e,t){let n=e[t];return n||Object.defineProperty(e,t,{value:n=Object.create(null)}),n}function Kl(e,t,n){if(e[t])return e[t];let[r,i]=a(n,{equals:!1,internal:!0});return r.$=i,e[t]=r}function ql(e,t){let n=Reflect.getOwnPropertyDescriptor(e,t);return!n||n.get||!n.configurable||t===l||t===Rl?n:(delete n.value,delete n.writable,n.get=()=>e[l][t],n)}function Jl(e){t()&&Kl(Gl(e,Rl),Bl)()}function Yl(e){return Jl(e),Reflect.ownKeys(e)}var Xl={get(e,n,r){if(n===Ll)return e;if(n===l)return r;if(n===h)return Jl(e),r;let i=Gl(e,Rl),a=i[n],o=a?a():e[n];if(n===Rl||n===zl||n===`__proto__`)return o;if(!a){let r=Object.getOwnPropertyDescriptor(e,n);t()&&(typeof o!=`function`||e.hasOwnProperty(n))&&!(r&&r.get)&&(o=Kl(i,n,o)())}return Ul(o)?Hl(o):o},has(e,n){return n===Ll||n===l||n===h||n===Rl||n===zl||n===`__proto__`?!0:(t()&&Kl(Gl(e,zl),n)(),n in e)},set(){return console.warn(`Cannot mutate a Store directly`),!0},deleteProperty(){return console.warn(`Cannot mutate a Store directly`),!0},ownKeys:Yl,getOwnPropertyDescriptor:ql};function Zl(e,t,n,r=!1){if(t===`__proto__`){console.warn(`Refusing to set "__proto__" on a store.`);return}if(!r&&e[t]===n)return;let i=e[t],a=e.length;Vl.onStoreNodeUpdate&&Vl.onStoreNodeUpdate(e,t,n,i),n===void 0?(delete e[t],e[zl]&&e[zl][t]&&i!==void 0&&e[zl][t].$()):(e[t]=n,e[zl]&&e[zl][t]&&i===void 0&&e[zl][t].$());let o=Gl(e,Rl),s;if((s=Kl(o,t,i))&&s.$(()=>n),Array.isArray(e)&&e.length!==a){for(let t=e.length;t<a;t++)(s=o[t])&&s.$();(s=Kl(o,`length`,a))&&s.$(e.length)}(s=o[Bl])&&s.$()}function Ql(e,t){let n=Object.keys(t);for(let r=0;r<n.length;r+=1){let i=n[r];$l(i)||Zl(e,i,t[i])}}function $l(e){return e===`__proto__`||e===`constructor`||e===`prototype`}function eu(e,t){if(typeof t==`function`&&(t=t(e)),t=Wl(t),Array.isArray(t)){if(e===t)return;let n=0,r=t.length;for(;n<r;n++){let r=t[n];e[n]!==r&&Zl(e,n,r)}Zl(e,`length`,r)}else Ql(e,t)}function tu(e,t,n=[]){let r,i=e;if(t.length>1){r=t.shift();let a=typeof r,o=Array.isArray(e);if(a===`string`&&(r===`__proto__`||t.length>1&&$l(r))){console.warn(`Refusing to traverse unsafe key "${r}" on a store.`);return}if(Array.isArray(r)){for(let i=0;i<r.length;i++)tu(e,[r[i]].concat(t),n);return}else if(o&&a===`function`){for(let i=0;i<e.length;i++)r(e[i],i)&&tu(e,[i].concat(t),n);return}else if(o&&a===`object`){let{from:i=0,to:a=e.length-1,by:o=1}=r;for(let r=i;r<=a;r+=o)tu(e,[r].concat(t),n);return}else if(t.length>1){tu(e[r],t,[r].concat(n));return}i=e[r],n=[r].concat(n)}let a=t[0];typeof a==`function`&&(a=a(i,n),a===i)||r===void 0&&a==null||(a=Wl(a),r===void 0||Ul(i)&&Ul(a)&&!Array.isArray(a)?Ql(i,a):Zl(e,r,a))}function nu(...[e,t]){let n=Wl(e||{}),r=Array.isArray(n);if(typeof n!=`object`&&typeof n!=`function`)throw Error(`Unexpected type ${typeof n} received when initializing 'createStore'. Expected an object.`);let i=Hl(n);v.registerGraph({value:n,name:t&&t.name});function a(...e){p(()=>{r&&e.length===1?eu(n,e[0]):tu(n,e)})}return[i,a]}var ru=Symbol(`store-root`);function iu(e){return e===`__proto__`||e===`constructor`||e===`prototype`}function au(e,t,n,r,i){if(iu(n))return;let a=t[n];if(e===a)return;let o=Array.isArray(e);if(n!==ru&&(!Ul(e)||!Ul(a)||o!==Array.isArray(a)||i&&e[i]!==a[i])){Zl(t,n,e);return}if(o){if(e.length&&a.length&&(!r||i&&e[0]&&e[0][i]!=null)){let t,n,o,s,c,l,u,d;for(o=0,s=Math.min(a.length,e.length);o<s&&(a[o]===e[o]||i&&a[o]&&e[o]&&a[o][i]&&a[o][i]===e[o][i]);o++)au(e[o],a,o,r,i);let f=Array(e.length),p=new Map;for(s=a.length-1,c=e.length-1;s>=o&&c>=o&&(a[s]===e[c]||i&&a[s]&&e[c]&&a[s][i]&&a[s][i]===e[c][i]);s--,c--)f[c]=a[s];if(o>c||o>s){for(n=o;n<=c;n++)Zl(a,n,e[n]);for(;n<e.length;n++)Zl(a,n,f[n]),au(e[n],a,n,r,i);a.length>e.length&&Zl(a,`length`,e.length);return}for(u=Array(c+1),n=c;n>=o;n--)l=e[n],d=i&&l?l[i]:l,t=p.get(d),u[n]=t===void 0?-1:t,p.set(d,n);for(t=o;t<=s;t++)l=a[t],d=i&&l?l[i]:l,n=p.get(d),n!==void 0&&n!==-1&&(f[n]=a[t],n=u[n],p.set(d,n));for(n=o;n<e.length;n++)n in f?(Zl(a,n,f[n]),au(e[n],a,n,r,i)):Zl(a,n,e[n])}else for(let t=0,n=e.length;t<n;t++)au(e[t],a,t,r,i);a.length>e.length&&Zl(a,`length`,e.length);return}let s=Object.keys(e);for(let t=0,n=s.length;t<n;t++)iu(s[t])||au(e[s[t]],a,s[t],r,i);let c=Object.keys(a);for(let t=0,n=c.length;t<n;t++)e[c[t]]===void 0&&Zl(a,c[t],void 0)}function ou(e,t={}){let{merge:n,key:r=`id`}=t,i=Wl(e);return e=>{if(!Ul(e)||!Ul(i))return i;let t=au(i,{[ru]:e},ru,n,r);return t===void 0?e:t}}var su=new WeakMap;function cu(e,t){let[n,r]=nu(t),i={id:e,type:t.type,raw:n};return su.set(i,e=>r(ou(e,{key:`_id`,merge:!1}))),i}var[lu,uu]=a([]);function du(){uu([])}function fu(e){uu(t=>t.filter(t=>t.id!==e))}function pu(e,t){let n=lu(),r=!1,i=[];for(let a of n){let n=e[a.id];if(n===null){r=!0;continue}if(n!==void 0){let e=t[a.id];e&&su.get(a)?.(e)}i.push(a)}r&&uu(i)}function mu(e){let t=lu();if(t.length===0)return;let n=!1,r=[];for(let i of t){let t=e[i.id];if(!t){n=!0;continue}su.get(i)?.(t),r.push(i)}n&&uu(r)}var[hu,gu]=a(null),[_u,vu]=a(null),[yu,bu]=a(null),[xu,Su]=a(null),[Cu,wu]=a(null),[Tu,Eu]=a({}),[Du,Ou]=a(null),[ku,Au]=a(null),[ju,Mu]=a(null),[G,Nu]=a(!1),[Pu,Fu]=a(0),[Iu,Lu]=a(0),[Ru,zu]=a(0),[Bu,Vu]=a(!1),[Hu,Uu]=a(1),[Wu,Gu]=a(!1),Ku=null;function qu(){Ku!==null&&(clearInterval(Ku),Ku=null)}function Ju(){qu(),Ku=setInterval(()=>{let e=Pu()+1;e>Ru()?(qu(),Vu(!1)):Fu(e)},Math.max(50,Math.round(1e3/Hu())))}function Yu(e){let t=e,n=Math.max(0,t-2e5);zu(t),Lu(n),Fu(e),Vu(!1),qu(),Nu(!0)}function Xu(){qu(),Vu(!1),Nu(!1)}function Zu(e){Fu(Math.max(Iu(),Math.min(Ru(),e)))}function Qu(e){Zu(Pu()+e)}function $u(){Bu()?(qu(),Vu(!1)):(Vu(!0),Ju())}function ed(e){Uu(e),Bu()&&Ju()}var td=class{room;shard;http;chunkSize;chunkCache=new Map;inflight=new Map;constructor(e,t,n,r){this.room=e,this.shard=t,this.http=n,this.chunkSize=r}chunkBase(e){return e-e%this.chunkSize}loadChunk(e){let t=this.chunkCache.get(e);if(t)return Promise.resolve(t);let n=this.inflight.get(e);if(n)return n;let r=this.http.game.roomHistory(this.room,e,this.shard).then(t=>(this.chunkCache.set(e,t),this.inflight.delete(e),t)).catch(t=>{throw this.inflight.delete(e),t});return this.inflight.set(e,r),r}applyDiff(e,t){let n={...e};for(let e in t){let r=t[e];r===null?delete n[e]:n[e]?n[e]={...n[e],...r}:n[e]=r}return n}async getStateAtTick(e){let t=this.chunkBase(e),n,r;try{n=await this.loadChunk(t)}catch{let i=t-this.chunkSize;if(i<0)throw Error(`No history data available before tick ${t}`);n=await this.loadChunk(i),t=i;let a=Object.keys(n.ticks).map(Number).filter(e=>e>=t),o=a.length>0?Math.max(...a):t;r=o,e=o}let i=n.ticks[String(t)]??{},a={};for(let e in i)i[e]!==null&&(a[e]=i[e]);for(let r=t+1;r<=e;r++){let e=n.ticks[String(r)];e&&Object.keys(e).length>0&&(a=this.applyDiff(a,e))}return{objects:a,diff:n.ticks[String(e)]??{},gameTime:e,clampedTo:r}}},nd=C(`<div style=text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px><div style=font-size:14px;font-weight:600;color:#f85149>You have no rooms!</div><button style="padding:4px 12px;border-radius:4px;border:1px solid #238636;background:#1a3a2a;color:#3fb950;font-size:12px;cursor:pointer">Place Spawn`),rd=C(`<div style=text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px><div style=font-size:14px;font-weight:600;color:#f85149>You lost all your spawns!</div><button style="padding:4px 12px;border-radius:4px;border:1px solid #da3633;background:#3d1a1a;color:#f85149;font-size:12px;cursor:pointer">Respawn`),id=C(`<div style=display:flex;flex-direction:column;gap:2px;text-align:center><span>Moving "<!>" → </span><span style=opacity:0.6;font-size:0.9em>Navigate rooms or change target in sidebar · Right-click to cancel`),ad=C(`<div style=display:flex;flex-direction:column;gap:2px;text-align:center><span></span><span style=opacity:0.6;font-size:0.9em>Right-click to exit flag mode`),od=C(`<div style=display:flex;flex-direction:column;gap:2px;text-align:center><span>Select a structure type, then click to build</span><span style=opacity:0.6;font-size:0.9em>Ctrl+click to remove construction sites</span><span style=opacity:0.6;font-size:0.9em>Right-click to exit build mode`),sd=C(`<div style=display:flex;flex-direction:column;gap:2px;text-align:center><span></span><span style=opacity:0.6;font-size:0.9em>Ctrl+click to remove construction sites</span><span style=opacity:0.6;font-size:0.9em>Right-click to exit build mode`),{log:cd,warn:ld,error:ud}=M(`build`),dd={COLOR_RED:1,COLOR_PURPLE:2,COLOR_BLUE:3,COLOR_CYAN:4,COLOR_GREEN:5,COLOR_YELLOW:6,COLOR_ORANGE:7,COLOR_BROWN:8,COLOR_GREY:9,COLOR_WHITE:10},fd={spawn:{0:0,1:1,2:1,3:1,4:1,5:1,6:1,7:2,8:3},extension:{0:0,1:0,2:5,3:10,4:20,5:30,6:40,7:50,8:60},link:{1:0,2:0,3:0,4:0,5:2,6:3,7:4,8:6},road:{0:2500,1:2500,2:2500,3:2500,4:2500,5:2500,6:2500,7:2500,8:2500},constructedWall:{1:0,2:2500,3:2500,4:2500,5:2500,6:2500,7:2500,8:2500},rampart:{1:0,2:2500,3:2500,4:2500,5:2500,6:2500,7:2500,8:2500},storage:{1:0,2:0,3:0,4:1,5:1,6:1,7:1,8:1},tower:{1:0,2:0,3:1,4:1,5:2,6:2,7:3,8:6},observer:{1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:1},powerSpawn:{1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:1},extractor:{1:0,2:0,3:0,4:0,5:0,6:1,7:1,8:1},terminal:{1:0,2:0,3:0,4:0,5:0,6:1,7:1,8:1},lab:{1:0,2:0,3:0,4:0,5:0,6:3,7:6,8:10},container:{0:5,1:5,2:5,3:5,4:5,5:5,6:5,7:5,8:5},nuker:{1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:1},factory:{1:0,2:0,3:0,4:0,5:0,6:0,7:1,8:1}},[pd,md]=a(`view`),[hd,gd]=a({name:``,color:`COLOR_WHITE`,secondaryColor:`COLOR_WHITE`}),[_d,vd]=a(null),[yd,bd]=a(null),[xd,Sd]=a({structureType:``,structureName:``});x(()=>{s(()=>{let e=xd().structureType;if(!e)return;let t=yu()??0,n=fd[e];if(!n)return;let r=ge()===`empty`&&e===`spawn`?Math.max(n[t]??0,1):n[t]??0;r!==2500&&(Tu()[e]??0)>=r&&(Sd({structureType:``,structureName:``}),Cd())})});function Cd(){vd(null)}function wd(){bd(null)}function Td(){Sd({structureType:``,structureName:``})}function Ed(e,t){let n=I(),r=xd(),i=_d();if(!n||!r.structureType||!i){ld(`missing requirements`,{hasClient:!!n,structureType:r.structureType,pending:i});return}if(ge()===`empty`&&r.structureType===`spawn`){cd(`placing spawn`,{room:e,x:i.tx,y:i.ty,name:r.structureName||void 0,shard:t??void 0}),n.http.game.placeSpawn(e,i.tx,i.ty,r.structureName||void 0,t??void 0).then(()=>(cd(`spawn placed`),B(`Spawn placed successfully`,`success`),Cd(),n.stores.user.refreshWorldStatus())).catch(e=>{ud(`place spawn failed:`,e),B(`Failed to place spawn: ${e.message}`,`error`)});return}cd(`creating construction site`,{room:e,x:i.tx,y:i.ty,structureType:r.structureType,name:r.structureName||void 0,shard:t??void 0}),n.http.game.createConstruction(e,i.tx,i.ty,r.structureType,r.structureName||void 0,t??void 0).then(()=>{cd(`construction site created`),B(`Construction site for ${r.structureType} created`,`success`),Cd()}).catch(e=>{ud(`create construction failed:`,e),B(`Failed to create construction site: ${e.message}`,`error`)})}function Dd(){md(`view`),Cd(),wd(),Td()}function Od(){md(`view`),Cd(),m(yd)?.type!==`moveFlag`&&wd(),Td()}function kd(){let e=pd(),t=_d(),n=yd(),r=ge();if(r===`empty`)return(()=>{var e=nd(),t=e.firstChild.nextSibling;return t.$$click=()=>{md(`build`),Sd({structureType:`spawn`,structureName:``})},e})();if(r===`lost`)return(()=>{var e=rd(),t=e.firstChild.nextSibling;return t.$$click=()=>{let e=I();e&&e.http.user.respawn().then(()=>{B(`Respawn successful`,`success`),Oe()}).catch(e=>{B(`Respawn failed: ${e.message}`,`error`)})},e})();if(n?.type===`moveFlag`)return(()=>{var e=id(),t=e.firstChild,r=t.firstChild.nextSibling;return r.nextSibling,t.nextSibling,j(t,()=>n.name,r),j(t,()=>n.targetRoom,null),e})();if(e===`flag`)return(()=>{var e=ad(),n=e.firstChild;return n.nextSibling,j(n,t?`Click again to confirm position`:`Click to choose flag position`),e})();if(e===`build`){let e=xd(),t=yu(),n=Tu(),r=e.structureType;if(!r)return(()=>{var e=od();return e.firstChild.nextSibling.nextSibling,e})();let i=fd[r]?.[t??0]??0,a=n[r]??0,o=r.replace(/([A-Z])/g,` $1`).trim(),s=i===2500?`${a}/∞`:`${a}/${i}`;return(()=>{var e=sd(),t=e.firstChild;return t.nextSibling.nextSibling,j(t,`Click to build ${o} (${s})`),e})()}return null}A([`click`]);var Ad=C(`<div style="position:absolute;bottom:0;left:0;right:0;padding:8px 12px;background:rgba(13, 17, 23, 0.85);border-top:1px solid #30363d;z-index:10"><input type=range step=1 style=width:100%;cursor:pointer><div style=display:flex;justify-content:space-between;font-size:10px;color:#8b949e;margin-top:2px><span></span><span></span><span>`),jd=C(`<div style=width:100%;height:100%;position:relative><div style=width:100%;height:100%>`),Md=C(`<div style="position:absolute;top:12px;left:50%;transform:translateX(-50%);padding:6px 16px;border-radius:6px;background:rgba(13, 17, 23, 0.65);border:1px solid rgba(48, 54, 61, 0.6);font-size:13px;font-weight:500;color:#c9d1d9;user-select:none;z-index:10">`),Nd=C(`<div style="position:absolute;top:8px;right:8px;padding:4px 10px;border-radius:4px;background:rgba(13, 17, 23, 0.8);border:1px solid #30363d;font-size:12px;color:#8b949e;z-index:10">Tick `),{log:Pd,error:Fd}=M(`room`);function Id(e,t,n=4){e.http.game.genUniqueFlagName().then(r=>{if(r.name===t&&n>0){setTimeout(()=>Id(e,t,n-1),200);return}gd(e=>({...e,name:r.name}))}).catch(e=>Fd(`gen unique flag name failed:`,e))}function Ld(e){let t=e=>e==="default"?ut:null,r,o=null,c=null,l=null,u=null,d=null,[p,h]=a(null),[g,v]=a(null),[y,b]=a(null),[x,C]=a(null),[w,T]=a(``),[E,D]=a(Pu());s(()=>D(Pu()));let O=null;return i(async()=>{r&&h(await Aa.create(r))}),n(()=>{O!==null&&clearTimeout(O),o?.destroy(),o=null,l?.destroy(),l=null,u?.destroy(),u=null;let e=p();e&&e.destroy()}),s(()=>{let t=I();if(!t||G())return;let r=e.room,i=e.shard;Pd(`navigate → ${r} (shard=${i??`default`})`),v(null),b(null),C(null),T(``),be(null),du(),Mu(r),Au(i),gu(null),vu(null),bu(null),Su(null),wu(null),Eu({}),Ou(null);let a=new $e,o=!1;t.stores.room.terrain(r,i).then(e=>{o||(Pd(`terrain loaded — ${r}`),v({room:r,data:e}))}).catch(e=>{o||Fd(`terrain load failed for ${r}:`,e)}),m(Pt)&&t.http.game.roomDecorations(r,i).then(e=>{o||(Pd(`decorations loaded — ${r}: ${e.decorations.length} item(s)`),b({room:r,decoration:qa(e)}))}).catch(e=>{o||Pd(`no decorations for ${r}: ${e}`)}),a.add(t.stores.room.subscribe(r,i)),a.add(t.stores.room.on(`room:error`,e=>{B(`Room subscription error (${e.room}): ${e.message}`,`error`,8e3)})),a.add(t.stores.room.on(`room:update`,e=>{let t=0,n={},i=0,a=null,o=null,s=null;for(let r in e.objects){t++;let c=e.objects[r];if(!c)continue;let l=c.type;if(typeof l==`string`)if(l===`constructionSite`){let e=c.structureType;typeof e==`string`&&(n[e]=(n[e]||0)+1)}else n[l]=(n[l]||0)+1;if(l===`controller`){if(typeof c.user==`string`){let t=c.user;o={userId:t,username:e.users?.[t]?.username??t},typeof c.level==`number`&&(i=c.level),typeof c.progress==`number`&&(a=c.progress)}let t=c.reservation;t&&typeof t.user==`string`&&typeof t.endTime==`number`&&(s={user:t.user,endTime:t.endTime})}}e.diff||Pd(`objects loaded — ${r}: ${t} objects, tick=${e.gameTime}`),C({objects:e.objects,diff:e.diff,users:e.users}),T(e.visual),be(e.gameTime??null),je(e.gameTime),gu(t),vu(o),bu(i||null),Su(a),wu(s),Eu(n),Ou(e.users??null)})),n(()=>{Pd(`leaving ${r}`),o=!0,a.dispose()})}),s(()=>{let t=I();if(!t||!G())return;T(``);let r=e.room,i=e.shard,a=Ee()??!0,o=ve()?.serverData?.historyChunkSize??(a?20:100),c=m(Du)??void 0,l=new td(r,i,t.http,o);s(()=>{let e=Pu(),t=!1;Gu(!0),l.getStateAtTick(e).then(e=>{if(t)return;if(Gu(!1),e.clampedTo!==void 0){zu(e.clampedTo),Zu(e.clampedTo);return}C({objects:e.objects,diff:void 0,users:c}),be(e.gameTime);let n=0,r={},i=0,a=null,o=null,s=null;for(let t in e.objects){n++;let l=e.objects[t];if(!l)continue;let u=l.type;if(typeof u==`string`)if(u===`constructionSite`){let e=l.structureType;typeof e==`string`&&(r[e]=(r[e]||0)+1)}else r[u]=(r[u]||0)+1;if(u===`controller`){if(typeof l.user==`string`){let e=l.user;o={userId:e,username:c?.[e]?.username??e},typeof l.level==`number`&&(i=l.level),typeof l.progress==`number`&&(a=l.progress)}let e=l.reservation;e&&typeof e.user==`string`&&typeof e.endTime==`number`&&(s={user:e.user,endTime:e.endTime})}}gu(n),vu(o),bu(i||null),Su(a),wu(s),Eu(r)}).catch(n=>{t||(Gu(!1),B(`History load failed for tick ${e}: ${n.message}`,`error`,5e3))}),n(()=>{t=!0})})}),s(()=>{let t=p();if(!t)return;e.room,e.shard,Od(),t.hoverLayer.clearPendingTile();let n=m(yd);n?.type===`moveFlag`?bd({...n,targetRoom:e.room}):t.resetView(),d?.destroy(),d=null,t.clear(),t.resetView(),o?.destroy(),o=null,l?.destroy(),l=null,u?.destroy(),u=null;let r=m(g);if(r&&r.room===e.room){Pd(`terrain applied immediately (pre-loaded) — ${e.room}`);let n=m(y);d=Ba(r.data,t.app.renderer,n?.room===e.room?n.decoration.terrain:void 0),Va(d,m(yt)),d.zIndex=Oa.terrain,t.world.addChild(d),t.bringNavOverlayToTop()}let i=e.room,a=e.shard,s=Fn(i),c=m(()=>e.onNavigate),f=m(Pe);if(s&&c){let e=(e,t)=>!f||Yt(e,t,f),n=e=>{Pd(`navigate requested: ${i} → ${e}`),c(e,a)};t.setupNavigationZones({west:e(s.x-1,s.y)?()=>n(Gt(s.x-1,s.y)):void 0,east:e(s.x+1,s.y)?()=>n(Gt(s.x+1,s.y)):void 0,north:e(s.x,s.y-1)?()=>n(Gt(s.x,s.y-1)):void 0,south:e(s.x,s.y+1)?()=>n(Gt(s.x,s.y+1)):void 0})}}),s(()=>{let t=p();if(!t)return;let n=m(()=>e.room),r=m(()=>e.shard),i=Fn(n);if(i&&e.onNavigate){let a=e.onNavigate,o=Pe(),s=(e,t)=>!o||Yt(e,t,o),c=e=>{Pd(`navigate requested: ${n} → ${e}`),a(e,r)};on({currentRoom:()=>e.room,worldBounds:Pe,onMove:(e,t)=>c(Gt(e,t))}),t.setupNavigationZones({west:s(i.x-1,i.y)?()=>c(Gt(i.x-1,i.y)):void 0,east:s(i.x+1,i.y)?()=>c(Gt(i.x+1,i.y)):void 0,north:s(i.x,i.y-1)?()=>c(Gt(i.x,i.y-1)):void 0,south:s(i.x,i.y+1)?()=>c(Gt(i.x,i.y+1)):void 0})}}),s(()=>{let e=pd(),t=p();e===`view`&&t&&(Cd(),t.hoverLayer.clearPendingTile())}),s(()=>{let e=p(),t=_d();e&&(t?e.hoverLayer.setPendingTile(t.tx,t.ty):e.hoverLayer.clearPendingTile())}),s(()=>{let t=p(),n=g();if(!t||!n||n.room!==e.room)return;if(d?.parent){Pd(`terrain already in scene, skipping — ${e.room}`);return}Pd(`terrain applied (async) — ${e.room}`);let r=m(y);d=Ba(n.data,t.app.renderer,r?.room===e.room?r.decoration.terrain:void 0),Va(d,m(yt)),t.world.addChildAt(d,0),t.bringNavOverlayToTop()}),s(()=>{if(Pt())return;b(null);let t=m(p),n=m(g);!t||!n||n.room!==e.room||d?.parent&&(d.destroy(),d=Ba(n.data,t.app.renderer),Va(d,m(yt)),t.world.addChildAt(d,0),t.bringNavOverlayToTop(),o?.setRoadColor(dt))}),s(()=>{let t=p(),n=y(),r=m(g);!t||!n||n.room!==e.room||!r||r.room!==e.room||d?.parent&&(Pd(`decoration arrived, rebuilding terrain layer — ${e.room}`),d.destroy(),d=Ba(r.data,t.app.renderer,n.decoration.terrain),Va(d,m(yt)),t.world.addChildAt(d,0),t.bringNavOverlayToTop(),o&&n.decoration.roadColor!=null&&o.setRoadColor(n.decoration.roadColor))}),s(()=>{let n=p(),r=x();if(!n)return;if(!r){o?.clear(),l?.clear(),n.clearLighting();return}let{objects:i,diff:a,users:s}=r,d=o?a:void 0;if(!o){Pd(`object layer created — ${e.room}`),o=new wl(n.app.ticker,gt(),z()?._id,z()?.badge,s),o.setTheme(t(m(Bt)),It),o.setInstantMode(m(G));let r=m(y);r?.room===e.room&&r.decoration.roadColor!=null&&o.setRoadColor(r.decoration.roadColor),o.setLightingLayer(n.lighting),o.container.label=`objects`,o.container.zIndex=Oa.objects,n.world.addChild(o.container),l=new Al(n.app.ticker),l.container.label=`animations`,l.container.zIndex=Oa.animations,n.world.addChild(l.container),u=new Il(n.app.renderer,n.world,n.app.ticker),u.container.zIndex=Oa.visuals,n.world.addChild(u.container),n.setTileHandlers((e,t)=>{},(t,r,i)=>{let a=e.room,s=e.shard,c=pd(),l=yd();if(l?.type===`moveFlag`){let e=I();if(!e)return;let{name:n,room:i,color:a,secondaryColor:o,targetRoom:c}=l;e.http.game.removeFlag(i,n).then(()=>e.http.game.createFlag(c,t,r,n,a,o,s??void 0)).then(()=>{B(`Flag "${n}" moved`,`success`),wd()}).catch(e=>{Fd(`move flag failed:`,e),B(`Failed to move flag "${n}"`,`error`),wd()});return}if(c===`flag`){let e=_d();if(!e||e.tx!==t||e.ty!==r){vd({tx:t,ty:r}),n.hoverLayer.setPendingTile(t,r);return}let i=I();if(!i)return;let o=hd(),c=o.name.trim();if(!c){B(`Flag name is required`,`error`);return}let l=dd[o.color]??0,u=dd[o.secondaryColor]??0;i.http.game.createFlag(a,t,r,c,l,u,s??void 0).then(()=>{B(`Flag "${c}" created`,`success`),Cd(),n.hoverLayer.clearPendingTile(),Id(i,c)}).catch(e=>Fd(`create flag failed:`,e));return}if(c===`build`){if(!i&&!xd().structureType){B(`Select a structure type first`,`error`);return}if(i){if(!o)return;let e=o.getObjectsAtTile(t,r).filter(({obj:e})=>e.type===`constructionSite`);if(e.length===0){B(`No construction sites on this tile`,`error`);return}let i=I();if(!i)return;i.http.game.removeConstructionSite(a,e.map(({id:e})=>e),s??void 0).then(()=>{B(`Removed ${e.length} construction site${e.length>1?`s`:``}`,`success`),Cd(),n.hoverLayer.clearPendingTile()}).catch(e=>{Fd(`remove construction sites failed:`,e),B(`Failed to remove construction sites: ${e.message}`,`error`)});return}vd({tx:t,ty:r}),n.hoverLayer.setPendingTile(t,r),Ed(a,s);return}if(Cd(),n.hoverLayer.clearPendingTile(),!o)return;let u=o.getObjectsAtTile(t,r);if(u.length===0){i||(uu([]),n.hoverLayer.clearSelection());return}let d=[...lu()];if(i){let e=new Set(u.map(e=>e.id));if(d.some(t=>e.has(t.id)))d=d.filter(t=>!e.has(t.id));else{let e=u.filter(({id:e})=>!d.some(t=>t.id===e)).map(({id:e,obj:t})=>cu(e,t));d=[...d,...e]}}else d=u.map(({id:e,obj:t})=>cu(e,t));uu(d);let f=d.map(({id:e,type:t})=>({id:e,type:t,visual:o.getVisualById(e)})).filter(e=>e.visual!=null);n.hoverLayer.setSelectedObjects(f)},()=>{let e=pd();(e===`build`||e===`flag`||yd()?.type===`moveFlag`)&&(Dd(),n.hoverLayer.clearPendingTile())})}d?pu(d,i):mu(i);let f=G()?Math.round(1e3/m(Hu)):Se()??2e3,h=f*.6,g=Math.round(f*.9);o.setMoveDuration(g),o.setTickDuration(f),c={objects:i,users:s},o.update(i,d,s,R()??void 0),o.setShowLabels(m(gt));let _=new Set;if(l){l.clear();for(let e in i){let t=i[e];if(!t)continue;let n=t.actionLog;if(!n)continue;if(t.type===`tower`){let r=n.attack,i=n.heal,a=n.repair;r&&l.addTowerAttack(t.x,t.y,r.x,r.y,h),i&&l.addTowerHeal(t.x,t.y,i.x,i.y,h),a&&l.addTowerRepair(t.x,t.y,a.x,a.y,h);let s=r??i??a;s&&o?.triggerTowerAim(e,s.x,s.y,h);continue}if(t.type===`link`){let e=n.transferEnergy;e&&l.addLinkTransfer(t.x,t.y,e.x,e.y,h);continue}if(t.type===`lab`){let e=n.runReaction??n.reverseReaction;e&&(l.addLabReaction(e.x1,e.y1,t.x,t.y,h),l.addLabReaction(e.x2,e.y2,t.x,t.y,h));continue}if(t.type!==`creep`)continue;let r=n.harvest;r&&l.addHarvest(r.x,r.y,t.x,t.y,h);let a=n.upgradeController;a&&l.addUpgradeController(t.x,t.y,a.x,a.y,h);let s=n.build;s&&(l.addBuild(t.x,t.y,s.x,s.y,h),o?.triggerBuildAt(s.x,s.y,h));let c=n.repair;c&&l.addRepair(t.x,t.y,c.x,c.y,h);let u=n.transfer;u&&l.addTransfer(t.x,t.y,u.x,u.y,h);let d=n.say;d&&typeof d.message==`string`&&d.message.length>0&&(o?.triggerSay(e,d.message),_.add(e))}}o.pruneSayBubblesExcept(_),m(Nn)&&n.updateLighting(i)}),s(()=>{let e=w();u?.update(Ln()?e:``)}),s(()=>{o?.setInstantMode(G())}),s(()=>{let e=yt();d&&Va(d,e)}),s(()=>{let e=p();if(!e)return;let t=Nn();e.darkOverlay.visible=t,e.lightLayer.visible=t,t||e.clearLighting()}),s(()=>{let e=t(Bt());o&&(o.setTheme(e,It),c&&(o.clear(),o.update(c.objects,void 0,c.users)))}),(()=>{var e=jd(),t=e.firstChild;return ye(e=>r=e,t),j(e,(()=>{var e=L(()=>!!kd());return()=>e()&&(()=>{var e=Md();return j(e,kd),S(t=>P(e,`pointer-events`,ge()===`empty`||ge()===`lost`?`auto`:`none`)),e})()})(),null),j(e,(()=>{var e=L(()=>!G()&&R()!==null);return()=>e()&&(()=>{var e=Nd();return e.firstChild,j(e,R,null),e})()})(),null),j(e,f(_,{get when(){return G()},get children(){var e=Ad(),t=e.firstChild,n=t.nextSibling.firstChild,r=n.nextSibling,i=r.nextSibling;return t.$$input=e=>{let t=parseInt(e.currentTarget.value,10);D(t),O!==null&&clearTimeout(O),O=setTimeout(()=>{O=null,Zu(t)},150)},j(n,Iu),j(r,(()=>{var e=L(()=>!!Wu());return()=>e()?`Loading…`:`Tick ${Pu()}`})()),j(i,Ru),S(e=>{var n=Iu(),i=Ru(),a=Wu()?`#f0883e`:`#8b949e`;return n!==e.e&&F(t,`min`,e.e=n),i!==e.t&&F(t,`max`,e.t=i),a!==e.a&&P(r,`color`,e.a=a),e},{e:void 0,t:void 0,a:void 0}),S(()=>t.value=E()),e}}),null),e})()}A([`input`]);var Rd=C(`<div style=position:fixed;bottom:16px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:9999;pointer-events:none>`),zd=C(`<div style="padding:10px 16px;border-radius:6px;font-size:13px;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,0.4);max-width:320px;word-break:break-word;pointer-events:auto;animation:toast-in 0.2s ease">`);function Bd(){return(()=>{var e=Rd();return j(e,f(u,{get each(){return T()},children:e=>(()=>{var t=zd();return j(t,()=>e.message),S(n=>P(t,`background`,e.type===`error`?`#da3633`:`#238636`)),t})()})),e})()}var[Vd,Hd]=a(!0),[Ud,Wd]=a(!0),[Gd,Kd]=a(!1),[qd,Jd]=a(``),Yd;function Xd(e){Yd=e}function Zd(e){Jd(e),Wd(!0),requestAnimationFrame(()=>{Yd?.focus();let t=e.length;Yd?.setSelectionRange(t,t)})}function Qd(){Hd(e=>!e)}function $d(){Wd(e=>!e)}function ef(){Kd(e=>!e)}var[tf,nf]=a(Me(Ne.memoryWatches,[])),[rf,af]=a(null),[of,sf]=nu({});function cf(e){let t=e.trim();t&&(nf(e=>e.includes(t)?e:[...e,t]),Te(Ne.memoryWatches,tf()))}function lf(e){nf(t=>t.filter(t=>t!==e)),Te(Ne.memoryWatches,tf())}function uf(){af(null)}function df(e,t){af({creepId:e,name:t})}function ff(e,t){let n=[...t];if(e){let t=`creeps.${e.name}`;n.includes(t)||n.push(t)}return n}function pf(e){let t=new Map,r=()=>{let n=I();if(!n)return;let r=new Set(ff(rf(),tf()));for(let i of r)t.has(i)||t.set(i,n.stores.user.subscribeMemory(i,e));for(let[e,n]of t)r.has(e)||(n.dispose(),t.delete(e))};s(()=>{tf(),rf(),r()});let i=I(),a=null;return i?a=i.stores.user.on(`user:memory`,e=>{sf(e.path,e.value)}):console.warn(`[memoryStore] no client available when initMemorySubscriptions called`),n(()=>{for(let e of t.values())e.dispose();t.clear(),a?.dispose()}),r(),()=>{for(let e of t.values())e.dispose();t.clear(),a?.dispose()}}x(()=>{s(()=>{let e=rf();e&&(lu().some(t=>t.id===e.creepId)||uf())})});var mf=C(`<button style=color:#8b949e>`),hf=C(`<span style=width:18px;flex-shrink:0>`),gf=C(`<span style=color:#484f58;font-style:italic>{…}`),_f=C(`<span style=color:#484f58;font-style:italic>`),vf=C(`<button title=Reload>`),yf=C(`<span title="Click to edit"style=cursor:text;flex:1>`),bf=C(`<input type=text autofocus style="background:#161b22;border:1px solid #388bfd;color:#c9d1d9;border-radius:3px;padding:0 4px;font-size:12px;font-family:inherit;flex:1;min-width:60px">`),xf=C(`<button title=Save style=color:#3fb950>`),Sf=C(`<button title=Discard style=color:#f85149>`),Cf=C(`<div><div style=display:flex;align-items:center;gap:2px;min-height:20px><span style=color:#8b949e;flex-shrink:0></span><span style="color:#484f58;margin:0 2px;flex-shrink:0">:</span><button>`),{error:wf}=M(`MemoryTree`);function Tf(e){return typeof e==`object`&&!!e&&`__screeps_object__`in e}var Ef={"font-family":`ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace`,"font-size":`12px`,"line-height":`1.5`},Df={background:`transparent`,border:`none`,color:`#8b949e`,cursor:`pointer`,padding:`2px`,"border-radius":`3px`,display:`inline-flex`,"align-items":`center`,"justify-content":`center`,"flex-shrink":0};function Of(e){return e.replace(/^Memory\.?/,``)}function kf(e){let[t,n]=a((e.depth??0)<2),r=()=>e.depth??0,[o,s]=a(!1),[c,l]=a(``),[d,p]=a(!1),[m,h]=a(void 0),g=()=>Tf(e.value)&&m()!==void 0?m():e.value,v=()=>{let e=g();return!Tf(e)&&typeof e==`object`&&!!e},y=()=>v()?Object.entries(g()):[],b=()=>y().length,x=async()=>{p(!0);try{let t=I();if(!t)return;let n=Of(e.path),r=await t.http.user.memory.get(n,e.shard);h(r.data===`[object Object]`?{__screeps_object__:!0}:r.data)}catch(e){wf(`fetch memory failed`,e)}finally{p(!1)}},C=()=>{h(void 0),x()};i(()=>{t()&&Tf(e.value)&&m()===void 0&&x()});let w=async()=>{if(Tf(e.value)&&m()===void 0){await x(),n(!0);return}t()&&h(void 0),n(e=>!e)},T=async()=>{let t=c().trim(),n;if(t===`null`)n=null;else if(t===`true`)n=!0;else if(t===`false`)n=!1;else{let e=Number(t);if(!Number.isNaN(e)&&t!==``)n=e;else try{n=JSON.parse(t)}catch{n=t}}let r=I();if(!r)return;let i=Of(e.path);try{await r.http.user.memory.set(i,n,e.shard)}catch(e){wf(`set memory failed`,e),s(!1);return}s(!1),e.onRefresh?.()},E=()=>{let e=g();return v()?`#c9d1d9`:typeof e==`string`?`#3fb950`:typeof e==`number`?`#79c0ff`:typeof e==`boolean`?`#a371f7`:`#8b949e`},D=()=>{let e=g();return e===null?`null`:e===void 0?`undefined`:typeof e==`string`?JSON.stringify(e):String(e)};return(()=>{var n=Cf(),i=n.firstChild,a=i.firstChild,p=a.nextSibling.nextSibling;return j(i,f(_,{get when(){return v()||Tf(g())},get children(){var e=mf();return e.$$click=()=>void w(),j(e,f(_,{get when(){return d()},get children(){return f(Ur,{size:12,style:{animation:`spin 1s linear infinite`}})}}),null),j(e,f(_,{get when(){return!d()},get children(){return f(_,{get when(){return t()},get fallback(){return f(sr,{size:12})},get children(){return f(ar,{size:12})}})}}),null),S(n=>{var r={...Df},i=t()?`Collapse`:`Expand`,a=d();return n.e=N(e,r,n.e),i!==n.t&&F(e,`title`,n.t=i),a!==n.a&&(e.disabled=n.a=a),n},{e:void 0,t:void 0,a:void 0}),e}}),a),j(i,f(_,{get when(){return L(()=>!v())()&&!Tf(g())},get children(){return hf()}}),a),j(a,()=>e.label),j(i,f(_,{get when(){return Tf(g())},get children(){return gf()}}),p),j(i,f(_,{get when(){return v()},get children(){var e=_f();return j(e,(()=>{var e=L(()=>!!Array.isArray(g()));return()=>e()?`[${b()}]`:`{${b()}}`})()),e}}),p),j(i,f(_,{get when(){return L(()=>!!Tf(e.value))()&&!d()},get children(){var e=vf();return e.$$click=()=>C(),j(e,f(di,{size:11})),S(t=>N(e,Df,t)),e}}),p),j(i,f(_,{get when(){return L(()=>!v())()&&!Tf(g())},get children(){return[f(_,{get when(){return!o()},get children(){var e=yf();return e.$$click=()=>{l(D()),s(!0)},j(e,D),S(t=>P(e,`color`,E())),e}}),f(_,{get when(){return o()},get children(){return[(()=>{var e=bf();return e.$$keydown=e=>{e.key===`Enter`&&T(),e.key===`Escape`&&s(!1)},e.$$input=e=>l(e.currentTarget.value),S(()=>e.value=c()),e})(),(()=>{var e=xf();return e.$$mousedown=e=>{e.preventDefault(),T()},j(e,f(rr,{size:12})),S(t=>N(e,{...Df},t)),e})(),(()=>{var e=Sf();return e.$$mousedown=e=>{e.preventDefault(),s(!1)},j(e,f(Ni,{size:12})),S(t=>N(e,{...Df},t)),e})()]}})]}}),p),p.$$click=()=>Zd(`Memory.${Of(e.path)} = `),j(p,f(Di,{size:11})),j(n,f(_,{get when(){return L(()=>!!v())()&&t()},get children(){return f(u,{get each(){return y()},children:([t,n])=>f(kf,{value:n,path:Array.isArray(g())?`${e.path}[${t}]`:`${e.path}.${t}`,label:t,get shard(){return e.shard},get depth(){return r()+1},get onRefresh(){return L(()=>!!Tf(e.value))()?C:e.onRefresh}})})}}),null),S(t=>{var i={"padding-left":r()>0?`14px`:`0`,...Ef},a=Df,o=`Insert Memory.${Of(e.path)} = into console`;return t.e=N(n,i,t.e),t.t=N(p,a,t.t),o!==t.a&&F(p,`title`,t.a=o),t},{e:void 0,t:void 0,a:void 0}),n})()}function Af(e){return f(kf,{get value(){return e.value},get path(){return e.path},get label(){return e.label},get shard(){return e.shard},depth:0})}A([`click`,`input`,`keydown`,`mousedown`]);var jf=C(`<div style=color:#484f58;font-style:italic>No paths watched — add one below.`),Mf=C(`<div style=flex-shrink:0;display:flex;flex-direction:column;overflow:hidden><div class=console-scroll style=flex:1;overflow:auto;padding:8px></div><form style="display:flex;gap:6px;padding:8px;border-top:1px solid #30363d"><input type=text placeholder=creeps.Harvester1.energy style="flex:1;padding:6px 8px;border-radius:4px;border:1px solid #30363d;background:#161b22;color:#c9d1d9;font-size:12px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace"><button type=submit title="Add watch"style="padding:6px 8px;border-radius:4px;border:none;background:#238636;color:#fff;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:4px"> Watch`),Nf=C(`<div style=margin-bottom:8px><div style="display:flex;align-items:center;gap:4px;border-bottom:1px solid #21262d;padding-bottom:4px;margin-bottom:4px"><span style=color:#f0883e;font-weight:600;flex:1></span><span style=color:#484f58;font-size:10px;font-style:italic>temp</span><button title="Remove temp watch">`),Pf=C(`<div style=margin-bottom:8px><div style="display:flex;align-items:center;gap:4px;border-bottom:1px solid #21262d;padding-bottom:4px;margin-bottom:4px"><span style=color:#c9d1d9;font-weight:600;flex:1></span><button title="Remove watch">`),Ff=C(`<div style=flex-shrink:0;display:flex;overflow:hidden><div style="width:32px;flex-shrink:0;border-right:1px solid #30363d;display:flex;flex-direction:column;align-items:center;padding:6px 0;gap:6px"><button></button><button title=Clear></button></div><div class=console-scroll style=flex:1;overflow:auto;padding:8px>`),If=C(`<div style=width:4px;flex-shrink:0;cursor:col-resize>`),Lf=C(`<div style=flex-shrink:0;display:flex;flex-direction:column;overflow:hidden><div class=console-scroll style=flex:1;overflow:auto;padding:8px></div><form style="display:flex;gap:6px;padding:8px;border-top:1px solid #30363d"><span style=color:#8b949e;font-size:13px;line-height:28px>></span><input type=text placeholder="Game.creeps.Harvester1.moveTo(10, 10)"style="flex:1;padding:6px 8px;border-radius:4px;border:1px solid #30363d;background:#161b22;color:#c9d1d9;font-size:12px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace"><button type=submit style="padding:6px 12px;border-radius:4px;border:none;background:#238636;color:#fff;font-size:12px;cursor:pointer">Run`),Rf=C(`<div style=flex:1;display:flex;overflow:hidden>`),zf=C(`<div style=display:flex;flex-direction:column;height:100%;background:#0d1117><div style="height:32px;flex-shrink:0;padding:0 10px;border-bottom:1px solid #30363d;display:flex;align-items:center;gap:6px"><button>Log</button><button>Console</button><button>Memory</button></div><style>
|
|
4
|
+
.console-scroll::-webkit-scrollbar {
|
|
5
|
+
width: 8px;
|
|
6
|
+
height: 8px;
|
|
7
|
+
}
|
|
8
|
+
.console-scroll::-webkit-scrollbar-track {
|
|
9
|
+
background: #161b22;
|
|
10
|
+
}
|
|
11
|
+
.console-scroll::-webkit-scrollbar-thumb {
|
|
12
|
+
background: #484f58;
|
|
13
|
+
border-radius: 4px;
|
|
14
|
+
}
|
|
15
|
+
.console-scroll::-webkit-scrollbar-thumb:hover {
|
|
16
|
+
background: #6e7681;
|
|
17
|
+
}
|
|
18
|
+
`),Bf=C(`<div style=color:#484f58;font-style:italic>No log output yet…`),Vf=C(`<div style=margin-bottom:4px;color:#f85149;white-space:pre-wrap;word-break:break-word>`),Hf=C(`<div style=margin-bottom:4px;color:#c9d1d9;white-space:pre-wrap;word-break:break-word>`),Uf=C(`<div style=color:#484f58;font-style:italic>No command results yet…`),Wf=C(`<div style=margin-bottom:4px;color:#58a6ff;white-space:pre-wrap;word-break:break-word>`),{error:Gf}=M(`console`);function Kf(e){let[t,n]=a(``),r=()=>e.shard??ku();i(()=>{pf(r())});let o={"font-family":`ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace`,"font-size":`12px`,"line-height":`1.5`},s={background:`transparent`,border:`none`,color:`#8b949e`,cursor:`pointer`,padding:`4px`,"border-radius":`4px`,display:`flex`,"align-items":`center`,"justify-content":`center`};return(()=>{var i=Mf(),a=i.firstChild,c=a.nextSibling,l=c.firstChild,d=l.nextSibling,p=d.firstChild;return j(a,f(_,{get when(){return rf()},children:e=>{let t=`creeps.${e().name}`;return(()=>{var e=Nf(),n=e.firstChild.firstChild,i=n.nextSibling.nextSibling;return j(n,t),fe(i,`click`,uf,!0),j(i,f(Ni,{size:12})),j(e,f(Af,{get value(){return of[t]},path:`Memory.${t}`,label:t,get shard(){return r()}}),null),S(e=>N(i,s,e)),e})()}}),null),j(a,f(u,{get each(){return tf()},children:e=>(()=>{var t=Pf(),n=t.firstChild.firstChild,i=n.nextSibling;return j(n,e),i.$$click=()=>lf(e),j(i,f(Ni,{size:12})),j(t,f(Af,{get value(){return of[e]},path:`Memory.${e}`,label:e,get shard(){return r()}}),null),S(e=>N(i,s,e)),t})()}),null),j(a,f(_,{get when(){return L(()=>tf().length===0)()&&!rf()},get children(){return jf()}}),null),c.addEventListener(`submit`,e=>{e.preventDefault(),cf(t()),n(``)}),l.$$input=e=>n(e.currentTarget.value),j(d,f(li,{size:14}),p),S(t=>{var n=`${e.width*100}%`,r={...o};return n!==t.e&&P(i,`width`,t.e=n),t.t=N(a,r,t.t),t},{e:void 0,t:void 0}),S(()=>l.value=t()),i})()}function qf(e){let[t,r]=a([]),[o,c]=a(!0),[l,d]=a(Me(Ne.consoleWeights,[1,1,1])),[p,m]=a(null),h,g,v,y=0;i(()=>{let e=I();if(!e)return;let t=new $e;t.add(e.stores.user.subscribe(`console`)),t.add(e.stores.user.on(`user:console`,e=>{let t=e.messages,n={id:y++,log:t.log??[],results:t.results??[],error:t.error??[]};r(e=>{let t=[...e,n];return t.length>200?t.slice(t.length-200):t})})),n(()=>t.dispose())}),s(()=>{t(),o()&&requestAnimationFrame(()=>{Vd()&&h&&(h.scrollTop=h.scrollHeight),Ud()&&g&&(g.scrollTop=g.scrollHeight)})});let b=(t,n,r)=>{let i=!t&&!n&&!r;i&&!e.isCollapsed&&e.onToggle?.(),!i&&e.isCollapsed&&e.onToggle?.()};s(()=>{b(Vd(),Ud(),Gd())});let x=()=>{let e=l(),t=[Vd(),Ud(),Gd()],n=t.filter(Boolean).length;if(n===0)return[0,0,0];if(n===1){let e=t.findIndex(Boolean);return[0,0,0].map((t,n)=>+(n===e))}let r=t.map((t,n)=>t?e[n]:0).reduce((e,t)=>e+t,0);if(r===0){let e=1/n;return[0,0,0].map((n,r)=>t[r]?e:0)}return t.map((t,n)=>t?e[n]/r:0)};s(()=>{Te(Ne.consoleWeights,l())});let C=e=>t=>{t.preventDefault(),t.stopPropagation(),m(e),document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`,window.addEventListener(`pointermove`,w),window.addEventListener(`pointerup`,T,{once:!0})},w=e=>{let t=p();if(t===null)return;let n=v;if(!n)return;let r=n.getBoundingClientRect(),i=Math.max(.02,Math.min(.98,(e.clientX-r.left)/r.width)),a=[...l()],o=[Vd(),Ud(),Gd()];if(t===0){let e=o[0],t=o[1];if(!e||!t)return;a[0]=i/(1-i),a[1]=1,d(a)}else{let e=o[1],t=o[2];if(!e||!t)return;a[1]=i/(1-i),a[2]=1,d(a)}},T=()=>{m(null),document.body.style.cursor=``,document.body.style.userSelect=``,window.removeEventListener(`pointermove`,w)},[E,D]=a([]),[O,k]=a(null),[A,ee]=a(``),te=e=>{let t=E();if(t.length!==0){if(e.key===`ArrowUp`){e.preventDefault();let n=O();n===null?(ee(qd()),k(t.length-1),Jd(t[t.length-1])):n>0&&(k(n-1),Jd(t[n-1]))}else if(e.key===`ArrowDown`){e.preventDefault();let n=O();if(n===null)return;n<t.length-1?(k(n+1),Jd(t[n+1])):(k(null),Jd(A()))}}},ne=async t=>{t.preventDefault();let n=I(),r=qd().trim();if(!(!n||!r))try{await n.http.user.console(r,e.shard??`shard0`),D(e=>[...e,r]),k(null),ee(``),Jd(``)}catch(e){Gf(`command failed:`,e)}},re=e=>({background:e?`#30363d`:`transparent`,border:`1px solid ${e?`#58a6ff`:`transparent`}`,color:e?`#c9d1d9`:`#8b949e`,"font-size":`12px`,cursor:`pointer`,padding:`2px 10px`,"border-radius":`4px`}),M=()=>t().flatMap(e=>e.log),ie=()=>t().flatMap(e=>e.error),ae=()=>t().flatMap(e=>e.results),oe={"font-family":`ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace`,"font-size":`12px`,"line-height":`1.5`},se={background:`transparent`,border:`none`,color:`#8b949e`,cursor:`pointer`,padding:`4px`,"border-radius":`4px`,display:`flex`,"align-items":`center`,"justify-content":`center`},ce=()=>{c(!0),requestAnimationFrame(()=>{Vd()&&h&&(h.scrollTop=h.scrollHeight),Ud()&&g&&(g.scrollTop=g.scrollHeight)})};return(()=>{var t=zf(),n=t.firstChild,i=n.firstChild,a=i.nextSibling,s=a.nextSibling;return n.nextSibling,fe(i,`click`,Qd,!0),fe(a,`click`,$d,!0),fe(s,`click`,ef,!0),j(t,f(_,{get when(){return!e.isCollapsed},get children(){var t=Rf();return ye(e=>v=e,t),j(t,f(_,{get when(){return Vd()},get children(){var e=Ff(),t=e.firstChild,n=t.firstChild,i=n.nextSibling,a=t.nextSibling;n.$$click=()=>o()?c(!1):ce(),j(n,(()=>{var e=L(()=>!!o());return()=>e()?f(ri,{size:16}):f(si,{size:16})})()),i.$$click=()=>r([]),j(i,f(ki,{size:16})),a.addEventListener(`scroll`,()=>{h&&c(h.scrollHeight-h.scrollTop-h.clientHeight<20)});var s=h;return typeof s==`function`?ye(s,a):h=a,j(a,(()=>{var e=L(()=>M().length===0&&ie().length===0);return()=>e()&&Bf()})(),null),j(a,f(u,{get each(){return ie()},children:e=>(()=>{var t=Vf();return t.innerHTML=e,t})()}),null),j(a,f(u,{get each(){return M()},children:e=>(()=>{var t=Hf();return t.innerHTML=e,t})()}),null),S(t=>{var r=`${x()[0]*100}%`,s=o()?`Pause scrolling`:`Resume scrolling`,c=se,l=se,u={...oe};return r!==t.e&&P(e,`width`,t.e=r),s!==t.t&&F(n,`title`,t.t=s),t.a=N(n,c,t.a),t.o=N(i,l,t.o),t.i=N(a,u,t.i),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),e}}),null),j(t,f(_,{get when(){return L(()=>!!Vd())()&&Ud()},get children(){var e=If();return fe(e,`pointerdown`,C(0),!0),S(t=>P(e,`background`,p()===0?`#388bfd`:`#21262d`)),e}}),null),j(t,f(_,{get when(){return Ud()},get children(){var e=Lf(),t=e.firstChild,n=t.nextSibling,r=n.firstChild.nextSibling;r.nextSibling,t.addEventListener(`scroll`,()=>{g&&c(g.scrollHeight-g.scrollTop-g.clientHeight<20)});var i=g;return typeof i==`function`?ye(i,t):g=t,j(t,(()=>{var e=L(()=>ae().length===0);return()=>e()&&Uf()})(),null),j(t,f(u,{get each(){return ae()},children:e=>(()=>{var t=Wf();return t.innerHTML=e,t})()}),null),n.addEventListener(`submit`,ne),r.$$keydown=te,r.$$input=e=>{k(null),Jd(e.currentTarget.value)},ye(e=>Xd(e),r),S(n=>{var r=`${x()[1]*100}%`,i={...oe};return r!==n.e&&P(e,`width`,n.e=r),n.t=N(t,i,n.t),n},{e:void 0,t:void 0}),S(()=>r.value=qd()),e}}),null),j(t,f(_,{get when(){return L(()=>!!Ud())()&&Gd()},get children(){var e=If();return fe(e,`pointerdown`,C(1),!0),S(t=>P(e,`background`,p()===1?`#388bfd`:`#21262d`)),e}}),null),j(t,f(_,{get when(){return Gd()},get children(){return f(Kf,{get shard(){return e.shard??null},get width(){return x()[2]}})}}),null),S(e=>P(t,`user-select`,p()===null?`auto`:`none`)),t}}),null),S(e=>{var t=re(Vd()),n=re(Ud()),r=re(Gd());return e.e=N(i,t,e.e),e.t=N(a,n,e.t),e.a=N(s,r,e.a),e},{e:void 0,t:void 0,a:void 0}),t})()}A([`input`,`click`,`pointerdown`,`keydown`]);var Jf=C(`<div style=display:flex;gap:5px;flex-wrap:wrap>`),Yf=C(`<div style=width:18px;height:18px;border-radius:50%;cursor:pointer;flex-shrink:0>`),Xf=[{label:`Red`,value:1,css:`#ff0000`},{label:`Purple`,value:2,css:`#800080`},{label:`Blue`,value:3,css:`#0000ff`},{label:`Cyan`,value:4,css:`#00ffff`},{label:`Green`,value:5,css:`#008000`},{label:`Yellow`,value:6,css:`#ffff00`},{label:`Orange`,value:7,css:`#ffa500`},{label:`Brown`,value:8,css:`#a52a2a`},{label:`Grey`,value:9,css:`#808080`},{label:`White`,value:10,css:`#ffffff`}];function Zf(e){return(()=>{var t=Jf();return j(t,f(u,{each:Xf,children:t=>(()=>{var n=Yf();return n.$$click=()=>e.onChange(t.value),S(r=>{var i=t.label,a=t.css,o=e.value===t.value?`0 0 0 2px #0d1117, 0 0 0 4px #c9d1d9`:`none`;return i!==r.e&&F(n,`title`,r.e=i),a!==r.t&&P(n,`background`,r.t=a),o!==r.a&&P(n,`box-shadow`,r.a=o),r},{e:void 0,t:void 0,a:void 0}),n})()})),t})()}A([`click`]);var Qf=C(`<div>`),$f=C(`<div style=font-variant-numeric:tabular-nums>`),ep=C(`<span style=font-variant-numeric:tabular-nums;font-weight:400> / `),tp=C(`<div style="background:#21262d;border-top:1px solid #30363d;font-size:10px"><div style="padding:4px 8px;background:#161b22;color:#8b949e;font-weight:600;display:flex;justify-content:space-between"><span>Store Contents</span></div><div style="display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#21262d">`),np=C(`<div style="padding:3px 8px;background:#0d1117;color:#8b949e">`),rp=C(`<div style="padding:3px 8px;background:#0d1117;color:#c9d1d9;font-variant-numeric:tabular-nums">`),ip=C(`<div>Owner`),ap=C(`<div>Hits`),op=C(`<div style=font-variant-numeric:tabular-nums> / `),sp=C(`<div>Time to live`),cp=C(`<div>Fatigue`),lp=C(`<div style="background:#21262d;border-top:1px solid #30363d;font-size:10px"><div style="padding:4px 8px;background:#161b22;color:#8b949e;font-weight:600">Body (<!>)</div><div style=display:flex;flex-wrap:wrap;gap:3px;padding:8px;background:#0d1117></div><div style="display:flex;flex-wrap:wrap;gap:2px 10px;padding:0 8px 8px;background:#0d1117">`),up=C(`<div><div>`),dp=C(`<div style=width:11px;height:11px;border-radius:50%;flex-shrink:0>`),fp=C(`<span style=font-size:10px;font-variant-numeric:tabular-nums><span style=color:#8b949e>×</span><span>`),pp=C(`<div style=display:flex;gap:6px><button style="flex:1;border-radius:4px;padding:5px 8px;font-size:11px;transition:background 150ms ease, color 150ms ease, border-color 150ms ease">Apply color</button><button style="border-radius:4px;padding:5px 8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background 150ms ease, color 150ms ease">`),mp=C(`<div style=padding:8px;display:flex;flex-direction:column;gap:8px;background:#0d1117><label>Primary color</label><label>Secondary color`),hp=C(`<label>Target room<input style="background:#010409;color:#c9d1d9;border:1px solid #30363d;border-radius:4px;padding:5px 6px;font-size:12px;outline:none"><span style=font-size:10px;color:#484f58>Navigate to target room, then click a tile`),gp=C(`<div>Reserved by`),_p=C(`<div>Reservation`),vp=C(`<div style=font-variant-numeric:tabular-nums> ticks`),yp=C(`<div>Level`),bp=C(`<div>Safe modes`),xp=C(`<div>Power`),Sp=C(`<div>Downgrade in`),Cp=C(`<div>Safe mode active`),wp=C(`<div style="padding:5px 8px;background:#0d1117;border-top:1px solid #21262d"><div style=display:flex;justify-content:space-between;font-size:10px;margin-bottom:4px><span style=color:#8b949e>RCL <!> → </span><span style=color:#c9d1d9;font-variant-numeric:tabular-nums> / <!> (<!>%)</span></div><div style=height:5px;background:#21262d;border-radius:3px;overflow:hidden><div style=height:100%;background:#58a6ff;border-radius:3px>`),Tp=C(`<div style=padding:8px;display:flex;flex-direction:column;gap:6px;background:#0d1117><button style="color:#fff;border:none;border-radius:4px;padding:6px 8px;font-size:12px">Activate safe mode</button><button style="color:#fff;border:none;border-radius:4px;padding:6px 8px;font-size:12px;cursor:pointer">`),Ep=C(`<div><div><div>Owner</div><div>`),Dp=C(`<div>Cooldown`),Op=C(`<div>Notify when attacked`),kp=C(`<div style=display:flex;align-items:center><button style=background:transparent;border:none;cursor:pointer;padding:0;display:flex;align-items:center>`),Ap=C(`<div><div>Energy</div><div style=font-variant-numeric:tabular-nums> / `),jp=C(`<div><div>Hits</div><div style=font-variant-numeric:tabular-nums> / `),Mp=C(`<div style="padding:5px 8px;background:#0d1117;border-top:1px solid #21262d"><div style=display:flex;justify-content:space-between;font-size:10px;margin-bottom:4px><span style=color:#8b949e>Fill</span><span style=color:#c9d1d9;font-variant-numeric:tabular-nums> / <!> (<!>%)</span></div><div style=height:5px;background:#21262d;border-radius:3px;overflow:hidden><div style=height:100%;background:#ffe87b;border-radius:3px>`),Np=C(`<div style=font-variant-numeric:tabular-nums> `),Pp=C(`<div>Decays in`),Fp=C(`<div>Decay in`),Ip=C(`<div>Energy cap`),Lp=C(`<div style="background:#21262d;border-top:1px solid #30363d;font-size:10px"><div style="padding:4px 8px;background:#161b22;color:#8b949e;font-weight:600">Was: </div><div>`),Rp=C(`<div style=width:8px;height:8px;border-radius:50%;flex-shrink:0>`),zp=C(`<button style="background:transparent;border:none;cursor:pointer;padding:0 2px;display:flex;align-items:center;justify-content:center;flex-shrink:0">`),Bp=C(`<button title="Watch memory"style="background:transparent;border:none;color:#8b949e;cursor:pointer;padding:0 2px;display:flex;align-items:center;justify-content:center;flex-shrink:0">`),Vp=C(`<div style="border-radius:6px;margin-bottom:6px;overflow:hidden;transition:border-color 150ms ease"><div style="display:flex;align-items:center;gap:7px;padding:6px 8px;background:#161b22;border-bottom:1px solid #21262d"><span style=font-size:11px;font-weight:600;color:#c9d1d9;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:5px></span><span style=font-size:10px;color:#484f58;flex-shrink:0;margin-right:2px>(<!>,<!>)</span><button title=Deselect style="background:transparent;border:none;color:#8b949e;cursor:pointer;padding:0 4px;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center">×`),Hp=C(`<span style=font-weight:400;color:#8b949e>`),Up=C(`<div style="padding:3px 8px;border-top:1px solid #21262d;font-size:9px;color:#484f58;font-family:monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer">`),Wp=C(`<div style=flex:1;overflow:auto;min-height:0;padding:8px>`),Gp=C(`<div style=color:#484f58;font-style:italic;font-size:12px>Click a tile to select objects…`),{log:Kp,error:qp}=M(`SelectionList`),Jp={creep:`#f0883e`,spawn:`#58a6ff`,extension:`#79c0ff`,tower:`#3fb950`,container:`#8b949e`,storage:`#d29922`,link:`#a371f7`,rampart:`#58a6ff`,road:`#484f58`,wall:`#21262d`,extractor:`#8b949e`,lab:`#f778ba`,terminal:`#d29922`,observer:`#79c0ff`,powerSpawn:`#f0883e`,nuker:`#f85149`,factory:`#8b949e`,invaderCore:`#f85149`,source:`#d29922`,mineral:`#79c0ff`,deposit:`#d29922`,controller:`#58a6ff`,powerBank:`#f0883e`,portal:`#a371f7`,energy:`#d29922`},Yp={creep:`Creep`,spawn:`Spawn`,extension:`Extension`,tower:`Tower`,container:`Container`,storage:`Storage`,link:`Link`,rampart:`Rampart`,road:`Road`,wall:`Wall`,extractor:`Extractor`,lab:`Lab`,terminal:`Terminal`,observer:`Observer`,powerSpawn:`Power Spawn`,nuker:`Nuker`,factory:`Factory`,invaderCore:`Invader Core`,source:`Source`,mineral:`Mineral`,deposit:`Deposit`,controller:`Controller`,powerBank:`Power Bank`,portal:`Portal`,energy:`Energy`,flag:`Flag`},Xp=new Set([`x`,`y`,`type`,`id`,`name`,`user`,`_id`,`room`,`hitsMax`,`energyCapacity`,`body`,`storeCapacity`,`storeCapacityResource`,`invaderHarvested`,`ticksToRegeneration`]),Zp=new Set([`hits`,`energy`,`energyCapacity`,`store`,`progress`,`progressTotal`,`nextDecayTime`,`ticksToRegeneration`,`nextRegenerationTime`]),Qp={hits:`Hits`,energy:`Energy`,progress:`Progress`,progressTotal:`Progress total`,ticksToLive:`Ticks to live`,ticksToDecay:`Ticks to decay`,nextDecayTime:`Decays in`,nextRegenerationTime:`Regens in`,fatigue:`Fatigue`,cooldown:`Cooldown`,mineralType:`Mineral type`,mineralAmount:`Mineral amount`,density:`Density`,notifyWhenAttacked:`Notify when attacked`,isPublic:`Public`,structureType:`Structure type`,level:`Level`,power:`Power`,powerCapacity:`Power capacity`,depositType:`Deposit type`,lastCooldown:`Last cooldown`,resourceType:`Resource type`,amount:`Amount`,decay:`Decay in`,mode:`Mode`,actionLog:`Action log`,store:`Store`};function $p(e){return Qp[e]?Qp[e]:e.replace(/([A-Z])/g,` $1`).replace(/^./,e=>e.toUpperCase()).trim()}function em(e){return typeof e==`number`?String(e):typeof e==`string`?e:typeof e==`boolean`?e?`Yes`:`No`:null}function tm(e){if(e>=1e6){let t=e/1e6;return`${parseFloat(t.toFixed(2))}M`}if(e>=1e3){let t=e/1e3;return`${parseFloat(t.toFixed(1))}K`}return String(e)}var K=(e=!1)=>({padding:`3px 8px`,background:`#0d1117`,color:e?`#8b949e`:`#c9d1d9`,overflow:`hidden`,"text-overflow":`ellipsis`,"white-space":`nowrap`}),nm={display:`grid`,"grid-template-columns":`1fr 1fr`,gap:`1px`,background:`#21262d`,"font-size":`10px`};function rm(e){let t=()=>{let t=e.item.raw,n=[];for(let e in t){if(Xp.has(e))continue;let r=t[e],i=em(r);if(!(e===`notifyWhenAttacked`&&r===!1)&&!(e===`off`&&r===!1)){if(e===`hits`&&typeof t.hitsMax==`number`&&(i=`${r} / ${t.hitsMax}`),e===`energy`&&typeof t.energyCapacity==`number`&&(i=`${r} / ${t.energyCapacity}`),e===`nextDecayTime`&&typeof r==`number`){let e=R();e!==null&&(i=String(r-e))}if(e===`nextRegenerationTime`&&typeof r==`number`){let e=R();e!==null&&(i=String(r-e))}i!==null&&n.push({key:e,label:$p(e),value:i})}}return n.sort((e,t)=>!Zp.has(e.key)-+!Zp.has(t.key)),n};return f(_,{get when(){return t().length>0},get children(){var e=Qf();return j(e,f(u,{get each(){return t()},children:e=>[(()=>{var t=Qf();return j(t,()=>e.label),S(e=>N(t,K(!0),e)),t})(),(()=>{var t=$f();return j(t,()=>e.value),S(e=>N(t,{...K()},e)),t})()]})),S(t=>N(e,nm,t)),e}})}function im(e){let t=()=>{let t=e.store||{},n=[];for(let e in t)n.push([e,t[e]]);return n},n=()=>{let t=e.store||{},n=0;for(let e in t)n+=t[e];return n};return f(_,{get when(){return t().length>0},get children(){var r=tp(),i=r.firstChild;i.firstChild;var a=i.nextSibling;return j(i,f(_,{get when(){return e.capacity!=null},get children(){var t=ep(),r=t.firstChild;return j(t,n,r),j(t,()=>e.capacity,null),t}}),null),j(a,f(u,{get each(){return t()},children:([e,t])=>[(()=>{var t=np();return j(t,e),t})(),(()=>{var e=rp();return j(e,t),e})()]})),r}})}var am={tough:`#4c4c4c`,move:`#a9b7c6`,work:`#ffe56d`,carry:`#777777`,attack:`#f93842`,ranged_attack:`#5d80b2`,heal:`#65fd62`,claim:`#b99cfb`};function om(e){let t=()=>e.item.raw,n=()=>typeof t().user==`string`?t().user:null,r=()=>{let e=n();return e?Du()?.[e]?.username??e:null},i=()=>typeof t().hits==`number`?t().hits:null,a=()=>typeof t().hitsMax==`number`?t().hitsMax:null,o=()=>{let e=t().ageTime,n=R();return typeof e==`number`&&n!==null?Math.max(0,e-n):null},s=()=>typeof t().fatigue==`number`?t().fatigue:null,c=()=>t().store,l=()=>typeof t().storeCapacity==`number`?t().storeCapacity:null,d=()=>t().body??[],p=()=>{let e=new Map;for(let t of d())e.set(t.type,(e.get(t.type)??0)+1);return[...e.entries()].map(([e,t])=>({type:e,count:t}))};return(()=>{var e=up(),t=e.firstChild;return j(t,f(_,{get when(){return r()},get children(){return[(()=>{var e=ip();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=Qf();return j(e,r),S(t=>N(e,K(),t)),e})()]}}),null),j(t,f(_,{get when(){return L(()=>i()!==null)()&&a()!==null},get children(){return[(()=>{var e=ap();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=op(),t=e.firstChild;return j(e,i,t),j(e,a,null),S(t=>N(e,{...K()},t)),e})()]}}),null),j(t,f(_,{get when(){return o()!==null},get children(){return[(()=>{var e=sp();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=$f();return j(e,o),S(t=>N(e,{...K()},t)),e})()]}}),null),j(t,f(_,{get when(){return s()!==null},get children(){return[(()=>{var e=cp();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=$f();return j(e,s),S(t=>N(e,{...K(),color:s()>0?`#e3b341`:void 0},t)),e})()]}}),null),j(e,f(im,{get store(){return c()},get capacity(){return l()}}),null),j(e,f(_,{get when(){return d().length>0},get children(){var e=lp(),t=e.firstChild,n=t.firstChild.nextSibling;n.nextSibling;var r=t.nextSibling,i=r.nextSibling;return j(t,()=>d().length,n),j(r,f(u,{get each(){return d()},children:e=>(()=>{var t=dp();return S(n=>{var r=e.type.replace(`_`,` `),i=am[e.type]??`#484f58`,a=e.hits===0?.25:1;return r!==n.e&&F(t,`title`,n.e=r),i!==n.t&&P(t,`background`,n.t=i),a!==n.a&&P(t,`opacity`,n.a=a),n},{e:void 0,t:void 0,a:void 0}),t})()})),j(i,f(u,{get each(){return p()},children:({type:e,count:t})=>(()=>{var n=fp(),r=n.firstChild,i=r.firstChild,a=r.nextSibling;return j(r,t,i),j(a,()=>e.replace(`_`,` `).toUpperCase()),S(t=>P(a,`color`,am[e]??`#484f58`)),n})()})),e}}),null),S(e=>N(t,nm,e)),e})()}function sm(e){let t=()=>e.item.raw,n=()=>typeof t().name==`string`?t().name:``,r=()=>typeof t().room==`string`?t().room:``,i=()=>typeof t().color==`number`?t().color:1,o=()=>typeof t().secondaryColor==`number`?t().secondaryColor:1,[c,l]=a(i()),[u,d]=a(o());s(()=>{l(i()),d(o())});let p=()=>c()!==i()||u()!==o(),m=()=>{let e=I();if(!e)return;let t=c(),i=u();Kp(`changeFlagColor: name="${n()}" room=${r()} primary=${t} secondary=${i}`),e.http.game.changeFlagColor(r(),n(),t,i).then(()=>Kp(`changeFlagColor OK`)).catch(e=>qp(`changeFlagColor FAILED:`,e))},h=()=>{let t=yd();return t?.type===`moveFlag`&&t.id===e.item.id},g=()=>{if(h()){bd(null);return}bd({type:`moveFlag`,id:e.item.id,name:n(),room:r(),color:c(),secondaryColor:u(),targetRoom:ju()??r()})},v=()=>{let t=yd();return t?.type===`moveFlag`&&t.id===e.item.id?t:null},y={display:`flex`,"flex-direction":`column`,gap:`5px`,"font-size":`11px`,color:`#8b949e`};return(()=>{var e=mp(),t=e.firstChild;t.firstChild;var n=t.nextSibling;return n.firstChild,j(t,f(Zf,{get value(){return c()},onChange:l}),null),j(n,f(Zf,{get value(){return u()},onChange:d}),null),j(e,f(_,{get when(){return!G()},get children(){return[(()=>{var e=pp(),t=e.firstChild,n=t.nextSibling;return t.addEventListener(`mouseleave`,e=>{p()&&(e.currentTarget.style.background=`#238636`)}),t.addEventListener(`mouseenter`,e=>{p()&&(e.currentTarget.style.background=`#2ea043`)}),t.$$click=m,n.addEventListener(`mouseleave`,e=>{e.currentTarget.style.color=h()?`#c9d1d9`:`#8b949e`}),n.addEventListener(`mouseenter`,e=>{e.currentTarget.style.color=`#c9d1d9`}),n.$$click=g,j(n,(()=>{var e=L(()=>!!h());return()=>e()?f(Ni,{size:13}):f($r,{size:13})})()),S(e=>{var r=!p(),i=p()?`#238636`:`#161b22`,a=p()?`#fff`:`#484f58`,o=`1px solid ${p()?`#238636`:`#30363d`}`,s=p()?`pointer`:`not-allowed`,c=h()?`Abort move`:`Move flag`,l=h()?`#30363d`:`#21262d`,u=h()?`#c9d1d9`:`#8b949e`,d=`1px solid ${h()?`#8b949e`:`#30363d`}`;return r!==e.e&&(t.disabled=e.e=r),i!==e.t&&P(t,`background`,e.t=i),a!==e.a&&P(t,`color`,e.a=a),o!==e.o&&P(t,`border`,e.o=o),s!==e.i&&P(t,`cursor`,e.i=s),c!==e.n&&F(n,`title`,e.n=c),l!==e.s&&P(n,`background`,e.s=l),u!==e.h&&P(n,`color`,e.h=u),d!==e.r&&P(n,`border`,e.r=d),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0}),e})(),f(_,{get when(){return v()},children:e=>(()=>{var t=hp(),n=t.firstChild.nextSibling;return n.nextSibling,n.$$input=t=>bd({...e(),targetRoom:t.currentTarget.value.toUpperCase()}),S(e=>N(t,y,e)),S(()=>n.value=e().targetRoom),t})()})]}}),null),S(e=>{var r=y,i=y;return e.e=N(t,r,e.e),e.t=N(n,i,e.t),e},{e:void 0,t:void 0}),e})()}function cm(e){let t=()=>e.item.raw,n=()=>typeof t().level==`number`?t().level:0,r=()=>typeof t().progress==`number`?t().progress:null,i=()=>typeof t().progressTotal==`number`?t().progressTotal:Ja[n()]??null,o=()=>typeof t().downgradeTime==`number`?t().downgradeTime:null,s=()=>typeof t().safeModeAvailable==`number`?t().safeModeAvailable:0,c=()=>typeof t().safeMode==`number`?t().safeMode:null,l=()=>t().isPowerEnabled===!0,u=()=>t().reservation,d=()=>typeof t().user==`string`?t().user:null,p=()=>{let e=d();return e?_u()?.username??e:null},m=()=>{let e=o(),t=R();return e!==null&&t!==null?Math.max(0,e-t):null},h=()=>{let e=m();if(e===null)return`—`;let t=Ya[n()];return t!==void 0&&e>=t?`Max`:String(e)},g=()=>d()!==null&&d()===z()?._id,[v,y]=a(!1),b=null,x=()=>{let n=I();n&&n.http.game.addObjectIntent(e.item.id,ju()??t().room??``,`activateSafeMode`,{id:e.item.id},ku()).catch(e=>qp(`activateSafeMode failed:`,e))},C=()=>{if(!v()){y(!0),b=setTimeout(()=>y(!1),3e3);return}b&&=(clearTimeout(b),null),y(!1);let n=I();n&&n.http.game.addObjectIntent(e.item.id,ju()??t().room??``,`unclaim`,{id:e.item.id},ku()).catch(e=>qp(`unclaim failed:`,e))};return(()=>{var e=Ep(),t=e.firstChild,a=t.firstChild,o=a.nextSibling;return j(o,()=>p()??`None`),j(t,f(_,{get when(){return u()},get children(){return[(()=>{var e=gp();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=Qf();return j(e,()=>Du()?.[u().user]?.username??u().user),S(t=>N(e,K(),t)),e})(),(()=>{var e=_p();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=vp(),t=e.firstChild;return j(e,(()=>{var e=L(()=>R()!==null);return()=>e()?Math.max(0,u().endTime-R()):u().endTime})(),t),S(t=>N(e,{...K()},t)),e})()]}}),null),j(t,f(_,{get when(){return n()>0},get children(){return[(()=>{var e=yp();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=Qf();return j(e,n),S(t=>N(e,K(),t)),e})(),(()=>{var e=bp();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=Qf();return j(e,s),S(t=>N(e,K(),t)),e})(),(()=>{var e=xp();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=Qf();return j(e,()=>l()?`Enabled`:`Disabled`),S(t=>N(e,K(),t)),e})(),(()=>{var e=Sp();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=$f();return j(e,h),S(t=>N(e,{...K(),color:h()===`Max`?`#3fb950`:void 0},t)),e})()]}}),null),j(t,f(_,{get when(){return c()!==null},get children(){return[(()=>{var e=Cp();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=vp(),t=e.firstChild;return j(e,c,t),S(t=>N(e,{...K()},t)),e})()]}}),null),j(e,f(_,{get when(){return L(()=>n()>0&&n()<8&&r()!==null)()&&i()!==null},get children(){var e=wp(),t=e.firstChild,a=t.firstChild,o=a.firstChild.nextSibling;o.nextSibling;var s=a.nextSibling,c=s.firstChild,l=c.nextSibling,u=l.nextSibling.nextSibling;u.nextSibling;var d=t.nextSibling.firstChild;return j(a,n,o),j(a,()=>n()+1,null),j(s,()=>tm(r()),c),j(s,()=>tm(i()),l),j(s,()=>(r()/i()*100).toFixed(1),u),S(e=>P(d,`width`,`${Math.min(100,r()/i()*100)}%`)),e}}),null),j(e,f(_,{get when(){return L(()=>!!g())()&&!G()},get children(){var e=Tp(),t=e.firstChild,n=t.nextSibling;return t.addEventListener(`mouseleave`,e=>{s()>0&&(e.currentTarget.style.background=`#1f6feb`)}),t.addEventListener(`mouseenter`,e=>{s()>0&&(e.currentTarget.style.background=`#388bfd`)}),t.$$click=x,n.addEventListener(`mouseleave`,e=>{v()||(e.currentTarget.style.background=`#f85149`)}),n.addEventListener(`mouseenter`,e=>{v()||(e.currentTarget.style.background=`#da3633`)}),n.$$click=C,j(n,()=>v()?`Confirm unclaim`:`Unclaim`),S(e=>{var r=s()===0,i=s()>0?`#1f6feb`:`#161b22`,a=s()>0?`pointer`:`not-allowed`,o=s()>0?1:.5,c=v()?`#da3633`:`#f85149`;return r!==e.e&&(t.disabled=e.e=r),i!==e.t&&P(t,`background`,e.t=i),a!==e.a&&P(t,`cursor`,e.a=a),o!==e.o&&P(t,`opacity`,e.o=o),c!==e.i&&P(n,`background`,e.i=c),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),e}}),null),S(e=>{var n=nm,r=K(!0),i=K();return e.e=N(t,n,e.e),e.t=N(a,r,e.t),e.a=N(o,i,e.a),e},{e:void 0,t:void 0,a:void 0}),e})()}function lm(e){let t=()=>e.item.raw,n=()=>t().store?.energy??0,r=()=>t().storeCapacityResource?.energy??0,i=()=>typeof t().hits==`number`?t().hits:null,a=()=>typeof t().hitsMax==`number`?t().hitsMax:null,o=()=>{if(typeof t().cooldown==`number`)return t().cooldown;let e=t().cooldownTime,n=R();return typeof e==`number`&&n!==null?Math.max(0,e-n):null},s=()=>t().notifyWhenAttacked===!0,c=()=>typeof t().user==`string`?t().user:null,l=()=>c()!==null&&c()===z()?._id,u=()=>{let n=I();n&&n.http.game.addObjectIntent(e.item.id,t().room,`notifyWhenAttacked`,{enabled:!s()}).catch(e=>qp(`notifyWhenAttacked failed:`,e))};return(()=>{var e=Ap(),t=e.firstChild,c=t.nextSibling,d=c.firstChild;return j(c,n,d),j(c,r,null),j(e,f(_,{get when(){return L(()=>i()!==null)()&&a()!==null},get children(){return[(()=>{var e=ap();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=op(),t=e.firstChild;return j(e,i,t),j(e,a,null),S(t=>N(e,{...K()},t)),e})()]}}),null),j(e,f(_,{get when(){return o()!==null},get children(){return[(()=>{var e=Dp();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=$f();return j(e,o),S(t=>N(e,{...K()},t)),e})()]}}),null),j(e,f(_,{get when(){return L(()=>!!l())()&&!G()},get children(){return[(()=>{var e=Op();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=kp(),t=e.firstChild;return t.addEventListener(`mouseleave`,e=>{e.currentTarget.style.color=s()?`#3fb950`:`#484f58`}),t.addEventListener(`mouseenter`,e=>{e.currentTarget.style.color=s()?`#56d364`:`#8b949e`}),t.$$click=u,j(t,(()=>{var e=L(()=>!!s());return()=>e()?f(tr,{size:12}):f($n,{size:12})})()),S(n=>{var r={...K()},i=s()?`Notifications on — click to disable`:`Notifications off — click to enable`,a=s()?`#3fb950`:`#484f58`;return n.e=N(e,r,n.e),i!==n.t&&F(t,`title`,n.t=i),a!==n.a&&P(t,`color`,n.a=a),n},{e:void 0,t:void 0,a:void 0}),e})()]}}),null),S(n=>{var r=nm,i=K(!0),a={...K()};return n.e=N(e,r,n.e),n.t=N(t,i,n.t),n.a=N(c,a,n.a),n},{e:void 0,t:void 0,a:void 0}),e})()}function um(e){let t=()=>e.item.raw,n=()=>typeof t().hits==`number`?t().hits:null,r=()=>typeof t().hitsMax==`number`?t().hitsMax:null,i=()=>t().store,a=()=>{if(typeof t().storeCapacity==`number`)return t().storeCapacity;let e=t().storeCapacityResource;if(e){let t=0;for(let n in e)t+=e[n];return t}return null},o=()=>{let e=i();if(!e)return 0;let t=0;for(let n in e)t+=e[n];return t},s=()=>{let e=a();return!e||e===0?0:Math.min(100,o()/e*100)};return(()=>{var e=Qf();return j(e,f(_,{get when(){return L(()=>n()!==null)()&&r()!==null},get children(){var e=jp(),t=e.firstChild,i=t.nextSibling,a=i.firstChild;return j(i,n,a),j(i,r,null),S(n=>{var r=nm,a=K(!0),o={...K()};return n.e=N(e,r,n.e),n.t=N(t,a,n.t),n.a=N(i,o,n.a),n},{e:void 0,t:void 0,a:void 0}),e}}),null),j(e,f(_,{get when(){return a()!==null},get children(){var e=Mp(),t=e.firstChild,n=t.firstChild.nextSibling,r=n.firstChild,i=r.nextSibling,c=i.nextSibling.nextSibling;c.nextSibling;var l=t.nextSibling.firstChild;return j(n,()=>tm(o()),r),j(n,()=>tm(a()),i),j(n,()=>s().toFixed(1),c),S(e=>P(l,`width`,`${s()}%`)),e}}),null),j(e,f(im,{get store(){return i()},capacity:null}),null),e})()}function dm(e){let t=()=>e.item.raw,n=()=>{let e=t().decayTime;if(typeof e!=`number`)return null;let n=R();return n===null?e:Math.max(0,e-n)},r=()=>{let e=t().power;if(typeof e==`number`)return e;let n=t().store;return typeof n?.power==`number`?n.power:null},i=()=>typeof t().hits==`number`?t().hits:null,a=()=>typeof t().hitsMax==`number`?t().hitsMax:null;return(()=>{var e=Qf();return j(e,f(_,{get when(){return r()!==null},get children(){return[(()=>{var e=xp();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=$f();return j(e,r),S(t=>N(e,{...K()},t)),e})()]}}),null),j(e,f(_,{get when(){return i()!==null},get children(){return[(()=>{var e=ap();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=Np(),t=e.firstChild;return j(e,i,t),j(e,(()=>{var e=L(()=>a()!==null);return()=>e()?`/ ${a()}`:``})(),null),S(t=>N(e,{...K()},t)),e})()]}}),null),j(e,f(_,{get when(){return n()!==null},get children(){return[(()=>{var e=Pp();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=$f();return j(e,n),S(t=>N(e,{...K()},t)),e})()]}}),null),S(t=>N(e,nm,t)),e})()}function fm(e){let t=()=>e.item.raw,n=()=>{let e=t().decayTime;if(typeof e!=`number`)return null;let n=R();return n===null?e:Math.max(0,e-n)},r=()=>typeof t().user==`string`?t().user:null,i=()=>{let e=r();return e?Du()?.[e]?.username??e:null},a=()=>t().structure,o=()=>typeof a()?.type==`string`?a().type:null,s=()=>typeof a()?.hits==`number`?a().hits:null,c=()=>typeof a()?.hitsMax==`number`?a().hitsMax:null,l=()=>typeof a()?.level==`number`?a().level:null,u=()=>typeof a()?.energy==`number`?a().energy:null,d=()=>typeof a()?.energyCapacity==`number`?a().energyCapacity:null,p=()=>t().store,m=()=>typeof t().storeCapacity==`number`?t().storeCapacity:null;return(()=>{var e=up(),t=e.firstChild;return j(t,f(_,{get when(){return n()!==null},get children(){return[(()=>{var e=Fp();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=$f();return j(e,n),S(t=>N(e,{...K()},t)),e})()]}}),null),j(t,f(_,{get when(){return i()},get children(){return[(()=>{var e=ip();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=Qf();return j(e,i),S(t=>N(e,K(),t)),e})()]}}),null),j(e,f(_,{get when(){return o()},get children(){var e=Lp(),t=e.firstChild;t.firstChild;var n=t.nextSibling;return j(t,o,null),j(n,f(_,{get when(){return c()!==null},get children(){return[(()=>{var e=ap();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=op(),t=e.firstChild;return j(e,()=>s()??0,t),j(e,c,null),S(t=>N(e,{...K()},t)),e})()]}}),null),j(n,f(_,{get when(){return l()!==null},get children(){return[(()=>{var e=yp();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=$f();return j(e,l),S(t=>N(e,{...K()},t)),e})()]}}),null),j(n,f(_,{get when(){return d()!==null},get children(){return[(()=>{var e=Ip();return S(t=>N(e,K(!0),t)),e})(),(()=>{var e=op(),t=e.firstChild;return j(e,()=>u()??0,t),j(e,d,null),S(t=>N(e,{...K()},t)),e})()]}}),null),S(e=>N(n,nm,e)),e}}),null),j(e,f(im,{get store(){return p()},get capacity(){return m()}}),null),S(e=>N(t,nm,e)),e})()}var pm={creep:om,flag:sm,controller:cm,spawn:lm,extension:lm,tower:lm,link:lm,storage:um,terminal:um,container:um,lab:um,factory:um,nuker:um,powerSpawn:um,powerBank:dm,ruin:fm};function mm(e){let t=()=>Jp[e.item.type]??`#c9d1d9`,n=()=>Yp[e.item.type]??e.item.type,r=()=>e.item.type===`creep`,i=()=>e.item.type===`flag`,o=()=>{if(!r())return!1;let t=e.item.raw,n=typeof t.user==`string`?t.user:null;return n!==null&&n===z()?._id},s=()=>{if(r()||i()||e.item.type===`controller`)return!1;let t=e.item.raw,n=typeof t.user==`string`?t.user:null;return n===null?_u()?.userId===z()?._id:n===z()?._id},c=()=>pm[e.item.type]||rm,[l,u]=a(!1),d=null,[p,m]=a(!1),h=null,[g,v]=a(!1),y=null,b=t=>{if(t.stopPropagation(),!g()){v(!0),y=setTimeout(()=>v(!1),3e3);return}y&&=(clearTimeout(y),null),v(!1);let n=I();if(!n)return;let r=e.item.id,i=e.item.raw;n.http.game.removeFlag(i.room,i.name).then(()=>fu(r)).catch(()=>{})},x=t=>{if(t.stopPropagation(),!p()){m(!0),h=setTimeout(()=>m(!1),3e3);return}h&&=(clearTimeout(h),null),m(!1);let n=I();if(!n)return;let r=e.item.id,i=e.item.raw,a=(typeof i.room==`string`?i.room:null)??ju()??``;if(e.item.type===`constructionSite`)n.http.game.removeConstructionSite(a,[r],ku()??void 0).then(()=>fu(r)).catch(e=>qp(`removeConstructionSite failed:`,e));else{let e=typeof i.user==`string`?i.user:_u()?.userId??``;n.http.game.addObjectIntent(`room`,a,`destroyStructure`,[{id:r,roomName:a,user:e}],ku()).then(()=>fu(r)).catch(e=>qp(`destroyStructure failed:`,e))}},C=t=>{if(t.stopPropagation(),!l()){u(!0),d=setTimeout(()=>u(!1),3e3);return}d&&=(clearTimeout(d),null),u(!1);let n=I();if(!n)return;let r=e.item.id;n.http.game.addObjectIntent(r,ju()??e.item.raw.room??``,`suicide`,{id:r},ku()).then(()=>fu(r)).catch(e=>qp(`suicide failed:`,e))};return(()=>{var a=Vp(),u=a.firstChild,d=u.firstChild,m=d.nextSibling,h=m.firstChild.nextSibling,v=h.nextSibling.nextSibling;v.nextSibling;var y=m.nextSibling;return j(u,f(_,{get when(){return L(()=>!r())()&&!i()},get children(){var e=Rp();return S(n=>P(e,`background`,t())),e}}),d),j(d,f(_,{get when(){return i()},get fallback(){return L(n)},get children(){return f(kr,{size:12})}}),null),j(d,f(_,{get when(){return L(()=>typeof e.item.raw.name==`string`)()&&e.item.raw.name},children:e=>(()=>{var t=Hp();return j(t,()=>e()),t})()}),null),j(m,()=>e.item.raw.x,h),j(m,()=>e.item.raw.y,v),j(u,f(_,{get when(){return L(()=>!!o())()&&!G()},get children(){return[(()=>{var e=zp();return e.addEventListener(`mouseleave`,e=>{l()||(e.currentTarget.style.color=`#8b949e`)}),e.addEventListener(`mouseenter`,e=>{l()||(e.currentTarget.style.color=`#f85149`)}),e.$$click=C,j(e,f(ki,{size:13})),S(t=>{var n=l()?`Click again to confirm suicide`:`Suicide`,r=l()?`#f85149`:`#8b949e`;return n!==t.e&&F(e,`title`,t.e=n),r!==t.t&&P(e,`color`,t.t=r),t},{e:void 0,t:void 0}),e})(),(()=>{var t=Bp();return t.addEventListener(`mouseleave`,e=>e.currentTarget.style.color=`#8b949e`),t.addEventListener(`mouseenter`,e=>e.currentTarget.style.color=`#58a6ff`),t.$$click=()=>{df(e.item.id,e.item.raw.name),Kd(!0)},j(t,f(Tr,{size:13})),t})()]}}),y),j(u,f(_,{get when(){return L(()=>!!s())()&&!G()},get children(){var t=zp();return t.addEventListener(`mouseleave`,e=>{p()||(e.currentTarget.style.color=`#8b949e`)}),t.addEventListener(`mouseenter`,e=>{p()||(e.currentTarget.style.color=`#f85149`)}),t.$$click=x,j(t,f(ki,{size:13})),S(n=>{var r=p()?`Click again to confirm`:e.item.type===`constructionSite`?`Remove construction site`:`Destroy structure`,i=p()?`#f85149`:`#8b949e`;return r!==n.e&&F(t,`title`,n.e=r),i!==n.t&&P(t,`color`,n.t=i),n},{e:void 0,t:void 0}),t}}),y),j(u,f(_,{get when(){return L(()=>!!i())()&&!G()},get children(){var e=zp();return e.addEventListener(`mouseleave`,e=>{g()||(e.currentTarget.style.color=`#8b949e`)}),e.addEventListener(`mouseenter`,e=>{g()||(e.currentTarget.style.color=`#f85149`)}),e.$$click=b,j(e,f(ki,{size:13})),S(t=>{var n=g()?`Click again to confirm deletion`:`Delete flag`,r=g()?`#f85149`:`#8b949e`;return n!==t.e&&F(e,`title`,t.e=n),r!==t.t&&P(e,`color`,t.t=r),t},{e:void 0,t:void 0}),e}}),y),y.addEventListener(`mouseleave`,e=>e.currentTarget.style.color=`#8b949e`),y.addEventListener(`mouseenter`,e=>e.currentTarget.style.color=`#fff`),y.$$click=()=>fu(e.item.id),j(a,f(ue,{get component(){return c()},get item(){return e.item}}),null),j(a,f(_,{get when(){return e.item.id},children:e=>(()=>{var t=Up();return t.$$click=()=>navigator.clipboard?.writeText(e()),j(t,e),S(()=>F(t,`title`,e())),t})()}),null),S(e=>P(a,`border`,`1px solid ${o()&&l()||p()||g()?`#f85149`:`#30363d`}`)),a})()}function hm(){return(()=>{var e=Wp();return j(e,f(_,{get when(){return lu().length>0},get fallback(){return Gp()},get children(){return f(u,{get each(){return lu()},children:e=>f(mm,{item:e})})}})),e})()}A([`click`,`input`]);var gm=C(`<div style="padding:3px 0;color:#8b949e">Reserved by`),_m=C(`<div style="padding:3px 0;color:#c9d1d9">`),vm=C(`<div style="padding:3px 0;color:#8b949e">Expires in`),ym=C(`<div style="padding:3px 0;color:#c9d1d9;font-variant-numeric:tabular-nums"> ticks`),bm=C(`<div style="padding:3px 0;color:#8b949e">RCL`),xm=C(`<span style=color:#8b949e>(<!>%)`),Sm=C(`<div style="padding:3px 0;color:#c9d1d9;font-variant-numeric:tabular-nums">`),Cm=C(`<div style="padding:8px;border-bottom:1px solid #30363d;flex-shrink:0"><div style="padding:4px 8px;background:#161b22;border-radius:6px;border:1px solid #30363d"><div style=font-size:10px;font-weight:600;color:#8b949e;text-transform:uppercase;letter-spacing:0.04em;margin-bottom:4px> Room</div><div style=font-size:13px;font-weight:600;color:#c9d1d9></div><div style="display:grid;grid-template-columns:auto 1fr;row-gap:1px;margin-top:4px;font-size:11px"><div style="padding:3px 0;color:#8b949e">Shard</div><div style="padding:3px 0;color:#c9d1d9"></div><div style="padding:3px 0;color:#8b949e">Tick</div><div style="padding:3px 0;color:#c9d1d9"></div><div style="padding:3px 0;color:#8b949e">Tick duration</div><div style="padding:3px 0;color:#c9d1d9"></div><div style="padding:3px 0;color:#8b949e">Objects</div><div style="padding:3px 0;color:#c9d1d9"></div><div style="padding:3px 0;color:#8b949e">Owner</div><div style="padding:3px 0;color:#c9d1d9"></div></div><label style=display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#c9d1d9;cursor:pointer;margin-top:6px><span>Creep-Namen</span><input type=checkbox></label><label style=display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#c9d1d9;cursor:pointer;margin-top:4px><span>Room Visuals</span><input type=checkbox></label></div><div style=display:grid;gap:4px;margin-top:8px><button type=button title=History style="padding:5px 8px;border-radius:6px;display:flex;align-items:center;justify-content:center">`),wm=C(`<span>`),Tm=C(`<button type=button style="padding:5px 8px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center">`),Em=[{mode:`view`,label:`View`,icon:()=>f(Tr,{size:14})},{mode:`flag`,label:`Flag`,icon:()=>f(kr,{size:14})},{mode:`build`,label:`Build`,icon:()=>f(Fr,{size:14})}];function Dm(e){return(()=>{var t=Cm(),n=t.firstChild,r=n.firstChild.nextSibling,i=r.nextSibling,a=i.firstChild.nextSibling,o=a.nextSibling.nextSibling,s=o.nextSibling.nextSibling,c=s.nextSibling.nextSibling,l=c.nextSibling.nextSibling,d=i.nextSibling,p=d.firstChild.nextSibling,m=d.nextSibling.firstChild.nextSibling,h=n.nextSibling,g=h.firstChild;return j(r,()=>e.room),j(a,()=>e.shard??`—`),j(o,()=>R()??`—`),j(s,(()=>{var e=L(()=>!!Se());return()=>e()?`${Se()}ms`:`—`})()),j(c,()=>hu()??`—`),j(l,()=>_u()?.username??`—`),j(i,f(_,{get when(){return L(()=>!_u())()&&Cu()},get children(){return[gm(),(()=>{var e=_m();return j(e,()=>Du()?.[Cu().user]?.username??Cu().user),e})(),vm(),(()=>{var e=ym(),t=e.firstChild;return j(e,(()=>{var e=L(()=>R()!==null);return()=>e()?Math.max(0,Cu().endTime-R()):`—`})(),t),e})()]}}),null),j(i,f(_,{get when(){return L(()=>yu()!==null)()&&yu()>0},get children(){return[bm(),(()=>{var e=Sm();return j(e,f(_,{get when(){return L(()=>yu()<8)()&&xu()!==null},get fallback(){return(()=>{var e=wm();return j(e,yu),e})()},get children(){return[L(()=>yu()),` → `,L(()=>yu()+1),`\xA0`,(()=>{var e=xm(),t=e.firstChild.nextSibling;return t.nextSibling,j(e,()=>(xu()/(Ja[yu()]??1)*100).toFixed(1),t),e})()]}})),e})()]}}),null),p.addEventListener(`change`,e=>mt(e.currentTarget.checked)),m.addEventListener(`change`,e=>st(e.currentTarget.checked)),j(h,f(_,{get when(){return!_e()},get children(){return f(u,{each:Em,children:e=>{let t=()=>!G()&&pd()===e.mode;return(()=>{var n=Tm();return n.$$click=()=>{G()&&Xu(),md(e.mode)},j(n,()=>e.icon()),S(r=>{var i=e.label,a=`1px solid ${t()?`#58a6ff`:`#30363d`}`,o=t()?`#1f6feb33`:`#161b22`,s=t()?`#c9d1d9`:`#8b949e`;return i!==r.e&&F(n,`title`,r.e=i),a!==r.t&&P(n,`border`,r.t=a),o!==r.a&&P(n,`background`,r.a=o),s!==r.o&&P(n,`color`,r.o=s),r},{e:void 0,t:void 0,a:void 0,o:void 0}),n})()}})}}),g),g.$$click=()=>G()?Xu():R()!==null&&Yu(R()),j(g,f(_r,{size:14})),S(e=>{var t=`repeat(${_e()?2:4}, 1fr)`,n=!G()&&R()===null,r=_e()?`span 2`:void 0,i=`1px solid ${G()?`#58a6ff`:`#30363d`}`,a=G()?`#1f6feb33`:`#161b22`,o=G()?`#c9d1d9`:`#8b949e`,s=!G()&&R()===null?`not-allowed`:`pointer`,c=!G()&&R()===null?.4:1;return t!==e.e&&P(h,`grid-template-columns`,e.e=t),n!==e.t&&(g.disabled=e.t=n),r!==e.a&&P(g,`grid-column`,e.a=r),i!==e.o&&P(g,`border`,e.o=i),a!==e.i&&P(g,`background`,e.i=a),o!==e.n&&P(g,`color`,e.n=o),s!==e.s&&P(g,`cursor`,e.s=s),c!==e.h&&P(g,`opacity`,e.h=c),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),S(()=>p.checked=gt()),S(()=>m.checked=Ln()),t})()}A([`click`]);var Om=C(`<div style="padding:8px;border-bottom:1px solid #30363d;flex-shrink:0"><div style="padding:4px 8px;background:#161b22;border-radius:6px;border:1px solid #30363d"><div style=font-size:10px;font-weight:600;color:#8b949e;text-transform:uppercase;letter-spacing:0.04em;margin-bottom:4px>Map</div><div style="display:grid;grid-template-columns:auto 1fr;row-gap:1px;font-size:11px;margin-bottom:8px"><div style="padding:3px 0;color:#8b949e">Zoom</div><div style="padding:3px 0;color:#c9d1d9"></div><div style="padding:3px 0;color:#8b949e">Live</div><div style="padding:3px 0;color:#c9d1d9"></div></div><label style=display:flex;align-items:center;justify-content:space-between;font-size:11px><span>Show room names</span><input type=checkbox></label><label style=display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#c9d1d9;cursor:pointer;margin-top:4px><span>Show unclaimable rooms</span><input type=checkbox></label><label style=display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#c9d1d9;cursor:pointer;margin-top:4px><span>Show map visuals</span><input type=checkbox></label></div><div style="display:grid;grid-template-columns:repeat(3, 1fr);gap:4px;margin-top:8px">`),km=C(`<button type=button style="padding:5px 8px;border-radius:6px;cursor:pointer;font-size:11px;font-weight:600">`),Am=[{mode:`owner`,label:`Owner`},{mode:`mineral`,label:`Mineral`},{mode:`none`,label:`None`}];function jm(e){let t=()=>(e.zoom??1)>=vn;return(()=>{var n=Om(),r=n.firstChild,i=r.firstChild.nextSibling,a=i.firstChild.nextSibling,o=a.nextSibling.nextSibling,s=i.nextSibling,c=s.firstChild.nextSibling,l=s.nextSibling,d=l.firstChild.nextSibling,p=l.nextSibling.firstChild.nextSibling,m=r.nextSibling;return j(a,()=>e.zoom?.toFixed(2)??`—`),j(o,()=>e.subsActive?`Yes`:`No`),c.addEventListener(`change`,e=>ft(e.currentTarget.checked)),d.addEventListener(`change`,e=>un(e.currentTarget.checked)),p.addEventListener(`change`,e=>kt(e.currentTarget.checked)),j(m,f(u,{each:Am,children:e=>{let t=()=>Sn()===e.mode;return(()=>{var n=km();return n.$$click=()=>gn(e.mode),j(n,()=>e.label),S(e=>{var r=`1px solid ${t()?`#58a6ff`:`#30363d`}`,i=t()?`#1f6feb33`:`#161b22`,a=t()?`#c9d1d9`:`#8b949e`;return r!==e.e&&P(n,`border`,e.e=r),i!==e.t&&P(n,`background`,e.t=i),a!==e.a&&P(n,`color`,e.a=a),e},{e:void 0,t:void 0,a:void 0}),n})()}})),S(e=>{var n=t()?`#c9d1d9`:`#484f58`,r=t()?`pointer`:`default`,i=!t();return n!==e.e&&P(s,`color`,e.e=n),r!==e.t&&P(s,`cursor`,e.t=r),i!==e.a&&(c.disabled=e.a=i),e},{e:void 0,t:void 0,a:void 0}),S(()=>c.checked=bt()),S(()=>d.checked=lt()),S(()=>p.checked=wt()),n})()}A([`click`]);var Mm=C(`<img width=12 height=12 alt style="border-radius:2px;flex:0 0 auto;display:block">`),Nm=C(`<div style="padding:3px 8px;color:#484f58">None`),Pm=C(`<div style="padding:3px 8px;color:#c9d1d9;display:flex;align-items:center;gap:4px;min-width:0"><span style=overflow:hidden;text-overflow:ellipsis;white-space:nowrap>`),Fm=C(`<div style="margin:8px 8px 0;border-radius:6px;overflow:hidden"><div style="padding:4px 8px;background:#161b22;border-bottom:1px solid #21262d;font-size:10px;font-weight:600;color:#8b949e;text-transform:uppercase;letter-spacing:0.04em">`),Im=C(`<div style="padding:6px 8px;font-size:11px;color:#484f58;font-style:italic">None`),Lm=C(`<div style="padding:3px 8px;color:#8b949e">Reservation`),Rm=C(`<div style="padding:3px 8px;color:#8b949e">Mineral`),zm=C(`<div style="padding:3px 8px;color:#79c0ff">`),Bm=C(`<div style="padding:3px 8px;color:#8b949e">Density`),Vm=C(`<div style="padding:3px 8px;color:#c9d1d9">`),Hm=C(`<div style=font-size:11px><div style="display:flex;align-items:center;gap:6px;padding:5px 8px;font-weight:600;color:#c9d1d9;font-size:12px;border-bottom:1px solid #21262d"><span style=overflow:hidden;text-overflow:ellipsis;white-space:nowrap></span></div><div style="display:grid;grid-template-columns:auto 1fr;align-items:center;row-gap:1px;column-gap:0">`),Um=C(`<span title="Controller level"style="margin-left:auto;padding:0 7px;line-height:17px;background:#21262d;border-radius:4px;color:#c9d1d9;font-size:11px;font-variant-numeric:tabular-nums">`),Wm=C(`<div style="padding:3px 8px;color:#8b949e">Owner`),Gm=C(`<div style=display:flex;align-items:center;gap:4px;align-self:flex-end;color:#8b949e><span>—</span><span>`),Km=C(`<div style="padding:5px 8px;border-top:1px solid #21262d;display:flex;flex-direction:column;gap:3px"><div style=color:#8b949e>Sign</div><div style=color:#c9d1d9;font-style:italic>“<!>”</div><div style=align-self:flex-end;color:#484f58;font-size:10px>`),qm=[`Low`,`Medium`,`High`,`Ultra`];function Jm(e){return qm[e-1]??String(e)}function Ym(e){let t=new Date(e),n=new Date,r=t.getFullYear()===n.getFullYear()&&t.getMonth()===n.getMonth()&&t.getDate()===n.getDate(),i=t.toLocaleTimeString(void 0,{hour:`numeric`,minute:`2-digit`,second:`2-digit`});return r?`Today at ${i}`:`${t.toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:`numeric`})}, ${i}`}function Xm(e){let t=y(()=>`data:image/svg+xml,${encodeURIComponent(it(e.badge))}`);return(()=>{var e=Mm();return S(()=>F(e,`src`,t())),e})()}function Zm(e){return f(_,{get when(){return e.name},get fallback(){return Nm()},children:t=>(()=>{var n=Pm(),r=n.firstChild;return j(n,f(_,{get when(){return e.badge},children:e=>f(Xm,{get badge(){return e()}})}),r),j(r,t),n})()})}function Qm(e){return(()=>{var t=Fm(),n=t.firstChild;return j(n,()=>e.label),j(t,f(_,{get when(){return e.info},get fallback(){return Im()},children:e=>(()=>{var t=Hm(),n=t.firstChild,r=n.firstChild,i=n.nextSibling;return j(r,()=>e().room),j(n,f(_,{get when(){return e().level},children:e=>(()=>{var t=Um();return j(t,e),t})()}),null),j(i,f(_,{get when(){return e().reservation},get fallback(){return[Wm(),f(Zm,{get name(){return e().owner},get badge(){return e().badge}})]},get children(){return[Lm(),f(Zm,{get name(){return e().reservation},get badge(){return e().badge}})]}}),null),j(i,f(_,{get when(){return e().mineral},get children(){return[Rm(),(()=>{var t=zm();return j(t,()=>e().mineral),t})(),Bm(),(()=>{var t=Vm();return j(t,()=>Jm(e().density??0)),t})()]}}),null),j(t,f(_,{get when(){return e().sign},children:e=>(()=>{var t=Km(),n=t.firstChild.nextSibling,r=n.firstChild.nextSibling;r.nextSibling;var i=n.nextSibling;return j(n,()=>e().text,r),j(t,f(_,{get when(){return e().username||e().badge},get children(){var t=Gm(),n=t.firstChild.nextSibling;return j(t,f(_,{get when(){return e().badge},children:e=>f(Xm,{get badge(){return e()}})}),n),j(n,()=>e().username),t}}),i),j(i,()=>Ym(e().datetime)),t})()}),null),t})()}),null),S(n=>{var r=`1px solid ${e.dim?`#21262d`:`#30363d`}`,i=e.dim?.6:1;return r!==n.e&&P(t,`border`,n.e=r),i!==n.t&&P(t,`opacity`,n.t=i),n},{e:void 0,t:void 0}),t})()}var $m=C(`<span style=color:#8b949e;font-size:11px>Checking…`),eh=C(`<div style=margin-top:8px><div style="padding:6px 8px;font-size:11px;font-weight:600;color:#c9d1d9;margin-bottom:6px">Your flags`),th=C(`<div style=flex:1;overflow:auto;min-height:0;padding:8px><div style="border-radius:6px;border:1px solid #30363d;overflow:hidden;background:#0d1117"><div style="padding:6px 8px;background:#161b22;border-bottom:1px solid #21262d;font-size:11px;font-weight:600;color:#c9d1d9">Create flag</div><div style=padding:8px;display:flex;flex-direction:column;gap:8px><label>Name<input placeholder="Flag name"style="background:#010409;color:#c9d1d9;border-radius:4px;padding:5px 6px;font-size:12px;outline:none"></label><label>Primary color</label><label>Secondary color</label><div style=color:#484f58;font-size:11px;line-height:1.4>`),nh=C(`<span style=color:#f85149;font-size:11px>`),rh=C(`<div style=margin-top:8px;color:#484f58;font-style:italic;font-size:12px>No flags.`),ih=C(`<div style="border-radius:6px;border:1px solid #30363d;margin-bottom:6px;overflow:hidden"><div style="display:flex;align-items:center;gap:7px;padding:6px 8px;background:#161b22;border-bottom:1px solid #21262d"><div style=width:8px;height:8px;border-radius:50%;flex-shrink:0></div><span style=font-size:11px;font-weight:600;color:#c9d1d9;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap></span><span style=font-size:10px;color:#8b949e;flex-shrink:0></span><span style=font-size:10px;color:#484f58;flex-shrink:0;margin-left:4px>(<!>,<!>)`),{error:ah}=M(`flag`),oh={};for(let[e,t]of Object.entries(dd))oh[t]=e;function sh(){let e=e=>{gd({...hd(),...e})},[t,n]=a(null),[r,i]=a(!1),o=null,c=t=>{t.http.game.genUniqueFlagName().then(t=>{e({name:t.name}),n(null)}).catch(e=>{ah(`gen unique name failed:`,e)})};s(()=>{if(pd()!==`flag`)return;let e=I();if(!e)return;let t=m(()=>hd().name.trim());if(!t){c(e);return}e.http.game.checkUniqueFlagName(t).then(()=>{n(null)}).catch(()=>{c(e)})});let l=t=>{e({name:t}),n(null),o&&clearTimeout(o);let r=t.trim();if(!r){i(!1);return}i(!0),o=setTimeout(()=>{let e=I();if(!e){i(!1);return}e.http.game.checkUniqueFlagName(r).then(()=>{n(null)}).catch(e=>{n(e.message)}).finally(()=>{i(!1)})},300)},d=()=>dd[hd().color]??1,p=()=>dd[hd().secondaryColor]??1,h=t=>{e({color:oh[t]??`COLOR_WHITE`})},g=t=>{e({secondaryColor:oh[t]??`COLOR_WHITE`})},v=()=>{let e=me(),t=[];for(let[n,r]of Object.entries(e))r&&typeof r==`object`&&`room`in r&&`x`in r&&`y`in r&&t.push([n,r]);return t},y=e=>e===void 0||e<0||e>=_n.length?`#8b949e`:`#${_n[e].toString(16).padStart(6,`0`)}`,b={display:`flex`,"flex-direction":`column`,gap:`5px`,"font-size":`11px`,color:`#8b949e`};return(()=>{var e=th(),n=e.firstChild.firstChild.nextSibling.firstChild,i=n.firstChild.nextSibling,a=n.nextSibling;a.firstChild;var o=a.nextSibling;o.firstChild;var s=o.nextSibling;return i.$$input=e=>l(e.currentTarget.value),j(n,f(_,{get when(){return t()},children:e=>(()=>{var t=nh();return j(t,e),t})()}),null),j(n,f(_,{get when(){return r()},get children(){return $m()}}),null),j(a,f(Zf,{get value(){return d()},onChange:h}),null),j(o,f(Zf,{get value(){return p()},onChange:g}),null),j(s,(()=>{var e=L(()=>!!_d());return()=>e()?`Marked at x=${_d().tx}, y=${_d().ty}. Click again to create the flag, or click elsewhere to move the mark.`:`Click a position in the room to mark it.`})()),j(e,f(_,{get when(){return v().length>0},get fallback(){return rh()},get children(){var e=eh();return e.firstChild,j(e,f(u,{get each(){return v()},children:([e,t])=>(()=>{var n=ih(),r=n.firstChild.firstChild,i=r.nextSibling,a=i.nextSibling,o=a.nextSibling,s=o.firstChild.nextSibling,c=s.nextSibling.nextSibling;return c.nextSibling,j(i,e),j(a,()=>t.room),j(o,()=>t.x,s),j(o,()=>t.y,c),S(e=>P(r,`background`,y(t.color))),n})()}),null),e}}),null),S(e=>{var r=b,s=`1px solid ${t()?`#f85149`:`#30363d`}`,c=b,l=b;return e.e=N(n,r,e.e),s!==e.t&&P(i,`border`,e.t=s),e.a=N(a,c,e.a),e.o=N(o,l,e.o),e},{e:void 0,t:void 0,a:void 0,o:void 0}),S(()=>i.value=hd().name),e})()}A([`input`]);var ch=C(`<span style=color:#8b949e>…`),lh=C(`<span style=color:#3fb950>✓`),uh=C(`<span style=color:#f85149>✗`),dh=C(`<div style=font-size:10px;color:#f85149>`),fh=C(`<div style="margin-top:8px;border-radius:6px;border:1px solid #30363d;overflow:hidden;background:#0d1117"><div style="padding:6px 8px;background:#161b22;border-bottom:1px solid #21262d;font-size:11px;font-weight:600;color:#c9d1d9">Spawn name</div><div style=padding:8px;display:flex;flex-direction:column;gap:6px><div style=display:flex;gap:6px;align-items:center><input type=text style="flex:1;background:#010409;color:#c9d1d9;border-radius:4px;padding:5px 7px;font-size:12px;outline:none;transition:border-color 150ms ease"><span style=font-size:14px;flex-shrink:0;width:14px;text-align:center>`),ph=C(`<div style=flex:1;overflow:auto;min-height:0;padding:8px><div style="border-radius:6px;border:1px solid #30363d;overflow:hidden;background:#0d1117;margin-bottom:8px"><div style="padding:6px 8px;background:#161b22;border-bottom:1px solid #21262d;font-size:11px;font-weight:600;color:#c9d1d9">Controller Level </div><div style=padding:8px;font-size:11px;color:#8b949e></div></div><div style="border-radius:6px;border:1px solid #30363d;overflow:hidden;background:#0d1117"><div style="padding:6px 8px;background:#161b22;border-bottom:1px solid #21262d;font-size:11px;font-weight:600;color:#c9d1d9">Structures</div></div><div style="margin-top:8px;padding:0 4px"><div style=color:#484f58;font-style:italic;font-size:12px>`),mh=C(`<div style="padding:6px 8px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #21262d;font-size:11px;color:#c9d1d9"><span style=text-transform:capitalize></span><span style=color:#8b949e>`);function hh(e){let t=Object.keys(fd),[i,o]=a(`idle`),[c,l]=a(``),d=null,p=(e,t)=>{let n=fd[e];return n?ge()===`empty`&&e===`spawn`?Math.max(n[t]??0,1):n[t]??0:0},m=(e,t)=>{let n=p(e,t);if(n===2500)return 1/0;let r=Tu()[e]??0;return Math.max(0,n-r)},h=()=>xd().structureType===`spawn`;s(r(()=>xd().structureType,(t,r)=>{if(t!==`spawn`||t===r)return;let i=I();if(!i)return;o(`loading`),l(``);let a=!1;n(()=>{a=!0}),i.http.game.genUniqueObjectName(`spawn`,e.shard).then(e=>{a||(Sd({structureType:`spawn`,structureName:e.name}),o(`valid`))}).catch(()=>{a||(Sd({structureType:`spawn`,structureName:`Spawn1`}),o(`idle`))})}));let g=t=>{if(d&&clearTimeout(d),!t.trim()){o(`invalid`),l(`Name cannot be empty`);return}o(`loading`),l(``),d=setTimeout(()=>{let n=I();n&&n.http.game.checkUniqueObjectName(`spawn`,t.trim(),e.shard).then(e=>{e.error?(o(`invalid`),l(e.error)):(o(`valid`),l(``))}).catch(()=>{o(`invalid`),l(`Could not validate name`)})},400)},v=e=>{Sd({structureType:`spawn`,structureName:e}),g(e)},y=e=>{Sd({structureType:e,structureName:``}),o(`idle`),l(``)},b=()=>{switch(i()){case`loading`:return ch();case`valid`:return lh();case`invalid`:return uh();default:return null}};return(()=>{var e=ph(),n=e.firstChild,r=n.firstChild;r.firstChild;var a=r.nextSibling,o=n.nextSibling;o.firstChild;var s=o.nextSibling,l=s.firstChild;return j(r,()=>yu()??`?`,null),j(a,()=>{let e=ge();return e===`empty`?`World is empty — place a spawn to claim this room.`:e===`lost`?`You lost all your spawns — respawn to continue.`:yu()==null?`No controller — roads and containers only.`:`RCL ${yu()} — Select a structure type and click a tile to build.`}),j(o,f(u,{each:t,children:e=>{let t=()=>yu()??0,n=()=>p(e,t()),r=()=>Tu()[e]??0,i=()=>xd().structureType===e,a=()=>n()===2500,o=()=>!a()&&m(e,t())<=0;return f(_,{get when(){return n()>0},get children(){var t=mh(),s=t.firstChild,c=s.nextSibling;return t.$$click=()=>!o()&&y(e),j(s,()=>e.replace(/([A-Z])/g,` $1`).trim(),null),j(s,()=>i()&&` ✓`,null),j(c,(()=>{var e=L(()=>!!a());return()=>e()?`${r()}/∞`:`${r()}/${n()}`})(),null),j(c,()=>o()&&` (Max)`,null),S(e=>{var n=i()?`#1f3158`:`transparent`,r=o()?`default`:`pointer`,a=o()?.5:1;return n!==e.e&&P(t,`background`,e.e=n),r!==e.t&&P(t,`cursor`,e.t=r),a!==e.a&&P(t,`opacity`,e.a=a),e},{e:void 0,t:void 0,a:void 0}),t}})}}),null),j(e,f(_,{get when(){return h()},get children(){var e=fh(),t=e.firstChild.nextSibling,n=t.firstChild.firstChild,r=n.nextSibling;return n.$$input=e=>v(e.currentTarget.value),j(r,b),j(t,f(_,{get when(){return L(()=>i()===`invalid`)()&&c()},get children(){var e=dh();return j(e,c),e}}),null),S(e=>P(n,`border`,`1px solid ${i()===`invalid`?`#f85149`:i()===`valid`?`#238636`:`#30363d`}`)),S(()=>n.value=xd().structureName??``),e}}),s),j(l,()=>xd().structureType?`Click a tile in the room to build.`:`Select a structure type, then click a tile.`),e})()}A([`input`,`click`]);var gh=C(`<div style="padding:8px;border-bottom:1px solid #30363d;flex-shrink:0"><div style=display:flex;flex-direction:column;gap:6px><div style=font-size:11px><div></div><div style=font-size:10px;color:#484f58;margin-top:2px>~</div></div><div style=display:flex;gap:3px><button type=button style="flex:1.5;padding:4px;border-radius:4px;border:1px solid #30363d;font-size:11px"></button></div><div style=display:flex;align-items:center;gap:6px><span style=font-size:10px;color:#8b949e;white-space:nowrap>Speed</span><select style="flex:1;background:#161b22;color:#8b949e;border:1px solid #30363d;border-radius:4px;padding:3px 6px;font-size:11px;cursor:pointer">`),_h=C(`<button type=button>`),vh=C(`<option>/s`),yh=[.5,1,2,5,10,20],bh=[{delta:-100,label:`-100`},{delta:-10,label:`-10`}],xh=[{delta:10,label:`+10`},{delta:100,label:`+100`}];function Sh(e){return{flex:`1`,padding:`4px`,"border-radius":`4px`,border:`1px solid #30363d`,background:`#161b22`,color:e?`#484f58`:`#8b949e`,cursor:e?`not-allowed`:`pointer`,"font-size":`11px`}}function Ch(){let e=()=>{let e=Ru(),t=Pu(),n=Se()??3e3,r=(e-t)*n;return new Date(Date.now()-r).toLocaleString(void 0,{month:`short`,day:`numeric`,year:`numeric`,hour:`2-digit`,minute:`2-digit`})};return(()=>{var t=gh(),n=t.firstChild.firstChild,r=n.firstChild,i=r.nextSibling;i.firstChild;var a=n.nextSibling,o=a.firstChild,s=a.nextSibling.firstChild.nextSibling;return j(r,(()=>{var e=L(()=>!!Wu());return()=>e()?`Loading…`:`Tick ${Pu()}`})()),j(i,e,null),j(a,f(u,{each:bh,children:e=>(()=>{var t=_h();return t.$$click=()=>Qu(e.delta),j(t,()=>e.label),S(e=>{var n=Wu(),r=Sh(Wu());return n!==e.e&&(t.disabled=e.e=n),e.t=N(t,r,e.t),e},{e:void 0,t:void 0}),t})()}),o),fe(o,`click`,$u,!0),j(o,()=>Bu()?`⏸`:`▶`),j(a,f(u,{each:xh,children:e=>(()=>{var t=_h();return t.$$click=()=>Qu(e.delta),j(t,()=>e.label),S(e=>{var n=Wu(),r=Sh(Wu());return n!==e.e&&(t.disabled=e.e=n),e.t=N(t,r,e.t),e},{e:void 0,t:void 0}),t})()}),null),s.addEventListener(`change`,e=>ed(parseFloat(e.currentTarget.value))),j(s,f(u,{each:yh,children:e=>(()=>{var t=vh(),n=t.firstChild;return t.value=e,j(t,e,n),t})()})),S(e=>{var t=Wu()?`#f0883e`:`#c9d1d9`,n=Wu(),i=Bu()?`#1a3a2a`:`#161b22`,a=Bu()?`#3fb950`:`#8b949e`,s=Wu()?`not-allowed`:`pointer`;return t!==e.e&&P(r,`color`,e.e=t),n!==e.t&&(o.disabled=e.t=n),i!==e.a&&P(o,`background`,e.a=i),a!==e.o&&P(o,`color`,e.o=a),s!==e.i&&P(o,`cursor`,e.i=s),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),S(()=>s.value=Hu()),t})()}A([`click`]);var wh=C(`<div style=padding-bottom:8px;overflow:auto;min-height:0>`),Th=C(`<div style=display:flex;flex-direction:row;height:100%;background:#0d1117><div style="width:32px;height:100%;display:flex;flex-direction:column;align-items:center;border-right:1px solid #30363d;padding:8px 0;cursor:pointer"></div><div style=flex:1;display:flex;flex-direction:column;overflow:hidden><div style="padding:6px 10px;border-bottom:1px solid #30363d;font-size:12px;font-weight:600;color:#8b949e;display:flex;justify-content:space-between;align-items:center"><span>Properties`),Eh=C(`<button style=background:transparent;border:none;color:#8b949e;font-size:14px;cursor:pointer;padding:4px>`),Dh=C(`<button style=background:transparent;border:none;color:#8b949e;font-size:11px;cursor:pointer>Collapse`);function Oh(e){return f(_,{get when(){return pd()===`flag`},get fallback(){return f(_,{get when(){return pd()===`build`},get fallback(){return f(hm,{})},get children(){return f(hh,{get shard(){return e.shard}})}})},get children(){return f(sh,{})}})}function kh(e){let t=()=>{e.onToggle?.()},n=t=>{t.stopPropagation(),e.onToggle?.()};return(()=>{var r=Th(),i=r.firstChild,a=i.nextSibling,o=a.firstChild;return o.firstChild,i.$$click=t,j(i,(()=>{var t=L(()=>!!e.onToggle);return()=>t()&&(()=>{var t=Eh();return t.$$click=n,j(t,()=>e.isCollapsed?`▶`:`◀`),t})()})()),j(o,(()=>{var t=L(()=>!!e.onToggle);return()=>t()&&(()=>{var e=Dh();return e.$$click=n,e})()})(),null),j(a,f(_,{get when(){return e.mapMode},get fallback(){return f(Dm,{get room(){return e.room??`—`},get shard(){return e.shard??null}})},get children(){return f(jm,{get zoom(){return e.mapZoom},get subsActive(){return e.mapSubsActive}})}}),null),j(a,f(_,{get when(){return L(()=>!e.mapMode)()&&G()},get children(){return f(Ch,{})}}),null),j(a,f(_,{get when(){return e.mapMode},get fallback(){return f(Oh,{get shard(){return e.shard}})},get children(){var t=wh();return j(t,f(Qm,{label:`Selected`,get info(){return e.selectedRoomInfo??null}}),null),j(t,f(Qm,{label:`Cursor`,get info(){return e.hoveredRoomInfo??null},dim:!0}),null),t}}),null),r})()}A([`click`]);var Ah=C(`<div style=display:flex;gap:6px;align-items:center><span style=font-weight:600>CPU:</span><span style=color:#c9d1d9>`),jh=C(`<div style=display:flex;gap:6px;align-items:center><span style=font-weight:600>Memory:</span><span style=color:#c9d1d9>`),Mh=C(`<div style=display:flex;gap:6px;align-items:center><span style=font-weight:600>Zoom:</span><span style=color:#c9d1d9>%`),Nh=C(`<div style=display:flex;gap:6px;align-items:center><span style=font-weight:600>Subs:</span><span>`),Ph=C(`<div style="display:flex;gap:16px;padding:6px 16px;font-size:12px;color:#8b949e;align-items:center">`);function Fh(e){let[t,r]=a(null);i(()=>{let e=I();if(!e)return;let t=new $e;t.add(e.stores.user.subscribe(`cpu`)),t.add(e.stores.user.on(`user:cpu`,e=>{r(e)})),n(()=>{t.dispose()})});let o=()=>{let e=t();if(!e)return`—`;let n=z()?.cpu??`?`;return`${e.cpu.toFixed(0)} / ${n}`},s=()=>{let e=t();return e?`${(e.memory/1024).toFixed(1)} KB`:`—`};return(()=>{var n=Ph();return j(n,f(_,{get when(){return t()!==null},get children(){return[(()=>{var e=Ah(),t=e.firstChild.nextSibling;return j(t,o),e})(),(()=>{var e=jh(),t=e.firstChild.nextSibling;return j(t,s),e})()]}}),null),j(n,f(_,{get when(){return L(()=>e.mapZoom!==null)()&&e.mapZoom!==void 0},get children(){return[(()=>{var t=Mh(),n=t.firstChild.nextSibling,r=n.firstChild;return j(n,()=>(e.mapZoom*100).toFixed(0),r),t})(),(()=>{var t=Nh(),n=t.firstChild.nextSibling;return j(n,()=>e.mapSubsActive===!1?`paused`:`active`),S(t=>P(n,`color`,e.mapSubsActive===!1?`#e3b341`:`#3fb950`)),t})()]}}),null),n})()}var Ih=C(`<div style=position:fixed;inset:0;background:rgba(0,0,0,0.65);z-index:200;display:flex;align-items:center;justify-content:center><div style="background:#161b22;border:1px solid #30363d;border-radius:10px;width:540px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden"><div style="display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #30363d;flex-shrink:0"><span style=font-size:15px;font-weight:600;color:#c9d1d9>Edit Badge</span><button style="background:transparent;border:none;color:#8b949e;cursor:pointer;line-height:1;padding:2px 6px"></button></div><div style=overflow:auto;flex:1;padding:20px><div style=display:flex;gap:16px;margin-bottom:20px><div style=flex-shrink:0><div style=font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:8px;font-weight:700>Preview</div><img width=96 height=96 style=display:block></div><div style=flex:1;min-width:0><div style=font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:8px;font-weight:700>Badge Design</div><div style="display:grid;grid-template-columns:repeat(6, 1fr);gap:4px"></div></div></div><div style=margin-bottom:20px><div style=font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:8px;font-weight:700>Colors</div><div style=display:flex;gap:6px;margin-bottom:10px></div><div style="display:grid;grid-template-columns:repeat(20, 1fr);gap:2px;margin-bottom:10px"></div><div style=display:flex;align-items:center;gap:8px><div style="width:24px;height:24px;border-radius:4px;border:1px solid rgba(255,255,255,0.2);flex-shrink:0"></div><input type=text maxlength=7 placeholder=#rrggbb style="width:90px;padding:4px 8px;border-radius:4px;background:#0d1117;color:#c9d1d9;font-size:12px;font-family:monospace;outline:none"></div></div><div style=margin-bottom:16px><div style=display:flex;align-items:baseline;gap:8px;margin-bottom:6px><span style=font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:0.06em;font-weight:700>Variation</span><span style=font-size:12px;color:#c9d1d9></span></div><input type=range min=-100 max=100 style=width:100%;accent-color:#58a6ff></div><label style=display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:#c9d1d9><input type=checkbox style=accent-color:#58a6ff;width:14px;height:14px>Rotate / Flip</label></div><div style="display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid #30363d;flex-shrink:0"><button style="padding:8px 16px;border-radius:6px;border:1px solid #30363d;background:transparent;color:#8b949e;font-size:13px">Cancel</button><button style="padding:8px 16px;border-radius:6px;border:none;background:#238636;color:#fff;font-size:13px;font-weight:600">`),Lh=C(`<button style=border-radius:4px;padding:3px;cursor:pointer;display:flex;align-items:center;justify-content:center><img width=48 height=48 style=display:block>`),Rh=C(`<button style="display:flex;align-items:center;gap:6px;padding:5px 10px;border-radius:6px;font-size:12px;cursor:pointer"><div style="width:12px;height:12px;border-radius:50%;border:1px solid rgba(255,255,255,0.2);flex-shrink:0">`),zh=C(`<button style=width:100%;aspect-ratio:1;border-radius:2px;cursor:pointer;padding:0;outline:none>`),Bh={};for(let e=1;e<=24;e++){let t=it({type:e,color1:`#4a5060`,color2:`#7a9ec0`,color3:`#c0daf0`,param:0,flip:!1});Bh[e]=`data:image/svg+xml,${encodeURIComponent(t)}`}function Vh(e){return typeof e==`string`?e:tt[e]?.rgb??`#000000`}function Hh(e){return typeof e==`number`?Math.max(0,Math.min(79,e)):e}var Uh=[{slot:1,label:`Background`},{slot:2,label:`Primary`},{slot:3,label:`Secondary`}],Wh=Array.from({length:24},(e,t)=>t+1),Gh=/^#[0-9a-f]{6}$/i;function Kh(e){let[t,n]=a(m(()=>typeof e.badge.type==`number`?e.badge.type:1)),[r,i]=a(m(()=>Hh(e.badge.color1))),[o,c]=a(m(()=>Hh(e.badge.color2))),[l,d]=a(m(()=>Hh(e.badge.color3))),[p,h]=a(m(()=>e.badge.param??0)),[g,_]=a(m(()=>e.badge.flip??!1)),[v,b]=a(1),[x,C]=a(!1),[w,T]=a(m(()=>Vh(Hh(e.badge.color1)))),E=e=>e===1?r():e===2?o():l(),D=e=>{let t=v();t===1?i(e):t===2?c(e):d(e)};s(()=>{T(Vh(E(v())))});let O=e=>{let t=E(v());return typeof t==`number`?t===e:t.toLowerCase()===(tt[e]?.rgb??``).toLowerCase()},k=()=>({type:t(),color1:Vh(r()),color2:Vh(o()),color3:Vh(l()),param:p(),flip:g()}),A=y(()=>{let e=it(k());return`data:image/svg+xml,${encodeURIComponent(e)}`}),ee=e=>{if(T(e),!Gh.test(e))return;let t=tt.findIndex(t=>t.rgb.toLowerCase()===e.toLowerCase());D(t>=0?t:e)},te=async()=>{let t=I();if(t){C(!0);try{await t.http.user.badge(k()),await t.stores.user.refreshMe(),e.onClose(),e.onSaved?.(),B(`Badge saved`,`success`,3e3)}catch(e){B(`Failed to save badge: ${e instanceof Error?e.message:String(e)}`,`error`,5e3)}finally{C(!1)}}},ne=t=>{t.target===t.currentTarget&&e.onClose()};return(()=>{var r=Ih(),i=r.firstChild.firstChild,a=i.firstChild.nextSibling,o=i.nextSibling,s=o.firstChild,c=s.firstChild,l=c.firstChild.nextSibling,d=c.nextSibling.firstChild.nextSibling,m=s.nextSibling,y=m.firstChild.nextSibling,C=y.nextSibling,T=C.nextSibling.firstChild,k=T.nextSibling,re=m.nextSibling,M=re.firstChild,ie=M.firstChild.nextSibling,ae=M.nextSibling,oe=re.nextSibling.firstChild,N=o.nextSibling.firstChild,se=N.nextSibling;return r.$$click=ne,a.$$click=()=>e.onClose(),j(a,f(Ni,{size:18})),j(d,f(u,{each:Wh,children:e=>(()=>{var r=Lh(),i=r.firstChild;return r.$$click=()=>n(e),S(n=>{var a=t()===e?`#1f3a2a`:`#0d1117`,o=`1px solid ${t()===e?`#238636`:`#21262d`}`,s=t()===e?A():Bh[e];return a!==n.e&&P(r,`background`,n.e=a),o!==n.t&&P(r,`border`,n.t=o),s!==n.a&&F(i,`src`,n.a=s),n},{e:void 0,t:void 0,a:void 0}),r})()})),j(y,f(u,{each:Uh,children:({slot:e,label:t})=>(()=>{var n=Rh(),r=n.firstChild;return n.$$click=()=>b(e),j(n,t,null),S(t=>{var i=`1px solid ${v()===e?`#58a6ff`:`#30363d`}`,a=v()===e?`#1c2d47`:`transparent`,o=v()===e?`#58a6ff`:`#8b949e`,s=Vh(E(e));return i!==t.e&&P(n,`border`,t.e=i),a!==t.t&&P(n,`background`,t.t=a),o!==t.a&&P(n,`color`,t.a=o),s!==t.o&&P(r,`background`,t.o=s),t},{e:void 0,t:void 0,a:void 0,o:void 0}),n})()})),j(C,f(u,{each:tt,children:e=>(()=>{var t=zh();return t.$$click=()=>D(e.index),S(n=>{var r=e.rgb,i=e.rgb,a=O(e.index)?`2px solid #fff`:`1px solid transparent`;return r!==n.e&&F(t,`title`,n.e=r),i!==n.t&&P(t,`background`,n.t=i),a!==n.a&&P(t,`border`,n.a=a),n},{e:void 0,t:void 0,a:void 0}),t})()})),k.$$input=e=>ee(e.currentTarget.value),j(ie,p),ae.$$input=e=>h(+e.currentTarget.value),oe.addEventListener(`change`,e=>_(e.currentTarget.checked)),N.$$click=()=>e.onClose(),se.$$click=te,j(se,()=>x()?`Saving…`:`Save Badge`),S(e=>{var t=A(),n=Gh.test(w())?w():Vh(E(v())),r=`1px solid ${Gh.test(w())?`#30363d`:`#f85149`}`,i=x(),a=x()?`not-allowed`:`pointer`,o=x(),s=x()?`not-allowed`:`pointer`,c=x()?.7:1;return t!==e.e&&F(l,`src`,e.e=t),n!==e.t&&P(T,`background`,e.t=n),r!==e.a&&P(k,`border`,e.a=r),i!==e.o&&(N.disabled=e.o=i),a!==e.i&&P(N,`cursor`,e.i=a),o!==e.n&&(se.disabled=e.n=o),s!==e.s&&P(se,`cursor`,e.s=s),c!==e.h&&P(se,`opacity`,e.h=c),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),S(()=>k.value=w()),S(()=>ae.value=p()),S(()=>oe.checked=g()),r})()}A([`click`,`input`]);var qh=C(`<div style="display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid #21262d"><div><div style=font-size:13px;color:#c9d1d9></div></div><button style="flex-shrink:0;margin-left:24px;width:40px;height:20px;border-radius:10px;border:none;cursor:pointer;position:relative;transition:background 0.15s"><div style="position:absolute;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left 0.15s">`),Jh=C(`<div style=font-size:11px;color:#8b949e;margin-top:3px>`),Yh=C(`<div style=margin-bottom:24px><div style=font-size:10px;font-weight:700;color:#8b949e;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:4px>`),Xh=C(`<div style="display:flex;align-items:center;justify-content:space-between;gap:24px;padding:10px 0;border-bottom:1px solid #21262d"><div style=font-size:13px;color:#c9d1d9></div><div style=font-size:12px;color:#8b949e;text-align:right>`),Zh=C(`<div style=display:flex;flex-direction:column;gap:4px><label style=font-size:13px;font-weight:500>Structure theme</label><select style="background:#2a2a2a;color:#eee;border:1px solid #444;border-radius:4px;padding:4px 8px;font-size:13px"><option value=vector>Vector (procedural)</option><option value=default>Default (sprites)`),Qh=C(`<img width=40 height=40 style=display:block>`),$h=C(`<div style="display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid #21262d"><div style=display:flex;align-items:center;gap:12px><span style=font-size:13px;color:#c9d1d9></span></div><button style="padding:6px 14px;border-radius:6px;border:1px solid #30363d;background:transparent;color:#c9d1d9;font-size:12px;cursor:pointer;flex-shrink:0">`),eg=C(`<div style="display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid #21262d"><div><div style=font-size:13px;color:#c9d1d9>Clear all caches</div><div style=font-size:11px;color:#8b949e;margin-top:3px>Deletes IndexedDB, Cache API, and localStorage. Session is kept. Page reloads afterwards.</div></div><button style="flex-shrink:0;margin-left:24px;padding:6px 14px;border-radius:6px;border:1px solid #da3633;background:transparent;font-size:12px">`),tg=C(`<div style="position:absolute;inset:0px;background:rgba(13, 17, 23, 0.96);z-index:100;display:flex;flex-direction:column;overflow:hidden"><div style="display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-bottom:1px solid #30363d;flex-shrink:0"><span style=font-size:15px;font-weight:600;color:#c9d1d9>Settings</span><button style="background:transparent;border:none;color:#8b949e;cursor:pointer;line-height:1;padding:2px 6px"></button></div><div style="overflow:auto;flex:1;padding:20px 24px"><div style=max-width:480px>`),ng={type:1,color1:`#4a5060`,color2:`#7a9ec0`,color3:`#c0daf0`,param:0,flip:!1};function rg(e){return(()=>{var t=qh(),n=t.firstChild,r=n.firstChild,i=n.nextSibling,a=i.firstChild;return j(r,()=>e.label),j(n,(()=>{var t=L(()=>!!e.description);return()=>t()&&(()=>{var t=Jh();return j(t,()=>e.description),t})()})(),null),i.$$click=()=>e.onChange(!e.value),S(t=>{var n=e.value?`#238636`:`#30363d`,r=e.value?`22px`:`2px`;return n!==t.e&&P(i,`background`,t.e=n),r!==t.t&&P(a,`left`,t.t=r),t},{e:void 0,t:void 0}),t})()}function ig(e){return(()=>{var t=Yh(),n=t.firstChild;return j(n,()=>e.title),j(t,()=>e.children,null),t})()}function ag(e){return(()=>{var t=Xh(),n=t.firstChild,r=n.nextSibling;return j(n,()=>e.label),j(r,()=>e.value),t})()}function og(e){let t=k(),n=!_e()&&!z()?.badge,[r,i]=a(n),[o,s]=a(!1),c=y(()=>{let e=z()?.badge;if(!e)return null;let t=it(e);return`data:image/svg+xml,${encodeURIComponent(t)}`});async function l(){s(!0);try{await E(),B(`All caches cleared. Reloading…`,`success`,2e3),setTimeout(()=>window.location.reload(),1500)}catch{B(`Failed to clear caches.`,`error`),s(!1)}}return(()=>{var a=tg(),s=a.firstChild,u=s.firstChild.nextSibling,d=s.nextSibling,p=d.firstChild;return u.$$click=()=>e.onClose(),j(u,f(Ni,{size:18})),j(a,f(_,{get when(){return r()},get children(){return f(Kh,{get badge(){return z()?.badge??ng},onClose:()=>i(!1),onSaved:n?()=>e.onClose():void 0})}}),d),j(p,f(ig,{title:`Layout`,get children(){return f(rg,{label:`Widescreen mode`,description:`Sidebar spans full height; console sits below the room view only. When off, the console spans the full width below both the view and the sidebar.`,get value(){return zt()},onChange:jt})}}),null),j(p,f(ig,{title:`Room View`,get children(){return[f(rg,{label:`Terrain effects`,description:`Swamp glow and wall noise texture overlay.`,get value(){return yt()},onChange:Dt}),f(rg,{label:`Room decorations`,description:`Load player-activated theme decorations (floor, wall, road colors) from the server.`,get value(){return Pt()},onChange:fn}),f(rg,{label:`Dark overlay + lights`,description:`Darken the room and add per-object light glows.`,get value(){return Nn()},onChange:Rt}),(()=>{var e=Zh(),t=e.firstChild.nextSibling;return t.addEventListener(`change`,e=>Tt(e.currentTarget.value)),S(()=>t.value=Bt()),e})()]}}),null),j(p,f(_,{get when(){return!_e()},get children(){return f(ig,{title:`Player Badge`,get children(){var e=$h(),t=e.firstChild,n=t.firstChild,r=t.nextSibling;return j(t,f(_,{get when(){return c()},get children(){var e=Qh();return S(()=>F(e,`src`,c())),e}}),n),j(n,()=>z()?.username??``),r.$$click=()=>i(!0),j(r,()=>c()?`Edit Badge`:`Create Badge`),e}})}}),null),j(p,f(ig,{title:`Data`,get children(){var e=eg(),t=e.firstChild;t.firstChild.nextSibling;var n=t.nextSibling;return n.$$click=l,j(n,()=>o()?`Clearing…`:`Clear`),S(e=>{var t=o(),r=o()?`#8b949e`:`#f85149`,i=o()?`default`:`pointer`,a=o()?.6:1;return t!==e.e&&(n.disabled=e.e=t),r!==e.t&&P(n,`color`,e.t=r),i!==e.a&&P(n,`cursor`,e.a=i),a!==e.o&&P(n,`opacity`,e.o=a),e},{e:void 0,t:void 0,a:void 0,o:void 0}),e}}),null),j(p,f(ig,{title:`About`,get children(){return[f(ag,{label:`Client version`,get value(){return oe()}}),L(()=>t&&f(ag,{label:`Mod version`,get value(){return`${t.version} (${t.kind})`}}))]}}),null),a})()}A([`click`]);var sg=C(`<div style="position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);max-width:min(520px, calc(100% - 48px));max-height:calc(100% - 48px);z-index:20;display:flex;background:#161b22;border:1px solid #30363d;border-radius:8px;box-shadow:0 8px 24px rgba(0, 0, 0, 0.5);animation:motd-in 0.25s ease"><button title=Dismiss style=position:absolute;top:8px;right:8px;padding:4px;border-radius:4px;border:none;background:transparent;color:#8b949e;cursor:pointer;display:flex;align-items:center></button><div style="padding:20px 36px 20px 20px;overflow:auto;color:#c9d1d9;font-size:13px;line-height:1.6">`),cg=15e3;function lg(e){let t,r=()=>{t!==void 0&&(clearTimeout(t),t=void 0)},a=()=>{r(),t=setTimeout(()=>e.onClose(),cg)};return i(a),n(r),(()=>{var t=sg(),n=t.firstChild,i=n.nextSibling;return t.addEventListener(`mouseleave`,a),t.addEventListener(`mouseenter`,r),n.$$click=()=>e.onClose(),j(n,f(Ni,{size:16})),S(()=>i.innerHTML=e.text),t})()}A([`click`]);var ug=C(`<img width=20 height=20 style=display:block;border-radius:3px>`),dg=C(`<span>Settings`),fg=C(`<span>`),pg=C(`<span>Respawn`),mg=C(`<span>Logout`),hg=C(`<div style="position:absolute;top:calc(100% + 4px);right:0;min-width:180px;background:#161b22;border:1px solid #30363d;border-radius:6px;box-shadow:0 8px 24px rgba(0, 0, 0, 0.5);z-index:100;overflow:hidden;padding:4px">`),gg=C(`<div style=position:fixed;inset:0;background:rgba(0,0,0,0.65);z-index:200;display:flex;align-items:center;justify-content:center><div style="width:min(440px, calc(100% - 48px));background:#161b22;border:1px solid #30363d;border-radius:8px;box-shadow:0 8px 24px rgba(0, 0, 0, 0.5);padding:20px"><div style=font-size:16px;font-weight:600;color:#f85149;margin-bottom:12px>Respawn?</div><p style="font-size:13px;color:#c9d1d9;line-height:1.5;margin:0 0 10px">All your buildings and creeps will become unowned so that you can reset your spawn in any vacant room on the map.</p><p style="font-size:13px;color:#8b949e;line-height:1.5;margin:0 0 18px"><b style=color:#c9d1d9>Note:</b> you will NOT be able to spawn again in the same room within 3 days of the initial spawn placement.</p><div style=display:flex;justify-content:flex-end;gap:8px><button style="padding:7px 14px;border-radius:4px;border:1px solid #30363d;background:#21262d;color:#c9d1d9;font-size:13px">Cancel</button><button style="padding:7px 14px;border-radius:4px;border:1px solid #da3633;background:#da3633;color:#fff;font-size:13px;font-weight:600">`),_g=C(`<div style=font-size:12px;color:#f85149;margin-bottom:12px>`),vg=C(`<div style=position:fixed;inset:0;background:rgba(0,0,0,0.65);z-index:200;display:flex;align-items:center;justify-content:center><form style="width:min(420px, calc(100% - 48px));background:#161b22;border:1px solid #30363d;border-radius:8px;box-shadow:0 8px 24px rgba(0, 0, 0, 0.5);padding:20px"><div style=font-size:16px;font-weight:600;color:#c9d1d9;margin-bottom:16px></div><div style=display:flex;justify-content:flex-end;gap:8px;margin-top:4px><button type=button style="padding:7px 14px;border-radius:4px;border:1px solid #30363d;background:#21262d;color:#c9d1d9;font-size:13px">Cancel</button><button type=submit style="padding:7px 14px;border-radius:4px;border:1px solid #238636;background:#238636;color:#fff;font-size:13px;font-weight:600">`),yg=C(`<div style="position:relative;margin:0 16px 0 8px"><button title=Account style="padding:5px 8px;border-radius:4px;border:1px solid #30363d;color:#c9d1d9;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:13px"><span style=font-weight:600;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap>`),bg=C(`<label style=display:block;margin-bottom:12px><span style=display:block;font-size:12px;color:#8b949e;margin-bottom:4px></span><input type=password style="width:100%;padding:7px 10px;border-radius:4px;border:1px solid #30363d;background:#0d1117;color:#c9d1d9;font-size:13px">`),xg=C(`<button style="width:100%;display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:4px;border:none;cursor:pointer;font-size:13px;text-align:left">`);function Sg(e){let[t,r]=a(!1),[i,o]=a(!1),[c,l]=a(!1),[u,d]=a(!1),[p,m]=a(``),[h,g]=a(``),[v,b]=a(``),[x,C]=a(!1),w=()=>Ae()===`password`||Ae()===`steam`,T=()=>z()?.password===!0,E=y(()=>T()&&p().length===0?`Enter your current password.`:h().length<8?`New password must be at least 8 characters.`:h()===v()?null:`Passwords don't match.`),D,O=y(()=>{let e=z()?.badge;return e?`data:image/svg+xml,${encodeURIComponent(it(e))}`:null});s(()=>{if(!t())return;let e=e=>{D&&!D.contains(e.target)&&r(!1)},i=e=>{e.key===`Escape`&&r(!1)};document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,i),n(()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,i)})});function k(){let e=I();e&&(l(!0),e.http.user.respawn().then(()=>{B(`Respawn successful`,`success`),Oe()}).catch(e=>B(`Respawn failed: ${e.message}`,`error`)).finally(()=>{l(!1),o(!1)}))}function A(){m(``),g(``),b(``),d(!0)}function ee(){let e=I();if(!e||E())return;let t=!T();C(!0),e.http.user.password(h(),p()).then(()=>{B(t?`Password set`:`Password changed`,`success`),d(!1),t&&e.stores.user.refreshMe()}).catch(e=>B(`Password ${t?`setup`:`change`} failed: ${e.message}`,`error`)).finally(()=>C(!1))}return(()=>{var n=yg(),a=n.firstChild,s=a.firstChild;return ye(e=>D=e,n),a.$$click=()=>r(e=>!e),j(a,f(_,{get when(){return O()},get children(){var e=ug();return S(()=>F(e,`src`,O())),e}}),s),j(s,()=>z()?.username??`…`),j(a,f(ar,{size:14}),null),j(n,f(_,{get when(){return t()},get children(){var t=hg();return j(t,f(wg,{onClick:()=>{r(!1),e.onOpenSettings()},get children(){return[f(_i,{size:15}),dg()]}}),null),j(t,f(_,{get when(){return w()},get children(){return f(wg,{onClick:()=>{r(!1),A()},get children(){return[f(Lr,{size:15}),(()=>{var e=fg();return j(e,()=>T()?`Change password`:`Set password`),e})()]}})}}),null),j(t,f(wg,{onClick:()=>{r(!1),o(!0)},get children(){return[f(hi,{size:15}),pg()]}}),null),j(t,f(wg,{onClick:()=>{r(!1),Ce()},danger:!0,get children(){return[f(Yr,{size:15}),mg()]}}),null),t}}),null),j(n,f(_,{get when(){return i()},get children(){var e=gg(),t=e.firstChild.firstChild.nextSibling.nextSibling;t.firstChild;var n=t.nextSibling.firstChild,r=n.nextSibling;return e.$$click=e=>{e.target===e.currentTarget&&!c()&&o(!1)},n.$$click=()=>o(!1),r.$$click=k,j(r,()=>c()?`Respawning…`:`Respawn`),S(e=>{var t=c(),i=c()?`default`:`pointer`,a=c(),o=c()?`default`:`pointer`,s=c()?.6:1;return t!==e.e&&(n.disabled=e.e=t),i!==e.t&&P(n,`cursor`,e.t=i),a!==e.a&&(r.disabled=e.a=a),o!==e.o&&P(r,`cursor`,e.o=o),s!==e.i&&P(r,`opacity`,e.i=s),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),e}}),null),j(n,f(_,{get when(){return u()},get children(){var e=vg(),t=e.firstChild,n=t.firstChild,r=n.nextSibling,i=r.firstChild,a=i.nextSibling;return e.$$click=e=>{e.target===e.currentTarget&&!x()&&d(!1)},t.addEventListener(`submit`,e=>{e.preventDefault(),ee()}),j(n,()=>T()?`Change password`:`Set password`),j(t,f(_,{get when(){return T()},get children(){return f(Cg,{label:`Current password`,get value(){return p()},onInput:m,autofocus:!0})}}),r),j(t,f(Cg,{label:`New password`,get value(){return h()},onInput:g,get autofocus(){return!T()}}),r),j(t,f(Cg,{label:`Confirm new password`,get value(){return v()},onInput:b}),r),j(t,f(_,{get when(){return L(()=>!!E())()&&(h()||v())},get children(){var e=_g();return j(e,E),e}}),r),i.$$click=()=>d(!1),j(a,()=>x()?`Saving…`:`Save`),S(e=>{var t=x(),n=x()?`default`:`pointer`,r=x()||E()!=null,o=x()||E()!=null?`default`:`pointer`,s=x()||E()!=null?.6:1;return t!==e.e&&(i.disabled=e.e=t),n!==e.t&&P(i,`cursor`,e.t=n),r!==e.a&&(a.disabled=e.a=r),o!==e.o&&P(a,`cursor`,e.o=o),s!==e.i&&P(a,`opacity`,e.i=s),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),e}}),null),S(e=>P(a,`background`,t()?`#21262d`:`#161b22`)),n})()}function Cg(e){return(()=>{var t=bg(),n=t.firstChild,r=n.nextSibling;return j(n,()=>e.label),r.$$input=t=>e.onInput(t.currentTarget.value),S(()=>r.autofocus=e.autofocus),S(()=>r.value=e.value),t})()}function wg(e){let[t,n]=a(!1);return(()=>{var r=xg();return r.addEventListener(`mouseleave`,()=>n(!1)),r.addEventListener(`mouseenter`,()=>n(!0)),r.$$click=()=>e.onClick(),j(r,()=>e.children),S(n=>{var i=t()?`#21262d`:`transparent`,a=e.danger?`#f85149`:`#c9d1d9`;return i!==n.e&&P(r,`background`,n.e=i),a!==n.t&&P(r,`color`,n.t=a),n},{e:void 0,t:void 0}),r})()}A([`click`,`input`]);function Tg(){return`${ie()}/overview`}function Eg(){return`${ie()}/profile/`}function Dg(){return`${ie()}/market`}function Og(){return`${ie()}/market/`}function kg(){return`${ie()}/power`}function Ag(){return`${ie()}/power/`}function jg(){return window.location.pathname+window.location.search+window.location.hash}function Mg(){let e=window.location.pathname;return e===Tg()?`overview`:e.startsWith(Eg())?`profile`:e===Dg()||e.startsWith(Og())?`market`:e===kg()||e.startsWith(Ag())?`power`:`game`}function Ng(){let e=window.location.pathname;return e.startsWith(Eg())&&decodeURIComponent(e.slice(Eg().length))||null}function Pg(){let e=window.location.pathname;if(e===`${Dg()}/my`)return{view:`my-orders`,resourceType:null};if(e===`${Dg()}/history`)return{view:`history`,resourceType:null};let t=`${Og()}resource/`;if(e.startsWith(t)){let n=decodeURIComponent(e.slice(t.length));if(n)return{view:`resource`,resourceType:n}}return{view:`all-orders`,resourceType:null}}function Fg(){return new URLSearchParams(window.location.search).get(`shard`)}function Ig(){let e=window.location.pathname;if(e===`${kg()}/new`)return{view:`new`,id:null};if(e.startsWith(Ag())){let t=decodeURIComponent(e.slice(Ag().length));if(t)return{view:`detail`,id:t}}return{view:`list`,id:null}}var[Lg,Rg]=a(Mg()),[zg,Bg]=a(Ng()),[Vg,Hg]=a(Pg().view),[Ug,Wg]=a(Pg().resourceType),[Gg,Kg]=a(Fg()),[qg,Jg]=a(Ig().view),[Yg,Xg]=a(Ig().id),Zg=Mg()===`game`?jg():`${ie()}/map`;function Qg(){Mg()===`game`&&(Zg=jg())}function $g(){Qg(),history.pushState(null,``,Tg()),Rg(`overview`)}function e_(e){return e?`?shard=${encodeURIComponent(e)}`:``}function t_(e){Qg(),history.pushState(null,``,`${Dg()}${e_(e??null)}`),Wg(null),Kg(e??null),Hg(`all-orders`),Rg(`market`)}function n_(e,t){Qg(),history.pushState(null,``,`${Og()}resource/${encodeURIComponent(e)}${e_(t??null)}`),Wg(e),Kg(t??null),Hg(`resource`),Rg(`market`)}function r_(){Qg(),history.pushState(null,``,`${Dg()}/my`),Wg(null),Hg(`my-orders`),Rg(`market`)}function i_(){Qg(),history.pushState(null,``,`${Dg()}/history`),Wg(null),Hg(`history`),Rg(`market`)}function a_(){Qg(),history.pushState(null,``,kg()),Xg(null),Jg(`list`),Rg(`power`)}function o_(){Qg(),history.pushState(null,``,`${kg()}/new`),Xg(null),Jg(`new`),Rg(`power`)}function s_(e){Qg(),history.pushState(null,``,`${Ag()}${encodeURIComponent(e)}`),Xg(e),Jg(`detail`),Rg(`power`)}function c_(){history.pushState(null,``,Zg),Rg(`game`)}function l_(e,t){let n=`${ie()}/room/${e}${t?`?shard=${encodeURIComponent(t)}`:``}`;Zg=n,history.pushState(null,``,n),Rg(`game`)}typeof window<`u`&&window.addEventListener(`popstate`,()=>{Rg(Mg()),Bg(Ng());let e=Pg();Hg(e.view),Wg(e.resourceType),Kg(Fg());let t=Ig();Jg(t.view),Xg(t.id)});var u_=C(`<button style="padding:7px;border-radius:4px;cursor:pointer;margin:0 4px;display:flex;align-items:center">`),d_=C(`<button style="padding:7px;border-radius:4px;border:1px solid #30363d;background:#21262d;margin:0 2px;display:flex;align-items:center">`),f_=C(`<div style=flex:1;position:relative;overflow:hidden>`),p_=C(`<div style="border-top:1px solid #30363d;overflow:hidden;position:relative"><div style=position:absolute;top:0;left:0;width:100%;height:4px;cursor:row-resize;z-index:10;background:#21262d>`),m_=C(`<div style="border-left:1px solid #30363d;overflow:hidden;position:relative"><div style=position:absolute;top:0;left:0;width:4px;height:100%;cursor:col-resize;z-index:10;background:#21262d>`),h_=C(`<div style=display:flex;flex:1;overflow:hidden><div style=display:flex;flex-direction:column;flex:1;overflow:hidden>`),g_=C(`<div style=width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#0d1117><div style="display:flex;border-bottom:1px solid #30363d;align-items:center"><div style=flex:1>`),__=C(`<button title=Login style="padding:7px;border-radius:4px;border:none;background:#238636;color:#fff;cursor:pointer;margin:0 16px 0 8px;display:flex;align-items:center">`),v_=C(`<div style=display:flex;flex-direction:column;flex:1;overflow:hidden><div style=display:flex;flex:1;overflow:hidden>`),y_=b(()=>Je(()=>import(`./CodePanel-CgFwZdry.js`).then(e=>({default:e.CodePanel})),__vite__mapDeps([0,1,2,3,4,5,6]))),b_=b(()=>Je(()=>import(`./MapViewer-CcdKq0z8.js`).then(e=>({default:e.MapViewer})),__vite__mapDeps([7,1,2,3,4,5,6,8])));function x_(){let e=ie(),t=window.location.pathname.match(RegExp(`^${e}/room/([A-Za-z0-9]+)`));if(!t)return{room:null,shard:null,tick:null};let n=t[1].toUpperCase();if(!Fn(n))return{room:null,shard:null,tick:null};let r=new URLSearchParams(window.location.search).get(`shard`),i=window.location.hash.match(/tick=(\d+)/);return{room:n,shard:r,tick:i?parseInt(i[1],10):null}}function S_(e,t){return`${ie()}/room/${e}${t?`?shard=${encodeURIComponent(t)}`:``}`}function C_(e){return`${ie()}/map${e?`?shard=${encodeURIComponent(e)}`:``}`}function w_(){return window.location.pathname.startsWith(`${ie()}/map`)?{shard:new URLSearchParams(window.location.search).get(`shard`)}:null}function T_(e){return(()=>{var t=u_();return t.$$click=()=>e.onClick(),j(t,()=>e.children),S(n=>{var r=e.title,i=`1px solid ${e.active?`#388bfd`:`#30363d`}`,a=e.active?`#1f3158`:`#21262d`,o=e.active?`#58a6ff`:`#c9d1d9`;return r!==n.e&&F(t,`title`,n.e=r),i!==n.t&&P(t,`border`,n.t=i),a!==n.a&&P(t,`background`,n.a=a),o!==n.o&&P(t,`color`,n.o=o),n},{e:void 0,t:void 0,a:void 0,o:void 0}),t})()}function E_(e){return(()=>{var t=d_();return t.$$click=()=>e.onClick(),j(t,()=>e.children),S(n=>{var r=e.title,i=e.disabled,a=e.disabled?`#484f58`:`#c9d1d9`,o=e.disabled?`default`:`pointer`;return r!==n.e&&F(t,`title`,n.e=r),i!==n.t&&(t.disabled=n.t=i),a!==n.a&&P(t,`color`,n.a=a),o!==n.o&&P(t,`cursor`,n.o=o),n},{e:void 0,t:void 0,a:void 0,o:void 0}),t})()}function D_(){let e=x_(),[t,r]=a(e.room??D(Ne.room)??`W1N1`),[o,c]=a(e.shard??D(Ne.shard)),[l,u]=a(w_()!==null||!e.room),d=()=>ve()?.serverData?.welcomeText??null,[p,h]=a(!1),g=()=>_e()&&l()&&!p()&&d()!==null,[v,y]=a(!_e()&&!z()?.badge),[b,x]=a(!1),[C,T]=a(!1);s(()=>{b(),T(!0),Promise.resolve().then(()=>T(!1))}),s(()=>{_e()&&md(`view`)}),s(()=>{if(o()!==null||Ee()!==!1)return;let e=ve()?.serverData?.shards?.[0];e&&c(e)});let[E,O]=a(void 0),[k,A]=a(null),[ee,te]=a(null),ne=D(Ne.mapZoom),[re,M]=a(e.room&&ne?Number(ne):null),[ie,oe]=a(null),[N,se]=a(!1),[ce,ue]=a(!1),de=e.tick;s(()=>{let e=R();if(e===null||de===null)return;let t=de;de=null,Yu(e),Zu(t)}),s(()=>{if(m(l))return;let e=S_(t(),o());G()?history.replaceState(null,``,`${e}#tick=${Pu()}`):history.replaceState(null,``,e)});let[F,pe]=a(le(Ne.sidebarWidth,300)),[me,he]=a(le(Ne.sidebarWidth,300)),[ge,ye]=a(le(Ne.consoleHeight,220)),[be,xe]=a(le(Ne.consoleHeight,220)),[Se,Te]=a(!1),[De,Oe]=a(!1),ke=()=>F()<=32,Ae=()=>ge()<=32,je=()=>{F()>32?(he(F()),pe(32)):pe(me())},Me=()=>{ge()>32?(xe(ge()),ye(32)):ye(be())},Pe=e=>{e.preventDefault(),Te(!0);let t=e.clientX,n=F(),r=e=>{let r=e.clientX-t;pe(Math.max(32,Math.min(500,n-r)))},i=()=>{Te(!1),w(Ne.sidebarWidth,F()),window.removeEventListener(`pointermove`,r),window.removeEventListener(`pointerup`,i)};window.addEventListener(`pointermove`,r),window.addEventListener(`pointerup`,i)},B=e=>{e.preventDefault(),Oe(!0);let t=e.clientY,n=ge(),r=e=>{let r=e.clientY-t;ye(Math.max(32,Math.min(500,n-r)))},i=()=>{Oe(!1),w(Ne.consoleHeight,ge()),window.removeEventListener(`pointermove`,r),window.removeEventListener(`pointerup`,i)};window.addEventListener(`pointermove`,r),window.addEventListener(`pointerup`,i)},Fe=(e,t)=>{I()?.stores.navigation.navigateTo(e,t)},Ie=e=>{O(e),u(!0),history.pushState(null,``,C_(o()))},Le=()=>{l()?(u(!1),A(null),te(null),history.pushState(null,``,S_(t(),o()))):Ie(t())};i(()=>{!x_().room&&!w_()&&history.replaceState(null,``,C_(o()));let e=()=>{let e=w_();if(e){u(!0),e.shard!==null&&c(e.shard),m(G)&&Xu();return}let{room:t,shard:n,tick:i}=x_();t&&(r(t),c(n),u(!1),i===null?m(G)&&Xu():de=i)};window.addEventListener(`popstate`,e),n(()=>window.removeEventListener(`popstate`,e));let i=I()?.stores.navigation;if(i){let e=i.on(`navigation:change`,e=>{e.room!==null&&(r(e.room),c(e.shard),u(!1),A(null),te(null),se(i.canBack()),ue(i.canForward()),we(Ne.room,e.room),e.shard?we(Ne.shard,e.shard):ae(Ne.shard),history.pushState(null,``,S_(e.room,e.shard)))});n(()=>e.dispose())}let a=e=>{if(!rn(e.target)){if(e.key===`o`||e.key===`O`){x(e=>!e),y(!1);return}(e.key===`l`||e.key===`L`)&&Qd(),(e.key===`c`||e.key===`C`)&&$d(),(e.key===`y`||e.key===`Y`)&&ef(),l()||(e.key===`1`&&md(`view`),_e()||(e.key===`2`&&md(`flag`),e.key===`3`&&md(`build`)),e.key===`m`&&Ie(t()))}};window.addEventListener(`keydown`,a),n(()=>window.removeEventListener(`keydown`,a))});let Re=()=>(()=>{var e=f_();return j(e,f(_,{get when(){return v()},get children(){return f(og,{onClose:()=>y(!1)})}}),null),j(e,f(_,{get when(){return b()},get children(){return f(y_,{onClose:()=>x(!1)})}}),null),j(e,f(_,{get when(){return!l()},get fallback(){return f(b_,{get shard(){return o()},get originRoom(){return E()},get initialZoom(){return re()??void 0},onNavigateToRoom:e=>Fe(e,o()),onHoveredRoomChanged:A,onSelectedRoomChanged:te,onZoomChanged:e=>{M(e),w(Ne.mapZoom,e)},onSubscriptionStateChanged:oe})},get children(){return f(Ld,{get room(){return t()},get shard(){return o()},onNavigate:Fe})}}),null),j(e,f(_,{get when(){return g()},get children(){return f(lg,{get text(){return d()},onClose:()=>h(!0)})}}),null),e})(),ze=()=>f(_,{get when(){return!_e()},get children(){var e=p_(),t=e.firstChild;return t.$$pointerdown=B,j(e,f(qf,{get shard(){return o()},get isCollapsed(){return Ae()},onToggle:Me}),null),S(t=>{var n=`${ge()}px`,r=De()?`none`:`height 0.15s ease`;return n!==t.e&&P(e,`height`,t.e=n),r!==t.t&&P(e,`transition`,t.t=r),t},{e:void 0,t:void 0}),e}}),Be=e=>(()=>{var n=m_(),r=n.firstChild;return r.$$pointerdown=Pe,j(n,f(kh,{get isCollapsed(){return ke()},onToggle:je,get mapMode(){return l()},get hoveredRoomInfo(){return k()},get selectedRoomInfo(){return ee()},get room(){return t()},get shard(){return o()},get mapZoom(){return re()},get mapSubsActive(){return ie()}}),null),S(t=>{var r=b()?`0`:`${F()}px`,i=e&&!(C()||Se())?`width 0.15s ease`:`none`;return r!==t.e&&P(n,`width`,t.e=r),i!==t.t&&P(n,`transition`,t.t=i),t},{e:void 0,t:void 0}),n})();return(()=>{var e=g_(),t=e.firstChild,n=t.firstChild;return j(t,f(ba,{}),n),j(t,f(_,{get when(){return!_e()||l()},get children(){return f(Fh,{get mapZoom(){return L(()=>!!l())()?re():null},get mapSubsActive(){return L(()=>!!l())()?ie():null}})}}),n),j(t,f(E_,{title:`Back`,get disabled(){return!N()},onClick:()=>I()?.stores.navigation.back(),get children(){return f(lr,{size:16})}}),null),j(t,f(E_,{title:`Forward`,get disabled(){return!ce()},onClick:()=>I()?.stores.navigation.forward(),get children(){return f(sr,{size:16})}}),null),j(t,f(T_,{get title(){return l()?`Room View`:`Map`},get active(){return l()},onClick:Le,get children(){return L(()=>!!l())()?f(Vr,{size:16}):f(Zr,{size:16})}}),null),j(t,f(_,{get when(){return!_e()},get children(){return f(T_,{title:`Overview`,onClick:$g,get children(){return f(zr,{size:16})}})}}),null),j(t,f(_,{get when(){return!_e()},get children(){return f(T_,{title:`Market`,onClick:()=>t_(o()),get children(){return f(Ci,{size:16})}})}}),null),j(t,f(_,{get when(){return!_e()},get children(){return f(T_,{title:`Code Editor`,get active(){return b()},onClick:()=>{x(e=>!e),y(!1)},get children(){return f(yr,{size:16})}})}}),null),j(t,f(_,{get when(){return!_e()},get fallback(){return[f(T_,{title:`Settings`,get active(){return v()},onClick:()=>{y(e=>!e),x(!1)},get children(){return f(_i,{size:16})}}),(()=>{var e=__();return fe(e,`click`,Ce,!0),j(e,f(qr,{size:16})),e})()]},get children(){return f(Sg,{onOpenSettings:()=>{y(!0),x(!1)}})}}),null),j(e,f(_,{get when(){return zt()},get fallback(){return(()=>{var e=v_(),t=e.firstChild;return j(t,Re,null),j(t,()=>Be(!0),null),j(e,ze,null),e})()},get children(){var e=h_(),t=e.firstChild;return j(t,Re,null),j(t,ze,null),j(e,()=>Be(!1),null),e}}),null),j(e,f(Bd,{}),null),e})()}A([`click`,`pointerdown`]);var O_=C(`<div style=position:relative;width:84px;height:84px;flex-shrink:0><svg width=84 height=84 style=transform:rotate(-90deg)><circle cx=42 cy=42 r=38 fill=none stroke-width=8 opacity=0.2></circle><circle cx=42 cy=42 r=38 fill=none stroke-width=8 stroke-linecap=round></circle></svg><div style=position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center><div style=font-size:26px;font-weight:700;line-height:1></div><div style=font-size:10px;font-weight:300;letter-spacing:0.5px>`),k_=`#4DB6AC`,A_=`#A7FFEB`,j_=`#C54444`,M_=`#FF9A9A`;function N_(e){let t=2*Math.PI*(76/2),n=()=>`${Math.max(0,Math.min(1,e.fraction))*t} ${t}`;return(()=>{var t=O_(),r=t.firstChild,i=r.firstChild,a=i.nextSibling,o=r.nextSibling,s=o.firstChild,c=s.nextSibling;return j(s,()=>e.value),j(c,()=>e.label),S(r=>{var s=e.tooltip,c=e.ring,l=e.ring,u=n(),d=e.text;return s!==r.e&&F(t,`title`,r.e=s),c!==r.t&&F(i,`stroke`,r.t=c),l!==r.a&&F(a,`stroke`,r.a=l),u!==r.o&&F(a,`stroke-dasharray`,r.o=u),d!==r.i&&P(o,`color`,r.i=d),r},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),t})()}var P_=C(`<img alt style=display:block;border-radius:3px;flex-shrink:0>`);function F_(e){let t=()=>e.badge?`data:image/svg+xml,${encodeURIComponent(it(e.badge))}`:null;return f(_,{get when(){return t()},get children(){var n=P_();return S(r=>{var i=t(),a=e.size??24,o=e.size??24;return i!==r.e&&F(n,`src`,r.e=i),a!==r.t&&F(n,`width`,r.t=a),o!==r.a&&F(n,`height`,r.a=o),r},{e:void 0,t:void 0,a:void 0}),n}})}var I_=C(`<button style="padding:0;border:1px solid #30363d;border-radius:6px;overflow:hidden;background:#161b22;cursor:pointer;line-height:0"><canvas style=display:block></canvas><div style="padding:4px 0;text-align:center;font-size:12px;font-family:monospace;color:#c9d1d9;line-height:1.2;border-top:1px solid #30363d">`),L_=3;function R_(e,t,n,r){if(!t.length)return;e.fillStyle=tn(n);let i=L_-r*2;for(let[n,a]of t)e.fillRect(n*L_+r,a*L_+r,i,i)}function z_(e,t,n,r){if(t.length){e.fillStyle=tn(n),e.beginPath();for(let[n,i]of t){let t=(n+.5)*L_,a=(i+.5)*L_;e.moveTo(t+r,a),e.arc(t,a,r,0,Math.PI*2)}e.fill()}}function B_(e){let t,r=null,a=null,o=()=>{let e=t?.getContext(`2d`);if(!e)return;if(e.setTransform(2,0,0,2,0,0),e.fillStyle=tn(qt),e.fillRect(0,0,150,150),r){let t=r.raw;e.fillStyle=tn(An);for(let n=0;n<2500;n++)t[n]===Ze.Wall&&e.fillRect(n%50*L_,Math.floor(n/50)*L_,L_,L_);e.fillStyle=tn(Dn);for(let n=0;n<2500;n++)t[n]===Ze.Swamp&&e.fillRect(n%50*L_,Math.floor(n/50)*L_,L_,L_)}let n=a;if(n){R_(e,n.r??[],bn,0),R_(e,n.w??[],Qt,.5);for(let t of Tn)z_(e,n[t.key]??[],t.color,t.radius);let t=n,r=z()?._id;for(let n in t){if(cn.has(n))continue;let i=t[n];!Array.isArray(i)||i.length===0||z_(e,i,n===r?mn:Xt,1.2)}}};return i(()=>{let t=I();if(!t)return;t.stores.room.terrain(e.room,e.shard).then(e=>{r=e,o()}).catch(()=>{});let i=t.stores.map.subscribeMap2(e.room,e.shard),s=t.stores.map.map2data(e.room,e.shard);s&&(a=s,o());let c=t.stores.map.on(`room:map2update`,({room:t,shard:n,data:r})=>{t!==e.room||(n??null)!==(e.shard??null)||(a=r,o())});n(()=>{i.dispose(),c.dispose()})}),(()=>{var n=I_(),r=n.firstChild,i=r.nextSibling;return n.$$click=()=>e.onClick?.(),ye(e=>t=e,r),F(r,`width`,300),F(r,`height`,300),P(r,`width`,`150px`),P(r,`height`,`150px`),j(i,()=>e.room),S(()=>F(n,`title`,e.room+(e.shard?` · ${e.shard}`:``))),n})()}A([`click`]);var V_=2.4,H_=1e6,U_=1e3;function W_(e){return Math.floor((e/H_)**(1/V_))+1}function G_(e){let t=W_(e),n=(t-1)**V_*H_,r=t**V_*H_;return{level:t,current:e-n,total:r-n}}function K_(e){return Math.floor((e/U_)**(1/2))}function q_(e){let t=K_(e),n=t**2*U_,r=(t+1)**2*U_;return{level:t,current:e-n,total:r-n}}function J_(e){if(e==null||!Number.isFinite(e))return`0`;let t=Math.round(e),n=Math.abs(t);return n<1e4?String(t):n<1e6?`${(t/1e3).toPrecision(3)}K`:n<1e9?`${(t/1e6).toPrecision(3)}M`:`${(t/1e9).toPrecision(3)}B`}var Y_=C(`<div style="flex:1;min-width:0;background:#161b22;border:1px solid #30363d;border-radius:6px;padding:14px 8px 12px;text-align:center"><div style=color:#8b949e;font-size:11px;text-transform:uppercase;line-height:1.3><br></div><div style=font-size:28px;font-weight:300;margin-top:8px>`),X_=C(`<div style=margin-top:24px><div style=color:#8b949e;font-size:11px;text-transform:uppercase;margin-bottom:12px>Rooms</div><div style=display:flex;flex-wrap:wrap;gap:16px>`),Z_=C(`<div style=width:100%;height:100%;overflow:auto;background:#0d1117;color:#c9d1d9><div style="max-width:900px;margin:0 auto;padding:24px 16px 40px"><div style="display:flex;align-items:center;gap:10px;padding:0 0 14px;border-bottom:1px solid #30363d;margin-bottom:24px"><h1 style=margin:0;font-size:22px;font-weight:600;color:#c9d1d9>Overview</h1><span style=color:#8b949e;font-size:14px></span><div style=flex:1></div><button title="Back to the world"style="display:flex;align-items:center;gap:4px;padding:7px 12px;border-radius:4px;border:1px solid #30363d;background:#21262d;color:#c9d1d9;cursor:pointer"> World</button></div><div style=display:flex;gap:16px;margin-bottom:16px><div><div><div style=font-size:16px;font-weight:600;color:#c9d1d9;margin-bottom:6px>Global Control Level</div><div style=color:#8b949e;font-size:13px><span>Rooms: <strong style=color:#c9d1d9></strong></span><span style=margin-left:14px>CPU: <strong style=color:#c9d1d9></strong></span></div></div></div><div><div><div style=font-size:16px;font-weight:600;color:#c9d1d9;margin-bottom:8px>Global Power Level</div><button title="Manage your power creeps"style="padding:5px 10px;border-radius:4px;border:1px solid #C54444;background:#21262d;color:#ffb7ba;font-size:12px;cursor:pointer">Manage Power Creeps</button></div></div></div><div style=display:flex;gap:10px>`),Q_=6e4,$_=8,ev=`#161b22`,tv=`#30363d`,nv=[{key:`energyControl`,l1:`Control`,l2:`points`,color:`#A7FFEB`},{key:`energyHarvested`,l1:`Energy`,l2:`harvested`,color:`#ffe56d`},{key:`energyConstruction`,l1:`Energy`,l2:`on construct`,color:`#eeeeee`},{key:`energyCreeps`,l1:`Energy`,l2:`on creeps`,color:`#eeeeee`},{key:`creepsProduced`,l1:`Creeps`,l2:`produced`,color:`#65fd62`},{key:`creepsLost`,l1:`Creeps`,l2:`lost`,color:`#f96e76`},{key:`powerProcessed`,l1:`Power`,l2:`processed`,color:`#E04040`}];function rv(e){return(()=>{var t=Y_(),n=t.firstChild,r=n.firstChild,i=n.nextSibling;return j(n,()=>e.l1,r),j(n,()=>e.l2,null),j(i,()=>J_(e.value)),S(t=>P(i,`color`,e.color)),t})()}function iv(e){return e.shards?Object.entries(e.shards).flatMap(([e,t])=>(t??[]).map(t=>({room:t,shard:e}))):(e.rooms??[]).map(e=>({room:e,shard:null}))}function av(){let[e,t]=a(null),[r,o]=a([]),c=!1;s(()=>{let e=I(),t=z()?._id;!e||!t||c||(c=!0,e.http.user.rooms(t).then(e=>o(iv(e))).catch(()=>{c=!1}))}),i(()=>{let e=I();if(!e)return;let r=null,i=()=>e.http.user.overview($_,`energyHarvested`).then(e=>t(e.totals??null));i().then(()=>{r=setInterval(()=>{e.stores.user.refreshMe().catch(()=>{}),i().catch(()=>{})},Q_)}).catch(()=>{}),n(()=>{r&&clearInterval(r)})});let l=()=>G_(z()?.gcl??0),d=()=>q_(z()?.power??0),p=e=>e.total>0?e.current/e.total:0,m=e=>`Next level: ${Math.floor(e.current).toLocaleString()} / ${Math.floor(e.total).toLocaleString()}`,h={flex:1,display:`flex`,"align-items":`center`,gap:`16px`,background:ev,border:`1px solid ${tv}`,"border-radius":`6px`,padding:`16px`};return(()=>{var t=Z_(),n=t.firstChild,i=n.firstChild,a=i.firstChild,o=a.nextSibling,s=o.nextSibling.nextSibling,c=s.firstChild,g=i.nextSibling,v=g.firstChild,y=v.firstChild,b=y.firstChild.nextSibling.firstChild,x=b.firstChild.nextSibling,C=b.nextSibling.firstChild.nextSibling,w=v.nextSibling,T=w.firstChild,E=T.firstChild.nextSibling,D=g.nextSibling;return j(i,f(F_,{get badge(){return z()?.badge},size:28}),a),j(o,()=>z()?.username),fe(s,`click`,c_,!0),j(s,f(lr,{size:16}),c),j(v,f(N_,{get value(){return l().level},label:`GCL`,ring:k_,text:A_,get fraction(){return p(l())},get tooltip(){return m(l())}}),y),j(x,()=>l().level),j(C,()=>z()?.cpu??`—`),j(w,f(N_,{get value(){return d().level},label:`GPL`,ring:j_,text:M_,get fraction(){return p(d())},get tooltip(){return m(d())}}),T),fe(E,`click`,a_,!0),j(D,f(u,{each:nv,children:t=>f(rv,{get l1(){return t.l1},get l2(){return t.l2},get color(){return t.color},get value(){return e()?.[t.key]}})})),j(n,f(_,{get when(){return r().length},get children(){var e=X_(),t=e.firstChild.nextSibling;return j(t,f(u,{get each(){return r()},children:e=>f(B_,{get room(){return e.room},get shard(){return e.shard},onClick:()=>l_(e.room,e.shard)})})),e}}),null),S(e=>{var t=h,n=h;return e.e=N(v,t,e.e),e.t=N(w,n,e.t),e},{e:void 0,t:void 0}),t})()}A([`click`]);var ov=C(`<div style=width:100%;height:100%;overflow:auto;background:#0d1117;color:#c9d1d9><div style="max-width:900px;margin:0 auto;padding:24px 16px 40px"><div style="display:flex;align-items:center;padding:0 0 14px;border-bottom:1px solid #30363d;margin-bottom:24px"><h1 style=margin:0;flex:1;font-size:22px;font-weight:600;color:#c9d1d9>Profile</h1><button title="Back to the world"style="display:flex;align-items:center;gap:4px;padding:7px 12px;border-radius:4px;border:1px solid #30363d;background:#21262d;color:#c9d1d9;cursor:pointer"> World`),sv=C(`<div style=color:#8b949e;text-align:center;padding:40px>Loading…`),cv=C(`<div style=color:#8b949e;text-align:center;font-size:18px;padding:40px>User not found`),lv=C(`<div style="display:flex;align-items:center;gap:20px;background:#161b22;border:1px solid #30363d;border-radius:6px;padding:20px"><div style=flex:1><div style=font-size:22px;font-weight:600;margin-bottom:4px></div><div style=color:#8b949e;font-size:13px>Global Control Level `);function uv(){let[e]=c(()=>zg(),async e=>{let t=I();if(!t)return null;try{return(await t.http.user.find({username:e})).user??null}catch{return null}}),t=()=>G_(e()?.gcl??0),n=e=>e.total>0?e.current/e.total:0,r=e=>`Next level: ${Math.floor(e.current).toLocaleString()} / ${Math.floor(e.total).toLocaleString()}`;return(()=>{var i=ov(),a=i.firstChild,o=a.firstChild.firstChild.nextSibling,s=o.firstChild;return fe(o,`click`,c_,!0),j(o,f(lr,{size:16}),s),j(a,f(_,{get when(){return!e.loading},get fallback(){return sv()},get children(){return f(_,{get when(){return e()},get fallback(){return cv()},children:e=>(()=>{var i=lv(),a=i.firstChild,o=a.firstChild,s=o.nextSibling;return s.firstChild,j(i,f(F_,{get badge(){return e().badge},size:64}),a),j(o,()=>e().username),j(s,()=>t().level,null),j(i,f(N_,{get value(){return t().level},label:`GCL`,ring:k_,text:A_,get fraction(){return n(t())},get tooltip(){return r(t())}}),null),i})()})}}),null),i})()}A([`click`]);var dv=`#0d1117`,fv=`#161b22`,pv=`#1c2129`,q=`#30363d`,J=`#c9d1d9`,Y=`#8b949e`,mv=`#58a6ff`,hv=`#3fb950`,gv=`#f85149`;function _v(e){return e==null?`—`:Math.round(e).toLocaleString(`en-US`)}function vv(e){return e==null?`—`:e.toLocaleString(`en-US`,{minimumFractionDigits:3,maximumFractionDigits:3})}function yv(){return(ve()?.serverData?.shards??[]).filter(e=>e!=null)}function bv(){return Gg()??yv()[0]??null}function xv(){return yv().length>1}var Sv={token:`subscription token`,energy:`energy`,power:`power`,H:`hydrogen`,O:`oxygen`,U:`utrium`,L:`lemergium`,K:`keanium`,Z:`zynthium`,X:`catalyst`,OH:`hydroxide`,ZK:`zynthium keanite`,UL:`utrium lemergite`,G:`ghodium`,UH:`utrium hydride`,UO:`utrium oxide`,KH:`keanium hydride`,KO:`keanium oxide`,LH:`lemergium hydride`,LO:`lemergium oxide`,ZH:`zynthium hydride`,ZO:`zynthium oxide`,GH:`ghodium hydride`,GO:`ghodium oxide`,UH2O:`utrium acid`,UHO2:`utrium alkalide`,KH2O:`keanium acid`,KHO2:`keanium alkalide`,LH2O:`lemergium acid`,LHO2:`lemergium alkalide`,ZH2O:`zynthium acid`,ZHO2:`zynthium alkalide`,GH2O:`ghodium acid`,GHO2:`ghodium alkalide`,XUH2O:`catalyzed utrium acid`,XUHO2:`catalyzed utrium alkalide`,XKH2O:`catalyzed keanium acid`,XKHO2:`catalyzed keanium alkalide`,XLH2O:`catalyzed lemergium acid`,XLHO2:`catalyzed lemergium alkalide`,XZH2O:`catalyzed zynthium acid`,XZHO2:`catalyzed zynthium alkalide`,XGH2O:`catalyzed ghodium acid`,XGHO2:`catalyzed ghodium alkalide`,ops:`ops`,silicon:`silicon`,metal:`metal`,biomass:`biomass`,mist:`mist`,utrium_bar:`utrium bar`,lemergium_bar:`lemergium bar`,zynthium_bar:`zynthium bar`,keanium_bar:`keanium bar`,ghodium_melt:`ghodium melt`,oxidant:`oxidant`,reductant:`reductant`,purifier:`purifier`,battery:`battery`,composite:`composite`,crystal:`crystal`,liquid:`liquid`,wire:`wire`,switch:`switch`,transistor:`transistor`,microchip:`microchip`,circuit:`circuit`,device:`device`,cell:`cell`,phlegm:`phlegm`,tissue:`tissue`,muscle:`muscle`,organoid:`organoid`,organism:`organism`,alloy:`alloy`,tube:`tube`,fixtures:`fixtures`,frame:`frame`,hydraulics:`hydraulics`,machine:`machine`,condensate:`condensate`,concentrate:`concentrate`,extract:`extract`,spirit:`spirit`,emanation:`emanation`,essence:`essence`},Cv=Object.keys(Sv);function wv(e){return Sv[e]??e}var Tv={metal:[`wire`,`switch`,`transistor`,`microchip`,`circuit`,`device`],biomass:[`cell`,`phlegm`,`tissue`,`muscle`,`organoid`,`organism`],silicon:[`alloy`,`tube`,`fixtures`,`frame`,`hydraulics`,`machine`],mist:[`condensate`,`concentrate`,`extract`,`spirit`,`emanation`,`essence`]},Ev={utrium_bar:`U`,lemergium_bar:`L`,zynthium_bar:`Z`,keanium_bar:`K`,ghodium_melt:`G`,oxidant:`O`,reductant:`H`,purifier:`X`,battery:`energy`},Dv={ops:14255163,token:15911244},Ov=(()=>{let e={};for(let t in Tv)for(let n of Tv[t])e[n]=nn[t];for(let t in Ev){let n=Ev[t];e[t]=n===`energy`?ht:Pn[n]}return{...e,...Dv}})();function kv(e){if(Pn[e]!=null)return Pn[e];if(nn[e]!=null)return nn[e];if(Ov[e]!=null)return Ov[e];let t=(e.startsWith(`X`)?e.slice(1):e)[0];return Pn[t]==null?_t:Pn[t]}var Av=C(`<span style="display:inline-block;border-radius:50%;border:1px solid rgba(255, 255, 255, 0.25);vertical-align:middle;flex:none">`);function jv(e){let t=()=>e.size??18,n=()=>`#${kv(e.resourceType).toString(16).padStart(6,`0`)}`;return(()=>{var r=Av();return S(i=>{var a=wv(e.resourceType),o=`${t()}px`,s=`${t()}px`,c=n();return a!==i.e&&F(r,`title`,i.e=a),o!==i.t&&P(r,`width`,i.t=o),s!==i.a&&P(r,`height`,i.a=s),c!==i.o&&P(r,`background`,i.o=c),i},{e:void 0,t:void 0,a:void 0,o:void 0}),r})()}var Mv=C(`<div style="display:grid;grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));gap:8px">`),Nv=C(`<div style=border-radius:8px;padding:32px;text-align:center>Couldn't load the market — this server may not support it.`),Pv=C(`<button style="display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:6px;cursor:pointer;text-align:left"><span style=flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap></span><span style=font-size:13px> `);function Fv(e){let[t,n]=a({}),[r,i]=a(!0),[o,c]=a(null),l=0;return s(()=>{let t=e.shard,r=I();if(!r)return;let a=++l;i(!0),r.http.game.market.ordersIndex(t).then(e=>{if(a!==l)return;let t={};for(let n of e.list??[])t[n._id]=n.count;n(t),c(null)}).catch(e=>{a===l&&c(e instanceof Error?e.message:String(e))}).finally(()=>{a===l&&i(!1)})}),f(_,{get when(){return!o()},get fallback(){return(()=>{var e=Nv();return P(e,`background`,fv),P(e,`border`,`1px solid ${q}`),P(e,`color`,Y),e})()},get children(){var n=Mv();return j(n,f(u,{each:Cv,children:n=>{let r=()=>t()[n]??0;return(()=>{var t=Pv(),i=t.firstChild,a=i.nextSibling,o=a.firstChild;return t.addEventListener(`mouseleave`,e=>e.currentTarget.style.background=fv),t.addEventListener(`mouseenter`,e=>e.currentTarget.style.background=pv),t.$$click=()=>n_(n,e.shard),P(t,`border`,`1px solid ${q}`),P(t,`background`,fv),P(t,`color`,J),j(t,f(jv,{resourceType:n,size:20}),i),j(i,()=>wv(n)),j(a,r,o),j(a,()=>r()===1?`order`:`orders`,null),S(e=>P(a,`color`,r()>0?J:Y)),t})()}})),S(e=>P(n,`opacity`,r()?.6:1)),n}})}A([`click`]);var Iv=C(`<div style=border-radius:8px;margin-bottom:16px;overflow:hidden><div style="display:flex;align-items:center;padding:11px 16px"><span style=font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em></span><div style=flex:1></div></div><div style="padding:4px 16px 12px">`);function Lv(e){return(()=>{var t=Iv(),n=t.firstChild,r=n.firstChild;r.nextSibling;var i=n.nextSibling;return P(t,`background`,fv),P(t,`border`,`1px solid ${q}`),P(n,`border-bottom`,`1px solid ${q}`),P(n,`background`,pv),j(r,()=>e.title),j(n,()=>e.right,null),j(i,()=>e.children),S(n=>{var i=e.accent?`3px solid ${e.accent}`:`1px solid ${q}`,a=e.accent??`#c9d1d9`;return i!==n.e&&P(t,`border-left`,n.e=i),a!==n.t&&P(r,`color`,n.t=a),n},{e:void 0,t:void 0}),t})()}function Rv(e){return e%2==1?`rgba(255, 255, 255, 0.022)`:`transparent`}var zv=C(`<div style="border-radius:6px;padding:10px 14px;margin-bottom:16px;font-size:13px">A special item that activates 60 days of CPU subscription for its owner.`),Bv=C(`<div style=display:flex;align-items:center;gap:10px;margin-bottom:16px><label style=font-size:13px>Target room</label><input placeholder="e.g. W1N1"style="padding:6px 8px;border-radius:4px;width:120px"><span style=font-size:12px>shows shipping range to each order's room`),Vv=C(`<div>`),Hv=C(`<div><div style=display:flex;align-items:center;gap:12px;margin-bottom:16px><button style="display:flex;align-items:center;gap:4px;padding:6px 10px;border-radius:4px;background:#21262d;cursor:pointer"> Resources</button><div style=flex:1></div><button title=Refresh style="display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:4px;background:#21262d;cursor:pointer"> Refresh</button></div><div style=display:flex;align-items:center;gap:10px;margin-bottom:16px><h2 style=margin:0;font-size:20px;font-weight:600>`),Uv=C(`<div style=border-radius:8px;padding:32px;text-align:center>Couldn't load orders for this resource.`),Wv=C(`<table style=width:100%;border-collapse:collapse;font-size:13px><thead><tr style=text-align:right></tr></thead><tbody>`),Gv=C(`<span style=font-size:12px> `),Kv=C(`<div style="font-size:13px;padding:10px 0">No orders`),qv=C(`<a href=# style=text-decoration:none>`),Jv=C(`<td style="padding:7px 0">`),Yv=C(`<td style=padding-right:6px>`),Xv=C(`<tr style=text-align:right><td style="text-align:left;font-family:monospace;padding:7px 8px 7px 6px"></td><td style="font-variant-numeric:tabular-nums;padding:7px 0"></td><td style="font-variant-numeric:tabular-nums;padding:7px 0"></td><td style="font-variant-numeric:tabular-nums;padding:7px 0">`),Zv=C(`<span>—`),Qv=C(`<th style=font-weight:400;cursor:pointer;user-select:none;white-space:nowrap>`),$v=C(`<table style=width:100%;border-collapse:collapse;font-size:13px><thead><tr style=text-align:right><th style="text-align:left;font-weight:400;padding:0 0 7px 6px">Date</th><th style="font-weight:400;padding:0 0 7px">Transactions</th><th style="font-weight:400;padding:0 0 7px">Total volume</th><th style="font-weight:400;padding:0 6px 7px 0">Price (avg ± stddev)</th></tr></thead><tbody>`),ey=C(`<div style="font-size:13px;padding:10px 0">No history`),ty=C(`<tr style=text-align:right><td style="text-align:left;padding:7px 0 7px 6px"></td><td style="font-variant-numeric:tabular-nums;padding:7px 0"></td><td style="font-variant-numeric:tabular-nums;padding:7px 0"></td><td style="font-variant-numeric:tabular-nums;padding:7px 6px 7px 0"> <span>± `);function ny(e,t){if(!e)return;let n=Fn(e),r=Fn(t);if(!(!n||!r))return Math.max(Math.abs(n.x-r.x),Math.abs(n.y-r.y))}function ry(e,t){let n=t[0]===`-`,r=t.slice(1);return[...e].sort((e,t)=>{let i=e[r],a=t[r],o;return o=typeof i==`number`||typeof a==`number`?(Number(i)||0)-(Number(a)||0):String(i??``).localeCompare(String(a??``)),n?-o:o})}function iy(e){let[t,n]=a([]),[r,i]=a([]),[o,c]=a([]),[l,u]=a(``),[d,p]=a(!0),[m,h]=a(null),g=()=>e.resourceType===`token`,v=0,b=()=>{let t=I(),r=e.resourceType;if(!t||!r)return;let a=++v;p(!0),t.http.game.market.orders(r,e.shard).then(e=>{if(a!==v)return;let t=e.list??[];n(t.filter(e=>e.type===`sell`)),i(t.filter(e=>e.type===`buy`)),h(null)}).catch(e=>{a===v&&h(e instanceof Error?e.message:String(e))}).finally(()=>{a===v&&p(!1)}),t.http.game.market.stats(r,e.shard).then(e=>{a===v&&c(e.stats??[])}).catch(()=>{a===v&&c([])})};s(()=>{e.resourceType,e.shard,b()});let x=e=>{let t=l().trim().toUpperCase(),n=/^[WE]\d+[NS]\d+$/.test(t);return e.map(e=>({...e,range:n?ny(e.roomName,t):void 0}))},C=y(()=>x(t())),w=y(()=>x(r()));return(()=>{var t=Hv(),n=t.firstChild,r=n.firstChild,i=r.firstChild,a=r.nextSibling.nextSibling,s=a.firstChild,c=n.nextSibling,p=c.firstChild;return r.$$click=()=>t_(e.shard),P(r,`border`,`1px solid ${q}`),P(r,`color`,J),j(r,f(lr,{size:14}),i),a.$$click=b,P(a,`border`,`1px solid ${q}`),P(a,`color`,J),j(a,f(di,{size:14}),s),j(c,f(jv,{get resourceType(){return e.resourceType??``},size:26}),p),P(p,`color`,J),j(p,()=>wv(e.resourceType??``)),j(t,f(_,{get when(){return g()},get children(){var e=zv();return P(e,`background`,fv),P(e,`border`,`1px solid ${q}`),P(e,`color`,Y),e}}),null),j(t,f(_,{get when(){return!m()},get fallback(){return(()=>{var e=Uv();return P(e,`background`,fv),P(e,`border`,`1px solid ${q}`),P(e,`color`,Y),e})()},get children(){return[f(_,{get when(){return!g()},get children(){var e=Bv(),t=e.firstChild,n=t.nextSibling,r=n.nextSibling;return P(t,`color`,Y),n.$$input=e=>u(e.currentTarget.value),P(n,`border`,`1px solid ${q}`),P(n,`background`,fv),P(n,`color`,J),P(r,`color`,Y),S(()=>n.value=l()),e}}),(()=>{var t=Vv();return j(t,f(ay,{title:`Selling`,accent:hv,get rows(){return C()},defaultSort:`+price`,get showRoom(){return!g()},get shard(){return e.shard}}),null),j(t,f(ay,{title:`Buying`,accent:gv,get rows(){return w()},defaultSort:`-price`,get showRoom(){return!g()},get shard(){return e.shard}}),null),j(t,f(sy,{get stats(){return o()}}),null),S(e=>P(t,`opacity`,d()?.6:1)),t})()]}}),null),t})()}function ay(e){let[t,n]=a(e.defaultSort),r=y(()=>ry(e.rows,t())),i=e=>{n(t=>t===`+${e}`?`-${e}`:`+${e}`)};return f(Lv,{get title(){return e.title},get accent(){return e.accent},get right(){return(()=>{var t=Gv(),n=t.firstChild;return P(t,`color`,Y),j(t,()=>e.rows.length,n),j(t,()=>e.rows.length===1?`order`:`orders`,null),t})()},get children(){return f(_,{get when(){return e.rows.length},get fallback(){return(()=>{var e=Kv();return P(e,`color`,Y),e})()},get children(){var n=Wv(),a=n.firstChild,o=a.firstChild,s=a.nextSibling;return P(o,`color`,Y),j(o,f(oy,{label:`Order ID`,col:`_id`,get sort(){return t()},onClick:i,align:`left`}),null),j(o,f(oy,{label:`Price`,col:`price`,get sort(){return t()},onClick:i}),null),j(o,f(oy,{label:`Available`,col:`amount`,get sort(){return t()},onClick:i}),null),j(o,f(oy,{label:`Remaining`,col:`remainingAmount`,get sort(){return t()},onClick:i}),null),j(o,f(_,{get when(){return e.showRoom},get children(){return[f(oy,{label:`Room`,col:`roomName`,get sort(){return t()},onClick:i}),f(oy,{label:`Range`,col:`range`,get sort(){return t()},onClick:i})]}}),null),j(s,f(u,{get each(){return r()},children:(t,n)=>(()=>{var r=Xv(),i=r.firstChild,a=i.nextSibling,o=a.nextSibling,s=o.nextSibling;return P(i,`color`,Y),j(i,()=>t._id),j(a,()=>vv(t.price)),P(o,`color`,J),j(o,()=>_v(t.amount)),P(s,`color`,Y),j(s,()=>_v(t.remainingAmount)),j(r,f(_,{get when(){return e.showRoom},get children(){return[(()=>{var n=Jv();return j(n,f(_,{get when(){return t.roomName},get fallback(){return(()=>{var e=Zv();return P(e,`color`,Y),e})()},get children(){var n=qv();return n.$$click=n=>{n.preventDefault(),l_(t.roomName,e.shard)},P(n,`color`,mv),j(n,()=>t.roomName),n}})),n})(),(()=>{var e=Yv();return P(e,`color`,Y),j(e,()=>t.range??`—`),e})()]}}),null),S(t=>{var i=Rv(n()),o=e.accent;return i!==t.e&&P(r,`background`,t.e=i),o!==t.t&&P(a,`color`,t.t=o),t},{e:void 0,t:void 0}),r})()})),n}})}})}function oy(e){let t=()=>e.sort===`+${e.col}`||e.sort===`-${e.col}`,n=()=>e.sort===`+${e.col}`?` ▲`:e.sort===`-${e.col}`?` ▼`:``;return(()=>{var r=Qv();return r.$$click=()=>e.onClick(e.col),P(r,`border-bottom`,`1px solid ${q}`),j(r,()=>e.label,null),j(r,n,null),S(n=>{var i=e.align??`right`,a=t()?J:Y,o=e.align===`left`?`0 0 7px 6px`:`0 0 7px`;return i!==n.e&&P(r,`text-align`,n.e=i),a!==n.t&&P(r,`color`,n.t=a),o!==n.a&&P(r,`padding`,n.a=o),n},{e:void 0,t:void 0,a:void 0}),r})()}function sy(e){return f(Lv,{title:`Price history`,get children(){return f(_,{get when(){return e.stats.length},get fallback(){return(()=>{var e=ey();return P(e,`color`,Y),e})()},get children(){var t=$v(),n=t.firstChild,r=n.firstChild,i=r.firstChild,a=i.nextSibling,o=a.nextSibling,s=o.nextSibling,c=n.nextSibling;return P(r,`color`,Y),P(i,`border-bottom`,`1px solid ${q}`),P(a,`border-bottom`,`1px solid ${q}`),P(o,`border-bottom`,`1px solid ${q}`),P(s,`border-bottom`,`1px solid ${q}`),j(c,f(u,{get each(){return e.stats},children:(e,t)=>(()=>{var n=ty(),r=n.firstChild,i=r.nextSibling,a=i.nextSibling,o=a.nextSibling,s=o.firstChild,c=s.nextSibling;return c.firstChild,P(r,`color`,Y),j(r,()=>e.date),P(i,`color`,J),j(i,()=>_v(e.transactions)),P(a,`color`,J),j(a,()=>_v(e.volume)),P(o,`color`,J),j(o,()=>vv(e.avgPrice),s),P(c,`color`,Y),j(c,()=>vv(e.stddevPrice),null),S(e=>P(n,`background`,Rv(t()))),n})()})),t}})}})}A([`click`,`input`]);var cy=C(`<div style=display:flex;justify-content:flex-end;margin-bottom:12px><button title=Refresh style="display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:4px;background:#21262d;cursor:pointer"> Refresh`),ly=C(`<div>`),uy=C(`<div style=border-radius:8px;padding:32px;text-align:center>Couldn't load your orders.`),dy=C(`<div style=border-radius:8px;padding:32px;text-align:center>You have no orders. Create one with the in-game Market API.`),fy=C(`<table style=width:100%;border-collapse:collapse;font-size:13px><thead><tr style=text-align:right><th style="text-align:left;font-weight:400;padding:0 0 7px 6px">Order ID</th><th style="text-align:left;font-weight:400;padding:0 0 7px">Resource</th><th style="font-weight:400;padding:0 0 7px">Type</th><th style="font-weight:400;padding:0 0 7px">Active</th><th style="font-weight:400;padding:0 0 7px">Price</th><th style="font-weight:400;padding:0 0 7px">Available</th><th style="font-weight:400;padding:0 0 7px">Remaining</th><th style="font-weight:400;padding:0 0 7px">Total</th><th style="font-weight:400;padding:0 6px 7px 0">Room</th></tr></thead><tbody>`),py=C(`<span style=font-size:12px> `),my=C(`<a href=# style=text-decoration:none>`),hy=C(`<tr style=text-align:right><td style="text-align:left;font-family:monospace;padding:7px 8px 7px 6px"></td><td style="text-align:left;padding:7px 0"><a href=# style=display:inline-flex;align-items:center;gap:8px;text-decoration:none></a></td><td style="padding:7px 0"></td><td style="padding:7px 0"></td><td style="font-variant-numeric:tabular-nums;padding:7px 0"></td><td style="font-variant-numeric:tabular-nums;padding:7px 0"></td><td style="font-variant-numeric:tabular-nums;padding:7px 0"></td><td style="font-variant-numeric:tabular-nums;padding:7px 0"></td><td style="padding:7px 6px 7px 0">`),gy=C(`<span>—`);function _y(){let[e,t]=a([]),[n,r]=a(!0),[o,s]=a(null),c=()=>{let e=I();e&&(r(!0),e.http.game.market.myOrders().then(e=>{e.shards?t(Object.entries(e.shards).map(([e,t])=>({shard:e,orders:t}))):t([{shard:null,orders:e.list??[]}]),s(null)}).catch(e=>s(e instanceof Error?e.message:String(e))).finally(()=>r(!1)))};i(c);let l=()=>e().reduce((e,t)=>e+t.orders.length,0),d=()=>e().length>1;return f(_,{get when(){return!o()},get fallback(){return(()=>{var e=uy();return P(e,`background`,fv),P(e,`border`,`1px solid ${q}`),P(e,`color`,Y),e})()},get children(){return[(()=>{var e=cy(),t=e.firstChild,n=t.firstChild;return t.$$click=c,P(t,`border`,`1px solid ${q}`),P(t,`color`,J),j(t,f(di,{size:14}),n),e})(),f(_,{get when(){return l()},get fallback(){return(()=>{var e=dy();return P(e,`background`,fv),P(e,`border`,`1px solid ${q}`),P(e,`color`,Y),e})()},get children(){var t=ly();return j(t,f(u,{get each(){return e()},children:e=>f(_,{get when(){return e.orders.length},get children(){return f(Lv,{get title(){return L(()=>!!d())()?e.shard??`My orders`:`My orders`},get right(){return(()=>{var t=py(),n=t.firstChild;return P(t,`color`,Y),j(t,()=>e.orders.length,n),j(t,()=>e.orders.length===1?`order`:`orders`,null),t})()},get children(){var t=fy(),n=t.firstChild,r=n.firstChild,i=r.firstChild,a=i.nextSibling,o=a.nextSibling,s=o.nextSibling,c=s.nextSibling,l=c.nextSibling,d=l.nextSibling,p=d.nextSibling,m=p.nextSibling,h=n.nextSibling;return P(r,`color`,Y),P(i,`border-bottom`,`1px solid ${q}`),P(a,`border-bottom`,`1px solid ${q}`),P(o,`border-bottom`,`1px solid ${q}`),P(s,`border-bottom`,`1px solid ${q}`),P(c,`border-bottom`,`1px solid ${q}`),P(l,`border-bottom`,`1px solid ${q}`),P(d,`border-bottom`,`1px solid ${q}`),P(p,`border-bottom`,`1px solid ${q}`),P(m,`border-bottom`,`1px solid ${q}`),j(h,f(u,{get each(){return e.orders},children:(t,n)=>(()=>{var r=hy(),i=r.firstChild,a=i.nextSibling,o=a.firstChild,s=a.nextSibling,c=s.nextSibling,l=c.nextSibling,u=l.nextSibling,d=u.nextSibling,p=d.nextSibling,m=p.nextSibling;return P(i,`color`,Y),j(i,()=>t._id),o.$$click=n=>{n.preventDefault(),n_(t.resourceType,e.shard)},P(o,`color`,mv),j(o,f(jv,{get resourceType(){return t.resourceType},size:16}),null),j(o,()=>wv(t.resourceType),null),j(s,()=>t.type===`sell`?`Selling`:`Buying`),j(c,()=>t.active?`Yes`:`No`),P(l,`color`,J),j(l,()=>vv(t.price)),P(u,`color`,J),j(u,()=>_v(t.amount)),P(d,`color`,Y),j(d,()=>_v(t.remainingAmount)),P(p,`color`,Y),j(p,()=>_v(t.totalAmount)),j(m,f(_,{get when(){return t.roomName},get fallback(){return(()=>{var e=gy();return P(e,`color`,Y),e})()},get children(){var n=my();return n.$$click=n=>{n.preventDefault(),l_(t.roomName,e.shard)},P(n,`color`,mv),j(n,()=>t.roomName),n}})),S(e=>{var i=Rv(n()),a=t.type===`sell`?hv:gv,o=t.active?hv:gv;return i!==e.e&&P(r,`background`,e.e=i),a!==e.t&&P(s,`color`,e.t=a),o!==e.a&&P(c,`color`,e.a=o),e},{e:void 0,t:void 0,a:void 0}),r})()})),t}})}})})),S(e=>P(t,`opacity`,n()?.6:1)),t}})]}})}A([`click`]);var vy=C(`<div style=display:flex;justify-content:flex-end;margin-bottom:12px><button title=Refresh style="display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:4px;background:#21262d;cursor:pointer"> Refresh`),yy=C(`<th style="text-align:left;font-weight:400;padding:0 0 7px">Shard`),by=C(`<table style=width:100%;border-collapse:collapse;font-size:13px><thead><tr style=text-align:right><th style="text-align:left;font-weight:400;padding:0 0 7px 6px">Date</th><th style="font-weight:400;padding:0 0 7px">Tick</th><th style="text-align:left;font-weight:400;padding:0 12px 7px">Description</th><th style="font-weight:400;padding:0 0 7px">Change</th><th style="font-weight:400;padding:0 6px 7px 0">Balance</th></tr></thead><tbody>`),xy=C(`<button style="display:flex;align-items:center;gap:4px;padding:6px 12px;border-radius:4px;background:#21262d;cursor:pointer"> Newer`),Sy=C(`<button style="display:flex;align-items:center;gap:4px;padding:6px 12px;border-radius:4px;background:#21262d;cursor:pointer">Older `),Cy=C(`<div style=display:flex;justify-content:space-between;margin-top:16px>`),wy=C(`<div style=border-radius:8px;padding:32px;text-align:center>Couldn't load your history.`),Ty=C(`<div style=border-radius:8px;padding:32px;text-align:center>Your market history is empty.`),Ey=C(`<td style="text-align:left;padding:7px 0">`),Dy=C(`<tr style=text-align:right><td style="text-align:left;padding:7px 0 7px 6px"></td><td style="font-variant-numeric:tabular-nums;padding:7px 0"></td><td style="text-align:left;padding:7px 12px"></td><td style="font-variant-numeric:tabular-nums;padding:7px 0"></td><td style="font-variant-numeric:tabular-nums;padding:7px 6px 7px 0">`),Oy=C(`<span>`);function ky(e){switch(e.type){case`market.buy`:return`Resources bought via market order`;case`market.sell`:return`Resources sold via market order`;case`market.fee`:return`Market fee`;default:return e.type.replace(/[._]/g,` `)}}function Ay(e){let t=new Date(e);return isNaN(t.getTime())?e:t.toLocaleString()}function jy(){let[e,t]=a([]),[n,r]=a(0),[o,s]=a(!1),[c,l]=a(!0),[d,p]=a(null),m=e=>{let n=I();n&&(l(!0),n.http.user.moneyHistory(e).then(n=>{t(n.list??[]),r(n.page??e),s(n.hasMore??!1),p(null)}).catch(e=>p(e instanceof Error?e.message:String(e))).finally(()=>l(!1)))};return i(()=>m(0)),f(_,{get when(){return!d()},get fallback(){return(()=>{var e=wy();return P(e,`background`,fv),P(e,`border`,`1px solid ${q}`),P(e,`color`,Y),e})()},get children(){return[(()=>{var e=vy(),t=e.firstChild,r=t.firstChild;return t.$$click=()=>m(n()),P(t,`border`,`1px solid ${q}`),P(t,`color`,J),j(t,f(di,{size:14}),r),e})(),f(_,{get when(){return e().length},get fallback(){return(()=>{var e=Ty();return P(e,`background`,fv),P(e,`border`,`1px solid ${q}`),P(e,`color`,Y),e})()},get children(){return[f(Lv,{title:`Credit history`,get children(){var t=by(),n=t.firstChild,r=n.firstChild,i=r.firstChild,a=i.nextSibling,o=a.nextSibling,s=o.nextSibling,l=s.nextSibling,d=n.nextSibling;return P(r,`color`,Y),P(i,`border-bottom`,`1px solid ${q}`),j(r,f(_,{get when(){return xv()},get children(){var e=yy();return P(e,`border-bottom`,`1px solid ${q}`),e}}),a),P(a,`border-bottom`,`1px solid ${q}`),P(o,`border-bottom`,`1px solid ${q}`),P(s,`border-bottom`,`1px solid ${q}`),P(l,`border-bottom`,`1px solid ${q}`),j(d,f(u,{get each(){return e()},children:(e,t)=>(()=>{var n=Dy(),r=n.firstChild,i=r.nextSibling,a=i.nextSibling,o=a.nextSibling,s=o.nextSibling;return P(r,`color`,Y),j(r,()=>Ay(e.date)),j(n,f(_,{get when(){return xv()},get children(){var t=Ey();return P(t,`color`,Y),j(t,()=>e.shard??`—`),t}}),i),P(i,`color`,Y),j(i,()=>e.tick),P(a,`color`,J),j(a,()=>ky(e)),j(o,()=>e.change>0?`+`:``,null),j(o,()=>vv(e.change),null),P(s,`color`,J),j(s,()=>vv(e.balance)),S(r=>{var i=Rv(t()),a=e.change>0?hv:e.change<0?gv:Y;return i!==r.e&&P(n,`background`,r.e=i),a!==r.t&&P(o,`color`,r.t=a),r},{e:void 0,t:void 0}),n})()})),S(e=>P(t,`opacity`,c()?.6:1)),t}}),(()=>{var e=Cy();return j(e,f(_,{get when(){return n()>0},get fallback(){return Oy()},get children(){var e=xy(),t=e.firstChild;return e.$$click=()=>m(n()-1),P(e,`border`,`1px solid ${q}`),P(e,`color`,J),j(e,f(dr,{size:14}),t),e}}),null),j(e,f(_,{get when(){return o()},get children(){var e=Sy();return e.firstChild,e.$$click=()=>m(n()+1),P(e,`border`,`1px solid ${q}`),P(e,`color`,J),j(e,f(pr,{size:14}),null),e}}),null),e})()]}})]}})}A([`click`]);var My=C(`<label style=display:flex;align-items:center;gap:8px;font-size:13px>Shard<select style="padding:6px 8px;border-radius:4px;cursor:pointer">`),Ny=C(`<div style=width:100%;height:100%;overflow:auto><div style="max-width:1040px;margin:0 auto;padding:24px 16px 48px"><div style="display:flex;align-items:center;gap:12px;padding:0 0 14px;margin-bottom:8px"><button title="Back to the world"style="display:flex;align-items:center;gap:4px;padding:7px 12px;border-radius:4px;background:#21262d;cursor:pointer"> World</button><h1 style=margin:0;font-size:22px;font-weight:600>Market</h1><div style=flex:1></div></div><div style=display:flex;gap:4px;margin-bottom:20px>`),Py=C(`<option>`),Fy=C(`<button style="padding:8px 16px;border:none;background:transparent;font-size:14px;cursor:pointer;margin-bottom:-1px">`);function Iy(){let e=()=>Vg()===`all-orders`||Vg()===`resource`,t=e=>{Vg()===`resource`&&Ug()?n_(Ug(),e):t_(e)};return(()=>{var n=Ny(),r=n.firstChild,i=r.firstChild,a=i.firstChild,o=a.firstChild,s=a.nextSibling;s.nextSibling;var c=i.nextSibling;return P(n,`background`,dv),P(n,`color`,J),P(i,`border-bottom`,`1px solid ${q}`),fe(a,`click`,c_,!0),P(a,`border`,`1px solid ${q}`),P(a,`color`,J),j(a,f(lr,{size:16}),o),P(s,`color`,J),j(i,f(_,{get when(){return L(()=>!!e())()&&xv()},get children(){var e=My(),n=e.firstChild.nextSibling;return P(e,`color`,Y),n.addEventListener(`change`,e=>t(e.currentTarget.value)),P(n,`border`,`1px solid ${q}`),P(n,`background`,fv),P(n,`color`,J),j(n,f(u,{get each(){return yv()},children:e=>(()=>{var t=Py();return t.value=e,j(t,e),t})()})),S(()=>n.value=bv()??``),e}}),null),P(c,`border-bottom`,`1px solid ${q}`),j(c,f(Ly,{label:`All orders`,get active(){return e()},onClick:()=>t_(bv())}),null),j(c,f(Ly,{label:`My orders`,get active(){return Vg()===`my-orders`},onClick:r_}),null),j(c,f(Ly,{label:`History`,get active(){return Vg()===`history`},onClick:i_}),null),j(r,f(g,{get children(){return[f(d,{get when(){return Vg()===`resource`},get children(){return f(iy,{get resourceType(){return Ug()},get shard(){return bv()}})}}),f(d,{get when(){return Vg()===`my-orders`},get children(){return f(_y,{})}}),f(d,{get when(){return Vg()===`history`},get children(){return f(jy,{})}}),f(d,{get when(){return Vg()===`all-orders`},get children(){return f(Fv,{get shard(){return bv()}})}})]}}),null),n})()}function Ly(e){return(()=>{var t=Fy();return t.$$click=()=>e.onClick(),j(t,()=>e.label),S(n=>{var r=`2px solid ${e.active?mv:`transparent`}`,i=e.active?J:Y,a=e.active?600:400;return r!==n.e&&P(t,`border-bottom`,n.e=r),i!==n.t&&P(t,`color`,n.t=i),a!==n.a&&P(t,`font-weight`,n.a=a),n},{e:void 0,t:void 0,a:void 0}),t})()}A([`click`]);var Ry=[`operator`,`commander`,`executor`],zy={operator:{name:`operator`,label:`Operator`,description:`A creep working mainly in the rear, at your base, though it can be used as a saboteur in offensive operations.`,underDevelopment:!1},commander:{name:`commander`,label:`Commander`,description:`This power creep is not very useful on its own, but it's a team player. It influences and affects regular creeps, both friendly and hostile.`,underDevelopment:!0},executor:{name:`executor`,label:`Executor`,description:`This creep class prefers working alone. Due to its skills, it's a very effective performer in your economy or as a war machine when defending or attacking.`,underDevelopment:!0}},X={GENERATE_OPS:1,OPERATE_SPAWN:2,OPERATE_TOWER:3,OPERATE_STORAGE:4,OPERATE_LAB:5,OPERATE_EXTENSION:6,OPERATE_OBSERVER:7,OPERATE_TERMINAL:8,DISRUPT_SPAWN:9,DISRUPT_TOWER:10,DISRUPT_SOURCE:11,SHIELD:12,REGEN_SOURCE:13,REGEN_MINERAL:14,DISRUPT_TERMINAL:15,OPERATE_POWER:16,FORTIFY:17,OPERATE_CONTROLLER:18,OPERATE_FACTORY:19},By=[0,2,7,14,22],Vy=[10,11,12,14,22],Hy=[20,21,22,23,24],Z=(e,t,n,r,i)=>[e,t,n,r,i],Uy=[{id:X.GENERATE_OPS,name:`GENERATE_OPS`,className:`operator`,icon:Li,reqLevel:By,values:Z(`1`,`2`,`4`,`6`,`8`),effect:`Generate %s ops resource units.`,cooldown:50},{id:X.OPERATE_SPAWN,name:`OPERATE_SPAWN`,className:`operator`,icon:pi,reqLevel:By,values:Z(`10%`,`30%`,`50%`,`65%`,`80%`),effect:`Reduce spawn time by %s.`,duration:1e3,cooldown:300,range:3,ops:100},{id:X.OPERATE_TOWER,name:`OPERATE_TOWER`,className:`operator`,icon:xr,reqLevel:By,values:Z(`10%`,`20%`,`30%`,`40%`,`50%`),effect:`Increase damage, repair and heal amount by %s.`,duration:100,cooldown:10,range:3,ops:10},{id:X.OPERATE_STORAGE,name:`OPERATE_STORAGE`,className:`operator`,icon:Cr,reqLevel:By,values:Z(`500K`,`1M`,`2M`,`4M`,`7M`),effect:`Increase capacity by %s units.`,duration:1e3,cooldown:800,range:3,ops:100},{id:X.OPERATE_LAB,name:`OPERATE_LAB`,className:`operator`,icon:jr,reqLevel:By,values:Z(`2`,`4`,`6`,`8`,`10`),effect:`Increase reaction amount by %s units.`,duration:1e3,cooldown:50,range:3,ops:10},{id:X.OPERATE_EXTENSION,name:`OPERATE_EXTENSION`,className:`operator`,icon:Zn,reqLevel:By,values:Z(`20%`,`40%`,`60%`,`80%`,`100%`),effect:`Instantly fill %s of all extensions in the room using energy from the target structure.`,cooldown:50,range:3,ops:2},{id:X.OPERATE_OBSERVER,name:`OPERATE_OBSERVER`,className:`operator`,icon:Tr,reqLevel:By,values:Z(`200`,`400`,`600`,`800`,`1000`),effect:`Grant unlimited range. Effect duration %s ticks.`,cooldown:400,range:3,ops:10},{id:X.OPERATE_TERMINAL,name:`OPERATE_TERMINAL`,className:`operator`,icon:Gn,reqLevel:By,values:Z(`10%`,`20%`,`30%`,`40%`,`50%`),effect:`Decrease transfer energy cost and cooldown by %s.`,duration:1e3,cooldown:500,range:3,ops:100},{id:X.DISRUPT_SPAWN,name:`DISRUPT_SPAWN`,className:`operator`,icon:Yn,reqLevel:By,values:Z(`1`,`2`,`3`,`4`,`5`),effect:`Pause spawning process. Effect duration %s ticks.`,cooldown:5,range:20,ops:10},{id:X.DISRUPT_TOWER,name:`DISRUPT_TOWER`,className:`operator`,icon:Fi,reqLevel:By,values:Z(`10%`,`20%`,`30%`,`40%`,`50%`),effect:`Reduce effectiveness by %s.`,duration:5,cooldown:null,range:50,ops:10},{id:X.DISRUPT_SOURCE,name:`DISRUPT_SOURCE`,className:`operator`,icon:hr,reqLevel:By,values:Z(`100`,`200`,`300`,`400`,`500`),effect:`Pause energy regeneration. Effect duration %s ticks.`,cooldown:100,range:3,ops:100},{id:X.SHIELD,name:`SHIELD`,className:`operator`,icon:xi,reqLevel:By,values:Z(`5K`,`10K`,`15K`,`20K`,`25K`),effect:`Create a temporary non-repairable rampart on the same square with %s hits. Cannot be used on top of another rampart.`,duration:50,cooldown:20},{id:X.FORTIFY,name:`FORTIFY`,className:`operator`,icon:yi,reqLevel:By,values:Z(`1`,`2`,`3`,`4`,`5`),effect:`Make a wall or rampart tile invulnerable to all creep attacks and powers. Effect duration %s ticks.`,cooldown:5,range:3,ops:5},{id:X.OPERATE_FACTORY,name:`OPERATE_FACTORY`,className:`operator`,icon:Dr,reqLevel:By,values:Z(`1`,`2`,`3`,`4`,`5`),effect:`Set the factory level to %s. Permanent and cannot be undone; re-apply to renew the effect.`,duration:1e3,cooldown:800,range:3,ops:100},{id:X.REGEN_SOURCE,name:`REGEN_SOURCE`,className:`operator`,icon:Ti,reqLevel:Vy,values:Z(`50`,`100`,`150`,`200`,`250`),effect:`Regenerate %s energy units in a source every 15 ticks.`,duration:300,cooldown:100,range:3},{id:X.REGEN_MINERAL,name:`REGEN_MINERAL`,className:`operator`,icon:Nr,reqLevel:Vy,values:Z(`2`,`4`,`6`,`8`,`10`),effect:`Regenerate %s mineral units in a deposit every 10 ticks.`,duration:100,cooldown:100,range:3},{id:X.OPERATE_POWER,name:`OPERATE_POWER`,className:`operator`,icon:qn,reqLevel:Vy,values:Z(`1`,`2`,`3`,`4`,`5`),effect:`Increase power processing speed of a Power Spawn by %s units per tick.`,duration:1e3,cooldown:800,range:3,ops:200},{id:X.DISRUPT_TERMINAL,name:`DISRUPT_TERMINAL`,className:`operator`,icon:ti,reqLevel:Hy,values:Z(``,``,``,``,``),effect:`Block withdrawing resources from the terminal.`,duration:10,cooldown:8,range:50,ops:[50,40,30,20,10]},{id:X.OPERATE_CONTROLLER,name:`OPERATE_CONTROLLER`,className:`operator`,icon:ji,reqLevel:Hy,values:Z(`10`,`20`,`30`,`40`,`50`),effect:`Increase the max energy that can upgrade a Level 8 Controller each tick by %s units.`,duration:1e3,cooldown:800,range:3,ops:200}],Wy=Object.fromEntries(Uy.map(e=>[e.id,e]));function Gy(e){return Uy.filter(t=>t.className===e)}function Ky(e,t){let n=e.values[Math.max(0,Math.min(4,t-1))];return e.effect.replace(`%s`,n)}function qy(e,t){let n=[],r=Array.isArray(e.ops)?e.ops[Math.max(0,Math.min(4,t-1))]:e.ops;return r!=null&&n.push(`ops ${r}`),e.duration!=null&&n.push(`dur ${e.duration}`),e.cooldown===null?n.push(`no cooldown`):e.cooldown!=null&&n.push(`cd ${e.cooldown}`),e.range!=null&&n.push(`rng ${e.range}`),n.join(` · `)}function Jy(e){return e.level+1}function Yy(e,t){return K_(e??0)-t.reduce((e,t)=>e+Jy(t),0)}var Xy=C(`<svg><circle cx=12 cy=12 r=9.5></svg>`,!1,!0,!1),Zy=C(`<svg><path d="M12 6.5 L17 16 L7 16 Z"stroke=none></svg>`,!1,!0,!1),Qy=C(`<svg><path d="M5 8 L12 4 L19 8"></svg>`,!1,!0,!1),$y=C(`<svg><path d="M5 13 L12 9 L19 13"></svg>`,!1,!0,!1),eb=C(`<svg><path d="M5 18 L12 14 L19 18"></svg>`,!1,!0,!1),tb=C(`<svg><path d="M12 2.5 L15 9 L21.5 12 L15 15 L12 21.5 L9 15 L2.5 12 L9 9 Z"></svg>`,!1,!0,!1),nb=C(`<svg viewBox="0 0 24 24"fill=none stroke-width=1.8 stroke-linecap=round stroke-linejoin=round style=display:block;flex-shrink:0>`);function rb(e){let t=()=>e.size??24,n=()=>e.color??`currentColor`;return(()=>{var r=nb();return j(r,f(g,{get children(){return[f(d,{get when(){return e.class===`operator`},get children(){return[Xy(),(()=>{var e=Zy();return S(()=>F(e,`fill`,n())),e})()]}}),f(d,{get when(){return e.class===`commander`},get children(){return[Qy(),$y(),eb()]}}),f(d,{get when(){return e.class===`executor`},get children(){return tb()}})]}})),S(e=>{var i=t(),a=t(),o=n();return i!==e.e&&F(r,`width`,e.e=i),a!==e.t&&F(r,`height`,e.t=a),o!==e.a&&F(r,`stroke`,e.a=o),e},{e:void 0,t:void 0,a:void 0}),r})()}var ib=`#0d1117`,ab=`#161b22`,ob=`#1c2128`,Q=`#30363d`,sb=`#c9d1d9`,$=`#8b949e`,cb=`#58a6ff`,lb=`#238636`,ub=`#FF9A9A`,db=`#E04040`,fb=C(`<button style="display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:6px;border:none;font-size:13px;font-weight:600"> Create creep`),pb=C(`<div style=display:flex;flex-wrap:wrap;gap:6px>`),mb=C(`<div style=font-size:11px;color:#f0883e>Scheduled for deletion`),hb=C(`<button style=text-align:left;display:flex;flex-direction:column;gap:12px;width:220px;border-radius:8px;padding:16px;cursor:pointer><div style=display:flex;align-items:center;gap:10px><div style=min-width:0;flex:1><div style=font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis></div><div style=font-size:12px> · Lvl `),gb=C(`<div style=font-size:11px>No powers assigned`),_b=C(`<span style=display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:5px>`),vb=C(`<div style=display:flex;align-items:center;margin-bottom:16px><div style=flex:1></div><a href=https://docs.screeps.com/power.html target=_blank rel=noopener style=color:#58a6ff;font-size:13px;text-decoration:none>Learn more`),yb=C(`<div style=display:flex;flex-wrap:wrap;gap:16px>`),bb=C(`<div style=padding:32px;text-align:center>Loading…`),xb=C(`<div style="border-radius:10px;padding:48px 24px;text-align:center"><div style=display:flex;justify-content:center;gap:28px;margin-bottom:24px></div><p style="font-size:15px;margin:0 0 6px;line-height:1.5">You have no Power Creeps yet.</p><p style="font-size:13px;margin:0 0 24px;line-height:1.5">You need 1 free Power Level in your account to create a new Power Creep.</p><div style=display:flex;align-items:center;justify-content:center;gap:16px><a href=https://docs.screeps.com/power.html target=_blank rel=noopener style=color:#58a6ff;font-size:13px;text-decoration:none>Learn more`);function Sb(e){let t=()=>e.free>=1;return(()=>{var e=fb(),n=e.firstChild;return e.$$click=()=>t()&&o_(),j(e,f(li,{size:16}),n),S(n=>{var r=!t(),i=t()?`Create a new power creep`:`You need 1 free Power Level to create a power creep`,a=t()?lb:`#21262d`,o=t()?`#fff`:$,s=t()?`pointer`:`not-allowed`,c=t()?1:.7;return r!==n.e&&(e.disabled=n.e=r),i!==n.t&&F(e,`title`,n.t=i),a!==n.a&&P(e,`background`,n.a=a),o!==n.o&&P(e,`color`,n.o=o),s!==n.i&&P(e,`cursor`,n.i=s),c!==n.n&&P(e,`opacity`,n.n=c),n},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),e})()}function Cb(e){let t=()=>e.creep.className,n=()=>zy[t()]??zy.operator,r=()=>{let t=e.creep.powers??{};return Object.keys(t).filter(e=>(t[e]?.level??0)>0).map(e=>Wy[Number(e)]).filter(Boolean)};return(()=>{var i=hb(),a=i.firstChild,o=a.firstChild,s=o.firstChild,c=s.nextSibling,l=c.firstChild;return i.$$click=()=>s_(e.creep._id),P(i,`background`,ab),P(i,`border`,`1px solid ${Q}`),P(i,`color`,sb),j(a,f(rb,{get class(){return t()},size:28,color:ub}),o),j(s,()=>e.creep.name),P(c,`color`,$),j(c,()=>n().label,l),j(c,()=>e.creep.level,null),j(i,f(_,{get when(){return r().length},get fallback(){return(()=>{var e=gb();return P(e,`color`,$),e})()},get children(){var e=pb();return j(e,f(u,{get each(){return r()},children:e=>(()=>{var t=_b();return P(t,`background`,ob),P(t,`border`,`1px solid ${Q}`),j(t,f(ue,{get component(){return e.icon},size:14,color:db})),S(()=>F(t,`title`,e.name)),t})()})),e}}),null),j(i,f(_,{get when(){return e.creep.deleteTime},get children(){return mb()}}),null),i})()}function wb(e){let t=()=>e.ctx.creeps();return f(_,{get when(){return!e.loading},get fallback(){return(()=>{var e=bb();return P(e,`color`,$),e})()},get children(){return f(_,{get when(){return t().length},get fallback(){return(()=>{var t=xb(),n=t.firstChild,r=n.nextSibling,i=r.nextSibling,a=i.nextSibling,o=a.firstChild;return P(t,`background`,ab),P(t,`border`,`1px solid ${Q}`),j(n,f(u,{each:Ry,children:e=>f(rb,{class:e,size:44,color:e===`operator`?ub:Q})})),P(r,`color`,sb),P(i,`color`,$),j(a,f(Sb,{get free(){return e.ctx.free()}}),o),t})()},get children(){return[(()=>{var t=vb(),n=t.firstChild;return n.nextSibling,j(t,f(Sb,{get free(){return e.ctx.free()}}),n),t})(),(()=>{var e=yb();return j(e,f(u,{get each(){return t()},children:e=>f(Cb,{creep:e})})),e})()]}})}})}A([`click`]);var Tb=C(`<span style=font-size:10px;margin-left:4px>unlocks at Lvl `),Eb=C(`<div style="border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:8px"><div style=display:flex;align-items:center;gap:8px><span style=font-size:12px;font-weight:600;letter-spacing:0.02em;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis></span><span style=font-size:11px>Lv </span></div><div style=display:flex;align-items:center;gap:5px></div><div style=font-size:11px;line-height:1.4></div><div style=font-size:10px>`),Db=C(`<button style=width:14px;height:14px;border-radius:50%;padding:0;flex-shrink:0;display:flex;align-items:center;justify-content:center>`);function Ob(e){let t=()=>e.stagedLevel??e.currentLevel,n=()=>Math.max(1,t()),r=()=>t()===0,i=()=>t()+1,a=n=>n<=e.currentLevel?`saved`:n<=t()?`staged`:n===i()&&e.editable?e.canIncrement?`next`:`locked`:`empty`;return(()=>{var o=Eb(),s=o.firstChild,c=s.firstChild,l=c.nextSibling;l.firstChild;var d=s.nextSibling,p=d.nextSibling,m=p.nextSibling;return P(o,`background`,ob),P(o,`border`,`1px solid ${Q}`),j(s,f(ue,{get component(){return e.def.icon},size:16,get color(){return t()>0?db:$}}),c),P(c,`color`,sb),j(c,()=>e.def.name),j(l,t,null),j(d,f(u,{each:[1,2,3,4,5],children:t=>{let n=()=>a(t),r=()=>n()===`next`;return(()=>{var i=Db();return i.$$click=()=>r()&&e.onIncrement?.(),j(i,f(_,{get when(){return n()===`locked`},get children(){return f(Gr,{size:8,color:$})}})),S(a=>{var o=!r(),s=n()===`locked`&&e.lockLevel!=null?`Unlocks at creep Lvl ${e.lockLevel}`:r()?`Upgrade to Lv ${t}`:void 0,c=r()?`pointer`:`default`,l=n()===`saved`?db:n()===`staged`?cb:`transparent`,u=n()===`next`?`1px solid ${cb}`:n()===`locked`?`1px dashed ${Q}`:n()===`saved`||n()===`staged`?`none`:`1px solid ${Q}`;return o!==a.e&&(i.disabled=a.e=o),s!==a.t&&F(i,`title`,a.t=s),c!==a.a&&P(i,`cursor`,a.a=c),l!==a.o&&P(i,`background`,a.o=l),u!==a.i&&P(i,`border`,a.i=u),a},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),i})()}}),null),j(d,f(_,{get when(){return L(()=>!!(e.editable&&i()<=5&&!e.canIncrement))()&&e.lockLevel!=null},get children(){var t=Tb();return t.firstChild,P(t,`color`,$),j(t,()=>e.lockLevel,null),t}}),null),j(p,()=>Ky(e.def,n())),P(m,`color`,$),j(m,()=>qy(e.def,n())),S(e=>{var n=t()>0?sb:$,i=r()?$:sb;return n!==e.e&&P(l,`color`,e.e=n),i!==e.t&&P(p,`color`,e.t=i),e},{e:void 0,t:void 0}),o})()}A([`click`]);var kb=C(`<span style=color:#f0883e> (Under development)`),Ab=C(`<div style=font-size:11px;text-transform:uppercase;letter-spacing:0.06em;font-weight:700;margin-bottom:12px> powers`),jb=C(`<div style="display:grid;grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));gap:12px">`),Mb=C(`<div><div style=display:flex;align-items:center;justify-content:space-between;margin-bottom:20px><button style="display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border-radius:4px;background:transparent;font-size:13px;cursor:pointer"> Back</button><span style=font-size:13px>Creating a power creep uses <strong>1</strong> free Power Level</span></div><div style=border-radius:10px;padding:24px><label style=display:block;font-size:11px;text-transform:uppercase;letter-spacing:0.06em;font-weight:700;margin-bottom:8px>Creep name</label><input placeholder="Enter creep name"maxlength=50 style="width:100%;box-sizing:border-box;padding:9px 12px;border-radius:6px;background:#0d1117;font-size:14px;outline:none;margin-bottom:24px"><div style=font-size:11px;text-transform:uppercase;letter-spacing:0.06em;font-weight:700;margin-bottom:10px>Select class</div><div style=display:flex;gap:12px;margin-bottom:14px></div><p style="font-size:13px;line-height:1.5;margin:0 0 24px"></p></div><div style=display:flex;justify-content:flex-end;margin-top:16px><button style="padding:9px 20px;border-radius:6px;border:none;font-size:14px;font-weight:600">`),Nb=C(`<span style=font-size:10px;color:#f0883e>Under development`),Pb=C(`<button style="flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 8px;border-radius:8px;cursor:pointer"><span style=font-size:13px;font-weight:600>`),Fb=C(`<div style="font-size:13px;text-align:center;padding:24px 0">This class has no powers available yet.`);function Ib(e){let[t,n]=a(``),[r,i]=a(`operator`),[o,s]=a(!1),c=()=>zy[r()],l=()=>!o()&&e.ctx.free()>=1&&t().trim().length>0&&!c().underDevelopment,d=async()=>{let n=I();if(!n||!l())return;let i=t().trim();s(!0);try{await n.http.game.powerCreeps.create(i,r()),await e.ctx.reload();let t=e.ctx.creeps().find(e=>e.name===i);B(`Power creep "${i}" created`,`success`,3e3),t?s_(t._id):a_()}catch(e){B(`Failed to create power creep: ${e instanceof Error?e.message:String(e)}`,`error`,5e3)}finally{s(!1)}};return(()=>{var a=Mb(),s=a.firstChild,p=s.firstChild,m=p.firstChild,h=p.nextSibling,g=h.firstChild.nextSibling,v=s.nextSibling,y=v.firstChild,b=y.nextSibling,x=b.nextSibling,C=x.nextSibling,w=C.nextSibling,T=v.nextSibling.firstChild;return fe(p,`click`,a_,!0),P(p,`border`,`1px solid ${Q}`),P(p,`color`,$),j(p,f(lr,{size:16}),m),P(h,`color`,$),P(g,`color`,ub),P(v,`background`,ab),P(v,`border`,`1px solid ${Q}`),P(y,`color`,$),b.$$input=e=>n(e.currentTarget.value),P(b,`border`,`1px solid ${Q}`),P(b,`color`,sb),P(x,`color`,$),j(C,f(u,{each:Ry,children:e=>{let t=zy[e],n=()=>r()===e;return(()=>{var r=Pb(),a=r.firstChild;return r.$$click=()=>i(e),j(r,f(rb,{class:e,size:36,get color(){return n()?ub:$}}),a),j(a,()=>t.label),j(r,f(_,{get when(){return t.underDevelopment},get children(){return Nb()}}),null),S(e=>{var t=`1px solid ${n()?cb:Q}`,i=n()?`#1c2d47`:ob,a=n()?sb:$;return t!==e.e&&P(r,`border`,e.e=t),i!==e.t&&P(r,`background`,e.t=i),a!==e.a&&P(r,`color`,e.a=a),e},{e:void 0,t:void 0,a:void 0}),r})()}})),P(w,`color`,$),j(w,()=>c().description,null),j(w,f(_,{get when(){return c().underDevelopment},get children(){return kb()}}),null),j(v,f(_,{get when(){return!c().underDevelopment},get fallback(){return(()=>{var e=Fb();return P(e,`color`,$),e})()},get children(){return[(()=>{var e=Ab(),t=e.firstChild;return P(e,`color`,$),j(e,()=>c().label,t),e})(),(()=>{var e=jb();return j(e,f(u,{get each(){return Gy(r())},children:e=>f(Ob,{def:e,currentLevel:0})})),e})()]}}),null),T.$$click=d,j(T,()=>o()?`Creating…`:`Create creep`),S(t=>{var n=!l(),r=e.ctx.free()<1?`You need 1 free Power Level`:void 0,i=l()?lb:`#21262d`,a=l()?`#fff`:$,o=l()?`pointer`:`not-allowed`,s=l()?1:.7;return n!==t.e&&(T.disabled=t.e=n),r!==t.t&&F(T,`title`,t.t=r),i!==t.a&&P(T,`background`,t.a=i),a!==t.o&&P(T,`color`,t.o=a),o!==t.i&&P(T,`cursor`,t.i=o),s!==t.n&&P(T,`opacity`,t.n=s),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),S(()=>b.value=t()),a})()}A([`click`,`input`]);var Lb=C(`<div style=font-size:13px;margin-top:8px;line-height:1.5>`),Rb=C(`<button style="padding:8px 22px;border-radius:6px;background:transparent;font-size:14px;cursor:pointer">`),zb=C(`<div style=position:fixed;inset:0;background:rgba(0,0,0,0.65);z-index:300;display:flex;align-items:center;justify-content:center><div style="border-radius:10px;padding:24px;max-width:440px;text-align:center;box-shadow:0 8px 24px rgba(0,0,0,0.5)"><div style=font-size:16px;font-weight:600;line-height:1.4></div><div style=display:flex;gap:10px;justify-content:center;margin-top:20px><button style="padding:8px 22px;border-radius:6px;border:none;color:#fff;font-size:14px;font-weight:600;cursor:pointer">`);function Bb(e){i(()=>{let t=t=>{t.key===`Escape`?e.onCancel():t.key===`Enter`&&e.onConfirm()};window.addEventListener(`keydown`,t),n(()=>window.removeEventListener(`keydown`,t))});let t=t=>{t.target===t.currentTarget&&e.onCancel()};return(()=>{var n=zb(),r=n.firstChild,i=r.firstChild,a=i.nextSibling,o=a.firstChild;return n.$$click=t,P(r,`background`,ab),P(r,`border`,`1px solid ${Q}`),P(i,`color`,sb),j(i,()=>e.title),j(r,f(_,{get when(){return e.body},get children(){var t=Lb();return P(t,`color`,$),j(t,()=>e.body),t}}),a),o.$$click=()=>e.onConfirm(),P(o,`background`,cb),j(o,()=>e.confirmLabel??(e.notice?`Close`:`Yes`)),j(a,f(_,{get when(){return!e.notice},get children(){var t=Rb();return t.$$click=()=>e.onCancel(),P(t,`border`,`1px solid ${Q}`),P(t,`color`,sb),j(t,()=>e.cancelLabel??`No`),t}}),null),n})()}A([`click`]);var Vb=C(`<div style=border-radius:8px;padding:32px;text-align:center>Power creep not found. <a style=cursor:pointer>Back to list`),Hb=C(`<div style=display:flex;align-items:center;gap:6px><input maxlength=50 style="padding:4px 8px;border-radius:4px;background:#0d1117;font-size:15px;outline:none"><button title="Save name"style=background:transparent;border:none;cursor:pointer></button><button title=Cancel style=background:transparent;border:none;cursor:pointer>`),Ub=C(`<span> → `),Wb=C(`<div style=margin-top:2px> staged`),Gb=C(`<button style="background:transparent;border:1px solid #f0883e;border-radius:6px;color:#f0883e;cursor:pointer;padding:7px 10px;font-size:12px">Cancel deletion`),Kb=C(`<div style="background:#21262d;border-radius:6px;padding:8px 12px;font-size:12px;color:#f0883e;margin-bottom:16px">You have reached the maximum creep level (<!>).`),qb=C(`<div><button style="display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border-radius:4px;background:transparent;font-size:13px;cursor:pointer;margin-bottom:16px"> Back</button><div style="display:flex;align-items:center;gap:14px;border-radius:10px;padding:18px 20px;margin-bottom:16px"><div style=flex:1;min-width:0><div style=font-size:13px;margin-top:2px> · Level <strong></strong></div></div><div style=text-align:right;font-size:12px><div>Free GPL <strong></strong> / </div></div></div><div style="display:grid;grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));gap:12px"></div><div style=display:flex;justify-content:flex-end;gap:10px;margin-top:20px><button style="padding:9px 18px;border-radius:6px;background:transparent;font-size:14px">Reset</button><button style="padding:9px 20px;border-radius:6px;border:none;font-size:14px;font-weight:600">`),Jb=C(`<div style=display:flex;align-items:center;gap:8px><span style=font-size:18px;font-weight:600></span><button title=Rename style=background:transparent;border:none;cursor:pointer;padding:2px>`),Yb=C(`<button title="Delete power creep"style="background:transparent;border-radius:6px;color:#f85149;cursor:pointer;padding:7px 9px;display:flex">`),Xb=C(`<strong> GPL`),Zb=C(`<strong>1 Power Level`);function Qb(e){let t=()=>e.ctx.creeps().find(t=>t._id===e.id)??null,n=()=>t()?.className??`operator`,r=()=>Gy(n()),[i,o]=a({}),[s,c]=a(!1),[l,d]=a(!1),[p,m]=a(!1),[h,g]=a(!1),[v,y]=a(!1),[b,x]=a(!1),[C,w]=a(``),T=e=>t()?.powers?.[e]?.level??0,E=e=>i()[e]??T(e),D=()=>{let e=0;for(let t of r())e+=E(t.id)-T(t.id);return e},O=()=>(t()?.level??0)+D(),k=()=>e.ctx.free()-D(),A=()=>D()>0,ee=e=>{let t=E(e.id);return t<5&&O()<25&&k()>=1&&O()>=e.reqLevel[t]},te=e=>{let t=E(e.id);return t<5&&O()<e.reqLevel[t]?e.reqLevel[t]:void 0},ne=e=>{if(O()>=25){y(!0);return}ee(e)&&o({...i(),[e.id]:E(e.id)+1})},re=async()=>{let n=I(),i=t();if(d(!1),!(!n||!i)){c(!0);try{let t={};for(let e of r()){let n=E(e.id);n>0&&(t[e.id]=n)}await n.http.game.powerCreeps.upgrade(i._id,t),await e.ctx.reload(),await n.stores.user.refreshMe().catch(()=>{}),o({}),B(`Power creep upgraded`,`success`,3e3)}catch(e){B(`Upgrade failed: ${e instanceof Error?e.message:String(e)}`,`error`,5e3)}finally{c(!1)}}},M=async()=>{let n=I(),r=t(),i=C().trim();if(x(!1),!(!n||!r||!i||i===r.name))try{await n.http.game.powerCreeps.rename(r._id,i),await e.ctx.reload()}catch(e){B(`Rename failed: ${e instanceof Error?e.message:String(e)}`,`error`,5e3)}},ie=async()=>{let n=I(),r=t();if(g(!1),!(!n||!r))try{await n.http.game.powerCreeps.delete(r._id),await e.ctx.reload(),B(`Power creep "${r.name}" deleted`,`success`,3e3),a_()}catch(e){B(`Delete failed: ${e instanceof Error?e.message:String(e)}`,`error`,5e3)}},ae=async()=>{let n=I(),r=t();if(!(!n||!r))try{await n.http.game.powerCreeps.cancelDelete(r._id),await e.ctx.reload()}catch(e){B(`Failed to cancel deletion: ${e instanceof Error?e.message:String(e)}`,`error`,5e3)}};return f(_,{get when(){return t()},get fallback(){return(()=>{var e=Vb(),t=e.firstChild.nextSibling;return P(e,`background`,ab),P(e,`border`,`1px solid ${Q}`),P(e,`color`,$),fe(t,`click`,a_,!0),P(t,`color`,cb),e})()},children:t=>(()=>{var i=qb(),a=i.firstChild,c=a.firstChild,oe=a.nextSibling,N=oe.firstChild,se=N.firstChild,ce=se.firstChild,le=ce.nextSibling,ue=N.nextSibling,de=ue.firstChild,F=de.firstChild.nextSibling;F.nextSibling;var pe=oe.nextSibling,me=pe.nextSibling.firstChild,he=me.nextSibling;return fe(a,`click`,a_,!0),P(a,`border`,`1px solid ${Q}`),P(a,`color`,$),j(a,f(lr,{size:16}),c),P(oe,`background`,ab),P(oe,`border`,`1px solid ${Q}`),j(oe,f(rb,{get class(){return n()},size:44,color:ub}),N),j(N,f(_,{get when(){return b()},get fallback(){return(()=>{var e=Jb(),n=e.firstChild,r=n.nextSibling;return P(n,`color`,sb),j(n,()=>t().name),r.$$click=()=>{w(t().name),x(!0)},P(r,`color`,$),j(r,f(ai,{size:14})),e})()},get children(){var e=Hb(),t=e.firstChild,n=t.nextSibling,r=n.nextSibling;return t.$$keydown=e=>{e.key===`Enter`&&M(),e.key===`Escape`&&x(!1)},t.$$input=e=>w(e.currentTarget.value),P(t,`border`,`1px solid ${Q}`),P(t,`color`,sb),n.$$click=()=>void M(),P(n,`color`,lb),j(n,f(rr,{size:16})),r.$$click=()=>x(!1),P(r,`color`,$),j(r,f(Ni,{size:16})),S(()=>t.value=C()),e}}),se),P(se,`color`,$),j(se,()=>zy[n()].label,ce),P(le,`color`,sb),j(le,()=>t().level),j(se,f(_,{get when(){return A()},get children(){var e=Ub();return e.firstChild,P(e,`color`,cb),j(e,O,null),e}}),null),P(ue,`color`,$),j(F,()=>Math.max(0,k())),j(de,()=>e.ctx.gpl(),null),j(ue,f(_,{get when(){return A()},get children(){var e=Wb(),t=e.firstChild;return P(e,`color`,cb),j(e,D,t),e}}),null),j(oe,f(_,{get when(){return t().deleteTime},get fallback(){return(()=>{var e=Yb();return e.$$click=()=>g(!0),P(e,`border`,`1px solid ${Q}`),j(e,f(ki,{size:16})),e})()},get children(){var e=Gb();return e.$$click=()=>void ae(),e}}),null),j(i,f(_,{get when(){return O()>=25},get children(){var e=Kb(),t=e.firstChild.nextSibling;return t.nextSibling,P(e,`border`,`1px solid ${Q}`),j(e,25,t),e}}),pe),j(pe,f(u,{get each(){return r()},children:e=>f(Ob,{def:e,get currentLevel(){return T(e.id)},get stagedLevel(){return E(e.id)},editable:!0,get canIncrement(){return ee(e)},get lockLevel(){return te(e)},onIncrement:()=>ne(e)})})),me.$$click=()=>m(!0),P(me,`border`,`1px solid ${Q}`),he.$$click=()=>d(!0),j(he,()=>s()?`Saving…`:`Save changes`),j(i,f(_,{get when(){return l()},get children(){return f(Bb,{title:`This action cannot be undone without deleting the creep.`,get body(){return[`Do you want to proceed and use `,(()=>{var e=Xb(),t=e.firstChild;return P(e,`color`,ub),j(e,()=>O()+1,t),e})(),` for this creep?`]},onConfirm:()=>void re(),onCancel:()=>d(!1)})}}),null),j(i,f(_,{get when(){return p()},get children(){return f(Bb,{title:`Do you really want to reset all changes?`,onConfirm:()=>{o({}),m(!1)},onCancel:()=>m(!1)})}}),null),j(i,f(_,{get when(){return h()},get children(){return f(Bb,{get title(){return`Do you really want to delete "${t().name}"?`},get body(){return[`You will lose `,(()=>{var e=Zb();return P(e,`color`,db),e})(),` in your account. The creep's upgrade levels are returned, but the creation level is gone for good.`]},confirmLabel:`Delete`,onConfirm:()=>void ie(),onCancel:()=>g(!1)})}}),null),j(i,f(_,{get when(){return v()},get children(){return f(Bb,{title:`You have reached the maximum creep level`,notice:!0,onConfirm:()=>y(!1),onCancel:()=>y(!1)})}}),null),S(e=>{var t=k()>0?ub:$,n=!A()||s(),r=A()?sb:$,i=A()?`pointer`:`not-allowed`,a=A()?1:.6,o=!A()||s(),c=A()?lb:`#21262d`,l=A()?`#fff`:$,u=A()?`pointer`:`not-allowed`,d=A()?1:.7;return t!==e.e&&P(F,`color`,e.e=t),n!==e.t&&(me.disabled=e.t=n),r!==e.a&&P(me,`color`,e.a=r),i!==e.o&&P(me,`cursor`,e.o=i),a!==e.i&&P(me,`opacity`,e.i=a),o!==e.n&&(he.disabled=e.n=o),c!==e.s&&P(he,`background`,e.s=c),l!==e.h&&P(he,`color`,e.h=l),u!==e.r&&P(he,`cursor`,e.r=u),d!==e.d&&P(he,`opacity`,e.d=d),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0}),i})()})}A([`click`,`input`,`keydown`]);var $b=C(`<div style=border-radius:8px;padding:32px;text-align:center>Couldn't load power creeps — this server may not support them.`),ex=C(`<div style=width:100%;height:100%;overflow:auto><div style="max-width:960px;margin:0 auto;padding:24px 16px 48px"><div style="display:flex;align-items:center;gap:12px;padding:0 0 14px;margin-bottom:24px"><button title="Back to Overview"style="display:flex;align-items:center;gap:4px;padding:7px 12px;border-radius:4px;background:#21262d;cursor:pointer"> Overview</button><h1 style=margin:0;font-size:22px;font-weight:600>Power Creeps</h1><div style=flex:1></div><div style="border-radius:6px;padding:6px 12px;font-size:13px">Global Power Level <strong style=margin-left:4px></strong><span style="margin:0 6px">·</span><strong></strong> free`);function tx(){let[e,t]=a([]),[n,r]=a(!0),[o,s]=a(null),c=async()=>{let e=I();if(e)try{t((await e.http.game.powerCreeps.list()).list??[]),s(null)}catch(e){s(e instanceof Error?e.message:String(e))}finally{r(!1)}};i(()=>{c(),I()?.stores.user.refreshMe().catch(()=>{})});let l=()=>K_(z()?.power??0),u=()=>Yy(z()?.power,e()),p={creeps:e,free:u,gpl:l,reload:c};return(()=>{var e=ex(),t=e.firstChild,r=t.firstChild,i=r.firstChild,a=i.firstChild,s=i.nextSibling,c=s.nextSibling.nextSibling,m=c.firstChild.nextSibling,h=m.nextSibling,v=h.nextSibling;return P(e,`background`,ib),P(e,`color`,sb),P(r,`border-bottom`,`1px solid ${Q}`),fe(i,`click`,$g,!0),P(i,`border`,`1px solid ${Q}`),P(i,`color`,sb),j(i,f(lr,{size:16}),a),P(s,`color`,sb),P(c,`background`,ab),P(c,`border`,`1px solid ${Q}`),P(c,`color`,$),P(m,`color`,ub),j(m,l),P(h,`color`,Q),j(v,()=>Math.max(0,u())),j(t,f(_,{get when(){return o()},get children(){var e=$b();return P(e,`background`,ab),P(e,`border`,`1px solid ${Q}`),P(e,`color`,$),e}}),null),j(t,f(_,{get when(){return!o()},get children(){return f(g,{get children(){return[f(d,{get when(){return qg()===`new`},get children(){return f(Ib,{ctx:p})}}),f(d,{get when(){return qg()===`detail`},get children(){return f(Qb,{ctx:p,get id(){return Yg()}})}}),f(d,{get when(){return qg()===`list`},get children(){return f(wb,{ctx:p,get loading(){return n()}})}})]}})}}),null),S(e=>P(v,`color`,u()>0?ub:$)),e})()}A([`click`]);var nx=C(`<div style=width:100%;height:100%>`),{log:rx}=M(`app`);function ix(){let e=new URLSearchParams(window.location.search).get(`guest`);return e===null?null:e.startsWith(`http`)?e:O(ce.url)??`https://screeps.com`}function ax(){if(se()||ix()!==null)return!0;let e=re()?te():O(ce.url),t=O(ce.token);return!!(e&&t)}function ox(){let e=()=>De()===`connected`&&I()!==null,[t,n]=a(ax());return i(async()=>{try{if(De()===`idle`&&(await xe().catch(()=>{}),De()!==`connected`)){if(se()){let e=te();rx(`xxscreeps mode — auto-connecting as guest to ${e}`),await ke({url:e,auth:`guest`,storage:null}).catch(()=>{})}else if(!re()){let e=ix();e&&(rx(`?guest param — auto-connecting as guest to ${e}`),await ke({url:e,auth:`guest`,storage:null}).catch(()=>{}))}}}finally{n(!1)}}),(()=>{var n=nx();return j(n,(()=>{var n=L(()=>!!e());return()=>n()?L(()=>Lg()===`overview`)()?f(av,{}):L(()=>Lg()===`profile`)()?f(uv,{}):L(()=>Lg()===`market`)()?f(Iy,{}):L(()=>Lg()===`power`)()?f(tx,{}):f(D_,{}):L(()=>!!t())()?f(_a,{}):f(ha,{})})()),n})()}ee()&&await de();var sx=document.getElementById(`root`);if(!sx)throw Error(`Root element not found`);ne(()=>f(ox,{}),sx);
|