diff --git a/Resources/Lang/en_US.json b/Resources/Lang/en_US.json index 3d591fe61..0254f65fb 100644 --- a/Resources/Lang/en_US.json +++ b/Resources/Lang/en_US.json @@ -1545,6 +1545,7 @@ "SansDefaultKillCooldown": "Starting kill cooldown", "SansReduceKillCooldown": "Reduce kill cooldown by", "SansMinKillCooldown": "Minimum kill cooldown", + "SansShowProgressText": "Show kill cooldown reduction below the name", "BomberRadius": "Bomb radius (5x is about half a Cafeteria)", "NotifyGodAlive": "Inform players at meetings that God is still alive", "God.KnowInfo": "God knows players'", diff --git a/Roles/Impostor/Camouflager.cs b/Roles/Impostor/Camouflager.cs index 91810f3d9..7031c5c45 100644 --- a/Roles/Impostor/Camouflager.cs +++ b/Roles/Impostor/Camouflager.cs @@ -37,7 +37,7 @@ public class Camouflager : RoleBase .SetParent(Options.CustomRoleSpawnChances[CustomRoles.Camouflager]) .SetValueFormat(OptionFormat.Times); - DoesntSpawnOnFungle = new BooleanOptionItem(Id + 6, "DoesntSpawnOnFungle", false, TabGroup.ImpostorRoles) + DoesntSpawnOnFungle = new BooleanOptionItem(Id + 6, "DoesntSpawnOnFungle", true, TabGroup.ImpostorRoles) .SetParent(Options.CustomRoleSpawnChances[CustomRoles.Camouflager]); } diff --git a/Roles/Impostor/Sans.cs b/Roles/Impostor/Sans.cs index 9706f885f..12d9996ff 100644 --- a/Roles/Impostor/Sans.cs +++ b/Roles/Impostor/Sans.cs @@ -16,11 +16,13 @@ public class Sans : RoleBase private static OptionItem DefaultKillCooldown; private static OptionItem ReduceKillCooldown; private static OptionItem MinKillCooldown; + private static OptionItem ShowProgressText; public static OptionItem BardChance; private bool CanVent; private float DefaultKCD; private bool HasImpostorVision; + private bool ShowProgressTxt; private float MinKCD; private float NowCooldown; @@ -36,16 +38,22 @@ public class Sans : RoleBase { SetupRoleOptions(Id, TabGroup.ImpostorRoles, CustomRoles.Sans); - DefaultKillCooldown = new FloatOptionItem(Id + 10, "SansDefaultKillCooldown", new(0f, 180f, 0.5f), 30f, TabGroup.ImpostorRoles).SetParent(CustomRoleSpawnChances[CustomRoles.Sans]) + DefaultKillCooldown = new FloatOptionItem(Id + 10, "SansDefaultKillCooldown", new(0f, 180f, 0.5f), 30f, TabGroup.ImpostorRoles) + .SetParent(CustomRoleSpawnChances[CustomRoles.Sans]) .SetValueFormat(OptionFormat.Seconds); - ReduceKillCooldown = new FloatOptionItem(Id + 11, "SansReduceKillCooldown", new(0f, 30f, 0.5f), 3.5f, TabGroup.ImpostorRoles).SetParent(CustomRoleSpawnChances[CustomRoles.Sans]) + ReduceKillCooldown = new FloatOptionItem(Id + 11, "SansReduceKillCooldown", new(0f, 30f, 0.5f), 3.5f, TabGroup.ImpostorRoles) + .SetParent(CustomRoleSpawnChances[CustomRoles.Sans]) .SetValueFormat(OptionFormat.Seconds); - MinKillCooldown = new FloatOptionItem(Id + 12, "SansMinKillCooldown", new(0f, 30f, 0.5f), 10f, TabGroup.ImpostorRoles).SetParent(CustomRoleSpawnChances[CustomRoles.Sans]) + MinKillCooldown = new FloatOptionItem(Id + 12, "SansMinKillCooldown", new(0f, 30f, 0.5f), 10f, TabGroup.ImpostorRoles) + .SetParent(CustomRoleSpawnChances[CustomRoles.Sans]) .SetValueFormat(OptionFormat.Seconds); - BardChance = new IntegerOptionItem(Id + 13, "BardChance", new(0, 100, 5), 0, TabGroup.ImpostorRoles) + ShowProgressText = new BooleanOptionItem(Id + 13, "SansShowProgressText", false, TabGroup.ImpostorRoles) + .SetParent(CustomRoleSpawnChances[CustomRoles.Sans]); + + BardChance = new IntegerOptionItem(Id + 14, "BardChance", new(0, 100, 5), 0, TabGroup.ImpostorRoles) .SetParent(CustomRoleSpawnChances[CustomRoles.Sans]) .SetValueFormat(OptionFormat.Percent); } @@ -68,6 +76,7 @@ public class Sans : RoleBase DefaultKCD = DefaultKillCooldown.GetFloat(); ReduceKCD = ReduceKillCooldown.GetFloat(); MinKCD = MinKillCooldown.GetFloat(); + ShowProgressTxt = ShowProgressText.GetBool(); ResetKCDOnMeeting = false; HasImpostorVision = true; CanVent = true; @@ -76,6 +85,7 @@ public class Sans : RoleBase DefaultKCD = Juggernaut.DefaultKillCooldown.GetFloat(); ReduceKCD = Juggernaut.ReduceKillCooldown.GetFloat(); MinKCD = Juggernaut.MinKillCooldown.GetFloat(); + ShowProgressTxt = Juggernaut.ShowProgressText.GetBool(); ResetKCDOnMeeting = false; HasImpostorVision = Juggernaut.HasImpostorVision.GetBool(); CanVent = Juggernaut.CanVent.GetBool(); @@ -84,6 +94,7 @@ public class Sans : RoleBase DefaultKCD = Reckless.DefaultKillCooldown.GetFloat(); ReduceKCD = Reckless.ReduceKillCooldown.GetFloat(); MinKCD = Reckless.MinKillCooldown.GetFloat(); + ShowProgressTxt = Reckless.ShowProgressText.GetBool(); ResetKCDOnMeeting = true; HasImpostorVision = Reckless.HasImpostorVision.GetBool(); CanVent = Reckless.CanVent.GetBool(); @@ -131,6 +142,8 @@ public class Sans : RoleBase public override string GetProgressText(byte playerId, bool comms) { + if (!ShowProgressTxt) return ""; + double reduction = Math.Round(DefaultKCD - NowCooldown, 1); string nowKCD = string.Format(Translator.GetString("KCD"), Math.Round(NowCooldown, 1)); return $"{base.GetProgressText(playerId, comms)} <#ffffff>- {nowKCD} <#8B0000>(-{reduction}s)"; diff --git a/Roles/Neutral/Juggernaut.cs b/Roles/Neutral/Juggernaut.cs index 7bf476ee4..747654b39 100644 --- a/Roles/Neutral/Juggernaut.cs +++ b/Roles/Neutral/Juggernaut.cs @@ -11,6 +11,7 @@ public class Juggernaut : RoleBase public static OptionItem MinKillCooldown; public static OptionItem HasImpostorVision; public static OptionItem CanVent; + public static OptionItem ShowProgressText; public override bool IsEnable => false; @@ -35,6 +36,9 @@ public class Juggernaut : RoleBase CanVent = new BooleanOptionItem(Id + 14, "CanVent", true, TabGroup.NeutralRoles) .SetParent(CustomRoleSpawnChances[CustomRoles.Juggernaut]); + + ShowProgressText = new BooleanOptionItem(Id + 15, "SansShowProgressText", false, TabGroup.NeutralRoles) + .SetParent(CustomRoleSpawnChances[CustomRoles.Juggernaut]); } public override void Init() { } diff --git a/Roles/Neutral/Reckless.cs b/Roles/Neutral/Reckless.cs index 07e79eaa8..5cdb0b05a 100644 --- a/Roles/Neutral/Reckless.cs +++ b/Roles/Neutral/Reckless.cs @@ -11,6 +11,7 @@ public class Reckless : RoleBase public static OptionItem MinKillCooldown; public static OptionItem HasImpostorVision; public static OptionItem CanVent; + public static OptionItem ShowProgressText; public override bool IsEnable => false; @@ -18,17 +19,26 @@ public class Reckless : RoleBase { SetupRoleOptions(Id, TabGroup.NeutralRoles, CustomRoles.Reckless); - DefaultKillCooldown = new FloatOptionItem(Id + 10, "SansDefaultKillCooldown", new(0f, 180f, 0.5f), 22.5f, TabGroup.NeutralRoles).SetParent(CustomRoleSpawnChances[CustomRoles.Reckless]) + DefaultKillCooldown = new FloatOptionItem(Id + 10, "SansDefaultKillCooldown", new(0f, 180f, 0.5f), 22.5f, TabGroup.NeutralRoles) + .SetParent(CustomRoleSpawnChances[CustomRoles.Reckless]) .SetValueFormat(OptionFormat.Seconds); - ReduceKillCooldown = new FloatOptionItem(Id + 11, "SansReduceKillCooldown", new(0f, 30f, 0.5f), 5f, TabGroup.NeutralRoles).SetParent(CustomRoleSpawnChances[CustomRoles.Reckless]) + ReduceKillCooldown = new FloatOptionItem(Id + 11, "SansReduceKillCooldown", new(0f, 30f, 0.5f), 5f, TabGroup.NeutralRoles) + .SetParent(CustomRoleSpawnChances[CustomRoles.Reckless]) .SetValueFormat(OptionFormat.Seconds); - MinKillCooldown = new FloatOptionItem(Id + 12, "SansMinKillCooldown", new(0f, 30f, 0.5f), 10f, TabGroup.NeutralRoles).SetParent(CustomRoleSpawnChances[CustomRoles.Reckless]) + MinKillCooldown = new FloatOptionItem(Id + 12, "SansMinKillCooldown", new(0f, 30f, 0.5f), 10f, TabGroup.NeutralRoles) + .SetParent(CustomRoleSpawnChances[CustomRoles.Reckless]) .SetValueFormat(OptionFormat.Seconds); - - HasImpostorVision = new BooleanOptionItem(Id + 13, "ImpostorVision", true, TabGroup.NeutralRoles).SetParent(CustomRoleSpawnChances[CustomRoles.Reckless]); - CanVent = new BooleanOptionItem(Id + 14, "CanVent", true, TabGroup.NeutralRoles).SetParent(CustomRoleSpawnChances[CustomRoles.Reckless]); + + HasImpostorVision = new BooleanOptionItem(Id + 13, "ImpostorVision", true, TabGroup.NeutralRoles) + .SetParent(CustomRoleSpawnChances[CustomRoles.Reckless]); + + CanVent = new BooleanOptionItem(Id + 14, "CanVent", true, TabGroup.NeutralRoles) + .SetParent(CustomRoleSpawnChances[CustomRoles.Reckless]); + + ShowProgressText = new BooleanOptionItem(Id + 15, "SansShowProgressText", false, TabGroup.NeutralRoles) + .SetParent(CustomRoleSpawnChances[CustomRoles.Reckless]); } public override void Init() { }