fix(抽卡): 修复战斗阶段可抽卡及卡牌面板未隐藏的问题

- 战斗开始后隐藏卡牌面板并清空卡牌,而非刷新战斗卡牌
- 在抽卡逻辑开始时检查战斗阶段,阻止战斗时抽卡
- 注释掉卡池中三个特殊刷新卡牌配置
This commit is contained in:
walkpan
2026-04-23 21:51:08 +08:00
parent 60352af998
commit bb6e63756c
2 changed files with 17 additions and 10 deletions

View File

@@ -93,9 +93,9 @@ export const CardPoolList: CardConfig[] = [
{ uuid: 6304, type: CardType.Skill, cost: 3, weight: 20, pool_lv: 3, kind: CKind.Skill, card_lv: 1, name: "神圣治疗", info: "恢复场上随机3个友方单位的生命值", is_inst: true, t_times: 1, t_inv: 0 },
{ uuid: 6305, type: CardType.Skill, cost: 4, weight: 20, pool_lv: 3, kind: CKind.Skill, card_lv: 1, name: "群体护盾", info: "随机3个友方获得2次伤害免疫", is_inst: true, t_times: 1, t_inv: 0 },
{ uuid: 7101, type: CardType.SpecialRefresh, cost: 1, weight: 12, pool_lv: 1 ,kind: CKind.Card },
{ uuid: 7102, type: CardType.SpecialRefresh, cost: 1, weight: 12, pool_lv: 1 ,kind: CKind.Card },
{ uuid: 7103, type: CardType.SpecialRefresh, cost: 1, weight: 12, pool_lv: 1 ,kind: CKind.Card },
// { uuid: 7101, type: CardType.SpecialRefresh, cost: 1, weight: 12, pool_lv: 1 ,kind: CKind.Card },
// { uuid: 7102, type: CardType.SpecialRefresh, cost: 1, weight: 12, pool_lv: 1 ,kind: CKind.Card },
// { uuid: 7103, type: CardType.SpecialRefresh, cost: 1, weight: 12, pool_lv: 1 ,kind: CKind.Card },
]

View File

@@ -302,13 +302,11 @@ export class MissionCardComp extends CCComp {
this.playCoinChangeAnim(v > 0);
}
/** 战斗开始:收起面板,而是刷新为战斗阶段卡牌 */
/** 战斗开始:收起面板,清空卡牌 */
private onFightStart() {
this.isBattlePhase = true;
this.enterBattlePhase();
this.layoutCardSlots();
const cards = this.buildDrawCards();
this.dispatchCardsToSlots(cards);
this.clearAllCards();
}
/**
@@ -537,6 +535,10 @@ export class MissionCardComp extends CCComp {
* 3. 重新布局槽位 → 从卡池构建 4 张卡 → 分发到槽位。
*/
private onClickDraw() {
if (this.isBattlePhase) {
oops.gui.toast("战斗阶段无法抽卡");
return;
}
const cost = this.getRefreshCost();
const currentCoin = this.getMissionCoin();
if (currentCoin < cost) {
@@ -616,10 +618,15 @@ export class MissionCardComp extends CCComp {
private enterBattlePhase() {
if (!this.cards_node || !this.cards_node.isValid) return;
this.initCardsPanelPos();
this.cards_node.active = true;
Tween.stopAllByTarget(this.cards_node);
this.cards_node.setScale(this.cardsShowScale);
// 取消战斗阶段隐藏面板的逻辑
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();
}
/** 构建本次抽卡结果保证最终可分发4条数据 */