Example #1
0
        public void Discard_CardInHand_CardOnBottomOfLibrary()
        {
            bool        cardDiscardedEventTriggered = false;
            GameLibrary lib = new GameLibrary();
            SelectableLinkedList <GameCard> cards = new SelectableLinkedList <GameCard>();

            for (int i = 0; i < 29; i++)
            {
                cards.AddFirst(new MockCard());
            }
            lib.Add(cards);
            Hand h = new Hand();

            cards = new SelectableLinkedList <GameCard>();
            cards.AddFirst(new MockCardWithData(42));
            h.Add(cards);
            Player p = new Player(lib, h, null, null);

            p.EventManager = this.EventManager;
            this.EventManager.Register(new Trigger <CardDiscardedEvent>(_ => cardDiscardedEventTriggered = true));
            Engine.AddActor(lib);
            p.Discard(0);
            GameCard c = p.Library.TakeCardAt(29);

            Assert.IsTrue(cardDiscardedEventTriggered);
            Assert.IsTrue(((MockCardWithData)c).data == 42);
        }
        public void PutCardOnBottom_OrderedLibrary_CardOnBottom()
        {
            SelectableLinkedList <GameCard> cards = new SelectableLinkedList <GameCard>();

            for (int i = 0; i < 29; i++)
            {
                cards.AddFirst(new MockCard());
            }
            GameLibrary lib = new GameLibrary();

            lib.Add(cards);
            lib.AddBottom(new MockCardWithData(42));
            lib.TakeCards(29);
            Assert.IsTrue(((MockCardWithData)lib.TakeCards(1)[0]).data == 42);
        }
        public void PutCardAtPosition_NonemptyLibrary_CardAtPosition()
        {
            SelectableLinkedList <GameCard> cards = new SelectableLinkedList <GameCard>();

            for (int i = 0; i < 29; i++)
            {
                cards.AddFirst(new MockCard());
            }
            GameLibrary lib = new GameLibrary();

            lib.Add(cards);
            lib.AddAt(new MockCardWithData(42), 10);
            lib.TakeCards(9);
            Assert.IsTrue(((MockCardWithData)lib.TakeCards(1)[0]).data == 42);
        }
        public void DrawCard_NonemptyLibrary_CardReturned()
        {
            SelectableLinkedList <GameCard> cards = new SelectableLinkedList <GameCard>();

            for (int i = 0; i < 29; i++)
            {
                cards.AddFirst(new MockCard());
            }
            cards.AddFirst(new MockCardWithData(42));
            GameLibrary lib = ConstructLibrary();

            lib.Add(cards);
            GameCard card = lib.Draw();

            Assert.IsTrue(((MockCardWithData)card).data == 42);
        }
        public void ShuffleLibrary_OrderedLibrary_LibraryOrderReversed()
        {
            SelectableLinkedList <GameCard> cards = new SelectableLinkedList <GameCard>();

            for (int i = 0; i < 10; i++)
            {
                cards.AddLast(new MockCardWithData(i + 1));
            }
            GameLibrary lib = new GameLibrary();

            lib.Add(cards);
            lib.Shuffle(_ => 0);
            List <GameCard> newLib = lib.TakeCards(10);

            for (int i = 0; i < newLib.Count; i++)
            {
                Assert.IsTrue(((MockCardWithData)newLib[i]).data == 10 - i);
            }
        }
        public void DrawMultipleCards_NonemptyLibrary_CardsReturned()
        {
            SelectableLinkedList <GameCard> cards = new SelectableLinkedList <GameCard>();

            for (int i = 0; i < 28; i++)
            {
                cards.AddFirst(new MockCard());
            }
            cards.AddFirst(new MockCardWithData(42));
            cards.AddFirst(new MockCardWithData(42));
            GameLibrary lib = ConstructLibrary();

            lib.Add(cards);
            List <GameCard> returnedCards = lib.Draw(2);

            foreach (GameCard card in returnedCards)
            {
                Assert.IsTrue(((MockCardWithData)card).data == 42);
            }
        }
Example #7
0
        public void DrawACard_EmptyHandNonemptyLibrary_CardsInHand()
        {
            bool cardDrawnEventTriggered = false;

            GameLibrary lib = new GameLibrary();
            SelectableLinkedList <GameCard> cards = new SelectableLinkedList <GameCard>();

            cards.AddFirst(new MockCardWithData(42));
            lib.Add(cards);
            Hand   h = new Hand();
            Player p = new Player(lib, h, null, null);

            p.EventManager = this.EventManager;
            this.EventManager.Register(new Trigger <CardDrawnEvent>(_ => cardDrawnEventTriggered = true));
            Engine.AddActor(p);
            p.Draw(1);
            GameCard c = p.Hand.TakeCards(1)[0];

            Assert.IsTrue(cardDrawnEventTriggered);
            Assert.IsTrue(lib.IsEmpty());
            Assert.IsTrue(((MockCardWithData)c).data == 42);
        }
Example #8
0
        void Start()
        {
            UnityEngine.Object.DontDestroyOnLoad(this);

            var    p1lib  = new GameLibrary();
            Player p      = new Player(p1lib, new Hand(), new ManaStorage(), new GameLevelRewards(Mana.Arcane));
            var    cards1 = CreatePlayer1Deck();

            p1lib.Add(cards1);
            p1lib.Shuffle();
            p.Name          = "player 1";
            this.mainPlayer = p;
            this.AddPlayer(p);

            var p2lib = new GameLibrary();

            p = new Player(p2lib, new Hand(), new ManaStorage(), new GameLevelRewards(Mana.Fury));
            var cards2 = CreatePlayer2Deck();

            p2lib.Add(cards2);
            p2lib.Shuffle();
            p.Name = "player 2";
            this.AddPlayer(p);
        }