ModernUO/Projects/UOContent/Skills/Tracking/TrackTimer.cs
Kamron Batman 6f5cb00cdd
Updates Combat Packets & Moves Tracking to Content (#298)
- [X] Changes outgoing combat packets
- [X] Moves quest arrow to PlayerMobile and moves quest arrow packets to content.

Bumps release version
2020-11-01 21:33:01 -08:00

50 lines
1.3 KiB
C#

using System;
namespace Server.SkillHandlers
{
public class TrackTimer : Timer
{
private readonly QuestArrow m_Arrow;
private readonly Mobile m_From;
private readonly int m_Range;
private readonly Mobile m_Target;
private int m_LastX, m_LastY;
public TrackTimer(Mobile from, Mobile target, int range, QuestArrow arrow) : base(
TimeSpan.FromSeconds(0.25),
TimeSpan.FromSeconds(2.5)
)
{
m_From = from;
m_Target = target;
m_Range = range;
m_Arrow = arrow;
}
protected override void OnTick()
{
if (!m_Arrow.Running)
{
Stop();
return;
}
if (m_From.NetState == null || m_From.Deleted || m_Target.Deleted || m_From.Map != m_Target.Map ||
!m_From.InRange(m_Target, m_Range) || m_Target.Hidden && m_Target.AccessLevel > m_From.AccessLevel)
{
m_Arrow.Stop();
Stop();
return;
}
if (m_LastX != m_Target.X || m_LastY != m_Target.Y)
{
m_LastX = m_Target.X;
m_LastY = m_Target.Y;
m_Arrow.Update();
}
}
}
}