mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-23 18:36:31 +01:00
Core/Spells: fixed Echo of Light mastery
This commit is contained in:
8
sql/updates/world/4.3.4/2017_11_30_11_world.sql
Normal file
8
sql/updates/world/4.3.4/2017_11_30_11_world.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
--
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName`= 'spell_pri_echo_of_light';
|
||||
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||
(77485, 'spell_pri_echo_of_light');
|
||||
|
||||
DELETE FROM `spell_proc` WHERE `SpellID`= 77485;
|
||||
INSERT INTO `spell_proc` (`SpellID`, `SpellFamilyName`, `SpellFamilyMask0`, `ProcFlags`, `SpellTypeMask`, `SpellPhaseMask`, `HitMask`, `AttributesMask`) VALUES
|
||||
(77485, 6, 0, 0x00004000, 2, 2, 0, 0x0000020);
|
||||
@@ -37,6 +37,7 @@ enum PriestSpells
|
||||
SPELL_PRIEST_DISPEL_MAGIC_HOSTILE = 97691,
|
||||
SPELL_PRIEST_DIVINE_AEGIS = 47753,
|
||||
SPELL_PRIEST_DIVINE_TOUCH = 63544,
|
||||
SPELL_PRIEST_ECHO_OF_LIGHT = 77489,
|
||||
SPELL_PRIEST_GLYPH_OF_CIRCLE_OF_HEALING = 55675,
|
||||
SPELL_PRIEST_GLYPH_OF_DISPEL_MAGIC = 55677,
|
||||
SPELL_PRIEST_GLYPH_OF_DISPEL_MAGIC_HEAL = 56131,
|
||||
@@ -1247,6 +1248,47 @@ class spell_pri_vampiric_touch : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
class spell_pri_echo_of_light : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_pri_echo_of_light() : SpellScriptLoader("spell_pri_echo_of_light") { }
|
||||
|
||||
class spell_pri_echo_of_light_AuraScript : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_pri_echo_of_light_AuraScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_PRIEST_ECHO_OF_LIGHT });
|
||||
}
|
||||
|
||||
void HandleEffectProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
|
||||
{
|
||||
PreventDefaultAction();
|
||||
if (Unit* caster = GetCaster())
|
||||
{
|
||||
if (Unit* target = eventInfo.GetProcTarget())
|
||||
{
|
||||
uint32 healAmount = CalculatePct(eventInfo.GetHealInfo()->GetHeal(), aurEff->GetAmount());
|
||||
uint8 tickNumber = sSpellMgr->GetSpellInfo(SPELL_PRIEST_ECHO_OF_LIGHT)->GetMaxTicks();
|
||||
if (healAmount && tickNumber)
|
||||
caster->CastCustomSpell(SPELL_PRIEST_ECHO_OF_LIGHT, SPELLVALUE_BASE_POINT0, healAmount / tickNumber, target, true, NULL, aurEff);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectProc += AuraEffectProcFn(spell_pri_echo_of_light_AuraScript::HandleEffectProc, EFFECT_0, SPELL_AURA_DUMMY);
|
||||
}
|
||||
};
|
||||
|
||||
AuraScript* GetAuraScript() const override
|
||||
{
|
||||
return new spell_pri_echo_of_light_AuraScript();
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_priest_spell_scripts()
|
||||
{
|
||||
new spell_pri_body_and_soul();
|
||||
@@ -1254,6 +1296,7 @@ void AddSC_priest_spell_scripts()
|
||||
new spell_pri_dispel_magic();
|
||||
new spell_pri_divine_aegis();
|
||||
new spell_pri_divine_hymn();
|
||||
new spell_pri_echo_of_light();
|
||||
new spell_pri_glyph_of_prayer_of_healing();
|
||||
new spell_pri_hymn_of_hope();
|
||||
new spell_pri_improved_power_word_shield();
|
||||
|
||||
Reference in New Issue
Block a user