Decompiled source of GenshinImpactOverhaul REPO v1.0.1

GenshinImpactOverhaulRepo.dll

Decompiled a month ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using GenshinImpactOverhaulRepo_AnimationEventHandler;
using HarmonyLib;
using TMPro;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("GenshinImpactOverhaulRepo")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("GenshinImpactOverhaulRepo")]
[assembly: AssemblyCopyright("Copyright ©  2025")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("37bcfbfa-ae7f-4caf-8417-bd3fae2c75f7")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace GenshinImpactOverhaulRepo
{
	[BepInPlugin("GenshinImpactOverhaul", "GoblinKingShmeeGenshinImpactOverhaul", "1.0.0")]
	public class GenshinImpactOverhaul : BaseUnityPlugin
	{
		private readonly Harmony harmony = new Harmony("GenshinImpactOverhaul");

		private static GenshinImpactOverhaul Instance;

		public static ManualLogSource mls;

		public static AssetBundle GenshinImpactOverhaulAssetBundle;

		public static GameObject MikaPrefab;

		public static AudioClip MikaSoundDeath1;

		public static AudioClip MikaSoundDeath2;

		public static AudioClip MikaSoundDeath3;

		public static AudioClip MikaSoundHurt1;

		public static AudioClip MikaSoundHurt2;

		public static AudioClip MikaSoundHurt3;

		public static AudioClip MikaSoundDespawn;

		public static AudioClip MikaSoundSpawn;

		public static AudioClip MikaSoundIdle1;

		public static AudioClip MikaSoundIdle2;

		public static AudioClip MikaSoundIdle3;

		public static AudioClip MikaSoundJump;

		public static AudioClip MikaSoundNotice1;

		public static AudioClip MikaSoundNotice2;

		public static AudioClip MikaSoundNotice3;

		public static AudioClip MikaSoundPickaxeTell;

		public static AudioClip MikaSoundStunFlyLoop;

		public static AudioClip MikaStunIntro1;

		public static AudioClip MikaStunIntro2;

		public static AudioClip MikaStunIntro3;

		public static AudioClip MikaStunOutro1;

		public static AudioClip MikaStunOutro2;

		public static AudioClip MikaStunOutro3;

		public static GameObject ClorindePrefab;

		public static AudioClip ClorindeSoundAim1;

		public static AudioClip ClorindeSoundAim2;

		public static AudioClip ClorindeSoundAim3;

		public static AudioClip ClorindeSoundAimGlobal1;

		public static AudioClip ClorindeSoundAimGlobal2;

		public static AudioClip ClorindeSoundAimGlobal3;

		public static AudioClip ClorindeSoundDeath1;

		public static AudioClip ClorindeSoundDeath2;

		public static AudioClip ClorindeSoundDeath3;

		public static AudioClip ClorindeSoundHurt1;

		public static AudioClip ClorindeSoundHurt2;

		public static AudioClip ClorindeSoundHurt3;

		public static AudioClip ClorindeSoundDespawn;

		public static AudioClip ClorindeSoundSpawn;

		public static AudioClip ClorindeSoundLeave1;

		public static AudioClip ClorindeSoundLeave2;

		public static AudioClip ClorindeSoundLeave3;

		public static GameObject BeidouPrefab;

		public static AudioClip BeidouAttackImpact;

		public static AudioClip BeidouAttackImpactGlobal;

		public static AudioClip BeidouAttackBuildupVO;

		public static AudioClip BeidouDeath;

		public static AudioClip BeidouHurt1;

		public static AudioClip BeidouHurt2;

		public static AudioClip BeidouHurt3;

		public static AudioClip BeidouJump;

		public static AudioClip BeidouLand;

		public static AudioClip BeidouLookUnderAttack;

		public static AudioClip BeidouLookUnderIntro;

		public static AudioClip BeidouLookUnderOutro;

		public static AudioClip BeidouNoiseLong1;

		public static AudioClip BeidouNoiseLong2;

		public static AudioClip BeidouNoiseLong3;

		public static AudioClip BeidouNoiseShort1;

		public static AudioClip BeidouNoiseShort2;

		public static AudioClip BeidouNoiseShort3;

		public static AudioClip BeidouNotice1;

		public static AudioClip BeidouNotice2;

		public static AudioClip BeidouNotice3;

		public static AudioClip BeidouStunnedLoop;

		public static GameObject SayuPrefab;

		public static AudioClip SayuAttackStart;

		public static AudioClip SayuAttackStop;

		public static AudioClip SayuDeath;

		public static AudioClip SayuDespawn;

		public static AudioClip SayuHurt1;

		public static AudioClip SayuHurt2;

		public static AudioClip SayuHurt3;

		public static AudioClip SayuJump1;

		public static AudioClip SayuJump2;

		public static AudioClip SayuJump3;

		public static AudioClip SayuLand1;

		public static AudioClip SayuLand2;

		public static AudioClip SayuLand3;

		public static AudioClip SayuNotice1;

		public static AudioClip SayuNotice2;

		public static AudioClip SayuNotice3;

		public static AudioClip SayuAttackLoop;

		public static AudioClip SayuSpawn;

		public static GameObject GamingPrefab;

		public static AudioClip GamingCleaverSwing1;

		public static AudioClip GamingCleaverSwing2;

		public static AudioClip GamingCleaverSwing3;

		public static AudioClip GamingHurt1;

		public static AudioClip GamingHurt2;

		public static AudioClip GamingHurt3;

		public static AudioClip GamingJump1;

		public static AudioClip GamingJump2;

		public static AudioClip GamingJump3;

		public static AudioClip GamingJump4;

		public static AudioClip GamingJump5;

		public static AudioClip GamingLand1;

		public static AudioClip GamingLand2;

		public static AudioClip GamingLand3;

		public static AudioClip GamingNotice;

		public static AudioClip GamingStunnedLoop;

		public static AudioClip GamingTumbleLocal;

		public static AudioClip GamingTumbleGlobal;

		public static GameObject KachinaPrefab;

		public static AudioClip KachinaDeath;

		public static AudioClip KachinaDespawn;

		public static AudioClip KachinaHurt1;

		public static AudioClip KachinaHurt2;

		public static AudioClip KachinaHurt3;

		public static AudioClip KachinaJump;

		public static AudioClip KachinaLand;

		public static AudioClip KachinaNotice;

		public static AudioClip KachinaPickupIntro;

		public static AudioClip KachinaPickupOutroTell;

		public static AudioClip KachinaPickupOutroThrow;

		public static AudioClip KachinaSpawn;

		public static AudioClip KachinaStunOutro;

		public static AudioClip KachinaStunLoop;

		public static GameObject ArlecchinoPrefab;

		public static AudioClip ArlecchinoAttack;

		public static AudioClip ArlecchinoDeath;

		public static AudioClip ArlecchinoHurt1;

		public static AudioClip ArlecchinoHurt2;

		public static AudioClip ArlecchinoHurt3;

		public static AudioClip ArlecchinoScream1;

		public static AudioClip ArlecchinoScream1Global;

		public static AudioClip ArlecchinoScream2;

		public static AudioClip ArlecchinoScream2Global;

		public static AudioClip ArlecchinoScream3;

		public static AudioClip ArlecchinoScream3Global;

		public static AudioClip ArlecchinoTeleportIn;

		public static AudioClip ArlecchinoTeleportOut;

		public static AudioClip ArlecchinoZoom;

		public static GameObject AlhaithamPrefab;

		public static AudioClip AlhaithamAttackIntro;

		public static AudioClip AlhaithamAttackLoop;

		public static AudioClip AlhaithamAttackOutro;

		public static AudioClip AlhaithamDeath;

		public static AudioClip AlhaithamHurt1;

		public static AudioClip AlhaithamHurt2;

		public static AudioClip AlhaithamHurt3;

		public static AudioClip AlhaithamJump;

		public static AudioClip AlhaithamLand;

		public static AudioClip AlhaithamMeleeKick;

		public static AudioClip AlhaithamMeleeTell;

		public static AudioClip AlhaithamStunIntro;

		public static AudioClip AlhaithamStunOutro;

		public static AudioClip AlhaithamStunLoop;

		public static Material AlhaithamLaserInside;

		public static Material AlhaithamLaser;

		public static Material AlhaithamLaserVariant;

		public static Material AlhaithamLaserSmoke;

		public static GameObject BarbaraPrefab;

		public static AudioClip BarbaraDeath;

		public static AudioClip BarbaraDespawn;

		public static AudioClip BarbaraHurt1;

		public static AudioClip BarbaraHurt2;

		public static AudioClip BarbaraHurt3;

		public static AudioClip BarbaraIdleLoop;

		public static AudioClip BarbaraScreamEndGlobal;

		public static AudioClip BarbaraScreamStartGlobal;

		public static AudioClip BarbaraScreamLoopGlobal;

		public static AudioClip BarbaraScreamLoopLocal;

		public static AudioClip BarbaraStunnedLoop;

		public static AudioClip BarbaraJump;

		public static AudioClip BarbaraNotice;

		public static AudioClip BarbaraLand;

		public static GameObject XianyunPrefab;

		public static AudioClip XianyunAttackDown;

		public static AudioClip XianyunAttackDownGlobal;

		public static AudioClip XianyunAttackUp;

		public static AudioClip XianyunAttackUpGlobal;

		public static AudioClip XianyunDeath;

		public static AudioClip XianyunHurt1;

		public static AudioClip XianyunHurt2;

		public static AudioClip XianyunHurt3;

		public static AudioClip XianyunStunnedLoop;

		public static AudioClip XianyunChargeAttack;

		public static AudioClip XianyunChargeAttackLoop;

		public static AudioClip XianyunClapGlobal;

		public static AudioClip XianyunClapLocal;

		public static AudioClip XianyunDelayAttack;

		public static Material XianyunMaterial;

		public static GameObject IansanPrefab;

		public static AudioClip IansanDespawn;

		public static AudioClip IansanHurt1;

		public static AudioClip IansanHurt2;

		public static AudioClip IansanHurt3;

		public static AudioClip IansanIdle1;

		public static AudioClip IansanIdle2;

		public static AudioClip IansanIdle3;

		public static AudioClip IansanJump;

		public static AudioClip IansanLand;

		public static AudioClip IansanScream1Global;

		public static AudioClip IansanScream1Local;

		public static AudioClip IansanScream2Global;

		public static AudioClip IansanScream2Local;

		public static AudioClip IansanScream3Global;

		public static AudioClip IansanScream3Local;

		public static GameObject HuTaoPrefab;

		public static AudioClip HutaoAttack;

		public static AudioClip HutaoAttackGlobal;

		public static AudioClip HutaoCrackingFingers;

		public static AudioClip HutaoCrackingFingersAggresive;

		public static AudioClip HutaoHurt1;

		public static AudioClip HutaoHurt2;

		public static AudioClip HutaoHurt3;

		public static AudioClip HutaoLookUnderScream;

		public static AudioClip HutaoLookUnderScreamGlobal;

		public static AudioClip HutaoNoise1;

		public static AudioClip HutaoNoise2;

		public static AudioClip HutaoNoise3;

		public static AudioClip HutaoNoise4;

		public static AudioClip HutaoStunStart;

		public static AudioClip HutaoTargetingPlayer;

		public static AudioClip HutaoStunnedLoop;

		public static GameObject AyatoPrefab;

		public static AudioClip AyatoAttack1;

		public static AudioClip AyatoAttack2;

		public static AudioClip AyatoAttack3;

		public static AudioClip AyatoAttack4;

		public static AudioClip AyatoAttack5;

		public static AudioClip AyatoDeath;

		public static AudioClip AyatoHurt1;

		public static AudioClip AyatoHurt2;

		public static AudioClip AyatoHurt3;

		public static AudioClip AyatoJump;

		public static AudioClip AyatoStunnedLoop;

		public static GameObject NahidaPrefab;

		public static AudioClip NahidaBlink1;

		public static AudioClip NahidaBlink2;

		public static AudioClip NahidaBlink3;

		public static AudioClip NahidaDeath;

		public static AudioClip NahidaDespawn;

		public static AudioClip NahidaLaser;

		public static AudioClip NahidaLaserBuildup;

		public static AudioClip NahidaSpawn;

		public static AudioClip NahidaStaringStart;

		public static AudioClip NahidaStareLoopTwitching;

		public static AudioClip NahidaStareLoop;

		public static GameObject GorouPrefab;

		public static AudioClip GorouBiteStart1;

		public static AudioClip GorouBiteStart2;

		public static AudioClip GorouBiteStart3;

		public static AudioClip GorouChaseBegin;

		public static AudioClip GorouChaseBeginGlobal;

		public static AudioClip GorouChaseBeginToChase;

		public static AudioClip GorouChaseToIdle;

		public static AudioClip GorouDeath;

		public static AudioClip GorouDespawn;

		public static AudioClip GorouHurt1;

		public static AudioClip GorouHurt2;

		public static AudioClip GorouHurt3;

		public static AudioClip GorouSpawn;

		public static AudioClip GorouTeethChatter1;

		public static AudioClip GorouTeethChatter2;

		public static AudioClip GorouTeethChatter3;

		public static AudioClip GorouTeethChatter4;

		public static AudioClip GorouTeethChatter5;

		public static GameObject TapirPrefab;

		public static AudioClip TapirAttackLoop;

		public static AudioClip TapirDeath;

		public static AudioClip TapirHurt1;

		public static AudioClip TapirHurt2;

		public static AudioClip TapirHurt3;

		public static AudioClip TapirNotice1;

		public static AudioClip TapirNotice2;

		public static AudioClip TapirNotice3;

		public static AudioClip TapirQuack1;

		public static AudioClip TapirQuack2;

		public static AudioClip TapirQuack3;

		public static AudioClip TapirStunEnd1;

		public static AudioClip TapirStunEnd2;

		public static AudioClip TapirStunEnd3;

		public static AudioClip TapirStunLoop;

		public static AudioClip TapirBite1;

		public static AudioClip TapirBite2;

		public static AudioClip TapirBite3;

		public static AudioClip TapirBite4;

		public static AudioClip TapirBite5;

		public static AudioClip TapirBite6;

		public static GameObject MavuikaPrefab;

		public static AudioClip MavuikaAttackBreaker1;

		public static AudioClip MavuikaAttackBreaker2;

		public static AudioClip MavuikaAttackBreaker3;

		public static AudioClip MavuikaAttackBreaker4;

		public static AudioClip MavuikaAttackBreaker5;

		public static AudioClip MavuikaDeath1;

		public static AudioClip MavuikaDeath2;

		public static AudioClip MavuikaDeath3;

		public static AudioClip MavuikaExplodeTell1;

		public static AudioClip MavuikaExplodeTell2;

		public static AudioClip MavuikaExplodeTell3;

		public static AudioClip MavuikaFuseTell1;

		public static AudioClip MavuikaFuseTell2;

		public static AudioClip MavuikaFuseTell3;

		public static AudioClip MavuikaHurt1;

		public static AudioClip MavuikaHurt2;

		public static AudioClip MavuikaHurt3;

		public static AudioClip MavuikaIdleBreaker1;

		public static AudioClip MavuikaIdleBreaker2;

		public static AudioClip MavuikaIdleBreaker3;

		public static AudioClip MavuikaIdleBreaker4;

		public static AudioClip MavuikaIdleBreaker5;

		public static AudioClip MavuikaJump1;

		public static AudioClip MavuikaJump2;

		public static AudioClip MavuikaJump3;

		public static AudioClip MavuikaLand1;

		public static AudioClip MavuikaLand2;

		public static AudioClip MavuikaLand3;

		public static AudioClip MavuikaStunIntro1;

		public static AudioClip MavuikaStunIntro2;

		public static AudioClip MavuikaStunIntro3;

		public static AudioClip MavuikaStunLoop;

		public static AudioClip MavuikaStunOutro1;

		public static AudioClip MavuikaStunOutro2;

		public static AudioClip MavuikaStunOutro3;

		public static Texture2D DoriEmojis;

		public static Material DoriMaterial;

		public static ConfigEntry<bool> MikaReplacement { get; private set; }

		public static ConfigEntry<bool> ClorindeReplacement { get; private set; }

		public static ConfigEntry<bool> BeidouReplacement { get; private set; }

		public static ConfigEntry<bool> SayuReplacement { get; private set; }

		public static ConfigEntry<bool> KachinaReplacement { get; private set; }

		public static ConfigEntry<bool> IansanReplacement { get; private set; }

		public static ConfigEntry<bool> HuTaoReplacement { get; private set; }

		public static ConfigEntry<bool> GamingReplacement { get; private set; }

		public static ConfigEntry<bool> BarbaraReplacement { get; private set; }

		public static ConfigEntry<bool> AyatoReplacement { get; private set; }

		public static ConfigEntry<bool> GorouReplacement { get; private set; }

		public static ConfigEntry<bool> AlhaithamReplacement { get; private set; }

		public static ConfigEntry<bool> MavuikaReplacement { get; private set; }

		public static ConfigEntry<bool> NahidaReplacement { get; private set; }

		public static ConfigEntry<bool> TapirReplacement { get; private set; }

		public static ConfigEntry<bool> XianyunReplacement { get; private set; }

		public static ConfigEntry<bool> ArlecchinoReplacement { get; private set; }

		public static ConfigEntry<bool> DoriEmojiReplacement { get; private set; }

		private void Awake()
		{
			if ((Object)(object)Instance == (Object)null)
			{
				Instance = this;
			}
			mls = ((BaseUnityPlugin)this).Logger;
			mls.LogInfo((object)"--===GENSHIN IMPACT OVERHAUL LOADING===--");
			harmony.PatchAll();
			string text = Path.Combine(Path.GetDirectoryName(((BaseUnityPlugin)this).Info.Location), "genshinoverhaul");
			GenshinImpactOverhaulAssetBundle = AssetBundle.LoadFromFile(text);
			if ((Object)(object)GenshinImpactOverhaulAssetBundle == (Object)null)
			{
				mls.LogWarning((object)"COULD NOT FIND GENSHIN ASSETS");
			}
			LoadAssets();
			DoriEmojiReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Extra", "Emojis", true, "Replace some of the money related emojis with Dori ones");
			AlhaithamReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Alhaitham", true, "Replace the Clown with Alhaitham");
			ArlecchinoReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Arlecchino", true, "Replace the Shadow Child with Arlecchino");
			BarbaraReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Barbara", true, "Replace the Bowtie with Barbara");
			BeidouReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Beidou", true, "Replace the Trudge with Beidou");
			ClorindeReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Clorinde", true, "Replace the Hunter with Clorinde");
			GamingReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Gaming", true, "Replace the Chef with Gaming");
			GorouReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Gorou", true, "Replace the Headman with Gorou");
			HuTaoReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Hu Tao", true, "Replace the Robe with Hu Tao");
			IansanReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Iansan", true, "Replace the Upscream with Iansan");
			KachinaReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Kachina", true, "Replace the Rugrat with Kachina");
			AyatoReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Kamisato Ayato", true, "Replace the Reaper with Ayato");
			MavuikaReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Mavuika", true, "Replace the Bang with Mavuika");
			MikaReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Mika", true, "Replace the Gnomes with Mika");
			NahidaReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Nahida", true, "Replace the Peeper with Nahida");
			SayuReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Sayu", true, "Replace the Animal with Sayu");
			TapirReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Tapir", true, "Replace the Duck with Mizuki's Tapir");
			XianyunReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Xianyun", true, "Replace the Mentalist with Xianyun");
		}

		public void LoadAssets()
		{
			LoadMikaAssets();
			LoadClorindeAssets();
			LoadBeidouAssets();
			LoadSayuAssets();
			LoadKachinaAssets();
			LoadIansanAssets();
			LoadHuTaoAssets();
			LoadGamingAssets();
			LoadBarbaraAssets();
			LoadAyatoAssets();
			LoadAlhaithamAssets();
			LoadNahidaAssets();
			LoadXianyunAssets();
			LoadArlecchinoAssets();
			LoadGorouAssets();
			LoadTapirAssets();
			LoadMavuikaAssets();
			LoadExtraAssets();
		}

		public void LoadMikaAssets()
		{
			MikaPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Mika/Mika.prefab");
			MikaSoundDeath1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaDeath1.ogg");
			MikaSoundDeath2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaDeath2.ogg");
			MikaSoundDeath3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaDeath3.ogg");
			MikaSoundDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaDespawn.ogg");
			MikaSoundHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaHurt1.ogg");
			MikaSoundHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaHurt2.ogg");
			MikaSoundHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaHurt3.ogg");
			MikaSoundIdle1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaIdleBreaker1.ogg");
			MikaSoundIdle2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaIdleBreaker2.ogg");
			MikaSoundIdle3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaIdleBreaker3.ogg");
			MikaSoundJump = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaJump.ogg");
			MikaSoundNotice1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaNotice1.ogg");
			MikaSoundNotice2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaNotice2.ogg");
			MikaSoundNotice3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaNotice3.ogg");
			MikaSoundPickaxeTell = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaPickaxeTell.ogg");
			MikaSoundSpawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaSpawn.ogg");
			MikaSoundStunFlyLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaStunFlyLoop.ogg");
			MikaStunIntro1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/StunIntro1.ogg");
			MikaStunIntro2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/StunIntro2.ogg");
			MikaStunIntro3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/StunIntro3.ogg");
			MikaStunOutro1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/StunOutro1.ogg");
			MikaStunOutro2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/StunOutro2.ogg");
			MikaStunOutro3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/StunOutro3.ogg");
		}

		public void LoadClorindeAssets()
		{
			ClorindePrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Clorinde/Clorinde.prefab");
			ClorindeSoundAim1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeAim1.ogg");
			ClorindeSoundAimGlobal1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeAim1Global.ogg");
			ClorindeSoundAimGlobal2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeAim2Global.ogg");
			ClorindeSoundAim2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeAim2.ogg");
			ClorindeSoundAimGlobal3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeAim3Global.ogg");
			ClorindeSoundAim3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeAim3.ogg");
			ClorindeSoundDeath1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeDeath1.ogg");
			ClorindeSoundDeath2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeDeath2.ogg");
			ClorindeSoundDeath3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeDeath3.ogg");
			ClorindeSoundHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeHurt1.ogg");
			ClorindeSoundHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeHurt2.ogg");
			ClorindeSoundHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeHurt3.ogg");
			ClorindeSoundSpawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeSpawn.ogg");
			ClorindeSoundDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeDespawn.ogg");
			ClorindeSoundLeave1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeLeave1.ogg");
			ClorindeSoundLeave2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeLeave2.ogg");
			ClorindeSoundLeave3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeLeave3.ogg");
		}

		public void LoadAlhaithamAssets()
		{
			AlhaithamPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Alhaitham/Alhaitham.prefab");
			AlhaithamAttackIntro = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/AttackIntro.ogg");
			AlhaithamAttackLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/AttackLoop.ogg");
			AlhaithamAttackOutro = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/AttackOutro.ogg");
			AlhaithamDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/Death.ogg");
			AlhaithamHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/Hurt1.ogg");
			AlhaithamHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/Hurt2.ogg");
			AlhaithamHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/Hurt3.ogg");
			AlhaithamJump = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/Jump.ogg");
			AlhaithamLand = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/Land.ogg");
			AlhaithamMeleeKick = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/MeleeKick.ogg");
			AlhaithamMeleeTell = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/MeleeTell.ogg");
			AlhaithamStunIntro = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/StunIntro.ogg");
			AlhaithamStunLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/StunnedLoop.ogg");
			AlhaithamStunOutro = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/StunOutro.ogg");
			AlhaithamLaser = GenshinImpactOverhaulAssetBundle.LoadAsset<Material>("Assets/Alhaitham/LaserMaterial.mat");
			AlhaithamLaserInside = GenshinImpactOverhaulAssetBundle.LoadAsset<Material>("Assets/Alhaitham/LaserInsideMaterial.mat");
			AlhaithamLaserVariant = GenshinImpactOverhaulAssetBundle.LoadAsset<Material>("Assets/Alhaitham/LaserMaterialVariant.mat");
			AlhaithamLaserSmoke = GenshinImpactOverhaulAssetBundle.LoadAsset<Material>("Assets/Alhaitham/LaserSmoke.mat");
		}

		public void LoadGorouAssets()
		{
			GorouPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Gorou/GorouHead.prefab");
			GorouBiteStart1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/BiteStart1.ogg");
			GorouBiteStart2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/BiteStart2.ogg");
			GorouBiteStart3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/BiteStart3.ogg");
			GorouChaseBegin = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/ChaseBegin.ogg");
			GorouChaseBeginGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/ChaseBeginGlobal.ogg");
			GorouChaseBeginToChase = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/ChaseBeginToChase.ogg");
			GorouChaseToIdle = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/ChaseToIdle.ogg");
			GorouDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/Death.ogg");
			GorouDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/Despawn.ogg");
			GorouHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/Hurt1.ogg");
			GorouHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/Hurt2.ogg");
			GorouHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/Hurt3.ogg");
			GorouSpawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/Spawn.ogg");
			GorouTeethChatter1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/TeethChatter1.ogg");
			GorouTeethChatter2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/TeethChatter2.ogg");
			GorouTeethChatter3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/TeethChatter3.ogg");
			GorouTeethChatter4 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/TeethChatter4.ogg");
			GorouTeethChatter5 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/TeethChatter5.ogg");
		}

		public void LoadTapirAssets()
		{
			TapirPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Tapir/Tapir.prefab");
			TapirAttackLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/AttackLoop.ogg");
			TapirDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Death.ogg");
			TapirHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Hurt1.ogg");
			TapirHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Hurt2.ogg");
			TapirHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Hurt3.ogg");
			TapirNotice1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Notice1.ogg");
			TapirNotice2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Notice2.ogg");
			TapirNotice3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Notice3.ogg");
			TapirQuack1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Quack1.ogg");
			TapirQuack2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Quack2.ogg");
			TapirQuack3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Quack3.ogg");
			TapirStunEnd1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/StunEnd1.ogg");
			TapirStunEnd2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/StunEnd2.ogg");
			TapirStunEnd3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/StunEnd3.ogg");
			TapirStunLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/StunLoop.ogg");
			TapirBite1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Bite1.ogg");
			TapirBite2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Bite2.ogg");
			TapirBite3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Bite3.ogg");
			TapirBite4 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Bite4.ogg");
			TapirBite5 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Bite5.ogg");
			TapirBite6 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Bite6.ogg");
		}

		public void LoadMavuikaAssets()
		{
			MavuikaPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Mavuika/Mavuika.prefab");
			MavuikaAttackBreaker1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/AttackBreaker1.ogg");
			MavuikaAttackBreaker2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/AttackBreaker2.ogg");
			MavuikaAttackBreaker3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/AttackBreaker3.ogg");
			MavuikaAttackBreaker4 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/AttackBreaker4.ogg");
			MavuikaAttackBreaker5 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/AttackBreaker5.ogg");
			MavuikaDeath1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Death1.ogg");
			MavuikaDeath2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Death2.ogg");
			MavuikaDeath3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Death3.ogg");
			MavuikaExplodeTell1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/ExplodeTell1.ogg");
			MavuikaExplodeTell2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/ExplodeTell2.ogg");
			MavuikaExplodeTell3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/ExplodeTell3.ogg");
			MavuikaFuseTell1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/FuseTell1.ogg");
			MavuikaFuseTell2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/FuseTell2.ogg");
			MavuikaFuseTell3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/FuseTell3.ogg");
			MavuikaHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Hurt1.ogg");
			MavuikaHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Hurt2.ogg");
			MavuikaHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Hurt3.ogg");
			MavuikaIdleBreaker1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/IdleBreaker1.ogg");
			MavuikaIdleBreaker2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/IdleBreaker2.ogg");
			MavuikaIdleBreaker3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/IdleBreaker3.ogg");
			MavuikaIdleBreaker4 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/IdleBreaker4.ogg");
			MavuikaIdleBreaker5 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/IdleBreaker5.ogg");
			MavuikaJump1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Jump1.ogg");
			MavuikaJump2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Jump2.ogg");
			MavuikaJump3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Jump3.ogg");
			MavuikaLand1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Land1.ogg");
			MavuikaLand2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Land2.ogg");
			MavuikaLand3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Land3.ogg");
			MavuikaStunIntro1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/StunIntro1.ogg");
			MavuikaStunIntro2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/StunIntro2.ogg");
			MavuikaStunIntro3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/StunIntro3.ogg");
			MavuikaStunLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/StunLoop.ogg");
			MavuikaStunOutro1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/StunOutro1.ogg");
			MavuikaStunOutro2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/StunOutro2.ogg");
			MavuikaStunOutro3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/StunOutro3.ogg");
		}

		public void LoadBeidouAssets()
		{
			BeidouPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Beidou/Beidou.prefab");
			BeidouAttackBuildupVO = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/AttackBuildupVO.ogg");
			BeidouAttackImpact = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/AttackImplosionImpact.ogg");
			BeidouAttackImpactGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/AttackImplosionImpactGlobal.ogg");
			BeidouDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/Death.ogg");
			BeidouHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/Hurt1.ogg");
			BeidouHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/Hurt2.ogg");
			BeidouHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/Hurt3.ogg");
			BeidouJump = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/Jump.ogg");
			BeidouLand = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/Land.ogg");
			BeidouLookUnderAttack = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/LookUnderAttack.ogg");
			BeidouLookUnderIntro = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/LookUnderIntro.ogg");
			BeidouLookUnderOutro = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/LookUnderOutro.ogg");
			BeidouNoiseLong1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/NoiseLong1.ogg");
			BeidouNoiseLong2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/NoiseLong2.ogg");
			BeidouNoiseLong3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/NoiseLong3.ogg");
			BeidouNoiseShort1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/NoiseShort1.ogg");
			BeidouNoiseShort2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/NoiseShort2.ogg");
			BeidouNoiseShort3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/NoiseShort3.ogg");
			BeidouNotice1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/Notice1.ogg");
			BeidouNotice2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/Notice2.ogg");
			BeidouNotice3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/Notice3.ogg");
			BeidouStunnedLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/StunnedLoop.ogg");
		}

		public void LoadBarbaraAssets()
		{
			BarbaraPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Barbara/Barbara.prefab");
			BarbaraDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/Death.ogg");
			BarbaraDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/Despawn.ogg");
			BarbaraHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/Hurt1.ogg");
			BarbaraHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/Hurt2.ogg");
			BarbaraHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/Hurt3.ogg");
			BarbaraIdleLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/IdleLoop.ogg");
			BarbaraScreamEndGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/ScreamEndGlobal.ogg");
			BarbaraScreamLoopGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/ScreamLoopGlobal.ogg");
			BarbaraScreamStartGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/ScreamStartGlobal.ogg");
			BarbaraScreamLoopLocal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/ScreamLoopLocal.ogg");
			BarbaraStunnedLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/StunnedLoop.ogg");
			BarbaraJump = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/Jump.ogg");
			BarbaraLand = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/Land.ogg");
			BarbaraNotice = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/Notice.ogg");
		}

		public void LoadSayuAssets()
		{
			SayuPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Sayu/Sayu.prefab");
			SayuAttackStart = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/AttackStart.ogg");
			SayuAttackStop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/AttackStop.ogg");
			SayuDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Death.ogg");
			SayuDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Despawn.ogg");
			SayuHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Hurt1.ogg");
			SayuHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Hurt2.ogg");
			SayuHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Hurt3.ogg");
			SayuJump1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Jump1.ogg");
			SayuJump2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Jump2.ogg");
			SayuJump3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Jump3.ogg");
			SayuLand1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Land1.ogg");
			SayuLand2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Land2.ogg");
			SayuLand3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Land3.ogg");
			SayuNotice1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Notice1.ogg");
			SayuNotice2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Notice2.ogg");
			SayuNotice3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Notice3.ogg");
			SayuAttackLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/AttackLoop.ogg");
			SayuSpawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Spawn.ogg");
		}

		public void LoadKachinaAssets()
		{
			KachinaPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Kachina/Kachina.prefab");
			KachinaDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/Death.ogg");
			KachinaDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/Despawn.ogg");
			KachinaHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/Hurt1.ogg");
			KachinaHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/Hurt2.ogg");
			KachinaHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/Hurt3.ogg");
			KachinaJump = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/Jump.ogg");
			KachinaLand = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/Land.ogg");
			KachinaNotice = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/Notice.ogg");
			KachinaPickupIntro = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/PickupIntro.ogg");
			KachinaPickupOutroTell = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/PickupOutroTell.ogg");
			KachinaPickupOutroThrow = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/PickupOutroThrow.ogg");
			KachinaSpawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/Spawn.ogg");
			KachinaStunOutro = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/StunOutro.ogg");
			KachinaStunLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/StunnedLoop.ogg");
		}

		public void LoadIansanAssets()
		{
			IansanPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Iansan/Iansan.prefab");
			IansanDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Despawn.ogg");
			IansanHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Hurt1.ogg");
			IansanHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Hurt2.ogg");
			IansanHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Hurt3.ogg");
			IansanIdle1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Idle1.ogg");
			IansanIdle2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Idle2.ogg");
			IansanIdle3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Idle3.ogg");
			IansanJump = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Jump.ogg");
			IansanLand = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Land.ogg");
			IansanScream1Global = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Scream1Global.ogg");
			IansanScream2Global = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Scream2Global.ogg");
			IansanScream3Global = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Scream3Global.ogg");
			IansanScream1Local = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Scream1Local.ogg");
			IansanScream2Local = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Scream2Local.ogg");
			IansanScream3Local = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Scream3Local.ogg");
		}

		public void LoadXianyunAssets()
		{
			XianyunPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Xianyun/Xianyun.prefab");
			XianyunAttackDown = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/AttackDown.ogg");
			XianyunAttackDownGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/AttackDownGlobal.ogg");
			XianyunDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/Death.ogg");
			XianyunHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/Hurt1.ogg");
			XianyunHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/Hurt2.ogg");
			XianyunHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/Hurt3.ogg");
			XianyunStunnedLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/StunnedLoop.ogg");
			XianyunChargeAttack = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/ChargeStart.ogg");
			XianyunChargeAttackLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/ChargeAttack.ogg");
			XianyunClapGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/ClapGlobal.ogg");
			XianyunClapLocal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/ClapLocal.ogg");
			XianyunDelayAttack = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/DelayAttack.ogg");
			XianyunMaterial = GenshinImpactOverhaulAssetBundle.LoadAsset<Material>("Assets/Xianyun/SphereMat.mat");
		}

		public void LoadArlecchinoAssets()
		{
			ArlecchinoPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Arlecchino/Arlecchino.prefab");
			ArlecchinoAttack = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Attack.ogg");
			ArlecchinoDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Death.ogg");
			ArlecchinoHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Hurt1.ogg");
			ArlecchinoHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Hurt2.ogg");
			ArlecchinoHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Hurt3.ogg");
			ArlecchinoScream1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Scream1.ogg");
			ArlecchinoScream1Global = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Scream1Global.ogg");
			ArlecchinoScream2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Scream2.ogg");
			ArlecchinoScream2Global = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Scream2Global.ogg");
			ArlecchinoScream3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Scream3.ogg");
			ArlecchinoScream3Global = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Scream3Global.ogg");
			ArlecchinoTeleportIn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/TeleportIn.ogg");
			ArlecchinoTeleportOut = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/TeleportOut.ogg");
			ArlecchinoZoom = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Zoom.ogg");
		}

		public void LoadNahidaAssets()
		{
			NahidaPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Nahida/NahidaHead.prefab");
			NahidaBlink1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/Blink1.ogg");
			NahidaBlink2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/Blink2.ogg");
			NahidaBlink3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/Blink3.ogg");
			NahidaDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/Death.ogg");
			NahidaDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/Despawn.ogg");
			NahidaLaser = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/Laser.ogg");
			NahidaLaserBuildup = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/LaserBuildup.ogg");
			NahidaSpawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/Spawn.ogg");
			NahidaStareLoopTwitching = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/StareLoopTwitching.ogg");
			NahidaStaringStart = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/StaringStart.ogg");
			NahidaStareLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/StareLoop.ogg");
		}

		public void LoadHuTaoAssets()
		{
			HuTaoPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/HuTao/Hu Tao.prefab");
			HutaoAttack = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/Attack.ogg");
			HutaoAttackGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/AttackGlobal.ogg");
			HutaoCrackingFingers = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/CrackingFingersSlow.ogg");
			HutaoCrackingFingersAggresive = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/CrackingFingersAggresive.ogg");
			HutaoHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/Hurt1.ogg");
			HutaoHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/Hurt2.ogg");
			HutaoHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/Hurt3.ogg");
			HutaoLookUnderScream = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/LookUnderScream.ogg");
			HutaoLookUnderScreamGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/LookUnderScreamGlobal.ogg");
			HutaoNoise1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/Noise1.ogg");
			HutaoNoise2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/Noise2.ogg");
			HutaoNoise3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/Noise3.ogg");
			HutaoNoise4 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/Noise4.ogg");
			HutaoStunStart = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/StunStart.ogg");
			HutaoTargetingPlayer = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/TargetingPlayer.ogg");
			HutaoStunnedLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/StunnedLoop.ogg");
		}

		public void LoadGamingAssets()
		{
			GamingPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Gaming/Gaming.prefab");
			GamingCleaverSwing1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/CleaverSwing1.ogg");
			GamingCleaverSwing2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/CleaverSwing2.ogg");
			GamingCleaverSwing3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/CleaverSwing3.ogg");
			GamingHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Hurt1.ogg");
			GamingHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Hurt2.ogg");
			GamingHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Hurt3.ogg");
			GamingJump1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Jump1.ogg");
			GamingJump2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Jump2.ogg");
			GamingJump3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Jump3.ogg");
			GamingJump4 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Jump4.ogg");
			GamingJump5 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Jump5.ogg");
			GamingLand1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Land1.ogg");
			GamingLand2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Land2.ogg");
			GamingLand3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Land3.ogg");
			GamingNotice = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Notice.ogg");
			GamingStunnedLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/StunnedLoop.ogg");
			GamingTumbleGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/TumbleGlobal.ogg");
			GamingTumbleLocal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/TumbleLocal.ogg");
		}

		public void LoadAyatoAssets()
		{
			AyatoPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Ayato/Ayato.prefab");
			AyatoAttack1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/Attack1.ogg");
			AyatoAttack2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/Attack2.ogg");
			AyatoAttack3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/Attack3.ogg");
			AyatoAttack4 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/Attack4.ogg");
			AyatoAttack5 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/Attack5.ogg");
			AyatoDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/Death.ogg");
			AyatoHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/Hurt1.ogg");
			AyatoHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/Hurt2.ogg");
			AyatoHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/Hurt3.ogg");
			AyatoJump = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/Jump.ogg");
			AyatoStunnedLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/StunnedLoop.ogg");
		}

		public void LoadExtraAssets()
		{
			DoriEmojis = GenshinImpactOverhaulAssetBundle.LoadAsset<Texture2D>("Assets/Extra/DoriEmojis.png");
			DoriMaterial = GenshinImpactOverhaulAssetBundle.LoadAsset<Material>("Assets/Extra/DoriEmojis.mat");
		}
	}
	[HarmonyPatch(typeof(EnemyAnimal))]
	internal class EnemyAnimalPatch
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		private static void ReplaceAssets(EnemyAnimal __instance, ref EnemyAnimalAnim ___enemyAnimalAnim)
		{
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0065: Unknown result type (might be due to invalid IL or missing references)
			//IL_0079: Unknown result type (might be due to invalid IL or missing references)
			if (GenshinImpactOverhaul.SayuReplacement.Value)
			{
				Modifiers.TurnOffRenderers(((Component)__instance).transform);
				GameObject val = Object.Instantiate<GameObject>(GenshinImpactOverhaul.SayuPrefab);
				val.transform.parent = ((Component)__instance).transform.parent.Find("Rigidbody");
				Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, -0.7f, 0f), new Vector3(1f, 1f, 1f));
				val.AddComponent<SayuAnimationEventHandler>();
				((Component)((Component)__instance).transform.parent.parent).GetComponent<EnemyParent>().enemyName = "Sayu";
				___enemyAnimalAnim.attackLoop.Sounds[0] = GenshinImpactOverhaul.SayuAttackLoop;
				___enemyAnimalAnim.attackStartSound.Sounds[0] = GenshinImpactOverhaul.SayuAttackStart;
				___enemyAnimalAnim.attackStopSound.Sounds[0] = GenshinImpactOverhaul.SayuAttackStop;
				___enemyAnimalAnim.deathSound.Sounds[0] = GenshinImpactOverhaul.SayuDeath;
				___enemyAnimalAnim.despawnSound.Sounds[0] = GenshinImpactOverhaul.SayuDespawn;
				___enemyAnimalAnim.hurtSound.Sounds[0] = GenshinImpactOverhaul.SayuHurt1;
				___enemyAnimalAnim.hurtSound.Sounds[1] = GenshinImpactOverhaul.SayuHurt2;
				___enemyAnimalAnim.hurtSound.Sounds[2] = GenshinImpactOverhaul.SayuHurt3;
				___enemyAnimalAnim.jumpSound.Sounds[0] = GenshinImpactOverhaul.SayuJump1;
				___enemyAnimalAnim.jumpSound.Sounds[1] = GenshinImpactOverhaul.SayuJump2;
				___enemyAnimalAnim.jumpSound.Sounds[2] = GenshinImpactOverhaul.SayuJump3;
				___enemyAnimalAnim.landSound.Sounds[0] = GenshinImpactOverhaul.SayuLand1;
				___enemyAnimalAnim.landSound.Sounds[1] = GenshinImpactOverhaul.SayuLand2;
				___enemyAnimalAnim.landSound.Sounds[2] = GenshinImpactOverhaul.SayuLand3;
				___enemyAnimalAnim.noticeSound.Sounds[0] = GenshinImpactOverhaul.SayuNotice1;
				___enemyAnimalAnim.noticeSound.Sounds[1] = GenshinImpactOverhaul.SayuNotice2;
				___enemyAnimalAnim.noticeSound.Sounds[2] = GenshinImpactOverhaul.SayuNotice3;
			}
		}
	}
	[HarmonyPatch(typeof(EnemyAnimalAnim))]
	internal class AnimalAnimPatch
	{
		public static FieldInfo animatorField = typeof(EnemyAnimalAnim).GetField("animator", BindingFlags.Instance | BindingFlags.NonPublic);

		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		public static void ReplaceAnimator(EnemyAnimalAnim __instance)
		{
			if (!GenshinImpactOverhaul.SayuReplacement.Value || animatorField == null)
			{
				return;
			}
			object? value = animatorField.GetValue(__instance);
			Animator val = (Animator)((value is Animator) ? value : null);
			Transform val2 = ((Component)__instance).transform.parent.parent.Find("Sayu(Clone)");
			if (!((Object)(object)val2 == (Object)null))
			{
				Animator component = ((Component)val2).GetComponent<Animator>();
				if ((Object)(object)val != (Object)(object)component)
				{
					animatorField.SetValue(__instance, component);
				}
				((Behaviour)((Component)__instance).gameObject.GetComponent<Animator>()).enabled = false;
			}
		}

		[HarmonyPatch("Update")]
		[HarmonyPostfix]
		public static void FixFloating(EnemyAnimalAnim __instance)
		{
			//IL_00c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d2: Unknown result type (might be due to invalid IL or missing references)
			if (!GenshinImpactOverhaul.SayuReplacement.Value || animatorField == null)
			{
				return;
			}
			Transform val = ((Component)__instance).transform.parent.parent.Find("Sayu(Clone)");
			if ((Object)(object)val != (Object)null)
			{
				Animator component = ((Component)val).GetComponent<Animator>();
				if ((Object)(object)component != (Object)null && component.GetBool("attack"))
				{
					((Component)((Component)__instance).transform.Find("Hurt Collider")).gameObject.SetActive(true);
				}
				else
				{
					((Component)((Component)__instance).transform.Find("Hurt Collider")).gameObject.SetActive(false);
				}
				val.localPosition = new Vector3(0f, -0.7f, 0f);
				val.localRotation = Quaternion.identity;
			}
		}
	}
	[HarmonyPatch(typeof(EnemyBang))]
	internal class EnemyBangPatch
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		private static void ReplaceAssets(EnemyBang __instance, ref EnemyBangAnim ___anim)
		{
			//IL_017f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0193: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a7: Unknown result type (might be due to invalid IL or missing references)
			if (!GenshinImpactOverhaul.MavuikaReplacement.Value)
			{
				return;
			}
			Type type = Type.GetType("UnityEngine.Halo, UnityEngine");
			if (type == null)
			{
				Debug.LogError((object)"Could not find type UnityEngine.Halo");
				return;
			}
			MethodInfo method = typeof(Component).GetMethod("GetComponentsInChildren", BindingFlags.Instance | BindingFlags.Public, null, new Type[2]
			{
				typeof(Type),
				typeof(bool)
			}, null);
			object[] parameters = new object[2] { type, true };
			Array array = (Array)method.Invoke(((Component)__instance).transform.parent, parameters);
			foreach (object item in array)
			{
				Behaviour val = (Behaviour)((item is Behaviour) ? item : null);
				if ((Object)(object)val != (Object)null)
				{
					val.enabled = false;
				}
			}
			Modifiers.TurnOffRenderers(((Component)__instance).transform.parent);
			Light[] componentsInChildren = ((Component)((Component)__instance).transform.parent).GetComponentsInChildren<Light>(true);
			Light[] array2 = componentsInChildren;
			foreach (Light val2 in array2)
			{
				((Behaviour)val2).enabled = false;
			}
			GameObject val3 = Object.Instantiate<GameObject>(GenshinImpactOverhaul.MavuikaPrefab);
			val3.transform.parent = ((Component)__instance).transform.parent.Find("Visuals");
			Modifiers.SetPositioning(val3.transform, Quaternion.identity, new Vector3(0f, -0.26f, 0f), new Vector3(0.31f, 0.31f, 0.31f));
			val3.AddComponent<MavuikaAnimationEventHandler>();
			((Component)((Component)__instance).transform.parent.parent).GetComponent<EnemyParent>().enemyName = "Mavuika";
			___anim.soundAttackBreaker.Sounds[0] = GenshinImpactOverhaul.MavuikaAttackBreaker1;
			___anim.soundAttackBreaker.Sounds[1] = GenshinImpactOverhaul.MavuikaAttackBreaker2;
			___anim.soundAttackBreaker.Sounds[2] = GenshinImpactOverhaul.MavuikaAttackBreaker3;
			___anim.soundAttackBreaker.Sounds[3] = GenshinImpactOverhaul.MavuikaAttackBreaker4;
			___anim.soundAttackBreaker.Sounds[4] = GenshinImpactOverhaul.MavuikaAttackBreaker5;
			___anim.soundDeathVO.Sounds[0] = GenshinImpactOverhaul.MavuikaDeath1;
			___anim.soundDeathVO.Sounds[1] = GenshinImpactOverhaul.MavuikaDeath2;
			___anim.soundDeathVO.Sounds[2] = GenshinImpactOverhaul.MavuikaDeath3;
			___anim.soundExplosionTell.Sounds[0] = GenshinImpactOverhaul.MavuikaExplodeTell1;
			___anim.soundExplosionTell.Sounds[1] = GenshinImpactOverhaul.MavuikaExplodeTell2;
			___anim.soundExplosionTell.Sounds[2] = GenshinImpactOverhaul.MavuikaExplodeTell3;
			___anim.soundFuseTell.Sounds[0] = GenshinImpactOverhaul.MavuikaFuseTell1;
			___anim.soundFuseTell.Sounds[1] = GenshinImpactOverhaul.MavuikaFuseTell2;
			___anim.soundFuseTell.Sounds[2] = GenshinImpactOverhaul.MavuikaFuseTell3;
			___anim.soundLandVO.Sounds[0] = GenshinImpactOverhaul.MavuikaLand1;
			___anim.soundLandVO.Sounds[1] = GenshinImpactOverhaul.MavuikaLand2;
			___anim.soundLandVO.Sounds[2] = GenshinImpactOverhaul.MavuikaLand3;
			___anim.soundHurt.Sounds[0] = GenshinImpactOverhaul.MavuikaHurt1;
			___anim.soundHurt.Sounds[1] = GenshinImpactOverhaul.MavuikaHurt2;
			___anim.soundHurt.Sounds[2] = GenshinImpactOverhaul.MavuikaHurt3;
			___anim.soundIdleBreaker.Sounds[0] = GenshinImpactOverhaul.MavuikaIdleBreaker1;
			___anim.soundIdleBreaker.Sounds[1] = GenshinImpactOverhaul.MavuikaIdleBreaker2;
			___anim.soundIdleBreaker.Sounds[2] = GenshinImpactOverhaul.MavuikaIdleBreaker3;
			___anim.soundIdleBreaker.Sounds[3] = GenshinImpactOverhaul.MavuikaIdleBreaker4;
			___anim.soundIdleBreaker.Sounds[4] = GenshinImpactOverhaul.MavuikaIdleBreaker5;
			___anim.soundJumpVO.Sounds[0] = GenshinImpactOverhaul.MavuikaJump1;
			___anim.soundJumpVO.Sounds[1] = GenshinImpactOverhaul.MavuikaJump2;
			___anim.soundJumpVO.Sounds[2] = GenshinImpactOverhaul.MavuikaJump3;
			___anim.soundStunIntro.Sounds[0] = GenshinImpactOverhaul.MavuikaStunIntro1;
			___anim.soundStunIntro.Sounds[1] = GenshinImpactOverhaul.MavuikaStunIntro2;
			___anim.soundStunIntro.Sounds[2] = GenshinImpactOverhaul.MavuikaStunIntro3;
			___anim.soundStunLoop.Sounds[0] = GenshinImpactOverhaul.MavuikaStunLoop;
			___anim.soundStunOutro.Sounds[0] = GenshinImpactOverhaul.MavuikaStunOutro1;
			___anim.soundStunOutro.Sounds[1] = GenshinImpactOverhaul.MavuikaStunOutro2;
			___anim.soundStunOutro.Sounds[2] = GenshinImpactOverhaul.MavuikaStunOutro3;
		}
	}
	[HarmonyPatch(typeof(EnemyBeamer))]
	internal class EnemyBeamerPatch
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		private static void ReplaceAssets(EnemyBeamer __instance, ref EnemyBeamerAnim ___anim)
		{
			//IL_0074: Unknown result type (might be due to invalid IL or missing references)
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0220: Unknown result type (might be due to invalid IL or missing references)
			//IL_0285: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0342: Unknown result type (might be due to invalid IL or missing references)
			if (GenshinImpactOverhaul.AlhaithamReplacement.Value)
			{
				Modifiers.TurnOffRenderers(((Component)__instance).transform.parent.Find("Visuals").Find("___________________________________").Find("[ANIM BOT]"));
				GameObject val = Object.Instantiate<GameObject>(GenshinImpactOverhaul.AlhaithamPrefab);
				val.transform.parent = ((Component)__instance).transform.parent.Find("Visuals");
				Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, -0.7f, 0f), new Vector3(1f, 1f, 1f));
				val.AddComponent<AlhaithamAnimationEventHandler>();
				((Component)((Component)__instance).transform.parent.parent).GetComponent<EnemyParent>().enemyName = "Alhaitham";
				___anim.soundAttackIntro.Sounds[0] = GenshinImpactOverhaul.AlhaithamAttackIntro;
				___anim.soundAttackLoop.Sounds[0] = GenshinImpactOverhaul.AlhaithamAttackLoop;
				___anim.soundAttackOutro.Sounds[0] = GenshinImpactOverhaul.AlhaithamAttackOutro;
				___anim.soundDeath.Sounds[0] = GenshinImpactOverhaul.AlhaithamDeath;
				___anim.soundHurt.Sounds[0] = GenshinImpactOverhaul.AlhaithamHurt1;
				___anim.soundHurt.Sounds[1] = GenshinImpactOverhaul.AlhaithamHurt2;
				___anim.soundHurt.Sounds[2] = GenshinImpactOverhaul.AlhaithamHurt3;
				___anim.soundJump.Sounds[0] = GenshinImpactOverhaul.AlhaithamJump;
				___anim.soundLand.Sounds[0] = GenshinImpactOverhaul.AlhaithamLand;
				___anim.soundMeleeKick.Sounds[0] = GenshinImpactOverhaul.AlhaithamMeleeKick;
				___anim.soundMeleeTell.Sounds[0] = GenshinImpactOverhaul.AlhaithamMeleeTell;
				___anim.soundStunIntro.Sounds[0] = GenshinImpactOverhaul.AlhaithamStunIntro;
				___anim.soundStunLoop.Sounds[0] = GenshinImpactOverhaul.AlhaithamStunLoop;
				___anim.soundStunOutro.Sounds[0] = GenshinImpactOverhaul.AlhaithamStunOutro;
				Transform val2 = ((Component)___anim).transform.Find("SemiLaser").Find("Enable");
				if (!((Object)(object)val2 == (Object)null))
				{
					((Component)val2.Find("Hit").Find("Point Light")).GetComponent<Light>().color = Color.green;
					((Renderer)((Component)val2.Find("Hit").Find("Sphere")).GetComponent<MeshRenderer>()).material = GenshinImpactOverhaul.AlhaithamLaserInside;
					((Renderer)((Component)val2.Find("Hit").Find("Sphere (1)")).GetComponent<MeshRenderer>()).material = GenshinImpactOverhaul.AlhaithamLaserVariant;
					((Component)val2.Find("Laser Light 1")).GetComponent<Light>().color = Color.green;
					((Component)val2.Find("Laser Light 2")).GetComponent<Light>().color = Color.green;
					((Component)val2.Find("Laser Light 3")).GetComponent<Light>().color = Color.green;
					((Component)val2.Find("Laser Light 4")).GetComponent<Light>().color = Color.green;
					((Component)val2.Find("Laser Light 5")).GetComponent<Light>().color = Color.green;
					((Renderer)((Component)val2.Find("Line")).GetComponent<LineRenderer>()).material = GenshinImpactOverhaul.AlhaithamLaser;
					((Renderer)((Component)val2.Find("Line Inside")).GetComponent<LineRenderer>()).material = GenshinImpactOverhaul.AlhaithamLaserInside;
					((Component)val2.Find("Spot Light")).GetComponent<Light>().color = Color.green;
					Transform val3 = ((Component)___anim).transform.Find("SemiLaser").Find("Hit Particles");
					((Renderer)((Component)val3.Find("Smoke Particles")).GetComponent<ParticleSystemRenderer>()).material = GenshinImpactOverhaul.AlhaithamLaserSmoke;
					((Component)val3.Find("Hit Particles 1")).GetComponent<ParticleSystemRenderer>().trailMaterial = GenshinImpactOverhaul.AlhaithamLaserVariant;
					((Component)val3.Find("Hit Particles 2")).GetComponent<ParticleSystemRenderer>().trailMaterial = GenshinImpactOverhaul.AlhaithamLaser;
					((Component)val3.Find("Hit Particles White 1")).GetComponent<ParticleSystemRenderer>().trailMaterial = GenshinImpactOverhaul.AlhaithamLaserInside;
				}
			}
		}
	}
	[HarmonyPatch(typeof(EnemyBeamerAnim))]
	internal class BeamerAnimPatch
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		public static void ReplaceAnimator(EnemyBeamerAnim __instance)
		{
			if (!GenshinImpactOverhaul.AlhaithamReplacement.Value)
			{
				return;
			}
			FieldInfo field = typeof(EnemyBeamerAnim).GetField("animator", BindingFlags.Instance | BindingFlags.NonPublic);
			if (field == null)
			{
				return;
			}
			object? value = field.GetValue(__instance);
			Animator val = (Animator)((value is Animator) ? value : null);
			Transform val2 = ((Component)__instance).transform.Find("Alhaitham(Clone)");
			if (!((Object)(object)val2 == (Object)null))
			{
				Animator component = ((Component)val2).GetComponent<Animator>();
				if ((Object)(object)val != (Object)(object)component)
				{
					field.SetValue(__instance, component);
				}
			}
		}

		[HarmonyPatch("Update")]
		[HarmonyPostfix]
		public static void FixFloating(EnemyBeamerAnim __instance)
		{
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			if (GenshinImpactOverhaul.AlhaithamReplacement.Value)
			{
				((Component)__instance).transform.Find("Alhaitham(Clone)").localPosition = new Vector3(0f, -0.3f, 0f);
				((Component)__instance).transform.Find("Alhaitham(Clone)").localRotation = Quaternion.identity;
				__instance.controller.laserStartTransform.localPosition = new Vector3(0f, -0.4f, 1f);
			}
		}
	}
	[HarmonyPatch(typeof(EnemyBowtie))]
	internal class EnemyBowtiePatch
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		private static void ReplaceAssets(EnemyBowtie __instance, ref EnemyBowtieAnim ___anim)
		{
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0065: Unknown result type (might be due to invalid IL or missing references)
			//IL_0079: Unknown result type (might be due to invalid IL or missing references)
			if (GenshinImpactOverhaul.BarbaraReplacement.Value)
			{
				Modifiers.TurnOffRenderers(((Component)__instance).transform);
				GameObject val = Object.Instantiate<GameObject>(GenshinImpactOverhaul.BarbaraPrefab);
				val.transform.parent = ((Component)__instance).transform.parent.Find("Visuals");
				Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, -0.5f, 0f), new Vector3(1.3f, 1.3f, 1.3f));
				val.AddComponent<BarbaraAnimationEventHandler>();
				((Component)((Component)__instance).transform.parent.parent).GetComponent<EnemyParent>().enemyName = "Barbara";
				___anim.deathSound.Sounds[0] = GenshinImpactOverhaul.BarbaraDeath;
				___anim.despawnSound.Sounds[0] = GenshinImpactOverhaul.BarbaraDespawn;
				___anim.GroanLoopSound.Sounds[0] = GenshinImpactOverhaul.BarbaraIdleLoop;
				___anim.hurtSound.Sounds[0] = GenshinImpactOverhaul.BarbaraHurt1;
				___anim.hurtSound.Sounds[1] = GenshinImpactOverhaul.BarbaraHurt2;
				___anim.hurtSound.Sounds[2] = GenshinImpactOverhaul.BarbaraHurt3;
				___anim.jumpSound.Sounds[0] = GenshinImpactOverhaul.BarbaraJump;
				___anim.yellEndSoundGlobal.Sounds[0] = GenshinImpactOverhaul.BarbaraScreamEndGlobal;
				___anim.yellStartSoundGlobal.Sounds[0] = GenshinImpactOverhaul.BarbaraScreamStartGlobal;
				___anim.YellLoopSound.Sounds[0] = GenshinImpactOverhaul.BarbaraScreamLoopLocal;
				___anim.YellLoopSoundGlobal.Sounds[0] = GenshinImpactOverhaul.BarbaraScreamLoopGlobal;
				___anim.stunSound.Sounds[0] = GenshinImpactOverhaul.BarbaraStunnedLoop;
			}
		}
	}
	[HarmonyPatch(typeof(EnemyBowtieAnim))]
	internal class BowtieAnimPatch
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		public static void ReplaceAnimator(EnemyBowtieAnim __instance)
		{
			if (!GenshinImpactOverhaul.BarbaraReplacement.Value)
			{
				return;
			}
			FieldInfo field = typeof(EnemyBowtieAnim).GetField("animator", BindingFlags.Instance | BindingFlags.NonPublic);
			if (field == null)
			{
				return;
			}
			object? value = field.GetValue(__instance);
			Animator val = (Animator)((value is Animator) ? value : null);
			Transform val2 = ((Component)__instance).transform.Find("Barbara(Clone)");
			if (!((Object)(object)val2 == (Object)null))
			{
				Animator component = ((Component)val2).GetComponent<Animator>();
				if ((Object)(object)val != (Object)(object)component)
				{
					field.SetValue(__instance, component);
				}
			}
		}

		[HarmonyPatch("Update")]
		[HarmonyPostfix]
		public static void GetYellingStage(EnemyBowtieAnim __instance)
		{
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_004f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0055: Invalid comparison between Unknown and I4
			if (GenshinImpactOverhaul.BarbaraReplacement.Value)
			{
				Animator component = ((Component)((Component)__instance).transform).GetComponent<Animator>();
				((Component)__instance).transform.Find("Barbara(Clone)").localPosition = new Vector3(0f, -0.5f, 0f);
				if ((int)__instance.controller.currentState == 5)
				{
					component.SetBool("yell", true);
					return;
				}
				component.SetBool("yell", false);
				__instance.particleYell.Stop();
				__instance.particleYellSmall.Stop();
			}
		}
	}
	[HarmonyPatch(typeof(EnemyCeilingEye))]
	internal class EnemyCeilingEyePatch
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		private static void ReplaceAssets(EnemyCeilingEye __instance, ref EnemyCeilingEyeAnim ___eyeAnim)
		{
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0065: Unknown result type (might be due to invalid IL or missing references)
			//IL_0079: Unknown result type (might be due to invalid IL or missing references)
			if (GenshinImpactOverhaul.NahidaReplacement.Value)
			{
				Modifiers.TurnOffRenderers(((Component)__instance).transform);
				GameObject val = Object.Instantiate<GameObject>(GenshinImpactOverhaul.NahidaPrefab);
				val.transform.parent = ((Component)__instance).transform.parent.Find("Visual");
				Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, -0.13f, 0f), new Vector3(1f, 1f, 1f));
				val.AddComponent<NahidaAnimationEventHandler>();
				___eyeAnim.sfxBlink.Sounds[0] = GenshinImpactOverhaul.NahidaBlink1;
				___eyeAnim.sfxBlink.Sounds[1] = GenshinImpactOverhaul.NahidaBlink2;
				___eyeAnim.sfxBlink.Sounds[2] = GenshinImpactOverhaul.NahidaBlink3;
				___eyeAnim.sfxDeath.Sounds[0] = GenshinImpactOverhaul.NahidaDeath;
				___eyeAnim.sfxDespawn.Sounds[0] = GenshinImpactOverhaul.NahidaDespawn;
				___eyeAnim.sfxLaserBeam.Sounds[0] = GenshinImpactOverhaul.NahidaLaser;
				___eyeAnim.sfxLaserBuildup.Sounds[0] = GenshinImpactOverhaul.NahidaLaserBuildup;
				___eyeAnim.sfxSpawn.Sounds[0] = GenshinImpactOverhaul.NahidaSpawn;
				___eyeAnim.sfxStaringStart = GenshinImpactOverhaul.NahidaStaringStart;
				___eyeAnim.sfxTwitchLoop.Sounds[0] = GenshinImpactOverhaul.NahidaStareLoopTwitching;
				___eyeAnim.sfxStareLoop.Sounds[0] = GenshinImpactOverhaul.NahidaStareLoop;
				((Component)((Component)__instance).transform.parent.parent).GetComponent<EnemyParent>().enemyName = "Nahida";
				__instance.eyeTransform = ((Component)__instance).transform.parent.Find("Visual").Find("NahidaHead(Clone)");
			}
		}
	}
	[HarmonyPatch(typeof(EnemyCeilingEyeAnim))]
	internal class CeilingEyeAnimPatch
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		public static void ReplaceAnimator(EnemyCeilingEyeAnim __instance)
		{
			if (!GenshinImpactOverhaul.NahidaReplacement.Value)
			{
				return;
			}
			FieldInfo field = typeof(EnemyCeilingEyeAnim).GetField("animator", BindingFlags.Instance | BindingFlags.NonPublic);
			if (field == null)
			{
				return;
			}
			object? value = field.GetValue(__instance);
			Animator val = (Animator)((value is Animator) ? value : null);
			Transform val2 = ((Component)__instance).transform.Find("NahidaHead(Clone)");
			if (!((Object)(object)val2 == (Object)null))
			{
				Animator component = ((Component)val2).GetComponent<Animator>();
				if ((Object)(object)val != (Object)(object)component)
				{
					field.SetValue(__instance, component);
				}
			}
		}
	}
	[HarmonyPatch(typeof(EnemyHeadController))]
	internal class EnemyheadControllerPatch
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		private static void ReplaceAssets(EnemyHeadController __instance, ref EnemyHeadAnimationSystem ___AnimationSystem)
		{
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: Unknown result type (might be due to invalid IL or missing references)
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			if (GenshinImpactOverhaul.GorouReplacement.Value)
			{
				Modifiers.TurnOffRenderers(((Component)__instance).gameObject.transform);
				GameObject val = Object.Instantiate<GameObject>(GenshinImpactOverhaul.GorouPrefab);
				val.transform.parent = ((Component)__instance).transform.parent.Find("Mesh").Find("Animation System");
				Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, -2.73f, 0f), new Vector3(4f, 4f, 4f));
				val.AddComponent<GorouAnimationEventHandler>();
				((Component)((Component)__instance).transform.parent.parent).GetComponent<EnemyParent>().enemyName = "Gorou";
				__instance.DeathSound.Sounds[0] = GenshinImpactOverhaul.GorouDeath;
				___AnimationSystem.BiteStart.Sounds[0] = GenshinImpactOverhaul.GorouBiteStart1;
				___AnimationSystem.BiteStart.Sounds[1] = GenshinImpactOverhaul.GorouBiteStart2;
				___AnimationSystem.BiteStart.Sounds[2] = GenshinImpactOverhaul.GorouBiteStart3;
				___AnimationSystem.ChaseBegin.Sounds[0] = GenshinImpactOverhaul.GorouChaseBegin;
				___AnimationSystem.ChaseBeginGlobal.Sounds[0] = GenshinImpactOverhaul.GorouChaseBeginGlobal;
				___AnimationSystem.ChaseBeginToChase.Sounds[0] = GenshinImpactOverhaul.GorouChaseBeginToChase;
				___AnimationSystem.ChaseToIdle.Sounds[0] = GenshinImpactOverhaul.GorouChaseToIdle;
				___AnimationSystem.Despawn.Sounds[0] = GenshinImpactOverhaul.GorouDespawn;
				___AnimationSystem.Hurt.Sounds[0] = GenshinImpactOverhaul.GorouHurt1;
				___AnimationSystem.Hurt.Sounds[1] = GenshinImpactOverhaul.GorouHurt2;
				___AnimationSystem.Hurt.Sounds[2] = GenshinImpactOverhaul.GorouHurt3;
				___AnimationSystem.Spawn.Sounds[0] = GenshinImpactOverhaul.GorouSpawn;
				___AnimationSystem.TeethChatter.Sounds[0] = GenshinImpactOverhaul.GorouTeethChatter1;
				___AnimationSystem.TeethChatter.Sounds[1] = GenshinImpactOverhaul.GorouTeethChatter2;
				___AnimationSystem.TeethChatter.Sounds[2] = GenshinImpactOverhaul.GorouTeethChatter3;
				___AnimationSystem.TeethChatter.Sounds[3] = GenshinImpactOverhaul.GorouTeethChatter4;
				___AnimationSystem.TeethChatter.Sounds[4] = GenshinImpactOverhaul.GorouTeethChatter5;
			}
		}
	}
	[HarmonyPatch(typeof(EnemyHeadAnimationSystem))]
	internal class EnemyHeadAnimationSystemPatch
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		public static void ReplaceAnimator(EnemyHeadAnimationSystem __instance)
		{
			if (GenshinImpactOverhaul.GorouReplacement.Value)
			{
				((Behaviour)((Component)__instance.Animator).GetComponent<Animator>()).enabled = false;
				__instance.Animator = ((Component)((Component)__instance).transform.Find("GorouHead(Clone)")).gameObject.GetComponent<Animator>();
			}
		}
	}
	[HarmonyPatch(typeof(EnemyDuck))]
	internal class EnemyDuckPatch
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		private static void ReplaceAssets(EnemyDuck __instance, ref EnemyDuckAnim ___anim)
		{
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Unknown result type (might be due to invalid IL or missing references)
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			if (GenshinImpactOverhaul.TapirReplacement.Value)
			{
				Modifiers.TurnOffRenderers(((Component)__instance).gameObject.transform);
				GameObject val = Object.Instantiate<GameObject>(GenshinImpactOverhaul.TapirPrefab);
				val.transform.parent = ((Component)__instance).transform.parent.Find("Visuals");
				Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, -0.28f, 0f), new Vector3(10f, 10f, 10f));
				val.AddComponent<TapirAnimationEventHandler>();
				((Component)((Component)__instance).transform.parent.parent).GetComponent<EnemyParent>().enemyName = "Tapir";
				___anim.attackLoopSound.Sounds[0] = GenshinImpactOverhaul.TapirAttackLoop;
				___anim.deathSound.Sounds[0] = GenshinImpactOverhaul.TapirDeath;
				___anim.hurtSound.Sounds[0] = GenshinImpactOverhaul.TapirHurt1;
				___anim.hurtSound.Sounds[1] = GenshinImpactOverhaul.TapirHurt2;
				___anim.hurtSound.Sounds[2] = GenshinImpactOverhaul.TapirHurt3;
				___anim.noticeSound.Sounds[0] = GenshinImpactOverhaul.TapirNotice1;
				___anim.noticeSound.Sounds[1] = GenshinImpactOverhaul.TapirNotice2;
				___anim.noticeSound.Sounds[2] = GenshinImpactOverhaul.TapirNotice3;
				___anim.quackSound.Sounds[0] = GenshinImpactOverhaul.TapirQuack1;
				___anim.quackSound.Sounds[1] = GenshinImpactOverhaul.TapirQuack2;
				___anim.quackSound.Sounds[2] = GenshinImpactOverhaul.TapirQuack3;
				___anim.stunStopSound.Sounds[0] = GenshinImpactOverhaul.TapirStunEnd1;
				___anim.stunStopSound.Sounds[1] = GenshinImpactOverhaul.TapirStunEnd2;
				___anim.stunStopSound.Sounds[2] = GenshinImpactOverhaul.TapirStunEnd3;
				___anim.stunSound.Sounds[0] = GenshinImpactOverhaul.TapirStunLoop;
				___anim.biteSound.Sounds[0] = GenshinImpactOverhaul.TapirBite1;
				___anim.biteSound.Sounds[1] = GenshinImpactOverhaul.TapirBite2;
				___anim.biteSound.Sounds[2] = GenshinImpactOverhaul.TapirBite3;
				___anim.biteSound.Sounds[3] = GenshinImpactOverhaul.TapirBite4;
				___anim.biteSound.Sounds[4] = GenshinImpactOverhaul.TapirBite5;
				___anim.biteSound.Sounds[5] = GenshinImpactOverhaul.TapirBite6;
			}
		}
	}
	[HarmonyPatch(typeof(EnemyDuckAnim))]
	internal class EnemyDuckAnimPatch
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		public static void ReplaceAnimator(EnemyDuckAnim __instance)
		{
			if (!GenshinImpactOverhaul.TapirReplacement.Value)
			{
				return;
			}
			((Behaviour)((Component)__instance).gameObject.GetComponent<Animator>()).enabled = false;
			((Component)((Component)__instance).gameObject.transform.Find("Hurt Collider")).GetComponent<HurtCollider>().playerDamageCooldown = 0.25f;
			FieldInfo field = typeof(EnemyDuckAnim).GetField("animator", BindingFlags.Instance | BindingFlags.NonPublic);
			if (field == null)
			{
				return;
			}
			object? value = field.GetValue(__instance);
			Animator val = (Animator)((value is Animator) ? value : null);
			Transform val2 = ((Component)__instance).transform.Find("Tapir(Clone)");
			if (!((Object)(object)val2 == (Object)null))
			{
				Animator component = ((Component)val2).GetComponent<Animator>();
				if ((Object)(object)val != (Object)(object)component)
				{
					field.SetValue(__instance, component);
				}
			}
		}

		[HarmonyPatch("Update")]
		[HarmonyPostfix]
		public static void Update(EnemyDuckAnim __instance)
		{
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			if (GenshinImpactOverhaul.TapirReplacement.Value)
			{
				((Component)__instance).transform.Find("Tapir(Clone)").localScale = new Vector3(10f, 10f, 10f);
			}
		}
	}
	[HarmonyPatch(typeof(EnemyFloater))]
	internal class EnemyFloaterPatch
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		private static void ReplaceAssets(EnemyFloater __instance, ref EnemyFloaterAnim ___animator)
		{
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Unknown result type (might be due to invalid IL or missing references)
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			//IL_024a: Unknown result type (might be due to invalid IL or missing references)
			if (GenshinImpactOverhaul.XianyunReplacement.Value)
			{
				Modifiers.TurnOffRenderers(((Component)__instance).gameObject.transform);
				GameObject val = Object.Instantiate<GameObject>(GenshinImpactOverhaul.XianyunPrefab);
				val.transform.parent = ((Component)__instance).transform.parent.Find("[VISUALS]");
				Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f));
				val.AddComponent<XianyunAnimationEventHandler>();
				((Component)((Component)__instance).transform.parent.parent).GetComponent<EnemyParent>().enemyName = "Xianyun";
				Transform val2 = ((Component)__instance).transform.parent.Find("[VISUALS]").Find("Mesh").Find("Offset Rotation")
					.Find("[BODY]")
					.Find("________________________________")
					.Find("ANIM body")
					.Find("[HEAD]")
					.Find("________________________________")
					.Find("ANIM head")
					.Find("code head_source")
					.Find("________________________________")
					.Find("ANIM head_raw")
					.Find("Floater Attack")
					.Find("Sphere Effects");
				((Component)((Component)val2).transform.Find("Sphere Effect 3")).GetComponent<Renderer>().enabled = true;
				((Component)((Component)val2).transform.Find("Sphere Effect 3")).GetComponent<Renderer>().material = GenshinImpactOverhaul.XianyunMaterial;
				((Component)((Component)val2).transform.Find("Sphere Effect 2")).GetComponent<Renderer>().enabled = true;
				((Component)((Component)val2).transform.Find("Sphere Effect 2")).GetComponent<Renderer>().material = GenshinImpactOverhaul.XianyunMaterial;
				((Component)((Component)val2).transform.Find("Sphere Effect 1")).GetComponent<Renderer>().enabled = true;
				((Component)((Component)val2).transform.Find("Sphere Effect 1")).GetComponent<Renderer>().material = GenshinImpactOverhaul.XianyunMaterial;
				Color color = default(Color);
				color.r = 0.4274509f;
				color.g = 0.9490196f;
				color.b = 0.730774f;
				color.a = 1f;
				((Component)((Component)val2).transform.Find("Sphere Effect 1").Find("Point Light")).GetComponent<Light>().color = color;
				___animator.sfxAttackDownGlobal.Sounds[0] = GenshinImpactOverhaul.XianyunAttackDownGlobal;
				___animator.sfxAttackDownLocal.Sounds[0] = GenshinImpactOverhaul.XianyunAttackDown;
				___animator.sfxDeath.Sounds[0] = GenshinImpactOverhaul.XianyunDeath;
				___animator.sfxHurt.Sounds[0] = GenshinImpactOverhaul.XianyunHurt1;
				___animator.sfxHurt.Sounds[1] = GenshinImpactOverhaul.XianyunHurt2;
				___animator.sfxHurt.Sounds[2] = GenshinImpactOverhaul.XianyunHurt3;
				___animator.sfxStunnedLoop.Sounds[0] = GenshinImpactOverhaul.XianyunStunnedLoop;
				___animator.sfxChargeAttackLoop.Sounds[0] = GenshinImpactOverhaul.XianyunChargeAttackLoop;
				___animator.sfxChargeAttackStart.Sounds[0] = GenshinImpactOverhaul.XianyunChargeAttack;
				___animator.sfxDelayAttackGlobal.Sounds[0] = GenshinImpactOverhaul.XianyunClapGlobal;
				___animator.sfxDelayAttackLocal.Sounds[0] = GenshinImpactOverhaul.XianyunClapLocal;
				___animator.sfxDelayAttackLoop.Sounds[0] = GenshinImpactOverhaul.XianyunDelayAttack;
			}
		}
	}
	[HarmonyPatch(typeof(EnemyFloaterAnim))]
	internal class EnemyFloaterAnimPatch
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		public static void ReplaceAnimator(EnemyFloaterAnim __instance)
		{
			if (!GenshinImpactOverhaul.XianyunReplacement.Value)
			{
				return;
			}
			FieldInfo field = typeof(EnemyFloaterAnim).GetField("animator", BindingFlags.Instance | BindingFlags.NonPublic);
			if (field == null)
			{
				return;
			}
			object? value = field.GetValue(__instance);
			Animator val = (Animator)((value is Animator) ? value : null);
			Transform val2 = ((Component)__instance).transform.Find("Xianyun(Clone)");
			if (!((Object)(object)val2 == (Object)null))
			{
				Animator component = ((Component)val2).GetComponent<Animator>();
				if ((Object)(object)val != (Object)(object)component)
				{
					field.SetValue(__instance, component);
				}
			}
		}

		[HarmonyPatch("Update")]
		[HarmonyPostfix]
		public static void Update(EnemyFloaterAnim __instance)
		{
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			if (GenshinImpactOverhaul.XianyunReplacement.Value)
			{
				((Component)__instance).transform.Find("Xianyun(Clone)").localPosition = new Vector3(0f, 0f, 0f);
			}
		}
	}
	[HarmonyPatch(typeof(EnemyGnome))]
	internal class EnemyGnomePatch
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		private static void ReplaceAssets(EnemyGnome __instance, ref EnemyGnomeAnim ___enemyGnomeAnim)
		{
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_0099: Unknown result type (might be due to invalid IL or missing references)
			if (GenshinImpactOverhaul.MikaReplacement.Value)
			{
				Modifiers.TurnOffRenderers(((Component)__instance).transform);
				EnemyGnomeStunFly component = ((Component)((Component)__instance).transform.parent.parent.Find("Stun Fly Loop")).GetComponent<EnemyGnomeStunFly>();
				GameObject val = Object.Instantiate<GameObject>(GenshinImpactOverhaul.MikaPrefab);
				val.transform.parent = ((Component)__instance).transform.parent.Find("[VISUALS]");
				Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, -0.13f, 0f), new Vector3(0.47f, 0.47f, 0.47f));
				val.AddComponent<MikaAnimationEventHandler>();
				__instance.soundDeath.Sounds[0] = GenshinImpactOverhaul.MikaSoundDeath1;
				__instance.soundDeath.Sounds[1] = GenshinImpactOverhaul.MikaSoundDeath2;
				__instance.soundDeath.Sounds[2] = GenshinImpactOverhaul.MikaSoundDeath3;
				__instance.soundHurt.Sounds[0] = GenshinImpactOverhaul.MikaSoundHurt1;
				__instance.soundHurt.Sounds[1] = GenshinImpactOverhaul.MikaSoundHurt2;
				__instance.soundHurt.Sounds[2] = GenshinImpactOverhaul.MikaSoundHurt3;
				___enemyGnomeAnim.soundDespawn.Sounds[0] = GenshinImpactOverhaul.MikaSoundDespawn;
				___enemyGnomeAnim.soundIdleBreaker.Sounds[0] = GenshinImpactOverhaul.MikaSoundIdle1;
				___enemyGnomeAnim.soundIdleBreaker.Sounds[1] = GenshinImpactOverhaul.MikaSoundIdle2;
				___enemyGnomeAnim.soundIdleBreaker.Sounds[2] = GenshinImpactOverhaul.MikaSoundIdle3;
				___enemyGnomeAnim.soundJump.Sounds[0] = GenshinImpactOverhaul.MikaSoundJump;
				___enemyGnomeAnim.soundNotice.Sounds[0] = GenshinImpactOverhaul.MikaSoundNotice1;
				___enemyGnomeAnim.soundNotice.Sounds[1] = GenshinImpactOverhaul.MikaSoundNotice2;
				___enemyGnomeAnim.soundNotice.Sounds[2] = GenshinImpactOverhaul.MikaSoundNotice3;
				___enemyGnomeAnim.soundPickaxeTell.Sounds[0] = GenshinImpactOverhaul.MikaSoundPickaxeTell;
				___enemyGnomeAnim.soundSpawn.Sounds[0] = GenshinImpactOverhaul.MikaSoundSpawn;
				___enemyGnomeAnim.soundStun.Sounds[0] = GenshinImpactOverhaul.MikaStunIntro1;
				___enemyGnomeAnim.soundStun.Sounds[1] = GenshinImpactOverhaul.MikaStunIntro2;
				___enemyGnomeAnim.soundStun.Sounds[2] = GenshinImpactOverhaul.MikaStunIntro3;
				___enemyGnomeAnim.soundStunOutro.Sounds[0] = GenshinImpactOverhaul.MikaStunOutro1;
				___enemyGnomeAnim.soundStunOutro.Sounds[1] = GenshinImpactOverhaul.MikaStunOutro2;
				___enemyGnomeAnim.soundStunOutro.Sounds[2] = GenshinImpactOverhaul.MikaStunOutro3;
				component.sound.Sounds[0] = GenshinImpactOverhaul.MikaSoundStunFlyLoop;
				((Component)((Component)__instance).transform.parent.parent).GetComponent<EnemyParent>().enemyName = "Mika";
			}
		}
	}
	[HarmonyPatch(typeof(EnemyGnomeAnim))]
	internal class GnomeAnimPatch
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		public static void ReplaceAnimator(EnemyGnomeAnim __instance)
		{
			if (!GenshinImpactOverhaul.MikaReplacement.Value)
			{
				return;
			}
			FieldInfo field = typeof(EnemyGnomeAnim).GetField("animator", BindingFlags.Instance | BindingFlags.NonPublic);
			if (field == null)
			{
				return;
			}
			object? value = field.GetValue(__instance);
			Animator val = (Animator)((value is Animator) ? value : null);
			Transform val2 = ((Component)__instance).transform.Find("Mika(Clone)");
			if (!((Object)(object)val2 == (Object)null))
			{
				Animator component = ((Component)val2).GetComponent<Animator>();
				if ((Object)(object)val != (Object)(object)component)
				{
					field.SetValue(__instance, component);
				}
			}
		}
	}
	[HarmonyPatch(typeof(EnemyHunter))]
	internal class EnemyHunterPatch
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		private static void ReplaceAssets(EnemyHunter __instance, ref EnemyHunterAnim ___enemyHunterAnim)
		{
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0065: Unknown result type (might be due to invalid IL or missing references)
			//IL_0079: Unknown result type (might be due to invalid IL or missing references)
			if (GenshinImpactOverhaul.ClorindeReplacement.Value)
			{
				Modifiers.TurnOffRenderers(((Component)__instance).transform);
				GameObject val = Object.Instantiate<GameObject>(GenshinImpactOverhaul.ClorindePrefab);
				val.transform.parent = ((Component)__instance).transform.parent.Find("[VISUALS]");
				Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f));
				val.AddComponent<ClorindeAnimationEventHandler>();
				__instance.soundDeath.Sounds[0] = GenshinImpactOverhaul.ClorindeSoundDeath1;
				__instance.soundDeath.Sounds[1] = GenshinImpactOverhaul.ClorindeSoundDeath2;
				__instance.soundDeath.Sounds[2] = GenshinImpactOverhaul.ClorindeSoundDeath3;
				__instance.soundHurt.Sounds[0] = GenshinImpactOverhaul.ClorindeSoundHurt1;
				__instance.soundHurt.Sounds[1] = GenshinImpactOverhaul.ClorindeSoundHurt2;
				__instance.soundHurt.Sounds[2] = GenshinImpactOverhaul.ClorindeSoundHurt3;
				___enemyHunterAnim.aimStartClips[0] = GenshinImpactOverhaul.ClorindeSoundAim1;
				___enemyHunterAnim.aimStartClips[1] = GenshinImpactOverhaul.ClorindeSoundAim2;
				___enemyHunterAnim.aimStartClips[2] = GenshinImpactOverhaul.ClorindeSoundAim3;
				___enemyHunterAnim.aimStartGlobalClips[0] = GenshinImpactOverhaul.ClorindeSoundAimGlobal1;
				___enemyHunterAnim.aimStartGlobalClips[1] = GenshinImpactOverhaul.ClorindeSoundAimGlobal2;
				___enemyHunterAnim.aimStartGlobalClips[2] = GenshinImpactOverhaul.ClorindeSoundAimGlobal3;
				___enemyHunterAnim.soundAimStart.Sounds[0] = GenshinImpactOverhaul.ClorindeSoundAim1;
				___enemyHunterAnim.soundAimStartGlobal.Sounds[0] = GenshinImpactOverhaul.ClorindeSoundAimGlobal1;
				___enemyHunterAnim.soundDespawn.Sounds[0] = GenshinImpactOverhaul.ClorindeSoundDespawn;
				___enemyHunterAnim.soundSpawn.Sounds[0] = GenshinImpactOverhaul.ClorindeSoundSpawn;
				___enemyHunterAnim.soundLeaveStart.Sounds[0] = GenshinImpactOverhaul.ClorindeSoundLeave1;
				___enemyHunterAnim.soundLeaveStart.Sounds[1] = GenshinImpactOverhaul.ClorindeSoundLeave2;
				___enemyHunterAnim.soundLeaveStart.Sounds[2] = GenshinImpactOverhaul.ClorindeSoundLeave3;
				((Component)((Component)__instance).transform.parent.parent).GetComponent<EnemyParent>().enemyName = "Clorinde";
			}
		}
	}
	[HarmonyPatch(typeof(EnemyHunterAnim))]
	internal class HunterAnimPatch
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		public static void ReplaceAnimator(EnemyHunterAnim __instance)
		{
			if (!GenshinImpactOverhaul.ClorindeReplacement.Value)
			{
				return;
			}
			FieldInfo field = typeof(EnemyHunterAnim).GetField("animator", BindingFlags.Instance | BindingFlags.NonPublic);
			if (field == null)
			{
				return;
			}
			object? value = field.GetValue(__instance);
			Animator val = (Animator)((value is Animator) ? value : null);
			Transform val2 = ((Component)__instance).transform.Find("Clorinde(Clone)");
			if (!((Object)(object)val2 == (Object)null))
			{
				Animator component = ((Component)val2).GetComponent<Animator>();
				if ((Object)(object)val != (Object)(object)component)
				{
					field.SetValue(__instance, component);
				}
			}
		}
	}
	[HarmonyPatch(typeof(EnemyRobe))]
	internal class EnemyRobePatch
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		private static void ReplaceAssets(EnemyRobe __instance, ref EnemyRobeAnim ___robeAnim)
		{
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0065: Unknown result type (might be due to invalid IL or missing references)
			//IL_0079: Unknown result type (might be due to invalid IL or missing references)
			if (GenshinImpactOverhaul.HuTaoReplacement.Value)
			{
				Modifiers.TurnOffRenderers(((Component)__instance).transform);
				GameObject val = Object.Instantiate<GameObject>(GenshinImpactOverhaul.HuTaoPrefab);
				val.transform.parent = ((Component)__instance).transform.parent.Find("Visual");
				Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, 0.111f, 0f), new Vector3(1.2f, 1.2f, 1.2f));
				val.AddComponent<HuTaoAnimationEventHandler>();
				((Component)((Component)__instance).transform.parent.parent).GetComponent<EnemyParent>().enemyName = "Hu Tao";
				___robeAnim.sfxAttack.Sounds[0] = GenshinImpactOverhaul.HutaoAttack;
				___robeAnim.sfxAttackGlobal.Sounds[0] = GenshinImpactOverhaul.HutaoAttackGlobal;
				___robeAnim.sfxAttackUnder.Sounds[0] = GenshinImpactOverhaul.HutaoLookUnderScream;
				___robeAnim.sfxAttackUnderGlobal.Sounds[0] = GenshinImpactOverhaul.HutaoLookUnderScreamGlobal;
				___robeAnim.sfxHandAggressive.Sounds[0] = GenshinImpactOverhaul.HutaoCrackingFingersAggresive;
				___robeAnim.sfxHandIdle.Sounds[0] = GenshinImpactOverhaul.HutaoCrackingFingers;
				___robeAnim.sfxHurt.Sounds[0] = GenshinImpactOverhaul.HutaoHurt1;
				___robeAnim.sfxHurt.Sounds[1] = GenshinImpactOverhaul.HutaoHurt2;
				___robeAnim.sfxHurt.Sounds[2] = GenshinImpactOverhaul.HutaoHurt3;
				___robeAnim.sfxIdleBreak.Sounds[0] = GenshinImpactOverhaul.HutaoNoise1;
				___robeAnim.sfxIdleBreak.Sounds[1] = GenshinImpactOverhaul.HutaoNoise2;
				___robeAnim.sfxIdleBreak.Sounds[2] = GenshinImpactOverhaul.HutaoNoise3;
				___robeAnim.sfxIdleBreak.Sounds[3] = GenshinImpactOverhaul.HutaoNoise4;
				___robeAnim.sfxStunStart.Sounds[0] = GenshinImpactOverhaul.HutaoStunStart;
				___robeAnim.sfxTargetPlayerLoop.Sounds[0] = GenshinImpactOverhaul.HutaoTargetingPlayer;
				___robeAnim.sfxStunLoop.Sounds[0] = GenshinImpactOverhaul.HutaoStunnedLoop;
			}
		}
	}
	[HarmonyPatch(typeof(EnemyRobeAnim))]
	internal class RobeAnimPatch
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		public static void ReplaceAnimator(EnemyRobeAnim __instance)
		{
			if (!GenshinImpactOverhaul.HuTaoReplacement.Value)
			{
				return;
			}
			((Behaviour)((Component)__instance).gameObject.GetComponent<Animator>()).enabled = false;
			FieldInfo field = typeof(EnemyRobeAnim).GetField("animator", BindingFlags.Instance | BindingFlags.NonPublic);
			if (field == null)
			{
				return;
			}
			object? value = field.GetValue(__instance);
			Animator val = (Animator)((value is Animator) ? value : null);
			Transform v