[8492] Implement talent 53563.

Original patch suggested by Arthorius.
Added data in mangos_spell_check to remember requirement update code for 3.2.x support in future.
This commit is contained in:
VladimirMangos 2009-09-12 10:54:30 +04:00
parent 692f32c82a
commit 610703c14b
5 changed files with 48 additions and 2 deletions

View file

@ -406,4 +406,8 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
( 0, 7,0x0010000000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Swipe', 'Spell::EffectSchoolDMG'),
( 0, 4,0x0000000000000080,0x00000000, -1, -1, -1, 2, -1,-1,'Thunder Clap', 'Spell::EffectSchoolDMG'),
( 0, 4,0x0000010000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Victory Rush', 'Spell::EffectSchoolDMG'),
( 0, 8,0x0000000010000000,0x00000000, -1, -1, -1, 2, -1,-1,'Wound Poison', 'Spell::EffectSchoolDMG');
( 0, 8,0x0000000010000000,0x00000000, -1, -1, -1, 2, -1,-1,'Wound Poison', 'Spell::EffectSchoolDMG'),
/* some random spells from not proccessed files sorted by spell ids */
/*id fm familyMaskA fmMaskB icon vis cat eff aur ef name code */
(53563,-1, -1, -1, -1, -1, -1, -1, 4,-1,'Beacon of Light', 'Aura::HandleAuraDummy'); /* will outdated in 3.2.x */

View file

@ -2406,6 +2406,20 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
}
break;
}
case SPELLFAMILY_PALADIN:
{
// Beacon of Light
if (GetId() == 53563)
{
if(apply)
// original caster must be target (beacon)
m_target->CastSpell(m_target,53651,true,NULL,this,m_target->GetGUID());
else
m_target->RemoveAurasDueToSpell(53651);
return;
}
break;
}
case SPELLFAMILY_DRUID:
{
switch(GetId())

View file

@ -1571,6 +1571,10 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons
if ((spellInfo_1->SpellFamilyFlags2 & 0x00000020) && (spellInfo_2->SpellIconID == 291 || spellInfo_2->SpellIconID == 3028) ||
(spellInfo_2->SpellFamilyFlags2 & 0x00000020) && (spellInfo_1->SpellIconID == 291 || spellInfo_1->SpellIconID == 3028))
return false;
// Beacon of Light and Light's Beacon
if ((spellInfo_1->SpellIconID == 3032) && (spellInfo_2->SpellIconID == 3032))
return false;
}
// Combustion and Fire Protection Aura (multi-family check)

View file

@ -5800,6 +5800,30 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
return true;
break;
}
// Light's Beacon (heal target area aura)
case 53651:
{
// not do bonus heal for explicit beacon focus healing
if (GetGUID() == triggeredByAura->GetCasterGUID())
return false;
Unit* beacon = triggeredByAura->GetCaster();
if (!beacon)
return false;
Aura* dummy = beacon->GetDummyAura(53563);
if (!dummy)
return false;
// original heal must be form beacon caster
if (dummy->GetCasterGUID() != pVictim->GetGUID())
return false;
triggered_spell_id = 53652; // Beacon of Light
basepoints0 = triggeredByAura->GetModifier()->m_amount*damage/100;
target = beacon;
break;
}
// Seal of the Martyr do damage trigger
case 53720:
{

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "8491"
#define REVISION_NR "8492"
#endif // __REVISION_NR_H__