Core/Spells: Update/Convert priest "Body and Soul" for 4.3.4
This commit is contained in:
1 parent
2d53863396
commit
b6a5d667e2
3 files changed
+66
-10
No files matched your search
@@ -30,6 +30,9 @@
|
||||
enum PriestSpells
|
||||
{
|
||||
SPELL_PRIEST_ABSOLUTION = 33167,
|
||||
SPELL_PRIEST_BODY_AND_SOUL_DISPEL = 64136,
|
||||
SPELL_PRIEST_BODY_AND_SOUL_SPEED = 65081,
|
||||
SPELL_PRIEST_CURE_DISEASE = 528,
|
||||
SPELL_PRIEST_DISPEL_MAGIC_FRIENDLY = 97690,
|
||||
SPELL_PRIEST_DISPEL_MAGIC_HOSTILE = 97691,
|
||||
SPELL_PRIEST_DIVINE_AEGIS = 47753,
|
||||
@@ -71,6 +74,55 @@ enum MiscSpells
|
||||
SPELL_GEN_REPLENISHMENT = 57669
|
||||
};
|
||||
|
||||
class spell_pri_body_and_soul : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_pri_body_and_soul() : SpellScriptLoader("spell_pri_body_and_soul") { }
|
||||
|
||||
class spell_pri_body_and_soul_AuraScript : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_pri_body_and_soul_AuraScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_PRIEST_CURE_DISEASE) ||
|
||||
!sSpellMgr->GetSpellInfo(SPELL_PRIEST_BODY_AND_SOUL_DISPEL))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void HandleEffectSpeedProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
|
||||
{
|
||||
PreventDefaultAction();
|
||||
if (!(eventInfo.GetDamageInfo()->GetSpellInfo()->SpellFamilyFlags[0] & 0x1 || eventInfo.GetDamageInfo()->GetSpellInfo()->SpellFamilyFlags[2] & 0x80000))
|
||||
return;
|
||||
|
||||
GetTarget()->CastCustomSpell(SPELL_PRIEST_BODY_AND_SOUL_SPEED, SPELLVALUE_BASE_POINT0, aurEff->GetAmount(), eventInfo.GetProcTarget(), true, NULL, aurEff);
|
||||
}
|
||||
|
||||
void HandleEffectDispelProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
|
||||
{
|
||||
PreventDefaultAction();
|
||||
if (eventInfo.GetDamageInfo()->GetSpellInfo()->Id != SPELL_PRIEST_CURE_DISEASE || eventInfo.GetProcTarget() != GetTarget())
|
||||
return;
|
||||
|
||||
if (roll_chance_i(aurEff->GetAmount()))
|
||||
GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_PRIEST_BODY_AND_SOUL_DISPEL, true, NULL, aurEff);
|
||||
}
|
||||
|
||||
void Register() OVERRIDE
|
||||
{
|
||||
OnEffectProc += AuraEffectProcFn(spell_pri_body_and_soul_AuraScript::HandleEffectSpeedProc, EFFECT_0, SPELL_AURA_DUMMY);
|
||||
OnEffectProc += AuraEffectProcFn(spell_pri_body_and_soul_AuraScript::HandleEffectDispelProc, EFFECT_1, SPELL_AURA_DUMMY);
|
||||
}
|
||||
};
|
||||
|
||||
AuraScript* GetAuraScript() const OVERRIDE
|
||||
{
|
||||
return new spell_pri_body_and_soul_AuraScript();
|
||||
}
|
||||
};
|
||||
|
||||
// 527 - Dispel magic
|
||||
class spell_pri_dispel_magic : public SpellScriptLoader
|
||||
{
|
||||
@@ -1028,6 +1080,7 @@ class spell_pri_vampiric_touch : public SpellScriptLoader
|
||||
|
||||
void AddSC_priest_spell_scripts()
|
||||
{
|
||||
new spell_pri_body_and_soul();
|
||||
new spell_pri_dispel_magic();
|
||||
new spell_pri_divine_aegis();
|
||||
new spell_pri_glyph_of_prayer_of_healing();
|
||||
|
||||
Reference in new issue
Block a user