Exemplo n.º 1
0
        public void ConsumeMessage (IMessage msg)
        {
            if (msg.MessageId == (int) MessageId.GameEnded || msg.MessageId == (int)MessageId.GameEndedDied)
            {
                Application.Window.ReleaseMouse ();

                Canvas = Renderer.Canvas;
                Canvas.DeleteAllChildren();

                minuteCount = (float) (DateTime.Now - MazeTest.StartTime).TotalMinutes;

                exitButton = new Button (Canvas);
                exitButton.Text = Localizer.Instance.GetValueForName("quit_game");
                exitButton.Width = 300;
                exitButton.X = (Canvas.Width - exitButton.Width) / 2;
                exitButton.Y = Canvas.Height - exitButton.Height - 20;
                exitButton.Clicked += (sender, arguments) => Application.Window.Close ();

                surviveTimeLabel = new Label (Canvas);
                surviveTimeLabel.AutoSizeToContents = true;
                surviveTimeLabel.Text = string.Format("{0} {1:0.##} {2}", Localizer.Instance.GetValueForName("you_survived"),
                    minuteCount, Localizer.Instance.GetValueForName("minutes"));
                surviveTimeLabel.X = (Canvas.Width - surviveTimeLabel.Width) / 2;
                surviveTimeLabel.Y = exitButton.Y - surviveTimeLabel.Height - 40;

                labelWin = new ImagePanel (Canvas);
                labelWin.Width = 1211;
                labelWin.Height = 170;
                labelWin.X = (Canvas.Width - labelWin.Width) / 2;
                labelWin.Y = 100;
                labelWin.ImageName = "Content/YouEscapedTheMaze.png";
                labelWin.Hide();

                labelWin_de = new ImagePanel (Canvas);
                labelWin_de.Width = 1211;
                labelWin_de.Height = 170;
                labelWin_de.X = (Canvas.Width - labelWin_de.Width) / 2;
                labelWin_de.Y = 100;
                labelWin_de.ImageName = "Content/YouEscapedTheMaze_de.png";
                labelWin_de.Hide();

                labelLoose = new ImagePanel (Canvas);
                labelLoose.Width = 845;
                labelLoose.Height = 168;
                labelLoose.X = (Canvas.Width - labelLoose.Width) / 2;
                labelLoose.Y = 100;
                labelLoose.ImageName = "Content/YouAreDead.png";
                labelLoose.Hide();
                labelLoose_de = new ImagePanel (Canvas);
                labelLoose_de.Width = 845;
                labelLoose_de.Height = 168;
                labelLoose_de.X = (Canvas.Width - labelLoose_de.Width) / 2;
                labelLoose_de.Y = 100;
                labelLoose_de.ImageName = "Content/YouAreDead_de.png";
                labelLoose_de.Hide();
               
                if (msg.MessageId == (int) MessageId.GameEndedDied)
                {
                    if (Localizer.Instance.CurrentLocale == LocaleEnum.de_DE)
                    {
                        labelLoose_de.Show();
                    }
                    else
                    {
                        labelLoose.Show();
                    }
                    win = false;
                }
                else
                {
                    if (Localizer.Instance.CurrentLocale == LocaleEnum.de_DE)
                    {
                        labelWin_de.Show();
                    }
                    else
                    {
                        labelWin.Show();
                    }
                    win = true;
                }
            }

            if (msg.MessageId == (int) MessageId.WindowResize)
            {
                if (exitButton != null)
                {
                    exitButton.X = (Canvas.Width - exitButton.Width) / 2;
                    exitButton.Y = Canvas.Height - exitButton.Height - 20;
                }

                if (surviveTimeLabel != null)
                {
                    surviveTimeLabel.X = (Canvas.Width - surviveTimeLabel.Width) / 2;
                    surviveTimeLabel.Y = exitButton.Y - surviveTimeLabel.Height - 40;
                }

                if (labelWin != null)
                    labelWin.X = (Canvas.Width - labelWin.Width) / 2;

                if (labelWin_de != null)
                    labelWin_de.X = (Canvas.Width - labelWin_de.Width) / 2;

                if (labelLoose != null)
                    labelLoose.X = (Canvas.Width - labelLoose.Width) / 2;

                if (labelLoose_de != null)
                    labelLoose_de.X = (Canvas.Width - labelLoose_de.Width) / 2;
            }

            if (msg.MessageId == (int) MessageId.UpdateLocale)
            {
                surviveTimeLabel.Text = string.Format("{0} {1:#.##} {2}", Localizer.Instance.GetValueForName("you_survived"),
                    minuteCount, Localizer.Instance.GetValueForName("minutes"));
                exitButton.Text = Localizer.Instance.GetValueForName("quit_game");

                if (Localizer.Instance.CurrentLocale == LocaleEnum.de_DE)
                {
                    if (win && labelWin != null && labelWin_de != null)
                    {
                        labelWin.Hide();
                        labelWin_de.Show();
                    }
                    else if (labelLoose != null && labelLoose_de != null)
                    {
                        labelLoose.Hide();
                        labelLoose_de.Show();
                    }
                }
                else
                {
                    if (win && labelWin != null && labelWin_de != null)
                    {
                        labelWin_de.Hide();
                        labelWin.Show();
                    }
                    else if (labelLoose != null && labelLoose_de != null)
                    {
                        labelLoose_de.Hide();
                        labelLoose.Show();
                    }
                }
            }
        }