fix(Scripts/ZulGurub): Improvements to Gri'lek encounter: (#11960)

* fix(Scripts/ZulGurub): Improvements to Gri'lek encounter:

Corrected timers of events.
Avatar should wipe all threat for the entire raid.
Boss is immuned to taunt.
Added missing spells.
Fixes #11611

* missing sql.
This commit is contained in:
UltraNix
2022-06-06 13:58:25 +02:00
committed by GitHub
parent 14d933eddc
commit 5454c0478f
2 changed files with 23 additions and 23 deletions

View File

@@ -29,13 +29,16 @@ EndScriptData */
enum Spells
{
SPELL_AVATAR = 24646, // Enrage Spell
SPELL_GROUND_TREMOR = 6524
SPELL_GROUND_TREMOR = 6524,
SPELL_ENTANGLING_ROOTS = 24648
};
enum Events
{
EVENT_AVATAR = 1,
EVENT_GROUND_TREMOR = 2
EVENT_GROUND_TREMOR = 2,
EVENT_START_PURSUIT = 3,
EVENT_ENTANGLING_ROOTS = 4
};
class boss_grilek : public CreatureScript // grilek
@@ -45,23 +48,16 @@ public:
struct boss_grilekAI : public BossAI
{
boss_grilekAI(Creature* creature) : BossAI(creature, DATA_EDGE_OF_MADNESS) { }
void Reset() override
boss_grilekAI(Creature* creature) : BossAI(creature, DATA_EDGE_OF_MADNESS)
{
_Reset();
}
void JustDied(Unit* /*killer*/) override
{
_JustDied();
}
void EnterCombat(Unit* /*who*/) override
{
_EnterCombat();
events.ScheduleEvent(EVENT_AVATAR, urand(15000, 25000));
events.ScheduleEvent(EVENT_GROUND_TREMOR, urand(15000, 25000));
events.ScheduleEvent(EVENT_AVATAR, 20s, 30s);
events.ScheduleEvent(EVENT_GROUND_TREMOR, 15s, 25s);
events.ScheduleEvent(EVENT_ENTANGLING_ROOTS, 5s, 15s);
}
void UpdateAI(uint32 diff) override
@@ -80,19 +76,21 @@ public:
{
case EVENT_AVATAR:
DoCast(me, SPELL_AVATAR);
if (Unit* victim = me->GetVictim())
{
if (DoGetThreat(victim))
DoModifyThreatPercent(victim, -50);
}
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1))
AttackStart(target);
events.ScheduleEvent(EVENT_AVATAR, urand(25000, 35000));
DoResetThreat();
me->SetReactState(REACT_PASSIVE);
events.ScheduleEvent(EVENT_START_PURSUIT, 2s);
events.ScheduleEvent(EVENT_AVATAR, 45s, 50s);
break;
case EVENT_GROUND_TREMOR:
DoCastVictim(SPELL_GROUND_TREMOR, true);
events.ScheduleEvent(EVENT_GROUND_TREMOR, urand(12000, 16000));
events.ScheduleEvent(EVENT_GROUND_TREMOR, 12s, 16s);
break;
case EVENT_START_PURSUIT:
me->SetReactState(REACT_AGGRESSIVE);
break;
case EVENT_ENTANGLING_ROOTS:
DoCastVictim(SPELL_ENTANGLING_ROOTS);
events.ScheduleEvent(EVENT_ENTANGLING_ROOTS, 10s, 20s);
break;
default:
break;