Decompiled source of GenshinImpactOverhaul v1.0.2

GenshinImpactOverhaul.dll

Decompiled 10 hours 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.InteropServices;
using System.Runtime.Versioning;
using System.Text;
using BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using LCSoundTool;
using UnityEngine;
using UnityEngine.VFX;
using UnityEngine.Video;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("GenshinImpactOverhaul")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("GenshinImpactOverhaul")]
[assembly: AssemblyCopyright("Copyright ©  2024")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("5695c7d4-518d-4a00-be27-60580d5b632c")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace GenshinImpactOverhaul;

[BepInPlugin("GenshinImpactOverhaul", "GoblinKingShmeesGenshinOverhaul", "1.0.0")]
public class GenshinImpactOverhaul : BaseUnityPlugin
{
	public class NilouFacingDirection : MonoBehaviour
	{
		public BlobAI blobAI;

		public Vector3 prevPosition;

		private void Update()
		{
			//IL_000c: 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_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_003f: 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)
			Vector3 val = ((Component)blobAI).transform.position - prevPosition;
			val.y = 0f;
			if (val != Vector3.zero)
			{
				Quaternion rotation = Quaternion.LookRotation(val);
				NilouObject.transform.rotation = rotation;
			}
			prevPosition = ((Component)blobAI).transform.position;
		}
	}

	private static Dictionary<Turret, Transform> turretDictionary = new Dictionary<Turret, Transform>();

	private readonly Harmony harmony = new Harmony("GenshinOverhaul");

	private static GenshinImpactOverhaul Instance;

	public static ManualLogSource mls;

	public static GameObject AlbedoPrefab;

	public static GameObject AlbedoObject;

	public static GameObject BennettPrefab;

	public static GameObject BennettObject;

	public static GameObject ChevPrefab;

	public static GameObject ChevObject;

	public static GameObject ChildePrefab;

	public static GameObject ChildeObject;

	public static GameObject DoriPrefab;

	public static GameObject DoriObject;

	public static GameObject FurinaPrefab;

	public static GameObject FurinaObject;

	public static GameObject IttoPrefab;

	public static GameObject IttoObject;

	public static GameObject KazuhaPrefab;

	public static GameObject KazuhaObject;

	public static GameObject KleePrefab;

	public static GameObject KleeObject;

	public static GameObject NaviaPrefab;

	public static GameObject NaviaObject;

	public static GameObject NeuvPrefab;

	public static GameObject NeuvObject;

	public static GameObject NilouPrefab;

	public static GameObject NilouObject;

	public static GameObject PaimonPrefab;

	public static GameObject PaimonObject;

	public static GameObject QiqiPrefab;

	public static GameObject QiqiObject;

	public static GameObject RaidenPrefab;

	public static GameObject RaidenObject;

	public static GameObject RazorPrefab;

	public static GameObject RazorObject;

	public static GameObject ScaraPrefab;

	public static GameObject ScaraObject;

	public static GameObject VentiPrefab;

	public static GameObject VentiObject;

	public static GameObject WrisPrefab;

	public static GameObject WrisObject;

	public static GameObject YaoyaoPrefab;

	public static GameObject YaoyaoObject;

	public static GameObject ZhongliPrefab;

	public static GameObject ZhongliObject;

	public static AssetBundle GenshinOverhaulAssetBundle;

	private AudioClip soundAlbedoCry1;

	private AudioClip soundAlbedoCry2;

	private AudioClip soundAlbedoCry3;

	private AudioClip soundAlbedoCry4;

	public static AudioClip soundAlbedoMaskFaceLightUp;

	public static AudioClip soundAlbedoLaugh1;

	private AudioClip soundAlbedoLaugh2;

	private AudioClip soundAlbedoLaugh3;

	private AudioClip soundAlbedoMaskPuke;

	private AudioClip soundAlbedoMaskAttackPlayer;

	private AudioClip soundBennettBeep;

	private AudioClip soundBennettTrigger;

	private AudioClip soundBennettPressLandmine;

	public static AudioClip BennetNoise;

	private AudioClip soundChevShotgunReloadNutcracker;

	private AudioClip soundChevNutcrackerHitEye;

	public static AudioClip soundChevNutcrackerAngry;

	private AudioClip soundChevNutcrackerDie;

	private AudioClip soundChevNutcrackerTurn;

	private AudioClip soundChevKick;

	private AudioClip soundChevStopTurning1;

	private AudioClip soundChevStopTurning2;

	private AudioClip soundChevStopTurning3;

	public static AudioClip soundChildeFrighten1;

	public static AudioClip soundChildeFrighten3;

	public static AudioClip soundChildeNervous;

	public static AudioClip soundChildeRattleTail;

	public static AudioClip soundChildePuffSFX;

	public static AudioClip soundChildeBite;

	public static AudioClip soundChildeStomp;

	public static AudioClip soundChildeAngry;

	private AudioClip soundDoriAngry1;

	private AudioClip soundDoriAngry2;

	private AudioClip soundDoriChitter1;

	private AudioClip soundDoriChitter2;

	private AudioClip soundDoriChitter3;

	private AudioClip soundDoriCry;

	private AudioClip soundDoriFly;

	private AudioClip soundDoriDie;

	private AudioClip soundFurinaStunSpider;

	private AudioClip soundFurinaSpiderAttack;

	private AudioClip soundFurinaSpiderDie;

	private AudioClip soundFurinaSpiderHit;

	public static AudioClip soundFurinaWalk;

	private AudioClip soundFurinaSpoolPlayerInWeb;

	public static AudioClip soundGenshinLoudhorn;

	public static AudioClip soundGenshinLoudhornDistant;

	private AudioClip soundGenshinMenu;

	public static AudioClip soundGenshinHighAction1;

	public static AudioClip soundGenshinHighAction2;

	public static AudioClip soundGenshinLowAction;

	private AudioClip soundGenshinCompanyBuildingMusic1;

	private AudioClip soundGenshinAmbientMusic1;

	private AudioClip soundGenshinAmbientMusic2;

	private AudioClip soundGenshinAmbientMusic3;

	private AudioClip soundGenshinIntroSpeech;

	private AudioClip soundGenshinMidDay;

	private AudioClip soundGenshinStartOfDay;

	public static AudioClip soundGenshinNight;

	private AudioClip soundGenshinJazz;

	public static AudioClip soundGenshinIcecreamTruckV2;

	private AudioClip soundGenshinIcecreamTruckFar;

	private AudioClip soundGenshinEclipseAmbience;

	private AudioClip soundIttoBaboonEnterFight;

	private AudioClip soundIttoBaboonKill;

	private AudioClip soundIttoBaboonStab;

	private AudioClip soundIttoBaboonTakeDamage;

	private AudioClip soundIttoKillBaboon;

	private AudioClip soundIttoCaw1;

	private AudioClip soundIttoCawScream1;

	private AudioClip soundIttoCawScream2;

	private AudioClip soundIttoCawScream3;

	private AudioClip soundIttoCawScream4;

	private AudioClip soundIttoCawScream5;

	public static AudioClip soundKazuhaLocusts;

	public static AudioClip soundKazuhaEvade;

	public static AudioClip soundGiantEatPlayer;

	private AudioClip soundStunGiant;

	private AudioClip soundKleeDistantRumble1;

	private AudioClip soundKleeDistantRumble2;

	private AudioClip soundKleeDistantRumble3;

	public static AudioClip soundNaviaTurretActivate;

	public static AudioClip soundNaviaTurretBeserkMode;

	public static AudioClip soundNaviaTurretDeactivate;

	public static AudioClip soundNaviaTurretFire;

	public static AudioClip soundNaviaTurretFireDistant;

	public static AudioClip soundNaviaTurretSeePlayer;

	private AudioClip soundNeuvTurnCrank1;

	private AudioClip soundNeuvTurnCrank2;

	private AudioClip soundNeuvTurnCrank3;

	private AudioClip soundNeuvScream1;

	private AudioClip soundNeuvJackInTheBoxTheme;

	private AudioClip soundNeuvPop1;

	public static AudioClip soundNeuvKillPlayer;

	public static AudioClip NilouHitSlime;

	public static AudioClip NilouEatPlayer;

	public static AudioClip NilouJiggleSFX;

	public static AudioClip NilouAngry;

	public static AudioClip NilouIdle;

	private AudioClip soundPaimonClingToPlayer;

	private AudioClip soundPaimonClingToPlayerLocal;

	private AudioClip soundPaimonDeathShriek;

	private AudioClip soundPaimonmonsterNoise;

	private AudioClip soundPaimonmonsterNoise2;

	private AudioClip soundPaimonmonsterNoiseB;

	private AudioClip soundPaimonShriek1;

	private AudioClip soundPaimonShriek2;

	public static AudioClip soundQiqiBellChimeAmbience;

	public static AudioClip soundQiqiLaugh1_0;

	public static AudioClip soundQiqiLaugh2;

	public static AudioClip soundQiqiBreathing;

	public static AudioClip soundRaidenAngered;

	public static AudioClip soundRaidenCrackNeck;

	public static AudioClip soundRaidenFound1;

	public static AudioClip soundRaidenStunFlowerman;

	private AudioClip soundRazorBitePlayer;

	private AudioClip soundRazorShortRoar1;

	private AudioClip soundRazorLongRoar1;

	private AudioClip soundRazorLongRoar2;

	private AudioClip soundRazorLongRoar3;

	private AudioClip soundRazorRam1;

	private AudioClip soundRazorRam2;

	private AudioClip soundRazorRam3;

	private AudioClip soundRazorCrawlerDie;

	private AudioClip soundRazorHitCrawler1;

	private AudioClip soundRazorHitCrawler2;

	private AudioClip soundRazorStunCrawler;

	private AudioClip soundScaraBeeZap1;

	private AudioClip soundScaraBeeZap2;

	private AudioClip soundScaraBeeZap3;

	private AudioClip soundScaraBeeZap4;

	private AudioClip soundScaraBeeZap5;

	private AudioClip soundScaraBeeZap6;

	public static AudioClip soundScaraBeeZapConstant;

	public static AudioClip soundScaraBeesDefensive;

	public static AudioClip soundScaraBeeHiveIdle;

	public static AudioClip soundScaraBeesAngry;

	private AudioClip soundVentiStunDoublewing;

	private AudioClip soundVentiDoublewingFlap1;

	private AudioClip soundVentiDoublewingFlap2;

	private AudioClip soundVentiDoublewingFlap3;

	public static AudioClip soundVentiDoublewingFlapConstant;

	private AudioClip soundVentiKillDoublewing;

	private AudioClip soundVentiBird1;

	private AudioClip soundVentiBird2;

	private AudioClip soundVentiBird3;

	private AudioClip soundVentiBirdScreech1;

	private AudioClip soundVentiBirdScreech2;

	private AudioClip soundWrisStunDog;

	public static AudioClip soundWrisBreathe1;

	private AudioClip soundWrisgrowl;

	private AudioClip soundWrisKillPlayer;

	private AudioClip soundWrisKillPlayer_0;

	private AudioClip soundWrisLunge1;

	private AudioClip soundWrisRoar_0;

	private AudioClip soundWrisRoar;

	private AudioClip soundYaoyaoSandWormRoar;

	private AudioClip soundYaoyaoSandWormRoar2;

	private AudioClip soundYaoyaoBurrowingGrowl1;

	private AudioClip soundYaoyaoBurrowingRumble1;

	private AudioClip soundYaoyaoBurrowingRumble2;

	private AudioClip soundYaoyaoBurrowingRumble3;

	private AudioClip soundYaoyaoBurrowingRumbleLoud1;

	private AudioClip soundYaoyaoEmergeFromGround1;

	private AudioClip soundZhongliSpring1;

	private AudioClip soundZhongliSpring2;

	private AudioClip soundZhongliSpring3;

	private AudioClip soundZhongliSpringWobble1;

	private AudioClip soundZhongliSpringWobble2;

	private AudioClip soundZhongliKillPlayerSpring;

	private AudioClip soundZhongliBareFootstep1;

	private AudioClip soundZhongliBareFootstep2;

	private AudioClip soundZhongliBareFootstep3;

	private AudioClip soundZhongliBareFootstep4;

	public static TextAsset PaimonText;

	public static VideoClip PaimonVideo;

	public static TextAsset RaidenText;

	public static VideoClip RaidenVideo;

	public static TextAsset RazorText;

	public static VideoClip RazorVideo;

	public static TextAsset WrisText;

	public static VideoClip WrisVideo;

	public static TextAsset DoriText;

	public static VideoClip DoriVideo;

	public static TextAsset NilouText;

	public static VideoClip NilouVideo;

	public static TextAsset KleeText;

	public static VideoClip KleeVideo;

	public static TextAsset ZhongliText;

	public static VideoClip ZhongliVideo;

	public static TextAsset YaoyaoText;

	public static VideoClip YaoyaoVideo;

	public static TextAsset NeuvText;

	public static VideoClip NeuvVideo;

	public static TextAsset ChildeText;

	public static VideoClip ChildeVideo;

	public static TextAsset FurinaText;

	public static VideoClip FurinaVideo;

	public static TextAsset VentiText;

	public static VideoClip VentiVideo;

	public static TextAsset ScaraText;

	public static VideoClip ScaraVideo;

	public static TextAsset KazuhaText;

	public static VideoClip KazuhaVideo;

	public static TextAsset IttoText;

	public static VideoClip IttoVideo;

	public static TextAsset ChevText;

	public static VideoClip ChevVideo;

	private void Awake()
	{
		if ((Object)(object)Instance == (Object)null)
		{
			Instance = this;
		}
		mls = ((BaseUnityPlugin)this).Logger;
		mls.LogInfo((object)"GENSHIN-IMPACT-OVERHAUL-LOADED");
		harmony.PatchAll(typeof(GenshinImpactOverhaul));
		string text = Path.Combine(Path.GetDirectoryName(((BaseUnityPlugin)this).Info.Location), "genshinoverhaul");
		mls.LogDebug((object)text);
		GenshinOverhaulAssetBundle = AssetBundle.LoadFromFile(text);
		if ((Object)(object)GenshinOverhaulAssetBundle == (Object)null)
		{
			mls.LogError((object)"COULD NOT FIND GENSHIN ASSETS");
		}
		AlbedoPrefab = GenshinOverhaulAssetBundle.LoadAsset<GameObject>("Assets/PrefabInstance/Albedo.prefab");
		BennettPrefab = GenshinOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Bennett/bennett.prefab");
		ChevPrefab = GenshinOverhaulAssetBundle.LoadAsset<GameObject>("Assets/PrefabInstance/ChevreuseV2.prefab");
		ChildePrefab = GenshinOverhaulAssetBundle.LoadAsset<GameObject>("Assets/PrefabInstance/Childe.prefab");
		DoriPrefab = GenshinOverhaulAssetBundle.LoadAsset<GameObject>("Assets/PrefabInstance/Dori.prefab");
		FurinaPrefab = GenshinOverhaulAssetBundle.LoadAsset<GameObject>("Assets/PrefabInstance/Furina.prefab");
		IttoPrefab = GenshinOverhaulAssetBundle.LoadAsset<GameObject>("Assets/PrefabInstance/Itto1.prefab");
		KazuhaPrefab = GenshinOverhaulAssetBundle.LoadAsset<GameObject>("Assets/PrefabInstance/Kazuha.prefab");
		KleePrefab = GenshinOverhaulAssetBundle.LoadAsset<GameObject>("Assets/PrefabInstance/Klee.prefab");
		NaviaPrefab = GenshinOverhaulAssetBundle.LoadAsset<GameObject>("Assets/PrefabInstance/NaviaV1.prefab");
		NeuvPrefab = GenshinOverhaulAssetBundle.LoadAsset<GameObject>("Assets/PrefabInstance/Neuv2.prefab");
		NilouPrefab = GenshinOverhaulAssetBundle.LoadAsset<GameObject>("Assets/PrefabInstance/Nilou.prefab");
		PaimonPrefab = GenshinOverhaulAssetBundle.LoadAsset<GameObject>("Assets/PrefabInstance/Paimon.prefab");
		QiqiPrefab = GenshinOverhaulAssetBundle.LoadAsset<GameObject>("Assets/PrefabInstance/Qiqi.prefab");
		RaidenPrefab = GenshinOverhaulAssetBundle.LoadAsset<GameObject>("Assets/PrefabInstance/Raiden.prefab");
		RazorPrefab = GenshinOverhaulAssetBundle.LoadAsset<GameObject>("Assets/PrefabInstance/Razor.prefab");
		ScaraPrefab = GenshinOverhaulAssetBundle.LoadAsset<GameObject>("Assets/PrefabInstance/Scaramouche.prefab");
		VentiPrefab = GenshinOverhaulAssetBundle.LoadAsset<GameObject>("Assets/PrefabInstance/Venti.prefab");
		WrisPrefab = GenshinOverhaulAssetBundle.LoadAsset<GameObject>("Assets/PrefabInstance/Wrio.prefab");
		YaoyaoPrefab = GenshinOverhaulAssetBundle.LoadAsset<GameObject>("Assets/PrefabInstance/Yaoyao.prefab");
		ZhongliPrefab = GenshinOverhaulAssetBundle.LoadAsset<GameObject>("Assets/PrefabInstance/Zhongli1.prefab");
		PaimonVideo = GenshinOverhaulAssetBundle.LoadAsset<VideoClip>("Assets/Terminal/PaimonVideo.mp4");
		PaimonText = GenshinOverhaulAssetBundle.LoadAsset<TextAsset>("Assets/Terminal/PaimonText.txt");
		RaidenVideo = GenshinOverhaulAssetBundle.LoadAsset<VideoClip>("Assets/Terminal/RaidenVideo.mp4");
		RaidenText = GenshinOverhaulAssetBundle.LoadAsset<TextAsset>("Assets/Terminal/RaidenText.txt");
		RazorVideo = GenshinOverhaulAssetBundle.LoadAsset<VideoClip>("Assets/Terminal/RazorVideo.mp4");
		RazorText = GenshinOverhaulAssetBundle.LoadAsset<TextAsset>("Assets/Terminal/RazorText.txt");
		WrisVideo = GenshinOverhaulAssetBundle.LoadAsset<VideoClip>("Assets/Terminal/WrisVideo.mp4");
		WrisText = GenshinOverhaulAssetBundle.LoadAsset<TextAsset>("Assets/Terminal/WrisText.txt");
		DoriVideo = GenshinOverhaulAssetBundle.LoadAsset<VideoClip>("Assets/Terminal/DoriVideo.mp4");
		DoriText = GenshinOverhaulAssetBundle.LoadAsset<TextAsset>("Assets/Terminal/DoriText.txt");
		KleeVideo = GenshinOverhaulAssetBundle.LoadAsset<VideoClip>("Assets/Terminal/KleeVideo.mp4");
		KleeText = GenshinOverhaulAssetBundle.LoadAsset<TextAsset>("Assets/Terminal/KleeText.txt");
		ZhongliVideo = GenshinOverhaulAssetBundle.LoadAsset<VideoClip>("Assets/Terminal/ZhongliVideo.mp4");
		ZhongliText = GenshinOverhaulAssetBundle.LoadAsset<TextAsset>("Assets/Terminal/ZhongliText.txt");
		YaoyaoVideo = GenshinOverhaulAssetBundle.LoadAsset<VideoClip>("Assets/Terminal/YaoyaoVideo.mp4");
		YaoyaoText = GenshinOverhaulAssetBundle.LoadAsset<TextAsset>("Assets/Terminal/YaoyaoText.txt");
		NeuvVideo = GenshinOverhaulAssetBundle.LoadAsset<VideoClip>("Assets/Terminal/NeuvVideo.mp4");
		NeuvText = GenshinOverhaulAssetBundle.LoadAsset<TextAsset>("Assets/Terminal/NeuvText.txt");
		ChildeVideo = GenshinOverhaulAssetBundle.LoadAsset<VideoClip>("Assets/Terminal/ChildeVideo.mp4");
		ChildeText = GenshinOverhaulAssetBundle.LoadAsset<TextAsset>("Assets/Terminal/ChildeText.txt");
		FurinaVideo = GenshinOverhaulAssetBundle.LoadAsset<VideoClip>("Assets/Terminal/FurinaVideo.mp4");
		FurinaText = GenshinOverhaulAssetBundle.LoadAsset<TextAsset>("Assets/Terminal/FurinaText.txt");
		VentiVideo = GenshinOverhaulAssetBundle.LoadAsset<VideoClip>("Assets/Terminal/VentiVideo.mp4");
		VentiText = GenshinOverhaulAssetBundle.LoadAsset<TextAsset>("Assets/Terminal/VentiText.txt");
		ScaraVideo = GenshinOverhaulAssetBundle.LoadAsset<VideoClip>("Assets/Terminal/ScaraVideo.mp4");
		ScaraText = GenshinOverhaulAssetBundle.LoadAsset<TextAsset>("Assets/Terminal/ScaraText.txt");
		IttoVideo = GenshinOverhaulAssetBundle.LoadAsset<VideoClip>("Assets/Terminal/IttoVideo.mp4");
		IttoText = GenshinOverhaulAssetBundle.LoadAsset<TextAsset>("Assets/Terminal/IttoText.txt");
		ChevVideo = GenshinOverhaulAssetBundle.LoadAsset<VideoClip>("Assets/Terminal/ChevVideo.mp4");
		ChevText = GenshinOverhaulAssetBundle.LoadAsset<TextAsset>("Assets/Terminal/ChevText.txt");
		KazuhaVideo = GenshinOverhaulAssetBundle.LoadAsset<VideoClip>("Assets/Terminal/KazuhaVideo.mp4");
		KazuhaText = GenshinOverhaulAssetBundle.LoadAsset<TextAsset>("Assets/Terminal/KazuhaText.txt");
		NilouVideo = GenshinOverhaulAssetBundle.LoadAsset<VideoClip>("Assets/Terminal/NilouVideo.mp4");
		NilouText = GenshinOverhaulAssetBundle.LoadAsset<TextAsset>("Assets/Terminal/NilouText.txt");
	}

	private void Start()
	{
		mls.LogInfo((object)"GENSHIN OVERHAUL SOUND PATCH");
		soundAlbedoCry1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/AlbedoCry1.ogg");
		soundAlbedoCry2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/AlbedoCry2.ogg");
		soundAlbedoCry3 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/AlbedoCry3.ogg");
		soundAlbedoCry4 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/AlbedoCry4.ogg");
		soundAlbedoMaskFaceLightUp = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/AlbedoMaskFaceLightUp.ogg");
		soundAlbedoLaugh1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/AlbedoLaugh1.ogg");
		soundAlbedoLaugh2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/AlbedoLaugh2.ogg");
		soundAlbedoLaugh3 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/AlbedoLaugh3.ogg");
		soundAlbedoMaskAttackPlayer = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/AlbedoMaskAttackPlayer.ogg");
		soundAlbedoMaskPuke = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/AlbedoCry2.ogg");
		SoundTool.ReplaceAudioClip("MaskCry1", soundAlbedoCry1);
		SoundTool.ReplaceAudioClip("MaskCry2", soundAlbedoCry2);
		SoundTool.ReplaceAudioClip("MaskCry3", soundAlbedoCry3);
		SoundTool.ReplaceAudioClip("MaskCry4", soundAlbedoCry4);
		SoundTool.ReplaceAudioClip("MaskFaceLightUp", soundAlbedoMaskFaceLightUp);
		SoundTool.ReplaceAudioClip("MaskLaugh1", soundAlbedoLaugh1);
		SoundTool.ReplaceAudioClip("MaskLaugh2", soundAlbedoLaugh2);
		SoundTool.ReplaceAudioClip("MaskLaugh3", soundAlbedoLaugh3);
		SoundTool.ReplaceAudioClip("MaskAttackPlayer", soundAlbedoMaskAttackPlayer);
		SoundTool.ReplaceAudioClip("MaskPuke", soundAlbedoMaskPuke);
		soundBennettBeep = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/BennettBeep.ogg");
		soundBennettTrigger = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/BennettTrigger.ogg");
		soundBennettPressLandmine = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/BennettPressLandmine.ogg");
		SoundTool.ReplaceAudioClip("MineBeep", soundBennettBeep);
		SoundTool.ReplaceAudioClip("MineTrigger", soundBennettTrigger);
		SoundTool.ReplaceAudioClip("PressLandmine", soundBennettPressLandmine);
		soundChevShotgunReloadNutcracker = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ChevShotgunReloadNutcracker.ogg");
		soundChevNutcrackerHitEye = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ChevNutcrackerHitEye.ogg");
		soundChevNutcrackerAngry = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ChevNutcrackerAngry.ogg");
		soundChevNutcrackerDie = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ChevNutcrackerDie.ogg");
		soundChevNutcrackerTurn = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ChevNutcrackerTurn.ogg");
		soundChevKick = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ChevKick.ogg");
		soundChevStopTurning1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ChevStopTurning1.ogg");
		soundChevStopTurning2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ChevStopTurning2.ogg");
		soundChevStopTurning3 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ChevStopTurning3.ogg");
		SoundTool.ReplaceAudioClip("ShotgunReloadNutcracker", soundChevShotgunReloadNutcracker);
		SoundTool.ReplaceAudioClip("NutcrackerHitEye", soundChevNutcrackerHitEye);
		SoundTool.ReplaceAudioClip("NutcrackerDie", soundChevNutcrackerDie);
		SoundTool.ReplaceAudioClip("NutcrackerTurn", soundChevNutcrackerTurn);
		SoundTool.ReplaceAudioClip("Kick", soundChevKick);
		SoundTool.ReplaceAudioClip("StopTurning1", soundChevStopTurning1);
		SoundTool.ReplaceAudioClip("StopTurning2", soundChevStopTurning2);
		SoundTool.ReplaceAudioClip("StopTurning3", soundChevStopTurning3);
		soundChildeFrighten1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ChildeFrighten1.ogg");
		soundChildeFrighten3 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ChildeFrighten3.ogg");
		soundChildeNervous = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ChildeNervous.ogg");
		soundChildePuffSFX = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ChildePuffSFX.ogg");
		soundChildeRattleTail = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ChildeRattleTail.ogg");
		soundChildeBite = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ChildeBite.ogg");
		soundChildeStomp = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ChildeStomp.ogg");
		soundChildeAngry = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ChildeAngry.ogg");
		soundDoriAngry1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/Angry1_dori.ogg");
		soundDoriAngry2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/Angry2_dori.ogg");
		soundDoriChitter1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/Chitter1_dori.ogg");
		soundDoriChitter2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/Chitter2_dori.ogg");
		soundDoriChitter3 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/Chitter3_dori.ogg");
		soundDoriCry = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/Cry_dori.ogg");
		soundDoriFly = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/Fly_dori.ogg");
		soundDoriDie = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/BugDie_Dori.ogg");
		SoundTool.ReplaceAudioClip("AngryScreech", soundDoriAngry1);
		SoundTool.ReplaceAudioClip("AngryScreech2", soundDoriAngry2);
		SoundTool.ReplaceAudioClip("Chitter1", soundDoriChitter1);
		SoundTool.ReplaceAudioClip("Chitter2", soundDoriChitter2);
		SoundTool.ReplaceAudioClip("Chitter3", soundDoriChitter3);
		SoundTool.ReplaceAudioClip("HoarderBugCry", soundDoriCry);
		SoundTool.ReplaceAudioClip("Fly", soundDoriFly);
		SoundTool.ReplaceAudioClip("BugDie", soundDoriDie);
		soundFurinaStunSpider = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/FurinaStunSpider.ogg");
		soundFurinaSpiderDie = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/FurinaSpiderDie.ogg");
		soundFurinaSpiderAttack = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/FurinaSpiderAttack.ogg");
		soundFurinaSpoolPlayerInWeb = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/FurinaSpiderHit.ogg");
		soundFurinaSpiderHit = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/FurinaSpiderHit.ogg");
		soundFurinaWalk = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/FurinaWalk.ogg");
		SoundTool.ReplaceAudioClip("SpiderAttack", soundFurinaSpiderAttack);
		SoundTool.ReplaceAudioClip("SpiderDie", soundFurinaSpiderDie);
		SoundTool.ReplaceAudioClip("SpiderHit", soundFurinaSpiderHit);
		SoundTool.ReplaceAudioClip("SpoolPlayerInWeb", soundFurinaSpoolPlayerInWeb);
		SoundTool.ReplaceAudioClip("StunSpider", soundFurinaStunSpider);
		soundGenshinLoudhorn = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/GenshinLoudhorn.ogg");
		soundGenshinLoudhornDistant = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/GenshinLoudhornDistant.ogg");
		soundGenshinMenu = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/GenshinStartup.ogg");
		soundGenshinHighAction1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/GenshinHighAction1.ogg");
		soundGenshinHighAction2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/GenshinHighAction2.ogg");
		soundGenshinLowAction = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/GenshinLowAction.ogg");
		soundGenshinCompanyBuildingMusic1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/GenshinCompanyBuildingMusic1.ogg");
		soundGenshinAmbientMusic1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/GenshinAmbientMusic1.ogg");
		soundGenshinAmbientMusic2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/GenshinAmbientMusic2.ogg");
		soundGenshinAmbientMusic3 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/GenshinAmbientMusic3.ogg");
		soundGenshinIntroSpeech = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/GenshinIntroSpeech.ogg");
		soundGenshinMidDay = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/GenshinMidDay.ogg");
		soundGenshinStartOfDay = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/GenshinStartOfDay.ogg");
		soundGenshinNight = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/GenshinNight.ogg");
		soundGenshinJazz = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/GenshinJazz.ogg");
		soundGenshinIcecreamTruckV2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/GenshinIcecreamTruckV2.ogg");
		soundGenshinIcecreamTruckFar = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/GenshinIcecreamTruckFar.ogg");
		soundGenshinEclipseAmbience = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/GenshinEclipseAmbience.ogg");
		SoundTool.ReplaceAudioClip("Menu1", soundGenshinMenu);
		SoundTool.ReplaceAudioClip("StartOfDay", soundGenshinStartOfDay);
		SoundTool.ReplaceAudioClip("AmbientMusic1", soundGenshinAmbientMusic1);
		SoundTool.ReplaceAudioClip("AmbientMusic2", soundGenshinAmbientMusic2);
		SoundTool.ReplaceAudioClip("AmbientMusic3", soundGenshinAmbientMusic3);
		SoundTool.ReplaceAudioClip("IntroCompanySpeech", soundGenshinIntroSpeech);
		SoundTool.ReplaceAudioClip("CompanyBuildingMusic1", soundGenshinCompanyBuildingMusic1);
		SoundTool.ReplaceAudioClip("MidDay", soundGenshinMidDay);
		SoundTool.ReplaceAudioClip("Night", soundGenshinNight);
		SoundTool.ReplaceAudioClip("RecordPlayerJazz", soundGenshinJazz);
		SoundTool.ReplaceAudioClip("EclipseAmbience", soundGenshinEclipseAmbience);
		SoundTool.ReplaceAudioClip("IcecreamTruckV2", soundGenshinIcecreamTruckV2);
		SoundTool.ReplaceAudioClip("IcecreamTruckFar", soundGenshinIcecreamTruckFar);
		soundIttoBaboonEnterFight = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/IttoBaboonEnterFight.ogg");
		soundIttoBaboonKill = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/IttoBaboonKill.ogg");
		soundIttoBaboonStab = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/IttoBaboonStab.ogg");
		soundIttoBaboonTakeDamage = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/IttoBaboonTakeDamage.ogg");
		soundIttoKillBaboon = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/IttoKillBaboon.ogg");
		soundIttoCaw1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/IttoCaw1.ogg");
		soundIttoCawScream1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/IttoCawScream1.ogg");
		soundIttoCawScream2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/IttoCawScream2.ogg");
		soundIttoCawScream3 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/IttoCawScream3.ogg");
		soundIttoCawScream4 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/IttoCawScream4.ogg");
		soundIttoCawScream5 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/IttoCawScream5.ogg");
		SoundTool.ReplaceAudioClip("BaboonEnterFight", soundIttoBaboonEnterFight);
		SoundTool.ReplaceAudioClip("BaboonKill", soundIttoBaboonKill);
		SoundTool.ReplaceAudioClip("BaboonStab", soundIttoBaboonStab);
		SoundTool.ReplaceAudioClip("BaboonTakeDamage", soundIttoBaboonTakeDamage);
		SoundTool.ReplaceAudioClip("KillBaboon", soundIttoKillBaboon);
		SoundTool.ReplaceAudioClip("Caw1", soundIttoCaw1);
		SoundTool.ReplaceAudioClip("CawScream1", soundIttoCawScream1);
		SoundTool.ReplaceAudioClip("CawScream2", soundIttoCawScream2);
		SoundTool.ReplaceAudioClip("CawScream3", soundIttoCawScream3);
		SoundTool.ReplaceAudioClip("CawScream4", soundIttoCawScream4);
		SoundTool.ReplaceAudioClip("CawScream5", soundIttoCawScream5);
		soundKazuhaLocusts = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/KazuhaLocusts.ogg");
		soundKazuhaEvade = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/KazuhaEvade.ogg");
		SoundTool.ReplaceAudioClip("DocileLocustBees", soundKazuhaLocusts);
		SoundTool.ReplaceAudioClip("DocileLocustBeesEvade", soundKazuhaEvade);
		soundGiantEatPlayer = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/FGiantEatPlayerSFX_Klee.ogg");
		soundStunGiant = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/StunGiant_Klee.ogg");
		soundKleeDistantRumble1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/KleeDistantRumble1.ogg");
		soundKleeDistantRumble2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/KleeDistantRumble2.ogg");
		soundKleeDistantRumble3 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/KleeDistantRumble3.ogg");
		SoundTool.ReplaceAudioClip("FGiantEatPlayerSFX", soundGiantEatPlayer);
		SoundTool.ReplaceAudioClip("StunGiant", soundStunGiant);
		SoundTool.ReplaceAudioClip("DistantRumble1", soundKleeDistantRumble1);
		SoundTool.ReplaceAudioClip("DistantRumble2", soundKleeDistantRumble2);
		SoundTool.ReplaceAudioClip("DistantRumble3", soundKleeDistantRumble3);
		soundNaviaTurretActivate = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/NaviaTurretActivate.ogg");
		soundNaviaTurretBeserkMode = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/NaviaTurretBerserkMode.ogg");
		soundNaviaTurretDeactivate = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/NaviaTurretDeactivate.ogg");
		soundNaviaTurretFire = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/NaviaTurretFire.ogg");
		soundNaviaTurretFireDistant = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/NaviaTurretFireDistant.ogg");
		soundNaviaTurretSeePlayer = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/NaviaTurretSeePlayer.ogg");
		SoundTool.ReplaceAudioClip("TurretActivate", soundNaviaTurretActivate);
		SoundTool.ReplaceAudioClip("TurretBeserkMode", soundNaviaTurretBeserkMode);
		SoundTool.ReplaceAudioClip("TurretDeactivate", soundNaviaTurretDeactivate);
		SoundTool.ReplaceAudioClip("TurretFire", soundNaviaTurretFire);
		SoundTool.ReplaceAudioClip("TurretFireDistant", soundNaviaTurretFireDistant);
		SoundTool.ReplaceAudioClip("TurretSeePlayer", soundNaviaTurretSeePlayer);
		soundNeuvJackInTheBoxTheme = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/NeuvJackInTheBoxTheme.ogg");
		soundNeuvPop1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/NeuvPop1.ogg");
		soundNeuvScream1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/NeuvScream1.ogg");
		soundNeuvTurnCrank1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/NeuvTurnCrank1.ogg");
		soundNeuvTurnCrank2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/NeuvTurnCrank2.ogg");
		soundNeuvTurnCrank3 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/NeuvTurnCrank3.ogg");
		soundNeuvKillPlayer = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/NeuvKillPlayer.ogg");
		SoundTool.ReplaceAudioClip("JackInTheBoxTheme", soundNeuvJackInTheBoxTheme);
		SoundTool.ReplaceAudioClip("Pop1", soundNeuvPop1);
		SoundTool.ReplaceAudioClip("Scream1", soundNeuvScream1);
		SoundTool.ReplaceAudioClip("TurnCrank1", soundNeuvTurnCrank1);
		SoundTool.ReplaceAudioClip("TurnCrank2", soundNeuvTurnCrank2);
		SoundTool.ReplaceAudioClip("TurnCrank3", soundNeuvTurnCrank3);
		NilouHitSlime = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/NilouHitSlime.ogg");
		NilouAngry = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/NilouAngry.ogg");
		NilouEatPlayer = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/NilouEatPlayer.ogg");
		NilouIdle = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/NilouIdle.ogg");
		NilouJiggleSFX = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/NilouJiggleSFX.ogg");
		soundPaimonClingToPlayer = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/PaimonClingToPlayer.ogg");
		soundPaimonClingToPlayerLocal = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/PaimonClingToPlayerLocal.ogg");
		soundPaimonDeathShriek = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/PaimonDeathShriek.ogg");
		soundPaimonmonsterNoise = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/PaimonmonsterNoise.ogg");
		soundPaimonmonsterNoise2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/PaimonmonsterNoise2.ogg");
		soundPaimonmonsterNoiseB = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/PaimonmonsterNoiseB.ogg");
		soundPaimonShriek1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/PaimonShriek1.ogg");
		soundPaimonShriek2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/PaimonShriek2.ogg");
		SoundTool.ReplaceAudioClip("ClingToPlayer", soundPaimonClingToPlayer);
		SoundTool.ReplaceAudioClip("ClingToPlayerLocal", soundPaimonClingToPlayerLocal);
		SoundTool.ReplaceAudioClip("DeathShriek", soundPaimonDeathShriek);
		SoundTool.ReplaceAudioClip("monsterNoise", soundPaimonmonsterNoise);
		SoundTool.ReplaceAudioClip("monsterNoise2", soundPaimonmonsterNoise2);
		SoundTool.ReplaceAudioClip("monsterNoiseB", soundPaimonmonsterNoiseB);
		SoundTool.ReplaceAudioClip("Shriek1", soundPaimonShriek1);
		SoundTool.ReplaceAudioClip("Shriek2", soundPaimonShriek2);
		soundQiqiBellChimeAmbience = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/QiqiBellChimeAmbience.ogg");
		soundQiqiLaugh1_0 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/QiqiLaugh1_0.ogg");
		soundQiqiLaugh2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/QiqiLaugh2.ogg");
		soundQiqiBreathing = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/QiqiBreathing.ogg");
		SoundTool.ReplaceAudioClip("BellChimeAmbience", soundQiqiBellChimeAmbience);
		SoundTool.ReplaceAudioClip("Laugh1_0", soundQiqiLaugh1_0);
		SoundTool.ReplaceAudioClip("Laugh2", soundQiqiLaugh2);
		SoundTool.ReplaceAudioClip("Breathing", soundQiqiBreathing);
		soundRaidenStunFlowerman = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/RaidenStunFlowerman.ogg");
		soundRaidenAngered = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/RaidenAngered.ogg");
		soundRaidenFound1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/RaidenFound1.ogg");
		soundRaidenCrackNeck = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/RaidenCrackNeck.ogg");
		soundRazorBitePlayer = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/RazorBitePlayer.ogg");
		soundRazorShortRoar1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/RazorShortRoar1.ogg");
		soundRazorLongRoar1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/RazorLongRoar1.ogg");
		soundRazorLongRoar2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/RazorLongRoar2.ogg");
		soundRazorLongRoar3 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/RazorLongRoar3.ogg");
		soundRazorRam1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/RazorRam1.ogg");
		soundRazorRam2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/RazorRam2.ogg");
		soundRazorRam3 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/RazorRam3.ogg");
		soundRazorCrawlerDie = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/RazorCrawlerDie.ogg");
		soundRazorHitCrawler1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/RazorHitCrawler1.ogg");
		soundRazorHitCrawler2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/RazorHitCrawler2.ogg");
		soundRazorStunCrawler = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/RazorStunCrawler.ogg");
		SoundTool.ReplaceAudioClip("BitePlayer", soundRazorBitePlayer);
		SoundTool.ReplaceAudioClip("ShortRoar1", soundRazorShortRoar1);
		SoundTool.ReplaceAudioClip("LongRoar1", soundRazorLongRoar1);
		SoundTool.ReplaceAudioClip("LongRoar2", soundRazorLongRoar2);
		SoundTool.ReplaceAudioClip("LongRoar3", soundRazorLongRoar3);
		SoundTool.ReplaceAudioClip("Ram1", soundRazorRam1);
		SoundTool.ReplaceAudioClip("Ram2", soundRazorRam2);
		SoundTool.ReplaceAudioClip("Ram3", soundRazorRam3);
		SoundTool.ReplaceAudioClip("CrawlerDie", soundRazorCrawlerDie);
		SoundTool.ReplaceAudioClip("HitCrawler", soundRazorHitCrawler1);
		SoundTool.ReplaceAudioClip("HitCrawler2", soundRazorHitCrawler2);
		SoundTool.ReplaceAudioClip("StunCrawler", soundRazorStunCrawler);
		soundScaraBeeZap1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ScaraBeeZap1.ogg");
		soundScaraBeeZap2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ScaraBeeZap2.ogg");
		soundScaraBeeZap3 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ScaraBeeZap3.ogg");
		soundScaraBeeZap4 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ScaraBeeZap4.ogg");
		soundScaraBeeZap5 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ScaraBeeZap5.ogg");
		soundScaraBeeZap6 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ScaraBeeZap6.ogg");
		soundScaraBeeZapConstant = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ScaraBeeZapConstant.ogg");
		soundScaraBeeHiveIdle = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ScaraBeeHiveIdle.ogg");
		soundScaraBeesAngry = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ScaraBeesAngry.ogg");
		soundScaraBeesDefensive = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ScaraBeesDefensive.ogg");
		SoundTool.ReplaceAudioClip("BeeZap1", soundScaraBeeZap1);
		SoundTool.ReplaceAudioClip("BeeZap2", soundScaraBeeZap2);
		SoundTool.ReplaceAudioClip("BeeZap3", soundScaraBeeZap3);
		SoundTool.ReplaceAudioClip("BeeZap4", soundScaraBeeZap4);
		SoundTool.ReplaceAudioClip("BeeZap5", soundScaraBeeZap5);
		SoundTool.ReplaceAudioClip("BeeZap6", soundScaraBeeZap6);
		SoundTool.ReplaceAudioClip("BeeZapConstant", soundScaraBeeZapConstant);
		SoundTool.ReplaceAudioClip("BeeHiveIdle", soundScaraBeeHiveIdle);
		SoundTool.ReplaceAudioClip("BeesAngry", soundScaraBeesAngry);
		SoundTool.ReplaceAudioClip("BeesDefensive", soundScaraBeesDefensive);
		soundVentiStunDoublewing = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/VentiStunDoublewing.ogg");
		soundVentiDoublewingFlap1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/VentiDoublewingFlap1.ogg");
		soundVentiDoublewingFlap2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/VentiDoublewingFlap2.ogg");
		soundVentiDoublewingFlap3 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/VentiDoublewingFlap3.ogg");
		soundVentiDoublewingFlapConstant = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/VentiDoublewingFlapConstant.ogg");
		soundVentiKillDoublewing = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/VentiKillDoublewing.ogg");
		soundVentiBird1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/VentiBird1.ogg");
		soundVentiBird2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/VentiBird2.ogg");
		soundVentiBird3 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/VentiBird3.ogg");
		soundVentiBirdScreech1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/VentiBirdScreech1.ogg");
		soundVentiBirdScreech2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/VentiBirdScreech2.ogg");
		SoundTool.ReplaceAudioClip("StunDoublewing", soundVentiStunDoublewing);
		SoundTool.ReplaceAudioClip("DoublewingFlap1", soundVentiDoublewingFlap1);
		SoundTool.ReplaceAudioClip("DoublewingFlap2", soundVentiDoublewingFlap2);
		SoundTool.ReplaceAudioClip("DoublewingFlap3", soundVentiDoublewingFlap3);
		SoundTool.ReplaceAudioClip("KillDoublewing", soundVentiKillDoublewing);
		SoundTool.ReplaceAudioClip("VentiBird1", soundVentiBird1);
		SoundTool.ReplaceAudioClip("VentiBird2", soundVentiBird2);
		SoundTool.ReplaceAudioClip("VentiBird3", soundVentiBird3);
		SoundTool.ReplaceAudioClip("BirdScreech1", soundVentiBirdScreech1);
		SoundTool.ReplaceAudioClip("BirdScreech2", soundVentiBirdScreech2);
		soundWrisStunDog = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/WrisStunDog.ogg");
		soundWrisBreathe1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/WrisBreathe1.ogg");
		soundWrisgrowl = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/Wrisgrowl.ogg");
		soundWrisKillPlayer = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/WrisKillPlayer.ogg");
		soundWrisKillPlayer_0 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/WrisKillPlayer_0.ogg");
		soundWrisLunge1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/WrisLunge1.ogg");
		soundWrisRoar_0 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/WrisRoar_0.ogg");
		soundWrisRoar = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/WrisRoar.ogg");
		SoundTool.ReplaceAudioClip("StunDog", soundWrisStunDog);
		SoundTool.ReplaceAudioClip("growl", soundWrisgrowl);
		SoundTool.ReplaceAudioClip("KillPlayer", soundWrisKillPlayer);
		SoundTool.ReplaceAudioClip("KillPlayer_0", soundWrisKillPlayer_0);
		SoundTool.ReplaceAudioClip("Lunge1", soundWrisLunge1);
		SoundTool.ReplaceAudioClip("Roar_0", soundWrisRoar_0);
		SoundTool.ReplaceAudioClip("Roar", soundWrisRoar);
		soundYaoyaoSandWormRoar = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/YaoyaoSandWormRoar.ogg");
		soundYaoyaoSandWormRoar2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/YaoyaoSandWormRoar2.ogg");
		soundYaoyaoBurrowingGrowl1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/YaoyaoBurrowingGrowl1.ogg");
		soundYaoyaoBurrowingRumble1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/YaoyaoBurrowingRumble1.ogg");
		soundYaoyaoBurrowingRumble2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/YaoyaoBurrowingRumble2.ogg");
		soundYaoyaoBurrowingRumble3 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/YaoyaoBurrowingRumble3.ogg");
		soundYaoyaoBurrowingRumbleLoud1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/YaoyaoBurrowingRumbleLoud1.ogg");
		soundYaoyaoEmergeFromGround1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/YaoyaoEmergeFromGround1.ogg");
		SoundTool.ReplaceAudioClip("SandWormRoar", soundYaoyaoSandWormRoar);
		SoundTool.ReplaceAudioClip("SandWormRoar2", soundYaoyaoSandWormRoar2);
		SoundTool.ReplaceAudioClip("BurrowingGrowl1", soundYaoyaoBurrowingGrowl1);
		SoundTool.ReplaceAudioClip("BurrowingRumble1", soundYaoyaoBurrowingRumble1);
		SoundTool.ReplaceAudioClip("BurrowingRumble2", soundYaoyaoBurrowingRumble2);
		SoundTool.ReplaceAudioClip("BurrowingRumble3", soundYaoyaoBurrowingRumble3);
		SoundTool.ReplaceAudioClip("BurrowingRumbleLoud1", soundYaoyaoBurrowingRumbleLoud1);
		SoundTool.ReplaceAudioClip("EmergeFromGround1", soundYaoyaoEmergeFromGround1);
		soundZhongliSpring1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/Spring1_zhongli.ogg");
		soundZhongliSpring2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/Spring2_zhongli.ogg");
		soundZhongliSpring3 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/Spring3_zhongli.ogg");
		soundZhongliSpringWobble1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/SpringWobble1.ogg");
		soundZhongliSpringWobble2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ZhongliSpringWobble2.ogg");
		soundZhongliKillPlayerSpring = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ZhongliKillPlayerSpring.ogg");
		soundZhongliBareFootstep1 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ZhongliBareFootstep1.ogg");
		soundZhongliBareFootstep2 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ZhongliBareFootstep2.ogg");
		soundZhongliBareFootstep3 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ZhongliBareFootstep3.ogg");
		soundZhongliBareFootstep4 = GenshinOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AudioClip/ZhongliBareFootstep4.ogg");
		SoundTool.ReplaceAudioClip("Spring1", soundZhongliSpring1);
		SoundTool.ReplaceAudioClip("Spring2", soundZhongliSpring2);
		SoundTool.ReplaceAudioClip("Spring3", soundZhongliSpring3);
		SoundTool.ReplaceAudioClip("SpringWobble1", soundZhongliSpringWobble1);
		SoundTool.ReplaceAudioClip("SpringWobble2", soundZhongliSpringWobble2);
		SoundTool.ReplaceAudioClip("KillPlayerSpring", soundZhongliKillPlayerSpring);
		SoundTool.ReplaceAudioClip("BareFootstep1", soundZhongliBareFootstep1);
		SoundTool.ReplaceAudioClip("BareFootstep2", soundZhongliBareFootstep2);
		SoundTool.ReplaceAudioClip("BareFootstep3", soundZhongliBareFootstep3);
		SoundTool.ReplaceAudioClip("BareFootstep4", soundZhongliBareFootstep4);
		mls.LogInfo((object)"GENSHIN OVERHAUL SOUNDS LOADED");
	}

	[HarmonyPatch(typeof(MaskedPlayerEnemy), "Start")]
	[HarmonyPostfix]
	public static void PluginDetectSummonMasked(MaskedPlayerEnemy __instance)
	{
		//IL_0351: Unknown result type (might be due to invalid IL or missing references)
		//IL_0366: Unknown result type (might be due to invalid IL or missing references)
		//IL_0248: Unknown result type (might be due to invalid IL or missing references)
		((EnemyAI)__instance).creatureSFX.clip = soundAlbedoLaugh1;
		((EnemyAI)__instance).creatureVoice.clip = soundAlbedoLaugh1;
		__instance.movementAudio.clip = soundAlbedoLaugh1;
		Transform parent = ((Component)__instance).transform.Find("ScavengerModel");
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("ScavengerModel").Find("LOD1")).gameObject.GetComponent<SkinnedMeshRenderer>()).enabled = false;
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("ScavengerModel").Find("LOD2")).gameObject.GetComponent<SkinnedMeshRenderer>()).enabled = false;
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("ScavengerModel").Find("LOD3")).gameObject.GetComponent<SkinnedMeshRenderer>()).enabled = false;
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("ScavengerModel").Find("metarig").Find("spine")
			.Find("spine.001")
			.Find("spine.002")
			.Find("spine.003")
			.Find("spine.004")
			.Find("HeadMaskComedy")
			.Find("ComedyMaskLOD1")).gameObject.GetComponent<MeshRenderer>()).enabled = false;
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("ScavengerModel").Find("metarig").Find("spine")
			.Find("spine.001")
			.Find("spine.002")
			.Find("spine.003")
			.Find("spine.004")
			.Find("HeadMaskComedy")
			.Find("Mesh")).gameObject.GetComponent<MeshRenderer>()).enabled = false;
		GameObject gameObject = ((Component)((Component)__instance).gameObject.transform.Find("ScavengerModel").Find("metarig").Find("spine")
			.Find("spine.001")
			.Find("spine.002")
			.Find("spine.003")
			.Find("spine.004")
			.Find("HeadMaskComedy")
			.Find("Mesh")
			.Find("EyesFilled")).gameObject;
		if ((Object)(object)gameObject != (Object)null)
		{
			gameObject.transform.localScale = Vector3.zero;
		}
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("ScavengerModel").Find("metarig").Find("spine")
			.Find("spine.001")
			.Find("spine.002")
			.Find("spine.003")
			.Find("LevelSticker")).gameObject.GetComponent<MeshRenderer>()).enabled = false;
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("ScavengerModel").Find("metarig").Find("spine")
			.Find("spine.001")
			.Find("spine.002")
			.Find("spine.003")
			.Find("BetaBadge")).gameObject.GetComponent<MeshRenderer>()).enabled = false;
		AlbedoObject = Object.Instantiate<GameObject>(AlbedoPrefab);
		AlbedoObject.transform.SetParent(parent);
		AlbedoObject.transform.localRotation = Quaternion.Euler(0f, 0f, 0f);
		AlbedoObject.transform.localPosition = Vector3.zero;
		((EnemyAI)__instance).creatureAnimator = ((Component)AlbedoObject.transform).GetComponent<Animator>();
	}

	[HarmonyPatch(typeof(Landmine), "Start")]
	[HarmonyPrefix]
	private static void LandmineSummonPatch(Landmine __instance)
	{
		//IL_0099: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b9: 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_00d6: Unknown result type (might be due to invalid IL or missing references)
		//IL_00db: 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_00fe: Unknown result type (might be due to invalid IL or missing references)
		//IL_0103: Unknown result type (might be due to invalid IL or missing references)
		//IL_011d: Unknown result type (might be due to invalid IL or missing references)
		Transform child = ((Component)__instance).transform.GetChild(0);
		((Renderer)((Component)__instance).GetComponent<MeshRenderer>()).enabled = false;
		string text = "Bennett Instance ";
		Transform val = child;
		Debug.Log((object)(text + (((Object)(object)val != (Object)null) ? ((object)val).ToString() : null)));
		GameObject val2 = Object.Instantiate<GameObject>(BennettPrefab);
		string text2 = "Bennett Instance ";
		GameObject val3 = val2;
		Debug.Log((object)(text2 + (((Object)(object)val3 != (Object)null) ? ((object)val3).ToString() : null)));
		val2.transform.SetParent(child);
		val2.transform.localPosition = new Vector3(0.0004f, -0.0021f, -0.1799f);
		val2.transform.localRotation = Quaternion.Euler(90f, 0f, 0f);
		val2.transform.localScale = Vector3.one;
		Vector3 localScale = child.localScale;
		((Vector3)(ref localScale)).Set(100f, 100f, 50f);
		child.localScale = localScale;
		Vector3 localPosition = child.localPosition;
		((Vector3)(ref localPosition)).Set(0f, 0f, 0f);
		child.localPosition = localPosition;
	}

	[HarmonyPatch(typeof(Landmine), "Detonate")]
	[HarmonyPostfix]
	public static void BennettDeath(Landmine __instance)
	{
		Transform val = ((Component)__instance).gameObject.transform.Find("BrightLight").Find("bennett(Clone)");
		Object.Destroy((Object)(object)((Component)val).gameObject);
	}

	[HarmonyPatch(typeof(NutcrackerEnemyAI), "Start")]
	[HarmonyPostfix]
	public static void PluginDetectSummonNutcracker(NutcrackerEnemyAI __instance)
	{
		//IL_01c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_01cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e0: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e7: Unknown result type (might be due to invalid IL or missing references)
		//IL_01f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_01fe: Unknown result type (might be due to invalid IL or missing references)
		//IL_0200: Unknown result type (might be due to invalid IL or missing references)
		//IL_027e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0293: Unknown result type (might be due to invalid IL or missing references)
		Transform parent = ((Component)__instance).transform.Find("MeshContainer");
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("MeshContainer").Find("LOD0")).gameObject.GetComponent<SkinnedMeshRenderer>()).enabled = false;
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("MeshContainer").Find("LOD1")).gameObject.GetComponent<SkinnedMeshRenderer>()).enabled = false;
		GameObject gameObject = ((Component)((Component)__instance).gameObject.transform.Find("MeshContainer").Find("AnimContainer").Find("metarig")
			.Find("spinecontainer")
			.Find("GunAndArmsContainer")).gameObject;
		GameObject gameObject2 = ((Component)((Component)__instance).gameObject.transform.Find("MeshContainer").Find("AnimContainer").Find("metarig")
			.Find("spinecontainer")
			.Find("GunAndArmsContainer")
			.Find("GunPoint")).gameObject;
		GameObject gameObject3 = ((Component)((Component)__instance).gameObject.transform.Find("MeshContainer").Find("AnimContainer").Find("metarig")
			.Find("spinecontainer")
			.Find("GunAndArmsContainer")
			.Find("GunPoint")
			.Find("GunPointWithOffset")).gameObject;
		gameObject.transform.Rotate(0f, 0f, 90f);
		gameObject2.transform.Rotate(0f, 0f, 90f);
		gameObject3.transform.Rotate(0f, 0f, 90f);
		Vector3 val = default(Vector3);
		((Vector3)(ref val))..ctor(0f, 0f, 0.3f);
		Transform transform = gameObject.transform;
		transform.localPosition += val;
		Transform transform2 = gameObject2.transform;
		transform2.localPosition += val;
		Transform transform3 = gameObject3.transform;
		transform3.localPosition += val;
		((EnemyAI)__instance).creatureVoice.clip = soundChevNutcrackerAngry;
		((Component)((Component)__instance).gameObject.transform.Find("ScanNode (1)")).gameObject.GetComponent<ScanNodeProperties>().headerText = "Chevreuse";
		ChevObject = Object.Instantiate<GameObject>(ChevPrefab);
		ChevObject.transform.SetParent(parent);
		ChevObject.transform.localRotation = Quaternion.Euler(0f, 270f, 0f);
		ChevObject.transform.localPosition = Vector3.zero;
		((EnemyAI)__instance).creatureAnimator = ((Component)ChevObject.transform).GetComponent<Animator>();
	}

	[HarmonyPatch(typeof(NutcrackerEnemyAI), "TurnTorsoToTargetDegrees")]
	[HarmonyPostfix]
	public static void TurnContainer(NutcrackerEnemyAI __instance)
	{
		if ((Object)(object)__instance != (Object)null && (Object)(object)ChevObject != (Object)null)
		{
			((MonoBehaviour)__instance).StartCoroutine(DelayedRotation(__instance));
		}
	}

	private static IEnumerator DelayedRotation(NutcrackerEnemyAI __instance)
	{
		yield return null;
		if ((Object)(object)__instance.torsoContainer != (Object)null)
		{
			Quaternion rotation = __instance.torsoContainer.rotation;
			float torsoYRotation = ((Quaternion)(ref rotation)).eulerAngles.y;
			rotation = ChevObject.transform.rotation;
			Vector3 chevRotation = ((Quaternion)(ref rotation)).eulerAngles;
			chevRotation.y = torsoYRotation;
			ChevObject.transform.rotation = Quaternion.Euler(chevRotation);
		}
	}

	[HarmonyPatch(typeof(PufferAI), "Start")]
	[HarmonyPostfix]
	public static void PluginDetectSummonPuffer(PufferAI __instance)
	{
		//IL_00ff: 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)
		__instance.bitePlayerSFX = soundChildeBite;
		__instance.puff = soundChildePuffSFX;
		__instance.stomp = soundChildeStomp;
		__instance.rattleTail = soundChildeRattleTail;
		__instance.angry = soundChildeAngry;
		__instance.nervousMumbling = soundChildeNervous;
		__instance.frightenSFX[0] = soundChildeFrighten1;
		__instance.frightenSFX[1] = soundChildeFrighten3;
		Transform parent = ((Component)__instance).transform.Find("PufferModel");
		Object.Destroy((Object)(object)((Component)((Component)__instance).gameObject.transform.Find("PufferModel").Find("BezierCurve")).gameObject.GetComponent<SkinnedMeshRenderer>());
		((Component)((Component)__instance).gameObject.transform.Find("ScanNode")).gameObject.GetComponent<ScanNodeProperties>().headerText = "Childe";
		ChildeObject = Object.Instantiate<GameObject>(ChildePrefab);
		ChildeObject.transform.SetParent(parent);
		ChildeObject.transform.localRotation = Quaternion.Euler(0f, 180f, 0f);
		ChildeObject.transform.localPosition = Vector3.zero;
		((EnemyAI)__instance).creatureAnimator = ((Component)ChildeObject.transform).GetComponent<Animator>();
	}

	[HarmonyPatch(typeof(PufferAI), "CalculateAnimationDirection")]
	[HarmonyPostfix]
	public static void OnCalculateAnimationDirection(PufferAI __instance, float maxSpeed, ref float ___velX, ref float ___velZ)
	{
		Animator component = ((Component)((Component)__instance).gameObject.transform.Find("PufferModel").Find("AnimContainer")).gameObject.GetComponent<Animator>();
		if (!((Object)(object)component == (Object)null))
		{
			component.SetFloat("VelocityX", Mathf.Clamp(___velX, 0f - maxSpeed, maxSpeed));
			component.SetFloat("VelocityZ", Mathf.Clamp(___velZ, 0f - maxSpeed, maxSpeed));
		}
	}

	[HarmonyPatch(typeof(PufferAI), "KillEnemy")]
	[HarmonyPrefix]
	public static void OnKillEnemy(PufferAI __instance, ref float ___velX, ref float ___velZ)
	{
		Animator component = ((Component)((Component)__instance).gameObject.transform.Find("PufferModel").Find("AnimContainer")).gameObject.GetComponent<Animator>();
		if (!((Object)(object)component == (Object)null))
		{
			component.SetFloat("VelocityX", Mathf.Clamp(___velX, 0f, 0f));
			component.SetFloat("VelocityZ", Mathf.Clamp(___velZ, 0f, 0f));
		}
	}

	[HarmonyPatch(typeof(HoarderBugAI), "Start")]
	[HarmonyPostfix]
	public static void PluginDetectSummonBug(HoarderBugAI __instance)
	{
		//IL_0189: Unknown result type (might be due to invalid IL or missing references)
		//IL_019e: Unknown result type (might be due to invalid IL or missing references)
		Transform parent = ((Component)__instance).transform.Find("HoarderBugModel");
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("HoarderBugModel").Find("Cube")).gameObject.GetComponent<SkinnedMeshRenderer>()).enabled = false;
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("HoarderBugModel").Find("Cube.001")).gameObject.GetComponent<SkinnedMeshRenderer>()).enabled = false;
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("HoarderBugModel").Find("AnimContainer").Find("Armature")
			.Find("Abdomen")
			.Find("Chest")
			.Find("Head")
			.Find("LeftWing")).gameObject.GetComponent<MeshRenderer>()).enabled = false;
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("HoarderBugModel").Find("AnimContainer").Find("Armature")
			.Find("Abdomen")
			.Find("Chest")
			.Find("Head")
			.Find("RightWing")).gameObject.GetComponent<MeshRenderer>()).enabled = false;
		((Component)((Component)__instance).gameObject.transform.Find("ScanNode")).gameObject.GetComponent<ScanNodeProperties>().headerText = "Dori";
		DoriObject = Object.Instantiate<GameObject>(DoriPrefab);
		DoriObject.transform.SetParent(parent);
		DoriObject.transform.localRotation = Quaternion.identity;
		DoriObject.transform.localPosition = Vector3.zero;
		((EnemyAI)__instance).creatureAnimator = ((Component)DoriObject.transform).GetComponent<Animator>();
	}

	[HarmonyPatch(typeof(HoarderBugAI), "CalculateAnimationDirection")]
	[HarmonyPostfix]
	public static void OnCalculateAnimationDirection(HoarderBugAI __instance, float maxSpeed, ref float ___velX, ref float ___velZ)
	{
		Animator component = ((Component)((Component)__instance).gameObject.transform.Find("HoarderBugModel").Find("AnimContainer")).gameObject.GetComponent<Animator>();
		if (!((Object)(object)component == (Object)null))
		{
			component.SetFloat("VelocityX", Mathf.Clamp(___velX, 0f - maxSpeed, maxSpeed));
			component.SetFloat("VelocityZ", Mathf.Clamp(___velZ, 0f - maxSpeed, maxSpeed));
		}
	}

	[HarmonyPatch(typeof(HoarderBugAI), "KillEnemy")]
	[HarmonyPrefix]
	public static void OnKillEnemy(HoarderBugAI __instance, ref float ___velX, ref float ___velZ)
	{
		Animator component = ((Component)((Component)__instance).gameObject.transform.Find("HoarderBugModel").Find("AnimContainer")).gameObject.GetComponent<Animator>();
		if (!((Object)(object)component == (Object)null))
		{
			component.SetFloat("VelocityX", Mathf.Clamp(___velX, 0f, 0f));
			component.SetFloat("VelocityZ", Mathf.Clamp(___velZ, 0f, 0f));
		}
	}

	[HarmonyPatch(typeof(SandSpiderAI), "Start")]
	[HarmonyPrefix]
	public static void SummonFurina(SandSpiderAI __instance)
	{
		//IL_017a: Unknown result type (might be due to invalid IL or missing references)
		//IL_018f: Unknown result type (might be due to invalid IL or missing references)
		Transform parent = ((Component)__instance).transform.Find("MeshContainer");
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("MeshContainer").Find("MeshRenderer")).gameObject.GetComponent<SkinnedMeshRenderer>()).enabled = false;
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("MeshContainer").Find("AnimContainer").Find("Armature")
			.Find("Head")
			.Find("RightFang")).gameObject.GetComponent<MeshRenderer>()).enabled = false;
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("MeshContainer").Find("AnimContainer").Find("Armature")
			.Find("Head")
			.Find("LeftFang")).gameObject.GetComponent<MeshRenderer>()).enabled = false;
		((Component)((Component)__instance).gameObject.transform.Find("MeshContainer").Find("FootstepSFX")).gameObject.GetComponent<AudioSource>().mute = true;
		((Component)((Component)__instance).gameObject.transform.Find("MeshContainer").Find("ScanNode")).gameObject.GetComponent<ScanNodeProperties>().headerText = "Furina";
		FurinaObject = Object.Instantiate<GameObject>(FurinaPrefab);
		FurinaObject.transform.SetParent(parent);
		FurinaObject.transform.localRotation = Quaternion.Euler(0f, 0f, 0f);
		FurinaObject.transform.localPosition = Vector3.zero;
		((EnemyAI)__instance).creatureAnimator = ((Component)FurinaObject.transform).GetComponent<Animator>();
	}

	[HarmonyPatch(typeof(BaboonBirdAI), "Start")]
	[HarmonyPostfix]
	public static void PluginDetectSummonBaboon(BaboonBirdAI __instance)
	{
		//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_010a: Unknown result type (might be due to invalid IL or missing references)
		Transform parent = ((Component)__instance).transform.Find("BaboonBirdModel");
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("BaboonBirdModel").Find("BodyLOD0")).gameObject.GetComponent<SkinnedMeshRenderer>()).enabled = false;
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("BaboonBirdModel").Find("BodyLOD1")).gameObject.GetComponent<SkinnedMeshRenderer>()).enabled = false;
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("BaboonBirdModel").Find("BodyLOD2")).gameObject.GetComponent<SkinnedMeshRenderer>()).enabled = false;
		((Component)((Component)__instance).gameObject.transform.Find("ScanNode")).gameObject.GetComponent<ScanNodeProperties>().headerText = "Itto";
		IttoObject = Object.Instantiate<GameObject>(IttoPrefab);
		IttoObject.transform.SetParent(parent);
		IttoObject.transform.localRotation = Quaternion.identity;
		IttoObject.transform.localPosition = Vector3.zero;
		((EnemyAI)__instance).creatureAnimator = ((Component)IttoObject.transform).GetComponent<Animator>();
	}

	[HarmonyPatch(typeof(BaboonBirdAI), "CalculateAnimationDirection")]
	[HarmonyPostfix]
	public static void OnCalculateAnimationDirection(BaboonBirdAI __instance, float maxSpeed, ref float ___velX, ref float ___velZ)
	{
		Animator component = ((Component)((Component)__instance).gameObject.transform.Find("BaboonBirdModel").Find("AnimContainer")).gameObject.GetComponent<Animator>();
		if (!((Object)(object)component == (Object)null))
		{
			component.SetFloat("VelocityX", Mathf.Clamp(___velX, 0f - maxSpeed, maxSpeed));
			component.SetFloat("VelocityZ", Mathf.Clamp(___velZ, 0f - maxSpeed, maxSpeed));
		}
	}

	[HarmonyPatch(typeof(BaboonBirdAI), "KillEnemy")]
	[HarmonyPrefix]
	public static void OnKillEnemy(BaboonBirdAI __instance, ref float ___velX, ref float ___velZ)
	{
		Animator component = ((Component)((Component)__instance).gameObject.transform.Find("BaboonBirdModel").Find("AnimContainer")).gameObject.GetComponent<Animator>();
		if (!((Object)(object)component == (Object)null))
		{
			component.SetFloat("VelocityX", Mathf.Clamp(___velX, 0f, 0f));
			component.SetFloat("VelocityZ", Mathf.Clamp(___velZ, 0f, 0f));
		}
	}

	[HarmonyPatch(typeof(ForestGiantAI), "Start")]
	[HarmonyPostfix]
	public static void PluginDetectSummonForestG(ForestGiantAI __instance)
	{
		//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_010a: Unknown result type (might be due to invalid IL or missing references)
		Transform parent = ((Component)__instance).transform.Find("FGiantModelContainer");
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("FGiantModelContainer").Find("BodyLOD0")).gameObject.GetComponent<SkinnedMeshRenderer>()).enabled = false;
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("FGiantModelContainer").Find("BodyLOD1")).gameObject.GetComponent<SkinnedMeshRenderer>()).enabled = false;
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("FGiantModelContainer").Find("BodyLOD2")).gameObject.GetComponent<SkinnedMeshRenderer>()).enabled = false;
		((Component)((Component)__instance).gameObject.transform.Find("ScanNode (1)")).gameObject.GetComponent<ScanNodeProperties>().headerText = "Klee";
		KleeObject = Object.Instantiate<GameObject>(KleePrefab);
		KleeObject.transform.SetParent(parent);
		KleeObject.transform.localRotation = Quaternion.identity;
		KleeObject.transform.localPosition = Vector3.zero;
		GameObject gameObject = ((Component)((Component)__instance).transform.Find("FGiantModelContainer/Klee(Clone)/Armature/Hips/Spine/Chest/Right shoulder/Right arm/Right elbow/Right wrist/PlayerPoint")).gameObject;
		GameObject gameObject2 = ((Component)((Component)__instance).transform.Find("FGiantModelContainer/Klee(Clone)/Armature/Hips/Spine/Chest/Right shoulder/Right arm/Right elbow/Right wrist/PlayerPoint")).gameObject;
		GameObject gameObject3 = ((Component)((Component)__instance).transform.Find("FGiantModelContainer/Klee(Clone)/Armature/Hips/Spine/Chest/Neck/Head")).gameObject;
		if ((Object)(object)gameObject2 != (Object)null)
		{
			__instance.holdPlayerPoint = gameObject2.transform;
		}
		else
		{
			mls.LogError((object)"Hand bone object not found or is null.");
		}
		if ((Object)(object)gameObject != (Object)null)
		{
			__instance.handBone = gameObject.transform;
		}
		else
		{
			mls.LogError((object)"Hand bone object not found or is null.");
		}
		if ((Object)(object)gameObject3 != (Object)null)
		{
			__instance.centerPosition = gameObject3.transform;
		}
		else
		{
			mls.LogError((object)"Hand bone object not found or is null.");
		}
		((EnemyAI)__instance).creatureAnimator = ((Component)KleeObject.transform).GetComponent<Animator>();
	}

	[HarmonyPatch(typeof(ForestGiantAI), "BeginEatPlayer")]
	[HarmonyPrefix]
	public static void Noise(ForestGiantAI __instance)
	{
		((EnemyAI)__instance).creatureVoice.PlayOneShot(soundGiantEatPlayer);
	}

	[HarmonyPatch(typeof(ForestGiantAI), "CalculateAnimationDirection")]
	[HarmonyPostfix]
	public static void OnCalculateAnimationDirection(ForestGiantAI __instance, float maxSpeed, ref float ___velX, ref float ___velZ)
	{
		Animator component = ((Component)((Component)__instance).gameObject.transform.Find("FGiantModelContainer").Find("AnimContainer")).gameObject.GetComponent<Animator>();
		if (!((Object)(object)component == (Object)null))
		{
			component.SetFloat("VelocityX", Mathf.Clamp(___velX, 0f - maxSpeed, maxSpeed));
			component.SetFloat("VelocityZ", Mathf.Clamp(___velZ, 0f - maxSpeed, maxSpeed));
		}
	}

	[HarmonyPatch(typeof(ForestGiantAI), "KillEnemy")]
	[HarmonyPrefix]
	public static void OnKillEnemy(ForestGiantAI __instance, ref float ___velX, ref float ___velZ)
	{
		Animator component = ((Component)((Component)__instance).gameObject.transform.Find("FGiantModelContainer").Find("AnimContainer")).gameObject.GetComponent<Animator>();
		if (!((Object)(object)component == (Object)null))
		{
			component.SetFloat("VelocityX", Mathf.Clamp(___velX, 0f, 0f));
			component.SetFloat("VelocityZ", Mathf.Clamp(___velZ, 0f, 0f));
		}
	}

	[HarmonyPatch(typeof(Turret), "Start")]
	[HarmonyPrefix]
	private static void TurretPatchStart(Turret __instance, ref Transform ___centerPoint, ref float ___rotationRange, ref Animator ___turretAnimator, ref ParticleSystem ___bulletParticles)
	{
		//IL_0063: Unknown result type (might be due to invalid IL or missing references)
		//IL_0077: Unknown result type (might be due to invalid IL or missing references)
		//IL_007c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0081: Unknown result type (might be due to invalid IL or missing references)
		//IL_0084: Unknown result type (might be due to invalid IL or missing references)
		//IL_0089: Unknown result type (might be due to invalid IL or missing references)
		//IL_0094: Unknown result type (might be due to invalid IL or missing references)
		//IL_0095: 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)
		__instance.berserkAudio.clip = soundNaviaTurretBeserkMode;
		__instance.detectPlayerSFX = soundNaviaTurretSeePlayer;
		__instance.firingFarSFX = soundNaviaTurretFireDistant;
		__instance.firingSFX = soundNaviaTurretFire;
		__instance.turretActivate = soundNaviaTurretActivate;
		__instance.turretDeactivate = soundNaviaTurretDeactivate;
		Transform parent = ((Component)__instance).transform.parent;
		Transform meshContainer = parent.Find("MeshContainer");
		Vector3 val = ___centerPoint.position - new Vector3(0f, 1.4968f, 0f);
		Quaternion rotation = ___centerPoint.rotation;
		Transform val2 = Object.Instantiate<Transform>(NaviaPrefab.transform, val, rotation, parent);
		val2.localRotation = Quaternion.Euler(0f, 0f, 0f);
		((Object)val2).name = "NaviaV1";
		___turretAnimator = ((Component)val2).GetComponent<Animator>();
		___bulletParticles = ((Component)val2).GetComponentInChildren<ParticleSystem>();
		bool active = true;
		((Component)val2.GetChild(0)).gameObject.SetActive(active);
		DisableMeshRenderers(meshContainer);
		turretDictionary[__instance] = val2;
	}

	[HarmonyPatch(typeof(Turret), "Update")]
	[HarmonyPostfix]
	private static void TurretUpdate(Turret __instance, ref Animator ___turretAnimator, ref Transform ___turretRod)
	{
		//IL_0025: Unknown result type (might be due to invalid IL or missing references)
		//IL_0039: Unknown result type (might be due to invalid IL or missing references)
		//IL_003e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0041: Unknown result type (might be due to invalid IL or missing references)
		//IL_0052: Unknown result type (might be due to invalid IL or missing references)
		//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: 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_0086: Unknown result type (might be due to invalid IL or missing references)
		//IL_008b: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
		if (turretDictionary.TryGetValue(__instance, out var value))
		{
			((Component)((Component)value).GetComponentInChildren<ParticleSystem>()).transform.rotation = ___turretRod.rotation;
			Transform child = value.GetChild(0);
			Quaternion rotation = child.rotation;
			value.rotation = rotation;
			UpdateLaserPosition(((Component)child).GetComponent<LineRenderer>(), child, ___turretRod.rotation);
			if (___turretAnimator.GetInteger("TurretMode") == 0)
			{
				Quaternion rotation2 = value.GetChild(0).rotation;
				Quaternion rotation3 = value.rotation;
				float num = Mathf.Clamp01(4f * Time.deltaTime);
				value.GetChild(24).rotation = value.GetChild(0).rotation;
			}
			else
			{
				value.GetChild(24).rotation = value.GetChild(0).rotation;
			}
		}
	}

	private static void DisableMeshRenderers(Transform meshContainer)
	{
		//IL_0019: Unknown result type (might be due to invalid IL or missing references)
		//IL_001f: Expected O, but got Unknown
		foreach (object item in ((Component)meshContainer).transform)
		{
			Transform val = (Transform)item;
			MeshRenderer component = ((Component)val).GetComponent<MeshRenderer>();
			if ((Object)(object)component != (Object)null && !((Object)val).name.Contains("Plane"))
			{
				((Renderer)component).enabled = false;
			}
			DisableMeshRenderers(((Component)val).transform);
		}
	}

	private static void UpdateLaserPosition(LineRenderer laser, Transform startPoint, Quaternion rodRotation)
	{
		//IL_0002: Unknown result type (might be due to invalid IL or missing references)
		//IL_000c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0018: Unknown result type (might be due to invalid IL or missing references)
		//IL_001e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0047: Unknown result type (might be due to invalid IL or missing references)
		//IL_004d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0057: 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_0035: Unknown result type (might be due to invalid IL or missing references)
		startPoint.rotation = rodRotation;
		laser.SetPosition(0, startPoint.position);
		RaycastHit val = default(RaycastHit);
		if (Physics.Raycast(startPoint.position, startPoint.forward, ref val))
		{
			laser.SetPosition(1, ((RaycastHit)(ref val)).point);
		}
		else
		{
			laser.SetPosition(1, startPoint.position + startPoint.forward * 100f);
		}
	}

	[HarmonyPatch(typeof(JesterAI), "Start")]
	[HarmonyPostfix]
	public static void PluginDetectSummonJester(JesterAI __instance)
	{
		//IL_03ef: Unknown result type (might be due to invalid IL or missing references)
		//IL_0404: Unknown result type (might be due to invalid IL or missing references)
		__instance.killPlayerSFX = soundNeuvKillPlayer;
		Transform parent = ((Component)__instance).transform.Find("MeshContainer");
		Object.Destroy((Object)(object)((Component)((Component)__instance).gameObject.transform.Find("MeshContainer").Find("AnimContainer").Find("metarig")
			.Find("BoxContainer")
			.Find("spine.004")
			.Find("spine.005")
			.Find("spine.006")
			.Find("LowerJaw")).gameObject.GetComponent<MeshRenderer>());
		Object.Destroy((Object)(object)((Component)((Component)__instance).gameObject.transform.Find("MeshContainer").Find("AnimContainer").Find("metarig")
			.Find("BoxContainer")
			.Find("spine.004")
			.Find("spine.005")
			.Find("spine.006")
			.Find("UpperJaw")).gameObject.GetComponent<MeshRenderer>());
		Object.Destroy((Object)(object)((Component)((Component)__instance).gameObject.transform.Find("MeshContainer").Find("AnimContainer").Find("metarig")
			.Find("BoxContainer")
			.Find("spine.004")
			.Find("spine.005")
			.Find("spine.006")
			.Find("UpperJaw")
			.Find("UpperJawLowDetail")).gameObject.GetComponent<MeshRenderer>());
		Object.Destroy((Object)(object)((Component)((Component)__instance).gameObject.transform.Find("MeshContainer").Find("AnimContainer").Find("metarig")
			.Find("BoxContainer")
			.Find("spine.004")
			.Find("spine.005")
			.Find("spine.006")
			.Find("UpperJaw")
			.Find("UpperJawLowDetail2")).gameObject.GetComponent<MeshRenderer>());
		Object.Destroy((Object)(object)((Component)((Component)__instance).gameObject.transform.Find("MeshContainer").Find("AnimContainer").Find("metarig")
			.Find("BoxContainer")
			.Find("spine.004")
			.Find("spine.005")
			.Find("spine.006")
			.Find("LowerJaw")
			.Find("LowerJawLowDetail")).gameObject.GetComponent<MeshRenderer>());
		Object.Destroy((Object)(object)((Component)((Component)__instance).gameObject.transform.Find("MeshContainer").Find("AnimContainer").Find("metarig")
			.Find("BoxContainer")
			.Find("BoxBone")
			.Find("RecordCrank")).gameObject.GetComponent<MeshRenderer>());
		Object.Destroy((Object)(object)((Component)((Component)__instance).gameObject.transform.Find("MeshContainer").Find("AnimContainer").Find("metarig")
			.Find("BoxContainer")
			.Find("BoxBone")
			.Find("BoxLid")).gameObject.GetComponent<MeshRenderer>());
		Object.Destroy((Object)(object)((Component)((Component)__instance).gameObject.transform.Find("MeshContainer").Find("JackInTheBoxBody")).gameObject.GetComponent<SkinnedMeshRenderer>());
		Object.Destroy((Object)(object)((Component)((Component)__instance).gameObject.transform.Find("MeshContainer").Find("JackInTheBoxBodyLowDetail")).gameObject.GetComponent<SkinnedMeshRenderer>());
		Object.Destroy((Object)(object)((Component)((Component)__instance).gameObject.transform.Find("MeshContainer").Find("JackInTheBoxBodyLowDetail2")).gameObject.GetComponent<SkinnedMeshRenderer>());
		((Component)((Component)__instance).gameObject.transform.Find("ScanNode")).gameObject.GetComponent<ScanNodeProperties>().headerText = "Neuvillette";
		NeuvObject = Object.Instantiate<GameObject>(NeuvPrefab);
		NeuvObject.transform.SetParent(parent);
		NeuvObject.transform.localRotation = Quaternion.Euler(0f, 0f, 0f);
		NeuvObject.transform.localPosition = Vector3.zero;
		((EnemyAI)__instance).creatureAnimator = ((Component)NeuvObject.transform).GetComponent<Animator>();
	}

	[HarmonyPatch(typeof(BlobAI), "Start")]
	[HarmonyPostfix]
	public static void PluginDetectSummonBlob(BlobAI __instance)
	{
		//IL_00d8: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_010d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0112: Unknown result type (might be due to invalid IL or missing references)
		//IL_0126: Unknown result type (might be due to invalid IL or missing references)
		//IL_0127: Unknown result type (might be due to invalid IL or missing references)
		__instance.agitatedSFX = NilouAngry;
		__instance.idleSFX = NilouIdle;
		__instance.jiggleSFX = NilouJiggleSFX;
		__instance.killPlayerSFX = NilouEatPlayer;
		__instance.hitSlimeSFX = NilouHitSlime;
		Transform val = ((Component)__instance).transform.Find("Icosphere");
		Transform parent = ((Component)__instance).transform.Find("ScanNode (1)");
		if ((Object)(object)val != (Object)null)
		{
			((Component)val).gameObject.SetActive(false);
		}
		((Component)((Component)__instance).gameObject.transform.Find("ScanNode (1)")).gameObject.GetComponent<ScanNodeProperties>().headerText = "Nilou";
		NilouObject = Object.Instantiate<GameObject>(NilouPrefab);
		NilouObject.transform.SetParent(parent);
		NilouObject.transform.localRotation = Quaternion.Euler(90f, 0f, 0f);
		NilouObject.transform.localPosition = new Vector3(1.45f, 0f, 0f);
		Vector3 position = ((Component)__instance).transform.position;
		NilouFacingDirection nilouFacingDirection = NilouObject.AddComponent<NilouFacingDirection>();
		nilouFacingDirection.blobAI = __instance;
		nilouFacingDirection.prevPosition = position;
		((EnemyAI)__instance).creatureAnimator = ((Component)NilouObject.transform).GetComponent<Animator>();
	}

	[HarmonyPatch(typeof(BlobAI), "Update")]
	[HarmonyPrefix]
	public static void Blob(BlobAI __instance)
	{
		((Behaviour)((EnemyAI)__instance).creatureAnimator).enabled = true;
	}

	[HarmonyPatch(typeof(BlobAI), "Update")]
	[HarmonyPostfix]
	public static void BlobAI_Update_Patch(BlobAI __instance)
	{
		Animator creatureAnimator = ((EnemyAI)__instance).creatureAnimator;
		((Behaviour)((EnemyAI)__instance).creatureAnimator).enabled = true;
		((Behaviour)creatureAnimator).enabled = true;
		if ((Object)(object)creatureAnimator != (Object)null)
		{
			AudioSource creatureSFX = ((EnemyAI)__instance).creatureSFX;
			AudioClip clip = creatureSFX.clip;
			if ((Object)(object)clip == (Object)(object)__instance.agitatedSFX)
			{
				creatureAnimator.SetBool("IsAgitated", true);
				creatureAnimator.SetBool("IsJiggling", false);
				creatureAnimator.SetBool("IsIdle", false);
				creatureAnimator.SetBool("IsHurt", false);
				creatureAnimator.SetBool("IsKilling", false);
			}
			else if ((Object)(object)clip == (Object)(object)__instance.jiggleSFX)
			{
				creatureAnimator.SetBool("IsAgitated", false);
				creatureAnimator.SetBool("IsJiggling", true);
				creatureAnimator.SetBool("IsIdle", false);
				creatureAnimator.SetBool("IsHurt", false);
				creatureAnimator.SetBool("IsKilling", false);
			}
			else if ((Object)(object)clip == (Object)(object)__instance.idleSFX)
			{
				creatureAnimator.SetBool("IsAgitated", false);
				creatureAnimator.SetBool("IsJiggling", false);
				creatureAnimator.SetBool("IsIdle", true);
				creatureAnimator.SetBool("IsHurt", false);
				creatureAnimator.SetBool("IsKilling", false);
			}
			else if ((Object)(object)clip == (Object)(object)__instance.hitSlimeSFX)
			{
				creatureAnimator.SetBool("IsAgitated", false);
				creatureAnimator.SetBool("IsJiggling", false);
				creatureAnimator.SetBool("IsIdle", false);
				creatureAnimator.SetBool("IsHurt", true);
				creatureAnimator.SetBool("IsKilling", false);
			}
			else if ((Object)(object)clip == (Object)(object)__instance.killPlayerSFX)
			{
				creatureAnimator.SetBool("IsAgitated", false);
				creatureAnimator.SetBool("IsJiggling", false);
				creatureAnimator.SetBool("IsIdle", false);
				creatureAnimator.SetBool("IsHurt", false);
				creatureAnimator.SetBool("IsKilling", true);
			}
		}
	}

	[HarmonyPatch(typeof(BlobAI), "FixedUpdate")]
	[HarmonyPrefix]
	public static void Blob2(BlobAI __instance)
	{
		((Behaviour)((EnemyAI)__instance).creatureAnimator).enabled = true;
	}

	[HarmonyPatch(typeof(CentipedeAI), "Start")]
	[HarmonyPostfix]
	public static void PluginDetectSummonCentipede(CentipedeAI __instance)
	{
		//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
		Transform parent = ((Component)__instance).transform.Find("CentipedeModel");
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("CentipedeModel").Find("LOD1")).gameObject.GetComponent<SkinnedMeshRenderer>()).enabled = false;
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("CentipedeModel").Find("LOD2")).gameObject.GetComponent<SkinnedMeshRenderer>()).enabled = false;
		((Component)((Component)__instance).gameObject.transform.Find("ScanNode")).gameObject.GetComponent<ScanNodeProperties>().headerText = "Paimon";
		PaimonObject = Object.Instantiate<GameObject>(PaimonPrefab);
		PaimonObject.transform.SetParent(parent);
		PaimonObject.transform.localRotation = Quaternion.Euler(0f, 0f, 0f);
		PaimonObject.transform.localPosition = Vector3.zero;
		((EnemyAI)__instance).creatureAnimator = ((Component)PaimonObject.transform).GetComponent<Animator>();
	}

	[HarmonyPatch(typeof(DressGirlAI), "Start")]
	[HarmonyPostfix]
	public static void PluginDetectSummonWorm(DressGirlAI __instance)
	{
		//IL_01a7: Unknown result type (might be due to invalid IL or missing references)
		//IL_01bc: Unknown result type (might be due to invalid IL or missing references)
		__instance.appearStaringSFX[0] = soundQiqiLaugh1_0;
		__instance.appearStaringSFX[1] = soundQiqiLaugh2;
		__instance.breathingSFX = soundQiqiBreathing;
		__instance.heartbeatMusic.clip = soundQiqiBellChimeAmbience;
		Transform parent = ((Component)__instance).transform.Find("DressGirlModel").Find("basemesh");
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("DressGirlModel").Find("basemesh")).gameObject.GetComponent<SkinnedMeshRenderer>()).enabled = false;
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("DressGirlModel").Find("AnimContainer").Find("metarig")
			.Find("spine")
			.Find("spine.002")
			.Find("spine.003")
			.Find("spine.004")
			.Find("spine.006")
			.Find("Icosphere")).gameObject.GetComponent<MeshRenderer>()).enabled = false;
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("DressGirlModel").Find("AnimContainer").Find("metarig")
			.Find("spine")
			.Find("spine.002")
			.Find("spine.003")
			.Find("spine.004")
			.Find("spine.006")
			.Find("Icosphere.001")).gameObject.GetComponent<MeshRenderer>()).enabled = false;
		QiqiObject = Object.Instantiate<GameObject>(QiqiPrefab);
		QiqiObject.transform.SetParent(parent);
		QiqiObject.transform.localRotation = Quaternion.Euler(0f, 0f, 0f);
		QiqiObject.transform.localPosition = Vector3.zero;
		((EnemyAI)__instance).creatureAnimator = ((Component)QiqiObject.transform).GetComponent<Animator>();
	}

	[HarmonyPatch(typeof(FlowermanAI), "Start")]
	[HarmonyPostfix]
	public static void SummonBracken(FlowermanAI __instance)
	{
		//IL_01f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0208: Unknown result type (might be due to invalid IL or missing references)
		__instance.creatureAngerVoice.clip = soundRaidenAngered;
		__instance.crackNeckSFX = soundRaidenCrackNeck;
		__instance.crackNeckAudio.clip = soundRaidenCrackNeck;
		((EnemyAI)__instance).enemyType.stunSFX = soundRaidenStunFlowerman;
		((EnemyAI)__instance).enemyBehaviourStates[1].VoiceClip = soundRaidenFound1;
		Transform parent = ((Component)__instance).transform.Find("FlowermanModel");
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("FlowermanModel").Find("LOD1")).gameObject.GetComponent<SkinnedMeshRenderer>()).enabled = false;
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("FlowermanModel").Find("AnimContainer").Find("metarig")
			.Find("Torso1")
			.Find("Torso2")
			.Find("Torso3")
			.Find("Neck1")
			.Find("Neck2")
			.Find("Head1")
			.Find("LeftEye")).gameObject.GetComponent<MeshRenderer>()).enabled = false;
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("FlowermanModel").Find("AnimContainer").Find("metarig")
			.Find("Torso1")
			.Find("Torso2")
			.Find("Torso3")
			.Find("Neck1")
			.Find("Neck2")
			.Find("Head1")
			.Find("RightEye")).gameObject.GetComponent<MeshRenderer>()).enabled = false;
		((Component)((Component)__instance).gameObject.transform.Find("ScanNode")).gameObject.GetComponent<ScanNodeProperties>().headerText = "Raiden Shogun";
		RaidenObject = Object.Instantiate<GameObject>(RaidenPrefab);
		RaidenObject.transform.SetParent(parent);
		RaidenObject.transform.localRotation = Quaternion.Euler(90f, 0f, 0f);
		RaidenObject.transform.localPosition = Vector3.zero;
		((EnemyAI)__instance).creatureAnimator = ((Component)RaidenObject.transform).GetComponent<Animator>();
	}

	[HarmonyPatch(typeof(FlowermanAI), "CalculateAnimationDirection")]
	[HarmonyPostfix]
	public static void OnCalculateAnimationDirection(FlowermanAI __instance, float maxSpeed, ref float ___velX, ref float ___velZ)
	{
		Animator component = ((Component)((Component)__instance).gameObject.transform.Find("FlowermanModel").Find("AnimContainer")).gameObject.GetComponent<Animator>();
		if (!((Object)(object)component == (Object)null))
		{
			component.SetFloat("VelocityX", Mathf.Clamp(___velX, 0f - maxSpeed, maxSpeed));
			component.SetFloat("VelocityZ", Mathf.Clamp(___velZ, 0f - maxSpeed, maxSpeed));
		}
	}

	[HarmonyPatch(typeof(FlowermanAI), "KillEnemy")]
	[HarmonyPrefix]
	public static void OnKillEnemy(FlowermanAI __instance, ref float ___velX, ref float ___velZ)
	{
		Animator component = ((Component)((Component)__instance).gameObject.transform.Find("FlowermanModel").Find("AnimContainer")).gameObject.GetComponent<Animator>();
		if (!((Object)(object)component == (Object)null))
		{
			component.SetFloat("VelocityX", Mathf.Clamp(___velX, 0f, 0f));
			component.SetFloat("VelocityZ", Mathf.Clamp(___velZ, 0f, 0f));
		}
	}

	[HarmonyPatch(typeof(CrawlerAI), "Start")]
	[HarmonyPostfix]
	public static void PluginDetectSummonCrawler(CrawlerAI __instance)
	{
		//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
		Transform parent = ((Component)__instance).transform.Find("CrawlerModel");
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("CrawlerModel").Find("Cube.002")).gameObject.GetComponent<SkinnedMeshRenderer>()).enabled = false;
		((Component)((Component)__instance).gameObject.transform.Find("ScanNode")).gameObject.GetComponent<ScanNodeProperties>().headerText = "Razor";
		RazorObject = Object.Instantiate<GameObject>(RazorPrefab);
		RazorObject.transform.SetParent(parent);
		RazorObject.transform.localRotation = Quaternion.Euler(0f, 270f, 0f);
		RazorObject.transform.localPosition = Vector3.zero;
		((EnemyAI)__instance).creatureAnimator = ((Component)RazorObject.transform).GetComponent<Animator>();
	}

	[HarmonyPatch(typeof(RedLocustBees), "Start")]
	[HarmonyPostfix]
	public static void PluginDetectSummonBees(RedLocustBees __instance)
	{
		//IL_00cb: Unknown result type (might be due to invalid IL or missing references)
		__instance.beesIdle.clip = soundScaraBeeHiveIdle;
		__instance.beesDefensive.clip = soundScaraBeesDefensive;
		__instance.beesAngry.clip = soundScaraBeesAngry;
		((Component)((Component)__instance).gameObject.transform.Find("ScanNode")).gameObject.GetComponent<ScanNodeProperties>().headerText = "Scaramouche";
		Object.Destroy((Object)(object)((Component)((Component)__instance).gameObject.transform.Find("BugSwarmParticle").Find("Target")).gameObject.GetComponent<MeshRenderer>());
		ScaraObject = Object.Instantiate<GameObject>(ScaraPrefab);
		ScaraObject.transform.SetParent(((Component)__instance).transform, false);
		ScaraObject.transform.localPosition = new Vector3(0f, 0f, 0f);
		__instance.beeParticles = ScaraObject.GetComponent<VisualEffect>();
	}

	[HarmonyPatch(typeof(Terminal), "BeginUsingTerminal")]
	[HarmonyPostfix]
	public static void BeginUsingTerminalPatch(Terminal __instance)
	{
		__instance.terminalNodes.allKeywords[41].word = "paimon";
		__instance.enemyFiles[0].creatureName = "Paimon";
		__instance.enemyFiles[0].displayVideo = PaimonVideo;
		__instance.enemyFiles[0].displayText = PaimonText.text;
		__instance.terminalNodes.allKeywords[36].word = "raiden-shogun";
		__instance.enemyFiles[1].creatureName = "Raiden Shogun";
		__instance.enemyFiles[1].displayVideo = RaidenVideo;
		__instance.enemyFiles[1].displayText = RaidenText.text;
		__instance.terminalNodes.allKeywords[52].word = "razor";
		__instance.enemyFiles[2].creatureName = "Razor";
		__instance.enemyFiles[2].displayVideo = RazorVideo;
		__instance.enemyFiles[2].displayText = RazorText.text;
		__instance.terminalNodes.allKeywords[42].word = "wriothesley";
		__instance.enemyFiles[3].creatureName = "Wriothesley";
		__instance.enemyFiles[3].displayVideo = WrisVideo;
		__instance.enemyFiles[3].displayText = WrisText.text;
		__instance.terminalNodes.allKeywords[43].word = "dori";
		__instance.enemyFiles[4].creatureName = "Dori";
		__instance.enemyFiles[4].displayVideo = DoriVideo;
		__instance.enemyFiles[4].displayText = DoriText.text;
		__instance.terminalNodes.allKeywords[45].word = "nilou";
		__instance.enemyFiles[5].creatureName = "Nilou";
		__instance.enemyFiles[5].displayVideo = NilouVideo;
		__instance.enemyFiles[5].displayText = NilouText.text;
		__instance.terminalNodes.allKeywords[37].word = "klee";
		__instance.enemyFiles[6].creatureName = "Klee";
		__instance.enemyFiles[6].displayVideo = KleeVideo;
		__instance.enemyFiles[6].displayText = KleeText.text;
		__instance.terminalNodes.allKeywords[46].word = "zhongli";
		__instance.enemyFiles[7].creatureName = "Zhongli";
		__instance.enemyFiles[7].displayVideo = ZhongliVideo;
		__instance.enemyFiles[7].displayText = ZhongliText.text;
		__instance.terminalNodes.allKeywords[38].word = "yaoyao";
		__instance.enemyFiles[9].creatureName = "Yaoyao";
		__instance.enemyFiles[9].displayVideo = YaoyaoVideo;
		__instance.enemyFiles[9].displayText = YaoyaoText.text;
		__instance.terminalNodes.allKeywords[53].word = "neuvillette";
		__instance.enemyFiles[10].creatureName = "Neuvillette";
		__instance.enemyFiles[10].displayVideo = NeuvVideo;
		__instance.enemyFiles[10].displayText = NeuvText.text;
		__instance.terminalNodes.allKeywords[40].word = "childe";
		__instance.enemyFiles[11].creatureName = "Childe";
		__instance.enemyFiles[11].displayVideo = ChildeVideo;
		__instance.enemyFiles[11].displayText = ChildeText.text;
		__instance.terminalNodes.allKeywords[44].word = "furina";
		__instance.enemyFiles[12].creatureName = "Furina";
		__instance.enemyFiles[12].displayVideo = FurinaVideo;
		__instance.enemyFiles[12].displayText = FurinaText.text;
		__instance.terminalNodes.allKeywords[47].word = "venti";
		__instance.enemyFiles[13].creatureName = "Venti";
		__instance.enemyFiles[13].displayVideo = VentiVideo;
		__instance.enemyFiles[13].displayText = VentiText.text;
		__instance.terminalNodes.allKeywords[50].word = "scaramouche";
		__instance.enemyFiles[14].creatureName = "Scaramouche";
		__instance.enemyFiles[14].displayVideo = ScaraVideo;
		__instance.enemyFiles[14].displayText = ScaraText.text;
		__instance.terminalNodes.allKeywords[51].word = "kazuha";
		__instance.enemyFiles[15].creatureName = "Kazuha";
		__instance.enemyFiles[15].displayVideo = KazuhaVideo;
		__instance.enemyFiles[15].displayText = KazuhaText.text;
		__instance.terminalNodes.allKeywords[48].word = "itto";
		__instance.enemyFiles[16].creatureName = "Itto";
		__instance.enemyFiles[16].displayVideo = IttoVideo;
		__instance.enemyFiles[16].displayText = IttoText.text;
		__instance.terminalNodes.allKeywords[49].word = "chevreuse";
		__instance.enemyFiles[17].creatureName = "Chevreuse";
		__instance.enemyFiles[17].displayVideo = ChevVideo;
		__instance.enemyFiles[17].displayText = ChevText.text;
	}

	[HarmonyPatch(typeof(ShipAlarmCord), "Start")]
	[HarmonyPostfix]
	public static void HornChange(ShipAlarmCord __instance)
	{
		__instance.hornClose.clip = soundGenshinLoudhorn;
		__instance.hornFar.clip = soundGenshinLoudhornDistant;
	}

	[HarmonyPatch(typeof(SoundManager), "Start")]
	[HarmonyPostfix]
	public static void HighAction(SoundManager __instance)
	{
		__instance.highAction1.clip = soundGenshinHighAction1;
		__instance.highAction2.clip = soundGenshinHighAction2;
		__instance.lowAction.clip = soundGenshinLowAction;
	}

	[HarmonyPatch(typeof(DoublewingAI), "Start")]
	[HarmonyPostfix]
	public static void PluginDetectSummonBird(DoublewingAI __instance)
	{
		//IL_0191: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_02f0: Unknown result type (might be due to invalid IL or missing references)
		__instance.flappingAudio.clip = soundVentiDoublewingFlapConstant;
		Transform parent = ((Component)__instance).transform.Find("DoublewingModel");
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("DoublewingModel").Find("BirdLOD0")).gameObject.GetComponent<SkinnedMeshRenderer>()).enabled = false;
		((Renderer)((Component)((Component)__instance).gameObject.transform.Find("DoublewingModel").Find("BirdLOD1")).gameObject.GetComponent<SkinnedMeshRenderer>()).enabled = false;
		((Component)((Component)__instance).gameObject.transform.Find("DoublewingModel").Find("BodyAnimContainer").Find("BodyPivot2")
			.Find("BodyPivot")
			.Find("AnimContainer")
			.Find("metarig")
			.Find("Bone.001")
			.Find("ScanNode")).gameObject.GetComponent<ScanNodeProperties>().headerText = "Venti";
		Transform val = ((Component)__instance).gameObject.transform.Find("DoublewingModel").Find("BodyAnimContainer").Find("BodyPivot2")
			.Find("BodyPivot");
		if ((Object)(object)val != (Object)null)
		{
			Rigidbody component = ((Component)val).gameObject.GetComponent<Rigidbody>();
			if ((Object)(object)component != (Object)null)
			{
				Object.Destroy((Object)(object)component);
			}
		}
		VentiObject = Object.Instantiate<GameObject>(VentiPrefab);
		VentiObject.transform.SetParent(parent);
		VentiObject.transform.localRotation = Quaternion.Euler(0f, 0f, 0f);
		VentiObject.transform.localPosition = Vector3.zero;
		__instance.bodyAnimator = VentiObject.GetComponent<Animator>();
		((EnemyAI)__instance).creatureAnimator = ((Component)VentiObject.transform.Find("Armature")).GetComponent<Animator>();
		__instance.Body = VentiObject.transform.Find("Body");
		if ((Object)(object)__instance.bodyAnimator != (Object)null)
		{
			mls.LogInfo((object)"BodyAnimator found on VentiObject!");
		}
		else
		{
			mls.LogError((object)"BodyAnimator not found on VentiObject!");
		}
		if ((Object)(object)((EnemyAI)__instance).creatureAnimator != (Object)null)
		{
			mls.LogInfo((object)"CreatureAnimator found on VentiObject!");
		}
		else
		{
			mls.LogError((object)"CreatureAnimator not found on VentiObject!");
		}
		Transform val2 = ((Component)__instance).gameObject.transform.Find("DoublewingModel").Find("BodyAnimContainer").Find("BodyPivot2")
			.Find("BodyPivot")
			.Find("AnimContainer")
			.Find("metarig")
			.Find("Bone.001")
			.Find("ScanNode");
		if ((Object)(object)val2 != (Object)null)
		{
			val2.SetParent(VentiObject.transform);
			val2.position = VentiObject.transform.position;
		}
		else
		{
			mls.LogError((object)"ScanNode transform not found.");
		}
	}

	private static string GetHierarchyString(GameObject obj)
	{
		StringBuilder stringBuilder = new StringBuilder();
		Transform val = obj.transform;
		while ((Object)(object)val != (Object)null)
		{
			stringBuilder.Insert(0, ((Object)val).name);
			i