private static void ResolveSecrets(IEnumerable <TurnStats> newTurnStats) { var unresolvedSecrets = 0; var triggeredSecrets = 0; TurnStats.Play candidateSecret = null; foreach (var play in newTurnStats.SelectMany(turn => turn.Plays)) { // is secret play if ((play.Type == PlayType.OpponentHandDiscard && play.CardId == "") || play.Type == PlayType.OpponentSecretPlayed) { unresolvedSecrets++; candidateSecret = play; play.Type = PlayType.OpponentSecretPlayed; } else if (play.Type == PlayType.OpponentSecretTriggered) { if (unresolvedSecrets == 1 && candidateSecret != null) { candidateSecret.CardId = play.CardId; } triggeredSecrets++; if (triggeredSecrets == unresolvedSecrets) { triggeredSecrets = 0; unresolvedSecrets = 0; } } } }
public GameDetailItem(TurnStats.Play play, int turn) { Turn = turn.ToString(); Player = play.Type.ToString().StartsWith("Player") ? "Player" : "Opponent"; Action = play.Type.ToString().Replace("Player", string.Empty).Replace("Opponent", string.Empty); Card = Database.GetCardFromId(play.CardId); if (play.Type == PlayType.PlayerHandDiscard || play.Type == PlayType.OpponentHandDiscard && (Card != null && Card.Type == "Spell")) { Action = "Play/Discard"; } }