Esempio n. 1
0
    public Dictionary <CardGroup, List <Card> > RandomlyAssignCardsToGroups()
    {
        Dictionary <CardGroup, List <Card> > groupsOfCards = new Dictionary <CardGroup, List <Card> >();

        CardGroup[] groups            = isOpponent ? CardGroup.OpponentGroups() : CardGroup.PlayerGroups();
        List <Card> copyOfCardsInHand = cardsInHand.ToList();

        foreach (CardGroup group in groups)
        {
            groupsOfCards.Add(group, new List <Card>());

            List <Card> cardsNotWizard = copyOfCardsInHand.Where(card => !card.cardData.IsWizard).ToList();
            Card        randomCard     = cardsNotWizard[Random.Range(0, cardsNotWizard.Count)];

            groupsOfCards[group].Add(randomCard);
            copyOfCardsInHand.Remove(randomCard);
        }

        foreach (Card card in copyOfCardsInHand)
        {
            CardGroup randomGroup;

            do
            {
                randomGroup = groups[Random.Range(0, groups.Length)];
            } while (!CardGroup.IsValidForGroup(groupsOfCards[randomGroup], card).Item1);

            groupsOfCards[randomGroup].Add(card);
        }

        return(groupsOfCards);
    }