fix(Scripts/BlackrockSpire): Urok Doomhowl - improvements: (#9067)

The mobs should attack the pike if there is no players around
The boss should not despawning after summon
Urok's Tribute Pile with Pike and Head should disapear after Urok appear
Fixes #9023
This commit is contained in:
UltraNix
2021-11-12 13:46:07 +01:00
committed by GitHub
parent 4a69d1fc07
commit 7201d8840f
10 changed files with 68 additions and 22 deletions

View File

@@ -49,17 +49,22 @@ public:
{
boss_urok_doomhowlAI(Creature* creature) : BossAI(creature, DATA_UROK_DOOMHOWL) {}
void Reset() override
{
_Reset();
}
void InitializeAI() override
{
me->CastSpell(me, SPELL_UROK_SPAWN, true);
BossAI::InitializeAI();
Talk(SAY_SUMMON);
DoZoneInCombat(nullptr, 100.0f);
if (GameObject* challenge = instance->instance->GetGameObject(instance->GetGuidData(GO_UROK_CHALLENGE)))
{
challenge->Delete();
}
if (GameObject* pile = instance->instance->GetGameObject(instance->GetGuidData(GO_UROK_PILE)))
{
pile->DespawnOrUnsummon(0ms, Seconds(MONTH));
}
}
void EnterCombat(Unit* /*who*/) override
@@ -70,11 +75,6 @@ public:
events.ScheduleEvent(SPELL_INTIMIDATING_ROAR, urand(25000, 30000));
}
void JustDied(Unit* /*killer*/) override
{
_JustDied();
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())

View File

@@ -376,7 +376,7 @@ public:
case DATA_UROK_DOOMHOWL:
if (data == FAIL)
{
if (!(GetBossState(DATA_UROK_DOOMHOWL) == NOT_STARTED))
if (GetBossState(DATA_UROK_DOOMHOWL) != NOT_STARTED)
{
SetBossState(DATA_UROK_DOOMHOWL, NOT_STARTED);
if (GameObject* challenge = instance->GetGameObject(go_urokChallenge))
@@ -395,7 +395,7 @@ public:
circle->Delete();
}
}
for (const auto& mobGUID: UrokMobs)
for (const auto& mobGUID : UrokMobs)
{
if (Creature* mob = instance->GetCreature(mobGUID))
{
@@ -510,6 +510,10 @@ public:
return go_emberseerrunes[6];
case GO_PORTCULLIS_ACTIVE:
return go_portcullis_active;
case GO_UROK_PILE:
return go_urokPile;
case GO_UROK_CHALLENGE:
return go_urokChallenge;
default:
break;
}