diff --git a/Source/Framework/Constants/Spells/SpellConst.cs b/Source/Framework/Constants/Spells/SpellConst.cs index 30c75a201..768b3cf51 100644 --- a/Source/Framework/Constants/Spells/SpellConst.cs +++ b/Source/Framework/Constants/Spells/SpellConst.cs @@ -2051,6 +2051,7 @@ namespace Framework.Constants HitTarget } + [Flags] public enum ProcFlags { None = 0x0, diff --git a/Source/Game/DataStorage/Structs/S_Records.cs b/Source/Game/DataStorage/Structs/S_Records.cs index d1f401b74..e69378d75 100644 --- a/Source/Game/DataStorage/Structs/S_Records.cs +++ b/Source/Game/DataStorage/Structs/S_Records.cs @@ -165,7 +165,7 @@ namespace Game.DataStorage public uint ProcTypeMask; public uint ProcCategoryRecovery; public ushort CumulativeAura; - public byte SpellProcsPerMinuteID; + public ushort SpellProcsPerMinuteID; public byte DifficultyID; public byte ProcChance; } diff --git a/Source/Game/Entities/Unit/Unit.Combat.cs b/Source/Game/Entities/Unit/Unit.Combat.cs index fa84f80a1..5ca2b2353 100644 --- a/Source/Game/Entities/Unit/Unit.Combat.cs +++ b/Source/Game/Entities/Unit/Unit.Combat.cs @@ -1920,13 +1920,14 @@ namespace Game.Entities CalcAbsorbResist(dmgInfo); damageInfo.absorb = dmgInfo.GetAbsorb(); damageInfo.resist = dmgInfo.GetResist(); - damageInfo.damage = dmgInfo.GetDamage(); if (damageInfo.absorb != 0) damageInfo.HitInfo |= (damageInfo.damage - damageInfo.absorb == 0 ? HitInfo.FullAbsorb : HitInfo.PartialAbsorb); if (damageInfo.resist != 0) damageInfo.HitInfo |= (damageInfo.damage - damageInfo.resist == 0 ? HitInfo.FullResist : HitInfo.PartialResist); + + damageInfo.damage = dmgInfo.GetDamage(); } else // Impossible get negative result but.... damageInfo.damage = 0;