feat: 新增刷新石机制并优化抽卡消耗逻辑
1. 新增refresh_stone玩家数据字段与对应变更事件 2. 实现刷新石的获取、消耗和刷新可用性校验逻辑 3. 抽卡优先消耗刷新石,不足时再扣除金币 4. 为购买按钮添加可配置的消耗标签,优化UI查找逻辑 5. 更新对应预制件绑定新的消耗标签组件
This commit is contained in:
@@ -376,6 +376,7 @@ export class MissionCardComp extends CCComp {
|
||||
this.on("PhasePrepareStart", this.onPhasePrepareStart, this);
|
||||
|
||||
oops.message.on(GameEvent.CoinAdd, this.onCoinAdd, this);
|
||||
oops.message.on(GameEvent.RefreshStone, this.onRefreshStone, this);
|
||||
oops.message.on(GameEvent.MasterCalled, this.onMasterCalled, this);
|
||||
oops.message.on(GameEvent.HeroDead, this.onHeroDead, this);
|
||||
oops.message.on(GameEvent.HeroSell, this.onHeroSell, this);
|
||||
@@ -442,6 +443,11 @@ export class MissionCardComp extends CCComp {
|
||||
}
|
||||
}
|
||||
|
||||
/** 刷新石数量变更:刷新刷新按钮的可用状态与费用显示 */
|
||||
private onRefreshStone() {
|
||||
this.updateDrawCostUI();
|
||||
}
|
||||
|
||||
/** 战斗开始:保留卡牌面板,允许玩家在战斗阶段继续抽卡和召唤英雄 */
|
||||
private onFightStart() {
|
||||
this.enterBattlePhase();
|
||||
@@ -620,6 +626,7 @@ export class MissionCardComp extends CCComp {
|
||||
/** 解除按钮监听,避免节点销毁后回调泄漏 */
|
||||
private unbindEvents() {
|
||||
oops.message.off(GameEvent.CoinAdd, this.onCoinAdd, this);
|
||||
oops.message.off(GameEvent.RefreshStone, this.onRefreshStone, this);
|
||||
oops.message.off(GameEvent.MasterCalled, this.onMasterCalled, this);
|
||||
oops.message.off(GameEvent.HeroDead, this.onHeroDead, this);
|
||||
oops.message.off(GameEvent.HeroSell, this.onHeroSell, this);
|
||||
@@ -1700,7 +1707,8 @@ export class MissionCardComp extends CCComp {
|
||||
}
|
||||
|
||||
private canDrawCards() {
|
||||
return MissionEconomy.getCoin() >= MissionEconomy.getRefreshCost(this.refreshCost);
|
||||
// 有刷新石时可直接刷新,否则校验金币是否足够
|
||||
return MissionEconomy.canRefresh(this.refreshCost);
|
||||
}
|
||||
|
||||
private updateDrawCostUI() {
|
||||
|
||||
Reference in New Issue
Block a user