fix(Scripts/TheEye): Kaelthas remove enchanted weapons (#19801)

* remove weapons

Co-authored-by: killerwife <killerwife@gmail.com>

* style

for consistency

* also cast on KT JustDied

* fix TriggerCastFlags to not ignore reagent cost

* Apply suggestions from code review

---------

Co-authored-by: killerwife <killerwife@gmail.com>
This commit is contained in:
Jelle Meeus
2024-08-30 21:20:52 +02:00
committed by GitHub
parent e4aab5b4f0
commit 0fb2c5efeb
2 changed files with 36 additions and 1 deletions

View File

@@ -115,6 +115,7 @@ enum KTSpells
SPELL_NETHER_BEAM_DAMAGE = 35873,
SPELL_REMOTE_TOY_STUN = 37029,
SPELL_REMOVE_ENCHANTED_WEAPONS = 39497,
// Advisors
// Universal
@@ -306,6 +307,7 @@ struct boss_kaelthas : public BossAI
me->SetInCombatWithZone();
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_DISABLE_MOVE);
Talk(SAY_INTRO);
DoCastAOE(SPELL_REMOVE_ENCHANTED_WEAPONS, true);
ScheduleUniqueTimedEvent(23s, [&]
{
Talk(SAY_INTRO_THALADRED);
@@ -762,7 +764,11 @@ struct boss_kaelthas : public BossAI
{
return me->GetHomePosition().GetExactDist2d(me) > 165.0f || !SelectTargetFromPlayerList(165.0f);
}
void JustDied(Unit* killer) override
{
BossAI::JustDied(killer);
DoCastAOE(SPELL_REMOVE_ENCHANTED_WEAPONS, true);
}
private:
uint32 _phase;
bool _transitionSceneReached = false;
@@ -1323,6 +1329,31 @@ class spell_kael_pyroblast : public SpellScript
}
};
class spell_kaelthas_remove_enchanted_weapons : public SpellScript
{
PrepareSpellScript(spell_kaelthas_remove_enchanted_weapons);
void HandleScriptEffect(SpellEffIndex /*effIndex*/)
{
Unit* target = GetHitUnit();
if (!target || !target->IsPlayer())
return;
TriggerCastFlags triggerFlags = TriggerCastFlags(TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST);
target->CastSpell((Unit*)nullptr, 39498, triggerFlags);
target->CastSpell((Unit*)nullptr, 39499, triggerFlags);
target->CastSpell((Unit*)nullptr, 39500, triggerFlags);
target->CastSpell((Unit*)nullptr, 39501, triggerFlags);
target->CastSpell((Unit*)nullptr, 39502, triggerFlags);
target->CastSpell((Unit*)nullptr, 39503, triggerFlags);
target->CastSpell((Unit*)nullptr, 39504, triggerFlags);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_kaelthas_remove_enchanted_weapons::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
void AddSC_boss_kaelthas()
{
RegisterTheEyeAI(boss_kaelthas);
@@ -1341,4 +1372,5 @@ void AddSC_boss_kaelthas()
RegisterSpellScript(spell_kaelthas_nether_beam);
RegisterSpellScript(spell_kaelthas_summon_nether_vapor);
RegisterSpellScript(spell_kael_pyroblast);
RegisterSpellScript(spell_kaelthas_remove_enchanted_weapons);
}