public CGameState( EGameModeType mode )
		{
			m_Deck = new CDeck( mode == EGameModeType.Two_Players ? EDeckPopulateDirective.Two_Player : EDeckPopulateDirective.Four_Player );
			Mode = mode;

			Create_Discard_Piles();
			Create_Side_Collections();
		}
        // Public interface
        public IObservedClonable Clone( EGameStateClonePermission permission )
        {
            CDeck clone = new CDeck( EDeckPopulateDirective.None );

            if ( permission == EGameStateClonePermission.Full )
            {
                m_Cards.SimpleClone( clone.m_Cards );
                clone.m_Count = (uint) clone.m_Cards.Count;
            }
            else
            {
                clone.m_Count = m_Count;
            }

            return clone;
        }