Esempio n. 1
0
        private void InitializeUpgradeButtons()
        {
            Remove(UpgradeBox);
            UpgradeBox = new GroupBox(Manager);
            Add(UpgradeBox);

            UpgradeBox.Init();
            UpgradeBox.Left      = 2;
            UpgradeBox.Top       = infoBox.Top + infoBox.Height + 2;
            UpgradeBox.Width     = UpgradeBox.Parent.Width - 4;
            UpgradeBox.Height    = UpgradeBox.Parent.Height - UpgradeBox.Top - 2;
            UpgradeBox.Text      = "Upgrades";
            UpgradeBox.TextColor = Microsoft.Xna.Framework.Color.LightGray;

            UpgradeBox.AutoScroll = false;
            foreach (Button button in Buttons)
            {
                UpgradeBox.Remove(button);
                Remove(button);
                button.Visible = false;
                button.Invalidate();
            }
            Buttons.Clear();
            lastWidth = 0;

            SpriteFont cFont = Skin.Layers[0].Text.Font.Resource;

            UpgradeBox.Enabled = Tower.PossibleUpgrades.Count > 0;
            foreach (var upgrade in Tower.PossibleUpgrades)
            {
                var button = new Button(Manager);
                button.Init();
                UpgradeBox.Add(button);
                Buttons.Add(button);
                button.Text    = upgrade.Value.Name;
                button.Width   = (int)cFont.MeasureString(button.Text).X + 15;
                button.Left    = 6 + lastWidth;
                button.Top     = 14;
                button.Tag     = upgrade.Value.Key;
                button.Enabled = GamePlayScreen.MoneyManager.Money >= upgrade.Value.Price;
                button.Click  += button_Click;
                button.ToolTip = new ToolTip(Manager)
                {
                    Text = string.Format("Neuer Wert: {0}\nPreis: {1}", upgrade.Value.Value,
                                         upgrade.Value.Price)
                };
                if (upgrade.Value.Description.Length > 0)
                {
                    button.ToolTip.Text += string.Format("\nBeschreibung: {0}", upgrade.Value.Description);
                }

                lastWidth = button.Left + button.Width;
            }

            UpgradeBox.AutoScroll = true;
            UpgradeBox.Refresh();
        }