diff --git a/MunitionsExpert/MunitionsExpert.cs b/MunitionsExpert/MunitionsExpert.cs index 36e1f74..0a59108 100644 --- a/MunitionsExpert/MunitionsExpert.cs +++ b/MunitionsExpert/MunitionsExpert.cs @@ -68,15 +68,15 @@ internal static class IconCache internal static class AmmoTemplateExtensions { - private static readonly float MaxMalfMisfireChance = (float) - typeof(AmmoTemplate).GetField("MaxMalfMisfireChance", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null); - - private static readonly float MaxMalfFeedChance = (float) - typeof(AmmoTemplate).GetField("MaxMalfFeedChance", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null); - private static readonly string[] MalfChancesKeys = (string[]) typeof(AmmoTemplate).GetField("MalfChancesKeys", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null); + private static readonly FieldInfo MaxMalfMisfireChance = + typeof(AmmoTemplate).GetField("MaxMalfMisfireChance", BindingFlags.NonPublic | BindingFlags.Static); + + private static readonly FieldInfo MaxMalfFeedChance = + typeof(AmmoTemplate).GetField("MaxMalfFeedChance", BindingFlags.NonPublic | BindingFlags.Static); + private static readonly FieldInfo CachedQualitiesField = typeof(AmmoTemplate).GetField("_cachedQualities", BindingFlags.NonPublic | BindingFlags.Instance); @@ -138,20 +138,14 @@ internal static class AmmoTemplateExtensions Base = () => instance.MalfMisfireChance, StringValue = () => { - string value; - if (instance.MalfMisfireChance <= 0f) - value = MalfChancesKeys[0]; - else if (instance.MalfMisfireChance < 3f * MaxMalfMisfireChance / 7f) - value = MalfChancesKeys[1]; - else if (instance.MalfMisfireChance < 4f * MaxMalfMisfireChance / 7f) - value = MalfChancesKeys[2]; - else if (instance.MalfMisfireChance < 5f * MaxMalfMisfireChance / 7f) - value = MalfChancesKeys[3]; - else if (instance.MalfMisfireChance < 6f * MaxMalfMisfireChance / 7f) - value = MalfChancesKeys[4]; - else - value = MalfChancesKeys[5]; - return value.Localized(); + float maxMalfMisfireChance = (float)MaxMalfMisfireChance.GetValue(null); + int index = instance.MalfMisfireChance <= 0f ? 0 + : instance.MalfMisfireChance < 3f * maxMalfMisfireChance / 7f ? 1 + : instance.MalfMisfireChance < 4f * maxMalfMisfireChance / 7f ? 2 + : instance.MalfMisfireChance < 5f * maxMalfMisfireChance / 7f ? 3 + : instance.MalfMisfireChance < 6f * maxMalfMisfireChance / 7f ? 4 + : 5; + return MalfChancesKeys[index].Localized(); }, DisplayType = () => EItemAttributeDisplayType.Compact, }); @@ -162,20 +156,14 @@ internal static class AmmoTemplateExtensions Base = () => instance.MalfFeedChance, StringValue = () => { - string value; - if (instance.MalfFeedChance <= 0f) - value = MalfChancesKeys[0]; - else if (instance.MalfFeedChance < 1f * MaxMalfFeedChance / 7f) - value = MalfChancesKeys[1]; - else if (instance.MalfFeedChance < 3f * MaxMalfFeedChance / 7f) - value = MalfChancesKeys[2]; - else if (instance.MalfFeedChance < 5f * MaxMalfFeedChance / 7f) - value = MalfChancesKeys[3]; - else if (instance.MalfFeedChance < 6f * MaxMalfFeedChance / 7f) - value = MalfChancesKeys[4]; - else - value = MalfChancesKeys[5]; - return value.Localized(); + float maxMalfFeedChance = (float)MaxMalfFeedChance.GetValue(null); + int index = instance.MalfFeedChance <= 0f ? 0 + : instance.MalfFeedChance < 1f * maxMalfFeedChance / 7f ? 1 + : instance.MalfFeedChance < 3f * maxMalfFeedChance / 7f ? 2 + : instance.MalfFeedChance < 5f * maxMalfFeedChance / 7f ? 3 + : instance.MalfFeedChance < 6f * maxMalfFeedChance / 7f ? 4 + : 5; + return MalfChancesKeys[index].Localized(); }, DisplayType = () => EItemAttributeDisplayType.Compact, }); diff --git a/MunitionsExpert/MunitionsExpert.csproj b/MunitionsExpert/MunitionsExpert.csproj index 0575948..8a37dc7 100644 --- a/MunitionsExpert/MunitionsExpert.csproj +++ b/MunitionsExpert/MunitionsExpert.csproj @@ -3,7 +3,7 @@ net472 IcyClawz.MunitionsExpert - 1.4.1 + 1.4.2 IcyClawz.MunitionsExpert latest diff --git a/MunitionsExpert/Plugin.cs b/MunitionsExpert/Plugin.cs index 4b49375..45f9dcf 100644 --- a/MunitionsExpert/Plugin.cs +++ b/MunitionsExpert/Plugin.cs @@ -13,7 +13,7 @@ using UnityEngine.UI; namespace IcyClawz.MunitionsExpert; -[BepInPlugin("com.IcyClawz.MunitionsExpert", "IcyClawz.MunitionsExpert", "1.4.1")] +[BepInPlugin("com.IcyClawz.MunitionsExpert", "IcyClawz.MunitionsExpert", "1.4.2")] public class Plugin : BaseUnityPlugin { private static ConfigEntry ColorizeSwitch { get; set; }