Example #1
0
    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();
    }
Example #2
0
 private void DoEffect()
 {
     card.Owner.DrawCard();
     SingleTileTargetEffect.CreateAndQueue(Board.Instance.GetAllTilesWithCreatures(card.Owner.OppositePlayer, false), delegate(Tile t)
     {
         t.Creature.TakeDamage(damageAmount, card);
     });
 }
Example #3
0
 private void activate()
 {
     SingleTileTargetEffect.CreateAndQueue(Board.Instance.GetAllTilesWithCreatures(Owner), delegate(Tile t)
     {
         t.Creature.AttackStat += 1;
         t.Creature.Health     += 1;
     });
 }