Example #1
0
            private void PutEncounterCardOnBottomOfDeck(IGame game, IEffectHandle handle, IPlayer player, IExhaustableInPlay denethor, IEncounterCard encounterCard)
            {
                denethor.Exhaust();

                game.StagingArea.EncounterDeck.RemoveFromDeck(encounterCard);
                game.StagingArea.EncounterDeck.PutOnBottom(new List<IEncounterCard> { encounterCard });
                
                handle.Resolve(string.Format("{0} chose to put '{1}' on the bottom of the encounter deck", player.Name, encounterCard.Title));
            }
Example #2
0
        private void ExhaustReadyCharacter(IEffectHandle handle, IExhaustableInPlay character, IPlayer player, ExhaustChoiceStatus choiceStatus)
        {
            character.Exhaust();

            choiceStatus.Append(string.Format("{0} chose to exhaust {1}", player.Name, character.Title));

            if (choiceStatus.IsComplete)
            {
                handle.Resolve(choiceStatus.GetStatus());
            }
        }
Example #3
0
            private void ExhaustAndPlayerDrawsTwoCards(IGame game, IEffectHandle handle, IPlayer controller, IExhaustableInPlay exhaustable, IPlayer player)
            {
                exhaustable.Exhaust();

                player.DrawCards(2);

                if (controller.StateId == player.StateId)
                {
                    handle.Resolve(string.Format("{0} exhausted '{1}' to draw 2 cards", controller.Name, CardSource.Title));
                }
                else
                {
                    handle.Resolve(string.Format("{0} exhausted '{1}' to have {2} draw 2 cards", controller.Name, CardSource.Title, player.Name));
                }
            }
            private void ReadyExhaustedAlly(IGame game, IEffectHandle handle, IPlayer player, IExhaustableInPlay ally)
            {
                var controller = game.GetController(ally.BaseCard.Id);

                ally.Ready();

                if (player == controller)
                {
                    handle.Resolve(string.Format("{0} chose to ready '{1}'", player.Name, ally.Title));
                }
                else
                {
                    handle.Resolve(string.Format("{0} chose to ready '{1}' controlled by {2}", player.Name, ally.Title, controller.Name));
                }
            }
Example #5
0
            private void ExhaustToCancelRevealedTreachery(IGame game, IEffectHandle handle, IExhaustableInPlay exhaustable)
            {
                exhaustable.Exhaust();

                if (game.StagingArea.RevealedEncounterCard == null)
                {
                    handle.Cancel(string.Format("There is no revealed encounter card for '{0}' to cancel", CardSource.Title));
                    return;
                }

                if (!(game.StagingArea.RevealedEncounterCard.Card is ITreacheryCard) || !game.StagingArea.RevealedEncounterCard.Card.HasEffect<IWhenRevealedEffect>())
                {
                    handle.Cancel(string.Format("The revealed encounter card, '{0}', is not an Treachery with a 'When Revealed' effect for '{1}' to cancel", game.StagingArea.RevealedEncounterCard.Card.Title, CardSource.Title));
                    return;
                }

                var revealedTitle = game.StagingArea.RevealedEncounterCard.Title;

                game.StagingArea.CancelRevealedCard(this);
                game.StagingArea.RevealEncounterCard();

                handle.Resolve(string.Format("The 'when revealed' effect of '{1}' has been cancelled", CardSource.Title, revealedTitle));
            }
Example #6
0
            private void ExhaustAndPlayerDrawsTwoCards(IGame game, IEffectHandle handle, IPlayer controller, IExhaustableInPlay exhaustable, IPlayer player)
            {
                exhaustable.Exhaust();

                player.DrawCards(2);

                if (controller.StateId == player.StateId)
                {
                    handle.Resolve(string.Format("{0} exhausted '{1}' to draw 2 cards", controller.Name, CardSource.Title));
                }
                else
                {
                    handle.Resolve(string.Format("{0} exhausted '{1}' to have {2} draw 2 cards", controller.Name, CardSource.Title, player.Name));
                }
            }
Example #7
0
            private void PutEncounterCardOnBottomOfDeck(IGame game, IEffectHandle handle, IPlayer player, IExhaustableInPlay denethor, IEncounterCard encounterCard)
            {
                denethor.Exhaust();

                game.StagingArea.EncounterDeck.RemoveFromDeck(encounterCard);
                game.StagingArea.EncounterDeck.PutOnBottom(new List <IEncounterCard> {
                    encounterCard
                });

                handle.Resolve(string.Format("{0} chose to put '{1}' on the bottom of the encounter deck", player.Name, encounterCard.Title));
            }
Example #8
0
            private void PutEncounterCardBackOnTopOfDeck(IGame game, IEffectHandle handle, IPlayer player, IExhaustableInPlay denethor, IEncounterCard encounterCard)
            {
                denethor.Exhaust();

                handle.Resolve(string.Format("{0} chose to put '{1}' back on the top of the encounter deck", player.Name, encounterCard.Title));
            }
Example #9
0
            private void PutEncounterCardBackOnTopOfDeck(IGame game, IEffectHandle handle, IPlayer player, IExhaustableInPlay denethor, IEncounterCard encounterCard)
            {
                denethor.Exhaust();

                handle.Resolve(string.Format("{0} chose to put '{1}' back on the top of the encounter deck", player.Name, encounterCard.Title));
            }
Example #10
0
 public CardReadying(IGame game, IExhaustableInPlay exhaustable)
     : base(game)
 {
 }
 private void ReadyCharacterInPlay(IGame game, IEffectHandle handle, IPlayer player, IExhaustableInPlay character)
 {
     character.Ready();
     handle.Resolve(string.Format("{0} chose to ready '{1}'", player.Name, character.Title));
 }
Example #12
0
 private void ReadyCharacterInPlay(IGame game, IEffectHandle handle, IPlayer player, IExhaustableInPlay character)
 {
     character.Ready();
     handle.Resolve(string.Format("{0} chose to ready '{1}'", player.Name, character.Title));
 }
            private void ExhaustAndAddTwoResources(IGame game, IEffectHandle handle, IPlayer player, IExhaustableInPlay exhaustable, ICharacterInPlay resourceful)
            {
                exhaustable.Exhaust();
                resourceful.Resources += 2;

                handle.Resolve(string.Format("{0} chose to exhaust '{1}' to add 2 resources to {2}'s resource pool", player.Name, CardSource.Title, resourceful.Title));
            }
Example #14
0
 public CardReadying(IGame game, IExhaustableInPlay exhaustable)
     : base(game)
 {
 }
Example #15
0
            private void ReadyExhaustedAlly(IGame game, IEffectHandle handle, IPlayer player, IExhaustableInPlay ally)
            {
                var controller = game.GetController(ally.BaseCard.Id);

                ally.Ready();

                if (player == controller)
                {
                    handle.Resolve(string.Format("{0} chose to ready '{1}'", player.Name, ally.Title));
                }
                else
                {
                    handle.Resolve(string.Format("{0} chose to ready '{1}' controlled by {2}", player.Name, ally.Title, controller.Name));
                }
            }
Example #16
0
            private void ExhaustToCancelRevealedTreachery(IGame game, IEffectHandle handle, IExhaustableInPlay exhaustable)
            {
                exhaustable.Exhaust();

                if (game.StagingArea.RevealedEncounterCard == null)
                {
                    handle.Cancel(string.Format("There is no revealed encounter card for '{0}' to cancel", CardSource.Title));
                    return;
                }

                if (!(game.StagingArea.RevealedEncounterCard.Card is ITreacheryCard) || !game.StagingArea.RevealedEncounterCard.Card.HasEffect <IWhenRevealedEffect>())
                {
                    handle.Cancel(string.Format("The revealed encounter card, '{0}', is not an Treachery with a 'When Revealed' effect for '{1}' to cancel", game.StagingArea.RevealedEncounterCard.Card.Title, CardSource.Title));
                    return;
                }

                var revealedTitle = game.StagingArea.RevealedEncounterCard.Title;

                game.StagingArea.CancelRevealedCard(this);
                game.StagingArea.RevealEncounterCard();

                handle.Resolve(string.Format("The 'when revealed' effect of '{1}' has been cancelled", CardSource.Title, revealedTitle));
            }