From 5e2034de45321f022e7fc33c3d8b8091ead4f635 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Sun, 21 May 2023 17:28:33 -0400 Subject: [PATCH] Scripts/Spells: Update Halo Port From (https://github.com/TrinityCore/TrinityCore/commit/23f42e09ec34ac6285773b70bd53503ea0986ff6) --- Source/Scripts/Spells/Priest.cs | 34 ++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/Source/Scripts/Spells/Priest.cs b/Source/Scripts/Spells/Priest.cs index bde751b56..bd883334d 100644 --- a/Source/Scripts/Spells/Priest.cs +++ b/Source/Scripts/Spells/Priest.cs @@ -38,8 +38,12 @@ namespace Scripts.Spells.Priest public const uint DivineWrath = 40441; public const uint FlashHeal = 2061; public const uint GuardianSpiritHeal = 48153; - public const uint HaloDamage = 120696; - public const uint HaloHeal = 120692; + public const uint HaloHoly = 120517; + public const uint HaloShadow = 120644; + public const uint HaloHolyDamage = 120696; + public const uint HaloHolyHeal = 120692; + public const uint HaloShadowDamage = 390964; + public const uint HaloShadowHeal = 390971; public const uint Heal = 2060; public const uint HolyWordChastise = 88625; public const uint HolyWordSanctify = 34861; @@ -506,7 +510,25 @@ namespace Scripts.Spells.Priest } } - [Script] // 120517 - Halo + [Script] // 120644 - Halo (Shadow) + class spell_pri_halo_shadow : SpellScript + { + void HandleHitTarget(uint effIndex) + { + Unit caster = GetCaster(); + + if ((int)caster.GetPowerType() != GetEffectInfo().MiscValue) + PreventHitDefaultEffect(effIndex); + } + + public override void Register() + { + OnEffectHitTarget.Add(new EffectHandler(HandleHitTarget, 1, SpellEffectName.Energize)); + } + } + + // 120517 - Halo (Holy) + [Script] // 120644 - Halo (Shadow) class areatrigger_pri_halo : AreaTriggerAI { public areatrigger_pri_halo(AreaTrigger areatrigger) : base(areatrigger) { } @@ -517,9 +539,11 @@ namespace Scripts.Spells.Priest if (caster != null) { if (caster.IsValidAttackTarget(unit)) - caster.CastSpell(unit, SpellIds.HaloDamage, new CastSpellExtraArgs(TriggerCastFlags.IgnoreGCD | TriggerCastFlags.IgnoreCastInProgress)); + caster.CastSpell(unit, at.GetSpellId() == SpellIds.HaloShadow ? SpellIds.HaloShadowDamage : SpellIds.HaloHolyDamage, + new CastSpellExtraArgs(TriggerCastFlags.IgnoreGCD | TriggerCastFlags.IgnoreCastInProgress)); else if (caster.IsValidAssistTarget(unit)) - caster.CastSpell(unit, SpellIds.HaloHeal, new CastSpellExtraArgs(TriggerCastFlags.IgnoreGCD | TriggerCastFlags.IgnoreCastInProgress)); + caster.CastSpell(unit, at.GetSpellId() == SpellIds.HaloShadow ? SpellIds.HaloShadowHeal : SpellIds.HaloHolyHeal, + new CastSpellExtraArgs(TriggerCastFlags.IgnoreGCD | TriggerCastFlags.IgnoreCastInProgress)); } } }