public MyOptions() : base("mySettings", 60) { Bot = AddOption(false, "Bot", false); VoIP = AddOption(false, "VoIP"); Distance = AddOption(1.5f, "Distance", 0, 3); }
public override void Load() { _logger = Log; _logger.LogInfo($"{PluginName} v{PluginVersion} created by Cheep loaded"); RandomMapLocations.Add(MapType.Polus, new Vector2[] { new Vector2(3, -12), new Vector2(9, -12), new Vector2(2, -17), new Vector2(2, -24), new Vector2(12, -23), new Vector2(12, -16), new Vector2(24, -22.5f), new Vector2(20, -17.5f), new Vector2(20, -11), new Vector2(35, -8), new Vector2(40, -10), new Vector2(37, -21), new Vector2(17, -3) }); RandomMapLocations.Add(MapType.Skeld, new Vector2[] { new Vector2(-1, -1), new Vector2(-8.8f, -3), new Vector2(-13.5f, -4.5f), new Vector2(-20.5f, -6), new Vector2(-17.5f, 2.5f), new Vector2(-2, -15.5f), new Vector2(9.4f, 2.8f), new Vector2(9.4f, -12), new Vector2(4, -15.5f), new Vector2(-7.5f, -8.5f), new Vector2(-15, -12), new Vector2(6.5f, -3.5f), new Vector2(16.5f, -5) }); RandomMapLocations.Add(MapType.MiraHQ, new Vector2[] { new Vector2(-4, 2.5f), new Vector2(15, 0), new Vector2(6, 1.5f), new Vector2(6, 6), new Vector2(2.4f, 11.5f), new Vector2(8.5f, 13), new Vector2(15, 4), new Vector2(20, 4.5f), new Vector2(23.8f, -1.7f), new Vector2(25.5f, 3), new Vector2(17.7f, 11.5f), new Vector2(21, 20.6f), new Vector2(14.8f, 20.3f), new Vector2(17.8f, 23.8f) }); _logger.LogInfo("Enabling harmony"); #region ---------- Enable Harmony Patching ---------- var harmony = new Harmony(PluginGuid); harmony.PatchAll(Assembly.GetExecutingAssembly()); #endregion _logger.LogInfo("Loading regions"); #region ---------- Add custom regions ---------- new Region(ServerName, ServerIP, new Server(ServerName, ServerIP, ServerPort)).InsertRegion(0); // Add Cheep-YT.com string serversPath = $"BepInEx/plugins/{PluginName}/servers/"; // Path to servers Directory.CreateDirectory(serversPath); // Create directory, if it does not exist if (!File.Exists(serversPath + "README.txt")) // Create a readme, if it does not exist { File.AppendAllText(serversPath + "README.txt", "This directory can be used to add additional servers.\r\n" + "\r\n" + "To add a server, create a .txt file and name it, how you want the server to be called.\r\n" + "Within this file simply enter the ip adress and port like this:\r\n" + "207.180.234.175:22023"); } foreach (var file in Directory.GetFiles(serversPath).Where(x => !Path.GetFileName(x).Equals("README.txt") && x.EndsWith(".txt"))) // Get all files in directory { var server = File.ReadAllLines(file)[0].Split(':'); // Get the first line of the file try { string ip = server[0]; // Get the servers ip ushort port = ushort.Parse(server[1]); // Get the servers port string name = Path.GetFileNameWithoutExtension(file); // Get the server name new Region(name, ip, new Server(name, ip, port)).AddRegion(); // Add region } catch (Exception e) { _logger.LogError("Failed to parse server " + file + ": " + e); } } #endregion _logger.LogInfo("Setting up custom options"); #region ----------- Setup Custom Options ----------- HeaderNumberOption = new CustomNumberOption(Functions.ColorCyan + PluginName, new string[] { $"{GameMode.AvailableGameModes.Count - 1} Modes" }); GameModeNumberOption = new CustomNumberOption("GameMode", GameMode.ShortGameModeNames); GameModeNumberOption.ValueChanged += GameModeManager.GameModeNumberOption_ValueChanged; var mapObject = new CustomNumberOption("Map", Enum.GetNames(typeof(MapType))); mapObject.ValueChanged += CustomNumberOption_ValueChanged;; mapObject.Value = (int)GameOptions.Map; var impostorsObject = new CustomNumberOption("Impostor Count", new string[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" }); impostorsObject.Value = 1; impostorsObject.ValueChanged += CustomNumberOption_ValueChanged; var maxPlayerObj = new CustomNumberOption("Max Players", new string[] { "4", "5", "10", "15", "20", "30", "50", "70", "100", "125" }); impostorsObject.Value = 2; maxPlayerObj.ValueChanged += CustomNumberOption_ValueChanged; #endregion #region ---------- Update CustomNumberOptions ---------- LobbyBehaviourStartedEvent.Listener += () => { CurrentButtonIndex = 0; Task.Run(async() => { await Task.Delay(2000); mapObject.Value = (int)GameOptions.Map; impostorsObject.Value = impostorsObject.ValueStrings.IndexOf(GameOptions.ImpostorCount.ToString()); maxPlayerObj.Value = maxPlayerObj.ValueStrings.IndexOf(GameOptions.MaxPlayers.ToString()); }); }; #endregion _logger.LogInfo("Registering commands"); #region ---------- Register Commands ---------- new HelpCommand(); new GameOptionsCommand(); #endregion SelectedGameMode = new GameMode(0, "Default"); GameModeManager.Start(); // Start GameModeManager RoleManager.Start(); // Start RoleManager RoleGameModeManager.Start(); // Start RoleGameModeManager Notifier.StartNotifier(); // Start Notifier if (Config.Bind("Debug", "enable_debug", true, "Enables the debug menu").Value) { DebugMenu.Start(); } }
public TeleportationGameMode() : base(16, "Teleportation") { #region ---------- Add Teleportation Locations ---------- MapLocations.Add(MapType.Polus, new Vector2[] { new Vector2(3, -12), new Vector2(9, -12), new Vector2(2, -17), new Vector2(2, -24), new Vector2(12, -23), new Vector2(12, -16), new Vector2(24, -22.5f), new Vector2(20, -17.5f), new Vector2(20, -11), new Vector2(35, -8), new Vector2(40, -10), new Vector2(37, -21), new Vector2(17, -3) }); MapLocations.Add(MapType.Skeld, new Vector2[] { new Vector2(-1, -1), new Vector2(-8.8f, -3), new Vector2(-13.5f, -4.5f), new Vector2(-20.5f, -6), new Vector2(-17.5f, 2.5f), new Vector2(-2, -15.5f), new Vector2(9.4f, 2.8f), new Vector2(9.4f, -12), new Vector2(4, -15.5f), new Vector2(-7.5f, -8.5f), new Vector2(-15, -12), new Vector2(6.5f, -3.5f), new Vector2(16.5f, -5) }); MapLocations.Add(MapType.MiraHQ, new Vector2[] { new Vector2(-4, 2.5f), new Vector2(15, 0), new Vector2(6, 1.5f), new Vector2(6, 6), new Vector2(2.4f, 11.5f), new Vector2(8.5f, 13), new Vector2(15, 4), new Vector2(20, 4.5f), new Vector2(23.8f, -1.7f), new Vector2(25.5f, 3), new Vector2(17.7f, 11.5f), new Vector2(21, 20.6f), new Vector2(14.8f, 20.3f), new Vector2(17.8f, 23.8f) }); #endregion #region ---------- Add Custom Options ---------- new CustomNumberOption($"{Functions.ColorPurple}{GameModeName}", new string[] { "Options" }); var delay = new CustomNumberOption("Teleportation Delay", CheepsAmongUsMod.CheepsAmongUsMod.TimeStrings); delay.ValueChanged += Delay_ValueChanged; delay.Value = CheepsAmongUsMod.CheepsAmongUsMod.TimeStrings.ToList().IndexOf(TeleportationDelay.ToString()); #endregion RpcManager.RpcReceived += RpcManager_RpcReceived; }