Convert movement, actions (lift/use), combat, and spells to use Core.TickCount and avoid DateTime caveats (performance, system time dependency, etc) Refactor DateTime.Now to DateTime.UtcNow Add LOS check for Iron Maiden addon
103 lines
No EOL
2.3 KiB
C#
103 lines
No EOL
2.3 KiB
C#
using System;
|
|
using System.Collections;
|
|
using Server;
|
|
using Server.Accounting;
|
|
using Server.Engines;
|
|
using Server.Engines.Help;
|
|
|
|
namespace Server.Engines.Reports
|
|
{
|
|
public abstract class BaseInfo : IComparable
|
|
{
|
|
private static TimeSpan m_SortRange;
|
|
|
|
public static TimeSpan SortRange{ get{ return m_SortRange; } set{ m_SortRange = value; } }
|
|
|
|
private string m_Account;
|
|
private string m_Display;
|
|
private PageInfoCollection m_Pages;
|
|
|
|
public string Account{ get{ return m_Account; } set{ m_Account = value; } }
|
|
public PageInfoCollection Pages{ get{ return m_Pages; } set{ m_Pages = value; } }
|
|
|
|
public string Display
|
|
{
|
|
get
|
|
{
|
|
if ( m_Display != null )
|
|
return m_Display;
|
|
|
|
if ( m_Account != null )
|
|
{
|
|
IAccount acct = Accounts.GetAccount( m_Account );
|
|
|
|
if ( acct != null )
|
|
{
|
|
Mobile mob = null;
|
|
|
|
for ( int i = 0; i < acct.Length; ++i )
|
|
{
|
|
Mobile check = acct[i];
|
|
|
|
if ( check != null && (mob == null || check.AccessLevel > mob.AccessLevel) )
|
|
mob = check;
|
|
}
|
|
|
|
if ( mob != null && mob.Name != null && mob.Name.Length > 0 )
|
|
return ( m_Display = mob.Name );
|
|
}
|
|
}
|
|
|
|
return ( m_Display = m_Account );
|
|
}
|
|
}
|
|
|
|
public int GetPageCount( PageResolution res, DateTime min, DateTime max )
|
|
{
|
|
return StaffHistory.GetPageCount( m_Pages, res, min, max );
|
|
}
|
|
|
|
public BaseInfo( string account )
|
|
{
|
|
m_Account = account;
|
|
m_Pages = new PageInfoCollection();
|
|
}
|
|
|
|
public void Register( PageInfo page )
|
|
{
|
|
m_Pages.Add( page );
|
|
}
|
|
|
|
public void Unregister( PageInfo page )
|
|
{
|
|
m_Pages.Remove( page );
|
|
}
|
|
|
|
public int CompareTo( object obj )
|
|
{
|
|
BaseInfo cmp = obj as BaseInfo;
|
|
|
|
int v = cmp.GetPageCount( cmp is StaffInfo ? PageResolution.Handled : PageResolution.None, DateTime.UtcNow - m_SortRange, DateTime.UtcNow )
|
|
- this.GetPageCount( this is StaffInfo ? PageResolution.Handled : PageResolution.None, DateTime.UtcNow - m_SortRange, DateTime.UtcNow );
|
|
|
|
if ( v == 0 )
|
|
v = String.Compare( this.Display, cmp.Display );
|
|
|
|
return v;
|
|
}
|
|
}
|
|
|
|
public class StaffInfo : BaseInfo
|
|
{
|
|
public StaffInfo( string account ) : base( account )
|
|
{
|
|
}
|
|
}
|
|
|
|
public class UserInfo : BaseInfo
|
|
{
|
|
public UserInfo( string account ) : base( account )
|
|
{
|
|
}
|
|
}
|
|
} |