mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Scripts/Spells: Implement Atonement (Passive, pet), Power Leech (Passive, pet) and Essence Devourer (#29170)
This commit is contained in:
15
sql/updates/world/master/2023_08_11_01_world.sql
Normal file
15
sql/updates/world/master/2023_08_11_01_world.sql
Normal file
@@ -0,0 +1,15 @@
|
||||
UPDATE `creature_template` SET `ScriptName`="npc_pet_pri_shadowfiend_mindbender" WHERE `entry` IN (19668, 62982);
|
||||
|
||||
DELETE FROM `creature_template_addon` WHERE `entry`=62982;
|
||||
INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `MountCreatureID`, `StandState`, `AnimTier`, `VisFlags`, `SheathState`, `PvPFlags`, `emote`, `aiAnimKit`, `movementAnimKit`, `meleeAnimKit`, `visibilityDistanceType`, `auras`) VALUES
|
||||
(62982, 0, 0, 0, 0, 0, 0, 1, 40, 0, 0, 0, 0, 0, '34429 63623 284621'); -- 34429 - Shadowform | 63623 - Avoidance (Passive) | 284621 - Power Leech (Passive)
|
||||
|
||||
UPDATE `creature_template_addon` SET `auras`='34429 63623 262484' WHERE `entry`=19668; -- 34429 - Shadowform | 63623 - Avoidance (Passive) | 262484 - Power Leech (Passive)
|
||||
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_pri_atonement_passive', 'spell_pri_power_leech_passive', 'spell_pri_essence_devourer_heal');
|
||||
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||
(195178, 'spell_pri_atonement_passive'),
|
||||
(262484, 'spell_pri_power_leech_passive'),
|
||||
(284621, 'spell_pri_power_leech_passive'),
|
||||
(415673, 'spell_pri_essence_devourer_heal'),
|
||||
(415676, 'spell_pri_essence_devourer_heal');
|
||||
@@ -28,11 +28,31 @@
|
||||
|
||||
enum PriestSpells
|
||||
{
|
||||
SPELL_PRIEST_GLYPH_OF_SHADOWFIEND = 58228,
|
||||
SPELL_PRIEST_SHADOWFIEND_DEATH = 57989,
|
||||
SPELL_PRIEST_LIGHTWELL_CHARGES = 59907,
|
||||
SPELL_PRIEST_ATONEMENT = 81749,
|
||||
SPELL_PRIEST_ATONEMENT_PASSIVE = 195178,
|
||||
SPELL_PRIEST_DIVINE_IMAGE_SPELL_CHECK = 405216,
|
||||
SPELL_PRIEST_INVOKE_THE_NAARU = 196687,
|
||||
SPELL_PRIEST_DIVINE_IMAGE_SPELL_CHECK = 405216
|
||||
SPELL_PRIEST_LIGHTWELL_CHARGES = 59907
|
||||
};
|
||||
|
||||
// 198236 - Divine Image
|
||||
struct npc_pet_pri_divine_image : public PassiveAI
|
||||
{
|
||||
npc_pet_pri_divine_image(Creature* creature) : PassiveAI(creature) { }
|
||||
|
||||
void IsSummonedBy(WorldObject* summoner) override
|
||||
{
|
||||
me->CastSpell(me, SPELL_PRIEST_INVOKE_THE_NAARU);
|
||||
|
||||
if (me->ToTempSummon()->IsGuardian() && summoner->IsUnit())
|
||||
static_cast<Guardian*>(me)->SetBonusDamage(summoner->ToUnit()->SpellBaseHealingBonusDone(SPELL_SCHOOL_MASK_HOLY));
|
||||
}
|
||||
|
||||
void OnDespawn() override
|
||||
{
|
||||
if (Unit* owner = me->GetOwner())
|
||||
owner->RemoveAura(SPELL_PRIEST_DIVINE_IMAGE_SPELL_CHECK);
|
||||
}
|
||||
};
|
||||
|
||||
// 189820 - Lightwell
|
||||
@@ -55,9 +75,10 @@ struct npc_pet_pri_lightwell : public PassiveAI
|
||||
};
|
||||
|
||||
// 19668 - Shadowfiend
|
||||
struct npc_pet_pri_shadowfiend : public PetAI
|
||||
// 62982 - Mindbender
|
||||
struct npc_pet_pri_shadowfiend_mindbender : public PetAI
|
||||
{
|
||||
npc_pet_pri_shadowfiend(Creature* creature) : PetAI(creature) { }
|
||||
npc_pet_pri_shadowfiend_mindbender(Creature* creature) : PetAI(creature) { }
|
||||
|
||||
void IsSummonedBy(WorldObject* summonerWO) override
|
||||
{
|
||||
@@ -65,33 +86,14 @@ struct npc_pet_pri_shadowfiend : public PetAI
|
||||
if (!summoner)
|
||||
return;
|
||||
|
||||
if (summoner->HasAura(SPELL_PRIEST_GLYPH_OF_SHADOWFIEND))
|
||||
DoCastAOE(SPELL_PRIEST_SHADOWFIEND_DEATH);
|
||||
}
|
||||
};
|
||||
|
||||
// 198236 - Divine Image
|
||||
struct npc_pet_pri_divine_image : public PassiveAI
|
||||
{
|
||||
npc_pet_pri_divine_image(Creature* creature) : PassiveAI(creature) { }
|
||||
|
||||
void IsSummonedBy(WorldObject* summoner) override
|
||||
{
|
||||
me->CastSpell(me, SPELL_PRIEST_INVOKE_THE_NAARU);
|
||||
if (me->ToTempSummon()->IsGuardian() && summoner->IsUnit())
|
||||
static_cast<Guardian*>(me)->SetBonusDamage(summoner->ToUnit()->SpellBaseHealingBonusDone(SPELL_SCHOOL_MASK_HOLY));
|
||||
}
|
||||
|
||||
void OnDespawn() override
|
||||
{
|
||||
if (Unit* owner = me->GetOwner())
|
||||
owner->RemoveAura(SPELL_PRIEST_DIVINE_IMAGE_SPELL_CHECK);
|
||||
if (summoner->HasAura(SPELL_PRIEST_ATONEMENT))
|
||||
DoCastSelf(SPELL_PRIEST_ATONEMENT_PASSIVE, TRIGGERED_FULL_MASK);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_priest_pet_scripts()
|
||||
{
|
||||
RegisterCreatureAI(npc_pet_pri_lightwell);
|
||||
RegisterCreatureAI(npc_pet_pri_shadowfiend);
|
||||
RegisterCreatureAI(npc_pet_pri_divine_image);
|
||||
RegisterCreatureAI(npc_pet_pri_lightwell);
|
||||
RegisterCreatureAI(npc_pet_pri_shadowfiend_mindbender);
|
||||
}
|
||||
|
||||
@@ -77,6 +77,9 @@ enum PriestSpells
|
||||
SPELL_PRIEST_EMPOWERED_RENEW_HEAL = 391359,
|
||||
SPELL_PRIEST_EPIPHANY = 414553,
|
||||
SPELL_PRIEST_EPIPHANY_HIGHLIGHT = 414556,
|
||||
SPELL_PRIEST_ESSENCE_DEVOURER = 415479,
|
||||
SPELL_PRIEST_ESSENCE_DEVOURER_SHADOWFIEND_HEAL = 415673,
|
||||
SPELL_PRIEST_ESSENCE_DEVOURER_MINDBENDER_HEAL = 415676,
|
||||
SPELL_PRIEST_FLASH_HEAL = 2061,
|
||||
SPELL_PRIEST_GREATER_HEAL = 289666,
|
||||
SPELL_PRIEST_FOCUSED_MENDING = 372354,
|
||||
@@ -106,6 +109,8 @@ enum PriestSpells
|
||||
SPELL_PRIEST_MASOCHISM_TALENT = 193063,
|
||||
SPELL_PRIEST_MASOCHISM_PERIODIC_HEAL = 193065,
|
||||
SPELL_PRIEST_MASTERY_GRACE = 271534,
|
||||
SPELL_PRIEST_MINDBENDER_DISC = 123040,
|
||||
SPELL_PRIEST_MINDBENDER_SHADOW = 200174,
|
||||
SPELL_PRIEST_MINDGAMES = 375901,
|
||||
SPELL_PRIEST_MINDGAMES_VENTHYR = 323673,
|
||||
SPELL_PRIEST_MIND_BOMB_STUN = 226943,
|
||||
@@ -115,6 +120,10 @@ enum PriestSpells
|
||||
SPELL_PRIEST_PENANCE_CHANNEL_HEALING = 47757,
|
||||
SPELL_PRIEST_PENANCE_DAMAGE = 47666,
|
||||
SPELL_PRIEST_PENANCE_HEALING = 47750,
|
||||
SPELL_PRIEST_POWER_LEECH_MINDBENDER_MANA = 123051,
|
||||
SPELL_PRIEST_POWER_LEECH_MINDBENDER_INSANITY = 200010,
|
||||
SPELL_PRIEST_POWER_LEECH_SHADOWFIEND_MANA = 343727,
|
||||
SPELL_PRIEST_POWER_LEECH_SHADOWFIEND_INSANITY = 262485,
|
||||
SPELL_PRIEST_POWER_OF_THE_DARK_SIDE = 198069,
|
||||
SPELL_PRIEST_POWER_OF_THE_DARK_SIDE_TINT = 225795,
|
||||
SPELL_PRIEST_POWER_WORD_LIFE = 373481,
|
||||
@@ -164,7 +173,9 @@ enum PriestSpellVisuals
|
||||
|
||||
enum PriestSummons
|
||||
{
|
||||
NPC_PRIEST_DIVINE_IMAGE = 198236
|
||||
NPC_PRIEST_DIVINE_IMAGE = 198236,
|
||||
NPC_PRIEST_MINDBENDER = 62982,
|
||||
NPC_PRIEST_SHADOWFIEND = 19668
|
||||
};
|
||||
|
||||
enum MiscSpells
|
||||
@@ -343,33 +354,20 @@ class spell_pri_atonement : public AuraScript
|
||||
&& ValidateSpellEffect({ { spellInfo->Id, EFFECT_1 }, { SPELL_PRIEST_SINS_OF_THE_MANY, EFFECT_2 } });
|
||||
}
|
||||
|
||||
bool CheckProc(ProcEventInfo& eventInfo)
|
||||
static bool CheckProc(ProcEventInfo const& eventInfo)
|
||||
{
|
||||
return eventInfo.GetDamageInfo() != nullptr;
|
||||
}
|
||||
|
||||
void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
|
||||
void HandleOnProc(AuraEffect const* aurEff, ProcEventInfo const& eventInfo)
|
||||
{
|
||||
DamageInfo* damageInfo = eventInfo.GetDamageInfo();
|
||||
CastSpellExtraArgs args(aurEff);
|
||||
args.AddSpellMod(SPELLVALUE_BASE_POINT0, CalculatePct(damageInfo->GetDamage(), aurEff->GetAmount()));
|
||||
_appliedAtonements.erase(std::remove_if(_appliedAtonements.begin(), _appliedAtonements.end(), [this, &args](ObjectGuid const& targetGuid)
|
||||
{
|
||||
if (Unit* target = ObjectAccessor::GetUnit(*GetTarget(), targetGuid))
|
||||
{
|
||||
if (target->GetExactDist(GetTarget()) < GetEffectInfo(EFFECT_1).CalcValue())
|
||||
GetTarget()->CastSpell(target, SPELL_PRIEST_ATONEMENT_HEAL, args);
|
||||
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}), _appliedAtonements.end());
|
||||
TriggerAtonementHealOnTargets(aurEff, eventInfo);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
DoCheckProc += AuraCheckProcFn(spell_pri_atonement::CheckProc);
|
||||
OnEffectProc += AuraEffectProcFn(spell_pri_atonement::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
|
||||
OnEffectProc += AuraEffectProcFn(spell_pri_atonement::HandleOnProc, EFFECT_0, SPELL_AURA_DUMMY);
|
||||
}
|
||||
|
||||
std::vector<ObjectGuid> _appliedAtonements;
|
||||
@@ -384,12 +382,37 @@ public:
|
||||
|
||||
void RemoveAtonementTarget(ObjectGuid const& target)
|
||||
{
|
||||
_appliedAtonements.erase(std::remove(_appliedAtonements.begin(), _appliedAtonements.end(), target), _appliedAtonements.end());
|
||||
std::erase(_appliedAtonements, target);
|
||||
|
||||
UpdateSinsOfTheManyValue();
|
||||
}
|
||||
|
||||
void UpdateSinsOfTheManyValue()
|
||||
void TriggerAtonementHealOnTargets(AuraEffect const* atonementEffect, ProcEventInfo const& eventInfo)
|
||||
{
|
||||
Unit* priest = GetUnitOwner();
|
||||
DamageInfo* damageInfo = eventInfo.GetDamageInfo();
|
||||
CastSpellExtraArgs args(TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR);
|
||||
|
||||
// Note: atonementEffect holds the correct amount since we passed the effect in the AuraScript that calls this method.
|
||||
args.AddSpellMod(SPELLVALUE_BASE_POINT0, CalculatePct(damageInfo->GetDamage(), atonementEffect->GetAmount()));
|
||||
|
||||
float distanceLimit = GetEffectInfo(EFFECT_1).CalcValue();
|
||||
|
||||
std::erase_if(_appliedAtonements, [priest, distanceLimit, &args](ObjectGuid const& targetGuid)
|
||||
{
|
||||
if (Unit* target = ObjectAccessor::GetUnit(*priest, targetGuid))
|
||||
{
|
||||
if (target->IsInDist2d(priest, distanceLimit))
|
||||
priest->CastSpell(target, SPELL_PRIEST_ATONEMENT_HEAL, args);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
void UpdateSinsOfTheManyValue() const
|
||||
{
|
||||
// Note: the damage dimish starts at the 6th application as of 10.0.5.
|
||||
constexpr std::array<float, 20> damageByStack = { 40.0f, 40.0f, 40.0f, 40.0f, 40.0f, 35.0f, 30.0f, 25.0f, 20.0f, 15.0f, 11.0f, 8.0f, 5.0f, 4.0f, 3.0f, 2.5f, 2.0f, 1.5f, 1.25f, 1.0f };
|
||||
@@ -400,6 +423,37 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
// 195178 - Atonement (Passive)
|
||||
class spell_pri_atonement_passive : public AuraScript
|
||||
{
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellEffect({ { SPELL_PRIEST_ATONEMENT, EFFECT_0 } });
|
||||
}
|
||||
|
||||
static bool CheckProc(ProcEventInfo const& eventInfo)
|
||||
{
|
||||
return eventInfo.GetDamageInfo() != nullptr;
|
||||
}
|
||||
|
||||
void HandleOnProc(AuraEffect const* /*aurEff*/, ProcEventInfo const& eventInfo) const
|
||||
{
|
||||
Unit* target = GetTarget();
|
||||
Unit* summoner = target->GetOwner();
|
||||
if (!summoner)
|
||||
return;
|
||||
|
||||
if (AuraEffect const* atonementEffect = summoner->GetAuraEffect(SPELL_PRIEST_ATONEMENT, EFFECT_0))
|
||||
if (spell_pri_atonement* script = atonementEffect->GetBase()->GetScript<spell_pri_atonement>())
|
||||
script->TriggerAtonementHealOnTargets(atonementEffect, eventInfo);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectProc += AuraEffectProcFn(spell_pri_atonement_passive::HandleOnProc, EFFECT_0, SPELL_AURA_DUMMY);
|
||||
}
|
||||
};
|
||||
|
||||
// 194384, 214206 - Atonement
|
||||
class spell_pri_atonement_triggered : public AuraScript
|
||||
{
|
||||
@@ -918,6 +972,21 @@ class spell_pri_epiphany : public AuraScript
|
||||
}
|
||||
};
|
||||
|
||||
// 415673 - Essence Devourer (Heal)
|
||||
// 415676 - Essence Devourer (Heal)
|
||||
class spell_pri_essence_devourer_heal : public SpellScript
|
||||
{
|
||||
static void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
Trinity::SelectRandomInjuredTargets(targets, 1, true);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_pri_essence_devourer_heal::FilterTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ALLY);
|
||||
}
|
||||
};
|
||||
|
||||
// 33110 - Prayer of Mending (Heal)
|
||||
class spell_pri_focused_mending : public SpellScript
|
||||
{
|
||||
@@ -1317,6 +1386,81 @@ class spell_pri_penance_or_dark_reprimand_channeled : public AuraScript
|
||||
}
|
||||
};
|
||||
|
||||
// 262484 - Power Leech (Passive for Shadowfiend)
|
||||
// 284621 - Power Leech (Passive for Mindbender)
|
||||
class spell_pri_power_leech_passive : public AuraScript
|
||||
{
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo
|
||||
({
|
||||
SPELL_PRIEST_POWER_LEECH_SHADOWFIEND_INSANITY,
|
||||
SPELL_PRIEST_POWER_LEECH_SHADOWFIEND_MANA,
|
||||
SPELL_PRIEST_POWER_LEECH_MINDBENDER_INSANITY,
|
||||
SPELL_PRIEST_POWER_LEECH_MINDBENDER_MANA,
|
||||
SPELL_PRIEST_ESSENCE_DEVOURER,
|
||||
SPELL_PRIEST_ESSENCE_DEVOURER_SHADOWFIEND_HEAL,
|
||||
SPELL_PRIEST_ESSENCE_DEVOURER_MINDBENDER_HEAL
|
||||
})
|
||||
&& ValidateSpellEffect
|
||||
({
|
||||
{ SPELL_PRIEST_POWER_LEECH_SHADOWFIEND_INSANITY, EFFECT_0 },
|
||||
{ SPELL_PRIEST_POWER_LEECH_SHADOWFIEND_MANA, EFFECT_0 },
|
||||
{ SPELL_PRIEST_POWER_LEECH_MINDBENDER_INSANITY, EFFECT_0 },
|
||||
{ SPELL_PRIEST_POWER_LEECH_MINDBENDER_MANA, EFFECT_0 }
|
||||
});
|
||||
}
|
||||
|
||||
static bool CheckProc(ProcEventInfo const& eventInfo)
|
||||
{
|
||||
return eventInfo.GetDamageInfo() != nullptr;
|
||||
}
|
||||
|
||||
void HandleOnProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) const
|
||||
{
|
||||
Unit* target = GetTarget();
|
||||
Player* summoner = Object::ToPlayer(target->GetOwner());
|
||||
if (!summoner)
|
||||
return;
|
||||
|
||||
SpellInfo const* spellInfo = nullptr;
|
||||
int32 divisor = 1;
|
||||
|
||||
if (summoner->GetPrimarySpecialization() != ChrSpecialization::PriestShadow)
|
||||
{
|
||||
if (target->GetEntry() == NPC_PRIEST_SHADOWFIEND)
|
||||
{
|
||||
// Note: divisor is 100 because effect value is 5 and its supposed to restore 0.5%
|
||||
spellInfo = sSpellMgr->AssertSpellInfo(SPELL_PRIEST_POWER_LEECH_SHADOWFIEND_MANA, GetCastDifficulty());
|
||||
divisor = 10;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Note: divisor is 100 because effect value is 20 and its supposed to restore 0.2%
|
||||
spellInfo = sSpellMgr->AssertSpellInfo(SPELL_PRIEST_POWER_LEECH_MINDBENDER_MANA, GetCastDifficulty());
|
||||
divisor = 100;
|
||||
}
|
||||
}
|
||||
else
|
||||
spellInfo = sSpellMgr->AssertSpellInfo(target->GetEntry() == NPC_PRIEST_SHADOWFIEND
|
||||
? SPELL_PRIEST_POWER_LEECH_SHADOWFIEND_INSANITY
|
||||
: SPELL_PRIEST_POWER_LEECH_MINDBENDER_INSANITY, GetCastDifficulty());
|
||||
|
||||
target->CastSpell(summoner, spellInfo->Id, CastSpellExtraArgs(aurEff)
|
||||
.AddSpellMod(SPELLVALUE_BASE_POINT0, spellInfo->GetEffect(EFFECT_0).CalcValue() / divisor));
|
||||
|
||||
// Note: Essence Devourer talent.
|
||||
if (summoner->HasAura(SPELL_PRIEST_ESSENCE_DEVOURER))
|
||||
summoner->CastSpell(nullptr, target->GetEntry() == NPC_PRIEST_SHADOWFIEND ? SPELL_PRIEST_ESSENCE_DEVOURER_SHADOWFIEND_HEAL : SPELL_PRIEST_ESSENCE_DEVOURER_MINDBENDER_HEAL, aurEff);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
DoCheckProc += AuraCheckProcFn(spell_pri_power_leech_passive::CheckProc);
|
||||
OnEffectProc += AuraEffectProcFn(spell_pri_power_leech_passive::HandleOnProc, EFFECT_0, SPELL_AURA_DUMMY);
|
||||
}
|
||||
};
|
||||
|
||||
// 198069 - Power of the Dark Side
|
||||
class spell_pri_power_of_the_dark_side : public AuraScript
|
||||
{
|
||||
@@ -2412,6 +2556,7 @@ void AddSC_priest_spell_scripts()
|
||||
RegisterSpellScript(spell_pri_answered_prayers);
|
||||
RegisterSpellScript(spell_pri_aq_3p_bonus);
|
||||
RegisterSpellScript(spell_pri_atonement);
|
||||
RegisterSpellScript(spell_pri_atonement_passive);
|
||||
RegisterSpellScript(spell_pri_atonement_triggered);
|
||||
RegisterSpellScript(spell_pri_benediction);
|
||||
RegisterSpellScript(spell_pri_circle_of_healing);
|
||||
@@ -2424,6 +2569,7 @@ void AddSC_priest_spell_scripts()
|
||||
RegisterAreaTriggerAI(areatrigger_pri_divine_star);
|
||||
RegisterSpellScript(spell_pri_empowered_renew);
|
||||
RegisterSpellScript(spell_pri_epiphany);
|
||||
RegisterSpellScript(spell_pri_essence_devourer_heal);
|
||||
RegisterSpellScript(spell_pri_focused_mending);
|
||||
RegisterSpellScript(spell_pri_guardian_spirit);
|
||||
RegisterSpellScript(spell_pri_halo_shadow);
|
||||
@@ -2437,6 +2583,7 @@ void AddSC_priest_spell_scripts()
|
||||
RegisterSpellScriptWithArgs(spell_pri_penance, "spell_pri_penance", SPELL_PRIEST_PENANCE_CHANNEL_DAMAGE, SPELL_PRIEST_PENANCE_CHANNEL_HEALING);
|
||||
RegisterSpellScriptWithArgs(spell_pri_penance, "spell_pri_dark_reprimand", SPELL_PRIEST_DARK_REPRIMAND_CHANNEL_DAMAGE, SPELL_PRIEST_DARK_REPRIMAND_CHANNEL_HEALING);
|
||||
RegisterSpellScript(spell_pri_penance_or_dark_reprimand_channeled);
|
||||
RegisterSpellScript(spell_pri_power_leech_passive);
|
||||
RegisterSpellScript(spell_pri_power_of_the_dark_side);
|
||||
RegisterSpellScript(spell_pri_power_of_the_dark_side_damage_bonus);
|
||||
RegisterSpellScript(spell_pri_power_of_the_dark_side_healing_bonus);
|
||||
|
||||
Reference in New Issue
Block a user