public RoundModel(Core.Quest round, int roundNumber, Core.Game game, Core.Player player, int playerCount) { TeamSize = round.QuestSize; FailsRequired = round.RequiredFails; _roundNumber = roundNumber; Title = String.Format("Quest {0}", _roundNumber.ToWords()); if (round.IsSuccess.HasValue && round.IsSuccess.Value) { Title += " succeeded"; } if (round.IsSuccess.HasValue && !round.IsSuccess.Value) { Title += " failed"; } if (round.LadyOfTheLake!=null && round.LadyOfTheLake.Target!=null) { LadyOfTheLakeUsedBy = round.LadyOfTheLake.Holder.Name; LadyOfTheLakeUsedOn = round.LadyOfTheLake.Target.Name; if (player == round.LadyOfTheLake.Holder) { LadyOfTheLakeResult = round.LadyOfTheLake.IsEvil ? "evil" : "good"; } else { LadyOfTheLakeResult = "allegiance"; } } Teams = new List<TeamModel>(); foreach (var voteTrack in round.VoteTracks) { Teams.Add(new TeamModel(player, voteTrack, playerCount, round.VoteTracks.IndexOf(voteTrack) + 1)); } var loyaltyCard = game.GetLoyaltyCard(roundNumber); if (loyaltyCard.HasValue && round != game.CurrentQuest) { LoyaltyCard = string.Format("Lancelot loyalty card: {0}", loyaltyCard.Value.Humanize()); } }