public void Play(TurnContext context) { context.DrawCards(1); context.RemainingActions += 1; context.AddEffect(this, new ApothecaryEffect()); }
public void Play(TurnContext context) { context.DrawCards(1); context.RemainingActions += 1; context.Buys += 1; context.AvailableSpend += 1; }
public void Play(TurnContext context) { var leftPlayer = context.Opponents.FirstOrDefault(); if (leftPlayer != null) { var revealZone = new RevealZone(leftPlayer); leftPlayer.Deck.MoveTop(2, revealZone); revealZone.LogReveal(context.Game.Log); foreach (var card in revealZone.WithDistinctTypes()) { if (card is IActionCard) { context.RemainingActions += 2; } if (card is ITreasureCard) { context.AvailableSpend += 2; } if (card is IVictoryCard) { context.DrawCards(2); } } revealZone.MoveAll(leftPlayer.Discards); } }
public void Play(TurnContext context) { context.RemainingActions += 1; context.DrawCards(1); context.AddLongLivedEffect(new CaravanEffect(this)); }
public override void OnTurnStarting(TurnContext context) { base.OnTurnStarting(context); context.DrawCards(1); context.Game.Log.LogMessage("Caravan draws an extra card"); }
public void Play(TurnContext context) { context.DrawCards(3); if (context.ActivePlayer.Hand.CardCount > 0) { context.AddSingleActivity(Activities.PutCardFromHandOnTopOfDeck(context, this), this); } }
public void Play(TurnContext context) { context.RemainingActions += 2; context.DrawCards(1); var emptyPileCount = context.Game.Bank.EmptyPileCount; if (emptyPileCount >= 1) { context.DrawCards(1); } if (emptyPileCount >= 2) { context.AvailableSpend += 1; context.Buys += 1; } }
public override void OnTurnStarting(TurnContext context) { base.OnTurnStarting(context); context.DrawCards(5); context.RemainingActions += 1; context.Buys += 1; context.Game.Log.LogMessage("Tactician gives {0} +5 cards, +1 action and +1 buy.", context.ActivePlayer.Name); }
public void Play(TurnContext context) { context.DrawCards(4); context.Buys += 1; foreach (var opponent in context.Opponents) { opponent.DrawCards(1); } }
public void Play(TurnContext context) { context.RemainingActions += 2; context.Game.Log.LogRevealHand(context.ActivePlayer); if (context.ActivePlayer.Hand.OfType <IActionCard>().Count() == 0) { context.DrawCards(2); } }
public static IActivity DiscardCardsToDrawCards(TurnContext context, ICard source) { var activity = new SelectCardsActivity( context, "Select any number of cards to discard, you will draw 1 new card for each discard.", SelectionSpecifications.SelectUpToXCards(context.ActivePlayer.Hand.CardCount), source); activity.AfterCardsSelected = cards => { context.DiscardCards(activity.Player, cards); context.DrawCards(cards.Count()); }; return(activity); }
public override void Resolve(TurnContext context, ICard source) { Action discardAction = () => { context.DiscardCards(context.ActivePlayer, context.ActivePlayer.Hand); context.DrawCards(4); DistributeAttacks(context, source); }; Action moneyAction = () => context.AvailableSpend += 2; var activity = Activities.ChooseYesOrNo(context.Game.Log, context.ActivePlayer, "Discard your hand?", source, discardAction, moneyAction); _activities.Add(activity); }
public void Play(TurnContext context) { var activity = Activities.GainACardCostingUpToX(context.Game.Log, context.ActivePlayer, 4, this); activity.AfterCardGained = card => { if (card is IActionCard) { context.RemainingActions += 1; } if (card is ITreasureCard) { context.AvailableSpend += 1; } if (card is IVictoryCard) { context.DrawCards(1); } }; context.AddSingleActivity(activity, this); }
public override void Resolve(TurnContext context, ICard source) { if (context.ActivePlayer.Hand.CardCount > 0) { var activity = new SelectCardsActivity(context, "Select a card to trash", SelectionSpecifications.SelectExactlyXCards(1), source); activity.AfterCardsSelected = cardList => { var cardToTrash = cardList.Single(); var cardsToDraw = cardToTrash.Cost.Money; // Notice the card doesn't say its 2 per potion (if we add cards that cost multiple potions) if (cardToTrash.Cost.Potions > 0) { cardsToDraw += 2; } context.DrawCards(cardsToDraw); context.Trash(context.ActivePlayer, cardToTrash); }; _activities.Add(activity); } }
public void Play(TurnContext context) { context.RemainingActions += 2; context.DrawCards(1); context.Buys += 1; }
public void Play(TurnContext context) { context.DrawCards(2); context.AddEffect(this, new WitchAttack()); }
public void Play(TurnContext context) { context.RemainingActions += 1; context.DrawCards(2); }
public void Play(TurnContext context) { context.DrawCards(1); context.RemainingActions += 1; context.AddEffect(this, new FamiliarAttack()); }
public void Play(TurnContext context) { context.DrawCards(2); context.AddEffect(this, new MasqueradeEffect()); }
public void Play(TurnContext context) { context.DrawCards(3); }
public override void OnTurnStarting(TurnContext context) { base.OnTurnStarting(context); context.DrawCards(2); context.Buys += 1; }
public void Play(TurnContext context) { context.DrawCards(2); context.Buys += 1; context.AddLongLivedEffect(new WharfEffect(this)); }
public void Play(TurnContext context) { context.RemainingActions += 1; context.DrawCards(3); context.AddEffect(this, new WarehouseEffect()); }
public void Play(TurnContext context) { context.DrawCards(3); context.AddEffect(this, new TorturerAttack()); }
public static IActivity DiscardCardsToDrawCards(TurnContext context, ICard source) { var activity = new SelectCardsActivity( context, "Select any number of cards to discard, you will draw 1 new card for each discard.", SelectionSpecifications.SelectUpToXCards(context.ActivePlayer.Hand.CardCount), source); activity.AfterCardsSelected = cards => { context.DiscardCards(activity.Player, cards); context.DrawCards(cards.Count()); }; return activity; }
public void Play(TurnContext context) { context.DrawCards(1); context.RemainingActions += 2; context.AddEffect(this, new MiningVillageEffect(this)); }