fix(Script/HoS): Various issues with brann boss (#23413)

This commit is contained in:
blinkysc
2025-11-03 00:45:18 -06:00
committed by GitHub
parent 288b495701
commit 5386a1d7a0

View File

@@ -389,7 +389,7 @@ public:
Talk(SAY_BRANN_ESCORT_START);
me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE);
me->SetReactState(REACT_AGGRESSIVE);
me->SetRegeneratingHealth(false);
me->SetRegeneratingHealth(true);
break;
case ACTION_START_TRIBUNAL:
{
@@ -616,15 +616,8 @@ public:
{
if (!canExecuteEvents)
return;
uint32 Time = 40000 - (2500 * WaveNum);
SummonCreatures(NPC_DARK_RUNE_PROTECTOR, 3, 0);
if (WaveNum > 2)
events.ScheduleEvent(EVENT_SUMMON_STORMCALLER, Seconds(urand(10 - WaveNum, 15 - WaveNum)));
if (WaveNum > 5)
events.ScheduleEvent(EVENT_SUMMON_CUSTODIAN, Seconds(urand(10 - WaveNum, 15 - WaveNum)));
WaveNum++;
events.Repeat(Milliseconds(Time));
events.Repeat(IsHeroic() ? 23500ms : 32500ms);
break;
}
case EVENT_SUMMON_STORMCALLER:
@@ -633,7 +626,7 @@ public:
return;
SummonCreatures(NPC_DARK_RUNE_STORMCALLER, 2, 1);
events.Repeat(IsHeroic() ? 32s : 41500ms);
break;
}
case EVENT_SUMMON_CUSTODIAN:
@@ -642,7 +635,7 @@ public:
return;
SummonCreatures(NPC_IRON_GOLEM_CUSTODIAN, 1, 1);
events.Repeat(IsHeroic() ? 32s : 45s);
break;
}
case EVENT_TRIBUNAL_END:
@@ -836,17 +829,14 @@ void brann_bronzebeard::brann_bronzebeardAI::InitializeEvent()
Creature* cr = nullptr;
if ((cr = me->SummonCreature(NPC_KADDRAK, 923.7f, 326.9f, 219.5f, 2.1f, TEMPSUMMON_TIMED_DESPAWN, 580000)))
{
cr->SetInCombatWithZone();
KaddrakGUID = cr->GetGUID();
}
if ((cr = me->SummonCreature(NPC_MARNAK, 895.974f, 363.571f, 219.337f, 5.5f, TEMPSUMMON_TIMED_DESPAWN, 580000)))
{
cr->SetInCombatWithZone();
MarnakGUID = cr->GetGUID();
}
if ((cr = me->SummonCreature(NPC_ABEDNEUM, 892.25f, 331.25f, 223.86f, 0.6f, TEMPSUMMON_TIMED_DESPAWN, 580000)))
{
cr->SetInCombatWithZone();
AbedneumGUID = cr->GetGUID();
}
@@ -859,8 +849,9 @@ void brann_bronzebeard::brann_bronzebeardAI::InitializeEvent()
events.ScheduleEvent(EVENT_MARNAK_VISUAL, 105s);
events.ScheduleEvent(EVENT_ABEDNEUM_VISUAL, 207s);
// Fight
events.ScheduleEvent(EVENT_SUMMON_MONSTERS, 47s);
events.ScheduleEvent(EVENT_SUMMON_MONSTERS, 52s);
events.ScheduleEvent(EVENT_SUMMON_STORMCALLER, 122s);
events.ScheduleEvent(EVENT_SUMMON_CUSTODIAN, 228s);
events.ScheduleEvent(EVENT_KADDRAK_HEAD, 47s);
events.ScheduleEvent(EVENT_MARNAK_HEAD, 115s);
events.ScheduleEvent(EVENT_ABEDNEUM_HEAD, 217s);
@@ -981,7 +972,6 @@ public:
void JustEngagedWith(Unit*) override
{
events.ScheduleEvent(EVENT_DRP_CHARGE, 10s);
events.ScheduleEvent(EVENT_DRP_CLEAVE, 7s);
}
@@ -996,14 +986,6 @@ public:
switch (events.ExecuteEvent())
{
case EVENT_DRP_CHARGE:
{
if (Unit* tgt = SelectTarget(SelectTargetMethod::Random, 0))
me->CastSpell(tgt, SPELL_DRP_CHARGE, false);
events.Repeat(10s);
break;
}
case EVENT_DRP_CLEAVE:
{
me->CastSpell(me->GetVictim(), SPELL_DRP_CLEAVE, false);
@@ -1012,6 +994,14 @@ public:
}
}
if (Unit* victim = me->GetVictim())
{
if (!me->IsWithinMeleeRange(victim) && !me->HasUnitState(UNIT_STATE_CHARGING))
{
me->CastSpell(victim, SPELL_DRP_CHARGE, false);
}
}
DoMeleeAttackIfReady();
}
};
@@ -1095,7 +1085,7 @@ public:
void JustEngagedWith(Unit*) override
{
events.ScheduleEvent(EVENT_IGC_CRUSH, 6s);
events.ScheduleEvent(EVENT_IGC_GROUND_SMASH, 4s);
events.ScheduleEvent(EVENT_IGC_GROUND_SMASH, 20s);
}
void UpdateAI(uint32 diff) override
{
@@ -1117,7 +1107,7 @@ public:
case EVENT_IGC_GROUND_SMASH:
{
me->CastSpell(me->GetVictim(), SPELL_IGC_GROUND_SMASH, false);
events.Repeat(5s);
events.Repeat(20s, 40s);
break;
}
}