Beispiel #1
0
            private void GainCopperAndCurse(Player player, TurnContext context)
            {
                var gainUtil = new GainUtility(context, player);

                gainUtil.Gain <Copper>();
                gainUtil.Gain <Curse>();
            }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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());
        }
Beispiel #4
0
            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));
            }
Beispiel #5
0
            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));
            }
Beispiel #6
0
            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));
            }
Beispiel #7
0
 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);
     }
 }
Beispiel #8
0
        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);
            }
        }
Beispiel #9
0
        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);
            }
        }
Beispiel #10
0
            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);
                }
            }
Beispiel #11
0
            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);
                }
            }
Beispiel #12
0
        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();
            }
        }
Beispiel #13
0
        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();
            }
        }
Beispiel #14
0
 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());
 }
Beispiel #15
0
 private void GainCopperAndCurse(Player player, TurnContext context)
 {
     var gainUtil = new GainUtility(context, player);                    
     gainUtil.Gain<Copper>();                    
     gainUtil.Gain<Curse>();
 }
Beispiel #16
0
 public override void Attack(Player victim, TurnContext context, ICard source)
 {
     var utility = new GainUtility(context, victim);
     utility.Gain(_pile);
 }
Beispiel #17
0
            public override void Attack(Player victim, TurnContext context, ICard source)
            {
                var utility = new GainUtility(context, victim);

                utility.Gain(_pile);
            }
Beispiel #18
0
 public override void Attack(Player player, TurnContext context, ICard source)
 {
     var gainUtil = new GainUtility(context, player);                
     gainUtil.Gain<Curse>();       
 }
Beispiel #19
0
            public override void Attack(Player victim, TurnContext context, ICard source)
            {
                var gainUtil = new GainUtility(context, victim);

                gainUtil.Gain <Curse>();
            }