aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
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;