From 8f29a63756af8a0997378e2dbd373c3abadb23cb Mon Sep 17 00:00:00 2001 From: wenyu Date: Wed, 18 Mar 2026 19:37:18 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E8=A7=86=E5=9B=BE):=20=E6=8F=90?= =?UTF-8?q?=E5=8F=96=E5=AF=BC=E5=BC=B9=E5=8F=91=E5=B0=84=E4=BA=95=E5=AE=B9?= =?UTF-8?q?=E9=87=8F=E8=AE=A1=E7=AE=97=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将导弹发射井容量计算从 GMView.vue 中提取到专用逻辑模块 简化防御设置中的导弹数量分配逻辑,统一使用提取的函数 --- src/views/GMView.vue | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/views/GMView.vue b/src/views/GMView.vue index 0603e40..f6867a9 100644 --- a/src/views/GMView.vue +++ b/src/views/GMView.vue @@ -318,6 +318,7 @@ import * as npcBehaviorLogic from '@/logic/npcBehaviorLogic' import * as publicLogic from '@/logic/publicLogic' import { calculateMaxFleetStorage } from '@/logic/fleetStorageLogic' + import { calculateMissileSiloCapacity } from '@/logic/shipLogic' import { Home, Trash2 } from 'lucide-vue-next' // --- 预设系统 --- @@ -569,17 +570,13 @@ }) } else if (section.tabValue === 'defense') { if (!selectedPlanet.value) return - const siloLevel = selectedPlanet.value.buildings[BuildingType.MissileSilo] || 0 - const missileCapacity = siloLevel * 10 - const halfCapacity = missileCapacity / 2 - + const missileCapacity = calculateMissileSiloCapacity(selectedPlanet.value.buildings) + const defaultMissileCount = Math.floor(missileCapacity / 2) + section.items.forEach((item: string) => { - if (item === DefenseType.AntiBallisticMissile) { - // 反弹道导弹占用1个空间,分配一半容量 - section.setValue(item, Math.floor(halfCapacity)) - } else if (item === DefenseType.InterplanetaryMissile) { - // 星际导弹占用1个空间,分配一半容量 - section.setValue(item, Math.floor(halfCapacity)) + // 两种导弹都占用1格空间,默认各分配一半容量 + if (item === DefenseType.AntiBallisticMissile || item === DefenseType.InterplanetaryMissile) { + section.setValue(item, defaultMissileCount) } else { section.setValue(item, 10000) }