Пример #1
0
        public TestScreen(Sprite houseSpr, Sprite frameSpr)
        {
            this.frameSpr = frameSpr;
            Padding       = new Point(10, 10);
            Margin        = 10;
            SetFixedSize(700, 500);

            HorizontalLayout mainHor = new HorizontalLayout();

            mainHor.SetLayoutSizeForBoth(LayoutSize.MatchParent);

            VerticalLayout leftOverview = new VerticalLayout();

            leftOverview.SetFixedSize(200, 300).SetLayoutSize(LayoutSize.FixedSize, LayoutSize.MatchParent);
            leftOverview.AddScrollbar();
            leftOverview.Margin  = 6;
            leftOverview.Padding = new Point(6, 2);

            int buildingsCount = 12;

            buildings = new VerticalLayout[buildingsCount];

            for (int i = 0; i < buildingsCount; i++)
            {
                int            index = i;
                VerticalLayout inner = new VerticalLayout();
                inner.OnMouseEnter = () => { MouseOvered(index); };
                buildings[i]       = inner;
                inner.Padding      = new Point(0, 4);
                inner.SetLayoutSize(LayoutSize.MatchParent, LayoutSize.WrapContent);
                Image im = new Image(houseSpr);
                inner.OnMouseClick = () => { SelectBuilding(index); };
                inner.AddChild(im);
                inner.AddChild(new Text($"Name {i}").SetAllignments(Allignment.Middle, Allignment.Middle));
                leftOverview.AddChild(inner);
            }

            selectedText             = new KeyValueText("Selected Buildings:", selected.ToString());
            selectedText.layoutSizeX = LayoutSize.WrapContent;

            VerticalLayout specifics = new VerticalLayout();

            specifics.overwriteChildLayout = false;
            specifics.SetMargin(6);
            specifics.SetLayoutSizeForBoth(LayoutSize.MatchParent);
            //specifics.SetChildAllignment(Allignment.Bottom);
            specifics.childAllignX = AnchorX.Right;

            VerticalLayout buildingInfos = new VerticalLayout();

            buildingInfos.Padding = new Point(10);
            //buildingInfos.GetStandardSprite(true);
            buildingInfos.SetLayoutSize(LayoutSize.MatchParent, LayoutSize.WrapContent);
            buildingName = new Text("Building Name");
            buildingInfos.AddChild(buildingName);
            buildingStats = new KeyValueText[] { new KeyValueText("building info Test", "12"),
                                                 new KeyValueText("and more", "13"),
                                                 new KeyValueText("even more", "14"),
                                                 new KeyValueText("even more", "15"),
                                                 new KeyValueText("even more", "15") };

            foreach (var el in buildingStats)
            {
                buildingInfos.AddChild(el);
            }

            specifics.AddChild(selectedText);
            specifics.AddChild(buildingInfos);

            mainHor.AddChild(leftOverview);
            mainHor.AddChild(specifics);

            HorizontalLayout buttons = new HorizontalLayout();

            //buttons.SetChildAllignment(Allignment.Right).SetMargin(10);
            buttons.SetLayoutSize(LayoutSize.MatchParent, LayoutSize.WrapContent);

            finishButton = new Button("Finish Selection");
            buttons.AddChild(finishButton);
            buttons.AddChild(new Button("Cancel"));

            specifics.AddChild(buttons);

            AddChild(mainHor);
        }
Пример #2
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();
        }