aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Outland/BlackTemple/black_temple.h4
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_illidan.cpp50
2 files changed, 51 insertions, 3 deletions
diff --git a/src/server/scripts/Outland/BlackTemple/black_temple.h b/src/server/scripts/Outland/BlackTemple/black_temple.h
index a4a8f6913e9..adff4d2e618 100644
--- a/src/server/scripts/Outland/BlackTemple/black_temple.h
+++ b/src/server/scripts/Outland/BlackTemple/black_temple.h
@@ -106,7 +106,9 @@ enum BTCreatureIds
NPC_GLAIVE_TARGET = 23448,
NPC_GLAIVE_WORLD_TRIGGER = 22515,
NPC_DEMON_FIRE = 23069,
- NPC_PARASITIC_SHADOWFIEND = 23498
+ NPC_PARASITIC_SHADOWFIEND = 23498,
+ NPC_BLAZE = 23259,
+ NPC_FLAME_CRASH = 23336
};
enum BTGameObjectIds
diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
index 2584e48df69..71753c34ddc 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
@@ -189,7 +189,16 @@ enum IllidanSpells
SPELL_CAGED_TRAP_TELEPORT = 40693,
SPELL_CAGE_TRAP = 40760,
SPELL_CAGED_DEBUFF = 40695,
- SPELL_EYE_BLAST = 39908
+ SPELL_EYE_BLAST = 39908,
+
+ // Blaze
+ SPELL_BLAZE = 40610,
+
+ // Demon Fire
+ SPELL_DEMON_FIRE = 40029,
+
+ // Flame Crash
+ SPELL_FLAME_CRASH_GROUND = 40836
};
enum IllidanMisc
@@ -1375,7 +1384,7 @@ struct npc_parasitic_shadowfiend : public ScriptedAI
if (Creature* illidan = _instance->GetCreature(DATA_ILLIDAN_STORMRAGE))
illidan->AI()->JustSummoned(me);
- me->SetReactState(REACT_DEFENSIVE);
+ me->SetReactState(REACT_PASSIVE);
_scheduler.Schedule(Seconds(2), [this](TaskContext /*context*/)
{
me->SetReactState(REACT_AGGRESSIVE);
@@ -1797,6 +1806,42 @@ private:
InstanceScript* _instance;
};
+struct npc_illidan_generic_fire : public ScriptedAI
+{
+ npc_illidan_generic_fire(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript())
+ {
+ SetCombatMovement(false);
+ }
+
+ void Reset() override
+ {
+ if (Creature* illidan = _instance->GetCreature(DATA_ILLIDAN_STORMRAGE))
+ illidan->AI()->JustSummoned(me);
+
+ me->SetReactState(REACT_PASSIVE);
+ switch (me->GetEntry())
+ {
+ case NPC_DEMON_FIRE:
+ DoCastSelf(SPELL_DEMON_FIRE, true);
+ break;
+ case NPC_BLAZE:
+ DoCastSelf(SPELL_BLAZE, true);
+ DoCastSelf(SPELL_BIRTH, true);
+ break;
+ case NPC_FLAME_CRASH:
+ DoCastSelf(SPELL_FLAME_CRASH_GROUND, true);
+ break;
+ default:
+ break;
+ }
+ }
+
+ void UpdateAI(uint32 /*diff*/) override { }
+
+private:
+ InstanceScript* _instance;
+};
+
// 41077 - Akama Teleport
class spell_illidan_akama_teleport : public SpellScript
{
@@ -2299,6 +2344,7 @@ void AddSC_boss_illidan()
RegisterBlackTempleCreatureAI(npc_shadow_demon);
RegisterBlackTempleCreatureAI(npc_cage_trap_trigger);
RegisterBlackTempleCreatureAI(npc_illidari_elite);
+ RegisterBlackTempleCreatureAI(npc_illidan_generic_fire);
RegisterSpellScript(spell_illidan_akama_teleport);
RegisterAuraScript(spell_illidan_akama_door_channel);
RegisterSpellScript(spell_illidan_draw_soul);