public virtual void UpdateWaterState()
{
if ( m_Water.Added < m_Water.Maintain )
m_Water.State = ( m_Water.State <= 0 ) ? 0 : m_Water.State - 1;
else if ( m_Water.Added >= m_Water.Improve )
m_Water.State = ( m_Water.State >= (int) WaterState.Strong ) ? (int) WaterState.Strong : m_Water.State + 1;
m_Water.Maintain = Utility.Random( (int) WaterState.Strong + 2 - m_Water.State, 2 );
if ( m_Water.State == (int) WaterState.Strong )
m_Water.Improve = 0;
else
m_Water.Improve = m_Water.Maintain + 2;
m_Water.Added = 0;
}