本文整理汇总了C#中Dominion.PlayerState.GainCardsFromSupply方法的典型用法代码示例。如果您正苦于以下问题:C# PlayerState.GainCardsFromSupply方法的具体用法?C# PlayerState.GainCardsFromSupply怎么用?C# PlayerState.GainCardsFromSupply使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Dominion.PlayerState
的用法示例。
在下文中一共展示了PlayerState.GainCardsFromSupply方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DoSpecializedAction
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));
}
}
示例2: DoSpecializedAction
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);
}
}
}
示例3: OverpayOnPurchase
public override void OverpayOnPurchase(PlayerState currentPlayer, GameState gameState, int overpayAmount)
{
currentPlayer.GainCardsFromSupply(gameState, Cards.Silver, overpayAmount);
}
示例4: DoSpecializedWhenGain
public override DeckPlacement DoSpecializedWhenGain(PlayerState currentPlayer, GameState gameState)
{
currentPlayer.GainCardsFromSupply(gameState, Copper.card, 2);
return DeckPlacement.Default;
}
示例5: DoSpecializedTrash
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.
}
}
示例6: DoSpecializedAction
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);
}
示例7: DoReactionToAttackWhileInHand
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;
}
示例8: ApplyChoice
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();
}
}
示例9: DoSpecializedTrash
public override bool DoSpecializedTrash(PlayerState selfPlayer, GameState gameState)
{
selfPlayer.GainCardsFromSupply(gameState, Cards.Silver, 3);
return true;
}