ModernUO/Projects/UOContent/Items/Staff Only/Staff Hide Crystals/FlameStormHide.cs
2021-08-27 19:09:55 -07:00

69 lines
1.8 KiB
C#

using System;
namespace Server.Items
{
[Serializable(0)]
public partial class FlamestormHide : BaseStaffHide
{
public override string DefaultName => "Firestorm Hide";
public override bool CastHide => false;
public override void HideEffects(Mobile from)
{
if (from is not { Deleted: false })
{
return;
}
if (from.Hidden)
{
from.HueMod = 0;
from.BodyMod = 15;
from.Hue = 0;
from.BodyValue = 15;
from.Hidden = false;
from.Animate(12, 10, 0, true, false, 0);
from.PlaySound(273);
Timer.StartTimer(TimeSpan.FromSeconds(1.5), () => AnimStop_Callback(from, false));
}
else
{
from.Animate(17, 4, 1, true, false, 0);
Timer.StartTimer(TimeSpan.FromSeconds(0.75), () => CastStop_Callback(from));
}
}
private void AnimStop_Callback(Mobile from, bool toHide)
{
from.HueMod = -1;
from.BodyMod = -1;
if (toHide)
{
from.Hidden = true;
}
else
{
from.Animate(17, 4, 1, false, false, 0);
}
OnEndHideEffects(from);
}
private void CastStop_Callback(Mobile from)
{
from.HueMod = 0;
from.BodyValue = 15;
from.Animate(12, 8, 1, false, false, 0);
from.PlaySound(274);
Timer.StartTimer(TimeSpan.FromSeconds(1.5), () => AnimStop_Callback(from, true));
}
[Constructible]
public FlamestormHide() : base(1160)
{
}
}
}