public override void Halt_Match( EMatchInstanceState new_state )
        {
            if ( MatchState.State != new_state )
            {
                base.Halt_Match( new_state );

                List< CAbstractMatchDelta > deltas = new List< CAbstractMatchDelta >();
                deltas.Add( new CMatchState.CMatchStateDelta( new_state ) );

                Send_Message_To_Members( new CMatchStateDeltaMessage( deltas ), EPersistenceID.Invalid );

                if ( new_state == EMatchInstanceState.Halted_End_Of_Match || new_state == EMatchInstanceState.Halted_Player_Left )
                {
                    long match_shutdown_time = CServerLogicalThread.CurrentThreadTime + CTimeKeeperThread.Convert_Seconds_To_Internal_Time( MATCH_SHUTDOWN_GRACE_PERIOD );
                    CServerLogicalThread.Instance.TaskScheduler.Add_Scheduled_Task( new CMatchShutdownTask( ID, match_shutdown_time ) );
                }
            }
        }
		public virtual void Halt_Match( EMatchInstanceState new_state )
		{	
			State = new_state;
		}
			public CMatchStateDelta( EMatchInstanceState state )
			{
				State = state;
			}
 public virtual void Halt_Match( EMatchInstanceState new_state )
 {
     MatchState.Halt_Match( new_state );
 }