示例#1
0
        public void Show(VisualElement container, UpgradeAction.UpgradeDetails upgrade, Action updateContentsCallback)
        {
            var header = new Label(upgrade.title);

            header.AddToClassList("object-header");
            container.Add(header);

            container.Add(new Label($"Cost: {upgrade.cost.supplies} supplies, {upgrade.cost.production} production"));

            gamePlan.ShowGamePlan(container);

            var btn = new Button {
                text = "Turns"
            };

            btn.AddToClassList("calc-button");

            btn.clicked += () => gamePlan.CalculateGamePlan(upgrade, updateContentsCallback);
            container.Add(btn);
        }
示例#2
0
        public void Show(VisualElement container, HexCell cell, Action updateContentsCallback)
        {
            var header = new Label(cell.DisplayName);

            header.AddToClassList("object-header");
            container.Add(header);

            if (cell is BuildingCell buildingCell)
            {
                var currencyBonus = buildingCell.GetCurrencyBonus(Technology.None);
                if (currencyBonus.production > 0)
                {
                    container.Add(new Label($"Generates {currencyBonus.production} production"));
                }
                if (currencyBonus.supplies > 0)
                {
                    container.Add(new Label($"Generates {currencyBonus.supplies} supplies"));
                }
                if (currencyBonus.population > 0)
                {
                    container.Add(new Label($"Generates {currencyBonus.population} population"));
                }
            }

            var upgradeDetails = GetUpgradeDetails(cell);

            container.Add(upgradeDetails);

            gamePlan.ShowGamePlan(container);

            var btn = new Button {
                text = "Turns"
            };

            btn.AddToClassList("calc-button");

            btn.clicked += () => gamePlan.CalculateGamePlan(cell, updateContentsCallback);
            container.Add(btn);
        }