Scripts/Spells: Implement Unholy Ground and drop outdated Tightened Grasp talent

Port From (https://github.com/TrinityCore/TrinityCore/commit/1567c34a3e4b4226dff6de5349d03e6402d63975)
This commit is contained in:
hondacrx
2024-02-03 22:07:14 -05:00
parent 4d0362edc6
commit 7cd5c1dedb
+30 -27
View File
@@ -2,6 +2,7 @@
// Licensed under the GNU GENERAL PUBLIC LICENSE. See LICENSE file in the project root for full license information.
using Framework.Constants;
using Game.AI;
using Game.Entities;
using Game.Networking.Packets;
using Game.Scripting;
@@ -56,8 +57,10 @@ namespace Scripts.Spells.DeathKnight
public const uint SludgeBelcherSummon = 212027;
public const uint DeathStrikeEnabler = 89832; // Server Side
public const uint TighteningGrasp = 206970;
public const uint TighteningGraspSlow = 143375;
//public const uint TighteningGraspSlow = 143375; // dropped in BfA
public const uint Unholy = 137007;
public const uint UnholyGroundHaste = 374271;
public const uint UnholyGroundTalent = 374265;
public const uint UnholyVigor = 196263;
public const uint VolatileShielding = 207188;
public const uint VolatileShieldingDamage = 207194;
@@ -300,31 +303,7 @@ namespace Scripts.Spells.DeathKnight
}
[Script] // 43265 - Death and Decay
class spell_dk_death_and_decay : SpellScript
{
public override bool Validate(SpellInfo spellInfo)
{
return ValidateSpellInfo(SpellIds.TighteningGrasp, SpellIds.TighteningGraspSlow);
}
void HandleDummy()
{
if (GetCaster().HasAura(SpellIds.TighteningGrasp))
{
WorldLocation pos = GetExplTargetDest();
if (pos != null)
GetCaster().CastSpell(pos, SpellIds.TighteningGraspSlow, true);
}
}
public override void Register()
{
OnCast.Add(new(HandleDummy));
}
}
[Script] // 43265 - Death and Decay (Aura)
class spell_dk_death_and_decay_AuraScript : AuraScript
class spell_dk_death_and_decay : AuraScript
{
void HandleDummyTick(AuraEffect aurEff)
{
@@ -335,7 +314,7 @@ namespace Scripts.Spells.DeathKnight
public override void Register()
{
OnEffectPeriodic.Add(new(HandleDummyTick, 2, AuraType.PeriodicDummy));
OnEffectPeriodic.Add(new EffectPeriodicHandler(HandleDummyTick, 2, AuraType.PeriodicDummy));
}
}
@@ -891,4 +870,28 @@ namespace Scripts.Spells.DeathKnight
DoEffectCalcAmount.Add(new(CalculateAmount, 1, AuraType.ModIncreaseHealth2));
}
}
[Script] // 43265 - Death and Decay
class at_dk_death_and_decay : AreaTriggerAI
{
public at_dk_death_and_decay(AreaTrigger areatrigger) : base(areatrigger) { }
public override void OnUnitEnter(Unit unit)
{
Unit caster = at.GetCaster();
if (caster != null)
{
if (caster == unit)
{
if (caster.HasAura(SpellIds.UnholyGroundTalent))
caster.CastSpell(caster, SpellIds.UnholyGroundHaste);
}
}
}
public override void OnUnitExit(Unit unit)
{
unit.RemoveAurasDueToSpell(SpellIds.UnholyGroundHaste);
}
}
}