feat(英雄属性): 新增暴击伤害属性并支持驻场技能加成

- 在 HeroAttrs 枚举中添加 critical_damage 属性
- 修改 HeroAtkSystem 的暴击伤害计算逻辑,支持基础暴伤和英雄额外暴伤叠加
- 在 Skill 类中设置技能属性时,使用 HeroAttrsComp 的运行时属性获取方法
- 为 FieldSkillSet 添加 HeroFrost、HeroCrit、HeroCritDamage 和 HeroSpeed 驻场技能配置
- 在 HeroAttrsComp 中新增 crit_damage 字段和相关运行时属性计算方法
- 实现驻场技能百分比值统一换算逻辑,支持 0.2 和 20 两种配置写法
- 添加攻速加成机制,通过缩短技能 CD 实现攻击速度提升
This commit is contained in:
walkpan
2026-05-02 23:50:23 +08:00
parent 7a0b3ee74d
commit 2eaf85c6f5
5 changed files with 71 additions and 14 deletions

View File

@@ -213,8 +213,9 @@ export class Skill extends ecs.Entity {
const sAp =config.ap+(SUp.ap*skill_lv);
const sHit=config.hit_count+(SUp.hit_count*skill_lv) + cAttrsComp.puncture
sDataCom.Attrs[Attrs.ap] = Math.floor(cAttrsComp.ap*sAp/100); //技能的ap是百分值 需要/100 而且需要再最终计算总ap时再/100不然会出现ap为90%变0
sDataCom.Attrs[Attrs.critical] = cAttrsComp.critical + sCrt;
sDataCom.Attrs[Attrs.freeze_chance] = cAttrsComp.freeze_chance + sFrz;
sDataCom.Attrs[Attrs.critical] = cAttrsComp.getRuntimeCritical() + sCrt;
sDataCom.Attrs[Attrs.critical_damage] = cAttrsComp.getRuntimeCritDamageBonus();
sDataCom.Attrs[Attrs.freeze_chance] = cAttrsComp.getRuntimeFreezeChance() + sFrz;
sDataCom.s_uuid=s_uuid
sDataCom.skill_lv = Math.max(0, skill_lv);
sDataCom.fac=cAttrsComp.fac