mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 15:40:45 +01:00
Scripts/Shadow Labyrinth: Modernize scripts (#31010)
This commit is contained in:
@@ -72,6 +72,7 @@ class BlackheartCharmedPlayerAI : public SimpleCharmedPlayerAI
|
||||
}
|
||||
};
|
||||
|
||||
// 18667 - Blackheart the Inciter
|
||||
struct boss_blackheart_the_inciter : public BossAI
|
||||
{
|
||||
boss_blackheart_the_inciter(Creature* creature) : BossAI(creature, DATA_BLACKHEART_THE_INCITER) { }
|
||||
@@ -124,6 +125,7 @@ struct boss_blackheart_the_inciter : public BossAI
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
events.Update(diff);
|
||||
|
||||
if (me->HasReactState(REACT_PASSIVE) || !UpdateVictim())
|
||||
return;
|
||||
|
||||
@@ -139,19 +141,19 @@ struct boss_blackheart_the_inciter : public BossAI
|
||||
if (me->GetThreatManager().GetThreatListSize() > 1)
|
||||
{
|
||||
ResetThreatList();
|
||||
DoCast(me, SPELL_INCITE_CHAOS);
|
||||
DoCastSelf(SPELL_INCITE_CHAOS);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_INCITE_CHAOS, 40s);
|
||||
events.Repeat(40s);
|
||||
break;
|
||||
}
|
||||
case EVENT_CHARGE_ATTACK:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
|
||||
DoCast(target, SPELL_CHARGE);
|
||||
events.ScheduleEvent(EVENT_CHARGE, 15s, 25s);
|
||||
events.Repeat(15s, 25s);
|
||||
break;
|
||||
case EVENT_WAR_STOMP:
|
||||
DoCast(me, SPELL_WAR_STOMP);
|
||||
events.ScheduleEvent(EVENT_WAR_STOMP, 18s, 24s);
|
||||
DoCastSelf(SPELL_WAR_STOMP);
|
||||
events.Repeat(18s, 24s);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -168,6 +170,7 @@ struct boss_blackheart_the_inciter_mc_dummy : public NullCreatureAI
|
||||
using NullCreatureAI::NullCreatureAI;
|
||||
void InitializeAI() override { me->SetReactState(REACT_PASSIVE); }
|
||||
static const uint32 FIRST_DUMMY = NPC_BLACKHEART_DUMMY1, LAST_DUMMY = NPC_BLACKHEART_DUMMY5;
|
||||
|
||||
void IsSummonedBy(WorldObject* whoWO) override
|
||||
{
|
||||
Unit* who = whoWO->ToUnit();
|
||||
@@ -215,7 +218,8 @@ class spell_blackheart_incite_chaos : public SpellScript
|
||||
|
||||
static const uint8 NUM_INCITE_SPELLS = 5;
|
||||
static const uint32 INCITE_SPELLS[NUM_INCITE_SPELLS];
|
||||
uint8 i=0;
|
||||
uint8 i = 0;
|
||||
|
||||
void HandleDummy(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (Unit* target = GetHitUnit())
|
||||
@@ -230,6 +234,7 @@ class spell_blackheart_incite_chaos : public SpellScript
|
||||
OnEffectHitTarget += SpellEffectFn(spell_blackheart_incite_chaos::HandleDummy, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
const uint32 spell_blackheart_incite_chaos::INCITE_SPELLS[spell_blackheart_incite_chaos::NUM_INCITE_SPELLS] = { 33677,33680,33681,33682,33683 };
|
||||
|
||||
void AddSC_boss_blackheart_the_inciter()
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
#include "ScriptedCreature.h"
|
||||
#include "shadow_labyrinth.h"
|
||||
|
||||
enum Texts
|
||||
enum VorpilTexts
|
||||
{
|
||||
SAY_HELP = 0,
|
||||
SAY_AGGRO = 1,
|
||||
@@ -33,7 +33,7 @@ enum Texts
|
||||
SAY_WIPE = 5
|
||||
};
|
||||
|
||||
enum Spells
|
||||
enum VorpilSpells
|
||||
{
|
||||
SPELL_SHADOWBOLT_VOLLEY = 33841,
|
||||
SPELL_BANISH = 38791,
|
||||
@@ -64,7 +64,7 @@ enum Spells
|
||||
SPELL_INSTAKILL_SELF = 29878
|
||||
};
|
||||
|
||||
enum Events
|
||||
enum VorpilEvents
|
||||
{
|
||||
EVENT_HELP = 1,
|
||||
EVENT_SHADOWBOLT_VOLLEY,
|
||||
@@ -78,6 +78,7 @@ std::array<uint32, 5> const VoidwalkerSummonSpells =
|
||||
SPELL_SUMMON_VOIDWALKER_A, SPELL_SUMMON_VOIDWALKER_B, SPELL_SUMMON_VOIDWALKER_C, SPELL_SUMMON_VOIDWALKER_D, SPELL_SUMMON_VOIDWALKER_E
|
||||
};
|
||||
|
||||
// 18732 - Grandmaster Vorpil
|
||||
struct boss_grandmaster_vorpil : public BossAI
|
||||
{
|
||||
boss_grandmaster_vorpil(Creature* creature) : BossAI(creature, DATA_GRANDMASTER_VORPIL) { }
|
||||
@@ -171,6 +172,7 @@ struct boss_grandmaster_vorpil : public BossAI
|
||||
}
|
||||
};
|
||||
|
||||
// 19427 - Voidwalker Summoner
|
||||
struct npc_voidwalker_summoner : public ScriptedAI
|
||||
{
|
||||
npc_voidwalker_summoner(Creature* creature) : ScriptedAI(creature) { }
|
||||
@@ -193,6 +195,7 @@ private:
|
||||
TaskScheduler _scheduler;
|
||||
};
|
||||
|
||||
// 19226 - Void Traveler
|
||||
struct npc_void_traveler : public ScriptedAI
|
||||
{
|
||||
npc_void_traveler(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { }
|
||||
|
||||
@@ -15,12 +15,7 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Boss_Murmur
|
||||
SD%Complete: 90
|
||||
SDComment: Timers may be incorrect
|
||||
SDCategory: Auchindoun, Shadow Labyrinth
|
||||
EndScriptData */
|
||||
/* Timers requires update */
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "ObjectAccessor.h"
|
||||
@@ -29,12 +24,12 @@ EndScriptData */
|
||||
#include "SpellAuraEffects.h"
|
||||
#include "SpellScript.h"
|
||||
|
||||
enum Texts
|
||||
enum MurmurTexts
|
||||
{
|
||||
EMOTE_SONIC_BOOM = 0
|
||||
};
|
||||
|
||||
enum Spells
|
||||
enum MurmurSpells
|
||||
{
|
||||
SPELL_RESONANCE = 33657,
|
||||
SPELL_MAGNETIC_PULL = 33689,
|
||||
@@ -50,16 +45,17 @@ enum Spells
|
||||
SPELL_SHOCKWAVE_KNOCK_BACK = 33673
|
||||
};
|
||||
|
||||
enum Events
|
||||
enum MurmurEvents
|
||||
{
|
||||
EVENT_SONIC_BOOM = 1,
|
||||
EVENT_MURMURS_TOUCH = 2,
|
||||
EVENT_RESONANCE = 3,
|
||||
EVENT_MAGNETIC_PULL = 4,
|
||||
EVENT_THUNDERING_STORM = 5,
|
||||
EVENT_SONIC_SHOCK = 6
|
||||
EVENT_MURMURS_TOUCH,
|
||||
EVENT_RESONANCE,
|
||||
EVENT_MAGNETIC_PULL,
|
||||
EVENT_THUNDERING_STORM,
|
||||
EVENT_SONIC_SHOCK
|
||||
};
|
||||
|
||||
// 18708 - Murmur
|
||||
struct boss_murmur : public BossAI
|
||||
{
|
||||
boss_murmur(Creature* creature) : BossAI(creature, DATA_MURMUR)
|
||||
@@ -103,20 +99,20 @@ struct boss_murmur : public BossAI
|
||||
{
|
||||
case EVENT_SONIC_BOOM:
|
||||
Talk(EMOTE_SONIC_BOOM);
|
||||
DoCast(me, SPELL_SONIC_BOOM_CAST);
|
||||
events.ScheduleEvent(EVENT_SONIC_BOOM, 30s);
|
||||
DoCastSelf(SPELL_SONIC_BOOM_CAST);
|
||||
events.Repeat(30s);
|
||||
events.ScheduleEvent(EVENT_RESONANCE, 1500ms);
|
||||
break;
|
||||
case EVENT_MURMURS_TOUCH:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 80.0f, true))
|
||||
DoCast(target, SPELL_MURMURS_TOUCH);
|
||||
events.ScheduleEvent(EVENT_MURMURS_TOUCH, 25s, 35s);
|
||||
events.Repeat(25s, 35s);
|
||||
break;
|
||||
case EVENT_RESONANCE:
|
||||
if (!(me->IsWithinMeleeRange(me->GetVictim())))
|
||||
{
|
||||
DoCast(me, SPELL_RESONANCE);
|
||||
events.ScheduleEvent(EVENT_RESONANCE, 5s);
|
||||
DoCastSelf(SPELL_RESONANCE);
|
||||
events.Repeat(5s);
|
||||
}
|
||||
break;
|
||||
case EVENT_MAGNETIC_PULL:
|
||||
@@ -130,12 +126,12 @@ struct boss_murmur : public BossAI
|
||||
break;
|
||||
case EVENT_THUNDERING_STORM:
|
||||
DoCastAOE(SPELL_THUNDERING_STORM, true);
|
||||
events.ScheduleEvent(EVENT_THUNDERING_STORM, 15s);
|
||||
events.Repeat(15s);
|
||||
break;
|
||||
case EVENT_SONIC_SHOCK:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 20.0f, false))
|
||||
DoCast(target, SPELL_SONIC_SHOCK);
|
||||
events.ScheduleEvent(EVENT_SONIC_SHOCK, 10s, 20s);
|
||||
events.Repeat(10s, 20s);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user