public void Discard6(IRoundPlayerState player, ITargetablePlayerState targetPlayer) { var temp = player.RoundHand; player.RoundHand = targetPlayer.RoundHand; targetPlayer.RoundHand = temp; }
public IDrawableTurnState CreateTurn(IRoundPlayerState playerState, IDrawableCardState turnDeck) { var turnPlayer = _playerFactory.CreateTurnPlayer(playerState); IDiscardablePlayerState discardablePlayer = null; ITargetablePlayerState targetPlayer = null; var turnState = new TurnState(turnDeck, turnPlayer, discardablePlayer, targetPlayer); return(turnState); }
public void Discard1(ITargetablePlayerState targetPlayer, int rank) { var matches = _cardRankService.Matches(targetPlayer.RoundHand, rank); if (matches) { targetPlayer.OutOfRound = true; } }
public IDiscardableTurnState GetDiscardable(IDrawablePlayerState drawablePlayerState) { var discardablePlayer = _playerFactory.GetDiscardable(drawablePlayerState); IDrawablePlayerState unusedPlayerState = null; IDrawableCardState turnDeck = null; ITargetablePlayerState targetPlayer = null; var turnState = new TurnState(turnDeck, unusedPlayerState, discardablePlayer, targetPlayer); return(turnState); }
public TurnState(IDrawableCardState turnDeck, IDrawablePlayerState drawablePlayerState = null, IDiscardablePlayerState discardablePlayer = null, ITargetablePlayerState targetPlayer = null) { TurnDeck = turnDeck; DrawablePlayerState = drawablePlayerState; DiscardablePlayer = discardablePlayer; TargetPlayer = targetPlayer; }
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; }
public void Discard3(IRoundPlayerState player, ITargetablePlayerState targetPlayer) { var playerCard = player.RoundHand; var targetCard = targetPlayer.RoundHand; var playerIsGreater = _cardRankService.Compare(playerCard, targetCard); if (playerIsGreater.HasValue) { if (playerIsGreater.Value) { targetPlayer.OutOfRound = true; } else { player.OutOfRound = true; } } }
public void Discard(IRunningRoundState round, IDiscardableCardState card, ITargetablePlayerState targetPlayer = null) { throw new System.NotImplementedException(); }