refactor: 统一将游戏内的「波次」术语替换为「回合」

本次提交将全项目中所有与「波次」相关的术语、注释、配置描述、UI文本全部替换为「回合」,包括:
1.  技能卡牌、怪物刷新、经济系统的相关注释与变量名
2.  配置表中的波次相关常量与描述文本
3.  UI预制体中的波次显示文本
4.  所有相关的文档注释与接口说明

统一术语后,游戏的关卡流程描述将更符合常规肉鸽游戏的表达习惯,避免与「波次」字面含义混淆,提升代码可读性与团队协作一致性。
This commit is contained in:
panFD
2026-08-09 14:51:48 +08:00
parent 2907c214f1
commit c59ba45b5b
14 changed files with 622 additions and 618 deletions

View File

@@ -1,17 +1,17 @@
/**
* @file MissionMonComp.ts
* @description 怪物Monster波次刷新管理组件(逻辑层)
* @description 怪物Monster回合刷新管理组件(逻辑层)
*
* 职责:
* 1. 管理每一怪物的生成计划:根据 RogueConfig 生成怪物。
* 2. 自动推进波次在准备阶段结束时PhasePrepareEnd启动分批释放。
* 3. 分批刷怪:每固定 3 批,每 10 秒释放一批,批内按 MON_SPAWN_INTERVAL 逐个刷出。
* 1. 管理每一回合怪物的生成计划:根据 RogueConfig 生成怪物。
* 2. 自动推进回合在准备阶段结束时PhasePrepareEnd启动分批释放。
* 3. 分批刷怪:每回合固定 3 批,每 10 秒释放一批,批内按 MON_SPAWN_INTERVAL 逐个刷出。
*
* 关键设计:
* - 所有怪物统一从右侧 X=400 出生点逐个刷出MON_SPAWN_INTERVAL 节奏控制)。
* - 实际阵型与推进由 MonMoveComp 在战斗中向左移动自然形成,不再使用固定网格点。
* - 槽位索引3行×4列仅用于 monGrid 寻路与 SCastSystem 索敌定位。
* - 上一残留怪在波次结束/开始时统一清理。
* - 上一回合残留怪在回合结束/开始时统一清理。
*/
import { _decorator, v3, Vec3 } from "cc";
import { mLogger } from "../common/Logger";
@@ -44,7 +44,7 @@ export class MissionMonCompComp extends CCComp {
* 怪物占位点:所有槽位统一以右侧出生点 (X=400) 作为坐标,
* 实际阵型由 MonMoveComp 在战斗中向左推进时自然拉开。
* 槽位索引仍保留 3 行 × 4 列结构,供 monGrid 寻路与 SCastSystem 索敌使用。
* 超出 12 个槽位的怪物(放松)按 spawnIndex % 12 复用槽位。
* 超出 12 个槽位的怪物(放松回合)按 spawnIndex % 12 复用槽位。
*/
public static readonly MON_POSITIONS: Vec3[] = [
v3(MissionMonCompComp.MON_SPAWN_X, BoxSet.GAME_LINE, 0), // index 0: Col1-Top
@@ -70,11 +70,11 @@ export class MissionMonCompComp extends CCComp {
/** 全局生成顺序计数器(用于渲染层级排序) */
private globalSpawnOrder: number = 0;
/** 当前数 */
/** 当前回合数 */
private currentWave: number = 0;
/** 当前的目标怪物总数 */
/** 当前回合的目标怪物总数 */
private waveTargetCount: number = 0;
/** 当前已生成的怪物数量 */
/** 当前回合已生成的怪物数量 */
private waveSpawnedCount: number = 0;
/** 等待生成的怪物队列按批次分组batch 0~2 */
private pendingBatches: GeneratedMonster[][] = [[], [], []];
@@ -142,7 +142,7 @@ export class MissionMonCompComp extends CCComp {
let hasBoss = monsters.some(m => m.isBoss);
mLogger.log(this.debugMode, 'MissionMonComp', `[MissionMonComp] 波次 ${this.currentWave} 生成怪物总数: ${this.waveTargetCount}`);
mLogger.log(this.debugMode, 'MissionMonComp', `[MissionMonComp] 回合 ${this.currentWave} 生成怪物总数: ${this.waveTargetCount}`);
oops.message.dispatchEvent(GameEvent.NewWave, {
wave: this.currentWave,
@@ -152,7 +152,7 @@ export class MissionMonCompComp extends CCComp {
}
/**
* 战斗准备:重置所有运行时状态并开始第一
* 战斗准备:重置所有运行时状态并开始第一回合
*/
fight_ready() {
smc.vmdata.mission_data.mon_num = 0;
@@ -168,7 +168,7 @@ export class MissionMonCompComp extends CCComp {
this.spawnQueue = [];
this.spawnTimer = 0;
// 预生成第一数据以获取数量和 Boss 信息
// 预生成第一回合数据以获取数量和 Boss 信息
const monsters = spawningEngine.generateWave(this.currentWave);
this.setupWaveData(monsters);
@@ -179,10 +179,10 @@ export class MissionMonCompComp extends CCComp {
mLogger.log(this.debugMode, 'MissionMonComp', "[MissionMonComp] Starting Wave System");
}
// ======================== 波次管理 ========================
// ======================== 回合管理 ========================
/**
* 开始下一波:波数 +1 并预生成数据
* 开始下一回合:回合数 +1 并预生成数据
*/
private onTimeUpAdvanceWave() {
this.currentWave += 1;
@@ -247,7 +247,7 @@ export class MissionMonCompComp extends CCComp {
// ======================== 槽位管理 ========================
/**
* 清理上一残留怪物,并重置生成计数与逐个刷怪队列
* 清理上一回合残留怪物,并重置生成计数与逐个刷怪队列
*/
private resetSlotSpawnData() {
ecs.query(ecs.allOf(HeroAttrsComp)).forEach(e => {
@@ -258,7 +258,7 @@ export class MissionMonCompComp extends CCComp {
});
this.waveSpawnedCount = 0;
// 同步丢弃上一未释放的队列,避免与新一混合
// 同步丢弃上一回合未释放的队列,避免与新一回合混合
this.spawnQueue = [];
this.spawnTimer = 0;
this.isReleasing = false;