Пример #1
0
    public void StartRound()
    {
        deck = new Deck();
        round++;
        Move = 1;
        turnPlayerController = playerController;
        turnPlayerController.MakeTurn();

        pileController.OnRoundStart();
        playerController.OnRoundStart();
        computerController.OnRoundStart();

        for (byte i = 0; i < 4; i++)
        {
            pileController.AddCard(deck.DrawCard());
        }

        DealCards();
    }
    //TODO: Some behaviours can move to PileController
    protected virtual void CollectCard(Card card)
    {
        Hand     hand     = Player.Hand;
        HandView handView = PlayerView.HandView;
        Pile     pile     = pileController.Pile;

        hand.Remove(card);
        handView.RemoveCard(card);

        if (pile.CanCollected(card))
        {
            Player.CollectedCards += pile.Count;
            byte collectScore = pileController.Collect(card);
            AddScore(collectScore);
        }
        else
        {
            pileController.AddCard(card);
        }

        pile.IsBusy = false;
        GameManager.Instance.NextTurn();
    }