refactor(经验系统): 移除怪物经验计算和英雄经验更新逻辑
经验系统重构,删除不再使用的怪物经验计算函数getMonsterExp和英雄经验更新方法updateHeroExp
This commit is contained in:
@@ -138,38 +138,7 @@ export class SingletonModuleComp extends ecs.Comp {
|
|||||||
gold: 200, // 金币数据(MVVM绑定字段)
|
gold: 200, // 金币数据(MVVM绑定字段)
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新英雄经验
|
|
||||||
* @param exp 获得的经验值
|
|
||||||
*/
|
|
||||||
updateHeroExp(exp: number) {
|
|
||||||
if (!this.vmdata.hero) return;
|
|
||||||
|
|
||||||
this.vmdata.hero.exp += exp*20;
|
|
||||||
// console.log('[smc] 英雄升级 经验:' + this.vmdata.hero.exp + ' 等级:' + this.vmdata.hero.lv + ' 上限:' + this.vmdata.hero.exp_max);
|
|
||||||
// 确保 exp_max 初始化
|
|
||||||
if (this.vmdata.hero.exp_max <= 0) {
|
|
||||||
this.vmdata.hero.exp_max = getLevelExp(this.vmdata.hero.lv || 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
while (this.vmdata.hero.exp >= this.vmdata.hero.exp_max) {
|
|
||||||
this.vmdata.hero.exp -= this.vmdata.hero.exp_max;
|
|
||||||
this.vmdata.hero.lv++;
|
|
||||||
|
|
||||||
// 更新下一级所需经验
|
|
||||||
this.vmdata.hero.exp_max = getLevelExp(this.vmdata.hero.lv);
|
|
||||||
|
|
||||||
// 触发升级事件
|
|
||||||
oops.message.dispatchEvent(GameEvent.CanUpdateLv, { lv: this.vmdata.hero.lv });
|
|
||||||
}
|
|
||||||
|
|
||||||
// 更新进度条显示 (0-1)
|
|
||||||
if (this.vmdata.hero.exp_max > 0) {
|
|
||||||
this.vmdata.hero.exp_pre = Math.floor(this.vmdata.hero.exp / this.vmdata.hero.exp_max * 100);
|
|
||||||
} else {
|
|
||||||
this.vmdata.hero.exp_pre = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 记录天赋获取
|
* 记录天赋获取
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/modu
|
|||||||
import { smc } from "../common/SingletonModuleComp";
|
import { smc } from "../common/SingletonModuleComp";
|
||||||
import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops";
|
import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops";
|
||||||
import { HeroAttrsComp } from "../hero/HeroAttrsComp";
|
import { HeroAttrsComp } from "../hero/HeroAttrsComp";
|
||||||
import { getLevelExp, getMonsterExp, MonsterCost, MonType } from "./RogueConfig";
|
import { MonsterCost, MonType } from "./RogueConfig";
|
||||||
import { GameEvent } from "../common/config/GameEvent";
|
import { GameEvent } from "../common/config/GameEvent";
|
||||||
import { HeroViewComp } from "../hero/HeroViewComp";
|
import { HeroViewComp } from "../hero/HeroViewComp";
|
||||||
import { UIID } from "../common/config/GameUIConfig";
|
import { UIID } from "../common/config/GameUIConfig";
|
||||||
@@ -123,9 +123,6 @@ export class MissionComp extends CCComp {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取怪物经验
|
|
||||||
const exp = getMonsterExp(data.uuid, level, type);
|
|
||||||
smc.updateHeroExp(exp);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -347,27 +347,6 @@ export function getLevelExp(level: number): number {
|
|||||||
return Math.floor(baseExp * Math.pow(growthFactor, level - 1));
|
return Math.floor(baseExp * Math.pow(growthFactor, level - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取怪物掉落经验
|
|
||||||
* @param monsterUuid 怪物ID
|
|
||||||
* @param monsterLevel 怪物等级
|
|
||||||
* @param monsterType 怪物类型
|
|
||||||
*/
|
|
||||||
export function getMonsterExp(monsterUuid: number, monsterLevel: number, monsterType: MonType): number {
|
|
||||||
// 基础掉落经验 (可以从 MonsterCost 推导,或者单独配置)
|
|
||||||
const baseDrop = MonsterCost[monsterUuid] ? MonsterCost[monsterUuid] * 5 : 5;
|
|
||||||
|
|
||||||
// 类型加成
|
|
||||||
let typeMultiplier = 1.0;
|
|
||||||
if (monsterType === MonType.ELITE) typeMultiplier = 3.0;
|
|
||||||
if (monsterType === MonType.BOSS) typeMultiplier = 10.0;
|
|
||||||
|
|
||||||
// 等级加成 (每级增加10%)
|
|
||||||
const levelMultiplier = 1 + (monsterLevel - 1) * 0.1;
|
|
||||||
|
|
||||||
return Math.floor(baseDrop * typeMultiplier * levelMultiplier);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 怪物消耗点数配置
|
// 怪物消耗点数配置
|
||||||
export const MonsterCost: Record<number, number> = {
|
export const MonsterCost: Record<number, number> = {
|
||||||
5201: 1, // 兽人战士 (Warrior)
|
5201: 1, // 兽人战士 (Warrior)
|
||||||
|
|||||||
Reference in New Issue
Block a user