mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 13:37:05 +00:00
[8922] Implement telant 46859 and ranks additional debuff apply.
Thanks to xXxRRLxXx and KAPATEJIb for patch prepering. Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
parent
bfaeddbc4b
commit
8b0ce112ba
3 changed files with 49 additions and 8 deletions
|
|
@ -2254,14 +2254,54 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
|
|||
return;
|
||||
}
|
||||
|
||||
// Earth Shield
|
||||
if (GetSpellProto()->SpellFamilyName == SPELLFAMILY_SHAMAN && (GetSpellProto()->SpellFamilyFlags & UI64LIT(0x40000000000)))
|
||||
switch(m_spellProto->SpellFamilyName)
|
||||
{
|
||||
// prevent double apply bonuses
|
||||
if(m_target->GetTypeId() != TYPEID_PLAYER || !((Player*)m_target)->GetSession()->PlayerLoading())
|
||||
if (Unit* caster = GetCaster())
|
||||
m_modifier.m_amount = caster->SpellHealingBonus(m_target, GetSpellProto(), m_modifier.m_amount, SPELL_DIRECT_DAMAGE);
|
||||
return;
|
||||
case SPELLFAMILY_WARRIOR:
|
||||
// Overpower
|
||||
if(m_spellProto->SpellFamilyFlags & UI64LIT(0x0000000000000004))
|
||||
{
|
||||
// Must be casting target
|
||||
if (!m_target->IsNonMeleeSpellCasted(false))
|
||||
return;
|
||||
|
||||
Unit* caster = GetCaster();
|
||||
if (!caster)
|
||||
return;
|
||||
|
||||
Unit::AuraList const& modifierAuras = caster->GetAurasByType(SPELL_AURA_ADD_FLAT_MODIFIER);
|
||||
for(Unit::AuraList::const_iterator itr = modifierAuras.begin(); itr != modifierAuras.end(); ++itr)
|
||||
{
|
||||
// Unrelenting Assault
|
||||
if((*itr)->GetSpellProto()->SpellFamilyName==SPELLFAMILY_WARRIOR && (*itr)->GetSpellProto()->SpellIconID == 2775)
|
||||
{
|
||||
switch ((*itr)->GetSpellProto()->Id)
|
||||
{
|
||||
case 46859: // Unrelenting Assault, rank 1
|
||||
m_target->CastSpell(m_target,64849,true,NULL,(*itr));
|
||||
break;
|
||||
case 46860: // Unrelenting Assault, rank 2
|
||||
m_target->CastSpell(m_target,64850,true,NULL,(*itr));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case SPELLFAMILY_SHAMAN:
|
||||
// Earth Shield
|
||||
if ((GetSpellProto()->SpellFamilyFlags & UI64LIT(0x40000000000)))
|
||||
{
|
||||
// prevent double apply bonuses
|
||||
if(m_target->GetTypeId() != TYPEID_PLAYER || !((Player*)m_target)->GetSession()->PlayerLoading())
|
||||
if (Unit* caster = GetCaster())
|
||||
m_modifier.m_amount = caster->SpellHealingBonus(m_target, GetSpellProto(), m_modifier.m_amount, SPELL_DIRECT_DAMAGE);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
// AT REMOVE
|
||||
|
|
|
|||
|
|
@ -1491,6 +1491,7 @@ void Spell::EffectDummy(uint32 i)
|
|||
m_damage+= uint32(damage * m_caster->GetTotalAttackPowerValue(BASE_ATTACK) / 100);
|
||||
return;
|
||||
}
|
||||
|
||||
switch(m_spellInfo->Id)
|
||||
{
|
||||
// Warrior's Wrath
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "8921"
|
||||
#define REVISION_NR "8922"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue