public override void DoEffect(Tile t) { selectedCardIds.Clear(); cardsToShuffleBack.Clear(); gemsNeededToShuffleBack = CARDS_TO_SHUFFLE_BACK; List <Card> pickableCards = card.Owner.Hand.GetAllCardsWithTag(Tag.Gem); CompoundQueueableCommand.Builder cmdBuilder = new CompoundQueueableCommand.Builder(); for (int i = 0; i < CARDS_TO_SHUFFLE_BACK; i++) { IQueueableCommand cmd = CardPicker.CreateCommand(pickableCards, 1, 1, "Select a gem to shuffle back. " + gemsNeededToShuffleBack + " remaining", card.Owner, delegate(List <Card> cardList) { pickableCards.RemoveAll(c => c.CardId == cardList[0].CardId); // remove already selected cards cardsToShuffleBack.Add(cardList[0]); gemsNeededToShuffleBack--; }); cmdBuilder.AddCommand(cmd); } cmdBuilder.AddCommand(SingleTileTargetEffect.CreateCommand(Board.Instance.GetAllTilesWithCreatures(card.Owner.OppositePlayer, false), delegate(Tile targetTile) { foreach (Card c in cardsToShuffleBack) { c.MoveToCardPile(card.Owner.Deck, card); } card.Owner.Deck.Shuffle(); targetTile.Creature.TakeDamage(DAMAGE, card); card.Owner.DrawCards(CARDS_DRAWN); })); cmdBuilder.BuildAndQueue(); }
private void DoEffect() { card.Owner.DrawCard(); SingleTileTargetEffect.CreateAndQueue(Board.Instance.GetAllTilesWithCreatures(card.Owner.OppositePlayer, false), delegate(Tile t) { t.Creature.TakeDamage(damageAmount, card); }); }
private void activate() { SingleTileTargetEffect.CreateAndQueue(Board.Instance.GetAllTilesWithCreatures(Owner), delegate(Tile t) { t.Creature.AttackStat += 1; t.Creature.Health += 1; }); }