mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-16 18:40:28 +00:00
fix(Scripts/Magtheridon): Clicking cubes should Banish Magtheridon (#18856)
* init * rewrite without action * fix: add Talk(SAY_BANISH)
This commit is contained in:
@@ -52,6 +52,7 @@ enum Spells
|
||||
SPELL_BERSERK = 27680,
|
||||
SPELL_SHADOW_GRASP = 30410,
|
||||
SPELL_SHADOW_GRASP_VISUAL = 30166,
|
||||
SPELL_SHADOW_CAGE_STUN = 30168,
|
||||
SPELL_MIND_EXHAUSTION = 44032,
|
||||
SPELL_QUAKE = 30657,
|
||||
SPELL_QUAKE_KNOCKBACK = 30571,
|
||||
@@ -65,13 +66,13 @@ enum Spells
|
||||
|
||||
enum Groups
|
||||
{
|
||||
GROUP_INTERRUPT_CHECK = 0,
|
||||
GROUP_EARLY_RELEASE_CHECK = 1
|
||||
GROUP_EARLY_RELEASE_CHECK = 0
|
||||
};
|
||||
|
||||
enum Actions
|
||||
{
|
||||
ACTION_INCREASE_HELLFIRE_CHANNELER_DEATH_COUNT = 1
|
||||
ACTION_INCREASE_HELLFIRE_CHANNELER_DEATH_COUNT = 1,
|
||||
ACTION_BANISH_SELF = 2
|
||||
};
|
||||
|
||||
struct boss_magtheridon : public BossAI
|
||||
@@ -188,21 +189,6 @@ struct boss_magtheridon : public BossAI
|
||||
{
|
||||
DoCastSelf(SPELL_BLAST_NOVA);
|
||||
scheduler.DelayAll(10s);
|
||||
|
||||
_interruptScheduler.Schedule(50ms, GROUP_INTERRUPT_CHECK, [this](TaskContext context)
|
||||
{
|
||||
if (me->GetAuraCount(SPELL_SHADOW_GRASP_VISUAL) == 5)
|
||||
{
|
||||
Talk(SAY_BANISH);
|
||||
me->InterruptNonMeleeSpells(true);
|
||||
scheduler.CancelGroup(GROUP_INTERRUPT_CHECK);
|
||||
}
|
||||
else
|
||||
context.Repeat(50ms);
|
||||
}).Schedule(12s, GROUP_INTERRUPT_CHECK, [this](TaskContext /*context*/)
|
||||
{
|
||||
_interruptScheduler.CancelGroup(GROUP_INTERRUPT_CHECK);
|
||||
});
|
||||
context.Repeat(54350ms, 55400ms);
|
||||
}).Schedule(22min, [this](TaskContext /*context*/)
|
||||
{
|
||||
@@ -228,6 +214,11 @@ struct boss_magtheridon : public BossAI
|
||||
});
|
||||
}
|
||||
}
|
||||
else if (action == ACTION_BANISH_SELF )
|
||||
{
|
||||
Talk(SAY_BANISH);
|
||||
me->CastSpell(me, SPELL_SHADOW_CAGE_STUN, true);
|
||||
}
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* who) override
|
||||
@@ -350,6 +341,30 @@ class spell_magtheridon_shadow_grasp : public AuraScript
|
||||
}
|
||||
};
|
||||
|
||||
class spell_magtheridon_shadow_grasp_visual : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_magtheridon_shadow_grasp_visual);
|
||||
|
||||
void HandleDummyApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
if (GetTarget()->GetAuraCount(SPELL_SHADOW_GRASP_VISUAL) == 5)
|
||||
{
|
||||
GetTarget()->GetAI()->DoAction(ACTION_BANISH_SELF);
|
||||
}
|
||||
}
|
||||
|
||||
void HandleDummyRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
GetTarget()->RemoveAurasDueToSpell(SPELL_SHADOW_CAGE_STUN);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectApply += AuraEffectApplyFn(spell_magtheridon_shadow_grasp_visual::HandleDummyApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
||||
OnEffectRemove += AuraEffectRemoveFn(spell_magtheridon_shadow_grasp_visual::HandleDummyRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
||||
}
|
||||
};
|
||||
|
||||
class spell_magtheridon_quake : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_magtheridon_quake);
|
||||
@@ -417,6 +432,7 @@ void AddSC_boss_magtheridon()
|
||||
RegisterMagtheridonsLairCreatureAI(npc_target_trigger);
|
||||
RegisterSpellScript(spell_magtheridon_blaze);
|
||||
RegisterSpellScript(spell_magtheridon_shadow_grasp);
|
||||
RegisterSpellScript(spell_magtheridon_shadow_grasp_visual);
|
||||
RegisterSpellScript(spell_magtheridon_quake);
|
||||
RegisterSpellScript(spell_magtheridon_debris_target_selector);
|
||||
new go_manticron_cube();
|
||||
|
||||
Reference in New Issue
Block a user