Files
ogame-vue-ts/docs/assets/ResearchView-Do1WxfNH.js
谦君 705ee8c3db feat: 初始化项目结构与核心功能
引入项目基础目录结构,包含多语言支持、主要页面与组件、核心游戏逻辑、UI 组件库、加密与本地持久化、自动化 Docker 构建流程、GitHub issue 模板(中英文)、README(中英文)、LICENSE 及开发配置文件。实现 OGame 单机版主要功能模块,为后续开发和扩展奠定基础。
2025-12-11 14:49:25 +08:00

1 line
3.8 KiB
JavaScript

import{t as e}from"./UnlockRequirement-DeOUxO_t.js";import{t}from"./CardDescription-Cb9v68Xa.js";import{An as n,En as r,Fn as i,Gn as a,It as o,Mn as s,Nn as c,On as l,Pn as u,Pt as d,Qn as f,V as p,W as m,Z as h,bn as ee,ct as te,dt as ne,er as re,ft as ie,ir as g,jn as _,kn as v,lt as ae,qn as oe,rr as y,rt as b,sr as x,ut as S,v as C,w,xn as T,y as E,yt as D,zt as O}from"./index-BpOElaf9.js";import{t as k}from"./useGameConfig-DqswvIth.js";import{t as A}from"./AlertDialog-BbpHh-RO.js";import{t as j}from"./CardUnlockOverlay-tiSNfyF3.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 lg: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-2.5 sm:space-y-3`},se={class:`text-xs sm:text-sm space-y-1.5 sm:space-y-2`},R={class:`text-muted-foreground mb-1 sm:mb-2`},z={class:`space-y-1 sm:space-y-1.5`},B={class:`flex items-center gap-1.5 sm:gap-2`},V={class:`text-xs`},H={class:`flex items-center gap-1.5 sm:gap-2`},U={class:`text-xs`},W={class:`flex items-center gap-1.5 sm:gap-2`},G={class:`text-xs`},K=i({__name:`ResearchView`,setup(i){let K=T(),ce=D(),{t:q}=ee(),{TECHNOLOGIES:J}=k(),Y=l(()=>K.currentPlanet),X=l(()=>K.player),Z=re(null),le=e=>{if(!K.currentPlanet||!E(K.currentPlanet,e,K.player.technologies,K.player.researchQueue).valid)return!1;let t=K.player.technologies[e]||0,{queueItem:n}=C(K.currentPlanet,e,t,K.player.officers);return K.player.researchQueue.push(n),!0},ue=e=>{le(e)||Z.value?.show({title:q(`researchView.researchFailed`),message:q(`researchView.researchFailedMessage`)})},Q=e=>X.value.technologies[e]||0,de=e=>{if(!Y.value||X.value.researchQueue.length>0)return!1;let t=J.value[e],n=$(e,Q(e)+1);return w(Y.value,K.player.technologies,t.requirements)&&Y.value.resources.metal>=n.metal&&Y.value.resources.crystal>=n.crystal&&Y.value.resources.deuterium>=n.deuterium},$=(e,t)=>h(e,t);return(i,l)=>Y.value?(a(),s(`div`,M,[u(e,{"required-building":y(b).ResearchLab,"required-level":1},null,8,[`required-building`]),v(`h1`,N,x(y(q)(`researchView.title`)),1),v(`div`,P,[(a(!0),s(r,null,oe(Object.values(y(te)),e=>(a(),n(y(ie),{key:e,class:`relative`},{default:f(()=>[u(j,{requirements:y(J)[e].requirements},null,8,[`requirements`]),u(y(S),null,{default:f(()=>[v(`div`,F,[v(`div`,I,[u(y(ae),{class:`text-base sm:text-lg cursor-pointer hover:text-primary transition-colors`,onClick:t=>y(ce).openTechnology(e,Q(e))},{default:f(()=>[c(x(y(J)[e].name),1)]),_:2},1032,[`onClick`]),u(y(t),{class:`text-xs sm:text-sm`},{default:f(()=>[c(x(y(J)[e].description),1)]),_:2},1024)]),u(y(o),{variant:`secondary`,class:`text-xs whitespace-nowrap flex-shrink-0`},{default:f(()=>[c(`Lv `+x(Q(e)),1)]),_:2},1024)])]),_:2},1024),u(y(ne),null,{default:f(()=>[v(`div`,L,[v(`div`,se,[v(`p`,R,x(y(q)(`researchView.researchCost`))+`:`,1),v(`div`,z,[v(`div`,B,[u(d,{type:`metal`,size:`sm`}),v(`span`,V,x(y(q)(`resources.metal`))+`:`,1),v(`span`,{class:g([`font-medium text-xs sm:text-sm`,y(m)(Y.value.resources.metal,$(e,Q(e)+1).metal)])},x(y(p)($(e,Q(e)+1).metal)),3)]),v(`div`,H,[u(d,{type:`crystal`,size:`sm`}),v(`span`,U,x(y(q)(`resources.crystal`))+`:`,1),v(`span`,{class:g([`font-medium text-xs sm:text-sm`,y(m)(Y.value.resources.crystal,$(e,Q(e)+1).crystal)])},x(y(p)($(e,Q(e)+1).crystal)),3)]),v(`div`,W,[u(d,{type:`deuterium`,size:`sm`}),v(`span`,G,x(y(q)(`resources.deuterium`))+`:`,1),v(`span`,{class:g([`font-medium text-xs sm:text-sm`,y(m)(Y.value.resources.deuterium,$(e,Q(e)+1).deuterium)])},x(y(p)($(e,Q(e)+1).deuterium)),3)])])]),u(y(O),{onClick:t=>ue(e),disabled:!de(e),class:`w-full`},{default:f(()=>[c(x(y(q)(`researchView.research`)),1)]),_:1},8,[`onClick`,`disabled`])])]),_:2},1024)]),_:2},1024))),128))]),u(A,{ref_key:`alertDialog`,ref:Z},null,512)])):_(``,!0)}});export{K as default};