Exemple #1
0
        public EndScreenForm(int score, bool objectiveWon, bool timeOver, int wonVerbs, int totalVerbs, int minimumVerbs, TimeSpan timerObjectiveTime,
                             TimeSpan duration, VerbAnswer[] verbAnswers, DateTime date, string listName)
        {
            InitializeComponent();

            Score              = score;
            Mode               = AnswerMode.Timer;
            ObjectiveWon       = objectiveWon;
            TimeOver           = timeOver;
            WonVerbs           = wonVerbs;
            TotalVerbs         = totalVerbs;
            Duration           = duration;
            MinimumVerbs       = minimumVerbs;
            TimerObjectiveTime = timerObjectiveTime;
            VerbAnswers        = verbAnswers;
            Date               = date;
            ListName           = listName;

            ObjectiveSpeed = MinimumVerbs / TimerObjectiveTime.TotalMinutes;

            if (TotalVerbs != 0)
            {
                WinPercentage = WonVerbs * 100d / TotalVerbs;
            }
            else
            {
                WinPercentage = 0;
            }
            AverageSpeed = WonVerbs / Duration.TotalMinutes;

            if (TimeOver)
            {
                titleLbl.Text          = "Time over!";
                statsTitleLbl.Text     = "Stats";
                statsTitleLbl.Location = new Point(statsTitleLbl.Location.X + 19, statsTitleLbl.Location.Y);
            }

            if (ObjectiveWon)
            {
                scoreBtn.Text      = "Against the Watch:" + Environment.NewLine + "Objective reached!";
                scoreBtn.ForeColor = Color.Green;
            }
            else
            {
                scoreBtn.Text      = "Against the Watch:" + Environment.NewLine + "Objective failed.";
                scoreBtn.ForeColor = Color.Red;
            }
            scoreBtn.Image     = null;
            scoreBtn.TextAlign = ContentAlignment.MiddleCenter;

            winPercentageLbl.Text = "Win Percentage: " + Math.Round(WinPercentage, 1) + "%";
            wonOutOfTotalLbl.Text = WonVerbs + " verb" + StringTool.AddSOrNot(WonVerbs) + " won out of " + TotalVerbs + ", objective was " + MinimumVerbs;
            averageSpeedLbl.Text  = "Average Speed: " + Math.Round(AverageSpeed, 2).ToString() + " verbs/minute";
            totalTimeLbl.Text     = "Speed objective: " + Math.Round(ObjectiveSpeed, 2).ToString() + " verbs/minute";

            AddToHistorical();
        }
Exemple #2
0
        public EndScreenForm(int score, int wonVerbs, int totalVerbs, TimeSpan duration, VerbAnswer[] verbAnswers, DateTime date, string listName)
        {
            InitializeComponent();

            Mode        = AnswerMode.Normal;
            Score       = score;
            WonVerbs    = wonVerbs;
            TotalVerbs  = totalVerbs;
            Duration    = duration;
            VerbAnswers = verbAnswers;
            Date        = date;
            ListName    = listName;

            if (TotalVerbs != 0)
            {
                WinPercentage = WonVerbs * 100 / TotalVerbs;
            }
            else
            {
                WinPercentage = 0;
            }
            AverageSpeed = WonVerbs / Duration.TotalMinutes;

            scoreBtn.Text = "Final score: " + score;
            if (Score >= 20)
            {
                scoreBtn.ForeColor = Color.Green;
            }
            else if (Score >= 0)
            {
                scoreBtn.ForeColor = Color.Orange;
            }
            else
            {
                scoreBtn.ForeColor = Color.Red;
            }
            scoreBtn.Image        = Properties.Resources.flame16;
            winPercentageLbl.Text = "Win Percentage: " + WinPercentage + "%";
            wonOutOfTotalLbl.Text = WonVerbs + " verb" + StringTool.AddSOrNot(WonVerbs) + " won out of " + TotalVerbs;
            averageSpeedLbl.Text  = "Average Speed: " + Math.Round(AverageSpeed, 2).ToString() + " verbs/minute";
            totalTimeLbl.Text     = "Total time: " + Duration.ToString(@"hh\:mm\:ss");

            AddToHistorical();
        }
        private void EventLinker_ScoreUpdate(object sender, EventArgs e)
        {
            if (InvokeRequired) // En cas d'appel de cette fonction depuis un autre thread
            {
                Invoke(new EventLinker_ScoreUpdateDelegate(this.EventLinker_ScoreUpdate), sender, e);
                return;
            }

            ScoreUpdateEventArgs args = (ScoreUpdateEventArgs)e;

            // Make 4 spaces at the end of the score label for flame picture
            if (trainer.Parameters.Mode == AnswerMode.Normal)
            {
                if (args.TotalVerbs == 0)
                {
                    scoreLbl.Text = "Score: 0    ";
                }
                else
                {
                    scoreLbl.Text = "Score: " + trainer.Flames + "    ";
                }

                if (trainer.Flames >= 20 | args.TotalVerbs == 0)
                {
                    scoreLbl.ForeColor = Color.Black;
                }
                else if (trainer.Flames > 0)
                {
                    scoreLbl.ForeColor = Color.DarkOrange;
                }
                else if (trainer.Flames <= 0)
                {
                    scoreLbl.ForeColor = Color.Red;
                }
            }

            if (args.LastMistakesNumber == -1)
            {
                scoreStateLbl.Text = "";
            }
            else if (args.LastMistakesNumber == 0)
            {
                scoreStateLbl.Text      = "Well done!";
                scoreStateLbl.Font      = new Font(new FontFamily("Segoe UI Semibold"), 9.75f);
                scoreStateLbl.ForeColor = Color.Green;
            }
            else
            {
                if (args.RemainingChances > -1)
                {
                    scoreStateLbl.Text = args.LastMistakesNumber + " verb form" + StringTool.AddSOrNot(args.LastMistakesNumber)
                                         + " " + StringTool.IsOrAre(args.LastMistakesNumber) + " incorrect. ("
                                         + args.RemainingChances + " chance" + StringTool.AddSOrNot(args.RemainingChances) + " left)";
                    scoreStateLbl.Font      = new Font(new FontFamily("Segoe UI Semibold"), 9.75f);
                    scoreStateLbl.ForeColor = Color.Red;
                }
                else
                {
                    scoreStateLbl.Text = args.LastMistakesNumber + " verb form" + StringTool.AddSOrNot(args.LastMistakesNumber)
                                         + " " + StringTool.IsOrAre(args.LastMistakesNumber) + " incorrect.";
                    scoreStateLbl.Font      = new Font(new FontFamily("Segoe UI Semibold"), 9.75f);
                    scoreStateLbl.ForeColor = Color.Red;
                }
            }
        }