protected override void OnTick()
{
if( m_Drunk.Deleted || m_Drunk.Map == Map.Internal )
{
Stop();
m_Table.Remove( m_Drunk );
}
else if( m_Drunk.Alive )
{
if( m_Drunk.BAC > 60 )
m_Drunk.BAC = 60;
// chance to get sober
if( 10 > Utility.Random( 100 ) )
--m_Drunk.BAC;
// lose some stats
m_Drunk.Stam -= 1;
m_Drunk.Mana -= 1;
if( Utility.Random( 1, 4 ) == 1 )
{
if( !m_Drunk.Mounted )
{
// turn in a random direction
m_Drunk.Direction = (Direction)Utility.Random( 8 );
// heave
m_Drunk.Animate( 32, 5, 1, true, false, 0 );
}
// *hic*
m_Drunk.PublicOverheadMessage( Network.MessageType.Regular, 0x3B2, 500849 );
}
if( m_Drunk.BAC <= 0 )
{
Stop();
m_Table.Remove( m_Drunk );
m_Drunk.SendLocalizedMessage( 500850 ); // You feel sober.
}
}
}
}