mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-22 10:05:32 +01:00
Scripts/BoT: use DoZoneInCombat to engage the bosses properly
* despawn all summoned npc's when transitioning to Elementium Monstrosity phase *dropped more unneded AI() calls
This commit is contained in:
@@ -318,13 +318,22 @@ class boss_ascendant_council_controller : public CreatureScript
|
||||
switch (action)
|
||||
{
|
||||
case ACTION_START_ENCOUNTER:
|
||||
if (instance->GetBossState(DATA_ASCENDANT_COUNCIL) == IN_PROGRESS)
|
||||
break;
|
||||
|
||||
instance->SetBossState(DATA_ASCENDANT_COUNCIL, IN_PROGRESS);
|
||||
|
||||
if (Creature* feludius = instance->GetCreature(DATA_FELUDIUS))
|
||||
{
|
||||
feludius->AI()->DoZoneInCombat();
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, feludius, 3);
|
||||
}
|
||||
|
||||
if (Creature* ignacious = instance->GetCreature(DATA_IGNACIOUS))
|
||||
{
|
||||
ignacious->AI()->DoZoneInCombat();
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, ignacious, 4);
|
||||
}
|
||||
|
||||
if (IsHeroic())
|
||||
{
|
||||
@@ -500,9 +509,6 @@ class npc_feludius : public CreatureScript
|
||||
if (Creature* controller = _instance->GetCreature(DATA_ASCENDANT_COUNCIL_CONTROLLER))
|
||||
controller->AI()->DoAction(ACTION_START_ENCOUNTER);
|
||||
|
||||
if (Creature* ignacious = _instance->GetCreature(DATA_IGNACIOUS))
|
||||
ignacious->AI()->AttackStart(who);
|
||||
|
||||
Talk(SAY_ENGAGE);
|
||||
_events.ScheduleEvent(EVENT_GLACIATE, Seconds(31) + Milliseconds(500));
|
||||
_events.ScheduleEvent(EVENT_HEART_OF_ICE, Seconds(15) + Milliseconds(500));
|
||||
@@ -565,6 +571,7 @@ class npc_feludius : public CreatureScript
|
||||
_events.Reset();
|
||||
me->SetWalk(true);
|
||||
me->CastStop();
|
||||
_summons.DespawnAll();
|
||||
_events.ScheduleEvent(EVENT_TELEPORT_PREPARE_FUSION, Seconds(1) + Milliseconds(200));
|
||||
break;
|
||||
case ACTION_SCHEDULE_HEROIC_ABILITY:
|
||||
@@ -697,8 +704,8 @@ class npc_ignacious : public CreatureScript
|
||||
|
||||
void JustEngagedWith(Unit* who) override
|
||||
{
|
||||
if (Creature* feludius = _instance->GetCreature(DATA_FELUDIUS))
|
||||
feludius->AI()->AttackStart(who);
|
||||
if (Creature* controller = _instance->GetCreature(DATA_ASCENDANT_COUNCIL_CONTROLLER))
|
||||
controller->AI()->DoAction(ACTION_START_ENCOUNTER);
|
||||
|
||||
_events.ScheduleEvent(EVENT_TALK_ENGAGE, Seconds(5));
|
||||
_events.ScheduleEvent(EVENT_FLAME_TORRENT, Seconds(8) + Milliseconds(300));
|
||||
@@ -801,6 +808,7 @@ class npc_ignacious : public CreatureScript
|
||||
_events.Reset();
|
||||
me->SetWalk(true);
|
||||
me->CastStop();
|
||||
_summons.DespawnAll();
|
||||
_events.ScheduleEvent(EVENT_TELEPORT_PREPARE_FUSION, Seconds(1) + Milliseconds(200));
|
||||
break;
|
||||
case ACTION_SCHEDULE_HEROIC_ABILITY:
|
||||
@@ -975,6 +983,7 @@ class npc_arion : public CreatureScript
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->CastStop();
|
||||
me->SetWalk(true);
|
||||
_summons.DespawnAll();
|
||||
DoCastSelf(SPELL_CLEAR_ALL_DEBUFFS);
|
||||
_events.ScheduleEvent(EVENT_TELEPORT_PREPARE_FUSION, Seconds(1) + Milliseconds(200));
|
||||
break;
|
||||
@@ -1062,7 +1071,7 @@ class npc_arion : public CreatureScript
|
||||
case EVENT_LIGHTNING_BLAST:
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
if (Unit* victim = me->GetVictim())
|
||||
me->AI()->AttackStart(victim);
|
||||
AttackStart(victim);
|
||||
|
||||
me->MakeInterruptable(true);
|
||||
DoCastAOE(SPELL_LIGHTNING_BLAST);
|
||||
@@ -1163,6 +1172,7 @@ class npc_terrastra : public CreatureScript
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->CastStop();
|
||||
me->SetWalk(true);
|
||||
_summons.DespawnAll();
|
||||
DoCastAOE(SPELL_ELEMENTAL_STASIS);
|
||||
DoCastSelf(SPELL_CLEAR_ALL_DEBUFFS);
|
||||
_events.ScheduleEvent(EVENT_TELEPORT_PREPARE_FUSION, Seconds(1) + Milliseconds(200));
|
||||
@@ -1817,6 +1827,10 @@ class npc_ascendant_council_flame_strike : public CreatureScript
|
||||
me->DespawnOrUnsummon(Seconds(2) + Milliseconds(300));
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 /*diff*/) override
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
|
||||
@@ -431,7 +431,7 @@ class boss_theralion : public CreatureScript
|
||||
case EVENT_ATTACK_PLAYERS:
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
if (Unit* target = me->GetVictim())
|
||||
me->AI()->AttackStart(target);
|
||||
AttackStart(target);
|
||||
|
||||
events.ScheduleEvent(EVENT_FABULOUS_FLAMES, Seconds(3) + Milliseconds(600));
|
||||
events.ScheduleEvent(EVENT_ENGULFING_MAGIC, Seconds(12));
|
||||
@@ -787,7 +787,7 @@ class boss_valiona : public CreatureScript
|
||||
case EVENT_ATTACK_PLAYERS:
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
if (Unit* target = me->GetVictim())
|
||||
me->AI()->AttackStart(target);
|
||||
AttackStart(target);
|
||||
|
||||
events.ScheduleEvent(EVENT_BLACKOUT, Seconds(8) + Milliseconds(500));
|
||||
events.ScheduleEvent(EVENT_DEVOURING_FLAMES, Seconds(23));
|
||||
|
||||
Reference in New Issue
Block a user