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 Receiver2; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyTitle("GoldenGuns")] [assembly: AssemblyDescription("Use golden guns in RankedCampaign and/or Classic modes")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyCompany("Luther7718")] [assembly: AssemblyProduct("Receiver 2")] [assembly: AssemblyCopyright("Copyleft 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("0bb8f367-e8d2-4fa4-a3dd-ecc0bc58efff")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.6", FrameworkDisplayName = ".NET Framework 4.6")] [assembly: AssemblyVersion("1.0.0.0")] namespace GoldenGuns; [BepInPlugin("GoldenGuns", "GoldenGuns", "2.0.0")] public class Plugin : BaseUnityPlugin { private static Dictionary gunmap = new Dictionary { { "wolfire.smith_and_wesson_model_10", "wolfire.smith_and_wesson_model_10_gold" }, { "wolfire.colt_detective", "wolfire.colt_detective_gold" }, { "wolfire.colt_saa", "wolfire.colt_saa_gold" }, { "wolfire.hi_point_c9", "wolfire.hi_point_c9_gold" }, { "wolfire.glock_17", "wolfire.glock_17_gold" }, { "wolfire.beretta_m9", "wolfire.beretta_m9_gold" }, { "wolfire.sig226", "wolfire.sig226_gold" }, { "wolfire.desert_eagle", "wolfire.desert_eagle_gold" }, { "wolfire.colt_m1911", "wolfire.colt_m1911_gold" } }; private static Dictionary challengemap = new Dictionary { { "wolfire.smith_and_wesson_model_10", "wolfire.model_10_base_gold" }, { "wolfire.colt_detective", "wolfire.colt_detective_base_gold" }, { "wolfire.colt_saa", "wolfire.colt_saa_base_gold" }, { "wolfire.hi_point_c9", "wolfire.hi_point_c9_base_gold" }, { "wolfire.glock_17", "wolfire.glock17_base_gold" }, { "wolfire.beretta_m9", "wolfire.beretta_m9_base_gold" }, { "wolfire.sig226", "wolfire.sig226_base_gold" }, { "wolfire.desert_eagle", "wolfire.desert_eagle_base_gold" }, { "wolfire.colt_m1911", "wolfire.colt_m1911_base_gold" } }; private static Dictionary magmap = new Dictionary { { "wolfire.hi_point_c9", "wolfire.hi_point_c9_std_cap_mag_gold" }, { "wolfire.glock_17", "wolfire.glock_17_std_cap_mag_gold" }, { "wolfire.beretta_m9", "wolfire.beretta_std_cap_mag_gold" }, { "wolfire.sig226", "wolfire.p226_std_cap_mag_gold" }, { "wolfire.desert_eagle", "wolfire.desert_eagle_std_cap_mag_gold" }, { "wolfire.colt_m1911", "wolfire.colt_1911_std_cap_mag_gold" } }; private static ConfigEntry enableRankedCampaign; private static ConfigEntry enableClassic; private void Awake() { ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin GoldSpawner is loaded!"); enableRankedCampaign = ((BaseUnityPlugin)this).Config.Bind("General", "Enable in RankedCampaign", true, "Replace guns with gold versions in The Dreaming."); enableClassic = ((BaseUnityPlugin)this).Config.Bind("General", "Enable in Classic", true, "Replace guns with gold versions in Classic Mode."); Harmony.CreateAndPatchAll(((object)this).GetType(), (string)null); } [HarmonyPatch(typeof(ReceiverCoreScript), "SpawnPlayer")] [HarmonyPrefix] public static void OnSpawnPlayer(ReceiverCoreScript __instance) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Invalid comparison between Unknown and I4 //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Invalid comparison between Unknown and I4 //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Invalid comparison between Unknown and I4 //IL_00d8: Unknown result type (might be due to invalid IL or missing references) GameMode gameMode = __instance.game_mode.GetGameMode(); bool num = enableRankedCampaign.Value && (int)gameMode == 2; bool flag = enableClassic.Value && (int)gameMode == 4; if (!num && !flag) { return; } PlayerLoadout currentLoadout = __instance.CurrentLoadout; string gun_internal_name = currentLoadout.gun_internal_name; if (!gunmap.ContainsKey(gun_internal_name)) { return; } string text = challengemap[gun_internal_name]; if (!__instance.MallData.IsItemGroupUnlocked(text)) { return; } currentLoadout.gun_internal_name = gunmap[gun_internal_name]; if (!magmap.ContainsKey(gun_internal_name)) { return; } string internal_name = magmap[gun_internal_name]; foreach (PlayerLoadoutEquipment item in currentLoadout.equipment) { if ((int)item.equipment_type == 0 && (int)item.magazine_class == 1) { item.internal_name = internal_name; item.magazine_class = (MagazineClass)4; } } } }