diff options
| author | tobmaps <spambot42@yandex.ru> | 2011-07-22 23:30:23 +0700 |
|---|---|---|
| committer | tobmaps <spambot42@yandex.ru> | 2011-07-22 23:30:23 +0700 |
| commit | a3feb40eb6b43cf41a559be545381f6efe7d71eb (patch) | |
| tree | 129e8533a7f64004900aa2b119b6d0569dfb6eb8 /src/server/game/Entities | |
| parent | f50892fa7711aa41c9d97801f6edab127845b90a (diff) | |
Core/Spells: Define and implement SPELL_ATTR6_NO_DONE_PCT_DAMAGE_MODS; revert SPELL_ATTR4_FIXED_DAMAGE
Closes #1307
Closes #2270
Diffstat (limited to 'src/server/game/Entities')
| -rwxr-xr-x | src/server/game/Entities/Unit/Unit.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index f70bdd3b262..f6db458e270 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -1032,12 +1032,6 @@ void Unit::CalculateSpellDamageTaken(SpellNonMeleeDamage *damageInfo, int32 dama if (damage < 0) return; - if (spellInfo->AttributesEx4 & SPELL_ATTR4_FIXED_DAMAGE) - { - damageInfo->damage = damage; - return; - } - Unit* victim = damageInfo->target; if (!victim || !victim->isAlive()) return; @@ -10692,9 +10686,9 @@ uint32 Unit::SpellDamageBonus(Unit* victim, SpellEntry const* spellProto, uint32 AddPctN(DoneTotalMod, aurEff->GetAmount()); // Sigil of the Vengeful Heart - if (spellProto->SpellFamilyFlags[0] & 0x2000) - if (AuraEffect* aurEff = GetAuraEffect(64962, EFFECT_1)) - AddPctN(DoneTotal, aurEff->GetAmount()); + if (spellProto->SpellFamilyFlags[0] & 0x2000) + if (AuraEffect* aurEff = GetAuraEffect(64962, EFFECT_1)) + AddPctN(DoneTotal, aurEff->GetAmount()); // Glacier Rot if (spellProto->SpellFamilyFlags[0] & 0x2 || spellProto->SpellFamilyFlags[1] & 0x6) @@ -10904,6 +10898,12 @@ uint32 Unit::SpellDamageBonus(Unit* victim, SpellEntry const* spellProto, uint32 DoneTotalMod = 1.0f; } + // Some spells don't benefit from from pct done mods + // maybe should be implemented like SPELL_ATTR3_NO_DONE_BONUS, + // but then it may break spell power coeffs work on spell 31117 + if (spellProto->AttributesEx6 & SPELL_ATTR6_NO_DONE_PCT_DAMAGE_MODS) + DoneTotalMod = 1.0f; + float tmpDamage = (int32(pdamage) + DoneTotal) * DoneTotalMod; // apply spellmod to Done damage (flat and pct) if (Player* modOwner = GetSpellModOwner()) |
