コード例 #1
0
ファイル: TradingPost.cs プロジェクト: razzielx/Dominion
            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);
                }
            }
コード例 #2
0
ファイル: Forge.cs プロジェクト: razzielx/Dominion
            public override void Resolve(TurnContext context, ICard source)
            {
                var cardCount = context.ActivePlayer.Hand.CardCount;
                
                if (cardCount == 0)
                {
                    AddGainActivityForCost(context, source, 0);
                }
                else
                {
                    var selectActivity = Activities.SelectUpToXCardsToTrash(context, context.ActivePlayer, cardCount, source);
                    selectActivity.AfterCardsSelected = cards =>
                    {
                        var costToGain = cards.Sum(x => x.Cost.Money);
                        context.TrashAll(context.ActivePlayer, cards);
                        AddGainActivityForCost(context, source, costToGain);                        
                    };

                    _activities.Add(selectActivity);
                }
            }