Пример #1
0
            public override void Attack(Player player, TurnContext context)
            {
                var revealZone = new RevealZone(player);
                player.Deck.MoveTop(3, revealZone);

                revealZone.LogReveal(context.Game.Log);
                revealZone.MoveWhere(c => c is IActionCard || c is ITreasureCard, player.Discards);

                foreach (var activity in Activities.SelectMultipleRevealedCardsToPutOnTopOfDeck(context.Game.Log, player, revealZone))
                    _activities.Add(activity);
            }
Пример #2
0
            public override void Attack(Player victim, TurnContext context, ICard source)
            {
                var revealZone = new RevealZone(victim);
                victim.Deck.MoveTop(3, revealZone);

                revealZone.LogReveal(context.Game.Log);
                revealZone.MoveWhere(c => c is IActionCard || c is ITreasureCard, victim.Discards);

                if(revealZone.CardCount == 1)
                    victim.Deck.MoveToTop(revealZone.Single());

                foreach (var activity in Activities.SelectMultipleRevealedCardsToPutOnTopOfDeck(context.Game.Log, victim, revealZone, source))
                    _activities.Add(activity);
            }
Пример #3
0
            public override void Resolve(TurnContext context, ICard source)
            {
                var revealZone = new RevealZone(context.ActivePlayer);
                context.ActivePlayer.Deck.MoveTop(4, revealZone);

                revealZone.LogReveal(context.Game.Log);
                revealZone.MoveWhere(c => c is Copper || c is Potion, context.ActivePlayer.Hand);

                if (revealZone.CardCount == 1)
                    context.ActivePlayer.Deck.MoveToTop(revealZone.Single());

                foreach (var activity in Activities.SelectMultipleRevealedCardsToPutOnTopOfDeck(context.Game.Log, context.ActivePlayer, revealZone, source))
                    _activities.Add(activity);
            }