From c573c8bd87f191a24444afe3fb751306c656dd3b Mon Sep 17 00:00:00 2001 From: Kevin Gay <5970002+GayKevin@users.noreply.github.com> Date: Sun, 22 Oct 2023 16:42:09 +0200 Subject: [PATCH] Feat: Enable translation. Some are still missing though --- .../CrewmateRoles/DetectiveMod/DeadBody.cs | 13 +- .../CrewmateRoles/MedicMod/DeadBody.cs | 9 +- .../OracleMod/HighlightConfessor.cs | 7 +- .../CrewmateRoles/OracleMod/MeetingStart.cs | 11 +- .../ProsecutorMod/AddProsecute.cs | 3 +- .../CrewmateRoles/TrapperMod/MeetingStart.cs | 7 +- .../CrewmateRoles/VigilanteMod/AddButton.cs | 3 +- source/Patches/CustomOption/Export.cs | 17 +- source/Patches/CustomOption/Generate.cs | 904 ++-- source/Patches/CustomOption/Import.cs | 3 +- .../BlackmailerMod/BlackmailMeetingUpdate.cs | 3 +- .../Localization/LocalizationManager.cs | 96 + source/Patches/Modifiers/LoversMod/Outro.cs | 5 +- .../Patches/NeutralRoles/ArsonistMod/Outro.cs | 3 +- .../NeutralRoles/DoomsayerMod/MeetingStart.cs | 37 +- .../NeutralRoles/DoomsayerMod/Outro.cs | 3 +- .../NeutralRoles/ExecutionerMod/Outro.cs | 3 +- .../Patches/NeutralRoles/GlitchMod/Outro.cs | 3 +- .../Patches/NeutralRoles/JesterMod/Outro.cs | 3 +- .../NeutralRoles/JuggernautMod/Outro.cs | 3 +- .../NeutralRoles/PestilenceMod/Outro.cs | 3 +- .../Patches/NeutralRoles/PhantomMod/Outro.cs | 3 +- .../NeutralRoles/PlaguebearerMod/Outro.cs | 3 +- .../Patches/NeutralRoles/SurvivorMod/Outro.cs | 3 +- .../Patches/NeutralRoles/VampireMod/Outro.cs | 3 +- source/Properties/Resources.Designer.cs | 4212 +++++++++++++++++ source/Properties/Resources.fr.resx | 1491 ++++++ source/Properties/Resources.resx | 1503 ++++++ source/TownOfUs.csproj | 22 +- 29 files changed, 7871 insertions(+), 508 deletions(-) create mode 100644 source/Patches/Localization/LocalizationManager.cs create mode 100644 source/Properties/Resources.Designer.cs create mode 100644 source/Properties/Resources.fr.resx create mode 100644 source/Properties/Resources.resx diff --git a/source/Patches/CrewmateRoles/DetectiveMod/DeadBody.cs b/source/Patches/CrewmateRoles/DetectiveMod/DeadBody.cs index d5cf3afda..74e90869b 100644 --- a/source/Patches/CrewmateRoles/DetectiveMod/DeadBody.cs +++ b/source/Patches/CrewmateRoles/DetectiveMod/DeadBody.cs @@ -1,4 +1,5 @@ using System; +using TownOfUs.Patches.Localization; using TownOfUs.Roles; namespace TownOfUs.CrewmateRoles.DetectiveMod @@ -14,29 +15,29 @@ public static string ParseBodyReport(BodyReport br) { if (br.KillAge > CustomGameOptions.DetectiveFactionDuration * 1000) return - $"Body Report: The corpse is too old to gain information from. (Killed {Math.Round(br.KillAge / 1000)}s ago)"; + $"{string.Format(LocalizationManager.Instance.GetString("BodyReportTooOld"), Math.Round(br.KillAge / 1000))}"; if (br.Killer.PlayerId == br.Body.PlayerId) return - $"Body Report: The kill appears to have been a suicide! (Killed {Math.Round(br.KillAge / 1000)}s ago)"; + $"{string.Format(LocalizationManager.Instance.GetString("BodyReportSuicide"), Math.Round(br.KillAge / 1000))}"; var role = Role.GetRole(br.Killer); if (br.KillAge < CustomGameOptions.DetectiveRoleDuration * 1000) return - $"Body Report: The killer appears to be a {role.Name}! (Killed {Math.Round(br.KillAge / 1000)}s ago)"; + $"{string.Format(LocalizationManager.Instance.GetString("BodyReportRole"), role.Name, Math.Round(br.KillAge / 1000))}"; if (br.Killer.Is(Faction.Crewmates)) return - $"Body Report: The killer appears to be a Crewmate! (Killed {Math.Round(br.KillAge / 1000)}s ago)"; + $"{string.Format(LocalizationManager.Instance.GetString("BodyReportCrewmate"), Math.Round(br.KillAge / 1000))}"; else if (br.Killer.Is(Faction.NeutralKilling) || br.Killer.Is(Faction.NeutralBenign)) return - $"Body Report: The killer appears to be a Neutral Role! (Killed {Math.Round(br.KillAge / 1000)}s ago)"; + $"{string.Format(LocalizationManager.Instance.GetString("BodyReportNeutralRole"), Math.Round(br.KillAge / 1000))}"; else return - $"Body Report: The killer appears to be an Impostor! (Killed {Math.Round(br.KillAge / 1000)}s ago)"; + $"{string.Format(LocalizationManager.Instance.GetString("BodyReportImpostor"), Math.Round(br.KillAge / 1000))}"; } } } diff --git a/source/Patches/CrewmateRoles/MedicMod/DeadBody.cs b/source/Patches/CrewmateRoles/MedicMod/DeadBody.cs index deb279f81..c04e73153 100644 --- a/source/Patches/CrewmateRoles/MedicMod/DeadBody.cs +++ b/source/Patches/CrewmateRoles/MedicMod/DeadBody.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using TownOfUs.Extensions; +using TownOfUs.Patches.Localization; namespace TownOfUs.CrewmateRoles.MedicMod { @@ -24,15 +25,15 @@ public static string ParseBodyReport(BodyReport br) //System.Console.WriteLine(br.KillAge); if (br.KillAge > CustomGameOptions.MedicReportColorDuration * 1000) return - $"Body Report: The corpse is too old to gain information from. (Killed {Math.Round(br.KillAge / 1000)}s ago)"; + $"{string.Format(LocalizationManager.Instance.GetString("BodyReportTooOld"), Math.Round(br.KillAge / 1000))}"; if (br.Killer.PlayerId == br.Body.PlayerId) return - $"Body Report: The kill appears to have been a suicide! (Killed {Math.Round(br.KillAge / 1000)}s ago)"; + $"{string.Format(LocalizationManager.Instance.GetString("BodyReportSuicide"), Math.Round(br.KillAge / 1000))}"; if (br.KillAge < CustomGameOptions.MedicReportNameDuration * 1000) return - $"Body Report: The killer appears to be {br.Killer.Data.PlayerName}! (Killed {Math.Round(br.KillAge / 1000)}s ago)"; + $"{string.Format(LocalizationManager.Instance.GetString("BodyReportKillerAppearance"), br.Killer.Data.PlayerName, Math.Round(br.KillAge / 1000))}"; var colors = new Dictionary { @@ -74,7 +75,7 @@ public static string ParseBodyReport(BodyReport br) }; var typeOfColor = colors[br.Killer.GetDefaultOutfit().ColorId]; return - $"Body Report: The killer appears to be a {typeOfColor} color. (Killed {Math.Round(br.KillAge / 1000)}s ago)"; + $"{string.Format(LocalizationManager.Instance.GetString("BodyReportKillerAppearance"), typeOfColor, Math.Round(br.KillAge / 1000))}"; } } } diff --git a/source/Patches/CrewmateRoles/OracleMod/HighlightConfessor.cs b/source/Patches/CrewmateRoles/OracleMod/HighlightConfessor.cs index e9b71077a..22d21e8b3 100644 --- a/source/Patches/CrewmateRoles/OracleMod/HighlightConfessor.cs +++ b/source/Patches/CrewmateRoles/OracleMod/HighlightConfessor.cs @@ -1,4 +1,5 @@ using HarmonyLib; +using TownOfUs.Patches.Localization; using TownOfUs.Roles; namespace TownOfUs.CrewmateRoles.OracleMod @@ -15,9 +16,9 @@ public static void UpdateMeeting(Oracle role, MeetingHud __instance) if (player.PlayerId != state.TargetPlayerId) continue; if (player == role.Confessor) { - if (role.RevealedFaction == Faction.Crewmates) state.NameText.text = "(Crew) " + state.NameText.text; - else if (role.RevealedFaction == Faction.Impostors) state.NameText.text = "(Imp) " + state.NameText.text; - else state.NameText.text = "(Neut) " + state.NameText.text; + if (role.RevealedFaction == Faction.Crewmates) state.NameText.text = $"({LocalizationManager.Instance.GetString("Crew")})" + state.NameText.text; + else if (role.RevealedFaction == Faction.Impostors) state.NameText.text = $"({LocalizationManager.Instance.GetString("Imp")}) " + state.NameText.text; + else state.NameText.text = $"({LocalizationManager.Instance.GetString("Neut")}) " + state.NameText.text; } } } diff --git a/source/Patches/CrewmateRoles/OracleMod/MeetingStart.cs b/source/Patches/CrewmateRoles/OracleMod/MeetingStart.cs index ec2de5294..b260e0e93 100644 --- a/source/Patches/CrewmateRoles/OracleMod/MeetingStart.cs +++ b/source/Patches/CrewmateRoles/OracleMod/MeetingStart.cs @@ -1,6 +1,7 @@ using HarmonyLib; using System.Linq; using TownOfUs.Extensions; +using TownOfUs.Patches.Localization; using TownOfUs.Roles; namespace TownOfUs.CrewmateRoles.OracleMod @@ -23,13 +24,13 @@ public static void Postfix(MeetingHud __instance) public static string PlayerReportFeedback(PlayerControl player) { - if (player.Data.IsDead || player.Data.Disconnected) return "Your confessor failed to survive so you received no confession"; + if (player.Data.IsDead || player.Data.Disconnected) return LocalizationManager.Instance.GetString("YourConfessorFailedToSurviveNoConfession"); var allPlayers = PlayerControl.AllPlayerControls.ToArray().Where(x => !x.Data.IsDead && !x.Data.Disconnected && x != PlayerControl.LocalPlayer && x != player).ToList(); - if (allPlayers.Count < 2) return "Too few people alive to receive a confessional"; + if (allPlayers.Count < 2) return LocalizationManager.Instance.GetString("TooFewPeopleAliveToReceiveConfessional"); var evilPlayers = PlayerControl.AllPlayerControls.ToArray().Where(x => !x.Data.IsDead && !x.Data.Disconnected && (x.Is(Faction.Impostors) || (x.Is(Faction.NeutralKilling) && CustomGameOptions.NeutralKillingShowsEvil) || (x.Is(Faction.NeutralEvil) && CustomGameOptions.NeutralEvilShowsEvil) || (x.Is(Faction.NeutralBenign) && CustomGameOptions.NeutralBenignShowsEvil))).ToList(); - if (evilPlayers.Count == 0) return $"{player.GetDefaultOutfit().PlayerName} confesses to knowing that there are no more evil players!"; + if (evilPlayers.Count == 0) return $"{string.Format(LocalizationManager.Instance.GetString("PlayerConfessesToKnowingNoMoreEvilPlayers"), player.GetDefaultOutfit().PlayerName)}"; allPlayers.Shuffle(); evilPlayers.Shuffle(); var secondPlayer = allPlayers[0]; @@ -41,12 +42,12 @@ public static string PlayerReportFeedback(PlayerControl player) if (firstTwoEvil) { var thirdPlayer = allPlayers[1]; - return $"{player.GetDefaultOutfit().PlayerName} confesses to knowing that they, {secondPlayer.GetDefaultOutfit().PlayerName} and/or {thirdPlayer.GetDefaultOutfit().PlayerName} is evil!"; + return $"{string.Format(LocalizationManager.Instance.GetString("PlayerConfessesToKnowingNoMoreEvilPlayers"), player.GetDefaultOutfit().PlayerName, secondPlayer.GetDefaultOutfit().PlayerName, thirdPlayer.GetDefaultOutfit().PlayerName)}"; } else { var thirdPlayer = evilPlayers[0]; - return $"{player.GetDefaultOutfit().PlayerName} confesses to knowing that they, {secondPlayer.GetDefaultOutfit().PlayerName} and/or {thirdPlayer.GetDefaultOutfit().PlayerName} is evil!"; + return $"{string.Format(LocalizationManager.Instance.GetString("PlayerConfessesToKnowingNoMoreEvilPlayers"), player.GetDefaultOutfit().PlayerName, secondPlayer.GetDefaultOutfit().PlayerName, thirdPlayer.GetDefaultOutfit().PlayerName)}"; } } } diff --git a/source/Patches/CrewmateRoles/ProsecutorMod/AddProsecute.cs b/source/Patches/CrewmateRoles/ProsecutorMod/AddProsecute.cs index 940126d3b..08d0ca346 100644 --- a/source/Patches/CrewmateRoles/ProsecutorMod/AddProsecute.cs +++ b/source/Patches/CrewmateRoles/ProsecutorMod/AddProsecute.cs @@ -1,5 +1,6 @@ using HarmonyLib; using TMPro; +using TownOfUs.Patches.Localization; using TownOfUs.Roles; using UnityEngine; @@ -13,7 +14,7 @@ public static void UpdateButton(Prosecutor role, MeetingHud __instance) role.Prosecute.gameObject.SetActive(skip.gameObject.active && !role.Prosecuted); role.Prosecute.voteComplete = skip.voteComplete; role.Prosecute.GetComponent().enabled = skip.GetComponent().enabled; - role.Prosecute.GetComponentsInChildren()[0].text = "Prosecute"; + role.Prosecute.GetComponentsInChildren()[0].text = LocalizationManager.Instance.GetString("Prosecute"); } diff --git a/source/Patches/CrewmateRoles/TrapperMod/MeetingStart.cs b/source/Patches/CrewmateRoles/TrapperMod/MeetingStart.cs index ad87a6c5a..a9eae7364 100644 --- a/source/Patches/CrewmateRoles/TrapperMod/MeetingStart.cs +++ b/source/Patches/CrewmateRoles/TrapperMod/MeetingStart.cs @@ -1,6 +1,7 @@ using HarmonyLib; using System; using System.Linq; +using TownOfUs.Patches.Localization; using TownOfUs.Roles; namespace TownOfUs.CrewmateRoles.TrapperMod @@ -15,15 +16,15 @@ public static void Postfix(MeetingHud __instance) var trapperRole = Role.GetRole(PlayerControl.LocalPlayer); if (trapperRole.trappedPlayers.Count == 0) { - DestroyableSingleton.Instance.Chat.AddChat(PlayerControl.LocalPlayer, "No players entered any of your traps"); + DestroyableSingleton.Instance.Chat.AddChat(PlayerControl.LocalPlayer, LocalizationManager.Instance.GetString("NoPlayersEnteredTraps")); } else if (trapperRole.trappedPlayers.Count < CustomGameOptions.MinAmountOfPlayersInTrap) { - DestroyableSingleton.Instance.Chat.AddChat(PlayerControl.LocalPlayer, "Not enough players triggered your traps"); + DestroyableSingleton.Instance.Chat.AddChat(PlayerControl.LocalPlayer, LocalizationManager.Instance.GetString("NotEnoughPlayersTriggeredTraps")); } else { - string message = "Roles caught in your trap:\n"; + string message = $"{LocalizationManager.Instance.GetString("RolesCaughtInYourTrap")}:\n"; foreach (RoleEnum role in trapperRole.trappedPlayers.OrderBy(x => Guid.NewGuid())) { message += $" {role},"; diff --git a/source/Patches/CrewmateRoles/VigilanteMod/AddButton.cs b/source/Patches/CrewmateRoles/VigilanteMod/AddButton.cs index 3b0a5c42b..2fb73d7ac 100644 --- a/source/Patches/CrewmateRoles/VigilanteMod/AddButton.cs +++ b/source/Patches/CrewmateRoles/VigilanteMod/AddButton.cs @@ -134,7 +134,8 @@ void Listener() } var newGuess = role.Guesses[voteArea.TargetPlayerId] = role.PossibleGuesses[guessIndex]; - + // @todo + // To test Not sure what's inside the variable to translate it nameText.text = newGuess == "None" ? "Guess" : $"{newGuess}"; diff --git a/source/Patches/CustomOption/Export.cs b/source/Patches/CustomOption/Export.cs index ccf3caebf..b52b72a33 100644 --- a/source/Patches/CustomOption/Export.cs +++ b/source/Patches/CustomOption/Export.cs @@ -9,6 +9,7 @@ using Il2CppInterop.Runtime.InteropTypes.Arrays; using UnityEngine; using Object = UnityEngine.Object; +using TownOfUs.Patches.Localization; namespace TownOfUs.CustomOption { @@ -19,7 +20,7 @@ public class Export : CustomButtonOption public List SlotButtons = new List(); - protected internal Export(int id) : base(id, MultiMenu.main, "Save Custom Settings") + protected internal Export(int id) : base(id, MultiMenu.main, LocalizationManager.Instance.GetString("SaveCustomSettings")) { Do = ToDo; } @@ -63,7 +64,7 @@ protected internal IEnumerator CancelCoro(Func flashCoro) Loading = SlotButtons[0]; Loading.Do = () => { }; - Loading.Setting.Cast().TitleText.text = "Loading..."; + Loading.Setting.Cast().TitleText.text = LocalizationManager.Instance.GetString("Loading")+"..."; __instance.Children = new[] {Loading.Setting}; @@ -84,12 +85,12 @@ protected internal IEnumerator CancelCoro(Func flashCoro) protected internal void ToDo() { SlotButtons.Clear(); - SlotButtons.Add(new CustomButtonOption(1, MultiMenu.external, "Slot 1", delegate { ExportSlot(1); })); - SlotButtons.Add(new CustomButtonOption(1, MultiMenu.external, "Slot 2", delegate { ExportSlot(2); })); - SlotButtons.Add(new CustomButtonOption(1, MultiMenu.external, "Slot 3", delegate { ExportSlot(3); })); - SlotButtons.Add(new CustomButtonOption(1, MultiMenu.external, "Slot 4", delegate { ExportSlot(4); })); - SlotButtons.Add(new CustomButtonOption(1, MultiMenu.external, "Slot 5", delegate { ExportSlot(5); })); - SlotButtons.Add(new CustomButtonOption(1, MultiMenu.external, "Cancel", delegate { Cancel(FlashWhite); })); + SlotButtons.Add(new CustomButtonOption(1, MultiMenu.external, LocalizationManager.Instance.GetString("Slot") + " 1", delegate { ExportSlot(1); })); + SlotButtons.Add(new CustomButtonOption(1, MultiMenu.external, LocalizationManager.Instance.GetString("Slot") + " 2", delegate { ExportSlot(2); })); + SlotButtons.Add(new CustomButtonOption(1, MultiMenu.external, LocalizationManager.Instance.GetString("Slot") + " 3", delegate { ExportSlot(3); })); + SlotButtons.Add(new CustomButtonOption(1, MultiMenu.external, LocalizationManager.Instance.GetString("Slot") + " 4", delegate { ExportSlot(4); })); + SlotButtons.Add(new CustomButtonOption(1, MultiMenu.external, LocalizationManager.Instance.GetString("Slot") + " 5", delegate { ExportSlot(5); })); + SlotButtons.Add(new CustomButtonOption(1, MultiMenu.external, LocalizationManager.Instance.GetString("Cancel"), delegate { Cancel(FlashWhite); })); var options = CreateOptions(); diff --git a/source/Patches/CustomOption/Generate.cs b/source/Patches/CustomOption/Generate.cs index a130034dc..12670156d 100644 --- a/source/Patches/CustomOption/Generate.cs +++ b/source/Patches/CustomOption/Generate.cs @@ -1,4 +1,6 @@ using System; +using System.Linq; +using TownOfUs.Patches.Localization; namespace TownOfUs.CustomOption { @@ -493,6 +495,8 @@ public class Generate public static CustomNumberOption ChillDuration; public static CustomNumberOption ChillStartSpeed; + public static CustomStringOption Language; + public static Func PercentFormat { get; } = value => $"{value:0}%"; private static Func CooldownFormat { get; } = value => $"{value:0.0#}s"; private static Func MultiplierFormat { get; } = value => $"{value:0.0#}x"; @@ -505,783 +509,799 @@ public static void GenerateAll() Patches.ExportButton = new Export(num++); Patches.ImportButton = new Import(num++); - CrewInvestigativeRoles = new CustomHeaderOption(num++, MultiMenu.crewmate, "Crewmate Investigative Roles"); - AurialOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"Aurial", 0f, 0f, 100f, 10f, + CrewInvestigativeRoles = new CustomHeaderOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("CrewmateInvestigativeRoles")); + AurialOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Aurial")}", 0f, 0f, 100f, 10f, PercentFormat); - DetectiveOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Detective", 0f, 0f, 100f, 10f, + DetectiveOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Detective")}", 0f, 0f, 100f, 10f, PercentFormat); - HaunterOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Haunter", 0f, 0f, 100f, 10f, + HaunterOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Haunter")}", 0f, 0f, 100f, 10f, PercentFormat); - InvestigatorOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Investigator", 0f, 0f, 100f, 10f, + InvestigatorOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Investigator")}", 0f, 0f, 100f, 10f, PercentFormat); - MysticOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Mystic", 0f, 0f, 100f, 10f, + MysticOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Mystic")}", 0f, 0f, 100f, 10f, PercentFormat); - OracleOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Oracle", 0f, 0f, 100f, 10f, + OracleOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Oracle")}", 0f, 0f, 100f, 10f, PercentFormat); - SeerOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Seer", 0f, 0f, 100f, 10f, + SeerOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Seer")}", 0f, 0f, 100f, 10f, PercentFormat); - SnitchOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Snitch", 0f, 0f, 100f, 10f, + SnitchOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Snitch")}", 0f, 0f, 100f, 10f, PercentFormat); - SpyOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Spy", 0f, 0f, 100f, 10f, + SpyOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Spy")}", 0f, 0f, 100f, 10f, PercentFormat); - TrackerOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Tracker", 0f, 0f, 100f, 10f, + TrackerOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Tracker")}", 0f, 0f, 100f, 10f, PercentFormat); - TrapperOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Trapper", 0f, 0f, 100f, 10f, + TrapperOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Trapper")}", 0f, 0f, 100f, 10f, PercentFormat); - CrewKillingRoles = new CustomHeaderOption(num++, MultiMenu.crewmate, "Crewmate Killing Roles"); - SheriffOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Sheriff", 0f, 0f, 100f, 10f, + CrewKillingRoles = new CustomHeaderOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("CrewmateKillingRoles")); + SheriffOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Sheriff")}", 0f, 0f, 100f, 10f, PercentFormat); - VampireHunterOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Vampire Hunter", 0f, 0f, 100f, 10f, + VampireHunterOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("VampireHunter")}", 0f, 0f, 100f, 10f, PercentFormat); - VeteranOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Veteran", 0f, 0f, 100f, 10f, + VeteranOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Veteran")}", 0f, 0f, 100f, 10f, PercentFormat); - VigilanteOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Vigilante", 0f, 0f, 100f, 10f, + VigilanteOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Vigilante")}", 0f, 0f, 100f, 10f, PercentFormat); - CrewProtectiveRoles = new CustomHeaderOption(num++, MultiMenu.crewmate, "Crewmate Protective Roles"); - AltruistOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Altruist", 0f, 0f, 100f, 10f, + CrewProtectiveRoles = new CustomHeaderOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("CrewmateProtectiveRoles")); + AltruistOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Altruist")}", 0f, 0f, 100f, 10f, PercentFormat); - MedicOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Medic", 0f, 0f, 100f, 10f, + MedicOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Medic")}", 0f, 0f, 100f, 10f, PercentFormat); - CrewSupportRoles = new CustomHeaderOption(num++, MultiMenu.crewmate, "Crewmate Support Roles"); - EngineerOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Engineer", 0f, 0f, 100f, 10f, + CrewSupportRoles = new CustomHeaderOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("CrewmateSupportRoles")); + EngineerOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Engineer")}", 0f, 0f, 100f, 10f, PercentFormat); - ImitatorOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Imitator", 0f, 0f, 100f, 10f, + ImitatorOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Imitator")}", 0f, 0f, 100f, 10f, PercentFormat); - MayorOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Mayor", 0f, 0f, 100f, 10f, + MayorOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Mayor")}", 0f, 0f, 100f, 10f, PercentFormat); - MediumOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Medium", 0f, 0f, 100f, 10f, + MediumOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Medium")}", 0f, 0f, 100f, 10f, PercentFormat); - ProsecutorOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Prosecutor", 0f, 0f, 100f, 10f, + ProsecutorOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Prosecutor")}", 0f, 0f, 100f, 10f, PercentFormat); - SwapperOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Swapper", 0f, 0f, 100f, 10f, + SwapperOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Swapper")}", 0f, 0f, 100f, 10f, PercentFormat); - TransporterOn = new CustomNumberOption(num++, MultiMenu.crewmate, "Transporter", 0f, 0f, 100f, 10f, + TransporterOn = new CustomNumberOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Transporter")}", 0f, 0f, 100f, 10f, PercentFormat); - NeutralBenignRoles = new CustomHeaderOption(num++, MultiMenu.neutral, "Neutral Benign Roles"); - AmnesiacOn = new CustomNumberOption(num++, MultiMenu.neutral, "Amnesiac", 0f, 0f, 100f, 10f, + NeutralBenignRoles = new CustomHeaderOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("NeutralBenignRoles")); + AmnesiacOn = new CustomNumberOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("Amnesiac")}", 0f, 0f, 100f, 10f, PercentFormat); - GuardianAngelOn = new CustomNumberOption(num++, MultiMenu.neutral, "Guardian Angel", 0f, 0f, 100f, 10f, + GuardianAngelOn = new CustomNumberOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("GuardianAngel")}", 0f, 0f, 100f, 10f, PercentFormat); - SurvivorOn = new CustomNumberOption(num++, MultiMenu.neutral, "Survivor", 0f, 0f, 100f, 10f, + SurvivorOn = new CustomNumberOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("Survivor")}", 0f, 0f, 100f, 10f, PercentFormat); - NeutralEvilRoles = new CustomHeaderOption(num++, MultiMenu.neutral, "Neutral Evil Roles"); - DoomsayerOn = new CustomNumberOption(num++, MultiMenu.neutral, "Doomsayer", 0f, 0f, 100f, 10f, + NeutralEvilRoles = new CustomHeaderOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("NeutralEvilRoles")); + DoomsayerOn = new CustomNumberOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("Doomsayer")}", 0f, 0f, 100f, 10f, PercentFormat); - ExecutionerOn = new CustomNumberOption(num++, MultiMenu.neutral, "Executioner", 0f, 0f, 100f, 10f, + ExecutionerOn = new CustomNumberOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("Executioner")}", 0f, 0f, 100f, 10f, PercentFormat); - JesterOn = new CustomNumberOption(num++, MultiMenu.neutral, "Jester", 0f, 0f, 100f, 10f, + JesterOn = new CustomNumberOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("Jester")}", 0f, 0f, 100f, 10f, PercentFormat); - PhantomOn = new CustomNumberOption(num++, MultiMenu.neutral, "Phantom", 0f, 0f, 100f, 10f, + PhantomOn = new CustomNumberOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("Phantom")}", 0f, 0f, 100f, 10f, PercentFormat); - NeutralKillingRoles = new CustomHeaderOption(num++, MultiMenu.neutral, "Neutral Killing Roles"); - ArsonistOn = new CustomNumberOption(num++, MultiMenu.neutral, "Arsonist", 0f, 0f, 100f, 10f, + NeutralKillingRoles = new CustomHeaderOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("NeutralKillingRoles")); + ArsonistOn = new CustomNumberOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("Arsonist")}", 0f, 0f, 100f, 10f, PercentFormat); - PlaguebearerOn = new CustomNumberOption(num++, MultiMenu.neutral, "Plaguebearer", 0f, 0f, 100f, 10f, + PlaguebearerOn = new CustomNumberOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("Plaguebearer")}", 0f, 0f, 100f, 10f, PercentFormat); - GlitchOn = new CustomNumberOption(num++, MultiMenu.neutral, "The Glitch", 0f, 0f, 100f, 10f, + GlitchOn = new CustomNumberOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("TheGlitch")}", 0f, 0f, 100f, 10f, PercentFormat); - VampireOn = new CustomNumberOption(num++, MultiMenu.neutral, "Vampire", 0f, 0f, 100f, 10f, + VampireOn = new CustomNumberOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("Vampire")}", 0f, 0f, 100f, 10f, PercentFormat); - WerewolfOn = new CustomNumberOption(num++, MultiMenu.neutral, "Werewolf", 0f, 0f, 100f, 10f, + WerewolfOn = new CustomNumberOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("Werewolf")}", 0f, 0f, 100f, 10f, PercentFormat); - ImpostorConcealingRoles = new CustomHeaderOption(num++, MultiMenu.imposter, "Impostor Concealing Roles"); - EscapistOn = new CustomNumberOption(num++, MultiMenu.imposter, "Escapist", 0f, 0f, 100f, 10f, + ImpostorConcealingRoles = new CustomHeaderOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("ImpostorConcealingRoles")); + EscapistOn = new CustomNumberOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Escapist")}", 0f, 0f, 100f, 10f, PercentFormat); - GrenadierOn = new CustomNumberOption(num++, MultiMenu.imposter, "Grenadier", 0f, 0f, 100f, 10f, + GrenadierOn = new CustomNumberOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Grenadier")}", 0f, 0f, 100f, 10f, PercentFormat); - MorphlingOn = new CustomNumberOption(num++, MultiMenu.imposter, "Morphling", 0f, 0f, 100f, 10f, + MorphlingOn = new CustomNumberOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Morphling")}", 0f, 0f, 100f, 10f, PercentFormat); - SwooperOn = new CustomNumberOption(num++, MultiMenu.imposter, "Swooper", 0f, 0f, 100f, 10f, + SwooperOn = new CustomNumberOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Swooper")}", 0f, 0f, 100f, 10f, PercentFormat); - VenererOn = new CustomNumberOption(num++, MultiMenu.imposter, "Venerer", 0f, 0f, 100f, 10f, + VenererOn = new CustomNumberOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Venerer")}", 0f, 0f, 100f, 10f, PercentFormat); - ImpostorKillingRoles = new CustomHeaderOption(num++, MultiMenu.imposter, "Impostor Killing Roles"); - BomberOn = new CustomNumberOption(num++, MultiMenu.imposter, "Bomber", 0f, 0f, 100f, 10f, + ImpostorKillingRoles = new CustomHeaderOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("ImpostorKillingRoles")); + BomberOn = new CustomNumberOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Bomber")}", 0f, 0f, 100f, 10f, PercentFormat); - TraitorOn = new CustomNumberOption(num++, MultiMenu.imposter, "Traitor", 0f, 0f, 100f, 10f, + TraitorOn = new CustomNumberOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Traitor")}", 0f, 0f, 100f, 10f, PercentFormat); - WarlockOn = new CustomNumberOption(num++, MultiMenu.imposter, "Warlock", 0f, 0f, 100f, 10f, + WarlockOn = new CustomNumberOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Warlock")}", 0f, 0f, 100f, 10f, PercentFormat); - ImpostorSupportRoles = new CustomHeaderOption(num++, MultiMenu.imposter, "Impostor Support Roles"); - BlackmailerOn = new CustomNumberOption(num++, MultiMenu.imposter, "Blackmailer", 0f, 0f, 100f, 10f, + ImpostorSupportRoles = new CustomHeaderOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("ImpostorSupportRoles")); + BlackmailerOn = new CustomNumberOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Blackmailer")}", 0f, 0f, 100f, 10f, PercentFormat); - JanitorOn = new CustomNumberOption(num++, MultiMenu.imposter, "Janitor", 0f, 0f, 100f, 10f, + JanitorOn = new CustomNumberOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Janitor")}", 0f, 0f, 100f, 10f, PercentFormat); - MinerOn = new CustomNumberOption(num++, MultiMenu.imposter, "Miner", 0f, 0f, 100f, 10f, + MinerOn = new CustomNumberOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Miner")}", 0f, 0f, 100f, 10f, PercentFormat); - UndertakerOn = new CustomNumberOption(num++, MultiMenu.imposter, "Undertaker", 0f, 0f, 100f, 10f, + UndertakerOn = new CustomNumberOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Undertaker")}", 0f, 0f, 100f, 10f, PercentFormat); - CrewmateModifiers = new CustomHeaderOption(num++, MultiMenu.modifiers, "Crewmate Modifiers"); - AftermathOn = new CustomNumberOption(num++, MultiMenu.modifiers, "Aftermath", 0f, 0f, 100f, 10f, + CrewmateModifiers = new CustomHeaderOption(num++, MultiMenu.modifiers, LocalizationManager.Instance.GetString("CrewmateModifiers")); + AftermathOn = new CustomNumberOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("Aftermath")}", 0f, 0f, 100f, 10f, PercentFormat); - BaitOn = new CustomNumberOption(num++, MultiMenu.modifiers, "Bait", 0f, 0f, 100f, 10f, + BaitOn = new CustomNumberOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("Bait")}", 0f, 0f, 100f, 10f, PercentFormat); - DiseasedOn = new CustomNumberOption(num++, MultiMenu.modifiers, "Diseased", 0f, 0f, 100f, 10f, + DiseasedOn = new CustomNumberOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("Diseased")}", 0f, 0f, 100f, 10f, PercentFormat); - FrostyOn = new CustomNumberOption(num++, MultiMenu.modifiers, "Frosty", 0f, 0f, 100f, 10f, + FrostyOn = new CustomNumberOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("Frosty")}", 0f, 0f, 100f, 10f, PercentFormat); - MultitaskerOn = new CustomNumberOption(num++, MultiMenu.modifiers, "Multitasker", 0f, 0f, 100f, 10f, + MultitaskerOn = new CustomNumberOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("Multitasker")}", 0f, 0f, 100f, 10f, PercentFormat); - TorchOn = new CustomNumberOption(num++, MultiMenu.modifiers, "Torch", 0f, 0f, 100f, 10f, + TorchOn = new CustomNumberOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("Torch")}", 0f, 0f, 100f, 10f, PercentFormat); - GlobalModifiers = new CustomHeaderOption(num++, MultiMenu.modifiers, "Global Modifiers"); - ButtonBarryOn = new CustomNumberOption(num++, MultiMenu.modifiers, "Button Barry", 0f, 0f, 100f, 10f, + GlobalModifiers = new CustomHeaderOption(num++, MultiMenu.modifiers, LocalizationManager.Instance.GetString("GlobalModifiers")); + ButtonBarryOn = new CustomNumberOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("ButtonBarry")}", 0f, 0f, 100f, 10f, PercentFormat); - FlashOn = new CustomNumberOption(num++, MultiMenu.modifiers, "Flash", 0f, 0f, 100f, 10f, + FlashOn = new CustomNumberOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("Flash")}", 0f, 0f, 100f, 10f, PercentFormat); - GiantOn = new CustomNumberOption(num++, MultiMenu.modifiers, "Giant", 0f, 0f, 100f, 10f, + GiantOn = new CustomNumberOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("Giant")}", 0f, 0f, 100f, 10f, PercentFormat); - LoversOn = new CustomNumberOption(num++, MultiMenu.modifiers, "Lovers", 0f, 0f, 100f, 10f, + LoversOn = new CustomNumberOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("Lovers")}", 0f, 0f, 100f, 10f, PercentFormat); - RadarOn = new CustomNumberOption(num++, MultiMenu.modifiers, "Radar", 0f, 0f, 100f, 10f, + RadarOn = new CustomNumberOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("Radar")}", 0f, 0f, 100f, 10f, PercentFormat); - SleuthOn = new CustomNumberOption(num++, MultiMenu.modifiers, "Sleuth", 0f, 0f, 100f, 10f, + SleuthOn = new CustomNumberOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("Sleuth")}", 0f, 0f, 100f, 10f, PercentFormat); - TiebreakerOn = new CustomNumberOption(num++, MultiMenu.modifiers, "Tiebreaker", 0f, 0f, 100f, 10f, + TiebreakerOn = new CustomNumberOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("Tiebreaker")}", 0f, 0f, 100f, 10f, PercentFormat); - ImpostorModifiers = new CustomHeaderOption(num++, MultiMenu.modifiers, "Impostor Modifiers"); - DisperserOn = new CustomNumberOption(num++, MultiMenu.modifiers, "Disperser", 0f, 0f, 100f, 10f, + ImpostorModifiers = new CustomHeaderOption(num++, MultiMenu.modifiers, LocalizationManager.Instance.GetString("ImpostorModifiers")); + DisperserOn = new CustomNumberOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("Disperser")}", 0f, 0f, 100f, 10f, PercentFormat); - DoubleShotOn = new CustomNumberOption(num++, MultiMenu.modifiers, "Double Shot", 0f, 0f, 100f, 10f, + DoubleShotOn = new CustomNumberOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("DoubleShot")}", 0f, 0f, 100f, 10f, PercentFormat); - UnderdogOn = new CustomNumberOption(num++, MultiMenu.modifiers, "Underdog", 0f, 0f, 100f, 10f, + UnderdogOn = new CustomNumberOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("Underdog")}", 0f, 0f, 100f, 10f, PercentFormat); GameModeSettings = - new CustomHeaderOption(num++, MultiMenu.main, "Game Mode Settings"); - GameMode = new CustomStringOption(num++, MultiMenu.main, "Game Mode", new[] {"Classic", "All Any", "Killing Only", "Cultist" }); + new CustomHeaderOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("GameModeSettings")); + GameMode = new CustomStringOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("GameMode"), + new[] { LocalizationManager.Instance.GetString("Classic"), LocalizationManager.Instance.GetString("All Any"), LocalizationManager.Instance.GetString("Killing Only"), LocalizationManager.Instance.GetString("Cultist") }); ClassicSettings = - new CustomHeaderOption(num++, MultiMenu.main, "Classic Game Mode Settings"); + new CustomHeaderOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("ClassicGameModeSettings")); MinNeutralBenignRoles = - new CustomNumberOption(num++, MultiMenu.main, "Min Neutral Benign Roles", 1, 0, 3, 1); + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("MinNeutralBenignRoles"), 1, 0, 3, 1); MaxNeutralBenignRoles = - new CustomNumberOption(num++, MultiMenu.main, "Max Neutral Benign Roles", 1, 0, 3, 1); + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("MaxNeutralBenignRoles"), 1, 0, 3, 1); MinNeutralEvilRoles = - new CustomNumberOption(num++, MultiMenu.main, "Min Neutral Evil Roles", 1, 0, 3, 1); + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("MinNeutralEvilRoles"), 1, 0, 3, 1); MaxNeutralEvilRoles = - new CustomNumberOption(num++, MultiMenu.main, "Max Neutral Evil Roles", 1, 0, 3, 1); + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("MaxNeutralEvilRoles"), 1, 0, 3, 1); MinNeutralKillingRoles = - new CustomNumberOption(num++, MultiMenu.main, "Min Neutral Killing Roles", 1, 0, 5, 1); + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("MinNeutralKillingRoles"), 1, 0, 5, 1); MaxNeutralKillingRoles = - new CustomNumberOption(num++, MultiMenu.main, "Max Neutral Killing Roles", 1, 0, 5, 1); + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("MaxNeutralKillingRoles"), 1, 0, 5, 1); AllAnySettings = - new CustomHeaderOption(num++, MultiMenu.main, "All Any Settings"); - RandomNumberImps = new CustomToggleOption(num++, MultiMenu.main, "Random Number Of Impostors", true); + new CustomHeaderOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("AllAnySettings")); + RandomNumberImps = new CustomToggleOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("RandomNumberOfImpostors"), true); KillingOnlySettings = - new CustomHeaderOption(num++, MultiMenu.main, "Killing Only Settings"); + new CustomHeaderOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("KillingOnlySettings")); NeutralRoles = - new CustomNumberOption(num++, MultiMenu.main, "Neutral Roles", 1, 0, 5, 1); + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("NeutralRoles"), 1, 0, 5, 1); VeteranCount = - new CustomNumberOption(num++, MultiMenu.main, "Veteran Count", 1, 0, 5, 1); + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("VeteranCount"), 1, 0, 5, 1); VigilanteCount = - new CustomNumberOption(num++, MultiMenu.main, "Vigilante Count", 1, 0, 5, 1); - AddArsonist = new CustomToggleOption(num++, MultiMenu.main, "Add Arsonist", true); - AddPlaguebearer = new CustomToggleOption(num++, MultiMenu.main, "Add Plaguebearer", true); + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("VigilanteCount"), 1, 0, 5, 1); + AddArsonist = new CustomToggleOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("AddArsonist"), true); + AddPlaguebearer = new CustomToggleOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("AddPlaguebearer"), true); CultistSettings = - new CustomHeaderOption(num++, MultiMenu.main, "Cultist Settings"); - MayorCultistOn = new CustomNumberOption(num++, MultiMenu.main, "Mayor (Cultist Mode)", 100f, 0f, 100f, 10f, + new CustomHeaderOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("CultistSettings")); + MayorCultistOn = new CustomNumberOption(num++, MultiMenu.main, $"{LocalizationManager.Instance.GetString("Mayor")} ({LocalizationManager.Instance.GetString("CultistMode")})", 100f, 0f, 100f, 10f, PercentFormat); - SeerCultistOn = new CustomNumberOption(num++, MultiMenu.main, "Seer (Cultist Mode)", 100f, 0f, 100f, 10f, + SeerCultistOn = new CustomNumberOption(num++, MultiMenu.main, $"{LocalizationManager.Instance.GetString("Seer")} ({LocalizationManager.Instance.GetString("CultistMode")})", 100f, 0f, 100f, 10f, PercentFormat); - SheriffCultistOn = new CustomNumberOption(num++, MultiMenu.main, "Sheriff (Cultist Mode)", 100f, 0f, 100f, 10f, + SheriffCultistOn = new CustomNumberOption(num++, MultiMenu.main, $"{LocalizationManager.Instance.GetString("Sheriff")} ({LocalizationManager.Instance.GetString("CultistMode")})", 100f, 0f, 100f, 10f, PercentFormat); - SurvivorCultistOn = new CustomNumberOption(num++, MultiMenu.main, "Survivor (Cultist Mode)", 100f, 0f, 100f, 10f, + SurvivorCultistOn = new CustomNumberOption(num++, MultiMenu.main, $"{LocalizationManager.Instance.GetString("Survivor")} ({LocalizationManager.Instance.GetString("CultistMode")})", 100f, 0f, 100f, 10f, PercentFormat); NumberOfSpecialRoles = - new CustomNumberOption(num++, MultiMenu.main, "Number Of Special Roles", 4, 0, 4, 1); + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("NumberOfSpecialRoles"), 4, 0, 4, 1); MaxChameleons = - new CustomNumberOption(num++, MultiMenu.main, "Max Chameleons", 3, 0, 5, 1); + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("MaxChameleons"), 3, 0, 5, 1); MaxEngineers = - new CustomNumberOption(num++, MultiMenu.main, "Max Engineers", 3, 0, 5, 1); + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("MaxEngineers"), 3, 0, 5, 1); MaxInvestigators = - new CustomNumberOption(num++, MultiMenu.main, "Max Investigators", 3, 0, 5, 1); - MaxMystics = - new CustomNumberOption(num++, MultiMenu.main, "Max Mystics", 3, 0, 5, 1); - MaxSnitches = - new CustomNumberOption(num++, MultiMenu.main, "Max Snitches", 3, 0, 5, 1); - MaxSpies = - new CustomNumberOption(num++, MultiMenu.main, "Max Spies", 3, 0, 5, 1); - MaxTransporters = - new CustomNumberOption(num++, MultiMenu.main, "Max Transporters", 3, 0, 5, 1); - MaxVigilantes = - new CustomNumberOption(num++, MultiMenu.main, "Max Vigilantes", 3, 0, 5, 1); - WhisperCooldown = - new CustomNumberOption(num++, MultiMenu.main, "Initial Whisper Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); - IncreasedCooldownPerWhisper = - new CustomNumberOption(num++, MultiMenu.main, "Increased Cooldown Per Whisper", 5f, 0f, 15f, 0.5f, CooldownFormat); - WhisperRadius = - new CustomNumberOption(num++, MultiMenu.main, "Whisper Radius", 1f, 0.25f, 5f, 0.25f, MultiplierFormat); - ConversionPercentage = new CustomNumberOption(num++, MultiMenu.main, "Conversion Percentage", 25f, 0f, 100f, 5f, - PercentFormat); - DecreasedPercentagePerConversion = new CustomNumberOption(num++, MultiMenu.main, "Decreased Conversion Percentage Per Conversion", 5f, 0f, 15f, 1f, - PercentFormat); - ReviveCooldown = - new CustomNumberOption(num++, MultiMenu.main, "Initial Revive Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); - IncreasedCooldownPerRevive = - new CustomNumberOption(num++, MultiMenu.main, "Increased Cooldown Per Revive", 25f, 10f, 60f, 2.5f, CooldownFormat); - MaxReveals = new CustomNumberOption(num++, MultiMenu.main, "Maximum Number Of Reveals", 5, 1, 15, 1); - - MapSettings = new CustomHeaderOption(num++, MultiMenu.main, "Map Settings"); - RandomMapEnabled = new CustomToggleOption(num++, MultiMenu.main, "Choose Random Map", false); - RandomMapSkeld = new CustomNumberOption(num++, MultiMenu.main, "Skeld Chance", 0f, 0f, 100f, 10f, PercentFormat); - RandomMapMira = new CustomNumberOption(num++, MultiMenu.main, "Mira Chance", 0f, 0f, 100f, 10f, PercentFormat); - RandomMapPolus = new CustomNumberOption(num++, MultiMenu.main, "Polus Chance", 0f, 0f, 100f, 10f, PercentFormat); - RandomMapAirship = new CustomNumberOption(num++, MultiMenu.main, "Airship Chance", 0f, 0f, 100f, 10f, PercentFormat); - RandomMapSubmerged = new CustomNumberOption(num++, MultiMenu.main, "Submerged Chance", 0f, 0f, 100f, 10f, PercentFormat); - AutoAdjustSettings = new CustomToggleOption(num++, MultiMenu.main, "Auto Adjust Settings", false); - SmallMapHalfVision = new CustomToggleOption(num++, MultiMenu.main, "Half Vision On Skeld/Mira HQ", false); - SmallMapDecreasedCooldown = - new CustomNumberOption(num++, MultiMenu.main, "Mira HQ Decreased Cooldowns", 0f, 0f, 15f, 2.5f, CooldownFormat); - LargeMapIncreasedCooldown = - new CustomNumberOption(num++, MultiMenu.main, "Airship/Submerged Increased Cooldowns", 0f, 0f, 15f, 2.5f, CooldownFormat); - SmallMapIncreasedShortTasks = - new CustomNumberOption(num++, MultiMenu.main, "Skeld/Mira HQ Increased Short Tasks", 0, 0, 5, 1); - SmallMapIncreasedLongTasks = - new CustomNumberOption(num++, MultiMenu.main, "Skeld/Mira HQ Increased Long Tasks", 0, 0, 3, 1); - LargeMapDecreasedShortTasks = - new CustomNumberOption(num++, MultiMenu.main, "Airship/Submerged Decreased Short Tasks", 0, 0, 5, 1); - LargeMapDecreasedLongTasks = - new CustomNumberOption(num++, MultiMenu.main, "Airship/Submerged Decreased Long Tasks", 0, 0, 3, 1); + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("MaxInvestigators"), 3, 0, 5, 1); + MaxMystics = + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("MaxMystics"), 3, 0, 5, 1); + MaxSnitches = + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("MaxSnitches"), 3, 0, 5, 1); + MaxSpies = + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("MaxSpies"), 3, 0, 5, 1); + MaxTransporters = + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("MaxTransporters"), 3, 0, 5, 1); + MaxVigilantes = + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("MaxVigilantes"), 3, 0, 5, 1); + WhisperCooldown = + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("InitialWhisperCooldown"), 25f, 10f, 60f, 2.5f, + CooldownFormat); + IncreasedCooldownPerWhisper = + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("IncreasedCooldownPerWhisper"), 5f, 0f, 15f, 0.5f, + CooldownFormat); + WhisperRadius = + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("WhisperRadius"), 1f, 0.25f, 5f, 0.25f, + MultiplierFormat); + ConversionPercentage = + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("ConversionPercentage"), 25f, 0f, 100f, 5f, + PercentFormat); + DecreasedPercentagePerConversion = + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("DecreasedConversionPercentagePerConversion"), 5f, 0f, 15f, 1f, + PercentFormat); + ReviveCooldown = + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("InitialReviveCooldown"), 25f, 10f, 60f, 2.5f, + CooldownFormat); + IncreasedCooldownPerRevive = + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("IncreasedCooldownPerRevive"), 25f, 10f, 60f, 2.5f, + CooldownFormat); + MaxReveals = + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("MaximumNumberOfReveals"), 5, 1, 15, 1); + + MapSettings = new CustomHeaderOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("MapSettings")); + RandomMapEnabled = new CustomToggleOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("ChooseRandomMap"), false); + RandomMapSkeld = new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("SkeldChance"), 0f, 0f, 100f, 10f, PercentFormat); + RandomMapMira = new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("MiraChance"), 0f, 0f, 100f, 10f, PercentFormat); + RandomMapPolus = new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("PolusChance"), 0f, 0f, 100f, 10f, PercentFormat); + RandomMapAirship = new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("AirshipChance"), 0f, 0f, 100f, 10f, PercentFormat); + RandomMapSubmerged = new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("SubmergedChance"), 0f, 0f, 100f, 10f, PercentFormat); + AutoAdjustSettings = new CustomToggleOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("AutoAdjustSettings"), false); + SmallMapHalfVision = new CustomToggleOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("HalfVisionOnSkeldMiraHQ"), false); + SmallMapDecreasedCooldown = + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("MiraHQDecreasedCooldowns"), 0f, 0f, 15f, 2.5f, CooldownFormat); + LargeMapIncreasedCooldown = + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("AirshipSubmergedIncreasedCooldowns"), 0f, 0f, 15f, 2.5f, CooldownFormat); + SmallMapIncreasedShortTasks = + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("SkeldMiraHQIncreasedShortTasks"), 0, 0, 5, 1); + SmallMapIncreasedLongTasks = + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("SkeldMiraHQIncreasedLongTasks"), 0, 0, 3, 1); + LargeMapDecreasedShortTasks = + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("AirshipSubmergedDecreasedShortTasks"), 0, 0, 5, 1); + LargeMapDecreasedLongTasks = + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("AirshipSubmergedDecreasedLongTasks"), 0, 0, 3, 1); + BetterPolusSettings = - new CustomHeaderOption(num++, MultiMenu.main, "Better Polus Settings"); - VentImprovements = new CustomToggleOption(num++, MultiMenu.main, "Better Polus Vent Layout", false); - VitalsLab = new CustomToggleOption(num++, MultiMenu.main, "Vitals Moved To Lab", false); - ColdTempDeathValley = new CustomToggleOption(num++, MultiMenu.main, "Cold Temp Moved To Death Valley", false); - WifiChartCourseSwap = - new CustomToggleOption(num++, MultiMenu.main, "Reboot Wifi And Chart Course Swapped", false); - - CustomGameSettings = - new CustomHeaderOption(num++, MultiMenu.main, "Custom Game Settings"); - ColourblindComms = new CustomToggleOption(num++, MultiMenu.main, "Camouflaged Comms", false); - ImpostorSeeRoles = new CustomToggleOption(num++, MultiMenu.main, "Impostors Can See The Roles Of Their Team", false); - DeadSeeRoles = - new CustomToggleOption(num++, MultiMenu.main, "Dead Can See Everyone's Roles/Votes", false); - InitialCooldowns = - new CustomNumberOption(num++, MultiMenu.main, "Game Start Cooldowns", 10f, 10f, 30f, 2.5f, CooldownFormat); - ParallelMedScans = new CustomToggleOption(num++, MultiMenu.main, "Parallel Medbay Scans", false); - SkipButtonDisable = new CustomStringOption(num++, MultiMenu.main, "Disable Meeting Skip Button", new[] { "No", "Emergency", "Always" }); - HiddenRoles = new CustomToggleOption(num++, MultiMenu.main, "Enable Hidden Roles", true); - FirstDeathShield = new CustomToggleOption(num++, MultiMenu.main, "First Death Shield Next Game", false); - NeutralEvilWinEndsGame = new CustomToggleOption(num++, MultiMenu.main, "Neutral Evil Win Ends Game", true); + new CustomHeaderOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("BetterPolusSettings")); + VentImprovements = new CustomToggleOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("BetterPolusVentLayout"), false); + VitalsLab = new CustomToggleOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("VitalsMovedToLab"), false); + ColdTempDeathValley = new CustomToggleOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("ColdTempMovedToDeathValley"), false); + WifiChartCourseSwap = new CustomToggleOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("RebootWifiAndChartCourseSwapped"), false); + + CustomGameSettings = new CustomHeaderOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("CustomGameSettings")); + ColourblindComms = new CustomToggleOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("CamouflagedComms"), false); + ImpostorSeeRoles = new CustomToggleOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("ImpostorsCanSeeTheRolesOfTheirTeam"), false); + DeadSeeRoles = + new CustomToggleOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("DeadCanSeeEveryonesRolesVotes"), false); + InitialCooldowns = + new CustomNumberOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("GameStartCooldowns"), 10f, 10f, 30f, 2.5f, CooldownFormat); + ParallelMedScans = new CustomToggleOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("ParallelMedbayScans"), false); + SkipButtonDisable = + new CustomStringOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("DisableMeetingSkipButton"), new[] { LocalizationManager.Instance.GetString("No"), LocalizationManager.Instance.GetString("Emergency"), LocalizationManager.Instance.GetString("Always") }); + HiddenRoles = new CustomToggleOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("EnableHiddenRoles"), true); + FirstDeathShield = new CustomToggleOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("FirstDeathShieldNextGame"), false); + NeutralEvilWinEndsGame = new CustomToggleOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("NeutralEvilWinEndsGame"), true); + TaskTrackingSettings = - new CustomHeaderOption(num++, MultiMenu.main, "Task Tracking Settings"); - SeeTasksDuringRound = new CustomToggleOption(num++, MultiMenu.main, "See Tasks During Round", false); - SeeTasksDuringMeeting = new CustomToggleOption(num++, MultiMenu.main, "See Tasks During Meetings", false); - SeeTasksWhenDead = new CustomToggleOption(num++, MultiMenu.main, "See Tasks When Dead", true); - - Assassin = new CustomHeaderOption(num++, MultiMenu.imposter, "Assassin Ability"); - NumberOfImpostorAssassins = new CustomNumberOption(num++, MultiMenu.imposter, "Number Of Impostor Assassins", 1, 0, 4, 1); - NumberOfNeutralAssassins = new CustomNumberOption(num++, MultiMenu.imposter, "Number Of Neutral Assassins", 1, 0, 5, 1); - AmneTurnImpAssassin = new CustomToggleOption(num++, MultiMenu.imposter, "Amnesiac Turned Impostor Gets Ability", false); - AmneTurnNeutAssassin = new CustomToggleOption(num++, MultiMenu.imposter, "Amnesiac Turned Neutral Killing Gets Ability", false); - TraitorCanAssassin = new CustomToggleOption(num++, MultiMenu.imposter, "Traitor Gets Ability", false); - AssassinKills = new CustomNumberOption(num++, MultiMenu.imposter, "Number Of Assassin Kills", 1, 1, 15, 1); - AssassinMultiKill = new CustomToggleOption(num++, MultiMenu.imposter, "Assassin Can Kill More Than Once Per Meeting", false); - AssassinCrewmateGuess = new CustomToggleOption(num++, MultiMenu.imposter, "Assassin Can Guess \"Crewmate\"", false); - AssassinGuessNeutralBenign = new CustomToggleOption(num++, MultiMenu.imposter, "Assassin Can Guess Neutral Benign Roles", false); - AssassinGuessNeutralEvil = new CustomToggleOption(num++, MultiMenu.imposter, "Assassin Can Guess Neutral Evil Roles", false); - AssassinGuessNeutralKilling = new CustomToggleOption(num++, MultiMenu.imposter, "Assassin Can Guess Neutral Killing Roles", false); - AssassinGuessImpostors = new CustomToggleOption(num++, MultiMenu.imposter, "Assassin Can Guess Impostor Roles", false); - AssassinGuessModifiers = new CustomToggleOption(num++, MultiMenu.imposter, "Assassin Can Guess Crewmate Modifiers", false); - AssassinGuessLovers = new CustomToggleOption(num++, MultiMenu.imposter, "Assassin Can Guess Lovers", false); - AssassinateAfterVoting = new CustomToggleOption(num++, MultiMenu.imposter, "Assassin Can Guess After Voting", false); + new CustomHeaderOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("TaskTrackingSettings")); + SeeTasksDuringRound = + new CustomToggleOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("SeeTasksDuringRound"), false); + SeeTasksDuringMeeting = + new CustomToggleOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("SeeTasksDuringMeetings"), false); + SeeTasksWhenDead = + new CustomToggleOption(num++, MultiMenu.main, LocalizationManager.Instance.GetString("SeeTasksWhenDead"), true); + + Assassin = + new CustomHeaderOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("AssassinAbility")}"); + NumberOfImpostorAssassins = + new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("NumberOfImpostorAssassins"), 1, 0, 4, 1); + NumberOfNeutralAssassins = + new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("NumberOfNeutralAssassins"), 1, 0, 5, 1); + AmneTurnImpAssassin = + new CustomToggleOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("AmnesiacTurnedImpostorGetsAbility"), false); + AmneTurnNeutAssassin = + new CustomToggleOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("AmnesiacTurnedNeutralKillingGetsAbility"), false); + TraitorCanAssassin = + new CustomToggleOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("TraitorGetsAbility"), false); + AssassinKills = + new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("NumberOfAssassinKills"), 1, 1, 15, 1); Aurial = - new CustomHeaderOption(num++, MultiMenu.crewmate, "Aurial"); + new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Aurial")}"); RadiateRange = - new CustomNumberOption(num++, MultiMenu.crewmate, "Radiate Range", 1f, 0.25f, 5f, 0.25f, MultiplierFormat); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("RadiateRange"), 1f, 0.25f, 5f, 0.25f, MultiplierFormat); RadiateCooldown = - new CustomNumberOption(num++, MultiMenu.crewmate, "Radiate Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("RadiateCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); RadiateInvis = - new CustomNumberOption(num++, MultiMenu.crewmate, "Radiate See Delay", 10f, 0f, 15f, 1f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("RadiateSeeDelay"), 10f, 0f, 15f, 1f, CooldownFormat); RadiateCount = - new CustomNumberOption(num++, MultiMenu.crewmate, "Radiate Uses To See", 3, 1, 5, 1); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("RadiateUsesToSee"), 3, 1, 5, 1); RadiateSucceedChance = - new CustomNumberOption(num++, MultiMenu.crewmate, "Radiate Succeed Chance", 100f, 0f, 100f, 10f, PercentFormat); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("RadiateSucceedChance"), 100f, 0f, 100f, 10f, PercentFormat); Detective = - new CustomHeaderOption(num++, MultiMenu.crewmate, "Detective"); + new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Detective")}"); ExamineCooldown = - new CustomNumberOption(num++, MultiMenu.crewmate, "Examine Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); - DetectiveReportOn = new CustomToggleOption(num++, MultiMenu.crewmate, "Show Detective Reports", true); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("ExamineCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); + DetectiveReportOn = new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("ShowDetectiveReports"), true); DetectiveRoleDuration = - new CustomNumberOption(num++, MultiMenu.crewmate, "Time Where Detective Will Have Role", 15f, 0f, 60f, 2.5f, + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("TimeWhereDetectiveWillHaveRole"), 15f, 0f, 60f, 2.5f, CooldownFormat); DetectiveFactionDuration = - new CustomNumberOption(num++, MultiMenu.crewmate, "Time Where Detective Will Have Faction", 30f, 0f, 60f, 2.5f, + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("TimeWhereDetectiveWill HaveFaction"), 30f, 0f, 60f, 2.5f, CooldownFormat); - CanDetectLastKiller = new CustomToggleOption(num++, MultiMenu.crewmate, "Can Detect Last Killer", false); + CanDetectLastKiller = new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("Can Detect Last Killer"), false); Haunter = - new CustomHeaderOption(num++, MultiMenu.crewmate, "Haunter"); + new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Haunter")}"); HaunterTasksRemainingClicked = - new CustomNumberOption(num++, MultiMenu.crewmate, "Tasks Remaining When Haunter Can Be Clicked", 5, 1, 15, 1); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("TasksRemainingWhenHaunterCanBeClicked"), 5, 1, 15, 1); HaunterTasksRemainingAlert = - new CustomNumberOption(num++, MultiMenu.crewmate, "Tasks Remaining When Alert Is Sent", 1, 1, 5, 1); - HaunterRevealsNeutrals = new CustomToggleOption(num++, MultiMenu.crewmate, "Haunter Reveals Neutral Roles", false); - HaunterCanBeClickedBy = new CustomStringOption(num++, MultiMenu.crewmate, "Who Can Click Haunter", new[] { "All", "Non-Crew", "Imps Only" }); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("TasksRemainingWhenAlertIsSent"), 1, 1, 5, 1); + HaunterRevealsNeutrals = new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("HaunterRevealsNeutralRoles"), false); + HaunterCanBeClickedBy = new CustomStringOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("WhoCanClickHaunter"), new[] { LocalizationManager.Instance.GetString("All"), LocalizationManager.Instance.GetString("Non-Crew"), LocalizationManager.Instance.GetString("ImpsOnly") }); Investigator = - new CustomHeaderOption(num++, MultiMenu.crewmate, "Investigator"); - FootprintSize = new CustomNumberOption(num++, MultiMenu.crewmate, "Footprint Size", 4f, 1f, 10f, 1f); + new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Investigator")}"); + FootprintSize = new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("FootprintSize"), 4f, 1f, 10f, 1f); FootprintInterval = - new CustomNumberOption(num++, MultiMenu.crewmate, "Footprint Interval", 0.1f, 0.05f, 1f, 0.05f, CooldownFormat); - FootprintDuration = new CustomNumberOption(num++, MultiMenu.crewmate, "Footprint Duration", 10f, 1f, 15f, 0.5f, CooldownFormat); - AnonymousFootPrint = new CustomToggleOption(num++, MultiMenu.crewmate, "Anonymous Footprint", false); - VentFootprintVisible = new CustomToggleOption(num++, MultiMenu.crewmate, "Footprint Vent Visible", false); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("FootprintInterval"), 0.1f, 0.05f, 1f, 0.05f, CooldownFormat); + FootprintDuration = new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("FootprintDuration"), 10f, 1f, 15f, 0.5f, CooldownFormat); + AnonymousFootPrint = new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("AnonymousFootprint"), false); + VentFootprintVisible = new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("FootprintVentVisible"), false); Mystic = - new CustomHeaderOption(num++, MultiMenu.crewmate, "Mystic"); + new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Mystic")}"); MysticArrowDuration = - new CustomNumberOption(num++, MultiMenu.crewmate, "Dead Body Arrow Duration", 0.1f, 0f, 1f, 0.05f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("DeadBodyArrowDuration"), 0.1f, 0f, 1f, 0.05f, CooldownFormat); Oracle = - new CustomHeaderOption(num++, MultiMenu.crewmate, "Oracle"); + new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Oracle")}"); ConfessCooldown = - new CustomNumberOption(num++, MultiMenu.crewmate, "Confess Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("ConfessCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); RevealAccuracy = new CustomNumberOption(num++, MultiMenu.crewmate, "Reveal Accuracy", 80f, 0f, 100f, 10f, PercentFormat); NeutralBenignShowsEvil = - new CustomToggleOption(num++, MultiMenu.crewmate, "Neutral Benign Roles Show Evil", false); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("NeutralBenignRolesShowEvil"), false); NeutralEvilShowsEvil = - new CustomToggleOption(num++, MultiMenu.crewmate, "Neutral Evil Roles Show Evil", false); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("NeutralEvilRolesShowEvil"), false); NeutralKillingShowsEvil = - new CustomToggleOption(num++, MultiMenu.crewmate, "Neutral Killing Roles Show Evil", true); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("NeutralKillingRolesShowEvil"), true); Seer = - new CustomHeaderOption(num++, MultiMenu.crewmate, "Seer"); + new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Seer")}"); SeerCooldown = - new CustomNumberOption(num++, MultiMenu.crewmate, "Seer Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("SeerCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); CrewKillingRed = - new CustomToggleOption(num++, MultiMenu.crewmate, "Crewmate Killing Roles Are Red", false); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("CrewmateKillingRolesAreRed"), false); NeutBenignRed = - new CustomToggleOption(num++, MultiMenu.crewmate, "Neutral Benign Roles Are Red", false); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("NeutralBenignRolesAreRed"), false); NeutEvilRed = - new CustomToggleOption(num++, MultiMenu.crewmate, "Neutral Evil Roles Are Red", false); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("NeutralEvilRolesAreRed"), false); NeutKillingRed = - new CustomToggleOption(num++, MultiMenu.crewmate, "Neutral Killing Roles Are Red", true); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("NeutralKillingRolesAreRed"), true); TraitorColourSwap = - new CustomToggleOption(num++, MultiMenu.crewmate, "Traitor Does Not Swap Colours", false); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("TraitorDoesNotSwapColours"), false); - Snitch = new CustomHeaderOption(num++, MultiMenu.crewmate, "Snitch"); - SnitchSeesNeutrals = new CustomToggleOption(num++, MultiMenu.crewmate, "Snitch Sees Neutral Roles", false); + Snitch = new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Snitch")}"); + SnitchSeesNeutrals = new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("SnitchSeesNeutralRoles"), false); SnitchTasksRemaining = - new CustomNumberOption(num++, MultiMenu.crewmate, "Tasks Remaining When Revealed", 1, 1, 5, 1); - SnitchSeesImpInMeeting = new CustomToggleOption(num++, MultiMenu.crewmate, "Snitch Sees Impostors In Meetings", true); - SnitchSeesTraitor = new CustomToggleOption(num++, MultiMenu.crewmate, "Snitch Sees Traitor", true); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("TasksRemainingWhenRevealed"), 1, 1, 5, 1); + SnitchSeesImpInMeeting = new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("SnitchSeesImpostorsInMeetings"), true); + SnitchSeesTraitor = new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("SnitchSeesTraitor"), true); Spy = - new CustomHeaderOption(num++, MultiMenu.crewmate, "Spy"); - WhoSeesDead = new CustomStringOption(num++, MultiMenu.crewmate, "Who Sees Dead Bodies On Admin", - new[] { "Nobody", "Spy", "Everyone But Spy", "Everyone" }); + new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Spy")}"); + WhoSeesDead = new CustomStringOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("WhoSeesDeadBodiesOnAdmin"), + new[] { LocalizationManager.Instance.GetString("Nobody"), LocalizationManager.Instance.GetString("Spy"), LocalizationManager.Instance.GetString("Everyone But Spy"), LocalizationManager.Instance.GetString("Everyone") }); Tracker = - new CustomHeaderOption(num++, MultiMenu.crewmate, "Tracker"); + new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Tracker")}"); UpdateInterval = - new CustomNumberOption(num++, MultiMenu.crewmate, "Arrow Update Interval", 5f, 0.5f, 15f, 0.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("ArrowUpdateInterval"), 5f, 0.5f, 15f, 0.5f, CooldownFormat); TrackCooldown = - new CustomNumberOption(num++, MultiMenu.crewmate, "Track Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); - ResetOnNewRound = new CustomToggleOption(num++, MultiMenu.crewmate, "Tracker Arrows Reset After Each Round", false); - MaxTracks = new CustomNumberOption(num++, MultiMenu.crewmate, "Maximum Number Of Tracks Per Round", 5, 1, 15, 1); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("TrackCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); + ResetOnNewRound = new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("TrackerArrowsResetAfterEachRound"), false); + MaxTracks = new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("MaximumNumberOfTracksPerRound"), 5, 1, 15, 1); Trapper = - new CustomHeaderOption(num++, MultiMenu.crewmate, "Trapper"); + new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Trapper")}"); MinAmountOfTimeInTrap = - new CustomNumberOption(num++, MultiMenu.crewmate, "Min Amount Of Time In Trap To Register", 1f, 0f, 15f, 0.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("MinAmountOfTimeInTrapToRegister"), 1f, 0f, 15f, 0.5f, CooldownFormat); TrapCooldown = - new CustomNumberOption(num++, MultiMenu.crewmate, "Trap Cooldown", 25f, 10f, 40f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("TrapCooldown"), 25f, 10f, 40f, 2.5f, CooldownFormat); TrapsRemoveOnNewRound = - new CustomToggleOption(num++, MultiMenu.crewmate, "Traps Removed After Each Round", true); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("TrapsRemovedAfterEachRound"), true); MaxTraps = - new CustomNumberOption(num++, MultiMenu.crewmate, "Maximum Number Of Traps Per Game", 5, 1, 15, 1); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("MaximumNumberOfTrapsPerGame"), 5, 1, 15, 1); TrapSize = - new CustomNumberOption(num++, MultiMenu.crewmate, "Trap Size", 0.25f, 0.05f, 1f, 0.05f, MultiplierFormat); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("TrapSize"), 0.25f, 0.05f, 1f, 0.05f, MultiplierFormat); MinAmountOfPlayersInTrap = - new CustomNumberOption(num++, MultiMenu.crewmate, "Minimum Number Of Roles Required To Trigger Trap", 3, 1, 5, 1); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("MinimumNumberOfRolesRequiredToTriggerTrap"), 3, 1, 5, 1); Sheriff = - new CustomHeaderOption(num++, MultiMenu.crewmate, "Sheriff"); + new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Sheriff")}"); SheriffKillOther = - new CustomToggleOption(num++, MultiMenu.crewmate, "Sheriff Miskill Kills Crewmate", false); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("SheriffMiskillKillsCrewmate"), false); SheriffKillsDoomsayer = - new CustomToggleOption(num++, MultiMenu.crewmate, "Sheriff Kills Doomsayer", false); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("SheriffKillsDoomsayer"), false); SheriffKillsExecutioner = - new CustomToggleOption(num++, MultiMenu.crewmate, "Sheriff Kills Executioner", false); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("SheriffKillsExecutioner"), false); SheriffKillsJester = - new CustomToggleOption(num++, MultiMenu.crewmate, "Sheriff Kills Jester", false); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("SheriffKillsJester"), false); SheriffKillsArsonist = - new CustomToggleOption(num++, MultiMenu.crewmate, "Sheriff Kills Arsonist", false); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("SheriffKillsArsonist"), false); SheriffKillsGlitch = - new CustomToggleOption(num++, MultiMenu.crewmate, "Sheriff Kills The Glitch", false); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("SheriffKillsTheGlitch"), false); SheriffKillsJuggernaut = - new CustomToggleOption(num++, MultiMenu.crewmate, "Sheriff Kills Juggernaut", false); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("SheriffKillsJuggernaut"), false); SheriffKillsPlaguebearer = - new CustomToggleOption(num++, MultiMenu.crewmate, "Sheriff Kills Plaguebearer", false); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("SheriffKillsPlaguebearer"), false); SheriffKillsVampire = - new CustomToggleOption(num++, MultiMenu.crewmate, "Sheriff Kills Vampire", false); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("SheriffKillsVampire"), false); SheriffKillsWerewolf = - new CustomToggleOption(num++, MultiMenu.crewmate, "Sheriff Kills Werewolf", false); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("SheriffKillsWerewolf"), false); SheriffKillCd = - new CustomNumberOption(num++, MultiMenu.crewmate, "Sheriff Kill Cooldown", 25f, 10f, 40f, 2.5f, CooldownFormat); - SheriffBodyReport = new CustomToggleOption(num++, MultiMenu.crewmate, "Sheriff Can Report Who They've Killed"); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("SheriffKillCooldown"), 25f, 10f, 40f, 2.5f, CooldownFormat); + SheriffBodyReport = new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("SheriffCanReportWhoTheyveKilled")); VampireHunter = - new CustomHeaderOption(num++, MultiMenu.crewmate, "Vampire Hunter"); + new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("VampireHunter")}"); StakeCooldown = - new CustomNumberOption(num++, MultiMenu.crewmate, "Stake Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); - MaxFailedStakesPerGame = new CustomNumberOption(num++, MultiMenu.crewmate, "Maximum Failed Stakes Per Game", 5, 1, 15, 1); - CanStakeRoundOne = new CustomToggleOption(num++, MultiMenu.crewmate, "Can Stake Round One", false); - SelfKillAfterFinalStake = new CustomToggleOption(num++, MultiMenu.crewmate, "Self Kill On Failure To Kill A Vamp With All Stakes", false); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("StakeCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); + MaxFailedStakesPerGame = new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("MaximumFailedStakesPerGame"), 5, 1, 15, 1); + CanStakeRoundOne = new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("CanStakeRoundOne"), false); + SelfKillAfterFinalStake = new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("SelfKillOnFailureToKillAVampWithAllStakes"), false); BecomeOnVampDeaths = - new CustomStringOption(num++, MultiMenu.crewmate, "What Vampire Hunter Becomes On All Vampire Deaths", new[] { "Crewmate", "Sheriff", "Veteran", "Vigilante" }); + new CustomStringOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("WhatVampireHunterBecomesOnAllVampireDeaths"), + new[] { LocalizationManager.Instance.GetString("Crewmate"), LocalizationManager.Instance.GetString("Sheriff"), LocalizationManager.Instance.GetString("Veteran"), LocalizationManager.Instance.GetString("Vigilante") }); Veteran = - new CustomHeaderOption(num++, MultiMenu.crewmate, "Veteran"); + new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Veteran")}"); KilledOnAlert = - new CustomToggleOption(num++, MultiMenu.crewmate, "Can Be Killed On Alert", false); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("CanBeKilledOnAlert"), false); AlertCooldown = - new CustomNumberOption(num++, MultiMenu.crewmate, "Alert Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("AlertCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); AlertDuration = - new CustomNumberOption(num++, MultiMenu.crewmate, "Alert Duration", 10f, 5f, 15f, 1f, CooldownFormat); - MaxAlerts = new CustomNumberOption(num++, MultiMenu.crewmate, "Maximum Number Of Alerts", 5, 1, 15, 1); - - Vigilante = new CustomHeaderOption(num++, MultiMenu.crewmate, "Vigilante"); - VigilanteKills = new CustomNumberOption(num++, MultiMenu.crewmate, "Number Of Vigilante Kills", 1, 1, 15, 1); - VigilanteMultiKill = new CustomToggleOption(num++, MultiMenu.crewmate, "Vigilante Can Kill More Than Once Per Meeting", false); - VigilanteGuessNeutralBenign = new CustomToggleOption(num++, MultiMenu.crewmate, "Vigilante Can Guess Neutral Benign Roles", false); - VigilanteGuessNeutralEvil = new CustomToggleOption(num++, MultiMenu.crewmate, "Vigilante Can Guess Neutral Evil Roles", false); - VigilanteGuessNeutralKilling = new CustomToggleOption(num++, MultiMenu.crewmate, "Vigilante Can Guess Neutral Killing Roles", false); - VigilanteGuessLovers = new CustomToggleOption(num++, MultiMenu.crewmate, "Vigilante Can Guess Lovers", false); - VigilanteAfterVoting = new CustomToggleOption(num++, MultiMenu.crewmate, "Vigilante Can Guess After Voting", false); - - Altruist = new CustomHeaderOption(num++, MultiMenu.crewmate, "Altruist"); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("AlertDuration"), 10f, 5f, 15f, 1f, CooldownFormat); + MaxAlerts = new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("MaximumNumberOfAlerts"), 5, 1, 15, 1); + + Vigilante = new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Vigilante")}"); + VigilanteKills = new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("NumberOfVigilanteKills"), 1, 1, 15, 1); + VigilanteMultiKill = new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("VigilanteCanKillMoreThanOncePerMeeting"), false); + VigilanteGuessNeutralBenign = new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("VigilanteCanGuessNeutralBenignRoles"), false); + VigilanteGuessNeutralEvil = new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("VigilanteCanGuessNeutralEvilRoles"), false); + VigilanteGuessNeutralKilling = new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("VigilanteCanGuessNeutralKillingRoles"), false); + VigilanteGuessLovers = new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("VigilanteCanGuessLovers"), false); + VigilanteAfterVoting = new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("VigilanteCanGuessAfterVoting"), false); + + Altruist = new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Altruist")}"); ReviveDuration = - new CustomNumberOption(num++, MultiMenu.crewmate, "Altruist Revive Duration", 10f, 1f, 15f, 1f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("AltruistReviveDuration"), 10f, 1f, 15f, 1f, CooldownFormat); AltruistTargetBody = - new CustomToggleOption(num++, MultiMenu.crewmate, "Target's Body Disappears On Beginning Of Revive", false); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("TargetsBodyDisappearsOnBeginningOfRevive"), false); Medic = - new CustomHeaderOption(num++, MultiMenu.crewmate, "Medic"); + new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Medic")}"); ShowShielded = - new CustomStringOption(num++, MultiMenu.crewmate, "Show Shielded Player", - new[] { "Self", "Medic", "Self+Medic", "Everyone" }); + new CustomStringOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("ShowShieldedPlayer"), + new[] { LocalizationManager.Instance.GetString("Self"), LocalizationManager.Instance.GetString("Medic"), LocalizationManager.Instance.GetString("Self+Medic"), LocalizationManager.Instance.GetString("Everyone") }); WhoGetsNotification = - new CustomStringOption(num++, MultiMenu.crewmate, "Who Gets Murder Attempt Indicator", - new[] { "Medic", "Shielded", "Everyone", "Nobody" }); - ShieldBreaks = new CustomToggleOption(num++, MultiMenu.crewmate, "Shield Breaks On Murder Attempt", false); - MedicReportSwitch = new CustomToggleOption(num++, MultiMenu.crewmate, "Show Medic Reports"); + new CustomStringOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("WhoGetsMurderAttemptIndicator"), + new[] { LocalizationManager.Instance.GetString("Medic"), LocalizationManager.Instance.GetString("Shielded"), LocalizationManager.Instance.GetString("Everyone"), LocalizationManager.Instance.GetString("Nobody") }); + ShieldBreaks = new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("ShieldBreaksOnMurderAttempt"), false); + MedicReportSwitch = new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("ShowMedicReports")); MedicReportNameDuration = - new CustomNumberOption(num++, MultiMenu.crewmate, "Time Where Medic Will Have Name", 0f, 0f, 60f, 2.5f, + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("TimeWhereMedicWillHaveName"), 0f, 0f, 60f, 2.5f, CooldownFormat); MedicReportColorDuration = - new CustomNumberOption(num++, MultiMenu.crewmate, "Time Where Medic Will Have Color Type", 15f, 0f, 60f, 2.5f, + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("TimeWhereMedicWillHaveColorType"), 15f, 0f, 60f, 2.5f, CooldownFormat); Engineer = - new CustomHeaderOption(num++, MultiMenu.crewmate, "Engineer"); + new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Engineer")}"); MaxFixes = - new CustomNumberOption(num++, MultiMenu.crewmate, "Maximum Number Of Fixes", 5, 1, 15, 1); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("MaximumNumberOfFixes"), 5, 1, 15, 1); Medium = - new CustomHeaderOption(num++, MultiMenu.crewmate, "Medium"); + new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Medium")}"); MediateCooldown = - new CustomNumberOption(num++, MultiMenu.crewmate, "Mediate Cooldown", 10f, 1f, 15f, 1f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("MediateCooldown"), 10f, 1f, 15f, 1f, CooldownFormat); ShowMediatePlayer = - new CustomToggleOption(num++, MultiMenu.crewmate, "Reveal Appearance Of Mediate Target", true); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("RevealAppearanceOfMediateTarget"), true); ShowMediumToDead = - new CustomToggleOption(num++, MultiMenu.crewmate, "Reveal The Medium To The Mediate Target", true); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("RevealTheMediumToTheMediateTarget"), true); DeadRevealed = - new CustomStringOption(num++, MultiMenu.crewmate, "Who Is Revealed With Mediate", new[] { "Oldest Dead", "Newest Dead", "All Dead" }); + new CustomStringOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("WhoIsRevealedWithMediate"), + new[] { LocalizationManager.Instance.GetString("OldestDead"), LocalizationManager.Instance.GetString("NewestDead"), LocalizationManager.Instance.GetString("AllDead") }); Prosecutor = - new CustomHeaderOption(num++, MultiMenu.crewmate, "Prosecutor"); + new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Prosecutor")}"); ProsDiesOnIncorrectPros = - new CustomToggleOption(num++, MultiMenu.crewmate, "Prosecutor Dies When They Exile A Crewmate", false); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("ProsecutorDiesWhenTheyExileACrewmate"), false); Swapper = - new CustomHeaderOption(num++, MultiMenu.crewmate, "Swapper"); + new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Swapper")}"); SwapperButton = - new CustomToggleOption(num++, MultiMenu.crewmate, "Swapper Can Button", true); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("SwapperCanButton"), true); Transporter = - new CustomHeaderOption(num++, MultiMenu.crewmate, "Transporter"); + new CustomHeaderOption(num++, MultiMenu.crewmate, $"{LocalizationManager.Instance.GetString("Transporter")}"); TransportCooldown = - new CustomNumberOption(num++, MultiMenu.crewmate, "Transport Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("TransportCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); TransportMaxUses = - new CustomNumberOption(num++, MultiMenu.crewmate, "Maximum Number Of Transports", 5, 1, 15, 1); + new CustomNumberOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("MaximumNumberOfTransports"), 5, 1, 15, 1); TransporterVitals = - new CustomToggleOption(num++, MultiMenu.crewmate, "Transporter Can Use Vitals", false); + new CustomToggleOption(num++, MultiMenu.crewmate, LocalizationManager.Instance.GetString("TransporterCanUseVitals"), false); - Amnesiac = new CustomHeaderOption(num++, MultiMenu.neutral, "Amnesiac"); + Amnesiac = new CustomHeaderOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("Amnesiac")}"); RememberArrows = - new CustomToggleOption(num++, MultiMenu.neutral, "Amnesiac Gets Arrows Pointing To Dead Bodies", false); + new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("AmnesiacGetsArrowsPointingToDeadBodies"), false); RememberArrowDelay = - new CustomNumberOption(num++, MultiMenu.neutral, "Time After Death Arrow Appears", 5f, 0f, 15f, 1f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("TimeAfterDeathArrowAppears"), 5f, 0f, 15f, 1f, CooldownFormat); GuardianAngel = - new CustomHeaderOption(num++, MultiMenu.neutral, "Guardian Angel"); + new CustomHeaderOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("GuardianAngel")}"); ProtectCd = - new CustomNumberOption(num++, MultiMenu.neutral, "Protect Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("ProtectCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); ProtectDuration = - new CustomNumberOption(num++, MultiMenu.neutral, "Protect Duration", 10f, 5f, 15f, 1f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("ProtectDuration"), 10f, 5f, 15f, 1f, CooldownFormat); ProtectKCReset = - new CustomNumberOption(num++, MultiMenu.neutral, "Kill Cooldown Reset When Protected", 2.5f, 0f, 15f, 0.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("KillCooldownResetWhenProtected"), 2.5f, 0f, 15f, 0.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("KillCooldownResetWhenProtected"), 2.5f, 0f, 15f, 0.5f, CooldownFormat); MaxProtects = - new CustomNumberOption(num++, MultiMenu.neutral, "Maximum Number Of Protects", 5, 1, 15, 1); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("MaximumNumberOfProtects"), 5, 1, 15, 1); ShowProtect = - new CustomStringOption(num++, MultiMenu.neutral, "Show Protected Player", - new[] { "Self", "Guardian Angel", "Self+GA", "Everyone" }); - GaOnTargetDeath = new CustomStringOption(num++, MultiMenu.neutral, "GA Becomes On Target Dead", - new[] { "Crew", "Amnesiac", "Survivor", "Jester" }); + new CustomStringOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("ShowProtectedPlayer"), + new[] { LocalizationManager.Instance.GetString("Self"), LocalizationManager.Instance.GetString("GuardianAngel"), LocalizationManager.Instance.GetString("Self+GA"), LocalizationManager.Instance.GetString("Everyone") }); + GaOnTargetDeath = new CustomStringOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("GABecomes OnTargetDead"), + new[] { LocalizationManager.Instance.GetString("Crew"), LocalizationManager.Instance.GetString("Amnesiac"), LocalizationManager.Instance.GetString("Survivor"), LocalizationManager.Instance.GetString("Jester") }); GATargetKnows = - new CustomToggleOption(num++, MultiMenu.neutral, "Target Knows GA Exists", false); + new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("TargetKnowsGExists"), false); GAKnowsTargetRole = - new CustomToggleOption(num++, MultiMenu.neutral, "GA Knows Targets Role", false); - EvilTargetPercent = new CustomNumberOption(num++, MultiMenu.neutral, "Odds Of Target Being Evil", 20f, 0f, 100f, 10f, + new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("GAKnowsTargetsRole"), false); + EvilTargetPercent = new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("OddsOfTargetBeingEvil"), 20f, 0f, 100f, 10f, PercentFormat); Survivor = - new CustomHeaderOption(num++, MultiMenu.neutral, "Survivor"); + new CustomHeaderOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("Survivor")}"); VestCd = - new CustomNumberOption(num++, MultiMenu.neutral, "Vest Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("VestCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); VestDuration = - new CustomNumberOption(num++, MultiMenu.neutral, "Vest Duration", 10f, 5f, 15f, 1f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("VestDuration"), 10f, 5f, 15f, 1f, CooldownFormat); VestKCReset = - new CustomNumberOption(num++, MultiMenu.neutral, "Kill Cooldown Reset On Attack", 2.5f, 0f, 15f, 0.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("KillCooldownResetOnAttack"), 2.5f, 0f, 15f, 0.5f, CooldownFormat); MaxVests = - new CustomNumberOption(num++, MultiMenu.neutral, "Maximum Number Of Vests", 5, 1, 15, 1); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("MaximumNumberOfVests"), 5, 1, 15, 1); - Doomsayer = new CustomHeaderOption(num++, MultiMenu.neutral, "Doomsayer"); + Doomsayer = new CustomHeaderOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("Doomsayer")}"); ObserveCooldown = - new CustomNumberOption(num++, MultiMenu.neutral, "Observe Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); - DoomsayerGuessNeutralBenign = new CustomToggleOption(num++, MultiMenu.neutral, "Doomsayer Can Guess Neutral Benign Roles", false); - DoomsayerGuessNeutralEvil = new CustomToggleOption(num++, MultiMenu.neutral, "Doomsayer Can Guess Neutral Evil Roles", false); - DoomsayerGuessNeutralKilling = new CustomToggleOption(num++, MultiMenu.neutral, "Doomsayer Can Guess Neutral Killing Roles", false); - DoomsayerGuessImpostors = new CustomToggleOption(num++, MultiMenu.neutral, "Doomsayer Can Guess Impostor Roles", false); - DoomsayerAfterVoting = new CustomToggleOption(num++, MultiMenu.neutral, "Doomsayer Can Guess After Voting", false); - DoomsayerGuessesToWin = new CustomNumberOption(num++, MultiMenu.neutral, "Number Of Doomsayer Kills To Win", 3, 1, 5, 1); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("ObserveCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); + DoomsayerGuessNeutralBenign = new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("DoomsayerCanGuessNeutralBenignRoles"), false); + DoomsayerGuessNeutralEvil = new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("DoomsayerCanGuessNeutralEvilRoles"), false); + DoomsayerGuessNeutralKilling = new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("DoomsayerCanGuessNeutralKillingRoles"), false); + DoomsayerGuessImpostors = new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("DoomsayerCanGuessImpostorRoles"), false); + DoomsayerAfterVoting = new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("DoomsayerCanGuessAfterVoting"), false); + DoomsayerGuessesToWin = new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("NumberOfDoomsayerKillsToWin"), 3, 1, 5, 1); Executioner = - new CustomHeaderOption(num++, MultiMenu.neutral, "Executioner"); - OnTargetDead = new CustomStringOption(num++, MultiMenu.neutral, "Executioner Becomes On Target Dead", + new CustomHeaderOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("Executioner")}"); + OnTargetDead = new CustomStringOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("ExecutionerBecomesOnTargetDead"), new[] { "Crew", "Amnesiac", "Survivor", "Jester" }); ExecutionerButton = - new CustomToggleOption(num++, MultiMenu.neutral, "Executioner Can Button", true); + new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("ExecutionerCanButton"), true); ExecutionerTorment = - new CustomToggleOption(num++, MultiMenu.neutral, "Executioner Torments Player On Victory", true); + new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("ExecutionerTormentsPlayerOnVictory"), true); Jester = - new CustomHeaderOption(num++, MultiMenu.neutral, "Jester"); + new CustomHeaderOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("Jester")}"); JesterButton = - new CustomToggleOption(num++, MultiMenu.neutral, "Jester Can Button", true); + new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("JesterCanButton"), true); JesterVent = - new CustomToggleOption(num++, MultiMenu.neutral, "Jester Can Hide In Vents", false); + new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("JesterCanHideInVents"), false); JesterImpVision = - new CustomToggleOption(num++, MultiMenu.neutral, "Jester Has Impostor Vision", false); + new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("JesterHasImpostorVision"), false); JesterHaunt = - new CustomToggleOption(num++, MultiMenu.neutral, "Jester Haunts Player On Victory", true); + new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("JesterHauntsPlayerOnVictory"), true); Phantom = - new CustomHeaderOption(num++, MultiMenu.neutral, "Phantom"); + new CustomHeaderOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("Phantom")}"); PhantomTasksRemaining = - new CustomNumberOption(num++, MultiMenu.neutral, "Tasks Remaining When Phantom Can Be Clicked", 5, 1, 15, 1); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("TasksRemainingWhenPhantomCanBeClicked"), 5, 1, 15, 1); PhantomSpook = - new CustomToggleOption(num++, MultiMenu.neutral, "Phantom Spooks Player On Victory", true); + new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("PhantomSpooksPlayer OnVictory"), true); - Arsonist = new CustomHeaderOption(num++, MultiMenu.neutral, "Arsonist"); + Arsonist = new CustomHeaderOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("Arsonist")}"); DouseCooldown = - new CustomNumberOption(num++, MultiMenu.neutral, "Douse Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("DouseCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); MaxDoused = - new CustomNumberOption(num++, MultiMenu.neutral, "Maximum Alive Players Doused", 5, 1, 15, 1); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("MaximumAlivePlayersDoused"), 5, 1, 15, 1); ArsoImpVision = - new CustomToggleOption(num++, MultiMenu.neutral, "Arsonist Has Impostor Vision", false); + new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("ArsonistHasImpostoVision"), false); IgniteCdRemoved = - new CustomToggleOption(num++, MultiMenu.neutral, "Ignite Cooldown Removed When Arsonist Is Last Killer", false); + new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("IgniteCooldownRemovedWhenArsonistIsLastKiller"), false); Juggernaut = - new CustomHeaderOption(num++, MultiMenu.neutral, "Juggernaut"); + new CustomHeaderOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("Juggernaut")}"); JuggKillCooldown = new CustomNumberOption(num++, MultiMenu.neutral, "Juggernaut Initial Kill Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); ReducedKCdPerKill = new CustomNumberOption(num++, MultiMenu.neutral, "Reduced Kill Cooldown Per Kill", 5f, 2.5f, 10f, 2.5f, CooldownFormat); JuggVent = - new CustomToggleOption(num++, MultiMenu.neutral, "Juggernaut Can Vent", false); + new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("JuggernautCanVent"), false); - Plaguebearer = new CustomHeaderOption(num++, MultiMenu.neutral, "Plaguebearer"); + Plaguebearer = new CustomHeaderOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("Plaguebearer")}"); InfectCooldown = - new CustomNumberOption(num++, MultiMenu.neutral, "Infect Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("InfectCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); PestKillCooldown = - new CustomNumberOption(num++, MultiMenu.neutral, "Pestilence Kill Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("PestilenceKillCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); PestVent = - new CustomToggleOption(num++, MultiMenu.neutral, "Pestilence Can Vent", false); + new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("PestilenceCanVent"), false); TheGlitch = - new CustomHeaderOption(num++, MultiMenu.neutral, "The Glitch"); - MimicCooldownOption = new CustomNumberOption(num++, MultiMenu.neutral, "Mimic Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); - MimicDurationOption = new CustomNumberOption(num++, MultiMenu.neutral, "Mimic Duration", 10f, 1f, 15f, 1f, CooldownFormat); - HackCooldownOption = new CustomNumberOption(num++, MultiMenu.neutral, "Hack Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); - HackDurationOption = new CustomNumberOption(num++, MultiMenu.neutral, "Hack Duration", 10f, 1f, 15f, 1f, CooldownFormat); + new CustomHeaderOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("TheGlitch")}"); + MimicCooldownOption = new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("MimicCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); + MimicDurationOption = new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("MimicDuration"), 10f, 1f, 15f, 1f, CooldownFormat); + HackCooldownOption = new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("HackCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); + HackDurationOption = new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("HackDuration"), 10f, 1f, 15f, 1f, CooldownFormat); GlitchKillCooldownOption = - new CustomNumberOption(num++, MultiMenu.neutral, "Glitch Kill Cooldown", 25f, 10f, 120f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("GlitchKillCooldown"), 25f, 10f, 120f, 2.5f, CooldownFormat); GlitchHackDistanceOption = - new CustomStringOption(num++, MultiMenu.neutral, "Glitch Hack Distance", new[] { "Short", "Normal", "Long" }); + new CustomStringOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("GlitchHackDistance"), + new[] { LocalizationManager.Instance.GetString("Short"), LocalizationManager.Instance.GetString("Normal"), LocalizationManager.Instance.GetString("Long") }); GlitchVent = - new CustomToggleOption(num++, MultiMenu.neutral, "Glitch Can Vent", false); + new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("GlitchCanVent"), false); - Vampire = new CustomHeaderOption(num++, MultiMenu.neutral, "Vampire"); + Vampire = new CustomHeaderOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("Vampire")}"); BiteCooldown = - new CustomNumberOption(num++, MultiMenu.neutral, "Vampire Bite Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("VampireBiteCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); VampImpVision = - new CustomToggleOption(num++, MultiMenu.neutral, "Vampires Have Impostor Vision", false); + new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("VampiresHaveImpostorVision"), false); VampVent = - new CustomToggleOption(num++, MultiMenu.neutral, "Vampires Can Vent", false); + new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("VampiresCanVent"), false); NewVampCanAssassin = - new CustomToggleOption(num++, MultiMenu.neutral, "New Vampire Can Assassinate", false); + new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("NewVampireCanAssassinate"), false); MaxVampiresPerGame = - new CustomNumberOption(num++, MultiMenu.neutral, "Maximum Vampires Per Game", 2, 2, 5, 1); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("MaximumVampiresPerGame"), 2, 2, 5, 1); CanBiteNeutralBenign = - new CustomToggleOption(num++, MultiMenu.neutral, "Can Convert Neutral Benign Roles", false); + new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("CanConvertNeutralBenignRoles"), false); CanBiteNeutralEvil = - new CustomToggleOption(num++, MultiMenu.neutral, "Can Convert Neutral Evil Roles", false); + new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("CanConvertNeutralEvilRoles"), false); - Werewolf = new CustomHeaderOption(num++, MultiMenu.neutral, "Werewolf"); + Werewolf = new CustomHeaderOption(num++, MultiMenu.neutral, $"{LocalizationManager.Instance.GetString("Werewolf")}"); RampageCooldown = - new CustomNumberOption(num++, MultiMenu.neutral, "Rampage Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("RampageCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); RampageDuration = - new CustomNumberOption(num++, MultiMenu.neutral, "Rampage Duration", 25f, 10f, 60f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("RampageDuration"), 25f, 10f, 60f, 2.5f, CooldownFormat); RampageKillCooldown = - new CustomNumberOption(num++, MultiMenu.neutral, "Rampage Kill Cooldown", 10f, 0.5f, 15f, 0.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("RampageKillCooldown"), 10f, 0.5f, 15f, 0.5f, CooldownFormat); WerewolfVent = - new CustomToggleOption(num++, MultiMenu.neutral, "Werewolf Can Vent When Rampaged", false); + new CustomToggleOption(num++, MultiMenu.neutral, LocalizationManager.Instance.GetString("WerewolfCanVenWhenRampaged"), false); Escapist = - new CustomHeaderOption(num++, MultiMenu.imposter, "Escapist"); + new CustomHeaderOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Escapist")}"); EscapeCooldown = - new CustomNumberOption(num++, MultiMenu.imposter, "Recall Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("RecallCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); EscapistVent = - new CustomToggleOption(num++, MultiMenu.imposter, "Escapist Can Vent", false); + new CustomToggleOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("EscapistCanVent"), false); Grenadier = - new CustomHeaderOption(num++, MultiMenu.imposter, "Grenadier"); + new CustomHeaderOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Grenadier")}"); GrenadeCooldown = - new CustomNumberOption(num++, MultiMenu.imposter, "Flash Grenade Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("FlashGrenadeCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); GrenadeDuration = - new CustomNumberOption(num++, MultiMenu.imposter, "Flash Grenade Duration", 10f, 5f, 15f, 1f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("FlashGrenadeDuration"), 10f, 5f, 15f, 1f, CooldownFormat); FlashRadius = - new CustomNumberOption(num++, MultiMenu.imposter, "Flash Radius", 1f, 0.25f, 5f, 0.25f, MultiplierFormat); + new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("FlashRadius"), 1f, 0.25f, 5f, 0.25f, MultiplierFormat); GrenadierIndicators = - new CustomToggleOption(num++, MultiMenu.imposter, "Indicate Flashed Crewmates", false); + new CustomToggleOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("IndicateFlashedCrewmates"), false); GrenadierVent = - new CustomToggleOption(num++, MultiMenu.imposter, "Grenadier Can Vent", false); + new CustomToggleOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("GrenadierCanVent"), false); Morphling = - new CustomHeaderOption(num++, MultiMenu.imposter, "Morphling"); + new CustomHeaderOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Morphling")}"); MorphlingCooldown = - new CustomNumberOption(num++, MultiMenu.imposter, "Morphling Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("MorphlingCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); MorphlingDuration = - new CustomNumberOption(num++, MultiMenu.imposter, "Morphling Duration", 10f, 5f, 15f, 1f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("MorphlingDuration"), 10f, 5f, 15f, 1f, CooldownFormat); MorphlingVent = - new CustomToggleOption(num++, MultiMenu.imposter, "Morphling Can Vent", false); + new CustomToggleOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("MorphlingCanVent"), false); + new CustomToggleOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("MorphlingCanVent"), false); - Swooper = new CustomHeaderOption(num++, MultiMenu.imposter, "Swooper"); + Swooper = new CustomHeaderOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Swooper")}"); SwoopCooldown = - new CustomNumberOption(num++, MultiMenu.imposter, "Swoop Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("SwoopCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); SwoopDuration = - new CustomNumberOption(num++, MultiMenu.imposter, "Swoop Duration", 10f, 5f, 15f, 1f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("SwoopDuration"), 10f, 5f, 15f, 1f, CooldownFormat); SwooperVent = - new CustomToggleOption(num++, MultiMenu.imposter, "Swooper Can Vent", false); + new CustomToggleOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("SwooperCanVent"), false); - Venerer = new CustomHeaderOption(num++, MultiMenu.imposter, "Venerer"); + Venerer = new CustomHeaderOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Venerer")}"); AbilityCooldown = - new CustomNumberOption(num++, MultiMenu.imposter, "Ability Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("AbilityCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); AbilityDuration = - new CustomNumberOption(num++, MultiMenu.imposter, "Ability Duration", 10f, 5f, 15f, 1f, CooldownFormat); - SprintSpeed = new CustomNumberOption(num++, MultiMenu.imposter, "Sprint Speed", 1.25f, 1.05f, 2.5f, 0.05f, MultiplierFormat); - FreezeSpeed = new CustomNumberOption(num++, MultiMenu.imposter, "Freeze Speed", 0.75f, 0.25f, 1f, 0.05f, MultiplierFormat); + new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("AbilityDuration"), 10f, 5f, 15f, 1f, CooldownFormat); + SprintSpeed = new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("SprintSpeed"), 1.25f, 1.05f, 2.5f, 0.05f, MultiplierFormat); + FreezeSpeed = new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("FreezeSpeed"), 0.75f, 0.25f, 1f, 0.05f, MultiplierFormat); Bomber = - new CustomHeaderOption(num++, MultiMenu.imposter, "Bomber"); + new CustomHeaderOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Bomber")}"); DetonateDelay = - new CustomNumberOption(num++, MultiMenu.imposter, "Detonate Delay", 5f, 1f, 15f, 1f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("DetonateDelay"), 5f, 1f, 15f, 1f, CooldownFormat); MaxKillsInDetonation = - new CustomNumberOption(num++, MultiMenu.imposter, "Max Kills In Detonation", 5, 1, 15, 1); + new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("MaxKillsInDetonation"), 5, 1, 15, 1); DetonateRadius = - new CustomNumberOption(num++, MultiMenu.imposter, "Detonate Radius", 0.25f, 0.05f, 1f, 0.05f, MultiplierFormat); + new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("DetonateRadius"), 0.25f, 0.05f, 1f, 0.05f, MultiplierFormat); BomberVent = - new CustomToggleOption(num++, MultiMenu.imposter, "Bomber Can Vent", false); + new CustomToggleOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("BomberCanVent"), false); - Traitor = new CustomHeaderOption(num++, MultiMenu.imposter, "Traitor"); - LatestSpawn = new CustomNumberOption(num++, MultiMenu.imposter, "Minimum People Alive When Traitor Can Spawn", 5, 3, 15, 1); + Traitor = new CustomHeaderOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Traitor")}"); + LatestSpawn = new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("MinimumPeopleAliveWhenTraitorCanSpawn"), 5, 3, 15, 1); NeutralKillingStopsTraitor = - new CustomToggleOption(num++, MultiMenu.imposter, "Traitor Won't Spawn If Any Neutral Killing Is Alive", false); + new CustomToggleOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("TraitorWon'tSpawnIfAnyNeutralKillingIsAlive"), false); - Warlock = new CustomHeaderOption(num++, MultiMenu.imposter, "Warlock"); + Warlock = new CustomHeaderOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Warlock")}"); ChargeUpDuration = - new CustomNumberOption(num++, MultiMenu.imposter, "Time It Takes To Fully Charge", 25f, 10f, 60f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("TimeItTakesToFullyCharge"), 25f, 10f, 60f, 2.5f, CooldownFormat); ChargeUseDuration = - new CustomNumberOption(num++, MultiMenu.imposter, "Time It Takes To Use Full Charge", 1f, 0.05f, 5f, 0.05f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("TimeItTakesToUseFullCharge"), 1f, 0.05f, 5f, 0.05f, CooldownFormat); - Blackmailer = new CustomHeaderOption(num++, MultiMenu.imposter, "Blackmailer"); + Blackmailer = new CustomHeaderOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Blackmailer")}"); BlackmailCooldown = - new CustomNumberOption(num++, MultiMenu.imposter, "Initial Blackmail Cooldown", 10f, 1f, 15f, 1f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("InitialBlackmailCooldown"), 10f, 1f, 15f, 1f, CooldownFormat); - Miner = new CustomHeaderOption(num++, MultiMenu.imposter, "Miner"); + Miner = new CustomHeaderOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Miner")}"); MineCooldown = - new CustomNumberOption(num++, MultiMenu.imposter, "Mine Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); + new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("MineCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); - Undertaker = new CustomHeaderOption(num++, MultiMenu.imposter, "Undertaker"); - DragCooldown = new CustomNumberOption(num++, MultiMenu.imposter, "Drag Cooldown", 25f, 10f, 60f, 2.5f, CooldownFormat); + Undertaker = new CustomHeaderOption(num++, MultiMenu.imposter, $"{LocalizationManager.Instance.GetString("Undertaker")}"); + DragCooldown = new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("DragCooldown"), 25f, 10f, 60f, 2.5f, CooldownFormat); UndertakerDragSpeed = - new CustomNumberOption(num++, MultiMenu.imposter, "Undertaker Drag Speed", 0.75f, 0.25f, 1f, 0.05f, MultiplierFormat); + new CustomNumberOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("UndertakerDragSpeed"), 0.75f, 0.25f, 1f, 0.05f, MultiplierFormat); UndertakerVent = - new CustomToggleOption(num++, MultiMenu.imposter, "Undertaker Can Vent", false); + new CustomToggleOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("UndertakerCanVent"), false); UndertakerVentWithBody = - new CustomToggleOption(num++, MultiMenu.imposter, "Undertaker Can Vent While Dragging", false); + new CustomToggleOption(num++, MultiMenu.imposter, LocalizationManager.Instance.GetString("UndertakerCanVentWhileDragging"), false); - Bait = new CustomHeaderOption(num++, MultiMenu.modifiers, "Bait"); - BaitMinDelay = new CustomNumberOption(num++, MultiMenu.modifiers, "Minimum Delay for the Bait Report", 0f, 0f, 15f, 0.5f, CooldownFormat); - BaitMaxDelay = new CustomNumberOption(num++, MultiMenu.modifiers, "Maximum Delay for the Bait Report", 1f, 0f, 15f, 0.5f, CooldownFormat); + Bait = new CustomHeaderOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("Bait")}"); + BaitMinDelay = new CustomNumberOption(num++, MultiMenu.modifiers, LocalizationManager.Instance.GetString("MinimumDelayfortheBaitReport"), 0f, 0f, 15f, 0.5f, CooldownFormat); + BaitMaxDelay = new CustomNumberOption(num++, MultiMenu.modifiers, LocalizationManager.Instance.GetString("MaximumDelayfortheBaitReport"), 1f, 0f, 15f, 0.5f, CooldownFormat); - Diseased = new CustomHeaderOption(num++, MultiMenu.modifiers, "Diseased"); - DiseasedKillMultiplier = new CustomNumberOption(num++, MultiMenu.modifiers, "Diseased Kill Multiplier", 3f, 1.5f, 5f, 0.5f, MultiplierFormat); + Diseased = new CustomHeaderOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("Diseased")}"); + DiseasedKillMultiplier = new CustomNumberOption(num++, MultiMenu.modifiers, LocalizationManager.Instance.GetString("DiseasedKillMultiplier"), 3f, 1.5f, 5f, 0.5f, MultiplierFormat); - Frosty = new CustomHeaderOption(num++, MultiMenu.modifiers, "Frosty"); - ChillDuration = new CustomNumberOption(num++, MultiMenu.modifiers, "Chill Duration", 10f, 1f, 15f, 1f, CooldownFormat); - ChillStartSpeed = new CustomNumberOption(num++, MultiMenu.modifiers, "Chill Start Speed", 0.75f, 0.25f, 0.95f, 0.05f, MultiplierFormat); + Frosty = new CustomHeaderOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("Frosty")}"); + ChillDuration = new CustomNumberOption(num++, MultiMenu.modifiers, LocalizationManager.Instance.GetString("ChillDuration"), 10f, 1f, 15f, 1f, CooldownFormat); + ChillStartSpeed = new CustomNumberOption(num++, MultiMenu.modifiers, LocalizationManager.Instance.GetString("ChillStartSpeed"), 0.75f, 0.25f, 0.95f, 0.05f, MultiplierFormat); - Flash = new CustomHeaderOption(num++, MultiMenu.modifiers, "Flash"); - FlashSpeed = new CustomNumberOption(num++, MultiMenu.modifiers, "Flash Speed", 1.25f, 1.05f, 2.5f, 0.05f, MultiplierFormat); + Flash = new CustomHeaderOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("Flash")}"); + FlashSpeed = new CustomNumberOption(num++, MultiMenu.modifiers, LocalizationManager.Instance.GetString("FlashSpeed"), 1.25f, 1.05f, 2.5f, 0.05f, MultiplierFormat); - Giant = new CustomHeaderOption(num++, MultiMenu.modifiers, "Giant"); - GiantSlow = new CustomNumberOption(num++, MultiMenu.modifiers, "Giant Speed", 0.75f, 0.25f, 1f, 0.05f, MultiplierFormat); + Giant = new CustomHeaderOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("Giant")}"); + GiantSlow = new CustomNumberOption(num++, MultiMenu.modifiers, LocalizationManager.Instance.GetString("GiantSpeed"), 0.75f, 0.25f, 1f, 0.05f, MultiplierFormat); Lovers = - new CustomHeaderOption(num++, MultiMenu.modifiers, "Lovers"); - BothLoversDie = new CustomToggleOption(num++, MultiMenu.modifiers, "Both Lovers Die"); - LovingImpPercent = new CustomNumberOption(num++, MultiMenu.modifiers, "Loving Impostor Probability", 20f, 0f, 100f, 10f, + new CustomHeaderOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("Lovers")}"); + BothLoversDie = new CustomToggleOption(num++, MultiMenu.modifiers, LocalizationManager.Instance.GetString("BothLoversDie")); + LovingImpPercent = new CustomNumberOption(num++, MultiMenu.modifiers, LocalizationManager.Instance.GetString("LovingImpostorProbability"), 20f, 0f, 100f, 10f, PercentFormat); - NeutralLovers = new CustomToggleOption(num++, MultiMenu.modifiers, "Neutral Roles Can Be Lovers"); + NeutralLovers = new CustomToggleOption(num++, MultiMenu.modifiers, LocalizationManager.Instance.GetString("NeutralRolesCanBeLovers")); - Underdog = new CustomHeaderOption(num++, MultiMenu.modifiers, "Underdog"); - UnderdogKillBonus = new CustomNumberOption(num++, MultiMenu.modifiers, "Kill Cooldown Bonus", 5f, 2.5f, 10f, 2.5f, CooldownFormat); - UnderdogIncreasedKC = new CustomToggleOption(num++, MultiMenu.modifiers, "Increased Kill Cooldown When 2+ Imps", true); + Underdog = new CustomHeaderOption(num++, MultiMenu.modifiers, $"{LocalizationManager.Instance.GetString("Underdog")}"); + UnderdogKillBonus = new CustomNumberOption(num++, MultiMenu.modifiers, LocalizationManager.Instance.GetString("KillCooldownBonus"), 5f, 2.5f, 10f, 2.5f, CooldownFormat); + UnderdogIncreasedKC = new CustomToggleOption(num++, MultiMenu.modifiers, LocalizationManager.Instance.GetString("IncreasedKillCooldownWhen2PlusImps"), true); } } } \ No newline at end of file diff --git a/source/Patches/CustomOption/Import.cs b/source/Patches/CustomOption/Import.cs index 8db210004..3467a4799 100644 --- a/source/Patches/CustomOption/Import.cs +++ b/source/Patches/CustomOption/Import.cs @@ -8,6 +8,7 @@ using Il2CppInterop.Runtime.InteropTypes.Arrays; using UnityEngine; using Object = UnityEngine.Object; +using TownOfUs.Patches.Localization; namespace TownOfUs.CustomOption { @@ -17,7 +18,7 @@ public class Import : CustomButtonOption public List OldButtons; public List SlotButtons = new List(); - protected internal Import(int id) : base(id, MultiMenu.main, "Load Custom Settings") + protected internal Import(int id) : base(id, MultiMenu.main, LocalizationManager.Instance.GetString("LoadCustomSettings")) { Do = ToDo; } diff --git a/source/Patches/ImpostorRoles/BlackmailerMod/BlackmailMeetingUpdate.cs b/source/Patches/ImpostorRoles/BlackmailerMod/BlackmailMeetingUpdate.cs index 1899eeab8..859cf4e90 100644 --- a/source/Patches/ImpostorRoles/BlackmailerMod/BlackmailMeetingUpdate.cs +++ b/source/Patches/ImpostorRoles/BlackmailerMod/BlackmailMeetingUpdate.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Collections; using Reactor.Utilities; +using TownOfUs.Patches.Localization; namespace TownOfUs.ImpostorRoles.BlackmailerMod { @@ -58,7 +59,7 @@ public static IEnumerator BlackmailShhh() HudManager.Instance.shhhEmblem.transform.localPosition.x, HudManager.Instance.shhhEmblem.transform.localPosition.y, HudManager.Instance.FullScreen.transform.position.z + 1f); - HudManager.Instance.shhhEmblem.TextImage.text = "YOU ARE BLACKMAILED"; + HudManager.Instance.shhhEmblem.TextImage.text = LocalizationManager.Instance.GetString("YouAreBlackmailed"); HudManager.Instance.shhhEmblem.HoldDuration = 2.5f; yield return HudManager.Instance.ShowEmblem(true); HudManager.Instance.shhhEmblem.transform.localPosition = TempPosition; diff --git a/source/Patches/Localization/LocalizationManager.cs b/source/Patches/Localization/LocalizationManager.cs new file mode 100644 index 000000000..3e952d2af --- /dev/null +++ b/source/Patches/Localization/LocalizationManager.cs @@ -0,0 +1,96 @@ +using System.Resources; +using System.Collections.Generic; +using System.Globalization; +using System.Reflection; +using System; +using System.IO; +using Newtonsoft.Json.Linq; + +namespace TownOfUs.Patches.Localization +{ + public class LocalizationManager + { + public static Dictionary languageOptions = new Dictionary + { + { "English", "" }, + { "French", "fr" }, + }; + private ResourceManager resourceManager; + private CultureInfo currentCulture; + private CultureInfo defaultCulture; + public string missingTextString = "Localized text not found"; + public string currentLanguage = "en"; + private static LocalizationManager _instance; + private const string ASSETS_LOCALIZATION_NAMESPACE = "TownOfUs.Properties.Resources"; + private static Assembly Assembly => typeof(TownOfUs).Assembly; + + public static LocalizationManager Instance + { + get + { + if (_instance == null) + { + _instance = new LocalizationManager(); + } + return _instance; + } + } + + public LocalizationManager() + { + resourceManager = new ResourceManager(ASSETS_LOCALIZATION_NAMESPACE, typeof(LocalizationManager).Assembly); + defaultCulture = new CultureInfo(""); + loadSettings(); + currentCulture = new CultureInfo(this.currentLanguage); + } + + public void SetLanguage(string languageCode) + { + currentCulture = new CultureInfo(languageCode); + } + + public string GetString(string key) + { + string localizedString = resourceManager.GetString(key, currentCulture); + + if (localizedString == null) + { + localizedString = resourceManager.GetString(key, defaultCulture); + } + + return localizedString ?? "Key not found"; + } + + private void loadSettings() + { + System.Console.WriteLine("Init Language"); + string localAppData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); + string localLowFolder = Path.Combine(Directory.GetParent(localAppData).FullName, "LocalLow"); + string path = Path.Combine( + localLowFolder, + "Innersloth", + "Among Us", + "settings.amogus" + ); + System.Console.WriteLine($"Path : {path}"); + if (File.Exists(path)) + { + string settingsContent = File.ReadAllText(path); + JObject jsonSettings = JObject.Parse(settingsContent); + string language = jsonSettings["language"]["currentLanguage"].ToString(); + string value; + System.Console.WriteLine($"Language found in file : {language}"); + if (languageOptions.TryGetValue(language, out value)) + { + this.currentLanguage = value; + } + System.Console.WriteLine($"Language found : {currentLanguage}"); + } + else + { + System.Console.WriteLine("File not found."); + } + } + } + +} diff --git a/source/Patches/Modifiers/LoversMod/Outro.cs b/source/Patches/Modifiers/LoversMod/Outro.cs index 88d4488a6..c3f2a4a3c 100644 --- a/source/Patches/Modifiers/LoversMod/Outro.cs +++ b/source/Patches/Modifiers/LoversMod/Outro.cs @@ -3,6 +3,7 @@ using Reactor.Utilities; using TMPro; using TownOfUs.Extensions; +using TownOfUs.Patches.Localization; using TownOfUs.Roles; using TownOfUs.Roles.Modifiers; using UnityEngine; @@ -23,7 +24,7 @@ public static void Postfix(EndGameManager __instance) var color = __instance.WinText.color; color.a = 1f; text.color = color; - text.text = "Only Neutral Roles Were Left"; + text.text = LocalizationManager.Instance.GetString("OnlyNeutralRolesWereLeftTranslation"); pos = __instance.WinText.transform.localPosition; pos.y = 1.5f; text.transform.position = pos; @@ -63,7 +64,7 @@ public static void Postfix(EndGameManager __instance) __instance.BackgroundBar.material.color = new Color(1f, 0.4f, 0.8f, 1f); text = Object.Instantiate(__instance.WinText); - text.text = "Love Couple Wins!"; + text.text = LocalizationManager.Instance.GetString("LoveCoupleWins"); text.color = new Color(1f, 0.4f, 0.8f, 1f); pos = __instance.WinText.transform.localPosition; pos.y = 1.5f; diff --git a/source/Patches/NeutralRoles/ArsonistMod/Outro.cs b/source/Patches/NeutralRoles/ArsonistMod/Outro.cs index 85d8bca07..c5be4252c 100644 --- a/source/Patches/NeutralRoles/ArsonistMod/Outro.cs +++ b/source/Patches/NeutralRoles/ArsonistMod/Outro.cs @@ -1,6 +1,7 @@ using System.Linq; using HarmonyLib; using TownOfUs.Extensions; +using TownOfUs.Patches.Localization; using TownOfUs.Roles; using UnityEngine; @@ -24,7 +25,7 @@ public static void Postfix(EndGameManager __instance) foreach (var player in array) player.NameText().text = role.ColorString + player.NameText().text + ""; __instance.BackgroundBar.material.color = role.Color; var text = Object.Instantiate(__instance.WinText); - text.text = "Arsonist Wins!"; + text.text = LocalizationManager.Instance.GetString("ArsonistWins"); text.color = role.Color; var pos = __instance.WinText.transform.localPosition; pos.y = 1.5f; diff --git a/source/Patches/NeutralRoles/DoomsayerMod/MeetingStart.cs b/source/Patches/NeutralRoles/DoomsayerMod/MeetingStart.cs index 2704a220e..b168f91e8 100644 --- a/source/Patches/NeutralRoles/DoomsayerMod/MeetingStart.cs +++ b/source/Patches/NeutralRoles/DoomsayerMod/MeetingStart.cs @@ -1,6 +1,7 @@ using HarmonyLib; using TownOfUs.CrewmateRoles.ImitatorMod; using TownOfUs.Extensions; +using TownOfUs.Patches.Localization; using TownOfUs.Roles; namespace TownOfUs.NeutralRoles.DoomsayerMod @@ -28,30 +29,30 @@ public static string PlayerReportFeedback(PlayerControl player) if (player.Is(RoleEnum.Aurial) || player.Is(RoleEnum.Imitator) || StartImitate.ImitatingPlayer == player || player.Is(RoleEnum.Morphling) || player.Is(RoleEnum.Mystic) || player.Is(RoleEnum.Spy) || player.Is(RoleEnum.Glitch)) - return $"You observe that {player.GetDefaultOutfit().PlayerName} has an altered perception of reality"; + return $"{string.Format(LocalizationManager.Instance.GetString("ObservationHasAlteredPerceptionOfReality"), player.GetDefaultOutfit().PlayerName)}"; else if (player.Is(RoleEnum.Blackmailer) || player.Is(RoleEnum.Detective) || player.Is(RoleEnum.Doomsayer) || player.Is(RoleEnum.Oracle) || player.Is(RoleEnum.Snitch) || player.Is(RoleEnum.Trapper)) - return $"You observe that {player.GetDefaultOutfit().PlayerName} has an insight for private information"; + return $"{string.Format(LocalizationManager.Instance.GetString("ObservationHasInsightForPrivateInformation"), player.GetDefaultOutfit().PlayerName)}"; else if (player.Is(RoleEnum.Altruist) || player.Is(RoleEnum.Amnesiac) || player.Is(RoleEnum.Janitor) || player.Is(RoleEnum.Medium) || player.Is(RoleEnum.Undertaker) || player.Is(RoleEnum.Vampire)) - return $"You observe that {player.GetDefaultOutfit().PlayerName} has an unusual obsession with dead bodies"; + return $"{string.Format(LocalizationManager.Instance.GetString("ObservationHasUnusualObsessionWithDeadBodies"), player.GetDefaultOutfit().PlayerName)}"; else if (player.Is(RoleEnum.Investigator) || player.Is(RoleEnum.Swooper) || player.Is(RoleEnum.Tracker) || player.Is(RoleEnum.VampireHunter) || player.Is(RoleEnum.Venerer) || player.Is(RoleEnum.Werewolf)) - return $"You observe that {player.GetDefaultOutfit().PlayerName} is well trained in hunting down prey"; + return $"{string.Format(LocalizationManager.Instance.GetString("ObservationIsWellTrainedInHuntingDownPrey"), player.GetDefaultOutfit().PlayerName)}"; else if (player.Is(RoleEnum.Arsonist) || player.Is(RoleEnum.Miner) || player.Is(RoleEnum.Plaguebearer) || player.Is(RoleEnum.Prosecutor) || player.Is(RoleEnum.Seer) || player.Is(RoleEnum.Transporter)) - return $"You observe that {player.GetDefaultOutfit().PlayerName} spreads fear amonst the group"; + return $"{string.Format(LocalizationManager.Instance.GetString("ObservationSpreadsFearAmongTheGroup"), player.GetDefaultOutfit().PlayerName)}"; else if (player.Is(RoleEnum.Engineer) || player.Is(RoleEnum.Escapist) || player.Is(RoleEnum.Grenadier) || player.Is(RoleEnum.GuardianAngel) || player.Is(RoleEnum.Medic) || player.Is(RoleEnum.Survivor)) - return $"You observe that {player.GetDefaultOutfit().PlayerName} hides to guard themself or others"; + return $"{string.Format(LocalizationManager.Instance.GetString("ObservationHidesToGuardThemselvesOrOthers"), player.GetDefaultOutfit().PlayerName)}"; else if (player.Is(RoleEnum.Executioner) || player.Is(RoleEnum.Jester) || player.Is(RoleEnum.Mayor) || player.Is(RoleEnum.Swapper) || player.Is(RoleEnum.Traitor) || player.Is(RoleEnum.Veteran)) - return $"You observe that {player.GetDefaultOutfit().PlayerName} has a trick up their sleeve"; + return $"{string.Format(LocalizationManager.Instance.GetString("ObservationHasATrickUpTheirSleeve"), player.GetDefaultOutfit().PlayerName)}"; else if (player.Is(RoleEnum.Bomber) || player.Is(RoleEnum.Juggernaut) || player.Is(RoleEnum.Pestilence) || player.Is(RoleEnum.Sheriff) || player.Is(RoleEnum.Vigilante) || player.Is(RoleEnum.Warlock)) - return $"You observe that {player.GetDefaultOutfit().PlayerName} is capable of performing relentless attacks"; + return $"{string.Format(LocalizationManager.Instance.GetString("ObservationIsCapableOfPerformingRelentlessAttacks"), player.GetDefaultOutfit().PlayerName)}"; else if (player.Is(RoleEnum.Crewmate) || player.Is(RoleEnum.Impostor)) - return $"You observe that {player.GetDefaultOutfit().PlayerName} appears to be roleless"; + return $"{string.Format(LocalizationManager.Instance.GetString("ObservationAppearsToBeRoleless"), player.GetDefaultOutfit().PlayerName)}"; else return "Error"; } @@ -61,30 +62,30 @@ public static string RoleReportFeedback(PlayerControl player) if (player.Is(RoleEnum.Aurial) || player.Is(RoleEnum.Imitator) || StartImitate.ImitatingPlayer == player || player.Is(RoleEnum.Morphling) || player.Is(RoleEnum.Mystic) || player.Is(RoleEnum.Spy) || player.Is(RoleEnum.Glitch)) - return "(Aurial, Imitator, Morphling, Mystic, Spy or The Glitch)"; + return $"({LocalizationManager.Instance.GetString("Aurial")}, {LocalizationManager.Instance.GetString("Imitator")}, {LocalizationManager.Instance.GetString("Morphling")}, {LocalizationManager.Instance.GetString("Mystic")}, {LocalizationManager.Instance.GetString("Spy")} {LocalizationManager.Instance.GetString("Or")} {LocalizationManager.Instance.GetString("TheGlitch")})"; else if (player.Is(RoleEnum.Blackmailer) || player.Is(RoleEnum.Detective) || player.Is(RoleEnum.Doomsayer) || player.Is(RoleEnum.Oracle) || player.Is(RoleEnum.Snitch) || player.Is(RoleEnum.Trapper)) - return "(Blackmailer, Detective, Doomsayer, Oracle, Snitch or Trapper)"; + return $"({LocalizationManager.Instance.GetString("Blackmailer")}, {LocalizationManager.Instance.GetString("Detective")}, {LocalizationManager.Instance.GetString("Doomsayer")}, {LocalizationManager.Instance.GetString("Oracle")}, {LocalizationManager.Instance.GetString("Snitch")} {LocalizationManager.Instance.GetString("Or")} {LocalizationManager.Instance.GetString("Trapper")})"; else if (player.Is(RoleEnum.Altruist) || player.Is(RoleEnum.Amnesiac) || player.Is(RoleEnum.Janitor) || player.Is(RoleEnum.Medium) || player.Is(RoleEnum.Undertaker) || player.Is(RoleEnum.Vampire)) - return "(Altruist, Amnesiac, Janitor, Medium, Undertaker or Vampire)"; + return $"({LocalizationManager.Instance.GetString("Altruist")}, {LocalizationManager.Instance.GetString("Amnesiac")}, {LocalizationManager.Instance.GetString("Janitor")}, {LocalizationManager.Instance.GetString("Medium")}, {LocalizationManager.Instance.GetString("Undertaker")} {LocalizationManager.Instance.GetString("Or")} {LocalizationManager.Instance.GetString("Vampire")})"; else if (player.Is(RoleEnum.Investigator) || player.Is(RoleEnum.Swooper) || player.Is(RoleEnum.Tracker) || player.Is(RoleEnum.VampireHunter) || player.Is(RoleEnum.Venerer) || player.Is(RoleEnum.Werewolf)) - return "(Investigator, Swooper, Tracker, Vampire Hunter, Venerer or Werewolf)"; + return $"({LocalizationManager.Instance.GetString("Investigator")}, {LocalizationManager.Instance.GetString("Swooper")}, {LocalizationManager.Instance.GetString("Tracker")}, {LocalizationManager.Instance.GetString("Vampire")} {LocalizationManager.Instance.GetString("Hunter")}, {LocalizationManager.Instance.GetString("Venerer")} {LocalizationManager.Instance.GetString("Or")} {LocalizationManager.Instance.GetString("Werewolf")})"; else if (player.Is(RoleEnum.Arsonist) || player.Is(RoleEnum.Miner) || player.Is(RoleEnum.Plaguebearer) || player.Is(RoleEnum.Prosecutor) || player.Is(RoleEnum.Seer) || player.Is(RoleEnum.Transporter)) - return "(Arsonist, Miner, Plaguebearer, Prosecutor, Seer or Transporter)"; + return $"({LocalizationManager.Instance.GetString("Arsonist")}, {LocalizationManager.Instance.GetString("Miner")}, {LocalizationManager.Instance.GetString("Plaguebearer")}, {LocalizationManager.Instance.GetString("Prosecutor")}, {LocalizationManager.Instance.GetString("Seer")} {LocalizationManager.Instance.GetString("Or")} {LocalizationManager.Instance.GetString("Transporter")})"; else if (player.Is(RoleEnum.Engineer) || player.Is(RoleEnum.Escapist) || player.Is(RoleEnum.Grenadier) || player.Is(RoleEnum.GuardianAngel) || player.Is(RoleEnum.Medic) || player.Is(RoleEnum.Survivor)) - return "(Engineer, Escapist, Grenadier, Guardian Angel, Medic or Survivor)"; + return $"({LocalizationManager.Instance.GetString("Engineer")}, {LocalizationManager.Instance.GetString("Escapist")}, {LocalizationManager.Instance.GetString("Grenadier")}, {LocalizationManager.Instance.GetString("GuardianAngel")}, {LocalizationManager.Instance.GetString("Medic")} {LocalizationManager.Instance.GetString("Or")} {LocalizationManager.Instance.GetString("Survivor")})"; else if (player.Is(RoleEnum.Executioner) || player.Is(RoleEnum.Jester) || player.Is(RoleEnum.Mayor) || player.Is(RoleEnum.Swapper) || player.Is(RoleEnum.Traitor) || player.Is(RoleEnum.Veteran)) - return "(Executioner, Jester, Mayor, Swapper, Traitor or Veteran)"; + return $"({LocalizationManager.Instance.GetString("Executioner")}, {LocalizationManager.Instance.GetString("Jester")}, {LocalizationManager.Instance.GetString("Mayor")}, {LocalizationManager.Instance.GetString("Swapper")}, {LocalizationManager.Instance.GetString("Traitor")} {LocalizationManager.Instance.GetString("Or")} {LocalizationManager.Instance.GetString("Veteran")})"; else if (player.Is(RoleEnum.Bomber) || player.Is(RoleEnum.Juggernaut) || player.Is(RoleEnum.Pestilence) || player.Is(RoleEnum.Sheriff) || player.Is(RoleEnum.Vigilante) || player.Is(RoleEnum.Warlock)) - return "(Bomber, Juggernaut, Pestilence, Sheriff, Vigilante or Warlock)"; + return $"({LocalizationManager.Instance.GetString("Bomber")}, {LocalizationManager.Instance.GetString("Juggernaut")}, {LocalizationManager.Instance.GetString("Pestilence")}, {LocalizationManager.Instance.GetString("Sheriff")}, {LocalizationManager.Instance.GetString("Vigilante")} {LocalizationManager.Instance.GetString("Or")} {LocalizationManager.Instance.GetString("Warlock")})"; else if (player.Is(RoleEnum.Crewmate) || player.Is(RoleEnum.Impostor)) - return "(Crewmate or Impostor)"; + return $"({LocalizationManager.Instance.GetString("Crewmate")} {LocalizationManager.Instance.GetString("Or")} {LocalizationManager.Instance.GetString("Impostor")})"; else return "Error"; } } diff --git a/source/Patches/NeutralRoles/DoomsayerMod/Outro.cs b/source/Patches/NeutralRoles/DoomsayerMod/Outro.cs index d3d8d9c41..f20831aaa 100644 --- a/source/Patches/NeutralRoles/DoomsayerMod/Outro.cs +++ b/source/Patches/NeutralRoles/DoomsayerMod/Outro.cs @@ -1,6 +1,7 @@ using System.Linq; using HarmonyLib; using TownOfUs.Extensions; +using TownOfUs.Patches.Localization; using TownOfUs.Roles; using UnityEngine; @@ -19,7 +20,7 @@ public static void Postfix(EndGameManager __instance) array[0].NameText().text = role.ColorString + array[0].NameText().text + ""; __instance.BackgroundBar.material.color = role.Color; var text = Object.Instantiate(__instance.WinText); - text.text = "Doomsayer Wins!"; + text.text = LocalizationManager.Instance.GetString("DoomsayerWins"); text.color = role.Color; var pos = __instance.WinText.transform.localPosition; pos.y = 1.5f; diff --git a/source/Patches/NeutralRoles/ExecutionerMod/Outro.cs b/source/Patches/NeutralRoles/ExecutionerMod/Outro.cs index c37136d0f..ecd557748 100644 --- a/source/Patches/NeutralRoles/ExecutionerMod/Outro.cs +++ b/source/Patches/NeutralRoles/ExecutionerMod/Outro.cs @@ -1,6 +1,7 @@ using System.Linq; using HarmonyLib; using TownOfUs.Extensions; +using TownOfUs.Patches.Localization; using TownOfUs.Roles; using UnityEngine; @@ -19,7 +20,7 @@ public static void Postfix(EndGameManager __instance) array[0].NameText().text = role.ColorString + array[0].NameText().text + ""; __instance.BackgroundBar.material.color = role.Color; var text = Object.Instantiate(__instance.WinText); - text.text = "Executioner Wins!"; + text.text = LocalizationManager.Instance.GetString("ExecutionerWins"); text.color = role.Color; var pos = __instance.WinText.transform.localPosition; pos.y = 1.5f; diff --git a/source/Patches/NeutralRoles/GlitchMod/Outro.cs b/source/Patches/NeutralRoles/GlitchMod/Outro.cs index a0771586f..bb6c7f271 100644 --- a/source/Patches/NeutralRoles/GlitchMod/Outro.cs +++ b/source/Patches/NeutralRoles/GlitchMod/Outro.cs @@ -1,6 +1,7 @@ using System.Linq; using HarmonyLib; using TownOfUs.Extensions; +using TownOfUs.Patches.Localization; using TownOfUs.Roles; using UnityEngine; @@ -23,7 +24,7 @@ public static void Postfix(EndGameManager __instance) foreach (var player in array) player.NameText().text = role.ColorString + player.NameText().text + ""; __instance.BackgroundBar.material.color = role.Color; var text = Object.Instantiate(__instance.WinText); - text.text = "The Glitch Wins!"; + text.text = LocalizationManager.Instance.GetString("TheGlitchWins"); text.color = role.Color; var pos = __instance.WinText.transform.localPosition; pos.y = 1.5f; diff --git a/source/Patches/NeutralRoles/JesterMod/Outro.cs b/source/Patches/NeutralRoles/JesterMod/Outro.cs index b3a6fb0c2..4cc1e314f 100644 --- a/source/Patches/NeutralRoles/JesterMod/Outro.cs +++ b/source/Patches/NeutralRoles/JesterMod/Outro.cs @@ -1,6 +1,7 @@ using System.Linq; using HarmonyLib; using TownOfUs.Extensions; +using TownOfUs.Patches.Localization; using TownOfUs.Roles; using UnityEngine; @@ -18,7 +19,7 @@ public static void Postfix(EndGameManager __instance) array[0].NameText().text = role.ColorString + array[0].NameText().text + ""; __instance.BackgroundBar.material.color = role.Color; var text = Object.Instantiate(__instance.WinText); - text.text = "Jester Wins!"; + text.text = LocalizationManager.Instance.GetString("JesterWins"); text.color = role.Color; var pos = __instance.WinText.transform.localPosition; pos.y = 1.5f; diff --git a/source/Patches/NeutralRoles/JuggernautMod/Outro.cs b/source/Patches/NeutralRoles/JuggernautMod/Outro.cs index a517a2793..9682d2942 100644 --- a/source/Patches/NeutralRoles/JuggernautMod/Outro.cs +++ b/source/Patches/NeutralRoles/JuggernautMod/Outro.cs @@ -1,6 +1,7 @@ using System.Linq; using HarmonyLib; using TownOfUs.Extensions; +using TownOfUs.Patches.Localization; using TownOfUs.Roles; using UnityEngine; @@ -24,7 +25,7 @@ public static void Postfix(EndGameManager __instance) foreach (var player in array) player.NameText().text = role.ColorString + player.NameText().text + ""; __instance.BackgroundBar.material.color = role.Color; var text = Object.Instantiate(__instance.WinText); - text.text = "Juggernaut Wins!"; + text.text = LocalizationManager.Instance.GetString("JuggernautWins"); text.color = role.Color; var pos = __instance.WinText.transform.localPosition; pos.y = 1.5f; diff --git a/source/Patches/NeutralRoles/PestilenceMod/Outro.cs b/source/Patches/NeutralRoles/PestilenceMod/Outro.cs index 976f6ac84..fe2ee633a 100644 --- a/source/Patches/NeutralRoles/PestilenceMod/Outro.cs +++ b/source/Patches/NeutralRoles/PestilenceMod/Outro.cs @@ -1,6 +1,7 @@ using System.Linq; using HarmonyLib; using TownOfUs.Extensions; +using TownOfUs.Patches.Localization; using TownOfUs.Roles; using UnityEngine; @@ -24,7 +25,7 @@ public static void Postfix(EndGameManager __instance) foreach (var player in array) player.NameText().text = role.ColorString + player.NameText().text + ""; __instance.BackgroundBar.material.color = role.Color; var text = Object.Instantiate(__instance.WinText); - text.text = "Pestilence Wins!"; + text.text = LocalizationManager.Instance.GetString("PestilenceWins"); text.color = role.Color; var pos = __instance.WinText.transform.localPosition; pos.y = 1.5f; diff --git a/source/Patches/NeutralRoles/PhantomMod/Outro.cs b/source/Patches/NeutralRoles/PhantomMod/Outro.cs index a5bd8ab47..bf58b17a6 100644 --- a/source/Patches/NeutralRoles/PhantomMod/Outro.cs +++ b/source/Patches/NeutralRoles/PhantomMod/Outro.cs @@ -1,6 +1,7 @@ using System.Linq; using HarmonyLib; using TownOfUs.Extensions; +using TownOfUs.Patches.Localization; using TownOfUs.Roles; using UnityEngine; @@ -19,7 +20,7 @@ public static void Postfix(EndGameManager __instance) array[0].NameText().text = role.ColorString + array[0].NameText().text + ""; __instance.BackgroundBar.material.color = role.Color; var text = Object.Instantiate(__instance.WinText); - text.text = "Phantom Wins!"; + text.text = LocalizationManager.Instance.GetString("PhantomWins"); text.color = role.Color; var pos = __instance.WinText.transform.localPosition; pos.y = 1.5f; diff --git a/source/Patches/NeutralRoles/PlaguebearerMod/Outro.cs b/source/Patches/NeutralRoles/PlaguebearerMod/Outro.cs index e48ba64b4..ce437cc34 100644 --- a/source/Patches/NeutralRoles/PlaguebearerMod/Outro.cs +++ b/source/Patches/NeutralRoles/PlaguebearerMod/Outro.cs @@ -1,6 +1,7 @@ using System.Linq; using HarmonyLib; using TownOfUs.Extensions; +using TownOfUs.Patches.Localization; using TownOfUs.Roles; using UnityEngine; @@ -24,7 +25,7 @@ public static void Postfix(EndGameManager __instance) foreach (var player in array) player.NameText().text = role.ColorString + player.NameText().text + ""; __instance.BackgroundBar.material.color = role.Color; var text = Object.Instantiate(__instance.WinText); - text.text = "Plaguebearer Wins!"; + text.text = LocalizationManager.Instance.GetString("PlaguebearerWins"); text.color = role.Color; var pos = __instance.WinText.transform.localPosition; pos.y = 1.5f; diff --git a/source/Patches/NeutralRoles/SurvivorMod/Outro.cs b/source/Patches/NeutralRoles/SurvivorMod/Outro.cs index eff759cb2..118776a4d 100644 --- a/source/Patches/NeutralRoles/SurvivorMod/Outro.cs +++ b/source/Patches/NeutralRoles/SurvivorMod/Outro.cs @@ -1,6 +1,7 @@ using System.Linq; using HarmonyLib; using TownOfUs.Extensions; +using TownOfUs.Patches.Localization; using TownOfUs.Roles; using UnityEngine; @@ -18,7 +19,7 @@ public static void Postfix(EndGameManager __instance) foreach (var player in array) player.NameText().text = role.ColorString + player.NameText().text + ""; __instance.BackgroundBar.material.color = role.Color; var text = Object.Instantiate(__instance.WinText); - text.text = "Survivor Only Win!"; + text.text = LocalizationManager.Instance.GetString("Survivor Only Win!"); text.color = role.Color; var pos = __instance.WinText.transform.localPosition; pos.y = 1.5f; diff --git a/source/Patches/NeutralRoles/VampireMod/Outro.cs b/source/Patches/NeutralRoles/VampireMod/Outro.cs index 3da447e8f..98ec2af20 100644 --- a/source/Patches/NeutralRoles/VampireMod/Outro.cs +++ b/source/Patches/NeutralRoles/VampireMod/Outro.cs @@ -1,6 +1,7 @@ using System.Linq; using HarmonyLib; using TownOfUs.Extensions; +using TownOfUs.Patches.Localization; using TownOfUs.Roles; using UnityEngine; @@ -24,7 +25,7 @@ public static void Postfix(EndGameManager __instance) foreach (var player in array) player.NameText().text = role.ColorString + player.NameText().text + ""; __instance.BackgroundBar.material.color = role.Color; var text = Object.Instantiate(__instance.WinText); - text.text = "Vampires Win!"; + text.text = LocalizationManager.Instance.GetString("VampiresWin"); text.color = role.Color; var pos = __instance.WinText.transform.localPosition; pos.y = 1.5f; diff --git a/source/Properties/Resources.Designer.cs b/source/Properties/Resources.Designer.cs new file mode 100644 index 000000000..c8c92660b --- /dev/null +++ b/source/Properties/Resources.Designer.cs @@ -0,0 +1,4212 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace TownOfUs.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TownOfUs.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Ability Cooldown. + /// + internal static string AbilityCooldown { + get { + return ResourceManager.GetString("AbilityCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ability Duration. + /// + internal static string AbilityDuration { + get { + return ResourceManager.GetString("AbilityDuration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add Arsonist. + /// + internal static string AddArsonist { + get { + return ResourceManager.GetString("AddArsonist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add Plaguebearer. + /// + internal static string AddPlaguebearer { + get { + return ResourceManager.GetString("AddPlaguebearer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Aftermath. + /// + internal static string Aftermath { + get { + return ResourceManager.GetString("Aftermath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Airship Chance. + /// + internal static string AirshipChance { + get { + return ResourceManager.GetString("AirshipChance", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Airship/Submerged Decreased Long Tasks. + /// + internal static string AirshipSubmergedDecreasedLongTasks { + get { + return ResourceManager.GetString("AirshipSubmergedDecreasedLongTasks", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Airship/Submerged Decreased Short Tasks. + /// + internal static string AirshipSubmergedDecreasedShortTasks { + get { + return ResourceManager.GetString("AirshipSubmergedDecreasedShortTasks", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Airship/Submerged Increased Cooldowns. + /// + internal static string AirshipSubmergedIncreasedCooldowns { + get { + return ResourceManager.GetString("AirshipSubmergedIncreasedCooldowns", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Alert Cooldown. + /// + internal static string AlertCooldown { + get { + return ResourceManager.GetString("AlertCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Alert Duration. + /// + internal static string AlertDuration { + get { + return ResourceManager.GetString("AlertDuration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to All. + /// + internal static string All { + get { + return ResourceManager.GetString("All", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to All Any. + /// + internal static string AllAny { + get { + return ResourceManager.GetString("AllAny", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to All Any Settings. + /// + internal static string AllAnySettings { + get { + return ResourceManager.GetString("AllAnySettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to All Dead. + /// + internal static string AllDead { + get { + return ResourceManager.GetString("AllDead", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Altruist. + /// + internal static string Altruist { + get { + return ResourceManager.GetString("Altruist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Altruist Revive Duration. + /// + internal static string AltruistReviveDuration { + get { + return ResourceManager.GetString("AltruistReviveDuration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Always. + /// + internal static string Always { + get { + return ResourceManager.GetString("Always", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Amnesiac. + /// + internal static string Amnesiac { + get { + return ResourceManager.GetString("Amnesiac", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Amnesiac Gets Arrows Pointing To Dead Bodies. + /// + internal static string AmnesiacGetsArrowsPointingToDeadBodies { + get { + return ResourceManager.GetString("AmnesiacGetsArrowsPointingToDeadBodies", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Amnesiac Turned Impostor Gets Ability. + /// + internal static string AmnesiacTurnedImpostorGetsAbility { + get { + return ResourceManager.GetString("AmnesiacTurnedImpostorGetsAbility", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Amnesiac Turned Neutral Killing Gets Ability. + /// + internal static string AmnesiacTurnedNeutralKillingGetsAbility { + get { + return ResourceManager.GetString("AmnesiacTurnedNeutralKillingGetsAbility", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Anonymous Footprint. + /// + internal static string AnonymousFootprint { + get { + return ResourceManager.GetString("AnonymousFootprint", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Arrow Update Interval. + /// + internal static string ArrowUpdateInterval { + get { + return ResourceManager.GetString("ArrowUpdateInterval", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Arsonist. + /// + internal static string Arsonist { + get { + return ResourceManager.GetString("Arsonist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Arsonist Has Impostor Vision. + /// + internal static string ArsonistHasImpostorVision { + get { + return ResourceManager.GetString("ArsonistHasImpostorVision", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Arsonist Wins!. + /// + internal static string ArsonistWins { + get { + return ResourceManager.GetString("ArsonistWins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Assassin Ability. + /// + internal static string AssassinAbility { + get { + return ResourceManager.GetString("AssassinAbility", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Assassin Can Guess After Voting. + /// + internal static string AssassinCanGuessAfterVoting { + get { + return ResourceManager.GetString("AssassinCanGuessAfterVoting", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Assassin Can Guess 'Crewmate'. + /// + internal static string AssassinCanGuessCrewmate { + get { + return ResourceManager.GetString("AssassinCanGuessCrewmate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Assassin Can Guess Crewmate Modifiers. + /// + internal static string AssassinCanGuessCrewmateModifiers { + get { + return ResourceManager.GetString("AssassinCanGuessCrewmateModifiers", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Assassin Can Guess Impostor Roles. + /// + internal static string AssassinCanGuessImpostorRoles { + get { + return ResourceManager.GetString("AssassinCanGuessImpostorRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Assassin Can Guess Lovers. + /// + internal static string AssassinCanGuessLovers { + get { + return ResourceManager.GetString("AssassinCanGuessLovers", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Assassin Can Guess Neutral Benign Roles. + /// + internal static string AssassinCanGuessNeutralBenignRoles { + get { + return ResourceManager.GetString("AssassinCanGuessNeutralBenignRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Assassin Can Guess Neutral Evil Roles. + /// + internal static string AssassinCanGuessNeutralEvilRoles { + get { + return ResourceManager.GetString("AssassinCanGuessNeutralEvilRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Assassin Can Guess Neutral Killing Roles. + /// + internal static string AssassinCanGuessNeutralKillingRoles { + get { + return ResourceManager.GetString("AssassinCanGuessNeutralKillingRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Assassin Can Kill More Than Once Per Meeting. + /// + internal static string AssassinCanKillMoreThanOncePerMeeting { + get { + return ResourceManager.GetString("AssassinCanKillMoreThanOncePerMeeting", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Aurial. + /// + internal static string Aurial { + get { + return ResourceManager.GetString("Aurial", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Auto Adjust Settings. + /// + internal static string AutoAdjustSettings { + get { + return ResourceManager.GetString("AutoAdjustSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bait. + /// + internal static string Bait { + get { + return ResourceManager.GetString("Bait", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Better Polus Settings. + /// + internal static string BetterPolusSettings { + get { + return ResourceManager.GetString("BetterPolusSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Better Polus Vent Layout. + /// + internal static string BetterPolusVentLayout { + get { + return ResourceManager.GetString("BetterPolusVentLayout", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Blackmailer. + /// + internal static string Blackmailer { + get { + return ResourceManager.GetString("Blackmailer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The corpse is too old to gain information from. (Killed {0}s ago. + /// + internal static string BodyReportCorpseTooOld { + get { + return ResourceManager.GetString("BodyReportCorpseTooOld", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Body Report: The killer appears to be a Crewmate! (Killed {0}s ago). + /// + internal static string BodyReportCrewmate { + get { + return ResourceManager.GetString("BodyReportCrewmate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Body Report: The killer appears to be an Impostor! (Killed {0}s ago). + /// + internal static string BodyReportImpostor { + get { + return ResourceManager.GetString("BodyReportImpostor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Body Report: The killer appears to be {0}! (Killed {1}s ago). + /// + internal static string BodyReportKillerAppearance { + get { + return ResourceManager.GetString("BodyReportKillerAppearance", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Body Report: The killer appears to be a {1} color. (Killed {0}s ago). + /// + internal static string BodyReportKillerAppearanceColor { + get { + return ResourceManager.GetString("BodyReportKillerAppearanceColor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Body Report: The killer appears to be a Neutral Role! (Killed {0}s ago). + /// + internal static string BodyReportNeutralRole { + get { + return ResourceManager.GetString("BodyReportNeutralRole", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Body Report: The killer appears to be a {0}! (Killed {1}s ago). + /// + internal static string BodyReportRole { + get { + return ResourceManager.GetString("BodyReportRole", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Body Report: The kill appears to have been a suicide! (Killed {0}s ago). + /// + internal static string BodyReportSuicide { + get { + return ResourceManager.GetString("BodyReportSuicide", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Body Report: The corpse is too old to gain information from. (Killed {0}s ago). + /// + internal static string BodyReportTooOld { + get { + return ResourceManager.GetString("BodyReportTooOld", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bomber. + /// + internal static string Bomber { + get { + return ResourceManager.GetString("Bomber", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bomber Can Vent. + /// + internal static string BomberCanVent { + get { + return ResourceManager.GetString("BomberCanVent", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Both Lovers Die. + /// + internal static string BothLoversDie { + get { + return ResourceManager.GetString("BothLoversDie", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Button Barry. + /// + internal static string ButtonBarry { + get { + return ResourceManager.GetString("ButtonBarry", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Camouflaged Comms. + /// + internal static string CamouflagedComms { + get { + return ResourceManager.GetString("CamouflagedComms", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Can Be Killed On Alert. + /// + internal static string CanBeKilledOnAlert { + get { + return ResourceManager.GetString("CanBeKilledOnAlert", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cancel. + /// + internal static string Cancel { + get { + return ResourceManager.GetString("Cancel", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Peut convertir les rôles neutres bénins. + /// + internal static string CanConvertNeutralBenignRoles { + get { + return ResourceManager.GetString("CanConvertNeutralBenignRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Peut convertir les rôles neutres maléfiques. + /// + internal static string CanConvertNeutralEvilRoles { + get { + return ResourceManager.GetString("CanConvertNeutralEvilRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Can Detect Last Killer. + /// + internal static string CanDetectLastKiller { + get { + return ResourceManager.GetString("CanDetectLastKiller", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Can Rewind During Meetings. + /// + internal static string CanRewindDuringMeetings { + get { + return ResourceManager.GetString("CanRewindDuringMeetings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Can Stake Round One. + /// + internal static string CanStakeRoundOne { + get { + return ResourceManager.GetString("CanStakeRoundOne", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Can Use Shape Abilities. + /// + internal static string CanUseShapeAbilities { + get { + return ResourceManager.GetString("CanUseShapeAbilities", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Chill Duration. + /// + internal static string ChillDuration { + get { + return ResourceManager.GetString("ChillDuration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Chill Start Speed. + /// + internal static string ChillStartSpeed { + get { + return ResourceManager.GetString("ChillStartSpeed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose Random Map. + /// + internal static string ChooseRandomMap { + get { + return ResourceManager.GetString("ChooseRandomMap", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Classic. + /// + internal static string Classic { + get { + return ResourceManager.GetString("Classic", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Classic Game Mode Settings. + /// + internal static string ClassicGameModeSettings { + get { + return ResourceManager.GetString("ClassicGameModeSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cold Temp Moved To Death Valley. + /// + internal static string ColdTempMovedToDeathValley { + get { + return ResourceManager.GetString("ColdTempMovedToDeathValley", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Confess Cooldown. + /// + internal static string ConfessCooldown { + get { + return ResourceManager.GetString("ConfessCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Conversion Percentage. + /// + internal static string ConversionPercentage { + get { + return ResourceManager.GetString("ConversionPercentage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Crew. + /// + internal static string Crew { + get { + return ResourceManager.GetString("Crew", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Crewmate. + /// + internal static string Crewmate { + get { + return ResourceManager.GetString("Crewmate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Crewmate Investigative Roles. + /// + internal static string CrewmateInvestigativeRoles { + get { + return ResourceManager.GetString("CrewmateInvestigativeRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Crewmate Killing Roles. + /// + internal static string CrewmateKillingRoles { + get { + return ResourceManager.GetString("CrewmateKillingRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Crewmate Killing Roles Are Red. + /// + internal static string CrewmateKillingRolesAreRed { + get { + return ResourceManager.GetString("CrewmateKillingRolesAreRed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Crewmate Modifiers. + /// + internal static string CrewmateModifiers { + get { + return ResourceManager.GetString("CrewmateModifiers", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Crewmate Protective Roles. + /// + internal static string CrewmateProtectiveRoles { + get { + return ResourceManager.GetString("CrewmateProtectiveRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Crewmate Support Roles. + /// + internal static string CrewmateSupportRoles { + get { + return ResourceManager.GetString("CrewmateSupportRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cultist Mode. + /// + internal static string CultistMode { + get { + return ResourceManager.GetString("CultistMode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cultist Settings. + /// + internal static string CultistSettings { + get { + return ResourceManager.GetString("CultistSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Custom Game Settings. + /// + internal static string CustomGameSettings { + get { + return ResourceManager.GetString("CustomGameSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Custom Options. + /// + internal static string CustomOptions { + get { + return ResourceManager.GetString("CustomOptions", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Custom Options Are In-Game. + /// + internal static string CustomOptionsAreInGame { + get { + return ResourceManager.GetString("CustomOptionsAreInGame", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Custom Option Settings. + /// + internal static string CustomOptionSettings { + get { + return ResourceManager.GetString("CustomOptionSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Custom Options Include Crewmate. + /// + internal static string CustomOptionsIncludeCrewmate { + get { + return ResourceManager.GetString("CustomOptionsIncludeCrewmate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Custom Options Include Neutral. + /// + internal static string CustomOptionsIncludeNeutral { + get { + return ResourceManager.GetString("CustomOptionsIncludeNeutral", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Custom Roles. + /// + internal static string CustomRoles { + get { + return ResourceManager.GetString("CustomRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Custom Roles Are In-Game. + /// + internal static string CustomRolesAreInGame { + get { + return ResourceManager.GetString("CustomRolesAreInGame", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Custom Role Settings. + /// + internal static string CustomRoleSettings { + get { + return ResourceManager.GetString("CustomRoleSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Custom Roles Include Crewmate. + /// + internal static string CustomRolesIncludeCrewmate { + get { + return ResourceManager.GetString("CustomRolesIncludeCrewmate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Custom Roles Include Neutral. + /// + internal static string CustomRolesIncludeNeutral { + get { + return ResourceManager.GetString("CustomRolesIncludeNeutral", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Dead Body Arrow Duration. + /// + internal static string DeadBodyArrowDuration { + get { + return ResourceManager.GetString("DeadBodyArrowDuration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Dead Can See Everyone's Roles/Votes. + /// + internal static string DeadCanSeeEveryonesRolesVotes { + get { + return ResourceManager.GetString("DeadCanSeeEveryonesRolesVotes", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Decreased Conversion Percentage Per Conversion. + /// + internal static string DecreasedConversionPercentagePerConversion { + get { + return ResourceManager.GetString("DecreasedConversionPercentagePerConversion", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Detective. + /// + internal static string Detective { + get { + return ResourceManager.GetString("Detective", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Detonate Delay. + /// + internal static string DetonateDelay { + get { + return ResourceManager.GetString("DetonateDelay", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Detonate Radius. + /// + internal static string DetonateRadius { + get { + return ResourceManager.GetString("DetonateRadius", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Disable Meeting Skip Button. + /// + internal static string DisableMeetingSkipButton { + get { + return ResourceManager.GetString("DisableMeetingSkipButton", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Diseased. + /// + internal static string Diseased { + get { + return ResourceManager.GetString("Diseased", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Diseased Kill Multiplier. + /// + internal static string DiseasedKillMultiplier { + get { + return ResourceManager.GetString("DiseasedKillMultiplier", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Disperser. + /// + internal static string Disperser { + get { + return ResourceManager.GetString("Disperser", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Doomsayer. + /// + internal static string Doomsayer { + get { + return ResourceManager.GetString("Doomsayer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Doomsayer Can Guess After Voting. + /// + internal static string DoomsayerCanGuessAfterVoting { + get { + return ResourceManager.GetString("DoomsayerCanGuessAfterVoting", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Doomsayer Can Guess Impostor Roles. + /// + internal static string DoomsayerCanGuessImpostorRoles { + get { + return ResourceManager.GetString("DoomsayerCanGuessImpostorRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Doomsayer Can Guess Neutral Benign Roles. + /// + internal static string DoomsayerCanGuessNeutralBenignRoles { + get { + return ResourceManager.GetString("DoomsayerCanGuessNeutralBenignRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Doomsayer Can Guess Neutral Evil Roles. + /// + internal static string DoomsayerCanGuessNeutralEvilRoles { + get { + return ResourceManager.GetString("DoomsayerCanGuessNeutralEvilRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Doomsayer Can Guess Neutral Killing Roles. + /// + internal static string DoomsayerCanGuessNeutralKillingRoles { + get { + return ResourceManager.GetString("DoomsayerCanGuessNeutralKillingRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Doomsayer Wins!. + /// + internal static string DoomsayerWins { + get { + return ResourceManager.GetString("DoomsayerWins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Double Shot. + /// + internal static string DoubleShot { + get { + return ResourceManager.GetString("DoubleShot", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Douse Cooldown. + /// + internal static string DouseCooldown { + get { + return ResourceManager.GetString("DouseCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Drag Cooldown. + /// + internal static string DragCooldown { + get { + return ResourceManager.GetString("DragCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Druid. + /// + internal static string Druid { + get { + return ResourceManager.GetString("Druid", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Emergency. + /// + internal static string Emergency { + get { + return ResourceManager.GetString("Emergency", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Enable Hidden Roles. + /// + internal static string EnableHiddenRoles { + get { + return ResourceManager.GetString("EnableHiddenRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Engineer. + /// + internal static string Engineer { + get { + return ResourceManager.GetString("Engineer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Escapist. + /// + internal static string Escapist { + get { + return ResourceManager.GetString("Escapist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Escapist Can Vent. + /// + internal static string EscapistCanVent { + get { + return ResourceManager.GetString("EscapistCanVent", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Examine Cooldown. + /// + internal static string ExamineCooldown { + get { + return ResourceManager.GetString("ExamineCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Executioner. + /// + internal static string Executioner { + get { + return ResourceManager.GetString("Executioner", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Executioner Become sOn Target Dead. + /// + internal static string ExecutionerBecomesOnTargetDead { + get { + return ResourceManager.GetString("ExecutionerBecomesOnTargetDead", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Executioner Can Button. + /// + internal static string ExecutionerCanButton { + get { + return ResourceManager.GetString("ExecutionerCanButton", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Executioner Torments Player On Victory. + /// + internal static string ExecutionerTormentsPlayerOnVictory { + get { + return ResourceManager.GetString("ExecutionerTormentsPlayerOnVictory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Executioner Wins!. + /// + internal static string ExecutionerWins { + get { + return ResourceManager.GetString("ExecutionerWins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to First Death Shield Next Game. + /// + internal static string FirstDeathShieldNextGame { + get { + return ResourceManager.GetString("FirstDeathShieldNextGame", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Flash. + /// + internal static string Flash { + get { + return ResourceManager.GetString("Flash", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Flash Grenade Cooldown. + /// + internal static string FlashGrenadeCooldown { + get { + return ResourceManager.GetString("FlashGrenadeCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Flash Grenade Duration. + /// + internal static string FlashGrenadeDuration { + get { + return ResourceManager.GetString("FlashGrenadeDuration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Flash Radius. + /// + internal static string FlashRadius { + get { + return ResourceManager.GetString("FlashRadius", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Flash Speed. + /// + internal static string FlashSpeed { + get { + return ResourceManager.GetString("FlashSpeed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Footprint Duration. + /// + internal static string FootprintDuration { + get { + return ResourceManager.GetString("FootprintDuration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Footprint Interval. + /// + internal static string FootprintInterval { + get { + return ResourceManager.GetString("FootprintInterval", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Footprint Size. + /// + internal static string FootprintSize { + get { + return ResourceManager.GetString("FootprintSize", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Footprint Vent Visible. + /// + internal static string FootprintVentVisible { + get { + return ResourceManager.GetString("FootprintVentVisible", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Freeze Speed. + /// + internal static string FreezeSpeed { + get { + return ResourceManager.GetString("FreezeSpeed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Frosty. + /// + internal static string Frosty { + get { + return ResourceManager.GetString("Frosty", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to GA Becomes On Target Dead. + /// + internal static string GABecomesOnTargetDead { + get { + return ResourceManager.GetString("GABecomesOnTargetDead", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to GA Knows Targets Role. + /// + internal static string GAKnowsTargetsRole { + get { + return ResourceManager.GetString("GAKnowsTargetsRole", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Game Mode. + /// + internal static string GameMode { + get { + return ResourceManager.GetString("GameMode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Game Mode Settings. + /// + internal static string GameModeSettings { + get { + return ResourceManager.GetString("GameModeSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Game Start Cooldowns. + /// + internal static string GameStartCooldowns { + get { + return ResourceManager.GetString("GameStartCooldowns", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Giant. + /// + internal static string Giant { + get { + return ResourceManager.GetString("Giant", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Giant Slow. + /// + internal static string GiantSlow { + get { + return ResourceManager.GetString("GiantSlow", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Glitch Can Vent. + /// + internal static string GlitchCanVent { + get { + return ResourceManager.GetString("GlitchCanVent", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Distance de piratage de Glitch. + /// + internal static string GlitchHackDistance { + get { + return ResourceManager.GetString("GlitchHackDistance", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Glitch Kill Cooldown. + /// + internal static string GlitchKillCooldown { + get { + return ResourceManager.GetString("GlitchKillCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Global Modifiers. + /// + internal static string GlobalModifiers { + get { + return ResourceManager.GetString("GlobalModifiers", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Grenadier. + /// + internal static string Grenadier { + get { + return ResourceManager.GetString("Grenadier", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Grenadier Can Vent. + /// + internal static string GrenadierCanVent { + get { + return ResourceManager.GetString("GrenadierCanVent", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Guardian Angel. + /// + internal static string GuardianAngel { + get { + return ResourceManager.GetString("GuardianAngel", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Hack Cooldown. + /// + internal static string HackCooldown { + get { + return ResourceManager.GetString("HackCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Hack Duration. + /// + internal static string HackDuration { + get { + return ResourceManager.GetString("HackDuration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Half Vision On Skeld/Mira HQ. + /// + internal static string HalfVisionOnSkeldMiraHQ { + get { + return ResourceManager.GetString("HalfVisionOnSkeldMiraHQ", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Haunter. + /// + internal static string Haunter { + get { + return ResourceManager.GetString("Haunter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Haunter Reveals Neutral Roles. + /// + internal static string HaunterRevealsNeutralRoles { + get { + return ResourceManager.GetString("HaunterRevealsNeutralRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ignite Cooldown Removed When Arsonist Is LastKiller. + /// + internal static string IgniteCooldownRemovedWhenArsonistIsLastKiller { + get { + return ResourceManager.GetString("IgniteCooldownRemovedWhenArsonistIsLastKiller", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Imitator. + /// + internal static string Imitator { + get { + return ResourceManager.GetString("Imitator", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Imp. + /// + internal static string Imp { + get { + return ResourceManager.GetString("Imp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Impostor Concealing Roles. + /// + internal static string ImpostorConcealingRoles { + get { + return ResourceManager.GetString("ImpostorConcealingRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Impostor Killing Roles. + /// + internal static string ImpostorKillingRoles { + get { + return ResourceManager.GetString("ImpostorKillingRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Impostor Modifiers. + /// + internal static string ImpostorModifiers { + get { + return ResourceManager.GetString("ImpostorModifiers", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Impostors Can See The Roles Of Their Team. + /// + internal static string ImpostorsCanSeeTheRolesOfTheirTeam { + get { + return ResourceManager.GetString("ImpostorsCanSeeTheRolesOfTheirTeam", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Impostor Support Roles. + /// + internal static string ImpostorSupportRoles { + get { + return ResourceManager.GetString("ImpostorSupportRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Imps Only. + /// + internal static string ImpsOnly { + get { + return ResourceManager.GetString("ImpsOnly", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Include All Default Crewmates. + /// + internal static string IncludeAllDefaultCrewmates { + get { + return ResourceManager.GetString("IncludeAllDefaultCrewmates", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Include All Default Neutrals. + /// + internal static string IncludeAllDefaultNeutrals { + get { + return ResourceManager.GetString("IncludeAllDefaultNeutrals", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Include All Default Roles. + /// + internal static string IncludeAllDefaultRoles { + get { + return ResourceManager.GetString("IncludeAllDefaultRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Increased Cooldown Per Revive. + /// + internal static string IncreasedCooldownPerRevive { + get { + return ResourceManager.GetString("IncreasedCooldownPerRevive", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Increased Cooldown Per Whisper. + /// + internal static string IncreasedCooldownPerWhisper { + get { + return ResourceManager.GetString("IncreasedCooldownPerWhisper", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Increased Kill Cooldown When 2+ Imps. + /// + internal static string IncreasedKillCooldownWhen2PlusImps { + get { + return ResourceManager.GetString("IncreasedKillCooldownWhen2PlusImps", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Indicate Flashed Crewmates. + /// + internal static string IndicateFlashedCrewmates { + get { + return ResourceManager.GetString("IndicateFlashedCrewmates", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Infect Cooldown. + /// + internal static string InfectCooldown { + get { + return ResourceManager.GetString("InfectCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Initial Blackmail Cooldown. + /// + internal static string InitialBlackmailCooldown { + get { + return ResourceManager.GetString("InitialBlackmailCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Initial Revive Cooldown. + /// + internal static string InitialReviveCooldown { + get { + return ResourceManager.GetString("InitialReviveCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Initial Whisper Cooldown. + /// + internal static string InitialWhisperCooldown { + get { + return ResourceManager.GetString("InitialWhisperCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Investigator. + /// + internal static string Investigator { + get { + return ResourceManager.GetString("Investigator", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Janitor. + /// + internal static string Janitor { + get { + return ResourceManager.GetString("Janitor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Jester. + /// + internal static string Jester { + get { + return ResourceManager.GetString("Jester", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Jester Can Button. + /// + internal static string JesterCanButton { + get { + return ResourceManager.GetString("JesterCanButton", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Jester Can Hide In Vents. + /// + internal static string JesterCanHideInVents { + get { + return ResourceManager.GetString("JesterCanHideInVents", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Jester Has Impostor Vision. + /// + internal static string JesterHasImpostorVision { + get { + return ResourceManager.GetString("JesterHasImpostorVision", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Jester Has Impostor Vision. + /// + internal static string JesterHauntsPlayerOnVictory { + get { + return ResourceManager.GetString("JesterHauntsPlayerOnVictory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Jester Wins!. + /// + internal static string JesterWins { + get { + return ResourceManager.GetString("JesterWins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Juggernaut. + /// + internal static string Juggernaut { + get { + return ResourceManager.GetString("Juggernaut", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Juggernaut Can Vent. + /// + internal static string JuggernautCanVent { + get { + return ResourceManager.GetString("JuggernautCanVent", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Juggernaut Initial Kill Cooldown. + /// + internal static string JuggernautInitialKillCooldown { + get { + return ResourceManager.GetString("JuggernautInitialKillCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Juggernaut Kills Traitor. + /// + internal static string JuggernautKillsTraitor { + get { + return ResourceManager.GetString("JuggernautKillsTraitor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Juggernaut Kills Vampire. + /// + internal static string JuggernautKillsVampire { + get { + return ResourceManager.GetString("JuggernautKillsVampire", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Juggernaut Kills Witch. + /// + internal static string JuggernautKillsWitch { + get { + return ResourceManager.GetString("JuggernautKillsWitch", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Juggernaut Wins!. + /// + internal static string JuggernautWins { + get { + return ResourceManager.GetString("JuggernautWins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Kill Cooldown Bonus. + /// + internal static string KillCooldownBonus { + get { + return ResourceManager.GetString("KillCooldownBonus", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Kill Cooldown Reduction. + /// + internal static string KillCooldownReduction { + get { + return ResourceManager.GetString("KillCooldownReduction", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Kill Cooldown Reset On Attack. + /// + internal static string KillCooldownResetOnAttack { + get { + return ResourceManager.GetString("KillCooldownResetOnAttack", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Kill Cooldown Reset When Protected. + /// + internal static string KillCooldownResetWhenProtected { + get { + return ResourceManager.GetString("KillCooldownResetWhenProtected", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Killing Only. + /// + internal static string KillingOnly { + get { + return ResourceManager.GetString("KillingOnly", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Killing Only Settings. + /// + internal static string KillingOnlySettings { + get { + return ResourceManager.GetString("KillingOnlySettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Load Custom Settings. + /// + internal static string LoadCustomSettings { + get { + return ResourceManager.GetString("LoadCustomSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Loading. + /// + internal static string Loading { + get { + return ResourceManager.GetString("Loading", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Long. + /// + internal static string Long { + get { + return ResourceManager.GetString("Long", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Only Neutral Roles Were Left. + /// + internal static string LoveCoupleWins { + get { + return ResourceManager.GetString("LoveCoupleWins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Lovers. + /// + internal static string Lovers { + get { + return ResourceManager.GetString("Lovers", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Loving Impostor Probability. + /// + internal static string LovingImpostorProbability { + get { + return ResourceManager.GetString("LovingImpostorProbability", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Map Settings. + /// + internal static string MapSettings { + get { + return ResourceManager.GetString("MapSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Max Chameleons. + /// + internal static string MaxChameleons { + get { + return ResourceManager.GetString("MaxChameleons", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Max Engineers. + /// + internal static string MaxEngineers { + get { + return ResourceManager.GetString("MaxEngineers", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum Failed Stakes Per Game. + /// + internal static string MaxFailedStakesPerGame { + get { + return ResourceManager.GetString("MaxFailedStakesPerGame", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Nombre maximal de joueurs vivants éteints. + /// + internal static string MaximumAlivePlayersDoused { + get { + return ResourceManager.GetString("MaximumAlivePlayersDoused", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum Delay for the Bait Report. + /// + internal static string MaximumDelayfortheBaitReport { + get { + return ResourceManager.GetString("MaximumDelayfortheBaitReport", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum Number Of Alerts. + /// + internal static string MaximumNumberOfAlerts { + get { + return ResourceManager.GetString("MaximumNumberOfAlerts", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum Number Of Crewmates. + /// + internal static string MaximumNumberOfCrewmates { + get { + return ResourceManager.GetString("MaximumNumberOfCrewmates", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum Number Of Fixes. + /// + internal static string MaximumNumberOfFixes { + get { + return ResourceManager.GetString("MaximumNumberOfFixes", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum Number Of Impostors. + /// + internal static string MaximumNumberOfImpostors { + get { + return ResourceManager.GetString("MaximumNumberOfImpostors", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum Number Of Neutrals. + /// + internal static string MaximumNumberOfNeutrals { + get { + return ResourceManager.GetString("MaximumNumberOfNeutrals", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum Number Of Players. + /// + internal static string MaximumNumberOfPlayers { + get { + return ResourceManager.GetString("MaximumNumberOfPlayers", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum Number Of Protects. + /// + internal static string MaximumNumberOfProtects { + get { + return ResourceManager.GetString("MaximumNumberOfProtects", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum Number Of Reveals. + /// + internal static string MaximumNumberOfReveals { + get { + return ResourceManager.GetString("MaximumNumberOfReveals", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum Number Of Roles. + /// + internal static string MaximumNumberOfRoles { + get { + return ResourceManager.GetString("MaximumNumberOfRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum Number Of Tracks Per Round. + /// + internal static string MaximumNumberOfTracksPerRound { + get { + return ResourceManager.GetString("MaximumNumberOfTracksPerRound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum Number Of Transports. + /// + internal static string MaximumNumberOfTransports { + get { + return ResourceManager.GetString("MaximumNumberOfTransports", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum Number Of Traps Per Game. + /// + internal static string MaximumNumberOfTrapsPerGame { + get { + return ResourceManager.GetString("MaximumNumberOfTrapsPerGame", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum Number Of Vests. + /// + internal static string MaximumNumberOfVests { + get { + return ResourceManager.GetString("MaximumNumberOfVests", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Nombre maximal de Vampires par partie. + /// + internal static string MaximumVampiresPerGame { + get { + return ResourceManager.GetString("MaximumVampiresPerGame", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Max Investigators. + /// + internal static string MaxInvestigators { + get { + return ResourceManager.GetString("MaxInvestigators", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Max Kills In Detonation. + /// + internal static string MaxKillsInDetonation { + get { + return ResourceManager.GetString("MaxKillsInDetonation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Max Mystics. + /// + internal static string MaxMystics { + get { + return ResourceManager.GetString("MaxMystics", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Max Neutral Benign Roles. + /// + internal static string MaxNeutralBenignRoles { + get { + return ResourceManager.GetString("MaxNeutralBenignRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Max Neutral Evil Roles. + /// + internal static string MaxNeutralEvilRoles { + get { + return ResourceManager.GetString("MaxNeutralEvilRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Max Neutral Killing Roles. + /// + internal static string MaxNeutralKillingRoles { + get { + return ResourceManager.GetString("MaxNeutralKillingRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Max Shapes Per Round. + /// + internal static string MaxShapesPerRound { + get { + return ResourceManager.GetString("MaxShapesPerRound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Max Snitches. + /// + internal static string MaxSnitches { + get { + return ResourceManager.GetString("MaxSnitches", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Max Spies. + /// + internal static string MaxSpies { + get { + return ResourceManager.GetString("MaxSpies", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Max Transporters. + /// + internal static string MaxTransporters { + get { + return ResourceManager.GetString("MaxTransporters", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Max Vigilantes. + /// + internal static string MaxVigilantes { + get { + return ResourceManager.GetString("MaxVigilantes", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Mayor. + /// + internal static string Mayor { + get { + return ResourceManager.GetString("Mayor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Mediate Cooldown. + /// + internal static string MediateCooldown { + get { + return ResourceManager.GetString("MediateCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Medic. + /// + internal static string Medic { + get { + return ResourceManager.GetString("Medic", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Medium. + /// + internal static string Medium { + get { + return ResourceManager.GetString("Medium", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Mimic Cooldown. + /// + internal static string MimicCooldown { + get { + return ResourceManager.GetString("MimicCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Mimic Duration. + /// + internal static string MimicDuration { + get { + return ResourceManager.GetString("MimicDuration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Min Amount Of Time In Trap To Register. + /// + internal static string MinAmountOfTimeInTrapToRegister { + get { + return ResourceManager.GetString("MinAmountOfTimeInTrapToRegister", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Mine Cooldown. + /// + internal static string MineCooldown { + get { + return ResourceManager.GetString("MineCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Miner. + /// + internal static string Miner { + get { + return ResourceManager.GetString("Miner", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Minimum Delay for the Bait Report. + /// + internal static string MinimumDelayfortheBaitReport { + get { + return ResourceManager.GetString("MinimumDelayfortheBaitReport", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Minimum Number Of Impostors. + /// + internal static string MinimumNumberOfImpostors { + get { + return ResourceManager.GetString("MinimumNumberOfImpostors", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Minimum Number Of Players. + /// + internal static string MinimumNumberOfPlayers { + get { + return ResourceManager.GetString("MinimumNumberOfPlayers", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Minimum Number Of Roles Required To Trigger Trap. + /// + internal static string MinimumNumberOfRolesRequiredToTriggerTrap { + get { + return ResourceManager.GetString("MinimumNumberOfRolesRequiredToTriggerTrap", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Minimum People Alive When Traitor Can Spawn. + /// + internal static string MinimumPeopleAliveWhenTraitorCanSpawn { + get { + return ResourceManager.GetString("MinimumPeopleAliveWhenTraitorCanSpawn", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Min Neutral Benign Roles. + /// + internal static string MinNeutralBenignRoles { + get { + return ResourceManager.GetString("MinNeutralBenignRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Min Neutral Evil Roles. + /// + internal static string MinNeutralEvilRoles { + get { + return ResourceManager.GetString("MinNeutralEvilRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Min Neutral Killing Roles. + /// + internal static string MinNeutralKillingRoles { + get { + return ResourceManager.GetString("MinNeutralKillingRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Mira Chance. + /// + internal static string MiraChance { + get { + return ResourceManager.GetString("MiraChance", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Mira HQ Decreased Cooldowns. + /// + internal static string MiraHQDecreasedCooldowns { + get { + return ResourceManager.GetString("MiraHQDecreasedCooldowns", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Morphling. + /// + internal static string Morphling { + get { + return ResourceManager.GetString("Morphling", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Morphling Cooldown. + /// + internal static string MorphlingCooldown { + get { + return ResourceManager.GetString("MorphlingCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Morphling Duration. + /// + internal static string MorphlingDuration { + get { + return ResourceManager.GetString("MorphlingDuration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Multitasker. + /// + internal static string Multitasker { + get { + return ResourceManager.GetString("Multitasker", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Mystic. + /// + internal static string Mystic { + get { + return ResourceManager.GetString("Mystic", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Neut. + /// + internal static string Neut { + get { + return ResourceManager.GetString("Neut", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Neutral Benign Roles. + /// + internal static string NeutralBenignRoles { + get { + return ResourceManager.GetString("NeutralBenignRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Neutral Benign Roles Are Red. + /// + internal static string NeutralBenignRolesAreRed { + get { + return ResourceManager.GetString("NeutralBenignRolesAreRed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Neutral Benign Roles Show Evil. + /// + internal static string NeutralBenignRolesShowEvil { + get { + return ResourceManager.GetString("NeutralBenignRolesShowEvil", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Neutral Evil Roles. + /// + internal static string NeutralEvilRoles { + get { + return ResourceManager.GetString("NeutralEvilRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Neutral Evil Roles Are Red. + /// + internal static string NeutralEvilRolesAreRed { + get { + return ResourceManager.GetString("NeutralEvilRolesAreRed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Neutral Evil Roles Show Evil. + /// + internal static string NeutralEvilRolesShowEvil { + get { + return ResourceManager.GetString("NeutralEvilRolesShowEvil", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Neutral Evil Win Ends Game. + /// + internal static string NeutralEvilWinEndsGame { + get { + return ResourceManager.GetString("NeutralEvilWinEndsGame", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Neutral Killing Roles. + /// + internal static string NeutralKillingRoles { + get { + return ResourceManager.GetString("NeutralKillingRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Neutral Killing Roles Are Red. + /// + internal static string NeutralKillingRolesAreRed { + get { + return ResourceManager.GetString("NeutralKillingRolesAreRed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Neutral Killing Roles Show Evil. + /// + internal static string NeutralKillingRolesShowEvil { + get { + return ResourceManager.GetString("NeutralKillingRolesShowEvil", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Neutral Roles. + /// + internal static string NeutralRoles { + get { + return ResourceManager.GetString("NeutralRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Neutral Roles Can Be Lovers. + /// + internal static string NeutralRolesCanBeLovers { + get { + return ResourceManager.GetString("NeutralRolesCanBeLovers", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Newest Dead. + /// + internal static string NewestDead { + get { + return ResourceManager.GetString("NewestDead", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to New Vampire Can Assassinate. + /// + internal static string NewVampireCanAssassinate { + get { + return ResourceManager.GetString("NewVampireCanAssassinate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No. + /// + internal static string No { + get { + return ResourceManager.GetString("No", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Non-Crew. + /// + internal static string Non_Crew { + get { + return ResourceManager.GetString("Non-Crew", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No players entered any of your traps. + /// + internal static string NoPlayersEnteredTraps { + get { + return ResourceManager.GetString("NoPlayersEnteredTraps", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Normal. + /// + internal static string Normal { + get { + return ResourceManager.GetString("Normal", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Not enough players triggered your traps. + /// + internal static string NotEnoughPlayersTriggeredTraps { + get { + return ResourceManager.GetString("NotEnoughPlayersTriggeredTraps", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Number Of Assassin Kills. + /// + internal static string NumberOfAssassinKills { + get { + return ResourceManager.GetString("NumberOfAssassinKills", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Number Of Doomsayer Kills To Win. + /// + internal static string NumberOfDoomsayerKillsToWin { + get { + return ResourceManager.GetString("NumberOfDoomsayerKillsToWin", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Number Of Impostor Assassins. + /// + internal static string NumberOfImpostorAssassins { + get { + return ResourceManager.GetString("NumberOfImpostorAssassins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Number Of Neutral Assassins. + /// + internal static string NumberOfNeutralAssassins { + get { + return ResourceManager.GetString("NumberOfNeutralAssassins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Number Of Special Roles. + /// + internal static string NumberOfSpecialRoles { + get { + return ResourceManager.GetString("NumberOfSpecialRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Number Of Vigilante Kills. + /// + internal static string NumberOfVigilanteKills { + get { + return ResourceManager.GetString("NumberOfVigilanteKills", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You observe that {0} appears to be roleless. + /// + internal static string ObservationAppearsToBeRoleless { + get { + return ResourceManager.GetString("ObservationAppearsToBeRoleless", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You observe that {0} has an altered perception of reality. + /// + internal static string ObservationHasAlteredPerceptionOfReality { + get { + return ResourceManager.GetString("ObservationHasAlteredPerceptionOfReality", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You observe that {0} has a trick up their sleeve. + /// + internal static string ObservationHasATrickUpTheirSleeve { + get { + return ResourceManager.GetString("ObservationHasATrickUpTheirSleeve", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You observe that {0} has an insight for private information. + /// + internal static string ObservationHasInsightForPrivateInformation { + get { + return ResourceManager.GetString("ObservationHasInsightForPrivateInformation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You observe that {0} has an unusual obsession with dead bodies. + /// + internal static string ObservationHasUnusualObsessionWithDeadBodies { + get { + return ResourceManager.GetString("ObservationHasUnusualObsessionWithDeadBodies", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You observe that {0} hides to guard themself or others. + /// + internal static string ObservationHidesToGuardThemselvesOrOthers { + get { + return ResourceManager.GetString("ObservationHidesToGuardThemselvesOrOthers", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You observe that {0} is capable of performing relentless attacks. + /// + internal static string ObservationIsCapableOfPerformingRelentlessAttacks { + get { + return ResourceManager.GetString("ObservationIsCapableOfPerformingRelentlessAttacks", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You observe that {0} is well trained in hunting down prey. + /// + internal static string ObservationIsWellTrainedInHuntingDownPrey { + get { + return ResourceManager.GetString("ObservationIsWellTrainedInHuntingDownPrey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You observe that {0} spreads fear among the group. + /// + internal static string ObservationSpreadsFearAmongTheGroup { + get { + return ResourceManager.GetString("ObservationSpreadsFearAmongTheGroup", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Observe Cooldown. + /// + internal static string ObserveCooldown { + get { + return ResourceManager.GetString("ObserveCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Odds Of Target Being Evil. + /// + internal static string OddsOfTargetBeingEvil { + get { + return ResourceManager.GetString("OddsOfTargetBeingEvil", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Oldest Dead. + /// + internal static string OldestDead { + get { + return ResourceManager.GetString("OldestDead", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Only Neutral Roles Were Left. + /// + internal static string OnlyNeutralRolesWereLeftTranslation { + get { + return ResourceManager.GetString("OnlyNeutralRolesWereLeftTranslation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to or. + /// + internal static string Or { + get { + return ResourceManager.GetString("Or", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Oracle. + /// + internal static string Oracle { + get { + return ResourceManager.GetString("Oracle", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Parallel Medbay Scans. + /// + internal static string ParallelMedbayScans { + get { + return ResourceManager.GetString("ParallelMedbayScans", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Pestilence Can Vent. + /// + internal static string PestilenceCanVent { + get { + return ResourceManager.GetString("PestilenceCanVent", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Pestilence Kill Cooldown. + /// + internal static string PestilenceKillCooldown { + get { + return ResourceManager.GetString("PestilenceKillCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Pestilence Wins!. + /// + internal static string PestilenceWins { + get { + return ResourceManager.GetString("PestilenceWins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Phantom. + /// + internal static string Phantom { + get { + return ResourceManager.GetString("Phantom", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Phantom Spooks Player On Victory. + /// + internal static string PhantomSpooksPlayerOnVictory { + get { + return ResourceManager.GetString("PhantomSpooksPlayerOnVictory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Phantom Wins!. + /// + internal static string PhantomWins { + get { + return ResourceManager.GetString("PhantomWins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Plaguebearer. + /// + internal static string Plaguebearer { + get { + return ResourceManager.GetString("Plaguebearer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Plaguebearer Wins!. + /// + internal static string PlaguebearerWins { + get { + return ResourceManager.GetString("PlaguebearerWins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} confesses to knowing that there are no more evil players!. + /// + internal static string PlayerConfessesToKnowingNoMoreEvilPlayers { + get { + return ResourceManager.GetString("PlayerConfessesToKnowingNoMoreEvilPlayers", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} confesses to knowing that they, {1} and/or {2} is evil!. + /// + internal static string PlayerConfessesToKnowingTheyAndOrAreEvil { + get { + return ResourceManager.GetString("PlayerConfessesToKnowingTheyAndOrAreEvil", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Polus Chance. + /// + internal static string PolusChance { + get { + return ResourceManager.GetString("PolusChance", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Prosecute. + /// + internal static string Prosecute { + get { + return ResourceManager.GetString("Prosecute", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Prosecutor. + /// + internal static string Prosecutor { + get { + return ResourceManager.GetString("Prosecutor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Prosecutor Dies When They Exile A Crewmate. + /// + internal static string ProsecutorDiesWhenTheyExileACrewmate { + get { + return ResourceManager.GetString("ProsecutorDiesWhenTheyExileACrewmate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Protect Cooldown. + /// + internal static string ProtectCooldown { + get { + return ResourceManager.GetString("ProtectCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Protect Duration. + /// + internal static string ProtectDuration { + get { + return ResourceManager.GetString("ProtectDuration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Radar. + /// + internal static string Radar { + get { + return ResourceManager.GetString("Radar", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Radiate Cooldown. + /// + internal static string RadiateCooldown { + get { + return ResourceManager.GetString("RadiateCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Radiate Range. + /// + internal static string RadiateRange { + get { + return ResourceManager.GetString("RadiateRange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Radiate SeeDelay. + /// + internal static string RadiateSeeDelay { + get { + return ResourceManager.GetString("RadiateSeeDelay", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Radiate Succeed Chance. + /// + internal static string RadiateSucceedChance { + get { + return ResourceManager.GetString("RadiateSucceedChance", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Radiate Uses To See. + /// + internal static string RadiateUsesToSee { + get { + return ResourceManager.GetString("RadiateUsesToSee", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Rampage Cooldown. + /// + internal static string RampageCooldown { + get { + return ResourceManager.GetString("RampageCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Rampage Duration. + /// + internal static string RampageDuration { + get { + return ResourceManager.GetString("RampageDuration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Rampage Kill Cooldown. + /// + internal static string RampageKillCooldown { + get { + return ResourceManager.GetString("RampageKillCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Random Number Of Impostors. + /// + internal static string RandomNumberOfImpostors { + get { + return ResourceManager.GetString("RandomNumberOfImpostors", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Reboot Wifi And Chart Course Swapped. + /// + internal static string RebootWifiAndChartCourseSwapped { + get { + return ResourceManager.GetString("RebootWifiAndChartCourseSwapped", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Recall Cooldown. + /// + internal static string RecallCooldown { + get { + return ResourceManager.GetString("RecallCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Réduction du temps de recharge du meurtre par meurtre. + /// + internal static string ReducedKillCooldownPerKill { + get { + return ResourceManager.GetString("ReducedKillCooldownPerKill", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Reveal Accuracy. + /// + internal static string RevealAccuracy { + get { + return ResourceManager.GetString("RevealAccuracy", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Reveal Appearance Of Mediate Target. + /// + internal static string RevealAppearanceOfMediateTarget { + get { + return ResourceManager.GetString("RevealAppearanceOfMediateTarget", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Reveal The Medium To The Mediate Target. + /// + internal static string RevealTheMediumToTheMediateTarget { + get { + return ResourceManager.GetString("RevealTheMediumToTheMediateTarget", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Rewind Cooldown. + /// + internal static string RewindCooldown { + get { + return ResourceManager.GetString("RewindCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Rewind Duration. + /// + internal static string RewindDuration { + get { + return ResourceManager.GetString("RewindDuration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Roles caught in your trap. + /// + internal static string RolesCaughtInYourTrap { + get { + return ResourceManager.GetString("RolesCaughtInYourTrap", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Save Custom Settings. + /// + internal static string SaveCustomSettings { + get { + return ResourceManager.GetString("SaveCustomSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Seer. + /// + internal static string Seer { + get { + return ResourceManager.GetString("Seer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Seer Cooldown. + /// + internal static string SeerCooldown { + get { + return ResourceManager.GetString("SeerCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to See Tasks During Meetings. + /// + internal static string SeeTasksDuringMeetings { + get { + return ResourceManager.GetString("SeeTasksDuringMeetings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to See Tasks During Round. + /// + internal static string SeeTasksDuringRound { + get { + return ResourceManager.GetString("SeeTasksDuringRound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to See Tasks When Dead. + /// + internal static string SeeTasksWhenDead { + get { + return ResourceManager.GetString("SeeTasksWhenDead", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Self. + /// + internal static string Self { + get { + return ResourceManager.GetString("Self", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Self+GA. + /// + internal static string Self_GA { + get { + return ResourceManager.GetString("Self+GA", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Self+Medic. + /// + internal static string Self_Medic { + get { + return ResourceManager.GetString("Self+Medic", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Self Kill On Failure To Kill A Vamp With All Stakes. + /// + internal static string SelfKillOnFailureToKillAVampWithAllStakes { + get { + return ResourceManager.GetString("SelfKillOnFailureToKillAVampWithAllStakes", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Shape Cooldown. + /// + internal static string ShapeCooldown { + get { + return ResourceManager.GetString("ShapeCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Shape Cooldown Reduction. + /// + internal static string ShapeCooldownReduction { + get { + return ResourceManager.GetString("ShapeCooldownReduction", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sheriff. + /// + internal static string Sheriff { + get { + return ResourceManager.GetString("Sheriff", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sheriff Can Report Who They've Killed. + /// + internal static string SheriffCanReportWhoThey_veKilled { + get { + return ResourceManager.GetString("SheriffCanReportWhoThey\'veKilled", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sheriff Kill Cooldown. + /// + internal static string SheriffKillCooldown { + get { + return ResourceManager.GetString("SheriffKillCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sheriff Kills Arsonist. + /// + internal static string SheriffKillsArsonist { + get { + return ResourceManager.GetString("SheriffKillsArsonist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sheriff Kills Doomsayer. + /// + internal static string SheriffKillsDoomsayer { + get { + return ResourceManager.GetString("SheriffKillsDoomsayer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sheriff Kills Executioner. + /// + internal static string SheriffKillsExecutioner { + get { + return ResourceManager.GetString("SheriffKillsExecutioner", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sheriff Kills Jester. + /// + internal static string SheriffKillsJester { + get { + return ResourceManager.GetString("SheriffKillsJester", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sheriff Kills Juggernaut. + /// + internal static string SheriffKillsJuggernaut { + get { + return ResourceManager.GetString("SheriffKillsJuggernaut", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sheriff Kills Plaguebearer. + /// + internal static string SheriffKillsPlaguebearer { + get { + return ResourceManager.GetString("SheriffKillsPlaguebearer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sheriff Kills The Glitch. + /// + internal static string SheriffKillsTheGlitch { + get { + return ResourceManager.GetString("SheriffKillsTheGlitch", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sheriff Kills Vampire. + /// + internal static string SheriffKillsVampire { + get { + return ResourceManager.GetString("SheriffKillsVampire", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sheriff Kills Werewolf. + /// + internal static string SheriffKillsWerewolf { + get { + return ResourceManager.GetString("SheriffKillsWerewolf", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sheriff Miskill Kills Crewmate. + /// + internal static string SheriffMiskillKillsCrewmate { + get { + return ResourceManager.GetString("SheriffMiskillKillsCrewmate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Shield Breaks On Murder Attempt. + /// + internal static string ShieldBreaksOnMurderAttempt { + get { + return ResourceManager.GetString("ShieldBreaksOnMurderAttempt", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Shielded. + /// + internal static string Shielded { + get { + return ResourceManager.GetString("Shielded", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Short. + /// + internal static string Short { + get { + return ResourceManager.GetString("Short", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show Custom Option Hints. + /// + internal static string ShowCustomOptionHints { + get { + return ResourceManager.GetString("ShowCustomOptionHints", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show Custom Role Hints. + /// + internal static string ShowCustomRoleHints { + get { + return ResourceManager.GetString("ShowCustomRoleHints", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show Detective Reports. + /// + internal static string ShowDetectiveReports { + get { + return ResourceManager.GetString("ShowDetectiveReports", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show Medic Reports. + /// + internal static string ShowMedicReports { + get { + return ResourceManager.GetString("ShowMedicReports", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show Protected Player. + /// + internal static string ShowProtectedPlayer { + get { + return ResourceManager.GetString("ShowProtectedPlayer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show Shielded Player. + /// + internal static string ShowShieldedPlayer { + get { + return ResourceManager.GetString("ShowShieldedPlayer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Skeld Chance. + /// + internal static string SkeldChance { + get { + return ResourceManager.GetString("SkeldChance", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Skeld/Mira HQ Increased Long Tasks. + /// + internal static string SkeldMiraHQIncreasedLongTasks { + get { + return ResourceManager.GetString("SkeldMiraHQIncreasedLongTasks", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Skeld/Mira HQ Increased Short Tasks. + /// + internal static string SkeldMiraHQIncreasedShortTasks { + get { + return ResourceManager.GetString("SkeldMiraHQIncreasedShortTasks", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sleuth. + /// + internal static string Sleuth { + get { + return ResourceManager.GetString("Sleuth", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Slot. + /// + internal static string Slot { + get { + return ResourceManager.GetString("Slot", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Snitch. + /// + internal static string Snitch { + get { + return ResourceManager.GetString("Snitch", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Snitch Sees Impostors In Meetings. + /// + internal static string SnitchSeesImpostorsInMeetings { + get { + return ResourceManager.GetString("SnitchSeesImpostorsInMeetings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Snitch Sees Neutral Roles. + /// + internal static string SnitchSeesNeutralRoles { + get { + return ResourceManager.GetString("SnitchSeesNeutralRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Snitch Sees Traitor. + /// + internal static string SnitchSeesTraitor { + get { + return ResourceManager.GetString("SnitchSeesTraitor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sprint Speed. + /// + internal static string SprintSpeed { + get { + return ResourceManager.GetString("SprintSpeed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Spy. + /// + internal static string Spy { + get { + return ResourceManager.GetString("Spy", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Stake Cooldown. + /// + internal static string StakeCooldown { + get { + return ResourceManager.GetString("StakeCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Submerged Chance. + /// + internal static string SubmergedChance { + get { + return ResourceManager.GetString("SubmergedChance", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Survivor. + /// + internal static string Survivor { + get { + return ResourceManager.GetString("Survivor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Survivor Only Win!. + /// + internal static string SurvivorOnlyWin { + get { + return ResourceManager.GetString("SurvivorOnlyWin", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Swapper. + /// + internal static string Swapper { + get { + return ResourceManager.GetString("Swapper", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Swapper Can Button. + /// + internal static string SwapperCanButton { + get { + return ResourceManager.GetString("SwapperCanButton", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Swoop Cooldown. + /// + internal static string SwoopCooldown { + get { + return ResourceManager.GetString("SwoopCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Swoop Duration. + /// + internal static string SwoopDuration { + get { + return ResourceManager.GetString("SwoopDuration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Swooper. + /// + internal static string Swooper { + get { + return ResourceManager.GetString("Swooper", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Swooper Can Vent. + /// + internal static string SwooperCanVent { + get { + return ResourceManager.GetString("SwooperCanVent", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Target Knows GA Exists. + /// + internal static string TargetKnowsGAExists { + get { + return ResourceManager.GetString("TargetKnowsGAExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Target's Body Disappears On Beginning Of Revive. + /// + internal static string TargetsBodyDisappearsOnBeginningOfRevive { + get { + return ResourceManager.GetString("TargetsBodyDisappearsOnBeginningOfRevive", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tasks Remaining When Alert Is Sent. + /// + internal static string TasksRemainingWhenAlertIsSent { + get { + return ResourceManager.GetString("TasksRemainingWhenAlertIsSent", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tasks Remaining When Haunter Can Be Clicked. + /// + internal static string TasksRemainingWhenHaunterCanBeClicked { + get { + return ResourceManager.GetString("TasksRemainingWhenHaunterCanBeClicked", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tâches restantes lorsque le Fantôme peut être cliqué. + /// + internal static string TasksRemainingWhenPhantomCanBeClicked { + get { + return ResourceManager.GetString("TasksRemainingWhenPhantomCanBeClicked", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tasks Remaining When Revealed. + /// + internal static string TasksRemainingWhenRevealed { + get { + return ResourceManager.GetString("TasksRemainingWhenRevealed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Task Tracking Settings. + /// + internal static string TaskTrackingSettings { + get { + return ResourceManager.GetString("TaskTrackingSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The Glitch. + /// + internal static string TheGlitch { + get { + return ResourceManager.GetString("TheGlitch", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The Glitch Wins!. + /// + internal static string TheGlitchWins { + get { + return ResourceManager.GetString("TheGlitchWins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tiebreaker. + /// + internal static string Tiebreaker { + get { + return ResourceManager.GetString("Tiebreaker", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Time After Death Arrow Appears. + /// + internal static string TimeAfterDeathArrowAppears { + get { + return ResourceManager.GetString("TimeAfterDeathArrowAppears", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Time It Takes To Fully Charge. + /// + internal static string TimeItTakesToFullyCharge { + get { + return ResourceManager.GetString("TimeItTakesToFullyCharge", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Time It Takes To Use Full Charge. + /// + internal static string TimeItTakesToUseFullCharge { + get { + return ResourceManager.GetString("TimeItTakesToUseFullCharge", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Time Lord. + /// + internal static string TimeLord { + get { + return ResourceManager.GetString("TimeLord", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Time Where Detective Will Have Faction. + /// + internal static string TimeWhereDetectiveWillHaveFaction { + get { + return ResourceManager.GetString("TimeWhereDetectiveWillHaveFaction", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Time WhereDetective Will Have Role. + /// + internal static string TimeWhereDetectiveWillHaveRole { + get { + return ResourceManager.GetString("TimeWhereDetectiveWillHaveRole", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Time Where Medic Will Have Color Type. + /// + internal static string TimeWhereMedicWillHaveColorType { + get { + return ResourceManager.GetString("TimeWhereMedicWillHaveColorType", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Time Where Medic Will Have Name. + /// + internal static string TimeWhereMedicWillHaveName { + get { + return ResourceManager.GetString("TimeWhereMedicWillHaveName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Too few people alive to receive a confessional. + /// + internal static string TooFewPeopleAliveToReceiveConfessional { + get { + return ResourceManager.GetString("TooFewPeopleAliveToReceiveConfessional", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Torch. + /// + internal static string Torch { + get { + return ResourceManager.GetString("Torch", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Track Cooldown. + /// + internal static string TrackCooldown { + get { + return ResourceManager.GetString("TrackCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tracker. + /// + internal static string Tracker { + get { + return ResourceManager.GetString("Tracker", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tracker Arrows Reset After Each Round. + /// + internal static string TrackerArrowsResetAfterEachRound { + get { + return ResourceManager.GetString("TrackerArrowsResetAfterEachRound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Traitor. + /// + internal static string Traitor { + get { + return ResourceManager.GetString("Traitor", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Traitor Does Not Swap Colours. + /// + internal static string TraitorDoesNotSwapColours { + get { + return ResourceManager.GetString("TraitorDoesNotSwapColours", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Traitor Gets Ability. + /// + internal static string TraitorGetsAbility { + get { + return ResourceManager.GetString("TraitorGetsAbility", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Traitor Won't Spawn If Any Neutral Killing Is Alive. + /// + internal static string TraitorWontSpawnIfAnyNeutralKillingIsAlive { + get { + return ResourceManager.GetString("TraitorWontSpawnIfAnyNeutralKillingIsAlive", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Transport Cooldown. + /// + internal static string TransportCooldown { + get { + return ResourceManager.GetString("TransportCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Transporter. + /// + internal static string Transporter { + get { + return ResourceManager.GetString("Transporter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Transporter Can Use Vitals. + /// + internal static string TransporterCanUseVitals { + get { + return ResourceManager.GetString("TransporterCanUseVitals", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Trap Cooldown. + /// + internal static string TrapCooldown { + get { + return ResourceManager.GetString("TrapCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Trapper. + /// + internal static string Trapper { + get { + return ResourceManager.GetString("Trapper", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Trap Size. + /// + internal static string TrapSize { + get { + return ResourceManager.GetString("TrapSize", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Traps Removed After Each Round. + /// + internal static string TrapsRemovedAfterEachRound { + get { + return ResourceManager.GetString("TrapsRemovedAfterEachRound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Underdog. + /// + internal static string Underdog { + get { + return ResourceManager.GetString("Underdog", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Undertaker. + /// + internal static string Undertaker { + get { + return ResourceManager.GetString("Undertaker", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Undertaker Can Vent. + /// + internal static string UndertakerCanVent { + get { + return ResourceManager.GetString("UndertakerCanVent", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Undertaker Can Vent While Dragging. + /// + internal static string UndertakerCanVentWhileDragging { + get { + return ResourceManager.GetString("UndertakerCanVentWhileDragging", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Undertaker Drag Speed. + /// + internal static string UndertakerDragSpeed { + get { + return ResourceManager.GetString("UndertakerDragSpeed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vampire. + /// + internal static string Vampire { + get { + return ResourceManager.GetString("Vampire", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vampire Bite Cooldown. + /// + internal static string VampireBiteCooldown { + get { + return ResourceManager.GetString("VampireBiteCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vampire Hunter. + /// + internal static string VampireHunter { + get { + return ResourceManager.GetString("VampireHunter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vampires Can Vent. + /// + internal static string VampiresCanVent { + get { + return ResourceManager.GetString("VampiresCanVent", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vampires Have Impostor Vision. + /// + internal static string VampiresHaveImpostorVision { + get { + return ResourceManager.GetString("VampiresHaveImpostorVision", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vampires Win!. + /// + internal static string VampiresWin { + get { + return ResourceManager.GetString("VampiresWin", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Venerer. + /// + internal static string Venerer { + get { + return ResourceManager.GetString("Venerer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vest Cooldown. + /// + internal static string VestCooldown { + get { + return ResourceManager.GetString("VestCooldown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vest Duration. + /// + internal static string VestDuration { + get { + return ResourceManager.GetString("VestDuration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Veteran. + /// + internal static string Veteran { + get { + return ResourceManager.GetString("Veteran", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Veteran Count. + /// + internal static string VeteranCount { + get { + return ResourceManager.GetString("VeteranCount", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vigilante. + /// + internal static string Vigilante { + get { + return ResourceManager.GetString("Vigilante", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vigilante Can Guess After Voting. + /// + internal static string VigilanteCanGuessAfterVoting { + get { + return ResourceManager.GetString("VigilanteCanGuessAfterVoting", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vigilante Can Guess Lovers. + /// + internal static string VigilanteCanGuessLovers { + get { + return ResourceManager.GetString("VigilanteCanGuessLovers", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vigilante Can Guess Neutral Benign Roles. + /// + internal static string VigilanteCanGuessNeutralBenignRoles { + get { + return ResourceManager.GetString("VigilanteCanGuessNeutralBenignRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vigilante Can Guess Neutral Evil Roles. + /// + internal static string VigilanteCanGuessNeutralEvilRoles { + get { + return ResourceManager.GetString("VigilanteCanGuessNeutralEvilRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vigilante Can Guess Neutral Killing Roles. + /// + internal static string VigilanteCanGuessNeutralKillingRoles { + get { + return ResourceManager.GetString("VigilanteCanGuessNeutralKillingRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vigilante Can Kill More Than Once Per Meeting. + /// + internal static string VigilanteCanKillMoreThanOncePerMeeting { + get { + return ResourceManager.GetString("VigilanteCanKillMoreThanOncePerMeeting", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vigilante Count. + /// + internal static string VigilanteCount { + get { + return ResourceManager.GetString("VigilanteCount", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vitals Moved To Lab. + /// + internal static string VitalsMovedToLab { + get { + return ResourceManager.GetString("VitalsMovedToLab", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Warlock. + /// + internal static string Warlock { + get { + return ResourceManager.GetString("Warlock", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Werewolf. + /// + internal static string Werewolf { + get { + return ResourceManager.GetString("Werewolf", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Werewolf Wins!. + /// + internal static string WerewolfWins { + get { + return ResourceManager.GetString("WerewolfWins", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to What Vampire Hunter Becomes On All Vampire Deaths. + /// + internal static string WhatVampireHunterBecomesOnAllVampireDeaths { + get { + return ResourceManager.GetString("WhatVampireHunterBecomesOnAllVampireDeaths", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Whisper Radius. + /// + internal static string WhisperRadius { + get { + return ResourceManager.GetString("WhisperRadius", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Who Can Click Haunter. + /// + internal static string WhoCanClickHaunter { + get { + return ResourceManager.GetString("WhoCanClickHaunter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Who Gets Murder Attempt Indicator. + /// + internal static string WhoGetsMurderAttemptIndicator { + get { + return ResourceManager.GetString("WhoGetsMurderAttemptIndicator", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Who Is Revealed With Mediate. + /// + internal static string WhoIsRevealedWithMediate { + get { + return ResourceManager.GetString("WhoIsRevealedWithMediate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Who Sees Dead Bodies On Admin. + /// + internal static string WhoSeesDeadBodiesOnAdmin { + get { + return ResourceManager.GetString("WhoSeesDeadBodiesOnAdmin", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to YOU ARE BLACKMAILED. + /// + internal static string YouAreBlackmailed { + get { + return ResourceManager.GetString("YouAreBlackmailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Your confessor failed to survive so you received no confession. + /// + internal static string YourConfessorFailedToSurviveNoConfession { + get { + return ResourceManager.GetString("YourConfessorFailedToSurviveNoConfession", resourceCulture); + } + } + } +} diff --git a/source/Properties/Resources.fr.resx b/source/Properties/Resources.fr.resx new file mode 100644 index 000000000..0ab552f98 --- /dev/null +++ b/source/Properties/Resources.fr.resx @@ -0,0 +1,1491 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Ajouter Pyromane + + + Ajouter Porteur de Peste + + + Conséquence + + + Paramètres Aléatoires + + + Altruiste + + + Amnésique + + + Pyromane + + + Aurial + + + Appât + + + Maître-chanteur + + + Bombardier + + + Bouton de Barry + + + Paramètres de jeu classique + + + Rôles Crewmate Enquêteur + + + Rôles Crewmate Tueurs + + + Modificateurs de Crewmate + + + Rôles Crewmate Protecteurs + + + Rôles Crewmate de Soutien + + + Mode Cultiste + + + Paramètres Cultiste + + + Détective + + + Malade + + + Disperseur + + + Prophète de malheur + + + Double Coup + + + Ingénieur + + + Fugitif + + + Bourreau + + + Flash + + + Glacial + + + Mode de jeu + + + Paramètres du mode de jeu + + + Géant + + + Modificateurs globaux + + + Grenadier + + + Ange gardien + + + Hanteur + + + Imitateur + + + Rôles d'Imposteurs Masqués + + + Rôles d'Imposteurs Tueurs + + + Modificateurs d'Imposteurs + + + Rôles d'Imposteurs de Soutien + + + Enquêteur + + + Concierge + + + Bouffon + + + Paramètres de Tueur Seulement + + + Amoureux + + + Max Caméléons + + + Max Ingénieurs + + + Max Investigateur + + + Max Mystiques + + + Nbr Max de Rôles Neutres Bénins + + + Nbr Max de Rôles Neutres Maléfiques + + + Nbr Max de Rôles Neutres Tueurs + + + Maire + + + Médecin + + + Médium + + + Mineur + + + Nbr Mini de Rôles Neutres Bénins + + + Nbr Mini de Rôles Neutres Maléfiques + + + Nbr Mini de Rôles Neutres Tueurs + + + Métamorphe + + + Multitâche + + + Mystique + + + Rôles Neutres Bénins + + + Rôles Neutres Maléfiques + + + Rôles Neutres Tueurs + + + Rôles Neutre + + + Nombre de rôles spéciaux + + + Oracle + + + Fantôme + + + Porteur de Peste + + + Procureur + + + Radar + + + Nombre aléatoire d’imposteurs + + + Voyant + + + Shérif + + + Enquêteur + + + Indicateur + + + Espion + + + Survivant + + + Swapeur + + + Furtif + + + Anomalie + + + Arbitre + + + Torche + + + Suiveur + + + Traître + + + Transporteur + + + Trappeur + + + Le Désavantagé + + + Fossoyeur + + + Vampire + + + Chasseur de Vampire + + + Ascendant + + + Vétéran + + + Nombre de Vétérans + + + Justicier + + + Nombre de Justiciers + + + Sorcier + + + Loup-garou + + + Max Rapporteurs + + + Max Espions + + + Max Transporteurs + + + Max Vigilants + + + Cooldown Initial de Chuchotement + + + Cooldown Augmenté Par Chuchotement + + + Rayon de Chuchotement + + + Pourcentage de Conversion + + + Pourcentage de Conversion Réduit Par Conversion + + + Cooldown Initial de Résurrection + + + Cooldown Augmenté Par Résurrection + + + Nombre Maximum de Révélations + + + Paramètres de Carte + + + Choisir une Carte Aléatoire + + + Chance pour Skeld + + + Chance pour Mira + + + Chance pour Polus + + + Chance pour Airship + + + Chance pour Submerged + + + Meilleurs Paramètres pour Polus + + + Meilleurs Paramètres pour Skeld + + + Meilleurs Paramètres pour Mira + + + Meilleurs Paramètres pour Dirigeable + + + Meilleurs Paramètres pour Submergé + + + Paramètres de l'Hôte + + + Confirmation d'Éjection + + + Votes Anonymes + + + Mises à Jour de la Barre des Tâches + + + Confirmer les Éjections + + + Tâches Visuelles + + + Meilleure Disposition des Conduits sur Polus + + + Signes Vitaux Déplacés vers le Labo + + + Température Froide Déplacée vers la Vallée de la Mort + + + Redémarrage Wifi et Trajet Échangés + + + Paramètres de Jeu Personnalisés + + + Comms Camouflées + + + Les Imposteurs Peuvent Voir les Rôles de Leur Équipe + + + Les Morts Peuvent Voir les Rôles/Votes de Tout le Monde + + + Cooldowns au Début du Jeu + + + Scans Médicaux Parallèles + + + Désactiver le Bouton Passer Réunion + + + Activer les Rôles Cachés + + + Bouclier Après Premier Décès pour le Prochain Jeu + + + Victoire du Mal Neutre Termine le Jeu + + + Paramètres de Suivi des Tâches + + + Voir les Tâches Pendant la Manche + + + Voir les Tâches Pendant les Réunions + + + Voir les Tâches Quand Mort + + + Capacité d'Assassin + + + Nombre d'Assassins Imposteurs + + + Nombre d'Assassins Neutres + + + Amnésique Devenu Imposteur Obtient la Capacité + + + Amnésique Devenu Tueur Neutre Obtient la Capacité + + + Traître Obtient la Capacité + + + Nombre de Tueries par Assassin + + + L'Assassin Peut Tuer Plus d'une Fois Par Réunion + + + L'Assassin Peut Deviner 'Équipage' + + + L'Assassin Peut Deviner les Rôles Neutres Bénins + + + L'Assassin Peut Deviner les Rôles Neutres Maléfiques + + + L'Assassin Peut Deviner les Rôles Neutres Tueurs + + + L'Assassin Peut Deviner les Rôles d'Imposteur + + + L'Assassin Peut Deviner les Modificateurs d'Équipage + + + L'Assassin Peut Deviner les Amoureux + + + L'Assassin Peut Deviner Après le Vote + + + Tâches Restantes pour Cliquer sur le Hanteur + + + Tâches Restantes pour Envoyer une Alerte + + + Le Hanteur Révèle les Rôles Neutres + + + Qui Peut Cliquer sur le Hanteur + + + Taille de l'Empreinte + + + Intervalle de l'Empreinte + + + Durée de l'Empreinte + + + Empreinte Anonyme + + + Empreinte Visible dans la Bouche d'Aération + + + Durée de la Flèche du Cadavre + + + Temps de Recharge de la Confession + + + Précision de la Révélation + + + Les Rôles Neutres Bénins Montrent le Mal + + + Les Rôles Neutres Malfaisants Montrent le Mal + + + Les Rôles Neutres Meurtriers Montrent le Mal + + + Temps de Recharge du Voyant + + + Les Rôles de Meurtriers parmi les Équipiers sont Rouges + + + Les Rôles Neutres Bénins sont Rouges + + + Les Rôles Neutres Malfaisants sont Rouges + + + Les Rôles Neutres Meurtriers sont Rouges + + + Le Traître ne Change Pas de Couleurs + + + L'Indicateur Voit les Rôles Neutres + + + Tâches Restantes Lors de la Révélation + + + L'Indicateur Voit les Imposteurs Pendant les Réunions + + + L'Indicateur Voit le Traître + + + Qui Voit les Cadavres sur l'Admin + + + Intervalle de Mise à Jour de la Flèche + + + Temps de Recharge du Suivi + + + Les Flèches du Suiveur se Réinitialisent Après Chaque Tour + + + Nombre Maximum de Pistes par Tour + + + Temps Minimum dans le Piège pour Enregistrement + + + Temps de Recharge du Piège + + + Pièges Retirés Après Chaque Tour + + + Nombre Maximum de Pièges par Jeu + + + Taille du Piège + + + Nombre Minimum de Rôles Requis pour Déclencher le Piège + + + Le Shérif Tue un Équipier en Cas d'Erreur + + + Le Shérif Tue le Prophète de Malheur + + + Le Shérif Tue l'Exécuteur + + + Le Shérif Tue le Bouffon + + + Le Shérif Tue le Pyromane + + + Le Shérif Tue le Dysfonctionnement + + + Le Shérif Tue le Mastodonte + + + Le Shérif Tue le Porteur de Peste + + + Le Shérif Tue le Vampire + + + Le Shérif Tue le Loup-Garou + + + Temps de Recharge du Meurtre du Shérif + + + Le Shérif Peut Signaler Qui Il a Tué + + + Tous + + + Tout le monde + + + Tout le monde sauf Espion + + + Impo Seulement + + + Personne + + + Non-Crew + + + Temps de Recharge du Pieu + + + Nombre Maximum de Pieu Ratés par Partie + + + Peut Utiliser un Pieu au Premier Tour + + + Auto-élimination en Cas d'Échec à Tuer un Vampire avec Tous les Pieux + + + Ce que Devient le Chasseur de Vampires à la Mort de Tous les Vampires + + + Peut être Tué en État d'Alerte + + + Temps de Recharge de l'Alerte + + + Durée de l'Alerte + + + Nombre Maximum d'Alertes + + + Nombre de Tueries par le Justicier + + + Le Justicier Peut Tuer Plus d'une Fois par Réunion + + + Le Justicier Peut Deviner les Rôles Neutres Bénins + + + Le Justicier Peut Deviner les Rôles Neutres Malfaisants + + + Le Justicier Peut Deviner les Rôles Neutres Tueurs + + + Le Justicier Peut Deviner les Amoureux + + + Le Justicier Peut Deviner Après le Vote + + + Durée de Résurrection de l'Altruiste + + + Le Corps de la Cible Disparaît au Début de la Résurrection + + + Montrer le Joueur Protégé + + + Qui Reçoit l'Indicateur de Tentative de Meurtre + + + Le Bouclier Se Brise à la Tentative de Meurtre + + + Montrer les Rapports du Médecin + + + Temps où le Médecin Aura un Nom + + + Temps où le Médecin Aura un Type de Couleur + + + Druide + + + Temps de Recharge de la Forme + + + Réduction du Temps de Recharge de la Forme + + + Nombre Maximum de Formes par Manche + + + Peut Utiliser les Capacités de la Forme + + + Juggernaut + + + Réduction du Temps de Recharge du Meurtre + + + Le Juggernaut Tue le Traître + + + Le Juggernaut Tue le Vampire + + + Le Juggernaut Tue la Sorcière + + + Seigneur du Temps + + + Durée du Retour en Arrière + + + Temps de Recharge du Retour en Arrière + + + Peut Faire un Retour en Arrière Pendant les Réunions + + + Rôles Personnalisés + + + Paramètres des Rôles Personnalisés + + + Les Rôles Personnalisés Sont en Jeu + + + Les Rôles Personnalisés Incluent les Rôles Neutres + + + Les Rôles Personnalisés Incluent les Membres d'Équipage + + + Options Personnalisées + + + Paramètres des Options Personnalisées + + + Les Options Personnalisées Sont en Jeu + + + Les Options Personnalisées Incluent les Neutres + + + Les Options Personnalisées Incluent les Membres d'Équipage + + + Afficher les Indices des Rôles Personnalisés + + + Afficher les Indices des Options Personnalisées + + + Nombre Maximum de Rôles + + + Nombre Maximum de Rôles Neutres + + + Nombre Maximum de Membres d'Équipage + + + Nombre Maximum de Joueurs + + + Nombre Minimum de Joueurs + + + Inclure Tous les Rôles par Défaut + + + Inclure Tous les Membres d'Équipage par Défaut + + + Inclure Tous les Rôles Neutres par Défaut + + + Nombre Minimum d'Imposteurs + + + Nombre Maximum d'Imposteurs + + + Crewmate + + + Temps de Médiation + + + Révéler l'apparence de la cible de médiation + + + Révéler le médium à la cible de médiation + + + Qui est révélé avec la médiation + + + Le procureur meurt s'ils exilent un coéquipier + + + Le Swapper peut utiliser le bouton + + + Temps de recharge du Transporteur + + + Nombre maximal de transports + + + Le Transporteur peut utiliser les signes vitaux + + + L'amnésique obtient des flèches pointant vers les cadavres + + + Temps après lequel la flèche de décès apparaît + + + Temps de recharge de la protection + + + Durée de la protection + + + Réinitialisation du temps de recharge du meurtre lors de la protection + + + Nombre maximal de protections + + + Afficher le joueur protégé + + + AG devient quand la cible meurt + + + La cible sait que l'Ange Gardien existe + + + AG connaît le rôle des cibles + + + Probabilité que la cible soit mauvaise + + + Temps de recharge du gilet pare-balles + + + Durée du gilet pare-balles + + + Réinitialisation du temps de recharge du meurtre lors de l'attaque + + + Nombre maximal de gilets pare-balles + + + Temps de recharge de l'observation + + + Le Prophète du mal peut deviner les rôles neutres bénins + + + Le Prophète du mal peut deviner les rôles neutres maléfiques + + + Le Prophète du mal peut deviner les rôles neutres tueurs + + + Le Prophète du mal peut deviner les rôles d'imposteurs + + + Le Prophète du mal peut deviner après le vote + + + Nombre de meurtres du Prophète du mal pour gagner + + + Tous les morts + + + Crew + + + Mort le plus récent + + + Mort le plus ancient + + + Soi-même+AG + + + Soi-même+Médic + + + Protégé + + + Le Bourreau devient quand la cible meurt + + + Le Bourreau peut utiliser le bouton + + + Le Bourreau tourmente le joueur à la victoire + + + Le Bouffon peut utiliser le bouton + + + Le Bouffon peut se cacher dans les évents + + + Le Bouffon a la vision de l'Imposteur + + + Le Bouffon hante le joueur à la victoire + + + Tâches restantes lorsque le Fantôme peut être cliqué + + + Le Fantôme effraie le joueur à la victoire + + + Temps de recharge d'extinction + + + Nombre maximal de joueurs vivants éteints + + + L'Incendiaire a la vision de l'Imposteur + + + Temps de recharge d'incendie supprimé lorsque l'Incendiaire est le dernier tueur + + + Temps de recharge initial du Juggernaut + + + Réduction du temps de recharge du meurtre par meurtre + + + Le Juggernaut peut se faufiler + + + Temps de recharge d'infection + + + Temps de recharge de meurtre de Pestilence + + + Pestilence peut se faufiler + + + Temps de recharge d'imitation + + + Durée d'imitation + + + Temps de recharge de piratage + + + Durée de piratage + + + Temps de recharge de meurtre de Glitch + + + Distance de piratage de Glitch + + + Le Glitch peut se faufiler + + + Temps de recharge de morsure de Vampire + + + Les Vampires ont la vision de l'Imposteur + + + Les Vampires peuvent se faufiler + + + Le nouveau Vampire peut assassiner + + + Nombre maximal de Vampires par partie + + + Peut convertir les rôles neutres bénins + + + Peut convertir les rôles neutres maléfiques + + + Temps de recharge de la furie + + + Durée de la furie + + + Temps de recharge de meurtre de la furie + + + Long + + + Normal + + + Court + + + Temps de recharge du rappel + + + L'Évadé peut se faufiler + + + Temps de recharge de la grenade flash + + + Durée de la grenade flash + + + Rayon de la grenade flash + + + Indiquer les coéquipiers éblouis + + + Le Grenadier peut se faufiler + + + Temps de recharge du Morphling + + + Durée du Morphling + + + Le Morphling peut se faufiler + + + Temps de recharge du Swooper + + + Durée du Swooper + + + Le Swooper peut se faufiler + + + Temps de recharge de l'aptitude + + + Durée de l'aptitude + + + Vitesse de sprint + + + Vitesse de gel + + + Délai de détonation + + + Nombre maximal de meurtres dans la détonation + + + Rayon de détonation + + + Le Bombardier peut se faufiler + + + Nombre minimal de personnes en vie lorsque le Traître peut apparaître + + + Le Traître n'apparaîtra pas si un tueur neutre est en vie + + + Temps nécessaire pour charger complètement + + + Temps nécessaire pour utiliser une charge complète + + + Temps de recharge initial du chantage + + + Temps de recharge de la mine + + + Temps de recharge du glisser + + + Vitesse de glissement de l'Undertaker + + + L'Undertaker peut se faufiler + + + L'Undertaker peut se faufiler en traînant + + + Délai minimum pour le rapport d'appât + + + Délai maximum pour le rapport d'appât + + + Multiplicateur de meurtre de la maladie + + + Durée du froid + + + Vitesse de départ du froid + + + Vitesse de l'éclair + + + Ralentissement du Géant + + + Les deux amoureux meurent + + + Probabilité d'imposteur amoureux + + + Les rôles neutres peuvent être amoureux + + + Bonus de temps de recharge du meurtre + + + Augmentation du temps de recharge du meurtre quand 2+ Imposteurs + + + N'importe lequel + + + Toujours + + + Annuler + + + Classique + + + Urgence + + + Tueurs Seulement + + + Charger les paramètres personnalisés + + + Chargement + + + Nbr Maximun de réparation + + + Non + + + Enregistrer les paramètres personnalisés + + + Soi-même + + + Emplacement + + + Rapport de Corps : Le tueur semble être un Équipier ! (Tué il y a {0}s) + + + Rapport de Corps : Le tueur semble être un Imposteur ! (Tué il y a {0}s) + + + Rapport de Corps : Le tueur semble être un Rôle Neutre ! (Tué il y a {0}s) + + + Rapport de Corps : Le tueur semble être un {role.Name} ! (Tué il y a {0}s) + + + Rapport de Corps : Le meurtre semble avoir été un suicide ! (Tué il y a {0}s) + + + Rapport de Corps : Le cadavre est trop vieux pour obtenir des informations. (Tué il y a {0}s) + + + Victoire du pyromane! + + + Le cadavre est trop vieux pour obtenir des informations. (Tué il y a {0}s) + + + Rapport de cadavre : Le tueur semble être {0} ! (Tué il y a {1}s) + + + Rapport de cadavre : Le tueur semble être d'une couleur {1}. (Tué il y a {0}s) + + + Victoire du Prophète du Mal! + + + Victoire du Bourreau! + + + Impt + + + Victoire du Bouffon! + + + Victoire du Juggernaut! + + + Victoire du couple amoureux! + + + Neut + + + Aucun joueur n'est entré dans l'une de vos pièges + + + Pas assez de joueurs ont déclenché vos pièges + + + Tu observes que {0} semble être sans rôle + + + Tu observes que {0} a une perception altérée de la réalité + + + Tu observes que {0} a un tour dans sa manche + + + Tu observes que {0} a un don pour les informations privées + + + Tu observes que {0} a une obsession inhabituelle pour les cadavres + + + Tu observes que {0} se cache pour se protéger ou protéger les autres + + + Tu observes que {0} est capable d'effectuer des attaques implacables + + + Tu observes que {0} est bien entraîné pour chasser sa proie + + + Tu observes que {0} répand la peur parmi le groupe + + + Seuls les rôles neutres étaient encore présents + + + ou + + + Victoire de Pestilence! + + + Victoire du Fantôme! + + + Victoire du Porteur de Peste! + + + {0} avoue savoir qu'il n'y a plus de joueurs maléfiques ! + + + {0} avoue savoir que lui, {1} et/ou {2} sont maléfiques ! + + + Accuser + + + Rôles pris dans votre piège + + + Victoire du Survivant seulement! + + + Victoire de l'Anomalie! + + + Trop peu de personnes en vie pour recevoir une confession + + + Victoire des Vampires! + + + Victoire du Loup-garou + + + VOUS ÊTES SOUMIS AU CHANTAGE + + + Votre confesseur n'a pas survécu, vous n'avez donc reçu aucune confession + + \ No newline at end of file diff --git a/source/Properties/Resources.resx b/source/Properties/Resources.resx new file mode 100644 index 000000000..f676c2ac7 --- /dev/null +++ b/source/Properties/Resources.resx @@ -0,0 +1,1503 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Add Arsonist + + + Add Plaguebearer + + + Aftermath + + + All Any Settings + + + Altruist + + + Amnesiac + + + Arsonist + + + Aurial + + + Bait + + + Blackmailer + + + Bomber + + + Button Barry + + + Classic Game Mode Settings + + + Crewmate Investigative Roles + + + Crewmate Killing Roles + + + Crewmate Modifiers + + + Crewmate Protective Roles + + + Crewmate Support Roles + + + Cultist Mode + + + Cultist Settings + + + Detective + + + Diseased + + + Disperser + + + Doomsayer + + + Double Shot + + + Engineer + + + Escapist + + + Executioner + + + Flash + + + Frosty + + + Game Mode + + + Game Mode Settings + + + Giant + + + Global Modifiers + + + Grenadier + + + Guardian Angel + + + Haunter + + + Imitator + + + Impostor Concealing Roles + + + Impostor Killing Roles + + + Impostor Modifiers + + + Impostor Support Roles + + + Investigator + + + Janitor + + + Jester + + + Killing Only Settings + + + Lovers + + + Max Chameleons + + + Max Engineers + + + Max Investigators + + + Max Mystics + + + Max Neutral Benign Roles + + + Max Neutral Evil Roles + + + Max Neutral Killing Roles + + + Mayor + + + Medic + + + Medium + + + Miner + + + Min Neutral Benign Roles + + + Min Neutral Evil Roles + + + Min Neutral Killing Roles + + + Morphling + + + Multitasker + + + Mystic + + + Neutral Benign Roles + + + Neutral Evil Roles + + + Neutral Killing Roles + + + Neutral Roles + + + Number Of Special Roles + + + Oracle + + + Phantom + + + Plaguebearer + + + Prosecutor + + + Radar + + + Random Number Of Impostors + + + Seer + + + Sheriff + + + Sleuth + + + Snitch + + + Spy + + + Survivor + + + Swapper + + + Swooper + + + The Glitch + + + Tiebreaker + + + Torch + + + Tracker + + + Traitor + + + Transporter + + + Trapper + + + Underdog + + + Undertaker + + + Vampire + + + Venerer + + + Veteran + + + Veteran Count + + + Vigilante + + + Vigilante Count + + + Warlock + + + Werewolf + + + Max Snitches + + + Max Spies + + + Max Transporters + + + Max Vigilantes + + + Initial Whisper Cooldown + + + Increased Cooldown Per Whisper + + + Whisper Radius + + + Conversion Percentage + + + Decreased Conversion Percentage Per Conversion + + + Initial Revive Cooldown + + + Increased Cooldown Per Revive + + + Maximum Number Of Reveals + + + Map Settings + + + Choose Random Map + + + Skeld Chance + + + Mira Chance + + + Polus Chance + + + Airship Chance + + + Submerged Chance + + + Auto Adjust Settings + + + Half Vision On Skeld/Mira HQ + + + Mira HQ Decreased Cooldowns + + + Airship/Submerged Increased Cooldowns + + + Skeld/Mira HQ Increased Short Tasks + + + Skeld/Mira HQ Increased Long Tasks + + + Airship/Submerged Decreased Short Tasks + + + Airship/Submerged Decreased Long Tasks + + + Better Polus Settings + + + Better Polus Vent Layout + + + Vitals Moved To Lab + + + Cold Temp Moved To Death Valley + + + Reboot Wifi And Chart Course Swapped + + + Custom Game Settings + + + Camouflaged Comms + + + Impostors Can See The Roles Of Their Team + + + Dead Can See Everyone's Roles/Votes + + + Game Start Cooldowns + + + Parallel Medbay Scans + + + Disable Meeting Skip Button + + + Enable Hidden Roles + + + First Death Shield Next Game + + + Neutral Evil Win Ends Game + + + Task Tracking Settings + + + See Tasks During Round + + + See Tasks During Meetings + + + See Tasks When Dead + + + Assassin Ability + + + Number Of Impostor Assassins + + + Number Of Neutral Assassins + + + Amnesiac Turned Impostor Gets Ability + + + Amnesiac Turned Neutral Killing Gets Ability + + + Traitor Gets Ability + + + Number Of Assassin Kills + + + Assassin Can Kill More Than Once Per Meeting + + + Assassin Can Guess 'Crewmate' + + + Assassin Can Guess Neutral Benign Roles + + + Assassin Can Guess Neutral Evil Roles + + + Assassin Can Guess Neutral Killing Roles + + + Assassin Can Guess Impostor Roles + + + Assassin Can Guess Crewmate Modifiers + + + Assassin Can Guess Lovers + + + Assassin Can Guess After Voting + + + Tasks Remaining When Haunter Can Be Clicked + + + Tasks Remaining When Alert Is Sent + + + Haunter Reveals Neutral Roles + + + Who Can Click Haunter + + + Footprint Size + + + Footprint Interval + + + Footprint Duration + + + Anonymous Footprint + + + Footprint Vent Visible + + + Dead Body Arrow Duration + + + Confess Cooldown + + + Reveal Accuracy + + + Neutral Benign Roles Show Evil + + + Neutral Evil Roles Show Evil + + + Neutral Killing Roles Show Evil + + + Seer Cooldown + + + Crewmate Killing Roles Are Red + + + Neutral Benign Roles Are Red + + + Neutral Evil Roles Are Red + + + Neutral Killing Roles Are Red + + + Traitor Does Not Swap Colours + + + Snitch Sees Neutral Roles + + + Tasks Remaining When Revealed + + + Snitch Sees Impostors In Meetings + + + Snitch Sees Traitor + + + Who Sees Dead Bodies On Admin + + + Arrow Update Interval + + + Track Cooldown + + + Tracker Arrows Reset After Each Round + + + Maximum Number Of Tracks Per Round + + + Min Amount Of Time In Trap To Register + + + Trap Cooldown + + + Traps Removed After Each Round + + + Maximum Number Of Traps Per Game + + + Trap Size + + + Minimum Number Of Roles Required To Trigger Trap + + + Sheriff Miskill Kills Crewmate + + + Sheriff Kills Doomsayer + + + Sheriff Kills Executioner + + + Sheriff Kills Jester + + + Sheriff Kills Arsonist + + + Sheriff Kills The Glitch + + + Sheriff Kills Juggernaut + + + Sheriff Kills Plaguebearer + + + Sheriff Kills Vampire + + + Sheriff Kills Werewolf + + + Sheriff Kill Cooldown + + + Sheriff Can Report Who They've Killed + + + All + + + Imps Only + + + Non-Crew + + + Vampire Hunter + + + Stake Cooldown + + + Maximum Failed Stakes Per Game + + + Can Stake Round One + + + Self Kill On Failure To Kill A Vamp With All Stakes + + + What Vampire Hunter Becomes On All Vampire Deaths + + + Can Be Killed On Alert + + + Alert Cooldown + + + Alert Duration + + + Maximum Number Of Alerts + + + Number Of Vigilante Kills + + + Vigilante Can Kill More Than Once Per Meeting + + + Vigilante Can Guess Neutral Benign Roles + + + Vigilante Can Guess Neutral Evil Roles + + + Vigilante Can Guess Neutral Killing Roles + + + Vigilante Can Guess Lovers + + + Vigilante Can Guess After Voting + + + Altruist Revive Duration + + + Target's Body Disappears On Beginning Of Revive + + + Show Shielded Player + + + Who Gets Murder Attempt Indicator + + + Shield Breaks On Murder Attempt + + + Show Medic Reports + + + Time Where Medic Will Have Name + + + Time Where Medic Will Have Color Type + + + Druid + + + Shape Cooldown + + + Shape Cooldown Reduction + + + Max Shapes Per Round + + + Can Use Shape Abilities + + + Juggernaut + + + Kill Cooldown Reduction + + + Juggernaut Kills Traitor + + + Juggernaut Kills Vampire + + + Juggernaut Kills Witch + + + Time Lord + + + Rewind Duration + + + Rewind Cooldown + + + Can Rewind During Meetings + + + Custom Roles + + + Custom Role Settings + + + Custom Roles Are In-Game + + + Custom Roles Include Neutral + + + Custom Roles Include Crewmate + + + Custom Options + + + Custom Option Settings + + + Custom Options Are In-Game + + + Custom Options Include Neutral + + + Custom Options Include Crewmate + + + Show Custom Role Hints + + + Show Custom Option Hints + + + Maximum Number Of Roles + + + Maximum Number Of Neutrals + + + Maximum Number Of Crewmates + + + Maximum Number Of Players + + + Minimum Number Of Players + + + Include All Default Roles + + + Include All Default Crewmates + + + Include All Default Neutrals + + + Minimum Number Of Impostors + + + Maximum Number Of Impostors + + + Crewmate + + + Mediate Cooldown + + + Reveal Appearance Of Mediate Target + + + Reveal The Medium To The Mediate Target + + + Who Is Revealed With Mediate + + + Prosecutor Dies When They Exile A Crewmate + + + Swapper Can Button + + + Transport Cooldown + + + Maximum Number Of Transports + + + Transporter Can Use Vitals + + + Amnesiac Gets Arrows Pointing To Dead Bodies + + + Time After Death Arrow Appears + + + Protect Cooldown + + + Protect Duration + + + Kill Cooldown Reset When Protected + + + Maximum Number Of Protects + + + Show Protected Player + + + GA Becomes On Target Dead + + + Target Knows GA Exists + + + GA Knows Targets Role + + + Odds Of Target Being Evil + + + Vest Cooldown + + + Vest Duration + + + Kill Cooldown Reset On Attack + + + Maximum Number Of Vests + + + Observe Cooldown + + + Doomsayer Can Guess Neutral Benign Roles + + + Doomsayer Can Guess Neutral Evil Roles + + + Doomsayer Can Guess Neutral Killing Roles + + + Doomsayer Can Guess Impostor Roles + + + Doomsayer Can Guess After Voting + + + Number Of Doomsayer Kills To Win + + + All Dead + + + Crew + + + Newest Dead + + + Oldest Dead + + + Self+GA + + + Self+Medic + + + Shielded + + + Executioner Become sOn Target Dead + + + Executioner Can Button + + + Executioner Torments Player On Victory + + + Jester Can Button + + + Jester Can Hide In Vents + + + Jester Has Impostor Vision + + + Jester Has Impostor Vision + + + Tâches restantes lorsque le Fantôme peut être cliqué + + + Phantom Spooks Player On Victory + + + Douse Cooldown + + + Nombre maximal de joueurs vivants éteints + + + Arsonist Has Impostor Vision + + + Ignite Cooldown Removed When Arsonist Is LastKiller + + + Juggernaut Initial Kill Cooldown + + + Réduction du temps de recharge du meurtre par meurtre + + + Juggernaut Can Vent + + + Infect Cooldown + + + Pestilence Kill Cooldown + + + Pestilence Can Vent + + + Mimic Cooldown + + + Mimic Duration + + + Hack Cooldown + + + Hack Duration + + + Glitch Kill Cooldown + + + Distance de piratage de Glitch + + + Glitch Can Vent + + + Vampire Bite Cooldown + + + Vampires Have Impostor Vision + + + Vampires Can Vent + + + New Vampire Can Assassinate + + + Nombre maximal de Vampires par partie + + + Peut convertir les rôles neutres bénins + + + Peut convertir les rôles neutres maléfiques + + + Rampage Cooldown + + + Rampage Duration + + + Rampage Kill Cooldown + + + Long + + + Normal + + + Short + + + Recall Cooldown + + + Escapist Can Vent + + + Flash Grenade Cooldown + + + Flash Grenade Duration + + + Flash Radius + + + Indicate Flashed Crewmates + + + Grenadier Can Vent + + + Morphling Cooldown + + + Morphling Duration + + + Swoop Cooldown + + + Swoop Duration + + + Swooper Can Vent + + + Ability Cooldown + + + Ability Duration + + + Sprint Speed + + + Freeze Speed + + + Detonate Delay + + + Max Kills In Detonation + + + Detonate Radius + + + Bomber Can Vent + + + Minimum People Alive When Traitor Can Spawn + + + Traitor Won't Spawn If Any Neutral Killing Is Alive + + + Time It Takes To Fully Charge + + + Time It Takes To Use Full Charge + + + Initial Blackmail Cooldown + + + Mine Cooldown + + + Drag Cooldown + + + Undertaker Drag Speed + + + Undertaker Can Vent + + + Undertaker Can Vent While Dragging + + + Minimum Delay for the Bait Report + + + Maximum Delay for the Bait Report + + + Diseased Kill Multiplier + + + Chill Duration + + + Chill Start Speed + + + Flash Speed + + + Giant Slow + + + Both Lovers Die + + + Loving Impostor Probability + + + Neutral Roles Can Be Lovers + + + Kill Cooldown Bonus + + + Increased Kill Cooldown When 2+ Imps + + + Radiate Range + + + Radiate Cooldown + + + Radiate SeeDelay + + + Radiate Uses To See + + + Radiate Succeed Chance + + + Examine Cooldown + + + Show Detective Reports + + + Time WhereDetective Will Have Role + + + Time Where Detective Will Have Faction + + + Can Detect Last Killer + + + All Any + + + Always + + + Cancel + + + Classic + + + Emergency + + + Killing Only + + + Load Custom Settings + + + Loading + + + Maximum Number Of Fixes + + + No + + + Save Custom Settings + + + Self + + + Slot + + + Body Report: The killer appears to be a Crewmate! (Killed {0}s ago) + + + Body Report: The killer appears to be an Impostor! (Killed {0}s ago) + + + Body Report: The killer appears to be a Neutral Role! (Killed {0}s ago) + + + Body Report: The killer appears to be a {0}! (Killed {1}s ago) + + + Body Report: The kill appears to have been a suicide! (Killed {0}s ago) + + + Body Report: The corpse is too old to gain information from. (Killed {0}s ago) + + + Imp + + + Neut + + + Arsonist Wins! + + + The corpse is too old to gain information from. (Killed {0}s ago + + + Body Report: The killer appears to be {0}! (Killed {1}s ago) + + + Body Report: The killer appears to be a {1} color. (Killed {0}s ago) + + + Doomsayer Wins! + + + Executioner Wins! + + + Jester Wins! + + + Juggernaut Wins! + + + Only Neutral Roles Were Left + + + No players entered any of your traps + + + Not enough players triggered your traps + + + You observe that {0} appears to be roleless + + + You observe that {0} has an altered perception of reality + + + You observe that {0} has a trick up their sleeve + + + You observe that {0} has an insight for private information + + + You observe that {0} has an unusual obsession with dead bodies + + + You observe that {0} hides to guard themself or others + + + You observe that {0} is capable of performing relentless attacks + + + You observe that {0} is well trained in hunting down prey + + + You observe that {0} spreads fear among the group + + + Only Neutral Roles Were Left + + + or + + + Pestilence Wins! + + + Phantom Wins! + + + Plaguebearer Wins! + + + {0} confesses to knowing that there are no more evil players! + + + {0} confesses to knowing that they, {1} and/or {2} is evil! + + + Prosecute + + + Roles caught in your trap + + + Survivor Only Win! + + + The Glitch Wins! + + + Too few people alive to receive a confessional + + + Vampires Win! + + + Werewolf Wins! + + + YOU ARE BLACKMAILED + + + Your confessor failed to survive so you received no confession + + \ No newline at end of file diff --git a/source/TownOfUs.csproj b/source/TownOfUs.csproj index 52c2c0805..d49110c6f 100644 --- a/source/TownOfUs.csproj +++ b/source/TownOfUs.csproj @@ -26,7 +26,25 @@ - - + + + + + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + PublicResXFileCodeGenerator + \ No newline at end of file