aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2025-07-06 21:27:20 +0300
committerGitHub <noreply@github.com>2025-07-06 20:27:20 +0200
commit5715b96d02252c31191b1dbbcf3df13193301ffc (patch)
treee8a6f8b2b8319ce05c2ebcb0dd883485e882e944 /src
parent001d5d306c94f88552024be4d3a2d957d1809dd5 (diff)
Scripts/Arcatraz: Update Zereketh (#31125)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp31
1 files changed, 21 insertions, 10 deletions
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp
index bc6793779f2..ca22bda6fbe 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp
@@ -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;