aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authoroffl <suffle.o@gmail.com>2025-05-11 14:29:13 +0200
committerModoX <moardox@gmail.com>2025-05-17 13:20:21 +0200
commit06041687565754562b2c266b4195b00cf3e53260 (patch)
tree09efd6bbde8f76d57d10ae3126faa80af4fac707 /src/server
parent98972550171108bc4b50100d8c923a62f8df1086 (diff)
Scripts/TheSlavePens: Modernize scripts
Diffstat (limited to 'src/server')
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp71
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp78
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_quagmirran.cpp44
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_rokmar_the_crackler.cpp62
4 files changed, 109 insertions, 146 deletions
diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp
index 3cfdb5853a5..894a582e138 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp
@@ -34,7 +34,7 @@
#include "TemporarySummon.h"
#include "the_slave_pens.h"
-enum Spells
+enum AhuneSpells
{
// Ahune
SPELL_SYNCH_HEALTH = 46430,
@@ -94,21 +94,21 @@ enum Spells
SPELL_GHOST_DISGUISE = 46786
};
-enum Emotes
+enum AhuneEmotes
{
EMOTE_EARTHEN_ASSAULT = 0,
EMOTE_RETREAT = 0,
EMOTE_RESURFACE = 1
};
-enum Says
+enum AhuneTexts
{
SAY_PLAYER_TEXT_1 = 0,
SAY_PLAYER_TEXT_2 = 1,
SAY_PLAYER_TEXT_3 = 2
};
-enum Events
+enum AhuneEvents
{
EVENT_EMERGE = 1,
EVENT_INITIAL_EMERGE,
@@ -127,7 +127,7 @@ enum Events
EVENT_STOP_LOOKING_FOR_OPENING
};
-enum Actions
+enum AhuneActions
{
ACTION_START_EVENT = -2574500,
ACTION_STOP_EVENT = -2574501,
@@ -136,20 +136,20 @@ enum Actions
ACTION_EMOTE_RESURFACE = -2575400
};
-enum Phases
+enum AhunePhases
{
PHASE_ONE = 0,
PHASE_TWO = 1
};
-enum Points
+enum AhunePoints
{
POINT_FLAMECALLER_000,
POINT_FLAMECALLER_001,
POINT_FLAMECALLER_002
};
-enum Misc
+enum AhuneMisc
{
MAX_FLAMECALLERS = 3
};
@@ -170,6 +170,7 @@ Position const FlameCallerSpots[] =
{ -129.0413f, -132.1494f, -2.09285f, 5.460842f }
};
+// 25740 - Ahune
struct boss_ahune : public BossAI
{
boss_ahune(Creature* creature) : BossAI(creature, DATA_AHUNE)
@@ -272,6 +273,7 @@ struct boss_ahune : public BossAI
}
};
+// 25865 - Frozen Core
struct npc_frozen_core : public ScriptedAI
{
npc_frozen_core(Creature* creature) : ScriptedAI(creature)
@@ -342,6 +344,7 @@ private:
EventMap _events;
};
+// 25745 - [PH] Ahune Summon Loc Bunny
struct npc_ahune_bunny : public ScriptedAI
{
npc_ahune_bunny(Creature* creature) : ScriptedAI(creature), _summons(me)
@@ -477,6 +480,7 @@ private:
bool _submerged;
};
+// 25754 - Earthen Ring Flamecaller
struct npc_earthen_ring_flamecaller : public ScriptedAI
{
npc_earthen_ring_flamecaller(Creature* creature) : ScriptedAI(creature)
@@ -594,6 +598,7 @@ private:
uint8 _mySpot;
};
+// 25985 - Ahune Ice Spear Bunny
struct npc_ahune_ice_spear_bunny : public ScriptedAI
{
npc_ahune_ice_spear_bunny(Creature* creature) : ScriptedAI(creature) { }
@@ -680,9 +685,9 @@ class spell_ahune_synch_health : public SpellScript
};
// 45926 - Summoning Rhyme Aura
-class spell_summoning_rhyme_aura : public AuraScript
+class spell_ahune_summoning_rhyme_aura : public AuraScript
{
- PrepareAuraScript(spell_summoning_rhyme_aura);
+ PrepareAuraScript(spell_ahune_summoning_rhyme_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
@@ -719,14 +724,14 @@ class spell_summoning_rhyme_aura : public AuraScript
void Register() override
{
- OnEffectPeriodic += AuraEffectPeriodicFn(spell_summoning_rhyme_aura::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_ahune_summoning_rhyme_aura::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
// 46878 - Summon Ice Spear Delayer
-class spell_summon_ice_spear_delayer : public AuraScript
+class spell_ahune_summon_ice_spear_delayer : public AuraScript
{
- PrepareAuraScript(spell_summon_ice_spear_delayer);
+ PrepareAuraScript(spell_ahune_summon_ice_spear_delayer);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
@@ -742,14 +747,14 @@ class spell_summon_ice_spear_delayer : public AuraScript
void Register() override
{
- OnEffectPeriodic += AuraEffectPeriodicFn(spell_summon_ice_spear_delayer::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_ahune_summon_ice_spear_delayer::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
// 46371 - Ice Spear Control Aura
-class spell_ice_spear_control_aura : public AuraScript
+class spell_ahune_ice_spear_control_aura : public AuraScript
{
- PrepareAuraScript(spell_ice_spear_control_aura);
+ PrepareAuraScript(spell_ahune_ice_spear_control_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
@@ -764,14 +769,14 @@ class spell_ice_spear_control_aura : public AuraScript
void Register() override
{
- OnEffectPeriodic += AuraEffectPeriodicFn(spell_ice_spear_control_aura::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_ahune_ice_spear_control_aura::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
// 46372 - Ice Spear Target Picker
-class spell_ice_spear_target_picker : public SpellScript
+class spell_ahune_ice_spear_target_picker : public SpellScript
{
- PrepareSpellScript(spell_ice_spear_target_picker);
+ PrepareSpellScript(spell_ahune_ice_spear_target_picker);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
@@ -795,15 +800,15 @@ class spell_ice_spear_target_picker : public SpellScript
void Register() override
{
- OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_ice_spear_target_picker::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
- OnEffectHitTarget += SpellEffectFn(spell_ice_spear_target_picker::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_ahune_ice_spear_target_picker::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
+ OnEffectHitTarget += SpellEffectFn(spell_ahune_ice_spear_target_picker::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
// 46320 - Spell Slippery Floor Periodic
-class spell_slippery_floor_periodic : public SpellScript
+class spell_ahune_slippery_floor_periodic : public SpellScript
{
- PrepareSpellScript(spell_slippery_floor_periodic);
+ PrepareSpellScript(spell_ahune_slippery_floor_periodic);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
@@ -822,7 +827,7 @@ class spell_slippery_floor_periodic : public SpellScript
void Register() override
{
- OnEffectHitTarget += SpellEffectFn(spell_slippery_floor_periodic::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ OnEffectHitTarget += SpellEffectFn(spell_ahune_slippery_floor_periodic::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
@@ -866,9 +871,9 @@ class spell_ahune_minion_despawner : public SpellScript
};
// 46398 - Spell Ice Bombardment Dest Picker
-class spell_ice_bombardment_dest_picker : public SpellScript
+class spell_ahune_ice_bombardment_dest_picker : public SpellScript
{
- PrepareSpellScript(spell_ice_bombardment_dest_picker);
+ PrepareSpellScript(spell_ahune_ice_bombardment_dest_picker);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
@@ -882,7 +887,7 @@ class spell_ice_bombardment_dest_picker : public SpellScript
void Register() override
{
- OnEffectHit += SpellEffectFn(spell_ice_bombardment_dest_picker::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_DUMMY);
+ OnEffectHit += SpellEffectFn(spell_ahune_ice_bombardment_dest_picker::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
@@ -896,12 +901,12 @@ void AddSC_boss_ahune()
RegisterSlavePensGameObjectAI(go_ahune_ice_spear);
RegisterSlavePensGameObjectAI(go_ahune_ice_stone);
RegisterSpellScript(spell_ahune_synch_health);
- RegisterSpellScript(spell_summoning_rhyme_aura);
- RegisterSpellScript(spell_summon_ice_spear_delayer);
- RegisterSpellScript(spell_ice_spear_control_aura);
- RegisterSpellScript(spell_ice_spear_target_picker);
- RegisterSpellScript(spell_slippery_floor_periodic);
+ RegisterSpellScript(spell_ahune_summoning_rhyme_aura);
+ RegisterSpellScript(spell_ahune_summon_ice_spear_delayer);
+ RegisterSpellScript(spell_ahune_ice_spear_control_aura);
+ RegisterSpellScript(spell_ahune_ice_spear_target_picker);
+ RegisterSpellScript(spell_ahune_slippery_floor_periodic);
RegisterSpellScript(spell_ahune_spanky_hands);
RegisterSpellScript(spell_ahune_minion_despawner);
- RegisterSpellScript(spell_ice_bombardment_dest_picker);
+ RegisterSpellScript(spell_ahune_ice_bombardment_dest_picker);
}
diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp
index 715472ca760..06fc07c48cf 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp
@@ -15,65 +15,48 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: boss_mennu_the_betrayer
-SD%Complete: 95%
-SDComment:
-SDCategory: Coilfang Reservoir, The Slave Pens
-EndScriptData */
-
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "the_slave_pens.h"
-enum Say
+enum MennuTexts
{
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_DEATH = 2
};
-enum Spells
+enum MennuSpells
{
- SPELL_TAINTED_STONESKIN_TOTEM = 31985, // every 30 sec if health below 100%
- SPELL_TAINTED_EARTHGRAB_TOTEM = 31981, // ?
- SPELL_CORRUPTED_NOVA_TOTEM = 31991, // ?
- SPELL_MENNUS_HEALING_WARD = 34980, // every 14 - 25 sec
- SPELL_LIGHTNING_BOLT = 35010 // every 14 - 19 sec
+ SPELL_TAINTED_STONESKIN_TOTEM = 31985,
+ SPELL_TAINTED_EARTHGRAB_TOTEM = 31981,
+ SPELL_CORRUPTED_NOVA_TOTEM = 31991,
+ SPELL_MENNUS_HEALING_WARD = 34980,
+ SPELL_LIGHTNING_BOLT = 35010
};
-enum Events
+enum MennuEvents
{
EVENT_TAINTED_STONESKIN_TOTEM = 1,
- EVENT_TAINTED_EARTHGRAB_TOTEM = 2,
- EVENT_CORRUPTED_NOVA_TOTEM = 3,
- EVENT_MENNUS_HEALING_WARD = 4,
- EVENT_LIGHTNING_BOLT = 5
+ EVENT_TAINTED_EARTHGRAB_TOTEM,
+ EVENT_CORRUPTED_NOVA_TOTEM,
+ EVENT_MENNUS_HEALING_WARD,
+ EVENT_LIGHTNING_BOLT
};
+// 17941 - Mennu the Betrayer
struct boss_mennu_the_betrayer : public BossAI
{
boss_mennu_the_betrayer(Creature* creature) : BossAI(creature, DATA_MENNU_THE_BETRAYER) { }
- void Reset() override
- {
- _Reset();
- }
-
- void JustDied(Unit* /*killer*/) override
- {
- _JustDied();
- Talk(SAY_DEATH);
- }
-
void JustEngagedWith(Unit* who) override
{
BossAI::JustEngagedWith(who);
- events.ScheduleEvent(EVENT_TAINTED_STONESKIN_TOTEM, 30s);
- events.ScheduleEvent(EVENT_TAINTED_EARTHGRAB_TOTEM, 20s);
- events.ScheduleEvent(EVENT_CORRUPTED_NOVA_TOTEM, 1min);
- events.ScheduleEvent(EVENT_MENNUS_HEALING_WARD, 14s, 25s);
- events.ScheduleEvent(EVENT_LIGHTNING_BOLT, 14s, 19s);
+ events.ScheduleEvent(EVENT_TAINTED_STONESKIN_TOTEM, 30s, 40s);
+ events.ScheduleEvent(EVENT_TAINTED_EARTHGRAB_TOTEM, 20s, 30s);
+ events.ScheduleEvent(EVENT_CORRUPTED_NOVA_TOTEM, 20s, 30s);
+ events.ScheduleEvent(EVENT_MENNUS_HEALING_WARD, 15s, 25s);
+ events.ScheduleEvent(EVENT_LIGHTNING_BOLT, 10s, 20s);
Talk(SAY_AGGRO);
}
@@ -82,6 +65,12 @@ struct boss_mennu_the_betrayer : public BossAI
Talk(SAY_SLAY);
}
+ void JustDied(Unit* /*killer*/) override
+ {
+ _JustDied();
+ Talk(SAY_DEATH);
+ }
+
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
@@ -97,23 +86,24 @@ struct boss_mennu_the_betrayer : public BossAI
switch (eventId)
{
case EVENT_TAINTED_STONESKIN_TOTEM:
- if (HealthBelowPct(100))
- DoCast(me, SPELL_TAINTED_STONESKIN_TOTEM);
- events.ScheduleEvent(EVENT_TAINTED_STONESKIN_TOTEM, 30s);
+ DoCastSelf(SPELL_TAINTED_STONESKIN_TOTEM);
+ events.Repeat(35s, 40s);
break;
case EVENT_TAINTED_EARTHGRAB_TOTEM:
- DoCast(me, SPELL_TAINTED_EARTHGRAB_TOTEM);
+ DoCastSelf(SPELL_TAINTED_EARTHGRAB_TOTEM);
+ events.Repeat(35s, 40s);
break;
case EVENT_CORRUPTED_NOVA_TOTEM:
- DoCast(me, SPELL_CORRUPTED_NOVA_TOTEM);
+ DoCastSelf(SPELL_CORRUPTED_NOVA_TOTEM);
+ events.Repeat(35s, 40s);
break;
case EVENT_MENNUS_HEALING_WARD:
- DoCast(me, SPELL_MENNUS_HEALING_WARD);
- events.ScheduleEvent(EVENT_MENNUS_HEALING_WARD, 14s, 25s);
+ DoCastSelf(SPELL_MENNUS_HEALING_WARD);
+ events.Repeat(35s, 40s);
break;
case EVENT_LIGHTNING_BOLT:
- DoCastVictim(SPELL_LIGHTNING_BOLT, true);
- events.ScheduleEvent(EVENT_LIGHTNING_BOLT, 14s, 25s);
+ DoCastVictim(SPELL_LIGHTNING_BOLT);
+ events.Repeat(15s, 25s);
break;
default:
break;
diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_quagmirran.cpp b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_quagmirran.cpp
index 197d2a73332..17747074c15 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_quagmirran.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_quagmirran.cpp
@@ -15,47 +15,31 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: boss_quagmirran
-SD%Complete: 100%
-SDComment:
-SDCategory: Coilfang Reservoir, The Slave Pens
-EndScriptData */
-
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "the_slave_pens.h"
-enum Spells
+enum QuagmirranSpells
{
SPELL_ACID_SPRAY = 38153,
SPELL_CLEAVE = 40504,
SPELL_UPPERCUT = 32055,
- SPELL_POISON_BOLT_VOLLEY = 34780 // 39340
+ SPELL_POISON_BOLT_VOLLEY = 34780
};
-enum Events
+enum QuagmirranEvents
{
EVENT_ACID_SPRAY = 1,
- EVENT_CLEAVE = 2,
- EVENT_UPPERCUT = 3,
- EVENT_POISON_BOLT_VOLLEY = 4
+ EVENT_CLEAVE,
+ EVENT_UPPERCUT,
+ EVENT_POISON_BOLT_VOLLEY
};
+// 17942 - Quagmirran
struct boss_quagmirran : public BossAI
{
boss_quagmirran(Creature* creature) : BossAI(creature, DATA_QUAGMIRRAN) { }
- void Reset() override
- {
- _Reset();
- }
-
- void JustDied(Unit* /*killer*/) override
- {
- _JustDied();
- }
-
void JustEngagedWith(Unit* who) override
{
BossAI::JustEngagedWith(who);
@@ -65,8 +49,6 @@ struct boss_quagmirran : public BossAI
events.ScheduleEvent(EVENT_POISON_BOLT_VOLLEY, 31s);
}
- void KilledUnit(Unit* /*victim*/) override { }
-
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
@@ -83,20 +65,20 @@ struct boss_quagmirran : public BossAI
{
case EVENT_ACID_SPRAY:
DoCastAOE(SPELL_ACID_SPRAY);
- events.ScheduleEvent(EVENT_ACID_SPRAY, 20s, 25s);
+ events.Repeat(20s, 25s);
break;
case EVENT_CLEAVE:
- DoCastVictim(SPELL_CLEAVE, true);
- events.ScheduleEvent(EVENT_CLEAVE, 18s, 34s);
+ DoCastVictim(SPELL_CLEAVE);
+ events.Repeat(18s, 34s);
break;
case EVENT_UPPERCUT:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 10.0f, true))
DoCast(target, SPELL_UPPERCUT);
- events.ScheduleEvent(EVENT_UPPERCUT, 22s);
+ events.Repeat(22s);
break;
case EVENT_POISON_BOLT_VOLLEY:
- DoCast(me, SPELL_POISON_BOLT_VOLLEY);
- events.ScheduleEvent(EVENT_POISON_BOLT_VOLLEY, 24s);
+ DoCastSelf(SPELL_POISON_BOLT_VOLLEY);
+ events.Repeat(24s);
break;
default:
break;
diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_rokmar_the_crackler.cpp b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_rokmar_the_crackler.cpp
index 45768c64463..7dd51ebb2e6 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_rokmar_the_crackler.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_rokmar_the_crackler.cpp
@@ -15,18 +15,11 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* ScriptData
-SDName: boss_rokmar_the_crackler
-SD%Complete: 100%
-SDComment:
-SDCategory: Coilfang Reservoir, The Slave Pens
-EndScriptData */
-
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "the_slave_pens.h"
-enum Spells
+enum RokmarSpells
{
SPELL_GRIEVOUS_WOUND = 31956,
SPELL_ENSNARING_MOSS = 31948,
@@ -34,34 +27,23 @@ enum Spells
SPELL_FRENZY = 34970
};
-enum Events
+enum RokmarEvents
{
EVENT_GRIEVOUS_WOUND = 1,
- EVENT_ENSNARING_MOSS = 2,
- EVENT_WATER_SPIT = 3
+ EVENT_ENSNARING_MOSS,
+ EVENT_WATER_SPIT,
+ EVENT_FRENZY
};
+// 17991 - Rokmar the Crackler
struct boss_rokmar_the_crackler : public BossAI
{
- boss_rokmar_the_crackler(Creature* creature) : BossAI(creature, DATA_ROKMAR_THE_CRACKLER)
- {
- Initialize();
- }
-
- void Initialize()
- {
- rokmarFrenzy = false;
- }
+ boss_rokmar_the_crackler(Creature* creature) : BossAI(creature, DATA_ROKMAR_THE_CRACKLER), _frenzied(false) { }
void Reset() override
{
_Reset();
- Initialize();
- }
-
- void JustDied(Unit* /*killer*/) override
- {
- _JustDied();
+ _frenzied = false;
}
void JustEngagedWith(Unit* who) override
@@ -72,7 +54,14 @@ struct boss_rokmar_the_crackler : public BossAI
events.ScheduleEvent(EVENT_WATER_SPIT, 14s);
}
- void KilledUnit(Unit* /*victim*/) override { }
+ void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
+ {
+ if (!_frenzied && me->HealthBelowPctDamaged(10, damage))
+ {
+ _frenzied = true;
+ events.ScheduleEvent(EVENT_FRENZY, 0s);
+ }
+ }
void UpdateAI(uint32 diff) override
{
@@ -89,16 +78,19 @@ struct boss_rokmar_the_crackler : public BossAI
switch (eventId)
{
case EVENT_GRIEVOUS_WOUND:
- DoCastVictim(SPELL_GRIEVOUS_WOUND, true);
- events.ScheduleEvent(EVENT_GRIEVOUS_WOUND, 20s, 30s);
+ DoCastVictim(SPELL_GRIEVOUS_WOUND);
+ events.Repeat(20s, 30s);
break;
case EVENT_ENSNARING_MOSS:
DoCastAOE(SPELL_ENSNARING_MOSS);
- events.ScheduleEvent(EVENT_ENSNARING_MOSS, 20s, 30s);
+ events.Repeat(20s, 30s);
break;
case EVENT_WATER_SPIT:
DoCastAOE(SPELL_WATER_SPIT);
- events.ScheduleEvent(EVENT_WATER_SPIT, 14s, 18s);
+ events.Repeat(14s, 18s);
+ break;
+ case EVENT_FRENZY:
+ DoCastSelf(SPELL_FRENZY);
break;
default:
break;
@@ -108,17 +100,11 @@ struct boss_rokmar_the_crackler : public BossAI
return;
}
- if (HealthBelowPct(10) && !rokmarFrenzy)
- {
- DoCast(me, SPELL_FRENZY);
- rokmarFrenzy = true;
- }
-
DoMeleeAttackIfReady();
}
private:
- bool rokmarFrenzy;
+ bool _frenzied;
};
void AddSC_boss_rokmar_the_crackler()