public SteamMultiplayerMenu(ProcessManager manager, bool shouldCreateLobby = false) : base(manager, ProcessManager.ProcessID.MainMenu) { if (shouldCreateLobby) { MonklandSteamManager.instance.CreateLobby(); } this.blackFade = 1f; this.lastBlackFade = 1f; this.pages.Add(new Page(this, null, "main", 0)); this.scene = new InteractiveMenuScene(this, this.pages[0], MenuScene.SceneID.Landscape_SU); this.pages[0].subObjects.Add(this.scene); this.darkSprite = new FSprite("pixel", true); this.darkSprite.color = new Color(0f, 0f, 0f); this.darkSprite.anchorX = 0f; this.darkSprite.anchorY = 0f; this.darkSprite.scaleX = 1368f; this.darkSprite.scaleY = 770f; this.darkSprite.x = -1f; this.darkSprite.y = -1f; this.darkSprite.alpha = 0.85f; this.pages[0].Container.AddChild(this.darkSprite); this.blackFadeSprite = new FSprite("Futile_White", true); this.blackFadeSprite.scaleX = 87.5f; this.blackFadeSprite.scaleY = 50f; this.blackFadeSprite.x = manager.rainWorld.screenSize.x / 2f; this.blackFadeSprite.y = manager.rainWorld.screenSize.y / 2f; this.blackFadeSprite.color = new Color(0f, 0f, 0f); Futile.stage.AddChild(this.blackFadeSprite); //Back button this.backButton = new SimpleButton(this, this.pages[0], base.Translate("BACK"), "EXIT", new Vector2(200f, 50f), new Vector2(110f, 30f)); this.pages[0].subObjects.Add(this.backButton); //Ready Up button this.startGameButton = new SimpleButton(this, this.pages[0], "Start Game", "STARTGAME", new Vector2(-100000, 50f), new Vector2(110f, 30f)); this.pages[0].subObjects.Add(this.startGameButton); //Ready Up button this.readyUpButton = new SimpleButton(this, this.pages[0], "Ready UP", "READYUP", new Vector2(1000, 50f), new Vector2(110f, 30f)); this.pages[0].subObjects.Add(this.readyUpButton); //Multiplayer Chat this.gameChat = new MultiplayerChat(this, this.pages[0], new Vector2(420, 125), new Vector2(800, 600)); this.pages[0].subObjects.Add(this.gameChat); //Invite menu playerList = new MultiplayerPlayerList(this, this.pages[0], new Vector2(200, 125), new Vector2(200, 600), new Vector2(180, 180)); this.pages[0].subObjects.Add(this.playerList); }
public SteamMultiplayerMenu(ProcessManager manager, bool shouldCreateLobby = false) : base(manager, ProcessManager.ProcessID.MainMenu) { if (shouldCreateLobby) { MonklandSteamManager.instance.CreateLobby(); } #region UI ELEMENTS SIZE DEFINITION float resOffset = (1366 - manager.rainWorld.screenSize.x) / 2; // shift everything to the right depending on the resolution. 1/2 of the diff with the max resolution. float screenWidth = manager.rainWorld.screenSize.x; float screenHeight = manager.rainWorld.screenSize.y; // initialize some dynamic sizes and positions for UI elements. // player list and multiplayer settings have the same size no matter what the resolution. // the room chat adjusts to fill all the middle space float panelGutter = 15; // gap width between the panels float playerListWidth = 200; // constant float multiplayerSettingsWidth = 300; // constant float multiplayerSettingsSliderWidth = multiplayerSettingsWidth - 115; // constant float roomChatWidth = screenWidth - (playerListWidth + multiplayerSettingsWidth + panelGutter * 4); // depends on resolution float playerListPositionX = panelGutter; // position depending on size float multiplayerSettingsPositionX = screenWidth - (multiplayerSettingsWidth + panelGutter); // position depending on screen width float multiplayerSettingsSliderPositionX = multiplayerSettingsPositionX + 10; // constant float roomChatPositionX = playerListWidth + panelGutter * 2; // position depending on player list width float controlButtonSpaceHeight = 100; // constant float panelHeight = screenHeight - (controlButtonSpaceHeight + panelGutter * 2); // leaving a space for control buttons float panelPositionY = controlButtonSpaceHeight; // constant #endregion this.blackFade = 1f; this.lastBlackFade = 1f; this.pages.Add(new Page(this, null, "main", 0)); //this.scene = new InteractiveMenuScene( this, this.pages[0], MenuScene.SceneID.Landscape_SU ); //this.pages[0].subObjects.Add( this.scene ); this.darkSprite = new FSprite("pixel", true); this.darkSprite.color = new Color(0f, 0f, 0f); this.darkSprite.anchorX = 0f; this.darkSprite.anchorY = 0f; this.darkSprite.scaleX = screenWidth; this.darkSprite.scaleY = screenHeight; this.darkSprite.x = screenWidth / 2f; this.darkSprite.y = screenHeight / 2f; this.darkSprite.alpha = 0.85f; this.pages[0].Container.AddChild(this.darkSprite); this.blackFadeSprite = new FSprite("Futile_White", true); this.blackFadeSprite.scaleX = 87.5f; this.blackFadeSprite.scaleY = 50f; this.blackFadeSprite.x = screenWidth / 2f; this.blackFadeSprite.y = screenHeight / 2f; this.blackFadeSprite.color = new Color(0f, 0f, 0f); Futile.stage.AddChild(this.blackFadeSprite); //Multiplayer Settings Box colorBox = new RoundedRect(this, this.pages[0], new Vector2(resOffset + multiplayerSettingsPositionX, panelPositionY), new Vector2(multiplayerSettingsWidth, panelHeight), false); this.pages[0].subObjects.Add(colorBox); //Settings Label settingsLabel = new FLabel("font", "Multiplayer Settings"); settingsLabel.SetPosition(new Vector2(multiplayerSettingsPositionX + 70, screenHeight - 60)); Futile.stage.AddChild(this.settingsLabel); //Body Color Label bodyLabel = new FLabel("font", "Body Color"); bodyLabel.SetPosition(new Vector2(multiplayerSettingsPositionX + 70, screenHeight - 90)); Futile.stage.AddChild(this.bodyLabel); //Red Slider bodyRed = new HorizontalSlider(this, this.pages[0], "Red", new Vector2(resOffset + multiplayerSettingsSliderPositionX, screenHeight - 130), new Vector2(multiplayerSettingsSliderWidth, 30), (Slider.SliderID)patch_Slider.SliderID.BodyRed, false); bodyRed.floatValue = MonklandSteamManager.bodyColor.r; bodyRed.buttonBehav.greyedOut = false; this.pages[0].subObjects.Add(this.bodyRed); //Green Slider bodyGreen = new HorizontalSlider(this, this.pages[0], "Green", new Vector2(resOffset + multiplayerSettingsSliderPositionX, screenHeight - 170), new Vector2(multiplayerSettingsSliderWidth, 30), (Slider.SliderID)patch_Slider.SliderID.BodyGreen, false); bodyGreen.floatValue = MonklandSteamManager.bodyColor.g; bodyGreen.buttonBehav.greyedOut = false; this.pages[0].subObjects.Add(this.bodyGreen); //Blue Slider bodyBlue = new HorizontalSlider(this, this.pages[0], "Blue", new Vector2(resOffset + multiplayerSettingsSliderPositionX, screenHeight - 210), new Vector2(multiplayerSettingsSliderWidth, 30), (Slider.SliderID)patch_Slider.SliderID.BodyBlue, false); bodyBlue.floatValue = MonklandSteamManager.bodyColor.b; bodyBlue.buttonBehav.greyedOut = false; this.pages[0].subObjects.Add(this.bodyBlue); //Eye Color Label eyesLabel = new FLabel("font", "Eye Color"); eyesLabel.SetPosition(new Vector2(multiplayerSettingsPositionX + 70, screenHeight - 240)); Futile.stage.AddChild(this.eyesLabel); //Red Slider eyesRed = new HorizontalSlider(this, this.pages[0], "Red ", new Vector2(resOffset + multiplayerSettingsSliderPositionX, screenHeight - 280), new Vector2(multiplayerSettingsSliderWidth, 30), (Slider.SliderID)patch_Slider.SliderID.EyesRed, false); eyesRed.floatValue = MonklandSteamManager.eyeColor.r; this.pages[0].subObjects.Add(this.eyesRed); //Green Slider eyesGreen = new HorizontalSlider(this, this.pages[0], "Green ", new Vector2(resOffset + multiplayerSettingsSliderPositionX, screenHeight - 320), new Vector2(multiplayerSettingsSliderWidth, 30), (Slider.SliderID)patch_Slider.SliderID.EyesGreen, false); eyesGreen.floatValue = MonklandSteamManager.eyeColor.g; this.pages[0].subObjects.Add(this.eyesGreen); //Blue Slider eyesBlue = new HorizontalSlider(this, this.pages[0], "Blue ", new Vector2(resOffset + multiplayerSettingsSliderPositionX, screenHeight - 360), new Vector2(multiplayerSettingsSliderWidth, 30), (Slider.SliderID)patch_Slider.SliderID.EyesBlue, false); eyesBlue.floatValue = MonklandSteamManager.eyeColor.b; this.pages[0].subObjects.Add(this.eyesBlue); //Slugcat Eyes Sprite eyes = new FSprite("FoodCircleB", true); eyes.scaleX = 1f; eyes.scaleY = 1.1f; eyes.color = new Color(0, 0, 0); eyes.x = multiplayerSettingsPositionX + 130; eyes.y = manager.rainWorld.screenSize.y - 236; eyes.isVisible = true; this.pages[0].Container.AddChild(this.eyes); //Slugcat Sprite slugcat = new FSprite("slugcatSleeping", true); slugcat.scaleX = 1f; slugcat.scaleY = 1f; slugcat.color = new Color(1f, 1f, 1f); slugcat.x = multiplayerSettingsPositionX + 136; slugcat.y = manager.rainWorld.screenSize.y - 235; slugcat.isVisible = true; this.pages[0].Container.AddChild(this.slugcat); //Debug Mode checkbox this.debugCheckBox = new CheckBox(this, this.pages[0], this, new Vector2(resOffset + multiplayerSettingsSliderPositionX + 120f, screenHeight - 400f), 120f, "Debug Mode", "DEBUG"); this.pages[0].subObjects.Add(this.debugCheckBox); //Slugcat Buttons this.slugcatButtons = new SelectOneButton[3]; this.slugcatButtons[0] = new SelectOneButton(this, this.pages[0], base.Translate("SURVIOR"), "Slugcat", new Vector2(resOffset + multiplayerSettingsSliderPositionX, screenHeight - 445f), new Vector2(110f, 30f), this.slugcatButtons, 0); this.pages[0].subObjects.Add(this.slugcatButtons[0]); this.slugcatButtons[1] = new SelectOneButton(this, this.pages[0], base.Translate("MONK"), "Slugcat", new Vector2(resOffset + multiplayerSettingsSliderPositionX, screenHeight - 490f), new Vector2(110f, 30f), this.slugcatButtons, 1); this.pages[0].subObjects.Add(this.slugcatButtons[1]); this.slugcatButtons[2] = new SelectOneButton(this, this.pages[0], base.Translate("HUNTER"), "Slugcat", new Vector2(resOffset + multiplayerSettingsSliderPositionX, screenHeight - 535f), new Vector2(110f, 30f), this.slugcatButtons, 2); this.pages[0].subObjects.Add(this.slugcatButtons[2]); //Back button this.backButton = new SimpleButton(this, this.pages[0], base.Translate("BACK"), "EXIT", new Vector2(resOffset + 15f, 50f), new Vector2(110f, 30f)); this.pages[0].subObjects.Add(this.backButton); //Start Game button this.startGameButton = new SimpleButton(this, this.pages[0], "Start Game", "STARTGAME", new Vector2(resOffset + screenWidth - 125, 50f), new Vector2(110f, 30f)); this.pages[0].subObjects.Add(this.startGameButton); //Ready Up button this.readyUpButton = new SimpleButton(this, this.pages[0], "Ready UP", "READYUP", new Vector2(resOffset + screenWidth - 250, 50f), new Vector2(110f, 30f)); this.pages[0].subObjects.Add(this.readyUpButton); //Multiplayer Chat this.gameChat = new MultiplayerChat(this, this.pages[0], new Vector2(resOffset + roomChatPositionX, panelPositionY), new Vector2(roomChatWidth, panelHeight)); this.pages[0].subObjects.Add(this.gameChat); //Invite menu playerList = new MultiplayerPlayerList(this, this.pages[0], new Vector2(resOffset + playerListPositionX, panelPositionY), new Vector2(playerListWidth, panelHeight), new Vector2(playerListWidth - 20, playerListWidth - 20)); this.pages[0].subObjects.Add(this.playerList); //Controller Combatability this.bodyRed.nextSelectable[1] = this.readyUpButton; this.bodyRed.nextSelectable[3] = this.bodyGreen; this.bodyGreen.nextSelectable[1] = this.bodyRed; this.bodyGreen.nextSelectable[3] = this.bodyBlue; this.bodyBlue.nextSelectable[1] = this.bodyGreen; this.bodyBlue.nextSelectable[3] = this.eyesRed; this.eyesRed.nextSelectable[1] = this.bodyBlue; this.eyesRed.nextSelectable[3] = this.eyesGreen; this.eyesGreen.nextSelectable[1] = this.eyesRed; this.eyesGreen.nextSelectable[3] = this.eyesBlue; this.eyesBlue.nextSelectable[1] = this.eyesGreen; this.eyesBlue.nextSelectable[3] = this.debugCheckBox; this.debugCheckBox.nextSelectable[1] = this.eyesBlue; this.debugCheckBox.nextSelectable[3] = this.readyUpButton; this.readyUpButton.nextSelectable[0] = this.backButton; this.readyUpButton.nextSelectable[1] = this.debugCheckBox; this.readyUpButton.nextSelectable[2] = this.startGameButton; this.readyUpButton.nextSelectable[3] = this.bodyRed; this.startGameButton.nextSelectable[0] = this.readyUpButton; this.startGameButton.nextSelectable[1] = this.eyesBlue; this.startGameButton.nextSelectable[2] = this.backButton; this.startGameButton.nextSelectable[3] = this.bodyRed; this.backButton.nextSelectable[0] = this.startGameButton; this.backButton.nextSelectable[2] = this.readyUpButton; this.backButton.nextSelectable[1] = this.bodyRed; this.backButton.nextSelectable[3] = this.eyesBlue; //Some Nice Music :) if (manager.musicPlayer != null) { manager.musicPlayer.MenuRequestsSong("NA_05 - Sparkles", 1.2f, 10f); } }
public SteamMultiplayerMenu(ProcessManager manager, bool shouldCreateLobby = false) : base(manager, ProcessManager.ProcessID.MainMenu) { if (shouldCreateLobby) { MonklandSteamManager.instance.CreateLobby(); } this.blackFade = 1f; this.lastBlackFade = 1f; this.pages.Add(new Page(this, null, "main", 0)); //this.scene = new InteractiveMenuScene( this, this.pages[0], MenuScene.SceneID.Landscape_SU ); //this.pages[0].subObjects.Add( this.scene ); this.darkSprite = new FSprite("pixel", true); this.darkSprite.color = new Color(0f, 0f, 0f); this.darkSprite.anchorX = 0f; this.darkSprite.anchorY = 0f; this.darkSprite.scaleX = 1368f; this.darkSprite.scaleY = 770f; this.darkSprite.x = -1f; this.darkSprite.y = -1f; this.darkSprite.alpha = 0.85f; this.pages[0].Container.AddChild(this.darkSprite); this.blackFadeSprite = new FSprite("Futile_White", true); this.blackFadeSprite.scaleX = 87.5f; this.gameStarting = false; this.blackFadeSprite.scaleY = 50f; this.blackFadeSprite.x = manager.rainWorld.screenSize.x / 2f; this.blackFadeSprite.y = manager.rainWorld.screenSize.y / 2f; this.blackFadeSprite.color = new Color(0f, 0f, 0f); Futile.stage.AddChild(this.blackFadeSprite); //Multiplayer Settings Box colorBox = new RoundedRect(this, this.pages[0], new Vector2(940, 125), new Vector2(400, 600), false); this.pages[0].subObjects.Add(colorBox); //Settings Label settingsLabel = new FLabel("font", "Multiplayer Settings"); settingsLabel.SetPosition(new Vector2(1140, manager.rainWorld.screenSize.y - 60)); Futile.stage.AddChild(this.settingsLabel); //Body Color Label bodyLabel = new FLabel("font", "Body Color"); bodyLabel.SetPosition(new Vector2(1140, manager.rainWorld.screenSize.y - 90)); Futile.stage.AddChild(this.bodyLabel); //Red Slider bodyRed = new HorizontalSlider(this, this.pages[0], "Red", new Vector2(960, manager.rainWorld.screenSize.y - 130), new Vector2(255, 30), (Slider.SliderID)patch_Slider.SliderID.BodyRed, false); bodyRed.floatValue = 1f; bodyRed.buttonBehav.greyedOut = false; this.pages[0].subObjects.Add(this.bodyRed); //Green Slider bodyGreen = new HorizontalSlider(this, this.pages[0], "Green", new Vector2(960, manager.rainWorld.screenSize.y - 170), new Vector2(255, 30), (Slider.SliderID)patch_Slider.SliderID.BodyGreen, false); bodyGreen.floatValue = 1f; bodyGreen.buttonBehav.greyedOut = false; this.pages[0].subObjects.Add(this.bodyGreen); //Blue Slider bodyBlue = new HorizontalSlider(this, this.pages[0], "Blue", new Vector2(960, manager.rainWorld.screenSize.y - 210), new Vector2(255, 30), (Slider.SliderID)patch_Slider.SliderID.BodyBlue, false); bodyBlue.floatValue = 1f; bodyBlue.buttonBehav.greyedOut = false; this.pages[0].subObjects.Add(this.bodyBlue); //Eye Color Label eyesLabel = new FLabel("font", "Eye Color"); eyesLabel.SetPosition(new Vector2(1140, manager.rainWorld.screenSize.y - 235)); Futile.stage.AddChild(this.eyesLabel); //Red Slider eyesRed = new HorizontalSlider(this, this.pages[0], "Red ", new Vector2(960, manager.rainWorld.screenSize.y - 280), new Vector2(255, 30), (Slider.SliderID)patch_Slider.SliderID.EyesRed, false); eyesRed.floatValue = 0f; this.pages[0].subObjects.Add(this.eyesRed); //Green Slider eyesGreen = new HorizontalSlider(this, this.pages[0], "Green ", new Vector2(960, manager.rainWorld.screenSize.y - 320), new Vector2(255, 30), (Slider.SliderID)patch_Slider.SliderID.EyesGreen, false); eyesGreen.floatValue = 0f; this.pages[0].subObjects.Add(this.eyesGreen); //Blue Slider eyesBlue = new HorizontalSlider(this, this.pages[0], "Blue ", new Vector2(960, manager.rainWorld.screenSize.y - 360), new Vector2(255, 30), (Slider.SliderID)patch_Slider.SliderID.EyesBlue, false); eyesBlue.floatValue = 0f; this.pages[0].subObjects.Add(this.eyesBlue); //Slugcat Eyes Sprite eyes = new FSprite("FoodCircleB", true); eyes.scaleX = 1f; eyes.scaleY = 1f; eyes.color = new Color(0, 0, 0); eyes.x = 964; eyes.y = manager.rainWorld.screenSize.y - 236; eyes.isVisible = true; this.pages[0].Container.AddChild(this.eyes); //Slugcat Sprite slugcat = new FSprite("slugcatSleeping", true); slugcat.scaleX = 1f; slugcat.scaleY = 1f; slugcat.color = new Color(1f, 1f, 1f); slugcat.x = 970; slugcat.y = manager.rainWorld.screenSize.y - 235; slugcat.isVisible = true; this.pages[0].Container.AddChild(this.slugcat); //Back button this.backButton = new SimpleButton(this, this.pages[0], base.Translate("BACK"), "EXIT", new Vector2(100f, 50f), new Vector2(110f, 30f)); this.pages[0].subObjects.Add(this.backButton); //Back button this.backButton = new SimpleButton(this, this.pages[0], base.Translate("BACK"), "EXIT", new Vector2(100f, 50f), new Vector2(110f, 30f)); this.pages[0].subObjects.Add(this.backButton); //Start Game button this.startGameButton = new SimpleButton(this, this.pages[0], "Start Game", "STARTGAME", new Vector2(1060, 50f), new Vector2(110f, 30f)); this.pages[0].subObjects.Add(this.startGameButton); //Ready Up button this.readyUpButton = new SimpleButton(this, this.pages[0], "Ready UP", "READYUP", new Vector2(940, 50f), new Vector2(110f, 30f)); this.pages[0].subObjects.Add(this.readyUpButton); //Multiplayer Chat this.gameChat = new MultiplayerChat(this, this.pages[0], new Vector2(320, 125), new Vector2(600, 600)); this.pages[0].subObjects.Add(this.gameChat); //Invite menu playerList = new MultiplayerPlayerList(this, this.pages[0], new Vector2(100, 125), new Vector2(200, 600), new Vector2(180, 180)); this.pages[0].subObjects.Add(this.playerList); //Controller Combatability this.bodyRed.nextSelectable[1] = this.readyUpButton; this.bodyRed.nextSelectable[3] = this.bodyGreen; this.bodyGreen.nextSelectable[1] = this.bodyRed; this.bodyGreen.nextSelectable[3] = this.bodyBlue; this.bodyBlue.nextSelectable[1] = this.bodyGreen; this.bodyBlue.nextSelectable[3] = this.eyesRed; this.eyesRed.nextSelectable[1] = this.bodyBlue; this.eyesRed.nextSelectable[3] = this.eyesGreen; this.eyesGreen.nextSelectable[1] = this.eyesRed; this.eyesGreen.nextSelectable[3] = this.eyesBlue; this.eyesBlue.nextSelectable[1] = this.eyesGreen; this.eyesBlue.nextSelectable[3] = this.readyUpButton; this.readyUpButton.nextSelectable[0] = this.backButton; this.readyUpButton.nextSelectable[1] = this.eyesBlue; this.readyUpButton.nextSelectable[2] = this.startGameButton; this.readyUpButton.nextSelectable[3] = this.bodyRed; this.startGameButton.nextSelectable[0] = this.readyUpButton; this.startGameButton.nextSelectable[1] = this.eyesBlue; this.startGameButton.nextSelectable[2] = this.backButton; this.startGameButton.nextSelectable[3] = this.bodyRed; this.backButton.nextSelectable[0] = this.startGameButton; this.backButton.nextSelectable[2] = this.readyUpButton; this.backButton.nextSelectable[1] = this.bodyRed; this.backButton.nextSelectable[3] = this.eyesBlue; //Some Nice Music :) if (manager.musicPlayer != null) { manager.musicPlayer.MenuRequestsSong("NA_05 - Sparkles", 1.2f, 10f); } }