fix(map): 修复任务卡片池等级UI显示逻辑

1. 移除了旧的卡池升级按钮UI注释代码
2. 新增卡池等级升级倒计时显示逻辑
3. 修复updateCoinAndCostUI调用updatePoolLvUI的逻辑
4. 从MissionComp获取卡池升级所需波次配置
This commit is contained in:
panFD
2026-06-17 23:06:16 +08:00
parent eec455cbd9
commit c35d14b5b5
5 changed files with 4783 additions and 3035 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 249 KiB

After

Width:  |  Height:  |  Size: 1.1 MiB

View File

@@ -49,6 +49,7 @@ import { FacSet, FightSet } from "../common/config/GameSet";
import { MoveComp } from "../hero/MoveComp";
import { MissionHeroComp } from "./MissionHeroComp";
import { MissionEconomy } from "./MissionEconomy";
import { MissionComp } from "./MissionComp";
import { UIID } from "../common/config/GameUIConfig";
const { ccclass, property } = _decorator;
@@ -1022,23 +1023,6 @@ export class MissionCardComp extends CCComp {
}
/** 更新升级按钮上的等级文案,反馈当前卡池层级 */
private updatePoolLvUI() {
// if (this.cards_up) {
// const nobg = this.cards_up.getChildByName("nobg");
// if (nobg) {
// nobg.active = !this.canUpPool();
// }
// const coinNode = this.cards_up.getChildByName("coin");
// const label = coinNode?.getChildByName("num")?.getComponent(Label);
// if (this.poolLv >= CARD_POOL_MAX_LEVEL) {
// if (label) {
// label.string = `0`;
// }
// } else {
// if (label) {
// label.string = `${this.getUpgradeCost(this.poolLv)}`;
// }
// }
// }
if (this.pool_lv_node) {
this.pool_lv_node.active = true;
const lv = Math.max(CARD_POOL_INIT_LEVEL, Math.min(CARD_POOL_MAX_LEVEL, Math.floor(this.poolLv)));
@@ -1049,12 +1033,39 @@ export class MissionCardComp extends CCComp {
label.string = `lv.${lv}`;
}
}
// const widget = this.pool_lv_node.getComponent(Widget);
// if (widget) widget.updateAlignment();
// this.pool_lv_node.children.forEach(child => {
// const childWidget = child.getComponent(Widget);
// if (childWidget) childWidget.updateAlignment();
// });
const nextNode = this.pool_lv_node.getChildByName("next");
if (nextNode) {
const nextLabel = nextNode.getComponent(Label);
if (nextLabel) {
if (this.poolLv >= CARD_POOL_MAX_LEVEL) {
nextLabel.string = `已满级`;
} else {
let upgradeWaves: number[] = [5, 10];
ecs.query(ecs.allOf(MissionComp)).forEach((entity) => {
const mission = entity.get(MissionComp);
if (mission && mission.cardPoolUpgradeWaves) {
upgradeWaves = mission.cardPoolUpgradeWaves;
}
});
const currentWave = this.getCurrentWave();
let nextWave = -1;
for (let i = 0; i < upgradeWaves.length; i++) {
if (upgradeWaves[i] > currentWave) {
nextWave = upgradeWaves[i];
break;
}
}
if (nextWave !== -1) {
const remain = nextWave - currentWave;
nextLabel.string = `${remain} 回合后升级`;
} else {
nextLabel.string = `已满级`;
}
}
}
}
const peak = 1.2
this.playHeroNumNodePop(this.pool_lv_node, peak);
}
@@ -1091,7 +1102,7 @@ export class MissionCardComp extends CCComp {
}
private updateCoinAndCostUI() {
// this.updatePoolLvUI();
this.updatePoolLvUI();
this.updateDrawCostUI();
}