Esempio n. 1
0
            public override void Resolve(TurnContext context, ICard source)
            {
                var player = context.ActivePlayer;
                var log = context.Game.Log;

                if (player.Hand.OfType<IActionCard>().Any())
                {
                    var activity = new SelectCardsActivity(
                        log, player,
                        "Select an action to play twice",
                        SelectionSpecifications.SelectExactlyXCards(1), source);

                    activity.Hint = ActivityHint.PlayCards;
                    activity.Specification.CardTypeRestriction = typeof (IActionCard);
                    activity.AfterCardsSelected = cards =>
                    {
                        var actionCard = cards.OfType<IActionCard>().Single();
                        log.LogMessage("{0} selected {1} to be played twice.", player.Name, actionCard.Name);

                        actionCard.MoveTo(context.ActivePlayer.PlayArea);
                        context.AddEffect(source, new PlayCardEffect(actionCard));
                        context.AddEffect(source, new PlayCardEffect(actionCard));                        
                    };

                    _activities.Add(activity);
                }
                    
            }
Esempio n. 2
0
        public void Play(TurnContext context)
        {
            context.DrawCards(1);
            context.RemainingActions += 1;

            context.AddEffect(this, new UpgradeEffect());
        }
Esempio n. 3
0
            private IActivity CreateChooseActionActivity(TurnContext context, RevealZone revealZone, ICard source)
            {
                var selectTreasure = new SelectFromRevealedCardsActivity(context.Game.Log, context.ActivePlayer, revealZone,
                    "Select the action to play first.", SelectionSpecifications.SelectExactlyXCards(1), source);

                selectTreasure.AfterCardsSelected = cards =>
                {
                    var first = cards.OfType<IActionCard>().Single();
                    var second = revealZone.OfType<IActionCard>().Single(c => c != first);

                    // Reverse order because we're on a stack.
                    context.AddEffect(source, new PlayCardEffect(second));
                    context.AddEffect(source, new PlayCardEffect(first));                    
                };

                return selectTreasure;
            }  
Esempio n. 4
0
 public override void BeginResolve(TurnContext context)
 {
     if(_hasHadReactionStep)
     {
         base.BeginResolve(context);
     }
     else
     {
         _hasHadReactionStep = true;
         if (context.Opponents.Any(o => o.Hand.OfType<IReactionCard>().Any()))
             context.AddEffect(Source, new ReactionEffect(this));
         else
             base.BeginResolve(context);
     }
 }
Esempio n. 5
0
 public override void BeginResolve(TurnContext context)
 {
     if (_hasHadReactionStep)
     {
         base.BeginResolve(context);
     }
     else
     {
         _hasHadReactionStep = true;
         if (context.Opponents.Any(o => o.Hand.OfType <IReactionCard>().Any()))
         {
             context.AddEffect(Source, new ReactionEffect(this));
         }
         else
         {
             base.BeginResolve(context);
         }
     }
 }
Esempio n. 6
0
 public void Play(TurnContext context)
 {
     context.AddEffect(new WorkshopEffect());
 }
Esempio n. 7
0
 public void Play(TurnContext context)
 {
     context.AddEffect(this, new KingsCourtEffect());
 }
Esempio n. 8
0
 public void Play(TurnContext context)
 {
     context.AddEffect(this, new ChapelEffect());
 }
Esempio n. 9
0
 public void Play(TurnContext context)
 {
     context.DrawCards(3);
     context.AddEffect(this, new RabbleAttack());
 }
Esempio n. 10
0
 public void Play(TurnContext context)
 {
     context.ActivePlayer.DrawCards(2);
     context.AddEffect(this, new GhostShipAttack());
 }
Esempio n. 11
0
        public void React(AttackEffect attackEffect, Player player, TurnContext currentTurn)
        {
            currentTurn.AddEffect(this, new SecretChamberReactionEffect(player));
            currentTurn.Game.Log.LogMessage("{0} revealed a Secret Chamber.", player);

        }
Esempio n. 12
0
 public void Play(TurnContext context)
 {
     context.DrawCards(2);
     context.AddEffect(this, new WitchAttack());            
 }
Esempio n. 13
0
 public void Play(TurnContext context)
 {
     context.AvailableSpend += 2;
     context.AddEffect(new ChancellorEffect());
 }
Esempio n. 14
0
 public void Play(TurnContext context)
 {
     context.RemainingActions += 1;
     context.AddEffect(this, new CellarEffect());
 }
Esempio n. 15
0
 public void Play(TurnContext context)
 {
     context.AddEffect(this, new MoneylenderEffect());
 }
Esempio n. 16
0
 public void Play(TurnContext context)
 {
     context.RemainingActions += 1;
     context.AddEffect(this, new ApprenticeEffect());
 }
Esempio n. 17
0
 public void Play(TurnContext context)
 {
     context.Trash(context.ActivePlayer, this);
     context.AddEffect(this, new FeastEffect());
 }
Esempio n. 18
0
 public void Play(TurnContext context)
 {
     context.AddEffect(this, new ThiefAttack());
 }
Esempio n. 19
0
 public void Play(TurnContext context)
 {
     context.AvailableSpend += 2;
     context.AddEffect(this, new MilitiaAttack());
 }
Esempio n. 20
0
 public void Play(TurnContext context)
 {
     context.RemainingActions += 1;
     context.AddEffect(new ChapelEffect());
 }
Esempio n. 21
0
 public void Play(TurnContext context)
 {
     context.DrawCards(1);
     context.RemainingActions += 2;
     context.AddEffect(this, new MiningVillageEffect(this));
 }
Esempio n. 22
0
 public void Play(TurnContext context)
 {
     context.AvailableSpend += 2;
     context.AddEffect(new MountebankAttack());
 }
Esempio n. 23
0
 public void Play(TurnContext context)
 {
     context.DrawCards(1);
     context.RemainingActions += 1;
     context.AddEffect(new FamiliarAttack());
 }
Esempio n. 24
0
 public void Play(TurnContext context)
 {
     context.AddEffect(this, new SecretChamberActionEffect());
 }
Esempio n. 25
0
 public void Play(TurnContext context)
 {
     var effect = new EnvoyEffect();
     context.AddEffect(this, effect);
 }
Esempio n. 26
0
 public void Play(TurnContext context)
 {
     context.AddEffect(this, new ThroneRoomEffect());
 }
Esempio n. 27
0
 public void Play(TurnContext context)
 {
     context.Buys += 1;
     context.AddEffect(this, new SalvagerEffect());
 }
Esempio n. 28
0
 public void Play(TurnContext context)
 {
     context.AddEffect(this, new NoblesEffect());
 }
Esempio n. 29
0
 public void Play(TurnContext context)
 {
     context.AddEffect(this, new BaronEffect());
     context.Buys += 1;
 }
Esempio n. 30
0
 public void Play(TurnContext context)
 {
     context.RemainingActions += 1;
     context.AddEffect(this, new MinionAttackEffect());
 }
Esempio n. 31
0
 public void Play(TurnContext context)
 {
     context.AddEffect(new MineEffect());
 }