Files
pixelheros/assets/script/game/map/RogueConfig.ts
panw 9a1d517aa9 refactor(game): 重构怪物波次生成逻辑,移除排队机制
- 移除 IWaveSlot 中的 monCount 字段,改为固定 6 个槽位
- Boss 现在固定占用 2 个槽位且只能放置在 1、3、5 号位
- 每波开始时立即生成所有怪物,不再支持死亡后排队刷怪
- 简化 MissionMonComp 中的槽位管理逻辑,移除 slotSpawnQueues 等复杂结构
2026-04-07 16:36:49 +08:00

85 lines
3.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
export enum UpType {
AP1_HP1 = 0, //平衡
HP2 = 1, //强hp
AP2 = 2 //强ap
}
// 普通关卡成长值:第一项为攻击力成长,第二项为血量成长
export const StageGrow = {
[UpType.AP1_HP1]: [4,10], // 平衡型攻4 血10
[UpType.HP2]: [2,20], // 强HP型攻2 血20
[UpType.AP2]: [8,0], // 强AP型攻8 血0
}
// Boss关卡成长值同上数值更高
export const StageBossGrow = {
[UpType.AP1_HP1]: [3,16], // 平衡型攻3 血16
[UpType.HP2]: [1,24], // 强HP型攻1 血24
[UpType.AP2]: [10,4], // 强AP型攻10 血4
}
export const MonType = {
Melee: 0, // 近战高功
Long: 1, // 高速贴近
Support: 2, // 支持怪
MeleeBoss: 3, // boss怪
LongBoss: 4, // boss怪
}
export const MonList = {
[MonType.Melee]: [6001,6002,6003], // 近战怪
[MonType.Long]: [6004,6005], // 远程怪
[MonType.Support]: [6005], // 辅助怪
[MonType.MeleeBoss]:[6006,6015], // 近战boss
[MonType.LongBoss]:[6104], // 远程boss
}
/*
*** 全局刷怪强度配置,后期根据玩家强度动态调整
*/
export const SpawnPowerBias = 1
export interface IWaveSlot {
type: number; // 对应 MonType
count: number; // 占位数量
slotsPerMon?: number; // 每个怪占用几个位置,默认 1
}
// =========================================================================================
// 【每波怪物占位与刷怪配置说明】
// 1. 字段说明:
// - type: 怪物类型 (参考 MonType如近战 0远程 1Boss 3 等)。
// - count: 该类型的怪在场上同时存在几个。
// - slotsPerMon: (可选) 单个怪物体积占用几个占位坑,默认为 1。如果是大型 Boss 可设为 2它会跨占位降落。
//
// 【注意】:
// 全场固定 6 个槽位(索引 0-5
// Boss 固定占用 2 个位置,且只能出现在 1、3、5 号位(对应索引 0, 2, 4
// 每波怪物总槽位占用不能超过 6。不再支持排队刷怪。
// =========================================================================================
export const WaveSlotConfig: { [wave: number]: IWaveSlot[] } = {
1: [
{ type: MonType.Melee, count: 3 },
{ type: MonType.Long, count: 3 }
],
2: [
{ type: MonType.Melee, count: 2 },
{ type: MonType.Long, count: 2 },
{ type: MonType.Support, count: 2 }
],
3: [
{ type: MonType.Melee, count: 2 },
{ 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.LongBoss, count: 1, slotsPerMon: 2 }
],
}
// 默认占位配置 (如果在 WaveSlotConfig 中找不到波次,则使用此配置)
export const DefaultWaveSlot: IWaveSlot[] = [
{ type: MonType.Melee, count: 3 },
{ type: MonType.Long, count: 3 }
]