diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua index 87d1889bdc..9bd258e03c 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua @@ -8145,7 +8145,7 @@ local passivityList = { --添加技能额外伤害 if curSkill then local finalDamage=floor(role.superSkillDamage*p1) - BattleUtil.FinalDamage(curSkill,role,buff.target,finalDamage) + BattleUtil.ApplyDamageNoPassive(curSkill,role,buff.target,finalDamage) end end --添加buff失败 diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua index f375ab167f..73debf9259 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua @@ -642,6 +642,28 @@ function BattleUtil.ApplyDamage(skill, atkRole, defRole, damage, bCrit, damageTy return BattleUtil.FinalDamage(skill, atkRole, defRole, damage, bCrit, damageType, dotType,isDirect) end +-- 计算真实伤害(没有被动增伤) +function BattleUtil.ApplyDamageNoPassive(skill, atkRole, defRole, damage, bCrit, damageType, dotType,isDirect) + -- 灵兽无效 + if defRole.type == BattleUnitType.Monster then + return + end + -- 计算护盾减伤 + damage = BattleUtil.CalShield(atkRole, defRole, damage,skill) + -- 造成的最终伤害 + local damagingFunc = function(dmgDeduction) + damage = damage - dmgDeduction + end + + defRole.Event:DispatchEvent(BattleEventName.FinalBeDamageEnd, damagingFunc, atkRole, damage, skill, dotType, bCrit, damageType,isDirect) + BattleLogic.Event:DispatchEvent(BattleEventName.FinalDamage, damagingFunc, atkRole, defRole, damage, skill, dotType, bCrit, damageType) + + -- + return BattleUtil.FinalDamage(skill, atkRole, defRole, damage, bCrit, damageType, dotType,isDirect) +end + + + -- 怒气计算 function BattleUtil.CalRage(caster, target, value, countType,isBorrow)