feat: 重构英雄成长系统,支持差异化成长曲线与无限升级
1. 新增英雄成长类型枚举与系数表,实现坦克/战士/刺客等差异化成长 2. 替换旧的固定指数成长逻辑,改用线性累计成长公式 3. 移除英雄等级上限,改为技能等级封顶,调整升级/出售金币计算逻辑 4. 重构属性计算与UI展示逻辑,统一成长计算入口 5. 优化技能文案展示与英雄配置格式
This commit is contained in:
@@ -110,12 +110,12 @@ export class MissionEconomy {
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算英雄升级金币消耗(按当前等级线性缩放:Lv×5)
|
||||
* 计算英雄升级金币消耗(指数递增:5×2^(lv-1),无限升级下指数控速)
|
||||
* @param heroLevel 当前英雄等级(升级前)
|
||||
*/
|
||||
static getUpgradeCost(heroLevel: number = 1): number {
|
||||
const lv = Math.max(1, Math.floor(heroLevel));
|
||||
return lv * 5;
|
||||
return Math.floor(5 * Math.pow(2, lv - 1));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -128,11 +128,14 @@ export class MissionEconomy {
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算英雄出售金币(按英雄等级缩放)
|
||||
* 计算英雄出售金币(按累计升级投入的 50% 折算,无限升级自动缩放)。
|
||||
* 累计投入 = 等比数列求和 Σ5×2^(i-1)(i=1..lv-1)= 5×(2^(lv-1) - 1)。
|
||||
*/
|
||||
static getSellGold(heroLevel: number = 1): number {
|
||||
const sellByLevel: Record<number, number> = { 1: 3, 2: 10, 3: 25 };
|
||||
const baseSellGold = sellByLevel[heroLevel] || 3;
|
||||
const lv = Math.max(1, Math.floor(heroLevel));
|
||||
// 基础出售价 3(保底招募残值)+ 累计升级投入的 50%
|
||||
const investTotal = 5 * (Math.pow(2, lv - 1) - 1);
|
||||
const baseSellGold = 3 + Math.floor(investTotal * 0.5);
|
||||
// 驻场英雄带来的"出售金币"加成(包含原 SellBonus 语义,统一在 SellGold 中)
|
||||
const goldBoost = FieldSkillHelper.getFieldSkillTotalValue(FieldSkillType.SellGold);
|
||||
const totalSellGold = baseSellGold + goldBoost;
|
||||
|
||||
Reference in New Issue
Block a user