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
9.2 KiB
JavaScript
1 line
9.2 KiB
JavaScript
import{$t as e,Dn as t,Dt as n,En as r,Et as i,Gn as a,Gt as o,Jt as s,Ln as c,Qt as l,Tt as ee,Vt as te,Xn as u,Xt as d,Yt as f,Zt as p,en as m,gn as h,gt as g,ht as _,mn as v,qn as ne,tn as re,wt as ie}from"./game-logic-Bi1l7y4K.js";import"./vendor-pinia-DqhKuBjp.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{t as y}from"./CardDescription-BSLS07AU.js";import{h as b}from"./game-config-CG6z6nnH.js";import{H as x,K as ae,N as oe,W as S,_ as se,a as C,b as ce,c as le,d as ue,f as de,h as fe,i as w,l as T,o as E,p as pe,q as me,r as D,s as O,u as k,v as A,y as j}from"./index-BT5w6et-.js";import{t as M}from"./useGameConfig-b98LOtBY.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}=ae(),{OFFICERS:V}=M(),H=me(),U=s(()=>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 n=i(e);return _(H.currentPlanet.resources,n)?(g(H.currentPlanet.resources,n),H.player.officers[e]=ie(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 r=i(e);if(!_(H.currentPlanet.resources,r))return!1;g(H.currentPlanet.resources,r);let a=Date.now();return H.player.officers[e]=n(H.player.officers[e],t,a),!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]=ee(e)},q.value=!0};return(n,i)=>(v(),l(`div`,N,[f(`h1`,P,u(a(B)(`officersView.title`)),1),f(`div`,F,[(v(!0),l(o,null,h(Object.values(a(b)),n=>(v(),d(a(ce),{key:n},{default:r(()=>[m(a(A),null,{default:r(()=>[f(`div`,I,[f(`div`,L,[m(a(se),{class:`text-sm sm:text-base lg:text-lg order-2 sm:order-1`},{default:r(()=>[e(u(a(V)[n].name),1)]),_:2},1024),Z(n)?(v(),d(a(x),{key:0,variant:`default`,class:`text-xs whitespace-nowrap self-start order-1 sm:order-2`},{default:r(()=>[e(u(a(B)(`officersView.activated`)),1)]),_:1})):(v(),d(a(x),{key:1,variant:`outline`,class:`text-xs whitespace-nowrap self-start order-1 sm:order-2`},{default:r(()=>[e(u(a(B)(`officersView.inactive`)),1)]),_:1}))])]),m(a(y),{class:`text-xs sm:text-sm`},{default:r(()=>[e(u(a(V)[n].description),1)]),_:2},1024)]),_:2},1024),m(a(j),{class:`space-y-4`},{default:r(()=>[Z(n)?(v(),l(`div`,R,[f(`div`,z,[f(`p`,he,u(a(B)(`officersView.activeStatus`)),1),f(`p`,ge,u(a(B)(`officersView.expirationTime`))+`: `+u(a(ue)(Re(n))),1),f(`p`,_e,u(a(B)(`officersView.remainingTime`))+`: `+u(a(pe)(Q(n))),1)])])):p(``,!0),f(`div`,ve,[f(`p`,ye,u(a(B)(`officersView.recruitCost`))+` (7`+u(a(B)(`officersView.days`))+`):`,1),f(`div`,be,[(v(),l(o,null,h(Le,e=>t(f(`div`,{key:e.key,class:`flex items-center gap-2`},[m(oe,{type:e.key,size:`sm`},null,8,[`type`]),f(`span`,xe,u(a(B)(`resources.${e.key}`))+`:`,1),f(`span`,{class:ne([`font-medium text-sm`,U.value?a(fe)(U.value.resources[e.key],a(V)[n].cost[e.key]):``])},u(a(de)(a(V)[n].cost[e.key])),3)]),[[te,e.key!==`darkMatter`||a(V)[n].cost.darkMatter>0]])),64))])]),f(`div`,Se,[f(`p`,Ce,u(a(B)(`officersView.benefitsBonus`))+`:`,1),f(`div`,we,[a(V)[n].benefits.resourceProductionBonus?(v(),l(`div`,Te,[i[2]||=f(`span`,{class:`text-green-600 dark:text-green-400`},`↑`,-1),f(`span`,null,u(a(B)(`officersView.resourceProduction`))+` +`+u(a(V)[n].benefits.resourceProductionBonus)+`%`,1)])):p(``,!0),a(V)[n].benefits.darkMatterProductionBonus?(v(),l(`div`,Ee,[i[3]||=f(`span`,{class:`text-green-600 dark:text-green-400`},`↑`,-1),f(`span`,null,u(a(B)(`officersView.darkMatterProduction`))+` +`+u(a(V)[n].benefits.darkMatterProductionBonus)+`%`,1)])):p(``,!0),a(V)[n].benefits.buildingSpeedBonus?(v(),l(`div`,De,[i[4]||=f(`span`,{class:`text-green-600 dark:text-green-400`},`↑`,-1),f(`span`,null,u(a(B)(`officersView.buildingSpeed`))+` +`+u(a(V)[n].benefits.buildingSpeedBonus)+`%`,1)])):p(``,!0),a(V)[n].benefits.researchSpeedBonus?(v(),l(`div`,Oe,[i[5]||=f(`span`,{class:`text-green-600 dark:text-green-400`},`↑`,-1),f(`span`,null,u(a(B)(`officersView.researchSpeed`))+` +`+u(a(V)[n].benefits.researchSpeedBonus)+`%`,1)])):p(``,!0),a(V)[n].benefits.fleetSpeedBonus?(v(),l(`div`,ke,[i[6]||=f(`span`,{class:`text-green-600 dark:text-green-400`},`↑`,-1),f(`span`,null,u(a(B)(`officersView.fleetSpeed`))+` +`+u(a(V)[n].benefits.fleetSpeedBonus)+`%`,1)])):p(``,!0),a(V)[n].benefits.fuelConsumptionReduction?(v(),l(`div`,Ae,[i[7]||=f(`span`,{class:`text-green-600 dark:text-green-400`},`↓`,-1),f(`span`,null,u(a(B)(`officersView.fuelConsumption`))+` -`+u(a(V)[n].benefits.fuelConsumptionReduction)+`%`,1)])):p(``,!0),a(V)[n].benefits.defenseBonus?(v(),l(`div`,je,[i[8]||=f(`span`,{class:`text-green-600 dark:text-green-400`},`↑`,-1),f(`span`,null,u(a(B)(`officersView.defense`))+` +`+u(a(V)[n].benefits.defenseBonus)+`%`,1)])):p(``,!0),a(V)[n].benefits.storageCapacityBonus?(v(),l(`div`,Me,[i[9]||=f(`span`,{class:`text-green-600 dark:text-green-400`},`↑`,-1),f(`span`,null,u(a(B)(`officersView.storageCapacity`))+` +`+u(a(V)[n].benefits.storageCapacityBonus)+`%`,1)])):p(``,!0),a(V)[n].benefits.additionalBuildQueue?(v(),l(`div`,Ne,[i[10]||=f(`span`,{class:`text-green-600 dark:text-green-400`},`+`,-1),f(`span`,null,u(a(B)(`officersView.buildQueue`))+` +`+u(a(V)[n].benefits.additionalBuildQueue),1)])):p(``,!0),a(V)[n].benefits.additionalFleetSlots?(v(),l(`div`,Pe,[i[11]||=f(`span`,{class:`text-green-600 dark:text-green-400`},`+`,-1),f(`span`,null,u(a(B)(`officersView.fleetSlots`))+` +`+u(a(V)[n].benefits.additionalFleetSlots),1)])):p(``,!0)])]),f(`div`,Fe,[Z(n)?p(``,!0):(v(),d(a(S),{key:0,onClick:e=>Be(n),disabled:!$(n),class:`w-full`},{default:r(()=>[e(u(a(B)(`officersView.hire`))+` (7`+u(a(B)(`officersView.days`))+`) `,1)]),_:1},8,[`onClick`,`disabled`])),Z(n)?(v(),d(a(S),{key:1,onClick:e=>He(n),disabled:!$(n),class:`w-full sm:flex-1`},{default:r(()=>[e(u(a(B)(`officersView.renew`))+` (7`+u(a(B)(`officersView.days`))+`) `,1)]),_:1},8,[`onClick`,`disabled`])):p(``,!0),Z(n)?(v(),d(a(S),{key:2,onClick:e=>Ue(n),variant:`outline`,class:`w-full sm:w-auto`},{default:r(()=>[e(u(a(B)(`officersView.dismiss`)),1)]),_:1},8,[`onClick`])):p(``,!0)])]),_:2},1024)]),_:2},1024))),128))]),m(a(k),{open:W.value,"onUpdate:open":i[0]||=e=>W.value=e},{default:r(()=>[m(a(O),null,{default:r(()=>[m(a(w),null,{default:r(()=>[m(a(D),null,{default:r(()=>[e(u(G.value),1)]),_:1}),m(a(E),{class:`whitespace-pre-line`},{default:r(()=>[e(u(K.value),1)]),_:1})]),_:1}),m(a(C),null,{default:r(()=>[m(a(T),null,{default:r(()=>[e(u(a(B)(`common.confirm`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),m(a(k),{open:q.value,"onUpdate:open":i[1]||=e=>q.value=e},{default:r(()=>[m(a(O),null,{default:r(()=>[m(a(w),null,{default:r(()=>[m(a(D),null,{default:r(()=>[e(u(J.value),1)]),_:1}),m(a(E),{class:`whitespace-pre-line`},{default:r(()=>[e(u(Y.value),1)]),_:1})]),_:1}),m(a(C),null,{default:r(()=>[m(a(le),null,{default:r(()=>[e(u(a(B)(`common.cancel`)),1)]),_:1}),m(a(T),{onClick:Ie},{default:r(()=>[e(u(a(B)(`common.confirm`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{B as default}; |