/// <inheritdoc /> public override bool Execute(FiftyTwoCardGamePlayer player, ICardTray <FiftyTwoCardGamePlayer, FiftyTwoCardGameDeck, FiftyTwoCardGameCard> cardTray) { var card = player.Deck.Draw(); if (card == null) // deck is empty the player has lost { return(false); } cardTray.Place <WarCardTraySlot>(player, card); return(true); }
/// <inheritdoc /> public override bool Execute(FiftyTwoCardGamePlayer player, ICardTray <FiftyTwoCardGamePlayer, FiftyTwoCardGameDeck, FiftyTwoCardGameCard> cardTray) { var isVisible = false; foreach (var fiftyTwoCardGameCard in player.Deck.Draw(2) ) // the player must put his card on the tray if he has one { if (fiftyTwoCardGameCard == null) // deck is empty the player has lost { return(false); } if (!isVisible) // set the first card as invisible { fiftyTwoCardGameCard.IsVisible = false; isVisible = true; } cardTray.Place <WarCardTraySlot>(player, fiftyTwoCardGameCard); } return(true); }
/// <inheritdoc /> public abstract bool Execute(TPlayer player, ICardTray <TPlayer, TDeck, TCard> cardTray);