From 03a8a41980f096812ba65835bca0de7fe5bf83c4 Mon Sep 17 00:00:00 2001 From: panw Date: Mon, 24 Nov 2025 16:58:13 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=88=98=E6=96=97=E7=B3=BB=E7=BB=9F):=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BC=A4=E5=AE=B3=E6=AF=94=E4=BE=8B=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E5=B9=B6=E5=BA=94=E7=94=A8=E5=88=B0=E4=BC=A4=E5=AE=B3?= =?UTF-8?q?=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在SDataCom中添加dmg_ratio属性用于调整伤害比例 修改HeroAtkSystem中的伤害计算公式,将dmg_ratio纳入计算 --- assets/script/game/hero/HeroAtkSystem.ts | 8 ++++---- assets/script/game/skill/SDataCom.ts | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/assets/script/game/hero/HeroAtkSystem.ts b/assets/script/game/hero/HeroAtkSystem.ts index 7a891259..c4a06aa2 100644 --- a/assets/script/game/hero/HeroAtkSystem.ts +++ b/assets/script/game/hero/HeroAtkSystem.ts @@ -235,10 +235,10 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd if (!sConf) return 0; // 2. 计算原始物理伤害和魔法伤害 - // 物理伤害基础值 = 技能物理倍率 * (施法者物理攻击力 + 额外物理伤害) / 100 - let apBase = (sConf.ap||0)*(CAttrs[Attrs.AP]+damageEvent.ext_dmg)/100; - // 魔法伤害基础值 = 技能魔法倍率 * (施法者魔法攻击力 + 额外魔法伤害) / 100 - let mapBase = (sConf.map||0)*(CAttrs[Attrs.MAP]+damageEvent.ext_dmg)/100; + // 物理伤害基础值 = 技能物理倍率 * (施法者物理攻击力 + 额外物理伤害) / 100 * 伤害比例 + let apBase = (sConf.ap||0)*(CAttrs[Attrs.AP]+damageEvent.ext_dmg)/100*damageEvent.dmg_ratio; + // 魔法伤害基础值 = 技能魔法倍率 * (施法者魔法攻击力 + 额外魔法伤害) / 100 * 伤害比例 + let mapBase = (sConf.map||0)*(CAttrs[Attrs.MAP]+damageEvent.ext_dmg)/100*damageEvent.dmg_ratio; // 3. 获取目标防御属性 const def = (TAttrs[Attrs.DEF]||0); // 目标物理防御 diff --git a/assets/script/game/skill/SDataCom.ts b/assets/script/game/skill/SDataCom.ts index d88c4c49..9c90725e 100644 --- a/assets/script/game/skill/SDataCom.ts +++ b/assets/script/game/skill/SDataCom.ts @@ -13,7 +13,8 @@ export class SDataCom extends ecs.Comp { fac: number = 0; // 0:hero 1:monster s_uuid:number=0 ext_dmg:number=0 //额外伤害 - splash:number=0 //溅射伤害 + splash:number=0 //溅射伤害 + dmg_ratio:number=1 //伤害比例 hit_count:number=0 //击中数量 reset() { this.Attrs=null @@ -24,6 +25,7 @@ export class SDataCom extends ecs.Comp { this.hit_count=0 this.ext_dmg=0 this.splash=0 + this.dmg_ratio=1 } }