Decompiled source of CheaterSkeeter v1.0.0

cheaterskeeter.dll

Decompiled a day ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using Microsoft.CodeAnalysis;
using On.RoR2;
using RoR2;
using UnityEngine;
using UnityEngine.Networking;

[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("cheaterskeeter")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("cheaterskeeter")]
[assembly: AssemblyTitle("cheaterskeeter")]
[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 CheaterSkeeter
{
	[BepInPlugin("com.gogogadgetjustice.cheaterskeeter", "Cheater Skeeter in -A Bad Case of Capitalism- ", "1.0.0")]
	public class DebuggersGonnaDebug : BaseUnityPlugin
	{
		[CompilerGenerated]
		private sealed class <KeepDroppingBossHunters>d__8 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public DebuggersGonnaDebug <>4__this;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <KeepDroppingBossHunters>d__8(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_0066: Unknown result type (might be due to invalid IL or missing references)
				//IL_0070: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					break;
				case 1:
					<>1__state = -1;
					break;
				}
				NetworkUser currentBossHunterUser = <>4__this.currentBossHunterUser;
				if ((Object)(object)((currentBossHunterUser != null) ? currentBossHunterUser.master : null) != (Object)null)
				{
					<>4__this.DropSpecificEquipment(<>4__this.currentBossHunterUser, "BossHunter");
				}
				<>2__current = (object)new WaitForSeconds(2.5f);
				<>1__state = 1;
				return true;
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		public const string PluginGUID = "com.gogogadgetjustice.cheaterskeeter";

		public const string PluginName = "Cheater Skeeter in -A Bad Case of Capitalism- ";

		public const string PluginVersion = "1.0.0";

		public static GameObject originalBodyPrefab;

		private Coroutine bossHunterCoroutine;

		private NetworkUser currentBossHunterUser;

		public void Awake()
		{
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Expected O, but got Unknown
			Chat.CCSay += new hook_CCSay(Chat_CCSay);
		}

		private void Chat_CCSay(orig_CCSay orig, ConCommandArgs args)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e1: Expected O, but got Unknown
			//IL_0145: Unknown result type (might be due to invalid IL or missing references)
			//IL_014a: Unknown result type (might be due to invalid IL or missing references)
			//IL_016a: Expected O, but got Unknown
			//IL_01a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a8: Invalid comparison between Unknown and I4
			//IL_024b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0251: Invalid comparison between Unknown and I4
			//IL_01ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0204: Unknown result type (might be due to invalid IL or missing references)
			//IL_0214: Expected O, but got Unknown
			//IL_02ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c0: Expected O, but got Unknown
			//IL_01d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0283: Unknown result type (might be due to invalid IL or missing references)
			//IL_0289: Unknown result type (might be due to invalid IL or missing references)
			//IL_088f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0985: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eec: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f01: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f88: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f8e: Invalid comparison between Unknown and I4
			//IL_1031: Unknown result type (might be due to invalid IL or missing references)
			//IL_1037: Invalid comparison between Unknown and I4
			//IL_0fe5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fea: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ffa: Expected O, but got Unknown
			//IL_1091: Unknown result type (might be due to invalid IL or missing references)
			//IL_1096: Unknown result type (might be due to invalid IL or missing references)
			//IL_10a6: Expected O, but got Unknown
			//IL_10e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_10eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_10ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_10f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fbd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fc3: Unknown result type (might be due to invalid IL or missing references)
			//IL_111a: Unknown result type (might be due to invalid IL or missing references)
			//IL_111f: Unknown result type (might be due to invalid IL or missing references)
			//IL_112f: Expected O, but got Unknown
			//IL_1069: Unknown result type (might be due to invalid IL or missing references)
			//IL_106f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1313: Unknown result type (might be due to invalid IL or missing references)
			//IL_1530: Unknown result type (might be due to invalid IL or missing references)
			//IL_1587: Unknown result type (might be due to invalid IL or missing references)
			//IL_15e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_16fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_185c: Unknown result type (might be due to invalid IL or missing references)
			//IL_193a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a5d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bc7: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bcc: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bce: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bd1: Invalid comparison between Unknown and I4
			//IL_1bdd: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bdf: Unknown result type (might be due to invalid IL or missing references)
			//IL_1be4: Unknown result type (might be due to invalid IL or missing references)
			//IL_1be8: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bf0: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c01: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c06: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c10: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c15: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c1a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c21: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c26: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c33: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c35: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c9d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ca2: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ca4: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ca7: Invalid comparison between Unknown and I4
			//IL_1cb3: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cb5: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cba: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cbe: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cc6: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cd7: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cdc: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ce6: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ceb: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cf0: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cf7: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cfc: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d09: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d0b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d70: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d7c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d86: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d8b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d90: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d94: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d96: Unknown result type (might be due to invalid IL or missing references)
			//IL_1daa: Unknown result type (might be due to invalid IL or missing references)
			//IL_1daf: Unknown result type (might be due to invalid IL or missing references)
			//IL_1dbf: Expected O, but got Unknown
			//IL_1e11: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e16: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e18: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e1b: Invalid comparison between Unknown and I4
			//IL_1e2a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e2c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e31: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e35: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e3d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e4e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e53: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e5d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e62: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e67: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e6e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e73: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e80: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e82: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ea0: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ea6: Unknown result type (might be due to invalid IL or missing references)
			//IL_1f24: Unknown result type (might be due to invalid IL or missing references)
			//IL_1f29: Unknown result type (might be due to invalid IL or missing references)
			//IL_1f39: Expected O, but got Unknown
			//IL_1eaf: Unknown result type (might be due to invalid IL or missing references)
			//IL_1eb4: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ec4: Expected O, but got Unknown
			//IL_1f8a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1f8f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1f9f: Expected O, but got Unknown
			orig.Invoke(args);
			if (!NetworkServer.active)
			{
				return;
			}
			string text = string.Join(" ", args.userArgs).ToLower().Trim();
			NetworkUser sender = args.sender;
			if ((Object)(object)((sender != null) ? sender.master : null) == (Object)null)
			{
				return;
			}
			Inventory inventory = sender.master.inventory;
			if (text == "666")
			{
				List<GenericPickupController> list = InstanceTracker.GetInstancesList<GenericPickupController>().ToList();
				foreach (GenericPickupController item in list)
				{
					if (Object.op_Implicit((Object)(object)item))
					{
						NetworkServer.Destroy(((Component)item).gameObject);
					}
				}
				Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage
				{
					baseToken = "<color=#ff0000>Items Purged.</color>"
				});
				return;
			}
			if (text == "777")
			{
				DistributeItems();
				return;
			}
			if (text.Contains("mountain") || text.Contains("oh hey"))
			{
				if (Object.op_Implicit((Object)(object)TeleporterInteraction.instance))
				{
					TeleporterInteraction.instance.AddShrineStack();
					Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage
					{
						baseToken = "<color=#bd6aff>" + sender.userName + " invoked the mountain!</color>"
					});
				}
				return;
			}
			switch (text)
			{
			case "killemall":
				foreach (CharacterMaster readOnlyInstances in CharacterMaster.readOnlyInstancesList)
				{
					if ((int)readOnlyInstances.teamIndex != 1 && (Object)(object)readOnlyInstances.GetBody() != (Object)null)
					{
						HealthComponent healthComponent5 = readOnlyInstances.GetBody().healthComponent;
						if (healthComponent5 != null)
						{
							healthComponent5.Suicide((GameObject)null, (GameObject)null, default(DamageTypeCombo));
						}
					}
				}
				Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage
				{
					baseToken = "<color=#ffff00>No survivors.</color>"
				});
				break;
			case "healemall":
				foreach (CharacterMaster readOnlyInstances2 in CharacterMaster.readOnlyInstancesList)
				{
					if ((int)readOnlyInstances2.teamIndex == 1 && (Object)(object)readOnlyInstances2.GetBody() != (Object)null)
					{
						HealthComponent healthComponent4 = readOnlyInstances2.GetBody().healthComponent;
						if (healthComponent4 != null)
						{
							healthComponent4.HealFraction(1f, default(ProcChainMask));
						}
					}
				}
				Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage
				{
					baseToken = "<color=#ffff00>All patched up.</color>"
				});
				break;
			case "iddqd":
				GiveKit(inventory, new string[8] { "Bear", "Aegis", "Medkit", "FlatHealth", "Clover", "ItemDropChanceOnKill", "Knurl", "ShinyPearl" }, 20, "\"We do it wrong, being so majestical,\r\nTo offer it the show of violence,\r\nFor it is as the air, invulnerable,\r\nAnd our vain blows malicious mockery.\"");
				break;
			case "dqddi":
				GiveKit(inventory, new string[8] { "Bear", "Aegis", "Medkit", "FlatHealth", "Clover", "ItemDropChanceOnKill", "Knurl", "ShinyPearl" }, -20, "Alas.");
				break;
			case "idkfa":
				GiveKit(inventory, new string[12]
				{
					"IgniteOnKill", "ChainLightning", "Mushroom", "BleedOnHit", "Thorns", "Dagger", "ExplodeOnDeath", "Missile", "Behemoth", "Headhunter",
					"Seed", "MoreMissile"
				}, 20, "idk fa.");
				break;
			case "afkdi":
				GiveKit(inventory, new string[12]
				{
					"IgniteOnKill", "ChainLightning", "Mushroom", "BleedOnHit", "Thorns", "Dagger", "ExplodeOnDeath", "Missile", "Behemoth", "Headhunter",
					"Seed", "MoreMissile"
				}, -20, "idk fo.");
				break;
			case "idspispopd":
				GiveKit(inventory, new string[7] { "Syringe", "CritGlasses", "Crowbar", "Missile", "CritDamage", "AttackSpeedOnCrit", "ExecuteLowHealthElite" }, 10, "Smashing.");
				break;
			default:
				if (!(text == "idspud"))
				{
					if (text == "idclip")
					{
						GiveKit(inventory, new string[7] { "SprintBoost", "JumpBoost", "Feather", "StealthOnHeal", "Hoof", "SprintBonus", "SprintOutOfCombat" }, 10, "Clipping speed.");
						break;
					}
					if (text == "pilcdi" || text == "slow down")
					{
						GiveKit(inventory, new string[7] { "SprintBoost", "JumpBoost", "Feather", "StealthOnHeal", "Hoof", "SprintBonus", "SprintOutOfCombat" }, -10, "Slow dow there.");
						break;
					}
					switch (text)
					{
					case "idfa":
						GiveKit(inventory, new string[19]
						{
							"Bear", "Aegis", "Medkit", "FlatHealth", "Clover", "Gasoline", "Ukulele", "ChainLightning", "Mushroom", "BleedOnHit",
							"Thorns", "Syringe", "CritGlasses", "Crowbar", "Missile", "SprintBoost", "JumpBoost", "Feather", "StealthOnHeal"
						}, 5, "To take arms against a sea of troubles");
						break;
					case "afdi":
						GiveKit(inventory, new string[19]
						{
							"Bear", "Aegis", "Medkit", "FlatHealth", "Clover", "Gasoline", "Ukulele", "ChainLightning", "Mushroom", "BleedOnHit",
							"Thorns", "Syringe", "CritGlasses", "Crowbar", "Missile", "SprintBoost", "JumpBoost", "Feather", "StealthOnHeal"
						}, -5, "And by opposing end them?");
						break;
					case "dncornholio":
						GiveKit(inventory, new string[8] { "StrengthenBurn", "IgniteOnKill", "FireballsOnHit", "FireRing", "FireWork", "ExplodeOnDeath", "SprintBonus", "Hoof" }, 15, "Fire! Fire! Fire!");
						inventory.SetEquipmentIndex(EquipmentCatalog.FindEquipmentIndex("EliteFireEquipment"), false);
						break;
					default:
						if (!(text == "dumbass"))
						{
							if (text == "show me the money" || text == "kaching")
							{
								GiveKit(inventory, new string[3] { "GoldOnHit", "BonusGoldPackOnKill", "GoldOnHurt" }, 10, "Greed is good.");
								inventory.SetEquipmentIndex(EquipmentCatalog.FindEquipmentIndex("GoldGat"), false);
								break;
							}
							if (text == "yenom eht em wohs" || text == "money get away")
							{
								GiveKit(inventory, new string[3] { "GoldOnHit", "BonusGoldPackOnKill", "GoldOnHurt" }, -10, "Money, so they say\r\nIs the root of all evil today");
								inventory.SetEquipmentIndex((EquipmentIndex)(-1), true);
								break;
							}
							if (text == "there is no cow level")
							{
								GiveKit(inventory, new string[3] { "CloverVoid", "LunarSun", "VoidMegaCrabItem" }, 1, "Moo.");
								break;
							}
							if (text == "level woc on si ereht" || text == "moo")
							{
								GiveKit(inventory, new string[3] { "CloverVoid", "LunarSun", "VoidMegaCrabItem" }, -1, "The cow is a lie.");
								break;
							}
							if (text == "fly me to the moon" || text == "lunar on")
							{
								GiveKit(inventory, new string[20]
								{
									"AutoCastEquipment", "FocusConvergence", "GoldOnHit", "HalfAttackSpeedHalfCooldowns", "HalfSpeedDoubleHealth", "LunarBadLuck", "LunarDagger", "LunarPrimaryReplacement", "LunarSecondaryReplacement", "LunarSpecialReplacement",
									"LunarSun", "LunarTrinket", "LunarUtilityReplacement", "MonstersOnShrineUse", "OnLevelUpFreeUnlock", "RandomDamageZone", "RandomlyLunar", "RepeatHeal", "ShieldOnly", "TransferDebuffOnHit"
								}, 10, "O moon, why dost thou shine upon the cursed and loathed world?");
								break;
							}
							if (text == "the moon is overrated" || text == "lunar off")
							{
								GiveKit(inventory, new string[20]
								{
									"AutoCastEquipment", "FocusConvergence", "GoldOnHit", "HalfAttackSpeedHalfCooldowns", "HalfSpeedDoubleHealth", "LunarBadLuck", "LunarDagger", "LunarPrimaryReplacement", "LunarSecondaryReplacement", "LunarSpecialReplacement",
									"LunarSun", "LunarTrinket", "LunarUtilityReplacement", "MonstersOnShrineUse", "OnLevelUpFreeUnlock", "RandomDamageZone", "RandomlyLunar", "RepeatHeal", "ShieldOnly", "TransferDebuffOnHit"
								}, -10, "He takes false shadows for true substances.");
								break;
							}
							if (text == "void on" || text == "strange emptiness")
							{
								GiveKit(inventory, new string[14]
								{
									"BearVoid", "BleedOnHitVoid", "ChainLightningVoid", "CloverVoid", "CritGlassesVoid", "ElementalRingVoid", "EquipmentMagazineVoid", "ExplodeOnDeathVoid", "ExtraLifeVoid", "MissileVoid",
									"MushroomVoid", "SlowOnHitVoid", "TreasureCacheVoid", "VoidMegaCrabItem"
								}, 10, "He who jumps into the void owes no explanation to those who stand and watch");
								break;
							}
							if (text == "void off" || text == "avoid the noid")
							{
								GiveKit(inventory, new string[14]
								{
									"BearVoid", "BleedOnHitVoid", "ChainLightningVoid", "CloverVoid", "CritGlassesVoid", "ElementalRingVoid", "EquipmentMagazineVoid", "ExplodeOnDeathVoid", "ExtraLifeVoid", "MissileVoid",
									"MushroomVoid", "SlowOnHitVoid", "TreasureCacheVoid", "VoidMegaCrabItem"
								}, -10, "The terrors that flock to fill the void abate for the time being.");
								break;
							}
							if (text == "justin bailey" || text == "heretic" || text == "quicken")
							{
								CharacterMaster master = sender.master;
								originalBodyPrefab = master.bodyPrefab;
								GiveKit(inventory, new string[6] { "LunarPrimaryReplacement", "LunarSecondaryReplacement", "LunarUtilityReplacement", "LunarSpecialReplacement", "ShieldOnly", "AutoCastEquipment" }, 1, "If we have no heretics we must invent them, for heresy is essential to health and growth.");
								break;
							}
							if (text == "yeliab nitsuj" || text == "hexen" || text == "loan")
							{
								if ((Object)(object)originalBodyPrefab != (Object)null)
								{
									sender.master.bodyPrefab = originalBodyPrefab;
									GameObject obj = originalBodyPrefab;
									Debug.Log((object)("[CheatSkeeter] Restoring to: " + ((obj != null) ? ((Object)obj).name : null)));
									sender.master.Respawn(((Component)sender.master.GetBody()).transform.position, ((Component)sender.master.GetBody()).transform.rotation, false);
									GiveKit(inventory, new string[6] { "LunarPrimaryReplacement", "LunarSecondaryReplacement", "LunarUtilityReplacement", "LunarSpecialReplacement", "ShieldOnly", "AutoCastEquipment" }, -1, "Guess I will recant.");
								}
								break;
							}
							switch (text)
							{
							case "killemall":
								foreach (CharacterMaster readOnlyInstances3 in CharacterMaster.readOnlyInstancesList)
								{
									if ((int)readOnlyInstances3.teamIndex != 1 && (Object)(object)readOnlyInstances3.GetBody() != (Object)null)
									{
										HealthComponent healthComponent2 = readOnlyInstances3.GetBody().healthComponent;
										if (healthComponent2 != null)
										{
											healthComponent2.Suicide((GameObject)null, (GameObject)null, default(DamageTypeCombo));
										}
									}
								}
								Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage
								{
									baseToken = "<color=#ffff00>Just a statistic.</color>"
								});
								break;
							case "healemall":
								foreach (CharacterMaster readOnlyInstances4 in CharacterMaster.readOnlyInstancesList)
								{
									if ((int)readOnlyInstances4.teamIndex == 1 && (Object)(object)readOnlyInstances4.GetBody() != (Object)null)
									{
										HealthComponent healthComponent3 = readOnlyInstances4.GetBody().healthComponent;
										if (healthComponent3 != null)
										{
											healthComponent3.HealFraction(1f, default(ProcChainMask));
										}
									}
								}
								Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage
								{
									baseToken = "<color=#ffff00>All patched up.</color>"
								});
								break;
							default:
								if (!(text == "too much"))
								{
									if (text == "nuttertools")
									{
										GiveKit(inventory, new string[8] { "MissileVoid", "ShieldOnly", "Crowbar", "Syringe", "StickyBomb", "Missle", "MoreMissile", "ChainLightningVoid" }, 5, "Got Nutter eyes and Nutter ears, so keep an eye on.");
										break;
									}
									if (text == "slootrettun" || text == "crazy in the coconut")
									{
										GiveKit(inventory, new string[8] { "MissileVoid", "ShieldOnly", "Crowbar", "Syringe", "StickyBomb", "Missile", "MoreMissile", "ChainLightningVoid" }, -5, "Those Nutters, they do not operate in a vacuum.");
										break;
									}
									if (text == "professionaltools" || text == "jarate")
									{
										GiveKit(inventory, new string[21]
										{
											"CritGlassesVoid", "Stew", "BonusHealthBoost", "Clover", "BarrierOnKill", "Hoof", "Mushroom", "Icicle", "SlowOnHit", "AlienHead",
											"Crowbar", "FireRing", "IceRing", "Behemoth", "StickyBomb", "Missile", "HealOnCrit", "AttackSpeedOnCrit", "Syringe", "EnergizedOnEquipmentUse",
											"AutoCastEquipment"
										}, 5, "Professionals have standards.");
										inventory.SetEquipmentIndex(EquipmentCatalog.FindEquipmentIndex("CritOnUse"), false);
										break;
									}
									if (text == "slootlanoisseforp" || text == "spy")
									{
										GiveKit(inventory, new string[21]
										{
											"CritGlassesVoid", "Stew", "BonusHealthBoost", "Clover", "BarrierOnKill", "Hoof", "Mushroom", "Icicle", "SlowOnHit", "AlienHead",
											"Crowbar", "FireRing", "IceRing", "Behemoth", "StickyBomb", "Missile", "HealOnCrit", "AttackSpeedOnCrit", "Syringe", "EnergizedOnEquipmentUse",
											"AutoCastEquipment"
										}, -5, "I take no pleasure in taking a life.");
										inventory.SetEquipmentIndex((EquipmentIndex)(-1), true);
										break;
									}
									if (text == "thugstools" || text == "thug")
									{
										GiveKit(inventory, new string[6] { "Behemoth", "Dagger", "BounceNearby", "Missile", "ChainLightning", "ExplodeOnDeath" }, 5, "It's the thuggish ruggish bone.");
										break;
									}
									if (text == "slootsguht" || text == "uncle charles")
									{
										GiveKit(inventory, new string[6] { "Behemoth", "Dagger", "BounceNearby", "Missile", "ChainLightning", "ExplodeOnDeath" }, -5, "And I miss my Uncle Charles y'all.");
										break;
									}
									if (text == "ahoy")
									{
										GiveKit(inventory, new string[1] { "FocusConvergence" }, 3, "Ahoy");
										inventory.SetEquipmentIndex(EquipmentCatalog.FindEquipmentIndex("BossHunter"), false);
										break;
									}
									if (text == "yoha" || text == "hoy")
									{
										GiveKit(inventory, new string[1] { "FocusConvergence" }, -3, "Hoy.");
										inventory.SetEquipmentIndex(EquipmentCatalog.FindEquipmentIndex("BossHunter"), false);
										break;
									}
									switch (text)
									{
									case "abacabb":
										GiveKit(inventory, new string[4] { "BleedOnHit", "BleedOnHitAndExplode", "TriggerEnemyDebuffs", "TeleportOnLowHealth" }, 15, "GET OVER HERE!");
										inventory.SetEquipmentIndex(EquipmentCatalog.FindEquipmentIndex("Saw"), false);
										break;
									case "bbacaba":
										GiveKit(inventory, new string[4] { "BleedOnHit", "BleedOnHitAndExplode", "TriggerEnemyDebuffs", "TeleportOnLowHealth" }, -15, "Fatality.");
										inventory.SetEquipmentIndex((EquipmentIndex)(-1), true);
										break;
									default:
										if (!(text == "cwal"))
										{
											if (text == "lawc" || text == "lawc noitarepo")
											{
												GiveKit(inventory, new string[13]
												{
													"Syringe", "Hoof", "SprintBonus", "SprintOutOfCombat", "EquipmentMagazine", "EnergizedOnEquipmentUse", "ShinyPearl", "ShockDamageAura", "PowerPyramid", "AutoCastEquipment",
													"FallBoots", "KillEliteFrenzy", "AlienHead"
												}, -15, "I vote we frag this commander.");
												inventory.SetEquipmentIndex((EquipmentIndex)(-1), true);
												break;
											}
											if (text == "zip zap" || text == "zip")
											{
												GiveKit(inventory, new string[11]
												{
													"ShockDamageAura", "IncreasePrimaryDamage", "Crowbar", "Talisman", "ShockNearby", "ShockDamageAura", "LightningStrikeOnHit", "ChainLightning", "EnergizedOnEquipmentUse", "AutoCastEquipment",
													"EquipmentMagazine"
												}, 5, "Flash before my eyes");
												inventory.SetEquipmentIndex(EquipmentCatalog.FindEquipmentIndex("EliteLightningEquipment"), false);
												break;
											}
											if (text == "zap zip" || text == "zap")
											{
												GiveKit(inventory, new string[11]
												{
													"ShockDamageAura", "IncreasePrimaryDamage", "Crowbar", "Talisman", "ShockNearby", "ShockDamageAura", "LightningStrikeOnHit", "ChainLightning", "EnergizedOnEquipmentUse", "AutoCastEquipment",
													"EquipmentMagazine"
												}, -5, "Guilty as charged.");
												inventory.SetEquipmentIndex((EquipmentIndex)(-1), true);
												break;
											}
											if (text == "zip hat" || text == "zhat")
											{
												inventory.SetEquipmentIndex(EquipmentCatalog.FindEquipmentIndex("Lightning"), false);
												break;
											}
											if (text == "no hat" || text == "tah piz")
											{
												GiveKit(inventory, new string[12]
												{
													"ShockDamageAura", "IncreasePrimaryDamage", "Crowbar", "Talisman", "ShockNearby", "ExtraEquipment", "ShockDamageAura", "LightningStrikeOnHit", "ChainLightning", "EnergizedOnEquipmentUse",
													"AutoCastEquipment", "EquipmentMagazine"
												}, -5, "Guilty as charged.");
												inventory.SetEquipmentIndex((EquipmentIndex)(-1), true);
												break;
											}
											if (text == "kris kross" || text == "jump jump")
											{
												GiveKit(inventory, new string[5] { "JumpBoost", "JumpDamageStrike", "Feather", "MoveSpeedOnKill", "UtilitySkillMagazine" }, 2, "Jump Jump");
												inventory.SetEquipmentIndex(EquipmentCatalog.FindEquipmentIndex("TonicAffliction"), false);
												break;
											}
											if (text == "kross kris" || text == "pmuj pmuj" || text == "Cause I'm the miggida, miggida, miggida, miggida Mac Daddy")
											{
												GiveKit(inventory, new string[5] { "JumpBoost", "JumpDamageStrike", "Feather", "MoveSpeedOnKill", "UtilitySkillMagazine" }, -2, "Kris Kross is not having anything today");
												inventory.SetEquipmentIndex((EquipmentIndex)(-1), true);
												break;
											}
											if (text == "teddy" || text == "da bears")
											{
												GiveKit(inventory, new string[1] { "BearVoid" }, 65, "Blocked!");
												break;
											}
											switch (text)
											{
											default:
												if (!(text == "packers"))
												{
													CreatePickupInfo val5;
													switch (text)
													{
													case "scanner":
													{
														CharacterBody body4 = sender.master.GetBody();
														if ((Object)(object)body4 != (Object)null)
														{
															EquipmentIndex val9 = EquipmentCatalog.FindEquipmentIndex("Scanner");
															if ((int)val9 != -1)
															{
																PickupIndex pickupIndex3 = PickupCatalog.FindPickupIndex(val9);
																val5 = default(CreatePickupInfo);
																((CreatePickupInfo)(ref val5)).pickupIndex = pickupIndex3;
																val5.position = ((Component)body4).transform.position + Vector3.up * 2f;
																val5.rotation = Quaternion.identity;
																val5.prefabOverride = null;
																CreatePickupInfo val10 = val5;
																GenericPickupController.CreatePickup(ref val10);
															}
														}
														break;
													}
													default:
														if (!(text == "hoy"))
														{
															if (text.Contains("what's in the box"))
															{
																CharacterBody body = sender.master.GetBody();
																if ((Object)(object)body != (Object)null)
																{
																	GameObject val = Resources.Load<GameObject>("Prefabs/networkedobjects/chest/GoldChest");
																	if ((Object)(object)val != (Object)null)
																	{
																		Vector3 val2 = ((Component)body).transform.position + ((Component)body).transform.forward * 4f;
																		GameObject val3 = Object.Instantiate<GameObject>(val, val2, Quaternion.identity);
																		NetworkServer.Spawn(val3);
																		Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage
																		{
																			baseToken = "<color=#ffd700>What's in the box?!</color>"
																		});
																	}
																}
															}
															else if (text.Contains("cowards die many times") || text.Contains("coward"))
															{
																CharacterBody body2 = sender.master.GetBody();
																if (!((Object)(object)body2 != (Object)null))
																{
																	break;
																}
																EquipmentIndex val4 = EquipmentCatalog.FindEquipmentIndex("HealAndRevive");
																if ((int)val4 != -1)
																{
																	PickupIndex pickupIndex = PickupCatalog.FindPickupIndex(val4);
																	val5 = default(CreatePickupInfo);
																	((CreatePickupInfo)(ref val5)).pickupIndex = pickupIndex;
																	val5.position = ((Component)body2).transform.position + Vector3.up * 2f;
																	val5.rotation = Quaternion.identity;
																	val5.prefabOverride = null;
																	CreatePickupInfo val6 = val5;
																	GenericPickupController.CreatePickup(ref val6);
																	HealthComponent healthComponent = body2.healthComponent;
																	if (healthComponent != null)
																	{
																		healthComponent.Heal(99999f, default(ProcChainMask), true);
																	}
																	Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage
																	{
																		baseToken = "<color=#99ff99>Cowards die many times before their deaths. The valiant never taste of death but once.</color>"
																	});
																}
															}
															else if (text == "chauncey, my rancor rifle" || text.Contains("chauncey"))
															{
																if (bossHunterCoroutine != null)
																{
																	((MonoBehaviour)this).StopCoroutine(bossHunterCoroutine);
																}
																currentBossHunterUser = sender;
																bossHunterCoroutine = ((MonoBehaviour)this).StartCoroutine(KeepDroppingBossHunters());
																Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage
																{
																	baseToken = "<color=#ff6600>Right away, sir. Rancor rifles incoming!</color>"
																});
															}
															else if ((text == "that'll do nicely, chauncey" || text.Contains("enough")) && bossHunterCoroutine != null)
															{
																((MonoBehaviour)this).StopCoroutine(bossHunterCoroutine);
																bossHunterCoroutine = null;
																currentBossHunterUser = null;
																Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage
																{
																	baseToken = "<color=#ff6600>Very good, sir.</color>"
																});
															}
															break;
														}
														goto case "ahoy";
													case "ahoy":
													case "yoha":
													{
														CharacterBody body3 = sender.master.GetBody();
														if ((Object)(object)body3 != (Object)null)
														{
															EquipmentIndex val7 = EquipmentCatalog.FindEquipmentIndex("BossHunter");
															if ((int)val7 != -1)
															{
																PickupIndex pickupIndex2 = PickupCatalog.FindPickupIndex(val7);
																val5 = default(CreatePickupInfo);
																((CreatePickupInfo)(ref val5)).pickupIndex = pickupIndex2;
																val5.position = ((Component)body3).transform.position + Vector3.up * 2f;
																val5.rotation = Quaternion.identity;
																val5.prefabOverride = null;
																CreatePickupInfo val8 = val5;
																GenericPickupController.CreatePickup(ref val8);
															}
														}
														break;
													}
													}
													break;
												}
												goto case "yddet";
											case "yddet":
											case "sreab ad":
											case "ruxpin":
												GiveKit(inventory, new string[1] { "BearVoid" }, -65, "Let's get out of here, Grubby.");
												break;
											}
											break;
										}
										goto case "operation cwal";
									case "operation cwal":
										GiveKit(inventory, new string[13]
										{
											"Syringe", "Hoof", "SprintBonus", "SprintOutOfCombat", "EquipmentMagazine", "EnergizedOnEquipmentUse", "ShinyPearl", "ShockDamageAura", "PowerPyramid", "AutoCastEquipment",
											"FallBoots", "KillEliteFrenzy", "AlienHead"
										}, 5, "Jacked up and good to go");
										inventory.SetEquipmentIndex(EquipmentCatalog.FindEquipmentIndex("TonicAffliction"), false);
										break;
									}
									break;
								}
								goto case "wipeout";
							case "wipeout":
								foreach (ItemIndex item2 in inventory.itemAcquisitionOrder.ToList())
								{
									inventory.RemoveItem(item2, inventory.GetItemCount(item2));
								}
								Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage
								{
									baseToken = "<color=#ffff00>It's only after you've lost everything that you're free to spark joy.</color>"
								});
								break;
							}
							break;
						}
						goto case "dammit beavis";
					case "dammit beavis":
						GiveKit(inventory, new string[9] { "StrengthenBurn", "IgniteOnKill", "FireballsOnHit", "FireRing", "SprintBonus", "FireWork", "ExplodeOnDeath", "SprintBonus", "Hoof" }, -15, "Are you threatening me?");
						inventory.SetEquipmentIndex((EquipmentIndex)(-1), true);
						break;
					}
					break;
				}
				goto case "dpopsipsdi";
			case "dpopsipsdi":
				GiveKit(inventory, new string[7] { "Syringe", "CritGlasses", "Crowbar", "Missile", "CritDamage", "AttackSpeedOnCrit", "ExecuteLowHealthElite" }, -10, "Putrid Piles of Debris indeed.");
				break;
			}
		}

		[IteratorStateMachine(typeof(<KeepDroppingBossHunters>d__8))]
		private IEnumerator KeepDroppingBossHunters()
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <KeepDroppingBossHunters>d__8(0)
			{
				<>4__this = this
			};
		}

		private void GiveKit(Inventory inventory, string[] items, int amount, string msg)
		{
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_0080: Expected O, but got Unknown
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_0038: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			foreach (string text in items)
			{
				ItemIndex val = ItemCatalog.FindItemIndex(text);
				if ((int)val != -1)
				{
					if (amount > 0)
					{
						inventory.GiveItemPermanent(val, amount);
					}
					else
					{
						inventory.RemoveItemPermanent(val, inventory.GetItemCountPermanent(val));
					}
				}
			}
			if (!string.IsNullOrEmpty(msg))
			{
				Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage
				{
					baseToken = "<color=#ffff00>" + msg + "</color>"
				});
			}
		}

		private void DistributeItems()
		{
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a9: Invalid comparison between Unknown and I4
			//IL_00cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d3: Invalid comparison between Unknown and I4
			//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
			List<GenericPickupController> list = InstanceTracker.GetInstancesList<GenericPickupController>().ToList();
			List<CharacterMaster> list2 = (from p in PlayerCharacterMasterController.instances
				where (Object)(object)((p != null) ? p.master : null) != (Object)null
				select p.master).ToList();
			if (list2.Count == 0)
			{
				return;
			}
			for (int i = 0; i < list.Count; i++)
			{
				PickupDef pickupDef = PickupCatalog.GetPickupDef(list[i].Network_pickupState.pickupIndex);
				CharacterMaster val = list2[i % list2.Count];
				if ((int)pickupDef.itemIndex != -1)
				{
					val.inventory.GiveItemPermanent(pickupDef.itemIndex, 1);
				}
				else if ((int)pickupDef.equipmentIndex != -1)
				{
					val.inventory.SetEquipmentIndex(pickupDef.equipmentIndex, false);
				}
				NetworkServer.Destroy(((Component)list[i]).gameObject);
			}
		}

		private void DropSpecificEquipment(NetworkUser user, string equipName)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_000a: Invalid comparison between Unknown and I4
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			EquipmentIndex val = EquipmentCatalog.FindEquipmentIndex(equipName);
			if ((int)val != -1)
			{
				CharacterBody body = user.master.GetBody();
				if (!((Object)(object)body == (Object)null))
				{
					PickupIndex pickupIndex = PickupCatalog.FindPickupIndex(val);
					CreatePickupInfo val2 = default(CreatePickupInfo);
					((CreatePickupInfo)(ref val2)).pickupIndex = pickupIndex;
					PickupDropletController.CreatePickupDroplet(val2, ((Component)body).transform.position + Vector3.up * 3f, ((Component)body).transform.forward * 10f);
				}
			}
		}
	}
}