mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-21 17:54:48 +01:00
Mutilate fix - by _krz.
--HG-- branch : trunk
This commit is contained in:
@@ -2378,6 +2378,7 @@ template <class T> T Player::ApplySpellMod(uint32 spellId, SpellModOp op, T &bas
|
||||
|
||||
if (mod->charges > 0 )
|
||||
{
|
||||
if( !(spellInfo->SpellFamilyName == 8 && spellInfo->SpellFamilyFlags & 0x200000000LL) )
|
||||
--mod->charges;
|
||||
if (mod->charges == 0)
|
||||
{
|
||||
|
||||
@@ -656,6 +656,9 @@ void Spell::prepareDataForTriggerSystem()
|
||||
case SPELLFAMILY_PALADIN: // For Holy Shock triggers need do it
|
||||
if (m_spellInfo->SpellFamilyFlags & 0x0001000000200000LL) m_canTrigger = true;
|
||||
break;
|
||||
case SPELLFAMILY_ROGUE: // mutilate mainhand + offhand
|
||||
if (m_spellInfo->SpellFamilyFlags & 0x600000000LL) m_canTrigger = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Do not trigger from item cast spell
|
||||
|
||||
@@ -4160,26 +4160,15 @@ void Spell::SpellDamageWeaponDmg(uint32 i)
|
||||
// Mutilate (for each hand)
|
||||
else if(m_spellInfo->SpellFamilyFlags & 0x600000000LL)
|
||||
{
|
||||
bool found = false;
|
||||
// fast check
|
||||
if(unitTarget->HasAuraState(AURA_STATE_DEADLY_POISON))
|
||||
found = true;
|
||||
// full aura scan
|
||||
else
|
||||
Unit::AuraMap const& auras = unitTarget->GetAuras();
|
||||
for(Unit::AuraMap::const_iterator itr = auras.begin(); itr!=auras.end(); ++itr)
|
||||
{
|
||||
Unit::AuraMap const& auras = unitTarget->GetAuras();
|
||||
for(Unit::AuraMap::const_iterator itr = auras.begin(); itr!=auras.end(); ++itr)
|
||||
if(itr->second->GetSpellProto()->Dispel == DISPEL_POISON)
|
||||
{
|
||||
if(itr->second->GetSpellProto()->Dispel == DISPEL_POISON)
|
||||
{
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
totalDamagePercentMod *= 1.5f; // 150% if poisoned
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(found)
|
||||
totalDamagePercentMod *= 1.5f; // 150% if poisoned
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user