diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Entities/Unit/Unit.cpp | 17 | ||||
-rwxr-xr-x | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 18 |
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; |