Scripts/Spells: Priest - Power of the Dark Side fixed
Port From (https://github.com/TrinityCore/TrinityCore/commit/22625e82ba994ccf197592f71b877a14e2c53390)
This commit is contained in:
@@ -60,6 +60,10 @@ namespace Scripts.Spells.Priest
|
|||||||
public const uint Penance = 47540;
|
public const uint Penance = 47540;
|
||||||
public const uint PenanceChannelDamage = 47758;
|
public const uint PenanceChannelDamage = 47758;
|
||||||
public const uint PenanceChannelHealing = 47757;
|
public const uint PenanceChannelHealing = 47757;
|
||||||
|
public const uint PenanceDamage = 47666;
|
||||||
|
public const uint SPELL_PRIEST_PENANCE_HEALING = 47750;
|
||||||
|
public const uint PowerOfTheDarkSide = 198069;
|
||||||
|
public const uint PowerOfTheDarkSideTint = 225795;
|
||||||
public const uint PowerWordShield = 17;
|
public const uint PowerWordShield = 17;
|
||||||
public const uint PowerWordSolaceEnergize = 129253;
|
public const uint PowerWordSolaceEnergize = 129253;
|
||||||
public const uint PrayerOfMendingAura = 41635;
|
public const uint PrayerOfMendingAura = 41635;
|
||||||
@@ -579,6 +583,114 @@ namespace Scripts.Spells.Priest
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Script] // 47758 - Penance (Channel Damage), 47757 - Penance (Channel Healing)
|
||||||
|
class spell_pri_penance_channeled : AuraScript
|
||||||
|
{
|
||||||
|
public override bool Validate(SpellInfo spellInfo)
|
||||||
|
{
|
||||||
|
return ValidateSpellInfo(SpellIds.PowerOfTheDarkSide);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleOnRemove(AuraEffect aurEff, AuraEffectHandleModes mode)
|
||||||
|
{
|
||||||
|
Unit caster = GetCaster();
|
||||||
|
if (caster != null)
|
||||||
|
caster.RemoveAura(SpellIds.PowerOfTheDarkSide);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Register()
|
||||||
|
{
|
||||||
|
OnEffectRemove.Add(new EffectApplyHandler(HandleOnRemove, 0, AuraType.Dummy, AuraEffectHandleModes.Real));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Script] // 198069 - Power of the Dark Side
|
||||||
|
class spell_pri_power_of_the_dark_side : AuraScript
|
||||||
|
{
|
||||||
|
public override bool Validate(SpellInfo spellInfo)
|
||||||
|
{
|
||||||
|
return ValidateSpellInfo(SpellIds.PowerOfTheDarkSideTint);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleOnApply(AuraEffect aurEff, AuraEffectHandleModes mode)
|
||||||
|
{
|
||||||
|
Unit caster = GetCaster();
|
||||||
|
if (caster != null)
|
||||||
|
caster.CastSpell(caster, SpellIds.PowerOfTheDarkSideTint, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleOnRemove(AuraEffect aurEff, AuraEffectHandleModes mode)
|
||||||
|
{
|
||||||
|
Unit caster = GetCaster();
|
||||||
|
if (caster != null)
|
||||||
|
caster.RemoveAura(SpellIds.PowerOfTheDarkSideTint);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Register()
|
||||||
|
{
|
||||||
|
OnEffectApply.Add(new EffectApplyHandler(HandleOnApply, 0, AuraType.Dummy, AuraEffectHandleModes.Real));
|
||||||
|
OnEffectRemove.Add(new EffectApplyHandler(HandleOnRemove, 0, AuraType.Dummy, AuraEffectHandleModes.Real));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Script] // 47666 - Penance (Damage)
|
||||||
|
class spell_pri_power_of_the_dark_side_damage_bonus : SpellScript
|
||||||
|
{
|
||||||
|
public override bool Validate(SpellInfo spellInfo)
|
||||||
|
{
|
||||||
|
return ValidateSpellInfo(SpellIds.PowerOfTheDarkSide);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleLaunchTarget(uint effIndex)
|
||||||
|
{
|
||||||
|
AuraEffect powerOfTheDarkSide = GetCaster().GetAuraEffect(SpellIds.PowerOfTheDarkSide, 0);
|
||||||
|
if (powerOfTheDarkSide != null)
|
||||||
|
{
|
||||||
|
PreventHitDefaultEffect(effIndex);
|
||||||
|
|
||||||
|
float damageBonus = GetCaster().SpellDamageBonusDone(GetHitUnit(), GetSpellInfo(), (uint)GetEffectValue(), DamageEffectType.SpellDirect, GetEffectInfo());
|
||||||
|
float value = damageBonus + damageBonus * GetEffectVariance();
|
||||||
|
value *= 1.0f + (powerOfTheDarkSide.GetAmount() / 100.0f);
|
||||||
|
value = GetHitUnit().SpellDamageBonusTaken(GetCaster(), GetSpellInfo(), (uint)value, DamageEffectType.SpellDirect);
|
||||||
|
SetHitDamage((int)value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Register()
|
||||||
|
{
|
||||||
|
OnEffectLaunchTarget.Add(new EffectHandler(HandleLaunchTarget, 0, SpellEffectName.SchoolDamage));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Script] // 47750 - Penance (Healing)
|
||||||
|
class spell_pri_power_of_the_dark_side_healing_bonus : SpellScript
|
||||||
|
{
|
||||||
|
public override bool Validate(SpellInfo spellInfo)
|
||||||
|
{
|
||||||
|
return ValidateSpellInfo(SpellIds.PowerOfTheDarkSide);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleLaunchTarget(uint effIndex)
|
||||||
|
{
|
||||||
|
AuraEffect powerOfTheDarkSide = GetCaster().GetAuraEffect(SpellIds.PowerOfTheDarkSide, 0);
|
||||||
|
if (powerOfTheDarkSide != null)
|
||||||
|
{
|
||||||
|
PreventHitDefaultEffect(effIndex);
|
||||||
|
|
||||||
|
float healingBonus = GetCaster().SpellHealingBonusDone(GetHitUnit(), GetSpellInfo(), (uint)GetEffectValue(), DamageEffectType.Heal, GetEffectInfo());
|
||||||
|
float value = healingBonus + healingBonus * GetEffectVariance();
|
||||||
|
value *= 1.0f + (powerOfTheDarkSide.GetAmount() / 100.0f);
|
||||||
|
value = GetHitUnit().SpellHealingBonusTaken(GetCaster(), GetSpellInfo(), (uint)value, DamageEffectType.Heal);
|
||||||
|
SetHitHeal((int)value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Register()
|
||||||
|
{
|
||||||
|
OnEffectLaunchTarget.Add(new EffectHandler(HandleLaunchTarget, 0, SpellEffectName.Heal));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Script] // 194509 - Power Word: Radiance
|
[Script] // 194509 - Power Word: Radiance
|
||||||
class spell_pri_power_word_radiance : SpellScript
|
class spell_pri_power_word_radiance : SpellScript
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_pri_power_of_the_dark_side_damage_bonus';
|
||||||
|
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_pri_power_of_the_dark_side_healing_bonus';
|
||||||
|
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_pri_penance_channeled';
|
||||||
|
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_pri_power_of_the_dark_side';
|
||||||
|
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||||
|
(47666, 'spell_pri_power_of_the_dark_side_damage_bonus'),
|
||||||
|
(47750, 'spell_pri_power_of_the_dark_side_healing_bonus'),
|
||||||
|
(47758, 'spell_pri_penance_channeled'),
|
||||||
|
(47757, 'spell_pri_penance_channeled'),
|
||||||
|
(198069, 'spell_pri_power_of_the_dark_side');
|
||||||
Reference in New Issue
Block a user