fix(奖励): 修复等级奖励类型获取逻辑并添加空值检查
- 调整 getLevelRewardType 函数,仅在特定等级返回天赋类型,其他等级返回 null - 在 MissionComp.call_cards 中添加奖励类型空值检查,避免无效调用 - 为多个预制体组件统一添加 debugMode 默认值
This commit is contained in:
@@ -8780,6 +8780,7 @@
|
||||
"__prefab": {
|
||||
"__id__": 400
|
||||
},
|
||||
"debugMode": false,
|
||||
"card1": {
|
||||
"__id__": 323
|
||||
},
|
||||
@@ -17261,6 +17262,7 @@
|
||||
"__prefab": {
|
||||
"__id__": 768
|
||||
},
|
||||
"debugMode": false,
|
||||
"coins_node": {
|
||||
"__id__": 657
|
||||
},
|
||||
@@ -17309,6 +17311,7 @@
|
||||
"__prefab": {
|
||||
"__id__": 772
|
||||
},
|
||||
"debugMode": false,
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
@@ -38848,6 +38851,7 @@
|
||||
"__prefab": {
|
||||
"__id__": 1759
|
||||
},
|
||||
"debugMode": false,
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
|
||||
@@ -10,14 +10,12 @@ import { CardType, CardKind } from "./GameSet";
|
||||
* @returns 奖励类型 CardType
|
||||
*/
|
||||
export function getLevelRewardType(level: number): CardType {
|
||||
if (level === 1) {
|
||||
return CardType.Skill;
|
||||
} else if (level >= 2 && level <= 5) {
|
||||
return CardType.Talent;
|
||||
} else if (level === 6) {
|
||||
return CardType.Partner;
|
||||
} else {
|
||||
return CardType.Potion; // 以后暂时都是物品
|
||||
switch (level) {
|
||||
case 2: return CardType.Talent;
|
||||
case 5: return CardType.Talent;
|
||||
case 10: return CardType.Talent;
|
||||
default:
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ export class MissionComp extends CCComp {
|
||||
SpecialMonsterSchedule.forEach((item, index) => {
|
||||
if (!this.spawnedSpecialIndices.has(index) && fightTime >= item.time) {
|
||||
this.spawnedSpecialIndices.add(index);
|
||||
mLogger.log(this.debugMode, 'MissionComp', `[MissionComp] 触发特殊刷怪: ${item.desc}`);
|
||||
mLogger.log(this.debugMode, 'MissionComp', ` 触发特殊刷怪: ${item.desc}`);
|
||||
oops.message.dispatchEvent("SpawnSpecialMonster", {
|
||||
uuid: item.uuid,
|
||||
type: item.type,
|
||||
@@ -89,23 +89,15 @@ export class MissionComp extends CCComp {
|
||||
|
||||
// 升级奖励触发
|
||||
onLevelUp(event: string, args: any) {
|
||||
mLogger.log(this.debugMode, 'MissionComp', `[MissionComp] 英雄升级到 ${args.lv} 级!`);
|
||||
mLogger.log(this.debugMode, 'MissionComp', ` 英雄升级到 ${args.lv} 级!`);
|
||||
// 默认每级都触发属性选择
|
||||
oops.message.dispatchEvent(GameEvent.AttrSelect);
|
||||
this.call_cards(args.lv)
|
||||
// 获取当前等级对应的奖励类型
|
||||
|
||||
|
||||
|
||||
// 触发奖励选择界面 (暂时留空)
|
||||
// this.showLevelUpReward();
|
||||
}
|
||||
call_cards(lv:number){
|
||||
const rewardType = getLevelRewardType(lv);
|
||||
|
||||
mLogger.log(this.debugMode, 'MissionComp', `[MissionComp] 触发奖励选择, 类型: ${rewardType}`);
|
||||
|
||||
// 默认每级都触发属性选择
|
||||
oops.message.dispatchEvent(GameEvent.AttrSelect);
|
||||
|
||||
if(!rewardType || rewardType== null) return
|
||||
mLogger.log(this.debugMode, 'MissionComp', ` 触发奖励选择, 类型: ${rewardType}`);
|
||||
// 根据类型发送对应的事件
|
||||
switch (rewardType) {
|
||||
case CardType.Talent:
|
||||
@@ -120,11 +112,12 @@ export class MissionComp extends CCComp {
|
||||
case CardType.Potion:
|
||||
oops.message.dispatchEvent(GameEvent.ShopOpen);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
showLevelUpReward() {
|
||||
// TODO: 显示三选一技能/属性奖励界面
|
||||
mLogger.log(this.debugMode, 'MissionComp', "[MissionComp] 显示升级奖励界面 (TODO)");
|
||||
mLogger.log(this.debugMode, 'MissionComp', " 显示升级奖励界面 (TODO)");
|
||||
}
|
||||
|
||||
//奖励发放
|
||||
@@ -133,7 +126,7 @@ export class MissionComp extends CCComp {
|
||||
}
|
||||
|
||||
do_mon_dead(event:any,data:any){
|
||||
// mLogger.log(this.debugMode, 'MissionComp', "[MissionComp] do_mon_dead",event,data)
|
||||
// mLogger.log(this.debugMode, 'MissionComp', " do_mon_dead",event,data)
|
||||
smc.vmdata.mission_data.mon_num--
|
||||
// 计算并增加经验
|
||||
// data 应该是怪物组件或包含怪物信息的对象
|
||||
@@ -222,7 +215,7 @@ do_ad(){
|
||||
// smc.mission.play = false;
|
||||
smc.mission.pause = true;
|
||||
// oops.message.dispatchEvent(GameEvent.FightEnd,{victory:false})
|
||||
mLogger.log(this.debugMode, 'MissionComp', "[MissionComp] open_Victory",is_hero_dead,this.revive_times)
|
||||
mLogger.log(this.debugMode, 'MissionComp', " open_Victory",is_hero_dead,this.revive_times)
|
||||
oops.gui.open(UIID.Victory,{
|
||||
victory:false,
|
||||
rewards:this.rewards,
|
||||
@@ -235,7 +228,7 @@ do_ad(){
|
||||
onReviveSuccess() {
|
||||
if (this.revive_times > 0) {
|
||||
this.revive_times--;
|
||||
mLogger.log(this.debugMode, 'MissionComp', `[MissionComp] 玩家复活,剩余次数: ${this.revive_times}`);
|
||||
mLogger.log(this.debugMode, 'MissionComp', ` 玩家复活,剩余次数: ${this.revive_times}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -250,7 +243,7 @@ do_ad(){
|
||||
}
|
||||
|
||||
mission_end(){
|
||||
// mLogger.log(this.debugMode, 'MissionComp', "[MissionComp] mission_end")
|
||||
// mLogger.log(this.debugMode, 'MissionComp', " mission_end")
|
||||
// 合并 FightEnd 逻辑:清理组件、停止游戏循环
|
||||
smc.mission.play=false
|
||||
this.cleanComponents()
|
||||
@@ -302,7 +295,7 @@ do_ad(){
|
||||
};
|
||||
|
||||
|
||||
// mLogger.log(this.debugMode, 'MissionComp', "[MissionComp]局内数据初始化",smc.vmdata.mission_data)
|
||||
// mLogger.log(this.debugMode, 'MissionComp', "局内数据初始化",smc.vmdata.mission_data)
|
||||
}
|
||||
|
||||
private cleanComponents() {
|
||||
|
||||
Reference in New Issue
Block a user