Esempio n. 1
0
    public void ServerDestroyTrap(NetworkIdentity cardId)
    {
        Card card = cardId.gameObject.GetComponent <Card>();

        arena.RemoveTrap(card);
        discard.AddCard(card);

        RpcDestroyTrap(cardId);
    }
Esempio n. 2
0
 public void UseCard()
 {
     if (selectedCard)
     {
         UseResource(selectedCard.card);
         discard.AddCard(selectedCard.card);
         selectedCard.releaseIndicator();
         hand.RemoveCard(selectedCard.card);
         Destroy(selectedCard.gameObject);
         selectedCard = null;
     }
 }
Esempio n. 3
0
        public void GetThrownCards_FireworkPileWithBlueOneAndDiscardPileWithBlueOne_ReturnsListWith2Elements()
        {
            //// arrange

            // create fake deck that contains blue one cards only
            FakeGameProvider provider = GameProviderFabric.Create(Color.Blue);

            // play blue one card
            var fireworkPile = new FireworkPile(provider);

            fireworkPile.AddCard(new Card(Color.Blue, Rank.One));

            // discard blue one card
            var discardPile = new DiscardPile(provider);

            discardPile.AddCard(new Card(Color.Blue, Rank.One));

            GameProvider gameProvider = new GameProvider();
            var          pileAnalyzer = new PilesAnalyzer(gameProvider);

            //// act
            IReadOnlyList <Card> actual = pileAnalyzer.GetThrownCards(fireworkPile, discardPile);

            Assert.AreEqual(2, actual.Count);
        }
Esempio n. 4
0
        public void GetThrownCards_FireworkPileWithBlueOneAndDiscardPileWithBlueOne_ReturnsListWithBlueOnesOnly()
        {
            //// arrange

            FakeGameProvider gameProvider =
                GameProviderFabric.Create(new List <Color> {
                Color.Blue, Color.Red
            }.AsReadOnly());

            // play blue one card
            var fireworkPile = new FireworkPile(gameProvider);

            fireworkPile.AddCard(new Card(Color.Blue, Rank.One));

            // discard blue one card
            var discardPile = new DiscardPile(gameProvider);

            discardPile.AddCard(new Card(Color.Blue, Rank.One));

            var pileAnalyzer = new PilesAnalyzer(gameProvider);

            //// act
            IReadOnlyList <Card> actual = pileAnalyzer.GetThrownCards(fireworkPile, discardPile);

            Assert.IsTrue(actual.Count > 0 &&
                          actual.All(card => Equals(card, new Card(Color.Blue, Rank.One))));
        }
Esempio n. 5
0
    public void AddCard(Card card)
    {
        discardPile.AddCard(card.name);

        Destroy(topCard.gameObject);
        topCard = card;
        topCard.SetParent(pile);
    }
Esempio n. 6
0
    public void DiscardCard(int index)
    {
        Card        playedOne = cards[index];
        DiscardPile dp        = MainManager.instance.GetDiscardPile();

        dp.AddCard(playedOne);
        cards.RemoveAt(index);
    }
Esempio n. 7
0
        public void GetUniqueCards_DiscardAllYellowOneCards_DoesNotContainYellowCards()
        {
            IGameProvider provider = GameProviderFabric.Create(Color.Yellow);

            var fireworkPile = new FireworkPile(provider);
            var discardPile  = new DiscardPile(provider);

            discardPile.AddCard(new Card(Color.Yellow, Rank.One));
            discardPile.AddCard(new Card(Color.Yellow, Rank.One));
            discardPile.AddCard(new Card(Color.Yellow, Rank.One));

            GameProvider gameProvider = new GameProvider();
            var          pileAnalyzer = new PilesAnalyzer(gameProvider);

            IReadOnlyList <Card> actual = pileAnalyzer.GetUniqueCards(fireworkPile, discardPile);

            Assert.IsFalse(actual.Any(card => card.Color == Color.Yellow));
        }
Esempio n. 8
0
        public DiscardPile Clone()
        {
            var clone = new DiscardPile(this.Provider);

            foreach (var card in Cards)
            {
                clone.AddCard(card);
            }
            return(clone);
        }
Esempio n. 9
0
    public void DiscardAll()
    {
        DiscardPile dp = MainManager.instance.GetDiscardPile();

        foreach (var item in cards)
        {
            dp.AddCard(item);
        }

        cards.Clear();
    }
Esempio n. 10
0
        public void GetCardsWhateverToPlay_DiscardedAllWhiteOne_DoesNotContainWhiteCards()
        {
            FakeGameProvider provider = GameProviderFabric.Create(new List <Color> {
                Color.White, Color.Red
            });

            var fireworkPile = new FireworkPile(provider);
            var discardPile  = new DiscardPile(provider);

            discardPile.AddCard(new Card(Color.White, Rank.One));
            discardPile.AddCard(new Card(Color.White, Rank.One));
            discardPile.AddCard(new Card(Color.White, Rank.One));

            GameProvider gameProvider = new GameProvider();
            var          pileAnalyzer = new PilesAnalyzer(gameProvider);

            IReadOnlyList <Card> actual = pileAnalyzer.GetCardsWhateverToPlay(fireworkPile, discardPile);

            Assert.IsTrue(actual.All(card => card.Color != Color.White));
        }
Esempio n. 11
0
 public void Discard(DiscardPile discardPile)
 {
     this.transform.SetParent(discardPile.transform);
     this.transform.position = discardPile.transform.position;
     discardPile.AddCard(this);
     if (this.cardRow)
     {
         this.cardRow.RemoveCard(this);
     }
     this.beginDragRow = null;
     this.cardRow      = null;
 }
Esempio n. 12
0
    public bool SelectCard(Participant participant, Card card)
    {
        if (participant != participants[actualParticipantIndex])
        {
            return(false);
        }

        if (discardPile.AddCard(card))
        {
            StartCoroutine(nameof(SelectCard), card);

            return(true);
        }

        return(false);
    }
Esempio n. 13
0
        public void GetUniqueCards_DiscardBlueTwoCard_ContainsBlueTwoCard()
        {
            IGameProvider gameProvider = GameProviderFabric.Create(Color.Blue);

            FireworkPile fireworkPile = new FireworkPile(gameProvider);
            DiscardPile  discardPile  = new DiscardPile(gameProvider);

            Card blueTwoCard = new Card(Color.Blue, Rank.Two);

            discardPile.AddCard(blueTwoCard);

            var pileAnalyzer = new PilesAnalyzer(gameProvider);

            IReadOnlyList <Card> actual = pileAnalyzer.GetUniqueCards(fireworkPile, discardPile);

            Assert.IsTrue(actual.Contains(new Card(Color.Blue, Rank.Two)));
        }
Esempio n. 14
0
        public void GetUniqueCards_PlayRedOneAndDiscardRedOne_DoesNotContainRedOne()
        {
            IGameProvider provider = GameProviderFabric.Create(Color.Red);

            var fireworkPile = new FireworkPile(provider);

            fireworkPile.AddCard(new Card(Color.Red, Rank.One));

            var discardedPile = new DiscardPile(provider);

            discardedPile.AddCard(new Card(Color.Red, Rank.One));

            var pileAnalyzer = new PilesAnalyzer(provider);

            IReadOnlyList <Card> actual = pileAnalyzer.GetUniqueCards(fireworkPile, discardedPile);

            Assert.IsFalse(actual.Contains(new Card(Color.Red, Rank.One)));
        }
Esempio n. 15
0
        public void AddCard_Always_ReturnsTrue()
        {
            IGameProvider provider = new FakeGameProvider()
            {
                Colors = new List <Color>()
                {
                    Color.Blue, Color.Green, Color.Red, Color.White
                },
                Ranks = new List <Rank> {
                    Rank.One, Rank.Two, Rank.Three, Rank.Four
                },
            };
            var discardPile = new DiscardPile(provider);

            var blueThreeCard = new Card(Color.Blue, Rank.Three);

            bool added = discardPile.AddCard(blueThreeCard);

            Assert.IsTrue(added);
        }
Esempio n. 16
0
 public void DiscardAttackCard(AttackCard card)
 {
     attackDiscardPile.AddCard(card.name);
     attacksOnHand.Remove(card);
     Destroy(card.gameObject);
 }
Esempio n. 17
0
 public void DiscardLocationCard(LocationCard card)
 {
     locationDiscardPile.AddCard(card.name);
     Destroy(card.gameObject);
 }