Core/Spells: More properly fix SPELL_AURA_DAMAGE_SHIELD

This commit is contained in:
tobmaps
2011-05-13 20:51:10 +07:00
parent 2c90c20596
commit 094b45fc0f
2 changed files with 11 additions and 24 deletions
+11 -6
View File
@@ -1456,12 +1456,8 @@ void Unit::DealMeleeDamage(CalcDamageInfo *damageInfo, bool durabilityLoss)
uint32 damage = (*dmgShieldItr)->GetAmount();
int32 bonus = 0;
bonus += GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, GetSpellSchoolMask(i_spellProto));
if (Unit * caster = (*dmgShieldItr)->GetCaster())
bonus += caster->GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_DAMAGE_DONE_VERSUS, GetCreatureTypeMask());
if (bonus)
AddPctN(damage, bonus);
if (Unit* caster = (*dmgShieldItr)->GetCaster())
damage = caster->SpellDamageBonus(this, i_spellProto, damage, SPELL_DIRECT_DAMAGE);
// No Unit::CalcAbsorbResist here - opcode doesn't send that data - this damage is probably not affected by that
pVictim->DealDamageMods(this, damage, NULL);
@@ -10451,6 +10447,15 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3
AddPctU(DoneTotalMod, 10 * stacks);
}
break;
case SPELLFAMILY_DRUID:
// Thorns
if (spellProto->SpellFamilyFlags[0] & 0x100)
{
// Brambles
if (AuraEffect* aurEff = GetAuraEffectOfRankedSpell(16836, 0))
AddPctN(DoneTotalMod, aurEff->GetAmount());
}
break;
case SPELLFAMILY_WARLOCK:
//Fire and Brimstone
if (spellProto->SpellFamilyFlags[1] & 0x00020040)