Beispiel #1
0
        private void processBust()
        {
            if (ChestAndKeyBeforeAnchor())
            {
                ScoreZones[(int)CurrentPlayersTurn].AddMultipleCards(
                    DiscardPile.DrawRandomLump(
                        CardsBeforeAnchor()));
            }
            bool anchor = false;

            while (Field.Count > 0)
            {
                Card currentCard = Field[Field.Count - 1];
                if (anchor)
                {
                    ScoreZones[(int)CurrentPlayersTurn].AddCard(currentCard);
                }
                else
                {
                    DiscardPile.AddCard(currentCard);
                }
                Field.Remove(currentCard);
                if (currentCard.Suit == Suites.Anchors)
                {
                    anchor = true;
                }
            }
            SwitchPlayers();
            DoesCannonNeedTarget = false;
            KrakenCannonOverride = false;
        }
Beispiel #2
0
        private void PerformCannonAction(Card target)
        {
            int  opponentsIndex = GetOpponentPlayerIndex();
            Card cardToDestroy  = ScoreZones[opponentsIndex].RemoveCard(target);

            if (cardToDestroy != null)
            {
                DiscardPile.AddCard(cardToDestroy);
                DoesCannonNeedTarget = false;
            }
        }