Decompiled source of BobombBattlefield v1.0.7

plugins/viliger-SM64BBF/SM64BBF.dll

Decompiled a month ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using EntityStates;
using HG;
using HG.Reflection;
using JetBrains.Annotations;
using On.RoR2;
using R2API;
using RegigigasMod.Modules.Components;
using RegigigasMod.SkillStates.Regigigas;
using RoR2;
using RoR2.Audio;
using RoR2.CharacterAI;
using RoR2.ContentManagement;
using RoR2.Skills;
using SM64BBF.Content;
using SM64BBF.Items;
using SM64BBF.PickUpDefs;
using SM64BBF.States;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Events;
using UnityEngine.Networking;
using UnityEngine.ResourceManagement.AsyncOperations;

[assembly: OptIn]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("SM64BBF")]
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyProduct("SM64BBF")]
[assembly: AssemblyTitle("SM64BBF")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace SM64BBF
{
	public static class Config
	{
		[StructLayout(LayoutKind.Sequential, Size = 1)]
		public struct BobombSpawning
		{
			public static ConfigEntry<int> SelectionWeight;

			public static ConfigEntry<int> MinimumStageCount;

			public static ConfigEntry<bool> SpawnArena;

			public static ConfigEntry<bool> SpawnAncientLoft;

			public static ConfigEntry<bool> SpawnBlackBeach;

			public static ConfigEntry<bool> SpawnDampCaveSimple;

			public static ConfigEntry<bool> SpawnFoggySwamp;

			public static ConfigEntry<bool> SpawnFrozenWall;

			public static ConfigEntry<bool> SpawnGolemPlains;

			public static ConfigEntry<bool> SpawnGooLake;

			public static ConfigEntry<bool> SpawnLakes;

			public static ConfigEntry<bool> SpawnRootJungle;

			public static ConfigEntry<bool> SpawnShipGraveyard;

			public static ConfigEntry<bool> SpawnSkyMeadow;

			public static ConfigEntry<bool> SpawnSnowyForest;

			public static ConfigEntry<bool> SpawnSulfurPools;

			public static ConfigEntry<bool> SpawnWispGraveyard;

			public static ConfigEntry<bool> SpawnSimulacrum;

			public static ConfigEntry<string> SpawnCustomStages;
		}

		[StructLayout(LayoutKind.Sequential, Size = 1)]
		public struct TreeInteractable
		{
			public static ConfigEntry<float> CoinWeight;

			public static ConfigEntry<float> OneUpWeight;

			public static ConfigEntry<float> StarmanWeight;

			public static ConfigEntry<float> NothingWeight;
		}

		public static void PopulateConfig(ConfigFile config)
		{
			BobombSpawning.SelectionWeight = config.Bind<int>("Bobomb Spawn", "Bobomb Card Selection Weight", 6, "Selection weight for Bobomb Director Card. Does not affect spawning on Bobomb Battlefield, only for other stages.");
			BobombSpawning.MinimumStageCount = config.Bind<int>("Bobomb Spawn", "Bobomb Card Minimal Stage Count", 0, "How many stages players must clear before Bobombs start spawning. Does not affect spawning on Bobomb Battlefield, only for other stages.");
			BobombSpawning.SpawnArena = config.Bind<bool>("Bobomb Spawn", "Bobomb Can Spawn in arena", false, "Bobombs can spawn in arena (internal name for Void Fields)");
			BobombSpawning.SpawnAncientLoft = config.Bind<bool>("Bobomb Spawn", "Bobomb Can Spawn in ancientloft", false, "Bobombs can spawn in ancientloft (internal name for Aphelian Sanctuary)");
			BobombSpawning.SpawnBlackBeach = config.Bind<bool>("Bobomb Spawn", "Bobomb Can Spawn in blackbeach", false, "Bobombs can spawn in blackbeach (both 1 and 2) (internal name for Distant Roost)");
			BobombSpawning.SpawnDampCaveSimple = config.Bind<bool>("Bobomb Spawn", "Bobomb Can Spawn in dampcavesimple", false, "Bobombs can spawn in dampcavesimple (internal name for Abyssal Depths)");
			BobombSpawning.SpawnFoggySwamp = config.Bind<bool>("Bobomb Spawn", "Bobomb Can Spawn in foggyswamp", false, "Bobombs can spawn in foggyswamp (internal name for Wetlands Aspect)");
			BobombSpawning.SpawnFrozenWall = config.Bind<bool>("Bobomb Spawn", "Bobomb Can Spawn in frozenwall", false, "Bobombs can spawn in foggyswamp (internal name for Rallypoint Delta)");
			BobombSpawning.SpawnGolemPlains = config.Bind<bool>("Bobomb Spawn", "Bobomb Can Spawn in golemplains", false, "Bobombs can spawn in golemplains (both 1 and 2) (internal name for Titanic Plains)");
			BobombSpawning.SpawnGooLake = config.Bind<bool>("Bobomb Spawn", "Bobomb Can Spawn in goolake", false, "Bobombs can spawn in goolake (internal name for Abandoned Aqueduct)");
			BobombSpawning.SpawnLakes = config.Bind<bool>("Bobomb Spawn", "Bobomb Can Spawn in lakes", false, "Bobombs can spawn in lakes (internal name for Verdant Falls)");
			BobombSpawning.SpawnRootJungle = config.Bind<bool>("Bobomb Spawn", "Bobomb Can Spawn in rootjungle", false, "Bobombs can spawn in rootjungle (internal name for Sundered Grove, aka Stadia Stage)");
			BobombSpawning.SpawnShipGraveyard = config.Bind<bool>("Bobomb Spawn", "Bobomb Can Spawn in shipgraveyard", false, "Bobombs can spawn in shipgraveyard (internal name for Siren's Call)");
			BobombSpawning.SpawnSkyMeadow = config.Bind<bool>("Bobomb Spawn", "Bobomb Can Spawn in skymeadow", false, "Bobombs can spawn in skymeadow (internal name for Sky Meadow (duh))");
			BobombSpawning.SpawnSnowyForest = config.Bind<bool>("Bobomb Spawn", "Bobomb Can Spawn in snowyforest", false, "Bobombs can spawn in snowyforest (internal name for Siphoned Forest)");
			BobombSpawning.SpawnSulfurPools = config.Bind<bool>("Bobomb Spawn", "Bobomb Can Spawn in sulfurpools", false, "Bobombs can spawn in sulfurpools (internal name for Sulfur Pools, oh hey another one)");
			BobombSpawning.SpawnWispGraveyard = config.Bind<bool>("Bobomb Spawn", "Bobomb Can Spawn in wispgraveyard", false, "Bobombs can spawn in wispgraveyard (internal name for Scorched Acres)");
			BobombSpawning.SpawnSimulacrum = config.Bind<bool>("Bobomb Spawn", "Bobomb Can Spawn in Simulacrum", false, "Bobombs can spawn in Simulacrum, covers all Simulacrum stages.");
			BobombSpawning.SpawnCustomStages = config.Bind<string>("Bobomb Spawn", "Bobomb Can Spawn in custom stages", "", "To make Bobombs spawn in custom stages, add internal names of custom stages separated by \",\". You can find their name by installing DebugToolkit and then entering \"list_scene\", it will give you the list of all available scenes as stages. For example, Fogbound Lagoon is FBLScene, Catacombs is catacombs_DS1_Catacombs, Bobomb Battlefield is sm64_bbf_SM64_BBF");
			TreeInteractable.CoinWeight = config.Bind<float>("Tree Interactable", "Coin Weight", 40f, "Weight to spawn Coin when shaking the tree. Higher the value - higher the chance.");
			TreeInteractable.OneUpWeight = config.Bind<float>("Tree Interactable", "One Up Weight", 5f, "Weight to spawn 1UP when shaking the tree. Higher the value - higher the chance.");
			TreeInteractable.StarmanWeight = config.Bind<float>("Tree Interactable", "Starman Weight", 10f, "Weight to spawn Starman when shaking the tree. Higher the value - higher the chance.");
			TreeInteractable.NothingWeight = config.Bind<float>("Tree Interactable", "Nothing Weight", 45f, "Weight to get nothing when shaking the tree. Higher the value - higher the chance.");
		}
	}
	internal static class Log
	{
		private static ManualLogSource _logSource;

		internal static void Init(ManualLogSource logSource)
		{
			_logSource = logSource;
		}

		internal static void Debug(object data)
		{
			_logSource.LogDebug(data);
		}

		internal static void Error(object data)
		{
			_logSource.LogError(data);
		}

		internal static void Fatal(object data)
		{
			_logSource.LogFatal(data);
		}

		internal static void Info(object data)
		{
			_logSource.LogInfo(data);
		}

		internal static void Message(object data)
		{
			_logSource.LogMessage(data);
		}

		internal static void Warning(object data)
		{
			_logSource.LogWarning(data);
		}
	}
	public static class RegigigasCompat
	{
		private static bool? _enabled;

		public static bool enabled
		{
			get
			{
				if (!_enabled.HasValue)
				{
					_enabled = Chainloader.PluginInfos.ContainsKey("com.rob.RegigigasMod");
				}
				return _enabled.Value;
			}
		}

		public static void AddKingBobombSkin()
		{
		}

		private static SkinDef CreateSkinDef(GameObject modelTransform, SkinDef baseSkin)
		{
			return ScriptableObject.CreateInstance<SkinDef>();
		}

		[MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)]
		public static void SetupKingBobombBody(GameObject characterBody, ContentPack contentPack)
		{
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_007f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			characterBody.GetComponent<CharacterBody>().preferredInitialStateType = new SerializableEntityStateType(typeof(SpawnState));
			EntityStateMachine[] components = characterBody.GetComponents<EntityStateMachine>();
			foreach (EntityStateMachine val in components)
			{
				if (val.customName == "Body")
				{
					val.mainStateType = new SerializableEntityStateType(typeof(MainState));
					val.initialStateType = new SerializableEntityStateType(typeof(SpawnState));
				}
			}
			characterBody.GetComponent<CharacterDeathBehavior>().deathState = new SerializableEntityStateType(typeof(DeathState));
			characterBody.AddComponent<RegigigasController>();
			characterBody.AddComponent<RegigigasFlashController>();
			characterBody.AddComponent<SlowStartController>();
			FootstepHandler componentInChildren = characterBody.GetComponentInChildren<FootstepHandler>();
			componentInChildren.footstepDustPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Common/VFX/GenericHugeFootstepDust.prefab").WaitForCompletion();
			componentInChildren.enableFootstepDust = true;
		}

		public static void SetupPrimarySkill(SkillDef primary)
		{
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			SetupSkillActivationState(primary, new SerializableEntityStateType(typeof(GrabAttempt)));
		}

		public static void SetupSecondarySkill(SkillDef secondary)
		{
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			SetupSkillActivationState(secondary, new SerializableEntityStateType(typeof(Stomp)));
		}

		public static void SetupUtilitySkill(SkillDef utility)
		{
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			SetupSkillActivationState(utility, new SerializableEntityStateType(typeof(BounceStart)));
		}

		public static void SetupSpecialSkill(SkillDef special)
		{
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			SetupSkillActivationState(special, new SerializableEntityStateType(typeof(Revenge)));
		}

		private static void SetupSkillActivationState(SkillDef skill, SerializableEntityStateType activationState)
		{
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			if (Object.op_Implicit((Object)(object)skill))
			{
				skill.activationState = activationState;
			}
			else
			{
				Log.Warning("KingBobomb: Skill for activation state " + ((object)(SerializableEntityStateType)(ref activationState)).ToString() + "doesn't exist.");
			}
		}
	}
	public static class SM64BBFContent
	{
		[StructLayout(LayoutKind.Sequential, Size = 1)]
		public struct MiscPickups
		{
			public static StarmanPickupDef Starman;

			public static CoinPickupDef Coin;
		}

		[StructLayout(LayoutKind.Sequential, Size = 1)]
		public struct Items
		{
			public static ItemDef MarioOneUp;
		}

		[StructLayout(LayoutKind.Sequential, Size = 1)]
		public struct Buffs
		{
			public static BuffDef BobombArmor;
		}

		[StructLayout(LayoutKind.Sequential, Size = 1)]
		public struct CharacterSpawnCards
		{
			public static CharacterSpawnCard cscBobomb;

			public static CharacterSpawnCard cscKingBobomb;
		}

		internal const string ScenesAssetBundleFileName = "sm64bbfstage";

		internal const string AssetsAssetBundleFileName = "sm64bbfassets";

		internal const string SoundsSoundBankFileName = "SM64BBFSounds.bnk";

		internal const string MusicSoundBankFileName = "SM64BBFMusic.bnk";

		internal const string InitSoundBankFileName = "SM64BBFInit.bnk";

		private static AssetBundle _scenesAssetBundle;

		private static AssetBundle _assetsAssetBundle;

		internal static SceneDef SM64BBFScene;

		internal static Sprite SM64BBFPreviewSprite;

		public static List<Material> SwappedMaterials = new List<Material>();

		public static Dictionary<string, string> ShaderLookup = new Dictionary<string, string>
		{
			{ "stubbedror2/base/shaders/hgstandard", "RoR2/Base/Shaders/HGStandard.shader" },
			{ "stubbedror2/base/shaders/hgsnowtopped", "RoR2/Base/Shaders/HGSnowTopped.shader" },
			{ "stubbedror2/base/shaders/hgtriplanarterrainblend", "RoR2/Base/Shaders/HGTriplanarTerrainBlend.shader" },
			{ "stubbedror2/base/shaders/hgintersectioncloudremap", "RoR2/Base/Shaders/HGIntersectionCloudRemap.shader" },
			{ "stubbedror2/base/shaders/hgcloudremap", "RoR2/Base/Shaders/HGCloudRemap.shader" },
			{ "stubbedror2/base/shaders/hgdistortion", "RoR2/Base/Shaders/HGDistortion.shader" },
			{ "stubbedcalm water/calmwater - dx11 - doublesided", "Calm Water/CalmWater - DX11 - DoubleSided.shader" },
			{ "stubbedcalm water/calmwater - dx11", "Calm Water/CalmWater - DX11.shader" },
			{ "stubbednature/speedtree", "RoR2/Base/Shaders/SpeedTreeCustom.shader" },
			{ "stubbeddecalicious/decaliciousdeferreddecal", "Decalicious/DecaliciousDeferredDecal.shader" }
		};

		internal static IEnumerator LoadAssetBundlesAsync(AssetBundle scenesAssetBundle, AssetBundle assetsAssetBundle, IProgress<float> progress, ContentPack contentPack)
		{
			_scenesAssetBundle = scenesAssetBundle;
			_assetsAssetBundle = assetsAssetBundle;
			yield return LoadAllAssetsAsync<Material>(_assetsAssetBundle, progress, (Action<Material[]>)delegate(Material[] assets)
			{
				//IL_0046: Unknown result type (might be due to invalid IL or missing references)
				//IL_004b: Unknown result type (might be due to invalid IL or missing references)
				if (assets != null)
				{
					Material[] array = assets;
					foreach (Material val9 in array)
					{
						if (((Object)val9.shader).name.StartsWith("Stubbed"))
						{
							Shader val10 = Addressables.LoadAssetAsync<Shader>((object)ShaderLookup[((Object)val9.shader).name.ToLower()]).WaitForCompletion();
							((Object)val9.shader).name.ToLower();
							if (Object.op_Implicit((Object)(object)val10))
							{
								val9.shader = val10;
								SwappedMaterials.Add(val9);
							}
							else
							{
								Log.Warning("Couldn't find replacement shader for " + ((Object)val9.shader).name.ToLower());
							}
						}
					}
				}
			});
			yield return LoadAllAssetsAsync<UnlockableDef>(_assetsAssetBundle, progress, (Action<UnlockableDef[]>)delegate(UnlockableDef[] assets)
			{
				contentPack.unlockableDefs.Add(assets);
			});
			yield return LoadAllAssetsAsync<CharacterSpawnCard>(_assetsAssetBundle, progress, (Action<CharacterSpawnCard[]>)delegate(CharacterSpawnCard[] assets)
			{
				CharacterSpawnCards.cscBobomb = assets.First((CharacterSpawnCard csc) => ((Object)csc).name == "cscBobomb");
				RegisterBobombToStages();
				if (RegigigasCompat.enabled)
				{
					CharacterSpawnCards.cscKingBobomb = assets.First((CharacterSpawnCard csc) => ((Object)csc).name == "cscKingBobomb2");
				}
			});
			yield return LoadAllAssetsAsync<Sprite>(_assetsAssetBundle, progress, (Action<Sprite[]>)delegate(Sprite[] assets)
			{
				SM64BBFPreviewSprite = assets.First((Sprite a) => ((Object)a).name == "texSM64BBFPreview");
			});
			yield return LoadAllAssetsAsync<SceneDef>(_assetsAssetBundle, progress, (Action<SceneDef[]>)delegate(SceneDef[] assets)
			{
				SM64BBFScene = assets.First((SceneDef sd) => sd.cachedName == "sm64_bbf_SM64_BBF");
				contentPack.sceneDefs.Add(assets);
			});
			yield return LoadAllAssetsAsync<MusicTrackDef>(_assetsAssetBundle, progress, (Action<MusicTrackDef[]>)delegate(MusicTrackDef[] assets)
			{
				contentPack.musicTrackDefs.Add(assets);
			});
			yield return LoadAllAssetsAsync<CoinPickupDef>(_assetsAssetBundle, progress, (Action<CoinPickupDef[]>)delegate(CoinPickupDef[] assets)
			{
				MiscPickups.Coin = assets.First((CoinPickupDef spd) => ((Object)spd).name == "CoinPickUpDef");
				contentPack.miscPickupDefs.Add((MiscPickupDef[])(object)assets);
			});
			yield return LoadAllAssetsAsync<StarmanPickupDef>(_assetsAssetBundle, progress, (Action<StarmanPickupDef[]>)delegate(StarmanPickupDef[] assets)
			{
				MiscPickups.Starman = assets.First((StarmanPickupDef spd) => ((Object)spd).name == "CustomStarmanPickupDef");
				contentPack.miscPickupDefs.Add((MiscPickupDef[])(object)assets);
			});
			yield return LoadAllAssetsAsync<GameObject>(_assetsAssetBundle, progress, (Action<GameObject[]>)delegate(GameObject[] assets)
			{
				GameObject val7 = assets.First((GameObject interactable) => ((Object)interactable).name == "TreeInteractable");
				GameObject val8 = assets.First((GameObject gameObject) => ((Object)gameObject).name == "RollingRock");
				contentPack.networkedObjectPrefabs.Add((GameObject[])(object)new GameObject[2] { val7, val8 });
			});
			yield return LoadAllAssetsAsync<ItemDef>(_assetsAssetBundle, progress, (Action<ItemDef[]>)delegate(ItemDef[] assets)
			{
				Items.MarioOneUp = assets.First((ItemDef id) => ((Object)id).name == "OneUp");
				contentPack.itemDefs.Add(assets);
			});
			yield return LoadAllAssetsAsync<GameObject>(_assetsAssetBundle, progress, (Action<GameObject[]>)delegate(GameObject[] assets)
			{
				//IL_0031: 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_004e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0053: 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_0071: Unknown result type (might be due to invalid IL or missing references)
				//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
				//IL_00de: Unknown result type (might be due to invalid IL or missing references)
				//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
				//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
				GameObject val5 = assets.First((GameObject bp) => ((Object)bp).name == "BobombBody");
				val5.GetComponent<CharacterBody>()._defaultCrosshairPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/UI/StandardCrosshair.prefab").WaitForCompletion();
				val5.GetComponent<CameraTargetParams>().cameraParams = Addressables.LoadAssetAsync<CharacterCameraParams>((object)"RoR2/Base/Common/ccpStandard.asset").WaitForCompletion();
				FootstepHandler componentInChildren = val5.GetComponentInChildren<FootstepHandler>();
				componentInChildren.footstepDustPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Common/VFX/GenericFootstepDust.prefab").WaitForCompletion();
				componentInChildren.enableFootstepDust = true;
				contentPack.bodyPrefabs.Add((GameObject[])(object)new GameObject[1] { val5 });
				if (RegigigasCompat.enabled)
				{
					GameObject val6 = assets.First((GameObject bp) => ((Object)bp).name == "KingBobomb2Body");
					val6.GetComponent<CharacterBody>()._defaultCrosshairPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/UI/StandardCrosshair.prefab").WaitForCompletion();
					val6.GetComponent<CameraTargetParams>().cameraParams = Addressables.LoadAssetAsync<CharacterCameraParams>((object)"RoR2/Base/Common/ccpStandardHuge.asset").WaitForCompletion();
					RegigigasCompat.SetupKingBobombBody(val6, contentPack);
					contentPack.bodyPrefabs.Add((GameObject[])(object)new GameObject[1] { val6 });
				}
			});
			yield return LoadAllAssetsAsync<GameObject>(_assetsAssetBundle, progress, (Action<GameObject[]>)delegate(GameObject[] assets)
			{
				GameObject val3 = assets.First((GameObject bp) => ((Object)bp).name == "BobombMaster");
				contentPack.masterPrefabs.Add((GameObject[])(object)new GameObject[1] { val3 });
				if (RegigigasCompat.enabled)
				{
					GameObject val4 = assets.First((GameObject bp) => ((Object)bp).name == "KingBobomb2Master");
					contentPack.masterPrefabs.Add((GameObject[])(object)new GameObject[1] { val4 });
				}
			});
			yield return LoadAllAssetsAsync<SkillDef>(_assetsAssetBundle, progress, (Action<SkillDef[]>)delegate(SkillDef[] assets)
			{
				contentPack.skillDefs.Add(assets);
				if (RegigigasCompat.enabled)
				{
					RegigigasCompat.SetupPrimarySkill(assets.First((SkillDef sd) => ((Object)sd).name == "KingBobombGrab"));
					RegigigasCompat.SetupSecondarySkill(assets.First((SkillDef sd) => ((Object)sd).name == "KingBobombEarthquake"));
					RegigigasCompat.SetupUtilitySkill(assets.First((SkillDef sd) => ((Object)sd).name == "KingBobombSlam"));
					RegigigasCompat.SetupSpecialSkill(assets.First((SkillDef sd) => ((Object)sd).name == "KingBobombRevenge"));
				}
			});
			yield return LoadAllAssetsAsync<SkillFamily>(_assetsAssetBundle, progress, (Action<SkillFamily[]>)delegate(SkillFamily[] assets)
			{
				contentPack.skillFamilies.Add(assets);
			});
			yield return LoadAllAssetsAsync<ItemDisplayRuleSet>(_assetsAssetBundle, progress, (Action<ItemDisplayRuleSet[]>)delegate(ItemDisplayRuleSet[] assets)
			{
				ItemDisplayRuleSet itemDisplayRuleSet = assets.First((ItemDisplayRuleSet idrs) => ((Object)idrs).name == "idrsBobomb");
				SetupBobombItemDisplays(ref itemDisplayRuleSet);
				if (RegigigasCompat.enabled)
				{
					ItemDisplayRuleSet itemDisplayRuleSet2 = assets.First((ItemDisplayRuleSet idrs) => ((Object)idrs).name == "idrsKingBobomb2");
					SetupKingBobombItemDisplays(ref itemDisplayRuleSet2);
				}
			});
			yield return LoadAllAssetsAsync<BuffDef>(_assetsAssetBundle, progress, (Action<BuffDef[]>)delegate(BuffDef[] assets)
			{
				//IL_0034: Unknown result type (might be due to invalid IL or missing references)
				//IL_0039: Unknown result type (might be due to invalid IL or missing references)
				Buffs.BobombArmor = assets.First((BuffDef bd) => ((Object)bd).name == "bdBobombArmorBuff");
				Buffs.BobombArmor.iconSprite = Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/Common/texBuffGenericShield.tif").WaitForCompletion();
				contentPack.buffDefs.Add((BuffDef[])(object)new BuffDef[1] { Buffs.BobombArmor });
			});
			RegisterSounds(contentPack);
			contentPack.entityStateTypes.Add(new Type[6]
			{
				typeof(StarManState),
				typeof(BobombAcquireTargetState),
				typeof(BobombDeathState),
				typeof(BobombExplodeState),
				typeof(BobombSpawnState),
				typeof(BobombSuicideDeathState)
			});
			AsyncOperationHandle<GameObject> bossDroplet = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Common/BossOrb.prefab");
			while (!bossDroplet.IsDone)
			{
				yield return null;
			}
			((MiscPickupDef)MiscPickups.Starman).dropletDisplayPrefab = bossDroplet.Result;
			((MiscPickupDef)MiscPickups.Coin).dropletDisplayPrefab = bossDroplet.Result;
			Material val = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/bazaar/matBazaarSeerWispgraveyard.mat").WaitForCompletion());
			val.mainTexture = (Texture)(object)SM64BBFPreviewSprite.texture;
			SM64BBFScene.previewTexture = (Texture)(object)SM64BBFPreviewSprite.texture;
			SM64BBFScene.portalMaterial = val;
			SetupMusic();
			ref SceneEntry[] sceneEntries = ref Addressables.LoadAssetAsync<SceneCollection>((object)"RoR2/Base/SceneGroups/sgStage5.asset").WaitForCompletion()._sceneEntries;
			SceneEntry val2 = new SceneEntry
			{
				sceneDef = SM64BBFScene
			};
			((SceneEntry)(ref val2)).weight = 1f;
			ArrayUtils.ArrayAppend<SceneEntry>(ref sceneEntries, ref val2);
			SM64BBFScene.destinationsGroup = Addressables.LoadAssetAsync<SceneCollection>((object)"RoR2/Base/SceneGroups/sgStage1.asset").WaitForCompletion();
			ref SceneEntry[] sceneEntries2 = ref Addressables.LoadAssetAsync<SceneCollection>((object)"RoR2/Base/SceneGroups/loopSgStage5.asset").WaitForCompletion()._sceneEntries;
			val2 = new SceneEntry
			{
				sceneDef = SM64BBFScene
			};
			((SceneEntry)(ref val2)).weight = 1f;
			ArrayUtils.ArrayAppend<SceneEntry>(ref sceneEntries2, ref val2);
			SM64BBFScene.loopedDestinationsGroup = Addressables.LoadAssetAsync<SceneCollection>((object)"RoR2/Base/SceneGroups/loopSgStage1.asset").WaitForCompletion();
		}

		private static void SetupBobombItemDisplays(ref ItemDisplayRuleSet itemDisplayRuleSet)
		{
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_0058: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0096: Unknown result type (might be due to invalid IL or missing references)
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_010f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0114: Unknown result type (might be due to invalid IL or missing references)
			//IL_011c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0121: Unknown result type (might be due to invalid IL or missing references)
			//IL_0131: Unknown result type (might be due to invalid IL or missing references)
			//IL_013e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0143: Unknown result type (might be due to invalid IL or missing references)
			//IL_0153: Unknown result type (might be due to invalid IL or missing references)
			//IL_0154: Unknown result type (might be due to invalid IL or missing references)
			//IL_0162: Unknown result type (might be due to invalid IL or missing references)
			//IL_016c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0175: Unknown result type (might be due to invalid IL or missing references)
			//IL_0181: Unknown result type (might be due to invalid IL or missing references)
			//IL_0186: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0209: Unknown result type (might be due to invalid IL or missing references)
			//IL_0211: Unknown result type (might be due to invalid IL or missing references)
			//IL_0212: Unknown result type (might be due to invalid IL or missing references)
			//IL_021e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0223: Unknown result type (might be due to invalid IL or missing references)
			//IL_023a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0244: Unknown result type (might be due to invalid IL or missing references)
			//IL_024d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0259: Unknown result type (might be due to invalid IL or missing references)
			//IL_025e: 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_028e: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0312: Unknown result type (might be due to invalid IL or missing references)
			//IL_031c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0325: Unknown result type (might be due to invalid IL or missing references)
			//IL_0331: Unknown result type (might be due to invalid IL or missing references)
			//IL_0336: Unknown result type (might be due to invalid IL or missing references)
			//IL_0361: Unknown result type (might be due to invalid IL or missing references)
			//IL_0366: Unknown result type (might be due to invalid IL or missing references)
			//IL_037c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0381: Unknown result type (might be due to invalid IL or missing references)
			//IL_0397: Unknown result type (might be due to invalid IL or missing references)
			//IL_039c: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_03bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0414: Unknown result type (might be due to invalid IL or missing references)
			//IL_0419: Unknown result type (might be due to invalid IL or missing references)
			//IL_042f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0434: Unknown result type (might be due to invalid IL or missing references)
			//IL_043c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0441: Unknown result type (might be due to invalid IL or missing references)
			//IL_0451: Unknown result type (might be due to invalid IL or missing references)
			//IL_0459: Unknown result type (might be due to invalid IL or missing references)
			//IL_045b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0467: Unknown result type (might be due to invalid IL or missing references)
			//IL_046c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0483: Unknown result type (might be due to invalid IL or missing references)
			//IL_048d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0496: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0508: Unknown result type (might be due to invalid IL or missing references)
			//IL_050d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0515: Unknown result type (might be due to invalid IL or missing references)
			//IL_051a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0525: Unknown result type (might be due to invalid IL or missing references)
			//IL_052e: Unknown result type (might be due to invalid IL or missing references)
			//IL_053a: Unknown result type (might be due to invalid IL or missing references)
			//IL_053f: Unknown result type (might be due to invalid IL or missing references)
			//IL_056a: Unknown result type (might be due to invalid IL or missing references)
			//IL_056f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0585: Unknown result type (might be due to invalid IL or missing references)
			//IL_058a: Unknown result type (might be due to invalid IL or missing references)
			//IL_05a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_05a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_05c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_05cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_05d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_05dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_05fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0607: Unknown result type (might be due to invalid IL or missing references)
			//IL_0613: Unknown result type (might be due to invalid IL or missing references)
			//IL_0618: Unknown result type (might be due to invalid IL or missing references)
			//IL_0643: Unknown result type (might be due to invalid IL or missing references)
			//IL_0648: Unknown result type (might be due to invalid IL or missing references)
			//IL_065e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0663: Unknown result type (might be due to invalid IL or missing references)
			//IL_0679: Unknown result type (might be due to invalid IL or missing references)
			//IL_067e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0686: Unknown result type (might be due to invalid IL or missing references)
			//IL_068b: Unknown result type (might be due to invalid IL or missing references)
			//IL_069b: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_06cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_06d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_06f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_071c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0721: Unknown result type (might be due to invalid IL or missing references)
			//IL_0737: Unknown result type (might be due to invalid IL or missing references)
			//IL_073c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0752: Unknown result type (might be due to invalid IL or missing references)
			//IL_0757: Unknown result type (might be due to invalid IL or missing references)
			//IL_075f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0764: Unknown result type (might be due to invalid IL or missing references)
			//IL_0774: Unknown result type (might be due to invalid IL or missing references)
			//IL_077c: Unknown result type (might be due to invalid IL or missing references)
			//IL_077e: Unknown result type (might be due to invalid IL or missing references)
			//IL_078a: Unknown result type (might be due to invalid IL or missing references)
			//IL_078f: Unknown result type (might be due to invalid IL or missing references)
			//IL_07a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_07b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_07b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_07ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_07f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_07fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0810: Unknown result type (might be due to invalid IL or missing references)
			//IL_0815: Unknown result type (might be due to invalid IL or missing references)
			//IL_082b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0830: Unknown result type (might be due to invalid IL or missing references)
			//IL_0838: Unknown result type (might be due to invalid IL or missing references)
			//IL_083d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0848: Unknown result type (might be due to invalid IL or missing references)
			//IL_0851: Unknown result type (might be due to invalid IL or missing references)
			//IL_085d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0862: Unknown result type (might be due to invalid IL or missing references)
			//IL_088d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0892: Unknown result type (might be due to invalid IL or missing references)
			//IL_08a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_08ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_08c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_08c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_08d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_08d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_08e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_08ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_08ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_08fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0900: Unknown result type (might be due to invalid IL or missing references)
			//IL_0917: Unknown result type (might be due to invalid IL or missing references)
			//IL_0921: Unknown result type (might be due to invalid IL or missing references)
			//IL_092a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0936: Unknown result type (might be due to invalid IL or missing references)
			//IL_093b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0966: Unknown result type (might be due to invalid IL or missing references)
			//IL_096b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0981: Unknown result type (might be due to invalid IL or missing references)
			//IL_0986: Unknown result type (might be due to invalid IL or missing references)
			//IL_099c: Unknown result type (might be due to invalid IL or missing references)
			//IL_09a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_09a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_09ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_09be: Unknown result type (might be due to invalid IL or missing references)
			//IL_09c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_09c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_09f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_09fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a03: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a0f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a14: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a3f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a44: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a5a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a5f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a75: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a7a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a82: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a87: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a97: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a9f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aa1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aad: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ab2: Unknown result type (might be due to invalid IL or missing references)
			GameObject followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteFire/DisplayEliteHorn.prefab").WaitForCompletion();
			DisplayRuleGroup displayRuleGroup = default(DisplayRuleGroup);
			((DisplayRuleGroup)(ref displayRuleGroup)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = followerPrefab,
				childName = "Head",
				localPos = new Vector3(-0.15365f, 0.21462f, -0.27426f),
				localAngles = new Vector3(354.7525f, 302.5303f, 7.12234f),
				localScale = new Vector3(0.44488f, 0.44488f, 0.44488f),
				limbMask = (LimbFlags)0
			});
			((DisplayRuleGroup)(ref displayRuleGroup)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = followerPrefab,
				childName = "Head",
				localPos = new Vector3(-0.12521f, 0.3066f, 0.3031f),
				localAngles = new Vector3(354.7525f, 231.6184f, 351.6044f),
				localScale = new Vector3(-0.44f, 0.44f, 0.44f),
				limbMask = (LimbFlags)0
			});
			ref KeyAssetRuleGroup[] keyAssetRuleGroups = ref itemDisplayRuleSet.keyAssetRuleGroups;
			KeyAssetRuleGroup val = new KeyAssetRuleGroup
			{
				keyAsset = (Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/Base/EliteFire/EliteFireEquipment.asset").WaitForCompletion(),
				displayRuleGroup = displayRuleGroup
			};
			ArrayUtils.ArrayAppend<KeyAssetRuleGroup>(ref keyAssetRuleGroups, ref val);
			DisplayRuleGroup displayRuleGroup2 = default(DisplayRuleGroup);
			((DisplayRuleGroup)(ref displayRuleGroup2)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteHaunted/DisplayEliteStealthCrown.prefab").WaitForCompletion(),
				childName = "Head",
				localPos = new Vector3(-0.02002f, 0.36085f, 0.01142f),
				localAngles = new Vector3(84.62356f, 329.7962f, 243.3615f),
				localScale = new Vector3(0.20258f, 0.20258f, 0.20258f),
				limbMask = (LimbFlags)0
			});
			ref KeyAssetRuleGroup[] keyAssetRuleGroups2 = ref itemDisplayRuleSet.keyAssetRuleGroups;
			val = new KeyAssetRuleGroup
			{
				displayRuleGroup = displayRuleGroup2,
				keyAsset = (Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/Base/EliteHaunted/EliteHauntedEquipment.asset").WaitForCompletion()
			};
			ArrayUtils.ArrayAppend<KeyAssetRuleGroup>(ref keyAssetRuleGroups2, ref val);
			DisplayRuleGroup displayRuleGroup3 = default(DisplayRuleGroup);
			((DisplayRuleGroup)(ref displayRuleGroup3)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteIce/DisplayEliteIceCrown.prefab").WaitForCompletion(),
				childName = "Head",
				localPos = new Vector3(0.05636f, 0.20679f, 0.06288f),
				localAngles = new Vector3(283.3743f, 102.7717f, 166.9378f),
				localScale = new Vector3(0.13275f, 0.13275f, 0.13275f),
				limbMask = (LimbFlags)0
			});
			ref KeyAssetRuleGroup[] keyAssetRuleGroups3 = ref itemDisplayRuleSet.keyAssetRuleGroups;
			val = new KeyAssetRuleGroup
			{
				displayRuleGroup = displayRuleGroup3,
				keyAsset = (Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/Base/EliteIce/EliteIceEquipment.asset").WaitForCompletion()
			};
			ArrayUtils.ArrayAppend<KeyAssetRuleGroup>(ref keyAssetRuleGroups3, ref val);
			DisplayRuleGroup displayRuleGroup4 = default(DisplayRuleGroup);
			((DisplayRuleGroup)(ref displayRuleGroup4)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteLightning/DisplayEliteRhinoHorn.prefab").WaitForCompletion(),
				childName = "Head",
				localPos = new Vector3(-0.47095f, 0.3003f, -0.02387f),
				localAngles = new Vector3(355.5493f, 269.5843f, 12.25919f),
				localScale = new Vector3(0.65886f, 0.65886f, 0.65886f),
				limbMask = (LimbFlags)0
			});
			((DisplayRuleGroup)(ref displayRuleGroup4)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteLightning/DisplayEliteRhinoHorn.prefab").WaitForCompletion(),
				childName = "Head",
				localPos = new Vector3(-0.41474f, 0.41538f, -0.02514f),
				localAngles = new Vector3(323.8193f, 261.7038f, 7.48606f),
				localScale = new Vector3(0.44488f, 0.44488f, 0.44488f),
				limbMask = (LimbFlags)0
			});
			ref KeyAssetRuleGroup[] keyAssetRuleGroups4 = ref itemDisplayRuleSet.keyAssetRuleGroups;
			val = new KeyAssetRuleGroup
			{
				displayRuleGroup = displayRuleGroup4,
				keyAsset = (Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/Base/EliteLightning/EliteLightningEquipment.asset").WaitForCompletion()
			};
			ArrayUtils.ArrayAppend<KeyAssetRuleGroup>(ref keyAssetRuleGroups4, ref val);
			DisplayRuleGroup displayRuleGroup5 = default(DisplayRuleGroup);
			((DisplayRuleGroup)(ref displayRuleGroup5)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteLunar/DisplayEliteLunar, Fire.prefab").WaitForCompletion(),
				childName = "Head",
				localPos = new Vector3(0.64709f, -0.88823f, 0.02083f),
				localAngles = new Vector3(11.76858f, 84.12247f, 3.64591f),
				localScale = new Vector3(0.44488f, 0.44488f, 0.44488f),
				limbMask = (LimbFlags)0
			});
			((DisplayRuleGroup)(ref displayRuleGroup5)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteLunar/DisplayEliteLunar,Eye.prefab").WaitForCompletion(),
				childName = "Head",
				localPos = new Vector3(-0.05048f, -0.05632f, -0.00397f),
				localAngles = new Vector3(81.85596f, 299.8571f, 309.0397f),
				localScale = new Vector3(1.02235f, 1.02235f, 1.02235f),
				limbMask = (LimbFlags)0
			});
			ref KeyAssetRuleGroup[] keyAssetRuleGroups5 = ref itemDisplayRuleSet.keyAssetRuleGroups;
			val = new KeyAssetRuleGroup
			{
				displayRuleGroup = displayRuleGroup5,
				keyAsset = (Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/Base/EliteLunar/EliteLunarEquipment.asset").WaitForCompletion()
			};
			ArrayUtils.ArrayAppend<KeyAssetRuleGroup>(ref keyAssetRuleGroups5, ref val);
			DisplayRuleGroup displayRuleGroup6 = default(DisplayRuleGroup);
			((DisplayRuleGroup)(ref displayRuleGroup6)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/ElitePoison/DisplayEliteUrchinCrown.prefab").WaitForCompletion(),
				childName = "Head",
				localPos = new Vector3(0.05243f, 0.2016f, -0.02218f),
				localAngles = new Vector3(280.5813f, 114.8507f, 252.4087f),
				localScale = new Vector3(0.25238f, 0.25238f, 0.25238f),
				limbMask = (LimbFlags)0
			});
			ref KeyAssetRuleGroup[] keyAssetRuleGroups6 = ref itemDisplayRuleSet.keyAssetRuleGroups;
			val = new KeyAssetRuleGroup
			{
				displayRuleGroup = displayRuleGroup6,
				keyAsset = (Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/Base/ElitePoison/ElitePoisonEquipment.asset").WaitForCompletion()
			};
			ArrayUtils.ArrayAppend<KeyAssetRuleGroup>(ref keyAssetRuleGroups6, ref val);
			DisplayRuleGroup displayRuleGroup7 = default(DisplayRuleGroup);
			((DisplayRuleGroup)(ref displayRuleGroup7)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/EliteEarth/DisplayEliteMendingAntlers.prefab").WaitForCompletion(),
				childName = "Head",
				localPos = new Vector3(-0.12323f, 0.22929f, 0.00569f),
				localAngles = new Vector3(13.38845f, 89.25855f, 356.7623f),
				localScale = new Vector3(2.60453f, 2.60453f, 2.60453f),
				limbMask = (LimbFlags)0
			});
			ref KeyAssetRuleGroup[] keyAssetRuleGroups7 = ref itemDisplayRuleSet.keyAssetRuleGroups;
			val = new KeyAssetRuleGroup
			{
				displayRuleGroup = displayRuleGroup7,
				keyAsset = (Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/DLC1/EliteEarth/EliteEarthEquipment.asset").WaitForCompletion()
			};
			ArrayUtils.ArrayAppend<KeyAssetRuleGroup>(ref keyAssetRuleGroups7, ref val);
			DisplayRuleGroup displayRuleGroup8 = default(DisplayRuleGroup);
			((DisplayRuleGroup)(ref displayRuleGroup8)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/EliteVoid/DisplayAffixVoid.prefab").WaitForCompletion(),
				childName = "Eyes",
				localPos = new Vector3(-0.01601f, 0.35024f, -0.22315f),
				localAngles = new Vector3(20.17711f, 258.0909f, 2.55114f),
				localScale = new Vector3(0.36462f, 0.36462f, 0.36462f),
				limbMask = (LimbFlags)0
			});
			((DisplayRuleGroup)(ref displayRuleGroup8)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/EliteVoid/DisplayAffixVoid.prefab").WaitForCompletion(),
				childName = "Eyes",
				localPos = new Vector3(-0.1112f, 0.35393f, 0.20253f),
				localAngles = new Vector3(20.17711f, 258.0909f, 2.55114f),
				localScale = new Vector3(0.36462f, 0.36462f, 0.36462f),
				limbMask = (LimbFlags)0
			});
			ref KeyAssetRuleGroup[] keyAssetRuleGroups8 = ref itemDisplayRuleSet.keyAssetRuleGroups;
			val = new KeyAssetRuleGroup
			{
				displayRuleGroup = displayRuleGroup8,
				keyAsset = (Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/DLC1/EliteVoid/EliteVoidEquipment.asset").WaitForCompletion()
			};
			ArrayUtils.ArrayAppend<KeyAssetRuleGroup>(ref keyAssetRuleGroups8, ref val);
			DisplayRuleGroup displayRuleGroup9 = default(DisplayRuleGroup);
			((DisplayRuleGroup)(ref displayRuleGroup9)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/Elites/EliteBead/DisplayEliteBeadSpike.prefab").WaitForCompletion(),
				childName = "Head",
				localPos = new Vector3(0f, 0f, 0f),
				localAngles = new Vector3(351.8527f, 1.20328f, 359.7321f),
				localScale = new Vector3(0.10228f, 0.10228f, 0.10228f),
				limbMask = (LimbFlags)0
			});
			ref KeyAssetRuleGroup[] keyAssetRuleGroups9 = ref itemDisplayRuleSet.keyAssetRuleGroups;
			val = new KeyAssetRuleGroup
			{
				displayRuleGroup = displayRuleGroup9,
				keyAsset = (Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/DLC2/Elites/EliteBead/EliteBeadEquipment.asset").WaitForCompletion()
			};
			ArrayUtils.ArrayAppend<KeyAssetRuleGroup>(ref keyAssetRuleGroups9, ref val);
			DisplayRuleGroup displayRuleGroup10 = default(DisplayRuleGroup);
			((DisplayRuleGroup)(ref displayRuleGroup10)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/Elites/EliteAurelionite/DisplayEliteAurelioniteEquipment.prefab").WaitForCompletion(),
				childName = "Head",
				localPos = new Vector3(-0.70343f, 0.297f, -0.0293f),
				localAngles = new Vector3(0f, 265.192f, 4f),
				localScale = new Vector3(1f, 1f, 1f),
				limbMask = (LimbFlags)0
			});
			ref KeyAssetRuleGroup[] keyAssetRuleGroups10 = ref itemDisplayRuleSet.keyAssetRuleGroups;
			val = new KeyAssetRuleGroup
			{
				displayRuleGroup = displayRuleGroup10,
				keyAsset = (Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/DLC2/Elites/EliteAurelionite/EliteAurelioniteEquipment.asset").WaitForCompletion()
			};
			ArrayUtils.ArrayAppend<KeyAssetRuleGroup>(ref keyAssetRuleGroups10, ref val);
		}

		private static void SetupKingBobombItemDisplays(ref ItemDisplayRuleSet itemDisplayRuleSet)
		{
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_0058: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0096: Unknown result type (might be due to invalid IL or missing references)
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_010f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0114: Unknown result type (might be due to invalid IL or missing references)
			//IL_011c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0121: Unknown result type (might be due to invalid IL or missing references)
			//IL_0131: Unknown result type (might be due to invalid IL or missing references)
			//IL_013e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0143: Unknown result type (might be due to invalid IL or missing references)
			//IL_0153: Unknown result type (might be due to invalid IL or missing references)
			//IL_0154: Unknown result type (might be due to invalid IL or missing references)
			//IL_0162: Unknown result type (might be due to invalid IL or missing references)
			//IL_016c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0175: Unknown result type (might be due to invalid IL or missing references)
			//IL_0181: Unknown result type (might be due to invalid IL or missing references)
			//IL_0186: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0209: Unknown result type (might be due to invalid IL or missing references)
			//IL_0211: Unknown result type (might be due to invalid IL or missing references)
			//IL_0212: Unknown result type (might be due to invalid IL or missing references)
			//IL_021e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0223: Unknown result type (might be due to invalid IL or missing references)
			//IL_023a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0244: Unknown result type (might be due to invalid IL or missing references)
			//IL_024d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0259: Unknown result type (might be due to invalid IL or missing references)
			//IL_025e: 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_028e: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0312: Unknown result type (might be due to invalid IL or missing references)
			//IL_031c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0325: Unknown result type (might be due to invalid IL or missing references)
			//IL_0331: Unknown result type (might be due to invalid IL or missing references)
			//IL_0336: Unknown result type (might be due to invalid IL or missing references)
			//IL_0361: Unknown result type (might be due to invalid IL or missing references)
			//IL_0366: Unknown result type (might be due to invalid IL or missing references)
			//IL_037c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0381: Unknown result type (might be due to invalid IL or missing references)
			//IL_0397: Unknown result type (might be due to invalid IL or missing references)
			//IL_039c: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_03bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0414: Unknown result type (might be due to invalid IL or missing references)
			//IL_0419: Unknown result type (might be due to invalid IL or missing references)
			//IL_042f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0434: Unknown result type (might be due to invalid IL or missing references)
			//IL_043c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0441: Unknown result type (might be due to invalid IL or missing references)
			//IL_044c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0455: Unknown result type (might be due to invalid IL or missing references)
			//IL_0461: Unknown result type (might be due to invalid IL or missing references)
			//IL_0466: Unknown result type (might be due to invalid IL or missing references)
			//IL_0491: Unknown result type (might be due to invalid IL or missing references)
			//IL_0496: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_04cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_04e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_04fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0529: Unknown result type (might be due to invalid IL or missing references)
			//IL_052e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0544: Unknown result type (might be due to invalid IL or missing references)
			//IL_0549: Unknown result type (might be due to invalid IL or missing references)
			//IL_055f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0564: Unknown result type (might be due to invalid IL or missing references)
			//IL_056c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0571: Unknown result type (might be due to invalid IL or missing references)
			//IL_057c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0585: Unknown result type (might be due to invalid IL or missing references)
			//IL_0591: Unknown result type (might be due to invalid IL or missing references)
			//IL_0596: Unknown result type (might be due to invalid IL or missing references)
			//IL_05c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_05c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_05dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_05fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0604: Unknown result type (might be due to invalid IL or missing references)
			//IL_0609: Unknown result type (might be due to invalid IL or missing references)
			//IL_0614: Unknown result type (might be due to invalid IL or missing references)
			//IL_061d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0629: Unknown result type (might be due to invalid IL or missing references)
			//IL_062e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0659: Unknown result type (might be due to invalid IL or missing references)
			//IL_065e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0674: Unknown result type (might be due to invalid IL or missing references)
			//IL_0679: Unknown result type (might be due to invalid IL or missing references)
			//IL_068f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0694: Unknown result type (might be due to invalid IL or missing references)
			//IL_069c: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_06bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_06cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_06f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0702: Unknown result type (might be due to invalid IL or missing references)
			//IL_0707: Unknown result type (might be due to invalid IL or missing references)
			//IL_0732: Unknown result type (might be due to invalid IL or missing references)
			//IL_0737: Unknown result type (might be due to invalid IL or missing references)
			//IL_074d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0752: Unknown result type (might be due to invalid IL or missing references)
			//IL_0768: Unknown result type (might be due to invalid IL or missing references)
			//IL_076d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0775: Unknown result type (might be due to invalid IL or missing references)
			//IL_077a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0785: Unknown result type (might be due to invalid IL or missing references)
			//IL_078e: Unknown result type (might be due to invalid IL or missing references)
			//IL_079a: Unknown result type (might be due to invalid IL or missing references)
			//IL_079f: Unknown result type (might be due to invalid IL or missing references)
			//IL_07ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_07cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_07e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_07ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_0800: Unknown result type (might be due to invalid IL or missing references)
			//IL_0805: Unknown result type (might be due to invalid IL or missing references)
			//IL_080d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0812: Unknown result type (might be due to invalid IL or missing references)
			//IL_0822: Unknown result type (might be due to invalid IL or missing references)
			//IL_082a: Unknown result type (might be due to invalid IL or missing references)
			//IL_082c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0838: Unknown result type (might be due to invalid IL or missing references)
			//IL_083d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0854: Unknown result type (might be due to invalid IL or missing references)
			//IL_085e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0867: Unknown result type (might be due to invalid IL or missing references)
			//IL_0873: Unknown result type (might be due to invalid IL or missing references)
			//IL_0878: Unknown result type (might be due to invalid IL or missing references)
			//IL_08a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_08a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_08be: Unknown result type (might be due to invalid IL or missing references)
			//IL_08c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_08d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_08de: Unknown result type (might be due to invalid IL or missing references)
			//IL_08e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_08eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_08fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0903: Unknown result type (might be due to invalid IL or missing references)
			//IL_0905: Unknown result type (might be due to invalid IL or missing references)
			//IL_0911: Unknown result type (might be due to invalid IL or missing references)
			//IL_0916: Unknown result type (might be due to invalid IL or missing references)
			//IL_092d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0937: Unknown result type (might be due to invalid IL or missing references)
			//IL_0940: Unknown result type (might be due to invalid IL or missing references)
			//IL_094c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0951: Unknown result type (might be due to invalid IL or missing references)
			//IL_097c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0981: Unknown result type (might be due to invalid IL or missing references)
			//IL_0997: Unknown result type (might be due to invalid IL or missing references)
			//IL_099c: Unknown result type (might be due to invalid IL or missing references)
			//IL_09b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_09b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_09bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_09c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_09dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_09de: Unknown result type (might be due to invalid IL or missing references)
			//IL_09ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_09ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a06: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a10: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a19: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a25: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a2a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a55: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a5a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a70: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a75: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a8b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a90: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a98: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a9d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aad: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ab5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ab7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ac3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ac8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0adf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ae9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0af2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0afe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b03: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b2e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b33: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b49: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b4e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b64: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b69: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b71: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b76: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b86: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b8e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b90: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b9c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ba1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bb8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bc2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bcb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bd7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bdc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c07: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c0c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c22: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c27: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c3d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c42: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c4a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c4f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c5f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c67: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c69: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c75: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c7a: Unknown result type (might be due to invalid IL or missing references)
			GameObject followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteFire/DisplayEliteHorn.prefab").WaitForCompletion();
			DisplayRuleGroup displayRuleGroup = default(DisplayRuleGroup);
			((DisplayRuleGroup)(ref displayRuleGroup)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = followerPrefab,
				childName = "Chest",
				localPos = new Vector3(0.59218f, 1.54394f, -0.05067f),
				localAngles = new Vector3(0f, 339.9597f, 0f),
				localScale = new Vector3(0.44488f, 0.44488f, 0.44488f),
				limbMask = (LimbFlags)0
			});
			((DisplayRuleGroup)(ref displayRuleGroup)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = followerPrefab,
				childName = "Chest",
				localPos = new Vector3(-0.71898f, 1.56142f, -0.13889f),
				localAngles = new Vector3(0f, 21.92726f, 0f),
				localScale = new Vector3(-0.44f, 0.44f, 0.44f),
				limbMask = (LimbFlags)0
			});
			ref KeyAssetRuleGroup[] keyAssetRuleGroups = ref itemDisplayRuleSet.keyAssetRuleGroups;
			KeyAssetRuleGroup val = new KeyAssetRuleGroup
			{
				keyAsset = (Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/Base/EliteFire/EliteFireEquipment.asset").WaitForCompletion(),
				displayRuleGroup = displayRuleGroup
			};
			ArrayUtils.ArrayAppend<KeyAssetRuleGroup>(ref keyAssetRuleGroups, ref val);
			DisplayRuleGroup displayRuleGroup2 = default(DisplayRuleGroup);
			((DisplayRuleGroup)(ref displayRuleGroup2)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteHaunted/DisplayEliteStealthCrown.prefab").WaitForCompletion(),
				childName = "Chest",
				localPos = new Vector3(-1E-05f, 1.59462f, -0.12945f),
				localAngles = new Vector3(280.6838f, 180f, 180f),
				localScale = new Vector3(0.3943f, 0.3943f, 0.3943f),
				limbMask = (LimbFlags)0
			});
			ref KeyAssetRuleGroup[] keyAssetRuleGroups2 = ref itemDisplayRuleSet.keyAssetRuleGroups;
			val = new KeyAssetRuleGroup
			{
				displayRuleGroup = displayRuleGroup2,
				keyAsset = (Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/Base/EliteHaunted/EliteHauntedEquipment.asset").WaitForCompletion()
			};
			ArrayUtils.ArrayAppend<KeyAssetRuleGroup>(ref keyAssetRuleGroups2, ref val);
			DisplayRuleGroup displayRuleGroup3 = default(DisplayRuleGroup);
			((DisplayRuleGroup)(ref displayRuleGroup3)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteIce/DisplayEliteIceCrown.prefab").WaitForCompletion(),
				childName = "Chest",
				localPos = new Vector3(0f, 1.62464f, -0.2518f),
				localAngles = new Vector3(278.8098f, 180f, 180f),
				localScale = new Vector3(0.20986f, 0.20986f, 0.20986f),
				limbMask = (LimbFlags)0
			});
			ref KeyAssetRuleGroup[] keyAssetRuleGroups3 = ref itemDisplayRuleSet.keyAssetRuleGroups;
			val = new KeyAssetRuleGroup
			{
				displayRuleGroup = displayRuleGroup3,
				keyAsset = (Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/Base/EliteIce/EliteIceEquipment.asset").WaitForCompletion()
			};
			ArrayUtils.ArrayAppend<KeyAssetRuleGroup>(ref keyAssetRuleGroups3, ref val);
			DisplayRuleGroup displayRuleGroup4 = default(DisplayRuleGroup);
			((DisplayRuleGroup)(ref displayRuleGroup4)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteLightning/DisplayEliteRhinoHorn.prefab").WaitForCompletion(),
				childName = "Chest",
				localPos = new Vector3(-1E-05f, 1.92614f, 0.98929f),
				localAngles = new Vector3(0f, 0f, 0f),
				localScale = new Vector3(0.65886f, 0.65886f, 0.65886f),
				limbMask = (LimbFlags)0
			});
			((DisplayRuleGroup)(ref displayRuleGroup4)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteLightning/DisplayEliteRhinoHorn.prefab").WaitForCompletion(),
				childName = "Chest",
				localPos = new Vector3(0.8654f, 1.92616f, 0.56131f),
				localAngles = new Vector3(0f, 55.35863f, 0f),
				localScale = new Vector3(0.65886f, 0.65886f, 0.65886f),
				limbMask = (LimbFlags)0
			});
			((DisplayRuleGroup)(ref displayRuleGroup4)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteLightning/DisplayEliteRhinoHorn.prefab").WaitForCompletion(),
				childName = "Chest",
				localPos = new Vector3(0.93271f, 1.92613f, -0.572f),
				localAngles = new Vector3(0f, 120.2551f, 0f),
				localScale = new Vector3(0.65886f, 0.65886f, 0.65886f),
				limbMask = (LimbFlags)0
			});
			((DisplayRuleGroup)(ref displayRuleGroup4)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteLightning/DisplayEliteRhinoHorn.prefab").WaitForCompletion(),
				childName = "Chest",
				localPos = new Vector3(-0.02104f, 1.9261f, -1.07331f),
				localAngles = new Vector3(0f, 173.6604f, 0f),
				localScale = new Vector3(0.65886f, 0.65886f, 0.65886f),
				limbMask = (LimbFlags)0
			});
			((DisplayRuleGroup)(ref displayRuleGroup4)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteLightning/DisplayEliteRhinoHorn.prefab").WaitForCompletion(),
				childName = "Chest",
				localPos = new Vector3(-0.91867f, 1.92607f, -0.55149f),
				localAngles = new Vector3(0f, 239.4073f, 0f),
				localScale = new Vector3(0.65886f, 0.65886f, 0.65886f),
				limbMask = (LimbFlags)0
			});
			((DisplayRuleGroup)(ref displayRuleGroup4)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteLightning/DisplayEliteRhinoHorn.prefab").WaitForCompletion(),
				childName = "Chest",
				localPos = new Vector3(-0.94588f, 1.92609f, 0.53167f),
				localAngles = new Vector3(0f, 295.5718f, 0f),
				localScale = new Vector3(0.65886f, 0.65886f, 0.65886f),
				limbMask = (LimbFlags)0
			});
			ref KeyAssetRuleGroup[] keyAssetRuleGroups4 = ref itemDisplayRuleSet.keyAssetRuleGroups;
			val = new KeyAssetRuleGroup
			{
				displayRuleGroup = displayRuleGroup4,
				keyAsset = (Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/Base/EliteLightning/EliteLightningEquipment.asset").WaitForCompletion()
			};
			ArrayUtils.ArrayAppend<KeyAssetRuleGroup>(ref keyAssetRuleGroups4, ref val);
			DisplayRuleGroup displayRuleGroup5 = default(DisplayRuleGroup);
			((DisplayRuleGroup)(ref displayRuleGroup5)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteLunar/DisplayEliteLunar, Fire.prefab").WaitForCompletion(),
				childName = "Chest",
				localPos = new Vector3(0f, -1E-05f, -1.46488f),
				localAngles = new Vector3(-1E-05f, 180f, 180f),
				localScale = new Vector3(0.44488f, 0.44488f, 0.7475f),
				limbMask = (LimbFlags)0
			});
			((DisplayRuleGroup)(ref displayRuleGroup5)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteLunar/DisplayEliteLunar,Eye.prefab").WaitForCompletion(),
				childName = "Chest",
				localPos = new Vector3(-0.06016f, 1.72845f, 1E-05f),
				localAngles = new Vector3(270f, 0f, 0f),
				localScale = new Vector3(1.77583f, 1.77583f, 1.77583f),
				limbMask = (LimbFlags)0
			});
			ref KeyAssetRuleGroup[] keyAssetRuleGroups5 = ref itemDisplayRuleSet.keyAssetRuleGroups;
			val = new KeyAssetRuleGroup
			{
				displayRuleGroup = displayRuleGroup5,
				keyAsset = (Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/Base/EliteLunar/EliteLunarEquipment.asset").WaitForCompletion()
			};
			ArrayUtils.ArrayAppend<KeyAssetRuleGroup>(ref keyAssetRuleGroups5, ref val);
			DisplayRuleGroup displayRuleGroup6 = default(DisplayRuleGroup);
			((DisplayRuleGroup)(ref displayRuleGroup6)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/ElitePoison/DisplayEliteUrchinCrown.prefab").WaitForCompletion(),
				childName = "Chest",
				localPos = new Vector3(0f, 1.82306f, 0f),
				localAngles = new Vector3(270f, 0f, 0f),
				localScale = new Vector3(0.34402f, 0.34402f, 0.34402f),
				limbMask = (LimbFlags)0
			});
			ref KeyAssetRuleGroup[] keyAssetRuleGroups6 = ref itemDisplayRuleSet.keyAssetRuleGroups;
			val = new KeyAssetRuleGroup
			{
				displayRuleGroup = displayRuleGroup6,
				keyAsset = (Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/Base/ElitePoison/ElitePoisonEquipment.asset").WaitForCompletion()
			};
			ArrayUtils.ArrayAppend<KeyAssetRuleGroup>(ref keyAssetRuleGroups6, ref val);
			DisplayRuleGroup displayRuleGroup7 = default(DisplayRuleGroup);
			((DisplayRuleGroup)(ref displayRuleGroup7)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/EliteEarth/DisplayEliteMendingAntlers.prefab").WaitForCompletion(),
				childName = "Chest",
				localPos = new Vector3(-0.00012f, 1.66408f, -0.25776f),
				localAngles = new Vector3(0f, 0f, 0f),
				localScale = new Vector3(4.68954f, 4.68954f, 4.68954f),
				limbMask = (LimbFlags)0
			});
			ref KeyAssetRuleGroup[] keyAssetRuleGroups7 = ref itemDisplayRuleSet.keyAssetRuleGroups;
			val = new KeyAssetRuleGroup
			{
				displayRuleGroup = displayRuleGroup7,
				keyAsset = (Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/DLC1/EliteEarth/EliteEarthEquipment.asset").WaitForCompletion()
			};
			ArrayUtils.ArrayAppend<KeyAssetRuleGroup>(ref keyAssetRuleGroups7, ref val);
			DisplayRuleGroup displayRuleGroup8 = default(DisplayRuleGroup);
			((DisplayRuleGroup)(ref displayRuleGroup8)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/EliteVoid/DisplayAffixVoid.prefab").WaitForCompletion(),
				childName = "Chest",
				localPos = new Vector3(0f, -0.83569f, 1.7186f),
				localAngles = new Vector3(90f, 0f, 0f),
				localScale = new Vector3(0.36462f, 0.36462f, 0.36462f),
				limbMask = (LimbFlags)0
			});
			ref KeyAssetRuleGroup[] keyAssetRuleGroups8 = ref itemDisplayRuleSet.keyAssetRuleGroups;
			val = new KeyAssetRuleGroup
			{
				displayRuleGroup = displayRuleGroup8,
				keyAsset = (Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/DLC1/EliteVoid/EliteVoidEquipment.asset").WaitForCompletion()
			};
			ArrayUtils.ArrayAppend<KeyAssetRuleGroup>(ref keyAssetRuleGroups8, ref val);
			DisplayRuleGroup displayRuleGroup9 = default(DisplayRuleGroup);
			((DisplayRuleGroup)(ref displayRuleGroup9)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/Elites/EliteBead/DisplayEliteBeadSpike.prefab").WaitForCompletion(),
				childName = "Chest",
				localPos = new Vector3(-0.00333f, 1.08781f, -0.20362f),
				localAngles = new Vector3(0f, 0f, 0f),
				localScale = new Vector3(0.20273f, 0.13253f, 0.20273f),
				limbMask = (LimbFlags)0
			});
			ref KeyAssetRuleGroup[] keyAssetRuleGroups9 = ref itemDisplayRuleSet.keyAssetRuleGroups;
			val = new KeyAssetRuleGroup
			{
				displayRuleGroup = displayRuleGroup9,
				keyAsset = (Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/DLC2/Elites/EliteBead/EliteBeadEquipment.asset").WaitForCompletion()
			};
			ArrayUtils.ArrayAppend<KeyAssetRuleGroup>(ref keyAssetRuleGroups9, ref val);
			DisplayRuleGroup displayRuleGroup10 = default(DisplayRuleGroup);
			((DisplayRuleGroup)(ref displayRuleGroup10)).AddDisplayRule(new ItemDisplayRule
			{
				ruleType = (ItemDisplayRuleType)0,
				followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/Elites/EliteAurelionite/DisplayEliteAurelioniteEquipment.prefab").WaitForCompletion(),
				childName = "Chest",
				localPos = new Vector3(0.04781f, 1.64264f, 1.12044f),
				localAngles = new Vector3(0f, 0f, 0f),
				localScale = new Vector3(1.65698f, 1.65698f, 1.65698f),
				limbMask = (LimbFlags)0
			});
			ref KeyAssetRuleGroup[] keyAssetRuleGroups10 = ref itemDisplayRuleSet.keyAssetRuleGroups;
			val = new KeyAssetRuleGroup
			{
				displayRuleGroup = displayRuleGroup10,
				keyAsset = (Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/DLC2/Elites/EliteAurelionite/EliteAurelioniteEquipment.asset").WaitForCompletion()
			};
			ArrayUtils.ArrayAppend<KeyAssetRuleGroup>(ref keyAssetRuleGroups10, ref val);
		}

		private static IEnumerator LoadAllAssetsAsync<T>(AssetBundle assetBundle, IProgress<float> progress, Action<T[]> onAssetsLoaded) where T : Object
		{
			AssetBundleRequest sceneDefsRequest = assetBundle.LoadAllAssetsAsync<T>();
			while (!((AsyncOperation)sceneDefsRequest).isDone)
			{
				progress.Report(((AsyncOperation)sceneDefsRequest).progress);
				yield return null;
			}
			onAssetsLoaded(sceneDefsRequest.allAssets.Cast<T>().ToArray());
		}

		private static void SetupMusic()
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_009d: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
			CustomMusicTrackDef val = ScriptableObject.CreateInstance<CustomMusicTrackDef>();
			((MusicTrackDef)val).cachedName = "SM64BBFCustomMainMusic";
			val.CustomStates = new List<CustomState>();
			CustomState item = default(CustomState);
			item.GroupId = 3906687288u;
			item.StateId = 693170834u;
			val.CustomStates.Add(item);
			CustomState item2 = default(CustomState);
			item2.GroupId = 792781730u;
			item2.StateId = 89505537u;
			val.CustomStates.Add(item2);
			SM64BBFScene.mainTrack = (MusicTrackDef)(object)val;
			CustomMusicTrackDef val2 = ScriptableObject.CreateInstance<CustomMusicTrackDef>();
			((MusicTrackDef)val2).cachedName = "SM64BBFCustomBossMusic";
			val2.CustomStates = new List<CustomState>();
			CustomState item3 = default(CustomState);
			item3.GroupId = 3906687288u;
			item3.StateId = 1312500510u;
			val2.CustomStates.Add(item3);
			CustomState item4 = default(CustomState);
			item4.GroupId = 792781730u;
			item4.StateId = 580146960u;
			val2.CustomStates.Add(item4);
			SM64BBFScene.bossTrack = (MusicTrackDef)(object)val2;
		}

		private static void RegisterSounds(ContentPack contentPack)
		{
			contentPack.networkSoundEventDefs.Add((NetworkSoundEventDef[])(object)new NetworkSoundEventDef[15]
			{
				RegisterNetworkSound("SM64_BBF_Play_Coin"),
				RegisterNetworkSound("SM64_BBF_Stop_StarmanComes"),
				RegisterNetworkSound("SM64_BBF_StarmanKills"),
				RegisterNetworkSound("SM64_BBF_Play_Star"),
				RegisterNetworkSound("SM64_BBF_Stop_RollingStone"),
				RegisterNetworkSound("SM64_BBF_Play_StarmanComes"),
				RegisterNetworkSound("SM64_BBF_Play_RollingStone"),
				RegisterNetworkSound("SM64_BBF_solonggaybowser"),
				RegisterNetworkSound("SM64_BBF_Play_OneUp"),
				RegisterNetworkSound("SM64_BBF_Play_Bobomb_Aggro"),
				RegisterNetworkSound("SM64_BBF_Play_Bobomb_Fuse"),
				RegisterNetworkSound("SM64_BBF_Stop_Bobomb_Fuse"),
				RegisterNetworkSound("SM64_BBF_Play_Bobomb_Death"),
				RegisterNetworkSound("SM64_BBF_Play_Shake_Tree"),
				RegisterNetworkSound("SM64_BBF_ThankYou")
			});
		}

		private static void RegisterBobombToStages()
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			//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_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_0049: Expected O, but got Unknown
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Expected O, but got Unknown
			DirectorCardHolder cardHolder = new DirectorCardHolder
			{
				Card = new DirectorCard
				{
					spawnCard = (SpawnCard)(object)CharacterSpawnCards.cscBobomb,
					selectionWeight = Config.BobombSpawning.SelectionWeight.Value,
					spawnDistance = (MonsterSpawnDistance)0,
					preventOverhead = true,
					minimumStageCompletions = Config.BobombSpawning.MinimumStageCount.Value
				},
				MonsterCategory = (MonsterCategory)2
			};
			AddMonsterToStage(Config.BobombSpawning.SpawnArena.Value, cardHolder, (Stage)4096);
			AddMonsterToStage(Config.BobombSpawning.SpawnAncientLoft.Value, cardHolder, (Stage)262144);
			AddMonsterToStage(Config.BobombSpawning.SpawnBlackBeach.Value, cardHolder, (Stage)4);
			AddMonsterToStage(Config.BobombSpawning.SpawnDampCaveSimple.Value, cardHolder, (Stage)128);
			AddMonsterToStage(Config.BobombSpawning.SpawnFoggySwamp.Value, cardHolder, (Stage)8);
			AddMonsterToStage(Config.BobombSpawning.SpawnFrozenWall.Value, cardHolder, (Stage)32);
			AddMonsterToStage(Config.BobombSpawning.SpawnGolemPlains.Value, cardHolder, (Stage)2);
			AddMonsterToStage(Config.BobombSpawning.SpawnGooLake.Value, cardHolder, (Stage)16);
			AddMonsterToStage(Config.BobombSpawning.SpawnLakes.Value, cardHolder, (Stage)1073741824);
			AddMonsterToStage(Config.BobombSpawning.SpawnRootJungle.Value, cardHolder, (Stage)131072);
			AddMonsterToStage(Config.BobombSpawning.SpawnShipGraveyard.Value, cardHolder, (Stage)256);
			AddMonsterToStage(Config.BobombSpawning.SpawnSkyMeadow.Value, cardHolder, (Stage)16384);
			AddMonsterToStage(Config.BobombSpawning.SpawnSnowyForest.Value, cardHolder, (Stage)67108864);
			AddMonsterToStage(Config.BobombSpawning.SpawnSulfurPools.Value, cardHolder, (Stage)134217728);
			AddMonsterToStage(Config.BobombSpawning.SpawnWispGraveyard.Value, cardHolder, (Stage)64);
			AddMonsterToStage(Config.BobombSpawning.SpawnSimulacrum.Value, cardHolder, (Stage)8388608);
			AddMonsterToStage(Config.BobombSpawning.SpawnSimulacrum.Value, cardHolder, (Stage)1048576);
			AddMonsterToStage(Config.BobombSpawning.SpawnSimulacrum.Value, cardHolder, (Stage)524288);
			AddMonsterToStage(Config.BobombSpawning.SpawnSimulacrum.Value, cardHolder, (Stage)16777216);
			AddMonsterToStage(Config.BobombSpawning.SpawnSimulacrum.Value, cardHolder, (Stage)2097152);
			AddMonsterToStage(Config.BobombSpawning.SpawnSimulacrum.Value, cardHolder, (Stage)33554432);
			AddMonsterToStage(Config.BobombSpawning.SpawnSimulacrum.Value, cardHolder, (Stage)4194304);
			if (!Utility.IsNullOrWhiteSpace(Config.BobombSpawning.SpawnCustomStages.Value))
			{
				string[] array = string.Join("", Config.BobombSpawning.SpawnCustomStages.Value.Split((string[]?)null, StringSplitOptions.RemoveEmptyEntries)).Split(',');
				foreach (string customStage in array)
				{
					AddMonsterToStage(needToAdd: true, cardHolder, (Stage)1, addToFamilies: false, customStage);
				}
			}
		}

		private static void AddMonsterToStage(bool needToAdd, DirectorCardHolder cardHolder, Stage stage, bool addToFamilies = false, string customStage = "")
		{
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			if (needToAdd)
			{
				Helpers.AddNewMonsterToStage(cardHolder, addToFamilies, stage, customStage);
			}
		}

		public static NetworkSoundEventDef RegisterNetworkSound(string eventName)
		{
			NetworkSoundEventDef obj = ScriptableObject.CreateInstance<NetworkSoundEventDef>();
			obj.eventName = eventName;
			return obj;
		}

		internal static void LoadSoundBanks(string soundbanksFolderPath)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: 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_0009: Invalid comparison between Unknown and I4
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_004f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Invalid comparison between Unknown and I4
			//IL_0069: 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_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_008d: Invalid comparison between Unknown and I4
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c9: Invalid comparison between Unknown and I4
			//IL_00e0: Unknown result type (might be due to invalid IL or missing references)
			AKRESULT val = AkSoundEngine.AddBasePath(soundbanksFolderPath);
			if ((int)val == 1)
			{
				Log.Info("Added bank base path : " + soundbanksFolderPath);
			}
			else
			{
				Log.Error("Error adding base