feat(map): 添加任务阶段名称的UI显示

在MissionComp中添加阶段名称映射表,并在阶段切换时更新UI显示。
This commit is contained in:
panw
2026-04-14 10:51:11 +08:00
parent 24b27877b0
commit c0243fc159

View File

@@ -100,6 +100,18 @@ export class MissionComp extends CCComp {
@property(Node)
time_node:Node = null!
/** 阶段名称映射表(用于 UI 显示) */
private static readonly PhaseNameMap: Record<MissionPhase, string> = {
[MissionPhase.None]: "未开始",
[MissionPhase.PrepareStart]: "准备开始",
[MissionPhase.Prepare]: "准备阶段",
[MissionPhase.PrepareEnd]: "准备结束",
[MissionPhase.BattleStart]: "战斗开始",
[MissionPhase.Battle]: "战斗中",
[MissionPhase.BattleEnd]: "战斗结束",
[MissionPhase.Settle]: "结算阶段"
};
// ======================== 运行时状态 ========================
/** 战斗倒计时(秒) */
@@ -279,6 +291,17 @@ export class MissionComp extends CCComp {
const oldPhase = this.currentPhase;
this.currentPhase = targetPhase;
// 更新阶段显示 UI
if (this.time_node && this.time_node.isValid) {
const phaseNode = this.time_node.getChildByPath("Phase/Label");
if (phaseNode) {
const label = phaseNode.getComponent(Label);
if (label) {
label.string = MissionComp.PhaseNameMap[targetPhase] || "未知";
}
}
}
// 重置状态机的计时器
this.PhaseTime.reset();