mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-13 09:17:18 +00:00
fix(Scripts/GruulsLair): timing/scripting fixes for High King Maulgar fight (#15924)
* (Scripts/GruulsLair)Fix spells High King Maulgar * dumb handling of blast wave aoe placeholder * fixed Blindeye the Seer spells * more edits to Maulgar adds timers are more correct now. still needs more exact pinpointing with sniffs * Maulgar edits see title * fix trigger for aoe attacks * remove whitespaces * remove delay
This commit is contained in:
@@ -126,9 +126,9 @@ struct boss_high_king_maulgar : public BossAI
|
||||
_JustEngagedWith();
|
||||
Talk(SAY_AGGRO);
|
||||
|
||||
events.ScheduleEvent(EVENT_ARCING_SMASH, 6s);
|
||||
events.ScheduleEvent(EVENT_MIGHTY_BLOW, 20s);
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, 30s);
|
||||
events.ScheduleEvent(EVENT_ARCING_SMASH, 10s);
|
||||
events.ScheduleEvent(EVENT_MIGHTY_BLOW, 15s);
|
||||
events.ScheduleEvent(EVENT_WHIRLWIND, 54s);
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH, 500ms);
|
||||
}
|
||||
|
||||
@@ -149,7 +149,7 @@ struct boss_high_king_maulgar : public BossAI
|
||||
break;
|
||||
case EVENT_MIGHTY_BLOW:
|
||||
me->CastSpell(me->GetVictim(), SPELL_MIGHTY_BLOW, false);
|
||||
events.ScheduleEvent(EVENT_MIGHTY_BLOW, 16s);
|
||||
events.ScheduleEvent(EVENT_MIGHTY_BLOW, 15s);
|
||||
break;
|
||||
case EVENT_WHIRLWIND:
|
||||
events.DelayEvents(15s);
|
||||
@@ -214,9 +214,9 @@ struct boss_olm_the_summoner : public ScriptedAI
|
||||
me->SetInCombatWithZone();
|
||||
instance->SetBossState(DATA_MAULGAR, IN_PROGRESS);
|
||||
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 10s);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 15s);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 20s);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 500ms);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 5s);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 6500ms);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
@@ -241,19 +241,18 @@ struct boss_olm_the_summoner : public ScriptedAI
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_ADD_ABILITY1:
|
||||
DoCastVictim(SPELL_DARK_DECAY);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 7s);
|
||||
me->CastSpell(me, SPELL_SUMMON_WFH, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 50s);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY2:
|
||||
me->CastSpell(me, SPELL_SUMMON_WFH, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 30s);
|
||||
DoCastVictim(SPELL_DARK_DECAY);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 6500ms);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY3:
|
||||
DoCastRandomTarget(SPELL_DEATH_COIL);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 20s);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 7s);
|
||||
break;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
@@ -279,9 +278,9 @@ struct boss_kiggler_the_crazed : public ScriptedAI
|
||||
me->SetInCombatWithZone();
|
||||
instance->SetBossState(DATA_MAULGAR, IN_PROGRESS);
|
||||
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 5s);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 10s);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 20s);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 1500ms);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 5s);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 25s);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY4, 30s);
|
||||
}
|
||||
|
||||
@@ -302,20 +301,23 @@ struct boss_kiggler_the_crazed : public ScriptedAI
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_ADD_ABILITY1:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 1))
|
||||
me->CastSpell(target, SPELL_GREATER_POLYMORPH, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 20s);
|
||||
DoCastVictim(SPELL_LIGHTNING_BOLT);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 1500ms);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY2:
|
||||
DoCastVictim(SPELL_LIGHTNING_BOLT);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 1500ms);
|
||||
DoCastVictim(SPELL_ARCANE_SHOCK);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 5s);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY3:
|
||||
DoCastVictim(SPELL_ARCANE_SHOCK);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 20s);
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 1)) //target method should perhaps change
|
||||
me->CastSpell(target, SPELL_GREATER_POLYMORPH, false);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 11s);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY4:
|
||||
DoCastAOE(SPELL_ARCANE_EXPLOSION);
|
||||
if (me->SelectNearestPlayer(30.0f))
|
||||
{
|
||||
DoCastAOE(SPELL_ARCANE_EXPLOSION);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY4, 30s);
|
||||
break;
|
||||
}
|
||||
@@ -345,9 +347,9 @@ struct boss_blindeye_the_seer : public ScriptedAI
|
||||
me->SetInCombatWithZone();
|
||||
instance->SetBossState(DATA_MAULGAR, IN_PROGRESS);
|
||||
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 1700ms);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 10s);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 20s);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 11s);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 30s);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 31s);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
@@ -367,15 +369,15 @@ struct boss_blindeye_the_seer : public ScriptedAI
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_ADD_ABILITY1:
|
||||
DoCastSelf(SPELL_GREATER_PW_SHIELD);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 30s);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY2:
|
||||
if (Unit* target = DoSelectLowestHpFriendly(60.0f, 50000))
|
||||
{
|
||||
DoCast(target, SPELL_HEAL);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 25s);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 6s);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY2:
|
||||
DoCastSelf(SPELL_GREATER_PW_SHIELD);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 30s);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY3:
|
||||
me->CastSpell(me, SPELL_PRAYER_OH, false);
|
||||
@@ -417,9 +419,9 @@ struct boss_krosh_firehand : public ScriptedAI
|
||||
me->SetInCombatWithZone();
|
||||
instance->SetBossState(DATA_MAULGAR, IN_PROGRESS);
|
||||
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 1s);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 5s);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 20s);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 1500ms); //spellshield
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 3500ms); //greater fireball
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 8s); //blast wave (needs to check for players in range)
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
@@ -439,16 +441,19 @@ struct boss_krosh_firehand : public ScriptedAI
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_ADD_ABILITY1:
|
||||
DoCastVictim(SPELL_GREATER_FIREBALL);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 3500ms);
|
||||
DoCastSelf(SPELL_SPELLSHIELD);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY1, 30s);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY2:
|
||||
DoCastSelf(SPELL_SPELLSHIELD);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 40s);
|
||||
DoCastVictim(SPELL_GREATER_FIREBALL);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY2, 1s);
|
||||
break;
|
||||
case EVENT_ADD_ABILITY3:
|
||||
DoCastAOE(SPELL_BLAST_WAVE);
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 20s);
|
||||
if (me->SelectNearestPlayer(15.0f))
|
||||
{
|
||||
DoCastAOE(SPELL_BLAST_WAVE);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_ADD_ABILITY3, 8s);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user