feat: 新增天赋系统,实现局外天赋养成与战斗属性加成
- 新增天赋配置表与相关枚举、数据结构 - 新增全局单例的天赋数据管理接口,支持升级、重置、点数管理 - 新增天赋属性加成结算逻辑,支持全局天赋与职业专精天赋 - 新增治疗强化、buff强化属性与对应天赋支持 - 新增天赋更新事件,同步UI与战斗数据 - 在英雄加载、升级流程中接入天赋加成计算
This commit is contained in:
@@ -16,6 +16,7 @@ import { SkillTriggerHelper } from "./SkillTriggerHelper";
|
||||
import { MissionEconomy } from "../map/MissionEconomy";
|
||||
import { mLogger } from "../common/Logger";
|
||||
import { buffManager } from "./BuffManager";
|
||||
import { BuffList } from "../common/config/BuffSet";
|
||||
|
||||
/**
|
||||
* ==================== 自动施法系统 ====================
|
||||
@@ -527,7 +528,8 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
|
||||
}
|
||||
|
||||
if (kind === SkillKind.Heal && sAp !== 0) {
|
||||
const addHp = Math.floor(sAp * _cAttrsComp.ap / 100);
|
||||
// 治疗强化(heal_power,百分点):辅助专精天赋写入,放大施法者的治疗量
|
||||
const addHp = Math.floor(sAp * _cAttrsComp.ap / 100 * (1 + _cAttrsComp.heal_power / 100));
|
||||
model.add_hp(addHp);
|
||||
target.health(addHp);
|
||||
if (_cAttrsComp.fac === FacSet.HERO) {
|
||||
@@ -547,6 +549,17 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
|
||||
const buffOverrides: { value?: number; duration?: number } = {};
|
||||
if (config.buff_value !== undefined) buffOverrides.value = config.buff_value;
|
||||
if (config.buff_duration !== undefined) buffOverrides.duration = config.buff_duration;
|
||||
// buff 强化(buff_power,百分点):辅助专精天赋写入,按施法者放大 buff 数值。
|
||||
// 基准值优先取技能 buff_value,未配置时反查 BuffList(modifiers[0].value 优先,其次 tick.damage_or_heal)
|
||||
if (_cAttrsComp.buff_power > 0) {
|
||||
const buffCfg = BuffList[config.timed_buff_id];
|
||||
const baseValue = config.buff_value
|
||||
?? buffCfg?.modifiers?.[0]?.value
|
||||
?? buffCfg?.tick?.damage_or_heal;
|
||||
if (baseValue !== undefined) {
|
||||
buffOverrides.value = Math.floor(baseValue * (1 + _cAttrsComp.buff_power / 100));
|
||||
}
|
||||
}
|
||||
buffManager.applyBuff(
|
||||
target.ent,
|
||||
config.timed_buff_id,
|
||||
@@ -558,7 +571,8 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
|
||||
}
|
||||
|
||||
// 永久 buff 统一按百分比结算:攻击/生命按基础值相对放大,其余按百分点累加
|
||||
const totalBuffValue = config.ap;
|
||||
// buff 强化(buff_power,百分点):辅助专精天赋写入,按施法者放大永久 buff 数值
|
||||
const totalBuffValue = config.ap * (1 + _cAttrsComp.buff_power / 100);
|
||||
|
||||
switch (config.buff_type) {
|
||||
case Attrs.ap: {
|
||||
|
||||
Reference in New Issue
Block a user