private DrawOneCardIntoHand ( |
||
gameState | ||
return | bool |
public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState) { currentPlayer.RevealHand(); if (currentPlayer.hand.HasDuplicates()) { currentPlayer.DrawOneCardIntoHand(); } else { currentPlayer.DrawAdditionalCardsIntoHand(3); } }
public override void DoSpecializedAttack(PlayerState currentPlayer, PlayerState otherPlayer, GameState gameState) { otherPlayer.DrawOneCardIntoHand(); otherPlayer.RequestPlayerDiscardDownToCountInHand(gameState, 3); }
public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState) { if (currentPlayer.CountCardsPlayedThisTurn >= 3) { currentPlayer.DrawOneCardIntoHand(); currentPlayer.AddActions(1); } }
public override void DoSpecializedActionOnReturnToHand(PlayerState currentPlayer, GameState gameState) { currentPlayer.DrawOneCardIntoHand(); }
private void DoActionChoice(PlayerState currentPlayer, PlayerActionChoice actionChoice) { switch (actionChoice) { case PlayerActionChoice.PlusCard: currentPlayer.DrawOneCardIntoHand(); break; case PlayerActionChoice.PlusAction: currentPlayer.AddActions(1); break; case PlayerActionChoice.PlusBuy: currentPlayer.AddBuys(1); break; case PlayerActionChoice.PlusCoin: currentPlayer.AddCoins(1); break; default: throw new Exception("Invalid pawn action choice"); } }
public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState) { Card gainedCard = currentPlayer.RequestPlayerGainCardFromSupply(gameState, acceptableCard => acceptableCard.CurrentCoinCost(currentPlayer) <= 4 && acceptableCard.potionCost == 0, "Any card costing up to 4"); if (gainedCard.isAction) { currentPlayer.AddActions(1); } if (gainedCard.isTreasure) { currentPlayer.AddCoins(1); } if (gainedCard.isVictory) { currentPlayer.DrawOneCardIntoHand(); } }
public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState) { int countEmpty = gameState.supplyPiles.Where(pile => pile.IsEmpty).Count(); if (countEmpty >= 1) { currentPlayer.DrawOneCardIntoHand(gameState); if (countEmpty >= 2) { currentPlayer.AddCoins(1); currentPlayer.AddBuys(1); } } }
public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState) { currentPlayer.RevealCardsFromDeck(1); Card revealedCard = currentPlayer.CardsBeingRevealed.First(); currentPlayer.RequestPlayerDiscardRevealedCard(gameState); currentPlayer.MoveRevealedCardToTopOfDeck(); if (revealedCard.isAction) { currentPlayer.AddActions(1); } if (revealedCard.isTreasure) { currentPlayer.AddCoins(1); } if (revealedCard.isVictory) { currentPlayer.DrawOneCardIntoHand(); } }
public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState) { bool someOtherPlayerRevealedProvince = false; bool didRevealProvince = currentPlayer.RequestPlayerRevealCardFromHand(card => card == Cards.Province, gameState) != null; foreach (PlayerState player in gameState.players.OtherPlayers) { someOtherPlayerRevealedProvince |= player.RequestPlayerRevealCardFromHand(card => card == Cards.Province, gameState) != null; player.MoveAllRevealedCardsToHand(); } if (didRevealProvince) { currentPlayer.RequestPlayerGainCardFromSupply(gameState, card => card == Cards.Duchy || card.IsType(Cards.Prize), "Must gain a duchy or a prize", isOptional: false, defaultLocation: DeckPlacement.TopOfDeck); } if (!someOtherPlayerRevealedProvince) { currentPlayer.DrawOneCardIntoHand(gameState); currentPlayer.AddCoins(1); } }