private void CreateUI()
        {
            Point windowSizes = new Point(600, 400);

            Style.PushStyle("moneyPanel");
            Panel moneyPanel = new VerticalLayout().SetAnchor(AnchorX.Right, AnchorY.Top);

            moneyPanel.SetFixedWidth(300).SetLayoutSize(LayoutSize.FixedSize, LayoutSize.WrapContent);
            moneyPanel.sprite  = Style.sprites["panel"];
            moneyPanel.Padding = new Point(16, 8);
            moneyPanel.AddChild(new Text($"${simulator.playerCompany.displayMoney}").SetTextUpdateFunction(() => { return($"${simulator.playerCompany.displayMoney}"); }).SetAllignments(Allignment.Right, Allignment.Middle).SetFont(Style.fonts["textSmall"]).SetGetTranslation(false));

            uiCanvas.AddChild(moneyPanel);

            Style.PopStyle();
            Style.PushStyle("mainButtonPanel");

            Panel mainButtonPanel = new VerticalLayout().SetAnchor(AnchorX.Left, AnchorY.Bottom);

            mainButtonPanel.SetMargin(8).SetLayoutSize(LayoutSize.WrapContent, LayoutSize.WrapContent);
            mainButtonPanel.sprite  = Style.sprites["panel"];
            mainButtonPanel.Padding = new Point(8, 8);

            foreach (GameState gs in Enum.GetValues(typeof(GameState)))
            {
                GameState state = gs;
                Button    b     = new Button(state.ToString());
                b.OnMouseClick = () => ChangeGameState(state);
                mainButtonPanel.AddChild(b);
            }

            uiCanvas.AddChild(mainButtonPanel);

            Style.PopStyle();
            Style.PushStyle("storeScreen");

            playerStoreUIScreen = new StoreScreen(CreateAgent, FireAgent);
            Style.PushStyle("panelSpriteOn");
            playerStoreWindow = new Window(playerStoreUIScreen, "Store", uiCanvas).SetIsDraggable(false);
            playerStoreWindow.SetAnchor(AnchorX.Middle, AnchorY.Middle);
            playerStoreWindow.Close();
            Style.PopStyle("panelSpriteOn");
            uiCanvas.AddChild(playerStoreWindow);


            CitiesScreen citiesScreen = new CitiesScreen(windowSizes, simulator.cities);

            Style.PushStyle("panelSpriteOn");
            citiesWindow = new Window(citiesScreen, "Cities", uiCanvas).SetIsDraggable(false);
            citiesWindow.SetAnchor(AnchorX.Middle, AnchorY.Middle);
            citiesWindow.Close();
            Style.PopStyle("panelSpriteOn");
            uiCanvas.AddChild(citiesWindow);

            Style.PopStyle();

            uiCanvas.AddChild(CreateTimeControlls());

            uiCanvas.FinishCreation();
        }
        public StoreScreen(Action <Store> HireAgentFunction, Action <Store> FireAgentFunction) : base()
        {
            Layout.PushLayout("storeScreen");
            this.HireAgentFunction = HireAgentFunction;
            this.FireAgentFunction = FireAgentFunction;

            Padding = new Point(10, 10);
            Margin  = 10;
            SetFixedSize(700, 500);

            VerticalLayout leftSide = new VerticalLayout();

            leftSide.SetFixedWidth(300);

            deliveredPizzas        = new KeyValueText("deliveredPizzas", "0");
            outStandingOrders      = new KeyValueText("outstandingOrders", "0");
            avgDeliveryTime        = new KeyValueText("avgDeliveryTime", "5");
            deliveryEmployeesCount = new KeyValueText("deliveryEmployees", "3");

            HorizontalLayout buttonsHor = new HorizontalLayout();
            Button           hireButton = new Button("hireEmployee");
            Button           fireButton = new Button("fireEmployee");

            hireButton.OnMouseClick = () => { HireAgentFunction(store); UpdateTexts(); };
            fireButton.OnMouseClick = () => { FireAgentFunction(store); UpdateTexts(); };
            buttonsHor.AddChild(hireButton, fireButton);

            lastWeeksIncome = new KeyValueText("lastWeekIncome", "0");

            costs              = new Text("costs");
            weeklyRent         = new KeyValueText("rent", "0");
            weeklyEmployeeWage = new KeyValueText("employees", "0");
            weeklyTotalCost    = new KeyValueText("total", "0");


            leftSide.AddChild(deliveryEmployeesCount);
            leftSide.AddChild(deliveredPizzas);
            leftSide.AddChild(outStandingOrders);
            leftSide.AddChild(avgDeliveryTime);
            leftSide.AddChild(buttonsHor);
            leftSide.AddChild(lastWeeksIncome);
            leftSide.AddChild(costs);
            leftSide.AddChild(weeklyRent);
            leftSide.AddChild(weeklyEmployeeWage);
            leftSide.AddChild(weeklyTotalCost);


            AddChild(leftSide);
            Layout.PopLayout("storeScreen");
        }
Ejemplo n.º 3
0
        private void CreateUI()
        {
            Style.PushStyle("mapMain");
            Layout.PushLayout("mapMain");

            Style.PushStyle("panelSpriteOn");
            VerticalLayout main = new VerticalLayout();

            main.SetFixedWidth(250);
            Style.PopStyle("panelSpriteOn");

            KeyValueText currSeedLabel = new KeyValueText("currSeed", "123456789");

            currSeedLabel.SetValueTextUpdate(() => { return(mapParameter.randomSeed.ToString()); });
            Checkbox keepOldSeedCheck = new Checkbox("keepCurrSeed", (val) => keepCurrentSeed = val, false, keepCurrentSeed);

            //Slider values: 0 -> Map Size 32, Slider 4 -> Map Size 512
            KeyValueText xDesc = new KeyValueText("mapWidth", "128");

            xDesc.SetValueTextUpdate(() => { return($"{mapParameter.size.X}"); });
            Slider sizeX = new Slider((xVal) => SetMapSize(xVal, true), 0, 4, 1, GetMapSizeSliderVal(mapParameter.size.X));

            KeyValueText yDesc = new KeyValueText("mapHeight", "512");

            yDesc.SetValueTextUpdate(() => { return($"{mapParameter.size.Y}"); });
            Slider sizeY = new Slider((yVal) => SetMapSize(yVal, false), 0, 4, 1, GetMapSizeSliderVal(mapParameter.size.Y));

            /*Text terrainLabel = new Text("terrain");
             *
             * KeyValueText minHeightDesc = new KeyValueText("minHeight", "");
             * minHeightDesc.SetValueTextUpdate(() => $"{mapParameter.minHeight}");
             * Slider minHeight = new Slider((val) => mapParameter.minHeight = val, 6, 12, 1, mapParameter.minHeight);
             *
             * KeyValueText maxHeightDesc = new KeyValueText("maxHeight", "");
             * maxHeightDesc.SetValueTextUpdate(() => $"{mapParameter.maxHeight}");
             * Slider maxHeight = new Slider((val) => mapParameter.maxHeight = val, 12, 20, 1, mapParameter.maxHeight);
             *
             * KeyValueText waterDiffDesc = new KeyValueText("waterDiff", "");
             * waterDiffDesc.SetValueTextUpdate(() => $"{mapParameter.waterMinDiff}");
             * Slider waterDiff = new Slider((val) => mapParameter.waterMinDiff = val, 0, 6, 1, mapParameter.waterMinDiff);*/

            Checkbox checkWater = new Checkbox("hasWater", (val) => { mapParameter.hasWater = val; }, startValue: mapParameter.hasWater);

            Checkbox checkRivers = new Checkbox("hasRivers", (val) => { mapParameter.hasRivers = val; }, startValue: mapParameter.hasRivers);

            Checkbox checkCitiesConnect = new Checkbox("hasCityConnections", (val) => mapParameter.hasCityConnections = val, false, mapParameter.hasCityConnections);

            KeyValueText cityNumText = new KeyValueText("cityNum", "100%");

            cityNumText.SetValueTextUpdate(() => { return($"{(int)(mapParameter.citiesNumber * 100f)}%"); });
            Slider cityNumSlider = new Slider((val) => mapParameter.citiesNumber = val / 100f, 0, 100, 5, (int)(mapParameter.citiesNumber * 100f));

            KeyValueText forestText = new KeyValueText("forestSize", $"{100}%");

            forestText.SetValueTextUpdate(() => { return($"{(int)(mapParameter.forestSize * 100)}%"); });
            Slider forestSlider = new Slider((val) => mapParameter.forestSize = val / 100f, 0, 100, 10, (int)(mapParameter.forestSize * 100));

            KeyValueText resourceText = new KeyValueText("resourceSize", $"{100}%");

            resourceText.SetValueTextUpdate(() => { return($"{(int)(mapParameter.resourceSize * 100)}%"); });
            Slider resourceSlider = new Slider((val) => mapParameter.resourceSize = val / 100f, 0, 100, 10, (int)(mapParameter.resourceSize * 100));

            KeyValueText citySizeText = new KeyValueText("citySize", $"{100}%");

            citySizeText.SetValueTextUpdate(() => { return($"{mapParameter.citySize}"); });
            Slider citySizeSlider = new Slider((val) => { mapParameter.citySize = citySizeBaseValue + (val / 100f * citySizeRange - citySizeRange / 2); }, 0, 100, 5, 50);

            KeyValueText citySizeOffsetText = new KeyValueText("citySizeRandomOffset", $"{100}%");

            citySizeOffsetText.SetValueTextUpdate(() => { return($"{mapParameter.citySizeRandomOffset}"); });
            Slider citySizeOffsetSlider = new Slider((val) => { mapParameter.citySizeRandomOffset = val / 100f * citySizeOffsetMax; }, 0, 100, 5, 50);

            Text mouseOverText = new Text("aaaaaaaaaaaaaaaaaaaaaaaaaaaaa").SetTextUpdateFunction(UpdateMouseOverTileText);

            mapGenButton = new GeneratingButton();
            mapGenButton.OnMouseClick = GenerateNewMap;

            cancelButton = new GeneratingCancelButton();
            cancelButton.OnMouseClick = CancelMapGeneration;

            Button exitButton = new Button("exit");

            exitButton.OnMouseClick = game.Exit;

            main.AddChild(mouseOverText, new Space(6), currSeedLabel, keepOldSeedCheck, new Space(6),
                          xDesc, sizeX, yDesc, sizeY, new Space(6),
                          //minHeightDesc, minHeight, maxHeightDesc, maxHeight, waterDiffDesc, waterDiff , new Space(6),
                          checkWater, checkRivers, checkCitiesConnect, cityNumText, cityNumSlider, new Space(6),
                          citySizeText, citySizeSlider, new Space(6),
                          citySizeOffsetText, citySizeOffsetSlider, new Space(6),
                          forestText, forestSlider, resourceText, resourceSlider, new Space(6),
                          mapGenButton, cancelButton, exitButton);

            uiCanvas.AddChild(main);

            Style.PopStyle("mapMain");
            Layout.PopLayout("mapMain");

            uiCanvas.FinishCreation();
        }