/// <summary> /// Draws the Buttons and shows how many clients are connected to this players initialised server. /// </summary> public void OnGUI() { GUI.skin = _zodiacStyle; float labelWidth = Screen.width / 3; float labelHeight = Screen.width / 10; float buttonWidth = Screen.width / 5; float buttonHeight = Screen.width / 10; float buttonTop = Screen.height * (2f / 3); float buttonLeft = Screen.width * (1f / 3); float IPLabelTop = Screen.height / 10; float IPLabelLeft = Screen.width / 10; float NoLabelTop = IPLabelTop; float NoLabelLeft = Screen.width * (2f / 3); float sliderWidth = Screen.width / 3; float sliderHeight = Screen.height / 10; GUIStyle labelStyle = new GUIStyle(GUI.skin.label); labelStyle.fontSize = (int)(labelHeight * 0.2f); string[] ip = _net.Ip.Split(':'); string ip2 = ip[1].StartsWith("UN") ? "" : "\r\n local: \r\n" + ip[1]; GUI.Label(new Rect(IPLabelLeft, IPLabelTop, labelWidth, labelHeight), "Your IP is: \r\n " + ip[0] + ip2, labelStyle); GUI.Label(new Rect(NoLabelLeft, NoLabelTop, labelWidth, labelHeight), "There are " + _net.NumOfConnections + " Players Connected", labelStyle); _connections = Mathf.Round(GUIOperations.LabeledSlider(new Rect(NoLabelLeft * 0.8f, IPLabelTop + sliderHeight, sliderWidth, sliderHeight), "Maximum Players: " + _connections.ToString(), _connections, 2, NetworkController.REALMAXIMUMOFPLAYER)); _net.MaxPlayer = (int)_connections; // dat's rly ugly ...is called every OnGUI() :/ if (GUI.Button(new Rect(Screen.width - (Screen.width / 7), Screen.height * (8.5f / 14), (5 * buttonWidth) / 8, (3 * buttonHeight) / 4), "Back")) { _net.Disconnect(); Application.LoadLevel("SMHostJoin"); } if (_net.Ready != _net.MaxPlayer) { // SUBJECT TO CHANGE GUI.enabled = false; } if (GUI.Button(new Rect(buttonLeft, buttonTop, buttonWidth, buttonHeight), "Start")) { GameManager.GetInstance().ResetLevel(); _manager.Difficulty = 0; _manager.HeroCount = 1; _manager.PlayerCount = 1; _manager.MercenaryCount = 0; _manager.SectionNo = 1; _manager.TeamCount = 2; Application.LoadLevel("CharacterSelection"); } GUI.enabled = true; }
/// <summary> /// Draw all Video options on GUI Screen /// </summary> /// <param name="offsetVideoWidth">Top point of the Video box</param> /// <param name="offsetVideo">Left point of the Video box</param> /// <param name="boxWidth">width of the video box</param> /// <param name="boxHeight">height of the video box</param> protected void GUIVideoOptions(float offsetVideoWidth, float offsetVideo, float boxWidth, float boxHeight) { ////// Video Options ////// GUI.Box(new Rect(offsetVideoWidth, offsetVideo, boxWidth, boxHeight), "Video"); // Resolution box GUI.Button(new Rect(offsetVideoWidth, offsetVideo + (boxHeight / 2), boxWidth, boxHeight), "Resolution"); // Resolution slider _resolution = Mathf.Round(GUIOperations.LabeledSlider(new Rect(offsetVideoWidth + boxWidth, offsetVideo + (boxHeight / 2), boxWidth, boxHeight), string.Empty, _resolution, 0, 3)); GUI.Button(new Rect(offsetVideoWidth + (19 * boxWidth / 10), offsetVideo + (boxHeight / 2), boxWidth, boxHeight), Enum.GetNames(typeof(Resolution))[(int)_resolution].Substring(1)); // Quality box GUI.Button(new Rect(offsetVideoWidth, offsetVideo + (5 * boxHeight / 4), boxWidth, boxHeight), "Quality"); // Quality slider _quality = Mathf.Round(GUIOperations.LabeledSlider(new Rect(offsetVideoWidth + boxWidth, offsetVideo + (5 * boxHeight / 4), boxWidth, boxHeight), string.Empty, _quality, 0, 2)); GUI.Button(new Rect(offsetVideoWidth + (19 * boxWidth / 10), offsetVideo + (5 * boxHeight / 4), boxWidth, boxHeight), Enum.GetNames(typeof(Quality))[(int)_quality]); ////////////////////////// }
/// <summary> /// Prints the Play setting menu and the connected screen from /// </summary> public void OnGUI() { GUI.skin = Myskin; float boxHeight = Screen.height / 10; float boxWidth = Screen.width / 6; float buttonWidth = Screen.width / 9; float sliderWidth = Screen.width / 3; float buttonHeight = Screen.height / 10; float offsetAudioHeight = Screen.height / 8; float offsetAudioWidth = Screen.width / 3; float offsetVideo = 3 * Screen.height / 5; float offsetVideoWidth = Screen.width / 6; ////// Audio Options ////// GUI.Box(new Rect(offsetAudioWidth, offsetAudioHeight, 2 * boxWidth, boxHeight), "Audio and Stuff"); // Sound Effect box GUI.Button(new Rect(offsetAudioWidth, offsetAudioHeight + (boxHeight / 2), boxWidth, boxHeight), "Sound Effects"); // Sound Effect slider _sfxLevelNew = Mathf.Round(GUIOperations.LabeledSlider(new Rect(offsetAudioWidth + boxWidth, offsetAudioHeight + (boxHeight / 2), sliderWidth, boxHeight), string.Empty, _sfxLevelOld, 0, 100)); // Sound Effect info box GUI.Button(new Rect(offsetAudioWidth + (2 * boxWidth / 3) + sliderWidth, offsetAudioHeight + (boxHeight / 2), boxWidth, boxHeight), _sfxLevelNew + "%"); if (_sfxLevelNew != _sfxLevelOld) { ConfigManager.GetInstance().SoundLevel = _sfxLevelNew; _sfxLevelOld = _sfxLevelNew; _aSource = GetComponents <AudioSource>()[0]; _aSource.volume = ConfigManager.GetInstance().SoundLevel / 100; if (!_aSource.isPlaying) { _aSource.Play(); } } // Music box GUI.Button(new Rect(offsetAudioWidth, offsetAudioHeight + (5 * boxHeight / 4), boxWidth, boxHeight), "Music"); // Music slider _musicLevel = Mathf.Round(GUIOperations.LabeledSlider(new Rect(offsetAudioWidth + boxWidth, offsetAudioHeight + (5 * boxHeight / 4), sliderWidth, boxHeight), string.Empty, _musicLevel, 0, 100)); ConfigManager.GetInstance().MusicLevel = _musicLevel; GameObject go = GameObject.Find("GameMusic"); // Finds the game object called Game Music, if it goes by a different name, change this. go.audio.volume = ConfigManager.GetInstance().MusicLevel / 100.0f; // Sound Effect info box GUI.Button(new Rect(offsetAudioWidth + (2 * boxWidth / 3) + sliderWidth, offsetAudioHeight + (5 * boxHeight / 4), boxWidth, boxHeight), _musicLevel + "%"); // Awesomeness box GUI.Button(new Rect(offsetAudioWidth, offsetAudioHeight + (8 * boxHeight / 4), boxWidth, boxHeight), "Awesomeness"); // Awesomeness slider _awesomeness = Mathf.Round(GUIOperations.LabeledSlider(new Rect(offsetAudioWidth + boxWidth, offsetAudioHeight + (8 * boxHeight / 4), sliderWidth, boxHeight), string.Empty, _awesomenessMin, 42, 10042)); if (_awesomenessMin > _awesomeness) { _awesomeness = _awesomenessMin; } else { _awesomenessMin = _awesomeness; } GameManager.GetInstance().Awesomeness = _awesomeness; // Awesomeness info box GUI.Button(new Rect(offsetAudioWidth + (3 * boxWidth / 4) + sliderWidth, offsetAudioHeight + (8 * boxHeight / 4), boxWidth, boxHeight), _awesomeList[(int)((_awesomeness / 10042.0f) * (_awesomeList.Count - 1))]); /* * GUIVideoOptions(offsetVideoWidth, offsetVideo, boxWidth, boxHeight); * * //Buttons for applying video settings, switching to key bindings or main menu * * * if (GUI.Button(new Rect(offsetVideoWidth + 3 * boxWidth / 2, offsetVideo + 12 * boxHeight / 5, 3 * boxWidth / 4, 3 * boxHeight / 4), "Apply")) * { * //Change Resolutions * GameManager.GetInstance().VideoQuality = (int)_quality; * GameManager.GetInstance().Resolution = (int)_resolution; * } */ GUI.skin = Myskin2; float fontSize = 0.03f * Screen.height; GUI.skin.button.fontSize = (int)fontSize; if (GUI.Button(new Rect((Screen.width / 6) - (7 * buttonWidth / 5), Screen.height - (Screen.height * (3.5f / 14)), 7 * buttonWidth / 5, buttonHeight), "Main Menu")) { // TODO: Error checking! ConfigManager.GetInstance().SaveConfig(); Application.LoadLevel("MainMenu"); } if (GUI.Button(new Rect(Screen.width - (Screen.width / 6), Screen.height - (Screen.height * (3.5f / 14)), 7 * buttonWidth / 5, buttonHeight), "Key Bindings")) { Application.LoadLevel("KeySettings"); } }
/// <summary> /// Draw the character selection screen and sets gameoptions. /// calculates the box sizes /// </summary> public void OnGUI() { GUI.skin = _myskin2; if (manager.GameMode == GameManager.Mode.PLAY) { // all values are calculated relativ to screen in order to fit the Background float boxHeight = Screen.height / 10; float boxWidth = Screen.width / 6; float sliderWidth = Screen.width / 3; float buttonWidth = Screen.width / 9; float buttonHeight = Screen.height / 10; float offsetDifficultyWidth = 3 * Screen.width / 5; float offsetDifficultyHeight = Screen.width / 20; float offsetSectionWidth = Screen.width / 20; float offsetSectionHeight = Screen.width / 20; float offsetHeroWidth = Screen.width / 9; float offsetHeroHeight = 3 * Screen.height / 5; float offsetAIWidth = Screen.width / 3; float offsetAIHeight = 3 * Screen.height / 4; _maxHumans = 2; _maxHeroes = 8; // The Difficulty and Level sliders are drawn here switch ((int)_difficulty) { case 0: _difficultyString = "N00b"; break; case 1: _difficultyString = "Easy going"; break; case 2: _difficultyString = "Come get some"; break; case 3: _difficultyString = "Hurt me plently"; break; case 4: _difficultyString = "Kick ass!"; break; case 5: _difficultyString = "Insane"; break; default: break; } // Difficulty box and slider GUI.Box(new Rect(offsetDifficultyWidth, offsetDifficultyHeight, 2 * boxWidth, boxHeight), "Difficulty"); _difficulty = Mathf.Round(GUIOperations.LabeledSlider(new Rect(offsetDifficultyWidth, offsetDifficultyHeight + (boxHeight / 3), sliderWidth, boxHeight), string.Empty, _difficulty, 0, _maxDifficulty)); GUI.Button(new Rect(offsetDifficultyWidth, offsetDifficultyHeight + (2 * boxHeight / 3), 2 * boxWidth, boxHeight), _difficultyString); // Difficulty box and slider GUI.Box(new Rect(offsetSectionWidth, offsetSectionHeight, 2 * boxWidth, boxHeight), "Section"); _section = Mathf.Round(GUIOperations.LabeledSlider(new Rect(offsetSectionWidth, offsetSectionHeight + (boxHeight / 3), sliderWidth, boxHeight), string.Empty, _section, 1, _maxSection)); GUI.Button(new Rect(offsetSectionWidth, offsetSectionHeight + (2 * boxHeight / 3), 2 * boxWidth, boxHeight), _section.ToString()); // Hero box and slider GUI.Box(new Rect(offsetHeroWidth, offsetHeroHeight, 2 * boxWidth, boxHeight), "Humans"); _humans = Mathf.Round(GUIOperations.LabeledSlider(new Rect(offsetHeroWidth + (sliderWidth / 4), offsetHeroHeight + (boxHeight / 3), sliderWidth / 2, boxHeight), string.Empty, _humans, 1, _maxHumans)); GUI.Button(new Rect(offsetHeroWidth, offsetHeroHeight + (2 * boxHeight / 3), 2 * boxWidth, boxHeight), _humans.ToString()); if ((int)_heroes > ((int)_maxHeroes - (int)_humans)) { _heroes = (float)((int)_maxHeroes - (int)_humans); } // AI-Hero box and slider GUI.Box(new Rect(offsetAIWidth, offsetAIHeight, 2 * boxWidth, boxHeight), "AI-Heroes"); _heroes = Mathf.Round(GUIOperations.LabeledSlider(new Rect(offsetAIWidth, offsetAIHeight + (boxHeight / 3), sliderWidth, boxHeight), string.Empty, _heroes, 0, (float)((int)_maxHeroes - (int)_humans))); GUI.Button(new Rect(offsetAIWidth, offsetAIHeight + (2 * boxHeight / 3), 2 * boxWidth, boxHeight), _heroes.ToString()); // Skin for Menu-Buttons GUI.skin = Myskin; float fontSize = 0.03f * Screen.height; GUI.skin.button.fontSize = (int)fontSize; // Both menu buttons if (GUI.Button(new Rect((Screen.width / 6) - (7 * buttonWidth / 5), Screen.height - (Screen.height * (3.5f / 14)), 7 * buttonWidth / 5, buttonHeight), "Back")) { Application.LoadLevel("MainMenu"); } if (GUI.Button(new Rect(Screen.width - (Screen.width / 6), Screen.height - (Screen.height * (3.5f / 14)), 7 * buttonWidth / 5, buttonHeight), "Continue")) { GameManager.GetInstance().ResetLevel(); manager.HeroCount = (int)_heroes; manager.PlayerCount = (int)_humans; manager.Difficulty = (int)_difficulty; manager.SectionNo = (int)_section; manager.TeamCount = 1; Application.LoadLevel("CharacterSelection"); } } else if (manager.GameMode == GameManager.Mode.SPECIAL) { // all values are calculated relativ to screen in order to fit the Background float offset = Screen.width / 30; float boxHeight = Screen.height / 10; float boxWidth = Screen.width / 5; float buttonWidth = Screen.width / 9; float buttonHeight = Screen.height / 10; if (!_net.IsServer && !_net.IsClient) { // only needed for the shortcut _maxHumans = 8; _maxHeroes = 8; // offset for the hero/merc/team settings float offHumanTop = (Screen.height / 2) + (3f * offset); // sliders for the hero/merc/team settings; _humans = Mathf.Round(GUIOperations.LabeledSlider(new Rect((1 * offset) + (boxWidth / 2), offHumanTop + (boxHeight / 2), boxWidth + 50, boxHeight), "Number of Humans: " + (int)_humans, _humans, 2, _maxHumans)); // _mercs = Mathf.Round(GUIOperations.LabeledSlider(new Rect(3 * offset + boxWidth / 2, offHumanTop - boxHeight, boxWidth + 50, boxHeight), "Number of Mercs: " + (int)_mercs, _mercs, 0, _maxMercs)); if ((int)_heroes > ((int)_maxHeroes - (int)_humans)) { _heroes = (float)((int)_maxHeroes - (int)_humans); } _heroes = GUIOperations.LabeledSlider(new Rect(offset + (3 * boxWidth / 2), offHumanTop + (2 * boxHeight), boxWidth + 50, boxHeight), "Number of AI-Heroes: " + (int)_heroes, _heroes, 0, (float)((int)_maxHeroes - (int)_humans)); GUI.skin = Myskin; float fontSize = 0.03f * Screen.height; GUI.skin.button.fontSize = (int)fontSize; if (GUI.Button(new Rect(Screen.width - (Screen.width / 7), Screen.height * (8.5f / 14), 6 * buttonWidth / 5, buttonHeight), "Main Menu")) { Application.LoadLevel("MainMenu"); } if (GUI.Button(new Rect(Screen.width - (Screen.width / 7), Screen.height - (Screen.height * (3.5f / 14)), 6 * buttonWidth / 5, buttonHeight), "Continue")) { manager.Difficulty = 0; manager.HeroCount = (int)_heroes; manager.PlayerCount = (int)_humans; manager.MercenaryCount = (int)_mercs; manager.SectionNo = 1; manager.TeamCount = 2; Application.LoadLevel("CharacterSelection"); } } if (_net.IsClient) { _firstBackground.GetComponent <GUITexture>().gameObject.SetActive(false); _secondBackground.GetComponent <GUITexture>().gameObject.SetActive(true); manager.Difficulty = 0; manager.HeroCount = (int)_heroes; manager.PlayerCount = (int)_humans; manager.MercenaryCount = (int)_mercs; manager.SectionNo = 1; manager.TeamCount = 2; GUIStyle labelStyle = new GUIStyle(GUI.skin.label); labelStyle.normal.textColor = Color.green; float labelWidth = Screen.width / 3; float labelHeight = Screen.height / 7; labelStyle.fontSize = (int)(0.15 * labelWidth); GUI.Label(new Rect(Screen.width / 3, Screen.height - (Screen.height / 4) - (Screen.height / 8), labelWidth, labelHeight), "Connected", labelStyle); GUIStyle buttonStyle = new GUIStyle(Myskin.button); buttonStyle.fontSize = (int)(0.3f * buttonHeight); if (GUI.Button(new Rect(Screen.width - (Screen.width / 7), Screen.height - (Screen.height * (3.5f / 14)), 6 * buttonWidth / 5, buttonHeight), "Continue", buttonStyle)) { Application.LoadLevel("CharacterSelection"); } } } }