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
6.1 KiB
JavaScript
1 line
6.1 KiB
JavaScript
import{t as e}from"./UnlockRequirement-DeOUxO_t.js";import{t}from"./CardDescription-Cb9v68Xa.js";import{An as n,En as r,Fn as ee,G as i,Gn as a,K as te,Mn as o,Nn as s,On as ne,Pn as c,Pt as l,Qn as u,V as d,W as f,bn as re,dt as p,er as m,ft as h,ir as g,jn as _,kn as v,lt as ie,qn as ae,rr as y,rt as oe,sr as b,st as x,ut as S,w as C,xn as w,yt as T,zt as E}from"./index-BpOElaf9.js";import{t as D}from"./useGameConfig-DqswvIth.js";import{t as O}from"./AlertDialog-BbpHh-RO.js";import{t as k}from"./CardUnlockOverlay-tiSNfyF3.js";import{o as A,r as j}from"./shipValidation-BZIVAW1v.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 sm:grid-cols-3 gap-3 sm:gap-4`},F={class:`space-y-3 sm:space-y-4`},I={class:`grid grid-cols-2 gap-2 text-xs sm:text-sm`},L={class:`text-muted-foreground`},R={class:`font-medium`},z={class:`text-muted-foreground`},B={class:`font-medium`},V={class:`text-muted-foreground`},H={class:`font-medium`},U={class:`text-muted-foreground`},se={class:`font-medium`},W={class:`text-xs sm:text-sm space-y-1.5 sm:space-y-2`},G={class:`text-muted-foreground mb-1 sm:mb-2`},K={class:`space-y-1 sm:space-y-1.5`},ce={class:`flex items-center gap-1.5 sm:gap-2`},le={class:`text-xs`},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:`space-y-2`},he={key:0,class:`text-xs sm:text-sm space-y-1.5 sm:space-y-2 p-2.5 sm:p-3 bg-muted rounded-lg`},ge={class:`font-medium text-muted-foreground`},_e={class:`space-y-1 sm:space-y-1.5`},ve={class:`flex items-center gap-1.5 sm:gap-2`},ye={class:`text-xs`},be={class:`flex items-center gap-1.5 sm:gap-2`},xe={class:`text-xs`},Se={class:`flex items-center gap-1.5 sm:gap-2`},Ce={class:`text-xs`},q=ee({__name:`ShipyardView`,setup(ee){let q=w(),we=T(),{t:J}=re(),{SHIPS:Y}=D(),X=ne(()=>q.currentPlanet),Z=m(null),Q=m({[x.LightFighter]:0,[x.HeavyFighter]:0,[x.Cruiser]:0,[x.Battleship]:0,[x.SmallCargo]:0,[x.LargeCargo]:0,[x.ColonyShip]:0,[x.Recycler]:0,[x.EspionageProbe]:0,[x.DarkMatterHarvester]:0}),Te=(e,t)=>{if(!q.currentPlanet||!A(q.currentPlanet,e,t,q.player.technologies).valid)return!1;let n=j(q.currentPlanet,e,t,q.player.officers);return q.currentPlanet.buildQueue.push(n),!0},Ee=e=>{let t=Q.value[e];if(t<=0){Z.value?.show({title:J(`shipyardView.inputError`),message:J(`shipyardView.inputErrorMessage`)});return}Te(e,t)?Q.value[e]=0:Z.value?.show({title:J(`shipyardView.buildFailed`),message:J(`shipyardView.buildFailedMessage`)})},De=e=>{if(!X.value)return!1;let t=Q.value[e];if(t<=0)return!1;let n=Y.value[e],r={metal:n.cost.metal*t,crystal:n.cost.crystal*t,deuterium:n.cost.deuterium*t};return C(X.value,q.player.technologies,n.requirements)&&X.value.resources.metal>=r.metal&&X.value.resources.crystal>=r.crystal&&X.value.resources.deuterium>=r.deuterium},$=e=>{let t=Q.value[e],n=Y.value[e];return{metal:n.cost.metal*t,crystal:n.cost.crystal*t,deuterium:n.cost.deuterium*t}};return(ee,ne)=>X.value?(a(),o(`div`,M,[c(e,{"required-building":y(oe).Shipyard,"required-level":1},null,8,[`required-building`]),v(`h1`,N,b(y(J)(`shipyardView.title`)),1),v(`div`,P,[(a(!0),o(r,null,ae(Object.values(y(x)),e=>(a(),n(y(h),{key:e,class:`relative`},{default:u(()=>[c(k,{requirements:y(Y)[e].requirements},null,8,[`requirements`]),c(y(S),null,{default:u(()=>[c(y(ie),{class:`text-base sm:text-lg cursor-pointer hover:text-primary transition-colors`,onClick:t=>y(we).openShip(e)},{default:u(()=>[s(b(y(Y)[e].name),1)]),_:2},1032,[`onClick`]),c(y(t),{class:`text-xs sm:text-sm`},{default:u(()=>[s(b(y(Y)[e].description),1)]),_:2},1024)]),_:2},1024),c(y(p),null,{default:u(()=>[v(`div`,F,[v(`div`,I,[v(`div`,null,[v(`p`,L,b(y(J)(`shipyardView.attack`)),1),v(`p`,R,b(y(Y)[e].attack),1)]),v(`div`,null,[v(`p`,z,b(y(J)(`shipyardView.shield`)),1),v(`p`,B,b(y(Y)[e].shield),1)]),v(`div`,null,[v(`p`,V,b(y(J)(`shipyardView.speed`)),1),v(`p`,H,b(y(Y)[e].speed),1)]),v(`div`,null,[v(`p`,U,b(y(J)(`shipyardView.cargoCapacity`)),1),v(`p`,se,b(y(d)(y(Y)[e].cargoCapacity)),1)])]),v(`div`,W,[v(`p`,G,b(y(J)(`shipyardView.unitCost`))+`:`,1),v(`div`,K,[v(`div`,ce,[c(l,{type:`metal`,size:`sm`}),v(`span`,le,b(y(J)(`resources.metal`))+`:`,1),v(`span`,{class:g([`font-medium text-xs sm:text-sm`,y(f)(X.value.resources.metal,y(Y)[e].cost.metal)])},b(y(d)(y(Y)[e].cost.metal)),3)]),v(`div`,ue,[c(l,{type:`crystal`,size:`sm`}),v(`span`,de,b(y(J)(`resources.crystal`))+`:`,1),v(`span`,{class:g([`font-medium text-xs sm:text-sm`,y(f)(X.value.resources.crystal,y(Y)[e].cost.crystal)])},b(y(d)(y(Y)[e].cost.crystal)),3)]),v(`div`,fe,[c(l,{type:`deuterium`,size:`sm`}),v(`span`,pe,b(y(J)(`resources.deuterium`))+`:`,1),v(`span`,{class:g([`font-medium text-xs sm:text-sm`,y(f)(X.value.resources.deuterium,y(Y)[e].cost.deuterium)])},b(y(d)(y(Y)[e].cost.deuterium)),3)])])]),v(`div`,me,[c(y(i),{for:`quantity-${e}`,class:`text-xs sm:text-sm`},{default:u(()=>[s(b(y(J)(`shipyardView.buildQuantity`)),1)]),_:1},8,[`for`]),c(y(te),{id:`quantity-${e}`,modelValue:Q.value[e],"onUpdate:modelValue":t=>Q.value[e]=t,modelModifiers:{number:!0},type:`number`,min:`0`,placeholder:`0`,class:`text-sm`},null,8,[`id`,`modelValue`,`onUpdate:modelValue`])]),Q.value[e]>0?(a(),o(`div`,he,[v(`p`,ge,b(y(J)(`shipyardView.totalCost`))+`:`,1),v(`div`,_e,[v(`div`,ve,[c(l,{type:`metal`,size:`sm`}),v(`span`,ye,b(y(J)(`resources.metal`))+`:`,1),v(`span`,{class:g([`font-medium text-xs sm:text-sm`,y(f)(X.value.resources.metal,$(e).metal)])},b(y(d)($(e).metal)),3)]),v(`div`,be,[c(l,{type:`crystal`,size:`sm`}),v(`span`,xe,b(y(J)(`resources.crystal`))+`:`,1),v(`span`,{class:g([`font-medium text-xs sm:text-sm`,y(f)(X.value.resources.crystal,$(e).crystal)])},b(y(d)($(e).crystal)),3)]),v(`div`,Se,[c(l,{type:`deuterium`,size:`sm`}),v(`span`,Ce,b(y(J)(`resources.deuterium`))+`:`,1),v(`span`,{class:g([`font-medium text-xs sm:text-sm`,y(f)(X.value.resources.deuterium,$(e).deuterium)])},b(y(d)($(e).deuterium)),3)])])])):_(``,!0),c(y(E),{onClick:t=>Ee(e),disabled:!De(e),class:`w-full`},{default:u(()=>[s(b(y(J)(`shipyardView.build`)),1)]),_:1},8,[`onClick`,`disabled`])])]),_:2},1024)]),_:2},1024))),128))]),c(O,{ref_key:`alertDialog`,ref:Z},null,512)])):_(``,!0)}});export{q as default}; |