private static void ApplyAllHooks() { Debug.Log("Applying monkland"); #region Entities AbstractPhysicalObjectHK.ApplyHook(); CreatureHK.ApplyHook(); PlayerGraphicsHK.ApplyHook(); PlayerHK.ApplyHook(); RockHK.ApplyHook(); RoomHK.ApplyHook(); SpearHK.ApplyHook(); WeaponHK.ApplyHook(); #endregion Entities #region Menus MainMenuHK.ApplyHook(); HUDHK.ApplyHook(); //RainMeterHK.ApplyHook(); #endregion Menus #region OverWorld AbstractRoomHK.ApplyHook(); OverWorldHK.ApplyHook(); ShortcutHandlerHK.ApplyHook(); #endregion OverWorld #region Others ProcessManagerHK.ApplyHook(); RainWorldGameHK.ApplyHook(); RainWorldHK.ApplyHook(); #endregion Others }
public override void Singal(MenuObject sender, string message) { if (message == "EXIT") { if (manager.musicPlayer != null) { manager.musicPlayer.FadeOutAllSongs(5f); this.manager.musicPlayer.MenuRequestsSong("RW_8 - Sundown", 1.4f, 2f); } manager.RequestMainProcessSwitch(ProcessManager.ProcessID.MainMenu); //MonklandSteamManager.instance.OnGameExit(); //Steamworks.SteamMatchmaking.LeaveLobby( SteamManagement.MonklandSteamManager.lobbyID ); } else if (message == "STARTLOBBY") { base.PlaySound(SoundID.MENU_Switch_Page_In); ProcessManagerHK.ImmediateSwitchCustom(this.manager, new SteamMultiplayerMenu(this.manager, true)); //opens lobby finder menu menu } else if (message.Contains("JOIN")) { int lobby = int.Parse(message.Substring(4)); if (lobby < MonklandSteamManager.lobbies.Count && !MonklandSteamManager.joining && !MonklandSteamManager.searching && MonklandSteamManager.lobbies[lobby].version == Monkland.VERSION) { MonklandSteamManager.instance.JoinLobby(MonklandSteamManager.lobbies[lobby].ID); } } else if (message.Contains("REFRESH")) { if (!MonklandSteamManager.searching && !MonklandSteamManager.joining) { MonklandSteamManager.instance.FindLobbies(); } } }
public void LobbyEntered(LobbyEnter_t enterLobby) { connectedPlayers.Clear(); otherPlayers.Clear(); ResetManagers(); { if (!(RainWorldHK.mainRW.processManager.currentMainLoop is SteamMultiplayerMenu)) { ProcessManagerHK.ImmediateSwitchCustom(RainWorldHK.mainRW.processManager, new SteamMultiplayerMenu(RainWorldHK.mainRW.processManager)); } } joining = false; lobbyID = (CSteamID)enterLobby.m_ulSteamIDLobby; int playerCount = SteamMatchmaking.GetNumLobbyMembers((CSteamID)enterLobby.m_ulSteamIDLobby); MultiplayerChat.AddChat("Entered Lobby!"); //Send packets to all players, to establish P2P connections with them if (playerCount > 1) { for (int i = 0; i < playerCount; i++) { CSteamID lobbyMember = SteamMatchmaking.GetLobbyMemberByIndex(lobbyID, i); SteamNetworking.SendP2PPacket(lobbyMember, new byte[] { 255 }, 1, EP2PSend.k_EP2PSendReliable, 0); SteamNetworking.SendP2PPacket(lobbyMember, new byte[] { 255 }, 1, EP2PSend.k_EP2PSendReliable, 1); SteamNetworking.SendP2PPacket(lobbyMember, new byte[] { 255 }, 1, EP2PSend.k_EP2PSendReliable, 2); if (!connectedPlayers.Contains(lobbyMember.m_SteamID)) { connectedPlayers.Add(lobbyMember.m_SteamID); PlayerJoinedManagers(lobbyMember.m_SteamID); } if (lobbyMember != SteamUser.GetSteamID()) { otherPlayers.Add(lobbyMember.m_SteamID); } } } //Set up network data NetworkGameManager.managerID = ulong.Parse(SteamMatchmaking.GetLobbyData(lobbyID, MANAGER_ID)); NetworkGameManager.playerID = SteamUser.GetSteamID().m_SteamID; if (NetworkGameManager.managerID != NetworkGameManager.playerID) { lobbyInfo = new LobbyInfo((CSteamID)enterLobby.m_ulSteamIDLobby); lobbyInfo.UpdateLobbyInfo((CSteamID)enterLobby.m_ulSteamIDLobby); lobbyInfo.owner = new CSteamID(NetworkGameManager.managerID); } if (!connectedPlayers.Contains(SteamUser.GetSteamID().m_SteamID)) { connectedPlayers.Add(SteamUser.GetSteamID().m_SteamID); PlayerJoinedManagers(SteamUser.GetSteamID().m_SteamID); } MultiplayerChat.AddChat("This game's manager is " + SteamFriends.GetFriendPersonaName((CSteamID)NetworkGameManager.managerID)); isInGame = true; Log("Entered Lobby! \nThis game's manager is " + SteamFriends.GetFriendPersonaName((CSteamID)NetworkGameManager.managerID)); }
private static void SingalHK(On.Menu.MainMenu.orig_Singal orig, MainMenu self, MenuObject sender, string message) { if (message == "COOP") { self.PlaySound(SoundID.MENU_Switch_Page_In); ProcessManagerHK.ImmediateSwitchCustom(self.manager, new LobbyFinderMenu(self.manager)); //opens lobby finder menu menu return; } orig(self, sender, message); }
public void LobbyJoinRequested(GameLobbyJoinRequested_t request) {//Shift-Tab Menu { if (RainWorldHK.mainRW.processManager.currentMainLoop is SteamMultiplayerMenu) { if (lobbyID.m_SteamID != 0) { LeaveLobby(); } } ProcessManagerHK.ImmediateSwitchCustom(RainWorldHK.mainRW.processManager, new SteamMultiplayerMenu(RainWorldHK.mainRW.processManager)); } joining = true; SteamMatchmaking.JoinLobby(request.m_steamIDLobby); }
public override void Singal(MenuObject sender, string message) { if (message == "EXIT") { //if (manager.musicPlayer != null) { // manager.musicPlayer.FadeOutAllSongs(5f); // this.manager.musicPlayer.MenuRequestsSong("RW_8 - Sundown", 1.4f, 2f); //} //manager.RequestMainProcessSwitch( ProcessManager.ProcessID.MainMenu ); MonklandSteamManager.instance.OnGameExit(); Steamworks.SteamMatchmaking.LeaveLobby(SteamManagement.MonklandSteamManager.lobbyID); ProcessManagerHK.ImmediateSwitchCustom(this.manager, new LobbyFinderMenu(this.manager)); //opens lobby finder menu menu } else if (message == "READYUP") { MonklandSteamManager.GameManager.SendColor(NetworkGameManager.UtilMessageType.BodyColorR); MonklandSteamManager.GameManager.SendColor(NetworkGameManager.UtilMessageType.BodyColorG); MonklandSteamManager.GameManager.SendColor(NetworkGameManager.UtilMessageType.BodyColorB); MonklandSteamManager.GameManager.SendColor(NetworkGameManager.UtilMessageType.EyeColorR); MonklandSteamManager.GameManager.SendColor(NetworkGameManager.UtilMessageType.EyeColorG); MonklandSteamManager.GameManager.SendColor(NetworkGameManager.UtilMessageType.EyeColorB); MonklandSteamManager.GameManager.ToggleReady(); } else if (message == "STARTGAME") { if (manager.musicPlayer != null) { manager.musicPlayer.FadeOutAllSongs(5f); } if (NetworkGameManager.isManager) { settingsLabel.text = ""; bodyLabel.text = ""; eyesLabel.text = ""; base.PlaySound(SoundID.MENU_Switch_Page_In); gameStarting = true; MonklandSteamManager.GameManager.QueueStart(); } } }