fix spell for 12.0.7
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user