public void ChangeEncounterDeck(IDeck <IEncounterCard> encounterDeck)
        {
            if (encounterDeck == null)
            {
                throw new ArgumentNullException("encounterDeck");
            }

            if (this.EncounterDeck != null)
            {
                EncounterDeck.ShuffleIn(cardsInStagingArea.Select(x => x.Card));
                cardsInStagingArea.Clear();
                this.EncounterDeck.ShuffleDiscardPileIntoDeck();
            }

            this.EncounterDeck = encounterDeck;
        }