Decompiled source of WeaponPronouns v1.0.0

NameAndPronounsForWeapons.dll

Decompiled 3 days ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using PluginConfig.API;
using PluginConfig.API.Decorators;
using PluginConfig.API.Fields;
using TMPro;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("NameAndPronounsForWeapons")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("Weapon Pronouns")]
[assembly: AssemblyTitle("NameAndPronounsForWeapons")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace NameAndPronounsForWeapons
{
	public static class NPWConfig
	{
		private static PluginConfigurator config;

		public static BoolField wrappingEnabled;

		public static Dictionary<string, StringField[]> weaponPairs = new Dictionary<string, StringField[]>();

		private static string directory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

		public static void Init()
		{
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0058: Expected O, but got Unknown
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Expected O, but got Unknown
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_008f: Expected O, but got Unknown
			//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Expected O, but got Unknown
			//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cf: Expected O, but got Unknown
			//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f0: Expected O, but got Unknown
			//IL_010a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0111: Expected O, but got Unknown
			//IL_012b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0132: Expected O, but got Unknown
			//IL_01a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a7: Expected O, but got Unknown
			//IL_01c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c8: Expected O, but got Unknown
			//IL_01e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e9: Expected O, but got Unknown
			//IL_0203: Unknown result type (might be due to invalid IL or missing references)
			//IL_020a: Expected O, but got Unknown
			//IL_0224: Unknown result type (might be due to invalid IL or missing references)
			//IL_022b: Expected O, but got Unknown
			//IL_0245: Unknown result type (might be due to invalid IL or missing references)
			//IL_024c: Expected O, but got Unknown
			//IL_0266: Unknown result type (might be due to invalid IL or missing references)
			//IL_026d: Expected O, but got Unknown
			//IL_02de: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e5: Expected O, but got Unknown
			//IL_02ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0306: Expected O, but got Unknown
			//IL_0320: Unknown result type (might be due to invalid IL or missing references)
			//IL_0327: Expected O, but got Unknown
			//IL_0341: Unknown result type (might be due to invalid IL or missing references)
			//IL_0348: Expected O, but got Unknown
			//IL_0362: Unknown result type (might be due to invalid IL or missing references)
			//IL_0369: Expected O, but got Unknown
			//IL_0383: Unknown result type (might be due to invalid IL or missing references)
			//IL_038a: Expected O, but got Unknown
			//IL_03a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ab: Expected O, but got Unknown
			//IL_041c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0423: Expected O, but got Unknown
			//IL_043d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0444: Expected O, but got Unknown
			//IL_045e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0465: Expected O, but got Unknown
			//IL_047f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0486: Expected O, but got Unknown
			//IL_04a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a7: Expected O, but got Unknown
			//IL_04c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c8: Expected O, but got Unknown
			//IL_04e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_04e9: Expected O, but got Unknown
			//IL_055a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0561: Expected O, but got Unknown
			//IL_057b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0582: Expected O, but got Unknown
			//IL_059c: Unknown result type (might be due to invalid IL or missing references)
			//IL_05a3: Expected O, but got Unknown
			//IL_05bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_05c4: Expected O, but got Unknown
			//IL_05de: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e5: Expected O, but got Unknown
			//IL_05ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0606: Expected O, but got Unknown
			//IL_0620: Unknown result type (might be due to invalid IL or missing references)
			//IL_0627: Expected O, but got Unknown
			//IL_0698: Unknown result type (might be due to invalid IL or missing references)
			//IL_069f: Expected O, but got Unknown
			//IL_06b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c0: Expected O, but got Unknown
			//IL_06da: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e1: Expected O, but got Unknown
			//IL_06fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0702: Expected O, but got Unknown
			//IL_071c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0723: Expected O, but got Unknown
			//IL_073d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0744: Expected O, but got Unknown
			//IL_075e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0765: Expected O, but got Unknown
			//IL_07d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_07dd: Expected O, but got Unknown
			//IL_07f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_07fe: Expected O, but got Unknown
			//IL_0818: Unknown result type (might be due to invalid IL or missing references)
			//IL_081f: Expected O, but got Unknown
			//IL_0839: Unknown result type (might be due to invalid IL or missing references)
			//IL_0840: Expected O, but got Unknown
			//IL_085a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0861: Expected O, but got Unknown
			//IL_087b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0882: Expected O, but got Unknown
			//IL_089c: Unknown result type (might be due to invalid IL or missing references)
			//IL_08a3: Expected O, but got Unknown
			//IL_0914: Unknown result type (might be due to invalid IL or missing references)
			//IL_091b: Expected O, but got Unknown
			//IL_0935: Unknown result type (might be due to invalid IL or missing references)
			//IL_093c: Expected O, but got Unknown
			//IL_0956: Unknown result type (might be due to invalid IL or missing references)
			//IL_095d: Expected O, but got Unknown
			//IL_0977: Unknown result type (might be due to invalid IL or missing references)
			//IL_097e: Expected O, but got Unknown
			//IL_0998: Unknown result type (might be due to invalid IL or missing references)
			//IL_099f: Expected O, but got Unknown
			//IL_09b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_09c0: Expected O, but got Unknown
			//IL_09da: Unknown result type (might be due to invalid IL or missing references)
			//IL_09e1: Expected O, but got Unknown
			//IL_0a52: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a59: Expected O, but got Unknown
			//IL_0a73: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a7a: Expected O, but got Unknown
			//IL_0a94: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a9b: Expected O, but got Unknown
			//IL_0ab5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0abc: Expected O, but got Unknown
			//IL_0ad6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0add: Expected O, but got Unknown
			//IL_0af7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0afe: Expected O, but got Unknown
			//IL_0b18: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b1f: Expected O, but got Unknown
			//IL_0b39: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b40: Expected O, but got Unknown
			//IL_0b5a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b61: Expected O, but got Unknown
			//IL_0b72: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b79: Expected O, but got Unknown
			//IL_0b93: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b9a: Expected O, but got Unknown
			//IL_0bb4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bbb: Expected O, but got Unknown
			config = PluginConfigurator.Create("Weapon Pronouns", "NameAndPronounsForWeapons");
			config.SetIconWithURL("file://" + Path.Combine(directory, "icon.png"));
			wrappingEnabled = new BoolField(config.rootPanel, "Weapon Name Wrapping", "wrapping", false);
			ConfigHeader val = new ConfigHeader(config.rootPanel, "Revolvers", 24);
			StringField val2 = new StringField(config.rootPanel, "Piercer Name", "Rev1N", "Steve", false);
			StringField val3 = new StringField(config.rootPanel, "Piercer Pronouns", "Rev1P", "He/Him", true);
			StringField val4 = new StringField(config.rootPanel, "Marksman Name", "Rev2N", "03", false);
			StringField val5 = new StringField(config.rootPanel, "Marksman Pronouns", "Rev2P", "He/They", true);
			StringField val6 = new StringField(config.rootPanel, "Sharpshooter Name", "Rev3N", "Serene", false);
			StringField val7 = new StringField(config.rootPanel, "Sharpshooter Pronouns", "Rev3P", "She/Any", true);
			weaponPairs.Add("SingleRevolver", (StringField[])(object)new StringField[2] { val2, val3 });
			weaponPairs.Add("RevolverSpecial", (StringField[])(object)new StringField[2] { val4, val5 });
			weaponPairs.Add("RevolverSharp", (StringField[])(object)new StringField[2] { val6, val7 });
			ConfigHeader val8 = new ConfigHeader(config.rootPanel, "Shotguns", 24);
			StringField val9 = new StringField(config.rootPanel, "Core Eject Name", "Sht1N", "Gerald", false);
			StringField val10 = new StringField(config.rootPanel, "Core Eject Pronouns", "Sht1P", "Male", true);
			StringField val11 = new StringField(config.rootPanel, "Pump Charge Name", "Sht2N", "Jade", false);
			StringField val12 = new StringField(config.rootPanel, "Pump Charge Pronouns", "Sht2P", "They/Them", true);
			StringField val13 = new StringField(config.rootPanel, "Sawed-On Name", "Sht3N", "Noelle", false);
			StringField val14 = new StringField(config.rootPanel, "Sawed-On Pronouns", "Sht3P", "She/Her", true);
			weaponPairs.Add("Shotgun", (StringField[])(object)new StringField[2] { val9, val10 });
			weaponPairs.Add("Shotgun1", (StringField[])(object)new StringField[2] { val11, val12 });
			weaponPairs.Add("ShotgunSaw", (StringField[])(object)new StringField[2] { val13, val14 });
			ConfigHeader val15 = new ConfigHeader(config.rootPanel, "Nailguns", 24);
			StringField val16 = new StringField(config.rootPanel, "Attractor Name", "Nil1N", "Hakita", false);
			StringField val17 = new StringField(config.rootPanel, "Attractor Pronouns", "Nil1P", "He/Him", true);
			StringField val18 = new StringField(config.rootPanel, "Overheat Name", "Nil2N", "June", false);
			StringField val19 = new StringField(config.rootPanel, "Overheat Pronouns", "Nil2P", "She/They", true);
			StringField val20 = new StringField(config.rootPanel, "Jumpstart Name", "Nil3N", "Nova", false);
			StringField val21 = new StringField(config.rootPanel, "Jumpstart Pronouns", "Nil3P", "It/Its", true);
			weaponPairs.Add("Nailgun2", (StringField[])(object)new StringField[2] { val16, val17 });
			weaponPairs.Add("NailgunOverheat", (StringField[])(object)new StringField[2] { val18, val19 });
			weaponPairs.Add("NailgunZapper", (StringField[])(object)new StringField[2] { val20, val21 });
			ConfigHeader val22 = new ConfigHeader(config.rootPanel, "Railcannons", 24);
			StringField val23 = new StringField(config.rootPanel, "Electric Name", "Rlc1N", "PHthonOS", false);
			StringField val24 = new StringField(config.rootPanel, "Electric Pronouns", "Rlc1P", "They/Them", true);
			StringField val25 = new StringField(config.rootPanel, "Screwdriver Name", "Rlc3N", "Charm", false);
			StringField val26 = new StringField(config.rootPanel, "Screwdriver Pronouns", "Rlc3P", "Any/All", true);
			StringField val27 = new StringField(config.rootPanel, "Malicious Name", "Rlc2N", "Maurice", false);
			StringField val28 = new StringField(config.rootPanel, "Malicious Pronouns", "Rlc2P", "It/He", true);
			weaponPairs.Add("Railcannon", (StringField[])(object)new StringField[2] { val23, val24 });
			weaponPairs.Add("railcannonscrew", (StringField[])(object)new StringField[2] { val25, val26 });
			weaponPairs.Add("railcannonmalicious", (StringField[])(object)new StringField[2] { val27, val28 });
			ConfigHeader val29 = new ConfigHeader(config.rootPanel, "Rocket Launchers", 24);
			StringField val30 = new StringField(config.rootPanel, "Freezeframe Name", "Rkt1N", "Avi", false);
			StringField val31 = new StringField(config.rootPanel, "Freezeframe Pronouns", "Rkt1P", "S/He", true);
			StringField val32 = new StringField(config.rootPanel, "S.R.S. Name", "Rkt2N", "Sirius", false);
			StringField val33 = new StringField(config.rootPanel, "S.R.S. Pronouns", "Rkt2P", "She/Fae", true);
			StringField val34 = new StringField(config.rootPanel, "Firestarter Name", "Rkt3N", "Ash", false);
			StringField val35 = new StringField(config.rootPanel, "Firestarter Pronouns", "Rkt3P", "Xey/Xem", true);
			weaponPairs.Add("rocketlauncher", (StringField[])(object)new StringField[2] { val30, val31 });
			weaponPairs.Add("rocketlaunchercannon", (StringField[])(object)new StringField[2] { val32, val33 });
			weaponPairs.Add("rocketlaunchergasoline", (StringField[])(object)new StringField[2] { val34, val35 });
			ConfigHeader val36 = new ConfigHeader(config.rootPanel, "Slab Revolvers", 24);
			StringField val37 = new StringField(config.rootPanel, "Piercer Name", "Slb1N", "Alli", false);
			StringField val38 = new StringField(config.rootPanel, "Piercer Pronouns", "Slb1P", "She/Her", true);
			StringField val39 = new StringField(config.rootPanel, "Marksman Name", "Slb2N", "Saturday", false);
			StringField val40 = new StringField(config.rootPanel, "Marksman Pronouns", "Slb2P", "She/It", true);
			StringField val41 = new StringField(config.rootPanel, "Sharpshooter Name", "Slb3N", "Dawn", false);
			StringField val42 = new StringField(config.rootPanel, "Sharpshooter Pronouns", "Slb3P", "They/She", true);
			weaponPairs.Add("RevolverAltSingle", (StringField[])(object)new StringField[2] { val37, val38 });
			weaponPairs.Add("RevolverAltSpecial", (StringField[])(object)new StringField[2] { val39, val40 });
			weaponPairs.Add("RevolverAltSharp", (StringField[])(object)new StringField[2] { val41, val42 });
			ConfigHeader val43 = new ConfigHeader(config.rootPanel, "Impact Hammers", 24);
			StringField val44 = new StringField(config.rootPanel, "Core Eject Name", "Hmr1N", "Broccolite", false);
			StringField val45 = new StringField(config.rootPanel, "Core Eject Pronouns", "Hmr1P", "He/Him", true);
			StringField val46 = new StringField(config.rootPanel, "Pump Charge Name", "Hmr2N", "Hailey", false);
			StringField val47 = new StringField(config.rootPanel, "Pump Charge Pronouns", "Hmr2P", "It/She", true);
			StringField val48 = new StringField(config.rootPanel, "Sawed-On Name", "Hmr3N", "Sawed-On Impact Hammer", false);
			StringField val49 = new StringField(config.rootPanel, "Sawed-On Pronouns", "Hmr3P", "", true);
			weaponPairs.Add("Hammer", (StringField[])(object)new StringField[2] { val44, val45 });
			weaponPairs.Add("HammerPump", (StringField[])(object)new StringField[2] { val46, val47 });
			weaponPairs.Add("HammerSaw", (StringField[])(object)new StringField[2] { val48, val49 });
			ConfigHeader val50 = new ConfigHeader(config.rootPanel, "Sawblade Launchers", 24);
			StringField val51 = new StringField(config.rootPanel, "Attractor Name", "Saw1N", "Yuri", false);
			StringField val52 = new StringField(config.rootPanel, "Attractor Pronouns", "Saw1P", "Mirror", true);
			StringField val53 = new StringField(config.rootPanel, "Overheat Name", "Saw2N", "Iota", false);
			StringField val54 = new StringField(config.rootPanel, "Overheat Pronouns", "Saw2P", "She/They/He", true);
			StringField val55 = new StringField(config.rootPanel, "Jumpstart Name", "Saw3N", "Z.", false);
			StringField val56 = new StringField(config.rootPanel, "Jumpstart Pronouns", "Saw3P", "None", true);
			weaponPairs.Add("SawbladeLauncher", (StringField[])(object)new StringField[2] { val51, val52 });
			weaponPairs.Add("SawbladeLauncherOverheat", (StringField[])(object)new StringField[2] { val53, val54 });
			weaponPairs.Add("SawbladeLauncherZapper", (StringField[])(object)new StringField[2] { val55, val56 });
			ConfigHeader val57 = new ConfigHeader(config.rootPanel, "Spawner Arm", 24);
			StringField val58 = new StringField(config.rootPanel, "Move Name", "Spw1N", "Axis", false);
			StringField val59 = new StringField(config.rootPanel, "Move Pronouns", "Spw1P", "Xe/Ze", true);
			StringField val60 = new StringField(config.rootPanel, "Alter Name", "Spw2N", "Obsidian", false);
			StringField val61 = new StringField(config.rootPanel, "Alter Pronouns", "Spw2P", "Any Neopronouns", true);
			StringField val62 = new StringField(config.rootPanel, "Destroy Name", "Spw3N", "[DELETED]", false);
			StringField val63 = new StringField(config.rootPanel, "Destroy Pronouns", "Spw3P", "oops", true);
			StringField val64 = new StringField(config.rootPanel, "Prop Name", "Spw4N", "Læf", false);
			StringField val65 = new StringField(config.rootPanel, "Prop Pronouns", "Spw4P", "She/None", true);
			ConfigHeader val66 = new ConfigHeader(config.rootPanel, "Other", 24);
			StringField val67 = new StringField(config.rootPanel, "Cut Weapon Names", "CutN", "Quasar/Cass", false);
			StringField val68 = new StringField(config.rootPanel, "Cut Weapon Pronouns", "CutP", "He/Her/Any", true);
			weaponPairs.Add("SpawnerArm0", (StringField[])(object)new StringField[2] { val58, val59 });
			weaponPairs.Add("SpawnerArm1", (StringField[])(object)new StringField[2] { val60, val61 });
			weaponPairs.Add("SpawnerArm2", (StringField[])(object)new StringField[2] { val62, val63 });
			weaponPairs.Add("SpawnerArm3", (StringField[])(object)new StringField[2] { val64, val65 });
			weaponPairs.Add("questionMark", (StringField[])(object)new StringField[2] { val67, val68 });
		}
	}
	[BepInPlugin("NameAndPronounsForWeapons", "Weapon Pronouns", "1.0.0")]
	public class Plugin : BaseUnityPlugin
	{
		public static class MethodPatches
		{
			[HarmonyPostfix]
			[HarmonyPatch(typeof(WeaponHUD), "UpdateImage")]
			private static void UpdateImage(Sprite icon, Sprite glowIcon, int variation)
			{
				if (!Object.op_Implicit((Object)(object)pronounText))
				{
					pronounText = InitText();
				}
				if (((Object)icon).name == "SpawnerArm")
				{
					int num = variation;
					string text = num.ToString();
					pronounText.GetComponent<TMP_Text>().text = NPWConfig.weaponPairs[((Object)icon).name + text][0].value + " (" + NPWConfig.weaponPairs[((Object)icon).name + text][1].value + ")";
				}
				else if (!NPWConfig.weaponPairs.ContainsKey(((Object)icon).name))
				{
					pronounText.GetComponent<TMP_Text>().text = "";
				}
				else if (NPWConfig.weaponPairs[((Object)icon).name][1].value != "")
				{
					pronounText.GetComponent<TMP_Text>().text = NPWConfig.weaponPairs[((Object)icon).name][0].value + " (" + NPWConfig.weaponPairs[((Object)icon).name][1].value + ")";
				}
				else
				{
					pronounText.GetComponent<TMP_Text>().text = NPWConfig.weaponPairs[((Object)icon).name][0].value ?? "";
				}
			}
		}

		private static GameObject pronounText;

		internal static ManualLogSource Logger;

		public Harmony harm;

		private void Awake()
		{
			Logger = ((BaseUnityPlugin)this).Logger;
			Logger.LogInfo((object)"Plugin NameAndPronounsForWeapons is loaded!");
			Logger.LogInfo((object)"Ultrakill is woke now.");
		}

		private void Start()
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0011: Expected O, but got Unknown
			harm = new Harmony("NameAndPronounsForWeapons");
			harm.PatchAll(typeof(MethodPatches));
			NPWConfig.Init();
		}

		private static GameObject InitText()
		{
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Expected O, but got Unknown
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			//IL_010c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0146: Unknown result type (might be due to invalid IL or missing references)
			//IL_0152: Unknown result type (might be due to invalid IL or missing references)
			//IL_015e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0174: Unknown result type (might be due to invalid IL or missing references)
			GameObject gameObject = ((Component)HudController.Instance.weaponIcon.transform.parent).gameObject;
			GameObject val = new GameObject("NameAndPronouns", new Type[2]
			{
				typeof(CanvasRenderer),
				typeof(TextMeshProUGUI)
			});
			RectTransform component = val.GetComponent<RectTransform>();
			TextMeshProUGUI component2 = val.GetComponent<TextMeshProUGUI>();
			((TMP_Text)component2).alignment = (TextAlignmentOptions)1028;
			((Graphic)component2).color = Color.white;
			((TMP_Text)component2).text = "Test!";
			((TMP_Text)component2).fontSize = 48f;
			((TMP_Text)component2).overflowMode = (TextOverflowModes)0;
			((TMP_Text)component2).enableWordWrapping = NPWConfig.wrappingEnabled.value;
			((TMP_Text)component2).font = Resources.FindObjectsOfTypeAll<TMP_FontAsset>().First((TMP_FontAsset f) => ((Object)f).name == "VCR_OSD_MONO_1");
			((TMP_Text)component2).fontMaterial = HudController.Instance.overlayTextMaterial;
			Material fontMaterial = ((TMP_Text)component2).fontMaterial;
			fontMaterial.EnableKeyword("OUTLINE_ON");
			fontMaterial.SetFloat("_OutlineWidth", 0.12f);
			fontMaterial.SetColor("_OutlineColor", Color.black);
			((TMP_Text)component2).UpdateMeshPadding();
			val.transform.SetParent(gameObject.transform, false);
			val.transform.localPosition = HudController.Instance.weaponIcon.transform.localPosition;
			((Transform)component).localScale = Vector3.one;
			component.anchoredPosition = Vector2.zero;
			component.sizeDelta = new Vector2(500f, 100f);
			return val;
		}

		private static void OnSceneLoaded(Scene scene, Scene mode)
		{
			pronounText = null;
		}
	}
	public static class MyPluginInfo
	{
		public const string PLUGIN_GUID = "NameAndPronounsForWeapons";

		public const string PLUGIN_NAME = "Weapon Pronouns";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}