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; }
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); }
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); } }
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); }
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); }
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); }
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); }
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); }
// 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] + ""); } }