docs: 为游戏地图模块添加详细的代码注释
为游戏地图模块的脚本文件添加全面的注释,说明每个组件的职责、关键设计、依赖关系和使用方式。注释覆盖了英雄信息面板、技能卡槽位管理器、排行榜弹窗、卡牌控制器、背景滚动组件等核心功能模块,提高了代码的可读性和维护性。 同时修复了英雄预制体的激活状态和技能效果预制体的尺寸参数。
This commit is contained in:
@@ -1,74 +1,142 @@
|
||||
/**
|
||||
* @file RogueConfig.ts
|
||||
* @description Roguelike 关卡配置 —— 怪物类型、成长值、波次刷怪方案
|
||||
*
|
||||
* 职责:
|
||||
* 1. 定义怪物属性成长类型(UpType)和每种类型的 AP / HP 每阶段成长值。
|
||||
* 2. 定义怪物分类(MonType)和对应的怪物 UUID 池。
|
||||
* 3. 定义每一波(Wave)的怪物占位配置(WaveSlotConfig / DefaultWaveSlot)。
|
||||
* 4. 提供全局刷怪强度偏差系数(SpawnPowerBias)。
|
||||
*
|
||||
* 设计说明:
|
||||
* - 战场固定 6 个占位槽(索引 0-5)。
|
||||
* - Boss 占 2 个槽位,只能放在 0、2、4 号位(确保有连续 2 格)。
|
||||
* - MissionMonComp 在每波开始时读取本配置,决定刷怪组合。
|
||||
*
|
||||
* 注意:
|
||||
* - StageGrow / StageBossGrow 的索引 [0] 为 AP 成长,[1] 为 HP 成长。
|
||||
* - 实际计算公式:base_stat + stage × grow_value × SpawnPowerBias。
|
||||
*/
|
||||
|
||||
// ======================== 属性成长类型枚举 ========================
|
||||
|
||||
/** 怪物属性成长类型 */
|
||||
export enum UpType {
|
||||
AP1_HP1 = 0, //平衡
|
||||
HP2 = 1, //强hp
|
||||
AP2 = 2 //强ap
|
||||
/** 平衡型:AP 和 HP 均匀成长 */
|
||||
AP1_HP1 = 0,
|
||||
/** 强 HP 型:以血量为主成长 */
|
||||
HP2 = 1,
|
||||
/** 强 AP 型:以攻击力为主成长 */
|
||||
AP2 = 2
|
||||
}
|
||||
// 普通关卡成长值:第一项为攻击力成长,第二项为血量成长
|
||||
|
||||
// ======================== 普通怪成长配置 ========================
|
||||
|
||||
/**
|
||||
* 普通怪每阶段成长值:[AP 成长, HP 成长]
|
||||
* 每经历一波(stage +1),怪物的 base_ap / base_hp 增加对应值。
|
||||
*/
|
||||
export const StageGrow = {
|
||||
[UpType.AP1_HP1]: [4,10], // 平衡型:攻4 血10
|
||||
[UpType.HP2]: [2,20], // 强HP型:攻2 血20
|
||||
[UpType.AP2]: [8,0], // 强AP型:攻8 血0
|
||||
[UpType.AP1_HP1]: [4,10], // 平衡型:每波攻击+4 血量+10
|
||||
[UpType.HP2]: [2,20], // 强HP型:每波攻击+2 血量+20
|
||||
[UpType.AP2]: [8,0], // 强AP型:每波攻击+8 血量+0
|
||||
}
|
||||
|
||||
// Boss关卡成长值:同上,数值更高
|
||||
// ======================== Boss 额外成长配置 ========================
|
||||
|
||||
/**
|
||||
* Boss 在普通怪成长基础上的 **额外** 成长值:[AP 增量, HP 增量]
|
||||
* 实际 Boss 成长 = StageGrow + StageBossGrow。
|
||||
*/
|
||||
export const StageBossGrow = {
|
||||
[UpType.AP1_HP1]: [3,16], // 平衡型:攻3 血16
|
||||
[UpType.HP2]: [1,24], // 强HP型:攻1 血24
|
||||
[UpType.AP2]: [10,4], // 强AP型:攻10 血4
|
||||
[UpType.AP1_HP1]: [3,16], // 平衡型 Boss:额外攻击+3 血量+16
|
||||
[UpType.HP2]: [1,24], // 强HP型 Boss:额外攻击+1 血量+24
|
||||
[UpType.AP2]: [10,4], // 强AP型 Boss:额外攻击+10 血量+4
|
||||
}
|
||||
|
||||
// ======================== 怪物类型定义 ========================
|
||||
|
||||
/** 怪物类型常量(用于 WaveSlotConfig 中引用) */
|
||||
export const MonType = {
|
||||
Melee: 0, // 近战高功
|
||||
Long: 1, // 高速贴近
|
||||
Support: 2, // 支持怪
|
||||
MeleeBoss: 3, // boss怪
|
||||
LongBoss: 4, // boss怪
|
||||
/** 近战普通怪 */
|
||||
Melee: 0,
|
||||
/** 远程普通怪 */
|
||||
Long: 1,
|
||||
/** 辅助怪(支持类) */
|
||||
Support: 2,
|
||||
/** 近战 Boss */
|
||||
MeleeBoss: 3,
|
||||
/** 远程 Boss */
|
||||
LongBoss: 4,
|
||||
}
|
||||
|
||||
// ======================== 怪物 UUID 池 ========================
|
||||
|
||||
/** 各类型对应的怪物 UUID 列表(随机抽取) */
|
||||
export const MonList = {
|
||||
[MonType.Melee]: [6001,6002,6003], // 近战怪
|
||||
[MonType.Long]: [6004,6005], // 远程怪
|
||||
[MonType.Support]: [6005], // 辅助怪
|
||||
[MonType.MeleeBoss]:[6006,6015], // 近战boss
|
||||
[MonType.LongBoss]:[6104], // 远程boss
|
||||
[MonType.Melee]: [6001,6002,6003], // 近战怪池
|
||||
[MonType.Long]: [6004,6005], // 远程怪池
|
||||
[MonType.Support]: [6005], // 辅助怪池
|
||||
[MonType.MeleeBoss]:[6006,6015], // 近战 Boss 池
|
||||
[MonType.LongBoss]:[6104], // 远程 Boss 池
|
||||
}
|
||||
/*
|
||||
*** 全局刷怪强度配置,后期根据玩家强度动态调整
|
||||
*/
|
||||
|
||||
// ======================== 全局刷怪强度系数 ========================
|
||||
|
||||
/**
|
||||
* 全局刷怪强度偏差系数。
|
||||
* 所有怪物的最终 AP / HP 会乘以此系数。
|
||||
* 后期可根据玩家强度动态调整以实现自适应难度。
|
||||
*/
|
||||
export const SpawnPowerBias = 1
|
||||
|
||||
// ======================== 波次占位配置数据结构 ========================
|
||||
|
||||
/** 单条波次占位配置 */
|
||||
export interface IWaveSlot {
|
||||
type: number; // 对应 MonType
|
||||
count: number; // 占位数量
|
||||
slotsPerMon?: number; // 每个怪占用几个位置,默认 1
|
||||
/** 怪物类型(参考 MonType) */
|
||||
type: number;
|
||||
/** 该类型的怪物数量 */
|
||||
count: number;
|
||||
/** (可选)每个怪物占用几个槽位,默认 1;大型 Boss 设为 2 */
|
||||
slotsPerMon?: number;
|
||||
}
|
||||
|
||||
// =========================================================================================
|
||||
// 【每波怪物占位与刷怪配置说明】
|
||||
// 1. 字段说明:
|
||||
//
|
||||
// 字段说明:
|
||||
// - type: 怪物类型 (参考 MonType,如近战 0,远程 1,Boss 3 等)。
|
||||
// - count: 该类型的怪在场上同时存在几个。
|
||||
// - slotsPerMon: (可选) 单个怪物体积占用几个占位坑,默认为 1。如果是大型 Boss 可设为 2,它会跨占位降落。
|
||||
//
|
||||
// 【注意】:
|
||||
// 全场固定 6 个槽位(索引 0-5)。
|
||||
// Boss 固定占用 2 个位置,且只能出现在 1、3、5 号位(对应索引 0, 2, 4)。
|
||||
// 每波怪物总槽位占用不能超过 6。不再支持排队刷怪。
|
||||
// - slotsPerMon: (可选) 单个怪物体积占用几个占位坑,默认为 1。
|
||||
// 大型 Boss 设为 2,它会跨占位降落。
|
||||
//
|
||||
// 【规则约束】:
|
||||
// - 全场固定 6 个槽位(索引 0-5)。
|
||||
// - Boss 固定占用 2 个位置,且只能出现在 1、3、5 号位(对应索引 0, 2, 4)。
|
||||
// - 每波怪物总槽位占用不能超过 6。
|
||||
// =========================================================================================
|
||||
|
||||
/** 各波次的怪物占位配置(key = 波次编号) */
|
||||
export const WaveSlotConfig: { [wave: number]: IWaveSlot[] } = {
|
||||
/** 第 1 波:3 近战 + 3 远程 */
|
||||
1: [
|
||||
{ type: MonType.Melee, count: 3 },
|
||||
{ type: MonType.Long, count: 3 }
|
||||
],
|
||||
/** 第 2 波:2 近战 + 2 远程 + 2 辅助 */
|
||||
2: [
|
||||
{ type: MonType.Melee, count: 2 },
|
||||
{ type: MonType.Long, count: 2 },
|
||||
{ type: MonType.Support, count: 2 }
|
||||
],
|
||||
/** 第 3 波:2 近战 + 1 近战Boss(占2格) + 2 远程 */
|
||||
3: [
|
||||
{ type: MonType.Melee, count: 2 },
|
||||
{ type: MonType.MeleeBoss, count: 1, slotsPerMon: 2 },
|
||||
{ type: MonType.Long, count: 2 }
|
||||
],
|
||||
/** 第 4 波:2 近战 + 2 远程 + 1 远程Boss(占2格) */
|
||||
4: [
|
||||
{ type: MonType.Melee, count: 2 },
|
||||
{ type: MonType.Long, count: 2 },
|
||||
@@ -76,7 +144,11 @@ export const WaveSlotConfig: { [wave: number]: IWaveSlot[] } = {
|
||||
],
|
||||
}
|
||||
|
||||
// 默认占位配置 (如果在 WaveSlotConfig 中找不到波次,则使用此配置)
|
||||
/**
|
||||
* 默认占位配置:
|
||||
* 当 WaveSlotConfig 中找不到对应波次时使用此兜底配置。
|
||||
* 默认 3 近战 + 3 远程。
|
||||
*/
|
||||
export const DefaultWaveSlot: IWaveSlot[] = [
|
||||
{ type: MonType.Melee, count: 3 },
|
||||
{ type: MonType.Long, count: 3 }
|
||||
|
||||
Reference in New Issue
Block a user