Exemplo n.º 1
0
    public void SetPosition()
    {
        BattlePile <Card> newCards = new BattlePile <Card>();

        List <Card>[] cardLists = new List <Card>[5] {
            new List <Card>(), new List <Card>(), new List <Card>(), new List <Card>(), new List <Card>()
        };
        player.battlePile.Shuffle();
        foreach (Card card in player.battlePile)
        {
            for (int i = 0; i < 5; i++)
            {
                if (card != null)
                {
                    if (card.GetPositionTag().Equals(i))
                    {
                        cardLists[i].Add(card);
                    }
                }
            }
        }
        foreach (var cardList in cardLists)
        {
            if (cardList != null && cardList.Count > 0)
            {
                foreach (var card in cardList)
                {
                    newCards.Add(card);
                }
            }
        }

        player.battlePile = newCards;
    }
Exemplo n.º 2
0
        public void Test_BattlePile_AddCard(int numberOfCards)
        {
            BattlePile battlePile = new BattlePile();

            for (int i = 0; i < numberOfCards; i++)
            {
                battlePile.AddCard(new Card(CardSuit.DIAMOND, CardRank.RANK_2));
            }

            Assert.True(numberOfCards == battlePile.NumberOfCards);
        }
Exemplo n.º 3
0
        public void Test_BattlePile_Properities(int numberOfCards)
        {
            List <Card> cards = Enumerable.Repeat(new Card(CardSuit.CLUB, CardRank.RANK_10), numberOfCards).ToList();

            BattlePile battlePile = new BattlePile(cards);

            if (numberOfCards == 0)
            {
                Assert.Null(battlePile.TopCard);
            }
            else
            {
                Assert.Equal(cards[numberOfCards - 1], battlePile.TopCard);
            }
        }
Exemplo n.º 4
0
    public static bool AddNewMinionAndGain11(GameEvent gameEvent)
    {
        BattlePile <Card> battlePile = gameEvent.player.board.players[1].battlePile;

        if (battlePile.Count < Const.numOfBattlePile)
        {
            Card newCard =
                (Card)gameEvent.player.board.cardPile.RandomlyGetCardByFilterAndReduceIt(card => card.star <= gameEvent.player.star &&
                                                                                         card.IsMinionType(gameEvent.targetCard.type)).NewCard();
            newCard.effectsStay.Add(new BodyPlusEffect(1, 1));
            battlePile[battlePile.GetEmptyPos()] = newCard;
            return(true);
        }
        return(false);
    }
Exemplo n.º 5
0
    public static bool RandomlyAddMinionOnSaleToYouHand(GameEvent gameEvent)
    {
        BattlePile <Card> cards = gameEvent.player.board.players[1].battlePile;

        if (cards.Count != 0)
        {
            Card card = cards.GetOneRandomly();
            if (card != null && gameEvent.player.handPile.Count < Const.numOfHandPile)
            {
                gameEvent.player.board.AddToHandPile(card);
                gameEvent.player.board.players[1].RemoveMinionFromBattlePile(card);
            }
        }
        gameEvent.player.hero.cost = CardBuilder.GetCard(gameEvent.player.hero.id).cost;
        return(true);
    }
Exemplo n.º 6
0
    public static bool AddAllMinionOnSaleToYouHand(GameEvent gameEvent)
    {
        BattlePile <Card> cards = gameEvent.player.board.players[1].battlePile;

        if (cards.Count != 0)
        {
            foreach (Card card in cards)
            {
                if (card != null && gameEvent.player.handPile.Count < Const.numOfHandPile)
                {
                    gameEvent.player.board.AddToHandPile(card);
                    gameEvent.player.board.players[1].RemoveMinionFromBattlePile(card);
                }
            }
        }
        return(true);
    }
Exemplo n.º 7
0
    public new object Clone()
    {
        BattlePile <T> newPile = new BattlePile <T>(fixedNumber);

        for (int i = 0; i < fixedNumber; i++)
        {
            if (this[i] is ICloneable card)
            {
                newPile[i] = ((T)card.Clone());
            }
            else
            {
                newPile[i] = this[i];
            }
        }
        return(newPile);
    }
Exemplo n.º 8
0
        public void Test_BattlePile_GetAll(int numberOfCards)
        {
            List <Card> stackData = StackData();
            List <Card> cards     = new List <Card>();

            for (int i = 0; i < numberOfCards; i++)
            {
                cards.Add(stackData[i % stackData.Count]);
            }

            BattlePile battlePile = new BattlePile(cards);

            List <Card> allBattlePile = battlePile.RemoveAll();               //  GetAll removes the elements from the stack

            Assert.True(cards.Count == allBattlePile.Count);
            cards.Reverse();                                //  Stack is LIFO so reverse list to get read order
            Assert.Equal <Card>(cards, allBattlePile);
        }
Exemplo n.º 9
0
    // Start is called before the first frame update
    void Start()
    {
        BattlePile <object> battlePile = new BattlePile <object>(7);

        battlePile[0] = 0;
        battlePile[1] = 1;
        battlePile[2] = 2;
        battlePile[3] = 3;
        battlePile[4] = null;
        battlePile[5] = 5;
        battlePile[6] = null;

        battlePile.AddMinion(10, 3);

        for (int i = 0; i < battlePile.fixedNumber; i++)
        {
            Debug.Log(battlePile[i] + "");
        }
    }