refactor(ui): 调整UI页面管理方式,改为节点显隐控制

1. 注释并禁用了Ranks、Heros、Talents三个UIID的全局弹窗配置
2. 将三个页面改为通过MissionHomeComp控制节点显隐切换
3. 移除了原有的gui.open/remove弹窗调用逻辑,改为设置active状态
4. 调整了组件生命周期,改用onEnable替代onAdded处理显示逻辑
5. 更新了对应组件的注释和文档说明
This commit is contained in:
panw
2026-05-27 16:18:26 +08:00
parent 3c78acde78
commit ad0539d238
5 changed files with 52 additions and 48 deletions

View File

@@ -1,22 +1,21 @@
/**
* @file TalentsComp.ts
* @description 战斗结算弹窗组件UI 视图层)
* @description 天赋系统页面组件UI 视图层)
*
* 职责:
* 1. 在战斗结束时弹出,展示结算信息(得分、奖励)
* 2. 根据传入参数判断是否可复活,切换"下一步"或"复活"按钮
* 3. 计算单局总分并存储到 smc.vmdata.scores.score
* 4. 提供"重新开始"和"退出"两个操作入口
* 1. 展示玩家等级、当前经验、进度条、金币
* 2. 展示天赋列表及每个天赋的当前等级
* 3. 处理天赋升级点击事件,扣除金币并保存
* 4. 处理重置天赋(看广告)功能
*
* 关键设计:
* - onAdded(args) 接收战斗结果参数Talents / rewards / game_data / can_revive
* - calculateTotalScore() 根据 ScoreWeights 配置加权计算各项得分
* - restart() 和 Talents_end() 通过分发 MissionEnd / MissionStart 事件驱动游戏状态切换。
* - 通过 MissionHomeComp 页面切换显示,节点 active 控制显隐
* - onAdded(args) 接收参数时刷新界面
*
* 依赖:
* - smc.vmdata.scores —— 全局战斗统计数据
* - ScoreWeightsScoreSet—— 得分权重配置
* - GameEvent.MissionEnd / MissionStart —— 游戏生命周期事件
* - MissionHomeComp —— 通过节点 active 显隐控制页面切换
* - smc.collection —— 玩家数据
* - TalentConfigTalentSet—— 天赋配置
*/
import { _decorator, Node, Label, Button, ProgressBar, instantiate, Prefab } from "cc";
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
@@ -78,7 +77,6 @@ export class TalentsComp extends CCComp {
private readonly MAX_PLAYER_LEVEL = 30;
protected onLoad(): void {
// 绑定按钮事件
if (this.btn_reset && this.btn_reset.node) {
this.btn_reset.node.on(Button.EventType.CLICK, this.onResetClicked, this);
}
@@ -87,8 +85,7 @@ export class TalentsComp extends CCComp {
}
}
onAdded(args: any) {
// 直接刷新界面,因为图集已经在游戏启动时被 smc 预加载并缓存
protected onEnable(): void {
this.refreshUI();
}
@@ -250,7 +247,7 @@ export class TalentsComp extends CCComp {
/** 点击返回按钮 */
private onCloseClicked() {
oops.gui.removeByNode(this.node); //
this.node.active = false
}
protected onDestroy(): void {