Scripts/Spells: Implement Dark Reprimand

Port From (https://github.com/TrinityCore/TrinityCore/commit/b53de1eb4bce8b4a7db823f3273a7fd82abe7fb6)
This commit is contained in:
hondacrx
2023-05-21 17:40:27 -04:00
parent 5e2034de45
commit d2b8867bff
+28 -8
View File
@@ -28,6 +28,11 @@ namespace Scripts.Spells.Priest
public const uint BlessedHealing = 70772; public const uint BlessedHealing = 70772;
public const uint BodyAndSoul = 64129; public const uint BodyAndSoul = 64129;
public const uint BodyAndSoulSpeed = 65081; public const uint BodyAndSoulSpeed = 65081;
public const uint DarkReprimand = 400169;
public const uint DarkReprimandChannelDamage = 373129;
public const uint DarkReprimandChannelHealing = 400171;
public const uint DarkReprimandDamage = 373130;
public const uint DarkReprimandHealing = 400187;
public const uint DivineBlessing = 40440; public const uint DivineBlessing = 40440;
public const uint DivineStarHoly = 110744; public const uint DivineStarHoly = 110744;
public const uint DivineStarShadow = 122121; public const uint DivineStarShadow = 122121;
@@ -691,17 +696,28 @@ namespace Scripts.Spells.Priest
} }
} }
[Script] // 47540 - Penance [Script("spell_pri_penance", SpellIds.PenanceChannelDamage, SpellIds.PenanceChannelHealing)] // 47540 - Penance
[Script("spell_pri_dark_reprimand", SpellIds.DarkReprimandChannelDamage, SpellIds.DarkReprimandChannelHealing)] // 400169 - Dark Reprimand
class spell_pri_penance : SpellScript class spell_pri_penance : SpellScript
{ {
uint _damageSpellId;
uint _healingSpellId;
spell_pri_penance(uint damageSpellId, uint healingSpellId)
{
_damageSpellId = damageSpellId;
_healingSpellId = healingSpellId;
}
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
return ValidateSpellInfo(SpellIds.PenanceChannelDamage, SpellIds.PenanceChannelHealing); return ValidateSpellInfo(_damageSpellId, _healingSpellId);
} }
SpellCastResult CheckCast() SpellCastResult CheckCast()
{ {
Unit caster = GetCaster(); Unit caster = GetCaster();
Unit target = GetExplTargetUnit(); Unit target = GetExplTargetUnit();
if (target) if (target)
{ {
@@ -720,13 +736,14 @@ namespace Scripts.Spells.Priest
void HandleDummy(uint effIndex) void HandleDummy(uint effIndex)
{ {
Unit caster = GetCaster(); Unit caster = GetCaster();
Unit target = GetHitUnit(); Unit target = GetHitUnit();
if (target) if (target)
{ {
if (caster.IsFriendlyTo(target)) if (caster.IsFriendlyTo(target))
caster.CastSpell(target, SpellIds.PenanceChannelHealing, new CastSpellExtraArgs().SetTriggeringSpell(GetSpell())); caster.CastSpell(target, _healingSpellId, new CastSpellExtraArgs().SetTriggeringSpell(GetSpell()));
else else
caster.CastSpell(target, SpellIds.PenanceChannelDamage, new CastSpellExtraArgs().SetTriggeringSpell(GetSpell())); caster.CastSpell(target, _damageSpellId, new CastSpellExtraArgs().SetTriggeringSpell(GetSpell()));
} }
} }
@@ -737,8 +754,9 @@ namespace Scripts.Spells.Priest
} }
} }
[Script] // 47758 - Penance (Channel Damage), 47757 - Penance (Channel Healing) // 47758 - Penance (Channel Damage), 47757 - Penance (Channel Healing)
class spell_pri_penance_channeled : AuraScript [Script] // 373129 - Dark Reprimand (Channel Damage), 400171 - Dark Reprimand (Channel Healing)
class spell_pri_penance_or_dark_reprimand_channeled : AuraScript
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
{ {
@@ -787,7 +805,8 @@ namespace Scripts.Spells.Priest
} }
} }
[Script] // 47666 - Penance (Damage) // 47666 - Penance (Damage)
[Script] // 373130 - Dark Reprimand (Damage)
class spell_pri_power_of_the_dark_side_damage_bonus : SpellScript class spell_pri_power_of_the_dark_side_damage_bonus : SpellScript
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)
@@ -816,7 +835,8 @@ namespace Scripts.Spells.Priest
} }
} }
[Script] // 47750 - Penance (Healing) // 47750 - Penance (Healing)
[Script] // 400187 - Dark Reprimand (Healing)
class spell_pri_power_of_the_dark_side_healing_bonus : SpellScript class spell_pri_power_of_the_dark_side_healing_bonus : SpellScript
{ {
public override bool Validate(SpellInfo spellInfo) public override bool Validate(SpellInfo spellInfo)