aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp17
-rwxr-xr-xsrc/server/game/Spells/Auras/SpellAuraEffects.cpp18
2 files changed, 11 insertions, 24 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 3e1c94edffb..c1f32587078 100755
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -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)
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index 04c1eb0f3aa..6efc06cd75e 100755
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -594,24 +594,6 @@ int32 AuraEffect::CalculateAmount(Unit * caster)
if (GetSpellProto()->SpellFamilyName == SPELLFAMILY_SHAMAN && m_spellProto->SpellFamilyFlags[1] & 0x400)
amount = caster->SpellHealingBonus(GetBase()->GetUnitOwner(), GetSpellProto(), amount, SPELL_DIRECT_DAMAGE);
break;
- case SPELL_AURA_DAMAGE_SHIELD:
- if (!caster)
- break;
-
- if (caster->GetTypeId() == TYPEID_PLAYER)
- {
- DoneActualBenefit += caster->SpellDamageBonus(GetBase()->GetUnitOwner(), GetSpellProto(), 0, SPELL_DIRECT_DAMAGE);
- DoneActualBenefit *= caster->CalculateLevelPenalty(GetSpellProto());
- amount += (int32)DoneActualBenefit;
-
- // Thorns
- if (GetSpellProto()->SpellFamilyName == SPELLFAMILY_DRUID && m_spellProto->SpellFamilyFlags[0] & 0x100)
- if (AuraEffect * aurEff = caster->GetAuraEffectOfRankedSpell(16836, 0))
- AddPctN(amount, aurEff->GetAmount());
-
- return amount;
- }
- break;
case SPELL_AURA_PERIODIC_DAMAGE:
if (!caster)
break;