using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using HarmonyLib; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("HowToFishMod")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("HowToFishMod")] [assembly: AssemblyCopyright("Copyright © 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("54fa6bec-07e7-427d-954f-162d98439276")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: AssemblyVersion("1.0.0.0")] namespace HowToFishMod; [BepInPlugin("com.peep.howtofish.killscorebonuses", "Kill Score Bonuses", "1.0.0")] public class Plugin : BaseUnityPlugin { public static ConfigEntry EnableAlways360; public static ConfigEntry EnableAlwaysDogfight; public static ConfigEntry EnableAlwaysEndangered; public static ConfigEntry EnableAlwaysFinally; public static ConfigEntry EnableAlwaysHeadshot; public static ConfigEntry EnableAlwaysImpressive; public static ConfigEntry EnableAlwaysKillsteal; public static ConfigEntry EnableAlwaysExplosion; public static ConfigEntry EnableAlwaysLastBullet; public static ConfigEntry EnableAlwaysLongshot; public static ConfigEntry EnableAlwaysPentakill; public static ConfigEntry EnableAlwaysNoob; public static ConfigEntry EnableAlwaysOneShotOneKill; public static ConfigEntry EnableAlwaysOverkill; public static ConfigEntry EnableAlwaysPointBlank; public static ConfigEntry EnableAlwaysNoScope; private void Awake() { //IL_0206: Unknown result type (might be due to invalid IL or missing references) //IL_020c: Expected O, but got Unknown EnableAlways360 = ((BaseUnityPlugin)this).Config.Bind("General", "EnableAlways360", true, "Guarantees 360 bonus."); EnableAlwaysDogfight = ((BaseUnityPlugin)this).Config.Bind("General", "EnableAlwaysDogfight", true, "Guarantees Dogfight aerial bonus."); EnableAlwaysEndangered = ((BaseUnityPlugin)this).Config.Bind("General", "EnableAlwaysEndangered", true, "Guarantees Endangered bonus."); EnableAlwaysFinally = ((BaseUnityPlugin)this).Config.Bind("General", "EnableAlwaysFinally", true, "Guarantees Finally bonus."); EnableAlwaysHeadshot = ((BaseUnityPlugin)this).Config.Bind("General", "EnableAlwaysHeadshot", true, "Guarantees Headshot bonus."); EnableAlwaysImpressive = ((BaseUnityPlugin)this).Config.Bind("General", "EnableAlwaysImpressive", true, "Guarantees Impressive bonus."); EnableAlwaysKillsteal = ((BaseUnityPlugin)this).Config.Bind("General", "EnableAlwaysKillsteal", true, "Guarantees Killsteal bonus."); EnableAlwaysExplosion = ((BaseUnityPlugin)this).Config.Bind("General", "EnableAlwaysExplosion", true, "Guarantees Explosion bonus."); EnableAlwaysLastBullet = ((BaseUnityPlugin)this).Config.Bind("General", "EnableAlwaysLastBullet", true, "Guarantees LastBullet bonus."); EnableAlwaysLongshot = ((BaseUnityPlugin)this).Config.Bind("General", "EnableAlwaysLongshot", true, "Guarantees Longshot bonus."); EnableAlwaysPentakill = ((BaseUnityPlugin)this).Config.Bind("General", "EnableAlwaysPentakill", true, "Guarantees Pentakill bonus."); EnableAlwaysNoob = ((BaseUnityPlugin)this).Config.Bind("General", "EnableAlwaysNoob", true, "Guarantees Noob bonus."); EnableAlwaysOneShotOneKill = ((BaseUnityPlugin)this).Config.Bind("General", "EnableAlwaysOneShotOneKill", true, "Guarantees OneShotOneKill bonus."); EnableAlwaysOverkill = ((BaseUnityPlugin)this).Config.Bind("General", "EnableAlwaysOverkill", true, "Guarantees Overkill bonus."); EnableAlwaysPointBlank = ((BaseUnityPlugin)this).Config.Bind("General", "EnableAlwaysPointBlank", true, "Guarantees PointBlank bonus."); EnableAlwaysNoScope = ((BaseUnityPlugin)this).Config.Bind("General", "EnableAlwaysNoScope", true, "Guarantees NoScope bonus."); Harmony val = new Harmony("com.peep.howtofish.killscorebonuses"); val.PatchAll(Assembly.GetExecutingAssembly()); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Always 360 Bonus Mod Loaded!"); } } [HarmonyPatch(typeof(KillScoreCalculator), "Check360")] public class Patch_KillScoreCalculator_Check360 { [HarmonyPrefix] private static bool Prefix(ref bool ____did360, ref List ____bonuses) { //IL_002b: Unknown result type (might be due to invalid IL or missing references) if (!Plugin.EnableAlways360.Value) { return true; } ____did360 = true; ____bonuses.Add(new Bonus(LocalizationManager.ThreeSixtyLocalized.GetLocalizedString(), 1.5f)); return false; } } [HarmonyPatch(typeof(KillScoreCalculator), "CheckAerials")] public class Patch_KillScoreCalculator_CheckAerials { [HarmonyPrefix] private static bool Prefix(ref List ____bonuses) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) if (!Plugin.EnableAlwaysDogfight.Value) { return true; } ____bonuses.Add(new Bonus(LocalizationManager.DogfightLocalized.GetLocalizedString(), 1.5f)); return false; } } [HarmonyPatch(typeof(KillScoreCalculator), "CheckEndangered")] public class Patch_KillScoreCalculator_CheckEndangered { [HarmonyPrefix] private static bool Prefix(ref List ____bonuses) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) if (!Plugin.EnableAlwaysEndangered.Value) { return true; } ____bonuses.Add(new Bonus(LocalizationManager.EndangeredLocalized.GetLocalizedString(), 1.25f)); return false; } } [HarmonyPatch(typeof(KillScoreCalculator), "CheckFinally")] public class Patch_KillScoreCalculator_CheckFinally { [HarmonyPrefix] private static bool Prefix(ref List ____bonuses) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) if (!Plugin.EnableAlwaysFinally.Value) { return true; } ____bonuses.Add(new Bonus(LocalizationManager.FinallyLocalized.GetLocalizedString(), 1.1f)); return false; } } [HarmonyPatch(typeof(KillScoreCalculator), "CheckHeadshot")] public class Patch_KillScoreCalculator_CheckHeadshot { [HarmonyPrefix] private static bool Prefix(ref List ____bonuses) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) if (!Plugin.EnableAlwaysHeadshot.Value) { return true; } ____bonuses.Add(new Bonus(LocalizationManager.HeadshotLocalized.GetLocalizedString(), 1.25f)); return false; } } [HarmonyPatch(typeof(KillScoreCalculator), "CheckImpressive")] public class Patch_KillScoreCalculator_CheckImpressive { [HarmonyPrefix] private static bool Prefix(ref List ____bonuses) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) if (!Plugin.EnableAlwaysImpressive.Value) { return true; } ____bonuses.Add(new Bonus(LocalizationManager.ImpressiveLocalized.GetLocalizedString(), 2f)); return false; } } [HarmonyPatch(typeof(KillScoreCalculator), "CheckKillsteal")] public class Patch_KillScoreCalculator_CheckKillsteal { [HarmonyPrefix] private static bool Prefix(ref List ____bonuses) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) if (!Plugin.EnableAlwaysKillsteal.Value) { return true; } ____bonuses.Add(new Bonus(LocalizationManager.KillstealLocalized.GetLocalizedString(), 1.3f)); return false; } } [HarmonyPatch(typeof(KillScoreCalculator), "CheckKillType")] public class Patch_KillScoreCalculator_CheckExplosion { [HarmonyPrefix] private static bool Prefix(ref List ____bonuses) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) if (!Plugin.EnableAlwaysExplosion.Value) { return true; } ____bonuses.Add(new Bonus(LocalizationManager.ExplosionLocalized.GetLocalizedString(), 1.25f)); return false; } } [HarmonyPatch(typeof(KillScoreCalculator), "CheckLastBullet")] public class Patch_KillScoreCalculator_CheckLastBullet { [HarmonyPrefix] private static bool Prefix(ref List ____bonuses) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) if (!Plugin.EnableAlwaysLastBullet.Value) { return true; } ____bonuses.Add(new Bonus(LocalizationManager.LastBulletLocalized.GetLocalizedString(), 1.25f)); return false; } } [HarmonyPatch(typeof(KillScoreCalculator), "CheckLongshot")] public class Patch_KillScoreCalculator_CheckLongshot { [HarmonyPrefix] private static bool Prefix(ref List ____bonuses) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) if (!Plugin.EnableAlwaysLongshot.Value) { return true; } ____bonuses.Add(new Bonus(LocalizationManager.LongshotLocalized.GetLocalizedString(), 1.3f)); return false; } } [HarmonyPatch(typeof(KillScoreCalculator), "CheckMultikill")] public class Patch_KillScoreCalculator_CheckMultikill { [HarmonyPrefix] private static bool Prefix(ref List ____bonuses) { //IL_0037: Unknown result type (might be due to invalid IL or missing references) if (!Plugin.EnableAlwaysPentakill.Value) { return true; } ____bonuses.Add(new Bonus(LocalizationManager.PentaKillLocalized.GetLocalizedString(), Mathf.Lerp(1f, 1.5f, 0.5f))); return false; } } [HarmonyPatch(typeof(KillScoreCalculator), "CheckNoob")] public class Patch_KillScoreCalculator_CheckNoob { [HarmonyPrefix] private static bool Prefix(ref List ____bonuses) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) if (!Plugin.EnableAlwaysNoob.Value) { return true; } ____bonuses.Add(new Bonus(LocalizationManager.NoobKillLocalized.GetLocalizedString(), 1.01f)); return false; } } [HarmonyPatch(typeof(KillScoreCalculator), "CheckOneShotOneKill")] public class Patch_KillScoreCalculator_CheckOneShotOneKill { [HarmonyPrefix] private static bool Prefix(ref List ____bonuses) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) if (!Plugin.EnableAlwaysOneShotOneKill.Value) { return true; } ____bonuses.Add(new Bonus(LocalizationManager.OneShotOneKillLocalized.GetLocalizedString(), 1.25f)); return false; } } [HarmonyPatch(typeof(KillScoreCalculator), "CheckOverkill")] public class Patch_KillScoreCalculator_CheckOverkill { [HarmonyPrefix] private static bool Prefix(ref List ____bonuses) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) if (!Plugin.EnableAlwaysOverkill.Value) { return true; } ____bonuses.Add(new Bonus(LocalizationManager.OverkillLocalized.GetLocalizedString(), 1.25f)); return false; } } [HarmonyPatch(typeof(KillScoreCalculator), "CheckPointBlank")] public class Patch_KillScoreCalculator_CheckPointBlank { [HarmonyPrefix] private static bool Prefix(ref List ____bonuses) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) if (!Plugin.EnableAlwaysPointBlank.Value) { return true; } ____bonuses.Add(new Bonus(LocalizationManager.PointBlankLocalized.GetLocalizedString(), 1.1f)); return false; } } [HarmonyPatch(typeof(KillScoreCalculator), "CheckScope")] public class Patch_KillScoreCalculator_CheckNoScope { [HarmonyPrefix] private static bool Prefix(ref List ____bonuses) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (!Plugin.EnableAlwaysNoScope.Value) { return true; } ____bonuses.Add(new Bonus(LocalizationManager.NoScopeLocalized.GetLocalizedString(), 1.2f)); ____bonuses.Add(new Bonus(LocalizationManager.QuickScopeLocalized.GetLocalizedString(), 1.1f)); return false; } }