public bool Initialize(GameMain gameMain, out string reason) { _gameMain = gameMain; _title = SpriteManager.GetSprite("Title", _gameMain.Random); if (_title == null) { reason = "Title Sprite not found"; return false; } _singlePlayerButton = new BBButton(); _multiPlayerButton = new BBButton(); _exitButton = new BBButton(); _hostOrConnectButton = new BBButton(); _cancelButton = new BBButton(); _ipAddressTextBox = new BBSingleLineTextBox(); _playerNameTextBox = new BBSingleLineTextBox(); _debugText = new BBLabel(); _showingMultiplayerOptions = false; int x = _gameMain.ScreenSize.X / 2 - 130; int y = _gameMain.ScreenSize.Y / 2 + 50; if (!_singlePlayerButton.Initialize("MainButtonBG", "MainButtonFG", "Single Player", "LargeComputerFont", ButtonTextAlignment.CENTER, x, y + 50, 260, 40, _gameMain.Random, out reason)) { return false; } if (!_multiPlayerButton.Initialize("MainButtonBG", "MainButtonFG", "MultiPlayer", "LargeComputerFont", ButtonTextAlignment.CENTER, x, y + 100, 260, 40, _gameMain.Random, out reason)) { return false; } if (!_exitButton.Initialize("MainButtonBG", "MainButtonFG", "Exit", "LargeComputerFont", ButtonTextAlignment.CENTER, x, y + 200, 260, 40, _gameMain.Random, out reason)) { return false; } if (!_playerNameTextBox.Initialize("Player Name", x, y, 260, 40, false, _gameMain.Random, out reason)) { return false; } if (!_ipAddressTextBox.Initialize(string.Empty, x - 150, y + 50, 260, 40, false, _gameMain.Random, out reason)) { return false; } if (!_hostOrConnectButton.Initialize("MainButtonBG", "MainButtonFG", "Host", "LargeComputerFont", ButtonTextAlignment.CENTER, x + 150, y + 50, 260, 40, _gameMain.Random, out reason)) { return false; } if (!_cancelButton.Initialize("MainButtonBG", "MainButtonFG", "Back", "LargeComputerFont", ButtonTextAlignment.CENTER, x, y + 100, 260, 40, _gameMain.Random, out reason)) { return false; } if (!_debugText.Initialize(10, _gameMain.ScreenSize.Y - 30, string.Empty, Color.White, out reason)) { return false; } _singlePlayerButton.SetTextColor(Color.Gold, Color.Black); _multiPlayerButton.SetTextColor(Color.Gold, Color.Black); _exitButton.SetTextColor(Color.Gold, Color.Black); _hostOrConnectButton.SetTextColor(Color.Gold, Color.Black); _cancelButton.SetTextColor(Color.Gold, Color.Black); _gameMain.LevelNumber = 100; _gameMain.SetupLevel(); _debugText.SetText("Num of Asteroids: " + _gameMain.AsteroidManager.Asteroids.Count); reason = null; return true; }