public virtual void UpdateFoodState()
{
if ( m_Food.Added < m_Food.Maintain )
m_Food.State = ( m_Food.State <= 0 ) ? 0 : m_Food.State - 1;
else if ( m_Food.Added >= m_Food.Improve )
m_Food.State = ( m_Food.State >= (int) FoodState.Overfed ) ? (int) FoodState.Overfed : m_Food.State + 1;
m_Food.Maintain = Utility.Random( (int) FoodState.Overfed + 1 - m_Food.State, 2 );
if ( m_Food.State == (int) FoodState.Overfed )
m_Food.Improve = 0;
else
m_Food.Improve = m_Food.Maintain + 2;
m_Food.Added = 0;
}