using System;
using System.Collections;
using Server;
using Server.Network;
namespace Server.Misc
{
public class AttackMessage
{
private const string AggressorFormat = "You are attacking {0}!";
private const string AggressedFormat = "{0} is attacking you!";
private const int Hue = 0x22;
private static TimeSpan Delay = TimeSpan.FromMinutes( 1.0 );
public static void Initialize()
{
EventSink.AggressiveAction += new AggressiveActionEventHandler( EventSink_AggressiveAction );
}
public static void EventSink_AggressiveAction( AggressiveActionEventArgs e )
{
Mobile aggressor = e.Aggressor;
Mobile aggressed = e.Aggressed;
if ( !aggressor.Player || !aggressed.Player )
return;
if ( !CheckAggressions( aggressor, aggressed ) )
{
aggressor.LocalOverheadMessage( MessageType.Regular, Hue, true, String.Format( AggressorFormat, aggressed.Name ) );
aggressed.LocalOverheadMessage( MessageType.Regular, Hue, true, String.Format( AggressedFormat, aggressor.Name ) );
}
}
public static bool CheckAggressions( Mobile m1, Mobile m2 )
{
AggressorInfo info = m1.FindAggressorByAttacker(m2);
if (info != null && Core.Now < (info.LastCombatTime + Delay))
return true;
info = m2.FindAggressorByAttacker(m1);
if (info != null && Core.Now < (info.LastCombatTime + Delay))
return true;
return false;
}
}
}