refactor(Scripts/Instances): move spell ids for Heroic to dungeondifficulty_dbc (#23470)

This commit is contained in:
Tereneckla
2025-10-30 12:13:56 +00:00
committed by GitHub
parent aa61ae9a3e
commit e0685a1089
36 changed files with 410 additions and 413 deletions

View File

@@ -45,12 +45,9 @@ enum EadricEvents
enum PaletressSpells
{
SPELL_SMITE_N = 66536,
SPELL_SMITE_H = 67674,
SPELL_HOLY_FIRE_N = 66538,
SPELL_HOLY_FIRE_H = 67676,
SPELL_RENEW_N = 66537,
SPELL_RENEW_H = 67675,
SPELL_SMITE = 66536,
SPELL_HOLY_FIRE = 66538,
SPELL_RENEW = 66537,
SPELL_HOLY_NOVA = 66546,
SPELL_SHIELD = 66515,
@@ -58,21 +55,11 @@ enum PaletressSpells
SPELL_SUMMON_MEMORY = 66545,
//Memory
SPELL_OLD_WOUNDS_N = 66620,
SPELL_OLD_WOUNDS_H = 67679,
SPELL_SHADOWS_PAST_N = 66619,
SPELL_SHADOWS_PAST_H = 67678,
SPELL_WAKING_NIGHTMARE_N = 66552,
SPELL_WAKING_NIGHTMARE_H = 67677,
SPELL_OLD_WOUNDS = 66620,
SPELL_SHADOWS_PAST = 66619,
SPELL_WAKING_NIGHTMARE = 66552,
};
#define SPELL_SMITE DUNGEON_MODE(SPELL_SMITE_N, SPELL_SMITE_H)
#define SPELL_HOLY_FIRE DUNGEON_MODE(SPELL_HOLY_FIRE_N, SPELL_HOLY_FIRE_H)
#define SPELL_RENEW DUNGEON_MODE(SPELL_RENEW_N, SPELL_RENEW_H)
#define SPELL_OLD_WOUNDS DUNGEON_MODE(SPELL_OLD_WOUNDS_N, SPELL_OLD_WOUNDS_H)
#define SPELL_SHADOWS_PAST DUNGEON_MODE(SPELL_SHADOWS_PAST_N, SPELL_SHADOWS_PAST_H)
#define SPELL_WAKING_NIGHTMARE DUNGEON_MODE(SPELL_WAKING_NIGHTMARE_N, SPELL_WAKING_NIGHTMARE_H)
enum PaletressEvents
{
EVENT_SPELL_SMITE = 1,
@@ -477,29 +464,22 @@ enum ArgentSoldierSpells
// monk
SPELL_FLURRY_OF_BLOWS = 67233,
SPELL_PUMMEL = 67235,
SPELL_DIVINE_SHIELD_H = 67251,
SPELL_FINAL_MEDITATION_H = 67255,
SPELL_DIVINE_SHIELD = 67251,
SPELL_FINAL_MEDITATION = 67255,
// priestess
SPELL_HOLY_SMITE_N = 36176,
SPELL_HOLY_SMITE_H = 67289,
SPELL_HOLY_SMITE = 36176,
SPELL_FOUNTAIN_OF_LIGHT = 67194,
NPC_FOUNTAIN_OF_LIGHT = 35311,
SPELL_SHADOW_WORD_PAIN_N = 34941,
SPELL_SHADOW_WORD_PAIN_H = 34942,
SPELL_MIND_CONTROL_H = 67229,
SPELL_SHADOW_WORD_PAIN = 34941,
SPELL_MIND_CONTROL = 67229,
// lightwielder
SPELL_BLAZING_LIGHT_N = 67247,
SPELL_BLAZING_LIGHT_H = 67290,
SPELL_BLAZING_LIGHT = 67247,
SPELL_CLEAVE = 15284,
SPELL_UNBALANCING_STRIKE_H = 67237,
SPELL_UNBALANCING_STRIKE = 67237,
};
#define SPELL_HOLY_SMITE DUNGEON_MODE(SPELL_HOLY_SMITE_N, SPELL_HOLY_SMITE_H)
#define SPELL_SHADOW_WORD_PAIN DUNGEON_MODE(SPELL_SHADOW_WORD_PAIN_N, SPELL_SHADOW_WORD_PAIN_H)
#define SPELL_BLAZING_LIGHT DUNGEON_MODE(SPELL_BLAZING_LIGHT_N, SPELL_BLAZING_LIGHT_H)
enum ArgentSoldierEvents
{
EVENT_MONK_SPELL_FLURRY_OF_BLOWS = 1,
@@ -507,10 +487,10 @@ enum ArgentSoldierEvents
EVENT_PRIESTESS_SPELL_HOLY_SMITE,
EVENT_PRIESTESS_SPELL_SHADOW_WORD_PAIN,
EVENT_PRIESTESS_SPELL_FOUNTAIN_OF_LIGHT,
EVENT_PRIESTESS_SPELL_MIND_CONTROL_H,
EVENT_PRIESTESS_SPELL_MIND_CONTROL,
EVENT_LIGHTWIELDER_SPELL_BLAZING_LIGHT,
EVENT_LIGHTWIELDER_SPELL_CLEAVE,
EVENT_LIGHTWIELDER_SPELL_UNBALANCING_STRIKE_H,
EVENT_LIGHTWIELDER_SPELL_UNBALANCING_STRIKE,
};
class npc_argent_soldier : public CreatureScript
@@ -619,8 +599,8 @@ public:
bCheck = false;
damage = me->GetHealth() - 1;
events.DelayEvents(10s);
me->CastSpell(me, SPELL_DIVINE_SHIELD_H, true);
me->CastSpell((Unit*)nullptr, SPELL_FINAL_MEDITATION_H, true);
me->CastSpell(me, SPELL_DIVINE_SHIELD, true);
me->CastSpell((Unit*)nullptr, SPELL_FINAL_MEDITATION, true);
}
}
@@ -639,13 +619,13 @@ public:
events.RescheduleEvent(EVENT_PRIESTESS_SPELL_SHADOW_WORD_PAIN, 3s, 6s);
events.RescheduleEvent(EVENT_PRIESTESS_SPELL_FOUNTAIN_OF_LIGHT, 8s, 15s);
if (IsHeroic())
events.RescheduleEvent(EVENT_PRIESTESS_SPELL_MIND_CONTROL_H, 12s);
events.RescheduleEvent(EVENT_PRIESTESS_SPELL_MIND_CONTROL, 12s);
break;
case NPC_ARGENT_LIGHTWIELDER:
events.RescheduleEvent(EVENT_LIGHTWIELDER_SPELL_BLAZING_LIGHT, 12s, 15s);
events.RescheduleEvent(EVENT_LIGHTWIELDER_SPELL_CLEAVE, 3s, 5s);
if (IsHeroic())
events.RescheduleEvent(EVENT_LIGHTWIELDER_SPELL_UNBALANCING_STRIKE_H, 8s, 12s);
events.RescheduleEvent(EVENT_LIGHTWIELDER_SPELL_UNBALANCING_STRIKE, 8s, 12s);
break;
}
}
@@ -691,9 +671,9 @@ public:
me->CastSpell((Unit*)nullptr, SPELL_FOUNTAIN_OF_LIGHT, false);
events.Repeat(35s, 45s);
break;
case EVENT_PRIESTESS_SPELL_MIND_CONTROL_H:
case EVENT_PRIESTESS_SPELL_MIND_CONTROL:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 30.0f, true))
me->CastSpell(target, SPELL_MIND_CONTROL_H, false);
me->CastSpell(target, SPELL_MIND_CONTROL, false);
events.Repeat(22s, 30s);
break;
@@ -711,9 +691,9 @@ public:
me->CastSpell(me->GetVictim(), SPELL_CLEAVE, false);
events.Repeat(6s, 8s);
break;
case EVENT_LIGHTWIELDER_SPELL_UNBALANCING_STRIKE_H:
case EVENT_LIGHTWIELDER_SPELL_UNBALANCING_STRIKE:
if (me->GetVictim())
me->CastSpell(me->GetVictim(), SPELL_UNBALANCING_STRIKE_H, false);
me->CastSpell(me->GetVictim(), SPELL_UNBALANCING_STRIKE, false);
events.Repeat(12s, 15s);
break;
}

View File

@@ -18,7 +18,11 @@
#include "CreatureScript.h"
#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
#include "SharedDefines.h"
#include "Spell.h"
#include "SpellInfo.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "trial_of_the_champion.h"
enum Spells
@@ -30,49 +34,29 @@ enum Spells
SPELL_BK_KILL_CREDIT = 68663,
// phase 1
SPELL_PLAGUE_STRIKE_N = 67724,
SPELL_PLAGUE_STRIKE_H = 67884,
SPELL_ICY_TOUCH_N = 67718,
SPELL_ICY_TOUCH_H = 67881,
SPELL_DEATH_RESPITE_N = 67745,
SPELL_DEATH_RESPITE_H = 68306,
SPELL_PLAGUE_STRIKE = 67724,
SPELL_ICY_TOUCH = 67718,
SPELL_DEATH_RESPITE = 67745,
SPELL_DEATH_RESPITE_DUMMY = 66798,
SPELL_OBLITERATE_N = 67725,
SPELL_OBLITERATE_H = 67883,
SPELL_OBLITERATE = 67725,
// phase 2 (+ abilities from phase 1 without death respite)
SPELL_ARMY_DEAD_N = 67761,
SPELL_ARMY_DEAD_H = 67874,
SPELL_DESECRATION_N = 67778,
SPELL_DESECRATION_H = 67877,
SPELL_ARMY_DEAD = 67761,
SPELL_DESECRATION = 67778,
SPELL_DESECRATION_SUMMON = 67779,
SPELL_BK_GHOUL_EXPLODE = 67751,
// phase 3
SPELL_DEATH_BITE_N = 67808,
SPELL_DEATH_BITE_H = 67875,
SPELL_MARKED_DEATH_N = 67823,
SPELL_MARKED_DEATH_H = 67882,
SPELL_DEATH_BITE = 67808,
SPELL_MARKED_DEATH = 67823,
// ghouls
SPELL_CLAW_N = 67774,
SPELL_CLAW = 67774,
SPELL_CLAW_H = 67879,
SPELL_EXPLODE_N = 67729,
SPELL_EXPLODE_H = 67886,
SPELL_LEAP_N = 67749,
SPELL_LEAP_H = 67880,
SPELL_EXPLODE = 67729,
SPELL_EXPLODE_H = 67886,
SPELL_LEAP = 67749,
};
#define SPELL_LEAP DUNGEON_MODE(SPELL_LEAP_N, SPELL_LEAP_H)
#define SPELL_EXPLODE DUNGEON_MODE(SPELL_EXPLODE_N, SPELL_EXPLODE_H)
#define SPELL_PLAGUE_STRIKE DUNGEON_MODE(SPELL_PLAGUE_STRIKE_N, SPELL_PLAGUE_STRIKE_H)
#define SPELL_ICY_TOUCH DUNGEON_MODE(SPELL_ICY_TOUCH_N, SPELL_ICY_TOUCH_H)
#define SPELL_DEATH_RESPITE DUNGEON_MODE(SPELL_DEATH_RESPITE_N, SPELL_DEATH_RESPITE_H)
#define SPELL_OBLITERATE DUNGEON_MODE(SPELL_OBLITERATE_N, SPELL_OBLITERATE_H)
#define SPELL_ARMY_DEAD DUNGEON_MODE(SPELL_ARMY_DEAD_N, SPELL_ARMY_DEAD_H)
#define SPELL_DESECRATION DUNGEON_MODE(SPELL_DESECRATION_N, SPELL_DESECRATION_H)
#define SPELL_DEATH_BITE DUNGEON_MODE(SPELL_DEATH_BITE_N, SPELL_DEATH_BITE_H)
#define SPELL_MARKED_DEATH DUNGEON_MODE(SPELL_MARKED_DEATH_N, SPELL_MARKED_DEATH_H)
enum Events
{
@@ -420,27 +404,6 @@ public:
}
}
void SpellHitTarget(Unit* target, SpellInfo const* spell) override
{
switch (spell->Id)
{
case SPELL_CLAW_N:
case SPELL_CLAW_H:
DoResetThreatList();
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 30.0f))
{
me->AddThreat(target, 100.0f);
AttackStart(target);
}
break;
case SPELL_EXPLODE_H:
if (target && target->IsPlayer())
if (pInstance)
pInstance->SetData(DATA_ACHIEV_IVE_HAD_WORSE, 0);
break;
}
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
@@ -467,7 +430,7 @@ public:
break;
case 2: // claw
if (Unit* target = me->GetVictim())
me->CastSpell(target, SPELL_CLAW_N, false);
me->CastSpell(target, SPELL_CLAW, false);
events.Repeat(6s, 8s);
break;
}
@@ -482,9 +445,51 @@ public:
}
};
//67774,67879
class spell_black_knight_ghoul_claw : public SpellScript
{
PrepareSpellScript(spell_black_knight_ghoul_claw);
void HandleSpellHit(SpellEffIndex /*effIndex*/)
{
if (Unit* caster = GetCaster())
{
GetCaster()->GetThreatMgr().ResetAllThreat();
if (Unit* target = caster->GetAI()->SelectTarget(SelectTargetMethod::Random, 0, 30.0f))
{
caster->AddThreat(target, 100.0f);
caster->GetAI()->AttackStart(target);
}
}
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_black_knight_ghoul_claw::HandleSpellHit, EFFECT_0, SPELL_EFFECT_WEAPON_PERCENT_DAMAGE);
}
};
//67886
class spell_black_knight_ghoul_explode : public SpellScript
{
PrepareSpellScript(spell_black_knight_ghoul_explode);
void HandleSpellHit(SpellEffIndex /*effIndex*/)
{
if (GetHitUnit()->IsPlayer())
if (InstanceScript* instance = GetCaster()->GetInstanceScript())
instance->SetData(DATA_ACHIEV_IVE_HAD_WORSE, 0);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_black_knight_ghoul_explode::HandleSpellHit, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
}
};
void AddSC_boss_black_knight()
{
new boss_black_knight();
new npc_black_knight_skeletal_gryphon();
new npc_black_knight_ghoul();
RegisterSpellScript(spell_black_knight_ghoul_claw);
RegisterSpellScript(spell_black_knight_ghoul_explode);
}

View File

@@ -56,38 +56,30 @@ enum MountSpells
enum ChampionSpells
{
// Mage (Ambrose Boltspark, Eressea Dawnsinger)
SPELL_FIREBALL_N = 66042,
SPELL_FIREBALL_H = 68310,
SPELL_BLAST_WAVE_N = 66044,
SPELL_BLAST_WAVE_H = 68312,
SPELL_FIREBALL = 66042,
SPELL_BLAST_WAVE = 66044,
SPELL_HASTE = 66045,
SPELL_POLYMORPH_N = 66043,
SPELL_POLYMORPH_H = 68311,
SPELL_POLYMORPH = 66043,
// Shaman (Colosos, Runok Wildmane)
SPELL_CHAIN_LIGHTNING_N = 67529,
SPELL_CHAIN_LIGHTNING_H = 68319,
SPELL_CHAIN_LIGHTNING = 67529,
SPELL_EARTH_SHIELD = 67530,
SPELL_HEALING_WAVE_N = 67528,
SPELL_HEALING_WAVE_H = 68318,
SPELL_HEALING_WAVE = 67528,
SPELL_HEX_OF_MENDING = 67534,
// Hunter (Jaelyne Evensong, Zul'tore)
SPELL_DISENGAGE = 68339,
SPELL_LIGHTNING_ARROWS = 66083,
SPELL_MULTI_SHOT = 66081,
SPELL_SHOOT_N = 65868,
SPELL_SHOOT_H = 67988,
SPELL_SHOOT = 65868,
// Rogue (Lana Stouthammer Evensong, Deathstalker Visceri)
SPELL_EVISCERATE_N = 67709,
SPELL_EVISCERATE_H = 68317,
SPELL_EVISCERATE = 67709,
SPELL_FAN_OF_KNIVES = 67706,
SPELL_POISON_BOTTLE = 67701,
// Warrior (Marshal Jacob Alerius, Mokra the Skullcrusher)
SPELL_MORTAL_STRIKE_N = 68783,
SPELL_MORTAL_STRIKE_H = 68784,
SPELL_MORTAL_STRIKE = 68783,
SPELL_BLADESTORM = 63784,
SPELL_INTERCEPT = 67540,
SPELL_ROLLING_THROW = 67546, // not implemented yet!
@@ -98,15 +90,6 @@ enum Texts
SAY_TRAMPLED = 0,
};
#define SPELL_FIREBALL DUNGEON_MODE(SPELL_FIREBALL_N, SPELL_FIREBALL_H)
#define SPELL_BLAST_WAVE DUNGEON_MODE(SPELL_BLAST_WAVE_N, SPELL_BLAST_WAVE_H)
#define SPELL_POLYMORPH DUNGEON_MODE(SPELL_POLYMORPH_N, SPELL_POLYMORPH_H)
#define SPELL_CHAIN_LIGHTNING DUNGEON_MODE(SPELL_CHAIN_LIGHTNING_N, SPELL_CHAIN_LIGHTNING_H)
#define SPELL_HEALING_WAVE DUNGEON_MODE(SPELL_HEALING_WAVE_N, SPELL_HEALING_WAVE_H)
#define SPELL_SHOOT DUNGEON_MODE(SPELL_SHOOT_N, SPELL_SHOOT_H)
#define SPELL_EVISCERATE DUNGEON_MODE(SPELL_EVISCERATE_N, SPELL_EVISCERATE_H)
#define SPELL_MORTAL_STRIKE DUNGEON_MODE(SPELL_MORTAL_STRIKE_N, SPELL_MORTAL_STRIKE_H)
enum MountEvents
{
EVENT_NONE = 0,