Scripts/Arcatraz: Update Zereketh (#31125)

This commit is contained in:
offl
2025-07-06 21:27:20 +03:00
committed by GitHub
parent 001d5d306c
commit 5715b96d02

View File

@@ -17,6 +17,8 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "SpellInfo.h"
#include "SpellMgr.h"
#include "arcatraz.h"
enum ZerekethTexts
@@ -49,12 +51,22 @@ struct boss_zereketh_the_unbound : public BossAI
void JustEngagedWith(Unit* who) override
{
BossAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_VOID_ZONE, 6s, 10s);
events.ScheduleEvent(EVENT_SHADOW_NOVA, 6s, 10s);
events.ScheduleEvent(EVENT_SEED_OF_CORRUPTION, 12s, 20s);
events.ScheduleEvent(EVENT_VOID_ZONE, 10s, 15s);
events.ScheduleEvent(EVENT_SHADOW_NOVA, 15s, 20s);
events.ScheduleEvent(EVENT_SEED_OF_CORRUPTION, 5s, 10s);
Talk(SAY_AGGRO);
}
void OnSpellCast(SpellInfo const* spell) override
{
if (spell->Id == sSpellMgr->GetSpellIdForDifficulty(SPELL_SHADOW_NOVA, me))
if (roll_chance_i(50))
Talk(SAY_SHADOW_NOVA);
}
// Do not despawn Void Zone
void JustSummoned(Creature* /*summon*/) override { }
void KilledUnit(Unit* /*victim*/) override
{
Talk(SAY_SLAY);
@@ -81,19 +93,18 @@ struct boss_zereketh_the_unbound : public BossAI
switch (eventId)
{
case EVENT_VOID_ZONE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 100, true))
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
DoCast(target, SPELL_VOID_ZONE);
events.Repeat(6s, 10s);
events.Repeat(15s);
break;
case EVENT_SHADOW_NOVA:
DoCastVictim(SPELL_SHADOW_NOVA);
Talk(SAY_SHADOW_NOVA);
events.Repeat(6s, 10s);
DoCastSelf(SPELL_SHADOW_NOVA);
events.Repeat(15s, 20s);
break;
case EVENT_SEED_OF_CORRUPTION:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 100, true))
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
DoCast(target, SPELL_SEED_OF_CORRUPTION);
events.Repeat(12s, 20s);
events.Repeat(15s, 20s);
break;
default:
break;