mirror of
https://github.com/setube/ogame-vue-ts.git
synced 2026-05-11 23:45:11 +08:00
添加了docs目录及其静态资源文件,支持前端文档和演示页面部署。新增dist-electron/main.js,实现Electron主进程窗口加载本地docs或开发服务器。更新.gitignore,允许docs目录纳入版本控制。
1 line
7.4 KiB
JavaScript
1 line
7.4 KiB
JavaScript
import{At as e,Cn as t,Ct as n,Dn as r,Dt as i,Et as a,Jt as ee,Kt as o,Mt as s,N as c,Nt as l,On as u,Ot as d,Tn as f,c as p,hn as m,in as h,jt as g,kt as _,o as te,r as ne,s as re}from"./game-logic-CfBcTF_c.js";import"./vendor-pinia-DP9x75p8.js";import"./vendor-vue-router-CWDMmE-U.js";import"./vendor-crypto-Ce_BCn-h.js";import"./game-i18n-DEf7ySVe.js";import"./vendor-others-CUjrprN5.js";import"./vendor-reka-ui-CZQh7FLl.js";import"./vendor-utils-Dg-HLkEU.js";import"./vendor-vueuse-C7EbLx--.js";import"./vendor-icons-W6Ny__75.js";import{t as ie}from"./CardDescription-D2AN1hhX.js";import{m as v,u as ae}from"./game-config-D-D7cMgJ.js";import{I as oe,M as se,O as ce,P as le,_ as ue,c as y,l as b,o as x,r as S,s as C,t as w,u as T,w as E}from"./index-DWmvUlvu.js";import{t as D}from"./useGameConfig-B5wf1i8i.js";import{t as O}from"./AlertDialog-CiXBEnQ0.js";import{t as k}from"./CardUnlockOverlay-BA1LyGjd.js";import{t as A}from"./UnlockRequirement-c2kDZKZ0.js";var j={key:0,class:`container mx-auto p-4 sm:p-6`},M={class:`text-2xl sm:text-3xl font-bold mb-4 sm:mb-6`},N={class:`mb-4 sm:mb-6 p-3 sm:p-4 bg-muted/50 rounded-lg border`},P={class:`flex items-center justify-between`},F={class:`text-sm sm:text-base font-medium`},I={class:`text-sm sm:text-base font-bold`},L={class:`mt-2`},R={class:`w-full bg-background rounded-full h-2.5 sm:h-3 overflow-hidden`},z={class:`grid grid-cols-2 sm:grid-cols-3 gap-3 sm:gap-4`},B={class:`space-y-3 sm:space-y-4`},V={class:`grid grid-cols-2 gap-2 text-xs sm:text-sm`},H={class:`text-muted-foreground`},U={class:`font-medium`},de={class:`text-muted-foreground`},fe={class:`font-medium`},pe={class:`text-muted-foreground`},me={class:`font-medium`},he={class:`text-muted-foreground`},ge={class:`font-medium`},_e={class:`text-xs sm:text-sm space-y-1.5 sm:space-y-2`},ve={class:`text-muted-foreground mb-1 sm:mb-2`},ye={class:`space-y-1 sm:space-y-1.5`},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`},we={class:`flex items-center gap-1.5 sm:gap-2`},Te={class:`text-xs`},Ee={class:`space-y-2`},De={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`},Oe={class:`font-medium text-muted-foreground`},ke={class:`space-y-1 sm:space-y-1.5`},Ae={class:`flex items-center gap-1.5 sm:gap-2`},je={class:`text-xs`},Me={class:`flex items-center gap-1.5 sm:gap-2`},Ne={class:`text-xs`},Pe={class:`flex items-center gap-1.5 sm:gap-2`},Fe={class:`text-xs`},W=l({__name:`ShipyardView`,setup(l){let W=oe(),G=ue(),{t:K}=le(),{SHIPS:q}=D(),J=a(()=>W.currentPlanet),Y=m(null),X=a(()=>J.value?re(J.value.fleet):0),Z=a(()=>J.value?p(J.value,W.player.technologies):0),Q=m({[v.LightFighter]:0,[v.HeavyFighter]:0,[v.Cruiser]:0,[v.Battleship]:0,[v.SmallCargo]:0,[v.LargeCargo]:0,[v.ColonyShip]:0,[v.Recycler]:0,[v.EspionageProbe]:0,[v.DarkMatterHarvester]:0,[v.Deathstar]:0}),Ie=(e,t)=>{if(!W.currentPlanet||!te(W.currentPlanet,e,t,W.player.technologies).valid)return!1;let n=ne(W.currentPlanet,e,t,W.player.officers);return W.currentPlanet.buildQueue.push(n),!0},Le=e=>{let t=Q.value[e];if(t<=0){Y.value?.show({title:K(`shipyardView.inputError`),message:K(`shipyardView.inputErrorMessage`)});return}Ie(e,t)?Q.value[e]=0:Y.value?.show({title:K(`shipyardView.buildFailed`),message:K(`shipyardView.buildFailedMessage`)})},Re=e=>{if(!J.value)return!1;let t=Q.value[e];if(t<=0)return!1;let n=q.value[e],r={metal:n.cost.metal*t,crystal:n.cost.crystal*t,deuterium:n.cost.deuterium*t};return c(J.value,W.player.technologies,n.requirements)&&J.value.resources.metal>=r.metal&&J.value.resources.crystal>=r.crystal&&J.value.resources.deuterium>=r.deuterium},$=e=>{let t=Q.value[e],n=q.value[e];return{metal:n.cost.metal*t,crystal:n.cost.crystal*t,deuterium:n.cost.deuterium*t}};return(a,c)=>J.value?(o(),e(`div`,j,[s(A,{"required-building":t(ae).Shipyard,"required-level":1},null,8,[`required-building`]),i(`h1`,M,u(t(K)(`shipyardView.title`)),1),i(`div`,N,[i(`div`,P,[i(`div`,F,u(t(K)(`shipyardView.fleetStorage`))+`:`,1),i(`div`,I,[i(`span`,{class:f(X.value>Z.value?`text-destructive`:`text-primary`)},u(t(S)(X.value)),3),c[0]||=i(`span`,{class:`text-muted-foreground mx-1`},`/`,-1),i(`span`,null,u(t(S)(Z.value)),1)])]),i(`div`,L,[i(`div`,R,[i(`div`,{class:f([`h-full transition-all duration-300`,X.value>Z.value?`bg-destructive`:`bg-primary`]),style:r({width:`${Math.min(X.value/Z.value*100,100)}%`})},null,6)])])]),i(`div`,z,[(o(!0),e(n,null,ee(Object.values(t(v)),n=>(o(),d(t(T),{key:n,class:`relative`},{default:h(()=>[s(k,{requirements:t(q)[n].requirements},null,8,[`requirements`]),s(t(y),null,{default:h(()=>[s(t(C),{class:`text-base sm:text-lg cursor-pointer hover:text-primary transition-colors`,onClick:e=>t(G).openShip(n)},{default:h(()=>[g(u(t(q)[n].name),1)]),_:2},1032,[`onClick`]),s(t(ie),{class:`text-xs sm:text-sm`},{default:h(()=>[g(u(t(q)[n].description),1)]),_:2},1024)]),_:2},1024),s(t(b),null,{default:h(()=>[i(`div`,B,[i(`div`,V,[i(`div`,null,[i(`p`,H,u(t(K)(`shipyardView.attack`)),1),i(`p`,U,u(t(q)[n].attack),1)]),i(`div`,null,[i(`p`,de,u(t(K)(`shipyardView.shield`)),1),i(`p`,fe,u(t(q)[n].shield),1)]),i(`div`,null,[i(`p`,pe,u(t(K)(`shipyardView.speed`)),1),i(`p`,me,u(t(q)[n].speed),1)]),i(`div`,null,[i(`p`,he,u(t(K)(`shipyardView.cargoCapacity`)),1),i(`p`,ge,u(t(S)(t(q)[n].cargoCapacity)),1)])]),i(`div`,_e,[i(`p`,ve,u(t(K)(`shipyardView.unitCost`))+`:`,1),i(`div`,ye,[i(`div`,be,[s(E,{type:`metal`,size:`sm`}),i(`span`,xe,u(t(K)(`resources.metal`))+`:`,1),i(`span`,{class:f([`font-medium text-xs sm:text-sm`,t(x)(J.value.resources.metal,t(q)[n].cost.metal)])},u(t(S)(t(q)[n].cost.metal)),3)]),i(`div`,Se,[s(E,{type:`crystal`,size:`sm`}),i(`span`,Ce,u(t(K)(`resources.crystal`))+`:`,1),i(`span`,{class:f([`font-medium text-xs sm:text-sm`,t(x)(J.value.resources.crystal,t(q)[n].cost.crystal)])},u(t(S)(t(q)[n].cost.crystal)),3)]),i(`div`,we,[s(E,{type:`deuterium`,size:`sm`}),i(`span`,Te,u(t(K)(`resources.deuterium`))+`:`,1),i(`span`,{class:f([`font-medium text-xs sm:text-sm`,t(x)(J.value.resources.deuterium,t(q)[n].cost.deuterium)])},u(t(S)(t(q)[n].cost.deuterium)),3)])])]),i(`div`,Ee,[s(t(w),{for:`quantity-${n}`,class:`text-xs sm:text-sm`},{default:h(()=>[g(u(t(K)(`shipyardView.buildQuantity`)),1)]),_:1},8,[`for`]),s(t(ce),{id:`quantity-${n}`,modelValue:Q.value[n],"onUpdate:modelValue":e=>Q.value[n]=e,modelModifiers:{number:!0},type:`number`,min:`0`,placeholder:`0`,class:`text-sm`},null,8,[`id`,`modelValue`,`onUpdate:modelValue`])]),Q.value[n]>0?(o(),e(`div`,De,[i(`p`,Oe,u(t(K)(`shipyardView.totalCost`))+`:`,1),i(`div`,ke,[i(`div`,Ae,[s(E,{type:`metal`,size:`sm`}),i(`span`,je,u(t(K)(`resources.metal`))+`:`,1),i(`span`,{class:f([`font-medium text-xs sm:text-sm`,t(x)(J.value.resources.metal,$(n).metal)])},u(t(S)($(n).metal)),3)]),i(`div`,Me,[s(E,{type:`crystal`,size:`sm`}),i(`span`,Ne,u(t(K)(`resources.crystal`))+`:`,1),i(`span`,{class:f([`font-medium text-xs sm:text-sm`,t(x)(J.value.resources.crystal,$(n).crystal)])},u(t(S)($(n).crystal)),3)]),i(`div`,Pe,[s(E,{type:`deuterium`,size:`sm`}),i(`span`,Fe,u(t(K)(`resources.deuterium`))+`:`,1),i(`span`,{class:f([`font-medium text-xs sm:text-sm`,t(x)(J.value.resources.deuterium,$(n).deuterium)])},u(t(S)($(n).deuterium)),3)])])])):_(``,!0),s(t(se),{onClick:e=>Le(n),disabled:!Re(n),class:`w-full`},{default:h(()=>[g(u(t(K)(`shipyardView.build`)),1)]),_:1},8,[`onClick`,`disabled`])])]),_:2},1024)]),_:2},1024))),128))]),s(O,{ref_key:`alertDialog`,ref:Y},null,512)])):_(``,!0)}});export{W as default}; |