Пример #1
0
        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());
            }
        }