diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/SharedDefines.h | 2 | ||||
-rw-r--r-- | src/game/Unit.cpp | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h index 33528b1b8fd..a762744a9c6 100644 --- a/src/game/SharedDefines.h +++ b/src/game/SharedDefines.h @@ -372,7 +372,7 @@ const uint32 ItemQualityColors[MAX_ITEM_QUALITY] = { #define SPELL_ATTR_EX3_CAN_PROC_TRIGGERED 0x04000000 // 26 #define SPELL_ATTR_EX3_DRAIN_SOUL 0x08000000 // 27 only drain soul has this flag #define SPELL_ATTR_EX3_UNK28 0x10000000 // 28 -#define SPELL_ATTR_EX3_UNK29 0x20000000 // 29 Ignite 3.3.0 +#define SPELL_ATTR_EX3_NO_DONE_BONUS 0x20000000 // 29 Ignore caster spellpower and done damage mods? #define SPELL_ATTR_EX3_UNK30 0x40000000 // 30 Shaman's Fire Nova 3.3.0, Sweeping Strikes 3.3.0 #define SPELL_ATTR_EX3_UNK31 0x80000000 // 31 diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 423345196d1..18a16d12ec4 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -10169,6 +10169,13 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3 DoneTotal += DoneAdvertisedBenefit * coeff * coeff2; } + // Some spells don't benefit from done mods + if (spellProto->AttributesEx3 & SPELL_ATTR_EX3_NO_DONE_BONUS) + { + DoneTotal = 0; + DoneTotalMod = 1.0f; + } + float tmpDamage = (int32(pdamage) + DoneTotal) * DoneTotalMod; // apply spellmod to Done damage (flat and pct) if (Player* modOwner = GetSpellModOwner()) |