Decompiled source of MisakiRocket v2.0.1

MisakiRocket.dll

Decompiled 2 weeks 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.Versioning;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using DynamicSkins;
using Microsoft.CodeAnalysis;
using MisakiRocketPlugin;
using MonoMod.RuntimeDetour;
using MonoMod.RuntimeDetour.HookGen;
using MwSkinAdditions;
using RoR2;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Rendering;

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

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace MisakiRocketPlugin
{
	public static class MwSkinEvents
	{
		public static void Init(SkinDef[] skins)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Expected O, but got Unknown
			//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_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0040: Expected O, but got Unknown
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			//IL_0069: 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_0087: Unknown result type (might be due to invalid IL or missing references)
			//IL_008d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Expected O, but got Unknown
			//IL_009a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a9: 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_00b5: Expected O, but got Unknown
			//IL_00bc: 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_00cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d7: Expected O, but got Unknown
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f9: Expected O, but got Unknown
			//IL_0100: 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_0115: Unknown result type (might be due to invalid IL or missing references)
			//IL_011b: Expected O, but got Unknown
			//IL_0122: Unknown result type (might be due to invalid IL or missing references)
			//IL_012c: 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_0137: Unknown result type (might be due to invalid IL or missing references)
			//IL_013d: Expected O, but got Unknown
			//IL_0143: Unknown result type (might be due to invalid IL or missing references)
			//IL_0149: Expected O, but got Unknown
			EventSubOptions val = new EventSubOptions();
			val.boneTransformations = (BoneTransformation[])(object)new BoneTransformation[8]
			{
				new BoneTransformation("Armature/Root/Base/spine1/spine2/spine3/shoulder.L/upper_arm.L", Vector3.one * 0.88f, new Vector3(-0.15f, -0.1f, -0.1f), (string)null),
				new BoneTransformation("Armature/Root/Base/spine1/spine2/spine3/shoulder.L/upper_arm.L/forearm.L/hand.L", Vector3.one * 0.6f, Vector3.zero, (string)null),
				new BoneTransformation("Armature/Root/Base/spine1/spine2/spine3/shoulder.R/upper_arm.R", Vector3.one * 0.88f, new Vector3(0f, 0f, -0.05f), (string)null),
				new BoneTransformation("Armature/Root/Base/spine1/spine2/spine3/shoulder.R/upper_arm.R/forearm.R/hand.R", Vector3.one * 0.6f, Vector3.zero, (string)null),
				new BoneTransformation("Armature/Root/Base/Pelvis/thigh.L", Vector3.one, Vector3.back * 0.1f, (string)null),
				new BoneTransformation("Armature/Root/Base/Pelvis/thigh.R", Vector3.one, Vector3.back * 0.02f, (string)null),
				new BoneTransformation("Armature/Root/Base/spine1/spine2", Vector3.one, new Vector3(-0.06f, -0.1f), (string)null),
				new BoneTransformation("Armature/Root", Vector3.one * 0.9f, Vector3.zero, (string)null)
			};
			EventSub val2 = new EventSub(skins, val);
			val2.Init();
		}
	}
}
namespace MisakiRocket
{
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInPlugin("com.VanillaVitamins.MisakiRocket", "MisakiRocket", "2.0.0")]
	public class MisakiRocketPlugin : BaseUnityPlugin
	{
		public class DynamicSkinExtension
		{
			private Modification DefMisakiRocketcoat11BModification;

			private Modification DefMisakiRocketcoat11LModification;

			private Modification DefMisakiRocketcoat11RModification;

			private Modification DefMisakiRocketcoat21LModification;

			private Modification DefMisakiRocketcoat21RModification;

			private Modification DefMisakiRocketcoat31LModification;

			private Modification DefMisakiRocketcoat31RModification;

			private Modification DefMisakiRocketcoat41LModification;

			private Modification DefMisakiRocketcoat41RModification;

			private Modification DefMisakiRocketbagcharm1Modification;

			private Modification DefMisakiRocketbagstrapL1Modification;

			private Modification DefMisakiRocketbagstrapR1Modification;

			private Modification DefMisakiRockethoodiestrapL1Modification;

			private Modification DefMisakiRockethoodiestrapR1Modification;

			private Modification DefMisakiRocketcoatstrapL1Modification;

			private Modification DefMisakiRocketcoatstrapR1Modification;

			private Modification DefMisakiRockethair1Modification;

			private Modification DefMisakiRockethair2Modification;

			private Modification DefMisakiRockethair3Modification;

			private Modification DefMisakiRockethair4Modification;

			private Modification DefMisakiRockethair5Modification;

			private Modification DefMisakiRockethair6Modification;

			private Modification DefMisakiRockethair7Modification;

			private Modification DefMisakiRockethair8Modification;

			private Modification DefMisakiRockethair9Modification;

			private Modification DefMisakiRockethair10Modification;

			private Modification DefMisakiRocketMaskDowncoat11BModification;

			private Modification DefMisakiRocketMaskDowncoat11LModification;

			private Modification DefMisakiRocketMaskDowncoat11RModification;

			private Modification DefMisakiRocketMaskDowncoat21LModification;

			private Modification DefMisakiRocketMaskDowncoat21RModification;

			private Modification DefMisakiRocketMaskDowncoat31LModification;

			private Modification DefMisakiRocketMaskDowncoat31RModification;

			private Modification DefMisakiRocketMaskDowncoat41LModification;

			private Modification DefMisakiRocketMaskDowncoat41RModification;

			private Modification DefMisakiRocketMaskDownbagcharm1Modification;

			private Modification DefMisakiRocketMaskDownbagstrapL1Modification;

			private Modification DefMisakiRocketMaskDownbagstrapR1Modification;

			private Modification DefMisakiRocketMaskDownhoodiestrapL1Modification;

			private Modification DefMisakiRocketMaskDownhoodiestrapR1Modification;

			private Modification DefMisakiRocketMaskDowncoatstrapL1Modification;

			private Modification DefMisakiRocketMaskDowncoatstrapR1Modification;

			private Modification DefMisakiRocketMaskDownhair1Modification;

			private Modification DefMisakiRocketMaskDownhair2Modification;

			private Modification DefMisakiRocketMaskDownhair3Modification;

			private Modification DefMisakiRocketMaskDownhair4Modification;

			private Modification DefMisakiRocketMaskDownhair5Modification;

			private Modification DefMisakiRocketMaskDownhair6Modification;

			private Modification DefMisakiRocketMaskDownhair7Modification;

			private Modification DefMisakiRocketMaskDownhair8Modification;

			private Modification DefMisakiRocketMaskDownhair9Modification;

			private Modification DefMisakiRocketMaskDownhair10Modification;

			internal void BeforeStart()
			{
				//IL_0039: Unknown result type (might be due to invalid IL or missing references)
				_DynamicSkinManager.InstanceLogger = ((BaseUnityPlugin)Instance).Logger;
				new Hook((MethodBase)typeof(SkinDef).GetMethod("ApplyAsync"), (Delegate)new Func<Func<SkinDef, GameObject, List<AssetReferenceT<Material>>, List<AssetReferenceT<Mesh>>, int, IEnumerator>, SkinDef, GameObject, List<AssetReferenceT<Material>>, List<AssetReferenceT<Mesh>>, int, IEnumerator>(_DynamicSkinManager.SkinDefApply)).Apply();
			}

			internal void AfterStart()
			{
				InitializeModifications();
				InitializeDynamicBones();
				AddModificationsToList();
			}

			internal void BeforeBodyCatalogInit()
			{
				RocketSurvivorBodyDefMisakiRocketSkinAddedEvent += onSkinAdded;
				RocketSurvivorBodyDefMisakiRocketMaskDownSkinAddedEvent += onSkinAdded;
			}

			internal void AfterBodyCatalogInit()
			{
			}

			private void InitializeModifications()
			{
				DefMisakiRocketcoat11BModification = new Modification("coat11B.prefab", "spine2", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 127, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketcoat11LModification = new Modification("coat11L.prefab", "spine2", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 104, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketcoat11RModification = new Modification("coat11R.prefab", "spine2", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 132, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketcoat21LModification = new Modification("coat21L.prefab", "spine2", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 109, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketcoat21RModification = new Modification("coat21R.prefab", "spine2", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 137, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketcoat31LModification = new Modification("coat31L.prefab", "spine2", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 117, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketcoat31RModification = new Modification("coat31R.prefab", "spine2", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 145, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketcoat41LModification = new Modification("coat41L.prefab", "spine2", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 122, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketcoat41RModification = new Modification("coat41R.prefab", "spine2", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 150, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketbagcharm1Modification = new Modification("bagcharm1.prefab", "spine3", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 99, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketbagstrapL1Modification = new Modification("bagstrapL1.prefab", "spine3", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 91, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketbagstrapR1Modification = new Modification("bagstrapR1.prefab", "spine3", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 95, AffectsBaseModel: true, assetBundle);
				DefMisakiRockethoodiestrapL1Modification = new Modification("hoodiestrapL1.prefab", "spine3", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 87, AffectsBaseModel: true, assetBundle);
				DefMisakiRockethoodiestrapR1Modification = new Modification("hoodiestrapR1.prefab", "spine3", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 89, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketcoatstrapL1Modification = new Modification("coatstrapL1.prefab", "upper_arm.L", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 60, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketcoatstrapR1Modification = new Modification("coatstrapR1.prefab", "upper_arm.R", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 85, AffectsBaseModel: true, assetBundle);
				DefMisakiRockethair1Modification = new Modification("hair1.prefab", "head", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 19, AffectsBaseModel: true, assetBundle);
				DefMisakiRockethair2Modification = new Modification("hair2.prefab", "head", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 21, AffectsBaseModel: true, assetBundle);
				DefMisakiRockethair3Modification = new Modification("hair3.prefab", "head", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 23, AffectsBaseModel: true, assetBundle);
				DefMisakiRockethair4Modification = new Modification("hair4.prefab", "head", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 25, AffectsBaseModel: true, assetBundle);
				DefMisakiRockethair5Modification = new Modification("hair5.prefab", "head", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 27, AffectsBaseModel: true, assetBundle);
				DefMisakiRockethair6Modification = new Modification("hair6.prefab", "head", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 29, AffectsBaseModel: true, assetBundle);
				DefMisakiRockethair7Modification = new Modification("hair7.prefab", "head", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 31, AffectsBaseModel: true, assetBundle);
				DefMisakiRockethair8Modification = new Modification("hair8.prefab", "head", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 33, AffectsBaseModel: true, assetBundle);
				DefMisakiRockethair9Modification = new Modification("hair9.prefab", "head", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 35, AffectsBaseModel: true, assetBundle);
				DefMisakiRockethair10Modification = new Modification("hair10.prefab", "head", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 37, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDowncoat11BModification = new Modification("coat11B.prefab", "spine2", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 127, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDowncoat11LModification = new Modification("coat11L.prefab", "spine2", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 104, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDowncoat11RModification = new Modification("coat11R.prefab", "spine2", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 132, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDowncoat21LModification = new Modification("coat21L.prefab", "spine2", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 109, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDowncoat21RModification = new Modification("coat21R.prefab", "spine2", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 137, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDowncoat31LModification = new Modification("coat31L.prefab", "spine2", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 117, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDowncoat31RModification = new Modification("coat31R.prefab", "spine2", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 145, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDowncoat41LModification = new Modification("coat41L.prefab", "spine2", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 122, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDowncoat41RModification = new Modification("coat41R.prefab", "spine2", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 150, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDownbagcharm1Modification = new Modification("bagcharm1.prefab", "spine3", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 99, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDownbagstrapL1Modification = new Modification("bagstrapL1.prefab", "spine3", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 91, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDownbagstrapR1Modification = new Modification("bagstrapR1.prefab", "spine3", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 95, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDownhoodiestrapL1Modification = new Modification("hoodiestrapL1.prefab", "spine3", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 87, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDownhoodiestrapR1Modification = new Modification("hoodiestrapR1.prefab", "spine3", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 89, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDowncoatstrapL1Modification = new Modification("coatstrapL1.prefab", "upper_arm.L", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 60, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDowncoatstrapR1Modification = new Modification("coatstrapR1.prefab", "upper_arm.R", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 85, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDownhair1Modification = new Modification("hair1.prefab", "head", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 19, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDownhair2Modification = new Modification("hair2.prefab", "head", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 21, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDownhair3Modification = new Modification("hair3.prefab", "head", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 23, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDownhair4Modification = new Modification("hair4.prefab", "head", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 25, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDownhair5Modification = new Modification("hair5.prefab", "head", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 27, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDownhair6Modification = new Modification("hair6.prefab", "head", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 29, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDownhair7Modification = new Modification("hair7.prefab", "head", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 31, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDownhair8Modification = new Modification("hair8.prefab", "head", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 33, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDownhair9Modification = new Modification("hair9.prefab", "head", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 35, AffectsBaseModel: true, assetBundle);
				DefMisakiRocketMaskDownhair10Modification = new Modification("hair10.prefab", "head", "RocketSurvivorBody", "VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 37, AffectsBaseModel: true, assetBundle);
			}

			private void InitializeDynamicBones()
			{
				//IL_002f: 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_0045: 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_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)
				//IL_0071: Unknown result type (might be due to invalid IL or missing references)
				//IL_0076: Unknown result type (might be due to invalid IL or missing references)
				//IL_007b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0080: Unknown result type (might be due to invalid IL or missing references)
				//IL_0088: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c4: Unknown result type (might be due to invalid IL or missing references)
				//IL_00d8: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ed: Expected O, but got Unknown
				//IL_0120: Unknown result type (might be due to invalid IL or missing references)
				//IL_0125: Unknown result type (might be due to invalid IL or missing references)
				//IL_0136: Unknown result type (might be due to invalid IL or missing references)
				//IL_013b: Unknown result type (might be due to invalid IL or missing references)
				//IL_014c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0151: 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_0167: 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_0171: Unknown result type (might be due to invalid IL or missing references)
				//IL_0179: Unknown result type (might be due to invalid IL or missing references)
				//IL_01a1: Unknown result type (might be due to invalid IL or missing references)
				//IL_01b5: Unknown result type (might be due to invalid IL or missing references)
				//IL_01c9: Unknown result type (might be due to invalid IL or missing references)
				//IL_01de: Expected O, but got Unknown
				//IL_0211: Unknown result type (might be due to invalid IL or missing references)
				//IL_0216: Unknown result type (might be due to invalid IL or missing references)
				//IL_0227: Unknown result type (might be due to invalid IL or missing references)
				//IL_022c: Unknown result type (might be due to invalid IL or missing references)
				//IL_023d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0242: Unknown result type (might be due to invalid IL or missing references)
				//IL_0253: Unknown result type (might be due to invalid IL or missing references)
				//IL_0258: Unknown result type (might be due to invalid IL or missing references)
				//IL_025d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0262: Unknown result type (might be due to invalid IL or missing references)
				//IL_026a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0292: Unknown result type (might be due to invalid IL or missing references)
				//IL_02a6: Unknown result type (might be due to invalid IL or missing references)
				//IL_02ba: Unknown result type (might be due to invalid IL or missing references)
				//IL_02cf: Expected O, but got Unknown
				//IL_0302: Unknown result type (might be due to invalid IL or missing references)
				//IL_0307: Unknown result type (might be due to invalid IL or missing references)
				//IL_0318: Unknown result type (might be due to invalid IL or missing references)
				//IL_031d: Unknown result type (might be due to invalid IL or missing references)
				//IL_032e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0333: Unknown result type (might be due to invalid IL or missing references)
				//IL_0344: Unknown result type (might be due to invalid IL or missing references)
				//IL_0349: Unknown result type (might be due to invalid IL or missing references)
				//IL_034e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0353: Unknown result type (might be due to invalid IL or missing references)
				//IL_035b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0383: 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_03ab: Unknown result type (might be due to invalid IL or missing references)
				//IL_03c0: Expected O, but got Unknown
				//IL_03f3: Unknown result type (might be due to invalid IL or missing references)
				//IL_03f8: Unknown result type (might be due to invalid IL or missing references)
				//IL_0409: Unknown result type (might be due to invalid IL or missing references)
				//IL_040e: Unknown result type (might be due to invalid IL or missing references)
				//IL_041f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0424: Unknown result type (might be due to invalid IL or missing references)
				//IL_0435: Unknown result type (might be due to invalid IL or missing references)
				//IL_043a: Unknown result type (might be due to invalid IL or missing references)
				//IL_043f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0444: 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_0474: Unknown result type (might be due to invalid IL or missing references)
				//IL_0488: Unknown result type (might be due to invalid IL or missing references)
				//IL_049c: Unknown result type (might be due to invalid IL or missing references)
				//IL_04b1: Expected O, but got Unknown
				//IL_04e4: Unknown result type (might be due to invalid IL or missing references)
				//IL_04e9: Unknown result type (might be due to invalid IL or missing references)
				//IL_04fa: Unknown result type (might be due to invalid IL or missing references)
				//IL_04ff: Unknown result type (might be due to invalid IL or missing references)
				//IL_0510: 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_0526: Unknown result type (might be due to invalid IL or missing references)
				//IL_052b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0530: Unknown result type (might be due to invalid IL or missing references)
				//IL_0535: Unknown result type (might be due to invalid IL or missing references)
				//IL_053d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0565: Unknown result type (might be due to invalid IL or missing references)
				//IL_0579: Unknown result type (might be due to invalid IL or missing references)
				//IL_058d: Unknown result type (might be due to invalid IL or missing references)
				//IL_05a2: Expected O, but got Unknown
				//IL_05d5: Unknown result type (might be due to invalid IL or missing references)
				//IL_05da: Unknown result type (might be due to invalid IL or missing references)
				//IL_05eb: Unknown result type (might be due to invalid IL or missing references)
				//IL_05f0: Unknown result type (might be due to invalid IL or missing references)
				//IL_0601: Unknown result type (might be due to invalid IL or missing references)
				//IL_0606: Unknown result type (might be due to invalid IL or missing references)
				//IL_0617: Unknown result type (might be due to invalid IL or missing references)
				//IL_061c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0621: Unknown result type (might be due to invalid IL or missing references)
				//IL_0626: 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_0656: Unknown result type (might be due to invalid IL or missing references)
				//IL_066a: 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_0693: Expected O, but got Unknown
				//IL_06c6: Unknown result type (might be due to invalid IL or missing references)
				//IL_06cb: Unknown result type (might be due to invalid IL or missing references)
				//IL_06dc: Unknown result type (might be due to invalid IL or missing references)
				//IL_06e1: Unknown result type (might be due to invalid IL or missing references)
				//IL_06f2: Unknown result type (might be due to invalid IL or missing references)
				//IL_06f7: Unknown result type (might be due to invalid IL or missing references)
				//IL_0708: Unknown result type (might be due to invalid IL or missing references)
				//IL_070d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0712: Unknown result type (might be due to invalid IL or missing references)
				//IL_0717: Unknown result type (might be due to invalid IL or missing references)
				//IL_071f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0747: Unknown result type (might be due to invalid IL or missing references)
				//IL_075b: Unknown result type (might be due to invalid IL or missing references)
				//IL_076f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0784: Expected O, but got Unknown
				//IL_07b7: Unknown result type (might be due to invalid IL or missing references)
				//IL_07bc: Unknown result type (might be due to invalid IL or missing references)
				//IL_07cd: Unknown result type (might be due to invalid IL or missing references)
				//IL_07d2: Unknown result type (might be due to invalid IL or missing references)
				//IL_07e3: Unknown result type (might be due to invalid IL or missing references)
				//IL_07e8: Unknown result type (might be due to invalid IL or missing references)
				//IL_07f9: Unknown result type (might be due to invalid IL or missing references)
				//IL_07fe: Unknown result type (might be due to invalid IL or missing references)
				//IL_0803: Unknown result type (might be due to invalid IL or missing references)
				//IL_0808: 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_0838: Unknown result type (might be due to invalid IL or missing references)
				//IL_084c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0860: Unknown result type (might be due to invalid IL or missing references)
				//IL_0875: Expected O, but got Unknown
				//IL_08b7: Unknown result type (might be due to invalid IL or missing references)
				//IL_08cb: Unknown result type (might be due to invalid IL or missing references)
				//IL_08df: Unknown result type (might be due to invalid IL or missing references)
				//IL_0927: Unknown result type (might be due to invalid IL or missing references)
				//IL_092c: Unknown result type (might be due to invalid IL or missing references)
				//IL_093d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0942: Unknown result type (might be due to invalid IL or missing references)
				//IL_0953: Unknown result type (might be due to invalid IL or missing references)
				//IL_0958: Unknown result type (might be due to invalid IL or missing references)
				//IL_0969: Unknown result type (might be due to invalid IL or missing references)
				//IL_096e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0973: Unknown result type (might be due to invalid IL or missing references)
				//IL_0978: Unknown result type (might be due to invalid IL or missing references)
				//IL_0980: Unknown result type (might be due to invalid IL or missing references)
				//IL_09a8: Unknown result type (might be due to invalid IL or missing references)
				//IL_09bc: Unknown result type (might be due to invalid IL or missing references)
				//IL_09d0: Unknown result type (might be due to invalid IL or missing references)
				//IL_09e5: Expected O, but got Unknown
				//IL_0a18: Unknown result type (might be due to invalid IL or missing references)
				//IL_0a1d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0a2e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0a33: 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_0a49: 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_0a64: Unknown result type (might be due to invalid IL or missing references)
				//IL_0a69: Unknown result type (might be due to invalid IL or missing references)
				//IL_0a71: Unknown result type (might be due to invalid IL or missing references)
				//IL_0a99: 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_0ac1: Unknown result type (might be due to invalid IL or missing references)
				//IL_0ad6: Expected O, but got Unknown
				//IL_0b18: Unknown result type (might be due to invalid IL or missing references)
				//IL_0b2c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0b40: Unknown result type (might be due to invalid IL or missing references)
				//IL_0b97: Unknown result type (might be due to invalid IL or missing references)
				//IL_0bab: Unknown result type (might be due to invalid IL or missing references)
				//IL_0bbf: Unknown result type (might be due to invalid IL or missing references)
				//IL_0c16: Unknown result type (might be due to invalid IL or missing references)
				//IL_0c2a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0c3e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0c95: Unknown result type (might be due to invalid IL or missing references)
				//IL_0ca9: Unknown result type (might be due to invalid IL or missing references)
				//IL_0cbd: Unknown result type (might be due to invalid IL or missing references)
				//IL_0d14: Unknown result type (might be due to invalid IL or missing references)
				//IL_0d28: Unknown result type (might be due to invalid IL or missing references)
				//IL_0d3c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0d93: Unknown result type (might be due to invalid IL or missing references)
				//IL_0da7: Unknown result type (might be due to invalid IL or missing references)
				//IL_0dbb: Unknown result type (might be due to invalid IL or missing references)
				//IL_0e12: Unknown result type (might be due to invalid IL or missing references)
				//IL_0e26: Unknown result type (might be due to invalid IL or missing references)
				//IL_0e3a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0e91: Unknown result type (might be due to invalid IL or missing references)
				//IL_0ea5: Unknown result type (might be due to invalid IL or missing references)
				//IL_0eb9: Unknown result type (might be due to invalid IL or missing references)
				//IL_0f10: Unknown result type (might be due to invalid IL or missing references)
				//IL_0f24: Unknown result type (might be due to invalid IL or missing references)
				//IL_0f38: Unknown result type (might be due to invalid IL or missing references)
				//IL_0f8f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0fa3: Unknown result type (might be due to invalid IL or missing references)
				//IL_0fb7: Unknown result type (might be due to invalid IL or missing references)
				//IL_100e: Unknown result type (might be due to invalid IL or missing references)
				//IL_1022: Unknown result type (might be due to invalid IL or missing references)
				//IL_1036: Unknown result type (might be due to invalid IL or missing references)
				//IL_108d: Unknown result type (might be due to invalid IL or missing references)
				//IL_10a1: Unknown result type (might be due to invalid IL or missing references)
				//IL_10b5: Unknown result type (might be due to invalid IL or missing references)
				//IL_110c: Unknown result type (might be due to invalid IL or missing references)
				//IL_1120: Unknown result type (might be due to invalid IL or missing references)
				//IL_1134: Unknown result type (might be due to invalid IL or missing references)
				//IL_118b: Unknown result type (might be due to invalid IL or missing references)
				//IL_119f: Unknown result type (might be due to invalid IL or missing references)
				//IL_11b3: Unknown result type (might be due to invalid IL or missing references)
				//IL_11fb: Unknown result type (might be due to invalid IL or missing references)
				//IL_1200: Unknown result type (might be due to invalid IL or missing references)
				//IL_1211: Unknown result type (might be due to invalid IL or missing references)
				//IL_1216: Unknown result type (might be due to invalid IL or missing references)
				//IL_1227: Unknown result type (might be due to invalid IL or missing references)
				//IL_122c: Unknown result type (might be due to invalid IL or missing references)
				//IL_123d: Unknown result type (might be due to invalid IL or missing references)
				//IL_1242: Unknown result type (might be due to invalid IL or missing references)
				//IL_1247: Unknown result type (might be due to invalid IL or missing references)
				//IL_124c: Unknown result type (might be due to invalid IL or missing references)
				//IL_1254: Unknown result type (might be due to invalid IL or missing references)
				//IL_127c: Unknown result type (might be due to invalid IL or missing references)
				//IL_1290: Unknown result type (might be due to invalid IL or missing references)
				//IL_12a4: Unknown result type (might be due to invalid IL or missing references)
				//IL_12b9: Expected O, but got Unknown
				//IL_12ec: Unknown result type (might be due to invalid IL or missing references)
				//IL_12f1: Unknown result type (might be due to invalid IL or missing references)
				//IL_1302: Unknown result type (might be due to invalid IL or missing references)
				//IL_1307: Unknown result type (might be due to invalid IL or missing references)
				//IL_1318: Unknown result type (might be due to invalid IL or missing references)
				//IL_131d: Unknown result type (might be due to invalid IL or missing references)
				//IL_132e: Unknown result type (might be due to invalid IL or missing references)
				//IL_1333: Unknown result type (might be due to invalid IL or missing references)
				//IL_1338: Unknown result type (might be due to invalid IL or missing references)
				//IL_133d: Unknown result type (might be due to invalid IL or missing references)
				//IL_1345: Unknown result type (might be due to invalid IL or missing references)
				//IL_136d: Unknown result type (might be due to invalid IL or missing references)
				//IL_1381: Unknown result type (might be due to invalid IL or missing references)
				//IL_1395: Unknown result type (might be due to invalid IL or missing references)
				//IL_13aa: Expected O, but got Unknown
				//IL_13dd: Unknown result type (might be due to invalid IL or missing references)
				//IL_13e2: Unknown result type (might be due to invalid IL or missing references)
				//IL_13f3: Unknown result type (might be due to invalid IL or missing references)
				//IL_13f8: Unknown result type (might be due to invalid IL or missing references)
				//IL_1409: Unknown result type (might be due to invalid IL or missing references)
				//IL_140e: Unknown result type (might be due to invalid IL or missing references)
				//IL_141f: Unknown result type (might be due to invalid IL or missing references)
				//IL_1424: Unknown result type (might be due to invalid IL or missing references)
				//IL_1429: Unknown result type (might be due to invalid IL or missing references)
				//IL_142e: Unknown result type (might be due to invalid IL or missing references)
				//IL_1436: Unknown result type (might be due to invalid IL or missing references)
				//IL_145e: Unknown result type (might be due to invalid IL or missing references)
				//IL_1472: Unknown result type (might be due to invalid IL or missing references)
				//IL_1486: Unknown result type (might be due to invalid IL or missing references)
				//IL_149b: Expected O, but got Unknown
				//IL_14ce: Unknown result type (might be due to invalid IL or missing references)
				//IL_14d3: Unknown result type (might be due to invalid IL or missing references)
				//IL_14e4: Unknown result type (might be due to invalid IL or missing references)
				//IL_14e9: Unknown result type (might be due to invalid IL or missing references)
				//IL_14fa: Unknown result type (might be due to invalid IL or missing references)
				//IL_14ff: Unknown result type (might be due to invalid IL or missing references)
				//IL_1510: Unknown result type (might be due to invalid IL or missing references)
				//IL_1515: Unknown result type (might be due to invalid IL or missing references)
				//IL_151a: Unknown result type (might be due to invalid IL or missing references)
				//IL_151f: Unknown result type (might be due to invalid IL or missing references)
				//IL_1527: Unknown result type (might be due to invalid IL or missing references)
				//IL_154f: Unknown result type (might be due to invalid IL or missing references)
				//IL_1563: Unknown result type (might be due to invalid IL or missing references)
				//IL_1577: Unknown result type (might be due to invalid IL or missing references)
				//IL_158c: Expected O, but got Unknown
				//IL_15bf: Unknown result type (might be due to invalid IL or missing references)
				//IL_15c4: Unknown result type (might be due to invalid IL or missing references)
				//IL_15d5: Unknown result type (might be due to invalid IL or missing references)
				//IL_15da: Unknown result type (might be due to invalid IL or missing references)
				//IL_15eb: Unknown result type (might be due to invalid IL or missing references)
				//IL_15f0: Unknown result type (might be due to invalid IL or missing references)
				//IL_1601: Unknown result type (might be due to invalid IL or missing references)
				//IL_1606: Unknown result type (might be due to invalid IL or missing references)
				//IL_160b: Unknown result type (might be due to invalid IL or missing references)
				//IL_1610: Unknown result type (might be due to invalid IL or missing references)
				//IL_1618: Unknown result type (might be due to invalid IL or missing references)
				//IL_1640: Unknown result type (might be due to invalid IL or missing references)
				//IL_1654: Unknown result type (might be due to invalid IL or missing references)
				//IL_1668: Unknown result type (might be due to invalid IL or missing references)
				//IL_167d: Expected O, but got Unknown
				//IL_16b0: Unknown result type (might be due to invalid IL or missing references)
				//IL_16b5: Unknown result type (might be due to invalid IL or missing references)
				//IL_16c6: Unknown result type (might be due to invalid IL or missing references)
				//IL_16cb: Unknown result type (might be due to invalid IL or missing references)
				//IL_16dc: Unknown result type (might be due to invalid IL or missing references)
				//IL_16e1: Unknown result type (might be due to invalid IL or missing references)
				//IL_16f2: Unknown result type (might be due to invalid IL or missing references)
				//IL_16f7: Unknown result type (might be due to invalid IL or missing references)
				//IL_16fc: Unknown result type (might be due to invalid IL or missing references)
				//IL_1701: Unknown result type (might be due to invalid IL or missing references)
				//IL_1709: Unknown result type (might be due to invalid IL or missing references)
				//IL_1731: Unknown result type (might be due to invalid IL or missing references)
				//IL_1745: Unknown result type (might be due to invalid IL or missing references)
				//IL_1759: Unknown result type (might be due to invalid IL or missing references)
				//IL_176e: Expected O, but got Unknown
				//IL_17a1: Unknown result type (might be due to invalid IL or missing references)
				//IL_17a6: Unknown result type (might be due to invalid IL or missing references)
				//IL_17b7: Unknown result type (might be due to invalid IL or missing references)
				//IL_17bc: Unknown result type (might be due to invalid IL or missing references)
				//IL_17cd: Unknown result type (might be due to invalid IL or missing references)
				//IL_17d2: Unknown result type (might be due to invalid IL or missing references)
				//IL_17e3: Unknown result type (might be due to invalid IL or missing references)
				//IL_17e8: Unknown result type (might be due to invalid IL or missing references)
				//IL_17ed: Unknown result type (might be due to invalid IL or missing references)
				//IL_17f2: Unknown result type (might be due to invalid IL or missing references)
				//IL_17fa: Unknown result type (might be due to invalid IL or missing references)
				//IL_1822: Unknown result type (might be due to invalid IL or missing references)
				//IL_1836: Unknown result type (might be due to invalid IL or missing references)
				//IL_184a: Unknown result type (might be due to invalid IL or missing references)
				//IL_185f: Expected O, but got Unknown
				//IL_1892: Unknown result type (might be due to invalid IL or missing references)
				//IL_1897: Unknown result type (might be due to invalid IL or missing references)
				//IL_18a8: Unknown result type (might be due to invalid IL or missing references)
				//IL_18ad: Unknown result type (might be due to invalid IL or missing references)
				//IL_18be: Unknown result type (might be due to invalid IL or missing references)
				//IL_18c3: Unknown result type (might be due to invalid IL or missing references)
				//IL_18d4: Unknown result type (might be due to invalid IL or missing references)
				//IL_18d9: Unknown result type (might be due to invalid IL or missing references)
				//IL_18de: Unknown result type (might be due to invalid IL or missing references)
				//IL_18e3: Unknown result type (might be due to invalid IL or missing references)
				//IL_18eb: Unknown result type (might be due to invalid IL or missing references)
				//IL_1913: Unknown result type (might be due to invalid IL or missing references)
				//IL_1927: Unknown result type (might be due to invalid IL or missing references)
				//IL_193b: Unknown result type (might be due to invalid IL or missing references)
				//IL_1950: Expected O, but got Unknown
				//IL_1983: Unknown result type (might be due to invalid IL or missing references)
				//IL_1988: Unknown result type (might be due to invalid IL or missing references)
				//IL_1999: Unknown result type (might be due to invalid IL or missing references)
				//IL_199e: Unknown result type (might be due to invalid IL or missing references)
				//IL_19af: Unknown result type (might be due to invalid IL or missing references)
				//IL_19b4: Unknown result type (might be due to invalid IL or missing references)
				//IL_19c5: Unknown result type (might be due to invalid IL or missing references)
				//IL_19ca: Unknown result type (might be due to invalid IL or missing references)
				//IL_19cf: Unknown result type (might be due to invalid IL or missing references)
				//IL_19d4: Unknown result type (might be due to invalid IL or missing references)
				//IL_19dc: Unknown result type (might be due to invalid IL or missing references)
				//IL_1a04: Unknown result type (might be due to invalid IL or missing references)
				//IL_1a18: Unknown result type (might be due to invalid IL or missing references)
				//IL_1a2c: Unknown result type (might be due to invalid IL or missing references)
				//IL_1a41: Expected O, but got Unknown
				//IL_1a83: Unknown result type (might be due to invalid IL or missing references)
				//IL_1a97: Unknown result type (might be due to invalid IL or missing references)
				//IL_1aab: Unknown result type (might be due to invalid IL or missing references)
				//IL_1af3: Unknown result type (might be due to invalid IL or missing references)
				//IL_1af8: Unknown result type (might be due to invalid IL or missing references)
				//IL_1b09: Unknown result type (might be due to invalid IL or missing references)
				//IL_1b0e: Unknown result type (might be due to invalid IL or missing references)
				//IL_1b1f: Unknown result type (might be due to invalid IL or missing references)
				//IL_1b24: Unknown result type (might be due to invalid IL or missing references)
				//IL_1b35: Unknown result type (might be due to invalid IL or missing references)
				//IL_1b3a: Unknown result type (might be due to invalid IL or missing references)
				//IL_1b3f: Unknown result type (might be due to invalid IL or missing references)
				//IL_1b44: Unknown result type (might be due to invalid IL or missing references)
				//IL_1b4c: Unknown result type (might be due to invalid IL or missing references)
				//IL_1b74: Unknown result type (might be due to invalid IL or missing references)
				//IL_1b88: Unknown result type (might be due to invalid IL or missing references)
				//IL_1b9c: Unknown result type (might be due to invalid IL or missing references)
				//IL_1bb1: Expected O, but got Unknown
				//IL_1be4: Unknown result type (might be due to invalid IL or missing references)
				//IL_1be9: Unknown result type (might be due to invalid IL or missing references)
				//IL_1bfa: Unknown result type (might be due to invalid IL or missing references)
				//IL_1bff: Unknown result type (might be due to invalid IL or missing references)
				//IL_1c10: Unknown result type (might be due to invalid IL or missing references)
				//IL_1c15: Unknown result type (might be due to invalid IL or missing references)
				//IL_1c26: Unknown result type (might be due to invalid IL or missing references)
				//IL_1c2b: Unknown result type (might be due to invalid IL or missing references)
				//IL_1c30: Unknown result type (might be due to invalid IL or missing references)
				//IL_1c35: Unknown result type (might be due to invalid IL or missing references)
				//IL_1c3d: Unknown result type (might be due to invalid IL or missing references)
				//IL_1c65: Unknown result type (might be due to invalid IL or missing references)
				//IL_1c79: Unknown result type (might be due to invalid IL or missing references)
				//IL_1c8d: Unknown result type (might be due to invalid IL or missing references)
				//IL_1ca2: Expected O, but got Unknown
				//IL_1ce4: Unknown result type (might be due to invalid IL or missing references)
				//IL_1cf8: Unknown result type (might be due to invalid IL or missing references)
				//IL_1d0c: Unknown result type (might be due to invalid IL or missing references)
				//IL_1d63: Unknown result type (might be due to invalid IL or missing references)
				//IL_1d77: Unknown result type (might be due to invalid IL or missing references)
				//IL_1d8b: Unknown result type (might be due to invalid IL or missing references)
				//IL_1de2: Unknown result type (might be due to invalid IL or missing references)
				//IL_1df6: Unknown result type (might be due to invalid IL or missing references)
				//IL_1e0a: Unknown result type (might be due to invalid IL or missing references)
				//IL_1e61: Unknown result type (might be due to invalid IL or missing references)
				//IL_1e75: Unknown result type (might be due to invalid IL or missing references)
				//IL_1e89: Unknown result type (might be due to invalid IL or missing references)
				//IL_1ee0: Unknown result type (might be due to invalid IL or missing references)
				//IL_1ef4: Unknown result type (might be due to invalid IL or missing references)
				//IL_1f08: Unknown result type (might be due to invalid IL or missing references)
				//IL_1f5f: Unknown result type (might be due to invalid IL or missing references)
				//IL_1f73: Unknown result type (might be due to invalid IL or missing references)
				//IL_1f87: Unknown result type (might be due to invalid IL or missing references)
				//IL_1fde: Unknown result type (might be due to invalid IL or missing references)
				//IL_1ff2: Unknown result type (might be due to invalid IL or missing references)
				//IL_2006: Unknown result type (might be due to invalid IL or missing references)
				//IL_205d: Unknown result type (might be due to invalid IL or missing references)
				//IL_2071: Unknown result type (might be due to invalid IL or missing references)
				//IL_2085: Unknown result type (might be due to invalid IL or missing references)
				//IL_20dc: Unknown result type (might be due to invalid IL or missing references)
				//IL_20f0: Unknown result type (might be due to invalid IL or missing references)
				//IL_2104: Unknown result type (might be due to invalid IL or missing references)
				//IL_215b: Unknown result type (might be due to invalid IL or missing references)
				//IL_216f: Unknown result type (might be due to invalid IL or missing references)
				//IL_2183: Unknown result type (might be due to invalid IL or missing references)
				//IL_21da: Unknown result type (might be due to invalid IL or missing references)
				//IL_21ee: Unknown result type (might be due to invalid IL or missing references)
				//IL_2202: Unknown result type (might be due to invalid IL or missing references)
				//IL_2259: Unknown result type (might be due to invalid IL or missing references)
				//IL_226d: Unknown result type (might be due to invalid IL or missing references)
				//IL_2281: Unknown result type (might be due to invalid IL or missing references)
				//IL_22d8: Unknown result type (might be due to invalid IL or missing references)
				//IL_22ec: Unknown result type (might be due to invalid IL or missing references)
				//IL_2300: Unknown result type (might be due to invalid IL or missing references)
				//IL_2357: Unknown result type (might be due to invalid IL or missing references)
				//IL_236b: Unknown result type (might be due to invalid IL or missing references)
				//IL_237f: Unknown result type (might be due to invalid IL or missing references)
				DefMisakiRocketcoat11BModification.dynamicBoneData = new DynamicBoneData("coat11B", 0.5f, null, 0.1f, null, 0.95f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.6719477f, 0.9783452f),
					new Keyframe(0.8604318f, 0.6342047f),
					new Keyframe(1.000244f, 0.2929535f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketcoat11LModification.dynamicBoneData = new DynamicBoneData("coat11L", 0.5f, null, 0.1f, null, 0.95f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.6719477f, 0.9783452f),
					new Keyframe(0.8604318f, 0.6342047f),
					new Keyframe(1.000244f, 0.2929535f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketcoat11RModification.dynamicBoneData = new DynamicBoneData("coat11R", 0.5f, null, 0.1f, null, 0.95f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.6719477f, 0.9783452f),
					new Keyframe(0.8604318f, 0.6342047f),
					new Keyframe(1.000244f, 0.2929535f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketcoat21LModification.dynamicBoneData = new DynamicBoneData("coat21L", 0.5f, null, 0.1f, null, 0.95f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.6719477f, 0.9783452f),
					new Keyframe(0.8604318f, 0.6342047f),
					new Keyframe(1.000244f, 0.2929535f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketcoat21RModification.dynamicBoneData = new DynamicBoneData("coat21R", 0.5f, null, 0.1f, null, 0.95f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.6719477f, 0.9783452f),
					new Keyframe(0.8604318f, 0.6342047f),
					new Keyframe(1.000244f, 0.2929535f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketcoat31LModification.dynamicBoneData = new DynamicBoneData("coat31L", 0.5f, null, 0.1f, null, 0.95f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.6719477f, 0.9783452f),
					new Keyframe(0.8604318f, 0.6342047f),
					new Keyframe(1.000244f, 0.2929535f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketcoat31RModification.dynamicBoneData = new DynamicBoneData("coat31R", 0.5f, null, 0.1f, null, 0.95f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.6719477f, 0.9783452f),
					new Keyframe(0.8604318f, 0.6342047f),
					new Keyframe(1.000244f, 0.2929535f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketcoat41LModification.dynamicBoneData = new DynamicBoneData("coat41L", 0.5f, null, 0.1f, null, 0.95f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.6719477f, 0.9783452f),
					new Keyframe(0.8604318f, 0.6342047f),
					new Keyframe(1.000244f, 0.2929535f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketcoat41RModification.dynamicBoneData = new DynamicBoneData("coat41R", 0.5f, null, 0.1f, null, 0.95f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.6719477f, 0.9783452f),
					new Keyframe(0.8604318f, 0.6342047f),
					new Keyframe(1.000244f, 0.2929535f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketbagcharm1Modification.dynamicBoneData = new DynamicBoneData("bagcharm1", 0.231f, null, 0.1f, null, 0.8f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketbagstrapL1Modification.dynamicBoneData = new DynamicBoneData("bagstrapL1", 0.4f, null, 0.1f, null, 0.94f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.7162037f, 0.9843891f),
					new Keyframe(0.8615153f, 0.6581913f),
					new Keyframe(1f, 0f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketbagstrapR1Modification.dynamicBoneData = new DynamicBoneData("bagstrapR1", 0.4f, null, 0.1f, null, 0.94f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.7162037f, 0.9843891f),
					new Keyframe(0.8615153f, 0.6581913f),
					new Keyframe(1f, 0f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRockethoodiestrapL1Modification.dynamicBoneData = new DynamicBoneData("hoodiestrapL1", 0.667f, null, 0.037f, null, 0.96f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRockethoodiestrapR1Modification.dynamicBoneData = new DynamicBoneData("hoodiestrapR1", 0.667f, null, 0.037f, null, 0.96f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketcoatstrapL1Modification.dynamicBoneData = new DynamicBoneData("coatstrapL1", 0.4f, null, 0.1f, null, 0.866f, null, 0.5f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketcoatstrapR1Modification.dynamicBoneData = new DynamicBoneData("coatstrapR1", 0.4f, null, 0.1f, null, 0.866f, null, 0.5f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRockethair1Modification.dynamicBoneData = new DynamicBoneData("hair1", 0.5f, null, 0.1f, null, 0.9f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRockethair2Modification.dynamicBoneData = new DynamicBoneData("hair2", 0.5f, null, 0.1f, null, 0.9f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRockethair3Modification.dynamicBoneData = new DynamicBoneData("hair3", 0.5f, null, 0.1f, null, 0.9f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRockethair4Modification.dynamicBoneData = new DynamicBoneData("hair4", 0.5f, null, 0.1f, null, 0.9f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRockethair5Modification.dynamicBoneData = new DynamicBoneData("hair5", 0.5f, null, 0.1f, null, 0.9f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRockethair6Modification.dynamicBoneData = new DynamicBoneData("hair6", 0.5f, null, 0.1f, null, 0.9f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRockethair7Modification.dynamicBoneData = new DynamicBoneData("hair7", 0.5f, null, 0.1f, null, 0.9f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRockethair8Modification.dynamicBoneData = new DynamicBoneData("hair8", 0.5f, null, 0.1f, null, 0.9f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRockethair9Modification.dynamicBoneData = new DynamicBoneData("hair9", 0.5f, null, 0.1f, null, 0.9f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRockethair10Modification.dynamicBoneData = new DynamicBoneData("hair10", 0.5f, null, 0.1f, null, 0.9f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDowncoat11BModification.dynamicBoneData = new DynamicBoneData("coat11B", 0.5f, null, 0.1f, null, 0.95f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.6719477f, 0.9783452f),
					new Keyframe(0.8604318f, 0.6342047f),
					new Keyframe(1.000244f, 0.2929535f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDowncoat11LModification.dynamicBoneData = new DynamicBoneData("coat11L", 0.5f, null, 0.1f, null, 0.95f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.6719477f, 0.9783452f),
					new Keyframe(0.8604318f, 0.6342047f),
					new Keyframe(1.000244f, 0.2929535f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDowncoat11RModification.dynamicBoneData = new DynamicBoneData("coat11R", 0.5f, null, 0.1f, null, 0.95f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.6719477f, 0.9783452f),
					new Keyframe(0.8604318f, 0.6342047f),
					new Keyframe(1.000244f, 0.2929535f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDowncoat21LModification.dynamicBoneData = new DynamicBoneData("coat21L", 0.5f, null, 0.1f, null, 0.95f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.6719477f, 0.9783452f),
					new Keyframe(0.8604318f, 0.6342047f),
					new Keyframe(1.000244f, 0.2929535f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDowncoat21RModification.dynamicBoneData = new DynamicBoneData("coat21R", 0.5f, null, 0.1f, null, 0.95f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.6719477f, 0.9783452f),
					new Keyframe(0.8604318f, 0.6342047f),
					new Keyframe(1.000244f, 0.2929535f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDowncoat31LModification.dynamicBoneData = new DynamicBoneData("coat31L", 0.5f, null, 0.1f, null, 0.95f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.6719477f, 0.9783452f),
					new Keyframe(0.8604318f, 0.6342047f),
					new Keyframe(1.000244f, 0.2929535f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDowncoat31RModification.dynamicBoneData = new DynamicBoneData("coat31R", 0.5f, null, 0.1f, null, 0.95f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.6719477f, 0.9783452f),
					new Keyframe(0.8604318f, 0.6342047f),
					new Keyframe(1.000244f, 0.2929535f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDowncoat41LModification.dynamicBoneData = new DynamicBoneData("coat41L", 0.5f, null, 0.1f, null, 0.95f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.6719477f, 0.9783452f),
					new Keyframe(0.8604318f, 0.6342047f),
					new Keyframe(1.000244f, 0.2929535f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDowncoat41RModification.dynamicBoneData = new DynamicBoneData("coat41R", 0.5f, null, 0.1f, null, 0.95f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.6719477f, 0.9783452f),
					new Keyframe(0.8604318f, 0.6342047f),
					new Keyframe(1.000244f, 0.2929535f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDownbagcharm1Modification.dynamicBoneData = new DynamicBoneData("bagcharm1", 0.231f, null, 0.1f, null, 0.8f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDownbagstrapL1Modification.dynamicBoneData = new DynamicBoneData("bagstrapL1", 0.4f, null, 0.1f, null, 0.94f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.7162037f, 0.9843891f),
					new Keyframe(0.8615153f, 0.6581913f),
					new Keyframe(1f, 0f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDownbagstrapR1Modification.dynamicBoneData = new DynamicBoneData("bagstrapR1", 0.4f, null, 0.1f, null, 0.94f, new AnimationCurve((Keyframe[])(object)new Keyframe[4]
				{
					new Keyframe(0f, 1f),
					new Keyframe(0.7162037f, 0.9843891f),
					new Keyframe(0.8615153f, 0.6581913f),
					new Keyframe(1f, 0f)
				})
				{
					postWrapMode = (WrapMode)8,
					preWrapMode = (WrapMode)8
				}, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDownhoodiestrapL1Modification.dynamicBoneData = new DynamicBoneData("hoodiestrapL1", 0.667f, null, 0.037f, null, 0.96f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDownhoodiestrapR1Modification.dynamicBoneData = new DynamicBoneData("hoodiestrapR1", 0.667f, null, 0.037f, null, 0.96f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDowncoatstrapL1Modification.dynamicBoneData = new DynamicBoneData("coatstrapL1", 0.4f, null, 0.1f, null, 0.866f, null, 0.5f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDowncoatstrapR1Modification.dynamicBoneData = new DynamicBoneData("coatstrapR1", 0.4f, null, 0.1f, null, 0.866f, null, 0.5f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDownhair1Modification.dynamicBoneData = new DynamicBoneData("hair1", 0.5f, null, 0.1f, null, 0.9f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDownhair2Modification.dynamicBoneData = new DynamicBoneData("hair2", 0.5f, null, 0.1f, null, 0.9f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDownhair3Modification.dynamicBoneData = new DynamicBoneData("hair3", 0.5f, null, 0.1f, null, 0.9f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDownhair4Modification.dynamicBoneData = new DynamicBoneData("hair4", 0.5f, null, 0.1f, null, 0.9f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDownhair5Modification.dynamicBoneData = new DynamicBoneData("hair5", 0.5f, null, 0.1f, null, 0.9f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDownhair6Modification.dynamicBoneData = new DynamicBoneData("hair6", 0.5f, null, 0.1f, null, 0.9f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDownhair7Modification.dynamicBoneData = new DynamicBoneData("hair7", 0.5f, null, 0.1f, null, 0.9f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDownhair8Modification.dynamicBoneData = new DynamicBoneData("hair8", 0.5f, null, 0.1f, null, 0.9f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDownhair9Modification.dynamicBoneData = new DynamicBoneData("hair9", 0.5f, null, 0.1f, null, 0.9f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
				DefMisakiRocketMaskDownhair10Modification.dynamicBoneData = new DynamicBoneData("hair10", 0.5f, null, 0.1f, null, 0.9f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0);
			}

			private void AddModificationsToList()
			{
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 127, DefMisakiRocketcoat11BModification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 104, DefMisakiRocketcoat11LModification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 132, DefMisakiRocketcoat11RModification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 109, DefMisakiRocketcoat21LModification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 137, DefMisakiRocketcoat21RModification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 117, DefMisakiRocketcoat31LModification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 145, DefMisakiRocketcoat31RModification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 122, DefMisakiRocketcoat41LModification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 150, DefMisakiRocketcoat41RModification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 99, DefMisakiRocketbagcharm1Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 91, DefMisakiRocketbagstrapL1Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 95, DefMisakiRocketbagstrapR1Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 87, DefMisakiRockethoodiestrapL1Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 89, DefMisakiRockethoodiestrapR1Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 60, DefMisakiRocketcoatstrapL1Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 85, DefMisakiRocketcoatstrapR1Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 19, DefMisakiRockethair1Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 21, DefMisakiRockethair2Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 23, DefMisakiRockethair3Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 25, DefMisakiRockethair4Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 27, DefMisakiRockethair5Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 29, DefMisakiRockethair6Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 31, DefMisakiRockethair7Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 33, DefMisakiRockethair8Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 35, DefMisakiRockethair9Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", 37, DefMisakiRockethair10Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 127, DefMisakiRocketMaskDowncoat11BModification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 104, DefMisakiRocketMaskDowncoat11LModification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 132, DefMisakiRocketMaskDowncoat11RModification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 109, DefMisakiRocketMaskDowncoat21LModification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 137, DefMisakiRocketMaskDowncoat21RModification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 117, DefMisakiRocketMaskDowncoat31LModification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 145, DefMisakiRocketMaskDowncoat31RModification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 122, DefMisakiRocketMaskDowncoat41LModification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 150, DefMisakiRocketMaskDowncoat41RModification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 99, DefMisakiRocketMaskDownbagcharm1Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 91, DefMisakiRocketMaskDownbagstrapL1Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 95, DefMisakiRocketMaskDownbagstrapR1Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 87, DefMisakiRocketMaskDownhoodiestrapL1Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 89, DefMisakiRocketMaskDownhoodiestrapR1Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 60, DefMisakiRocketMaskDowncoatstrapL1Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 85, DefMisakiRocketMaskDowncoatstrapR1Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 19, DefMisakiRocketMaskDownhair1Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 21, DefMisakiRocketMaskDownhair2Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 23, DefMisakiRocketMaskDownhair3Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 25, DefMisakiRocketMaskDownhair4Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 27, DefMisakiRocketMaskDownhair5Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 29, DefMisakiRocketMaskDownhair6Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 31, DefMisakiRocketMaskDownhair7Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 33, DefMisakiRocketMaskDownhair8Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 35, DefMisakiRocketMaskDownhair9Modification);
				_DynamicSkinManager.AddModification("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", 37, DefMisakiRocketMaskDownhair10Modification);
			}

			private static void onSkinAdded(object sender, SkinAddedArgs e)
			{
				_DynamicSkinManager.AddSkinDef(e.skinDef);
			}
		}

		public delegate void VoidDelegate();

		public class SkinAddedArgs : EventArgs
		{
			public SkinDef skinDef { get; }

			public GameObject bodyPrefab { get; }

			public SkinAddedArgs(SkinDef newSkinDef, GameObject newGameObject)
			{
				skinDef = newSkinDef;
				bodyPrefab = newGameObject;
			}
		}

		private class FieldException : Exception
		{
			public FieldException(string message, Exception innerException)
				: base(message, innerException)
			{
			}
		}

		private class ElementException : Exception
		{
			public int Index { get; }

			public ElementException(int index, string message)
				: base(message)
			{
				Index = index;
			}
		}

		private static DynamicSkinExtension _DynamicSkinExtension = new DynamicSkinExtension();

		private static DynamicSkinManager _DynamicSkinManager = new DynamicSkinManager();

		private static VoidDelegate BeforeStartDelegate;

		private static VoidDelegate AfterStartDelegate;

		private static VoidDelegate BeforeBodyCatalogDelegate;

		private static VoidDelegate AfterBodyCatalogDelegate;

		private static SkinDef[] skins = (SkinDef[])(object)new SkinDef[2];

		private static AssetBundle assetBundle;

		private static readonly List<Material> materialsWithRoRShader = new List<Material>();

		internal static MisakiRocketPlugin Instance { get; private set; }

		internal static ManualLogSource InstanceLogger
		{
			get
			{
				MisakiRocketPlugin instance = Instance;
				return (instance != null) ? ((BaseUnityPlugin)instance).Logger : null;
			}
		}

		private static event EventHandler<SkinAddedArgs> RocketSurvivorBodyDefMisakiRocketSkinAddedEvent;

		private static event EventHandler<SkinAddedArgs> RocketSurvivorBodyDefMisakiRocketMaskDownSkinAddedEvent;

		private void Start()
		{
			Instance = this;
			BeforeStart();
			using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MisakiRocket.vanillavitaminsmisakirocket"))
			{
				assetBundle = AssetBundle.LoadFromStream(stream);
			}
			((ResourceAvailability)(ref BodyCatalog.availability)).CallWhenAvailable((Action)BodyCatalogInit);
			HookEndpointManager.Add((MethodBase)typeof(Language).GetMethod("LoadStrings"), (Delegate)new Action<Action<Language>, Language>(LanguageLoadStrings));
			ReplaceShaders();
			AfterStart();
		}

		private void BeforeStart()
		{
			RocketSurvivorBodyDefMisakiRocketSkinAddedEvent += delegate(object sender, SkinAddedArgs e)
			{
				skins[0] = e.skinDef;
			};
			RocketSurvivorBodyDefMisakiRocketMaskDownSkinAddedEvent += delegate(object sender, SkinAddedArgs e)
			{
				skins[1] = e.skinDef;
			};
			BeforeStartDelegate = (VoidDelegate)Delegate.Combine(BeforeStartDelegate, new VoidDelegate(_DynamicSkinExtension.BeforeStart));
			BeforeStartDelegate?.Invoke();
		}

		private void AfterStart()
		{
			MwSkinEvents.Init(skins);
			AfterStartDelegate = (VoidDelegate)Delegate.Combine(AfterStartDelegate, new VoidDelegate(_DynamicSkinExtension.AfterStart));
			AfterStartDelegate?.Invoke();
		}

		private static void BeforeBodyCatalogInit()
		{
			BeforeBodyCatalogDelegate = (VoidDelegate)Delegate.Combine(BeforeBodyCatalogDelegate, new VoidDelegate(_DynamicSkinExtension.BeforeBodyCatalogInit));
			BeforeBodyCatalogDelegate?.Invoke();
		}

		private static void AfterBodyCatalogInit()
		{
			AfterBodyCatalogDelegate = (VoidDelegate)Delegate.Combine(AfterBodyCatalogDelegate, new VoidDelegate(_DynamicSkinExtension.AfterBodyCatalogInit));
			AfterBodyCatalogDelegate?.Invoke();
		}

		private static void ReplaceShaders()
		{
			LoadMaterialsWithReplacedShader("RoR2/Base/Shaders/HGStandard.shader", "Assets/Skins/MisakiRocket/Skin/matMisakiBody.mat", "Assets/Skins/MisakiRocket/Skin/matMisakiLauncher.mat");
		}

		private static void LoadMaterialsWithReplacedShader(string shaderPath, params string[] materialPaths)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			Shader shader = Addressables.LoadAssetAsync<Shader>((object)shaderPath).WaitForCompletion();
			foreach (string text in materialPaths)
			{
				Material val = assetBundle.LoadAsset<Material>(text);
				val.shader = shader;
				materialsWithRoRShader.Add(val);
			}
		}

		private static void LanguageLoadStrings(Action<Language> orig, Language self)
		{
			orig(self);
			self.SetStringByToken("VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME", "Imashino Misaki");
			self.SetStringByToken("VANILLAVITAMINS_SKIN_DEFMISAKIROCKETMASKDOWN_NAME", "Imashino Misaki (Mask Down)");
		}

		private static void BodyCatalogInit()
		{
			BeforeBodyCatalogInit();
			AddRocketSurvivorBodyDefMisakiRocketSkin();
			AddRocketSurvivorBodyDefMisakiRocketMaskDownSkin();
			AfterBodyCatalogInit();
		}

		private static void RocketSurvivorBodyDefMisakiRocketSkinAdded(SkinDef skinDef, GameObject bodyPrefab)
		{
			MisakiRocketPlugin.RocketSurvivorBodyDefMisakiRocketSkinAddedEvent(Instance, new SkinAddedArgs(skinDef, bodyPrefab));
		}

		private static void AddRocketSurvivorBodyDefMisakiRocketSkin()
		{
			string text = "RocketSurvivorBody";
			string text2 = "DefMisakiRocket";
			try
			{
				GameObject val = BodyCatalog.FindBodyPrefab(text);
				if (!Object.op_Implicit((Object)(object)val))
				{
					InstanceLogger.LogWarning((object)("Failed to add \"" + text2 + "\" skin because \"" + text + "\" doesn't exist"));
					return;
				}
				ModelLocator component = val.GetComponent<ModelLocator>();
				if (!Object.op_Implicit((Object)(object)component))
				{
					InstanceLogger.LogWarning((object)("Failed to add \"" + text2 + "\" skin to \"" + text + "\" because it doesn't have \"ModelLocator\" component"));
					return;
				}
				GameObject gameObject = ((Component)component.modelTransform).gameObject;
				ModelSkinController skinController = (Object.op_Implicit((Object)(object)gameObject) ? gameObject.GetComponent<ModelSkinController>() : null);
				if (!Object.op_Implicit((Object)(object)skinController))
				{
					InstanceLogger.LogWarning((object)("Failed to add \"" + text2 + "\" skin to \"" + text + "\" because it doesn't have \"ModelSkinController\" component"));
					return;
				}
				Renderer[] renderers = gameObject.GetComponentsInChildren<Renderer>(true);
				Light[] componentsInChildren = gameObject.GetComponentsInChildren<Light>(true);
				SkinDef skin = ScriptableObject.CreateInstance<SkinDef>();
				SkinDefParams skinParams = ScriptableObject.CreateInstance<SkinDefParams>();
				skin.skinDefParams = skinParams;
				TryCatchThrow("Icon", delegate
				{
					skin.icon = assetBundle.LoadAsset<Sprite>("Assets\\SkinMods\\MisakiRocket\\Icons\\DefMisakiRocketIcon.png");
				});
				((Object)skin).name = text2;
				skin.nameToken = "VANILLAVITAMINS_SKIN_DEFMISAKIROCKET_NAME";
				skin.rootObject = gameObject;
				TryCatchThrow("Base Skins", delegate
				{
					skin.baseSkins = (SkinDef[])(object)new SkinDef[1] { ThrowIfOutOfBounds(0, "Index 0 is out of bounds of skins array", skinController.skins, 0) };
				});
				TryCatchThrow("Unlockable Name", delegate
				{
					skin.unlockableDef = null;
				});
				TryCatchThrow("Game Object Activations", delegate
				{
					//IL_0011: Unknown result type (might be due to invalid IL or missing references)
					//IL_0068: Unknown result type (might be due to invalid IL or missing references)
					//IL_0069: Unknown result type (might be due to invalid IL or missing references)
					//IL_0072: Unknown result type (might be due to invalid IL or missing references)
					//IL_00c9: 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_00d3: Unknown result type (might be due to invalid IL or missing references)
					//IL_012a: Unknown result type (might be due to invalid IL or missing references)
					//IL_012b: Unknown result type (might be due to invalid IL or missing references)
					skinParams.gameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[3]
					{
						new GameObjectActivation
						{
							gameObject = ((Component)ThrowIfNull<Renderer>(0, "There is no renderer with the name \"MeshRocketDefault0Backpack\"", ((IEnumerable<Renderer>)renderers).FirstOrDefault((Func<Renderer, bool>)((Renderer r) => ((Object)r).name == "MeshRocketDefault0Backpack")))).gameObject,
							shouldActivate = false,
							spawnPrefabOnModelObject = false
						},
						new GameObjectActivation
						{
							gameObject = ((Component)ThrowIfNull<Renderer>(1, "There is no renderer with the name \"MeshRocketDefault6Rocket\"", ((IEnumerable<Renderer>)renderers).FirstOrDefault((Func<Renderer, bool>)((Renderer r) => ((Object)r).name == "MeshRocketDefault6Rocket")))).gameObject,
							shouldActivate = false,
							spawnPrefabOnModelObject = false
						},
						new GameObjectActivation
						{
							gameObject = ((Component)ThrowIfNull<Renderer>(2, "There is no renderer with the name \"MeshRocketDefault1Frag\"", ((IEnumerable<Renderer>)renderers).FirstOrDefault((Func<Renderer, bool>)((Renderer r) => ((Object)r).name == "MeshRocketDefault1Frag")))).gameObject,
							shouldActivate = false,
							spawnPrefabOnModelObject = false
						}
					};
				});
				TryCatchThrow("Renderer Infos", delegate
				{
					//IL_0011: Unknown result type (might be due to invalid IL or missing references)
					//IL_0030: Unknown result type (might be due to invalid IL or missing references)
					//IL_0079: Unknown result type (might be due to invalid IL or missing references)
					//IL_007a: Unknown result type (might be due to invalid IL or missing references)
					//IL_0083: Unknown result type (might be due to invalid IL or missing references)
					//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
					//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
					//IL_00ec: Unknown result type (might be due to invalid IL or missing references)
					//IL_00f5: 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_015d: Unknown result type (might be due to invalid IL or missing references)
					//IL_015e: Unknown result type (might be due to invalid IL or missing references)
					skinParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[3]
					{
						new RendererInfo
						{
							defaultMaterial = assetBundle.LoadAsset<Material>("Assets/Skins/MisakiRocket/Skin/matMisakiBody.mat"),
							defaultShadowCastingMode = (ShadowCastingMode)1,
							ignoreOverlays = false,
							renderer = ThrowIfNull<Renderer>(0, "There is no renderer with the name \"MeshRocketDefault4Body\"", ((IEnumerable<Renderer>)renderers).FirstOrDefault((Func<Renderer, bool>)((Renderer r) => ((Object)r).name == "MeshRocketDefault4Body")))
						},
						new RendererInfo
						{
							defaultMaterial = assetBundle.LoadAsset<Material>("Assets/Skins/MisakiRocket/Skin/matMisakiLauncher.mat"),
							defaultShadowCastingMode = (ShadowCastingMode)1,
							ignoreOverlays = false,
							renderer = ThrowIfNull<Renderer>(1, "There is no renderer with the name \"MeshRocketDefault3Launcher\"", ((IEnumerable<Renderer>)renderers).FirstOrDefault((Func<Renderer, bool>)((Renderer r) => ((Object)r).name == "MeshRocketDefault3Launcher")))
						},
						new RendererInfo
						{
							defaultMaterial = assetBundle.LoadAsset<Material>("Assets/Skins/MisakiRocket/Skin/matMisakiBody.mat"),
							defaultShadowCastingMode = (ShadowCastingMode)1,
							ignoreOverlays = false,
							renderer = ThrowIfNull<Renderer>(2, "There is no renderer with the name \"MeshRocketDefault2FragsAttached\"", ((IEnumerable<Renderer>)renderers).FirstOrDefault((Func<Renderer, bool>)((Renderer r) => ((Object)r).name == "MeshRocketDefault2FragsAttached")))
						}
					};
				});
				TryCatchThrow("Mesh Replacements", delegate
				{
					//IL_0011: Unknown result type (might be due to invalid IL or missing references)
					//IL_0069: Unknown result type (might be due to invalid IL or missing references)
					//IL_006a: 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_00cb: Unknown result type (might be due to invalid IL or missing references)
					//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
					//IL_00d5: Unknown result type (might be due to invalid IL or missing references)
					//IL_012d: Unknown result type (might be due to invalid IL or missing references)
					//IL_012e: Unknown result type (might be due to invalid IL or missing references)
					skinParams.meshReplacements = (MeshReplacement[])(object)new MeshReplacement[3]
					{
						new MeshReplacement
						{
							mesh = assetBundle.LoadAsset<Mesh>("Assets\\SkinMods\\MisakiRocket\\Meshes\\MisakiBodyMesh.mesh"),
							renderer = ThrowIfNull<Renderer>(0, "There is no renderer with the name \"MeshRocketDefault4Body\"", ((IEnumerable<Renderer>)renderers).FirstOrDefault((Func<Renderer, bool>)((Renderer r) => ((Object)r).name == "MeshRocketDefault4Body")))
						},
						new MeshReplacement
						{
							mesh = assetBundle.LoadAsset<Mesh>("Assets\\SkinMods\\MisakiRocket\\Meshes\\MisakiLauncherMesh.mesh"),
							renderer = ThrowIfNull<Renderer>(1, "There is no renderer with the name \"MeshRocketDefault3Launcher\"", ((IEnumerable<Renderer>)renderers).FirstOrDefault((Func<Renderer, bool>)((Renderer r) => ((Object)r).name == "MeshRocketDefault3Launcher")))
						},
						new MeshReplacement
						{
							mesh = assetBundle.LoadAsset<Mesh>("Assets\\SkinMods\\MisakiRocket\\Meshes\\MisakiMaskUpMesh.mesh"),
							renderer = ThrowIfNull<Renderer>(2, "There is no renderer with the name \"MeshRocketDefault2FragsAttached\"", ((IEnumerable<Renderer>)renderers).FirstOrDefault((Func<Renderer, bool>)((Renderer r) => ((Object)r).name == "MeshRocketDefault2FragsAttached")))
						}
					};
				});
				TryCatchThrow("Light Infos", delegate
				{
					skinParams.lightReplacements = (LightInfo[])(object)new LightInfo[0];
				});
				TryCatchThrow("Minion Skin Replacements", delegate
				{
					skinParams.minionSkinReplacements = Array.Empty<MinionSkinReplacement>();
				});
				TryCatchThrow("Projectile Ghost Replacements", delegate
				{
					skinParams.projectileGhostReplacements = Array.Empty<ProjectileGhostReplacement>();
				});
				Array.Resize(ref skinController.skins, skinController.skins.Length + 1);
				skinController.skins[skinController.skins.Length - 1] = skin;
				RocketSurvivorBodyDefMisakiRocketSkinAdded(skin, val);
			}
			catch (FieldException ex)
			{
				if (ex.InnerException is ElementException ex2)
				{
					InstanceLogger.LogWarning((object)("Failed to add \"" + text2 + "\" skin to \"" + text + "\""));
					InstanceLogger.LogWarning((object)$"Field causing issue: {ex.Message}, element: {ex2.Index}");
					InstanceLogger.LogWarning((object)ex2.Message);
					InstanceLogger.LogError((object)ex.InnerException);
				}
				else
				{
					InstanceLogger.LogWarning((object)("Failed to add \"" + text2 + "\" skin to \"" + text + "\""));
					InstanceLogger.LogWarning((object)("Field causing issue: " + ex.Message));
					InstanceLogger.LogError((object)ex.InnerException);
				}
			}
			catch (Exception ex3)
			{
				InstanceLogger.LogWarning((object)("Failed to add \"" + text2 + "\" skin to \"" + text + "\""));
				InstanceLogger.LogError((object)ex3);
			}
		}

		private static void RocketSurvivorBodyDefMisakiRocketMaskDownSkinAdded(SkinDef skinDef, GameObject bodyPrefab)
		{
			MisakiRocketPlugin.RocketSurvivorBodyDefMisakiRocketMaskDownSkinAddedEvent(Instance, new SkinAddedArgs(skinDef, bodyPrefab));
		}

		private static void AddRocketSurvivorBodyDefMisakiRocketMaskDownSkin()
		{
			string text = "RocketSurvivorBody";
			string text2 = "DefMisakiRocketMaskDown";
			try
			{
				GameObject val = BodyCatalog.FindBodyPrefab(text);
				if (!Object.op_Implicit((Object)(object)val))
				{
					Instance

RocketMisakiVoiceover.dll

Decompiled 2 weeks ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BaseVoiceoverLib;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using R2API;
using RiskOfOptions;
using RiskOfOptions.Options;
using RoR2;
using RoR2.ContentManagement;
using RocketMisakiVoiceover.Components;
using RocketMisakiVoiceover.Modules;
using UnityEngine;
using UnityEngine.Networking;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("RocketMisakiVoiceover")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+0d0eeeb4a1e260cdf59a8c862f14429b634ed213")]
[assembly: AssemblyProduct("RocketMisakiVoiceover")]
[assembly: AssemblyTitle("RocketMisakiVoiceover")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace RocketMisakiVoiceover
{
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInPlugin("com.Schale.RocketMisakiVoiceover", "RocketMisakiVoiceover", "2.0.0")]
	public class RocketMisakiVoiceoverPlugin : BaseUnityPlugin
	{
		public class NSEInfo
		{
			public NetworkSoundEventDef nse;

			public uint akId = 0u;

			public string eventName = string.Empty;

			public NSEInfo(NetworkSoundEventDef source)
			{
				nse = source;
				akId = source.akId;
				eventName = source.eventName;
			}

			private void DisableSound()
			{
				nse.akId = 0u;
				nse.eventName = string.Empty;
			}

			private void EnableSound()
			{
				nse.akId = akId;
				nse.eventName = eventName;
			}

			public void ValidateParams()
			{
				if (akId == 0)
				{
					akId = nse.akId;
				}
				if (eventName == string.Empty)
				{
					eventName = nse.eventName;
				}
				if (!enableVoicelines.Value)
				{
					DisableSound();
				}
				else
				{
					EnableSound();
				}
			}
		}

		public static ConfigEntry<KeyboardShortcut> buttonDust;

		public static ConfigEntry<KeyboardShortcut> buttonHurt;

		public static ConfigEntry<KeyboardShortcut> buttonTitle;

		public static ConfigEntry<KeyboardShortcut> buttonIntro;

		public static ConfigEntry<KeyboardShortcut> buttonThanks;

		public static ConfigEntry<KeyboardShortcut> buttonMuda;

		public static ConfigEntry<KeyboardShortcut> buttonNani;

		public static ConfigEntry<KeyboardShortcut> buttonCafe1;

		public static ConfigEntry<KeyboardShortcut> buttonCafe4;

		public static ConfigEntry<bool> enableVoicelines;

		public static bool playedSeasonalVoiceline = false;

		public static AssetBundle assetBundle;

		public static SurvivorDef rocketSurvivorDef;

		public static List<NSEInfo> nseList = new List<NSEInfo>();

		public void Awake()
		{
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			//IL_008f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0099: Expected O, but got Unknown
			//IL_0099: Expected O, but got Unknown
			//IL_00c5: 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_00d5: Expected O, but got Unknown
			//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fa: Expected O, but got Unknown
			//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_011f: Expected O, but got Unknown
			//IL_0134: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Unknown result type (might be due to invalid IL or missing references)
			//IL_0144: Expected O, but got Unknown
			//IL_0159: Unknown result type (might be due to invalid IL or missing references)
			//IL_015e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0169: Expected O, but got Unknown
			//IL_017e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0183: Unknown result type (might be due to invalid IL or missing references)
			//IL_018e: Expected O, but got Unknown
			//IL_01a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b3: Expected O, but got Unknown
			//IL_01c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d8: Expected O, but got Unknown
			//IL_01ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fd: Expected O, but got Unknown
			Files.PluginInfo = ((BaseUnityPlugin)this).Info;
			RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(OnLoad));
			new Content().Initialize();
			using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("RocketMisakiVoiceover.rocketmisakivoiceoverbundle"))
			{
				assetBundle = AssetBundle.LoadFromStream(stream);
			}
			SoundBanks.Init();
			InitNSE();
			enableVoicelines = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("Settings", "Enable Voicelines"), true, new ConfigDescription("Enable voicelines when using the RocketMisaki Skin.", (AcceptableValueBase)null, Array.Empty<object>()));
			enableVoicelines.SettingChanged += EnableVoicelines_SettingChanged;
			buttonTitle = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "Blue Archive"), KeyboardShortcut.Empty, (ConfigDescription)null);
			buttonIntro = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "Introduction"), KeyboardShortcut.Empty, (ConfigDescription)null);
			buttonDust = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "Dust to Dust"), KeyboardShortcut.Empty, (ConfigDescription)null);
			buttonCafe1 = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "Noisy"), KeyboardShortcut.Empty, (ConfigDescription)null);
			buttonCafe4 = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "Not Interested"), KeyboardShortcut.Empty, (ConfigDescription)null);
			buttonThanks = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "Thanks"), KeyboardShortcut.Empty, (ConfigDescription)null);
			buttonMuda = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "Muda"), KeyboardShortcut.Empty, (ConfigDescription)null);
			buttonNani = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "Nani"), KeyboardShortcut.Empty, (ConfigDescription)null);
			buttonHurt = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>(new ConfigDefinition("Keybinds", "Hurt"), KeyboardShortcut.Empty, (ConfigDescription)null);
			if (Chainloader.PluginInfos.ContainsKey("com.rune580.riskofoptions"))
			{
				RiskOfOptionsCompat();
			}
		}

		private void EnableVoicelines_SettingChanged(object sender, EventArgs e)
		{
			RefreshNSE();
		}

		[MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)]
		private void RiskOfOptionsCompat()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Expected O, but got Unknown
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Expected O, but got Unknown
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Expected O, but got Unknown
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0055: Expected O, but got Unknown
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0065: Expected O, but got Unknown
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0075: Expected O, but got Unknown
			//IL_007b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0085: Expected O, but got Unknown
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0095: Expected O, but got Unknown
			ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(enableVoicelines));
			ModSettingsManager.SetModIcon(assetBundle.LoadAsset<Sprite>("Misaki"));
			ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonTitle));
			ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonIntro));
			ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonDust));
			ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonThanks));
			ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonMuda));
			ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonNani));
			ModSettingsManager.AddOption((BaseOption)new KeyBindOption(buttonHurt));
		}

		private void OnLoad()
		{
			//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_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c1: Expected O, but got Unknown
			//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00da: Expected O, but got Unknown
			//IL_00da: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e4: Expected O, but got Unknown
			//IL_0114: Unknown result type (might be due to invalid IL or missing references)
			//IL_011b: Expected O, but got Unknown
			//IL_012a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: Expected O, but got Unknown
			//IL_0134: Unknown result type (might be due to invalid IL or missing references)
			//IL_013e: Expected O, but got Unknown
			BodyIndex val = BodyCatalog.FindBodyIndex("RocketSurvivorBody");
			SkinDef val2 = null;
			SkinDef val3 = null;
			SkinDef[] array = SkinCatalog.FindSkinsForBody(val);
			SkinDef[] array2 = array;
			foreach (SkinDef val4 in array2)
			{
				if (((Object)val4).name == "DefMisakiRocket")
				{
					val2 = val4;
				}
				else if (((Object)val4).name == "DefMisakiRocketMaskDown")
				{
					val3 = val4;
				}
				if (Object.op_Implicit((Object)(object)val2) && Object.op_Implicit((Object)(object)val3))
				{
					break;
				}
			}
			if (!Object.op_Implicit((Object)(object)val2))
			{
				Debug.LogError((object)"RocketMisakiVoiceover: DefMisakiRocket SkinDef not found. Voicelines will not work!");
			}
			else
			{
				VoiceoverInfo val5 = new VoiceoverInfo(typeof(RocketMisakiVoiceoverComponent), val2, "RocketSurvivorBody");
				val5.selectActions = (LobbySelectActions)Delegate.Combine((Delegate?)(object)val5.selectActions, (Delegate?)new LobbySelectActions(MisakiSelect));
			}
			if (!Object.op_Implicit((Object)(object)val3))
			{
				Debug.LogError((object)"RocketMisakiVoiceover: DefMisakiRocketMaskDown SkinDef not found. Voicelines will not work!");
			}
			else
			{
				VoiceoverInfo val6 = new VoiceoverInfo(typeof(RocketMisakiVoiceoverComponent), val3, "RocketSurvivorBody");
				val6.selectActions = (LobbySelectActions)Delegate.Combine((Delegate?)(object)val6.selectActions, (Delegate?)new LobbySelectActions(MisakiSelect));
			}
			RefreshNSE();
		}

		private void MisakiSelect(GameObject mannequinObject)
		{
			if (!enableVoicelines.Value)
			{
				return;
			}
			bool flag = false;
			if (!playedSeasonalVoiceline)
			{
				if ((DateTime.Today.Month == 1 && DateTime.Today.Day == 1) || (DateTime.Today.Month == 12 && DateTime.Today.Day == 31))
				{
					Util.PlaySound("Play_RocketMisaki_Lobby_Newyear", mannequinObject);
					flag = true;
				}
				else if (DateTime.Today.Month == 1 && DateTime.Today.Day == 13)
				{
					Util.PlaySound("Play_RocketMisaki_Lobby_bday", mannequinObject);
					flag = true;
				}
				else if (DateTime.Today.Month == 10 && DateTime.Today.Day == 31)
				{
					Util.PlaySound("Play_RocketMisaki_Lobby_Halloween", mannequinObject);
					flag = true;
				}
				else if (DateTime.Today.Month == 12 && (DateTime.Today.Day == 24 || DateTime.Today.Day == 25))
				{
					Util.PlaySound("Play_RocketMisaki_Lobby_xmas", mannequinObject);
					flag = true;
				}
				if (flag)
				{
					playedSeasonalVoiceline = true;
				}
			}
			if (!flag)
			{
				if (Util.CheckRoll(5f, 0f, (CharacterMaster)null))
				{
					Util.PlaySound("Play_RocketMisaki_TitleDrop", mannequinObject);
				}
				else
				{
					Util.PlaySound("Play_RocketMisaki_Lobby", mannequinObject);
				}
			}
		}

		private void InitNSE()
		{
			RocketMisakiVoiceoverComponent.nseBlock = RegisterNSE("Play_RocketMisaki_Blocked");
			RocketMisakiVoiceoverComponent.nseEx = RegisterNSE("Play_RocketMisaki_ExSkill");
			RocketMisakiVoiceoverComponent.nseExLevel = RegisterNSE("Play_RocketMisaki_ExSkill_Level");
			RocketMisakiVoiceoverComponent.nseShout = RegisterNSE("Play_RocketMisaki_Shout");
			RocketMisakiVoiceoverComponent.nseDust = RegisterNSE("Play_RocketMisaki_ExSkill_Level_1");
			RocketMisakiVoiceoverComponent.nseHurt = RegisterNSE("Play_RocketMisaki_TakeDamage");
			RocketMisakiVoiceoverComponent.nseTitle = RegisterNSE("Play_RocketMisaki_TitleDrop");
			RocketMisakiVoiceoverComponent.nseIntro = RegisterNSE("Play_RocketMisaki_Intro");
			RocketMisakiVoiceoverComponent.nseThanks = RegisterNSE("Play_RocketMisaki_Thanks");
			RocketMisakiVoiceoverComponent.nseNani = RegisterNSE("Play_RocketMisaki_nani");
			RocketMisakiVoiceoverComponent.nseCafe1 = RegisterNSE("Play_RocketMisaki_Cafe1");
			RocketMisakiVoiceoverComponent.nseCafe4 = RegisterNSE("Play_RocketMisaki_Cafe4");
		}

		public void RefreshNSE()
		{
			foreach (NSEInfo nse in nseList)
			{
				nse.ValidateParams();
			}
		}

		private NetworkSoundEventDef RegisterNSE(string eventName)
		{
			NetworkSoundEventDef val = ScriptableObject.CreateInstance<NetworkSoundEventDef>();
			val.eventName = eventName;
			Content.networkSoundEventDefs.Add(val);
			nseList.Add(new NSEInfo(val));
			return val;
		}
	}
}
namespace RocketMisakiVoiceover.Modules
{
	public class Content : IContentPackProvider
	{
		internal ContentPack contentPack = new ContentPack();

		public static List<NetworkSoundEventDef> networkSoundEventDefs = new List<NetworkSoundEventDef>();

		public string identifier => "com.Schale.RocketMisakiVoiceover";

		public void Initialize()
		{
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Expected O, but got Unknown
			ContentManager.collectContentPackProviders += new CollectContentPackProvidersDelegate(ContentManager_collectContentPackProviders);
		}

		private void ContentManager_collectContentPackProviders(AddContentPackProviderDelegate addContentPackProvider)
		{
			addContentPackProvider.Invoke((IContentPackProvider)(object)this);
		}

		public IEnumerator LoadStaticContentAsync(LoadStaticContentAsyncArgs args)
		{
			contentPack.identifier = identifier;
			contentPack.networkSoundEventDefs.Add(networkSoundEventDefs.ToArray());
			args.ReportProgress(1f);
			yield break;
		}

		public IEnumerator GenerateContentPackAsync(GetContentPackAsyncArgs args)
		{
			ContentPack.Copy(contentPack, args.output);
			args.ReportProgress(1f);
			yield break;
		}

		public IEnumerator FinalizeAsync(FinalizeAsyncArgs args)
		{
			args.ReportProgress(1f);
			yield break;
		}
	}
	public static class Files
	{
		public static PluginInfo PluginInfo;

		internal static string assemblyDir => Path.GetDirectoryName(PluginInfo.Location);

		internal static void Init(PluginInfo info)
		{
			PluginInfo = info;
		}

		internal static string GetPathToFile(string folderName, string fileName)
		{
			return Path.Combine(assemblyDir, folderName, fileName);
		}
	}
	public static class SoundBanks
	{
		private static bool initialized;

		public static string SoundBankDirectory => Files.assemblyDir;

		public static void Init()
		{
			if (initialized)
			{
				return;
			}
			initialized = true;
			using Stream stream = new FileStream(SoundBankDirectory + "\\RocketMisakiSoundbank.bnk", FileMode.Open);
			byte[] array = new byte[stream.Length];
			stream.Read(array, 0, array.Length);
			SoundBanks.Add(array);
		}
	}
}
namespace RocketMisakiVoiceover.Components
{
	public class RocketMisakiVoiceoverComponent : BaseVoiceoverComponent
	{
		public static NetworkSoundEventDef nseBlock;

		public static NetworkSoundEventDef nseEx;

		public static NetworkSoundEventDef nseExLevel;

		public static NetworkSoundEventDef nseShout;

		public static NetworkSoundEventDef nseDust;

		public static NetworkSoundEventDef nseHurt;

		public static NetworkSoundEventDef nseTitle;

		public static NetworkSoundEventDef nseIntro;

		public static NetworkSoundEventDef nseThanks;

		public static NetworkSoundEventDef nseNani;

		public static NetworkSoundEventDef nseCafe4;

		public static NetworkSoundEventDef nseCafe1;

		private float levelCooldown = 0f;

		private float blockedCooldown = 0f;

		private float lowHealthCooldown = 0f;

		private float secondaryCooldown = 0f;

		private float specialCooldown = 0f;

		private float bearCooldown = 0f;

		private bool acquiredScepter = false;

		protected override void Start()
		{
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			((BaseVoiceoverComponent)this).Start();
			if (Object.op_Implicit((Object)(object)base.inventory) && base.inventory.GetItemCount(BaseVoiceoverComponent.scepterIndex) > 0)
			{
				acquiredScepter = true;
			}
		}

		protected override void FixedUpdate()
		{
			((BaseVoiceoverComponent)this).FixedUpdate();
			if (specialCooldown > 0f)
			{
				specialCooldown -= Time.fixedDeltaTime;
			}
			if (secondaryCooldown > 0f)
			{
				secondaryCooldown -= Time.fixedDeltaTime;
			}
			if (levelCooldown > 0f)
			{
				levelCooldown -= Time.fixedDeltaTime;
			}
			if (blockedCooldown > 0f)
			{
				blockedCooldown -= Time.fixedDeltaTime;
			}
			if (lowHealthCooldown > 0f)
			{
				lowHealthCooldown -= Time.fixedDeltaTime;
			}
			if (bearCooldown > 0f)
			{
				bearCooldown -= Time.fixedDeltaTime;
			}
		}

		public override void PlayDamageBlockedServer()
		{
			if (NetworkServer.active && !(blockedCooldown > 0f) && ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseBlock, 0.8f, false))
			{
				blockedCooldown = 30f;
			}
		}

		public override void PlayDeath()
		{
			((BaseVoiceoverComponent)this).TryPlaySound("Play_RocketMisaki_Defeat", 4f, true);
		}

		public override void PlayHurt(float percentHPLost)
		{
			if (percentHPLost >= 0.1f)
			{
				((BaseVoiceoverComponent)this).TryPlaySound("Play_RocketMisaki_TakeDamage", 0f, false);
			}
		}

		public override void PlayLevelUp()
		{
			if (!(levelCooldown > 0f) && ((BaseVoiceoverComponent)this).TryPlaySound("Play_RocketMisaki_LevelUp", 5.7f, false))
			{
				levelCooldown = 60f;
			}
		}

		public override void PlayLowHealth()
		{
			if (!(lowHealthCooldown > 0f) && ((BaseVoiceoverComponent)this).TryPlaySound("Play_RocketMisaki_LowHealth", 1.2f, false))
			{
				lowHealthCooldown = 60f;
			}
		}

		public override void PlaySecondaryAuthority(GenericSkill skill)
		{
			if (!(secondaryCooldown > 0f) && ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseEx, 1.46f, false))
			{
				secondaryCooldown = 10f;
			}
		}

		public override void PlayUtilityAuthority(GenericSkill skill)
		{
			((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseShout, 0f, false);
		}

		public override void PlaySpawn()
		{
			((BaseVoiceoverComponent)this).TryPlaySound("Play_RocketMisaki_Spawn", 2.4f, true);
		}

		public override void PlaySpecialAuthority(GenericSkill skill)
		{
			if (!(specialCooldown > 0f) && ((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseExLevel, 1.85f, false))
			{
				specialCooldown = 10f;
			}
		}

		public override void PlayTeleporterFinish()
		{
			((BaseVoiceoverComponent)this).TryPlaySound("Play_RocketMisaki_Victory", 3.3f, false);
		}

		public override void PlayTeleporterStart()
		{
			((BaseVoiceoverComponent)this).TryPlaySound("Play_RocketMisaki_TeleporterStart", 3f, false);
		}

		public override void PlayVictory()
		{
			((BaseVoiceoverComponent)this).TryPlaySound("Play_RocketMisaki_Memorial4", 12.5f, true);
		}

		protected override void Inventory_onItemAddedClient(ItemIndex itemIndex)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Invalid comparison between Unknown and I4
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0092: Invalid comparison between Unknown and I4
			((BaseVoiceoverComponent)this).Inventory_onItemAddedClient(itemIndex);
			if ((int)BaseVoiceoverComponent.scepterIndex != -1 && itemIndex == BaseVoiceoverComponent.scepterIndex)
			{
				PlayAcquireScepter();
				return;
			}
			ItemDef itemDef = ItemCatalog.GetItemDef(itemIndex);
			if ((Object)(object)itemDef == (Object)(object)Items.MoreMissile)
			{
				PlayAcquireICBM();
			}
			else if ((Object)(object)itemDef == (Object)(object)Items.Squid)
			{
				PlayBadItem();
			}
			else if ((Object)(object)itemDef == (Object)(object)Items.Bear)
			{
				PlayBear();
			}
			else if (Object.op_Implicit((Object)(object)itemDef) && (int)itemDef.deprecatedTier == 2)
			{
				PlayAcquireLegendary();
			}
		}

		public void PlayAcquireScepter()
		{
			if (!acquiredScepter)
			{
				((BaseVoiceoverComponent)this).TryPlaySound("Play_RocketMisaki_AcquireScepter", 21.5f, true);
				acquiredScepter = true;
			}
		}

		public void PlayAcquireICBM()
		{
			((BaseVoiceoverComponent)this).TryPlaySound("Play_RocketMisaki_CommonSkill", 1.5f, false);
		}

		public void PlayBadItem()
		{
			((BaseVoiceoverComponent)this).TryPlaySound("Play_RocketMisaki_nani", 0.5f, false);
		}

		public void PlayAcquireLegendary()
		{
			if (Util.CheckRoll(50f, 0f, (CharacterMaster)null))
			{
				((BaseVoiceoverComponent)this).TryPlaySound("Play_RocketMisaki_Relationship_Short", 3f, false);
			}
			else
			{
				((BaseVoiceoverComponent)this).TryPlaySound("Play_RocketMisaki_Relationship", 7f, false);
			}
		}

		public void PlayBear()
		{
			if (!(bearCooldown > 0f) && ((!Util.CheckRoll(50f, 0f, (CharacterMaster)null)) ? ((BaseVoiceoverComponent)this).TryPlaySound("Play_RocketMisaki_Relationship", 7f, false) : ((BaseVoiceoverComponent)this).TryPlaySound("Play_RocketMisaki_Relationship_Short", 3f, false)))
			{
				bearCooldown = 60f;
			}
		}

		protected override void CheckInputs()
		{
			if (Utils.GetKeyPressed(RocketMisakiVoiceoverPlugin.buttonTitle))
			{
				((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseTitle, 1.1f, false);
			}
			else if (Utils.GetKeyPressed(RocketMisakiVoiceoverPlugin.buttonHurt))
			{
				((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseHurt, 0.1f, false);
			}
			else if (Utils.GetKeyPressed(RocketMisakiVoiceoverPlugin.buttonDust))
			{
				((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseDust, 1.8f, false);
			}
			else if (Utils.GetKeyPressed(RocketMisakiVoiceoverPlugin.buttonIntro))
			{
				((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseIntro, 12.5f, false);
			}
			else if (Utils.GetKeyPressed(RocketMisakiVoiceoverPlugin.buttonThanks))
			{
				((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseThanks, 2.1f, false);
			}
			else if (Utils.GetKeyPressed(RocketMisakiVoiceoverPlugin.buttonMuda))
			{
				((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseBlock, 0.75f, false);
			}
			else if (Utils.GetKeyPressed(RocketMisakiVoiceoverPlugin.buttonNani))
			{
				((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseNani, 0.4f, false);
			}
			else if (Utils.GetKeyPressed(RocketMisakiVoiceoverPlugin.buttonCafe1))
			{
				((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseCafe1, 1.5f, false);
			}
			else if (Utils.GetKeyPressed(RocketMisakiVoiceoverPlugin.buttonCafe4))
			{
				((BaseVoiceoverComponent)this).TryPlayNetworkSound(nseCafe4, 1.35f, false);
			}
		}

		public override bool ComponentEnableVoicelines()
		{
			return RocketMisakiVoiceoverPlugin.enableVoicelines.Value;
		}
	}
}