feat(missionCard): 实现卡牌使用后自动补卡功能

1. 新增GameEvent.CardUsed事件用于通知卡牌使用完成
2. 在各类卡牌使用逻辑中派发CardUsed事件
3. 为MissionCardComp添加CardUsed事件监听与补卡回调
4. 新增buildSingleHeroCard和buildSingleSkillCard方法用于生成单张补卡
5. 调整技能卡使用弹窗逻辑,改为由外部控制显隐
This commit is contained in:
pan
2026-07-21 16:38:52 +08:00
parent 4f95accfbf
commit fb299f6328
4 changed files with 112 additions and 5 deletions

View File

@@ -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;
}