feat(Core/Spells): Move Spell pri lightwell to spell scripts (#11089)

This commit is contained in:
IntelligentQuantum
2022-03-27 09:25:59 +04:30
committed by GitHub
parent a4e68e681e
commit 7410f1a3cb
3 changed files with 60 additions and 42 deletions

View File

@@ -0,0 +1,5 @@
INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647762029984921289');
DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_pri_lightwell');
INSERT INTO `spell_script_names` VALUES
(60123,'spell_pri_lightwell');

View File

@@ -4114,48 +4114,6 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex)
else
unitTarget->CastSpell(unitTarget, 59314, true);
return;
}
case 60123: // Lightwell
{
if (m_caster->GetTypeId() != TYPEID_UNIT || !m_caster->ToCreature()->IsSummon())
return;
uint32 spell_heal;
switch (m_caster->GetEntry())
{
case 31897:
spell_heal = 7001;
break;
case 31896:
spell_heal = 27873;
break;
case 31895:
spell_heal = 27874;
break;
case 31894:
spell_heal = 28276;
break;
case 31893:
spell_heal = 48084;
break;
case 31883:
spell_heal = 48085;
break;
default:
LOG_ERROR("spells.effect", "Unknown Lightwell spell caster {}", m_caster->GetEntry());
return;
}
// proc a spellcast
if (Aura* chargesAura = m_caster->GetAura(59907))
{
m_caster->CastSpell(unitTarget, spell_heal, true, nullptr, nullptr, m_caster->ToTempSummon()->GetSummonerGUID());
if (chargesAura->ModCharges(-1))
m_caster->ToTempSummon()->UnSummon();
}
return;
}
// Stoneclaw Totem

View File

@@ -27,6 +27,7 @@
#include "SpellAuraEffects.h"
#include "SpellMgr.h"
#include "SpellScript.h"
#include "TemporarySummon.h"
enum PriestSpells
{
@@ -37,6 +38,7 @@ enum PriestSpells
SPELL_PRIEST_GLYPH_OF_PRAYER_OF_HEALING_HEAL = 56161,
SPELL_PRIEST_GUARDIAN_SPIRIT_HEAL = 48153,
SPELL_PRIEST_ITEM_EFFICIENCY = 37595,
SPELL_PRIEST_LIGHTWELL_CHARGES = 59907,
SPELL_PRIEST_MANA_LEECH_PROC = 34650,
SPELL_PRIEST_PENANCE_R1 = 47540,
SPELL_PRIEST_PENANCE_R1_DAMAGE = 47758,
@@ -61,6 +63,16 @@ enum PriestSpellIcons
PRIEST_ICON_ID_PAIN_AND_SUFFERING = 2874,
};
enum Mics
{
PRIEST_LIGHTWELL_NPC_1 = 31897,
PRIEST_LIGHTWELL_NPC_2 = 31896,
PRIEST_LIGHTWELL_NPC_3 = 31895,
PRIEST_LIGHTWELL_NPC_4 = 31894,
PRIEST_LIGHTWELL_NPC_5 = 31893,
PRIEST_LIGHTWELL_NPC_6 = 31883
};
class spell_pri_shadowfiend_scaling : public AuraScript
{
PrepareAuraScript(spell_pri_shadowfiend_scaling);
@@ -359,6 +371,48 @@ class spell_pri_item_greater_heal_refund : public AuraScript
}
};
// 60123 - Lightwell
class spell_pri_lightwell : public SpellScript
{
PrepareSpellScript(spell_pri_lightwell);
bool Load() override
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
void HandleScriptEffect(SpellEffIndex /* effIndex */)
{
Creature* caster = GetCaster()->ToCreature();
if (!caster || !caster->IsSummon())
return;
uint32 lightwellRenew = 0;
switch (caster->GetEntry())
{
case PRIEST_LIGHTWELL_NPC_1: lightwellRenew = 7001; break;
case PRIEST_LIGHTWELL_NPC_2: lightwellRenew = 27873; break;
case PRIEST_LIGHTWELL_NPC_3: lightwellRenew = 27874; break;
case PRIEST_LIGHTWELL_NPC_4: lightwellRenew = 28276; break;
case PRIEST_LIGHTWELL_NPC_5: lightwellRenew = 48084; break;
case PRIEST_LIGHTWELL_NPC_6: lightwellRenew = 48085; break;
}
// proc a spellcast
if (Aura* chargesAura = caster->GetAura(SPELL_PRIEST_LIGHTWELL_CHARGES))
{
caster->CastSpell(GetHitUnit(), lightwellRenew, caster->ToTempSummon()->GetSummonerGUID());
if (chargesAura->ModCharges(-1))
caster->ToTempSummon()->UnSummon();
}
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_pri_lightwell::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
// -7001 - Lightwell Renew
class spell_pri_lightwell_renew : public AuraScript
{
@@ -854,6 +908,7 @@ void AddSC_priest_spell_scripts()
RegisterSpellScript(spell_pri_guardian_spirit);
RegisterSpellScript(spell_pri_hymn_of_hope);
RegisterSpellScript(spell_pri_item_greater_heal_refund);
RegisterSpellScript(spell_pri_lightwell);
RegisterSpellScript(spell_pri_lightwell_renew);
RegisterSpellScript(spell_pri_mana_burn);
RegisterSpellScript(spell_pri_mana_leech);