private MoveRevealedCardToHand ( CardPredicate acceptableCard ) : Dominion.Card | ||
acceptableCard | CardPredicate | |
return | Dominion.Card |
public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState) { Card revealedCard = currentPlayer.RequestPlayerRevealCardFromHand(acceptableCard => true, gameState); if (revealedCard == null) { return; } currentPlayer.MoveRevealedCardToHand(revealedCard); int maxReturnCount = 1; if (currentPlayer.Hand.CountWhere(card => card.Equals(revealedCard)) > 1) { maxReturnCount++; } int returnCount = currentPlayer.actions.GetCountToReturnToSupply(revealedCard, gameState); returnCount = Math.Min(returnCount, maxReturnCount); returnCount = Math.Max(returnCount, 0); for (int i = 0; i < returnCount; ++i) { currentPlayer.ReturnCardFromHandToSupply(revealedCard, gameState); } foreach (PlayerState otherPlayer in gameState.players.OtherPlayers) { if (!otherPlayer.IsAffectedByAttacks(gameState)) { otherPlayer.GainCardFromSupply(gameState, revealedCard); } } }
public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState) { int countTreasureFound = 0; while (countTreasureFound < 2) { Card card = currentPlayer.DrawAndRevealOneCardFromDeck(gameState); if (card == null) { break; } if (card.isTreasure) { countTreasureFound += 1; currentPlayer.MoveRevealedCardToHand(card); } } currentPlayer.MoveRevealedCardsToDiscard(gameState); }
public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState) { Card foundCard = null; gameState.gameLog.PushScope(); while (true) { foundCard = currentPlayer.DrawAndRevealOneCardFromDeck(); if (foundCard == null) break; if (foundCard.isAction || foundCard.isTreasure) { break; } } gameState.gameLog.PopScope(); if (foundCard != null) { currentPlayer.MoveRevealedCardToHand(foundCard); } currentPlayer.MoveRevealedCardsToDiscard(cardToMove => true, gameState); }
public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState) { while (currentPlayer.hand.Count < 7) { Card revealedCard = currentPlayer.DrawAndRevealOneCardFromDeck(gameState); if (revealedCard == null) { break; } bool putCardInHand = !revealedCard.isAction || currentPlayer.actions.ShouldPutCardInHand(gameState, revealedCard); if (putCardInHand) { currentPlayer.MoveRevealedCardToHand(revealedCard); } } currentPlayer.MoveRevealedCardsToDiscard(gameState); }
public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState) { currentPlayer.RevealHand(); Card revealedCard = currentPlayer.DrawAndRevealOneCardFromDeck(); while (revealedCard != null) { if (!currentPlayer.Hand.HasCard(revealedCard)) { currentPlayer.MoveRevealedCardToHand(revealedCard); break; } revealedCard = currentPlayer.DrawAndRevealOneCardFromDeck(); } currentPlayer.MoveRevealedCardsToDiscard(gameState); }
public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState) { //currentPlayer.gameLog.LogDeck(gameState.players.CurrentPlayer); Card cardType = currentPlayer.GuessCardTopOfDeck(gameState); currentPlayer.RevealCardsFromDeck(1); if (currentPlayer.cardsBeingRevealed.HasCard(cardType)) { currentPlayer.MoveRevealedCardToHand(cardType); } else { currentPlayer.MoveRevealedCardToTopOfDeck(); } }
public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState) { currentPlayer.RevealCardsFromDeck(1); Card revealedCard = currentPlayer.cardsBeingRevealed.FirstOrDefault(); if (revealedCard == null) { return; } if (revealedCard.isCurse || revealedCard.isRuins || revealedCard.isShelter || revealedCard.isVictory) { currentPlayer.MoveRevealedCardToHand(revealedCard); } else { currentPlayer.MoveRevealedCardToTopOfDeck(); } }
public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState) { while (true) { Card card = currentPlayer.DrawAndRevealOneCardFromDeck(); if (card == null) break; if (card.CurrentCoinCost(currentPlayer) >= 3 && card.potionCost == 0) { currentPlayer.MoveRevealedCardToHand(card); break; } } currentPlayer.MoveRevealedCardsToDiscard(gameState); }
public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState) { Card revealedCard = currentPlayer.RequestPlayerRevealCardFromHand(card => card.isTreasure, gameState); if (revealedCard != null) { currentPlayer.GainCardFromSupply(gameState, revealedCard); } currentPlayer.MoveRevealedCardToHand(revealedCard); }