fix(Scripts/Spell): Priest shadowfiend attack and Shadowfiend Death proc (#20987)
Co-authored-by: killerwife <killerwife@gmail.com> Co-authored-by: Grimdhex <176165533+Grimdhex@users.noreply.github.com>
This commit is contained in:
parent
b80da06152
commit
79ba56ed3d
@ -0,0 +1,6 @@
|
|||||||
|
--
|
||||||
|
UPDATE `creature_template_addon` SET `auras` = '28305 8273 57989' WHERE (`entry` = 19668);
|
||||||
|
DELETE FROM `spell_script_names` WHERE `spell_id` = 57989 AND `ScriptName` = 'spell_pri_shadowfiend_death';
|
||||||
|
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||||
|
(57989, 'spell_pri_shadowfiend_death');
|
||||||
|
UPDATE `creature_template` SET `ScriptName` = '' WHERE (`entry` = 19668);
|
||||||
@ -27,10 +27,7 @@
|
|||||||
|
|
||||||
enum PriestSpells
|
enum PriestSpells
|
||||||
{
|
{
|
||||||
SPELL_PRIEST_GLYPH_OF_SHADOWFIEND = 58228,
|
SPELL_PRIEST_LIGHTWELL_CHARGES = 59907,
|
||||||
SPELL_PRIEST_GLYPH_OF_SHADOWFIEND_MANA = 58227,
|
|
||||||
SPELL_PRIEST_SHADOWFIEND_DODGE = 8273,
|
|
||||||
SPELL_PRIEST_LIGHTWELL_CHARGES = 59907
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct npc_pet_pri_lightwell : public TotemAI
|
struct npc_pet_pri_lightwell : public TotemAI
|
||||||
@ -55,31 +52,7 @@ struct npc_pet_pri_lightwell : public TotemAI
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
struct npc_pet_pri_shadowfiend : public PetAI
|
|
||||||
{
|
|
||||||
npc_pet_pri_shadowfiend(Creature* creature) : PetAI(creature) { }
|
|
||||||
|
|
||||||
void Reset() override
|
|
||||||
{
|
|
||||||
PetAI::Reset();
|
|
||||||
if (!me->HasAura(SPELL_PRIEST_SHADOWFIEND_DODGE))
|
|
||||||
me->AddAura(SPELL_PRIEST_SHADOWFIEND_DODGE, me);
|
|
||||||
|
|
||||||
if (Unit* target = me->SelectNearestTarget(15.0f))
|
|
||||||
AttackStart(target);
|
|
||||||
}
|
|
||||||
|
|
||||||
void JustDied(Unit* /*killer*/) override
|
|
||||||
{
|
|
||||||
if (me->IsSummon())
|
|
||||||
if (Unit* owner = me->ToTempSummon()->GetSummonerUnit())
|
|
||||||
if (owner->HasAura(SPELL_PRIEST_GLYPH_OF_SHADOWFIEND))
|
|
||||||
owner->CastSpell(owner, SPELL_PRIEST_GLYPH_OF_SHADOWFIEND_MANA, true);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
void AddSC_priest_pet_scripts()
|
void AddSC_priest_pet_scripts()
|
||||||
{
|
{
|
||||||
RegisterCreatureAI(npc_pet_pri_lightwell);
|
RegisterCreatureAI(npc_pet_pri_lightwell);
|
||||||
RegisterCreatureAI(npc_pet_pri_shadowfiend);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -49,6 +49,8 @@ enum PriestSpells
|
|||||||
SPELL_PRIEST_T9_HEALING_2P = 67201,
|
SPELL_PRIEST_T9_HEALING_2P = 67201,
|
||||||
SPELL_PRIEST_VAMPIRIC_TOUCH_DISPEL = 64085,
|
SPELL_PRIEST_VAMPIRIC_TOUCH_DISPEL = 64085,
|
||||||
SPELL_PRIEST_T4_4P_FLEXIBILITY = 37565,
|
SPELL_PRIEST_T4_4P_FLEXIBILITY = 37565,
|
||||||
|
SPELL_PRIEST_GLYPH_OF_SHADOWFIEND = 58228,
|
||||||
|
SPELL_PRIEST_GLYPH_OF_SHADOWFIEND_MANA = 58227,
|
||||||
|
|
||||||
SPELL_GENERIC_ARENA_DAMPENING = 74410,
|
SPELL_GENERIC_ARENA_DAMPENING = 74410,
|
||||||
SPELL_GENERIC_BATTLEGROUND_DAMPENING = 74411,
|
SPELL_GENERIC_BATTLEGROUND_DAMPENING = 74411,
|
||||||
@ -949,6 +951,38 @@ class spell_pri_t4_4p_bonus : public AuraScript
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 57989 - Shadowfiend Death
|
||||||
|
class spell_pri_shadowfiend_death : public AuraScript
|
||||||
|
{
|
||||||
|
PrepareAuraScript(spell_pri_shadowfiend_death);
|
||||||
|
|
||||||
|
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||||
|
{
|
||||||
|
return ValidateSpellInfo({ SPELL_PRIEST_GLYPH_OF_SHADOWFIEND_MANA });
|
||||||
|
}
|
||||||
|
|
||||||
|
bool AfterCheckProc(ProcEventInfo& eventInfo, bool isTriggeredAtSpellProcEvent)
|
||||||
|
{
|
||||||
|
if (!isTriggeredAtSpellProcEvent)
|
||||||
|
return false;
|
||||||
|
return eventInfo.GetTypeMask() & PROC_FLAG_KILLED;
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleProc(AuraEffect const* /*aurEff*/, ProcEventInfo& /*eventInfo*/)
|
||||||
|
{
|
||||||
|
PreventDefaultAction();
|
||||||
|
if (Unit* owner = GetTarget()->GetOwner())
|
||||||
|
if (owner->HasAura(SPELL_PRIEST_GLYPH_OF_SHADOWFIEND))
|
||||||
|
owner->CastSpell(owner, SPELL_PRIEST_GLYPH_OF_SHADOWFIEND_MANA, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Register() override
|
||||||
|
{
|
||||||
|
DoAfterCheckProc += AuraAfterCheckProcFn(spell_pri_shadowfiend_death::AfterCheckProc);
|
||||||
|
OnEffectProc += AuraEffectProcFn(spell_pri_shadowfiend_death::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
void AddSC_priest_spell_scripts()
|
void AddSC_priest_spell_scripts()
|
||||||
{
|
{
|
||||||
RegisterSpellScript(spell_pri_shadowfiend_scaling);
|
RegisterSpellScript(spell_pri_shadowfiend_scaling);
|
||||||
@ -973,4 +1007,5 @@ void AddSC_priest_spell_scripts()
|
|||||||
RegisterSpellScript(spell_pri_vampiric_touch);
|
RegisterSpellScript(spell_pri_vampiric_touch);
|
||||||
RegisterSpellScript(spell_pri_mind_control);
|
RegisterSpellScript(spell_pri_mind_control);
|
||||||
RegisterSpellScript(spell_pri_t4_4p_bonus);
|
RegisterSpellScript(spell_pri_t4_4p_bonus);
|
||||||
|
RegisterSpellScript(spell_pri_shadowfiend_death);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user