mirror of
https://github.com/setube/ogame-vue-ts.git
synced 2026-05-12 16:05:12 +08:00
feat: 初始化项目结构与核心功能
引入项目基础目录结构,包含多语言支持、主要页面与组件、核心游戏逻辑、UI 组件库、加密与本地持久化、自动化 Docker 构建流程、GitHub issue 模板(中英文)、README(中英文)、LICENSE 及开发配置文件。实现 OGame 单机版主要功能模块,为后续开发和扩展奠定基础。
This commit is contained in:
1
docs/assets/AlertDialog-BbpHh-RO.js
Normal file
1
docs/assets/AlertDialog-BbpHh-RO.js
Normal file
@@ -0,0 +1 @@
|
||||
import{An as e,Dn as t,Fn as n,Gn as r,Mn as i,Nn as a,Pn as o,Qn as s,bn as c,er as l,jn as u,kn as d,rr as f,sr as p,zt as m}from"./index-BpOElaf9.js";var h={key:0,class:`fixed inset-0 z-50 flex items-center justify-center`},g={class:`relative bg-card border rounded-lg shadow-lg p-6 max-w-md w-full mx-4 z-10`},_={class:`text-lg font-semibold mb-2`},v={class:`text-sm text-muted-foreground mb-6 whitespace-pre-line`},y={class:`flex justify-end gap-2`},b=n({__name:`AlertDialog`,setup(n,{expose:b}){let{t:x}=c(),S=l(!1),C=l(null),w=e=>{C.value=e,S.value=!0},T=()=>{C.value?.onConfirm&&C.value.onConfirm(),S.value=!1},E=()=>{S.value=!1};return b({show:w}),(n,c)=>(r(),e(t,{to:`body`},[S.value?(r(),i(`div`,h,[d(`div`,{class:`fixed inset-0 bg-black/50`,onClick:E}),d(`div`,g,[d(`h2`,_,p(C.value?.title),1),d(`p`,v,p(C.value?.message),1),d(`div`,y,[C.value?.onConfirm?(r(),e(f(m),{key:0,onClick:E,variant:`outline`},{default:s(()=>[a(p(f(x)(`common.cancel`)),1)]),_:1})):u(``,!0),o(f(m),{onClick:T,variant:`default`},{default:s(()=>[a(p(f(x)(`common.confirm`)),1)]),_:1})])])])):u(``,!0)]))}});export{b as t};
|
||||
1
docs/assets/BattleSimulatorView-DI2C9KJc.js
Normal file
1
docs/assets/BattleSimulatorView-DI2C9KJc.js
Normal file
File diff suppressed because one or more lines are too long
1
docs/assets/BuildingsView-B00w_iux.js
Normal file
1
docs/assets/BuildingsView-B00w_iux.js
Normal file
File diff suppressed because one or more lines are too long
1
docs/assets/CardDescription-Cb9v68Xa.js
Normal file
1
docs/assets/CardDescription-Cb9v68Xa.js
Normal file
@@ -0,0 +1 @@
|
||||
import{Bt as e,Fn as t,Gn as n,Jn as r,Mn as i,ir as a,rr as o}from"./index-BpOElaf9.js";var s=t({__name:`CardDescription`,props:{class:{}},setup(t){let s=t;return(t,c)=>(n(),i(`p`,{"data-slot":`card-description`,class:a(o(e)(`text-muted-foreground text-sm`,s.class))},[r(t.$slots,`default`)],2))}});export{s as t};
|
||||
2
docs/assets/CardUnlockOverlay-tiSNfyF3.js
Normal file
2
docs/assets/CardUnlockOverlay-tiSNfyF3.js
Normal file
@@ -0,0 +1,2 @@
|
||||
import{n as e}from"./UnlockRequirement-DeOUxO_t.js";import{Fn as t,Gn as n,Mn as r,Nn as i,On as a,Pn as o,Qn as s,bn as c,ct as l,er as u,jn as d,kn as f,rr as p,rt as m,sr as h,w as g,xn as _,zt as v}from"./index-BpOElaf9.js";import{t as y}from"./useGameConfig-DqswvIth.js";import{t as b}from"./AlertDialog-BbpHh-RO.js";var x={key:0,class:`absolute inset-0 z-10 bg-background/70 backdrop-blur-[2px] rounded-lg flex items-center justify-center`},S={class:`text-center p-4 space-y-2`},C={class:`flex justify-center`},w={class:`rounded-full bg-muted p-2`},T={class:`text-xs font-medium text-muted-foreground`},E=t({__name:`CardUnlockOverlay`,props:{requirements:{}},setup(t){let E=t,D=_(),{t:O}=c(),{BUILDINGS:k,TECHNOLOGIES:A}=y(),j=u(null),M=a(()=>!E.requirements||!D.currentPlanet?!0:g(D.currentPlanet,D.player.technologies,E.requirements)),N=()=>{if(!E.requirements||!D.currentPlanet)return``;let e=[];for(let[t,n]of Object.entries(E.requirements))if(Object.values(m).includes(t)){let r=t,i=D.currentPlanet.buildings[r]||0,a=k.value[r]?.name||r,o=i>=n?`✓`:`✗`;e.push(`${o} ${a}: Lv ${n} (${O(`common.current`)}: Lv ${i})`)}else if(Object.values(l).includes(t)){let r=t,i=D.player.technologies[r]||0,a=A.value[r]?.name||r,o=i>=n?`✓`:`✗`;e.push(`${o} ${a}: Lv ${n} (${O(`common.current`)}: Lv ${i})`)}return e.join(`
|
||||
`)},P=()=>{j.value?.show({title:O(`common.requirementsNotMet`),message:N()})};return(t,a)=>M.value?d(``,!0):(n(),r(`div`,x,[f(`div`,S,[f(`div`,C,[f(`div`,w,[o(p(e),{size:20,class:`text-muted-foreground`})])]),f(`p`,T,h(p(O)(`common.locked`)),1),o(p(v),{variant:`outline`,size:`sm`,onClick:P,class:`text-xs`},{default:s(()=>[i(h(p(O)(`common.viewRequirements`)),1)]),_:1})]),o(b,{ref_key:`requirementsDialog`,ref:j},null,512)]))}});export{E as t};
|
||||
1
docs/assets/DefenseView-4OcM0vVE.js
Normal file
1
docs/assets/DefenseView-4OcM0vVE.js
Normal file
File diff suppressed because one or more lines are too long
1
docs/assets/FleetView-DY7yR25i.js
Normal file
1
docs/assets/FleetView-DY7yR25i.js
Normal file
File diff suppressed because one or more lines are too long
1
docs/assets/GalaxyView-C-Ue9wLo.js
Normal file
1
docs/assets/GalaxyView-C-Ue9wLo.js
Normal file
File diff suppressed because one or more lines are too long
1
docs/assets/MessagesView-sKxpYFTS.js
Normal file
1
docs/assets/MessagesView-sKxpYFTS.js
Normal file
File diff suppressed because one or more lines are too long
1
docs/assets/OfficersView-D9JTCZE2.js
Normal file
1
docs/assets/OfficersView-D9JTCZE2.js
Normal file
File diff suppressed because one or more lines are too long
1
docs/assets/OverviewView-BBQfV6K0.js
Normal file
1
docs/assets/OverviewView-BBQfV6K0.js
Normal file
@@ -0,0 +1 @@
|
||||
import{t as e}from"./CardDescription-Cb9v68Xa.js";import{An as t,D as n,E as r,En as i,F as a,Fn as o,Gn as s,It as c,M as l,Mn as u,Nn as d,On as f,Pn as p,Pt as m,Qn as h,U as g,V as _,_t as v,bn as ee,dt as y,ft as b,gt as x,ht as S,ir as C,j as w,jn as T,kn as E,lt as D,mt as O,pt as te,qn as k,rr as A,sr as j,ut as M,vt as N,xn as P,zt as F}from"./index-BpOElaf9.js";import{t as I}from"./useGameConfig-DqswvIth.js";var L={key:0,class:`container mx-auto p-4 sm:p-6 space-y-4 sm:space-y-6`},R={class:`text-center`},z={class:`text-2xl sm:text-3xl font-bold mb-1 sm:mb-2 flex items-center justify-center gap-2`},B={class:`text-xs sm:text-sm text-muted-foreground`},V={key:0,class:`mt-2`},H={key:1,class:`mt-2`},U={class:`flex items-center gap-2`},W={class:`grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-3 sm:gap-4`},G={class:`text-xs sm:text-sm text-muted-foreground`},K={class:`text-lg sm:text-xl font-bold`},q=o({__name:`OverviewView`,setup(o){let q=P(),{t:J}=ee(),{SHIPS:Y}=I(),X=f(()=>q.currentPlanet),Z=f(()=>X.value?n(X.value,q.player.officers):null),Q=f(()=>X.value?r(X.value,q.player.officers):null),ne=f(()=>{if(!X.value)return 0;let e=a(q.player.officers,Date.now());return l(X.value,{energyProductionBonus:e.energyProductionBonus})}),re=f(()=>X.value?w(X.value):0),ie=[{key:`metal`},{key:`crystal`},{key:`deuterium`},{key:`darkMatter`},{key:`energy`}],$=f(()=>!X.value||X.value.isMoon?null:ae(X.value.id)),ae=e=>q.player.planets.find(t=>t.isMoon&&t.parentPlanetId===e)||null,oe=()=>{$.value&&(q.currentPlanetId=$.value.id)},se=()=>{X.value?.parentPlanetId&&(q.currentPlanetId=X.value.parentPlanetId)};return(n,r)=>X.value?(s(),u(`div`,L,[E(`div`,R,[E(`h1`,z,[d(j(X.value.name)+` `,1),X.value.isMoon?(s(),t(A(c),{key:0,variant:`secondary`},{default:h(()=>[d(j(A(J)(`planet.moon`)),1)]),_:1})):T(``,!0)]),E(`p`,B,j(A(J)(`planet.position`))+`: [`+j(X.value.position.galaxy)+`:`+j(X.value.position.system)+`:`+j(X.value.position.position)+`] `,1),!X.value.isMoon&&$.value?(s(),u(`div`,V,[p(A(F),{onClick:oe,variant:`outline`,size:`sm`},{default:h(()=>[r[0]||=E(`span`,{class:`mr-2`},`🌙`,-1),d(` `+j(A(J)(`planet.switchToMoon`)),1)]),_:1})])):T(``,!0),X.value.isMoon?(s(),u(`div`,H,[p(A(F),{onClick:se,variant:`outline`,size:`sm`},{default:h(()=>[d(j(A(J)(`planet.backToPlanet`)),1)]),_:1})])):T(``,!0)]),p(A(b),null,{default:h(()=>[p(A(M),null,{default:h(()=>[p(A(D),null,{default:h(()=>[d(j(A(J)(`overview.resourceOverview`)),1)]),_:1})]),_:1}),p(A(y),null,{default:h(()=>[p(A(N),null,{default:h(()=>[p(A(te),null,{default:h(()=>[p(A(S),null,{default:h(()=>[p(A(O),null,{default:h(()=>[d(j(A(J)(`common.resourceType`)),1)]),_:1}),p(A(O),{class:`text-right`},{default:h(()=>[d(j(A(J)(`resources.current`)),1)]),_:1}),p(A(O),{class:`text-right`},{default:h(()=>[d(j(A(J)(`resources.max`)),1)]),_:1}),p(A(O),{class:`text-right`},{default:h(()=>[d(j(A(J)(`resources.production`))+j(A(J)(`resources.perHour`)),1)]),_:1})]),_:1})]),_:1}),p(A(v),null,{default:h(()=>[(s(),u(i,null,k(ie,e=>p(A(S),{key:e.key},{default:h(()=>[p(A(x),{class:`font-medium`},{default:h(()=>[E(`div`,U,[p(m,{type:e.key,size:`sm`},null,8,[`type`]),d(` `+j(A(J)(`resources.${e.key}`)),1)])]),_:2},1024),e.key===`energy`?(s(),u(i,{key:0},[p(A(x),{class:C([`text-right`,X.value.resources[e.key]>=0?`text-green-600 dark:text-green-400`:`text-red-600 dark:text-red-400`])},{default:h(()=>[d(j(A(_)(X.value.resources[e.key])),1)]),_:2},1032,[`class`]),p(A(x),{class:`text-right text-muted-foreground`},{default:h(()=>[...r[1]||=[d(`-`,-1)]]),_:1}),p(A(x),{class:`text-right text-muted-foreground`},{default:h(()=>[d(j(A(_)(ne.value))+` / `+j(A(_)(re.value)),1)]),_:1})],64)):(s(),u(i,{key:1},[p(A(x),{class:C([`text-right`,A(g)(X.value.resources[e.key],Q.value?.[e.key]||1/0)])},{default:h(()=>[d(j(A(_)(X.value.resources[e.key])),1)]),_:2},1032,[`class`]),p(A(x),{class:`text-right text-muted-foreground`},{default:h(()=>[d(j(A(_)(Q.value?.[e.key]||0)),1)]),_:2},1024),p(A(x),{class:`text-right text-muted-foreground`},{default:h(()=>[d(j(A(_)(Z.value?.[e.key]||0)),1)]),_:2},1024)],64))]),_:2},1024)),64))]),_:1})]),_:1})]),_:1})]),_:1}),p(A(b),null,{default:h(()=>[p(A(M),null,{default:h(()=>[p(A(D),null,{default:h(()=>[d(j(A(J)(`overview.fleetInfo`)),1)]),_:1}),p(A(e),null,{default:h(()=>[d(j(A(J)(`overview.currentShips`)),1)]),_:1})]),_:1}),p(A(y),null,{default:h(()=>[E(`div`,W,[(s(!0),u(i,null,k(X.value.fleet,(e,t)=>(s(),u(`div`,{key:t},[E(`p`,G,j(A(Y)[t].name),1),E(`p`,K,j(e),1)]))),128))])]),_:1})]),_:1})])):T(``,!0)}});export{q as default};
|
||||
1
docs/assets/ResearchView-Do1WxfNH.js
Normal file
1
docs/assets/ResearchView-Do1WxfNH.js
Normal file
@@ -0,0 +1 @@
|
||||
import{t as e}from"./UnlockRequirement-DeOUxO_t.js";import{t}from"./CardDescription-Cb9v68Xa.js";import{An as n,En as r,Fn as i,Gn as a,It as o,Mn as s,Nn as c,On as l,Pn as u,Pt as d,Qn as f,V as p,W as m,Z as h,bn as ee,ct as te,dt as ne,er as re,ft as ie,ir as g,jn as _,kn as v,lt as ae,qn as oe,rr as y,rt as b,sr as x,ut as S,v as C,w,xn as T,y as E,yt as D,zt as O}from"./index-BpOElaf9.js";import{t as k}from"./useGameConfig-DqswvIth.js";import{t as A}from"./AlertDialog-BbpHh-RO.js";import{t as j}from"./CardUnlockOverlay-tiSNfyF3.js";var M={key:0,class:`container mx-auto p-4 sm:p-6`},N={class:`text-2xl sm:text-3xl font-bold mb-4 sm:mb-6`},P={class:`grid grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4`},F={class:`flex justify-between items-start gap-2`},I={class:`min-w-0 flex-1`},L={class:`space-y-2.5 sm:space-y-3`},se={class:`text-xs sm:text-sm space-y-1.5 sm:space-y-2`},R={class:`text-muted-foreground mb-1 sm:mb-2`},z={class:`space-y-1 sm:space-y-1.5`},B={class:`flex items-center gap-1.5 sm:gap-2`},V={class:`text-xs`},H={class:`flex items-center gap-1.5 sm:gap-2`},U={class:`text-xs`},W={class:`flex items-center gap-1.5 sm:gap-2`},G={class:`text-xs`},K=i({__name:`ResearchView`,setup(i){let K=T(),ce=D(),{t:q}=ee(),{TECHNOLOGIES:J}=k(),Y=l(()=>K.currentPlanet),X=l(()=>K.player),Z=re(null),le=e=>{if(!K.currentPlanet||!E(K.currentPlanet,e,K.player.technologies,K.player.researchQueue).valid)return!1;let t=K.player.technologies[e]||0,{queueItem:n}=C(K.currentPlanet,e,t,K.player.officers);return K.player.researchQueue.push(n),!0},ue=e=>{le(e)||Z.value?.show({title:q(`researchView.researchFailed`),message:q(`researchView.researchFailedMessage`)})},Q=e=>X.value.technologies[e]||0,de=e=>{if(!Y.value||X.value.researchQueue.length>0)return!1;let t=J.value[e],n=$(e,Q(e)+1);return w(Y.value,K.player.technologies,t.requirements)&&Y.value.resources.metal>=n.metal&&Y.value.resources.crystal>=n.crystal&&Y.value.resources.deuterium>=n.deuterium},$=(e,t)=>h(e,t);return(i,l)=>Y.value?(a(),s(`div`,M,[u(e,{"required-building":y(b).ResearchLab,"required-level":1},null,8,[`required-building`]),v(`h1`,N,x(y(q)(`researchView.title`)),1),v(`div`,P,[(a(!0),s(r,null,oe(Object.values(y(te)),e=>(a(),n(y(ie),{key:e,class:`relative`},{default:f(()=>[u(j,{requirements:y(J)[e].requirements},null,8,[`requirements`]),u(y(S),null,{default:f(()=>[v(`div`,F,[v(`div`,I,[u(y(ae),{class:`text-base sm:text-lg cursor-pointer hover:text-primary transition-colors`,onClick:t=>y(ce).openTechnology(e,Q(e))},{default:f(()=>[c(x(y(J)[e].name),1)]),_:2},1032,[`onClick`]),u(y(t),{class:`text-xs sm:text-sm`},{default:f(()=>[c(x(y(J)[e].description),1)]),_:2},1024)]),u(y(o),{variant:`secondary`,class:`text-xs whitespace-nowrap flex-shrink-0`},{default:f(()=>[c(`Lv `+x(Q(e)),1)]),_:2},1024)])]),_:2},1024),u(y(ne),null,{default:f(()=>[v(`div`,L,[v(`div`,se,[v(`p`,R,x(y(q)(`researchView.researchCost`))+`:`,1),v(`div`,z,[v(`div`,B,[u(d,{type:`metal`,size:`sm`}),v(`span`,V,x(y(q)(`resources.metal`))+`:`,1),v(`span`,{class:g([`font-medium text-xs sm:text-sm`,y(m)(Y.value.resources.metal,$(e,Q(e)+1).metal)])},x(y(p)($(e,Q(e)+1).metal)),3)]),v(`div`,H,[u(d,{type:`crystal`,size:`sm`}),v(`span`,U,x(y(q)(`resources.crystal`))+`:`,1),v(`span`,{class:g([`font-medium text-xs sm:text-sm`,y(m)(Y.value.resources.crystal,$(e,Q(e)+1).crystal)])},x(y(p)($(e,Q(e)+1).crystal)),3)]),v(`div`,W,[u(d,{type:`deuterium`,size:`sm`}),v(`span`,G,x(y(q)(`resources.deuterium`))+`:`,1),v(`span`,{class:g([`font-medium text-xs sm:text-sm`,y(m)(Y.value.resources.deuterium,$(e,Q(e)+1).deuterium)])},x(y(p)($(e,Q(e)+1).deuterium)),3)])])]),u(y(O),{onClick:t=>ue(e),disabled:!de(e),class:`w-full`},{default:f(()=>[c(x(y(q)(`researchView.research`)),1)]),_:1},8,[`onClick`,`disabled`])])]),_:2},1024)]),_:2},1024))),128))]),u(A,{ref_key:`alertDialog`,ref:Z},null,512)])):_(``,!0)}});export{K as default};
|
||||
1
docs/assets/SettingsView-IZn-5kW1.js
Normal file
1
docs/assets/SettingsView-IZn-5kW1.js
Normal file
File diff suppressed because one or more lines are too long
1
docs/assets/ShipyardView-BGb4XhA2.js
Normal file
1
docs/assets/ShipyardView-BGb4XhA2.js
Normal file
File diff suppressed because one or more lines are too long
1
docs/assets/UnlockRequirement-DeOUxO_t.js
Normal file
1
docs/assets/UnlockRequirement-DeOUxO_t.js
Normal file
@@ -0,0 +1 @@
|
||||
import{t as e}from"./CardDescription-Cb9v68Xa.js";import{At as t,Fn as n,Gn as r,It as i,Mn as a,Nn as o,On as s,Pn as c,Qn as l,bn as u,dt as d,ft as f,jn as p,jt as m,kn as h,lt as g,rr as _,sr as v,ut as y,wn as b,xn as x,zt as S}from"./index-BpOElaf9.js";import{t as C}from"./useGameConfig-DqswvIth.js";var w=m(`lock`,[[`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`}]]),T={key:0,class:`fixed inset-0 z-50 bg-background/80 backdrop-blur-sm flex items-center justify-center p-4`},E={class:`flex justify-center mb-4`},D={class:`rounded-full bg-muted p-4`},O={class:`p-4 bg-muted rounded-lg space-y-2`},k={class:`text-sm font-medium text-center`},A={class:`flex items-center justify-center gap-2`},j={class:`text-base sm:text-lg font-bold`},M={key:0,class:`text-xs text-center text-muted-foreground`},N={class:`flex gap-2`},P=n({__name:`UnlockRequirement`,props:{requiredBuilding:{},requiredLevel:{}},setup(n){let m=n,P=b(),F=x(),{t:I}=u(),{BUILDINGS:L}=C(),R=s(()=>L.value[m.requiredBuilding]?.name||m.requiredBuilding),z=s(()=>F.currentPlanet&&F.currentPlanet.buildings[m.requiredBuilding]||0),B=s(()=>z.value>=m.requiredLevel),V=()=>{P.push(`/buildings`)};return(s,u)=>B.value?p(``,!0):(r(),a(`div`,T,[c(_(f),{class:`max-w-md w-full`},{default:l(()=>[c(_(y),{class:`text-center`},{default:l(()=>[h(`div`,E,[h(`div`,D,[c(_(w),{size:48,class:`text-muted-foreground`})])]),c(_(g),{class:`text-xl sm:text-2xl`},{default:l(()=>[o(v(_(I)(`common.featureLocked`)),1)]),_:1}),c(_(e),{class:`text-sm sm:text-base`},{default:l(()=>[o(v(_(I)(`common.unlockRequired`)),1)]),_:1})]),_:1}),c(_(d),{class:`space-y-4`},{default:l(()=>[h(`div`,O,[h(`p`,k,v(_(I)(`common.requiredBuilding`))+`:`,1),h(`div`,A,[h(`span`,j,v(R.value),1),c(_(i),{variant:`default`},{default:l(()=>[o(`Lv `+v(n.requiredLevel),1)]),_:1})]),z.value===void 0?p(``,!0):(r(),a(`p`,M,v(_(I)(`common.currentLevel`))+`: Lv `+v(z.value),1))]),h(`div`,N,[c(_(S),{onClick:V,class:`flex-1`},{default:l(()=>[c(_(t),{size:16,class:`mr-2`}),o(` `+v(_(I)(`common.goToBuildings`)),1)]),_:1})])]),_:1})]),_:1})]))}});export{w as n,P as t};
|
||||
1
docs/assets/eye-BrZrKlSB.js
Normal file
1
docs/assets/eye-BrZrKlSB.js
Normal file
@@ -0,0 +1 @@
|
||||
import{jt as e}from"./index-BpOElaf9.js";var t=e(`eye`,[[`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`}]]);export{t};
|
||||
2
docs/assets/index-BXmZ_V9Y.css
Normal file
2
docs/assets/index-BXmZ_V9Y.css
Normal file
File diff suppressed because one or more lines are too long
53
docs/assets/index-BpOElaf9.js
Normal file
53
docs/assets/index-BpOElaf9.js
Normal file
File diff suppressed because one or more lines are too long
1
docs/assets/logo-Cz0cNqhe.svg
Normal file
1
docs/assets/logo-Cz0cNqhe.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 12 KiB |
1
docs/assets/shipValidation-BZIVAW1v.js
Normal file
1
docs/assets/shipValidation-BZIVAW1v.js
Normal file
@@ -0,0 +1 @@
|
||||
import{F as e,N as t,P as n,T as r,a as i,c as a,d as o,f as s,l as c,n as l,o as u,p as d,r as f,s as p,t as m,u as h}from"./index-BpOElaf9.js";const g=(e,n,r,i)=>{let a=u(n,r);return h(n,e.buildings,i)?t(e.resources,a)?{valid:!0}:{valid:!1,reason:`资源不足`}:{valid:!1,reason:`不满足前置条件`}},_=(t,r,a,o)=>{let c=u(r,a),l=i(r,a,e(o,Date.now()).buildingSpeedBonus);return n(t.resources,c),s(r,a,l)},v=(e,n,r,i)=>{let a=l(n,r);return p(n,e.buildings,i)?t(e.resources,a)?c(n,e.defense,r)?{valid:!0}:{valid:!1,reason:`护盾罩数量限制`}:{valid:!1,reason:`资源不足`}:{valid:!1,reason:`不满足前置条件`}},y=(t,r,i,a)=>{let s=l(r,i),c=m(r,i,e(a,Date.now()).buildingSpeedBonus);return n(t.resources,s),o(r,i,c)},b=(t,n,i,o,s=0)=>{let c=e(o,Date.now());if(s>=r(c.additionalFleetSlots))return{valid:!1,reason:`舰队任务槽位已满`};if(!a(t.fleet,n))return{valid:!1,reason:`舰队数量不足`};let l=f(n,c.fuelConsumptionReduction,i);return t.resources.deuterium<l?{valid:!1,reason:`燃料不足`,fuelNeeded:l}:{valid:!0,fuelNeeded:l}},x=(e,t,r,i,a)=>{d(e.fleet,t),e.resources.deuterium-=r,i&&n(e.resources,a)};export{b as a,v as i,x as n,g as o,_ as r,y as t};
|
||||
1
docs/assets/useGameConfig-DqswvIth.js
Normal file
1
docs/assets/useGameConfig-DqswvIth.js
Normal file
@@ -0,0 +1 @@
|
||||
import{$ as e,On as t,Q as n,bn as r,ct as i,et as a,it as o,nt as s,ot as c,rt as l,st as u,tt as d}from"./index-BpOElaf9.js";const f=()=>{let{t:f}=r(),p={[l.MetalMine]:`metalMine`,[l.CrystalMine]:`crystalMine`,[l.DeuteriumSynthesizer]:`deuteriumSynthesizer`,[l.SolarPlant]:`solarPlant`,[l.RoboticsFactory]:`roboticsFactory`,[l.NaniteFactory]:`naniteFactory`,[l.Shipyard]:`shipyard`,[l.ResearchLab]:`researchLab`,[l.MetalStorage]:`metalStorage`,[l.CrystalStorage]:`crystalStorage`,[l.DeuteriumTank]:`deuteriumTank`,[l.DarkMatterCollector]:`darkMatterCollector`,[l.LunarBase]:`lunarBase`,[l.SensorPhalanx]:`sensorPhalanx`,[l.JumpGate]:`jumpGate`},m={[u.LightFighter]:`lightFighter`,[u.HeavyFighter]:`heavyFighter`,[u.Cruiser]:`cruiser`,[u.Battleship]:`battleship`,[u.SmallCargo]:`smallCargo`,[u.LargeCargo]:`largeCargo`,[u.ColonyShip]:`colonyShip`,[u.Recycler]:`recycler`,[u.EspionageProbe]:`espionageProbe`,[u.DarkMatterHarvester]:`darkMatterHarvester`},h={[o.RocketLauncher]:`rocketLauncher`,[o.LightLaser]:`lightLaser`,[o.HeavyLaser]:`heavyLaser`,[o.GaussCannon]:`gaussCannon`,[o.IonCannon]:`ionCannon`,[o.PlasmaTurret]:`plasmaTurret`,[o.SmallShieldDome]:`smallShieldDome`,[o.LargeShieldDome]:`largeShieldDome`},g={[i.EnergyTechnology]:`energyTechnology`,[i.LaserTechnology]:`laserTechnology`,[i.IonTechnology]:`ionTechnology`,[i.HyperspaceTechnology]:`hyperspaceTechnology`,[i.PlasmaTechnology]:`plasmaTechnology`,[i.ComputerTechnology]:`computerTechnology`,[i.CombustionDrive]:`combustionDrive`,[i.ImpulseDrive]:`impulseDrive`,[i.HyperspaceDrive]:`hyperspaceDrive`,[i.DarkMatterTechnology]:`darkMatterTechnology`},_={[c.Commander]:`commander`,[c.Admiral]:`admiral`,[c.Engineer]:`engineer`,[c.Geologist]:`geologist`,[c.Technocrat]:`technocrat`,[c.DarkMatterSpecialist]:`darkMatterSpecialist`};return{BUILDINGS:t(()=>{let e={};for(let[t,r]of Object.entries(n)){let n=t,i=p[n];e[n]={...r,name:f(`buildings.${i}`),description:f(`buildingDescriptions.${i}`)}}return e}),SHIPS:t(()=>{let e={};for(let[t,n]of Object.entries(d)){let r=t,i=m[r];e[r]={...n,name:f(`ships.${i}`),description:f(`shipDescriptions.${i}`)}}return e}),DEFENSES:t(()=>{let t={};for(let[n,r]of Object.entries(e)){let e=n,i=h[e];t[e]={...r,name:f(`defenses.${i}`),description:f(`defenseDescriptions.${i}`)}}return t}),TECHNOLOGIES:t(()=>{let e={};for(let[t,n]of Object.entries(s)){let r=t,i=g[r];e[r]={...n,name:f(`technologies.${i}`),description:f(`technologyDescriptions.${i}`)}}return e}),OFFICERS:t(()=>{let e={};for(let[t,n]of Object.entries(a)){let r=t,i=_[r];e[r]={...n,name:f(`officers.${i}`),description:f(`officerDescriptions.${i}`)}}return e})}};export{f as t};
|
||||
Reference in New Issue
Block a user