private void GainCopperAndCurse(Player player, TurnContext context) { var gainUtil = new GainUtility(context, player); gainUtil.Gain <Copper>(); gainUtil.Gain <Curse>(); }
public void Play(TurnContext context) { if (context.ActivePlayer.Hand.CardCount > 0) { var gainUtility = new GainUtility(context, context.ActivePlayer); var activity = Activities.SelectACardToTrash(context, context.ActivePlayer, this, card => { if (card is IActionCard) { gainUtility.Gain <Duchy>(); } if (card is ITreasureCard) { gainUtility.Gain <Transmute>(); } if (card is IVictoryCard) { gainUtility.Gain <Gold>(); } }); context.AddSingleActivity(activity, this); } }
public void Play(TurnContext context) { var gainUtil = new GainUtility(context, context.ActivePlayer); gainUtil.Gain <Silver>(card => context.ActivePlayer.Deck.MoveToTop(card)); context.AddEffect(this, new BureaucratAttack()); }
public override void Attack(Player victim, TurnContext context, ICard source) { if (victim.Deck.CardCount + victim.Discards.CardCount > 0) victim.Deck.MoveTop(1, victim.Discards); var gainUtil = new GainUtility(context, victim); gainUtil.Gain<Curse>(c => victim.Deck.MoveToTop(c)); }
public override void Attack(Player player, TurnContext context, ICard source) { if (player.Deck.CardCount + player.Discards.CardCount > 0) player.Deck.MoveTop(1, player.Discards); var gainUtil = new GainUtility(context, player); gainUtil.Gain<Curse>(c => player.Deck.MoveToTop(c)); }
public override void Attack(Player victim, TurnContext context, ICard source) { if (victim.Deck.CardCount + victim.Discards.CardCount > 0) { victim.Deck.MoveTop(1, victim.Discards); } var gainUtil = new GainUtility(context, victim); gainUtil.Gain <Curse>(c => victim.Deck.MoveToTop(c)); }
public void Play(TurnContext context) { context.Trash(context.ActivePlayer, this); var otherMap = context.ActivePlayer.Hand.OfType<TreasureMap>().FirstOrDefault(); if(otherMap != null) { context.Trash(context.ActivePlayer, otherMap); var gainUtil = new GainUtility(context, context.ActivePlayer); var deck = context.ActivePlayer.Deck; gainUtil.Gain<Gold>(deck.MoveToTop); gainUtil.Gain<Gold>(deck.MoveToTop); gainUtil.Gain<Gold>(deck.MoveToTop); gainUtil.Gain<Gold>(deck.MoveToTop); } }
public void Play(TurnContext context) { context.Trash(context.ActivePlayer, this); var otherMap = context.ActivePlayer.Hand.OfType <TreasureMap>().FirstOrDefault(); if (otherMap != null) { context.Trash(context.ActivePlayer, otherMap); var gainUtil = new GainUtility(context, context.ActivePlayer); var deck = context.ActivePlayer.Deck; gainUtil.Gain <Gold>(deck.MoveToTop); gainUtil.Gain <Gold>(deck.MoveToTop); gainUtil.Gain <Gold>(deck.MoveToTop); gainUtil.Gain <Gold>(deck.MoveToTop); } }
public void Play(TurnContext context) { if(context.ActivePlayer.Hand.CardCount > 0) { var gainUtility = new GainUtility(context, context.ActivePlayer); var activity = Activities.SelectACardToTrash(context, context.ActivePlayer, this, card => { if (card is IActionCard) gainUtility.Gain<Duchy>(); if (card is ITreasureCard) gainUtility.Gain<Transmute>(); if (card is IVictoryCard) gainUtility.Gain<Gold>(); }); context.AddSingleActivity(activity, this); } }
public override void Resolve(TurnContext context, ICard source) { var cardCount = context.ActivePlayer.Hand.CardCount; var gainUtil = new GainUtility(context, context.ActivePlayer); if (cardCount < 2) { context.TrashAll(context.ActivePlayer, context.ActivePlayer.Hand); } else if (cardCount == 2) { context.TrashAll(context.ActivePlayer, context.ActivePlayer.Hand); gainUtil.Gain <Silver>(context.ActivePlayer.Hand); } else { var activity = Activities.SelectXCardsToTrash(context, context.ActivePlayer, 2, source, () => gainUtil.Gain <Silver>(context.ActivePlayer.Hand)); _activities.Add(activity); } }
public override void Resolve(TurnContext context, ICard source) { var cardCount = context.ActivePlayer.Hand.CardCount; var gainUtil = new GainUtility(context, context.ActivePlayer); if(cardCount < 2) { context.TrashAll(context.ActivePlayer, context.ActivePlayer.Hand); } else if(cardCount == 2) { context.TrashAll(context.ActivePlayer, context.ActivePlayer.Hand); gainUtil.Gain<Silver>(context.ActivePlayer.Hand); } else { var activity = Activities.SelectXCardsToTrash(context, context.ActivePlayer, 2, source, () => gainUtil.Gain<Silver>(context.ActivePlayer.Hand)); _activities.Add(activity); } }
public void Play(TurnContext context) { var gainUtility = new GainUtility(context, context.ActivePlayer); Action gainSilver = () => gainUtility.Gain<Silver>(context.ActivePlayer.Hand); Action gainGold = () => gainUtility.Gain<Gold>(context.ActivePlayer.Hand); if (context.ActivePlayer.Hand.OfType<Province>().Any()) { var activity = Activities.ChooseYesOrNo( context.Game.Log, context.ActivePlayer, "Reveal a Province to gain a Gold?", this, gainGold, gainSilver); context.AddSingleActivity(activity, this); } else { gainSilver(); } }
public void Play(TurnContext context) { var gainUtility = new GainUtility(context, context.ActivePlayer); Action gainSilver = () => gainUtility.Gain <Silver>(context.ActivePlayer.Hand); Action gainGold = () => gainUtility.Gain <Gold>(context.ActivePlayer.Hand); if (context.ActivePlayer.Hand.OfType <Province>().Any()) { var activity = Activities.ChooseYesOrNo( context.Game.Log, context.ActivePlayer, "Reveal a Province to gain a Gold?", this, gainGold, gainSilver); context.AddSingleActivity(activity, this); } else { gainSilver(); } }
public void Play(TurnContext context) { var gainUtil = new GainUtility(context, context.ActivePlayer); gainUtil.Gain<Silver>(card => context.ActivePlayer.Deck.MoveToTop(card)); context.AddEffect(this, new BureaucratAttack()); }
private void GainCopperAndCurse(Player player, TurnContext context) { var gainUtil = new GainUtility(context, player); gainUtil.Gain<Copper>(); gainUtil.Gain<Curse>(); }
public override void Attack(Player victim, TurnContext context, ICard source) { var utility = new GainUtility(context, victim); utility.Gain(_pile); }
public override void Attack(Player victim, TurnContext context, ICard source) { var utility = new GainUtility(context, victim); utility.Gain(_pile); }
public override void Attack(Player player, TurnContext context, ICard source) { var gainUtil = new GainUtility(context, player); gainUtil.Gain<Curse>(); }
public override void Attack(Player victim, TurnContext context, ICard source) { var gainUtil = new GainUtility(context, victim); gainUtil.Gain <Curse>(); }