private GainCardsFromSupply ( |
||
gameState | ||
cardType | Dominion.Card | |
count | int | |
defaultLocation | DeckPlacement | |
return | void |
public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState) { Card trashedCard = currentPlayer.RequestPlayerTrashCardFromHand(gameState, card => true, isOptional: false); if (trashedCard != null) { currentPlayer.GainCardsFromSupply(gameState, Silver.card, trashedCard.CurrentCoinCost(currentPlayer)); } }
public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState) { if (currentPlayer.MoveCardFromPlayToTrash(gameState)) { if (currentPlayer.TrashCardFromHandOfType(TreasureMap.card, gameState, guaranteeInHand: false) != null) { currentPlayer.GainCardsFromSupply(gameState, Gold.card, 4, DeckPlacement.TopOfDeck); } } }
public override void OverpayOnPurchase(PlayerState currentPlayer, GameState gameState, int overpayAmount) { currentPlayer.GainCardsFromSupply(gameState, Cards.Silver, overpayAmount); }
public override DeckPlacement DoSpecializedWhenGain(PlayerState currentPlayer, GameState gameState) { currentPlayer.GainCardsFromSupply(gameState, Copper.card, 2); return DeckPlacement.Default; }
public override void DoSpecializedTrash(PlayerState currentPlayer, GameState gameState) { Card gainedCard = currentPlayer.RequestPlayerGainCardFromSupply(gameState, acceptableCard => acceptableCard == Cards.Duchy || acceptableCard == Cards.Estate, "Choose Duchy or 3 Estate"); if (gainedCard == null) return; if (gainedCard == Cards.Estate) { currentPlayer.GainCardsFromSupply(gameState, Cards.Estate, 2); // gain 2 more for total of 3. } }
public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState) { currentPlayer.MoveCardFromPlayToTrash(gameState); PlayerState.AttackAction attackAction = delegate(PlayerState currentPlayer2, PlayerState otherPlayer, GameState gameState2) { if (otherPlayer.Hand.Count >= 5) { // TODO: make other player discard a good card otherPlayer.RequestPlayerDiscardCardFromOtherPlayersHand(gameState, otherPlayer); } }; currentPlayer.AttackOtherPlayers(gameState, attackAction); currentPlayer.GainCardsFromSupply(gameState, Cards.Spoils, 2); }
public override void DoSpecializedTrash(PlayerState currentPlayer, GameState gameState) { currentPlayer.GainCardsFromSupply(gameState, Cards.Silver, 3); }
public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState) { currentPlayer.GainCardsFromSupply(gameState, Copper.card, 3, DeckPlacement.Hand); }
public override bool DoReactionToAttackWhileInHand(PlayerState currentPlayer, GameState gameState, out bool cancelsAttack) { cancelsAttack = false; bool wasDiscarded = currentPlayer.RequestPlayerDiscardCardFromHand(gameState, card => card == Beggar.card, isOptional: true); if (!wasDiscarded) { return false; } currentPlayer.GainCardsFromSupply(gameState, Cards.Silver, 1, defaultLocation: DeckPlacement.TopOfDeck); currentPlayer.GainCardFromSupply(Cards.Silver, gameState); return true; }
private static void ApplyChoice(PlayerActionChoice choice, PlayerState currentPlayer, GameState gameState) { switch (choice) { case PlayerActionChoice.PlusCard: currentPlayer.DrawAdditionalCardsIntoHand(2, gameState); break; case PlayerActionChoice.PlusAction: currentPlayer.AddActions(2); break; case PlayerActionChoice.PlusCoin: currentPlayer.AddCoins(2); break; case PlayerActionChoice.GainCard: currentPlayer.GainCardsFromSupply(gameState, Cards.Silver, 4); break; default: throw new Exception(); } }
public override bool DoSpecializedTrash(PlayerState selfPlayer, GameState gameState) { selfPlayer.GainCardsFromSupply(gameState, Cards.Silver, 3); return true; }