feat(rogue): 调整Boss占用槽位为3格并重构波次配置

- 将Boss默认占用槽位从2格改为3格,允许在任意连续三格空闲位置放置
- 简化波次配置,第1波改为2近战+1近战Boss,第2波改为2近战+1远程Boss
- 更新怪物池配置,调整近战Boss池包含6006和6105
- 重构怪物分配逻辑,统一处理所有类型怪物的槽位分配
- 优化远程Boss的放置策略,优先从后往前寻找空闲槽位
This commit is contained in:
panw
2026-04-08 10:31:20 +08:00
parent 4a6f19ae8b
commit e7b0d55e36
2 changed files with 53 additions and 62 deletions

View File

@@ -10,7 +10,7 @@
*
* 设计说明:
* - 战场固定 5 个占位槽(索引 0-4
* - Boss 占 2 个槽位,只能放在 0、2 号位(确保有连续 2
* - Boss 默认3 个槽位,只有连续 3空闲即可放置
* - MissionMonComp 在每波开始时读取本配置,决定刷怪组合。
*
* 注意:
@@ -77,7 +77,7 @@ export const MonList = {
[MonType.Melee]: [6001,6002,6003], // 近战怪池
[MonType.Long]: [6004,6005], // 远程怪池
[MonType.Support]: [6005], // 辅助怪池
[MonType.MeleeBoss]:[6006,6015], // 近战 Boss 池
[MonType.MeleeBoss]:[6006,6105], // 近战 Boss 池
[MonType.LongBoss]:[6104], // 远程 Boss 池
}
@@ -109,38 +109,26 @@ export interface IWaveSlot {
// - type: 怪物类型 (参考 MonType如近战 0远程 1Boss 3 等)。
// - count: 该类型的怪在场上同时存在几个。
// - slotsPerMon: (可选) 单个怪物体积占用几个占位坑,默认为 1。
// 大型 Boss 设为 2,它会跨占位降落。
// 大型 Boss 默认设为 3,它会跨占位降落。
//
// 【规则约束】:
// - 全场固定 5 个槽位(索引 0-4
// - Boss 固定占用 2 个位置,且只能出现在 1、3 号位(对应索引 0, 2
// - Boss 默认占用 3 个位置,只要有连续 3 格即可
// - 每波怪物总槽位占用不能超过 5。
// =========================================================================================
/** 各波次的怪物占位配置key = 波次编号) */
export const WaveSlotConfig: { [wave: number]: IWaveSlot[] } = {
/** 第 1 波2 近战 + 3 远程 */
/** 第 1 波2 近战 + 1 近战Boss(默认占3格) */
1: [
{ type: MonType.Melee, count: 2 },
{ type: MonType.Long, count: 3 }
{ type: MonType.MeleeBoss, count: 1 }
],
/** 第 2 2 近战 + 2 远程 + 1 辅助 */
/** 第 2波2 近战 + 1 远程Boss(默认占3格) */
2: [
{ type: MonType.Melee, count: 2 },
{ type: MonType.Long, count: 2 },
{ type: MonType.Support, count: 1 }
],
/** 第 3 波2 近战 + 1 近战Boss(占2格) + 1 远程 */
3: [
{ type: MonType.Melee, count: 2 },
{ type: MonType.MeleeBoss, count: 1, slotsPerMon: 2 },
{ type: MonType.Long, count: 1 }
],
/** 第 4 波2 近战 + 1 远程 + 1 远程Boss(占2格) */
4: [
{ type: MonType.Melee, count: 2 },
{ type: MonType.Long, count: 1 },
{ type: MonType.LongBoss, count: 1, slotsPerMon: 2 }
{ type: MonType.LongBoss, count: 1 }
],
}