feat: 重构战报弹窗与模拟器视图,优化UI与逻辑

重构BattleReportDialog和BattleSimulatorView相关静态资源,替换旧版JS/CSS文件,提升界面一致性和交互体验。新增和优化空状态、滚动区域等通用UI组件,移除部分冗余composable,完善多语言内容。引入导弹逻辑,补充版本检测工具,提升整体代码结构和可维护性。
This commit is contained in:
谦君
2025-12-15 20:04:40 +08:00
parent 9b9fda0400
commit 59dd7bfd05
126 changed files with 3944 additions and 1487 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +0,0 @@
import{$t as e,At as t,Ct as n,Dn as r,En as i,Gn as a,Gt as o,Jt as s,Ln as c,Ot as ee,Qt as l,Vt as te,Xn as u,Xt as d,Yn as ne,Yt as f,Zt as p,_ as m,b as h,en as g,g as re,gn as _,jt as ie,kt as ae,m as oe,mn as v,p as se,qn as y,tn as ce,v as le,y as b}from"./game-logic-Bi1l7y4K.js";import"./vendor-pinia-DqhKuBjp.js";import"./vendor-crypto-CQM8pryk.js";import"./game-i18n-Dr0JspcV.js";import"./vendor-others-DTUzJ7S-.js";import"./vendor-reka-ui-BEHIKScj.js";import"./vendor-utils-BlvnUqQX.js";import"./vendor-vueuse-CJcfYqoW.js";import{B as ue,M as x}from"./vendor-icons-z9V6Jdbh.js";import{t as S}from"./CardDescription-BSLS07AU.js";import{d as C,v as de}from"./game-config-CG6z6nnH.js";import{D as fe,H as pe,K as w,N as T,W as E,_ as D,a as O,b as me,c as he,f as k,h as ge,i as A,l as j,o as M,p as N,q as P,r as F,s as I,u as L,v as _e,y as ve}from"./index-BT5w6et-.js";import{t as ye}from"./useGameConfig-b98LOtBY.js";import{t as be}from"./CardUnlockOverlay-DYfgGY6J.js";var xe={key:0,class:`container mx-auto p-4 sm:p-6`},Se={class:`text-2xl sm:text-3xl font-bold mb-4 sm:mb-6`},Ce={class:`mb-4 sm:mb-6 p-3 sm:p-4 bg-muted/50 rounded-lg border`},we={class:`flex items-center justify-between`},Te={class:`text-sm sm:text-base font-medium flex items-center gap-2`},Ee={class:`text-sm sm:text-base font-bold`},De={class:`mt-2`},Oe={class:`w-full bg-background rounded-full h-2.5 sm:h-3 overflow-hidden`},ke={class:`grid grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4`},Ae={class:`mb-2`},je={class:`flex flex-col sm:flex-row sm:justify-between sm:items-start gap-2`},Me={class:`space-y-3`},R={class:`text-xs sm:text-sm space-y-1.5 sm:space-y-2`},Ne={class:`text-muted-foreground mb-1 sm:mb-2`},Pe={class:`space-y-1 sm:space-y-1.5`},Fe={class:`text-xs`},Ie={class:`text-xs sm:text-sm space-y-0.5 sm:space-y-1`},Le={class:`flex items-center gap-1.5 text-muted-foreground`},Re={class:`flex items-center gap-1.5 text-muted-foreground`},ze={key:1,class:`text-xs text-muted-foreground`},Be={class:`flex gap-2 flex-wrap`},Ve={key:0},z=ce({__name:`BuildingsView`,setup(ce){let z=P(),He=fe(),{t:B}=w(),{BUILDINGS:V,TECHNOLOGIES:Ue}=ye(),H=s(()=>z.currentPlanet),U=c(!1),W=c(``),G=c(``),K=c(!1),q=c(``),J=c(null),We=[{key:`metal`},{key:`crystal`},{key:`deuterium`},{key:`darkMatter`}],Ge=s(()=>H.value?Object.values(C).filter(e=>{let t=V.value[e];return H.value.isMoon?t.moonOnly===!0:t.moonOnly!==!0}):[]),Ke=e=>{if(!z.currentPlanet||!m(z.currentPlanet,e,z.player.technologies,z.player.officers).valid)return!1;let t=oe(z.currentPlanet,e,z.player.officers);return z.currentPlanet.buildQueue.push(t),!0},Y=e=>ie(e),qe=e=>{if(!Z(e)){W.value=B(`common.requirementsNotMet`),G.value=Ye(e),U.value=!0;return}Ke(e)||(W.value=B(`buildingsView.upgradeFailed`),G.value=B(`buildingsView.upgradeFailedMessage`),U.value=!0)},X=e=>H.value?.buildings[e]||0,Z=e=>{if(!H.value)return!1;let t=V.value[e],n=b(t,X(e)+1);return!n||Object.keys(n).length===0?!0:le(H.value,z.player.technologies,n)},Je=e=>{if(!H.value)return B(`buildingsView.upgrade`);let t=V.value[e],n=X(e);return t.maxLevel!==void 0&&n>=t.maxLevel?B(`buildingsView.maxLevelReached`):H.value.buildQueue.length>0||Z(e)?B(`buildingsView.upgrade`):B(`buildingsView.requirementsNotMet`)},Ye=e=>{let t=V.value[e],n=b(t,X(e)+1);if(!n||!H.value)return``;let r=[];for(let[e,t]of Object.entries(n))if(Object.values(C).includes(e)){let n=e,i=H.value.buildings[n]||0,a=V.value[n]?.name||n,o=i>=t?``:``;r.push(`${o} ${a}: Lv ${t} (${B(`common.current`)}: Lv ${i})`)}else if(Object.values(de).includes(e)){let n=e,i=z.player.technologies[n]||0,a=Ue.value[n]?.name||n,o=i>=t?``:``;r.push(`${o} ${a}: Lv ${t} (${B(`common.current`)}: Lv ${i})`)}return r.join(`
`)},Xe=e=>{if(!H.value)return!1;let t=V.value[e],r=X(e);if(t.maxLevel!==void 0&&r>=t.maxLevel)return!1;let i=n(z.player.officers,Date.now()),a=h(H.value,i.additionalBuildQueue);if(H.value.buildQueue.filter(e=>e.type===`building`||e.type===`demolish`).length>=a||!m(H.value,e,z.player.technologies,z.player.officers).valid)return!1;let o=Q(e,r+1);return H.value.resources.metal>=o.metal&&H.value.resources.crystal>=o.crystal&&H.value.resources.deuterium>=o.deuterium&&H.value.resources.darkMatter>=o.darkMatter},Q=(e,t)=>ee(e,t),Ze=(e,t)=>{if(!H.value)return 0;let r=n(z.player.officers,Date.now()),i=H.value.buildings[C.RoboticsFactory]||0,a=H.value.buildings[C.NaniteFactory]||0;return ae(e,t,r.buildingSpeedBonus,i,a)},Qe=e=>{if(!z.currentPlanet||!re(z.currentPlanet,e,z.player.officers).valid)return!1;let t=se(z.currentPlanet,e,z.player.officers);return z.currentPlanet.buildQueue.push(t),!0},$e=e=>{let t=V.value[e].name,n=$(e);q.value=`${B(`buildingsView.confirmDemolishMessage`)}: ${t}
${B(`buildingsView.demolishRefund`)}:
${B(`resources.metal`)}: ${k(n.metal)}
${B(`resources.crystal`)}: ${k(n.crystal)}
${B(`resources.deuterium`)}: ${k(n.deuterium)}${n.darkMatter>0?`\n${B(`resources.darkMatter`)}: ${k(n.darkMatter)}`:``}`,J.value=e,K.value=!0},et=()=>{J.value&&(Qe(J.value)||(W.value=B(`buildingsView.demolishFailed`),G.value=B(`buildingsView.demolishFailedMessage`),U.value=!0)),K.value=!1,J.value=null},tt=e=>{if(!H.value||X(e)<=0)return!1;let t=n(z.player.officers,Date.now()),r=h(H.value,t.additionalBuildQueue);return!(H.value.buildQueue.filter(e=>e.type===`building`||e.type===`demolish`).length>=r)},$=e=>t(e,X(e));return(t,n)=>H.value?(v(),l(`div`,xe,[f(`h1`,Se,u(a(B)(`buildingsView.title`)),1),f(`div`,Ce,[f(`div`,we,[f(`div`,Te,[g(a(x),{size:16}),e(` `+u(a(B)(`buildingsView.spaceUsage`))+`: `,1)]),f(`div`,Ee,[f(`span`,{class:y(Y(H.value)>H.value.maxSpace?`text-destructive`:`text-primary`)},u(a(k)(Y(H.value))),3),n[2]||=f(`span`,{class:`text-muted-foreground mx-1`},`/`,-1),f(`span`,null,u(a(k)(H.value.maxSpace)),1)])]),f(`div`,De,[f(`div`,Oe,[f(`div`,{class:y([`h-full transition-all duration-300`,Y(H.value)>H.value.maxSpace?`bg-destructive`:`bg-primary`]),style:ne({width:`${Math.min(Y(H.value)/H.value.maxSpace*100,100)}%`})},null,6)])])]),f(`div`,ke,[(v(!0),l(o,null,_(Ge.value,t=>(v(),d(a(me),{key:t,class:`relative`},{default:i(()=>[g(be,{requirements:a(V)[t].requirements,currentLevel:X(t)},null,8,[`requirements`,`currentLevel`]),g(a(_e),null,{default:i(()=>[f(`div`,Ae,[f(`div`,je,[g(a(D),{class:`text-sm sm:text-base lg:text-lg cursor-pointer hover:text-primary transition-colors underline decoration-dotted underline-offset-4 order-2 sm:order-1`,onClick:e=>a(He).openBuilding(t,X(t))},{default:i(()=>[e(u(a(V)[t].name),1)]),_:2},1032,[`onClick`]),g(a(pe),{variant:`secondary`,class:`text-xs whitespace-nowrap self-start order-1 sm:order-2`},{default:i(()=>[e(` Lv `+u(X(t)),1)]),_:2},1024)])]),g(a(S),{class:`text-xs sm:text-sm`},{default:i(()=>[e(u(a(V)[t].description),1)]),_:2},1024)]),_:2},1024),g(a(ve),null,{default:i(()=>[f(`div`,Me,[f(`div`,R,[f(`p`,Ne,u(a(B)(`buildingsView.upgradeCost`))+`:`,1),f(`div`,Pe,[(v(),l(o,null,_(We,e=>r(f(`div`,{key:e.key,class:`flex items-center gap-1.5 sm:gap-2`},[g(T,{type:e.key,size:`sm`},null,8,[`type`]),f(`span`,Fe,u(a(B)(`resources.${e.key}`))+`:`,1),f(`span`,{class:y([`font-medium text-xs sm:text-sm`,a(ge)(H.value.resources[e.key],Q(t,X(t)+1)[e.key])])},u(a(k)(Q(t,X(t)+1)[e.key])),3)]),[[te,e.key!==`darkMatter`||Q(t,X(t)+1).darkMatter>0]])),64))])]),f(`div`,Ie,[f(`div`,Le,[g(a(ue),{size:14,class:`flex-shrink-0`}),f(`span`,null,u(a(N)(Ze(t,X(t)+1))),1)]),f(`div`,Re,[g(a(x),{size:14,class:`flex-shrink-0`}),f(`span`,null,u(a(V)[t].spaceUsage),1)])]),g(a(E),{onClick:e=>qe(t),disabled:!Xe(t),class:`w-full`},{default:i(()=>[e(u(Je(t)),1)]),_:2},1032,[`onClick`,`disabled`]),X(t)>0?(v(),d(a(E),{key:0,onClick:e=>$e(t),disabled:!tt(t),variant:`destructive`,class:`w-full`},{default:i(()=>[e(u(a(B)(`buildingsView.demolish`)),1)]),_:1},8,[`onClick`,`disabled`])):p(``,!0),X(t)>0?(v(),l(`div`,ze,[f(`p`,null,u(a(B)(`buildingsView.demolishRefund`))+`:`,1),f(`div`,Be,[f(`span`,null,u(a(k)($(t).metal))+` `+u(a(B)(`resources.metal`)),1),f(`span`,null,u(a(k)($(t).crystal))+` `+u(a(B)(`resources.crystal`)),1),f(`span`,null,u(a(k)($(t).deuterium))+` `+u(a(B)(`resources.deuterium`)),1),$(t).darkMatter>0?(v(),l(`span`,Ve,u(a(k)($(t).darkMatter))+` `+u(a(B)(`resources.darkMatter`)),1)):p(``,!0)])])):p(``,!0)])]),_:2},1024)]),_:2},1024))),128))]),g(a(L),{open:U.value,"onUpdate:open":n[0]||=e=>U.value=e},{default:i(()=>[g(a(I),null,{default:i(()=>[g(a(A),null,{default:i(()=>[g(a(F),null,{default:i(()=>[e(u(W.value),1)]),_:1}),g(a(M),{class:`whitespace-pre-line`},{default:i(()=>[e(u(G.value),1)]),_:1})]),_:1}),g(a(O),null,{default:i(()=>[g(a(j),null,{default:i(()=>[e(u(a(B)(`common.confirm`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),g(a(L),{open:K.value,"onUpdate:open":n[1]||=e=>K.value=e},{default:i(()=>[g(a(I),null,{default:i(()=>[g(a(A),null,{default:i(()=>[g(a(F),null,{default:i(()=>[e(u(a(B)(`buildingsView.confirmDemolish`)),1)]),_:1}),g(a(M),{class:`whitespace-pre-line`},{default:i(()=>[e(u(q.value),1)]),_:1})]),_:1}),g(a(O),null,{default:i(()=>[g(a(he),null,{default:i(()=>[e(u(a(B)(`common.cancel`)),1)]),_:1}),g(a(j),{onClick:et},{default:i(()=>[e(u(a(B)(`common.confirm`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])])):p(``,!0)}});export{z as default};

View File

@@ -0,0 +1,7 @@
import{$ as e,$t as t,Bt as n,En as r,Ht as i,On as a,Pt as o,Rn as s,Vt as ee,X as te,Yn as c,Z as ne,ar as l,cn as u,cr as d,dn as f,et as p,fn as m,ln as h,nt as g,on as _,pn as re,rn as v,rr as y,rt as b,sn as x,sr as ie,tt as ae,un as S,zn as oe,zt as se}from"./game-logic-BBFCPVtv.js";import"./vendor-pinia-L_8CmDWM.js";import"./vendor-crypto-CQM8pryk.js";import"./game-i18n-BC9uiVvf.js";import"./vendor-others-Bce0hM6h.js";import"./vendor-reka-ui-DR3m_AkV.js";import"./vendor-utils-BlvnUqQX.js";import"./vendor-vueuse-Djj-oRw9.js";import{F as C,U as ce}from"./vendor-icons-Ccm2_GPI.js";import{t as le}from"./CardDescription-DduF5EVY.js";import{d as w,v as T}from"./game-config-DRP-gbpS.js";import{$ as ue,A as E,F as D,I as O,J as k,K as de,L as fe,M as A,N as j,P as pe,X as me,d as he,f as ge,j as M,k as N,l as P,m as F,o as I,p as L,s as _e,x as ve}from"./index-B4KMqZ_y.js";import{t as ye}from"./useGameConfig-DLqfPHtW.js";import{t as be}from"./CardUnlockOverlay-CspXlcWR.js";var xe={key:0,class:`container mx-auto p-4 sm:p-6`},Se={class:`text-2xl sm:text-3xl font-bold mb-4 sm:mb-6`},Ce={class:`mb-4 sm:mb-6 p-3 sm:p-4 bg-muted/50 rounded-lg border`},we={class:`flex items-center justify-between`},Te={class:`text-sm sm:text-base font-medium flex items-center gap-2`},Ee={class:`text-sm sm:text-base font-bold`},De={class:`mt-2`},Oe={class:`w-full bg-background rounded-full h-2.5 sm:h-3 overflow-hidden`},ke={class:`grid grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4`},Ae={class:`mb-2`},je={class:`flex flex-col sm:flex-row sm:justify-between sm:items-start gap-2`},Me={class:`space-y-3`},Ne={class:`text-xs sm:text-sm space-y-1.5 sm:space-y-2`},Pe={class:`text-muted-foreground mb-1 sm:mb-2`},Fe={class:`space-y-1 sm:space-y-1.5`},Ie={class:`text-xs`},Le={class:`text-xs sm:text-sm space-y-0.5 sm:space-y-1`},Re={class:`flex items-center gap-1.5 text-muted-foreground`},ze={class:`flex items-center gap-1.5 text-muted-foreground`},Be={key:1,class:`text-xs text-muted-foreground`},Ve={class:`flex gap-2 flex-wrap`},He={key:0},R=re({__name:`BuildingsView`,setup(re){let R=ue(),Ue=ve(),{t:z}=me(),{BUILDINGS:B,TECHNOLOGIES:We}=ye(),V=_(()=>R.currentPlanet),H=c(!1),U=c(``),W=c(``),G=c(!1),K=c(``),q=c(null),Ge=[{key:`metal`},{key:`crystal`},{key:`deuterium`},{key:`darkMatter`}],Ke=_(()=>V.value?Object.values(w).filter(e=>{let t=B.value[e];return V.value.isMoon?t.moonOnly===!0:t.moonOnly!==!0}):[]),qe=e=>{if(!R.currentPlanet||!p(R.currentPlanet,e,R.player.technologies,R.player.officers).valid)return!1;let t=ne(R.currentPlanet,e,R.player.officers);return R.currentPlanet.buildQueue.push(t),!0},J=e=>i(e),Je=e=>{if(!X(e)){U.value=z(`common.requirementsNotMet`),W.value=Ye(e),H.value=!0;return}qe(e)||(U.value=z(`buildingsView.upgradeFailed`),W.value=z(`buildingsView.upgradeFailedMessage`),H.value=!0)},Y=e=>V.value?.buildings[e]||0,X=e=>{if(!V.value)return!1;let t=B.value[e],n=g(t,Y(e)+1);return!n||Object.keys(n).length===0?!0:ae(V.value,R.player.technologies,n)},Z=e=>{if(!V.value)return z(`buildingsView.upgrade`);let t=B.value[e],n=Y(e);return t.maxLevel!==void 0&&n>=t.maxLevel?z(`buildingsView.maxLevelReached`):V.value.buildQueue.length>0||X(e)?z(`buildingsView.upgrade`):z(`buildingsView.requirementsNotMet`)},Ye=e=>{let t=B.value[e],n=g(t,Y(e)+1);if(!n||!V.value)return``;let r=[];for(let[e,t]of Object.entries(n))if(Object.values(w).includes(e)){let n=e,i=V.value.buildings[n]||0,a=B.value[n]?.name||n,o=i>=t?``:``;r.push(`${o} ${a}: Lv ${t} (${z(`common.current`)}: Lv ${i})`)}else if(Object.values(T).includes(e)){let n=e,i=R.player.technologies[n]||0,a=We.value[n]?.name||n,o=i>=t?``:``;r.push(`${o} ${a}: Lv ${t} (${z(`common.current`)}: Lv ${i})`)}return r.join(`
`)},Xe=e=>{if(!V.value)return!1;let t=B.value[e],n=Y(e);if(t.maxLevel!==void 0&&n>=t.maxLevel)return!1;let r=o(R.player.officers,Date.now()),i=b(V.value,r.additionalBuildQueue);if(V.value.buildQueue.filter(e=>e.type===`building`||e.type===`demolish`).length>=i||!p(V.value,e,R.player.technologies,R.player.officers).valid)return!1;let a=Q(e,n+1);return V.value.resources.metal>=a.metal&&V.value.resources.crystal>=a.crystal&&V.value.resources.deuterium>=a.deuterium&&V.value.resources.darkMatter>=a.darkMatter},Q=(e,t)=>se(e,t),Ze=(e,t)=>{if(!V.value)return 0;let r=o(R.player.officers,Date.now()),i=V.value.buildings[w.RoboticsFactory]||0,a=V.value.buildings[w.NaniteFactory]||0;return n(e,t,r.buildingSpeedBonus,i,a)},Qe=t=>{if(!R.currentPlanet||!e(R.currentPlanet,t,R.player.officers).valid)return!1;let n=te(R.currentPlanet,t,R.player.officers);return R.currentPlanet.buildQueue.push(n),!0},$e=e=>{let t=B.value[e].name,n=$(e);K.value=`${z(`buildingsView.confirmDemolishMessage`)}: ${t}
${z(`buildingsView.demolishRefund`)}:
${z(`resources.metal`)}: ${I(n.metal)}
${z(`resources.crystal`)}: ${I(n.crystal)}
${z(`resources.deuterium`)}: ${I(n.deuterium)}${n.darkMatter>0?`\n${z(`resources.darkMatter`)}: ${I(n.darkMatter)}`:``}`,q.value=e,G.value=!0},et=()=>{q.value&&(Qe(q.value)||(U.value=z(`buildingsView.demolishFailed`),W.value=z(`buildingsView.demolishFailedMessage`),H.value=!0)),G.value=!1,q.value=null},tt=e=>{if(!V.value||Y(e)<=0)return!1;let t=o(R.player.officers,Date.now()),n=b(V.value,t.additionalBuildQueue);return!(V.value.buildQueue.filter(e=>e.type===`building`||e.type===`demolish`).length>=n)},$=e=>ee(e,Y(e));return(e,n)=>V.value?(r(),S(`div`,xe,[x(`h1`,Se,d(y(z)(`buildingsView.title`)),1),x(`div`,Ce,[x(`div`,we,[x(`div`,Te,[m(y(C),{size:16}),f(` `+d(y(z)(`buildingsView.spaceUsage`))+`: `,1)]),x(`div`,Ee,[x(`span`,{class:l(J(V.value)>V.value.maxSpace?`text-destructive`:`text-primary`)},d(y(I)(J(V.value))),3),n[2]||=x(`span`,{class:`text-muted-foreground mx-1`},`/`,-1),x(`span`,null,d(y(I)(V.value.maxSpace)),1)])]),x(`div`,De,[x(`div`,Oe,[x(`div`,{class:l([`h-full transition-all duration-300`,J(V.value)>V.value.maxSpace?`bg-destructive`:`bg-primary`]),style:ie({width:`${Math.min(J(V.value)/V.value.maxSpace*100,100)}%`})},null,6)])])]),x(`div`,ke,[(r(!0),S(v,null,a(Ke.value,e=>(r(),u(y(F),{key:e,class:`relative`},{default:s(()=>[m(be,{requirements:y(B)[e].requirements,currentLevel:Y(e)},null,8,[`requirements`,`currentLevel`]),m(y(ge),null,{default:s(()=>[x(`div`,Ae,[x(`div`,je,[m(y(he),{class:`text-sm sm:text-base lg:text-lg cursor-pointer hover:text-primary transition-colors underline decoration-dotted underline-offset-4 order-2 sm:order-1`,onClick:t=>y(Ue).openBuilding(e,Y(e))},{default:s(()=>[f(d(y(B)[e].name),1)]),_:2},1032,[`onClick`]),m(y(de),{variant:`secondary`,class:`text-xs whitespace-nowrap self-start order-1 sm:order-2`},{default:s(()=>[f(` Lv `+d(Y(e)),1)]),_:2},1024)])]),m(y(le),{class:`text-xs sm:text-sm`},{default:s(()=>[f(d(y(B)[e].description),1)]),_:2},1024)]),_:2},1024),m(y(L),null,{default:s(()=>[x(`div`,Me,[x(`div`,Ne,[x(`p`,Pe,d(y(z)(`buildingsView.upgradeCost`))+`:`,1),x(`div`,Fe,[(r(),S(v,null,a(Ge,n=>oe(x(`div`,{key:n.key,class:`flex items-center gap-1.5 sm:gap-2`},[m(fe,{type:n.key,size:`sm`},null,8,[`type`]),x(`span`,Ie,d(y(z)(`resources.${n.key}`))+`:`,1),x(`span`,{class:l([`font-medium text-xs sm:text-sm`,y(P)(V.value.resources[n.key],Q(e,Y(e)+1)[n.key])])},d(y(I)(Q(e,Y(e)+1)[n.key])),3)]),[[t,n.key!==`darkMatter`||Q(e,Y(e)+1).darkMatter>0]])),64))])]),x(`div`,Le,[x(`div`,Re,[m(y(ce),{size:14,class:`flex-shrink-0`}),x(`span`,null,d(y(_e)(Ze(e,Y(e)+1))),1)]),x(`div`,ze,[m(y(C),{size:14,class:`flex-shrink-0`}),x(`span`,null,d(y(B)[e].spaceUsage),1)])]),m(y(k),{onClick:t=>Je(e),disabled:!Xe(e),class:`w-full`},{default:s(()=>[f(d(Z(e)),1)]),_:2},1032,[`onClick`,`disabled`]),Y(e)>0?(r(),u(y(k),{key:0,onClick:t=>$e(e),disabled:!tt(e),variant:`destructive`,class:`w-full`},{default:s(()=>[f(d(y(z)(`buildingsView.demolish`)),1)]),_:1},8,[`onClick`,`disabled`])):h(``,!0),Y(e)>0?(r(),S(`div`,Be,[x(`p`,null,d(y(z)(`buildingsView.demolishRefund`))+`:`,1),x(`div`,Ve,[x(`span`,null,d(y(I)($(e).metal))+` `+d(y(z)(`resources.metal`)),1),x(`span`,null,d(y(I)($(e).crystal))+` `+d(y(z)(`resources.crystal`)),1),x(`span`,null,d(y(I)($(e).deuterium))+` `+d(y(z)(`resources.deuterium`)),1),$(e).darkMatter>0?(r(),S(`span`,He,d(y(I)($(e).darkMatter))+` `+d(y(z)(`resources.darkMatter`)),1)):h(``,!0)])])):h(``,!0)])]),_:2},1024)]),_:2},1024))),128))]),m(y(O),{open:H.value,"onUpdate:open":n[0]||=e=>H.value=e},{default:s(()=>[m(y(j),null,{default:s(()=>[m(y(E),null,{default:s(()=>[m(y(N),null,{default:s(()=>[f(d(U.value),1)]),_:1}),m(y(A),{class:`whitespace-pre-line`},{default:s(()=>[f(d(W.value),1)]),_:1})]),_:1}),m(y(M),null,{default:s(()=>[m(y(D),null,{default:s(()=>[f(d(y(z)(`common.confirm`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),m(y(O),{open:G.value,"onUpdate:open":n[1]||=e=>G.value=e},{default:s(()=>[m(y(j),null,{default:s(()=>[m(y(E),null,{default:s(()=>[m(y(N),null,{default:s(()=>[f(d(y(z)(`buildingsView.confirmDemolish`)),1)]),_:1}),m(y(A),{class:`whitespace-pre-line`},{default:s(()=>[f(d(K.value),1)]),_:1})]),_:1}),m(y(M),null,{default:s(()=>[m(y(pe),null,{default:s(()=>[f(d(y(z)(`common.cancel`)),1)]),_:1}),m(y(D),{onClick:et},{default:s(()=>[f(d(y(z)(`common.confirm`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])])):h(``,!0)}});export{R as default};

View File

@@ -1 +0,0 @@
import{Gn as e,Qt as t,_n as n,mn as r,qn as i,tn as a}from"./game-logic-Bi1l7y4K.js";import{G as o}from"./index-BT5w6et-.js";var s=a({__name:`CardDescription`,props:{class:{}},setup(a){let s=a;return(a,c)=>(r(),t(`p`,{"data-slot":`card-description`,class:i(e(o)(`text-muted-foreground text-sm`,s.class))},[n(a.$slots,`default`)],2))}});export{s as t};

View File

@@ -0,0 +1 @@
import{En as e,ar as t,kn as n,pn as r,rr as i,un as a}from"./game-logic-BBFCPVtv.js";import{Y as o}from"./index-B4KMqZ_y.js";var s=r({__name:`CardDescription`,props:{class:{}},setup(r){let s=r;return(r,c)=>(e(),a(`p`,{"data-slot":`card-description`,class:t(i(o)(`text-muted-foreground text-sm`,s.class))},[n(r.$slots,`default`)],2))}});export{s as t};

View File

@@ -0,0 +1,2 @@
import{En as e,Rn as t,Yn as n,cr as r,dn as i,fn as a,ln as o,on as s,pn as c,rr as l,sn as u,tt as d,un as f}from"./game-logic-BBFCPVtv.js";import{k as p}from"./vendor-icons-Ccm2_GPI.js";import{d as m,v as h}from"./game-config-DRP-gbpS.js";import{$ as g,A as _,F as v,I as y,J as b,M as x,N as S,X as C,j as w,k as T}from"./index-B4KMqZ_y.js";import{t as E}from"./useGameConfig-DLqfPHtW.js";var D={key:0,class:`absolute inset-0 z-10 bg-background/70 backdrop-blur-[2px] rounded-lg flex items-center justify-center`},O={class:`text-center p-4 space-y-2`},k={class:`flex justify-center`},A={class:`rounded-full bg-muted p-2`},j={class:`text-xs font-medium text-muted-foreground`},M=c({__name:`CardUnlockOverlay`,props:{requirements:{},currentLevel:{}},setup(c){let M=c,N=g(),{t:P}=C(),{BUILDINGS:F,TECHNOLOGIES:I}=E(),L=n(!1),R=n(``),z=n(``),B=s(()=>M.currentLevel!==void 0&&M.currentLevel>0||!M.requirements||!N.currentPlanet?!0:d(N.currentPlanet,N.player.technologies,M.requirements)),V=()=>{if(!M.requirements||!N.currentPlanet)return``;let e=[];for(let[t,n]of Object.entries(M.requirements))if(Object.values(m).includes(t)){let r=t,i=N.currentPlanet.buildings[r]||0,a=F.value[r]?.name||r,o=i>=n?``:``;e.push(`${o} ${a}: Lv ${n} (${P(`common.current`)}: Lv ${i})`)}else if(Object.values(h).includes(t)){let r=t,i=N.player.technologies[r]||0,a=I.value[r]?.name||r,o=i>=n?``:``;e.push(`${o} ${a}: Lv ${n} (${P(`common.current`)}: Lv ${i})`)}return e.join(`
`)},H=()=>{R.value=P(`common.requirementsNotMet`),z.value=V(),L.value=!0};return(n,s)=>B.value?o(``,!0):(e(),f(`div`,D,[u(`div`,O,[u(`div`,k,[u(`div`,A,[a(l(p),{size:20,class:`text-muted-foreground`})])]),u(`p`,j,r(l(P)(`common.locked`)),1),a(l(b),{variant:`outline`,size:`sm`,onClick:H,class:`text-xs`},{default:t(()=>[i(r(l(P)(`common.viewRequirements`)),1)]),_:1})]),a(l(y),{open:L.value,"onUpdate:open":s[0]||=e=>L.value=e},{default:t(()=>[a(l(S),null,{default:t(()=>[a(l(_),null,{default:t(()=>[a(l(T),null,{default:t(()=>[i(r(R.value),1)]),_:1}),a(l(x),{class:`whitespace-pre-line`},{default:t(()=>[i(r(z.value),1)]),_:1})]),_:1}),a(l(w),null,{default:t(()=>[a(l(v),null,{default:t(()=>[i(r(l(P)(`common.confirm`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{M as t};

View File

@@ -1,2 +0,0 @@
import{$t as e,En as t,Gn as n,Jt as r,Ln as i,Qt as a,Xn as o,Yt as s,Zt as c,en as l,mn as u,tn as d,v as f}from"./game-logic-Bi1l7y4K.js";import{D as p}from"./vendor-icons-z9V6Jdbh.js";import{d as m,v as h}from"./game-config-CG6z6nnH.js";import{K as g,W as _,a as v,i as y,l as b,o as x,q as S,r as C,s as w,u as T}from"./index-BT5w6et-.js";import{t as E}from"./useGameConfig-b98LOtBY.js";var D={key:0,class:`absolute inset-0 z-10 bg-background/70 backdrop-blur-[2px] rounded-lg flex items-center justify-center`},O={class:`text-center p-4 space-y-2`},k={class:`flex justify-center`},A={class:`rounded-full bg-muted p-2`},j={class:`text-xs font-medium text-muted-foreground`},M=d({__name:`CardUnlockOverlay`,props:{requirements:{},currentLevel:{}},setup(d){let M=d,N=S(),{t:P}=g(),{BUILDINGS:F,TECHNOLOGIES:I}=E(),L=i(!1),R=i(``),z=i(``),B=r(()=>M.currentLevel!==void 0&&M.currentLevel>0||!M.requirements||!N.currentPlanet?!0:f(N.currentPlanet,N.player.technologies,M.requirements)),V=()=>{if(!M.requirements||!N.currentPlanet)return``;let e=[];for(let[t,n]of Object.entries(M.requirements))if(Object.values(m).includes(t)){let r=t,i=N.currentPlanet.buildings[r]||0,a=F.value[r]?.name||r,o=i>=n?``:``;e.push(`${o} ${a}: Lv ${n} (${P(`common.current`)}: Lv ${i})`)}else if(Object.values(h).includes(t)){let r=t,i=N.player.technologies[r]||0,a=I.value[r]?.name||r,o=i>=n?``:``;e.push(`${o} ${a}: Lv ${n} (${P(`common.current`)}: Lv ${i})`)}return e.join(`
`)},H=()=>{R.value=P(`common.requirementsNotMet`),z.value=V(),L.value=!0};return(r,i)=>B.value?c(``,!0):(u(),a(`div`,D,[s(`div`,O,[s(`div`,k,[s(`div`,A,[l(n(p),{size:20,class:`text-muted-foreground`})])]),s(`p`,j,o(n(P)(`common.locked`)),1),l(n(_),{variant:`outline`,size:`sm`,onClick:H,class:`text-xs`},{default:t(()=>[e(o(n(P)(`common.viewRequirements`)),1)]),_:1})]),l(n(T),{open:L.value,"onUpdate:open":i[0]||=e=>L.value=e},{default:t(()=>[l(n(w),null,{default:t(()=>[l(n(y),null,{default:t(()=>[l(n(C),null,{default:t(()=>[e(o(R.value),1)]),_:1}),l(n(x),{class:`whitespace-pre-line`},{default:t(()=>[e(o(z.value),1)]),_:1})]),_:1}),l(n(v),null,{default:t(()=>[l(n(b),null,{default:t(()=>[e(o(n(P)(`common.confirm`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{M as t};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{En as e,Rn as t,cr as n,dn as r,fn as i,pn as a,rr as o,sn as s,un as c}from"./game-logic-BBFCPVtv.js";import"./vendor-pinia-L_8CmDWM.js";import{o as l}from"./vendor-vue-router-0mfLVB6Y.js";import"./vendor-crypto-CQM8pryk.js";import"./game-i18n-BC9uiVvf.js";import"./vendor-others-Bce0hM6h.js";import"./vendor-reka-ui-DR3m_AkV.js";import"./vendor-utils-BlvnUqQX.js";import{N as u}from"./vendor-icons-Ccm2_GPI.js";import{J as d,X as f}from"./index-B4KMqZ_y.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./empty-Ds0PR_Pd.js";var y={class:`container mx-auto p-4 sm:p-6 flex items-center justify-center min-h-[60vh]`},b=a({__name:`NotFoundView`,setup(a){let b=l(),{t:x}=f(),S=()=>{b.push(`/`)};return(a,l)=>(e(),c(`div`,y,[i(o(g),{class:`border-0`},{default:t(()=>[i(o(h),null,{default:t(()=>[...l[0]||=[s(`div`,{class:`text-8xl sm:text-9xl font-bold text-muted-foreground/20`},`404`,-1)]]),_:1}),i(o(_),null,{default:t(()=>[i(o(v),null,{default:t(()=>[r(n(o(x)(`notFound.title`)),1)]),_:1}),i(o(m),null,{default:t(()=>[r(n(o(x)(`notFound.description`)),1)]),_:1})]),_:1}),i(o(p),null,{default:t(()=>[i(o(d),{onClick:S,size:`lg`},{default:t(()=>[i(o(u),{class:`mr-2 h-4 w-4`}),r(` `+n(o(x)(`notFound.goHome`)),1)]),_:1})]),_:1})]),_:1})]))}});export{b as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,2 +0,0 @@
import{$t as e,Dn as t,En as n,Gn as r,Gt as i,It as a,Jt as o,Ln as s,Qt as c,S as l,Vt as ee,Xn as u,Xt as te,Yt as d,Zt as ne,d as re,en as f,gn as p,mn as m,qn as ie,tn as ae,u as oe,v as h,y as g}from"./game-logic-Bi1l7y4K.js";import"./vendor-pinia-DqhKuBjp.js";import"./vendor-vue-router-1sDnnIWZ.js";import"./vendor-crypto-CQM8pryk.js";import"./game-i18n-Dr0JspcV.js";import"./vendor-others-DTUzJ7S-.js";import"./vendor-reka-ui-BEHIKScj.js";import"./vendor-utils-BlvnUqQX.js";import"./vendor-vueuse-CJcfYqoW.js";import"./vendor-icons-z9V6Jdbh.js";import{t as se}from"./CardDescription-BSLS07AU.js";import{d as _,v}from"./game-config-CG6z6nnH.js";import{D as ce,H as le,K as ue,N as de,W as y,_ as b,a as x,b as S,f as C,h as w,i as T,l as E,o as D,q as O,r as k,s as A,u as j,v as M,y as N}from"./index-BT5w6et-.js";import{t as P}from"./useGameConfig-b98LOtBY.js";import{t as F}from"./CardUnlockOverlay-DYfgGY6J.js";import{t as I}from"./UnlockRequirement-CoWPiUl8.js";var L={key:0,class:`container mx-auto p-4 sm:p-6`},R={class:`text-2xl sm:text-3xl font-bold mb-4 sm:mb-6`},fe={class:`grid grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4`},z={class:`mb-2`},B={class:`flex flex-col sm:flex-row sm:justify-between sm:items-start gap-2`},V={class:`space-y-2.5 sm:space-y-3`},pe={class:`text-xs sm:text-sm space-y-1.5 sm:space-y-2`},me={class:`text-muted-foreground mb-1 sm:mb-2`},he={class:`space-y-1 sm:space-y-1.5`},ge={class:`text-xs`},H=ae({__name:`ResearchView`,setup(ae){let H=O(),_e=ce(),{t:U}=ue(),{TECHNOLOGIES:W,BUILDINGS:ve}=P(),G=o(()=>H.currentPlanet),K=o(()=>H.player),q=s(!1),J=s(``),Y=s(``),ye=[{key:`metal`},{key:`crystal`},{key:`deuterium`},{key:`darkMatter`}],X=e=>{if(!H.currentPlanet||!re(H.currentPlanet,e,H.player.technologies,H.player.researchQueue).valid)return!1;let t=H.player.technologies[e]||0,{queueItem:n}=oe(H.currentPlanet,e,t,H.player.officers,H.player.technologies);return H.player.researchQueue.push(n),!0},Z=e=>{if(!G.value)return!1;let t=W.value[e],n=g(t,Q(e)+1);return!n||Object.keys(n).length===0?!0:h(G.value,H.player.technologies,n)},be=e=>{if(!G.value)return U(`researchView.research`);let t=W.value[e],n=Q(e);if(t.maxLevel!==void 0&&n>=t.maxLevel)return U(`researchView.maxLevelReached`);let r=l(H.player.technologies);return K.value.researchQueue.length>=r||Z(e)?U(`researchView.research`):U(`buildingsView.requirementsNotMet`)},xe=e=>{let t=W.value[e],n=g(t,Q(e)+1);if(!n||!G.value)return``;let r=[];for(let[e,t]of Object.entries(n))if(Object.values(_).includes(e)){let n=e,i=G.value.buildings[n]||0,a=ve.value[n]?.name||n,o=i>=t?``:``;r.push(`${o} ${a}: Lv ${t} (${U(`common.current`)}: Lv ${i})`)}else if(Object.values(v).includes(e)){let n=e,i=H.player.technologies[n]||0,a=W.value[n]?.name||n,o=i>=t?``:``;r.push(`${o} ${a}: Lv ${t} (${U(`common.current`)}: Lv ${i})`)}return r.join(`
`)},Se=e=>{if(!Z(e)){J.value=U(`common.requirementsNotMet`),Y.value=xe(e),q.value=!0;return}X(e)||(J.value=U(`researchView.researchFailed`),Y.value=U(`researchView.researchFailedMessage`),q.value=!0)},Q=e=>K.value.technologies[e]||0,Ce=e=>{if(!G.value)return!1;let t=W.value[e],n=Q(e);if(t.maxLevel!==void 0&&n>=t.maxLevel)return!1;let r=l(H.player.technologies);if(K.value.researchQueue.length>=r)return!1;let i=$(e,n+1);return h(G.value,H.player.technologies,t.requirements)&&G.value.resources.metal>=i.metal&&G.value.resources.crystal>=i.crystal&&G.value.resources.deuterium>=i.deuterium&&G.value.resources.darkMatter>=i.darkMatter},$=(e,t)=>a(e,t);return(a,o)=>G.value?(m(),c(`div`,L,[f(I,{"required-building":r(_).ResearchLab,"required-level":1},null,8,[`required-building`]),d(`h1`,R,u(r(U)(`researchView.title`)),1),d(`div`,fe,[(m(!0),c(i,null,p(Object.values(r(v)),a=>(m(),te(r(S),{key:a,class:`relative`},{default:n(()=>[f(F,{requirements:r(W)[a].requirements,currentLevel:Q(a)},null,8,[`requirements`,`currentLevel`]),f(r(M),null,{default:n(()=>[d(`div`,z,[d(`div`,B,[f(r(b),{class:`text-sm sm:text-base lg:text-lg cursor-pointer hover:text-primary transition-colors underline decoration-dotted underline-offset-4 order-2 sm:order-1`,onClick:e=>r(_e).openTechnology(a,Q(a))},{default:n(()=>[e(u(r(W)[a].name),1)]),_:2},1032,[`onClick`]),f(r(le),{variant:`secondary`,class:`text-xs whitespace-nowrap self-start order-1 sm:order-2`},{default:n(()=>[e(` Lv `+u(Q(a)),1)]),_:2},1024)])]),f(r(se),{class:`text-xs sm:text-sm`},{default:n(()=>[e(u(r(W)[a].description),1)]),_:2},1024)]),_:2},1024),f(r(N),null,{default:n(()=>[d(`div`,V,[d(`div`,pe,[d(`p`,me,u(r(U)(`researchView.researchCost`))+`:`,1),d(`div`,he,[(m(),c(i,null,p(ye,e=>t(d(`div`,{key:e.key,class:`flex items-center gap-1.5 sm:gap-2`},[f(de,{type:e.key,size:`sm`},null,8,[`type`]),d(`span`,ge,u(r(U)(`resources.${e.key}`))+`:`,1),d(`span`,{class:ie([`font-medium text-xs sm:text-sm`,r(w)(G.value.resources[e.key],$(a,Q(a)+1)[e.key])])},u(r(C)($(a,Q(a)+1)[e.key])),3)]),[[ee,e.key!==`darkMatter`||$(a,Q(a)+1).darkMatter>0]])),64))])]),f(r(y),{onClick:e=>Se(a),disabled:!Ce(a),class:`w-full`},{default:n(()=>[e(u(be(a)),1)]),_:2},1032,[`onClick`,`disabled`])])]),_:2},1024)]),_:2},1024))),128))]),f(r(j),{open:q.value,"onUpdate:open":o[0]||=e=>q.value=e},{default:n(()=>[f(r(A),null,{default:n(()=>[f(r(T),null,{default:n(()=>[f(r(k),null,{default:n(()=>[e(u(J.value),1)]),_:1}),f(r(D),{class:`whitespace-pre-line`},{default:n(()=>[e(u(Y.value),1)]),_:1})]),_:1}),f(r(x),null,{default:n(()=>[f(r(E),null,{default:n(()=>[e(u(r(U)(`common.confirm`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])])):ne(``,!0)}});export{H as default};

View File

@@ -0,0 +1,2 @@
import{$t as e,En as t,J as n,On as r,Rn as i,Yn as a,ar as o,at as s,cn as ee,cr as c,dn as l,fn as u,ln as te,nt as d,on as f,pn as ne,q as re,qt as ie,rn as p,rr as m,sn as h,tt as g,un as _,zn as ae}from"./game-logic-BBFCPVtv.js";import"./vendor-pinia-L_8CmDWM.js";import"./vendor-vue-router-0mfLVB6Y.js";import"./vendor-crypto-CQM8pryk.js";import"./game-i18n-BC9uiVvf.js";import"./vendor-others-Bce0hM6h.js";import"./vendor-reka-ui-DR3m_AkV.js";import"./vendor-utils-BlvnUqQX.js";import"./vendor-vueuse-Djj-oRw9.js";import"./vendor-icons-Ccm2_GPI.js";import{t as oe}from"./CardDescription-DduF5EVY.js";import{d as v,v as y}from"./game-config-DRP-gbpS.js";import{$ as se,A as ce,F as le,I as ue,J as de,K as b,L as x,M as S,N as C,X as w,d as T,f as E,j as D,k as O,l as k,m as A,o as j,p as M,x as N}from"./index-B4KMqZ_y.js";import{t as P}from"./useGameConfig-DLqfPHtW.js";import{t as F}from"./CardUnlockOverlay-CspXlcWR.js";import{t as I}from"./UnlockRequirement-DJ9dN5JL.js";var L={key:0,class:`container mx-auto p-4 sm:p-6`},R={class:`text-2xl sm:text-3xl font-bold mb-4 sm:mb-6`},z={class:`grid grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4`},fe={class:`mb-2`},B={class:`flex flex-col sm:flex-row sm:justify-between sm:items-start gap-2`},V={class:`space-y-2.5 sm:space-y-3`},pe={class:`text-xs sm:text-sm space-y-1.5 sm:space-y-2`},me={class:`text-muted-foreground mb-1 sm:mb-2`},he={class:`space-y-1 sm:space-y-1.5`},ge={class:`text-xs`},H=ne({__name:`ResearchView`,setup(ne){let H=se(),_e=N(),{t:U}=w(),{TECHNOLOGIES:W,BUILDINGS:ve}=P(),G=f(()=>H.currentPlanet),K=f(()=>H.player),q=a(!1),J=a(``),Y=a(``),ye=[{key:`metal`},{key:`crystal`},{key:`deuterium`},{key:`darkMatter`}],X=e=>{if(!H.currentPlanet||!n(H.currentPlanet,e,H.player.technologies,H.player.researchQueue).valid)return!1;let t=H.player.technologies[e]||0,{queueItem:r}=re(H.currentPlanet,e,t,H.player.officers,H.player.technologies);return H.player.researchQueue.push(r),!0},Z=e=>{if(!G.value)return!1;let t=W.value[e],n=d(t,Q(e)+1);return!n||Object.keys(n).length===0?!0:g(G.value,H.player.technologies,n)},be=e=>{if(!G.value)return U(`researchView.research`);let t=W.value[e],n=Q(e);if(t.maxLevel!==void 0&&n>=t.maxLevel)return U(`researchView.maxLevelReached`);let r=s(H.player.technologies);return K.value.researchQueue.length>=r||Z(e)?U(`researchView.research`):U(`buildingsView.requirementsNotMet`)},xe=e=>{let t=W.value[e],n=d(t,Q(e)+1);if(!n||!G.value)return``;let r=[];for(let[e,t]of Object.entries(n))if(Object.values(v).includes(e)){let n=e,i=G.value.buildings[n]||0,a=ve.value[n]?.name||n,o=i>=t?``:``;r.push(`${o} ${a}: Lv ${t} (${U(`common.current`)}: Lv ${i})`)}else if(Object.values(y).includes(e)){let n=e,i=H.player.technologies[n]||0,a=W.value[n]?.name||n,o=i>=t?``:``;r.push(`${o} ${a}: Lv ${t} (${U(`common.current`)}: Lv ${i})`)}return r.join(`
`)},Se=e=>{if(!Z(e)){J.value=U(`common.requirementsNotMet`),Y.value=xe(e),q.value=!0;return}X(e)||(J.value=U(`researchView.researchFailed`),Y.value=U(`researchView.researchFailedMessage`),q.value=!0)},Q=e=>K.value.technologies[e]||0,Ce=e=>{if(!G.value)return!1;let t=W.value[e],n=Q(e);if(t.maxLevel!==void 0&&n>=t.maxLevel)return!1;let r=s(H.player.technologies);if(K.value.researchQueue.length>=r)return!1;let i=$(e,n+1);return g(G.value,H.player.technologies,t.requirements)&&G.value.resources.metal>=i.metal&&G.value.resources.crystal>=i.crystal&&G.value.resources.deuterium>=i.deuterium&&G.value.resources.darkMatter>=i.darkMatter},$=(e,t)=>ie(e,t);return(n,a)=>G.value?(t(),_(`div`,L,[u(I,{"required-building":m(v).ResearchLab,"required-level":1},null,8,[`required-building`]),h(`h1`,R,c(m(U)(`researchView.title`)),1),h(`div`,z,[(t(!0),_(p,null,r(Object.values(m(y)),n=>(t(),ee(m(A),{key:n,class:`relative`},{default:i(()=>[u(F,{requirements:m(W)[n].requirements,currentLevel:Q(n)},null,8,[`requirements`,`currentLevel`]),u(m(E),null,{default:i(()=>[h(`div`,fe,[h(`div`,B,[u(m(T),{class:`text-sm sm:text-base lg:text-lg cursor-pointer hover:text-primary transition-colors underline decoration-dotted underline-offset-4 order-2 sm:order-1`,onClick:e=>m(_e).openTechnology(n,Q(n))},{default:i(()=>[l(c(m(W)[n].name),1)]),_:2},1032,[`onClick`]),u(m(b),{variant:`secondary`,class:`text-xs whitespace-nowrap self-start order-1 sm:order-2`},{default:i(()=>[l(` Lv `+c(Q(n)),1)]),_:2},1024)])]),u(m(oe),{class:`text-xs sm:text-sm`},{default:i(()=>[l(c(m(W)[n].description),1)]),_:2},1024)]),_:2},1024),u(m(M),null,{default:i(()=>[h(`div`,V,[h(`div`,pe,[h(`p`,me,c(m(U)(`researchView.researchCost`))+`:`,1),h(`div`,he,[(t(),_(p,null,r(ye,t=>ae(h(`div`,{key:t.key,class:`flex items-center gap-1.5 sm:gap-2`},[u(x,{type:t.key,size:`sm`},null,8,[`type`]),h(`span`,ge,c(m(U)(`resources.${t.key}`))+`:`,1),h(`span`,{class:o([`font-medium text-xs sm:text-sm`,m(k)(G.value.resources[t.key],$(n,Q(n)+1)[t.key])])},c(m(j)($(n,Q(n)+1)[t.key])),3)]),[[e,t.key!==`darkMatter`||$(n,Q(n)+1).darkMatter>0]])),64))])]),u(m(de),{onClick:e=>Se(n),disabled:!Ce(n),class:`w-full`},{default:i(()=>[l(c(be(n)),1)]),_:2},1032,[`onClick`,`disabled`])])]),_:2},1024)]),_:2},1024))),128))]),u(m(ue),{open:q.value,"onUpdate:open":a[0]||=e=>q.value=e},{default:i(()=>[u(m(C),null,{default:i(()=>[u(m(ce),null,{default:i(()=>[u(m(O),null,{default:i(()=>[l(c(J.value),1)]),_:1}),u(m(S),{class:`whitespace-pre-line`},{default:i(()=>[l(c(Y.value),1)]),_:1})]),_:1}),u(m(D),null,{default:i(()=>[u(m(le),null,{default:i(()=>[l(c(m(U)(`common.confirm`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])])):te(``,!0)}});export{H as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{En as e,Rn as t,cn as n,hn as r,kn as i,or as a,pn as o,rr as s,xn as c}from"./game-logic-BBFCPVtv.js";import{l}from"./vendor-others-Bce0hM6h.js";import{$ as u,c as d,et as f,l as p,s as m,u as h}from"./vendor-reka-ui-DR3m_AkV.js";import{Y as g}from"./index-B4KMqZ_y.js";var _=o({__name:`Tabs`,props:{defaultValue:{},orientation:{},dir:{},activationMode:{},modelValue:{},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},emits:[`update:modelValue`],setup(o,{emit:d}){let f=o,p=d,m=u(l(f,`class`),p);return(o,l)=>(e(),n(s(h),c({"data-slot":`tabs`},s(m),{class:s(g)(`flex flex-col gap-2`,f.class)}),{default:t(e=>[i(o.$slots,`default`,a(r(e)))]),_:3},16,[`class`]))}}),v=o({__name:`TabsContent`,props:{value:{},forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(r){let a=r,o=l(a,`class`);return(r,l)=>(e(),n(s(p),c({"data-slot":`tabs-content`,class:s(g)(`flex-1 outline-none`,a.class)},s(o)),{default:t(()=>[i(r.$slots,`default`)]),_:3},16,[`class`]))}}),y=o({__name:`TabsList`,props:{loop:{type:Boolean},asChild:{type:Boolean},as:{},class:{},tabCount:{}},setup(r){let a=r,o=l(a,`class`,`tabCount`);return(l,u)=>(e(),n(s(d),c({"data-slot":`tabs-list`},s(o),{class:s(g)(`bg-muted text-muted-foreground inline-flex w-fit items-center justify-center rounded-lg p-[3px]`,r.tabCount&&r.tabCount>3?r.tabCount>6?`h-[85px] sm:h-9`:`h-[65px] sm:h-9`:`h-9`,a.class)}),{default:t(()=>[i(l.$slots,`default`)]),_:3},16,[`class`]))}}),b=o({__name:`TabsTrigger`,props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(r){let a=r,o=f(l(a,`class`));return(r,l)=>(e(),n(s(m),c({"data-slot":`tabs-trigger`,class:s(g)(`inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-all`,`text-muted-foreground hover:text-foreground`,`data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-md data-[state=active]:border-border`,`dark:data-[state=active]:bg-background dark:data-[state=active]:text-foreground dark:data-[state=active]:border-border dark:data-[state=active]:shadow-lg`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring focus-visible:ring-[3px] focus-visible:outline-1`,`disabled:pointer-events-none disabled:opacity-50`,`[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,a.class)},s(o)),{default:t(()=>[i(r.$slots,`default`)]),_:3},16,[`class`]))}});export{_ as i,y as n,v as r,b as t};

View File

@@ -1 +0,0 @@
import{En as e,Gn as t,Jn as n,Xt as r,_n as i,ln as a,mn as o,rn as s,tn as c}from"./game-logic-Bi1l7y4K.js";import{c as l}from"./vendor-others-DTUzJ7S-.js";import{$ as u,c as d,et as f,l as p,s as m,u as h}from"./vendor-reka-ui-BEHIKScj.js";import{G as g}from"./index-BT5w6et-.js";var _=c({__name:`Tabs`,props:{defaultValue:{},orientation:{},dir:{},activationMode:{},modelValue:{},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},emits:[`update:modelValue`],setup(c,{emit:d}){let f=c,p=d,m=u(l(f,`class`),p);return(c,l)=>(o(),r(t(h),a({"data-slot":`tabs`},t(m),{class:t(g)(`flex flex-col gap-2`,f.class)}),{default:e(e=>[i(c.$slots,`default`,n(s(e)))]),_:3},16,[`class`]))}}),v=c({__name:`TabsContent`,props:{value:{},forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(n){let s=n,c=l(s,`class`);return(n,l)=>(o(),r(t(p),a({"data-slot":`tabs-content`,class:t(g)(`flex-1 outline-none`,s.class)},t(c)),{default:e(()=>[i(n.$slots,`default`)]),_:3},16,[`class`]))}}),y=c({__name:`TabsList`,props:{loop:{type:Boolean},asChild:{type:Boolean},as:{},class:{},tabCount:{}},setup(n){let s=n,c=l(s,`class`,`tabCount`);return(l,u)=>(o(),r(t(d),a({"data-slot":`tabs-list`},t(c),{class:t(g)(`bg-muted text-muted-foreground inline-flex w-fit items-center justify-center rounded-lg p-[3px]`,n.tabCount&&n.tabCount>3?n.tabCount>6?`h-[85px] sm:h-9`:`h-[65px] sm:h-9`:`h-9`,s.class)}),{default:e(()=>[i(l.$slots,`default`)]),_:3},16,[`class`]))}}),b=c({__name:`TabsTrigger`,props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(n){let s=n,c=f(l(s,`class`));return(n,l)=>(o(),r(t(m),a({"data-slot":`tabs-trigger`,class:t(g)(`inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-all`,`text-muted-foreground hover:text-foreground`,`data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-md data-[state=active]:border-border`,`dark:data-[state=active]:bg-background dark:data-[state=active]:text-foreground dark:data-[state=active]:border-border dark:data-[state=active]:shadow-lg`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring focus-visible:ring-[3px] focus-visible:outline-1`,`disabled:pointer-events-none disabled:opacity-50`,`[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,s.class)},t(c)),{default:e(()=>[i(n.$slots,`default`)]),_:3},16,[`class`]))}});export{_ as i,y as n,v as r,b as t};

View File

@@ -1 +0,0 @@
import{En as e,Gn as t,Jn as n,Xt as r,_n as i,mn as a,rn as o,tn as s}from"./game-logic-Bi1l7y4K.js";import{a as c}from"./vendor-reka-ui-BEHIKScj.js";var l=s({__name:`TooltipProvider`,props:{delayDuration:{default:0},skipDelayDuration:{},disableHoverableContent:{type:Boolean},disableClosingTrigger:{type:Boolean},disabled:{type:Boolean},ignoreNonKeyboardFocus:{type:Boolean}},setup(s){let l=s;return(s,u)=>(a(),r(t(c),n(o(l)),{default:e(()=>[i(s.$slots,`default`)]),_:3},16))}});export{l as t};

View File

@@ -0,0 +1 @@
import{En as e,Rn as t,cn as n,hn as r,kn as i,or as a,pn as o,rr as s}from"./game-logic-BBFCPVtv.js";import{a as c}from"./vendor-reka-ui-DR3m_AkV.js";var l=o({__name:`TooltipProvider`,props:{delayDuration:{default:0},skipDelayDuration:{},disableHoverableContent:{type:Boolean},disableClosingTrigger:{type:Boolean},disabled:{type:Boolean},ignoreNonKeyboardFocus:{type:Boolean}},setup(o){let l=o;return(o,u)=>(e(),n(s(c),a(r(l)),{default:t(()=>[i(o.$slots,`default`)]),_:3},16))}});export{l as t};

View File

@@ -1 +0,0 @@
import{$t as e,En as t,Gn as n,Jt as r,Qt as i,Xn as a,Yt as o,Zt as s,en as c,mn as l,tn as u}from"./game-logic-Bi1l7y4K.js";import{o as d}from"./vendor-vue-router-1sDnnIWZ.js";import{D as f,J as p}from"./vendor-icons-z9V6Jdbh.js";import{t as m}from"./CardDescription-BSLS07AU.js";import{H as h,K as g,W as _,_ as v,b as y,q as b,v as x,y as S}from"./index-BT5w6et-.js";import{t as C}from"./useGameConfig-b98LOtBY.js";var w={key:0,class:`fixed inset-0 z-50 bg-background/80 backdrop-blur-sm flex items-center justify-center p-4`},T={class:`flex justify-center mb-4`},E={class:`rounded-full bg-muted p-4`},D={class:`p-4 bg-muted rounded-lg space-y-2`},O={class:`text-sm font-medium text-center`},k={class:`flex items-center justify-center gap-2`},A={class:`text-base sm:text-lg font-bold`},j={key:0,class:`text-xs text-center text-muted-foreground`},M={class:`flex gap-2`},N=u({__name:`UnlockRequirement`,props:{requiredBuilding:{},requiredLevel:{}},setup(u){let N=u,P=d(),F=b(),{t:I}=g(),{BUILDINGS:L}=C(),R=r(()=>L.value[N.requiredBuilding]?.name||N.requiredBuilding),z=r(()=>F.currentPlanet&&F.currentPlanet.buildings[N.requiredBuilding]||0),B=r(()=>z.value>=N.requiredLevel),V=()=>{P.push(`/buildings`)};return(r,d)=>B.value?s(``,!0):(l(),i(`div`,w,[c(n(y),{class:`max-w-md w-full`},{default:t(()=>[c(n(x),{class:`text-center`},{default:t(()=>[o(`div`,T,[o(`div`,E,[c(n(f),{size:48,class:`text-muted-foreground`})])]),c(n(v),{class:`text-xl sm:text-2xl`},{default:t(()=>[e(a(n(I)(`common.featureLocked`)),1)]),_:1}),c(n(m),{class:`text-sm sm:text-base`},{default:t(()=>[e(a(n(I)(`common.unlockRequired`)),1)]),_:1})]),_:1}),c(n(S),{class:`space-y-4`},{default:t(()=>[o(`div`,D,[o(`p`,O,a(n(I)(`common.requiredBuilding`))+`:`,1),o(`div`,k,[o(`span`,A,a(R.value),1),c(n(h),{variant:`default`},{default:t(()=>[e(`Lv `+a(u.requiredLevel),1)]),_:1})]),z.value===void 0?s(``,!0):(l(),i(`p`,j,a(n(I)(`common.currentLevel`))+`: Lv `+a(z.value),1))]),o(`div`,M,[c(n(_),{onClick:V,class:`flex-1`},{default:t(()=>[c(n(p),{size:16,class:`mr-2`}),e(` `+a(n(I)(`common.goToBuildings`)),1)]),_:1})])]),_:1})]),_:1})]))}});export{N as t};

View File

@@ -0,0 +1 @@
import{En as e,Rn as t,cr as n,dn as r,fn as i,ln as a,on as o,pn as s,rr as c,sn as l,un as u}from"./game-logic-BBFCPVtv.js";import{o as d}from"./vendor-vue-router-0mfLVB6Y.js";import{Q as f,k as p}from"./vendor-icons-Ccm2_GPI.js";import{t as m}from"./CardDescription-DduF5EVY.js";import{$ as h,J as g,K as _,X as v,d as y,f as b,m as x,p as S}from"./index-B4KMqZ_y.js";import{t as C}from"./useGameConfig-DLqfPHtW.js";var w={key:0,class:`fixed inset-0 z-50 bg-background/80 backdrop-blur-sm flex items-center justify-center p-4`},T={class:`flex justify-center mb-4`},E={class:`rounded-full bg-muted p-4`},D={class:`p-4 bg-muted rounded-lg space-y-2`},O={class:`text-sm font-medium text-center`},k={class:`flex items-center justify-center gap-2`},A={class:`text-base sm:text-lg font-bold`},j={key:0,class:`text-xs text-center text-muted-foreground`},M={class:`flex gap-2`},N=s({__name:`UnlockRequirement`,props:{requiredBuilding:{},requiredLevel:{}},setup(s){let N=s,P=d(),F=h(),{t:I}=v(),{BUILDINGS:L}=C(),R=o(()=>L.value[N.requiredBuilding]?.name||N.requiredBuilding),z=o(()=>F.currentPlanet&&F.currentPlanet.buildings[N.requiredBuilding]||0),B=o(()=>z.value>=N.requiredLevel),V=()=>{P.push(`/buildings`)};return(o,d)=>B.value?a(``,!0):(e(),u(`div`,w,[i(c(x),{class:`max-w-md w-full`},{default:t(()=>[i(c(b),{class:`text-center`},{default:t(()=>[l(`div`,T,[l(`div`,E,[i(c(p),{size:48,class:`text-muted-foreground`})])]),i(c(y),{class:`text-xl sm:text-2xl`},{default:t(()=>[r(n(c(I)(`common.featureLocked`)),1)]),_:1}),i(c(m),{class:`text-sm sm:text-base`},{default:t(()=>[r(n(c(I)(`common.unlockRequired`)),1)]),_:1})]),_:1}),i(c(S),{class:`space-y-4`},{default:t(()=>[l(`div`,D,[l(`p`,O,n(c(I)(`common.requiredBuilding`))+`:`,1),l(`div`,k,[l(`span`,A,n(R.value),1),i(c(_),{variant:`default`},{default:t(()=>[r(`Lv `+n(s.requiredLevel),1)]),_:1})]),z.value===void 0?a(``,!0):(e(),u(`p`,j,n(c(I)(`common.currentLevel`))+`: Lv `+n(z.value),1))]),l(`div`,M,[i(c(g),{onClick:V,class:`flex-1`},{default:t(()=>[i(c(f),{size:16,class:`mr-2`}),r(` `+n(c(I)(`common.goToBuildings`)),1)]),_:1})])]),_:1})]),_:1})]))}});export{N as t};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{En as e,ar as t,kn as n,pn as r,rr as i,un as a}from"./game-logic-BBFCPVtv.js";import{z as o}from"./vendor-others-Bce0hM6h.js";import{Y as s}from"./index-B4KMqZ_y.js";var c=r({__name:`Empty`,props:{class:{}},setup(r){let o=r;return(r,c)=>(e(),a(`div`,{"data-slot":`empty`,class:t(i(s)(`flex min-w-0 flex-1 flex-col items-center justify-center gap-6 text-balance rounded-lg border-dashed p-6 text-center md:p-12`,o.class))},[n(r.$slots,`default`)],2))}}),l=r({__name:`EmptyContent`,props:{class:{}},setup(r){let o=r;return(r,c)=>(e(),a(`div`,{"data-slot":`empty-content`,class:t(i(s)(`flex w-full min-w-0 max-w-sm flex-col items-center gap-4 text-balance text-sm`,o.class))},[n(r.$slots,`default`)],2))}}),u=r({__name:`EmptyDescription`,props:{class:{}},setup(r){return(r,o)=>(e(),a(`p`,{"data-slot":`empty-description`,class:t(i(s)(`text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4`,r.$attrs.class??``))},[n(r.$slots,`default`)],2))}}),d=r({__name:`EmptyHeader`,props:{class:{}},setup(r){let o=r;return(r,c)=>(e(),a(`div`,{"data-slot":`empty-header`,class:t(i(s)(`flex max-w-sm flex-col items-center gap-2 text-center`,o.class))},[n(r.$slots,`default`)],2))}}),f=[`data-variant`],p=r({__name:`EmptyMedia`,props:{class:{},variant:{}},setup(r){let o=r;return(c,l)=>(e(),a(`div`,{"data-slot":`empty-icon`,"data-variant":r.variant,class:t(i(s)(i(h)({variant:r.variant}),o.class))},[n(c.$slots,`default`)],10,f))}}),m=r({__name:`EmptyTitle`,props:{class:{}},setup(r){let o=r;return(r,c)=>(e(),a(`div`,{"data-slot":`empty-title`,class:t(i(s)(`text-lg font-medium tracking-tight`,o.class))},[n(r.$slots,`default`)],2))}});const h=o(`mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0`,{variants:{variant:{default:`bg-transparent`,icon:`bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6`}},defaultVariants:{variant:`default`}});export{l as a,u as i,p as n,c as o,d as r,m as t};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{_ as e,d as t,f as n,g as r,h as i,l as a,m as o,p as s,u as c}from"./game-logic-BBFCPVtv.js";import"./game-config-DRP-gbpS.js";export{a as applyMissileAttackResult,c as calculateMissileFlightTime,t as calculateMissileImpact,n as calculateMissileRange,s as calculateSystemDistance,o as createMissileAttack,i as executeMissileLaunch,r as isTargetInRange,e as validateMissileLaunch};

View File

@@ -1 +1 @@
import{Jt as e}from"./game-logic-Bi1l7y4K.js";import{_ as t,d as n,f as r,h as i,l as a,n as o,r as s,s as c,u as l,v as u}from"./game-config-CG6z6nnH.js";import{K as d}from"./index-BT5w6et-.js";const f=()=>{let{t:f}=d(),p={[n.MetalMine]:`metalMine`,[n.CrystalMine]:`crystalMine`,[n.DeuteriumSynthesizer]:`deuteriumSynthesizer`,[n.SolarPlant]:`solarPlant`,[n.FusionReactor]:`fusionReactor`,[n.RoboticsFactory]:`roboticsFactory`,[n.NaniteFactory]:`naniteFactory`,[n.Shipyard]:`shipyard`,[n.ResearchLab]:`researchLab`,[n.MetalStorage]:`metalStorage`,[n.CrystalStorage]:`crystalStorage`,[n.DeuteriumTank]:`deuteriumTank`,[n.DarkMatterCollector]:`darkMatterCollector`,[n.DarkMatterTank]:`darkMatterTank`,[n.MissileSilo]:`missileSilo`,[n.Terraformer]:`terraformer`,[n.LunarBase]:`lunarBase`,[n.SensorPhalanx]:`sensorPhalanx`,[n.JumpGate]:`jumpGate`,[n.PlanetDestroyerFactory]:`planetDestroyerFactory`},m={[t.LightFighter]:`lightFighter`,[t.HeavyFighter]:`heavyFighter`,[t.Cruiser]:`cruiser`,[t.Battleship]:`battleship`,[t.Battlecruiser]:`battlecruiser`,[t.Bomber]:`bomber`,[t.Destroyer]:`destroyer`,[t.SmallCargo]:`smallCargo`,[t.LargeCargo]:`largeCargo`,[t.ColonyShip]:`colonyShip`,[t.Recycler]:`recycler`,[t.EspionageProbe]:`espionageProbe`,[t.SolarSatellite]:`solarSatellite`,[t.DarkMatterHarvester]:`darkMatterHarvester`,[t.Deathstar]:`deathstar`},h={[r.RocketLauncher]:`rocketLauncher`,[r.LightLaser]:`lightLaser`,[r.HeavyLaser]:`heavyLaser`,[r.GaussCannon]:`gaussCannon`,[r.IonCannon]:`ionCannon`,[r.PlasmaTurret]:`plasmaTurret`,[r.SmallShieldDome]:`smallShieldDome`,[r.LargeShieldDome]:`largeShieldDome`,[r.AntiBallisticMissile]:`antiBallisticMissile`,[r.InterplanetaryMissile]:`interplanetaryMissile`,[r.PlanetaryShield]:`planetaryShield`},g={[u.EnergyTechnology]:`energyTechnology`,[u.LaserTechnology]:`laserTechnology`,[u.IonTechnology]:`ionTechnology`,[u.HyperspaceTechnology]:`hyperspaceTechnology`,[u.PlasmaTechnology]:`plasmaTechnology`,[u.ComputerTechnology]:`computerTechnology`,[u.EspionageTechnology]:`espionageTechnology`,[u.WeaponsTechnology]:`weaponsTechnology`,[u.ShieldingTechnology]:`shieldingTechnology`,[u.ArmourTechnology]:`armourTechnology`,[u.Astrophysics]:`astrophysics`,[u.GravitonTechnology]:`gravitonTechnology`,[u.CombustionDrive]:`combustionDrive`,[u.ImpulseDrive]:`impulseDrive`,[u.HyperspaceDrive]:`hyperspaceDrive`,[u.DarkMatterTechnology]:`darkMatterTechnology`,[u.TerraformingTechnology]:`terraformingTechnology`,[u.PlanetDestructionTech]:`planetDestructionTech`},_={[i.Commander]:`commander`,[i.Admiral]:`admiral`,[i.Engineer]:`engineer`,[i.Geologist]:`geologist`,[i.Technocrat]:`technocrat`,[i.DarkMatterSpecialist]:`darkMatterSpecialist`};return{BUILDINGS:e(()=>{let e={};for(let[t,n]of Object.entries(o)){let r=t,i=p[r];e[r]={...n,name:f(`buildings.${i}`),description:f(`buildingDescriptions.${i}`)}}return e}),SHIPS:e(()=>{let e={};for(let[t,n]of Object.entries(a)){let r=t,i=m[r];e[r]={...n,name:f(`ships.${i}`),description:f(`shipDescriptions.${i}`)}}return e}),DEFENSES:e(()=>{let e={};for(let[t,n]of Object.entries(s)){let r=t,i=h[r];e[r]={...n,name:f(`defenses.${i}`),description:f(`defenseDescriptions.${i}`)}}return e}),TECHNOLOGIES:e(()=>{let e={};for(let[t,n]of Object.entries(l)){let r=t,i=g[r];e[r]={...n,name:f(`technologies.${i}`),description:f(`technologyDescriptions.${i}`)}}return e}),OFFICERS:e(()=>{let e={};for(let[t,n]of Object.entries(c)){let r=t,i=_[r];e[r]={...n,name:f(`officers.${i}`),description:f(`officerDescriptions.${i}`)}}return e})}};export{f as t};
import{on as e}from"./game-logic-BBFCPVtv.js";import{_ as t,d as n,f as r,h as i,l as a,n as o,r as s,s as c,u as l,v as u}from"./game-config-DRP-gbpS.js";import{X as d}from"./index-B4KMqZ_y.js";const f=()=>{let{t:f}=d(),p={[n.MetalMine]:`metalMine`,[n.CrystalMine]:`crystalMine`,[n.DeuteriumSynthesizer]:`deuteriumSynthesizer`,[n.SolarPlant]:`solarPlant`,[n.FusionReactor]:`fusionReactor`,[n.RoboticsFactory]:`roboticsFactory`,[n.NaniteFactory]:`naniteFactory`,[n.Shipyard]:`shipyard`,[n.ResearchLab]:`researchLab`,[n.MetalStorage]:`metalStorage`,[n.CrystalStorage]:`crystalStorage`,[n.DeuteriumTank]:`deuteriumTank`,[n.DarkMatterCollector]:`darkMatterCollector`,[n.DarkMatterTank]:`darkMatterTank`,[n.MissileSilo]:`missileSilo`,[n.Terraformer]:`terraformer`,[n.LunarBase]:`lunarBase`,[n.SensorPhalanx]:`sensorPhalanx`,[n.JumpGate]:`jumpGate`,[n.PlanetDestroyerFactory]:`planetDestroyerFactory`},m={[t.LightFighter]:`lightFighter`,[t.HeavyFighter]:`heavyFighter`,[t.Cruiser]:`cruiser`,[t.Battleship]:`battleship`,[t.Battlecruiser]:`battlecruiser`,[t.Bomber]:`bomber`,[t.Destroyer]:`destroyer`,[t.SmallCargo]:`smallCargo`,[t.LargeCargo]:`largeCargo`,[t.ColonyShip]:`colonyShip`,[t.Recycler]:`recycler`,[t.EspionageProbe]:`espionageProbe`,[t.SolarSatellite]:`solarSatellite`,[t.DarkMatterHarvester]:`darkMatterHarvester`,[t.Deathstar]:`deathstar`},h={[r.RocketLauncher]:`rocketLauncher`,[r.LightLaser]:`lightLaser`,[r.HeavyLaser]:`heavyLaser`,[r.GaussCannon]:`gaussCannon`,[r.IonCannon]:`ionCannon`,[r.PlasmaTurret]:`plasmaTurret`,[r.SmallShieldDome]:`smallShieldDome`,[r.LargeShieldDome]:`largeShieldDome`,[r.AntiBallisticMissile]:`antiBallisticMissile`,[r.InterplanetaryMissile]:`interplanetaryMissile`,[r.PlanetaryShield]:`planetaryShield`},g={[u.EnergyTechnology]:`energyTechnology`,[u.LaserTechnology]:`laserTechnology`,[u.IonTechnology]:`ionTechnology`,[u.HyperspaceTechnology]:`hyperspaceTechnology`,[u.PlasmaTechnology]:`plasmaTechnology`,[u.ComputerTechnology]:`computerTechnology`,[u.EspionageTechnology]:`espionageTechnology`,[u.WeaponsTechnology]:`weaponsTechnology`,[u.ShieldingTechnology]:`shieldingTechnology`,[u.ArmourTechnology]:`armourTechnology`,[u.Astrophysics]:`astrophysics`,[u.GravitonTechnology]:`gravitonTechnology`,[u.CombustionDrive]:`combustionDrive`,[u.ImpulseDrive]:`impulseDrive`,[u.HyperspaceDrive]:`hyperspaceDrive`,[u.DarkMatterTechnology]:`darkMatterTechnology`,[u.TerraformingTechnology]:`terraformingTechnology`,[u.PlanetDestructionTech]:`planetDestructionTech`},_={[i.Commander]:`commander`,[i.Admiral]:`admiral`,[i.Engineer]:`engineer`,[i.Geologist]:`geologist`,[i.Technocrat]:`technocrat`,[i.DarkMatterSpecialist]:`darkMatterSpecialist`};return{BUILDINGS:e(()=>{let e={};for(let[t,n]of Object.entries(o)){let r=t,i=p[r];e[r]={...n,name:f(`buildings.${i}`),description:f(`buildingDescriptions.${i}`)}}return e}),SHIPS:e(()=>{let e={};for(let[t,n]of Object.entries(a)){let r=t,i=m[r];e[r]={...n,name:f(`ships.${i}`),description:f(`shipDescriptions.${i}`)}}return e}),DEFENSES:e(()=>{let e={};for(let[t,n]of Object.entries(s)){let r=t,i=h[r];e[r]={...n,name:f(`defenses.${i}`),description:f(`defenseDescriptions.${i}`)}}return e}),TECHNOLOGIES:e(()=>{let e={};for(let[t,n]of Object.entries(l)){let r=t,i=g[r];e[r]={...n,name:f(`technologies.${i}`),description:f(`technologyDescriptions.${i}`)}}return e}),OFFICERS:e(()=>{let e={};for(let[t,n]of Object.entries(c)){let r=t,i=_[r];e[r]={...n,name:f(`officers.${i}`),description:f(`officerDescriptions.${i}`)}}return e})}};export{f as t};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import{Bn as e,Cn as t,Gn as n,Jt as r,Ln as i,Wn as a,an as o,fn as s,nn as c,un as l,wn as u}from"./game-logic-Bi1l7y4K.js";import{a as d,i as f,l as p,o as m,r as h,s as g,u as _}from"./vendor-others-DTUzJ7S-.js";var v=f?window:void 0,y=f?window.document:void 0;f&&window.navigator,f&&window.location;function b(e){let t=a(e);return t?.$el??t}function x(...e){let t=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),i=r(()=>{let t=p(a(e[0])).filter(e=>e!=null);return t.every(e=>typeof e!=`string`)?t:void 0});return _(()=>[i.value?.map(e=>b(e))??[v].filter(e=>e!=null),p(a(i.value?e[1]:e[0])),p(n(i.value?e[2]:e[1])),a(i.value?e[3]:e[2])],([e,n,r,i],a,o)=>{if(!e?.length||!n?.length||!r?.length)return;let s=m(i)?{...i}:i,c=e.flatMap(e=>n.flatMap(n=>r.map(r=>t(e,n,r,s))));o(()=>{c.forEach(e=>e())})},{flush:`post`})}function S(){let t=e(!1),n=c();return n&&s(()=>{t.value=!0},n),t}function C(e){let t=S();return r(()=>(t.value,!!e()))}var w=Symbol(`vueuse-ssr-width`);function T(){let e=o()?h(w,null):null;return typeof e==`number`?e:void 0}function E(t,n={}){let{window:i=v,ssrWidth:o=T()}=n,s=C(()=>i&&`matchMedia`in i&&typeof i.matchMedia==`function`),c=e(typeof o==`number`),l=e(),d=e(!1);return u(()=>{if(c.value){c.value=!s.value,d.value=a(t).split(`,`).some(e=>{let t=e.includes(`not all`),n=e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),r=e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),i=!!(n||r);return n&&i&&(i=o>=g(n[1])),r&&i&&(i=o<=g(r[1])),t?!i:i});return}s.value&&(l.value=i.matchMedia(a(t)),d.value=l.value.matches)}),x(l,`change`,e=>{d.value=e.matches},{passive:!0}),r(()=>d.value)}function D(e){return JSON.parse(JSON.stringify(e))}function O(e,n,a,o={}){var s,u;let{clone:f=!1,passive:p=!1,eventName:m,deep:h=!1,defaultValue:g,shouldEmit:_}=o,v=c(),y=a||v?.emit||(v==null||(s=v.$emit)==null?void 0:s.bind(v))||(v==null||(u=v.proxy)==null||(u=u.$emit)==null?void 0:u.bind(v?.proxy)),b=m;n||=`modelValue`,b||=`update:${n.toString()}`;let x=e=>f?typeof f==`function`?f(e):D(e):e,S=()=>d(e[n])?x(e[n]):g,C=e=>{_?_(e)&&y(b,e):y(b,e)};if(p){let r=i(S()),a=!1;return t(()=>e[n],e=>{a||(a=!0,r.value=x(e),l(()=>a=!1))}),t(r,t=>{!a&&(t!==e[n]||h)&&C(t)},{deep:h}),r}else return r({get(){return S()},set(e){C(e)}})}export{O as i,x as n,E as r,y as t};

View File

@@ -0,0 +1 @@
import{Fn as e,In as t,Qn as n,Sn as r,Yn as i,_n as a,mn as o,nr as s,on as c,rr as l,wn as u}from"./game-logic-BBFCPVtv.js";import{a as d,c as f,d as p,i as m,o as h,s as g,u as _}from"./vendor-others-Bce0hM6h.js";var v=d?window:void 0,y=d?window.document:void 0;d&&window.navigator,d&&window.location;function b(e){let t=s(e);return t?.$el??t}function x(...e){let t=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),n=c(()=>{let t=_(s(e[0])).filter(e=>e!=null);return t.every(e=>typeof e!=`string`)?t:void 0});return p(()=>[n.value?.map(e=>b(e))??[v].filter(e=>e!=null),_(s(n.value?e[1]:e[0])),_(l(n.value?e[2]:e[1])),s(n.value?e[3]:e[2])],([e,n,r,i],a,o)=>{if(!e?.length||!n?.length||!r?.length)return;let s=g(i)?{...i}:i,c=e.flatMap(e=>n.flatMap(n=>r.map(r=>t(e,n,r,s))));o(()=>{c.forEach(e=>e())})},{flush:`post`})}function S(){let e=n(!1),t=o();return t&&u(()=>{e.value=!0},t),e}function C(e){let t=S();return c(()=>(t.value,!!e()))}var w=Symbol(`vueuse-ssr-width`);function T(){let e=a()?m(w,null):null;return typeof e==`number`?e:void 0}function E(e,r={}){let{window:i=v,ssrWidth:a=T()}=r,o=C(()=>i&&`matchMedia`in i&&typeof i.matchMedia==`function`),l=n(typeof a==`number`),u=n(),d=n(!1);return t(()=>{if(l.value){l.value=!o.value,d.value=s(e).split(`,`).some(e=>{let t=e.includes(`not all`),n=e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),r=e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),i=!!(n||r);return n&&i&&(i=a>=f(n[1])),r&&i&&(i=a<=f(r[1])),t?!i:i});return}o.value&&(u.value=i.matchMedia(s(e)),d.value=u.value.matches)}),x(u,`change`,e=>{d.value=e.matches},{passive:!0}),c(()=>d.value)}function D(e){return JSON.parse(JSON.stringify(e))}function O(t,n,a,s={}){var l,u;let{clone:d=!1,passive:f=!1,eventName:p,deep:m=!1,defaultValue:g,shouldEmit:_}=s,v=o(),y=a||v?.emit||(v==null||(l=v.$emit)==null?void 0:l.bind(v))||(v==null||(u=v.proxy)==null||(u=u.$emit)==null?void 0:u.bind(v?.proxy)),b=p;n||=`modelValue`,b||=`update:${n.toString()}`;let x=e=>d?typeof d==`function`?d(e):D(e):e,S=()=>h(t[n])?x(t[n]):g,C=e=>{_?_(e)&&y(b,e):y(b,e)};if(f){let a=i(S()),o=!1;return e(()=>t[n],e=>{o||(o=!0,a.value=x(e),r(()=>o=!1))}),e(a,e=>{!o&&(e!==t[n]||m)&&C(e)},{deep:m}),a}else return c({get(){return S()},set(e){C(e)}})}export{O as i,x as n,E as r,y as t};