17
17
18
18
#include " ScriptMgr.h"
19
19
#include " ScriptedCreature.h"
20
+ #include " SpellInfo.h"
21
+ #include " SpellMgr.h"
20
22
#include " arcatraz.h"
21
23
22
24
enum ZerekethTexts
@@ -49,12 +51,22 @@ struct boss_zereketh_the_unbound : public BossAI
49
51
void JustEngagedWith (Unit* who) override
50
52
{
51
53
BossAI::JustEngagedWith (who);
52
- events.ScheduleEvent (EVENT_VOID_ZONE, 6s, 10s );
53
- events.ScheduleEvent (EVENT_SHADOW_NOVA, 6s, 10s );
54
- events.ScheduleEvent (EVENT_SEED_OF_CORRUPTION, 12s, 20s );
54
+ events.ScheduleEvent (EVENT_VOID_ZONE, 10s, 15s );
55
+ events.ScheduleEvent (EVENT_SHADOW_NOVA, 15s, 20s );
56
+ events.ScheduleEvent (EVENT_SEED_OF_CORRUPTION, 5s, 10s );
55
57
Talk (SAY_AGGRO);
56
58
}
57
59
60
+ void OnSpellCast (SpellInfo const * spell) override
61
+ {
62
+ if (spell->Id == sSpellMgr ->GetSpellIdForDifficulty (SPELL_SHADOW_NOVA, me))
63
+ if (roll_chance_i (50 ))
64
+ Talk (SAY_SHADOW_NOVA);
65
+ }
66
+
67
+ // Do not despawn Void Zone
68
+ void JustSummoned (Creature* /* summon*/ ) override { }
69
+
58
70
void KilledUnit (Unit* /* victim*/ ) override
59
71
{
60
72
Talk (SAY_SLAY);
@@ -81,19 +93,18 @@ struct boss_zereketh_the_unbound : public BossAI
81
93
switch (eventId)
82
94
{
83
95
case EVENT_VOID_ZONE:
84
- if (Unit* target = SelectTarget (SelectTargetMethod::Random, 1 , 100 , true ))
96
+ if (Unit* target = SelectTarget (SelectTargetMethod::Random, 0 ))
85
97
DoCast (target, SPELL_VOID_ZONE);
86
- events.Repeat (6s, 10s );
98
+ events.Repeat (15s );
87
99
break ;
88
100
case EVENT_SHADOW_NOVA:
89
- DoCastVictim (SPELL_SHADOW_NOVA);
90
- Talk (SAY_SHADOW_NOVA);
91
- events.Repeat (6s, 10s);
101
+ DoCastSelf (SPELL_SHADOW_NOVA);
102
+ events.Repeat (15s, 20s);
92
103
break ;
93
104
case EVENT_SEED_OF_CORRUPTION:
94
- if (Unit* target = SelectTarget (SelectTargetMethod::Random, 1 , 100 , true ))
105
+ if (Unit* target = SelectTarget (SelectTargetMethod::Random, 0 ))
95
106
DoCast (target, SPELL_SEED_OF_CORRUPTION);
96
- events.Repeat (12s , 20s);
107
+ events.Repeat (15s , 20s);
97
108
break ;
98
109
default :
99
110
break ;
0 commit comments