feat: 新增属性选择事件并调整关卡奖励逻辑

- 在 GameEvent 枚举中添加 AttrSelect 事件
- 修改 MissionComp.call_cards 方法,默认每级都触发属性选择事件
- 移除药水奖励类型对应的事件分发,将其注释保留
- 在 MissionCardComp 中注册并处理 AttrSelect 事件,将其加入事件队列
This commit is contained in:
panw
2026-01-30 15:34:14 +08:00
parent 42fc5e267a
commit 4630667a54
3 changed files with 15 additions and 7 deletions

View File

@@ -50,6 +50,7 @@ export enum GameEvent {
UseTalentCard = "UseTalentCard", UseTalentCard = "UseTalentCard",
UseItemCard = "UseItemCard", UseItemCard = "UseItemCard",
UseAttrCard = "UseAttrCard", UseAttrCard = "UseAttrCard",
AttrSelect = "AttrSelect",
NewWave = "NewWave", NewWave = "NewWave",
AD_BACK_TRUE = "AD_BACK_TRUE", AD_BACK_TRUE = "AD_BACK_TRUE",
AD_BACK_FALSE = "AD_BACK_FALSE", AD_BACK_FALSE = "AD_BACK_FALSE",

View File

@@ -60,6 +60,7 @@ export class MissionCardComp extends CCComp {
} }
oops.message.on(GameEvent.TalentSelect, this.onTalentSelect, this); oops.message.on(GameEvent.TalentSelect, this.onTalentSelect, this);
oops.message.on(GameEvent.AttrSelect, this.onAttrSelect, this);
oops.message.on(GameEvent.HeroSkillSelect, this.onHeroSkillSelect, this); oops.message.on(GameEvent.HeroSkillSelect, this.onHeroSkillSelect, this);
oops.message.on(GameEvent.ShopOpen, this.onShopOpen, this); oops.message.on(GameEvent.ShopOpen, this.onShopOpen, this);
oops.message.on(GameEvent.MissionStart, this.onMissionStart, this); oops.message.on(GameEvent.MissionStart, this.onMissionStart, this);
@@ -74,6 +75,7 @@ export class MissionCardComp extends CCComp {
} }
oops.message.off(GameEvent.TalentSelect, this.onTalentSelect, this); oops.message.off(GameEvent.TalentSelect, this.onTalentSelect, this);
oops.message.off(GameEvent.AttrSelect, this.onAttrSelect, this);
oops.message.off(GameEvent.HeroSkillSelect, this.onHeroSkillSelect, this); oops.message.off(GameEvent.HeroSkillSelect, this.onHeroSkillSelect, this);
oops.message.off(GameEvent.ShopOpen, this.onShopOpen, this); oops.message.off(GameEvent.ShopOpen, this.onShopOpen, this);
oops.message.off(GameEvent.MissionStart, this.onMissionStart, this); oops.message.off(GameEvent.MissionStart, this.onMissionStart, this);
@@ -143,6 +145,11 @@ export class MissionCardComp extends CCComp {
this.checkQueue(); this.checkQueue();
} }
private onAttrSelect(event: string, args: any) {
this.eventQueue.push({ type: CardType.Attr });
this.checkQueue();
}
private onTalentSelect(event: string, args: any) { private onTalentSelect(event: string, args: any) {
this.eventQueue.push({ type: CardType.Talent }); this.eventQueue.push({ type: CardType.Talent });
this.checkQueue(); this.checkQueue();

View File

@@ -74,8 +74,12 @@ export class MissionComp extends CCComp {
} }
call_cards(lv:number){ call_cards(lv:number){
const rewardType = getLevelRewardType(lv); const rewardType = getLevelRewardType(lv);
console.log(`[MissionComp] 触发奖励选择, 类型: ${rewardType}`); console.log(`[MissionComp] 触发奖励选择, 类型: ${rewardType}`);
// 默认每级都触发属性选择
oops.message.dispatchEvent(GameEvent.AttrSelect);
// 根据类型发送对应的事件 // 根据类型发送对应的事件
switch (rewardType) { switch (rewardType) {
case CardType.Talent: case CardType.Talent:
@@ -87,13 +91,9 @@ export class MissionComp extends CCComp {
case CardType.Partner: case CardType.Partner:
oops.message.dispatchEvent(GameEvent.ToCallFriend); oops.message.dispatchEvent(GameEvent.ToCallFriend);
break; break;
case CardType.Potion: // case CardType.Potion:
oops.message.dispatchEvent(GameEvent.ShopOpen); // oops.message.dispatchEvent(GameEvent.ShopOpen);
break; // break;
default:
console.warn(`[MissionComp] 未知的奖励类型: ${rewardType}`);
oops.message.dispatchEvent(GameEvent.TalentSelect); // 默认回退到天赋选择
break;
} }
} }
showLevelUpReward() { showLevelUpReward() {