Files
ogame-vue-ts/docs/assets/OfficersView-CXh701uW.js
谦君 59dd7bfd05 feat: 重构战报弹窗与模拟器视图,优化UI与逻辑
重构BattleReportDialog和BattleSimulatorView相关静态资源,替换旧版JS/CSS文件,提升界面一致性和交互体验。新增和优化空状态、滚动区域等通用UI组件,移除部分冗余composable,完善多语言内容。引入导弹逻辑,补充版本检测工具,提升整体代码结构和可维护性。
2025-12-15 20:04:40 +08:00

1 line
9.2 KiB
JavaScript

import{$t as e,En as t,Ft as n,It as r,Lt as i,On as a,Rn as o,Rt as ee,St as s,Yn as c,ar as te,cn as l,cr as u,dn as d,fn as f,ln as p,on as ne,pn as re,rn as m,rr as h,sn as g,un as _,xt as v,zn as ie}from"./game-logic-BBFCPVtv.js";import"./vendor-pinia-L_8CmDWM.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{t as ae}from"./CardDescription-DduF5EVY.js";import{h as oe}from"./game-config-DRP-gbpS.js";import{$ as se,A as y,F as b,I as x,J as S,K as C,L as ce,M as w,N as T,P as le,X as ue,a as de,d as fe,f as pe,j as E,k as D,l as me,m as O,o as k,p as A,s as j}from"./index-B4KMqZ_y.js";import{t as M}from"./useGameConfig-DLqfPHtW.js";var N={class:`container mx-auto p-4 sm:p-6 space-y-4 sm:space-y-6`},P={class:`text-2xl sm:text-3xl font-bold`},F={class:`grid grid-cols-2 sm:grid-cols-3 gap-4 sm:gap-6`},I={class:`mb-2`},L={class:`flex flex-col sm:flex-row sm:justify-between sm:items-start gap-2`},R={key:0,class:`p-3 bg-blue-50 dark:bg-blue-950 rounded-lg`},z={class:`space-y-1 text-xs sm:text-sm`},he={class:`font-medium text-blue-700 dark:text-blue-300`},ge={class:`text-muted-foreground`},_e={class:`text-muted-foreground`},ve={class:`space-y-2`},ye={class:`text-sm font-medium text-muted-foreground`},be={class:`space-y-1.5`},xe={class:`text-xs`},Se={class:`space-y-2`},Ce={class:`text-sm font-medium text-muted-foreground`},we={class:`space-y-1 text-xs sm:text-sm`},Te={key:0,class:`flex items-center gap-2`},Ee={key:1,class:`flex items-center gap-2`},De={key:2,class:`flex items-center gap-2`},Oe={key:3,class:`flex items-center gap-2`},ke={key:4,class:`flex items-center gap-2`},Ae={key:5,class:`flex items-center gap-2`},je={key:6,class:`flex items-center gap-2`},Me={key:7,class:`flex items-center gap-2`},Ne={key:8,class:`flex items-center gap-2`},Pe={key:9,class:`flex items-center gap-2`},Fe={class:`flex flex-col sm:flex-row gap-2`},B=re({__name:`OfficersView`,setup(re){let{t:B}=ue(),{OFFICERS:V}=M(),H=se(),U=ne(()=>H.currentPlanet),W=c(!1),G=c(``),K=c(``),q=c(!1),J=c(``),Y=c(``),X=c(null),Ie=()=>{X.value&&X.value(),q.value=!1},Le=[{key:`metal`},{key:`crystal`},{key:`deuterium`},{key:`darkMatter`}],Z=e=>{let t=H.player.officers[e],n=Date.now();return t.active&&(!t.expiresAt||t.expiresAt>n)},Re=e=>H.player.officers[e].expiresAt||0,Q=e=>{let t=H.player.officers[e];if(!t.expiresAt)return 0;let n=Date.now();return Math.max(0,Math.floor((t.expiresAt-n)/1e3))},$=e=>{if(!U.value)return!1;let t=V.value[e];return U.value.resources.metal>=t.cost.metal&&U.value.resources.crystal>=t.cost.crystal&&U.value.resources.deuterium>=t.cost.deuterium&&U.value.resources.darkMatter>=t.cost.darkMatter},ze=(e,t=7)=>{if(!H.currentPlanet)return!1;let r=i(e);return v(H.currentPlanet.resources,r)?(s(H.currentPlanet.resources,r),H.player.officers[e]=n(e,t),!0):!1},Be=e=>{J.value=B(`officersView.hireTitle`),Y.value=B(`officersView.hireMessage`).replace(`{name}`,V.value[e].name),X.value=()=>{ze(e,7)||(G.value=B(`officersView.hireFailed`),K.value=B(`officersView.insufficientResources`),W.value=!0)},q.value=!0},Ve=(e,t=7)=>{if(!H.currentPlanet)return!1;let n=i(e);if(!v(H.currentPlanet.resources,n))return!1;s(H.currentPlanet.resources,n);let r=Date.now();return H.player.officers[e]=ee(H.player.officers[e],t,r),!0},He=e=>{J.value=B(`officersView.renewTitle`),Y.value=B(`officersView.renewMessage`).replace(`{name}`,V.value[e].name),X.value=()=>{Ve(e,7)||(G.value=B(`officersView.renewFailed`),K.value=B(`officersView.insufficientResources`),W.value=!0)},q.value=!0},Ue=e=>{J.value=B(`officersView.dismissTitle`),Y.value=B(`officersView.dismissMessage`).replace(`{name}`,V.value[e].name),X.value=()=>{H.player.officers[e]=r(e)},q.value=!0};return(n,r)=>(t(),_(`div`,N,[g(`h1`,P,u(h(B)(`officersView.title`)),1),g(`div`,F,[(t(!0),_(m,null,a(Object.values(h(oe)),n=>(t(),l(h(O),{key:n},{default:o(()=>[f(h(pe),null,{default:o(()=>[g(`div`,I,[g(`div`,L,[f(h(fe),{class:`text-sm sm:text-base lg:text-lg order-2 sm:order-1`},{default:o(()=>[d(u(h(V)[n].name),1)]),_:2},1024),Z(n)?(t(),l(h(C),{key:0,variant:`default`,class:`text-xs whitespace-nowrap self-start order-1 sm:order-2`},{default:o(()=>[d(u(h(B)(`officersView.activated`)),1)]),_:1})):(t(),l(h(C),{key:1,variant:`outline`,class:`text-xs whitespace-nowrap self-start order-1 sm:order-2`},{default:o(()=>[d(u(h(B)(`officersView.inactive`)),1)]),_:1}))])]),f(h(ae),{class:`text-xs sm:text-sm`},{default:o(()=>[d(u(h(V)[n].description),1)]),_:2},1024)]),_:2},1024),f(h(A),{class:`space-y-4`},{default:o(()=>[Z(n)?(t(),_(`div`,R,[g(`div`,z,[g(`p`,he,u(h(B)(`officersView.activeStatus`)),1),g(`p`,ge,u(h(B)(`officersView.expirationTime`))+`: `+u(h(de)(Re(n))),1),g(`p`,_e,u(h(B)(`officersView.remainingTime`))+`: `+u(h(j)(Q(n))),1)])])):p(``,!0),g(`div`,ve,[g(`p`,ye,u(h(B)(`officersView.recruitCost`))+` (7`+u(h(B)(`officersView.days`))+`):`,1),g(`div`,be,[(t(),_(m,null,a(Le,t=>ie(g(`div`,{key:t.key,class:`flex items-center gap-2`},[f(ce,{type:t.key,size:`sm`},null,8,[`type`]),g(`span`,xe,u(h(B)(`resources.${t.key}`))+`:`,1),g(`span`,{class:te([`font-medium text-sm`,U.value?h(me)(U.value.resources[t.key],h(V)[n].cost[t.key]):``])},u(h(k)(h(V)[n].cost[t.key])),3)]),[[e,t.key!==`darkMatter`||h(V)[n].cost.darkMatter>0]])),64))])]),g(`div`,Se,[g(`p`,Ce,u(h(B)(`officersView.benefitsBonus`))+`:`,1),g(`div`,we,[h(V)[n].benefits.resourceProductionBonus?(t(),_(`div`,Te,[r[2]||=g(`span`,{class:`text-green-600 dark:text-green-400`},``,-1),g(`span`,null,u(h(B)(`officersView.resourceProduction`))+` +`+u(h(V)[n].benefits.resourceProductionBonus)+`%`,1)])):p(``,!0),h(V)[n].benefits.darkMatterProductionBonus?(t(),_(`div`,Ee,[r[3]||=g(`span`,{class:`text-green-600 dark:text-green-400`},``,-1),g(`span`,null,u(h(B)(`officersView.darkMatterProduction`))+` +`+u(h(V)[n].benefits.darkMatterProductionBonus)+`%`,1)])):p(``,!0),h(V)[n].benefits.buildingSpeedBonus?(t(),_(`div`,De,[r[4]||=g(`span`,{class:`text-green-600 dark:text-green-400`},``,-1),g(`span`,null,u(h(B)(`officersView.buildingSpeed`))+` +`+u(h(V)[n].benefits.buildingSpeedBonus)+`%`,1)])):p(``,!0),h(V)[n].benefits.researchSpeedBonus?(t(),_(`div`,Oe,[r[5]||=g(`span`,{class:`text-green-600 dark:text-green-400`},``,-1),g(`span`,null,u(h(B)(`officersView.researchSpeed`))+` +`+u(h(V)[n].benefits.researchSpeedBonus)+`%`,1)])):p(``,!0),h(V)[n].benefits.fleetSpeedBonus?(t(),_(`div`,ke,[r[6]||=g(`span`,{class:`text-green-600 dark:text-green-400`},``,-1),g(`span`,null,u(h(B)(`officersView.fleetSpeed`))+` +`+u(h(V)[n].benefits.fleetSpeedBonus)+`%`,1)])):p(``,!0),h(V)[n].benefits.fuelConsumptionReduction?(t(),_(`div`,Ae,[r[7]||=g(`span`,{class:`text-green-600 dark:text-green-400`},``,-1),g(`span`,null,u(h(B)(`officersView.fuelConsumption`))+` -`+u(h(V)[n].benefits.fuelConsumptionReduction)+`%`,1)])):p(``,!0),h(V)[n].benefits.defenseBonus?(t(),_(`div`,je,[r[8]||=g(`span`,{class:`text-green-600 dark:text-green-400`},``,-1),g(`span`,null,u(h(B)(`officersView.defense`))+` +`+u(h(V)[n].benefits.defenseBonus)+`%`,1)])):p(``,!0),h(V)[n].benefits.storageCapacityBonus?(t(),_(`div`,Me,[r[9]||=g(`span`,{class:`text-green-600 dark:text-green-400`},``,-1),g(`span`,null,u(h(B)(`officersView.storageCapacity`))+` +`+u(h(V)[n].benefits.storageCapacityBonus)+`%`,1)])):p(``,!0),h(V)[n].benefits.additionalBuildQueue?(t(),_(`div`,Ne,[r[10]||=g(`span`,{class:`text-green-600 dark:text-green-400`},`+`,-1),g(`span`,null,u(h(B)(`officersView.buildQueue`))+` +`+u(h(V)[n].benefits.additionalBuildQueue),1)])):p(``,!0),h(V)[n].benefits.additionalFleetSlots?(t(),_(`div`,Pe,[r[11]||=g(`span`,{class:`text-green-600 dark:text-green-400`},`+`,-1),g(`span`,null,u(h(B)(`officersView.fleetSlots`))+` +`+u(h(V)[n].benefits.additionalFleetSlots),1)])):p(``,!0)])]),g(`div`,Fe,[Z(n)?p(``,!0):(t(),l(h(S),{key:0,onClick:e=>Be(n),disabled:!$(n),class:`w-full`},{default:o(()=>[d(u(h(B)(`officersView.hire`))+` (7`+u(h(B)(`officersView.days`))+`) `,1)]),_:1},8,[`onClick`,`disabled`])),Z(n)?(t(),l(h(S),{key:1,onClick:e=>He(n),disabled:!$(n),class:`w-full sm:flex-1`},{default:o(()=>[d(u(h(B)(`officersView.renew`))+` (7`+u(h(B)(`officersView.days`))+`) `,1)]),_:1},8,[`onClick`,`disabled`])):p(``,!0),Z(n)?(t(),l(h(S),{key:2,onClick:e=>Ue(n),variant:`outline`,class:`w-full sm:w-auto`},{default:o(()=>[d(u(h(B)(`officersView.dismiss`)),1)]),_:1},8,[`onClick`])):p(``,!0)])]),_:2},1024)]),_:2},1024))),128))]),f(h(x),{open:W.value,"onUpdate:open":r[0]||=e=>W.value=e},{default:o(()=>[f(h(T),null,{default:o(()=>[f(h(y),null,{default:o(()=>[f(h(D),null,{default:o(()=>[d(u(G.value),1)]),_:1}),f(h(w),{class:`whitespace-pre-line`},{default:o(()=>[d(u(K.value),1)]),_:1})]),_:1}),f(h(E),null,{default:o(()=>[f(h(b),null,{default:o(()=>[d(u(h(B)(`common.confirm`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),f(h(x),{open:q.value,"onUpdate:open":r[1]||=e=>q.value=e},{default:o(()=>[f(h(T),null,{default:o(()=>[f(h(y),null,{default:o(()=>[f(h(D),null,{default:o(()=>[d(u(J.value),1)]),_:1}),f(h(w),{class:`whitespace-pre-line`},{default:o(()=>[d(u(Y.value),1)]),_:1})]),_:1}),f(h(E),null,{default:o(()=>[f(h(le),null,{default:o(()=>[d(u(h(B)(`common.cancel`)),1)]),_:1}),f(h(b),{onClick:Ie},{default:o(()=>[d(u(h(B)(`common.confirm`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{B as default};