mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-16 10:30:27 +00:00
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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user