Scripts/Black Temple: Fixed some issues on Illidan

(cherry picked from commit 0ebb315d6c)
This commit is contained in:
Keader
2018-08-26 00:54:33 -03:00
committed by Shauren
parent a5989dcee9
commit 37c9553372
3 changed files with 54 additions and 3 deletions

View File

@@ -0,0 +1,3 @@
DELETE FROM `creature_template_addon` WHERE `entry` IN(23069,23336);
UPDATE `creature_template` SET `AIName`='', `ScriptName`='npc_illidan_generic_fire' WHERE `entry` IN (23069,23259,23336);
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (23259,23069,23336) AND `source_type`=0;

View File

@@ -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

View File

@@ -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);