Scripts/Spells: Fix priest talent Twilight Equilibrium (#31418)
Co-authored-by: Shauren <[email protected]>
This commit is contained in:
co-authored by
Shauren
parent
bd2b12fa36
commit
7d9392e6a3
@@ -0,0 +1,10 @@
|
||||
DELETE FROM `spell_proc` WHERE `SpellId` IN (390705,390706,390707);
|
||||
INSERT INTO `spell_proc` (`SpellId`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`SpellFamilyMask3`,`ProcFlags`,`ProcFlags2`,`SpellTypeMask`,`SpellPhaseMask`,`HitMask`,`AttributesMask`,`DisableEffectsMask`,`ProcsPerMinute`,`Chance`,`Cooldown`,`Charges`) VALUES
|
||||
(390705,0x22,6,0x00000000,0x00000000,0x00000000,0x00000000,0x11000,0x0,0x1,0x2,0x0,0x0,0x0,0,101,0,0), -- Twilight Equilibrium
|
||||
(390706,0x00,6,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x1,0x2,0x0,0x8,0x0,0,0,0,0), -- Twilight Equilibrium
|
||||
(390707,0x00,6,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x1,0x2,0x0,0x8,0x0,0,0,0,0); -- Twilight Equilibrium
|
||||
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_pri_twilight_equilibrium','spell_pri_twilight_equilibrium_shadow_word_pain');
|
||||
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||
(390705, 'spell_pri_twilight_equilibrium'),
|
||||
(589, 'spell_pri_twilight_equilibrium_shadow_word_pain');
|
||||
@@ -193,6 +193,8 @@ enum PriestSpells
|
||||
SPELL_PRIEST_TRAIL_OF_LIGHT_HEAL = 234946,
|
||||
SPELL_PRIEST_TRINITY = 214205,
|
||||
SPELL_PRIEST_TRINITY_EFFECT = 290793,
|
||||
SPELL_PRIEST_TWILIGHT_EQUILIBRIUM_HOLY = 390706,
|
||||
SPELL_PRIEST_TWILIGHT_EQUILIBRIUM_SHADOW = 390707,
|
||||
SPELL_PRIEST_ULTIMATE_PENITENCE = 421453,
|
||||
SPELL_PRIEST_ULTIMATE_PENITENCE_DAMAGE = 421543,
|
||||
SPELL_PRIEST_ULTIMATE_PENITENCE_HEAL = 421544,
|
||||
@@ -3298,6 +3300,71 @@ class spell_pri_train_of_thought : public AuraScript
|
||||
}
|
||||
};
|
||||
|
||||
// 390705 - Twilight Equilibrium
|
||||
class spell_pri_twilight_equilibrium : public AuraScript
|
||||
{
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_PRIEST_TWILIGHT_EQUILIBRIUM_HOLY, SPELL_PRIEST_TWILIGHT_EQUILIBRIUM_SHADOW });
|
||||
}
|
||||
|
||||
void HandleProc(ProcEventInfo const& eventInfo) const
|
||||
{
|
||||
uint32 spellId = 0;
|
||||
|
||||
if (eventInfo.GetDamageInfo()->GetSchoolMask() & SPELL_SCHOOL_MASK_SHADOW)
|
||||
spellId = SPELL_PRIEST_TWILIGHT_EQUILIBRIUM_HOLY;
|
||||
else if (eventInfo.GetDamageInfo()->GetSchoolMask() & SPELL_SCHOOL_MASK_HOLY)
|
||||
spellId = SPELL_PRIEST_TWILIGHT_EQUILIBRIUM_SHADOW;
|
||||
else
|
||||
return;
|
||||
|
||||
Unit* caster = GetTarget();
|
||||
caster->CastSpell(caster, spellId, TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnProc += AuraProcFn(spell_pri_twilight_equilibrium::HandleProc);
|
||||
}
|
||||
};
|
||||
|
||||
// ID - 390707 Twilight Equilibrium (attached to 589 - Shadow Word: Pain)
|
||||
class spell_pri_twilight_equilibrium_shadow_word_pain : public AuraScript
|
||||
{
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_PRIEST_TWILIGHT_EQUILIBRIUM_SHADOW });
|
||||
}
|
||||
|
||||
void OnApply(AuraEffect const* /*aurEff*/, int32& /*amount*/, bool& /*canBeRecalculated*/)
|
||||
{
|
||||
_damageMultiplier = 1.0f;
|
||||
if (Unit* caster = GetCaster())
|
||||
{
|
||||
if (AuraEffect* twilightEquilibrium = caster->GetAuraEffect(SPELL_PRIEST_TWILIGHT_EQUILIBRIUM_SHADOW, EFFECT_0))
|
||||
{
|
||||
// snapshot Twilight Equilibrium value
|
||||
AddPct(_damageMultiplier, twilightEquilibrium->GetAmount());
|
||||
twilightEquilibrium->GetBase()->Remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CalcDamage(AuraEffect const* /*aurEff*/, Unit* /*victim*/, int32& /*damageOrHealing*/, int32& /*flatMod*/, float& pctMod) const
|
||||
{
|
||||
pctMod *= _damageMultiplier;
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_pri_twilight_equilibrium_shadow_word_pain::OnApply, EFFECT_1, SPELL_AURA_PERIODIC_DAMAGE);
|
||||
DoEffectCalcDamageAndHealing += AuraEffectCalcDamageFn(spell_pri_twilight_equilibrium_shadow_word_pain::CalcDamage, EFFECT_1, SPELL_AURA_PERIODIC_DAMAGE);
|
||||
}
|
||||
|
||||
float _damageMultiplier = 1.0f;
|
||||
};
|
||||
|
||||
// 109142 - Twist of Fate (Shadow)
|
||||
// 265259 - Twist of Fate (Discipline)
|
||||
class spell_pri_twist_of_fate : public AuraScript
|
||||
@@ -3602,6 +3669,8 @@ void AddSC_priest_spell_scripts()
|
||||
RegisterSpellScript(spell_pri_t3_4p_bonus);
|
||||
RegisterSpellScript(spell_pri_t5_heal_2p_bonus);
|
||||
RegisterSpellScript(spell_pri_t10_heal_2p_bonus);
|
||||
RegisterSpellScript(spell_pri_twilight_equilibrium);
|
||||
RegisterSpellScript(spell_pri_twilight_equilibrium_shadow_word_pain);
|
||||
RegisterSpellScript(spell_pri_twist_of_fate);
|
||||
RegisterSpellScript(spell_pri_unfurling_darkness);
|
||||
RegisterSpellScript(spell_pri_vampiric_embrace);
|
||||
|
||||
Reference in New Issue
Block a user