mirror of
https://github.com/liyunfan1223/azerothcore-wotlk.git
synced 2026-08-09 08:17:56 +00:00
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:
@@ -0,0 +1,3 @@
|
|||||||
|
--
|
||||||
|
DELETE FROM `spell_script_names` WHERE `spell_id`=39497;
|
||||||
|
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES(39497, 'spell_kaelthas_remove_enchanted_weapons');
|
||||||
@@ -115,6 +115,7 @@ enum KTSpells
|
|||||||
SPELL_NETHER_BEAM_DAMAGE = 35873,
|
SPELL_NETHER_BEAM_DAMAGE = 35873,
|
||||||
|
|
||||||
SPELL_REMOTE_TOY_STUN = 37029,
|
SPELL_REMOTE_TOY_STUN = 37029,
|
||||||
|
SPELL_REMOVE_ENCHANTED_WEAPONS = 39497,
|
||||||
|
|
||||||
// Advisors
|
// Advisors
|
||||||
// Universal
|
// Universal
|
||||||
@@ -306,6 +307,7 @@ struct boss_kaelthas : public BossAI
|
|||||||
me->SetInCombatWithZone();
|
me->SetInCombatWithZone();
|
||||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_DISABLE_MOVE);
|
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||||
Talk(SAY_INTRO);
|
Talk(SAY_INTRO);
|
||||||
|
DoCastAOE(SPELL_REMOVE_ENCHANTED_WEAPONS, true);
|
||||||
ScheduleUniqueTimedEvent(23s, [&]
|
ScheduleUniqueTimedEvent(23s, [&]
|
||||||
{
|
{
|
||||||
Talk(SAY_INTRO_THALADRED);
|
Talk(SAY_INTRO_THALADRED);
|
||||||
@@ -762,7 +764,11 @@ struct boss_kaelthas : public BossAI
|
|||||||
{
|
{
|
||||||
return me->GetHomePosition().GetExactDist2d(me) > 165.0f || !SelectTargetFromPlayerList(165.0f);
|
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:
|
private:
|
||||||
uint32 _phase;
|
uint32 _phase;
|
||||||
bool _transitionSceneReached = false;
|
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()
|
void AddSC_boss_kaelthas()
|
||||||
{
|
{
|
||||||
RegisterTheEyeAI(boss_kaelthas);
|
RegisterTheEyeAI(boss_kaelthas);
|
||||||
@@ -1341,4 +1372,5 @@ void AddSC_boss_kaelthas()
|
|||||||
RegisterSpellScript(spell_kaelthas_nether_beam);
|
RegisterSpellScript(spell_kaelthas_nether_beam);
|
||||||
RegisterSpellScript(spell_kaelthas_summon_nether_vapor);
|
RegisterSpellScript(spell_kaelthas_summon_nether_vapor);
|
||||||
RegisterSpellScript(spell_kael_pyroblast);
|
RegisterSpellScript(spell_kael_pyroblast);
|
||||||
|
RegisterSpellScript(spell_kaelthas_remove_enchanted_weapons);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user