From 794c7629492ba05847edc28a42a1f1c632c71ede Mon Sep 17 00:00:00 2001 From: Atony <75191600+AtonyGit@users.noreply.github.com> Date: Mon, 24 Aug 2026 16:18:39 -0500 Subject: [PATCH] Set role amount to 0 if chance is 0 --- MiraAPI/Patches/Options/RoleSettingMenuPatches.cs | 4 ++++ MiraAPI/Roles/ICustomRole.cs | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/MiraAPI/Patches/Options/RoleSettingMenuPatches.cs b/MiraAPI/Patches/Options/RoleSettingMenuPatches.cs index c66ea52..c5e63be 100644 --- a/MiraAPI/Patches/Options/RoleSettingMenuPatches.cs +++ b/MiraAPI/Patches/Options/RoleSettingMenuPatches.cs @@ -476,6 +476,10 @@ public static class RoleSettingMenuPatches if (role.Configuration.CanModifyChance) { role.SetChance(roleSetting.RoleChance); + if (roleSetting.RoleChance == 0 && role.Configuration.MaxRoleCount != 0) + { + role.SetCount(0); + } } } catch (Exception e) diff --git a/MiraAPI/Roles/ICustomRole.cs b/MiraAPI/Roles/ICustomRole.cs index 33bbd7e..f3f13d1 100644 --- a/MiraAPI/Roles/ICustomRole.cs +++ b/MiraAPI/Roles/ICustomRole.cs @@ -128,6 +128,10 @@ public interface ICustomRole : IOptionable if (presetConfig.TryGetEntry(ChanceConfigDefinition, out ConfigEntry chanceEntry)) { SetChance(chanceEntry.Value); + if (chanceEntry.Value == 0) + { + SetCount(0); + } } } @@ -156,6 +160,10 @@ public interface ICustomRole : IOptionable /// The role count option. public virtual int? GetCount() { + if (ParentMod.PluginConfig.TryGetEntry(ChanceConfigDefinition, out ConfigEntry entry2) && entry2.Value == 0) + { + return 0; + } if (ParentMod.PluginConfig.TryGetEntry(NumConfigDefinition, out ConfigEntry entry)) { return Mathf.Clamp(entry.Value, 0, Configuration.MaxRoleCount);