Scripts/Spells: Implemented Wind Rush Totem

Port From (https://github.com/TrinityCore/TrinityCore/commit/b1c0d069e1eba2f7b43ada8032b954bff630b68d)
This commit is contained in:
hondacrx
2021-10-03 20:14:21 -04:00
parent 03a2d9a706
commit 1de76c0662
2 changed files with 73 additions and 0 deletions
+62
View File
@@ -17,6 +17,7 @@
using Framework.Constants;
using Framework.Dynamic;
using Game.AI;
using Game.Entities;
using Game.Maps;
using Game.Scripting;
@@ -69,6 +70,7 @@ namespace Scripts.Spells.Shaman
public const uint TotemicPowerAttackPower = 28826;
public const uint TotemicPowerArmor = 28827;
public const uint WindfuryAttack = 25504;
public const uint WindRush = 192082;
//Misc
public const uint HunterInsanity = 95809;
@@ -1039,4 +1041,64 @@ namespace Scripts.Spells.Shaman
OnEffectProc.Add(new EffectProcHandler(HandleEffectProc, 0, AuraType.Dummy));
}
}
// 192078 - Wind Rush Totem (Spell)
[Script] // 12676 - AreaTriggerId
class areatrigger_sha_wind_rush_totem : AreaTriggerEntityScript
{
public areatrigger_sha_wind_rush_totem() : base("areatrigger_sha_wind_rush_totem") { }
class areatrigger_sha_wind_rush_totemAI : AreaTriggerAI
{
static int REFRESH_TIME = 4500;
int _refreshTimer;
public areatrigger_sha_wind_rush_totemAI(AreaTrigger areatrigger) : base(areatrigger)
{
_refreshTimer = REFRESH_TIME;
}
public override void OnUpdate(uint diff)
{
_refreshTimer -= (int)diff;
if (_refreshTimer <= 0)
{
Unit caster = at.GetCaster();
if (caster != null)
{
foreach (ObjectGuid guid in at.GetInsideUnits())
{
Unit unit = Global.ObjAccessor.GetUnit(caster, guid);
if (unit != null)
{
if (!caster.IsFriendlyTo(unit))
continue;
caster.CastSpell(unit, SpellIds.WindRush, true);
}
}
}
_refreshTimer += REFRESH_TIME;
}
}
public override void OnUnitEnter(Unit unit)
{
Unit caster = at.GetCaster();
if (caster != null)
{
if (!caster.IsFriendlyTo(unit))
return;
caster.CastSpell(unit, SpellIds.WindRush, true);
}
}
}
public override AreaTriggerAI GetAI(AreaTrigger areatrigger)
{
return new areatrigger_sha_wind_rush_totemAI(areatrigger);
}
}
}