private void CustomNumberOption_ValueChanged(object sender, CustomNumberOption.CustomNumberOptionEventArgs e) { switch (e.NumberOption.TitleText) { case "Map": { GameOptions.Map = (MapType)e.NumberOption.Value; GameOptions.RpcSyncSettings(); break; } case "Impostor Count": { GameOptions.ImpostorCount = int.Parse(e.NumberOption.Selected); GameOptions.RpcSyncSettings(); break; } case "Max Players": { GameOptions.MaxPlayers = int.Parse(e.NumberOption.Selected); GameOptions.RpcSyncSettings(); break; } } }
public override void Executed(string[] args) { if (CheepsAmongUsMod.IsDecidingClient) { if (CheepsAmongUsMod.CurrentGame.GameState == GameStateEnum.Started) { PlayerHudManager.AddChat(PlayerController.LocalPlayer, $"{Functions.ColorRed}The game options cannot be changed when the game has already started." ); //Send chat to player } else { try { switch (args[1].ToLower()) { case "commontasks": { var value = int.Parse(args[2]); GameOptions.CommonTasks = value; break; } case "confirmejects": { var value = bool.Parse(args[2]); GameOptions.ConfirmEjects = value; break; } case "crewmatevision": { var value = float.Parse(args[2]); GameOptions.CrewmateVision = value; break; } case "discussiontime": { var value = int.Parse(args[2]); GameOptions.DiscussionTime = value; break; } case "emergencycooldown": { var value = int.Parse(args[2]); GameOptions.EmergencyCooldown = value; break; } case "emergencymeetings": { var value = int.Parse(args[2]); GameOptions.EmergencyMeetings = value; break; } case "impostorcount": { var value = int.Parse(args[2]); GameOptions.ImpostorCount = value; break; } case "impostorvision": { var value = float.Parse(args[2]); GameOptions.ImpostorVision = value; break; } case "killcooldown": { var value = float.Parse(args[2]); GameOptions.KillCooldown = value; break; } case "killdistance": { try { var val = (KillDistance)Enum.Parse(typeof(KillDistance), args[2], true); GameOptions.KillDistance = val; } catch { PlayerHudManager.AddChat(PlayerController.LocalPlayer, $"{Functions.ColorRed}Syntax[]: {Functions.ColorPurple}{CommandStr} KillDistance <{NumEnumVals(typeof(KillDistance), " | ")}>" ); //Send syntax to player return; } break; } case "longtasks": { var value = int.Parse(args[2]); GameOptions.LongTasks = (byte)value; break; } case "map": { try { var val = (MapType)Enum.Parse(typeof(MapType), args[2], true); GameOptions.Map = val; } catch { PlayerHudManager.AddChat(PlayerController.LocalPlayer, $"{Functions.ColorRed}Syntax[]: {Functions.ColorPurple}{CommandStr} Map <{NumEnumVals(typeof(MapType), " | ")}>" ); //Send syntax to player return; } break; } case "maxplayers": { var value = int.Parse(args[2]); GameOptions.MaxPlayers = value; break; } case "playerspeed": { var value = float.Parse(args[2]); GameOptions.PlayerSpeed = value; break; } case "shorttasks": { var value = int.Parse(args[2]); GameOptions.ShortTasks = value; break; } case "taskbarupdates": { try { var val = (TaskBarUpdates)Enum.Parse(typeof(TaskBarUpdates), args[2], true); GameOptions.TaskBarUpdates = val; } catch { PlayerHudManager.AddChat(PlayerController.LocalPlayer, $"{Functions.ColorRed}Syntax[]: {Functions.ColorPurple}{CommandStr} TaskBarUpdates <{NumEnumVals(typeof(TaskBarUpdates), " | ")}>" ); //Send syntax to player return; } break; } case "votingtime": { var value = int.Parse(args[2]); GameOptions.VotingTime = value; break; } } GameOptions.RpcSyncSettings(); PlayerHudManager.AddChat(PlayerController.LocalPlayer, $"{Functions.ColorLime}Game Options have been updated." ); //Send chat to player } catch { string options = "CommonTasks | ConfirmEjects | CrewmateVision | DiscussionTime | EmergencyCooldown | " + "EmergencyMeetings | ImpostorCount | ImpostorVision | KillCooldown | KillDistance | " + "LongTasks | Map | MaxPlayers | PlayerSpeed | ShortTasks | TaskBarUpdates | VotingTime"; PlayerHudManager.AddChat(PlayerController.LocalPlayer, $"{Functions.ColorRed}Syntax[]: {Functions.ColorPurple}{CommandStr} <{options}> <Value>" ); //Send syntax to player } } } else { PlayerHudManager.AddChat(PlayerController.LocalPlayer, $"{Functions.ColorRed}Sorry, but only {Functions.ColorCyan}{CheepsAmongUsMod.DecidingClient.PlayerData.PlayerName} " + $"{Functions.ColorRed}can change the game options." ); //Send chat to player } }