feat: 新增属性选择事件并调整关卡奖励逻辑
- 在 GameEvent 枚举中添加 AttrSelect 事件 - 修改 MissionComp.call_cards 方法,默认每级都触发属性选择事件 - 移除药水奖励类型对应的事件分发,将其注释保留 - 在 MissionCardComp 中注册并处理 AttrSelect 事件,将其加入事件队列
This commit is contained in:
@@ -50,6 +50,7 @@ export enum GameEvent {
|
||||
UseTalentCard = "UseTalentCard",
|
||||
UseItemCard = "UseItemCard",
|
||||
UseAttrCard = "UseAttrCard",
|
||||
AttrSelect = "AttrSelect",
|
||||
NewWave = "NewWave",
|
||||
AD_BACK_TRUE = "AD_BACK_TRUE",
|
||||
AD_BACK_FALSE = "AD_BACK_FALSE",
|
||||
|
||||
@@ -60,6 +60,7 @@ export class MissionCardComp extends CCComp {
|
||||
}
|
||||
|
||||
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.ShopOpen, this.onShopOpen, 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.AttrSelect, this.onAttrSelect, this);
|
||||
oops.message.off(GameEvent.HeroSkillSelect, this.onHeroSkillSelect, this);
|
||||
oops.message.off(GameEvent.ShopOpen, this.onShopOpen, this);
|
||||
oops.message.off(GameEvent.MissionStart, this.onMissionStart, this);
|
||||
@@ -143,6 +145,11 @@ export class MissionCardComp extends CCComp {
|
||||
this.checkQueue();
|
||||
}
|
||||
|
||||
private onAttrSelect(event: string, args: any) {
|
||||
this.eventQueue.push({ type: CardType.Attr });
|
||||
this.checkQueue();
|
||||
}
|
||||
|
||||
private onTalentSelect(event: string, args: any) {
|
||||
this.eventQueue.push({ type: CardType.Talent });
|
||||
this.checkQueue();
|
||||
|
||||
@@ -74,8 +74,12 @@ export class MissionComp extends CCComp {
|
||||
}
|
||||
call_cards(lv:number){
|
||||
const rewardType = getLevelRewardType(lv);
|
||||
|
||||
console.log(`[MissionComp] 触发奖励选择, 类型: ${rewardType}`);
|
||||
|
||||
// 默认每级都触发属性选择
|
||||
oops.message.dispatchEvent(GameEvent.AttrSelect);
|
||||
|
||||
// 根据类型发送对应的事件
|
||||
switch (rewardType) {
|
||||
case CardType.Talent:
|
||||
@@ -87,13 +91,9 @@ export class MissionComp extends CCComp {
|
||||
case CardType.Partner:
|
||||
oops.message.dispatchEvent(GameEvent.ToCallFriend);
|
||||
break;
|
||||
case CardType.Potion:
|
||||
oops.message.dispatchEvent(GameEvent.ShopOpen);
|
||||
break;
|
||||
default:
|
||||
console.warn(`[MissionComp] 未知的奖励类型: ${rewardType}`);
|
||||
oops.message.dispatchEvent(GameEvent.TalentSelect); // 默认回退到天赋选择
|
||||
break;
|
||||
// case CardType.Potion:
|
||||
// oops.message.dispatchEvent(GameEvent.ShopOpen);
|
||||
// break;
|
||||
}
|
||||
}
|
||||
showLevelUpReward() {
|
||||
|
||||
Reference in New Issue
Block a user