fix spell for 12.0.7
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s

This commit is contained in:
luis
2026-08-16 02:45:17 -03:00
parent bc288d6b89
commit b845948c2f
+14 -29
View File
@@ -70,9 +70,6 @@ enum PriestSpells
SPELL_PRIEST_CASTIGATION = 193134,
SPELL_PRIEST_CENSURE = 200199,
SPELL_PRIEST_CIRCLE_OF_HEALING = 204883,
SPELL_PRIEST_CRYSTALLINE_REFLECTION = 373457,
SPELL_PRIEST_CRYSTALLINE_REFLECTION_HEAL = 373462,
SPELL_PRIEST_CRYSTALLINE_REFLECTION_REFLECT = 373464,
SPELL_PRIEST_DARK_INDULGENCE = 372972,
SPELL_PRIEST_DARK_REPRIMAND = 400169,
SPELL_PRIEST_DARK_REPRIMAND_CHANNEL_DAMAGE = 373129,
@@ -979,45 +976,33 @@ class spell_pri_circle_of_healing : public SpellScript
// 17 - Power Word: Shield
class spell_pri_crystalline_reflection : public AuraScript
{
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo
({
SPELL_PRIEST_CRYSTALLINE_REFLECTION,
SPELL_PRIEST_CRYSTALLINE_REFLECTION_HEAL,
SPELL_PRIEST_CRYSTALLINE_REFLECTION_REFLECT,
}) && ValidateSpellEffect({ { SPELL_PRIEST_CRYSTALLINE_REFLECTION, EFFECT_0 } });
}
static constexpr uint32 CRYSTALLINE_REFLECTION_HEAL_PCT = 42;
static constexpr uint32 CRYSTALLINE_REFLECTION_REFLECT_PCT = 10;
void HandleOnApply(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) const
void HandleOnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) const
{
Unit* caster = GetCaster();
if (!caster)
Unit* target = GetTarget();
if (!caster || !target)
return;
// Crystalline Reflection Heal
if (caster->HasAura(SPELL_PRIEST_CRYSTALLINE_REFLECTION))
caster->CastSpell(GetTarget(), SPELL_PRIEST_CRYSTALLINE_REFLECTION_HEAL, CastSpellExtraArgs(aurEff)
.SetTriggerFlags(TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR));
// Crystalline Reflection Heal: instantly heal for 42% of spell power
HealInfo healInfo(caster, target, uint32(CalculatePct(caster->SpellBaseHealingBonusDone(SPELL_SCHOOL_MASK_HOLY), CRYSTALLINE_REFLECTION_HEAL_PCT)), GetSpellInfo(), SPELL_SCHOOL_MASK_HOLY);
caster->HealBySpell(healInfo);
}
void HandleAfterAbsorb(AuraEffect const* /*aurEff*/, DamageInfo const& dmgInfo, uint32 const& absorbAmount) const
{
Unit* caster = GetCaster();
if (!caster)
return;
AuraEffect const* auraEff = caster->GetAuraEffect(SPELL_PRIEST_CRYSTALLINE_REFLECTION, EFFECT_0);
if (!auraEff)
return;
Unit* attacker = dmgInfo.GetAttacker();
if (!attacker)
if (!caster || !attacker)
return;
CastSpellExtraArgs args(TRIGGERED_DONT_REPORT_CAST_ERROR);
args.AddSpellMod(SPELLVALUE_BASE_POINT0, CalculatePct(absorbAmount, auraEff->GetAmount()));
caster->CastSpell(attacker, SPELL_PRIEST_CRYSTALLINE_REFLECTION_REFLECT, args);
// Crystalline Reflection Reflect: reflect 10% of absorbed damage
SpellNonMeleeDamage damageInfo(caster, attacker, GetSpellInfo(), GetAura()->GetSpellVisual(), GetSpellInfo()->SchoolMask, GetAura()->GetCastId());
damageInfo.damage = CalculatePct(absorbAmount, CRYSTALLINE_REFLECTION_REFLECT_PCT);
caster->DealSpellDamage(&damageInfo, false);
caster->SendSpellNonMeleeDamageLog(&damageInfo);
}
void Register() override