using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Reflection; using System.Reflection.Emit; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using GenshinImpactOverhaulRepo; using GenshinImpactOverhaulRepo_AnimationEventHandler; using HarmonyLib; using Microsoft.CodeAnalysis; 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: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } [RequireComponent(typeof(Rigidbody))] public class DiceController : MonoBehaviour { public float spinDuration = 4.8f; public float preAlignDuration = 0.6f; public float snapBlendTime = 0.15f; public float displayDuration = 2.4f; public float torqueForce = 40f; public float angularDrag = 0.05f; public float floatAmplitude = 0.12f; public float floatFrequency = 2f; public Transform snapTarget; private Vector3 startPosition; private Rigidbody rb; private int forcedFace = 0; private Quaternion snapTargetRot; private Quaternion snapStartRot; private ParticleSystem[] diceSelectSystems; public void Init(Transform spawnPoint, Transform faceTarget, int forcedFaceResult = 0) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) forcedFace = forcedFaceResult; snapTarget = faceTarget; startPosition = spawnPoint.position; ((Component)this).transform.position = startPosition; ((Component)this).transform.rotation = Random.rotation; rb = ((Component)this).GetComponent(); if ((Object)(object)rb == (Object)null) { rb = ((Component)this).gameObject.AddComponent(); } rb.useGravity = false; rb.interpolation = (RigidbodyInterpolation)1; rb.collisionDetectionMode = (CollisionDetectionMode)2; rb.isKinematic = false; rb.angularDrag = angularDrag; rb.angularVelocity = Random.onUnitSphere * torqueForce; CacheDiceSelectParticleSystems(); StopDiceSelectSystems(); ((MonoBehaviour)this).StartCoroutine(LifecycleCoroutine()); } private void CacheDiceSelectParticleSystems() { //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Expected O, but got Unknown Transform val = ((Component)this).transform.Find("DiceSelect"); if ((Object)(object)val == (Object)null) { foreach (Transform item in ((Component)this).transform) { Transform parent = item; Transform val2 = FindChildRecursive(parent, "DiceSelect"); if ((Object)(object)val2 != (Object)null) { val = val2; break; } } } if ((Object)(object)val != (Object)null) { diceSelectSystems = ((Component)val).GetComponentsInChildren(true); return; } ParticleSystem[] componentsInChildren = ((Component)this).GetComponentsInChildren(true); List list = new List(); ParticleSystem[] array = componentsInChildren; foreach (ParticleSystem val3 in array) { if (((Object)((Component)val3).gameObject).name == "DiceSelect") { list.Add(val3); } } diceSelectSystems = (ParticleSystem[])((list.Count > 0) ? ((Array)list.ToArray()) : ((Array)new ParticleSystem[0])); } private Transform FindChildRecursive(Transform parent, string name) { if (((Object)parent).name == name) { return parent; } for (int i = 0; i < parent.childCount; i++) { Transform val = FindChildRecursive(parent.GetChild(i), name); if ((Object)(object)val != (Object)null) { return val; } } return null; } private void StopDiceSelectSystems() { if (diceSelectSystems == null || diceSelectSystems.Length == 0) { return; } ParticleSystem[] array = diceSelectSystems; foreach (ParticleSystem val in array) { if (!((Object)(object)val == (Object)null)) { val.Stop(true, (ParticleSystemStopBehavior)0); ((Component)val).gameObject.SetActive(true); } } } private void PlayDiceSelectSystems() { if (diceSelectSystems == null || diceSelectSystems.Length == 0) { return; } ParticleSystem[] array = diceSelectSystems; foreach (ParticleSystem val in array) { if (!((Object)(object)val == (Object)null)) { val.Clear(true); val.Play(true); } } } private IEnumerator LifecycleCoroutine() { float timer = 0f; while (timer < spinDuration - preAlignDuration - snapBlendTime) { timer += Time.deltaTime; yield return null; } int finalFace = ((forcedFace != 0) ? forcedFace : GetPhysicsFace()); Quaternion targetRot = GetRotationForFace_Toward(finalFace, GetTargetDirection()); float alignTimer = 0f; while (alignTimer < preAlignDuration) { alignTimer += Time.deltaTime; float t = alignTimer / preAlignDuration; float eased = Mathf.SmoothStep(0f, 1f, t); Quaternion blended = Quaternion.Slerp(((Component)this).transform.rotation, targetRot, eased * 0.5f); rb.MoveRotation(blended); yield return null; } rb.velocity = Vector3.zero; rb.angularVelocity = Vector3.zero; rb.isKinematic = true; snapStartRot = ((Component)this).transform.rotation; snapTargetRot = targetRot; if (Quaternion.Dot(snapStartRot, snapTargetRot) < 0f) { snapTargetRot = new Quaternion(0f - snapTargetRot.x, 0f - snapTargetRot.y, 0f - snapTargetRot.z, 0f - snapTargetRot.w); } float snapTimer = 0f; while (snapTimer < snapBlendTime) { snapTimer += Time.deltaTime; float t2 = Mathf.Clamp01(snapTimer / snapBlendTime); ((Component)this).transform.rotation = Quaternion.Slerp(snapStartRot, snapTargetRot, t2); yield return null; } ((Component)this).transform.rotation = snapTargetRot; PlayDiceSelectSystems(); yield return (object)new WaitForSeconds(displayDuration); Object.Destroy((Object)(object)((Component)this).gameObject); } private void FixedUpdate() { //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) float num = Mathf.Sin(Time.time * floatFrequency) * floatAmplitude; Vector3 val = default(Vector3); ((Vector3)(ref val))..ctor(startPosition.x, startPosition.y + num, startPosition.z); if ((Object)(object)rb != (Object)null && !rb.isKinematic) { rb.MovePosition(val); } else { ((Component)this).transform.position = val; } } private Vector3 GetTargetDirection() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)snapTarget == (Object)null) { return Vector3.up; } Vector3 val = snapTarget.position - ((Component)this).transform.position; return ((Vector3)(ref val)).normalized; } private Quaternion GetRotationForFace_Toward(int face, Vector3 targetDirection) { //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: 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_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0087: 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_008d: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_006a: 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) //IL_0099: Unknown result type (might be due to invalid IL or missing references) Vector3 val = (Vector3)(face switch { 1 => Vector3.up, 2 => Vector3.forward, 3 => Vector3.right, 4 => -Vector3.right, 5 => -Vector3.forward, 6 => -Vector3.up, _ => Vector3.up, }); Quaternion rotation = ((Component)this).transform.rotation; Vector3 val2 = rotation * val; Quaternion val3 = Quaternion.FromToRotation(val2, targetDirection); return val3 * rotation; } private int GetPhysicsFace() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003d: 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_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0097: 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) Vector3[] array = (Vector3[])(object)new Vector3[6] { ((Component)this).transform.up, -((Component)this).transform.up, ((Component)this).transform.forward, -((Component)this).transform.forward, ((Component)this).transform.right, -((Component)this).transform.right }; float num = -10f; int num2 = 0; for (int i = 0; i < array.Length; i++) { float num3 = Vector3.Dot(((Vector3)(ref array[i])).normalized, Vector3.up); if (num3 > num) { num = num3; num2 = i; } } return num2 switch { 0 => 1, 1 => 6, 2 => 2, 3 => 5, 4 => 3, 5 => 4, _ => 1, }; } } public class ColliderVisualizer : MonoBehaviour { private CapsuleCollider capsule; private BoxCollider box; private SphereCollider sphere; private GameObject visualObject; private void Awake() { //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Expected O, but got Unknown //IL_0115: Unknown result type (might be due to invalid IL or missing references) capsule = ((Component)this).GetComponent(); box = ((Component)this).GetComponent(); sphere = ((Component)this).GetComponent(); if (!((Object)(object)capsule == (Object)null) || !((Object)(object)box == (Object)null) || !((Object)(object)sphere == (Object)null)) { if ((Object)(object)capsule != (Object)null) { visualObject = GameObject.CreatePrimitive((PrimitiveType)1); } else if ((Object)(object)box != (Object)null) { visualObject = GameObject.CreatePrimitive((PrimitiveType)3); } else { visualObject = GameObject.CreatePrimitive((PrimitiveType)0); } ((Object)visualObject).name = "ColliderDebugVisual"; Object.Destroy((Object)(object)visualObject.GetComponent()); visualObject.transform.SetParent(((Component)this).transform); visualObject.transform.localRotation = Quaternion.identity; Material val = new Material(Shader.Find("Standard")); val.color = new Color(1f, 0f, 0f, 0.25f); val.SetFloat("_Mode", 3f); val.SetInt("_SrcBlend", 5); val.SetInt("_DstBlend", 10); val.SetInt("_ZWrite", 0); val.EnableKeyword("_ALPHABLEND_ON"); val.renderQueue = 3000; ((Renderer)visualObject.GetComponent()).material = val; } } private void LateUpdate() { //IL_003b: 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_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Unknown result type (might be due to invalid IL or missing references) //IL_01e8: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)visualObject == (Object)null) { return; } if ((Object)(object)capsule != (Object)null) { visualObject.transform.localPosition = capsule.center; float height = capsule.height; float radius = capsule.radius; visualObject.transform.localScale = new Vector3(radius * 2f, height / 2f, radius * 2f); if (capsule.direction == 0) { visualObject.transform.localRotation = Quaternion.Euler(0f, 0f, 90f); } else if (capsule.direction == 2) { visualObject.transform.localRotation = Quaternion.Euler(90f, 0f, 0f); } else { visualObject.transform.localRotation = Quaternion.identity; } } else if ((Object)(object)box != (Object)null) { visualObject.transform.localPosition = box.center; visualObject.transform.localRotation = Quaternion.identity; visualObject.transform.localScale = box.size; } else if ((Object)(object)sphere != (Object)null) { visualObject.transform.localPosition = sphere.center; float num = sphere.radius * 2f; visualObject.transform.localRotation = Quaternion.identity; visualObject.transform.localScale = new Vector3(num, num, num); } } } namespace GenshinImpactOverhaulRepo { [BepInPlugin("GenshinImpactOverhaul", "Genshin Impact Overhaul", "2.0.5")] 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 GameObject ColleiPrefab; public static GameObject ColleiCat; public static AudioClip ColleiDeath; public static AudioClip ColleiHeadDetachTell; public static AudioClip ColleiHeadDetach; public static AudioClip ColleiHeadExplosionTell; public static AudioClip ColleiHurt1; public static AudioClip ColleiHurt2; public static AudioClip ColleiHurt3; public static AudioClip ColleiIdleLoop; public static AudioClip ColleiMelee; public static AudioClip ColleiMeleeGlobal; public static AudioClip ColleiJump; public static AudioClip ColleiLand; public static AudioClip ColleiNotice; public static AudioClip ColleiNoticeGlobal; public static AudioClip ColleiHeadLaugh; public static GameObject GanyuPrefab; public static GameObject GanyuBall; public static Material GanyuMaterial; public static AudioClip GanyuAttackSwoosh1; public static AudioClip GanyuAttackSwoosh2; public static AudioClip GanyuDeath1; public static AudioClip GanyuDeath2; public static AudioClip GanyuDeath3; public static AudioClip GanyuHurt1; public static AudioClip GanyuHurt2; public static AudioClip GanyuHurt3; public static AudioClip GanyuIdleBreak1; public static AudioClip GanyuIdleBreak2; public static AudioClip GanyuIdleBreak3; public static AudioClip GanyuIdleBreak4; public static AudioClip GanyuIdleLoop; public static AudioClip GanyuRunAttackLoop; public static AudioClip GanyuInhale1; public static AudioClip GanyuInhale2; public static AudioClip GanyuInhale3; public static AudioClip GanyuJump1; public static AudioClip GanyuJump2; public static AudioClip GanyuJump3; public static AudioClip GanyuLand1; public static AudioClip GanyuLand2; public static AudioClip GanyuLand3; public static AudioClip GanyuNotice1; public static AudioClip GanyuNotice2; public static AudioClip GanyuNotice3; public static GameObject AinoIneffaPrefab; public static AudioClip AinoIneffaBarkSmall1; public static AudioClip AinoIneffaBarkSmall2; public static AudioClip AinoIneffaBarkSmall3; public static AudioClip AinoIneffaBarkBig1; public static AudioClip AinoIneffaBarkBig2; public static AudioClip AinoIneffaBarkBig3; public static AudioClip AinoIneffaBarkBigGlobal1; public static AudioClip AinoIneffaBarkBigGlobal2; public static AudioClip AinoIneffaBarkBigGlobal3; public static AudioClip AinoIneffaBigDeath; public static AudioClip AinoIneffaBigHurt1; public static AudioClip AinoIneffaBigHurt2; public static AudioClip AinoIneffaBigHurt3; public static AudioClip AinoIneffaBigStinger; public static AudioClip AinoIneffaFlyLoop; public static AudioClip AinoIneffaPantingSmall; public static AudioClip AinoIneffaPantingBig; public static AudioClip AinoIneffaSmallHurt1; public static AudioClip AinoIneffaSmallHurt2; public static AudioClip AinoIneffaSmallHurt3; public static AudioClip AinoIneffaPet1; public static AudioClip AinoIneffaPet2; public static AudioClip AinoIneffaPet3; public static AudioClip AinoIneffaSmallDeath; public static AudioClip AinoIneffaStunLoop; public static AudioClip AinoIneffaIdleBreak1; public static AudioClip AinoIneffaIdleBreak2; public static AudioClip AinoIneffaIdleBreak3; public static AudioClip AinoIneffaIdleBreak4; public static AudioClip AinoIneffaTransformationStart; public static Material AinoIneffaMaterial; public static GameObject DottorePrefab; public static AudioClip DottoreAttackTell; public static AudioClip DottoreBackCrackShort1; public static AudioClip DottoreBackCrackShort2; public static AudioClip DottoreBackCrackShort3; public static AudioClip DottoreBackCrackLong1; public static AudioClip DottoreBackCrackLong2; public static AudioClip DottoreBackCrackLong3; public static AudioClip DottoreNeckCrackShort1; public static AudioClip DottoreNeckCrackShort2; public static AudioClip DottoreNeckCrackShort3; public static AudioClip DottoreNeckCrackLong1; public static AudioClip DottoreNeckCrackLong2; public static AudioClip DottoreNeckCrackLong3; public static AudioClip DottoreDeath1; public static AudioClip DottoreDeath2; public static AudioClip DottoreDeath3; public static AudioClip DottoreHurt1; public static AudioClip DottoreHurt2; public static AudioClip DottoreHurt3; public static AudioClip DottoreLoop; public static AudioClip DottoreTarget; public static AudioClip DottoreNonTarget; public static AudioClip DottoreSlap; public static AudioClip DottoreSlapGlobal; public static Sprite DottoreSprite; public static GameObject SkirkPrefab; public static AudioClip SkirkAttack1; public static AudioClip SkirkAttack2; public static AudioClip SkirkAttack3; public static AudioClip SkirkAttackOutro1; public static AudioClip SkirkAttackOutro2; public static AudioClip SkirkAttackOutro3; public static AudioClip SkirkDeath1; public static AudioClip SkirkDeath2; public static AudioClip SkirkDeath3; public static AudioClip SkirkIdle1; public static AudioClip SkirkIdle2; public static AudioClip SkirkIdle3; public static AudioClip SkirkBell1; public static AudioClip SkirkBell2; public static AudioClip SkirkBell3; public static AudioClip SkirkBell1Global; public static AudioClip SkirkBell2Global; public static AudioClip SkirkBell3Global; public static AudioClip SkirkStunLoop; public static AudioClip SkirkTeleport1; public static AudioClip SkirkTeleport2; public static AudioClip SkirkTeleport3; public static AudioClip SkirkBellBuildup; public static AudioClip SkirkBattleLoop; public static AudioClip SkirkWheelSqueak; public static AudioClip SkirkWheelRattle; public static AudioClip SkirkMove1; public static AudioClip SkirkMove2; public static AudioClip SkirkMove3; public static AudioClip SkirkSilence; public static GameObject IfaPrefab; public static Material IfaMaterial; public static Material IfaNothingMaterial; public static Material IfaDeathMaterial; public static AudioClip IfaDeath1; public static AudioClip IfaDeath2; public static AudioClip IfaDeath3; public static AudioClip IfaDropPlayer1; public static AudioClip IfaDropPlayer2; public static AudioClip IfaDropPlayer3; public static AudioClip IfaEyesOff; public static AudioClip IfaEyesOn; public static AudioClip IfaHurt1; public static AudioClip IfaHurt2; public static AudioClip IfaHurt3; public static AudioClip IfaIdle1; public static AudioClip IfaIdle2; public static AudioClip IfaIdle3; public static AudioClip IfaNotice1; public static AudioClip IfaNotice2; public static AudioClip IfaNotice3; public static AudioClip IfaNotice1Global; public static AudioClip IfaNotice2Global; public static AudioClip IfaNotice3Global; public static AudioClip IfaOoglyIdle; public static AudioClip IfaStartCharge1; public static AudioClip IfaStartCharge2; public static AudioClip IfaStartCharge3; public static AudioClip IfaAttackLoop; public static AudioClip IfaHitPlayer1; public static AudioClip IfaHitPlayer2; public static AudioClip IfaHitPlayer3; public static GameObject DurinPrefab; public static AudioClip DurinDeath1; public static AudioClip DurinDeath2; public static AudioClip DurinDeath3; public static AudioClip DurinBigSuck1; public static AudioClip DurinBigSuck2; public static AudioClip DurinBigSuck3; public static AudioClip DurinHurt1; public static AudioClip DurinHurt2; public static AudioClip DurinHurt3; public static AudioClip DurinJump1; public static AudioClip DurinJump2; public static AudioClip DurinJump3; public static AudioClip DurinNotice1; public static AudioClip DurinNotice2; public static AudioClip DurinNotice3; public static AudioClip DurinSlowFlap; public static AudioClip DurinFastFlap; public static GameObject YelanPrefab; public static GameObject YelanDice; public static AudioClip YelanDeath; public static AudioClip YelanRunLoop; public static AudioClip YelanMusic; public static AudioClip YelanMusicRunning; public static AudioClip YelanCloseMouth1; public static AudioClip YelanCloseMouth2; public static AudioClip YelanCloseMouth3; public static AudioClip YelanHurt1; public static AudioClip YelanHurt2; public static AudioClip YelanHurt3; public static AudioClip YelanIdleLoop; public static AudioClip YelanJingleBlack; public static AudioClip YelanJingleBlackGlobal; public static AudioClip YelanJingleWhite; public static AudioClip YelanJingleGreen; public static AudioClip YelanJingleRed; public static AudioClip YelanJingleYellow; public static AudioClip YelanJump; public static AudioClip YelanLand; public static AudioClip YelanNotice; public static AudioClip YelanOpenMouth1; public static AudioClip YelanOpenMouth2; public static AudioClip YelanOpenMouth3; public static AudioClip YelanMusicDeath; public static RuntimeAnimatorController YelanWalk; public static RuntimeAnimatorController YelanRun; public static GameObject KiraraPrefab; public static AudioClip KiraraAttackSwipe; public static AudioClip KiraraBreathingLoop; public static AudioClip KiraraCantReach; public static AudioClip KiraraDeath; public static AudioClip KiraraDropKickEnd; public static AudioClip KiraraDropKickTell; public static AudioClip KiraraGrabHead; public static AudioClip KiraraHurt1; public static AudioClip KiraraHurt2; public static AudioClip KiraraHurt3; public static AudioClip KiraraJump1; public static AudioClip KiraraJump2; public static AudioClip KiraraJump3; public static AudioClip KiraraLand1; public static AudioClip KiraraLand2; public static AudioClip KiraraLand3; public static AudioClip KiraraLongNoise1; public static AudioClip KiraraLongNoise2; public static AudioClip KiraraLongNoise3; public static AudioClip KiraraShortNoise1; public static AudioClip KiraraShortNoise2; public static AudioClip KiraraShortNoise3; public static AudioClip KiraraShortNoise4; public static AudioClip KiraraShortNoise5; public static AudioClip KiraraNotice; public static AudioClip KiraraNoticeGlobal; public static AudioClip KiraraReleaseHeadStart; public static AudioClip KiraraReleaseHeadEnd; public static AudioClip KiraraStunEnd; public static AudioClip KiraraStunLoop; public static AudioClip KiraraStunStart; public static GameObject KiraraParticles; public static GameObject NeferPrefab; public static Material NeferMaterial; public static AudioClip NeferBite1; public static AudioClip NeferBite2; public static AudioClip NeferBite3; public static AudioClip NeferDegrow1; public static AudioClip NeferDegrow2; public static AudioClip NeferDegrow3; public static AudioClip NeferGasTell1; public static AudioClip NeferGasTell2; public static AudioClip NeferGasTell3; public static AudioClip NeferGrow1; public static AudioClip NeferGrow2; public static AudioClip NeferGrow3; public static AudioClip NeferIdleLoop; public static AudioClip NeferScare1; public static AudioClip NeferScare2; public static AudioClip NeferScare3; public static AudioClip NeferScare1Global; public static AudioClip NeferScare2Global; public static AudioClip NeferScare3Global; public static AudioClip NeferStunLoop; public static AudioClip NeferAggrobreaker1; public static AudioClip NeferAggrobreaker2; public static AudioClip NeferAggrobreaker3; public static AudioClip NeferAggroLoop; public static AudioClip NeferAggroStart1; public static AudioClip NeferAggroStart2; public static AudioClip NeferAggroStart3; public static AudioClip NeferDeath1; public static AudioClip NeferDeath2; public static AudioClip NeferDeath3; public static AudioClip NeferGasLoop; public static AudioClip NeferHurt1; public static AudioClip NeferHurt2; public static AudioClip NeferHurt3; public static AudioClip NeferIdlebreaker1; public static AudioClip NeferIdlebreaker2; public static AudioClip NeferIdlebreaker3; public static AudioClip NeferPopAway1; public static AudioClip NeferPopAway2; public static AudioClip NeferPopAway3; public static AudioClip NeferLove1; public static AudioClip NeferLove2; public static AudioClip NeferLove3; public static AudioClip NeferGasStart1; public static AudioClip NeferGasStart2; public static AudioClip NeferGasStart3; public static AudioClip NeferGasStop1; public static AudioClip NeferGasStop2; public static AudioClip NeferGasStop3; public static GameObject FlinsPrefab; public static Texture2D FlinsFootstep; public static AudioClip FlinsBreath1; public static AudioClip FlinsBreath2; public static AudioClip FlinsBreath3; public static AudioClip FlinsBreath4; public static AudioClip FlinsBreath5; public static AudioClip FlinsBreath6; public static AudioClip FlinsBreath7; public static AudioClip FlinsBreath8; public static AudioClip FlinsBreath9; public static AudioClip FlinsBreath10; public static AudioClip FlinsDeath1; public static AudioClip FlinsDeath2; public static AudioClip FlinsDeath3; public static AudioClip FlinsDropPlayer; public static AudioClip FlinsHurt1; public static AudioClip FlinsHurt2; public static AudioClip FlinsHurt3; public static AudioClip FlinsJump1; public static AudioClip FlinsJump2; public static AudioClip FlinsJump3; public static AudioClip FlinsLand1; public static AudioClip FlinsLand2; public static AudioClip FlinsLand3; public static AudioClip FlinsNotice1; public static AudioClip FlinsNotice2; public static AudioClip FlinsNotice3; public static AudioClip FlinsMovePlayerLoop; public static AudioClip FlinsMovePlayerStop; public static AudioClip FlinsPickupPlayer; public static AudioClip FlinsStunEnd; public static AudioClip FlinsStunStart; public static AudioClip FlinsStunLoop; public static GameObject PaimonPrefab; public static ConfigEntry MikaReplacement { get; private set; } public static ConfigEntry ClorindeReplacement { get; private set; } public static ConfigEntry BeidouReplacement { get; private set; } public static ConfigEntry SayuReplacement { get; private set; } public static ConfigEntry KachinaReplacement { get; private set; } public static ConfigEntry IansanReplacement { get; private set; } public static ConfigEntry HuTaoReplacement { get; private set; } public static ConfigEntry GamingReplacement { get; private set; } public static ConfigEntry BarbaraReplacement { get; private set; } public static ConfigEntry AyatoReplacement { get; private set; } public static ConfigEntry GorouReplacement { get; private set; } public static ConfigEntry AlhaithamReplacement { get; private set; } public static ConfigEntry MavuikaReplacement { get; private set; } public static ConfigEntry NahidaReplacement { get; private set; } public static ConfigEntry TapirReplacement { get; private set; } public static ConfigEntry XianyunReplacement { get; private set; } public static ConfigEntry ArlecchinoReplacement { get; private set; } public static ConfigEntry ColleiReplacement { get; private set; } public static ConfigEntry DoriEmojiReplacement { get; private set; } public static ConfigEntry GanyuReplacement { get; private set; } public static ConfigEntry AinoIneffaReplacement { get; private set; } public static ConfigEntry DottoreReplacement { get; private set; } public static ConfigEntry SkirkReplacement { get; private set; } public static ConfigEntry IfaReplacement { get; private set; } public static ConfigEntry DurinReplacement { get; private set; } public static ConfigEntry KiraraReplacement { get; private set; } public static ConfigEntry NeferReplacement { get; private set; } public static ConfigEntry YelanReplacement { get; private set; } public static ConfigEntry FlinsReplacement { get; private set; } public static ConfigEntry PaimonReplacement { 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("Extra", "Emojis", true, "Replace some of the money related emojis with Dori ones"); AlhaithamReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Alhaitham", true, "Replace the Clown with Alhaitham"); ArlecchinoReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Arlecchino", true, "Replace the Shadow Child with Arlecchino"); BarbaraReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Barbara", true, "Replace the Bowtie with Barbara"); BeidouReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Beidou", true, "Replace the Trudge with Beidou"); ClorindeReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Clorinde", true, "Replace the Hunter with Clorinde"); GamingReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Gaming", true, "Replace the Chef with Gaming"); GorouReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Gorou", true, "Replace the Headman with Gorou"); HuTaoReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Hu Tao", true, "Replace the Robe with Hu Tao"); IansanReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Iansan", true, "Replace the Upscream with Iansan"); KachinaReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Kachina", true, "Replace the Rugrat with Kachina"); AyatoReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Kamisato Ayato", true, "Replace the Reaper with Ayato"); MavuikaReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Mavuika", true, "Replace the Bang with Mavuika"); MikaReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Mika", true, "Replace the Gnomes with Mika"); NahidaReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Nahida", true, "Replace the Peeper with Nahida"); SayuReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Sayu", true, "Replace the Animal with Sayu"); TapirReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Tapir", true, "Replace the Duck with Mizuki's Tapir"); XianyunReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Xianyun", true, "Replace the Mentalist with Xianyun"); ColleiReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Collei", true, "Replace the Cleanup Crew with Collei"); GanyuReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Ganyu", true, "Replace the Birthday Boy with Ganyu"); AinoIneffaReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Aino and Ineffa", true, "Replace Elsa with Aino and Ineffa"); DottoreReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Dottore", true, "Replace the Loom with Dottore"); SkirkReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Skirk", true, "Replace Bella with Skirk"); IfaReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Ifa", true, "Replace Oogly with Ifa"); DurinReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Durin", true, "Replace the Tick with Durin"); NeferReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Nefer", true, "Replace the Hearthugger with Nefer"); YelanReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Yelan", true, "Replace the Gambit with Yelan"); KiraraReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Kirara", true, "Replace the Headgrab with Kirara"); FlinsReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Flins", true, "Replace the Hidden with Flins"); PaimonReplacement = ((BaseUnityPlugin)this).Config.Bind("Models and Sounds", "Paimon", true, "Replace the Slow Mouth with Paimon"); } public void LoadAssets() { LoadMikaAssets(); LoadClorindeAssets(); LoadBeidouAssets(); LoadSayuAssets(); LoadKachinaAssets(); LoadIansanAssets(); LoadHuTaoAssets(); LoadGamingAssets(); LoadBarbaraAssets(); LoadAyatoAssets(); LoadAlhaithamAssets(); LoadNahidaAssets(); LoadXianyunAssets(); LoadArlecchinoAssets(); LoadGorouAssets(); LoadTapirAssets(); LoadMavuikaAssets(); LoadExtraAssets(); LoadColleiAssets(); LoadGanyuAssets(); LoadAinoIneffaAssets(); LoadDottoreAssets(); LoadSkirkAssets(); LoadIfaAssets(); LoadDurinAssets(); LoadYelanAssets(); LoadKiraraAssets(); LoadNeferAssets(); LoadFlinsAssets(); LoadPaimonAssets(); } public void LoadMikaAssets() { MikaPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Mika.prefab"); MikaSoundDeath1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/MikaDeath1.ogg"); MikaSoundDeath2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/MikaDeath2.ogg"); MikaSoundDeath3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/MikaDeath3.ogg"); MikaSoundDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/MikaDespawn.ogg"); MikaSoundHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/MikaHurt1.ogg"); MikaSoundHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/MikaHurt2.ogg"); MikaSoundHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/MikaHurt3.ogg"); MikaSoundIdle1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/MikaIdleBreaker1.ogg"); MikaSoundIdle2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/MikaIdleBreaker2.ogg"); MikaSoundIdle3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/MikaIdleBreaker3.ogg"); MikaSoundJump = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/MikaJump.ogg"); MikaSoundNotice1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/MikaNotice1.ogg"); MikaSoundNotice2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/MikaNotice2.ogg"); MikaSoundNotice3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/MikaNotice3.ogg"); MikaSoundPickaxeTell = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/MikaPickaxeTell.ogg"); MikaSoundSpawn = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/MikaSpawn.ogg"); MikaSoundStunFlyLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/MikaStunFlyLoop.ogg"); MikaStunIntro1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/StunIntro1.ogg"); MikaStunIntro2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/StunIntro2.ogg"); MikaStunIntro3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/StunIntro3.ogg"); MikaStunOutro1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/StunOutro1.ogg"); MikaStunOutro2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/StunOutro2.ogg"); MikaStunOutro3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mika/Sounds/StunOutro3.ogg"); } public void LoadClorindeAssets() { ClorindePrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Clorinde/Clorinde.prefab"); ClorindeSoundAim1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Clorinde/Sounds/ClorindeAim1.ogg"); ClorindeSoundAimGlobal1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Clorinde/Sounds/ClorindeAim1Global.ogg"); ClorindeSoundAimGlobal2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Clorinde/Sounds/ClorindeAim2Global.ogg"); ClorindeSoundAim2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Clorinde/Sounds/ClorindeAim2.ogg"); ClorindeSoundAimGlobal3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Clorinde/Sounds/ClorindeAim3Global.ogg"); ClorindeSoundAim3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Clorinde/Sounds/ClorindeAim3.ogg"); ClorindeSoundDeath1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Clorinde/Sounds/ClorindeDeath1.ogg"); ClorindeSoundDeath2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Clorinde/Sounds/ClorindeDeath2.ogg"); ClorindeSoundDeath3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Clorinde/Sounds/ClorindeDeath3.ogg"); ClorindeSoundHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Clorinde/Sounds/ClorindeHurt1.ogg"); ClorindeSoundHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Clorinde/Sounds/ClorindeHurt2.ogg"); ClorindeSoundHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Clorinde/Sounds/ClorindeHurt3.ogg"); ClorindeSoundSpawn = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Clorinde/Sounds/ClorindeSpawn.ogg"); ClorindeSoundDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Clorinde/Sounds/ClorindeDespawn.ogg"); ClorindeSoundLeave1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Clorinde/Sounds/ClorindeLeave1.ogg"); ClorindeSoundLeave2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Clorinde/Sounds/ClorindeLeave2.ogg"); ClorindeSoundLeave3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Clorinde/Sounds/ClorindeLeave3.ogg"); } public void LoadAlhaithamAssets() { AlhaithamPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Alhaitham/Alhaitham.prefab"); AlhaithamAttackIntro = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Alhaitham/Sounds/AttackIntro.ogg"); AlhaithamAttackLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Alhaitham/Sounds/AttackLoop.ogg"); AlhaithamAttackOutro = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Alhaitham/Sounds/AttackOutro.ogg"); AlhaithamDeath = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Alhaitham/Sounds/Death.ogg"); AlhaithamHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Alhaitham/Sounds/Hurt1.ogg"); AlhaithamHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Alhaitham/Sounds/Hurt2.ogg"); AlhaithamHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Alhaitham/Sounds/Hurt3.ogg"); AlhaithamJump = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Alhaitham/Sounds/Jump.ogg"); AlhaithamLand = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Alhaitham/Sounds/Land.ogg"); AlhaithamMeleeKick = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Alhaitham/Sounds/MeleeKick.ogg"); AlhaithamMeleeTell = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Alhaitham/Sounds/MeleeTell.ogg"); AlhaithamStunIntro = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Alhaitham/Sounds/StunIntro.ogg"); AlhaithamStunLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Alhaitham/Sounds/StunnedLoop.ogg"); AlhaithamStunOutro = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Alhaitham/Sounds/StunOutro.ogg"); AlhaithamLaser = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Alhaitham/LaserMaterial.mat"); AlhaithamLaserInside = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Alhaitham/LaserInsideMaterial.mat"); AlhaithamLaserVariant = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Alhaitham/LaserMaterialVariant.mat"); AlhaithamLaserSmoke = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Alhaitham/LaserSmoke.mat"); } public void LoadGorouAssets() { GorouPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gorou/GorouHead.prefab"); GorouBiteStart1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gorou/Sounds/BiteStart1.ogg"); GorouBiteStart2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gorou/Sounds/BiteStart2.ogg"); GorouBiteStart3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gorou/Sounds/BiteStart3.ogg"); GorouChaseBegin = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gorou/Sounds/ChaseBegin.ogg"); GorouChaseBeginGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gorou/Sounds/ChaseBeginGlobal.ogg"); GorouChaseBeginToChase = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gorou/Sounds/ChaseBeginToChase.ogg"); GorouChaseToIdle = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gorou/Sounds/ChaseToIdle.ogg"); GorouDeath = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gorou/Sounds/Death.ogg"); GorouDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gorou/Sounds/Despawn.ogg"); GorouHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gorou/Sounds/Hurt1.ogg"); GorouHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gorou/Sounds/Hurt2.ogg"); GorouHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gorou/Sounds/Hurt3.ogg"); GorouSpawn = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gorou/Sounds/Spawn.ogg"); GorouTeethChatter1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gorou/Sounds/TeethChatter1.ogg"); GorouTeethChatter2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gorou/Sounds/TeethChatter2.ogg"); GorouTeethChatter3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gorou/Sounds/TeethChatter3.ogg"); GorouTeethChatter4 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gorou/Sounds/TeethChatter4.ogg"); GorouTeethChatter5 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gorou/Sounds/TeethChatter5.ogg"); } public void LoadTapirAssets() { TapirPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Tapir.prefab"); TapirAttackLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Sounds/AttackLoop.ogg"); TapirDeath = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Sounds/Death.ogg"); TapirHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Sounds/Hurt1.ogg"); TapirHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Sounds/Hurt2.ogg"); TapirHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Sounds/Hurt3.ogg"); TapirNotice1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Sounds/Notice1.ogg"); TapirNotice2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Sounds/Notice2.ogg"); TapirNotice3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Sounds/Notice3.ogg"); TapirQuack1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Sounds/Quack1.ogg"); TapirQuack2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Sounds/Quack2.ogg"); TapirQuack3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Sounds/Quack3.ogg"); TapirStunEnd1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Sounds/StunEnd1.ogg"); TapirStunEnd2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Sounds/StunEnd2.ogg"); TapirStunEnd3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Sounds/StunEnd3.ogg"); TapirStunLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Sounds/StunLoop.ogg"); TapirBite1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Sounds/Bite1.ogg"); TapirBite2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Sounds/Bite2.ogg"); TapirBite3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Sounds/Bite3.ogg"); TapirBite4 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Sounds/Bite4.ogg"); TapirBite5 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Sounds/Bite5.ogg"); TapirBite6 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Tapir/Sounds/Bite6.ogg"); } public void LoadMavuikaAssets() { MavuikaPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Mavuika.prefab"); MavuikaAttackBreaker1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/AttackBreaker1.ogg"); MavuikaAttackBreaker2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/AttackBreaker2.ogg"); MavuikaAttackBreaker3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/AttackBreaker3.ogg"); MavuikaAttackBreaker4 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/AttackBreaker4.ogg"); MavuikaAttackBreaker5 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/AttackBreaker5.ogg"); MavuikaDeath1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/Death1.ogg"); MavuikaDeath2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/Death2.ogg"); MavuikaDeath3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/Death3.ogg"); MavuikaExplodeTell1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/ExplodeTell1.ogg"); MavuikaExplodeTell2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/ExplodeTell2.ogg"); MavuikaExplodeTell3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/ExplodeTell3.ogg"); MavuikaFuseTell1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/FuseTell1.ogg"); MavuikaFuseTell2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/FuseTell2.ogg"); MavuikaFuseTell3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/FuseTell3.ogg"); MavuikaHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/Hurt1.ogg"); MavuikaHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/Hurt2.ogg"); MavuikaHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/Hurt3.ogg"); MavuikaIdleBreaker1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/IdleBreaker1.ogg"); MavuikaIdleBreaker2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/IdleBreaker2.ogg"); MavuikaIdleBreaker3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/IdleBreaker3.ogg"); MavuikaIdleBreaker4 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/IdleBreaker4.ogg"); MavuikaIdleBreaker5 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/IdleBreaker5.ogg"); MavuikaJump1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/Jump1.ogg"); MavuikaJump2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/Jump2.ogg"); MavuikaJump3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/Jump3.ogg"); MavuikaLand1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/Land1.ogg"); MavuikaLand2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/Land2.ogg"); MavuikaLand3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/Land3.ogg"); MavuikaStunIntro1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/StunIntro1.ogg"); MavuikaStunIntro2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/StunIntro2.ogg"); MavuikaStunIntro3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/StunIntro3.ogg"); MavuikaStunLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/StunLoop.ogg"); MavuikaStunOutro1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/StunOutro1.ogg"); MavuikaStunOutro2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/StunOutro2.ogg"); MavuikaStunOutro3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Mavuika/Sounds/StunOutro3.ogg"); } public void LoadBeidouAssets() { BeidouPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Beidou.prefab"); BeidouAttackBuildupVO = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/AttackBuildupVO.ogg"); BeidouAttackImpact = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/AttackImplosionImpact.ogg"); BeidouAttackImpactGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/AttackImplosionImpactGlobal.ogg"); BeidouDeath = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/Death.ogg"); BeidouHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/Hurt1.ogg"); BeidouHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/Hurt2.ogg"); BeidouHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/Hurt3.ogg"); BeidouJump = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/Jump.ogg"); BeidouLand = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/Land.ogg"); BeidouLookUnderAttack = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/LookUnderAttack.ogg"); BeidouLookUnderIntro = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/LookUnderIntro.ogg"); BeidouLookUnderOutro = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/LookUnderOutro.ogg"); BeidouNoiseLong1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/NoiseLong1.ogg"); BeidouNoiseLong2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/NoiseLong2.ogg"); BeidouNoiseLong3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/NoiseLong3.ogg"); BeidouNoiseShort1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/NoiseShort1.ogg"); BeidouNoiseShort2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/NoiseShort2.ogg"); BeidouNoiseShort3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/NoiseShort3.ogg"); BeidouNotice1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/Notice1.ogg"); BeidouNotice2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/Notice2.ogg"); BeidouNotice3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/Notice3.ogg"); BeidouStunnedLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Beidou/Sounds/StunnedLoop.ogg"); } public void LoadBarbaraAssets() { BarbaraPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Barbara/Barbara.prefab"); BarbaraDeath = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Barbara/Sounds/Death.ogg"); BarbaraDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Barbara/Sounds/Despawn.ogg"); BarbaraHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Barbara/Sounds/Hurt1.ogg"); BarbaraHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Barbara/Sounds/Hurt2.ogg"); BarbaraHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Barbara/Sounds/Hurt3.ogg"); BarbaraIdleLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Barbara/Sounds/IdleLoop.ogg"); BarbaraScreamEndGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Barbara/Sounds/ScreamEndGlobal.ogg"); BarbaraScreamLoopGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Barbara/Sounds/ScreamLoopGlobal.ogg"); BarbaraScreamStartGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Barbara/Sounds/ScreamStartGlobal.ogg"); BarbaraScreamLoopLocal = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Barbara/Sounds/ScreamLoopLocal.ogg"); BarbaraStunnedLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Barbara/Sounds/StunnedLoop.ogg"); BarbaraJump = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Barbara/Sounds/Jump.ogg"); BarbaraLand = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Barbara/Sounds/Land.ogg"); BarbaraNotice = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Barbara/Sounds/Notice.ogg"); } public void LoadSayuAssets() { SayuPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Sayu/Sayu.prefab"); SayuAttackStart = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Sayu/Sounds/AttackStart.ogg"); SayuAttackStop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Sayu/Sounds/AttackStop.ogg"); SayuDeath = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Sayu/Sounds/Death.ogg"); SayuDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Sayu/Sounds/Despawn.ogg"); SayuHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Sayu/Sounds/Hurt1.ogg"); SayuHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Sayu/Sounds/Hurt2.ogg"); SayuHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Sayu/Sounds/Hurt3.ogg"); SayuJump1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Sayu/Sounds/Jump1.ogg"); SayuJump2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Sayu/Sounds/Jump2.ogg"); SayuJump3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Sayu/Sounds/Jump3.ogg"); SayuLand1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Sayu/Sounds/Land1.ogg"); SayuLand2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Sayu/Sounds/Land2.ogg"); SayuLand3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Sayu/Sounds/Land3.ogg"); SayuNotice1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Sayu/Sounds/Notice1.ogg"); SayuNotice2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Sayu/Sounds/Notice2.ogg"); SayuNotice3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Sayu/Sounds/Notice3.ogg"); SayuAttackLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Sayu/Sounds/AttackLoop.ogg"); SayuSpawn = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Sayu/Sounds/Spawn.ogg"); } public void LoadKachinaAssets() { KachinaPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kachina/Kachina.prefab"); KachinaDeath = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kachina/Sounds/Death.ogg"); KachinaDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kachina/Sounds/Despawn.ogg"); KachinaHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kachina/Sounds/Hurt1.ogg"); KachinaHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kachina/Sounds/Hurt2.ogg"); KachinaHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kachina/Sounds/Hurt3.ogg"); KachinaJump = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kachina/Sounds/Jump.ogg"); KachinaLand = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kachina/Sounds/Land.ogg"); KachinaNotice = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kachina/Sounds/Notice.ogg"); KachinaPickupIntro = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kachina/Sounds/PickupIntro.ogg"); KachinaPickupOutroTell = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kachina/Sounds/PickupOutroTell.ogg"); KachinaPickupOutroThrow = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kachina/Sounds/PickupOutroThrow.ogg"); KachinaSpawn = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kachina/Sounds/Spawn.ogg"); KachinaStunOutro = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kachina/Sounds/StunOutro.ogg"); KachinaStunLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kachina/Sounds/StunnedLoop.ogg"); } public void LoadIansanAssets() { IansanPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Iansan/Iansan.prefab"); IansanDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Iansan/Sounds/Despawn.ogg"); IansanHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Iansan/Sounds/Hurt1.ogg"); IansanHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Iansan/Sounds/Hurt2.ogg"); IansanHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Iansan/Sounds/Hurt3.ogg"); IansanIdle1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Iansan/Sounds/Idle1.ogg"); IansanIdle2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Iansan/Sounds/Idle2.ogg"); IansanIdle3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Iansan/Sounds/Idle3.ogg"); IansanJump = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Iansan/Sounds/Jump.ogg"); IansanLand = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Iansan/Sounds/Land.ogg"); IansanScream1Global = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Iansan/Sounds/Scream1Global.ogg"); IansanScream2Global = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Iansan/Sounds/Scream2Global.ogg"); IansanScream3Global = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Iansan/Sounds/Scream3Global.ogg"); IansanScream1Local = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Iansan/Sounds/Scream1Local.ogg"); IansanScream2Local = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Iansan/Sounds/Scream2Local.ogg"); IansanScream3Local = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Iansan/Sounds/Scream3Local.ogg"); } public void LoadXianyunAssets() { XianyunPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Xianyun/Xianyun.prefab"); XianyunAttackDown = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Xianyun/Sounds/AttackDown.ogg"); XianyunAttackDownGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Xianyun/Sounds/AttackDownGlobal.ogg"); XianyunDeath = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Xianyun/Sounds/Death.ogg"); XianyunHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Xianyun/Sounds/Hurt1.ogg"); XianyunHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Xianyun/Sounds/Hurt2.ogg"); XianyunHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Xianyun/Sounds/Hurt3.ogg"); XianyunStunnedLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Xianyun/Sounds/StunnedLoop.ogg"); XianyunChargeAttack = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Xianyun/Sounds/ChargeStart.ogg"); XianyunChargeAttackLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Xianyun/Sounds/ChargeAttack.ogg"); XianyunClapGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Xianyun/Sounds/ClapGlobal.ogg"); XianyunClapLocal = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Xianyun/Sounds/ClapLocal.ogg"); XianyunDelayAttack = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Xianyun/Sounds/DelayAttack.ogg"); XianyunMaterial = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Xianyun/SphereMat.mat"); } public void LoadArlecchinoAssets() { ArlecchinoPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Arlecchino/Arlecchino.prefab"); ArlecchinoAttack = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Arlecchino/Sounds/Attack.ogg"); ArlecchinoDeath = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Arlecchino/Sounds/Death.ogg"); ArlecchinoHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Arlecchino/Sounds/Hurt1.ogg"); ArlecchinoHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Arlecchino/Sounds/Hurt2.ogg"); ArlecchinoHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Arlecchino/Sounds/Hurt3.ogg"); ArlecchinoScream1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Arlecchino/Sounds/Scream1.ogg"); ArlecchinoScream1Global = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Arlecchino/Sounds/Scream1Global.ogg"); ArlecchinoScream2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Arlecchino/Sounds/Scream2.ogg"); ArlecchinoScream2Global = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Arlecchino/Sounds/Scream2Global.ogg"); ArlecchinoScream3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Arlecchino/Sounds/Scream3.ogg"); ArlecchinoScream3Global = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Arlecchino/Sounds/Scream3Global.ogg"); ArlecchinoTeleportIn = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Arlecchino/Sounds/TeleportIn.ogg"); ArlecchinoTeleportOut = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Arlecchino/Sounds/TeleportOut.ogg"); ArlecchinoZoom = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Arlecchino/Sounds/Zoom.ogg"); } public void LoadNahidaAssets() { NahidaPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nahida/NahidaHead.prefab"); NahidaBlink1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nahida/Sounds/Blink1.ogg"); NahidaBlink2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nahida/Sounds/Blink2.ogg"); NahidaBlink3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nahida/Sounds/Blink3.ogg"); NahidaDeath = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nahida/Sounds/Death.ogg"); NahidaDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nahida/Sounds/Despawn.ogg"); NahidaLaser = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nahida/Sounds/Laser.ogg"); NahidaLaserBuildup = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nahida/Sounds/LaserBuildup.ogg"); NahidaSpawn = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nahida/Sounds/Spawn.ogg"); NahidaStareLoopTwitching = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nahida/Sounds/StareLoopTwitching.ogg"); NahidaStaringStart = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nahida/Sounds/StaringStart.ogg"); NahidaStareLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nahida/Sounds/StareLoop.ogg"); } public void LoadHuTaoAssets() { HuTaoPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/HuTao/Hu Tao.prefab"); HutaoAttack = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/HuTao/Sounds/Attack.ogg"); HutaoAttackGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/HuTao/Sounds/AttackGlobal.ogg"); HutaoCrackingFingers = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/HuTao/Sounds/CrackingFingersSlow.ogg"); HutaoCrackingFingersAggresive = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/HuTao/Sounds/CrackingFingersAggresive.ogg"); HutaoHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/HuTao/Sounds/Hurt1.ogg"); HutaoHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/HuTao/Sounds/Hurt2.ogg"); HutaoHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/HuTao/Sounds/Hurt3.ogg"); HutaoLookUnderScream = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/HuTao/Sounds/LookUnderScream.ogg"); HutaoLookUnderScreamGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/HuTao/Sounds/LookUnderScreamGlobal.ogg"); HutaoNoise1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/HuTao/Sounds/Noise1.ogg"); HutaoNoise2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/HuTao/Sounds/Noise2.ogg"); HutaoNoise3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/HuTao/Sounds/Noise3.ogg"); HutaoNoise4 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/HuTao/Sounds/Noise4.ogg"); HutaoStunStart = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/HuTao/Sounds/StunStart.ogg"); HutaoTargetingPlayer = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/HuTao/Sounds/TargetingPlayer.ogg"); HutaoStunnedLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/HuTao/Sounds/StunnedLoop.ogg"); } public void LoadGamingAssets() { GamingPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gaming/Gaming.prefab"); GamingCleaverSwing1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gaming/Sounds/CleaverSwing1.ogg"); GamingCleaverSwing2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gaming/Sounds/CleaverSwing2.ogg"); GamingCleaverSwing3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gaming/Sounds/CleaverSwing3.ogg"); GamingHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gaming/Sounds/Hurt1.ogg"); GamingHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gaming/Sounds/Hurt2.ogg"); GamingHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gaming/Sounds/Hurt3.ogg"); GamingJump1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gaming/Sounds/Jump1.ogg"); GamingJump2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gaming/Sounds/Jump2.ogg"); GamingJump3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gaming/Sounds/Jump3.ogg"); GamingJump4 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gaming/Sounds/Jump4.ogg"); GamingJump5 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gaming/Sounds/Jump5.ogg"); GamingLand1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gaming/Sounds/Land1.ogg"); GamingLand2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gaming/Sounds/Land2.ogg"); GamingLand3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gaming/Sounds/Land3.ogg"); GamingNotice = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gaming/Sounds/Notice.ogg"); GamingStunnedLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gaming/Sounds/StunnedLoop.ogg"); GamingTumbleGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gaming/Sounds/TumbleGlobal.ogg"); GamingTumbleLocal = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Gaming/Sounds/TumbleLocal.ogg"); } public void LoadAyatoAssets() { AyatoPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ayato/Ayato.prefab"); AyatoAttack1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ayato/Sounds/Attack1.ogg"); AyatoAttack2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ayato/Sounds/Attack2.ogg"); AyatoAttack3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ayato/Sounds/Attack3.ogg"); AyatoAttack4 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ayato/Sounds/Attack4.ogg"); AyatoAttack5 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ayato/Sounds/Attack5.ogg"); AyatoDeath = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ayato/Sounds/Death.ogg"); AyatoHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ayato/Sounds/Hurt1.ogg"); AyatoHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ayato/Sounds/Hurt2.ogg"); AyatoHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ayato/Sounds/Hurt3.ogg"); AyatoJump = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ayato/Sounds/Jump.ogg"); AyatoStunnedLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ayato/Sounds/StunnedLoop.ogg"); } public void LoadColleiAssets() { ColleiPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Collei/Collei.prefab"); ColleiCat = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Collei/Cat.prefab"); ColleiDeath = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Collei/Sounds/Death.ogg"); ColleiHeadDetach = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Collei/Sounds/HeadDetach.ogg"); ColleiHeadDetachTell = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Collei/Sounds/HeadDetachTell.ogg"); ColleiHeadExplosionTell = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Collei/Sounds/HeadExplosionTell.ogg"); ColleiHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Collei/Sounds/Hurt.ogg"); ColleiHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Collei/Sounds/Hurt2.ogg"); ColleiHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Collei/Sounds/Hurt3.ogg"); ColleiIdleLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Collei/Sounds/IdleLoop.ogg"); ColleiMelee = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Collei/Sounds/Melee.ogg"); ColleiMeleeGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Collei/Sounds/MeleeGlobal.ogg"); ColleiJump = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Collei/Sounds/Jump.ogg"); ColleiLand = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Collei/Sounds/Land.ogg"); ColleiNotice = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Collei/Sounds/Notice.ogg"); ColleiNoticeGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Collei/Sounds/NoticeGlobal.ogg"); ColleiHeadLaugh = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Collei/Sounds/HeadLaugh.ogg"); } public void LoadGanyuAssets() { GanyuPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Ganyu.prefab"); GanyuBall = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/GanyuBall.prefab"); GanyuAttackSwoosh1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/AttackSwoosh1.ogg"); GanyuAttackSwoosh2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/AttackSwoosh2.ogg"); GanyuDeath1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/Death1.ogg"); GanyuDeath2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/Death2.ogg"); GanyuDeath3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/Death3.ogg"); GanyuHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/Hurt1.ogg"); GanyuHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/Hurt2.ogg"); GanyuHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/Hurt3.ogg"); GanyuIdleBreak1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/IdleBreak1.ogg"); GanyuIdleBreak2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/IdleBreak2.ogg"); GanyuIdleBreak3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/IdleBreak3.ogg"); GanyuIdleBreak4 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/IdleBreak4.ogg"); GanyuIdleLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/IdleLoop.ogg"); GanyuInhale1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/Inhale1.ogg"); GanyuInhale2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/Inhale2.ogg"); GanyuInhale3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/Inhale3.ogg"); GanyuJump1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/Jump1.ogg"); GanyuJump2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/Jump2.ogg"); GanyuJump3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/Jump3.ogg"); GanyuLand1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/Land1.ogg"); GanyuLand2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/Land2.ogg"); GanyuLand3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/Land3.ogg"); GanyuNotice1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/Notice1.ogg"); GanyuNotice2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/Notice2.ogg"); GanyuNotice3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/Notice3.ogg"); GanyuRunAttackLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/Sounds/RunLoop.ogg"); GanyuMaterial = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ganyu/GanyuMat.mat"); } public void LoadAinoIneffaAssets() { AinoIneffaPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/AinoIneffa.prefab"); AinoIneffaBarkBig1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/BigBark1.ogg"); AinoIneffaBarkBig2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/BigBark2.ogg"); AinoIneffaBarkBig3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/BigBark3.ogg"); AinoIneffaBarkBigGlobal1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/BigBark1Global.ogg"); AinoIneffaBarkBigGlobal2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/BigBark2Global.ogg"); AinoIneffaBarkBigGlobal3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/BigBark3Global.ogg"); AinoIneffaBarkSmall1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/BarkSmall1.ogg"); AinoIneffaBarkSmall2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/BarkSmall2.ogg"); AinoIneffaBarkSmall3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/BarkSmall3.ogg"); AinoIneffaBigDeath = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/BigDeath.ogg"); AinoIneffaBigHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/BigHurt1.ogg"); AinoIneffaBigHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/BigHurt2.ogg"); AinoIneffaBigHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/BigHurt3.ogg"); AinoIneffaBigStinger = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/BigStinger.ogg"); AinoIneffaFlyLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/FlyLoop.ogg"); AinoIneffaPantingSmall = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/PantingSmall.ogg"); AinoIneffaPet1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/Pet1.ogg"); AinoIneffaPet2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/Pet2.ogg"); AinoIneffaPet3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/Pet3.ogg"); AinoIneffaSmallDeath = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/SmallDeath.ogg"); AinoIneffaSmallHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/SmallHurt1.ogg"); AinoIneffaSmallHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/SmallHurt2.ogg"); AinoIneffaSmallHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/SmallHurt3.ogg"); AinoIneffaIdleBreak1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/SmallIdleBreak1.ogg"); AinoIneffaIdleBreak2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/SmallIdleBreak2.ogg"); AinoIneffaIdleBreak3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/SmallIdleBreak3.ogg"); AinoIneffaIdleBreak4 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/SmallIdleBreak4.ogg"); AinoIneffaStunLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/StunLoop.ogg"); AinoIneffaPantingBig = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/PantingBig.ogg"); AinoIneffaTransformationStart = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Sounds/StartTransformation.ogg"); AinoIneffaMaterial = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/AinoIneffa/Lightning.mat"); } public void LoadDottoreAssets() { DottorePrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Dottore.prefab"); DottoreAttackTell = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/AttackTell.ogg"); DottoreBackCrackLong1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/BackCrackLong1.ogg"); DottoreBackCrackLong2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/BackCrackLong2.ogg"); DottoreBackCrackLong3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/BackCrackLong3.ogg"); DottoreBackCrackShort1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/BackCrackShort1.ogg"); DottoreBackCrackShort2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/BackCrackShort2.ogg"); DottoreBackCrackShort3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/BackCrackShort3.ogg"); DottoreNeckCrackLong1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/NeckCrackLong1.ogg"); DottoreNeckCrackLong2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/NeckCrackLong2.ogg"); DottoreNeckCrackLong3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/NeckCrackLong3.ogg"); DottoreNeckCrackShort1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/NeckCrackShort1.ogg"); DottoreNeckCrackShort2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/NeckCrackShort2.ogg"); DottoreNeckCrackShort3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/NeckCrackShort3.ogg"); DottoreLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/Loop.ogg"); DottoreHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/Hurt1.ogg"); DottoreHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/Hurt2.ogg"); DottoreHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/Hurt3.ogg"); DottoreDeath1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/Death1.ogg"); DottoreDeath2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/Death2.ogg"); DottoreDeath3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/Death3.ogg"); DottoreNonTarget = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/NotTargeted.ogg"); DottoreTarget = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/Targeted.ogg"); DottoreSlap = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/Slap.ogg"); DottoreSlapGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/Sounds/SlapGlobal.ogg"); DottoreSprite = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Dottore/DottoreSprite.asset"); } public void LoadSkirkAssets() { SkirkPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Skirk.prefab"); SkirkAttack1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Attack1.ogg"); SkirkAttack2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Attack2.ogg"); SkirkAttack3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Attack3.ogg"); SkirkAttackOutro1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/AttackOutro1.ogg"); SkirkAttackOutro2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/AttackOutro2.ogg"); SkirkAttackOutro3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/AttackOutro3.ogg"); SkirkBell1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Bell1.ogg"); SkirkBell2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Bell2.ogg"); SkirkBell3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Bell3.ogg"); SkirkBell1Global = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Bell1Global.ogg"); SkirkBell2Global = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Bell2Global.ogg"); SkirkBell3Global = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Bell3Global.ogg"); SkirkBellBuildup = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/BellBuildup.ogg"); SkirkDeath1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Death1.ogg"); SkirkDeath2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Death2.ogg"); SkirkDeath3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Death3.ogg"); SkirkIdle1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Idle1.ogg"); SkirkIdle2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Idle2.ogg"); SkirkIdle3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Idle3.ogg"); SkirkStunLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/StunLoop.ogg"); SkirkTeleport1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Teleport1.ogg"); SkirkTeleport2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Teleport2.ogg"); SkirkTeleport3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Teleport3.ogg"); SkirkBattleLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/BattleLoop.ogg"); SkirkWheelRattle = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/WheelRattle.ogg"); SkirkWheelSqueak = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/WheelSqueak.ogg"); SkirkMove1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Move1.ogg"); SkirkMove2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Move2.ogg"); SkirkMove3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Move3.ogg"); SkirkSilence = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Skirk/Sounds/Silence.ogg"); } public void LoadIfaAssets() { IfaPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Ifa.prefab"); IfaMaterial = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/IfaSpotlight.mat"); IfaDeathMaterial = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Oogly Death Smoke.mat"); IfaNothingMaterial = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Nothing.mat"); IfaDeath1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/Death1.ogg"); IfaDeath2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/Death2.ogg"); IfaDeath3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/Death3.ogg"); IfaDropPlayer1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/DropPlayer1.ogg"); IfaDropPlayer2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/DropPlayer2.ogg"); IfaDropPlayer3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/DropPlayer3.ogg"); IfaEyesOff = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/EyesOff.ogg"); IfaEyesOn = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/EyesOn.ogg"); IfaOoglyIdle = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/OoglyIdle.ogg"); IfaHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/Hurt1.ogg"); IfaHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/Hurt2.ogg"); IfaHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/Hurt3.ogg"); IfaIdle1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/Idle1.ogg"); IfaIdle2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/Idle2.ogg"); IfaIdle3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/Idle3.ogg"); IfaNotice1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/Notice1.ogg"); IfaNotice1Global = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/Notice1Global.ogg"); IfaNotice2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/Notice2.ogg"); IfaNotice2Global = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/Notice2Global.ogg"); IfaNotice3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/Notice3.ogg"); IfaNotice3Global = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/Notice3Global.ogg"); IfaStartCharge1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/StartCharge1.ogg"); IfaStartCharge2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/StartCharge2.ogg"); IfaStartCharge3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/StartCharge3.ogg"); IfaAttackLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/IfaLoop.ogg"); IfaHitPlayer1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/HitPlayer1.ogg"); IfaHitPlayer2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/HitPlayer2.ogg"); IfaHitPlayer3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Ifa/Sounds/HitPlayer3.ogg"); } public void LoadDurinAssets() { DurinPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Durin/Durin.prefab"); DurinBigSuck1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Durin/Sounds/BigSuck1.ogg"); DurinBigSuck2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Durin/Sounds/BigSuck2.ogg"); DurinBigSuck3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Durin/Sounds/BigSuck3.ogg"); DurinDeath1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Durin/Sounds/Death1.ogg"); DurinDeath2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Durin/Sounds/Death2.ogg"); DurinDeath3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Durin/Sounds/Death3.ogg"); DurinHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Durin/Sounds/Hurt1.ogg"); DurinHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Durin/Sounds/Hurt2.ogg"); DurinHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Durin/Sounds/Hurt3.ogg"); DurinJump1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Durin/Sounds/Jump1.ogg"); DurinJump2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Durin/Sounds/Jump2.ogg"); DurinJump3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Durin/Sounds/Jump3.ogg"); DurinNotice1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Durin/Sounds/Notice1.ogg"); DurinNotice2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Durin/Sounds/Notice2.ogg"); DurinNotice3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Durin/Sounds/Notice3.ogg"); DurinFastFlap = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Durin/Sounds/FastFlap.ogg"); DurinSlowFlap = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Durin/Sounds/SlowFlap.ogg"); } public void LoadYelanAssets() { YelanPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Yelan.prefab"); YelanDice = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Dice.prefab"); YelanCloseMouth1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/CloseMouth1.ogg"); YelanCloseMouth2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/CloseMouth2.ogg"); YelanCloseMouth3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/CloseMouth3.ogg"); YelanOpenMouth1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/OpenMouth1.ogg"); YelanOpenMouth2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/OpenMouth2.ogg"); YelanOpenMouth3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/OpenMouth3.ogg"); YelanDeath = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/Death.ogg"); YelanHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/Hurt1.ogg"); YelanHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/Hurt2.ogg"); YelanHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/Hurt3.ogg"); YelanIdleLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/IdleLoop.ogg"); YelanJingleBlack = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/JingleBlack.ogg"); YelanJingleBlackGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/JingleBlackGlobal.ogg"); YelanJingleGreen = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/JingleGreen.ogg"); YelanJingleRed = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/JingleRed.ogg"); YelanJingleWhite = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/JingleWhite.ogg"); YelanJingleYellow = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/JingleYellow.ogg"); YelanJump = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/Jump.ogg"); YelanLand = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/Land.ogg"); YelanNotice = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/Notice.ogg"); YelanMusicDeath = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/MusicDeath.ogg"); YelanRun = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/AC_Spinny.controller"); YelanWalk = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/AC_Spinny 1.controller"); YelanRunLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/RunningLoop.ogg"); YelanMusic = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/Music.ogg"); YelanMusicRunning = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Yelan/Sounds/MusicRunning.ogg"); } public void LoadKiraraAssets() { KiraraPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Kirara.prefab"); KiraraAttackSwipe = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/AttackSwipe.ogg"); KiraraBreathingLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/BreathingLoop.ogg"); KiraraCantReach = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/CantReach.ogg"); KiraraDeath = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/Death1.ogg"); KiraraDropKickEnd = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/DropKickEnd.ogg"); KiraraDropKickTell = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/DropKickTell.ogg"); KiraraGrabHead = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/GrabHead.ogg"); KiraraReleaseHeadEnd = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/ReleaseHeadEnd.ogg"); KiraraReleaseHeadStart = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/ReleaseHeadStart.ogg"); KiraraHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/Hurt1.ogg"); KiraraHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/Hurt2.ogg"); KiraraHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/Hurt3.ogg"); KiraraJump1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/Jump1.ogg"); KiraraJump2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/Jump2.ogg"); KiraraJump3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/Jump3.ogg"); KiraraLand1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/Land1.ogg"); KiraraLand2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/Land2.ogg"); KiraraLand3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/Land3.ogg"); KiraraLongNoise1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/LongNoise1.ogg"); KiraraLongNoise2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/LongNoise2.ogg"); KiraraLongNoise3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/LongNoise3.ogg"); KiraraShortNoise1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/ShortNoise1.ogg"); KiraraShortNoise2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/ShortNoise2.ogg"); KiraraShortNoise3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/ShortNoise3.ogg"); KiraraShortNoise4 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/ShortNoise4.ogg"); KiraraShortNoise5 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/ShortNoise5.ogg"); KiraraNotice = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/Notice.ogg"); KiraraNoticeGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/NoticeGlobal.ogg"); KiraraStunEnd = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/StunEnd.ogg"); KiraraStunLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/StunLoop.ogg"); KiraraStunStart = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Sounds/StunStart.ogg"); KiraraParticles = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Kirara/Vfx/KiraraParticle.prefab"); } public void LoadNeferAssets() { NeferPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Nefer.prefab"); NeferMaterial = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/NeferSmoke.mat"); NeferBite1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Bite1.ogg"); NeferBite2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Bite2.ogg"); NeferBite3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Bite3.ogg"); NeferDegrow1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Degrow1.ogg"); NeferDegrow2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Degrow2.ogg"); NeferDegrow3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Degrow3.ogg"); NeferGasTell1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/GasTell1.ogg"); NeferGasTell2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/GasTell2.ogg"); NeferGasTell3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/GasTell3.ogg"); NeferGasLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/GasLoop.ogg"); NeferGrow1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Grow1.ogg"); NeferGrow2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Grow2.ogg"); NeferGrow3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Grow3.ogg"); NeferScare1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Scare1.ogg"); NeferScare2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Scare2.ogg"); NeferScare3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Scare3.ogg"); NeferScare1Global = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Scare1Global.ogg"); NeferScare2Global = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Scare2Global.ogg"); NeferScare3Global = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Scare3Global.ogg"); NeferIdleLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/IdleLoop.ogg"); NeferStunLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/StunLoop.ogg"); NeferAggrobreaker1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/AggroBreaker1.ogg"); NeferAggrobreaker2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/AggroBreaker2.ogg"); NeferAggrobreaker3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/AggroBreaker3.ogg"); NeferAggroStart1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/AggroStart1.ogg"); NeferAggroStart2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/AggroStart2.ogg"); NeferAggroStart3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/AggroStart3.ogg"); NeferAggroLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/AggroLoop.ogg"); NeferDeath1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Death1.ogg"); NeferDeath2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Death2.ogg"); NeferDeath3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Death3.ogg"); NeferHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Hurt1.ogg"); NeferHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Hurt2.ogg"); NeferHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Hurt3.ogg"); NeferIdlebreaker1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/IdleBreaker1.ogg"); NeferIdlebreaker2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/IdleBreaker2.ogg"); NeferIdlebreaker3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/IdleBreaker3.ogg"); NeferPopAway1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/PopAway1.ogg"); NeferPopAway2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/PopAway2.ogg"); NeferPopAway3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/PopAway3.ogg"); NeferLove1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Love1.ogg"); NeferLove2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Love2.ogg"); NeferLove3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/Love3.ogg"); NeferGasStart1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/GasStart1.ogg"); NeferGasStart2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/GasStart2.ogg"); NeferGasStart3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/GasStart3.ogg"); NeferGasStop1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/GasStop1.ogg"); NeferGasStop2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/GasStop2.ogg"); NeferGasStop3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Nefer/Sounds/GasStop3.ogg"); } public void LoadFlinsAssets() { FlinsPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Flins.prefab"); FlinsBreath1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Breath1.ogg"); FlinsBreath2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Breath2.ogg"); FlinsBreath3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Breath3.ogg"); FlinsBreath4 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Breath4.ogg"); FlinsBreath5 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Breath5.ogg"); FlinsBreath6 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Breath6.ogg"); FlinsBreath7 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Breath7.ogg"); FlinsBreath8 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Breath8.ogg"); FlinsBreath9 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Breath9.ogg"); FlinsBreath10 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Breath10.ogg"); FlinsDeath1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Death1.ogg"); FlinsDeath2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Death2.ogg"); FlinsDeath3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Death3.ogg"); FlinsHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Hurt1.ogg"); FlinsHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Hurt2.ogg"); FlinsHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Hurt3.ogg"); FlinsDropPlayer = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/DropPlayer.ogg"); FlinsJump1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Jump1.ogg"); FlinsJump2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Jump2.ogg"); FlinsJump3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Jump3.ogg"); FlinsLand1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Land1.ogg"); FlinsLand2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Land2.ogg"); FlinsLand3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Land3.ogg"); FlinsMovePlayerLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/MovePlayerLoop.ogg"); FlinsPickupPlayer = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/PickupPlayer.ogg"); FlinsMovePlayerStop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/PlayerMoveEnd.ogg"); FlinsStunEnd = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/StunEnd.ogg"); FlinsStunLoop = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/StunLoop.ogg"); FlinsStunStart = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/StunStart.ogg"); FlinsNotice1 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Notice1.ogg"); FlinsNotice2 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Notice2.ogg"); FlinsNotice3 = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/Sounds/Notice3.ogg"); FlinsFootstep = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Flins/FlinsFootstep.png"); } public void LoadPaimonAssets() { PaimonPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Paimon/Paimon.prefab"); } public void LoadExtraAssets() { DoriEmojis = GenshinImpactOverhaulAssetBundle.LoadAsset("Assets/Extra/DoriEmojis.png"); DoriMaterial = GenshinImpactOverhaulAssetBundle.LoadAsset("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) //IL_0233: Unknown result type (might be due to invalid IL or missing references) //IL_029f: Unknown result type (might be due to invalid IL or missing references) //IL_030e: 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(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(); ((Component)((Component)__instance).transform.parent.parent).GetComponent().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; Transform val2 = ((Component)__instance).transform.parent.Find("Rigidbody/Capsule Collider"); if ((Object)(object)val2 != (Object)null) { CapsuleCollider component = ((Component)val2).GetComponent(); component.direction = 2; component.center = new Vector3(0f, 0f, 0.2f); component.height = 1.85f; component.radius = 0.4f; } Transform val3 = ((Component)__instance).transform.parent.Find("Rigidbody/Capsule Collider (1)"); if ((Object)(object)val3 != (Object)null) { CapsuleCollider component2 = ((Component)val3).GetComponent(); component2.direction = 1; component2.center = new Vector3(-0.3f, -0.2f, 0f); component2.height = 1.4f; component2.radius = 0.4f; } Transform val4 = ((Component)__instance).transform.parent.Find("Rigidbody/Capsule Collider (2)"); if ((Object)(object)val4 != (Object)null) { CapsuleCollider component3 = ((Component)val4).GetComponent(); component3.direction = 1; component3.center = new Vector3(0.3f, 0f, 0f); component3.height = 1f; component3.radius = 0.4f; } } } } [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(); if ((Object)(object)val != (Object)(object)component) { animatorField.SetValue(__instance, component); } ((Behaviour)((Component)__instance).gameObject.GetComponent()).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(); 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) //IL_04bb: 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(true); Light[] array2 = componentsInChildren; foreach (Light val2 in array2) { ((Behaviour)val2).enabled = false; } GameObject val3 = Object.Instantiate(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(); ((Component)((Component)__instance).transform.parent.parent).GetComponent().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; Transform val4 = ((Component)__instance).transform.parent.Find("Rigidbody/Capsule Collider"); if ((Object)(object)val4 != (Object)null) { CapsuleCollider component = ((Component)val4).GetComponent(); component.direction = 2; component.center = new Vector3(0f, -0.3f, -0.15f); component.height = 2.4f; component.radius = 0.7f; } } } [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) //IL_0415: Unknown result type (might be due to invalid IL or missing references) //IL_0484: Unknown result type (might be due to invalid IL or missing references) //IL_04ea: Unknown result type (might be due to invalid IL or missing references) if (!GenshinImpactOverhaul.AlhaithamReplacement.Value) { return; } Modifiers.TurnOffRenderers(((Component)__instance).transform.parent.Find("Visuals").Find("___________________________________").Find("[ANIM BOT]")); GameObject val = Object.Instantiate(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(); ((Component)((Component)__instance).transform.parent.parent).GetComponent().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().color = Color.green; ((Renderer)((Component)val2.Find("Hit").Find("Sphere")).GetComponent()).material = GenshinImpactOverhaul.AlhaithamLaserInside; ((Renderer)((Component)val2.Find("Hit").Find("Sphere (1)")).GetComponent()).material = GenshinImpactOverhaul.AlhaithamLaserVariant; ((Component)val2.Find("Laser Light 1")).GetComponent().color = Color.green; ((Component)val2.Find("Laser Light 2")).GetComponent().color = Color.green; ((Component)val2.Find("Laser Light 3")).GetComponent().color = Color.green; ((Component)val2.Find("Laser Light 4")).GetComponent().color = Color.green; ((Component)val2.Find("Laser Light 5")).GetComponent().color = Color.green; ((Renderer)((Component)val2.Find("Line")).GetComponent()).material = GenshinImpactOverhaul.AlhaithamLaser; ((Renderer)((Component)val2.Find("Line Inside")).GetComponent()).material = GenshinImpactOverhaul.AlhaithamLaserInside; ((Component)val2.Find("Spot Light")).GetComponent().color = Color.green; Transform val3 = ((Component)___anim).transform.Find("SemiLaser").Find("Hit Particles"); ((Renderer)((Component)val3.Find("Smoke Particles")).GetComponent()).material = GenshinImpactOverhaul.AlhaithamLaserSmoke; ((Component)val3.Find("Hit Particles 1")).GetComponent().trailMaterial = GenshinImpactOverhaul.AlhaithamLaserVariant; ((Component)val3.Find("Hit Particles 2")).GetComponent().trailMaterial = GenshinImpactOverhaul.AlhaithamLaser; ((Component)val3.Find("Hit Particles White 1")).GetComponent().trailMaterial = GenshinImpactOverhaul.AlhaithamLaserInside; Transform val4 = ((Component)__instance).transform.parent.Find("Rigidbody/Capsule Collider Right"); if ((Object)(object)val4 != (Object)null) { CapsuleCollider component = ((Component)val4).GetComponent(); component.center = new Vector3(-0.3f, 0f, 0f); component.height = 1f; component.radius = 0.3f; } Transform val5 = ((Component)__instance).transform.parent.Find("Rigidbody/Capsule Collider Middle"); if ((Object)(object)val5 != (Object)null) { CapsuleCollider component2 = ((Component)val5).GetComponent(); component2.direction = 1; component2.center = new Vector3(0f, 0.2f, 0f); component2.height = 2f; component2.radius = 0.4f; } Transform val6 = ((Component)__instance).transform.parent.Find("Rigidbody/Capsule Collider Left"); if ((Object)(object)val6 != (Object)null) { CapsuleCollider component3 = ((Component)val6).GetComponent(); component3.center = new Vector3(0.3f, 0f, 0f); component3.height = 1f; component3.radius = 0.3f; } } } } [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(); 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(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(); ((Component)((Component)__instance).transform.parent.parent).GetComponent().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; Transform val2 = ((Component)__instance).transform.parent.Find("Rigidbody/Collider"); if ((Object)(object)val2 != (Object)null) { CapsuleCollider component = ((Component)val2).GetComponent(); component.radius = 0.4f; } } } } [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(); 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_0059: 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_0070: Invalid comparison between Unknown and I4 if (GenshinImpactOverhaul.BarbaraReplacement.Value) { Animator component = ((Component)((Component)__instance).transform).GetComponent(); ((Component)__instance).transform.Find("Barbara(Clone)").localPosition = new Vector3(0f, -0.5f, 0f); ((Component)__instance).transform.Find("Barbara(Clone)").localRotation = Quaternion.identity; 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(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(); ___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().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(); 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) //IL_024b: Unknown result type (might be due to invalid IL or missing references) //IL_02ae: 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(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(); ((Component)((Component)__instance).transform.parent.parent).GetComponent().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; Transform val2 = ((Component)__instance).transform.parent.Find("Rigidbody/Collision Top"); if ((Object)(object)val2 != (Object)null) { CapsuleCollider component = ((Component)val2).GetComponent(); component.center = new Vector3(0f, 0.2f, -0.5f); component.height = 1.3f; component.radius = 0.56f; } Transform val3 = ((Component)__instance).transform.parent.Find("Rigidbody/Collision Bot"); if ((Object)(object)val3 != (Object)null) { CapsuleCollider component2 = ((Component)val3).GetComponent(); component2.center = new Vector3(0f, 0f, -0.9f); } } } } [HarmonyPatch(typeof(EnemyHeadAnimationSystem))] internal class EnemyHeadAnimationSystemPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] public static void ReplaceAnimator(EnemyHeadAnimationSystem __instance) { if (GenshinImpactOverhaul.GorouReplacement.Value) { ((Behaviour)((Component)__instance.Animator).GetComponent()).enabled = false; __instance.Animator = ((Component)((Component)__instance).transform.Find("GorouHead(Clone)")).gameObject.GetComponent(); } } [HarmonyPatch("Update")] [HarmonyPostfix] public static void FixFloating(EnemyHeadAnimationSystem __instance) { //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.GorouReplacement.Value) { Transform val = ((Component)__instance).transform.Find("GorouHead(Clone)"); if ((Object)(object)val != (Object)null) { val.localPosition = new Vector3(0f, -2.73f, 0f); val.localRotation = Quaternion.identity; } } } } [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(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(); ((Component)((Component)__instance).transform.parent.parent).GetComponent().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()).enabled = false; ((Component)((Component)__instance).gameObject.transform.Find("Hurt Collider")).GetComponent().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(); 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) //IL_0375: 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(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(); ((Component)((Component)__instance).transform.parent.parent).GetComponent().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().enabled = true; ((Component)((Component)val2).transform.Find("Sphere Effect 3")).GetComponent().material = GenshinImpactOverhaul.XianyunMaterial; ((Component)((Component)val2).transform.Find("Sphere Effect 2")).GetComponent().enabled = true; ((Component)((Component)val2).transform.Find("Sphere Effect 2")).GetComponent().material = GenshinImpactOverhaul.XianyunMaterial; ((Component)((Component)val2).transform.Find("Sphere Effect 1")).GetComponent().enabled = true; ((Component)((Component)val2).transform.Find("Sphere Effect 1")).GetComponent().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().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; Transform val3 = ((Component)__instance).transform.parent.Find("Rigidbody/Collider"); if ((Object)(object)val3 != (Object)null) { CapsuleCollider component = ((Component)val3).GetComponent(); component.center = new Vector3(0f, -0.55f, 0f); component.height = 1.4f; component.radius = 0.35f; } } } } [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(); 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) //IL_02c2: 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(); GameObject val = Object.Instantiate(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(); __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().enemyName = "Mika"; Transform val2 = ((Component)__instance).transform.parent.Find("Rigidbody/Semi Capsule Collider"); if ((Object)(object)val2 != (Object)null) { CapsuleCollider component2 = ((Component)val2).GetComponent(); component2.radius = 0.6f; component2.center = new Vector3(0f, 0.3f, 0f); component2.height = 3f; } } } } [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(); 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) //IL_022a: 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(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(); __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().enemyName = "Clorinde"; Transform val2 = ((Component)__instance).transform.parent.Find("Rigidbody/Capsule Collider"); if ((Object)(object)val2 != (Object)null) { CapsuleCollider component = ((Component)val2).GetComponent(); component.center = new Vector3(-0.07f, -0.18f, -0.05f); component.height = 1.9f; component.radius = 0.31f; } } } } [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(); 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) //IL_0215: 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(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(); ((Component)((Component)__instance).transform.parent.parent).GetComponent().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; Transform val2 = ((Component)__instance).transform.parent.Find("Rigidbody/Collider"); if ((Object)(object)val2 != (Object)null) { CapsuleCollider component = ((Component)val2).GetComponent(); component.center = new Vector3(0f, -0.4f, 0f); component.height = 1.45f; component.radius = 0.4f; } } } } [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()).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 val2 = ((Component)__instance).transform.Find("Hu Tao(Clone)"); if (!((Object)(object)val2 == (Object)null)) { Animator component = ((Component)val2).GetComponent(); if ((Object)(object)val != (Object)(object)component) { field.SetValue(__instance, component); } } } [HarmonyPatch("Update")] [HarmonyPostfix] public static void AdjustPosition(EnemyRobeAnim __instance) { //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.HuTaoReplacement.Value) { Transform val = ((Component)__instance).transform.Find("Hu Tao(Clone)"); val.localPosition = new Vector3(0f, 0.111f, 0f); val.localRotation = Quaternion.identity; } } } [HarmonyPatch(typeof(EnemyRunner))] internal class EnemyRunnerPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] private static void ReplaceAssets(EnemyRunner __instance, ref EnemyRunnerAnim ___animator) { //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) //IL_01b6: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.AyatoReplacement.Value) { Modifiers.TurnOffRenderers(((Component)__instance).transform); GameObject val = Object.Instantiate(GenshinImpactOverhaul.AyatoPrefab); val.transform.parent = ((Component)__instance).transform.parent.Find("[VISUALS]"); Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, 0f, 0f), new Vector3(0.9f, 0.9f, 0.9f)); val.AddComponent(); ((Component)((Component)__instance).transform.parent.parent).GetComponent().enemyName = "Kamisato Ayato"; ___animator.sfxAttackGrunt.Sounds[0] = GenshinImpactOverhaul.AyatoAttack1; ___animator.sfxAttackGrunt.Sounds[1] = GenshinImpactOverhaul.AyatoAttack2; ___animator.sfxAttackGrunt.Sounds[2] = GenshinImpactOverhaul.AyatoAttack3; ___animator.sfxAttackGrunt.Sounds[3] = GenshinImpactOverhaul.AyatoAttack4; ___animator.sfxAttackGrunt.Sounds[4] = GenshinImpactOverhaul.AyatoAttack5; ___animator.sfxDeath.Sounds[0] = GenshinImpactOverhaul.AyatoDeath; ___animator.sfxHurt.Sounds[0] = GenshinImpactOverhaul.AyatoHurt1; ___animator.sfxHurt.Sounds[1] = GenshinImpactOverhaul.AyatoHurt2; ___animator.sfxHurt.Sounds[2] = GenshinImpactOverhaul.AyatoHurt3; ___animator.sfxJump.Sounds[0] = GenshinImpactOverhaul.AyatoJump; ___animator.sfxStunnedLoop.Sounds[0] = GenshinImpactOverhaul.AyatoStunnedLoop; Transform val2 = ((Component)__instance).transform.parent.Find("Rigidbody/Collider"); if ((Object)(object)val2 != (Object)null) { CapsuleCollider component = ((Component)val2).GetComponent(); component.center = new Vector3(0f, -0.4f, 0f); component.height = 4f; component.radius = 0.5f; } } } } [HarmonyPatch(typeof(EnemyRunnerAnim))] internal class RunnerAnimPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] public static void ReplaceAnimator(EnemyRunnerAnim __instance) { if (!GenshinImpactOverhaul.AyatoReplacement.Value) { return; } ((Behaviour)((Component)__instance).gameObject.GetComponent()).enabled = false; FieldInfo field = typeof(EnemyRunnerAnim).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("Ayato(Clone)"); if (!((Object)(object)val2 == (Object)null)) { Animator component = ((Component)val2).GetComponent(); if ((Object)(object)val != (Object)(object)component) { field.SetValue(__instance, component); } } } [HarmonyPatch("Update")] [HarmonyPostfix] public static void FixFloating(EnemyRunnerAnim __instance) { //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.AyatoReplacement.Value) { Transform val = ((Component)__instance).transform.Find("Ayato(Clone)"); if ((Object)(object)val != (Object)null) { val.localPosition = new Vector3(0f, 0f, 0f); val.localRotation = Quaternion.identity; } } } } [HarmonyPatch(typeof(EnemySlowWalker))] internal class EnemySlowWalkerPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] private static void ReplaceAssets(EnemySlowWalker __instance, ref EnemySlowWalkerAnim ___animator) { //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) //IL_0287: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.BeidouReplacement.Value) { Modifiers.TurnOffRenderers(((Component)__instance).transform); GameObject val = Object.Instantiate(GenshinImpactOverhaul.BeidouPrefab); val.transform.parent = ((Component)__instance).transform.parent.Find("[VISUALS]"); Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, 0f, 0f), new Vector3(1.4f, 1.4f, 1.4f)); val.AddComponent(); ((Component)((Component)__instance).transform.parent.parent).GetComponent().enemyName = "Beidou"; ___animator.sfxAttackBuildupVoice.Sounds[0] = GenshinImpactOverhaul.BeidouAttackBuildupVO; ___animator.sfxAttackImplosionImpactGlobal.Sounds[0] = GenshinImpactOverhaul.BeidouAttackImpactGlobal; ___animator.sfxAttackImplosionImpactLocal.Sounds[0] = GenshinImpactOverhaul.BeidouAttackImpact; ___animator.sfxDeath.Sounds[0] = GenshinImpactOverhaul.BeidouDeath; ___animator.sfxHurt.Sounds[0] = GenshinImpactOverhaul.BeidouHurt1; ___animator.sfxHurt.Sounds[1] = GenshinImpactOverhaul.BeidouHurt2; ___animator.sfxHurt.Sounds[2] = GenshinImpactOverhaul.BeidouHurt3; ___animator.sfxJump.Sounds[0] = GenshinImpactOverhaul.BeidouJump; ___animator.sfxLand.Sounds[0] = GenshinImpactOverhaul.BeidouLand; ___animator.sfxLookUnderAttack.Sounds[0] = GenshinImpactOverhaul.BeidouLookUnderAttack; ___animator.sfxLookUnderIntro.Sounds[0] = GenshinImpactOverhaul.BeidouLookUnderIntro; ___animator.sfxLookUnderOutro.Sounds[0] = GenshinImpactOverhaul.BeidouLookUnderOutro; ___animator.sfxNoiseLong.Sounds[0] = GenshinImpactOverhaul.BeidouNoiseLong1; ___animator.sfxNoiseLong.Sounds[1] = GenshinImpactOverhaul.BeidouNoiseLong2; ___animator.sfxNoiseLong.Sounds[2] = GenshinImpactOverhaul.BeidouNoiseLong3; ___animator.sfxNoiseShort.Sounds[0] = GenshinImpactOverhaul.BeidouNoiseShort1; ___animator.sfxNoiseShort.Sounds[1] = GenshinImpactOverhaul.BeidouNoiseShort2; ___animator.sfxNoiseShort.Sounds[2] = GenshinImpactOverhaul.BeidouNoiseShort3; ___animator.sfxNoticeVoice.Sounds[0] = GenshinImpactOverhaul.BeidouNotice1; ___animator.sfxNoticeVoice.Sounds[1] = GenshinImpactOverhaul.BeidouNotice2; ___animator.sfxNoticeVoice.Sounds[2] = GenshinImpactOverhaul.BeidouNotice3; ___animator.sfxStunnedLoop.Sounds[0] = GenshinImpactOverhaul.BeidouStunnedLoop; Transform val2 = ((Component)__instance).transform.parent.Find("Rigidbody/Collider"); if ((Object)(object)val2 != (Object)null) { CapsuleCollider component = ((Component)val2).GetComponent(); component.center = new Vector3(0f, 0.16f, 0f); component.height = 2.1f; component.radius = 0.44f; } } } } [HarmonyPatch(typeof(EnemySlowWalkerAnim))] internal class SlowWalkerPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] public static void ReplaceAnimator(EnemySlowWalkerAnim __instance) { if (!GenshinImpactOverhaul.BeidouReplacement.Value) { return; } ((Behaviour)((Component)__instance).GetComponent()).enabled = false; FieldInfo field = typeof(EnemySlowWalkerAnim).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("Beidou(Clone)"); if (!((Object)(object)val2 == (Object)null)) { Animator component = ((Component)val2).GetComponent(); if ((Object)(object)val != (Object)(object)component) { field.SetValue(__instance, component); } } } [HarmonyPatch("Update")] [HarmonyPostfix] public static void AdjustPosition(EnemySlowWalkerAnim __instance) { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.BeidouReplacement.Value) { ((Component)__instance).transform.Find("Beidou(Clone)").localPosition = Vector3.zero; ((Component)__instance).transform.Find("Beidou(Clone)").localRotation = Quaternion.identity; } } } [HarmonyPatch(typeof(EnemyThinMan))] internal class EnemyThinManPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] private static void ReplaceAssets(EnemyThinMan __instance, ref EnemyThinManAnim ___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) //IL_0223: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.ArlecchinoReplacement.Value) { Modifiers.TurnOffRenderers(((Component)__instance).transform); GameObject val = Object.Instantiate(GenshinImpactOverhaul.ArlecchinoPrefab); val.transform.parent = ((Component)__instance).transform.parent.Find("Visuals"); Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, -0.7f, 0f), new Vector3(1.3f, 1.3f, 1.3f)); val.AddComponent(); ___anim.attack.Sounds[0] = GenshinImpactOverhaul.ArlecchinoAttack; ___anim.deathSound.Sounds[0] = GenshinImpactOverhaul.ArlecchinoDeath; ___anim.hurtSound.Sounds[0] = GenshinImpactOverhaul.ArlecchinoHurt1; ___anim.hurtSound.Sounds[1] = GenshinImpactOverhaul.ArlecchinoHurt2; ___anim.hurtSound.Sounds[2] = GenshinImpactOverhaul.ArlecchinoHurt3; ___anim.screamLocal.Sounds[0] = GenshinImpactOverhaul.ArlecchinoScream1; ___anim.screamGlobal.Sounds[0] = GenshinImpactOverhaul.ArlecchinoScream1Global; ___anim.screamLocal.Sounds[1] = GenshinImpactOverhaul.ArlecchinoScream2; ___anim.screamGlobal.Sounds[1] = GenshinImpactOverhaul.ArlecchinoScream2Global; ___anim.screamLocal.Sounds[2] = GenshinImpactOverhaul.ArlecchinoScream3; ___anim.screamGlobal.Sounds[2] = GenshinImpactOverhaul.ArlecchinoScream3Global; ___anim.teleportIn.Sounds[0] = GenshinImpactOverhaul.ArlecchinoTeleportIn; ___anim.teleportOut.Sounds[0] = GenshinImpactOverhaul.ArlecchinoTeleportOut; ___anim.zoom.Sounds[0] = GenshinImpactOverhaul.ArlecchinoZoom; ((Component)((Component)__instance).transform.parent.parent).GetComponent().enemyName = "Arlecchino"; __instance.head = ((Component)((Component)__instance).transform.parent.Find("Visuals").Find("Arlecchino(Clone)").Find("HeadSpot")).gameObject; Transform val2 = ((Component)__instance).transform.parent.Find("Rigidbody/Collider"); if ((Object)(object)val2 != (Object)null) { CapsuleCollider component = ((Component)val2).GetComponent(); component.center = new Vector3(0f, -0.67f, 0f); component.height = 2.3f; component.radius = 0.5f; } } } } [HarmonyPatch(typeof(EnemyThinManAnim))] internal class EnemyThinManAnimPatch { [HarmonyPatch("NoticeSet")] [HarmonyPostfix] public static void ReplaceAnimator(EnemyThinManAnim __instance) { if (GenshinImpactOverhaul.ArlecchinoReplacement.Value) { ((Component)((Component)__instance).transform.Find("Arlecchino(Clone)")).GetComponent().SetTrigger("Scream"); } } } [HarmonyPatch(typeof(EnemyTumbler))] internal class EnemyTumblerPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] private static void ReplaceAssets(EnemyTumbler __instance, ref EnemyTumblerAnim ___enemyTumblerAnim) { //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) //IL_0223: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.GamingReplacement.Value) { Modifiers.TurnOffRenderers(((Component)__instance).transform); GameObject val = Object.Instantiate(GenshinImpactOverhaul.GamingPrefab); val.transform.parent = ((Component)__instance).transform.parent.Find("[VISUALS]"); Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, 0f, 0f), new Vector3(1.2f, 1.2f, 1.2f)); val.AddComponent(); ((Component)((Component)__instance).transform.parent.parent).GetComponent().enemyName = "Gaming"; ___enemyTumblerAnim.sfxCharge.Sounds[0] = GenshinImpactOverhaul.GamingCleaverSwing1; ___enemyTumblerAnim.sfxCharge.Sounds[1] = GenshinImpactOverhaul.GamingCleaverSwing2; ___enemyTumblerAnim.sfxCharge.Sounds[2] = GenshinImpactOverhaul.GamingCleaverSwing3; ___enemyTumblerAnim.sfxHurt.Sounds[0] = GenshinImpactOverhaul.GamingHurt1; ___enemyTumblerAnim.sfxHurt.Sounds[1] = GenshinImpactOverhaul.GamingHurt2; ___enemyTumblerAnim.sfxHurt.Sounds[2] = GenshinImpactOverhaul.GamingHurt3; AudioClip[] sounds = (AudioClip[])(object)new AudioClip[5] { GenshinImpactOverhaul.GamingJump1, GenshinImpactOverhaul.GamingJump2, GenshinImpactOverhaul.GamingJump3, GenshinImpactOverhaul.GamingJump4, GenshinImpactOverhaul.GamingJump5 }; ___enemyTumblerAnim.sfxJump.Sounds = sounds; ___enemyTumblerAnim.sfxLand.Sounds[0] = GenshinImpactOverhaul.GamingLand1; ___enemyTumblerAnim.sfxLand.Sounds[1] = GenshinImpactOverhaul.GamingLand2; ___enemyTumblerAnim.sfxLand.Sounds[2] = GenshinImpactOverhaul.GamingLand3; ___enemyTumblerAnim.sfxNotice.Sounds[0] = GenshinImpactOverhaul.GamingNotice; ___enemyTumblerAnim.sfxStunnedLoop.Sounds[0] = GenshinImpactOverhaul.GamingStunnedLoop; ___enemyTumblerAnim.sfxTumbleLoopLocal.Sounds[0] = GenshinImpactOverhaul.GamingTumbleLocal; ___enemyTumblerAnim.sfxTumbleLoopGlobal.Sounds[0] = GenshinImpactOverhaul.GamingTumbleGlobal; Transform val2 = ((Component)__instance).transform.parent.Find("Rigidbody/Collider Body"); if ((Object)(object)val2 != (Object)null) { CapsuleCollider component = ((Component)val2).GetComponent(); component.direction = 2; component.center = new Vector3(0f, 0f, 1.1f); component.height = 3.5f; component.radius = 0.8f; } } } } [HarmonyPatch(typeof(EnemyTumblerAnim))] internal class EnemyTumblerAnimPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] public static void ReplaceAnimator(EnemyTumblerAnim __instance) { if (!GenshinImpactOverhaul.GamingReplacement.Value) { return; } ((Behaviour)((Component)__instance).gameObject.GetComponent()).enabled = false; FieldInfo field = typeof(EnemyTumblerAnim).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("Gaming(Clone)"); if (!((Object)(object)val2 == (Object)null)) { Animator component = ((Component)val2).GetComponent(); if ((Object)(object)val != (Object)(object)component) { field.SetValue(__instance, component); } } } [HarmonyPatch("Update")] [HarmonyPostfix] public static void FixFloating(EnemyTumblerAnim __instance) { //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) if (!GenshinImpactOverhaul.GamingReplacement.Value) { return; } ((Component)__instance).transform.Find("Gaming(Clone)").localPosition = new Vector3(0f, 0f, 0f); Transform val = ((Component)__instance).transform.Find("Gaming(Clone)"); if ((Object)(object)val != (Object)null) { Animator component = ((Component)val).GetComponent(); if ((Object)(object)component != (Object)null && component.GetBool("tumble")) { ((Component)((Component)__instance).transform.Find("Hurt Collider")).gameObject.SetActive(true); } else { ((Component)((Component)__instance).transform.Find("Hurt Collider")).gameObject.SetActive(false); } val.localRotation = Quaternion.identity; } } } [HarmonyPatch(typeof(EnemyUpscream))] internal class EnemyUpscreamPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] private static void ReplaceAssets(EnemyUpscream __instance, ref EnemyUpscreamAnim ___upscreamAnim) { //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) //IL_021d: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.IansanReplacement.Value) { Modifiers.TurnOffRenderers(((Component)__instance).transform); GameObject val = Object.Instantiate(GenshinImpactOverhaul.IansanPrefab); val.transform.parent = ((Component)__instance).transform.parent.Find("Rigidbody"); Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, -0.35f, 0f), new Vector3(1.3f, 1.3f, 1.3f)); val.AddComponent(); ((Component)((Component)__instance).transform.parent.parent).GetComponent().enemyName = "Iansan"; AudioClip[] sounds = (AudioClip[])(object)new AudioClip[1] { GenshinImpactOverhaul.IansanDespawn }; ___upscreamAnim.despawnSound.Sounds = sounds; AudioClip[] sounds2 = (AudioClip[])(object)new AudioClip[1] { GenshinImpactOverhaul.IansanJump }; ___upscreamAnim.jumpSound.Sounds = sounds2; AudioClip[] sounds3 = (AudioClip[])(object)new AudioClip[1] { GenshinImpactOverhaul.IansanLand }; ___upscreamAnim.landSound.Sounds = sounds3; AudioClip[] sounds4 = (AudioClip[])(object)new AudioClip[3] { GenshinImpactOverhaul.IansanIdle1, GenshinImpactOverhaul.IansanIdle2, GenshinImpactOverhaul.IansanIdle3 }; ___upscreamAnim.sfxIdleBreak.Sounds = sounds4; ___upscreamAnim.hurtSound.Sounds[0] = GenshinImpactOverhaul.IansanHurt1; ___upscreamAnim.hurtSound.Sounds[1] = GenshinImpactOverhaul.IansanHurt2; ___upscreamAnim.hurtSound.Sounds[2] = GenshinImpactOverhaul.IansanHurt3; ___upscreamAnim.sfxAttackGlobal.Sounds[0] = GenshinImpactOverhaul.IansanScream1Global; ___upscreamAnim.sfxAttackGlobal.Sounds[1] = GenshinImpactOverhaul.IansanScream2Global; ___upscreamAnim.sfxAttackGlobal.Sounds[2] = GenshinImpactOverhaul.IansanScream3Global; ___upscreamAnim.sfxAttackLocal.Sounds[0] = GenshinImpactOverhaul.IansanScream1Local; ___upscreamAnim.sfxAttackLocal.Sounds[1] = GenshinImpactOverhaul.IansanScream2Local; ___upscreamAnim.sfxAttackLocal.Sounds[2] = GenshinImpactOverhaul.IansanScream3Local; Transform val2 = ((Component)__instance).transform.parent.Find("Rigidbody/Capsule Collider"); if ((Object)(object)val2 != (Object)null) { CapsuleCollider component = ((Component)val2).GetComponent(); component.center = new Vector3(0f, 0.23f, -0.1f); component.height = 2.5f; component.radius = 0.55f; } } } } [HarmonyPatch(typeof(EnemyUpscreamAnim))] internal class UpscreamAnimPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] public static void ReplaceAnimator(EnemyUpscreamAnim __instance) { if (!GenshinImpactOverhaul.IansanReplacement.Value) { return; } FieldInfo field = typeof(EnemyUpscreamAnim).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.parent.parent.Find("Iansan(Clone)"); if (!((Object)(object)val2 == (Object)null)) { Animator component = ((Component)val2).GetComponent(); if ((Object)(object)val != (Object)(object)component) { field.SetValue(__instance, component); } } } [HarmonyPatch("Update")] [HarmonyPostfix] public static void FixFloating(EnemyUpscreamAnim __instance) { //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.IansanReplacement.Value) { ((Component)__instance).transform.parent.parent.Find("Iansan(Clone)").localPosition = new Vector3(0f, -0.35f, 0f); ((Component)__instance).transform.parent.parent.Find("Iansan(Clone)").localRotation = Quaternion.identity; } } } [HarmonyPatch(typeof(EnemyValuableThrower))] internal class EnemyValuableThrowerPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] private static void ReplaceAssets(EnemyValuableThrower __instance, ref EnemyValuableThrowerAnim ___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) //IL_01ef: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.KachinaReplacement.Value) { Modifiers.TurnOffRenderers(((Component)__instance).transform); GameObject val = Object.Instantiate(GenshinImpactOverhaul.KachinaPrefab); val.transform.parent = ((Component)__instance).transform.parent.Find("Visuals"); Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, -0.5f, 0f), new Vector3(1f, 1f, 1f)); val.AddComponent(); ((Component)((Component)__instance).transform.parent.parent).GetComponent().enemyName = "Kachina"; ___anim.deathSound.Sounds[0] = GenshinImpactOverhaul.KachinaDeath; ___anim.despawnSound.Sounds[0] = GenshinImpactOverhaul.KachinaDespawn; ___anim.hurtSound.Sounds[0] = GenshinImpactOverhaul.KachinaHurt1; ___anim.hurtSound.Sounds[1] = GenshinImpactOverhaul.KachinaHurt2; ___anim.hurtSound.Sounds[2] = GenshinImpactOverhaul.KachinaHurt3; ___anim.jumpSound.Sounds[0] = GenshinImpactOverhaul.KachinaJump; ___anim.landSound.Sounds[0] = GenshinImpactOverhaul.KachinaLand; ___anim.noticeSound.Sounds[0] = GenshinImpactOverhaul.KachinaNotice; ___anim.pickupIntroSound.Sounds[0] = GenshinImpactOverhaul.KachinaPickupIntro; ___anim.pickupOutroTellSound.Sounds[0] = GenshinImpactOverhaul.KachinaPickupOutroTell; ___anim.pickupOutroThrowSound.Sounds[0] = GenshinImpactOverhaul.KachinaPickupOutroThrow; ___anim.spawnSound.Sounds[0] = GenshinImpactOverhaul.KachinaSpawn; ___anim.stunStopSound.Sounds[0] = GenshinImpactOverhaul.KachinaStunOutro; ___anim.stunSound.Sounds[0] = GenshinImpactOverhaul.KachinaStunLoop; Transform val2 = ((Component)__instance).transform.parent.Find("Rigidbody/Collider"); if ((Object)(object)val2 != (Object)null) { CapsuleCollider component = ((Component)val2).GetComponent(); component.center = new Vector3(0f, 0.2f, 0f); component.height = 2.6f; component.radius = 0.5f; } } } [HarmonyPatch("StateGoToTarget")] [HarmonyTranspiler] private static IEnumerable FixAggressiveStuckTrigger(IEnumerable instructions) { List list = new List(instructions); for (int i = 0; i < list.Count; i++) { if (list[i].opcode == OpCodes.Ldc_R4 && Mathf.Approximately((float)list[i].operand, 1.5f)) { list[i].operand = 2.8f; break; } } return list; } } [HarmonyPatch(typeof(EnemyValuableThrowerAnim))] internal class ValuableThrowerAnimPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] public static void ReplaceAnimator(EnemyValuableThrowerAnim __instance) { if (!GenshinImpactOverhaul.KachinaReplacement.Value) { return; } FieldInfo field = typeof(EnemyValuableThrowerAnim).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("Kachina(Clone)"); if (!((Object)(object)val2 == (Object)null)) { Animator component = ((Component)val2).GetComponent(); if ((Object)(object)val != (Object)(object)component) { field.SetValue(__instance, component); } } } [HarmonyPatch("Update")] [HarmonyPostfix] public static void FixFloating(EnemyValuableThrowerAnim __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_0060: 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_0081: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.KachinaReplacement.Value) { ((Component)__instance).transform.Find("Kachina(Clone)").localPosition = new Vector3(0f, -0.5f, 0f); ((Component)__instance).transform.Find("Kachina(Clone)").localRotation = Quaternion.identity; Vector3 localPosition = __instance.controller.pickupTargetParent.localPosition; localPosition.y += 0.7f; __instance.controller.pickupTargetParent.localPosition = localPosition; } } } [HarmonyPatch(typeof(EnemyBombThrower))] internal class EnemyBombThrowerPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] private static void ReplaceAssets(EnemyBombThrower __instance, ref EnemyBombThrowerAnim ___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) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: Unknown result type (might be due to invalid IL or missing references) //IL_0259: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.ColleiReplacement.Value) { Modifiers.TurnOffRenderers(((Component)__instance).transform); GameObject val = Object.Instantiate(GenshinImpactOverhaul.ColleiPrefab); val.transform.parent = ((Component)__instance).transform.parent.Find("Visuals"); Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, -0.3f, 0f), new Vector3(1f, 1f, 1f)); Transform headSpawnTransform = __instance.headSpawnTransform; headSpawnTransform.position += new Vector3(0f, -0.3f, 0f); val.AddComponent(); ((Component)((Component)__instance).transform.parent.parent).GetComponent().enemyName = "Collei"; ___anim.soundDeath.Sounds[0] = GenshinImpactOverhaul.ColleiDeath; ___anim.soundIdleLoop.Sounds[0] = GenshinImpactOverhaul.ColleiIdleLoop; ___anim.soundJump.Sounds[0] = GenshinImpactOverhaul.ColleiJump; ___anim.soundLand.Sounds[0] = GenshinImpactOverhaul.ColleiLand; ___anim.soundHurt.Sounds[0] = GenshinImpactOverhaul.ColleiHurt1; ___anim.soundHurt.Sounds[1] = GenshinImpactOverhaul.ColleiHurt2; ___anim.soundHurt.Sounds[2] = GenshinImpactOverhaul.ColleiHurt3; ___anim.soundTorsoHeadsMelee.Sounds[0] = GenshinImpactOverhaul.ColleiMelee; ___anim.soundTorsoHeadsMeleeGlobal.Sounds[0] = GenshinImpactOverhaul.ColleiMeleeGlobal; ___anim.soundHeadDetachTell.Sounds[0] = GenshinImpactOverhaul.ColleiHeadDetachTell; ___anim.soundTorsoHeadsScream.Sounds[0] = GenshinImpactOverhaul.ColleiNotice; ___anim.soundTorsoHeadsScreamGlobal.Sounds[0] = GenshinImpactOverhaul.ColleiNoticeGlobal; Transform val2 = ((Component)__instance).transform.parent.Find("Rigidbody/Collider Bot"); if ((Object)(object)val2 != (Object)null) { CapsuleCollider component = ((Component)val2).GetComponent(); component.center = new Vector3(0f, -0.25f, 0f); component.height = 1.6f; component.radius = 0.3f; } Transform val3 = ((Component)__instance).transform.parent.Find("Rigidbody/Collider Top"); if ((Object)(object)val3 != (Object)null) { CapsuleCollider component2 = ((Component)val3).GetComponent(); component2.center = new Vector3(0f, 0f, 0f); component2.height = 0f; component2.radius = 0f; } Transform val4 = ((Component)__instance).transform.parent.Find("Rigidbody/Head Collider"); if ((Object)(object)val4 != (Object)null) { SphereCollider component3 = ((Component)val4).GetComponent(); component3.center = new Vector3(0f, 0f, 0f); component3.radius = 0f; } } } } [HarmonyPatch(typeof(EnemyBombThrowerAnim))] internal class BombThrowerAnimPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] public static void ReplaceAnimator(EnemyBombThrowerAnim __instance) { if (!GenshinImpactOverhaul.ColleiReplacement.Value) { return; } Object.Destroy((Object)(object)((Component)__instance).GetComponent()); FieldInfo field = typeof(EnemyBombThrowerAnim).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("Collei(Clone)"); if (!((Object)(object)val2 == (Object)null)) { Animator component = ((Component)val2).GetComponent(); if ((Object)(object)val != (Object)(object)component) { field.SetValue(__instance, component); } } } [HarmonyPatch("Update")] [HarmonyPostfix] public static void FixFloating(EnemyBombThrowerAnim __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) if (GenshinImpactOverhaul.ColleiReplacement.Value) { ((Component)__instance).transform.Find("Collei(Clone)").localPosition = new Vector3(0f, -0.3f, 0f); ((Component)__instance).transform.Find("Collei(Clone)").localRotation = Quaternion.identity; } } } [HarmonyPatch(typeof(EnemyBombThrowerHead))] internal class BombThrowerHeadAnimPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] public static void ReplaceAnimator(EnemyBombThrowerHead __instance) { //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.ColleiReplacement.Value) { Modifiers.TurnOffRenderers(((Component)__instance).transform); GameObject val = Object.Instantiate(GenshinImpactOverhaul.ColleiCat); val.transform.parent = ((Component)__instance).transform; Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, 0f, 0f), new Vector3(80f, 80f, 80f)); __instance.soundHeadDetach.Sounds[0] = GenshinImpactOverhaul.ColleiHeadDetach; __instance.soundExplosionTell.Sounds[0] = GenshinImpactOverhaul.ColleiHeadExplosionTell; __instance.soundLaugh.Sounds[0] = GenshinImpactOverhaul.ColleiHeadLaugh; } } [HarmonyPatch("Update")] [HarmonyPostfix] public static void FixFloating(EnemyBombThrowerHead __instance) { //IL_0020: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.ColleiReplacement.Value) { ((Component)__instance).transform.Find("Cat(Clone)").localRotation = Quaternion.identity; } } } [HarmonyPatch(typeof(EnemyBirthdayBoy))] internal class EnemyBirthdayBoyPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] private static void ReplaceAssets(EnemyBirthdayBoy __instance) { //IL_005b: 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) //IL_0083: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.ColleiReplacement.Value) { Modifiers.TurnOffRenderers(((Component)__instance).transform); GameObject val = Object.Instantiate(GenshinImpactOverhaul.GanyuPrefab); val.transform.parent = ((Component)__instance).transform.parent.Find("[VISUALS]").Find("BirthdayBoyVisuals"); Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)); val.AddComponent(); ((Component)((Component)__instance).transform.parent.parent).GetComponent().enemyName = "Ganyu"; } } } [HarmonyPatch(typeof(BirthdayBoyAnim))] internal class BirthdayBoyAnimPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] public static void ReplaceAnimator(BirthdayBoyAnim __instance) { if (GenshinImpactOverhaul.GanyuReplacement.Value) { __instance.animator = ((Component)((Component)__instance).transform.Find("Ganyu(Clone)")).GetComponent(); __instance.deathSound.Sounds[0] = GenshinImpactOverhaul.GanyuDeath1; __instance.deathSound.Sounds[1] = GenshinImpactOverhaul.GanyuDeath2; __instance.deathSound.Sounds[2] = GenshinImpactOverhaul.GanyuDeath3; __instance.hurtSound.Sounds[0] = GenshinImpactOverhaul.GanyuHurt1; __instance.hurtSound.Sounds[1] = GenshinImpactOverhaul.GanyuHurt2; __instance.hurtSound.Sounds[2] = GenshinImpactOverhaul.GanyuHurt3; __instance.inhaleSound.Sounds[0] = GenshinImpactOverhaul.GanyuInhale1; __instance.inhaleSound.Sounds[1] = GenshinImpactOverhaul.GanyuInhale2; __instance.inhaleSound.Sounds[2] = GenshinImpactOverhaul.GanyuInhale3; __instance.attackSwoosh.Sounds[0] = GenshinImpactOverhaul.GanyuAttackSwoosh1; __instance.attackSwoosh.Sounds[1] = GenshinImpactOverhaul.GanyuAttackSwoosh2; __instance.idleBreakers[0] = GenshinImpactOverhaul.GanyuIdleBreak1; __instance.idleBreakers[1] = GenshinImpactOverhaul.GanyuIdleBreak2; __instance.idleBreakers[2] = GenshinImpactOverhaul.GanyuIdleBreak3; __instance.idleBreakers[3] = GenshinImpactOverhaul.GanyuIdleBreak4; __instance.idleLoop.Sounds[0] = GenshinImpactOverhaul.GanyuIdleLoop; __instance.jumpSound.Sounds[0] = GenshinImpactOverhaul.GanyuJump1; __instance.jumpSound.Sounds[1] = GenshinImpactOverhaul.GanyuJump2; __instance.jumpSound.Sounds[2] = GenshinImpactOverhaul.GanyuJump3; __instance.landSound.Sounds[0] = GenshinImpactOverhaul.GanyuLand1; __instance.landSound.Sounds[1] = GenshinImpactOverhaul.GanyuLand2; __instance.landSound.Sounds[2] = GenshinImpactOverhaul.GanyuLand3; __instance.noticeSound.Sounds[0] = GenshinImpactOverhaul.GanyuNotice1; __instance.noticeSound.Sounds[1] = GenshinImpactOverhaul.GanyuNotice2; __instance.noticeSound.Sounds[2] = GenshinImpactOverhaul.GanyuNotice3; __instance.aggroLoop.Sounds[0] = GenshinImpactOverhaul.GanyuRunAttackLoop; __instance.runLoop.Sounds[0] = GenshinImpactOverhaul.GanyuRunAttackLoop; } } [HarmonyPatch("Update")] [HarmonyPostfix] public static void FixFloating(BirthdayBoyAnim __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) if (GenshinImpactOverhaul.GanyuReplacement.Value) { ((Component)__instance).transform.Find("Ganyu(Clone)").localPosition = new Vector3(0f, 0f, 0f); ((Component)__instance).transform.Find("Ganyu(Clone)").localRotation = Quaternion.identity; } } } [HarmonyPatch(typeof(BirthdayBoyBalloon))] internal class BirthdayBoyBalloonPatch { [HarmonyPatch("TakeToSpawnPoint")] [HarmonyPostfix] public static void ReplaceAnimator(BirthdayBoyBalloon __instance) { //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.GanyuReplacement.Value) { Modifiers.TurnOffRenderers(((Component)__instance).transform.parent); GameObject val = Object.Instantiate(GenshinImpactOverhaul.GanyuBall); val.transform.parent = ((Component)__instance).transform.parent; Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, 0f, 0f), new Vector3(100f, 100f, 100f)); val.AddComponent(); } } } [HarmonyPatch(typeof(BirthdayBoyBalloonPopParticle))] internal class BirthdayBoyBalloonPopPatch { [HarmonyPatch("ChangeParticleColor")] [HarmonyPostfix] public static void ReplaceAnimator(BirthdayBoyBalloonPopParticle __instance) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: 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_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.GanyuReplacement.Value) { MainModule main = __instance.ps.main; ((MainModule)(ref main)).startColor = MinMaxGradient.op_Implicit(Color.cyan); ((Renderer)((Component)__instance.ps).GetComponent()).material = GenshinImpactOverhaul.GanyuMaterial; MainModule main2 = __instance.ps2.main; ((MainModule)(ref main2)).startColor = MinMaxGradient.op_Implicit(Color.cyan); ((Renderer)((Component)__instance.ps2).GetComponent()).material = GenshinImpactOverhaul.GanyuMaterial; } } } public class GanyuBall : MonoBehaviour { [SerializeField] private float rotationSpeed = 30f; private void Update() { ((Component)this).transform.Rotate(0f, (0f - rotationSpeed) * Time.deltaTime, 0f); } } [HarmonyPatch(typeof(EnemyElsa))] internal class EnemyElsaPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] private static void ReplaceAssets(EnemyElsa __instance) { //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) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.AinoIneffaReplacement.Value) { Modifiers.TurnOffRenderers(((Component)__instance).transform); GameObject val = Object.Instantiate(GenshinImpactOverhaul.AinoIneffaPrefab); 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(); ((Component)((Component)__instance).transform.parent.parent).GetComponent().enemyName = "Aino"; Transform val2 = ((Component)__instance).transform.parent.Find("Rigidbody/Small Elsa/Small Elsa - Collider"); if ((Object)(object)val2 != (Object)null) { CapsuleCollider component = ((Component)val2).GetComponent(); component.center = new Vector3(0f, 0.35f, 0f); component.height = 1.3f; component.radius = 0.26f; } Transform val3 = ((Component)__instance).transform.parent.Find("Rigidbody/Big Elsa/Big Elsa - Collider"); if ((Object)(object)val3 != (Object)null) { CapsuleCollider component2 = ((Component)val3).GetComponent(); component2.center = new Vector3(0f, -0.2f, 0f); component2.height = 1.8f; component2.radius = 0.37f; } } } } [HarmonyPatch(typeof(EnemyElsaAnim))] internal class ElsaAnimPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] public static void ReplaceAnimator(EnemyElsaAnim __instance) { if (!GenshinImpactOverhaul.AinoIneffaReplacement.Value) { return; } FieldInfo field = typeof(EnemyElsaAnim).GetField("animator", BindingFlags.Instance | BindingFlags.NonPublic); if (field == null) { return; } object? value = field.GetValue(__instance); Animator val = (Animator)((value is Animator) ? value : null); Object.Destroy((Object)(object)((Component)__instance).GetComponent()); Transform val2 = ((Component)__instance).transform.Find("AinoIneffa(Clone)"); if (!((Object)(object)val2 == (Object)null)) { Animator component = ((Component)val2).GetComponent(); component.avatar = ((Component)val2.Find("Aino")).GetComponent().avatar; if ((Object)(object)val != (Object)(object)component) { field.SetValue(__instance, component); } __instance.barkSmallSound.Sounds[0] = GenshinImpactOverhaul.AinoIneffaBarkSmall1; __instance.barkSmallSound.Sounds[1] = GenshinImpactOverhaul.AinoIneffaBarkSmall2; __instance.barkSmallSound.Sounds[2] = GenshinImpactOverhaul.AinoIneffaBarkSmall3; __instance.barkBigSoundLocal.Sounds[0] = GenshinImpactOverhaul.AinoIneffaBarkBig1; __instance.barkBigSoundLocal.Sounds[1] = GenshinImpactOverhaul.AinoIneffaBarkBig2; __instance.barkBigSoundLocal.Sounds[2] = GenshinImpactOverhaul.AinoIneffaBarkBig3; __instance.lookUnderAttackBigSound.Sounds[0] = GenshinImpactOverhaul.AinoIneffaBarkBig1; __instance.lookUnderAttackBigSound.Sounds[1] = GenshinImpactOverhaul.AinoIneffaBarkBig2; __instance.lookUnderAttackBigSound.Sounds[2] = GenshinImpactOverhaul.AinoIneffaBarkBig3; __instance.barkBigSoundGlobal.Sounds[0] = GenshinImpactOverhaul.AinoIneffaBarkBigGlobal1; __instance.barkBigSoundGlobal.Sounds[1] = GenshinImpactOverhaul.AinoIneffaBarkBigGlobal2; __instance.barkBigSoundGlobal.Sounds[2] = GenshinImpactOverhaul.AinoIneffaBarkBigGlobal3; __instance.deathBigSound.Sounds[0] = GenshinImpactOverhaul.AinoIneffaBigDeath; __instance.deathSmallSound.Sounds[0] = GenshinImpactOverhaul.AinoIneffaSmallDeath; __instance.flySmallSoundLoop.Sounds[0] = GenshinImpactOverhaul.AinoIneffaFlyLoop; __instance.hurtBigSound.Sounds[0] = GenshinImpactOverhaul.AinoIneffaBigHurt1; __instance.hurtBigSound.Sounds[1] = GenshinImpactOverhaul.AinoIneffaBigHurt2; __instance.hurtBigSound.Sounds[2] = GenshinImpactOverhaul.AinoIneffaBigHurt3; __instance.hurtSmallSound.Sounds[0] = GenshinImpactOverhaul.AinoIneffaSmallHurt1; __instance.hurtSmallSound.Sounds[1] = GenshinImpactOverhaul.AinoIneffaSmallHurt2; __instance.hurtSmallSound.Sounds[2] = GenshinImpactOverhaul.AinoIneffaSmallHurt3; __instance.pantingSmallNormalSoundLoop.Sounds[0] = GenshinImpactOverhaul.AinoIneffaPantingSmall; __instance.pantingSmallNormalSoundLoop.Pitch = 1f; __instance.pantingBigSoundLoop.Sounds[0] = GenshinImpactOverhaul.AinoIneffaPantingBig; __instance.stunSmallSoundLoop.Sounds[0] = GenshinImpactOverhaul.AinoIneffaStunLoop; __instance.transformStartSound.Sounds[0] = GenshinImpactOverhaul.AinoIneffaTransformationStart; __instance.transformStingerSound = GenshinImpactOverhaul.AinoIneffaBigStinger; __instance.petSmallSound.Sounds[0] = GenshinImpactOverhaul.AinoIneffaPet1; __instance.petSmallSound.Sounds[1] = GenshinImpactOverhaul.AinoIneffaPet2; __instance.petSmallSound.Sounds[2] = GenshinImpactOverhaul.AinoIneffaPet3; __instance.barkIdleBreaker01_01SmallSound.Sounds[0] = GenshinImpactOverhaul.AinoIneffaIdleBreak1; __instance.barkIdleBreaker01_02SmallSound.Sounds[0] = GenshinImpactOverhaul.AinoIneffaIdleBreak2; __instance.barkIdleBreaker02_01SmallSound.Sounds[0] = GenshinImpactOverhaul.AinoIneffaIdleBreak3; __instance.barkIdleBreaker02_02SmallSound.Sounds[0] = GenshinImpactOverhaul.AinoIneffaIdleBreak4; } } [HarmonyPatch("Update")] [HarmonyPostfix] public static void FixFloating(EnemyElsaAnim __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) if (GenshinImpactOverhaul.AinoIneffaReplacement.Value) { ((Component)__instance).transform.Find("AinoIneffa(Clone)").localPosition = new Vector3(0f, 0f, 0f); ((Component)__instance).transform.Find("AinoIneffa(Clone)").localRotation = Quaternion.identity; } } [HarmonyPatch("TransformBigToSmall")] [HarmonyPostfix] public static void TransformBigToSmall(EnemyElsaAnim __instance) { if (GenshinImpactOverhaul.AinoIneffaReplacement.Value) { ((Component)((Component)__instance.controller).gameObject.transform.parent.parent).GetComponent().enemyName = "Aino"; } } [HarmonyPatch("TransformSmallToBig")] [HarmonyPostfix] public static void TransformSmallToBig(EnemyElsaAnim __instance) { if (GenshinImpactOverhaul.AinoIneffaReplacement.Value) { ((Component)((Component)__instance.controller).gameObject.transform.parent.parent).GetComponent().enemyName = "Ineffa"; } } } [HarmonyPatch(typeof(EnemyShadow))] internal class EnemyShadowPatch { private struct VfxRefs { public ParticleSystem idle; public ParticleSystem implosion; public ParticleSystem explosion; } private static readonly Dictionary vfxCache = new Dictionary(); private static readonly Dictionary previousStates = new Dictionary(); private static readonly Dictionary animators = new Dictionary(); private static readonly FieldRef reachDownToPlayerRef = AccessTools.FieldRefAccess("distanceFromPlayer"); private static readonly Dictionary idlePulseById = new Dictionary(); private static readonly Dictionary implosionById = new Dictionary(); [HarmonyPatch("Awake")] [HarmonyPostfix] private static void ReplaceAssets(EnemyShadow __instance) { //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.DottoreReplacement.Value) { Modifiers.TurnOffRenderers(((Component)__instance).transform); GameObject val = Object.Instantiate(GenshinImpactOverhaul.DottorePrefab); val.transform.parent = ((Component)__instance).transform.parent.Find("[VISUALS]"); Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, -0.1f, 0f), new Vector3(0.9f, 0.9f, 0.9f)); val.AddComponent(); ((Component)((Component)__instance).transform.parent.parent).GetComponent().enemyName = "Il Dottore"; __instance.screenVeinEffect.gameObject.GetComponent().handSpriteRenderer.sprite = GenshinImpactOverhaul.DottoreSprite; __instance.screenVeinEffect.gameObject.GetComponent().veinSpriteRenderer.sprite = null; } } [HarmonyPatch(typeof(EnemyShadow), "Update")] [HarmonyPrefix] private static void StateMachineSwitch(EnemyShadow __instance) { //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Invalid comparison between Unknown and I4 //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Expected I4, but got Unknown //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_034d: Unknown result type (might be due to invalid IL or missing references) //IL_0350: Invalid comparison between Unknown and I4 if (!GenshinImpactOverhaul.DottoreReplacement.Value) { return; } int instanceID = ((Object)__instance).GetInstanceID(); Transform parent = ((Component)__instance).transform.parent; Transform val = ((parent != null) ? parent.Find("[VISUALS]") : null); if ((Object)(object)val == (Object)null) { return; } Transform val2 = val.Find("Dottore(Clone)"); if ((Object)(object)val2 == (Object)null) { return; } Transform val3 = val2.Find("Monster_Dotorre_01_Model/Root/Bone_CoreDeviceBody01_M/Bone_Core01_M/DottoreVfx"); if ((Object)(object)val3 == (Object)null) { return; } if (!animators.TryGetValue(instanceID, out var value) || (Object)(object)value == (Object)null) { value = ((Component)val2).GetComponent(); if ((Object)(object)value == (Object)null) { return; } animators[instanceID] = value; } State currentState = __instance.currentState; bool flag = (int)currentState == 0 || (int)currentState == 2; if (!previousStates.TryGetValue(instanceID, out var value2) || currentState != value2) { value.SetInteger("State", (int)currentState); previousStates[instanceID] = currentState; } float num = reachDownToPlayerRef.Invoke(__instance); value.SetFloat("DistanceToPlayer", num); Transform transform = ((Component)value).transform; transform.localPosition = new Vector3(0f, -0.1f, 0f); transform.localRotation = Quaternion.identity; if (!vfxCache.TryGetValue(instanceID, out var value3)) { VfxRefs vfxRefs = default(VfxRefs); vfxRefs.idle = FindParticleSystem(val3, "IdlePulse"); vfxRefs.implosion = FindParticleSystem(val3, "ImplosionCircle"); vfxRefs.explosion = FindParticleSystem(val3, "ExplodingCircle"); value3 = vfxRefs; vfxCache[instanceID] = value3; } if (num <= 2f) { if ((Object)(object)value3.implosion != (Object)null && !value3.implosion.isPlaying) { value3.implosion.Play(); } if ((Object)(object)value3.idle != (Object)null && value3.idle.isPlaying) { value3.idle.Stop(true, (ParticleSystemStopBehavior)0); } } else if (num < 6f && !flag) { if ((Object)(object)value3.implosion != (Object)null && value3.implosion.isPlaying) { value3.implosion.Stop(true, (ParticleSystemStopBehavior)1); } if ((Object)(object)value3.idle != (Object)null && !value3.idle.isPlaying) { value3.idle.Play(); } } else { if ((Object)(object)value3.idle != (Object)null && value3.idle.isPlaying) { value3.idle.Stop(true, (ParticleSystemStopBehavior)0); } if ((Object)(object)value3.implosion != (Object)null && value3.implosion.isPlaying) { value3.implosion.Stop(true, (ParticleSystemStopBehavior)1); } } if ((int)currentState == 5) { if ((Object)(object)value3.explosion != (Object)null && !value3.explosion.isPlaying) { value3.explosion.Play(); } } else if ((Object)(object)value3.explosion != (Object)null && value3.explosion.isPlaying) { value3.explosion.Stop(true, (ParticleSystemStopBehavior)0); } } private static ParticleSystem FindParticleSystem(Transform parent, string childName) { Transform val = parent.Find(childName); if ((Object)(object)val == (Object)null) { return null; } ParticleSystem component = ((Component)val).GetComponent(); if ((Object)(object)component != (Object)null) { return component; } return ((Component)val).GetComponentInChildren(true); } } [HarmonyPatch(typeof(EnemyShadowAnim))] internal class EnemyShadowAnimePatch { [HarmonyPatch("Awake")] [HarmonyPostfix] private static void ReplaceAssets(EnemyShadowAnim __instance) { if (GenshinImpactOverhaul.DottoreReplacement.Value) { __instance.clapTell.Sounds[0] = GenshinImpactOverhaul.DottoreAttackTell; __instance.clapTell.Volume = 0.75f; __instance.backCrackLong.Sounds[0] = GenshinImpactOverhaul.DottoreBackCrackLong1; __instance.backCrackLong.Sounds[1] = GenshinImpactOverhaul.DottoreBackCrackLong2; __instance.backCrackLong.Sounds[2] = GenshinImpactOverhaul.DottoreBackCrackLong3; __instance.backCrackLong.Volume = 0.5f; __instance.backCrackShort.Sounds[0] = GenshinImpactOverhaul.DottoreBackCrackShort1; __instance.backCrackShort.Sounds[1] = GenshinImpactOverhaul.DottoreBackCrackShort2; __instance.backCrackShort.Sounds[2] = GenshinImpactOverhaul.DottoreBackCrackShort3; __instance.backCrackShort.Volume = 0.5f; __instance.neckCrackLong.Sounds[0] = GenshinImpactOverhaul.DottoreNeckCrackLong1; __instance.neckCrackLong.Sounds[1] = GenshinImpactOverhaul.DottoreNeckCrackLong2; __instance.neckCrackLong.Sounds[2] = GenshinImpactOverhaul.DottoreNeckCrackLong3; __instance.neckCrackLong.Volume = 0.5f; __instance.neckCrackShort.Sounds[0] = GenshinImpactOverhaul.DottoreNeckCrackShort1; __instance.neckCrackShort.Sounds[1] = GenshinImpactOverhaul.DottoreNeckCrackShort2; __instance.neckCrackShort.Sounds[2] = GenshinImpactOverhaul.DottoreNeckCrackShort3; __instance.neckCrackShort.Volume = 0.3f; __instance.hurtSound.Sounds[0] = GenshinImpactOverhaul.DottoreHurt3; __instance.hurtSound.Sounds[1] = GenshinImpactOverhaul.DottoreHurt2; __instance.hurtSound.Sounds[2] = GenshinImpactOverhaul.DottoreHurt1; __instance.neckCrackShort.Volume = 0.75f; __instance.deathSound.Sounds[0] = GenshinImpactOverhaul.DottoreDeath1; __instance.deathSound.Sounds[1] = GenshinImpactOverhaul.DottoreDeath2; __instance.deathSound.Sounds[2] = GenshinImpactOverhaul.DottoreDeath3; __instance.idleLoop.Sounds[0] = GenshinImpactOverhaul.DottoreLoop; __instance.idleLoop.Volume = 0.3f; __instance.targeted.Sounds[0] = GenshinImpactOverhaul.DottoreTarget; __instance.targeted.Volume = 0.8f; __instance.notTargeted.Sounds[0] = GenshinImpactOverhaul.DottoreNonTarget; __instance.notTargeted.Volume = 0.8f; __instance.clapSound.Sounds[0] = GenshinImpactOverhaul.DottoreSlap; __instance.clapSound.Sounds[1] = GenshinImpactOverhaul.DottoreSlap; __instance.clapSound.Sounds[2] = GenshinImpactOverhaul.DottoreSlap; __instance.globalClapSound.Sounds[0] = GenshinImpactOverhaul.DottoreSlapGlobal; __instance.globalClapSound.Sounds[1] = GenshinImpactOverhaul.DottoreSlapGlobal; __instance.globalClapSound.Sounds[2] = GenshinImpactOverhaul.DottoreSlapGlobal; } } } [HarmonyPatch(typeof(EnemyTricycle))] internal class EnemyTricyclePatch { private static readonly FieldRef currentStateAccessor = AccessTools.FieldRefAccess("currentState"); private static readonly Dictionary lastLocalPlay = new Dictionary(); private static float lastGlobalPlayTime = -999f; private static readonly FieldInfo bellRingCountField = AccessTools.Field(typeof(EnemyTricycle), "bellRingCount"); private static readonly FieldRef enemyRef = AccessTools.FieldRefAccess("enemy"); private static readonly FieldRef rattlePlayingRef = AccessTools.FieldRefAccess("rattlePlayingState"); private static readonly FieldRef squeakPlayingRef = AccessTools.FieldRefAccess("squeakPlayingState"); private static readonly FieldInfo audioBellGlobalField = AccessTools.Field(typeof(EnemyTricycle), "audioBellGlobal"); private const float cooldown = 2f; private static readonly Dictionary previousStates = new Dictionary(); private static readonly Dictionary skirkAnimators = new Dictionary(); private static readonly Dictionary lastPositions = new Dictionary(); [HarmonyPatch("Awake")] [HarmonyPostfix] private static void ReplaceAssets(EnemyTricycle __instance) { //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_03fc: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.SkirkReplacement.Value) { Modifiers.TurnOffRenderers(((Component)__instance).transform); GameObject val = Object.Instantiate(GenshinImpactOverhaul.SkirkPrefab); val.transform.parent = ((Component)__instance).transform.parent; Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)); ((Component)((Component)__instance).transform.parent.parent).GetComponent().enemyName = "Skirk"; ((Component)((Component)__instance).transform.parent.parent.Find("Death Particles").Find("Wheel")).gameObject.SetActive(false); __instance.audioDeath.Sounds[0] = GenshinImpactOverhaul.SkirkDeath1; __instance.audioDeath.Sounds[1] = GenshinImpactOverhaul.SkirkDeath2; __instance.audioDeath.Sounds[2] = GenshinImpactOverhaul.SkirkDeath3; __instance.audioFinalBellBuildup.Sounds[0] = GenshinImpactOverhaul.SkirkBellBuildup; __instance.audioRiderStunnedLoop.Sounds[0] = GenshinImpactOverhaul.SkirkStunLoop; __instance.audioAttack.Sounds[0] = GenshinImpactOverhaul.SkirkAttack1; __instance.audioAttack.Sounds[1] = GenshinImpactOverhaul.SkirkAttack2; __instance.audioAttack.Sounds[2] = GenshinImpactOverhaul.SkirkAttack3; __instance.audioAttackOutro.Sounds[0] = GenshinImpactOverhaul.SkirkAttackOutro1; __instance.audioAttackOutro.Sounds[1] = GenshinImpactOverhaul.SkirkAttackOutro2; __instance.audioAttackOutro.Sounds[2] = GenshinImpactOverhaul.SkirkAttackOutro3; __instance.audioIdle.Sounds[0] = GenshinImpactOverhaul.SkirkIdle1; __instance.audioIdle.Sounds[1] = GenshinImpactOverhaul.SkirkIdle2; __instance.audioIdle.Sounds[2] = GenshinImpactOverhaul.SkirkIdle3; __instance.audioBell.Sounds[0] = GenshinImpactOverhaul.SkirkBell1; __instance.audioBell.Sounds[1] = GenshinImpactOverhaul.SkirkBell2; __instance.audioBell.Sounds[2] = GenshinImpactOverhaul.SkirkBell3; __instance.audioBellGlobal.Sounds[0] = GenshinImpactOverhaul.SkirkBell1Global; __instance.audioBellGlobal.Sounds[1] = GenshinImpactOverhaul.SkirkBell2Global; __instance.audioBellGlobal.Sounds[2] = GenshinImpactOverhaul.SkirkBell3Global; __instance.audioRiderGlitchIn.Sounds[0] = GenshinImpactOverhaul.SkirkTeleport1; __instance.audioRiderGlitchIn.Sounds[1] = GenshinImpactOverhaul.SkirkTeleport2; __instance.audioRiderGlitchIn.Sounds[2] = GenshinImpactOverhaul.SkirkTeleport3; __instance.audioRiderGlitchOut.Sounds[0] = GenshinImpactOverhaul.SkirkTeleport1; __instance.audioRiderGlitchOut.Sounds[1] = GenshinImpactOverhaul.SkirkTeleport2; __instance.audioRiderGlitchOut.Sounds[2] = GenshinImpactOverhaul.SkirkTeleport3; __instance.audioAttackLoop.Sounds[0] = GenshinImpactOverhaul.SkirkBattleLoop; __instance.audioWheelSqueak.Sounds[0] = GenshinImpactOverhaul.SkirkWheelSqueak; __instance.audioWheelRattle.Sounds[0] = GenshinImpactOverhaul.SkirkWheelRattle; AudioClip[] sounds = (AudioClip[])(object)new AudioClip[9]; __instance.audioMove.Sounds = sounds; __instance.audioMove.Pitch = 1f; __instance.audioMove.PitchRandom = 0f; __instance.audioMove.Sounds[0] = GenshinImpactOverhaul.SkirkMove1; __instance.audioMove.Sounds[1] = GenshinImpactOverhaul.SkirkMove2; __instance.audioMove.Sounds[2] = GenshinImpactOverhaul.SkirkMove3; __instance.audioMove.Sounds[3] = GenshinImpactOverhaul.SkirkSilence; __instance.audioMove.Sounds[4] = GenshinImpactOverhaul.SkirkSilence; __instance.audioMove.Sounds[5] = GenshinImpactOverhaul.SkirkSilence; __instance.audioMove.Sounds[6] = GenshinImpactOverhaul.SkirkSilence; __instance.audioMove.Sounds[7] = GenshinImpactOverhaul.SkirkSilence; __instance.audioMove.Sounds[8] = GenshinImpactOverhaul.SkirkSilence; Transform val2 = ((Component)__instance).transform.parent.Find("Rigidbody/Collider"); __instance.rb.freezeRotation = true; if ((Object)(object)val2 != (Object)null) { CapsuleCollider component = ((Component)val2).GetComponent(); component.direction = 2; component.center = new Vector3(0f, 0f, -0.8f); component.height = 2.7f; component.radius = 0.5f; } } } [HarmonyPatch("StateMachine")] [HarmonyPrefix] private static void StateMachineSwitch(EnemyTricycle __instance) { //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Expected I4, but got Unknown //IL_00cc: Unknown result type (might be due to invalid IL or missing references) if (!GenshinImpactOverhaul.SkirkReplacement.Value) { return; } int instanceID = ((Object)__instance).GetInstanceID(); if (!skirkAnimators.TryGetValue(instanceID, out var value) || (Object)(object)value == (Object)null) { Transform val = ((Component)__instance).transform.parent.Find("Skirk(Clone)"); if ((Object)(object)val == (Object)null) { return; } value = ((Component)val).GetComponent(); if ((Object)(object)value == (Object)null) { return; } skirkAnimators[instanceID] = value; } State val2 = currentStateAccessor.Invoke(__instance); if (!previousStates.TryGetValue(instanceID, out var value2) || val2 != value2) { value.SetInteger("State", (int)val2); previousStates[instanceID] = val2; } } [HarmonyPatch("Update")] [HarmonyPostfix] private static void UpdateThing(EnemyTricycle __instance) { //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: 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_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) if (!GenshinImpactOverhaul.SkirkReplacement.Value) { return; } Transform val = ((Component)__instance).transform.parent.Find("Skirk(Clone)"); if (!((Object)(object)val == (Object)null)) { int instanceID = ((Object)__instance).GetInstanceID(); Transform transform = ((Component)__instance.visuals).transform; Vector3 position = transform.position; if (!lastPositions.TryGetValue(instanceID, out var value)) { value = position; } Vector3 val2 = position - value; val2.y = 0f; if (((Vector3)(ref val2)).sqrMagnitude > 0.0001f) { Quaternion val3 = Quaternion.LookRotation(((Vector3)(ref val2)).normalized, Vector3.up); val.rotation = Quaternion.Slerp(val.rotation, val3, Time.deltaTime * 10f); } lastPositions[instanceID] = position; val.position = new Vector3(((Component)__instance.visuals).transform.position.x, __instance.followTargetTransform.position.y, ((Component)__instance.visuals).transform.position.z); } } [HarmonyPatch("PlayBellSound")] [HarmonyPrefix] private static bool PlayBellSound_Prefix(EnemyTricycle __instance) { if ((Object)(object)__instance == (Object)null) { return true; } int instanceID = ((Object)__instance).GetInstanceID(); float time = Time.time; if (lastLocalPlay.TryGetValue(instanceID, out var value) && time - value < 2f) { return false; } lastLocalPlay[instanceID] = time; return true; } [HarmonyPatch("DoBellRing")] [HarmonyPrefix] private static void Prefix(EnemyTricycle __instance, ref int __state) { __state = (int)bellRingCountField.GetValue(__instance); if (__state >= 3) { bellRingCountField.SetValue(__instance, 0); } } [HarmonyPatch("DoBellRing")] [HarmonyPostfix] private static void Postfix(EnemyTricycle __instance, int __state) { bellRingCountField.SetValue(__instance, __state); if (__state < 3) { return; } float time = Time.time; if (!(time - lastGlobalPlayTime < 2f)) { lastGlobalPlayTime = time; object value = audioBellGlobalField.GetValue(__instance); Enemy val = enemyRef.Invoke(__instance); if (value != null && (Object)(object)val != (Object)null) { MethodInfo method = value.GetType().GetMethod("Play", new Type[5] { typeof(Vector3), typeof(float), typeof(float), typeof(float), typeof(float) }); } } } [HarmonyPatch("PlayLoopSoundLogic")] [HarmonyPostfix] private static void Postfix(EnemyTricycle __instance) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Invalid comparison between Unknown and I4 //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Invalid comparison between Unknown and I4 if ((int)__instance.currentState == 2) { __instance.audioWheelRattle.PlayLoop(true, 1f, 1f, 2f, 1f); __instance.audioWheelSqueak.PlayLoop(false, 1f, 1f, 2f, 1f); } if ((int)__instance.currentState == 3) { __instance.audioWheelRattle.PlayLoop(false, 1f, 1f, 2f, 1f); __instance.audioWheelSqueak.PlayLoop(true, 1f, 1f, 2f, 1f); } } } [HarmonyPatch(typeof(EnemyOogly))] internal class EnemyOoglyPatch { private static readonly FieldRef originalSpotlightColorRef = AccessTools.FieldRefAccess("originalSpotlightColor"); private static readonly FieldRef grabbedTrail = AccessTools.FieldRefAccess("grabbedPlayerTrailMaterial"); private static readonly Dictionary ooglyPreviousStates = new Dictionary(); private static readonly Dictionary ooglyAnimators = new Dictionary(); [HarmonyPatch("Start")] [HarmonyPostfix] private static void ReplaceAssets(EnemyOogly __instance) { //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0395: Unknown result type (might be due to invalid IL or missing references) //IL_039a: Unknown result type (might be due to invalid IL or missing references) //IL_039f: Unknown result type (might be due to invalid IL or missing references) //IL_03a2: Unknown result type (might be due to invalid IL or missing references) //IL_03ac: Unknown result type (might be due to invalid IL or missing references) //IL_03d0: Unknown result type (might be due to invalid IL or missing references) //IL_03d5: Unknown result type (might be due to invalid IL or missing references) //IL_03da: Unknown result type (might be due to invalid IL or missing references) //IL_04af: Unknown result type (might be due to invalid IL or missing references) //IL_04b4: Unknown result type (might be due to invalid IL or missing references) //IL_04b8: Unknown result type (might be due to invalid IL or missing references) //IL_04ba: Unknown result type (might be due to invalid IL or missing references) //IL_04c7: Unknown result type (might be due to invalid IL or missing references) //IL_04cc: Unknown result type (might be due to invalid IL or missing references) //IL_04d0: Unknown result type (might be due to invalid IL or missing references) //IL_04d2: Unknown result type (might be due to invalid IL or missing references) //IL_04df: Unknown result type (might be due to invalid IL or missing references) //IL_04e4: Unknown result type (might be due to invalid IL or missing references) //IL_04e8: Unknown result type (might be due to invalid IL or missing references) //IL_04ea: Unknown result type (might be due to invalid IL or missing references) //IL_0635: Unknown result type (might be due to invalid IL or missing references) //IL_063a: Unknown result type (might be due to invalid IL or missing references) //IL_0647: Unknown result type (might be due to invalid IL or missing references) //IL_0649: Unknown result type (might be due to invalid IL or missing references) //IL_06df: Unknown result type (might be due to invalid IL or missing references) //IL_057c: Unknown result type (might be due to invalid IL or missing references) //IL_0583: Expected O, but got Unknown //IL_05af: Unknown result type (might be due to invalid IL or missing references) //IL_05cc: Unknown result type (might be due to invalid IL or missing references) //IL_05d1: Unknown result type (might be due to invalid IL or missing references) //IL_05de: Unknown result type (might be due to invalid IL or missing references) //IL_05e0: Unknown result type (might be due to invalid IL or missing references) if (!GenshinImpactOverhaul.IfaReplacement.Value) { return; } Modifiers.TurnOffRenderers(((Component)__instance).transform); GameObject val = Object.Instantiate(GenshinImpactOverhaul.IfaPrefab); val.transform.parent = __instance.visualTransform; Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)); ((Component)((Component)__instance).transform.parent.parent).GetComponent().enemyName = "Ifa"; __instance.audioDeath.Sounds[0] = GenshinImpactOverhaul.IfaDeath1; __instance.audioDeath.Sounds[1] = GenshinImpactOverhaul.IfaDeath2; __instance.audioDeath.Sounds[2] = GenshinImpactOverhaul.IfaDeath3; __instance.audioDropPlayer.Sounds[0] = GenshinImpactOverhaul.IfaDropPlayer1; __instance.audioDropPlayer.Sounds[1] = GenshinImpactOverhaul.IfaDropPlayer2; __instance.audioDropPlayer.Sounds[2] = GenshinImpactOverhaul.IfaDropPlayer3; __instance.audioSpotlightOn.Sounds[0] = GenshinImpactOverhaul.IfaEyesOn; __instance.audioSpotlightOff.Sounds[0] = GenshinImpactOverhaul.IfaEyesOff; __instance.audioSpotlightOff.Sounds[1] = GenshinImpactOverhaul.IfaEyesOff; __instance.audioSpotlightOff.Sounds[2] = GenshinImpactOverhaul.IfaEyesOff; __instance.audioHurt.Sounds[0] = GenshinImpactOverhaul.IfaHurt1; __instance.audioHurt.Sounds[1] = GenshinImpactOverhaul.IfaHurt2; __instance.audioHurt.Sounds[2] = GenshinImpactOverhaul.IfaHurt3; __instance.audioIdleBreaker.Sounds[0] = GenshinImpactOverhaul.IfaIdle1; __instance.audioIdleBreaker.Sounds[1] = GenshinImpactOverhaul.IfaIdle2; __instance.audioIdleBreaker.Sounds[2] = GenshinImpactOverhaul.IfaIdle3; __instance.audioSeePlayer.Sounds[0] = GenshinImpactOverhaul.IfaNotice1; __instance.audioSeePlayer.Sounds[1] = GenshinImpactOverhaul.IfaNotice2; __instance.audioSeePlayer.Sounds[2] = GenshinImpactOverhaul.IfaNotice3; __instance.audioSeePlayerGlobal.Sounds[0] = GenshinImpactOverhaul.IfaNotice1Global; __instance.audioSeePlayerGlobal.Sounds[1] = GenshinImpactOverhaul.IfaNotice2Global; __instance.audioSeePlayerGlobal.Sounds[2] = GenshinImpactOverhaul.IfaNotice3Global; __instance.audioStartCharge.Sounds[0] = GenshinImpactOverhaul.IfaStartCharge1; __instance.audioStartCharge.Sounds[1] = GenshinImpactOverhaul.IfaStartCharge2; __instance.audioStartCharge.Sounds[2] = GenshinImpactOverhaul.IfaStartCharge3; __instance.audioOoglyLoop.Sounds[0] = GenshinImpactOverhaul.IfaOoglyIdle; __instance.voList[0].Sounds[0] = GenshinImpactOverhaul.IfaIdle1; __instance.voList[1].Sounds[0] = GenshinImpactOverhaul.IfaIdle2; __instance.voList[2].Sounds[0] = GenshinImpactOverhaul.IfaIdle3; __instance.audioWrestleLoop.Sounds[0] = GenshinImpactOverhaul.IfaAttackLoop; __instance.audioHitPlayer.Sounds[0] = GenshinImpactOverhaul.IfaHitPlayer1; __instance.audioHitPlayer.Sounds[1] = GenshinImpactOverhaul.IfaHitPlayer2; __instance.audioHitPlayer.Sounds[2] = GenshinImpactOverhaul.IfaHitPlayer3; ((Renderer)((Component)__instance.particlesTeleportEnd[0]).gameObject.GetComponent()).material = GenshinImpactOverhaul.IfaMaterial; ((Renderer)((Component)__instance.particlesHitPlayer[0]).gameObject.GetComponent()).material = GenshinImpactOverhaul.IfaMaterial; grabbedTrail.Invoke(__instance) = GenshinImpactOverhaul.IfaMaterial; Transform val2 = ((Component)__instance).transform.parent.Find("Visuals/Visuals/Teleport Rotation And Scale/Oogly/Head Look/Eyes"); Light component = ((Component)val2.Find("Point Light")).GetComponent(); Light component2 = ((Component)val2.Find("Spot Light")).GetComponent(); Color val5 = (component2.color = (component.color = Color32.op_Implicit(new Color32((byte)121, (byte)253, (byte)188, byte.MaxValue)))); originalSpotlightColorRef.Invoke(__instance) = Color32.op_Implicit(new Color32((byte)121, (byte)253, (byte)188, byte.MaxValue)); __instance.grabbedPlayerTrailMeshRenderer.material = GenshinImpactOverhaul.IfaMaterial; __instance.tailMeshRenderer.material = GenshinImpactOverhaul.IfaNothingMaterial; ((Renderer)((Component)__instance.particlesDeath[0]).gameObject.GetComponent()).material = GenshinImpactOverhaul.IfaDeathMaterial; Transform parent = ((Component)__instance).transform.parent.parent; ((Component)parent.Find("Death Particles").Find("Death Eyes")).gameObject.SetActive(false); ParticleSystem component3 = ((Component)parent.Find("Death Particles").Find("Death Impact")).GetComponent(); ParticleSystem component4 = ((Component)parent.Find("Death Particles").Find("Death Bits Far")).GetComponent(); ParticleSystem component5 = ((Component)parent.Find("Death Particles").Find("Death Bits Short")).GetComponent(); MainModule main = component3.main; ((MainModule)(ref main)).startColor = MinMaxGradient.op_Implicit(val5); MainModule main2 = component4.main; ((MainModule)(ref main2)).startColor = MinMaxGradient.op_Implicit(val5); MainModule main3 = component5.main; ((MainModule)(ref main3)).startColor = MinMaxGradient.op_Implicit(val5); ((Renderer)((Component)parent.Find("Spot Light Particles")).GetComponent()).material = GenshinImpactOverhaul.IfaMaterial; ((Renderer)((Component)parent.Find("Hit Player")).GetComponent()).material = GenshinImpactOverhaul.IfaMaterial; ((Renderer)((Component)parent.Find("Teleport Loop")).GetComponent()).material = GenshinImpactOverhaul.IfaMaterial; Transform val6 = parent.Find("Hit Player"); if ((Object)(object)val6 != (Object)null) { Light val8 = default(Light); ParticleSystem val9 = default(ParticleSystem); foreach (Transform item in val6) { Transform val7 = item; if (!(((Object)val7).name != "Light")) { if (((Component)val7).TryGetComponent(ref val8)) { val8.color = val5; } else if (((Component)val7).TryGetComponent(ref val9)) { ColorOverLifetimeModule colorOverLifetime = val9.colorOverLifetime; ((ColorOverLifetimeModule)(ref colorOverLifetime)).enabled = true; ((ColorOverLifetimeModule)(ref colorOverLifetime)).color = new MinMaxGradient(val5); } } } } Transform val10 = parent.Find("Teleport End"); ParticleSystem component6 = ((Component)val10.Find("Light")).GetComponent(); ColorOverLifetimeModule colorOverLifetime2 = component6.colorOverLifetime; ((ColorOverLifetimeModule)(ref colorOverLifetime2)).enabled = true; ((ColorOverLifetimeModule)(ref colorOverLifetime2)).color = new MinMaxGradient(val5); ((Renderer)((Component)val10.Find("Smoke")).GetComponent()).material = GenshinImpactOverhaul.IfaDeathMaterial; ((Renderer)((Component)parent.Find("Hit Player").Find("Smoke")).GetComponent()).material = GenshinImpactOverhaul.IfaDeathMaterial; Transform val11 = ((Component)__instance).transform.parent.Find("Rigidbody/Collider"); if ((Object)(object)val11 != (Object)null) { CapsuleCollider component7 = ((Component)val11).GetComponent(); component7.direction = 2; component7.center = new Vector3(0f, 0f, 1.5f); component7.height = 3f; component7.radius = 0.6f; } } [HarmonyPatch(typeof(EnemyOogly), "StateMachine")] [HarmonyPrefix] private static void OoglyStateMachineSwitch(EnemyOogly __instance) { //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Expected I4, but got Unknown //IL_00c1: Unknown result type (might be due to invalid IL or missing references) if (!GenshinImpactOverhaul.IfaReplacement.Value) { return; } int instanceID = ((Object)__instance).GetInstanceID(); if (!ooglyAnimators.TryGetValue(instanceID, out var value) || (Object)(object)value == (Object)null) { Transform val = __instance.visualTransform.Find("Ifa(Clone)"); if ((Object)(object)val == (Object)null) { return; } value = ((Component)val).GetComponent(); if ((Object)(object)value == (Object)null) { return; } ooglyAnimators[instanceID] = value; } State currentState = __instance.currentState; if (!ooglyPreviousStates.TryGetValue(instanceID, out var value2) || currentState != value2) { value.SetInteger("State", (int)currentState); ooglyPreviousStates[instanceID] = currentState; } } [HarmonyPatch("Update")] [HarmonyPostfix] private static void UpdateThing(EnemyOogly __instance) { //IL_0020: 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) if (GenshinImpactOverhaul.IfaReplacement.Value) { __instance.visualTransform.Find("Ifa(Clone)").localRotation = Quaternion.identity; __instance.visualTransform.Find("Ifa(Clone)").localPosition = new Vector3(0f, -2f, 0f); } } } [HarmonyPatch(typeof(EnemyTick))] internal class EnemyTickPatch { private static readonly Dictionary tickPreviousStates = new Dictionary(); private static readonly Dictionary tickAnimators = new Dictionary(); private static readonly Dictionary tickTransforms = new Dictionary(); [HarmonyPatch("Awake")] [HarmonyPostfix] private static void ReplaceAssets(EnemyTick __instance) { //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.DurinReplacement.Value) { Modifiers.TurnOffRenderers(((Component)__instance).transform); GameObject val = Object.Instantiate(GenshinImpactOverhaul.DurinPrefab); val.transform.parent = ((Component)__instance.anim).gameObject.transform; Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)); ((Component)((Component)__instance).transform.parent.parent).GetComponent().enemyName = "Durin"; __instance.anim.bigSuckSound.Sounds[0] = GenshinImpactOverhaul.DurinBigSuck1; __instance.anim.bigSuckSound.Sounds[1] = GenshinImpactOverhaul.DurinBigSuck2; __instance.anim.bigSuckSound.Sounds[2] = GenshinImpactOverhaul.DurinBigSuck3; __instance.anim.deathSound.Sounds[0] = GenshinImpactOverhaul.DurinDeath1; __instance.anim.deathSound.Sounds[1] = GenshinImpactOverhaul.DurinDeath2; __instance.anim.deathSound.Sounds[2] = GenshinImpactOverhaul.DurinDeath3; __instance.anim.hurtSound.Sounds[0] = GenshinImpactOverhaul.DurinHurt1; __instance.anim.hurtSound.Sounds[1] = GenshinImpactOverhaul.DurinHurt2; __instance.anim.hurtSound.Sounds[2] = GenshinImpactOverhaul.DurinHurt3; __instance.anim.jumpSound.Sounds[0] = GenshinImpactOverhaul.DurinJump1; __instance.anim.jumpSound.Sounds[1] = GenshinImpactOverhaul.DurinJump2; __instance.anim.jumpSound.Sounds[2] = GenshinImpactOverhaul.DurinJump3; __instance.anim.noticeSound.Sounds[0] = GenshinImpactOverhaul.DurinNotice1; __instance.anim.noticeSound.Sounds[1] = GenshinImpactOverhaul.DurinNotice2; __instance.anim.noticeSound.Sounds[2] = GenshinImpactOverhaul.DurinNotice3; __instance.anim.skitteringLoop.Sounds[0] = GenshinImpactOverhaul.DurinSlowFlap; __instance.anim.skitteringLoop.Volume = 0.05f; __instance.anim.walkLoop.Sounds[0] = GenshinImpactOverhaul.DurinSlowFlap; __instance.anim.walkLoop.Volume = 0.05f; __instance.anim.runLoop.Sounds[0] = GenshinImpactOverhaul.DurinFastFlap; __instance.anim.runLoop.Volume = 0.05f; Transform val2 = ((Component)__instance).transform.parent.Find("Rigidbody/Flat Collider"); if ((Object)(object)val2 != (Object)null) { CapsuleCollider component = ((Component)val2).GetComponent(); component.center = new Vector3(0f, 0.2f, 0f); component.height = 1.1f; component.radius = 0.3f; } } } [HarmonyPatch(typeof(EnemyTick), "Update")] [HarmonyPrefix] private static void TickStateMachineSwitch(EnemyTick __instance) { //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Expected I4, but got Unknown //IL_00f8: Unknown result type (might be due to invalid IL or missing references) if (!GenshinImpactOverhaul.DurinReplacement.Value) { return; } int instanceID = ((Object)__instance).GetInstanceID(); if (!tickAnimators.TryGetValue(instanceID, out var value) || (Object)(object)value == (Object)null) { Transform val = ((Component)__instance.anim).transform.Find("Durin(Clone)"); if ((Object)(object)val == (Object)null) { return; } Transform val2 = val.Find("DurinDragon"); if ((Object)(object)val2 == (Object)null) { return; } value = ((Component)val2).GetComponent(); if ((Object)(object)value == (Object)null) { return; } tickAnimators[instanceID] = value; tickTransforms[instanceID] = val2; } State currentState = __instance.currentState; if (!tickPreviousStates.TryGetValue(instanceID, out var value2) || currentState != value2) { value.SetInteger("State", (int)currentState); tickPreviousStates[instanceID] = currentState; } tickTransforms[instanceID].localPosition = Vector3.zero; } } public class NoticeSoundComponent : MonoBehaviour { [Header("One Shot Notice Sound")] public Sound soundNotice; [Header("Player Effects")] public GameObject screenNoticeEffect; public float activationRadius = 6f; private void Awake() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_00dc: Unknown result type (might be due to invalid IL or missing references) soundNotice = new Sound(); soundNotice.Sounds = (AudioClip[])(object)new AudioClip[3] { GenshinImpactOverhaul.FlinsNotice1, GenshinImpactOverhaul.FlinsNotice2, GenshinImpactOverhaul.FlinsNotice3 }; soundNotice.Volume = 0.5f; soundNotice.Pitch = 1f; soundNotice.VolumeRandom = 0f; soundNotice.PitchRandom = 0f; soundNotice.SpatialBlend = 1f; soundNotice.Doppler = 1f; soundNotice.ReverbMix = 1f; soundNotice.FalloffMultiplier = 1f; soundNotice.OffscreenVolume = 0.5f; soundNotice.OffscreenFalloff = 0.5f; soundNotice.Type = (AudioType)0; } } [HarmonyPatch(typeof(EnemyHidden))] internal class EnemyHiddenPatch { public class ScreenNoticeEffect : MonoBehaviour { private static readonly FieldInfo isDisabledField = AccessTools.Field(typeof(PlayerAvatar), "isDisabled"); public PlayerAvatar playerAvatar; public float effectDuration = 1.5f; private float timer; private bool initialized; private static bool IsDisabled(PlayerAvatar avatar) { if ((Object)(object)avatar == (Object)null || isDisabledField == null) { return false; } return (bool)isDisabledField.GetValue(avatar); } private void Start() { timer = 0f; initialized = true; if ((Object)(object)CameraGlitch.Instance != (Object)null) { CameraGlitch.Instance.PlayShort(); } } private void Update() { if (!initialized) { return; } if ((Object)(object)playerAvatar == (Object)null || IsDisabled(playerAvatar)) { Object.Destroy((Object)(object)((Component)this).gameObject); return; } timer += Time.deltaTime; if (timer >= effectDuration) { Object.Destroy((Object)(object)((Component)this).gameObject); } } } private static readonly Dictionary hiddenPreviousState = new Dictionary(); private static readonly Dictionary hiddenAnimator = new Dictionary(); private static readonly Dictionary hiddenTransforms = new Dictionary(); private static readonly FieldInfo isLocalField = AccessTools.Field(typeof(PlayerAvatar), "isLocal"); private static readonly FieldInfo stateImpulseField = AccessTools.Field(typeof(EnemyHidden), "stateImpulse"); private static bool IsLocal(PlayerAvatar avatar) { if ((Object)(object)avatar == (Object)null || isLocalField == null) { return false; } return (bool)isLocalField.GetValue(avatar); } [HarmonyPatch("Awake")] [HarmonyPostfix] private static void ReplaceAssets(EnemyHidden __instance) { //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_0592: Unknown result type (might be due to invalid IL or missing references) //IL_05df: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.FlinsReplacement.Value) { Modifiers.TurnOffRenderers(((Component)__instance).transform); GameObject val = Object.Instantiate(GenshinImpactOverhaul.FlinsPrefab); val.transform.parent = ((Component)__instance.enemyHiddenAnim).gameObject.transform; Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, -0.7f, 0f), new Vector3(0.9f, 0.9f, 0.9f)); ((Component)((Component)__instance).transform.parent.parent).GetComponent().enemyName = "Flins"; Transform val2 = ((Component)__instance).transform.parent.Find("Rigidbody/Capsule Collider"); if ((Object)(object)val2 != (Object)null) { CapsuleCollider component = ((Component)val2).GetComponent(); component.center = new Vector3(0f, -0.35f, 0f); component.height = 2f; component.radius = 0.31f; } if ((Object)(object)((Component)__instance).gameObject.GetComponent() == (Object)null) { ((Component)__instance).gameObject.AddComponent(); } __instance.enemyHiddenAnim.soundStunStart.Sounds[0] = GenshinImpactOverhaul.FlinsStunStart; __instance.enemyHiddenAnim.soundStunLoop.Sounds[0] = GenshinImpactOverhaul.FlinsStunLoop; __instance.enemyHiddenAnim.soundStunStop.Sounds[0] = GenshinImpactOverhaul.FlinsStunEnd; __instance.enemyHiddenAnim.soundPlayerMove.Sounds[0] = GenshinImpactOverhaul.FlinsMovePlayerLoop; __instance.enemyHiddenAnim.soundPlayerMoveStop.Sounds[0] = GenshinImpactOverhaul.FlinsMovePlayerStop; __instance.enemyHiddenAnim.soundPlayerRelease.Sounds[0] = GenshinImpactOverhaul.FlinsDropPlayer; __instance.enemyHiddenAnim.soundPlayerPickup.Sounds[0] = GenshinImpactOverhaul.FlinsPickupPlayer; __instance.enemyHiddenAnim.soundHurt.Sounds[0] = GenshinImpactOverhaul.FlinsHurt1; __instance.enemyHiddenAnim.soundHurt.Sounds[1] = GenshinImpactOverhaul.FlinsHurt2; __instance.enemyHiddenAnim.soundHurt.Sounds[2] = GenshinImpactOverhaul.FlinsHurt3; __instance.enemyHiddenAnim.soundDeath.Sounds[0] = GenshinImpactOverhaul.FlinsDeath1; __instance.enemyHiddenAnim.soundDeath.Sounds[1] = GenshinImpactOverhaul.FlinsDeath2; __instance.enemyHiddenAnim.soundDeath.Sounds[2] = GenshinImpactOverhaul.FlinsDeath3; __instance.enemyHiddenAnim.soundJump.Sounds[0] = GenshinImpactOverhaul.FlinsJump1; __instance.enemyHiddenAnim.soundJump.Sounds[1] = GenshinImpactOverhaul.FlinsJump2; __instance.enemyHiddenAnim.soundJump.Sounds[2] = GenshinImpactOverhaul.FlinsJump3; __instance.enemyHiddenAnim.soundLand.Sounds[0] = GenshinImpactOverhaul.FlinsLand1; __instance.enemyHiddenAnim.soundLand.Sounds[1] = GenshinImpactOverhaul.FlinsLand2; __instance.enemyHiddenAnim.soundLand.Sounds[2] = GenshinImpactOverhaul.FlinsLand3; __instance.enemyHiddenAnim.soundBreatheOutFast.Sounds[0] = GenshinImpactOverhaul.FlinsBreath6; __instance.enemyHiddenAnim.soundBreatheOutFast.Sounds[1] = GenshinImpactOverhaul.FlinsBreath7; __instance.enemyHiddenAnim.soundBreatheOutFast.Sounds[2] = GenshinImpactOverhaul.FlinsBreath9; __instance.enemyHiddenAnim.soundBreatheOutFast.Sounds[3] = GenshinImpactOverhaul.FlinsBreath8; __instance.enemyHiddenAnim.soundBreatheOutFast.Sounds[4] = GenshinImpactOverhaul.FlinsBreath10; __instance.enemyHiddenAnim.soundBreatheInFast.Sounds[0] = GenshinImpactOverhaul.FlinsBreath7; __instance.enemyHiddenAnim.soundBreatheInFast.Sounds[1] = GenshinImpactOverhaul.FlinsBreath7; __instance.enemyHiddenAnim.soundBreatheInFast.Sounds[2] = GenshinImpactOverhaul.FlinsBreath9; __instance.enemyHiddenAnim.soundBreatheInFast.Sounds[3] = GenshinImpactOverhaul.FlinsBreath8; __instance.enemyHiddenAnim.soundBreatheInFast.Sounds[4] = GenshinImpactOverhaul.FlinsBreath10; __instance.enemyHiddenAnim.soundBreatheIn.Sounds[0] = GenshinImpactOverhaul.FlinsBreath1; __instance.enemyHiddenAnim.soundBreatheIn.Sounds[1] = GenshinImpactOverhaul.FlinsBreath2; __instance.enemyHiddenAnim.soundBreatheIn.Sounds[2] = GenshinImpactOverhaul.FlinsBreath3; __instance.enemyHiddenAnim.soundBreatheIn.Sounds[3] = GenshinImpactOverhaul.FlinsBreath4; __instance.enemyHiddenAnim.soundBreatheIn.Sounds[4] = GenshinImpactOverhaul.FlinsBreath5; __instance.enemyHiddenAnim.soundBreatheIn.Sounds[5] = GenshinImpactOverhaul.FlinsBreath6; __instance.enemyHiddenAnim.soundBreatheIn.Sounds[6] = GenshinImpactOverhaul.FlinsBreath7; __instance.enemyHiddenAnim.soundBreatheIn.Sounds[7] = GenshinImpactOverhaul.FlinsBreath10; __instance.enemyHiddenAnim.soundBreatheOut.Sounds[0] = GenshinImpactOverhaul.FlinsBreath1; __instance.enemyHiddenAnim.soundBreatheOut.Sounds[1] = GenshinImpactOverhaul.FlinsBreath2; __instance.enemyHiddenAnim.soundBreatheOut.Sounds[2] = GenshinImpactOverhaul.FlinsBreath3; __instance.enemyHiddenAnim.soundBreatheOut.Sounds[3] = GenshinImpactOverhaul.FlinsBreath4; __instance.enemyHiddenAnim.soundBreatheOut.Sounds[4] = GenshinImpactOverhaul.FlinsBreath5; __instance.enemyHiddenAnim.soundBreatheOut.Sounds[5] = GenshinImpactOverhaul.FlinsBreath6; __instance.enemyHiddenAnim.soundBreatheOut.Sounds[6] = GenshinImpactOverhaul.FlinsBreath7; __instance.enemyHiddenAnim.soundBreatheOut.Sounds[7] = GenshinImpactOverhaul.FlinsBreath10; ParticleSystemRenderer component2 = ((Component)__instance.enemyHiddenAnim.particleFootstepShapeLeft).GetComponent(); ParticleSystemRenderer component3 = ((Component)__instance.enemyHiddenAnim.particleFootstepShapeRight).GetComponent(); if ((Object)(object)component2 != (Object)null) { ((Renderer)component2).material.SetTexture("_MainTex", (Texture)(object)GenshinImpactOverhaul.FlinsFootstep); ((Component)component2).gameObject.transform.localScale = new Vector3(0.4f, 0.4f, 0.4f); } if ((Object)(object)component3 != (Object)null) { ((Renderer)component3).material.SetTexture("_MainTex", (Texture)(object)GenshinImpactOverhaul.FlinsFootstep); ((Component)component3).gameObject.transform.localScale = new Vector3(0.4f, 0.4f, 0.4f); } } } [HarmonyPatch(typeof(EnemyHidden), "Update")] [HarmonyPrefix] private static void TickStateMachineSwitch(EnemyHidden __instance) { //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Expected I4, but got Unknown //IL_00da: Unknown result type (might be due to invalid IL or missing references) if (!GenshinImpactOverhaul.FlinsReplacement.Value) { return; } int instanceID = ((Object)__instance).GetInstanceID(); if (!hiddenAnimator.TryGetValue(instanceID, out var value) || (Object)(object)value == (Object)null) { Transform val = ((Component)__instance.enemyHiddenAnim).transform.Find("Flins(Clone)"); if ((Object)(object)val == (Object)null) { return; } value = ((Component)val).GetComponent(); if ((Object)(object)value == (Object)null) { return; } hiddenAnimator[instanceID] = value; hiddenTransforms[instanceID] = val; } State currentState = __instance.currentState; if (!hiddenPreviousState.TryGetValue(instanceID, out var value2) || currentState != value2) { value.SetInteger("State", (int)currentState); hiddenPreviousState[instanceID] = currentState; } Transform val2 = ((Component)__instance).transform.parent.parent.Find("Particles"); ((Component)val2.Find("Particle Breath")).gameObject.GetComponent().Stop(true, (ParticleSystemStopBehavior)0); ((Component)val2.Find("Particle Breath Fast")).gameObject.GetComponent().Stop(true, (ParticleSystemStopBehavior)0); ((Component)val2.Find("Particle Breath Constant")).gameObject.GetComponent().Stop(true, (ParticleSystemStopBehavior)0); hiddenTransforms[instanceID].localPosition = new Vector3(0f, -0.85f, 0f); } [HarmonyPatch("PlayerPickupTransformLogic")] [HarmonyPostfix] private static void OffsetPickupTransform(EnemyHidden __instance) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Invalid comparison between Unknown and I4 //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Invalid comparison between Unknown and I4 //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Invalid comparison between Unknown and I4 //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.FlinsReplacement.Value && ((int)__instance.currentState == 7 || (int)__instance.currentState == 6 || (int)__instance.currentState == 8)) { Vector3 localPosition = __instance.playerPickupTransform.localPosition; localPosition.y -= 0.1f; __instance.playerPickupTransform.localPosition = localPosition; } } [HarmonyPatch(typeof(EnemyHidden), "StatePlayerNotice")] [HarmonyPrefix] private static void NoticeNoise(EnemyHidden __instance) { //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0063: 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_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: Unknown result type (might be due to invalid IL or missing references) if (!GenshinImpactOverhaul.FlinsReplacement.Value || !(bool)stateImpulseField.GetValue(__instance)) { return; } Vector3 position = __instance.enemy.CenterTransform.position; GameDirector.instance.CameraShake.ShakeDistance(0.5f, 1f, 15f, position, 1.5f); GameDirector.instance.CameraImpact.ShakeDistance(1f, 1f, 15f, position, 0.5f); NoticeSoundComponent component = ((Component)__instance).gameObject.GetComponent(); if ((Object)(object)component == (Object)null) { return; } if (component.soundNotice != null) { component.soundNotice.Play(position, 0.5f, 1f, 0.5f, 0.5f); } List list = SemiFunc.PlayerGetList(); if (list == null) { return; } float num = ((component.activationRadius > 0f) ? component.activationRadius : 6f); for (int i = 0; i < list.Count; i++) { PlayerAvatar val = list[i]; if (!((Object)(object)val == (Object)null) && IsLocal(val) && !(Vector3.Distance(position, ((Component)val).transform.position) > num) && !((Object)(object)component.screenNoticeEffect == (Object)null)) { Transform transform = ((Component)val.localCamera).transform; if (!((Object)(object)((Component)transform).GetComponentInChildren() != (Object)null)) { GameObject val2 = Object.Instantiate(component.screenNoticeEffect, transform.position, Quaternion.identity, transform); val2.transform.localPosition = Vector3.zero; val2.transform.localRotation = Quaternion.identity; ScreenNoticeEffect screenNoticeEffect = val2.AddComponent(); screenNoticeEffect.playerAvatar = val; } break; } } } } [HarmonyPatch(typeof(EnemyHeartHugger))] internal class EnemyHeartHuggerPatch { private static readonly Dictionary previousStates = new Dictionary(); private static readonly Dictionary neferAnimators = new Dictionary(); [HarmonyPatch("Awake")] [HarmonyPostfix] private static void ReplaceAssets(EnemyHeartHugger __instance) { //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) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0550: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.NeferReplacement.Value) { Modifiers.TurnOffRenderers(((Component)__instance).transform); GameObject val = Object.Instantiate(GenshinImpactOverhaul.NeferPrefab); val.transform.parent = ((Component)__instance).transform.parent.Find("Visuals"); Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, -1f, 0f), new Vector3(1f, 1f, 1f)); ((Component)((Component)__instance).transform.parent.parent).GetComponent().enemyName = "Nefer"; Transform val2 = ((Component)__instance).transform.parent.parent.Find("Gas Particles").Find("Particles Gas"); Color val3 = default(Color); ((Color)(ref val3))..ctor(21f, 125f, 12f, 255f); ((Renderer)((Component)val2).GetComponent()).material = GenshinImpactOverhaul.NeferMaterial; MainModule main = ((Component)val2).GetComponent().main; ((MainModule)(ref main)).startColor = MinMaxGradient.op_Implicit(val3); ((Renderer)((Component)val2.Find("Particles Gas Spit Lines")).GetComponent()).material = GenshinImpactOverhaul.NeferMaterial; MainModule main2 = ((Component)val2.Find("Particles Gas Spit Lines")).GetComponent().main; ((MainModule)(ref main2)).startColor = MinMaxGradient.op_Implicit(val3); Vector3 position = __instance.headCenterTransform.position; position.y -= 1.3f; position.z += 0.3f; __instance.headCenterTransform.position = position; __instance.soundIdleLoop.Sounds[0] = GenshinImpactOverhaul.NeferIdleLoop; __instance.soundStunLoop.Sounds[0] = GenshinImpactOverhaul.NeferStunLoop; __instance.soundGrow.Sounds[0] = GenshinImpactOverhaul.NeferGrow1; __instance.soundGrow.Sounds[1] = GenshinImpactOverhaul.NeferGrow2; __instance.soundGrow.Sounds[2] = GenshinImpactOverhaul.NeferGrow3; __instance.soundDegrow.Sounds[0] = GenshinImpactOverhaul.NeferDegrow1; __instance.soundDegrow.Sounds[1] = GenshinImpactOverhaul.NeferDegrow2; __instance.soundDegrow.Sounds[2] = GenshinImpactOverhaul.NeferDegrow3; __instance.soundChompBite.Sounds[0] = GenshinImpactOverhaul.NeferBite1; __instance.soundChompBite.Sounds[1] = GenshinImpactOverhaul.NeferBite2; __instance.soundChompBite.Sounds[2] = GenshinImpactOverhaul.NeferBite3; __instance.soundGasLoop.Sounds[0] = GenshinImpactOverhaul.NeferGasLoop; __instance.soundGasTell.Sounds[0] = GenshinImpactOverhaul.NeferGasTell1; __instance.soundGasTell.Sounds[1] = GenshinImpactOverhaul.NeferGasTell2; __instance.soundGasTell.Sounds[2] = GenshinImpactOverhaul.NeferGasTell3; __instance.soundScare.Sounds[0] = GenshinImpactOverhaul.NeferScare1; __instance.soundScare.Sounds[1] = GenshinImpactOverhaul.NeferScare2; __instance.soundScare.Sounds[2] = GenshinImpactOverhaul.NeferScare3; __instance.soundScareGlobal.Sounds[0] = GenshinImpactOverhaul.NeferScare1Global; __instance.soundScareGlobal.Sounds[1] = GenshinImpactOverhaul.NeferScare2Global; __instance.soundScareGlobal.Sounds[2] = GenshinImpactOverhaul.NeferScare3Global; __instance.soundChompThrust.Volume = 0f; __instance.soundMove.Volume = 0f; __instance.soundMoveHead.Volume = 0f; __instance.soundAggroStart.Sounds[0] = GenshinImpactOverhaul.NeferAggroStart1; __instance.soundAggroStart.Sounds[1] = GenshinImpactOverhaul.NeferAggroStart2; __instance.soundAggroStart.Sounds[2] = GenshinImpactOverhaul.NeferAggroStart3; __instance.soundAggroBreaker01.Sounds[0] = GenshinImpactOverhaul.NeferAggrobreaker1; __instance.soundAggroBreaker02.Sounds[0] = GenshinImpactOverhaul.NeferAggrobreaker2; __instance.soundAggroBreaker03.Sounds[0] = GenshinImpactOverhaul.NeferAggrobreaker3; __instance.soundIdleBreaker01.Sounds[0] = GenshinImpactOverhaul.NeferIdlebreaker1; __instance.soundIdleBreaker02.Sounds[0] = GenshinImpactOverhaul.NeferIdlebreaker2; __instance.soundIdleBreaker03.Sounds[0] = GenshinImpactOverhaul.NeferIdlebreaker3; __instance.soundHurt.Sounds[0] = GenshinImpactOverhaul.NeferHurt1; __instance.soundHurt.Sounds[1] = GenshinImpactOverhaul.NeferHurt2; __instance.soundHurt.Sounds[2] = GenshinImpactOverhaul.NeferHurt3; __instance.soundDeath.Sounds[0] = GenshinImpactOverhaul.NeferDeath1; __instance.soundDeath.Sounds[1] = GenshinImpactOverhaul.NeferDeath2; __instance.soundDeath.Sounds[2] = GenshinImpactOverhaul.NeferDeath3; __instance.popAwaySound.Sounds[0] = GenshinImpactOverhaul.NeferPopAway1; __instance.popAwaySound.PitchRandom = 0f; __instance.popAwaySound.Sounds[1] = GenshinImpactOverhaul.NeferPopAway2; __instance.popAwaySound.Sounds[2] = GenshinImpactOverhaul.NeferPopAway3; __instance.soundEnchantedVO.Sounds[0] = GenshinImpactOverhaul.NeferLove1; __instance.soundEnchantedVO.Sounds[1] = GenshinImpactOverhaul.NeferLove2; __instance.soundEnchantedVO.Sounds[2] = GenshinImpactOverhaul.NeferLove3; __instance.soundGasStart.Sounds[0] = GenshinImpactOverhaul.NeferGasStart1; __instance.soundGasStart.Sounds[1] = GenshinImpactOverhaul.NeferGasStart2; __instance.soundGasStart.Sounds[2] = GenshinImpactOverhaul.NeferGasStart3; __instance.soundGasStop.Sounds[0] = GenshinImpactOverhaul.NeferGasStop1; __instance.soundGasStop.Sounds[1] = GenshinImpactOverhaul.NeferGasStop2; __instance.soundGasStop.Sounds[2] = GenshinImpactOverhaul.NeferGasStop3; __instance.rb.constraints = (RigidbodyConstraints)80; ((Component)__instance.gasParticles).gameObject.SetActive(false); __instance.headLight.color = Color.green; } } [HarmonyPatch("StateMachine")] [HarmonyPrefix] private static void StateMachineSwitch(EnemyHeartHugger __instance) { //IL_0094: 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) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Expected I4, but got Unknown //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Expected I4, but got Unknown //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Expected I4, but got Unknown if (!GenshinImpactOverhaul.NeferReplacement.Value) { return; } int instanceID = ((Object)__instance).GetInstanceID(); Transform val = ((Component)__instance).transform.parent.Find("Visuals").Find("Nefer(Clone)"); if (!neferAnimators.TryGetValue(instanceID, out var value) || (Object)(object)value == (Object)null) { if ((Object)(object)val == (Object)null) { return; } value = ((Component)val).GetComponent(); if ((Object)(object)value == (Object)null) { return; } neferAnimators[instanceID] = value; } State currentState = __instance.currentState; if (!previousStates.TryGetValue(instanceID, out var value2) || currentState != value2) { value.SetInteger("State", (int)currentState); previousStates[instanceID] = currentState; ((Component)val.Find("SkillObj_Nefer_Sofa_Model/SkillObj_Nefer_Shadow_Model 1")).GetComponent().SetInteger("State", (int)currentState); ((Component)val.Find("SkillObj_Nefer_Sofa_Model/SkillObj_Nefer_Shadow_Model")).GetComponent().SetInteger("State", (int)currentState); } } [HarmonyPatch("Update")] [HarmonyPostfix] private static void Position(EnemyHeartHugger __instance) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Invalid comparison between Unknown and I4 //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Invalid comparison between Unknown and I4 ((Component)__instance).transform.parent.Find("Visuals").Find("Nefer(Clone)").localPosition = new Vector3(0f, -1.35f, 0f); if ((int)__instance.currentState == 10 || (int)__instance.currentState == 9) { __instance.headLight.intensity = Mathf.Lerp(__instance.headLight.intensity, 2f, Time.deltaTime * 2f); } } [HarmonyPatch(typeof(EnemyHeartHugger), "StateAggroGrow")] [HarmonyTranspiler] private static IEnumerable Aggro(IEnumerable instructions) { foreach (CodeInstruction instruction in instructions) { if (instruction.opcode == OpCodes.Ldc_R4 && (float)instruction.operand == 2f) { instruction.operand = 1f; } yield return instruction; } } [HarmonyPatch(typeof(EnemyHeartHugger), "StateAggroDegrow")] [HarmonyTranspiler] private static IEnumerable DeAggro(IEnumerable instructions) { foreach (CodeInstruction instruction in instructions) { if (instruction.opcode == OpCodes.Ldc_R4 && (float)instruction.operand == 2f) { instruction.operand = 1f; } yield return instruction; } } [HarmonyPatch("GrowSpin")] [HarmonyPrefix] private static bool GrowSpinStop(EnemyHeartHugger __instance) { return false; } } [HarmonyPatch(typeof(EnemySpinny))] internal class EnemySpinnyPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] private static void ReplaceAssets(EnemySpinny __instance) { //IL_005b: 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) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) if (GenshinImpactOverhaul.YelanReplacement.Value) { Modifiers.TurnOffRenderers(((Component)__instance).transform); GameObject val = Object.Instantiate(GenshinImpactOverhaul.YelanPrefab); val.transform.parent = ((Component)__instance).transform.parent.Find("Rigidbody").Find("[VISUALS]"); Modifiers.SetPositioning(val.transform, Quaternion.identity, new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)); val.AddComponent(); ((Component)((Component)__instance).transform.parent.parent).GetComponent().enemyName = "Yelan"; __instance.enemySpinnyAnim.animator = val.GetComponent(); Transform val2 = ((Component)__instance).transform.parent.Find("Rigidbody/Body collider"); if ((Object)(object)val2 != (Object)null) { CapsuleCollider component = ((Component)val2).GetComponent(); component.center = new Vector3(0f, -0.2f, 0f); component.height = 1.65f; component.radius = 0.34f; } Transform val3 = ((Component)__instance).transform.parent.Find("Rigidbody/Head Collider"); if ((Object)(object)val3 != (Object)null) { CapsuleCollider component2 = ((Component)val3).GetComponent(); component2.center = new Vector3(0f, 0f, 0f); component2.height = 0f; component2.radius = 0f; } Transform val4 = ((Component)__instance).transform.parent.Find("Rigidbody/Head Collider (1)"); if ((Object)(object)val4 != (Object)null) { CapsuleCollider component3 = ((Component)val4).GetComponent(); component3.center = new Vector3(0f, 0f, 0f); component3.height = 0f; component3.radius = 0f; } } } } [HarmonyPatch(typeof(EnemySpinnyAnim))] internal class EnemySpinnyAnimPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] private static void ReplaceAssets(EnemySpinnyAnim __instance) { if (GenshinImpactOverhaul.YelanReplacement.Value) { __instance.animator = ((Component)((Component)__instance).transform.Find("Yelan(Clone)")).GetComponent(); __instance.closeMouthSound.Sounds[0] = GenshinImpactOverhaul.YelanCloseMouth1; __instance.closeMouthSound.Sounds[1] = GenshinImpactOverhaul.YelanCloseMouth2; __instance.closeMouthSound.Sounds[2] = GenshinImpactOverhaul.YelanCloseMouth3; __instance.openMouthSound.Sounds[0] = GenshinImpactOverhaul.YelanOpenMouth1; __instance.openMouthSound.Sounds[1] = GenshinImpactOverhaul.YelanOpenMouth2; __instance.openMouthSound.Sounds[2] = GenshinImpactOverhaul.YelanOpenMouth3; __instance.deathSound.Sounds[0] = GenshinImpactOverhaul.YelanDeath; __instance.deathJingleSound.Sounds[0] = GenshinImpactOverhaul.YelanMusicDeath; __instance.idleLoop.Sounds[0] = GenshinImpactOverhaul.YelanIdleLoop; __instance.hurtSound.Sounds[0] = GenshinImpactOverhaul.YelanHurt1; __instance.hurtSound.Sounds[1] = GenshinImpactOverhaul.YelanHurt2; __instance.hurtSound.Sounds[2] = GenshinImpactOverhaul.YelanHurt3; __instance.jingleBlack.Sounds[0] = GenshinImpactOverhaul.YelanJingleBlack; __instance.jingleBlackGlobal.Sounds[0] = GenshinImpactOverhaul.YelanJingleBlackGlobal; __instance.jingleGreen.Sounds[0] = GenshinImpactOverhaul.YelanJingleGreen; __instance.jingleRed.Sounds[0] = GenshinImpactOverhaul.YelanJingleRed; __instance.jingleWhite.Sounds[0] = GenshinImpactOverhaul.YelanJingleWhite; __instance.jingleYellow.Sounds[0] = GenshinImpactOverhaul.YelanJingleYellow; __instance.noticeSound.Sounds[0] = GenshinImpactOverhaul.YelanNotice; __instance.jumpSound.Sounds[0] = GenshinImpactOverhaul.YelanJump; __instance.landSound.Sounds[0] = GenshinImpactOverhaul.YelanLand; __instance.landSound.Sounds[0] = GenshinImpactOverhaul.YelanLand; __instance.runningLoop.Sounds[0] = GenshinImpactOverhaul.YelanRunLoop; __instance.tongueHitSound.Volume = 0f; __instance.tickSound.Volume = 0f; __instance.rouletteLoop.Volume = 0f; __instance.muffledSongLoop.Sounds[0] = GenshinImpactOverhaul.YelanMusicRunning; __instance.leaveSongSound.Sounds[0] = GenshinImpactOverhaul.YelanMusicRunning; __instance.songLoop.Sounds[0] = GenshinImpactOverhaul.YelanMusic; } } [HarmonyPatch("Update")] [HarmonyPostfix] private static void FixFloating(EnemySpinnyAnim __instance) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Invalid comparison between Unknown and I4 if (GenshinImpactOverhaul.YelanReplacement.Value) { ((Component)__instance).transform.Find("Yelan(Clone)").localPosition = Vector3.zero; ((Component)__instance).transform.Find("Yelan(Clone)").localRotation = Quaternion.identity; AnimatorStateInfo currentAnimatorStateInfo = __instance.animator.GetCurrentAnimatorStateInfo(0); if (((AnimatorStateInfo)(ref currentAnimatorStateInfo)).IsName("Walk cycle")) { __instance.animator.speed = 0.8f; } if ((int)__instance.enemySpinny.currentState == 2) { __instance.animator.runtimeAnimatorController = GenshinImpactOverhaul.YelanWalk; } else { __instance.animator.runtimeAnimatorController = GenshinImpactOverhaul.YelanRun; } } } [HarmonyPatch("OpenMouthSound")] [HarmonyPostfix] private static void RollDice(EnemySpinnyAnim __instance) { if (GenshinImpactOverhaul.YelanReplacement.Value) { DiceSpawner.SpawnDiceAt(((Component)__instance).transform.Find("Yelan(Clone)/DicePoint"), ((Component)__instance).transform.Find("Yelan(Clone)/DiceFacePoint")); } } } public static class DiceSpawner { public static GameObject dicePrefab = GenshinImpactOverhaul.YelanDice; public static GameObject SpawnDiceAt(Transform spawnPoint, Transform facePoint, int forcedResult = 0) { //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) GameObject val; if ((Object)(object)dicePrefab != (Object)null) { val = Object.Instantiate(dicePrefab, spawnPoint.position, Random.rotation); } else { val = GameObject.CreatePrimitive((PrimitiveType)3); val.transform.position = spawnPoint.position; val.transform.rotation = Random.rotation; val.transform.localScale = Vector3.one * 0.5f; } DiceController diceController = val.GetComponent(); if ((Object)(object)diceController == (Object)null) { diceController = val.AddComponent(); } diceController.Init(spawnPoint, facePoint, forcedResult); return val; } } [HarmonyPatch(typeof(EnemyHeadGrabber))] internal class EnemyHeadGrabberPatch { private static readonly FieldRef headTargetRef = AccessTools.FieldRefAccess("headTarget"); private static EnemyHeadGrabber currentKiraraGrabber; [HarmonyPatch(typeof(EnemyHeadGrabber), "Awake")] [HarmonyPostfix] private static void ReplaceAssets(EnemyHeadGrabber __instance) { //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) if (!GenshinImpactOverhaul.KiraraReplacement.Value) { return; } Modifiers.TurnOffRenderers(((Component)__instance).transform); GameObject val = Object.Instantiate(GenshinImpactOverhaul.KiraraPrefab); val.transform.parent = ((Component)__instance).transform.parent.Find("Visuals"); Modifiers.SetPositioning(val.transform, Quaternion.identity, Vector3.zero, Vector3.one); KiraraAnimationEventHandler kiraraAnimationEventHandler = val.AddComponent(); kiraraAnimationEventHandler.particlePrefab = GenshinImpactOverhaul.KiraraParticles; ((Component)((Component)__instance).transform.parent.parent).GetComponent().enemyName = "Kirara"; currentKiraraGrabber = __instance; Transform val2 = ((Component)__instance).transform.parent.Find("Rigidbody/Capsule Collider Middle"); if ((Object)(object)val2 != (Object)null) { CapsuleCollider component = ((Component)val2).GetComponent(); component.center = new Vector3(0f, 0.25f, 0f); component.height = 1.58f; } Transform obj = ((Component)__instance).transform.parent.Find("Visuals"); object obj2; if (obj == null) { obj2 = null; } else { Transform obj3 = obj.Find("Kirara(Clone)"); obj2 = ((obj3 != null) ? obj3.Find("Avatar_Girl_Sword_Momoka") : null); } Transform val3 = (Transform)obj2; if ((Object)(object)val3 == (Object)null) { Debug.LogError((object)"[Kirara] Avatar_Girl_Sword_Momoka not found"); return; } Transform val4 = val3.Find("CatBox/SkillObj_Momoka_DeliveryBox_Model/Bone_Root/Bone_BodyB01_M/Bone_BodyB01_M (1)"); if ((Object)(object)val4 == (Object)null) { Debug.LogError((object)"[Kirara] CatBox not found"); return; } __instance.headTargetPositionTransform = val4; __instance.headTargetPositionReleaseTransform = val4; if ((Object)(object)__instance.headTargetPositionFollowTransform == (Object)null) { Transform transform = new GameObject("HeadFollowDummy").transform; transform.SetParent(((Component)__instance).transform.parent, false); __instance.headTargetPositionFollowTransform = transform; } Debug.Log((object)"[Kirara Mod] Head carry point assigned to CatBox"); } [HarmonyPatch(typeof(SpectateCamera), "StateHead")] [HarmonyPostfix] private static void KiraraTightHeadCamera(SpectateCamera __instance) { //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) if (!GenshinImpactOverhaul.KiraraReplacement.Value) { return; } PlayerAvatar val = PlayerController.instance?.playerAvatarScript; if ((Object)(object)val == (Object)null) { return; } object value = Traverse.Create((object)val).Field("playerDeathHead").GetValue(); if (value == null) { return; } object value2 = Traverse.Create(value).Field("playerAvatar").GetValue(); if (value2 != null && !((Object)(object)currentKiraraGrabber == (Object)null)) { Transform val2 = currentKiraraGrabber.headTargetPositionTransform; if ((Object)(object)val2 == (Object)null) { val2 = currentKiraraGrabber.headTargetPositionFollowTransform; } if (!((Object)(object)val2 == (Object)null)) { ((Component)__instance).transform.position = Vector3.Lerp(((Component)__instance).transform.position, val2.position, 65f * Time.deltaTime); } } } [HarmonyPatch("Update")] [HarmonyPostfix] private static void AntiDragUpdate(EnemyHeadGrabber __instance) { //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) if (!GenshinImpactOverhaul.KiraraReplacement.Value) { return; } Transform obj = ((Component)__instance).transform.parent.Find("Visuals"); object obj2; if (obj == null) { obj2 = null; } else { Transform obj3 = obj.Find("Kirara(Clone)"); obj2 = ((obj3 != null) ? obj3.Find("Avatar_Girl_Sword_Momoka") : null); } Transform val = (Transform)obj2; if (!((Object)(object)val == (Object)null)) { ((Component)val).transform.localPosition = Vector3.zero; ((Component)val).transform.localRotation = Quaternion.identity; if (Object.op_Implicit((Object)(object)headTargetRef.Invoke(__instance))) { SetActiveSafe(val, "Body", active: false); SetActiveSafe(val, "Brow", active: false); SetActiveSafe(val, "Face", active: false); SetActiveSafe(val, "Face_Eye", active: false); SetActiveSafe(val, "CatBox", active: true); } else { SetActiveSafe(val, "Body", active: true); SetActiveSafe(val, "Brow", active: true); SetActiveSafe(val, "Face", active: true); SetActiveSafe(val, "Face_Eye", active: true); SetActiveSafe(val, "CatBox", active: false); } } } private static void SetActiveSafe(Transform parent, string childName, bool active) { Transform val = parent.Find(childName); if ((Object)(object)val != (Object)null && ((Component)val).gameObject.activeSelf != active) { ((Component)val).gameObject.SetActive(active); } } } [HarmonyPatch(typeof(EnemyHeadGrabberLocalCamera))] internal class EnemyHeadGrabberLocalCameraPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] private static void ReplaceAssets(EnemyHeadGrabberLocalCamera __instance) { if (GenshinImpactOverhaul.KiraraReplacement.Value) { Modifiers.TurnOffRenderers(((Component)__instance).transform); } } } [HarmonyPatch(typeof(EnemyHeadGrabberAnim))] internal class EnemyHeadGrabberAnimPatch { private static readonly FieldRef animatorRef = AccessTools.FieldRefAccess("animator"); [HarmonyPatch("Awake")] [HarmonyPostfix] public static void ReplaceAnimator(EnemyHeadGrabberAnim __instance) { if (!GenshinImpactOverhaul.KiraraReplacement.Value) { return; } Animator val = animatorRef.Invoke(__instance); Transform val2 = ((Component)__instance).transform.Find("Kirara(Clone)"); if ((Object)(object)val2 == (Object)null) { return; } Animator component = ((Component)val2).GetComponent(); if (!((Object)(object)component == (Object)null)) { if ((Object)(object)val != (Object)(object)component) { animatorRef.Invoke(__instance) = component; } ((Behaviour)((Component)__instance).GetComponent()).enabled = false; __instance.soundAttackSwipe.Sounds[0] = GenshinImpactOverhaul.KiraraAttackSwipe; __instance.soundJump.Sounds[0] = GenshinImpactOverhaul.KiraraJump1; __instance.soundJump.Sounds[1] = GenshinImpactOverhaul.KiraraJump2; __instance.soundJump.Sounds[2] = GenshinImpactOverhaul.KiraraJump3; __instance.soundLand.Sounds[0] = GenshinImpactOverhaul.KiraraLand1; __instance.soundLand.Sounds[1] = GenshinImpactOverhaul.KiraraLand2; __instance.soundLand.Sounds[2] = GenshinImpactOverhaul.KiraraLand3; __instance.soundHurt.Sounds[0] = GenshinImpactOverhaul.KiraraHurt1; __instance.soundHurt.Sounds[1] = GenshinImpactOverhaul.KiraraHurt2; __instance.soundHurt.Sounds[2] = GenshinImpactOverhaul.KiraraHurt3; __instance.soundDeath.Sounds[0] = GenshinImpactOverhaul.KiraraDeath; __instance.soundDropkickTell.Sounds[0] = GenshinImpactOverhaul.KiraraDropKickTell; __instance.soundDropkickEnd.Sounds[0] = GenshinImpactOverhaul.KiraraDropKickEnd; __instance.soundLocalBreathingLoop.Sounds[0] = GenshinImpactOverhaul.KiraraBreathingLoop; __instance.soundNotice.Sounds[0] = GenshinImpactOverhaul.KiraraNotice; __instance.soundNoticeGlobal.Sounds[0] = GenshinImpactOverhaul.KiraraNoticeGlobal; __instance.soundGrabHead.Sounds[0] = GenshinImpactOverhaul.KiraraGrabHead; __instance.soundCantReach.Sounds[0] = GenshinImpactOverhaul.KiraraCantReach; __instance.soundReleaseHeadEnd.Sounds[0] = GenshinImpactOverhaul.KiraraReleaseHeadEnd; __instance.soundReleaseHeadStart.Sounds[0] = GenshinImpactOverhaul.KiraraReleaseHeadStart; __instance.soundNoiseLong.Sounds[0] = GenshinImpactOverhaul.KiraraLongNoise1; __instance.soundNoiseLong.Sounds[1] = GenshinImpactOverhaul.KiraraLongNoise2; __instance.soundNoiseLong.Sounds[2] = GenshinImpactOverhaul.KiraraLongNoise3; __instance.soundNoiseShort.Sounds[0] = GenshinImpactOverhaul.KiraraShortNoise1; __instance.soundNoiseShort.Sounds[1] = GenshinImpactOverhaul.KiraraShortNoise2; __instance.soundNoiseShort.Sounds[2] = GenshinImpactOverhaul.KiraraShortNoise3; __instance.soundNoiseShort.Sounds[3] = GenshinImpactOverhaul.KiraraShortNoise4; __instance.soundNoiseShort.Sounds[4] = GenshinImpactOverhaul.KiraraShortNoise5; __instance.soundStunIntro.Sounds[0] = GenshinImpactOverhaul.KiraraStunStart; __instance.soundStunLoop.Sounds[0] = GenshinImpactOverhaul.KiraraStunLoop; __instance.soundStunOutro.Sounds[0] = GenshinImpactOverhaul.KiraraStunEnd; } } } [HarmonyPatch(typeof(ExtractionPoint))] internal class EmojiPatch { [HarmonyPatch("Start")] [HarmonyPostfix] public static void ReplaceEmojis(ExtractionPoint __instance) { if (GenshinImpactOverhaul.DoriEmojiReplacement.Value) { ((TMP_Text)__instance.emojiScreen).spriteAsset.spriteSheet = (Texture)(object)GenshinImpactOverhaul.DoriEmojis; ((TMP_Asset)((TMP_Text)__instance.emojiScreen).spriteAsset).material.SetTexture("_albedo", (Texture)(object)GenshinImpactOverhaul.DoriEmojis); Object.Destroy((Object)(object)((Component)__instance.emojiScreen.transform.parent.Find("Grossup")).GetComponent()); } } } public class Modifiers { public static void TurnOffRenderers(Transform transform) { Transform parent = transform.parent; Renderer[] componentsInChildren = ((Component)parent).GetComponentsInChildren(true); Renderer[] array = componentsInChildren; foreach (Renderer val in array) { val.enabled = false; } } public static void SetPositioning(Transform transform, Quaternion rotation, Vector3 offset, Vector3 scale) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) transform.localRotation = rotation; transform.localScale = scale; transform.localPosition = offset; } } } namespace GenshinImpactOverhaulRepo_AnimationEventHandler { internal class AinoIneffaAnimationEventHandler : MonoBehaviour { public EnemyElsaAnim enemyElsaAnim; private void Start() { enemyElsaAnim = ((Component)((Component)this).transform.parent).GetComponent(); if ((Object)(object)enemyElsaAnim == (Object)null) { Debug.LogError((object)"enemyElsaAnim not found on parent object [VISUALS]."); } } public void OnDespawn() { enemyElsaAnim.Despawn(); } public void OnSFXFootstepBig() { enemyElsaAnim.SFXFootstepBig(); } public void OnSFXFootstepSmall() { enemyElsaAnim.SFXFootstepSmall(); } public void OnSFXArmSwingBig() { enemyElsaAnim.SFXArmSwingBig(); } public void OnSFXBarkIdleBreaker01_01Small() { enemyElsaAnim.SFXBarkIdleBreaker01_01Small(); } public void OnSFXBarkIdleBreaker01_02Small() { enemyElsaAnim.SFXBarkIdleBreaker01_02Small(); } public void OnSFXBarkIdleBreaker02_01Small() { enemyElsaAnim.SFXBarkIdleBreaker02_01Small(); } public void OnSFXBarkIdleBreaker02_02Small() { enemyElsaAnim.SFXBarkIdleBreaker02_02Small(); } public void OnChanceToBark() { enemyElsaAnim.ChanceToBark(); } public void OnSFXJumpBig() { enemyElsaAnim.SFXJumpBig(); } public void OnSFXLandBig() { enemyElsaAnim.SFXLandBig(); } public void OnSFXJumpSmall() { enemyElsaAnim.SFXJumpSmall(); } public void OnSFXLandSmall() { enemyElsaAnim.SFXLandSmall(); } public void OnSFXTransformLand() { enemyElsaAnim.SFXTransformLand(); } public void OnSFXTransformStinger() { enemyElsaAnim.SFXTransformStinger(); } public void OnSFXTransformHeadLookUp() { enemyElsaAnim.SFXTransformHeadLookUp(); } public void OnSFXTransformStart() { enemyElsaAnim.SFXTransformStart(); } public void OnTransformCameraShake(float meow) { enemyElsaAnim.TransformCameraShake(meow); } public void OnSFXLookUnderIntroBig() { enemyElsaAnim.SFXLookUnderIntroBig(); } public void OnSFXLookUnderOutroBig() { enemyElsaAnim.SFXLookUnderOutroBig(); } public void OnSFXLookUnderAttackBig() { enemyElsaAnim.SFXLookUnderAttackBig(); } public void OnSFXTransformLimbBreak() { enemyElsaAnim.SFXTransformLimbBreak(); } public void OnAttackStart() { ((Component)((Component)this).transform.parent.Find("Hurt Collider")).gameObject.SetActive(true); } public void OnAttackEnd() { ((Component)((Component)this).transform.parent.Find("Hurt Collider")).gameObject.SetActive(false); } public void OnAttackUnderStart() { ((Component)((Component)this).transform.parent.Find("Hurt Collider - LookUnder")).gameObject.SetActive(true); } public void OnAttackUnderEnd() { ((Component)((Component)this).transform.parent.Find("Hurt Collider - LookUnder")).gameObject.SetActive(false); } public void OnIneffa() { ((Component)((Component)this).transform.Find("Aino")).gameObject.SetActive(false); ((Component)((Component)this).transform.Find("Ineffa")).gameObject.SetActive(true); Animator component = ((Component)this).GetComponent(); component.avatar = ((Component)((Component)this).transform.Find("Ineffa")).GetComponent().avatar; } public void OnAino() { ((Component)((Component)this).transform.Find("Aino")).gameObject.SetActive(true); ((Component)((Component)this).transform.Find("Ineffa")).gameObject.SetActive(false); Animator component = ((Component)this).GetComponent(); component.avatar = ((Component)((Component)this).transform.Find("Aino")).GetComponent().avatar; } public void CallBigMode() { Transform val = ((Component)this).transform.Find("Ineffa"); if ((Object)(object)val != (Object)null && ((Component)val).gameObject.activeInHierarchy) { Animator component = ((Component)this).GetComponent(); component.SetTrigger("Land"); } } public void CallSmall() { if (((Component)((Component)this).gameObject.transform.parent.parent.parent).GetComponent().enemyName == "Aino") { ((Component)((Component)this).transform.Find("Aino")).gameObject.SetActive(true); ((Component)((Component)this).transform.Find("Ineffa")).gameObject.SetActive(false); } } } internal class AlhaithamAnimationEventHandler : MonoBehaviour { public EnemyBeamerAnim enemyBeamerAnim; private void Start() { enemyBeamerAnim = ((Component)((Component)this).transform.parent).GetComponent(); if (!((Object)(object)enemyBeamerAnim == (Object)null)) { } } public void AttackingTrue() { ((Component)((Component)enemyBeamerAnim).transform).gameObject.GetComponent().SetBool("attacking", true); } public void AttackingFalse() { ((Component)((Component)enemyBeamerAnim).transform).gameObject.GetComponent().SetBool("attacking", false); } public void OnAttackIntro() { enemyBeamerAnim.AttackIntro(); } public void StartAttack() { ((Component)((Component)enemyBeamerAnim).transform).gameObject.GetComponent().SetTrigger("attack"); } public void OnAttackOutro() { enemyBeamerAnim.AttackOutro(); } public void OnAttackStart() { ((Component)enemyBeamerAnim).gameObject.GetComponent().SetTrigger("melee"); } public void OnDespawn() { enemyBeamerAnim.Despawn(); } public void OnFootstepBig() { enemyBeamerAnim.FootstepBig(); } public void OnFootstepSmall() { enemyBeamerAnim.FootstepSmall(); } public void OnJump() { enemyBeamerAnim.Jump(); } public void OnLand() { enemyBeamerAnim.Land(); } public void OnMeleeKick() { enemyBeamerAnim.MeleeKick(); } public void OnMeleeTell() { enemyBeamerAnim.MeleeTell(); } public void OnMoveLong() { enemyBeamerAnim.MoveLong(); } public void OnMoveShort() { enemyBeamerAnim.MoveShort(); } } internal class ArlecchinoAnimationEventHandler : MonoBehaviour { public EnemyThinManAnim enemyThinManAnim; private void Start() { enemyThinManAnim = ((Component)((Component)this).transform.parent).GetComponent(); if ((Object)(object)enemyThinManAnim == (Object)null) { Debug.LogError((object)"enemyThinManAnim not found on parent object [VISUALS]."); } } public void OnDeathEffect() { enemyThinManAnim.DeathEffect(); } public void OnDespawnSmoke() { enemyThinManAnim.DespawnSmoke(); } public void OnNoticeSet() { enemyThinManAnim.NoticeSet(); } public void OnOnDeath() { enemyThinManAnim.OnDeath(); } public void OnScream() { enemyThinManAnim.Scream(); } public void OnSetDespawn() { enemyThinManAnim.SetDespawn(); } public void PlayEyes() { ((Component)((Component)enemyThinManAnim).transform.Find("Arlecchino(Clone)").Find("Armature").Find("Hips") .Find("Spine") .Find("Chest") .Find("Upper Chest") .Find("Neck") .Find("Head") .Find("Left Eye") .Find("GameObject")).GetComponent().Play(); ((Component)((Component)enemyThinManAnim).transform.Find("Arlecchino(Clone)").Find("Armature").Find("Hips") .Find("Spine") .Find("Chest") .Find("Upper Chest") .Find("Neck") .Find("Head") .Find("Right Eye") .Find("GameObject")).GetComponent().Play(); } } internal class AyatoAnimationEventHandler : MonoBehaviour { public EnemyRunnerAnim enemyRunnerAnim; private void Start() { enemyRunnerAnim = ((Component)((Component)this).transform.parent).GetComponent(); if ((Object)(object)enemyRunnerAnim == (Object)null) { Debug.LogError((object)"enemyRunnerAnim not found on parent object [VISUALS]."); } } public void OnLookUnderIntro() { enemyRunnerAnim.LookUnderIntro(); } public void OnResetAttackGruntCounter() { enemyRunnerAnim.ResetAttackGruntCounter(); } public void OnDespawn() { enemyRunnerAnim.Despawn(); } public void OnOnSpawn() { enemyRunnerAnim.OnSpawn(); } public void OnSfxAttackGrunt() { enemyRunnerAnim.SfxAttackGrunt(); } public void OnSfxAttackSlash() { enemyRunnerAnim.SfxAttackSlash(); } public void OnSfxAttackUnderGrunt() { enemyRunnerAnim.SfxAttackUnderGrunt(); } public void LookUnder() { ((Component)enemyRunnerAnim).gameObject.GetComponent().SetTrigger("LookUnder"); ((Component)enemyRunnerAnim).gameObject.GetComponent().SetBool("lookingUnder", true); } public void LookUnderStop() { ((Component)enemyRunnerAnim).gameObject.GetComponent().SetBool("lookingUnder", false); } public void OnSfxDeath() { enemyRunnerAnim.SfxDeath(); } public void OnSfxFootstepFast() { enemyRunnerAnim.SfxFootstepFast(); } public void OnSfxFootstepSlow() { enemyRunnerAnim.SfxFootstepSlow(); } public void OnSfxHurt() { enemyRunnerAnim.SfxHurt(); } public void OnSfxJump() { enemyRunnerAnim.SfxJump(); } public void OnSfxMoveLong() { enemyRunnerAnim.SfxMoveLong(); } public void OnSfxMoveShort() { enemyRunnerAnim.SfxMoveShort(); } public void OnSfxStunnedLoop() { enemyRunnerAnim.SfxStunnedLoop(); } public void StartDamage() { ((Component)((Component)enemyRunnerAnim).gameObject.transform.Find("Hurt Collider")).gameObject.SetActive(true); } public void StopDamage() { ((Component)((Component)enemyRunnerAnim).gameObject.transform.Find("Hurt Collider")).gameObject.SetActive(true); } public void CrouchCollider() { //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) ((Component)((Component)enemyRunnerAnim).gameObject.transform.Find("Hurt Collider")).gameObject.SetActive(true); ((Component)enemyRunnerAnim).gameObject.transform.Find("Hurt Collider").localPosition = new Vector3(0.47f, 0.361f, 0.012f); ((Component)enemyRunnerAnim).gameObject.transform.Find("Hurt Collider").localScale = new Vector3(1.0127f, 0.73335f, 2.5262f); } public void CrouchCollideStop() { //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) ((Component)((Component)enemyRunnerAnim).gameObject.transform.Find("Hurt Collider")).gameObject.SetActive(false); ((Component)enemyRunnerAnim).gameObject.transform.Find("Hurt Collider").localPosition = new Vector3(0f, 1.048f, 0.012f); ((Component)enemyRunnerAnim).gameObject.transform.Find("Hurt Collider").localScale = new Vector3(1f, 2.1f, 1.6739f); } } internal class BarbaraAnimationEventHandler : MonoBehaviour { public EnemyBowtieAnim enemyBowtieAnim; private void Start() { enemyBowtieAnim = ((Component)((Component)this).transform.parent).GetComponent(); if ((Object)(object)enemyBowtieAnim == (Object)null) { Debug.LogError((object)"enemyBowtieAnim not found on parent object [VISUALS]."); } } public void OnDespawn() { enemyBowtieAnim.Despawn(); } public void OnDespawnStart() { enemyBowtieAnim.DespawnStart(); } public void OnEnemyInvestigate() { enemyBowtieAnim.EnemyInvestigate(); } public void OnFootstep() { enemyBowtieAnim.Footstep(); } public void OnFootstepSmall() { enemyBowtieAnim.FootstepSmall(); } public void OnGroanPause() { enemyBowtieAnim.GroanPause(); } public void OnJump() { enemyBowtieAnim.Jump(); } public void OnLand() { enemyBowtieAnim.Land(); } public void OnMoveLong() { enemyBowtieAnim.MoveLong(); } public void OnMoveShort() { enemyBowtieAnim.MoveShort(); } public void OnNotice() { enemyBowtieAnim.Notice(); } public void OnNoticeSet(int num) { enemyBowtieAnim.NoticeSet(num); } public void OnOnSpawn() { enemyBowtieAnim.OnSpawn(); } public void OnStompLeft() { enemyBowtieAnim.StompLeft(); } public void OnStompRight() { enemyBowtieAnim.StompRight(); } public void OnStopGroaning() { enemyBowtieAnim.StopGroaning(); } public void OnStopStunSound() { enemyBowtieAnim.StopStunSound(); } public void OnStunPause() { enemyBowtieAnim.StunPause(); } public void OnYellShake() { enemyBowtieAnim.yellShake(); } public void OnYellStart() { enemyBowtieAnim.YellStart(); } public void OnYellStop() { enemyBowtieAnim.YellStop(); } public void OnScream() { ((Component)((Component)this).transform.parent.Find("Mesh").Find("Hurt Colliders")).gameObject.SetActive(true); } public void OffScream() { ((Component)((Component)this).transform.parent.Find("Mesh").Find("Hurt Colliders")).gameObject.SetActive(false); } public void BaseAnim() { ((Component)((Component)this).transform.parent).GetComponent().SetBool("yell", true); } } internal class BeidouAnimationEventHandler : MonoBehaviour { public EnemySlowWalkerAnim enemySlowWalkerAnim; private void Start() { //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) enemySlowWalkerAnim = ((Component)((Component)this).transform.parent).GetComponent(); if ((Object)(object)enemySlowWalkerAnim != (Object)null) { ((Component)enemySlowWalkerAnim).gameObject.transform.Find("[ANIM S&S BOT]").Find("[ANIM S&S MID]").Find("[ANIM BODY PIVOT BOT]") .Find("[BODY BOT]") .Find("ANIM body_bot") .Find("[BODY TOP]") .Find("ANIM body_top") .Find("ANIM body_top FREE") .Find("[NECK]") .Find("[NECK BASE]") .Find("ANIM neck_base") .Find("LOOK AT") .Find("code_LookAt") .Find("Hurt Collider - LookUnderAttack") .parent = ((Component)enemySlowWalkerAnim).transform; ((Component)enemySlowWalkerAnim).gameObject.transform.Find("Hurt Collider - LookUnderAttack").localPosition = new Vector3(0f, 0.16f, 0.44f); ((Component)enemySlowWalkerAnim).gameObject.transform.Find("Hurt Collider - LookUnderAttack").localEulerAngles = Vector3.zero; ((Component)enemySlowWalkerAnim).gameObject.transform.Find("Hurt Collider - LookUnderAttack").localScale = new Vector3(0.57101f, 0.62681f, 1.536f); } } public void OnStuckAttack() { ((Component)((Component)this).transform.parent.Find("Hurt Collider - StuckAttack")).gameObject.SetActive(true); } public void OnStuckEnd() { ((Component)((Component)this).transform.parent.Find("Hurt Collider - StuckAttack")).gameObject.SetActive(false); } public void OnLookUnderAttack() { ((Component)((Component)this).transform.parent).GetComponent().SetTrigger("LookUnderAttack"); } public void OnAttackOffsetStart() { enemySlowWalkerAnim.AttackOffsetStart(); } public void OnAttackOffsetStop() { enemySlowWalkerAnim.AttackOffsetStop(); } public void OnAttackStart() { enemySlowWalkerAnim.AttackStart(); } public void OnDespawn() { enemySlowWalkerAnim.Despawn(); } public void OnNoticeSet(int num) { enemySlowWalkerAnim.NoticeSet(num); } public void OnOnSpawn() { enemySlowWalkerAnim.OnSpawn(); } public void OnSfxAttackBuildupVoice() { enemySlowWalkerAnim.SfxAttackBuildupVoice(); } public void OnSfxAttackImpact() { enemySlowWalkerAnim.SfxAttackImpact(); } public void OnSfxAttackImplosionBuildup() { enemySlowWalkerAnim.SfxAttackImplosionBuildup(); } public void OnSfxAttackImplosionHit() { enemySlowWalkerAnim.SfxAttackImplosionHit(); } public void OnSfxAttackImplosionImpact() { enemySlowWalkerAnim.SfxAttackImplosionImpact(); } public void OnSfxDeath() { enemySlowWalkerAnim.SfxDeath(); } public void OnSfxFootsepBig() { enemySlowWalkerAnim.SfxFootstepBig(); } public void OnSfxFootstepSmall() { enemySlowWalkerAnim.SfxFootstepSmall(); } public void OnSfxHurt() { enemySlowWalkerAnim.SfxHurt(); } public void OnSfxJump() { enemySlowWalkerAnim.SfxJump(); } public void OnSfxLand() { enemySlowWalkerAnim.SfxLand(); } public void OnSfxLookUnderAttack() { enemySlowWalkerAnim.SfxLookUnderAttack(); } public void OnSfxLookUnderIntro() { enemySlowWalkerAnim.SfxLookUnderIntro(); } public void OnSfxLookUnderOutro() { enemySlowWalkerAnim.SfxLookUnderOutro(); } public void OnSfxMaceTrailing() { enemySlowWalkerAnim.SfxMaceTrailing(); } public void OnSfxMoveLong() { enemySlowWalkerAnim.SfxMoveLong(); } public void OnSfxMoveShort() { enemySlowWalkerAnim.SfxMoveShort(); } public void OnSfxNoiseLong() { enemySlowWalkerAnim.SfxNoiseLong(); } public void OnSfxNoiseShort() { enemySlowWalkerAnim.SfxNoiseShort(); } public void OnSfxNoticeVoice() { enemySlowWalkerAnim.SfxNoticeVoice(); } public void OnSfxStunnedLoop() { enemySlowWalkerAnim.SfxStunnedLoop(); } public void OnSfxSwingLong() { enemySlowWalkerAnim.SfxSwingLong(); } public void OnSfxSwingShort() { enemySlowWalkerAnim.SfxSwingShort(); } public void OnSpringLogic() { enemySlowWalkerAnim.SpringLogic(); } public void OnVfxSparkStart() { enemySlowWalkerAnim.VfxSparkStart(); } public void OnVfxSparkStop() { enemySlowWalkerAnim.VfxSparkStop(); } public void CrouchCollider() { ((Component)((Component)enemySlowWalkerAnim).gameObject.transform.Find("Hurt Collider - LookUnderAttack")).gameObject.SetActive(true); } public void CrouchCollideStop() { ((Component)((Component)enemySlowWalkerAnim).gameObject.transform.Find("Hurt Collider - LookUnderAttack")).gameObject.SetActive(false); } } internal class DottoreAnimationEventHandler : MonoBehaviour { public EnemyShadowAnim enemyShadowAnim; private void Start() { enemyShadowAnim = ((Component)((Component)this).transform.parent).GetComponent(); if ((Object)(object)enemyShadowAnim == (Object)null) { Debug.LogError((object)"enemyShadowAnim not found on parent object [VISUALS]."); } } public void OnSetDespawn() { enemyShadowAnim.SetDespawn(); } } internal class GanyuAnimationEventHandler : MonoBehaviour { public BirthdayBoyAnim birthdayBoyAnim; private static readonly FieldInfo bPosField = AccessTools.Field(typeof(EnemyBirthdayBoy), "pendingBalloonPoint"); private void Start() { birthdayBoyAnim = ((Component)((Component)this).transform.parent).GetComponent(); Object.Destroy((Object)(object)((Component)((Component)this).transform.parent).GetComponent()); if ((Object)(object)birthdayBoyAnim == (Object)null) { Debug.LogError((object)"birthdayBoyAnim not found on parent object [VISUALS]."); } } public void OnFootstepSound() { birthdayBoyAnim.FootStepSound(); } public void OnAttackSwoosh() { birthdayBoyAnim.AttackSwoosh(); } public void OnCrouchedDown() { birthdayBoyAnim.CrouchedDown(); } public void OnSetBlowingTrue() { birthdayBoyAnim.SetBlowingTrue(); } public void OnSetBlowingFalse() { birthdayBoyAnim.SetBlowingFalse(); } public void OnInhaleSound() { birthdayBoyAnim.InhaleSound(); } public void OnBalloonBloWSound() { birthdayBoyAnim.BalloonBloWSound(); } public void OnBalloonTieSound() { birthdayBoyAnim.BalloonTieSound(); } public void OnBalloonSqueakSound() { birthdayBoyAnim.BalloonSqueakSound(); } public void OnStoreBalloonLocation() { birthdayBoyAnim.StoreBalloonLocation(); } public void OnDoneWithBalloonBlow() { birthdayBoyAnim.DoneWithBalloonBlow(); } public void OnMoveHeavySound() { birthdayBoyAnim.MoveHeavySound(); } public void OnMoveLightSound() { birthdayBoyAnim.MoveLightSound(); } public void OnSetDespawn() { birthdayBoyAnim.SetDespawn(); } public void OnJumpSound() { birthdayBoyAnim.JumpSound(); } public void OnLandSound() { birthdayBoyAnim.LandSound(); } public void OnNoticeSound() { birthdayBoyAnim.NoticeSound(); } public void OnCrackSound() { birthdayBoyAnim.CrackSound(); } public void OnAttackStart() { ((Component)((Component)this).transform.parent.Find("Hurt Collider")).gameObject.SetActive(true); } public void OnAttackEnd() { ((Component)((Component)this).transform.parent.Find("Hurt Collider")).gameObject.SetActive(false); } private IEnumerator MoveAndScale(Transform ball, Vector3 targetPos, float duration) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) Vector3 startPos = ball.position; Vector3 startScale = Vector3.zero; Vector3 endScale = new Vector3(100f, 100f, 100f); ball.localScale = startScale; float elapsed = 0f; while (elapsed < duration) { elapsed += Time.deltaTime; float t2 = elapsed / duration; t2 = Mathf.Sin(t2 * (float)Math.PI * 0.5f); ball.position = Vector3.Lerp(startPos, targetPos, t2); ball.localScale = Vector3.Lerp(startScale, endScale, t2); yield return null; } ball.position = targetPos; ball.localScale = endScale; ((Component)ball).gameObject.AddComponent(); yield return (object)new WaitForSeconds(1.6f); if ((Object)(object)ball != (Object)null) { Object.Destroy((Object)(object)((Component)ball).gameObject); } } } internal class ColleiCatAnimationEventHandler : MonoBehaviour { public EnemyBombThrowerHead enemyBombThrowerHead; private void Start() { enemyBombThrowerHead = ((Component)((Component)this).transform.parent).GetComponent(); if ((Object)(object)enemyBombThrowerHead == (Object)null) { Debug.LogError((object)"enemyBombThrowerHead not found on parent object [VISUALS]."); } } public void OnAnimationEventSpawn() { enemyBombThrowerHead.AnimationEventSpawn(); } public void OnAnimationEventExplosionTell() { enemyBombThrowerHead.AnimationEventExplosionTell(); } public void OnAnimationEventExplode() { enemyBombThrowerHead.AnimationEventExplode(); } } internal class ColleiAnimationEventHandler : MonoBehaviour { public EnemyBombThrowerAnim enemyBombThrowerAnim; private void Start() { enemyBombThrowerAnim = ((Component)((Component)this).transform.parent).GetComponent(); if ((Object)(object)enemyBombThrowerAnim == (Object)null) { Debug.LogError((object)"enemyBombThrowerAnim not found on parent object [VISUALS]."); } } public void OnEventMoveLong() { enemyBombThrowerAnim.EventMoveLong(); } public void OnEventMoveShort() { enemyBombThrowerAnim.EventMoveShort(); } public void OnEventHeadDetachTell() { enemyBombThrowerAnim.EventHeadDetachTell(); } public void OnEventFootstepSkinLight() { enemyBombThrowerAnim.EventFootstepSkinLight(); } public void OnEventFootstepSkinHeavy() { enemyBombThrowerAnim.EventFootstepSkinHeavy(); } public void OnEventFootstepBootLight() { enemyBombThrowerAnim.EventFootstepBootLight(); } public void OnEventFootstepBootHeavy() { enemyBombThrowerAnim.EventFootstepBootHeavy(); } public void OnEventTorsoHeadGrow01() { enemyBombThrowerAnim.EventTorsoHeadGrow01(); } public void OnEventTorsoHeadGrow02() { enemyBombThrowerAnim.EventTorsoHeadGrow02(); } public void OnEventTorsoHeadGrow03() { enemyBombThrowerAnim.EventTorsoHeadGrow03(); } public void OnEventJump() { enemyBombThrowerAnim.EventJump(); } public void OnEventLand() { enemyBombThrowerAnim.EventLand(); } public void OnEventTeleportIn() { enemyBombThrowerAnim.EventTeleportIn(); } public void OnEventTeleportOut() { enemyBombThrowerAnim.EventTeleportOut(); } public void OnEventDespawn() { enemyBombThrowerAnim.EventDespawn(); } public void OnEventMelee() { enemyBombThrowerAnim.EventMelee(); } public void OnEventAttack() { enemyBombThrowerAnim.EventAttack(); } public void OnEventNotice() { enemyBombThrowerAnim.EventTorsoHeadsScream(); } public void OnEventMeleeEnd() { enemyBombThrowerAnim.EventMeleeEnd(); } public void GrowHead() { try { enemyBombThrowerAnim.headGrownVisually = true; } catch (Exception) { } } public void OnAttackStart() { ((Component)((Component)this).transform.parent.Find("Hurt Collider")).gameObject.SetActive(true); } public void OnAttackEnd() { ((Component)((Component)this).transform.parent.Find("Hurt Collider")).gameObject.SetActive(false); } } internal class KiraraAnimationEventHandler : MonoBehaviour { private static MethodInfo deathHeadReleaseMethod; public EnemyHeadGrabberAnim headGrabberAnim; private EnemyHeadGrabber headGrabber; public GameObject particlePrefab; private void Start() { headGrabberAnim = ((Component)((Component)this).transform.parent).GetComponent(); headGrabber = headGrabberAnim.controller; if ((Object)(object)headGrabberAnim == (Object)null) { Debug.LogError((object)"headGrabberAnim not found on parent object [VISUALS]."); deathHeadReleaseMethod = AccessTools.Method(typeof(EnemyHeadGrabber), "DeathHeadRelease", (Type[])null, (Type[])null); } } public void OnEventAttackSwipe() { headGrabberAnim.EventAttackSwipe(); } public void OnEventFootstepRightLight() { headGrabberAnim.EventFootstepRightLight(); } public void OnEventFootstepLeftLight() { headGrabberAnim.EventFootstepLeftLight(); } public void OnEventFootstepRightHeavy() { headGrabberAnim.EventFootstepRightHeavy(); } public void OnEventFootstepLeftHeavy() { headGrabberAnim.EventFootstepLeftHeavy(); } public void OnEventFootstepRightMedium() { headGrabberAnim.EventFootstepRightMedium(); } public void OnEventFootstepLeftMedium() { headGrabberAnim.EventFootstepLeftMedium(); } public void OnEventMoveShort() { headGrabberAnim.EventMoveShort(); } public void OnEventMoveLong() { headGrabberAnim.EventMoveLong(); } public void OnEventDropkickEnd() { headGrabberAnim.EventDropkickEnd(); } public void OnEventDropkickTell() { headGrabberAnim.EventDropkickTell(); } public void OnEventDropkickStart() { headGrabberAnim.EventDropkickStart(); } public void OnEventDropkickLand() { headGrabberAnim.EventDropkickLand(); } public void OnEventMaterialImpact() { headGrabberAnim.EventMaterialImpact(); } public void OnEventCantReach() { headGrabberAnim.EventCantReach(); } public void OnEventJump() { headGrabberAnim.EventJump(); } public void OnEventLand() { headGrabberAnim.EventLand(); } public void OnEventTeleport() { headGrabberAnim.EventTeleport(); } public void OnEventDespawn() { headGrabberAnim.EventDespawn(); } public void OnEventGrabHead() { headGrabberAnim.EventGrabHead(); } public void OnEventNoiseLong() { headGrabberAnim.EventNoiseLong(); } public void OnEventNoiseShort() { headGrabberAnim.EventNoiseShort(); } public void OnEventRun() { headGrabberAnim.EventRun(); } public void OnEventNotice() { headGrabberAnim.EventNotice(); } public void OnEventReleaseHeadStart() { headGrabberAnim.EventReleaseHeadStart(); } public void OnEventReleaseHead() { headGrabberAnim.EventReleaseHead(); } public void OnEventReleaseHeadEnd() { headGrabberAnim.EventReleaseHeadEnd(); } public void OnEventStunIntro() { headGrabberAnim.EventStunIntro(); } public void OnEventStunOutro() { headGrabberAnim.EventStunOutro(); } public void InstantRelease() { deathHeadReleaseMethod.Invoke(headGrabber, null); } public void OnSmokeExplosion() { Object.Instantiate(particlePrefab, ((Component)this).gameObject.transform); } public void StartAttack() { ((Component)((Component)this).gameObject.transform.parent.Find("Hurt Collider - Swipe")).gameObject.SetActive(true); } public void EndAttack() { ((Component)((Component)this).gameObject.transform.parent.Find("Hurt Collider - Swipe")).gameObject.SetActive(false); } public void StartDropKickAttack() { ((Component)((Component)this).gameObject.transform.parent.Find("Hurt Collider - Dropkick")).gameObject.SetActive(true); } public void EndDropKickAttack() { ((Component)((Component)this).gameObject.transform.parent.Find("Hurt Collider - Dropkick")).gameObject.SetActive(false); } } internal class TapirAnimationEventHandler : MonoBehaviour { public EnemyDuckAnim enemyDuckAnim; private void Start() { enemyDuckAnim = ((Component)((Component)this).transform.parent).GetComponent(); if ((Object)(object)enemyDuckAnim == (Object)null) { Debug.LogError((object)"enemyDuckAnim not found on parent object [VISUALS]."); } } public void CallPrivateAnimationEvents(string name) { MethodInfo method = ((object)enemyDuckAnim).GetType().GetMethod(name, BindingFlags.Instance | BindingFlags.NonPublic); if (method != null) { method.Invoke(enemyDuckAnim, null); } } public void OnOnSpawn() { enemyDuckAnim.OnSpawn(); } public void OnDespawn() { enemyDuckAnim.Despawn(); } public void OnBiteSound() { CallPrivateAnimationEvents("BiteSound"); } public void OnFlyFlapSound() { //IL_0012: Unknown result type (might be due to invalid IL or missing references) enemyDuckAnim.flyFlapSound.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f); } public void OnFootstepSound() { //IL_0012: Unknown result type (might be due to invalid IL or missing references) enemyDuckAnim.footstepSound.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f); } public void OnJumpSound() { //IL_0012: Unknown result type (might be due to invalid IL or missing references) enemyDuckAnim.jumpSound.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f); } public void OnMouthExtendSound() { //IL_0012: Unknown result type (might be due to invalid IL or missing references) enemyDuckAnim.mouthExtendSound.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f); } public void OnMouthRetractSound() { //IL_0012: Unknown result type (might be due to invalid IL or missing references) enemyDuckAnim.mouthRetractSound.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f); } public void NoticeSound() { //IL_0012: Unknown result type (might be due to invalid IL or missing references) enemyDuckAnim.noticeSound.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f); } public void OnQuack() { CallPrivateAnimationEvents("Quack"); } public void OnStopAttackSound() { enemyDuckAnim.attackLoopSound.PlayLoop(false, 5f, 5f, 1f, 1f); } public void OnAttack() { ((Component)((Component)enemyDuckAnim).transform.Find("Hurt Collider")).gameObject.SetActive(true); } public void StopAttack() { ((Component)((Component)enemyDuckAnim).transform.Find("Hurt Collider")).gameObject.SetActive(false); } public void OnTransformSound() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) if (((Behaviour)this).enabled) { if (Vector3.Distance(((Component)this).transform.position, ((Component)Camera.main).transform.position) < 10f) { AudioScare.instance.PlayImpact(); } enemyDuckAnim.transformSound.Play(((Component)this).transform.position, 1f, 1f, 1f, 1f); } } } internal class ClorindeAnimationEventHandler : MonoBehaviour { public EnemyHunterAnim enemyHunterAnim; private void Start() { enemyHunterAnim = ((Component)((Component)this).transform.parent).GetComponent(); if ((Object)(object)enemyHunterAnim == (Object)null) { Debug.LogError((object)"enemyHunterAnim not found on parent object [VISUALS]."); } } public void OnAimStart() { enemyHunterAnim.AimStart(); } public void OnDespawn() { enemyHunterAnim.Despawn(); } public void OnDespawnSound() { enemyHunterAnim.DespawnSound(); } public void OnSpawn() { enemyHunterAnim.Spawn(); } public void OnMoveLong() { enemyHunterAnim.MoveLong(); } public void OnMoveShort() { enemyHunterAnim.MoveShort(); } public void OnGunLong() { enemyHunterAnim.GunLong(); } public void OnGunShort() { enemyHunterAnim.GunShort(); } public void OnFootstepShort() { enemyHunterAnim.FootstepShort(); } public void OnFootstepLong() { enemyHunterAnim.FootstepLong(); } public void OnReload01() { enemyHunterAnim.Reload01(); } public void OnReload02() { enemyHunterAnim.Reload02(); } public void OnTeleportEffect() { enemyHunterAnim.TeleportEffect(); } public void OnLeaveSoundStart() { enemyHunterAnim.LeaveStartSound(); } public void OnLeaveSoundDone() { enemyHunterAnim.LeaveStartDone(); } } internal class MavuikaAnimationEventHandler : MonoBehaviour { public EnemyBangAnim enemyBangAnim; private void Start() { enemyBangAnim = ((Component)((Component)this).transform.parent).GetComponent(); if ((Object)(object)enemyBangAnim == (Object)null) { Debug.LogError((object)"enemyBangAnim not found on parent object [VISUALS]."); } } public void OnDespawn() { enemyBangAnim.Despawn(); } public void OnFootstepPlay() { enemyBangAnim.FootstepPlay(); } public void OnFuseLoop() { enemyBangAnim.FuseLoop(); } public void OnFuseTellPlay() { enemyBangAnim.FuseTellPlay(); } public void OnJumpPlay() { enemyBangAnim.JumpPlay(); } public void OnLandPlay() { enemyBangAnim.LandPlay(); } public void OnMoveLongPlay() { enemyBangAnim.MoveLongPlay(); } public void OnMoveShortPlay() { enemyBangAnim.MoveShortPlay(); } public void OnStunLoopPause(float num) { enemyBangAnim.StunLoopPause(num); } } internal class GamingAnimationEventHandler : MonoBehaviour { public EnemyTumblerAnim enemyTumblerAnim; private void Start() { enemyTumblerAnim = ((Component)((Component)this).transform.parent).GetComponent(); if ((Object)(object)enemyTumblerAnim == (Object)null) { Debug.LogError((object)"enemyTumblerAnim not found on parent object [VISUALS]."); } } public void OnDespawn() { enemyTumblerAnim.Despawn(); } public void OnOnSpawn() { enemyTumblerAnim.OnSpawn(); } public void OnSfxMoveLong() { enemyTumblerAnim.SfxMoveLong(); } public void OnSfxMoveShort() { enemyTumblerAnim.SfxMoveShort(); } public void OnOnTumble() { enemyTumblerAnim.OnTumble(); } public void OnSfxCharge() { enemyTumblerAnim.SfxCharge(); } public void OnSfxCleaverSwing() { enemyTumblerAnim.SfxCleaverSwing(); } public void OnSfxHurt() { enemyTumblerAnim.SfxHurt(); } public void OnSfxJump() { enemyTumblerAnim.SfxJump(); } public void OnSfxLand() { enemyTumblerAnim.SfxLand(); } public void OnSfxNotice() { enemyTumblerAnim.SfxNotice(); } public void OnSfxOnHurtColliderImpactAny() { enemyTumblerAnim.SfxOnHurtColliderImpactAny(); } } internal class GorouAnimationEventHandler : MonoBehaviour { public EnemyHeadAnimationSystem enemyHeadAnimationSystem; private void Start() { enemyHeadAnimationSystem = ((Component)((Component)this).transform.parent).GetComponent(); if ((Object)(object)enemyHeadAnimationSystem == (Object)null) { Debug.LogError((object)"enemyHeadAnimationSystem not found on parent object [VISUALS]."); } } public void OnSetChaseBegin() { enemyHeadAnimationSystem.SetChaseBegin(); } public void OnSetChaseBeginToChase() { enemyHeadAnimationSystem.SetChaseBeginToChase(); } public void OnPlayChaseBiteStart() { enemyHeadAnimationSystem.PlayChaseBiteStart(); } public void OnPlayChaseBiteImpact() { enemyHeadAnimationSystem.PlayChaseBiteImpact(); } public void OnSetChaseToIdle() { enemyHeadAnimationSystem.SetChaseToIdle(); } public void OnPlayDespawn() { enemyHeadAnimationSystem.PlayDespawn(); } public void OnPlaySpawn() { enemyHeadAnimationSystem.PlaySpawn(); } public void OnDespawnSet() { MethodInfo method = ((object)enemyHeadAnimationSystem).GetType().GetMethod("DespawnSet", BindingFlags.Instance | BindingFlags.NonPublic); if (method != null) { method.Invoke(enemyHeadAnimationSystem, null); } } public void OnTeleportParticlesStart() { enemyHeadAnimationSystem.TeleportParticlesStart(); } public void OnTeleportParticlesStop() { enemyHeadAnimationSystem.TeleportParticlesStop(); } public void OnPlayBiteStart() { enemyHeadAnimationSystem.PlayBiteStart(); } public void OnIdleBiteImpact() { enemyHeadAnimationSystem.IdleBiteImpact(); } public void OnPlayMoveLong() { enemyHeadAnimationSystem.PlayMoveLong(); } public void OnPlayMoveShort() { enemyHeadAnimationSystem.PlayMoveShort(); } public void OnIdleBiteDone() { enemyHeadAnimationSystem.IdleBiteDone(); } public void OnPlayTeethChatter() { enemyHeadAnimationSystem.PlayTeethChatter(); } public void BiteStart() { ((Component)((Component)enemyHeadAnimationSystem).gameObject.transform.Find("Logic").Find("Hurt Box")).gameObject.GetComponent().playerDamage = 50; ((Component)((Component)enemyHeadAnimationSystem).gameObject.transform.Find("Logic").Find("Hurt Box")).gameObject.SetActive(true); } public void BiteDone() { ((Component)((Component)enemyHeadAnimationSystem).gameObject.transform.Find("Logic").Find("Hurt Box")).gameObject.SetActive(false); } } internal class HuTaoAnimationEventHandler : MonoBehaviour { public EnemyRobeAnim enemyRobeAnim; private void Start() { enemyRobeAnim = ((Component)((Component)this).transform.parent).GetComponent(); if ((Object)(object)enemyRobeAnim == (Object)null) { Debug.LogError((object)"enemyRobeAnim not found on parent object [VISUALS]."); } } public void OnDeathParticlesImpulse() { enemyRobeAnim.DeathParticlesImpulse(); } public void OnLookUnderAttack() { enemyRobeAnim.LookUnderAttack(); } public void TriggerAttack() { ((Component)((Component)enemyRobeAnim).gameObject.transform.Find("Main Animation").Find("Hurt Collider")).gameObject.SetActive(true); } public void StopAttack() { ((Component)((Component)enemyRobeAnim).gameObject.transform.Find("Main Animation").Find("Hurt Collider")).gameObject.SetActive(false); } public void TriggerLookUnderIntro() { ((Component)((Component)this).transform.parent).GetComponent().SetTrigger("LookUnder"); } public void TriggerLookUnderAttack() { ((Component)((Component)this).transform.parent).GetComponent().SetTrigger("LookUnderAttack"); } public void TriggerStandUp() { ((Component)((Component)this).transform.parent).GetComponent().SetBool("LookingUnder", false); } public void CrouchCollider() { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) Transform val = ((Component)enemyRobeAnim).gameObject.transform.Find("Main Animation").Find("Hurt Collider"); ((Component)val).gameObject.SetActive(true); val.localPosition = new Vector3(0f, 0f, -0.6f); val.localScale = new Vector3(1.847482f, 1.291479f, 2.5f); ((Component)val).GetComponent().playerDamage = 50; ((Component)val).GetComponent().playerDamageCooldown = 999f; ((Component)val).GetComponent().playerTumbleForce = 10f; ((Component)val).GetComponent().playerTumbleTime = 2f; ((Component)val).GetComponent().playerTumbleTorque = 10f; } public void CrouchCollideStop() { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) Transform val = ((Component)enemyRobeAnim).gameObject.transform.Find("Main Animation").Find("Hurt Collider"); ((Component)val).gameObject.SetActive(false); val.localPosition = new Vector3(0f, 0f, -0.6f); val.localScale = new Vector3(1.847482f, 3.25876f, 2.5f); ((Component)val).GetComponent().playerDamage = 100; ((Component)val).GetComponent().playerDamageCooldown = 0.5f; ((Component)val).GetComponent().playerTumbleForce = 0f; ((Component)val).GetComponent().playerTumbleTime = 0f; ((Component)val).GetComponent().playerTumbleTorque = 0f; } public void OnLookUnderIntro() { enemyRobeAnim.LookUnderIntro(); } public void OnSetDespawn() { enemyRobeAnim.SetDespawn(); } public void OnSetSpawn() { enemyRobeAnim.SetSpawn(); } public void OnSfxAttack() { enemyRobeAnim.SfxAttack(); } public void OnSfxIdleBreak() { enemyRobeAnim.SfxIdleBreak(); } public void OnSfxTargetPlayerLoop() { enemyRobeAnim.SfxTargetPlayerLoop(); } public void OnSpawnParticlesImpulse() { enemyRobeAnim.SpawnParticlesImpulse(); } public void OnTeleportParticlesStart() { enemyRobeAnim.TeleportParticlesStart(); } public void OnTeleportParticlesStop() { enemyRobeAnim.TeleportParticlesStop(); } } internal class IansanAnimationEventHandler : MonoBehaviour { public EnemyUpscreamAnim enemyUpscreamAnim; private void Start() { enemyUpscreamAnim = ((Component)((Component)this).transform.parent.Find("Mesh").Find("-- ANIMATION & SOUND --")).GetComponent(); if ((Object)(object)enemyUpscreamAnim == (Object)null) { Debug.LogError((object)"enemyUpscreamAnim not found on parent object [VISUALS]."); } } public void OnAttackImpulse() { enemyUpscreamAnim.AttackImpulse(); } public void OnDespawnSound() { enemyUpscreamAnim.DespawnSound(); } public void OnJump() { enemyUpscreamAnim.Jump(); } public void OnLand() { enemyUpscreamAnim.Land(); } public void OnNoticeSet(int num) { enemyUpscreamAnim.NoticeSet(num); } public void OnSetDespawn() { enemyUpscreamAnim.SetDespawn(); } public void OnSetSpawn() { enemyUpscreamAnim.SetSpawn(); } public void OnSfxAttack() { enemyUpscreamAnim.SfxAttack(); } public void OnSfxIdleBreak() { enemyUpscreamAnim.SfxIdleBreak(); } public void OnSfxImpactFootstep() { enemyUpscreamAnim.SfxImpactFootstep(); } public void OnTeleportParticlesStart() { enemyUpscreamAnim.TeleportParticlesStart(); } public void OnTeleportParticlesStop() { enemyUpscreamAnim.TeleportParticlesStop(); } } internal class KachinaAnimationEventHandler : MonoBehaviour { public EnemyValuableThrowerAnim enemyValuableThrowerAnim; private void Start() { enemyValuableThrowerAnim = ((Component)((Component)this).transform.parent).GetComponent(); if ((Object)(object)enemyValuableThrowerAnim == (Object)null) { Debug.LogError((object)"enemyValuableThrowerAnim not found on parent object [VISUALS]."); } } public void OnDespawn() { enemyValuableThrowerAnim.Despawn(); } public void OnDespawnStart() { enemyValuableThrowerAnim.DespawnStart(); } public void OnFootstep() { enemyValuableThrowerAnim.Footstep(); } public void OnFootstepSmall() { enemyValuableThrowerAnim.FootstepSmall(); } public void OnJump() { enemyValuableThrowerAnim.Jump(); } public void OnLand() { enemyValuableThrowerAnim.Land(); } public void OnMoveLong() { enemyValuableThrowerAnim.MoveLong(); } public void OnMoveShort() { enemyValuableThrowerAnim.MoveShort(); } public void OnNotice() { enemyValuableThrowerAnim.Notice(); } public void OnNoticeSet(int num) { enemyValuableThrowerAnim.NoticeSet(num); } public void OnOnSpawn() { enemyValuableThrowerAnim.OnSpawn(); } public void OnPickupIntro() { enemyValuableThrowerAnim.PickupIntro(); } public void OnPickupOutro() { enemyValuableThrowerAnim.PickupOutro(); } public void OnResetStateTimer() { enemyValuableThrowerAnim.ResetStateTimer(); } public void OnSpawnStart() { enemyValuableThrowerAnim.SpawnStart(); } public void OnStunStop() { enemyValuableThrowerAnim.StunStop(); } public void OnThrow() { enemyValuableThrowerAnim.Throw(); } } internal class MikaAnimationEventHandler : MonoBehaviour { private EnemyGnomeAnim enemyGnomeAnim; private void Start() { enemyGnomeAnim = ((Component)((Component)this).transform.parent).GetComponent(); if (!((Object)(object)enemyGnomeAnim == (Object)null)) { } } public void OnAttack() { ((Component)((Component)this).transform.parent).GetComponent().SetTrigger("Attack"); } public void OnAttackDone() { enemyGnomeAnim.AttackDone(); } public void OnDespawn() { enemyGnomeAnim.Despawn(); } public void OnDespawnSet() { enemyGnomeAnim.DespawnSet(); } public void OnFootstep() { enemyGnomeAnim.Footstep(); } public void OnIdleBreaker() { enemyGnomeAnim.IdleBreaker(); } public void OnJump() { enemyGnomeAnim.Jump(); } public void OnLand() { enemyGnomeAnim.Land(); } public void OnMoveShort() { enemyGnomeAnim.MoveShort(); } public void OnMoveLong() { enemyGnomeAnim.MoveLong(); } public void OnNotice() { enemyGnomeAnim.Notice(); } public void OnOnSpawn() { enemyGnomeAnim.OnSpawn(); } public void OnPickaxeHit() { enemyGnomeAnim.PickaxeHit(); } public void OnPickaxeTell() { enemyGnomeAnim.PickaxeTell(); } public void OnSpawn() { enemyGnomeAnim.Spawn(); } public void OnStunOutro() { enemyGnomeAnim.StunOutro(); } } internal class NahidaAnimationEventHandler : MonoBehaviour { public EnemyCeilingEyeAnim enemyCeilingEye; private void Start() { enemyCeilingEye = ((Component)((Component)this).transform.parent).GetComponent(); if ((Object)(object)enemyCeilingEye == (Object)null) { Debug.LogError((object)"enemyCeilingEye not found on parent object [VISUALS]."); } } public void OnAttackFinished() { enemyCeilingEye.AttackFinished(); } public void OnDeathEffect() { enemyCeilingEye.DeathEffect(); } public void OnExplosion() { enemyCeilingEye.Explosion(); } public void OnSetAttack() { enemyCeilingEye.SetAttack(); } public void OnSetDespawn() { enemyCeilingEye.SetDespawn(); } public void OnSetSpawn() { enemyCeilingEye.SetSpawn(); } public void OnSfxBlink() { enemyCeilingEye.SfxBlink(); } public void OnSfxDespawn() { enemyCeilingEye.SfxDespawn(); } public void OnSfxLaserBeam() { enemyCeilingEye.SfxLaserBeam(); } public void OnSfxLaserBuildup() { enemyCeilingEye.SfxLaserBuildup(); } public void OnSfxSpawn() { enemyCeilingEye.SfxSpawn(); } public void OnSfxStaringLoop() { enemyCeilingEye.SfxStaringLoop(); } public void OnSfxStaringStart() { enemyCeilingEye.SfxStaringStart(); } public void OnTeleportParticlesStart() { enemyCeilingEye.TeleportParticlesStart(); } public void OnTeleportParticlesStop() { enemyCeilingEye.TeleportParticlesStop(); } } internal class SayuAnimationEventHandler : MonoBehaviour { public EnemyAnimalAnim enemyAnimalAnim; private void Start() { enemyAnimalAnim = ((Component)((Component)this).transform.parent).GetComponentInChildren(); if ((Object)(object)enemyAnimalAnim == (Object)null) { Debug.LogError((object)"enemyAnimalAnim not found"); } else { Object.Destroy((Object)(object)((Component)enemyAnimalAnim).gameObject.GetComponent()); } } public void OnDespawnSound() { enemyAnimalAnim.DespawnSound(); } public void OnDig() { enemyAnimalAnim.Dig(); } public void OnImpactFootep() { enemyAnimalAnim.ImpactFootstep(); } public void OnImpactHeavy() { enemyAnimalAnim.ImpactHeavy(); } public void OnImpactLight() { enemyAnimalAnim.ImpactLight(); } public void OnImpactMedium() { enemyAnimalAnim.ImpactMedium(); } public void OnJump() { enemyAnimalAnim.Jump(); } public void OnLand() { enemyAnimalAnim.Land(); } public void OnMaterialImpactShake() { enemyAnimalAnim.MaterialImpactShake(); } public void OnNotice() { enemyAnimalAnim.Notice(); } public void OnNoticeSet(int num) { enemyAnimalAnim.NoticeSet(num); } public void OnSetDespawn() { enemyAnimalAnim.SetDespawn(); } public void OnSetSpawn() { enemyAnimalAnim.SetSpawn(); } public void OnStunStop() { enemyAnimalAnim.StunStop(); } } internal class XianyunAnimationEventHandler : MonoBehaviour { public EnemyFloaterAnim enemyFloaterAnim; private void Start() { enemyFloaterAnim = ((Component)((Component)this).transform.parent).GetComponent(); if ((Object)(object)enemyFloaterAnim == (Object)null) { Debug.LogError((object)"enemyFloaterAnim not found on parent object [VISUALS]."); } } public void OnCharge() { ((Component)enemyFloaterAnim).gameObject.GetComponent().SetTrigger("ChargeAttack"); } public void OnDelayToCharge() { ((Component)enemyFloaterAnim).gameObject.GetComponent().SetTrigger("DelayAttack"); } public void OnAttackAnim() { ((Component)enemyFloaterAnim).gameObject.GetComponent().SetTrigger("Attack"); } public void OnAttack() { enemyFloaterAnim.Attack(); } public void OnDelayAttack() { enemyFloaterAnim.DelayAttack(); } public void OnDespawn() { enemyFloaterAnim.Despawn(); } public void OnNoticeSet(int num) { enemyFloaterAnim.NoticeSet(num); } public void OnOnSpawn() { enemyFloaterAnim.OnSpawn(); } public void OnSfxAttackDown() { enemyFloaterAnim.SfxAttackDown(); } public void OnSfxAttackUp() { enemyFloaterAnim.SfxAttackUp(); } public void OnSfxChargeAttackLoop() { enemyFloaterAnim.SfxChargeAttackLoop(); } public void OnSfxDeath() { enemyFloaterAnim.SfxDeath(); } public void OnSfxDelayAttack() { enemyFloaterAnim.SfxDelayAttack(); } public void OnSfxDelayAttackLoop() { enemyFloaterAnim.SfxDelayAttackLoop(); } public void OnSfxHurt() { enemyFloaterAnim.SfxHurt(); } public void OnSfxMoveLong() { enemyFloaterAnim.SfxMoveLong(); } public void OnSfxMoveShort() { enemyFloaterAnim.SfxMoveShort(); } public void OnSfxStunnedLoop() { enemyFloaterAnim.SfxStunnedLoop(); } } internal class YelanAnimationEventHandler : MonoBehaviour { public EnemySpinnyAnim enemySpinnyAnim; private void Start() { enemySpinnyAnim = ((Component)((Component)this).transform.parent).GetComponent(); if ((Object)(object)enemySpinnyAnim == (Object)null) { Debug.LogError((object)"enemySpinnyAnim not found on parent object [VISUALS]."); } } public void OnSetDespawn() { enemySpinnyAnim.SetDespawn(); } public void OnOpenMouthSound() { enemySpinnyAnim.OpenMouthSound(); } public void OnNoticeSound() { enemySpinnyAnim.NoticeSound(); } public void OnFootStepSound() { enemySpinnyAnim.FootStepSound(); } public void OnCloseMouthSound() { enemySpinnyAnim.CloseMouthSound(); } public void OnSetMouthOpenedBoolToFalse() { enemySpinnyAnim.SetMouthOpenedBoolToFalse(); } public void OnSetMouthOpenedBoolToTrue() { enemySpinnyAnim.SetMouthOpenedBoolToTrue(); } public void OnMoveSmall() { enemySpinnyAnim.MoveSmall(); } public void OnMoveBig() { enemySpinnyAnim.MoveBig(); } public void OnMaterialSound() { enemySpinnyAnim.MaterialSound(); } public void OnJumpSound() { enemySpinnyAnim.JumpSound(); } public void OnLandSound() { enemySpinnyAnim.LandSound(); } public void OnTurnOnAllColorsBright() { enemySpinnyAnim.TurnOnAllColorsBright(); } } }