Beispiel #1
0
        private void CreateUI()
        {
            mainMenu = new MainMenu(Content, StartNewGame, game.Exit);
            mainMenuCanvas.AddChild(mainMenu);
            mainMenuCanvas.Finish();

            Dictionary <string, SoundEffect> sounds = new Dictionary <string, SoundEffect>()
            {
                { "level0Intro", Content.Load <SoundEffect>("Sounds/level0Intro") },
                { "level1Intro", Content.Load <SoundEffect>("Sounds/level1Intro") },
                { "level2Intro", Content.Load <SoundEffect>("Sounds/level2Intro") },
                { "gameFinished", Content.Load <SoundEffect>("Sounds/gameFinished") },
                { "gameOver", Content.Load <SoundEffect>("Sounds/gameOver") },
            };

            transitionText = new MapTransitionText(TransitionContinueClicked, BackToMenu, game.Exit, sounds);
            transitionCanvas.AddChild(transitionText);
            transitionCanvas.Finish();


            mapCanvas.AddChild(new UnitPanel(() => { if (currentMap != null)
                                                     {
                                                         return(currentMap.GetSelectedUnit());
                                                     }
                                                     else
                                                     {
                                                         return(null);
                                                     } }, mapCanvas.sprites));
            mapCanvas.AddChild(new EnemyInfoPanel(() => { if (currentMap != null)
                                                          {
                                                              return(currentMap.GetMouseOverEnemy());
                                                          }
                                                          else
                                                          {
                                                              return(null);
                                                          } }));

            damagePopup     = new DamagePopup(camera);
            Map.damagePopup = damagePopup;
            mapCanvas.AddChild(damagePopup);


            HorizontalLayout mainButtons = new HorizontalLayout();

            mainButtons.SetMargin(6).Padding = new Point(6, 6);
            mainButtons.SetLayoutSize(LayoutSize.WrapContent, LayoutSize.FixedSize);
            mainButtons.SetFixedHeight(44);
            mainButtons.SetFixedWidth(270);
            mainButtons.sprite = mapCanvas.sprites["panel"];

            Button menuButton = new Button(mapCanvas.sprites["menu"]);

            menuButton.SetFixedSize(32, 32);

            Button musicButton = new Button(Config.musicPlaying ? mapCanvas.sprites["musicOn"] : mapCanvas.sprites["musicOff"]);

            musicButton.SetFixedSize(32, 32);
            musicButton.OnMouseClick = () => {
                Config.musicPlaying = !Config.musicPlaying;
                if (Config.musicPlaying)
                {
                    musicButton.sprite = mapCanvas.sprites["musicOn"];
                }
                else
                {
                    musicButton.sprite = mapCanvas.sprites["musicOff"];
                }
            };

            Button nextTurnButton = new Button(mapCanvas.sprites["nextTurn"]);

            nextTurnButton.SetFixedSize(32, 32);
            nextTurnButton.OnMouseClick = () => { if (currentMap != null)
                                                  {
                                                      currentMap.EndTurn();
                                                  }
            };

            KeyValueText turnText = new KeyValueText("turns", "12");

            turnText.SetLayoutSizeForBoth(LayoutSize.MatchParent);
            turnText.SetValueTextUpdate(() => { return(currentMap != null ? currentMap.turnCounter.ToString() : ""); });
            mainButtons.AddChild(menuButton, musicButton, nextTurnButton, turnText);

            mapCanvas.AddChild(mainButtons);


            EnemyTurnSign enemyTurnSign = new EnemyTurnSign(() => { return(currentMap); });

            mapCanvas.AddChild(enemyTurnSign);

            ControlsPanel controls = new ControlsPanel(mapCanvas.sprites);

            mapCanvas.AddChild(controls);

            mapCanvas.Finish();
        }