mirror of
https://github.com/setube/ogame-vue-ts.git
synced 2026-05-11 23:45:11 +08:00
引入项目基础目录结构,包含多语言支持、主要页面与组件、核心游戏逻辑、UI 组件库、加密与本地持久化、自动化 Docker 构建流程、GitHub issue 模板(中英文)、README(中英文)、LICENSE 及开发配置文件。实现 OGame 单机版主要功能模块,为后续开发和扩展奠定基础。
1 line
5.4 KiB
JavaScript
1 line
5.4 KiB
JavaScript
import{t as e}from"./CardDescription-Cb9v68Xa.js";import{An as t,C as n,En as r,Fn as ee,Gn as i,H as a,It as te,J as ne,Mn as o,Nn as s,On as c,Pn as l,Pt as u,Qn as d,S as re,V as f,W as p,X as m,Y as h,b as g,bn as ie,dt as ae,er as oe,ft as se,ir as _,jn as v,jt as y,kn as b,lt as x,q as S,qn as C,rr as w,rt as T,sr as E,ut as D,x as O,xn as k,yt as A,zt as j}from"./index-BpOElaf9.js";import{t as M}from"./useGameConfig-DqswvIth.js";import{t as N}from"./AlertDialog-BbpHh-RO.js";var P=y(`clock`,[[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}],[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),F=y(`grid-3x3`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M3 15h18`,key:`5xshup`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}]]),I={key:0,class:`container mx-auto p-4 sm:p-6`},L={class:`flex justify-between items-center mb-4 sm:mb-6 gap-2`},R={class:`text-2xl sm:text-3xl font-bold`},z={class:`text-xs sm:text-sm`},B={class:`flex items-center gap-1.5 text-muted-foreground`},V={class:`grid grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4`},H={class:`flex justify-between items-start gap-2`},U={class:`min-w-0 flex-1`},W={class:`space-y-3`},ce={class:`text-xs sm:text-sm space-y-1.5 sm:space-y-2`},G={class:`text-muted-foreground mb-1 sm:mb-2`},le={class:`space-y-1 sm:space-y-1.5`},ue={class:`flex items-center gap-1.5 sm:gap-2`},de={class:`text-xs`},fe={class:`flex items-center gap-1.5 sm:gap-2`},pe={class:`text-xs`},me={class:`flex items-center gap-1.5 sm:gap-2`},he={class:`text-xs`},ge={class:`text-xs sm:text-sm space-y-0.5 sm:space-y-1`},_e={class:`flex items-center gap-1.5 text-muted-foreground`},ve={class:`flex items-center gap-1.5 text-muted-foreground`},ye={key:1,class:`text-xs text-muted-foreground`},be={class:`flex gap-2 flex-wrap`},K=ee({__name:`BuildingsView`,setup(ee){let y=k(),K=A(),{t:q}=ie(),{BUILDINGS:J}=M(),Y=c(()=>y.currentPlanet),X=oe(null),xe=c(()=>Y.value?Object.values(T).filter(e=>{let t=J.value[e];return Y.value.isMoon?t.moonOnly===!0:t.moonOnly!==!0}):[]),Se=e=>{if(!y.currentPlanet||!n(y.currentPlanet,e,y.player.technologies,y.player.officers).valid)return!1;let t=O(y.currentPlanet,e,y.player.officers);return y.currentPlanet.buildQueue.push(t),!0},Ce=e=>m(e),we=e=>{Se(e)||X.value?.show({title:q(`buildingsView.upgradeFailed`),message:q(`buildingsView.upgradeFailedMessage`)})},Z=e=>Y.value?.buildings[e]||0,Te=e=>{if(!Y.value||Y.value.buildQueue.length>0)return!1;let t=Q(e,Z(e)+1);return Y.value.resources.metal>=t.metal&&Y.value.resources.crystal>=t.crystal&&Y.value.resources.deuterium>=t.deuterium},Q=(e,t)=>S(e,t),Ee=(e,t)=>ne(e,t),De=e=>{if(!y.currentPlanet||!re(y.currentPlanet,e,y.player.officers).valid)return!1;let t=g(y.currentPlanet,e,y.player.officers);return y.currentPlanet.buildQueue.push(t),!0},Oe=e=>{De(e)||X.value?.show({title:q(`buildingsView.demolishFailed`),message:q(`buildingsView.demolishFailedMessage`)})},ke=e=>!Y.value||Y.value.buildQueue.length>0?!1:Z(e)>0,$=e=>h(e,Z(e));return(n,ee)=>Y.value?(i(),o(`div`,I,[b(`div`,L,[b(`h1`,R,E(w(q)(`buildingsView.title`)),1),b(`div`,z,[b(`span`,B,[l(w(F),{size:14}),s(` `+E(Ce(Y.value))+` / `+E(Y.value.maxSpace),1)])])]),b(`div`,V,[(i(!0),o(r,null,C(xe.value,n=>(i(),t(w(se),{key:n},{default:d(()=>[l(w(D),null,{default:d(()=>[b(`div`,H,[b(`div`,U,[l(w(x),{class:`text-base sm:text-lg cursor-pointer hover:text-primary transition-colors`,onClick:e=>w(K).openBuilding(n,Z(n))},{default:d(()=>[s(E(w(J)[n].name),1)]),_:2},1032,[`onClick`]),l(w(e),{class:`text-xs sm:text-sm`},{default:d(()=>[s(E(w(J)[n].description),1)]),_:2},1024)]),l(w(te),{variant:`secondary`,class:`text-xs whitespace-nowrap flex-shrink-0`},{default:d(()=>[s(`Lv `+E(Z(n)),1)]),_:2},1024)])]),_:2},1024),l(w(ae),null,{default:d(()=>[b(`div`,W,[b(`div`,ce,[b(`p`,G,E(w(q)(`buildingsView.upgradeCost`))+`:`,1),b(`div`,le,[b(`div`,ue,[l(u,{type:`metal`,size:`sm`}),b(`span`,de,E(w(q)(`resources.metal`))+`:`,1),b(`span`,{class:_([`font-medium text-xs sm:text-sm`,w(p)(Y.value.resources.metal,Q(n,Z(n)+1).metal)])},E(w(f)(Q(n,Z(n)+1).metal)),3)]),b(`div`,fe,[l(u,{type:`crystal`,size:`sm`}),b(`span`,pe,E(w(q)(`resources.crystal`))+`:`,1),b(`span`,{class:_([`font-medium text-xs sm:text-sm`,w(p)(Y.value.resources.crystal,Q(n,Z(n)+1).crystal)])},E(w(f)(Q(n,Z(n)+1).crystal)),3)]),b(`div`,me,[l(u,{type:`deuterium`,size:`sm`}),b(`span`,he,E(w(q)(`resources.deuterium`))+`:`,1),b(`span`,{class:_([`font-medium text-xs sm:text-sm`,w(p)(Y.value.resources.deuterium,Q(n,Z(n)+1).deuterium)])},E(w(f)(Q(n,Z(n)+1).deuterium)),3)])])]),b(`div`,ge,[b(`div`,_e,[l(w(P),{size:14,class:`flex-shrink-0`}),b(`span`,null,E(w(a)(Ee(n,Z(n)+1))),1)]),b(`div`,ve,[l(w(F),{size:14,class:`flex-shrink-0`}),b(`span`,null,E(w(J)[n].spaceUsage),1)])]),l(w(j),{onClick:e=>we(n),disabled:!Te(n),class:`w-full`},{default:d(()=>[s(E(w(q)(`buildingsView.upgrade`)),1)]),_:1},8,[`onClick`,`disabled`]),Z(n)>0?(i(),t(w(j),{key:0,onClick:e=>Oe(n),disabled:!ke(n),variant:`destructive`,class:`w-full`},{default:d(()=>[s(E(w(q)(`buildingsView.demolish`)),1)]),_:1},8,[`onClick`,`disabled`])):v(``,!0),Z(n)>0?(i(),o(`div`,ye,[b(`p`,null,E(w(q)(`buildingsView.demolishRefund`))+`:`,1),b(`div`,be,[b(`span`,null,E(w(f)($(n).metal))+` `+E(w(q)(`resources.metal`)),1),b(`span`,null,E(w(f)($(n).crystal))+` `+E(w(q)(`resources.crystal`)),1),b(`span`,null,E(w(f)($(n).deuterium))+` `+E(w(q)(`resources.deuterium`)),1)])])):v(``,!0)])]),_:2},1024)]),_:2},1024))),128))]),l(N,{ref_key:`alertDialog`,ref:X},null,512)])):v(``,!0)}});export{K as default}; |