fix: 调整英雄升级所需数量,优化战斗和UI细节

1.  将英雄升级所需数量从2改为3
2.  调整UI3.plist的边框参数
3.  修改地图精灵帧和图集绑定
4.  优化技能提示框动画:减少停留时间并简化漂移淡出逻辑
5.  修改任务卡牌组件:战斗阶段不再隐藏面板,新增战斗阶段无法召唤英雄的限制,注释掉战斗阶段隐藏抽卡面板的代码
6.  重构hnode.prefab的层级和UI组件,调整等级显示样式
This commit is contained in:
panw
2026-05-14 10:55:15 +08:00
parent 3f47df2682
commit 9b363cda1c
8 changed files with 3800 additions and 3317 deletions

View File

@@ -335,7 +335,7 @@ export class MissionCardComp extends CCComp {
this.playCoinChangeAnim(v > 0);
}
/** 战斗开始:收起面板,清空卡牌 */
/** 战斗开始:收起面板,不再强制清空卡牌 */
private onFightStart() {
this.isBattlePhase = true;
this.enterBattlePhase();
@@ -432,6 +432,14 @@ export class MissionCardComp extends CCComp {
private onUseHeroCard(event: string, args: any) {
const payload = args ?? event;
if (!payload) return;
if (this.isBattlePhase) {
payload.cancel = true;
payload.reason = "battle_phase";
oops.gui.toast("战斗阶段无法召唤英雄");
return;
}
const current = this.getAliveHeroCount();
this.syncMissionHeroData(current);
const heroMax = this.getMissionHeroMaxNum();
@@ -571,10 +579,10 @@ export class MissionCardComp extends CCComp {
* 3. 重新布局槽位 → 从卡池构建 4 张卡 → 分发到槽位。
*/
private onClickDraw() {
if (this.isBattlePhase) {
oops.gui.toast("战斗阶段无法抽卡");
return;
}
// if (this.isBattlePhase) {
// oops.gui.toast("战斗阶段无法抽卡");
// return;
// }
const cost = this.getRefreshCost();
const currentCoin = this.getMissionCoin();
if (currentCoin < cost) {
@@ -663,15 +671,16 @@ export class MissionCardComp extends CCComp {
private enterBattlePhase() {
if (!this.cards_node || !this.cards_node.isValid) return;
this.initCardsPanelPos();
Tween.stopAllByTarget(this.cards_node);
tween(this.cards_node)
.to(this.cardsPanelMoveDuration, { scale: this.cardsHideScale })
.call(() => {
if (this.cards_node && this.cards_node.isValid) {
this.cards_node.active = false;
}
})
.start();
// 战斗阶段不再隐藏抽卡面板
// Tween.stopAllByTarget(this.cards_node);
// tween(this.cards_node)
// .to(this.cardsPanelMoveDuration, { scale: this.cardsHideScale })
// .call(() => {
// if (this.cards_node && this.cards_node.isValid) {
// this.cards_node.active = false;
// }
// })
// .start();
this.cachedHInfoComps.forEach(comp => {
if (comp && comp.isValid) {