feat: 新增天赋系统,实现局外天赋养成与战斗属性加成
- 新增天赋配置表与相关枚举、数据结构 - 新增全局单例的天赋数据管理接口,支持升级、重置、点数管理 - 新增天赋属性加成结算逻辑,支持全局天赋与职业专精天赋 - 新增治疗强化、buff强化属性与对应天赋支持 - 新增天赋更新事件,同步UI与战斗数据 - 在英雄加载、升级流程中接入天赋加成计算
This commit is contained in:
@@ -58,6 +58,7 @@ import { oops } from "db://oops-framework/core/Oops";
|
||||
import { HeroAttrsComp } from "../hero/HeroAttrsComp";
|
||||
import { smc } from "../common/SingletonModuleComp";
|
||||
import { HeroInfo, HType, resolveTriggerByLv, resolveFieldByLv, resolveReviveByLv, resolveSkillOverrides, calcGrowBonus } from "../common/config/heroSet";
|
||||
import { applyTalentBonuses } from "../common/config/TalentSet";
|
||||
import { HeroViewComp } from "../hero/HeroViewComp";
|
||||
import { FacSet, FightSet } from "../common/config/GameSet";
|
||||
import { MissionEconomy } from "./MissionEconomy";
|
||||
@@ -2183,6 +2184,21 @@ export class MissionCardComp extends CCComp {
|
||||
model.ap += apExtra;
|
||||
}
|
||||
|
||||
// 天赋加成层(与 Hero.load 对齐):先重置天赋可能修改的字段,避免升级重算时重复叠加
|
||||
// Why: ap/hp_max 已由上方公式从 base 重算(天然幂等),但 defense 与概率类字段是累加语义,必须先归零再注入
|
||||
if (model.fac === FacSet.HERO) {
|
||||
model.defense = hero.def;
|
||||
model.critical = 0;
|
||||
model.stun_chance = 0;
|
||||
model.freeze_chance = 0;
|
||||
model.wfuny = 0;
|
||||
model.puncture_chance = 0;
|
||||
model.knockback_distance = 0;
|
||||
model.heal_power = 0;
|
||||
model.buff_power = 0;
|
||||
applyTalentBonuses(model, smc.getTalentLevels(), model.role);
|
||||
}
|
||||
|
||||
// 血量按当前血线比例映射到新上限,保留升级前战斗状态
|
||||
model.hp = Math.max(1, Math.floor(model.hp_max * Math.max(0, Math.min(1, hpRate))));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user