Files
ogame-vue-ts/docs/assets/DefenseView-Dgqev78h.js
谦君 9754140cbf feat: 优化 README 及文档结构,新增英文说明
删除 README.zh-CN.md,新增英文版 README.EN.md,简体中文说明合并至 README.md 并补充内容。同步 docs/assets 下页面 JS/CSS 文件,优化文档资源命名与引用,提升多语言文档一致性。
2025-12-11 15:21:51 +08:00

1 line
6.7 KiB
JavaScript

import{Dt as e,G as t,H as n,J as r,K as i,Ot as a,St as o,W as ee,X as s,Y as c,Z as l,jt as u,lt as te,pt as d,q as f,st as p}from"./vendor-ui-DBxeWLyT.js";import"./vendor-vue-Bqq1sBNf.js";import{t as m}from"./UnlockRequirement-BdFx1RC0.js";import{t as ne}from"./CardDescription-CRV0m8La.js";import{Bt as re,G as ie,It as ae,K as oe,Pt as h,Rt as se,V as g,Vt as _,W as v,dt as y,ft as b,it as x,lt as S,rt as C,ut as w,w as T,yt as E}from"./index-Cch-Ig40.js";import{t as D}from"./useGameConfig-D2EZdt1x.js";import{t as O}from"./AlertDialog-_72FqRCT.js";import{t as k}from"./CardUnlockOverlay-SeY-L1Ut.js";import{i as A,t as j}from"./shipValidation-Cx6mhfwF.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:`flex justify-between items-start gap-2`},I={class:`min-w-0 flex-1`},L={class:`space-y-3 sm:space-y-4`},R={class:`grid grid-cols-2 gap-2 text-xs sm:text-sm`},z={class:`text-muted-foreground`},B={class:`font-medium`},V={class:`text-muted-foreground`},H={class:`font-medium`},U={class:`text-muted-foreground`},W={class:`font-medium`},ce={class:`text-muted-foreground`},G={class:`font-medium`},le={class:`text-xs sm:text-sm space-y-1.5 sm:space-y-2`},ue={class:`text-muted-foreground mb-1 sm:mb-2`},de={class:`space-y-1 sm:space-y-1.5`},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:`flex items-center gap-1.5 sm:gap-2`},_e={class:`text-xs`},ve={class:`space-y-2`},ye={key:0,class:`text-xs text-muted-foreground`},be={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`},xe={class:`font-medium text-muted-foreground`},Se={class:`space-y-1 sm:space-y-1.5`},Ce={class:`flex items-center gap-1.5 sm:gap-2`},we={class:`text-xs`},Te={class:`flex items-center gap-1.5 sm:gap-2`},Ee={class:`text-xs`},De={class:`flex items-center gap-1.5 sm:gap-2`},Oe={class:`text-xs`},K=l({__name:`DefenseView`,setup(l){let K=_(),ke=E(),{t:q}=re(),{DEFENSES:J}=D(),Y=ee(()=>K.currentPlanet),X=o(null),Z=o({[x.RocketLauncher]:0,[x.LightLaser]:0,[x.HeavyLaser]:0,[x.GaussCannon]:0,[x.IonCannon]:0,[x.PlasmaTurret]:0,[x.SmallShieldDome]:0,[x.LargeShieldDome]:0}),Q=e=>e===x.SmallShieldDome||e===x.LargeShieldDome,Ae=(e,t)=>{if(!K.currentPlanet||!A(K.currentPlanet,e,t,K.player.technologies).valid)return!1;let n=j(K.currentPlanet,e,t,K.player.officers);return K.currentPlanet.buildQueue.push(n),!0},je=e=>{let t=Z.value[e];if(t<=0){X.value?.show({title:q(`defenseView.inputError`),message:q(`defenseView.inputErrorMessage`)});return}Ae(e,t)?Z.value[e]=0:X.value?.show({title:q(`defenseView.buildFailed`),message:q(`defenseView.buildFailedMessage`)})},Me=e=>{if(!Y.value)return!1;let t=Z.value[e];if(t<=0||Q(e)&&(Y.value.defense[e]>0||t>1))return!1;let n=J.value[e],r={metal:n.cost.metal*t,crystal:n.cost.crystal*t,deuterium:n.cost.deuterium*t};return T(Y.value,K.player.technologies,n.requirements)&&Y.value.resources.metal>=r.metal&&Y.value.resources.crystal>=r.crystal&&Y.value.resources.deuterium>=r.deuterium},$=e=>{let t=Z.value[e],n=J.value[e];return{metal:n.cost.metal*t,crystal:n.cost.crystal*t,deuterium:n.cost.deuterium*t}};return(o,ee)=>Y.value?(p(),r(`div`,M,[s(m,{"required-building":e(C).Shipyard,"required-level":1},null,8,[`required-building`]),t(`h1`,N,u(e(q)(`defenseView.title`)),1),t(`div`,P,[(p(!0),r(n,null,te(Object.values(e(x)),n=>(p(),i(e(b),{key:n,class:`relative`},{default:d(()=>[s(k,{requirements:e(J)[n].requirements},null,8,[`requirements`]),s(e(w),null,{default:d(()=>[t(`div`,F,[t(`div`,I,[s(e(S),{class:`text-base sm:text-lg cursor-pointer hover:text-primary transition-colors`,onClick:t=>e(ke).openDefense(n)},{default:d(()=>[c(u(e(J)[n].name),1)]),_:2},1032,[`onClick`]),s(e(ne),{class:`text-xs sm:text-sm`},{default:d(()=>[c(u(e(J)[n].description),1)]),_:2},1024)]),s(e(ae),{variant:`secondary`,class:`text-xs whitespace-nowrap flex-shrink-0`},{default:d(()=>[c(u(Y.value.defense[n]),1)]),_:2},1024)])]),_:2},1024),s(e(y),null,{default:d(()=>[t(`div`,L,[t(`div`,R,[t(`div`,null,[t(`p`,z,u(e(q)(`defenseView.attack`)),1),t(`p`,B,u(e(J)[n].attack),1)]),t(`div`,null,[t(`p`,V,u(e(q)(`defenseView.shield`)),1),t(`p`,H,u(e(J)[n].shield),1)]),t(`div`,null,[t(`p`,U,u(e(q)(`defenseView.armor`)),1),t(`p`,W,u(e(J)[n].armor),1)]),t(`div`,null,[t(`p`,ce,u(e(q)(`defenseView.buildTime`)),1),t(`p`,G,u(e(J)[n].buildTime)+u(e(q)(`defenseView.seconds`)),1)])]),t(`div`,le,[t(`p`,ue,u(e(q)(`defenseView.unitCost`))+`:`,1),t(`div`,de,[t(`div`,fe,[s(h,{type:`metal`,size:`sm`}),t(`span`,pe,u(e(q)(`resources.metal`))+`:`,1),t(`span`,{class:a([`font-medium text-xs sm:text-sm`,e(v)(Y.value.resources.metal,e(J)[n].cost.metal)])},u(e(g)(e(J)[n].cost.metal)),3)]),t(`div`,me,[s(h,{type:`crystal`,size:`sm`}),t(`span`,he,u(e(q)(`resources.crystal`))+`:`,1),t(`span`,{class:a([`font-medium text-xs sm:text-sm`,e(v)(Y.value.resources.crystal,e(J)[n].cost.crystal)])},u(e(g)(e(J)[n].cost.crystal)),3)]),t(`div`,ge,[s(h,{type:`deuterium`,size:`sm`}),t(`span`,_e,u(e(q)(`resources.deuterium`))+`:`,1),t(`span`,{class:a([`font-medium text-xs sm:text-sm`,e(v)(Y.value.resources.deuterium,e(J)[n].cost.deuterium)])},u(e(g)(e(J)[n].cost.deuterium)),3)])])]),t(`div`,ve,[s(e(ie),{for:`quantity-${n}`,class:`text-xs sm:text-sm`},{default:d(()=>[c(u(e(q)(`defenseView.buildQuantity`)),1)]),_:1},8,[`for`]),s(e(oe),{id:`quantity-${n}`,modelValue:Z.value[n],"onUpdate:modelValue":e=>Z.value[n]=e,modelModifiers:{number:!0},type:`number`,min:`0`,max:Q(n)&&Y.value.defense[n]>0?0:void 0,disabled:Q(n)&&Y.value.defense[n]>0,placeholder:`0`,class:`text-sm`},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`max`,`disabled`]),Q(n)&&Y.value.defense[n]>0?(p(),r(`p`,ye,u(e(q)(`defenseView.shieldDomeBuilt`)),1)):f(``,!0)]),Z.value[n]>0?(p(),r(`div`,be,[t(`p`,xe,u(e(q)(`defenseView.totalCost`))+`:`,1),t(`div`,Se,[t(`div`,Ce,[s(h,{type:`metal`,size:`sm`}),t(`span`,we,u(e(q)(`resources.metal`))+`:`,1),t(`span`,{class:a([`font-medium text-xs sm:text-sm`,e(v)(Y.value.resources.metal,$(n).metal)])},u(e(g)($(n).metal)),3)]),t(`div`,Te,[s(h,{type:`crystal`,size:`sm`}),t(`span`,Ee,u(e(q)(`resources.crystal`))+`:`,1),t(`span`,{class:a([`font-medium text-xs sm:text-sm`,e(v)(Y.value.resources.crystal,$(n).crystal)])},u(e(g)($(n).crystal)),3)]),t(`div`,De,[s(h,{type:`deuterium`,size:`sm`}),t(`span`,Oe,u(e(q)(`resources.deuterium`))+`:`,1),t(`span`,{class:a([`font-medium text-xs sm:text-sm`,e(v)(Y.value.resources.deuterium,$(n).deuterium)])},u(e(g)($(n).deuterium)),3)])])])):f(``,!0),s(e(se),{onClick:e=>je(n),disabled:!Me(n),class:`w-full`},{default:d(()=>[c(u(e(q)(`defenseView.build`)),1)]),_:1},8,[`onClick`,`disabled`])])]),_:2},1024)]),_:2},1024))),128))]),s(O,{ref_key:`alertDialog`,ref:X},null,512)])):f(``,!0)}});export{K as default};