feat(战斗系统): 添加伤害比例属性并应用到伤害计算
在SDataCom中添加dmg_ratio属性用于调整伤害比例 修改HeroAtkSystem中的伤害计算公式,将dmg_ratio纳入计算
This commit is contained in:
@@ -235,10 +235,10 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
|
|||||||
if (!sConf) return 0;
|
if (!sConf) return 0;
|
||||||
|
|
||||||
// 2. 计算原始物理伤害和魔法伤害
|
// 2. 计算原始物理伤害和魔法伤害
|
||||||
// 物理伤害基础值 = 技能物理倍率 * (施法者物理攻击力 + 额外物理伤害) / 100
|
// 物理伤害基础值 = 技能物理倍率 * (施法者物理攻击力 + 额外物理伤害) / 100 * 伤害比例
|
||||||
let apBase = (sConf.ap||0)*(CAttrs[Attrs.AP]+damageEvent.ext_dmg)/100;
|
let apBase = (sConf.ap||0)*(CAttrs[Attrs.AP]+damageEvent.ext_dmg)/100*damageEvent.dmg_ratio;
|
||||||
// 魔法伤害基础值 = 技能魔法倍率 * (施法者魔法攻击力 + 额外魔法伤害) / 100
|
// 魔法伤害基础值 = 技能魔法倍率 * (施法者魔法攻击力 + 额外魔法伤害) / 100 * 伤害比例
|
||||||
let mapBase = (sConf.map||0)*(CAttrs[Attrs.MAP]+damageEvent.ext_dmg)/100;
|
let mapBase = (sConf.map||0)*(CAttrs[Attrs.MAP]+damageEvent.ext_dmg)/100*damageEvent.dmg_ratio;
|
||||||
|
|
||||||
// 3. 获取目标防御属性
|
// 3. 获取目标防御属性
|
||||||
const def = (TAttrs[Attrs.DEF]||0); // 目标物理防御
|
const def = (TAttrs[Attrs.DEF]||0); // 目标物理防御
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ export class SDataCom extends ecs.Comp {
|
|||||||
fac: number = 0; // 0:hero 1:monster
|
fac: number = 0; // 0:hero 1:monster
|
||||||
s_uuid:number=0
|
s_uuid:number=0
|
||||||
ext_dmg:number=0 //额外伤害
|
ext_dmg:number=0 //额外伤害
|
||||||
splash:number=0 //溅射伤害
|
splash:number=0 //溅射伤害
|
||||||
|
dmg_ratio:number=1 //伤害比例
|
||||||
hit_count:number=0 //击中数量
|
hit_count:number=0 //击中数量
|
||||||
reset() {
|
reset() {
|
||||||
this.Attrs=null
|
this.Attrs=null
|
||||||
@@ -24,6 +25,7 @@ export class SDataCom extends ecs.Comp {
|
|||||||
this.hit_count=0
|
this.hit_count=0
|
||||||
this.ext_dmg=0
|
this.ext_dmg=0
|
||||||
this.splash=0
|
this.splash=0
|
||||||
|
this.dmg_ratio=1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user