refactor(英雄属性): 重构生命回复机制并调整相关配置

- 将 HeroUpSet 枚举重命名为 HRegen 并简化其内容,仅保留 HP 回复基础值
- 将 HP_REGEN 属性类型从 VALUE 改为 RATIO,使其作为百分比加成
- 移除魔法回复的固定加成,仅保留属性提供的回复值
- 调整 add_hp 方法的调用参数,移除强制显示伤害数字的标志
This commit is contained in:
panw
2026-02-04 15:45:43 +08:00
parent 772dde62a0
commit 4d0c8e5438
3 changed files with 9 additions and 15 deletions

View File

@@ -133,7 +133,7 @@ export const AttrsType: Record<Attrs, BType> = {
[Attrs.HP_MAX]: BType.VALUE, // 最大生命值 - 数值型
[Attrs.MP_MAX]: BType.VALUE, // 最大魔法值 - 数值型
[Attrs.SHIELD_MAX]: BType.VALUE, // 最大护盾值 - 数值型
[Attrs.HP_REGEN]: BType.VALUE, // 生命回复 - 数值
[Attrs.HP_REGEN]: BType.RATIO, // 生命回复 - 百分比
[Attrs.MP_REGEN]: BType.VALUE, // 魔法回复 - 数值型
[Attrs.LUCK]: BType.VALUE, // 幸运 - 数值型

View File

@@ -88,13 +88,8 @@ export const getPreAttr = (uuid:number)=>{
let def=HeroInfo[uuid].def/HeroConf.MAX_DEF
return {hp:hp,mp:mp,ap:ap,def:def}
}
export enum HeroUpSet {
MP=5,
HP=30,
LVMP=10,
LVHP=30,
LVATK=5,
LVDEF=1,
export enum HRegen {
HP=0.5
}
/**

View File

@@ -2,7 +2,7 @@ import { Timer } from "db://oops-framework/core/common/timer/Timer";
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { smc } from "../common/SingletonModuleComp";
import { Attrs } from "../common/config/HeroAttrs";
import { HeroUpSet } from "../common/config/heroSet";
import { HRegen } from "../common/config/heroSet";
import { HeroSkillsComp } from "./HeroSkills";
import { HeroAttrsComp } from "./HeroAttrsComp";
import { HeroViewComp } from "./HeroViewComp";
@@ -89,14 +89,13 @@ export class HeroAttrSystem extends ecs.ComblockSystem
const hpRegen = model.Attrs[Attrs.HP_REGEN] || 0;
const mpRegen = model.Attrs[Attrs.MP_REGEN] || 0;
model.mp += HeroUpSet.MP + mpRegen;
// model.hp += HeroUpSet.HP + hpRegen;
// model.add_hp(HeroUpSet.HP + hpRegen, true);
// model.hp += HRegen.HP + hpRegen;
// model.add_hp(HRegen.HP + hpRegen, true);
// 回血逻辑 + 视图表现
const totalHpRegen = HeroUpSet.HP + hpRegen;
const totalHpRegen = HRegen.HP + hpRegen;
if (totalHpRegen > 0) {
model.add_hp(totalHpRegen, true);
model.add_hp(totalHpRegen, false);
// 触发视图层回血特效
const view = e.get(HeroViewComp);
if (view) {
@@ -105,7 +104,7 @@ export class HeroAttrSystem extends ecs.ComblockSystem
} else if (totalHpRegen < 0) {
// 如果是扣血(虽然叫 regen走正常的扣血逻辑
// 暂时按原样处理,只处理正向回血的特效
model.add_hp(totalHpRegen, true);
model.add_hp(totalHpRegen, false);
}
}