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)); }
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()); } }
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)); } }
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)); }
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)); }
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)); }
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)); }
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)); }
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)); }