mirror of
https://github.com/setube/ogame-vue-ts.git
synced 2026-05-11 23:45:11 +08:00
添加了docs目录及其静态资源文件,支持前端文档和演示页面部署。新增dist-electron/main.js,实现Electron主进程窗口加载本地docs或开发服务器。更新.gitignore,允许docs目录纳入版本控制。
1 line
9.7 KiB
JavaScript
1 line
9.7 KiB
JavaScript
import{At as e,C as t,Cn as n,Ct as r,Dt as i,Jt as a,Kt as o,Mt as s,Nt as c,On as l,Ot as u,et as d,hn as f,in as p,jt as m,yn as h}from"./game-logic-CfBcTF_c.js";import"./vendor-pinia-DP9x75p8.js";import"./vendor-crypto-Ce_BCn-h.js";import"./game-i18n-DEf7ySVe.js";import"./vendor-others-CUjrprN5.js";import"./vendor-reka-ui-CZQh7FLl.js";import"./vendor-utils-Dg-HLkEU.js";import"./vendor-vueuse-C7EbLx--.js";import{c as ee,g as te,p as ne,t as re}from"./vendor-icons-W6Ny__75.js";import"./TooltipProvider-BAp4BAXy.js";import{t as g}from"./CardDescription-D2AN1hhX.js";import{d as _,m as v}from"./game-config-D-D7cMgJ.js";import{M as y,O as b,P as x,c as S,l as C,s as w,t as T,u as E,w as D}from"./index-DWmvUlvu.js";import{t as ie}from"./useGameConfig-B5wf1i8i.js";import{t as ae}from"./BattleReportDialog-CWBu6H63.js";var oe={class:`container mx-auto p-4 sm:p-6 space-y-6`},se={class:`text-2xl sm:text-3xl font-bold`},ce={class:`flex gap-2 border-b`},le={class:`text-sm font-medium mb-3`},ue={class:`grid grid-cols-2 md:grid-cols-3 gap-3`},O={class:`text-sm font-medium mb-3`},k={class:`grid grid-cols-3 gap-3`},A={class:`space-y-1`},j={class:`space-y-1`},M={class:`space-y-1`},N={class:`text-sm font-medium mb-3`},P={class:`grid grid-cols-2 md:grid-cols-3 gap-3`},F={class:`text-sm font-medium mb-3`},I={class:`grid grid-cols-2 md:grid-cols-3 gap-3`},L={class:`text-sm font-medium mb-3`},R={class:`grid grid-cols-3 gap-3`},z={class:`space-y-1`},B={class:`space-y-1`},V={class:`space-y-1`},H={class:`text-sm font-medium mb-3`},de={class:`grid grid-cols-3 gap-3`},fe={class:`space-y-1`},pe={class:`space-y-1`},me={class:`space-y-1`},he={class:`flex gap-2`},U=c({__name:`BattleSimulatorView`,setup(c){let{t:U}=x(),{SHIPS:W,DEFENSES:ge}=ie(),G=f({[v.LightFighter]:0,[v.HeavyFighter]:0,[v.Cruiser]:0,[v.Battleship]:0,[v.SmallCargo]:0,[v.LargeCargo]:0,[v.ColonyShip]:0,[v.Recycler]:0,[v.EspionageProbe]:0,[v.DarkMatterHarvester]:0}),K=f(`attacker`),q=f({weapon:0,shield:0,armor:0}),J=f({[v.LightFighter]:0,[v.HeavyFighter]:0,[v.Cruiser]:0,[v.Battleship]:0,[v.SmallCargo]:0,[v.LargeCargo]:0,[v.ColonyShip]:0,[v.Recycler]:0,[v.EspionageProbe]:0,[v.DarkMatterHarvester]:0}),Y=f({[_.RocketLauncher]:0,[_.LightLaser]:0,[_.HeavyLaser]:0,[_.GaussCannon]:0,[_.IonCannon]:0,[_.PlasmaTurret]:0,[_.SmallShieldDome]:0,[_.LargeShieldDome]:0}),X=f({weapon:0,shield:0,armor:0}),Z=f({metal:1e5,crystal:5e4,deuterium:25e3,darkMatter:100,energy:0}),Q=f(null),$=f(!1),_e=async()=>{let e={ships:h(G.value),weaponTech:q.value.weapon,shieldTech:q.value.shield,armorTech:q.value.armor},n={ships:h(J.value),defense:h(Y.value),weaponTech:X.value.weapon,shieldTech:X.value.shield,armorTech:X.value.armor},r=await t.simulateBattle({attacker:e,defender:n}),i=r.winner===`attacker`?await t.calculatePlunder({defenderResources:h(Z.value),attackerFleet:r.attackerRemaining}):{metal:0,crystal:0,deuterium:0,darkMatter:0,energy:0},a=await t.calculateDebris({attackerLosses:r.attackerLosses,defenderLosses:r.defenderLosses}),o=d(a)/100;Q.value={id:`sim_${Date.now()}`,timestamp:Date.now(),attackerId:`simulator_attacker`,defenderId:`simulator_defender`,attackerPlanetId:`sim_attacker`,defenderPlanetId:`sim_defender`,attackerFleet:G.value,defenderFleet:J.value,defenderDefense:Y.value,attackerLosses:r.attackerLosses,defenderLosses:r.defenderLosses,winner:r.winner,plunder:i,debrisField:a,rounds:r.rounds,attackerRemaining:r.attackerRemaining,defenderRemaining:r.defenderRemaining,roundDetails:r.roundDetails,moonChance:o},$.value=!0},ve=()=>{Object.keys(G.value).forEach(e=>{G.value[e]=0}),Object.keys(J.value).forEach(e=>{J.value[e]=0}),Object.keys(Y.value).forEach(e=>{Y.value[e]=0}),q.value={weapon:0,shield:0,armor:0},X.value={weapon:0,shield:0,armor:0},Q.value=null,$.value=!1};return(t,c)=>(o(),e(`div`,oe,[i(`h1`,se,l(n(U)(`simulatorView.title`)),1),i(`div`,ce,[s(n(y),{onClick:c[0]||=e=>K.value=`attacker`,variant:K.value===`attacker`?`default`:`ghost`,class:`rounded-b-none`},{default:p(()=>[s(n(ee)),m(` `+l(n(U)(`simulatorView.attacker`)),1)]),_:1},8,[`variant`]),s(n(y),{onClick:c[1]||=e=>K.value=`defender`,variant:K.value===`defender`?`default`:`ghost`,class:`rounded-b-none`},{default:p(()=>[s(n(ne)),m(` `+l(n(U)(`simulatorView.defender`)),1)]),_:1},8,[`variant`])]),K.value===`attacker`?(o(),u(n(E),{key:0},{default:p(()=>[s(n(S),null,{default:p(()=>[s(n(w),null,{default:p(()=>[m(l(n(U)(`simulatorView.attackerConfig`)),1)]),_:1}),s(n(g),null,{default:p(()=>[m(l(n(U)(`simulatorView.attackerConfigDesc`)),1)]),_:1})]),_:1}),s(n(C),{class:`space-y-4`},{default:p(()=>[i(`div`,null,[i(`h3`,le,l(n(U)(`simulatorView.fleet`)),1),i(`div`,ue,[(o(!0),e(r,null,a(Object.values(n(v)),t=>(o(),e(`div`,{key:t,class:`space-y-1`},[s(n(T),{for:`attacker-${t}`,class:`text-xs`},{default:p(()=>[m(l(n(W)[t].name),1)]),_:2},1032,[`for`]),s(n(b),{id:`attacker-${t}`,modelValue:G.value[t],"onUpdate:modelValue":e=>G.value[t]=e,modelModifiers:{number:!0},type:`number`,min:`0`,class:`h-8`},null,8,[`id`,`modelValue`,`onUpdate:modelValue`])]))),128))])]),i(`div`,null,[i(`h3`,O,l(n(U)(`simulatorView.techLevels`)),1),i(`div`,k,[i(`div`,A,[s(n(T),{for:`attacker-weapon`,class:`text-xs`},{default:p(()=>[m(l(n(U)(`simulatorView.weapon`)),1)]),_:1}),s(n(b),{id:`attacker-weapon`,modelValue:q.value.weapon,"onUpdate:modelValue":c[2]||=e=>q.value.weapon=e,modelModifiers:{number:!0},type:`number`,min:`0`,class:`h-8`},null,8,[`modelValue`])]),i(`div`,j,[s(n(T),{for:`attacker-shield`,class:`text-xs`},{default:p(()=>[m(l(n(U)(`simulatorView.shield`)),1)]),_:1}),s(n(b),{id:`attacker-shield`,modelValue:q.value.shield,"onUpdate:modelValue":c[3]||=e=>q.value.shield=e,modelModifiers:{number:!0},type:`number`,min:`0`,class:`h-8`},null,8,[`modelValue`])]),i(`div`,M,[s(n(T),{for:`attacker-armor`,class:`text-xs`},{default:p(()=>[m(l(n(U)(`simulatorView.armor`)),1)]),_:1}),s(n(b),{id:`attacker-armor`,modelValue:q.value.armor,"onUpdate:modelValue":c[4]||=e=>q.value.armor=e,modelModifiers:{number:!0},type:`number`,min:`0`,class:`h-8`},null,8,[`modelValue`])])])])]),_:1})]),_:1})):(o(),u(n(E),{key:1},{default:p(()=>[s(n(S),null,{default:p(()=>[s(n(w),null,{default:p(()=>[m(l(n(U)(`simulatorView.defenderConfig`)),1)]),_:1}),s(n(g),null,{default:p(()=>[m(l(n(U)(`simulatorView.defenderConfigDesc`)),1)]),_:1})]),_:1}),s(n(C),{class:`space-y-4`},{default:p(()=>[i(`div`,null,[i(`h3`,N,l(n(U)(`simulatorView.fleet`)),1),i(`div`,P,[(o(!0),e(r,null,a(Object.values(n(v)),t=>(o(),e(`div`,{key:t,class:`space-y-1`},[s(n(T),{for:`defender-${t}`,class:`text-xs`},{default:p(()=>[m(l(n(W)[t].name),1)]),_:2},1032,[`for`]),s(n(b),{id:`defender-${t}`,modelValue:J.value[t],"onUpdate:modelValue":e=>J.value[t]=e,modelModifiers:{number:!0},type:`number`,min:`0`,class:`h-8`},null,8,[`id`,`modelValue`,`onUpdate:modelValue`])]))),128))])]),i(`div`,null,[i(`h3`,F,l(n(U)(`simulatorView.defenseStructures`)),1),i(`div`,I,[(o(!0),e(r,null,a(Object.values(n(_)),t=>(o(),e(`div`,{key:t,class:`space-y-1`},[s(n(T),{for:`defense-${t}`,class:`text-xs`},{default:p(()=>[m(l(n(ge)[t].name),1)]),_:2},1032,[`for`]),s(n(b),{id:`defense-${t}`,modelValue:Y.value[t],"onUpdate:modelValue":e=>Y.value[t]=e,modelModifiers:{number:!0},type:`number`,min:`0`,class:`h-8`},null,8,[`id`,`modelValue`,`onUpdate:modelValue`])]))),128))])]),i(`div`,null,[i(`h3`,L,l(n(U)(`simulatorView.techLevels`)),1),i(`div`,R,[i(`div`,z,[s(n(T),{for:`defender-weapon`,class:`text-xs`},{default:p(()=>[m(l(n(U)(`simulatorView.weapon`)),1)]),_:1}),s(n(b),{id:`defender-weapon`,modelValue:X.value.weapon,"onUpdate:modelValue":c[5]||=e=>X.value.weapon=e,modelModifiers:{number:!0},type:`number`,min:`0`,class:`h-8`},null,8,[`modelValue`])]),i(`div`,B,[s(n(T),{for:`defender-shield`,class:`text-xs`},{default:p(()=>[m(l(n(U)(`simulatorView.shield`)),1)]),_:1}),s(n(b),{id:`defender-shield`,modelValue:X.value.shield,"onUpdate:modelValue":c[6]||=e=>X.value.shield=e,modelModifiers:{number:!0},type:`number`,min:`0`,class:`h-8`},null,8,[`modelValue`])]),i(`div`,V,[s(n(T),{for:`defender-armor`,class:`text-xs`},{default:p(()=>[m(l(n(U)(`simulatorView.armor`)),1)]),_:1}),s(n(b),{id:`defender-armor`,modelValue:X.value.armor,"onUpdate:modelValue":c[7]||=e=>X.value.armor=e,modelModifiers:{number:!0},type:`number`,min:`0`,class:`h-8`},null,8,[`modelValue`])])])]),i(`div`,null,[i(`h3`,H,l(n(U)(`simulatorView.defenderResources`)),1),i(`div`,de,[i(`div`,fe,[s(n(T),{for:`defender-metal`,class:`text-xs flex items-center gap-1`},{default:p(()=>[s(D,{type:`metal`,size:`sm`}),m(` `+l(n(U)(`resources.metal`)),1)]),_:1}),s(n(b),{id:`defender-metal`,modelValue:Z.value.metal,"onUpdate:modelValue":c[8]||=e=>Z.value.metal=e,modelModifiers:{number:!0},type:`number`,min:`0`,class:`h-8`},null,8,[`modelValue`])]),i(`div`,pe,[s(n(T),{for:`defender-crystal`,class:`text-xs flex items-center gap-1`},{default:p(()=>[s(D,{type:`crystal`,size:`sm`}),m(` `+l(n(U)(`resources.crystal`)),1)]),_:1}),s(n(b),{id:`defender-crystal`,modelValue:Z.value.crystal,"onUpdate:modelValue":c[9]||=e=>Z.value.crystal=e,modelModifiers:{number:!0},type:`number`,min:`0`,class:`h-8`},null,8,[`modelValue`])]),i(`div`,me,[s(n(T),{for:`defender-deuterium`,class:`text-xs flex items-center gap-1`},{default:p(()=>[s(D,{type:`deuterium`,size:`sm`}),m(` `+l(n(U)(`resources.deuterium`)),1)]),_:1}),s(n(b),{id:`defender-deuterium`,modelValue:Z.value.deuterium,"onUpdate:modelValue":c[10]||=e=>Z.value.deuterium=e,modelModifiers:{number:!0},type:`number`,min:`0`,class:`h-8`},null,8,[`modelValue`])])])])]),_:1})]),_:1})),i(`div`,he,[s(n(y),{onClick:_e,class:`flex-1`,size:`lg`},{default:p(()=>[s(n(re),{class:`h-4 w-4 mr-2`}),m(` `+l(n(U)(`simulatorView.startSimulation`)),1)]),_:1}),s(n(y),{onClick:ve,variant:`outline`,size:`lg`},{default:p(()=>[s(n(te),{class:`h-4 w-4 mr-2`}),m(` `+l(n(U)(`simulatorView.reset`)),1)]),_:1})]),s(ae,{open:$.value,"onUpdate:open":c[11]||=e=>$.value=e,report:Q.value},null,8,[`open`,`report`])]))}});export{U as default}; |