feat(刷怪): 支持大型怪物占用多个槽位

- 在 IWaveSlot 配置中增加 slotsPerMon 字段,用于指定每个怪物占用的槽位数量
- 修改 pickAssignSlotIndex 方法以寻找连续且类型匹配的空闲槽位
- 调整 enqueueMonsterRequest 和 addMonsterBySlot 方法以处理多槽位怪物
- 更新波次配置,为 MeleeBoss 和 LongBoss 设置 slotsPerMon: 2
- 大型怪物生成时会居中放置在占用的多个槽位上
This commit is contained in:
panw
2026-04-03 16:37:57 +08:00
parent eb106c1b60
commit 08b0ad128d
2 changed files with 83 additions and 24 deletions

View File

@@ -37,7 +37,8 @@ export const SpawnPowerBias = 1
export interface IWaveSlot {
type: number; // 对应 MonType
count: number;
count: number; // 怪物数量
slotsPerMon?: number; // 每个怪占用几个位置,默认 1
}
// 每波怪物占位数量配置:数组顺序即为占位从左到右的排列顺序
@@ -53,14 +54,14 @@ export const WaveSlotConfig: { [wave: number]: IWaveSlot[] } = {
],
3: [
{ type: MonType.Melee, count: 3 },
{ type: MonType.MeleeBoss, count: 1 },
{ type: MonType.MeleeBoss, count: 1, slotsPerMon: 2 },
{ type: MonType.Long, count: 2 }
],
4: [
{ type: MonType.Melee, count: 2 },
{ type: MonType.Long, count: 2 },
{ type: MonType.Support, count: 1 },
{ type: MonType.LongBoss, count: 1 }
{ type: MonType.LongBoss, count: 1, slotsPerMon: 2 }
],
}