feat(missionCard): 实现卡牌使用后自动补卡功能
1. 新增GameEvent.CardUsed事件用于通知卡牌使用完成 2. 在各类卡牌使用逻辑中派发CardUsed事件 3. 为MissionCardComp添加CardUsed事件监听与补卡回调 4. 新增buildSingleHeroCard和buildSingleSkillCard方法用于生成单张补卡 5. 调整技能卡使用弹窗逻辑,改为由外部控制显隐
This commit is contained in:
@@ -347,18 +347,26 @@ export class CardComp extends CCComp {
|
||||
/**
|
||||
* 根据卡牌类型分发对应的游戏效果事件。
|
||||
* - 英雄卡 → CallHero
|
||||
* - 技能卡 → UseSkillCard
|
||||
* - 特殊升级 / 特殊刷新 → UseSpecialCard
|
||||
*
|
||||
* 卡牌使用成功后会派发 CardUsed 事件(携带本卡槽组件),
|
||||
* 由 MissionCardComp 接收并立即补充一张新卡到该槽位。
|
||||
* SpecialRefresh 例外:其效果本身会重填所有槽位,无需重复补卡。
|
||||
*
|
||||
* @param payload 被使用的卡牌数据
|
||||
*/
|
||||
private executeCardEffectEntry(payload: CardConfig) {
|
||||
switch (payload.type) {
|
||||
case CardType.Hero:
|
||||
oops.message.dispatchEvent(GameEvent.CallHero, payload);
|
||||
oops.message.dispatchEvent(GameEvent.CardUsed, this);
|
||||
break;
|
||||
case CardType.SpecialUpgrade:
|
||||
oops.message.dispatchEvent(GameEvent.UseSpecialCard, payload);
|
||||
oops.message.dispatchEvent(GameEvent.CardUsed, this);
|
||||
break;
|
||||
case CardType.SpecialRefresh:
|
||||
// 刷新卡效果(tryRefreshHeroCards)会重填全部 3 槽,此处不再补卡
|
||||
oops.message.dispatchEvent(GameEvent.UseSpecialCard, payload);
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user