mirror of
https://github.com/setube/ogame-vue-ts.git
synced 2026-05-11 23:45:11 +08:00
重构并精简了部分UI组件,移除冗余弹窗与详情组件,新增NPC相关逻辑(npcBehaviorLogic、npcGrowthLogic、npcStore等)及外交逻辑(diplomaticLogic、DiplomacyView)。完善分页、标签、复选框等通用UI组件。优化战报弹窗,调整README下载链接为相对路径,修复部分国际化内容。
1 line
7.1 KiB
JavaScript
1 line
7.1 KiB
JavaScript
import{$t as e,Dn as t,En as n,Gn as r,Gt as i,Jt as a,Ln as o,Qt as s,Vt as c,Xn as l,Xt as ee,Yn as te,Yt as u,Zt as d,c as ne,en as f,gn as p,mn as m,o as re,qn as h,r as ie,s as ae,tn as oe,v as se}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 ce}from"./CardDescription-BSLS07AU.js";import{_ as g,d as le}from"./game-config-CG6z6nnH.js";import{D as _,K as v,L as ue,N as y,W as de,_ as fe,a as pe,b,f as x,g as S,h as C,i as w,l as T,o as E,q as D,r as O,s as k,u as A,v as j,y as M}from"./index-BT5w6et-.js";import{t as N}from"./useGameConfig-b98LOtBY.js";import{t as P}from"./CardUnlockOverlay-DYfgGY6J.js";import{t as F}from"./UnlockRequirement-CoWPiUl8.js";var I={key:0,class:`container mx-auto p-4 sm:p-6`},L={class:`text-2xl sm:text-3xl font-bold mb-4 sm:mb-6`},R={class:`mb-4 sm:mb-6 p-3 sm:p-4 bg-muted/50 rounded-lg border`},z={class:`flex items-center justify-between`},B={class:`text-sm sm:text-base font-medium`},me={class:`text-sm sm:text-base font-bold`},he={class:`mt-2`},ge={class:`w-full bg-background rounded-full h-2.5 sm:h-3 overflow-hidden`},_e={class:`grid grid-cols-2 sm:grid-cols-3 gap-3 sm:gap-4`},V={class:`space-y-3 sm:space-y-4`},ve={class:`grid grid-cols-2 gap-2 text-xs sm:text-sm`},ye={class:`text-muted-foreground`},be={class:`font-medium`},xe={class:`text-muted-foreground`},Se={class:`font-medium`},Ce={class:`text-muted-foreground`},we={class:`font-medium`},Te={class:`text-muted-foreground`},Ee={class:`font-medium`},De={class:`text-xs sm:text-sm space-y-1.5 sm:space-y-2`},Oe={class:`text-muted-foreground mb-1 sm:mb-2`},ke={class:`space-y-1 sm:space-y-1.5`},Ae={class:`text-xs`},je={class:`space-y-2`},Me={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`},Ne={class:`font-medium text-muted-foreground`},Pe={class:`space-y-1 sm:space-y-1.5`},Fe={class:`text-xs`},H=oe({__name:`ShipyardView`,setup(oe){let H=D(),Ie=_(),{t:U}=v(),{SHIPS:W}=N(),G=a(()=>H.currentPlanet),K=o(!1),q=o(``),J=o(``),Y=[{key:`metal`},{key:`crystal`},{key:`deuterium`},{key:`darkMatter`}],X=a(()=>G.value?ae(G.value.fleet):0),Z=a(()=>G.value?ne(G.value,H.player.technologies):0),Q=o({[g.LightFighter]:0,[g.HeavyFighter]:0,[g.Cruiser]:0,[g.Battleship]:0,[g.Battlecruiser]:0,[g.Bomber]:0,[g.Destroyer]:0,[g.SmallCargo]:0,[g.LargeCargo]:0,[g.ColonyShip]:0,[g.Recycler]:0,[g.EspionageProbe]:0,[g.SolarSatellite]:0,[g.DarkMatterHarvester]:0,[g.Deathstar]:0}),Le=(e,t)=>{if(!H.currentPlanet||!re(H.currentPlanet,e,t,H.player.technologies).valid)return!1;let n=ie(H.currentPlanet,e,t,H.player.officers);return H.currentPlanet.buildQueue.push(n),!0},Re=e=>{let t=Q.value[e];if(t<=0){q.value=U(`shipyardView.inputError`),J.value=U(`shipyardView.inputErrorMessage`),K.value=!0;return}Le(e,t)?Q.value[e]=0:(q.value=U(`shipyardView.buildFailed`),J.value=U(`shipyardView.buildFailedMessage`),K.value=!0)},ze=e=>{if(!G.value)return!1;let t=Q.value[e];if(t<=0)return!1;let n=W.value[e],r={metal:n.cost.metal*t,crystal:n.cost.crystal*t,deuterium:n.cost.deuterium*t,darkMatter:n.cost.darkMatter*t};return se(G.value,H.player.technologies,n.requirements)&&G.value.resources.metal>=r.metal&&G.value.resources.crystal>=r.crystal&&G.value.resources.deuterium>=r.deuterium&&G.value.resources.darkMatter>=r.darkMatter},$=e=>{let t=Q.value[e],n=W.value[e];return{metal:n.cost.metal*t,crystal:n.cost.crystal*t,deuterium:n.cost.deuterium*t,darkMatter:n.cost.darkMatter*t}};return(a,o)=>G.value?(m(),s(`div`,I,[f(F,{"required-building":r(le).Shipyard,"required-level":1},null,8,[`required-building`]),u(`h1`,L,l(r(U)(`shipyardView.title`)),1),u(`div`,R,[u(`div`,z,[u(`div`,B,l(r(U)(`shipyardView.fleetStorage`))+`:`,1),u(`div`,me,[u(`span`,{class:h(X.value>Z.value?`text-destructive`:`text-primary`)},l(r(x)(X.value)),3),o[1]||=u(`span`,{class:`text-muted-foreground mx-1`},`/`,-1),u(`span`,null,l(r(x)(Z.value)),1)])]),u(`div`,he,[u(`div`,ge,[u(`div`,{class:h([`h-full transition-all duration-300`,X.value>Z.value?`bg-destructive`:`bg-primary`]),style:te({width:`${Math.min(X.value/Z.value*100,100)}%`})},null,6)])])]),u(`div`,_e,[(m(!0),s(i,null,p(Object.values(r(g)),a=>(m(),ee(r(b),{key:a,class:`relative`},{default:n(()=>[f(P,{requirements:r(W)[a].requirements},null,8,[`requirements`]),f(r(j),{class:`pb-3`},{default:n(()=>[f(r(fe),{class:`text-sm sm:text-base lg:text-lg cursor-pointer hover:text-primary transition-colors underline decoration-dotted underline-offset-4 mb-2`,onClick:e=>r(Ie).openShip(a)},{default:n(()=>[e(l(r(W)[a].name),1)]),_:2},1032,[`onClick`]),f(r(ce),{class:`text-xs sm:text-sm`},{default:n(()=>[e(l(r(W)[a].description),1)]),_:2},1024)]),_:2},1024),f(r(M),null,{default:n(()=>[u(`div`,V,[u(`div`,ve,[u(`div`,null,[u(`p`,ye,l(r(U)(`shipyardView.attack`)),1),u(`p`,be,l(r(W)[a].attack),1)]),u(`div`,null,[u(`p`,xe,l(r(U)(`shipyardView.shield`)),1),u(`p`,Se,l(r(W)[a].shield),1)]),u(`div`,null,[u(`p`,Ce,l(r(U)(`shipyardView.speed`)),1),u(`p`,we,l(r(W)[a].speed),1)]),u(`div`,null,[u(`p`,Te,l(r(U)(`shipyardView.cargoCapacity`)),1),u(`p`,Ee,l(r(x)(r(W)[a].cargoCapacity)),1)])]),u(`div`,De,[u(`p`,Oe,l(r(U)(`shipyardView.unitCost`))+`:`,1),u(`div`,ke,[(m(),s(i,null,p(Y,e=>t(u(`div`,{key:e.key,class:`flex items-center gap-1.5 sm:gap-2`},[f(y,{type:e.key,size:`sm`},null,8,[`type`]),u(`span`,Ae,l(r(U)(`resources.${e.key}`))+`:`,1),u(`span`,{class:h([`font-medium text-xs sm:text-sm`,r(C)(G.value.resources[e.key],r(W)[a].cost[e.key])])},l(r(x)(r(W)[a].cost[e.key])),3)]),[[c,e.key!==`darkMatter`||r(W)[a].cost.darkMatter>0]])),64))])]),u(`div`,je,[f(r(S),{for:`quantity-${a}`,class:`text-xs sm:text-sm`},{default:n(()=>[e(l(r(U)(`shipyardView.buildQuantity`)),1)]),_:1},8,[`for`]),f(r(ue),{id:`quantity-${a}`,modelValue:Q.value[a],"onUpdate:modelValue":e=>Q.value[a]=e,modelModifiers:{number:!0},type:`number`,min:`0`,placeholder:`0`,class:`text-sm`},null,8,[`id`,`modelValue`,`onUpdate:modelValue`])]),Q.value[a]>0?(m(),s(`div`,Me,[u(`p`,Ne,l(r(U)(`shipyardView.totalCost`))+`:`,1),u(`div`,Pe,[(m(),s(i,null,p(Y,e=>t(u(`div`,{key:e.key,class:`flex items-center gap-1.5 sm:gap-2`},[f(y,{type:e.key,size:`sm`},null,8,[`type`]),u(`span`,Fe,l(r(U)(`resources.${e.key}`))+`:`,1),u(`span`,{class:h([`font-medium text-xs sm:text-sm`,r(C)(G.value.resources[e.key],$(a)[e.key])])},l(r(x)($(a)[e.key])),3)]),[[c,e.key!==`darkMatter`||$(a).darkMatter>0]])),64))])])):d(``,!0),f(r(de),{onClick:e=>Re(a),disabled:!ze(a),class:`w-full`},{default:n(()=>[e(l(r(U)(`shipyardView.build`)),1)]),_:1},8,[`onClick`,`disabled`])])]),_:2},1024)]),_:2},1024))),128))]),f(r(A),{open:K.value,"onUpdate:open":o[0]||=e=>K.value=e},{default:n(()=>[f(r(k),null,{default:n(()=>[f(r(w),null,{default:n(()=>[f(r(O),null,{default:n(()=>[e(l(q.value),1)]),_:1}),f(r(E),{class:`whitespace-pre-line`},{default:n(()=>[e(l(J.value),1)]),_:1})]),_:1}),f(r(pe),null,{default:n(()=>[f(r(T),null,{default:n(()=>[e(l(r(U)(`common.confirm`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])])):d(``,!0)}});export{H as default}; |