public void Discard(IDiscardableTurnState turn, IDiscardableCardState card, ITargetablePlayerState targetPlayer = null) { turn.DiscardablePlayer.TurnHand.Remove(card); var discarded = _cardStateFactory.Discard(card); turn.DiscardablePlayer.TurnDiscard = discarded; turn.TargetPlayer = targetPlayer; }
public void Discard5(ITargetablePlayerState targetPlayer, IList <IDrawableCardState> deck, IList <ISetAsideCardState> setAside) { var discarded = _cardStateFactory.Discard(targetPlayer.RoundHand); targetPlayer.RoundDiscard.Add(discarded); var newCard = deck.Any() ? _cardStateFactory.Draw(deck) : _cardStateFactory.Draw(setAside); targetPlayer.RoundHand = newCard; }