public override void Play(Player player) { base.Play(player); player.Gain(player._Game.Table[TypeClass.Rats]); CardCollection nonRats = player.Hand[c => c.CardType != TypeClass.Rats]; if (nonRats.Count > 0) { Choice choiceTrash = new Choice("Choose a non-Rats card to trash", this, nonRats, player); ChoiceResult resultTrash = player.MakeChoice(choiceTrash); player.Trash(player.RetrieveCardsFrom(DeckLocation.Hand, resultTrash.Cards)); } else { player.ReturnHand(player.RevealHand()); } }
public override void Play(Player player) { base.Play(player); player.ReturnHand(player.RevealHand()); Currency negativeCurrency = new Currency(-Math.Min(player.Currency.Coin.Value, player.Hand[Cards.Category.Treasure].Count)); player.ReceiveBenefit(this, new CardBenefit() { Currency = negativeCurrency }); }
public override void Play(Player player) { base.Play(player); player.ReturnHand(player.RevealHand()); int plusActions = 0; if (player.CurrentTurn.CardsResolved.Count(c => c.LogicalCard.CardType == TypeClass.Crossroads) == 1) plusActions = 3; player.ReceiveBenefit(this, new CardBenefit() { Cards = player.Hand[Cards.Category.Victory].Count, Actions = plusActions }); }
public override void Play(Player player) { base.Play(player); player.ReturnHand(player.RevealHand()); List<Type> cardTypes = new List<Type>(); foreach (Card card in player.Hand) { Type t = card.CardType; if (!cardTypes.Contains(t)) cardTypes.Add(t); } CardBenefit benefit = new CardBenefit(); if (player.Hand.Count == cardTypes.Count) benefit.Cards = 3; else benefit.Cards = 1; player.ReceiveBenefit(this, benefit); }
public override void Play(Player player) { base.Play(player); player.ReturnHand(player.RevealHand()); Boolean foundUniqueCard = false; player.BeginDrawing(); while (player.CanDraw) { player.Draw(DeckLocation.Revealed); if (player.Hand[player.Revealed.Last().CardType].Count == 0) { foundUniqueCard = true; break; } } player.EndDrawing(); if (foundUniqueCard && player.Revealed.Count > 0) player.AddCardToHand(player.RetrieveCardFrom(DeckLocation.Revealed, player.Revealed.Last())); player.DiscardRevealed(); }
public override void Play(Player player) { base.Play(player); player.ReturnHand(player.RevealHand()); if (player.Hand[Category.Action].Count == 0) player.ReceiveBenefit(this, new CardBenefit() { Cards = 2 }); }