public void PlayPrepareRound()
        {
            DoActionForAllPlayersInOrder((player) =>
            {
                var availablePlayerOptions = new List <CardActions>()
                {
                    CardActions.EquiptCardFromBackpack,
                    CardActions.UnequipCard,
                    CardActions.DoNothing
                };

                var cardAction = player.PerformCardAction(GameplayEvent.PreparePhase, availablePlayerOptions, this);

                switch (cardAction.Item1)
                {
                case CardActions.EquiptCardFromBackpack:
                    var playerSelectedACard = cardAction.Item2 != null;

                    if (playerSelectedACard)
                    {
                        var cardFromBackpack = player.Backpack.RemoveFromBackpack(cardAction.Item2);

                        if (cardFromBackpack != null)
                        {
                            EquipCardForPlayer(player, cardFromBackpack);
                        }
                    }
                    break;

                case CardActions.UnequipCard:
                    var playerSelectedACardToUnequipt = cardAction.Item2 != null;

                    if (playerSelectedACardToUnequipt)
                    {
                        var unequiptCard = player.UnequiptCard(cardAction.Item2);

                        if (unequiptCard != null)
                        {
                            DiscardDeck.AddToDeck(unequiptCard);
                        }
                    }
                    break;
                }
            });
        }