mirror of
https://github.com/setube/ogame-vue-ts.git
synced 2026-05-12 16:05:12 +08:00
重构BattleReportDialog和BattleSimulatorView相关静态资源,替换旧版JS/CSS文件,提升界面一致性和交互体验。新增和优化空状态、滚动区域等通用UI组件,移除部分冗余composable,完善多语言内容。引入导弹逻辑,补充版本检测工具,提升整体代码结构和可维护性。
1 line
7.1 KiB
JavaScript
1 line
7.1 KiB
JavaScript
import{$t as e,En as t,On as n,Rn as r,Yn as i,ar as a,c as o,cn as ee,cr as s,dn as c,fn as l,ln as u,o as te,on as d,pn as ne,r as re,rn as f,rr as p,s as ie,sn as m,sr as ae,tt as oe,un as h,zn as g}from"./game-logic-BBFCPVtv.js";import"./vendor-pinia-L_8CmDWM.js";import"./vendor-vue-router-0mfLVB6Y.js";import"./vendor-crypto-CQM8pryk.js";import"./game-i18n-BC9uiVvf.js";import"./vendor-others-Bce0hM6h.js";import"./vendor-reka-ui-DR3m_AkV.js";import"./vendor-utils-BlvnUqQX.js";import"./vendor-vueuse-Djj-oRw9.js";import"./vendor-icons-Ccm2_GPI.js";import{t as se}from"./CardDescription-DduF5EVY.js";import{_,d as v}from"./game-config-DRP-gbpS.js";import{$ as y,A as ce,F as le,I as ue,J as de,L as b,M as fe,N as pe,V as x,X as S,d as C,f as w,j as T,k as E,l as D,m as O,o as k,p as A,u as j,x as M}from"./index-B4KMqZ_y.js";import{t as N}from"./useGameConfig-DLqfPHtW.js";import{t as P}from"./CardUnlockOverlay-CspXlcWR.js";import{t as F}from"./UnlockRequirement-DJ9dN5JL.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=ne({__name:`ShipyardView`,setup(ne){let H=y(),Ie=M(),{t:U}=S(),{SHIPS:W}=N(),G=d(()=>H.currentPlanet),K=i(!1),q=i(``),J=i(``),Y=[{key:`metal`},{key:`crystal`},{key:`deuterium`},{key:`darkMatter`}],X=d(()=>G.value?ie(G.value.fleet):0),Z=d(()=>G.value?o(G.value,H.player.technologies):0),Q=i({[_.LightFighter]:0,[_.HeavyFighter]:0,[_.Cruiser]:0,[_.Battleship]:0,[_.Battlecruiser]:0,[_.Bomber]:0,[_.Destroyer]:0,[_.SmallCargo]:0,[_.LargeCargo]:0,[_.ColonyShip]:0,[_.Recycler]:0,[_.EspionageProbe]:0,[_.SolarSatellite]:0,[_.DarkMatterHarvester]:0,[_.Deathstar]:0}),Le=(e,t)=>{if(!H.currentPlanet||!te(H.currentPlanet,e,t,H.player.technologies).valid)return!1;let n=re(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 oe(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(i,o)=>G.value?(t(),h(`div`,I,[l(F,{"required-building":p(v).Shipyard,"required-level":1},null,8,[`required-building`]),m(`h1`,L,s(p(U)(`shipyardView.title`)),1),m(`div`,R,[m(`div`,z,[m(`div`,B,s(p(U)(`shipyardView.fleetStorage`))+`:`,1),m(`div`,me,[m(`span`,{class:a(X.value>Z.value?`text-destructive`:`text-primary`)},s(p(k)(X.value)),3),o[1]||=m(`span`,{class:`text-muted-foreground mx-1`},`/`,-1),m(`span`,null,s(p(k)(Z.value)),1)])]),m(`div`,he,[m(`div`,ge,[m(`div`,{class:a([`h-full transition-all duration-300`,X.value>Z.value?`bg-destructive`:`bg-primary`]),style:ae({width:`${Math.min(X.value/Z.value*100,100)}%`})},null,6)])])]),m(`div`,_e,[(t(!0),h(f,null,n(Object.values(p(_)),i=>(t(),ee(p(O),{key:i,class:`relative`},{default:r(()=>[l(P,{requirements:p(W)[i].requirements},null,8,[`requirements`]),l(p(w),{class:`pb-3`},{default:r(()=>[l(p(C),{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=>p(Ie).openShip(i)},{default:r(()=>[c(s(p(W)[i].name),1)]),_:2},1032,[`onClick`]),l(p(se),{class:`text-xs sm:text-sm`},{default:r(()=>[c(s(p(W)[i].description),1)]),_:2},1024)]),_:2},1024),l(p(A),null,{default:r(()=>[m(`div`,V,[m(`div`,ve,[m(`div`,null,[m(`p`,ye,s(p(U)(`shipyardView.attack`)),1),m(`p`,be,s(p(W)[i].attack),1)]),m(`div`,null,[m(`p`,xe,s(p(U)(`shipyardView.shield`)),1),m(`p`,Se,s(p(W)[i].shield),1)]),m(`div`,null,[m(`p`,Ce,s(p(U)(`shipyardView.speed`)),1),m(`p`,we,s(p(W)[i].speed),1)]),m(`div`,null,[m(`p`,Te,s(p(U)(`shipyardView.cargoCapacity`)),1),m(`p`,Ee,s(p(k)(p(W)[i].cargoCapacity)),1)])]),m(`div`,De,[m(`p`,Oe,s(p(U)(`shipyardView.unitCost`))+`:`,1),m(`div`,ke,[(t(),h(f,null,n(Y,t=>g(m(`div`,{key:t.key,class:`flex items-center gap-1.5 sm:gap-2`},[l(b,{type:t.key,size:`sm`},null,8,[`type`]),m(`span`,Ae,s(p(U)(`resources.${t.key}`))+`:`,1),m(`span`,{class:a([`font-medium text-xs sm:text-sm`,p(D)(G.value.resources[t.key],p(W)[i].cost[t.key])])},s(p(k)(p(W)[i].cost[t.key])),3)]),[[e,t.key!==`darkMatter`||p(W)[i].cost.darkMatter>0]])),64))])]),m(`div`,je,[l(p(j),{for:`quantity-${i}`,class:`text-xs sm:text-sm`},{default:r(()=>[c(s(p(U)(`shipyardView.buildQuantity`)),1)]),_:1},8,[`for`]),l(p(x),{id:`quantity-${i}`,modelValue:Q.value[i],"onUpdate:modelValue":e=>Q.value[i]=e,modelModifiers:{number:!0},type:`number`,min:`0`,placeholder:`0`,class:`text-sm`},null,8,[`id`,`modelValue`,`onUpdate:modelValue`])]),Q.value[i]>0?(t(),h(`div`,Me,[m(`p`,Ne,s(p(U)(`shipyardView.totalCost`))+`:`,1),m(`div`,Pe,[(t(),h(f,null,n(Y,t=>g(m(`div`,{key:t.key,class:`flex items-center gap-1.5 sm:gap-2`},[l(b,{type:t.key,size:`sm`},null,8,[`type`]),m(`span`,Fe,s(p(U)(`resources.${t.key}`))+`:`,1),m(`span`,{class:a([`font-medium text-xs sm:text-sm`,p(D)(G.value.resources[t.key],$(i)[t.key])])},s(p(k)($(i)[t.key])),3)]),[[e,t.key!==`darkMatter`||$(i).darkMatter>0]])),64))])])):u(``,!0),l(p(de),{onClick:e=>Re(i),disabled:!ze(i),class:`w-full`},{default:r(()=>[c(s(p(U)(`shipyardView.build`)),1)]),_:1},8,[`onClick`,`disabled`])])]),_:2},1024)]),_:2},1024))),128))]),l(p(ue),{open:K.value,"onUpdate:open":o[0]||=e=>K.value=e},{default:r(()=>[l(p(pe),null,{default:r(()=>[l(p(ce),null,{default:r(()=>[l(p(E),null,{default:r(()=>[c(s(q.value),1)]),_:1}),l(p(fe),{class:`whitespace-pre-line`},{default:r(()=>[c(s(J.value),1)]),_:1})]),_:1}),l(p(T),null,{default:r(()=>[l(p(le),null,{default:r(()=>[c(s(p(U)(`common.confirm`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])])):u(``,!0)}});export{H as default}; |