本文整理汇总了C#中Dominion.Card.DoSpecializedAction方法的典型用法代码示例。如果您正苦于以下问题:C# Card.DoSpecializedAction方法的具体用法?C# Card.DoSpecializedAction怎么用?C# Card.DoSpecializedAction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Dominion.Card
的用法示例。
在下文中一共展示了Card.DoSpecializedAction方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DoPlayTreasure
internal void DoPlayTreasure(Card currentCard, GameState gameState)
{
if (!currentCard.isTreasure)
{
throw new Exception("Can't play a card that isn't a treasure");
}
this.gameLog.PlayedCard(this, currentCard);
this.gameLog.PushScope();
this.cardsBeingPlayed.AddCardToTop(currentCard);
gameState.cardContextStack.PushCardContext(this, currentCard, CardContextReason.CardBeingPlayed);
this.AddBuys(currentCard.plusBuy);
this.AddCoins(currentCard.plusCoin);
if (currentCard == Cards.Copper)
{
this.AddCoins(this.turnCounters.copperAdditionalValue);
}
currentCard.DoSpecializedAction(gameState.players.CurrentPlayer, gameState);
CardHasBeenPlayed(currentCard, 1);
gameState.cardContextStack.Pop();
this.gameLog.PopScope();
}
示例2: DoPlayAction
internal void DoPlayAction(Card currentCard, GameState gameState, int countTimes = 1)
{
if (!currentCard.isAction)
{
throw new Exception("Can't play a card that isn't a action");
}
this.gameLog.PlayedCard(this, currentCard);
this.gameLog.PushScope();
this.cardsBeingPlayed.AddCardToTop(currentCard);
for (int i = 0; i < countTimes; ++i)
{
this.AddActions(currentCard.plusAction);
this.AddBuys(currentCard.plusBuy);
this.AddCoins(currentCard.plusCoin);
this.victoryTokenCount += currentCard.plusVictoryToken;
this.DrawAdditionalCardsIntoHand(currentCard.plusCard);
if (currentCard.isAttack && currentCard.isAttackBeforeAction)
{
AttackOtherPlayers(gameState, currentCard.DoSpecializedAttack);
}
currentCard.DoSpecializedAction(gameState.players.CurrentPlayer, gameState);
if (currentCard.isAttack && !currentCard.attackDependsOnPlayerChoice && !currentCard.isAttackBeforeAction)
{
AttackOtherPlayers(gameState, currentCard.DoSpecializedAttack);
}
}
CardHasBeenPlayed();
this.gameLog.PopScope();
}