Decompiled source of GenshinImpactOverhaul REPO v2.0.4
JigglePhysicsPlugin.dll
Decompiled 2 weeks agousing System; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using HarmonyLib; using Microsoft.CodeAnalysis; using UnityEngine; using UnityEngine.LowLevel; using UnityEngine.PlayerLoop; using UnityEngine.Serialization; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("JigglePhysicsPlugin")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyDescription("My first plugin")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("JigglePhysicsPlugin")] [assembly: AssemblyTitle("JigglePhysicsPlugin")] [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; } } } namespace JigglePhysicsPlugin { public static class CachedSphereCollider { private class DestroyListener : MonoBehaviour { private void OnDestroy() { _hasSphere = false; } } private static bool _hasSphere; private static SphereCollider _sphereCollider; public static void StartPass() { if (TryGet(out var collider)) { ((Collider)collider).enabled = true; } } public static void FinishedPass() { if (TryGet(out var collider)) { ((Collider)collider).enabled = false; } } public static bool TryGet(out SphereCollider collider) { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Expected O, but got Unknown if (_hasSphere) { collider = _sphereCollider; return true; } try { GameObject val = new GameObject("JiggleBoneSphereCollider", new Type[2] { typeof(SphereCollider), typeof(DestroyListener) }) { hideFlags = (HideFlags)61 }; if (Application.isPlaying) { Object.DontDestroyOnLoad((Object)(object)val); } _sphereCollider = val.GetComponent<SphereCollider>(); collider = _sphereCollider; ((Collider)collider).enabled = false; _hasSphere = true; return true; } catch { if ((Object)(object)_sphereCollider != (Object)null) { if (Application.isPlaying) { Object.Destroy((Object)(object)((Component)_sphereCollider).gameObject); } else { Object.DestroyImmediate((Object)(object)((Component)_sphereCollider).gameObject); } } _hasSphere = false; collider = null; throw; } } } public class JiggleBone { private readonly bool hasTransform; private readonly PositionSignal targetAnimatedBoneSignal; private Vector3 currentFixedAnimatedBonePosition; public readonly JiggleBone parent; private JiggleBone child; private Quaternion boneRotationChangeCheck; private Vector3 bonePositionChangeCheck; private Quaternion lastValidPoseBoneRotation; private float projectionAmount; private Vector3 lastValidPoseBoneLocalPosition; private float normalizedIndex; public readonly Transform transform; private readonly PositionSignal particleSignal; private Vector3 workingPosition; private Vector3? preTeleportPosition; private Vector3 extrapolatedPosition; private float GetLengthToParent() { //IL_0018: 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) if (parent == null) { return 0.1f; } return Vector3.Distance(currentFixedAnimatedBonePosition, parent.currentFixedAnimatedBonePosition); } public JiggleBone(Transform transform, JiggleBone parent, float projectionAmount = 1f) { //IL_004d: 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_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_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_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0055: 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) this.transform = transform; this.parent = parent; this.projectionAmount = projectionAmount; Vector3 startPosition; if ((Object)(object)transform != (Object)null) { lastValidPoseBoneRotation = transform.localRotation; lastValidPoseBoneLocalPosition = transform.localPosition; startPosition = transform.position; } else { startPosition = GetProjectedPosition(); } targetAnimatedBoneSignal = new PositionSignal(startPosition, Time.timeAsDouble); particleSignal = new PositionSignal(startPosition, Time.timeAsDouble); hasTransform = (Object)(object)transform != (Object)null; if (parent != null) { this.parent.child = this; } } public void CalculateNormalizedIndex() { int num = 0; JiggleBone jiggleBone = this; while (jiggleBone.parent != null) { jiggleBone = jiggleBone.parent; num++; } int num2 = 0; jiggleBone = this; while (jiggleBone.child != null) { jiggleBone = jiggleBone.child; num2++; } int num3 = num + num2; float num4 = (float)num / (float)num3; normalizedIndex = num4; } public void VerletPass(JiggleSettingsData jiggleSettings, Vector3 wind, double time) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0056: 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_006b: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0092: 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_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: 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_00dd: 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_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) currentFixedAnimatedBonePosition = targetAnimatedBoneSignal.SamplePosition(time); if (parent == null) { workingPosition = currentFixedAnimatedBonePosition; particleSignal.SetPosition(workingPosition, time); } else { Vector3 localSpaceVelocity = particleSignal.GetCurrent() - particleSignal.GetPrevious() - (parent.particleSignal.GetCurrent() - parent.particleSignal.GetPrevious()); workingPosition = NextPhysicsPosition(particleSignal.GetCurrent(), particleSignal.GetPrevious(), localSpaceVelocity, Time.fixedDeltaTime, jiggleSettings.gravityMultiplier, jiggleSettings.friction, jiggleSettings.airDrag); workingPosition += wind * (Time.fixedDeltaTime * jiggleSettings.airDrag); } } public void CollisionPreparePass(JiggleSettingsData jiggleSettings) { //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) workingPosition = ConstrainLengthBackwards(workingPosition, jiggleSettings.lengthElasticity * jiggleSettings.lengthElasticity * 0.5f); } public void ConstraintPass(JiggleSettingsData jiggleSettings) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_004b: 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) if (parent != null) { workingPosition = ConstrainAngle(workingPosition, jiggleSettings.angleElasticity * jiggleSettings.angleElasticity, jiggleSettings.elasticitySoften); workingPosition = ConstrainLength(workingPosition, jiggleSettings.lengthElasticity * jiggleSettings.lengthElasticity); } } public void CollisionPass(JiggleSettingsBase jiggleSettings, List<Collider> colliders) { //IL_006d: 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_0080: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: 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_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: 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) if (colliders.Count == 0 || !CachedSphereCollider.TryGet(out var collider)) { return; } Vector3 val = default(Vector3); float num = default(float); foreach (Collider collider2 in colliders) { collider.radius = jiggleSettings.GetRadius(normalizedIndex); if (!(collider.radius <= 0f) && Physics.ComputePenetration((Collider)(object)collider, workingPosition, Quaternion.identity, collider2, ((Component)collider2).transform.position, ((Component)collider2).transform.rotation, ref val, ref num)) { workingPosition += val * num; } } } public void SignalWritePosition(double time) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) particleSignal.SetPosition(workingPosition, time); } private Vector3 GetProjectedPosition() { //IL_000c: 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_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) Vector3 position = parent.transform.position; return parent.transform.TransformPoint(parent.GetParentTransform().InverseTransformPoint(position) * projectionAmount); } private Vector3 GetTransformPosition() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) if (!hasTransform) { return GetProjectedPosition(); } return transform.position; } private Transform GetParentTransform() { if (parent != null) { return parent.transform; } return transform.parent; } private void CacheAnimationPosition() { //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0050: 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_0016: Unknown result type (might be due to invalid IL or missing references) if (!hasTransform) { targetAnimatedBoneSignal.SetPosition(GetProjectedPosition(), Time.timeAsDouble); return; } targetAnimatedBoneSignal.SetPosition(transform.position, Time.timeAsDouble); lastValidPoseBoneRotation = transform.localRotation; lastValidPoseBoneLocalPosition = transform.localPosition; } private Vector3 ConstrainLengthBackwards(Vector3 newPosition, float elasticity) { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_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_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) if (child == null) { return newPosition; } Vector3 val = newPosition - child.workingPosition; Vector3 normalized = ((Vector3)(ref val)).normalized; return Vector3.Lerp(newPosition, child.workingPosition + normalized * child.GetLengthToParent(), elasticity); } private Vector3 ConstrainLength(Vector3 newPosition, float elasticity) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: 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_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002e: 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_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) Vector3 val = newPosition - parent.workingPosition; Vector3 normalized = ((Vector3)(ref val)).normalized; return Vector3.Lerp(newPosition, parent.workingPosition + normalized * GetLengthToParent(), elasticity); } public void MatchAnimationInstantly() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) double timeAsDouble = Time.timeAsDouble; Vector3 transformPosition = GetTransformPosition(); targetAnimatedBoneSignal.FlattenSignal(timeAsDouble, transformPosition); particleSignal.FlattenSignal(timeAsDouble, transformPosition); } public void PrepareTeleport() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) preTeleportPosition = GetTransformPosition(); } public void FinishTeleport() { //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_0024: 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_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_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_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) if (!preTeleportPosition.HasValue) { MatchAnimationInstantly(); return; } Vector3 transformPosition = GetTransformPosition(); Vector3 val = transformPosition - preTeleportPosition.Value; targetAnimatedBoneSignal.FlattenSignal(Time.timeAsDouble, transformPosition); particleSignal.OffsetSignal(val); workingPosition += val; } private Vector3 ConstrainAngleBackward(Vector3 newPosition, float elasticity, float elasticitySoften) { //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_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_0055: 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_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_006d: 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_0073: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_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_008c: 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_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: 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_00a1: 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_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0106: 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_0021: 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_010f: Unknown result type (might be due to invalid IL or missing references) if (child == null || child.child == null) { return newPosition; } Vector3 val = child.child.currentFixedAnimatedBonePosition - child.currentFixedAnimatedBonePosition; Vector3 val2 = child.child.workingPosition - child.workingPosition; Quaternion val3 = Quaternion.FromToRotation(val, val2); Vector3 val4 = newPosition - child.workingPosition; Vector3 val5 = val3 * val4; Debug.DrawLine(newPosition, child.workingPosition + val5, Color.cyan); float num = Vector3.Distance(newPosition, child.workingPosition + val5); num /= child.GetLengthToParent(); num = Mathf.Clamp01(num); num = Mathf.Pow(num, elasticitySoften * 2f); return Vector3.Lerp(newPosition, child.workingPosition + val5, elasticity * num); } private Vector3 ConstrainAngle(Vector3 newPosition, float elasticity, float elasticitySoften) { //IL_0020: 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_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0054: 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_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0064: 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_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0098: 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_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: 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_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_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: 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_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_0109: 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_0114: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) if (!hasTransform && projectionAmount == 0f) { return newPosition; } Vector3 val; Vector3 val2; if (parent.parent == null) { val = parent.currentFixedAnimatedBonePosition + (parent.currentFixedAnimatedBonePosition - currentFixedAnimatedBonePosition); val2 = val; } else { val2 = parent.parent.workingPosition; val = parent.parent.currentFixedAnimatedBonePosition; } Vector3 val3 = parent.currentFixedAnimatedBonePosition - val; Vector3 val4 = parent.workingPosition - val2; Quaternion val5 = Quaternion.FromToRotation(val3, val4); Vector3 val6 = currentFixedAnimatedBonePosition - val; Vector3 val7 = val5 * val6; float num = Vector3.Distance(newPosition, val2 + val7); num /= GetLengthToParent(); num = Mathf.Clamp01(num); num = Mathf.Pow(num, elasticitySoften * 2f); return Vector3.Lerp(newPosition, val2 + val7, elasticity * num); } public static Vector3 NextPhysicsPosition(Vector3 newPosition, Vector3 previousPosition, Vector3 localSpaceVelocity, float deltaTime, float gravityMultiplier, float friction, float airFriction) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0013: 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_001d: 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_0027: 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_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_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) float num = deltaTime * deltaTime; Vector3 val = newPosition - previousPosition - localSpaceVelocity; return newPosition + val * (1f - airFriction) + localSpaceVelocity * (1f - friction) + Physics.gravity * (gravityMultiplier * num); } public void DebugDraw(Color simulateColor, Color targetColor, bool interpolated) { //IL_0039: Unknown result type (might be due to invalid IL or missing references) //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_0017: 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_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) if (parent != null) { if (interpolated) { Debug.DrawLine(extrapolatedPosition, parent.extrapolatedPosition, simulateColor, 0f, false); } else { Debug.DrawLine(workingPosition, parent.workingPosition, simulateColor, 0f, false); } Debug.DrawLine(currentFixedAnimatedBonePosition, parent.currentFixedAnimatedBonePosition, targetColor, 0f, false); } } public Vector3 DeriveFinalSolvePosition(Vector3 offset) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: 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) extrapolatedPosition = offset + particleSignal.SamplePosition(Time.timeAsDouble); return extrapolatedPosition; } public Vector3 GetCachedSolvePosition() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) return extrapolatedPosition; } public void PrepareBone() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_002e: 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) if (hasTransform) { if (boneRotationChangeCheck == transform.localRotation) { transform.localRotation = lastValidPoseBoneRotation; } if (bonePositionChangeCheck == transform.localPosition) { transform.localPosition = lastValidPoseBoneLocalPosition; } } CacheAnimationPosition(); } public void OnDrawGizmos(JiggleSettingsBase jiggleSettings) { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)transform != (Object)null && child != null && (Object)(object)child.transform != (Object)null) { Gizmos.DrawLine(transform.position, child.transform.position); } if ((Object)(object)transform != (Object)null && child != null && (Object)(object)child.transform == (Object)null) { Gizmos.DrawLine(transform.position, child.GetProjectedPosition()); } if ((Object)(object)transform != (Object)null && (Object)(object)jiggleSettings != (Object)null) { Gizmos.DrawWireSphere(transform.position, jiggleSettings.GetRadius(normalizedIndex)); } if ((Object)(object)transform == (Object)null && (Object)(object)jiggleSettings != (Object)null) { Gizmos.DrawWireSphere(GetProjectedPosition(), jiggleSettings.GetRadius(normalizedIndex)); } } public void PoseBone(float blend) { //IL_001d: 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_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //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_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00df: 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_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_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_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: 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_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) if (child != null) { Vector3 val = Vector3.Lerp(targetAnimatedBoneSignal.SamplePosition(Time.timeAsDouble), extrapolatedPosition, blend); Vector3 val2 = Vector3.Lerp(child.targetAnimatedBoneSignal.SamplePosition(Time.timeAsDouble), child.extrapolatedPosition, blend); if (parent != null) { transform.position = val; } Vector3 transformPosition = child.GetTransformPosition(); Vector3 val3 = transformPosition - transform.position; Vector3 val4 = val2 - val; Quaternion val5 = Quaternion.FromToRotation(val3, val4); transform.rotation = val5 * transform.rotation; } if (hasTransform) { boneRotationChangeCheck = transform.localRotation; bonePositionChangeCheck = transform.localPosition; } } } [DefaultExecutionOrder(200)] public class JiggleRigBuilder : MonoBehaviour { [SerializeField] [Tooltip("The root bone from which an individual JiggleRig will be constructed. The JiggleRig encompasses all children of the specified root.")] [FormerlySerializedAs("target")] private Transform rootTransform; [Tooltip("The settings that the rig should update with, create them using the Create->JigglePhysics->Settings menu option.")] public JiggleSettingsBase jiggleSettings; [SerializeField] [Tooltip("The list of transforms to ignore during the jiggle. Each bone listed will also ignore all the children of the specified bone.")] private List<Transform> ignoredTransforms; public List<Collider> colliders; [Tooltip("An air force that is applied to the entire rig, this is useful to plug in some wind volumes from external sources.")] public Vector3 wind; [Tooltip("Level of detail manager. This system will control how the jiggle rig saves performance cost.")] public JiggleRigLOD levelOfDetail; [Tooltip("Draws some simple lines to show what the simulation is doing. Generally this should be disabled.")] [SerializeField] private bool debugDraw; private JiggleSettingsData data; private bool initialized; [HideInInspector] protected List<JiggleBone> simulatedPoints; private double accumulation; private bool dirtyFromEnable = false; private bool wasLODActive = true; public static float maxCatchupTime => Time.fixedDeltaTime * 4f; private bool NeedsCollisions => colliders.Count != 0; public Transform GetRootTransform() { return rootTransform; } public void PrepareBone(Vector3 position, JiggleRigLOD jiggleRigLOD) { //IL_0014: 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) if (!initialized) { throw new UnityException("JiggleRig was never initialized. Please call JiggleRig.Initialize() if you're going to manually timestep."); } foreach (JiggleBone simulatedPoint in simulatedPoints) { simulatedPoint.PrepareBone(); } data = jiggleSettings.GetData(); data = (((Object)(object)jiggleRigLOD != (Object)null) ? jiggleRigLOD.AdjustJiggleSettingsData(position, data) : data); } public void MatchAnimationInstantly() { foreach (JiggleBone simulatedPoint in simulatedPoints) { simulatedPoint.MatchAnimationInstantly(); } } public void UpdateJiggle(Vector3 wind, double time) { //IL_0020: Unknown result type (might be due to invalid IL or missing references) foreach (JiggleBone simulatedPoint in simulatedPoints) { simulatedPoint.VerletPass(data, wind, time); } if (NeedsCollisions) { for (int num = simulatedPoints.Count - 1; num >= 0; num--) { simulatedPoints[num].CollisionPreparePass(data); } } foreach (JiggleBone simulatedPoint2 in simulatedPoints) { simulatedPoint2.ConstraintPass(data); } if (NeedsCollisions) { foreach (JiggleBone simulatedPoint3 in simulatedPoints) { simulatedPoint3.CollisionPass(jiggleSettings, colliders); } } foreach (JiggleBone simulatedPoint4 in simulatedPoints) { simulatedPoint4.SignalWritePosition(time); } } public void DeriveFinalSolve() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: 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_004e: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) Vector3 val = simulatedPoints[0].DeriveFinalSolvePosition(Vector3.zero); Vector3 offset = simulatedPoints[0].transform.position - val; foreach (JiggleBone simulatedPoint in simulatedPoints) { simulatedPoint.DeriveFinalSolvePosition(offset); } } public void Pose(bool debugDraw) { //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) DeriveFinalSolve(); foreach (JiggleBone simulatedPoint in simulatedPoints) { simulatedPoint.PoseBone(data.blend); if (debugDraw) { simulatedPoint.DebugDraw(Color.red, Color.blue, interpolated: true); } } } public void PrepareTeleport() { foreach (JiggleBone simulatedPoint in simulatedPoints) { simulatedPoint.PrepareTeleport(); } } public void FinishTeleport() { foreach (JiggleBone simulatedPoint in simulatedPoints) { simulatedPoint.FinishTeleport(); } } protected virtual void CreateSimulatedPoints(ICollection<JiggleBone> outputPoints, ICollection<Transform> ignoredTransforms, Transform currentTransform, JiggleBone parentJiggleBone) { //IL_004e: Unknown result type (might be due to invalid IL or missing references) JiggleBone jiggleBone = new JiggleBone(currentTransform, parentJiggleBone); outputPoints.Add(jiggleBone); if (currentTransform.childCount == 0) { if (jiggleBone.parent == null) { if ((Object)(object)jiggleBone.transform.parent == (Object)null) { throw new UnityException("Can't have a singular jiggle bone with no parents. That doesn't even make sense!"); } outputPoints.Add(new JiggleBone(null, jiggleBone)); } else { outputPoints.Add(new JiggleBone(null, jiggleBone)); } return; } for (int i = 0; i < currentTransform.childCount; i++) { if (!ignoredTransforms.Contains(currentTransform.GetChild(i))) { CreateSimulatedPoints(outputPoints, ignoredTransforms, currentTransform.GetChild(i), jiggleBone); } } } private void Awake() { Initialize(); } private void OnEnable() { JiggleRigHandler.AddBuilder(this); dirtyFromEnable = true; } private void OnDisable() { JiggleRigHandler.RemoveBuilder(this); PrepareTeleport(); } public void Initialize() { accumulation = 0.0; simulatedPoints = new List<JiggleBone>(); if ((Object)(object)rootTransform == (Object)null) { return; } CreateSimulatedPoints(simulatedPoints, ignoredTransforms, rootTransform, null); foreach (JiggleBone simulatedPoint in simulatedPoints) { simulatedPoint.CalculateNormalizedIndex(); } initialized = true; } public virtual void Advance(float deltaTime) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)levelOfDetail != (Object)null && !levelOfDetail.CheckActive(((Component)this).transform.position)) { if (wasLODActive) { PrepareTeleport(); } wasLODActive = false; return; } if (!wasLODActive) { FinishTeleport(); } PrepareBone(((Component)this).transform.position, levelOfDetail); if (dirtyFromEnable) { FinishTeleport(); dirtyFromEnable = false; } accumulation = Math.Min(accumulation + (double)deltaTime, maxCatchupTime); while (accumulation > (double)Time.fixedDeltaTime) { accumulation -= Time.fixedDeltaTime; double time = Time.timeAsDouble - accumulation; UpdateJiggle(wind, time); } Pose(debugDraw); wasLODActive = true; } private void OnDrawGizmos() { if (!initialized || simulatedPoints == null) { Initialize(); } foreach (JiggleBone simulatedPoint in simulatedPoints) { simulatedPoint.OnDrawGizmos(jiggleSettings); } } private void OnValidate() { if ((Object)(object)rootTransform == (Object)null) { rootTransform = ((Component)this).transform; } if (!Application.isPlaying) { Initialize(); } } } public static class JiggleRigHandler { [CompilerGenerated] private static class <>O { public static UpdateFunction <0>__UpdateJiggleRigs; } private static bool initialized = false; private static HashSet<JiggleRigBuilder> builders = new HashSet<JiggleRigBuilder>(); private static void Initialize() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0013: 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_004f: 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_0056: Unknown result type (might be due to invalid IL or missing references) //IL_002e: 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_0039: Expected O, but got Unknown if (!initialized) { PlayerLoopSystem currentPlayerLoop = PlayerLoop.GetCurrentPlayerLoop(); PlayerLoopSystem self = currentPlayerLoop; PlayerLoopSystem systemToInject = default(PlayerLoopSystem); object obj = <>O.<0>__UpdateJiggleRigs; if (obj == null) { UpdateFunction val = UpdateJiggleRigs; <>O.<0>__UpdateJiggleRigs = val; obj = (object)val; } systemToInject.updateDelegate = (UpdateFunction)obj; systemToInject.type = typeof(JiggleRigHandler); currentPlayerLoop = self.InjectAt<PostLateUpdate>(systemToInject); PlayerLoop.SetPlayerLoop(currentPlayerLoop); initialized = true; } } private static void UpdateJiggleRigs() { CachedSphereCollider.StartPass(); foreach (JiggleRigBuilder builder in builders) { builder.Advance(Time.deltaTime); } CachedSphereCollider.FinishedPass(); } public static void AddBuilder(JiggleRigBuilder builder) { builders.Add(builder); Initialize(); } public static void RemoveBuilder(JiggleRigBuilder builder) { builders.Remove(builder); } private static PlayerLoopSystem InjectAt<T>(this PlayerLoopSystem self, PlayerLoopSystem systemToInject) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0031: 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_0054: 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_005c: 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_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: 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_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Expected O, but got Unknown int num = FindIndexOfSubsystem<T>(self.subSystemList); if (num == -1) { throw new UnityException($"Failed to find PlayerLoopSystem with type{typeof(T)}"); } List<PlayerLoopSystem> list = new List<PlayerLoopSystem>(self.subSystemList[num].subSystemList); foreach (PlayerLoopSystem item2 in list) { if (item2.type != typeof(JiggleRigBuilder)) { continue; } Debug.LogWarning((object)$"Tried to inject a PlayerLoopSystem ({systemToInject.type}) more than once! Ignoring the second injection."); return self; } PlayerLoopSystem item = default(PlayerLoopSystem); object obj = <>O.<0>__UpdateJiggleRigs; if (obj == null) { UpdateFunction val = UpdateJiggleRigs; <>O.<0>__UpdateJiggleRigs = val; obj = (object)val; } item.updateDelegate = (UpdateFunction)obj; item.type = typeof(JiggleRigHandler); list.Insert(0, item); self.subSystemList[num].subSystemList = list.ToArray(); return self; } private static int FindIndexOfSubsystem<T>(PlayerLoopSystem[] list, int index = -1) { if (list == null) { return -1; } for (int i = 0; i < list.Length; i++) { if (list[i].type == typeof(T)) { return i; } } return -1; } } public abstract class JiggleRigLOD : ScriptableObject { public abstract bool CheckActive(Vector3 position); public abstract JiggleSettingsData AdjustJiggleSettingsData(Vector3 position, JiggleSettingsData data); } [CreateAssetMenu(fileName = "JiggleRigSimpleLOD", menuName = "JigglePhysics/JiggleRigSimpleLOD", order = 1)] public class JiggleRigSimpleLOD : JiggleRigLOD { [Tooltip("Distance to disable the jiggle rig")] [SerializeField] private float distance; [Tooltip("Level of detail manager. This system will control how the jiggle rig saves performance cost.")] [SerializeField] private float blend; [NonSerialized] private Camera currentCamera; [NonSerialized] private Transform cameraTransform; private bool TryGetCamera(out Camera camera) { if ((Object)(object)currentCamera == (Object)null || !((Component)currentCamera).CompareTag("MainCamera")) { currentCamera = Camera.main; } camera = currentCamera; return (Object)(object)currentCamera != (Object)null; } public override bool CheckActive(Vector3 position) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) if (!TryGetCamera(out var camera)) { return false; } return Vector3.Distance(((Component)camera).transform.position, position) < distance; } public override JiggleSettingsData AdjustJiggleSettingsData(Vector3 position, JiggleSettingsData data) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) if (!TryGetCamera(out var camera)) { return data; } float num = (Vector3.Distance(((Component)camera).transform.position, position) - distance + blend) / blend; num = Mathf.Clamp01(1f - num); data.blend = num; return data; } } public struct JiggleSettingsData { public float gravityMultiplier; public float friction; public float angleElasticity; public float blend; public float airDrag; public float lengthElasticity; public float elasticitySoften; public float radiusMultiplier; public static JiggleSettingsData Lerp(JiggleSettingsData a, JiggleSettingsData b, float t) { JiggleSettingsData result = default(JiggleSettingsData); result.gravityMultiplier = Mathf.Lerp(a.gravityMultiplier, b.gravityMultiplier, t); result.friction = Mathf.Lerp(a.friction, b.friction, t); result.angleElasticity = Mathf.Lerp(a.angleElasticity, b.angleElasticity, t); result.blend = Mathf.Lerp(a.blend, b.blend, t); result.airDrag = Mathf.Lerp(a.airDrag, b.airDrag, t); result.lengthElasticity = Mathf.Lerp(a.lengthElasticity, b.lengthElasticity, t); result.elasticitySoften = Mathf.Lerp(a.elasticitySoften, b.elasticitySoften, t); result.radiusMultiplier = Mathf.Lerp(a.radiusMultiplier, b.radiusMultiplier, t); return result; } } [CreateAssetMenu(fileName = "JiggleSettings", menuName = "JigglePhysics/Settings", order = 1)] public class JiggleSettings : JiggleSettingsBase { [SerializeField] [Range(0f, 2f)] [Tooltip("How much gravity to apply to the simulation, it is a multiplier of the Physics.gravity setting.")] private float gravityMultiplier = 1f; [SerializeField] [Range(0f, 1f)] [Tooltip("How much mechanical friction to apply, this is specifically how quickly oscillations come to rest.")] private float friction = 0.4f; [SerializeField] [Range(0f, 1f)] [Tooltip("How much angular force is applied to bring it to the target shape.")] private float angleElasticity = 0.4f; [SerializeField] [Range(0f, 1f)] [Tooltip("How much of the simulation should be expressed. A value of 0 would make the jiggle have zero effect. A value of 1 gives the full movement as intended. 0.5 would ")] private float blend = 1f; [FormerlySerializedAs("airFriction")] [HideInInspector] [SerializeField] [Range(0f, 1f)] [Tooltip("How much jiggled objects should get dragged behind by moving through the air. Or how \"thick\" the air is.")] private float airDrag = 0.1f; [HideInInspector] [SerializeField] [Range(0f, 1f)] [Tooltip("How rigidly the rig holds its length. Low values cause lots of squash and stretch!")] private float lengthElasticity = 0.8f; [HideInInspector] [SerializeField] [Range(0f, 1f)] [Tooltip("How much to allow free bone motion before engaging elasticity.")] private float elasticitySoften = 0f; [HideInInspector] [SerializeField] [Tooltip("How much radius points have, only used for collisions. Set to 0 to disable collisions")] private float radiusMultiplier = 0f; [HideInInspector] [SerializeField] [Tooltip("How the radius is expressed as a curve along the bone chain from root to child.")] private AnimationCurve radiusCurve = new AnimationCurve((Keyframe[])(object)new Keyframe[2] { new Keyframe(0f, 1f), new Keyframe(1f, 0f) }); public override JiggleSettingsData GetData() { JiggleSettingsData result = default(JiggleSettingsData); result.gravityMultiplier = gravityMultiplier; result.friction = friction; result.airDrag = airDrag; result.blend = blend; result.angleElasticity = angleElasticity; result.elasticitySoften = elasticitySoften; result.lengthElasticity = lengthElasticity; result.radiusMultiplier = radiusMultiplier; return result; } public void SetData(JiggleSettingsData data) { gravityMultiplier = data.gravityMultiplier; friction = data.friction; angleElasticity = data.angleElasticity; blend = data.blend; airDrag = data.airDrag; lengthElasticity = data.lengthElasticity; elasticitySoften = data.elasticitySoften; radiusMultiplier = data.radiusMultiplier; } public override float GetRadius(float normalizedIndex) { return radiusMultiplier * radiusCurve.Evaluate(normalizedIndex); } public void SetRadiusCurve(AnimationCurve curve) { radiusCurve = curve; } } public class JiggleSettingsBase : ScriptableObject { public virtual JiggleSettingsData GetData() { return default(JiggleSettingsData); } public virtual float GetRadius(float normalizedIndex) { return 0f; } } [CreateAssetMenu(fileName = "JiggleSettingsBlend", menuName = "JigglePhysics/Blend Settings", order = 1)] public class JiggleSettingsBlend : JiggleSettingsBase { [Tooltip("The list of jiggle settings to blend between.")] public List<JiggleSettings> blendSettings; [Range(0f, 1f)] [Tooltip("A value from 0 to 1 that linearly blends between all of the blendSettings.")] public float normalizedBlend; public override JiggleSettingsData GetData() { int num = blendSettings.Count - 1; float num2 = Mathf.Clamp01(normalizedBlend); int num3 = Mathf.Clamp(Mathf.FloorToInt(num2 * (float)num), 0, num); int index = Mathf.Clamp(Mathf.FloorToInt(num2 * (float)num) + 1, 0, num); return JiggleSettingsData.Lerp(blendSettings[num3].GetData(), blendSettings[index].GetData(), Mathf.Clamp01(num2 * (float)num - (float)num3)); } public override float GetRadius(float normalizedIndex) { float num = Mathf.Clamp01(normalizedBlend); int num2 = Mathf.FloorToInt(num * (float)blendSettings.Count); int num3 = Mathf.FloorToInt(num * (float)blendSettings.Count) + 1; return Mathf.Lerp(blendSettings[Mathf.Clamp(num2, 0, blendSettings.Count - 1)].GetRadius(normalizedIndex), blendSettings[Mathf.Clamp(num3, 0, blendSettings.Count - 1)].GetRadius(normalizedIndex), Mathf.Clamp01(num * (float)blendSettings.Count - (float)num2)); } } [BepInPlugin("1.Waga.JigglePhysicsPlugin", "JigglePhysicsPlugin", "1.1.2")] public class Plugin : BaseUnityPlugin { private Harmony _harmony; private static Plugin instance; private void Awake() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Expected O, but got Unknown instance = this; _harmony = new Harmony("JigglePhysicsPlugin"); _harmony.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"JigglePhysicsPlugin loaded!"); } public static void Log(string message) { ((BaseUnityPlugin)instance).Logger.LogInfo((object)message); } } public class PositionSignal { private struct Frame { public Vector3 position; public double time; } private Frame previousFrame; private Frame currentFrame; public PositionSignal(Vector3 startPosition, double time) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) currentFrame = (previousFrame = new Frame { position = startPosition, time = time }); } public void SetPosition(Vector3 position, double time) { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) previousFrame = currentFrame; currentFrame = new Frame { position = position, time = time }; } public void OffsetSignal(Vector3 offset) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) previousFrame = new Frame { position = previousFrame.position + offset, time = previousFrame.time }; currentFrame = new Frame { position = currentFrame.position + offset, time = previousFrame.time }; } public void FlattenSignal(double time, Vector3 position) { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000d: 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_0039: Unknown result type (might be due to invalid IL or missing references) previousFrame = new Frame { position = position, time = time - (double)(JiggleRigBuilder.maxCatchupTime * 2f) }; currentFrame = new Frame { position = position, time = time - (double)JiggleRigBuilder.maxCatchupTime }; } public Vector3 GetCurrent() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) return currentFrame.position; } public Vector3 GetPrevious() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) return previousFrame.position; } public Vector3 SamplePosition(double time) { //IL_0050: 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_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_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) double num = currentFrame.time - previousFrame.time; if (num == 0.0) { return previousFrame.position; } double num2 = (time - previousFrame.time) / num; return Vector3.Lerp(previousFrame.position, currentFrame.position, (float)num2); } } public static class PluginInfo { public const string PLUGIN_GUID = "JigglePhysicsPlugin"; public const string PLUGIN_NAME = "JigglePhysicsPlugin"; public const string PLUGIN_VERSION = "1.0.0"; } }
GenshinImpactOverhaulRepo.dll
Decompiled 2 weeks ago
The result has been truncated due to the large size, download it to view full contents!
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<Rigidbody>(); if ((Object)(object)rb == (Object)null) { rb = ((Component)this).gameObject.AddComponent<Rigidbody>(); } 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<ParticleSystem>(true); return; } ParticleSystem[] componentsInChildren = ((Component)this).GetComponentsInChildren<ParticleSystem>(true); List<ParticleSystem> list = new List<ParticleSystem>(); 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<CapsuleCollider>(); box = ((Component)this).GetComponent<BoxCollider>(); sphere = ((Component)this).GetComponent<SphereCollider>(); 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<Collider>()); 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<MeshRenderer>()).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", "GoblinKingShmeeGenshinImpactOverhaul", "1.0.0")] public class GenshinImpactOverhaul : BaseUnityPlugin { private readonly Harmony harmony = new Harmony("GenshinImpactOverhaul"); private static GenshinImpactOverhaul Instance; public static ManualLogSource mls; public static AssetBundle GenshinImpactOverhaulAssetBundle; public static GameObject MikaPrefab; public static AudioClip MikaSoundDeath1; public static AudioClip MikaSoundDeath2; public static AudioClip MikaSoundDeath3; public static AudioClip MikaSoundHurt1; public static AudioClip MikaSoundHurt2; public static AudioClip MikaSoundHurt3; public static AudioClip MikaSoundDespawn; public static AudioClip MikaSoundSpawn; public static AudioClip MikaSoundIdle1; public static AudioClip MikaSoundIdle2; public static AudioClip MikaSoundIdle3; public static AudioClip MikaSoundJump; public static AudioClip MikaSoundNotice1; public static AudioClip MikaSoundNotice2; public static AudioClip MikaSoundNotice3; public static AudioClip MikaSoundPickaxeTell; public static AudioClip MikaSoundStunFlyLoop; public static AudioClip MikaStunIntro1; public static AudioClip MikaStunIntro2; public static AudioClip MikaStunIntro3; public static AudioClip MikaStunOutro1; public static AudioClip MikaStunOutro2; public static AudioClip MikaStunOutro3; public static GameObject ClorindePrefab; public static AudioClip ClorindeSoundAim1; public static AudioClip ClorindeSoundAim2; public static AudioClip ClorindeSoundAim3; public static AudioClip ClorindeSoundAimGlobal1; public static AudioClip ClorindeSoundAimGlobal2; public static AudioClip ClorindeSoundAimGlobal3; public static AudioClip ClorindeSoundDeath1; public static AudioClip ClorindeSoundDeath2; public static AudioClip ClorindeSoundDeath3; public static AudioClip ClorindeSoundHurt1; public static AudioClip ClorindeSoundHurt2; public static AudioClip ClorindeSoundHurt3; public static AudioClip ClorindeSoundDespawn; public static AudioClip ClorindeSoundSpawn; public static AudioClip ClorindeSoundLeave1; public static AudioClip ClorindeSoundLeave2; public static AudioClip ClorindeSoundLeave3; public static GameObject BeidouPrefab; public static AudioClip BeidouAttackImpact; public static AudioClip BeidouAttackImpactGlobal; public static AudioClip BeidouAttackBuildupVO; public static AudioClip BeidouDeath; public static AudioClip BeidouHurt1; public static AudioClip BeidouHurt2; public static AudioClip BeidouHurt3; public static AudioClip BeidouJump; public static AudioClip BeidouLand; public static AudioClip BeidouLookUnderAttack; public static AudioClip BeidouLookUnderIntro; public static AudioClip BeidouLookUnderOutro; public static AudioClip BeidouNoiseLong1; public static AudioClip BeidouNoiseLong2; public static AudioClip BeidouNoiseLong3; public static AudioClip BeidouNoiseShort1; public static AudioClip BeidouNoiseShort2; public static AudioClip BeidouNoiseShort3; public static AudioClip BeidouNotice1; public static AudioClip BeidouNotice2; public static AudioClip BeidouNotice3; public static AudioClip BeidouStunnedLoop; public static GameObject SayuPrefab; public static AudioClip SayuAttackStart; public static AudioClip SayuAttackStop; public static AudioClip SayuDeath; public static AudioClip SayuDespawn; public static AudioClip SayuHurt1; public static AudioClip SayuHurt2; public static AudioClip SayuHurt3; public static AudioClip SayuJump1; public static AudioClip SayuJump2; public static AudioClip SayuJump3; public static AudioClip SayuLand1; public static AudioClip SayuLand2; public static AudioClip SayuLand3; public static AudioClip SayuNotice1; public static AudioClip SayuNotice2; public static AudioClip SayuNotice3; public static AudioClip SayuAttackLoop; public static AudioClip SayuSpawn; public static GameObject GamingPrefab; public static AudioClip GamingCleaverSwing1; public static AudioClip GamingCleaverSwing2; public static AudioClip GamingCleaverSwing3; public static AudioClip GamingHurt1; public static AudioClip GamingHurt2; public static AudioClip GamingHurt3; public static AudioClip GamingJump1; public static AudioClip GamingJump2; public static AudioClip GamingJump3; public static AudioClip GamingJump4; public static AudioClip GamingJump5; public static AudioClip GamingLand1; public static AudioClip GamingLand2; public static AudioClip GamingLand3; public static AudioClip GamingNotice; public static AudioClip GamingStunnedLoop; public static AudioClip GamingTumbleLocal; public static AudioClip GamingTumbleGlobal; public static GameObject KachinaPrefab; public static AudioClip KachinaDeath; public static AudioClip KachinaDespawn; public static AudioClip KachinaHurt1; public static AudioClip KachinaHurt2; public static AudioClip KachinaHurt3; public static AudioClip KachinaJump; public static AudioClip KachinaLand; public static AudioClip KachinaNotice; public static AudioClip KachinaPickupIntro; public static AudioClip KachinaPickupOutroTell; public static AudioClip KachinaPickupOutroThrow; public static AudioClip KachinaSpawn; public static AudioClip KachinaStunOutro; public static AudioClip KachinaStunLoop; public static GameObject ArlecchinoPrefab; public static AudioClip ArlecchinoAttack; public static AudioClip ArlecchinoDeath; public static AudioClip ArlecchinoHurt1; public static AudioClip ArlecchinoHurt2; public static AudioClip ArlecchinoHurt3; public static AudioClip ArlecchinoScream1; public static AudioClip ArlecchinoScream1Global; public static AudioClip ArlecchinoScream2; public static AudioClip ArlecchinoScream2Global; public static AudioClip ArlecchinoScream3; public static AudioClip ArlecchinoScream3Global; public static AudioClip ArlecchinoTeleportIn; public static AudioClip ArlecchinoTeleportOut; public static AudioClip ArlecchinoZoom; public static GameObject AlhaithamPrefab; public static AudioClip AlhaithamAttackIntro; public static AudioClip AlhaithamAttackLoop; public static AudioClip AlhaithamAttackOutro; public static AudioClip AlhaithamDeath; public static AudioClip AlhaithamHurt1; public static AudioClip AlhaithamHurt2; public static AudioClip AlhaithamHurt3; public static AudioClip AlhaithamJump; public static AudioClip AlhaithamLand; public static AudioClip AlhaithamMeleeKick; public static AudioClip AlhaithamMeleeTell; public static AudioClip AlhaithamStunIntro; public static AudioClip AlhaithamStunOutro; public static AudioClip AlhaithamStunLoop; public static Material AlhaithamLaserInside; public static Material AlhaithamLaser; public static Material AlhaithamLaserVariant; public static Material AlhaithamLaserSmoke; public static GameObject BarbaraPrefab; public static AudioClip BarbaraDeath; public static AudioClip BarbaraDespawn; public static AudioClip BarbaraHurt1; public static AudioClip BarbaraHurt2; public static AudioClip BarbaraHurt3; public static AudioClip BarbaraIdleLoop; public static AudioClip BarbaraScreamEndGlobal; public static AudioClip BarbaraScreamStartGlobal; public static AudioClip BarbaraScreamLoopGlobal; public static AudioClip BarbaraScreamLoopLocal; public static AudioClip BarbaraStunnedLoop; public static AudioClip BarbaraJump; public static AudioClip BarbaraNotice; public static AudioClip BarbaraLand; public static GameObject XianyunPrefab; public static AudioClip XianyunAttackDown; public static AudioClip XianyunAttackDownGlobal; public static AudioClip XianyunAttackUp; public static AudioClip XianyunAttackUpGlobal; public static AudioClip XianyunDeath; public static AudioClip XianyunHurt1; public static AudioClip XianyunHurt2; public static AudioClip XianyunHurt3; public static AudioClip XianyunStunnedLoop; public static AudioClip XianyunChargeAttack; public static AudioClip XianyunChargeAttackLoop; public static AudioClip XianyunClapGlobal; public static AudioClip XianyunClapLocal; public static AudioClip XianyunDelayAttack; public static Material XianyunMaterial; public static GameObject IansanPrefab; public static AudioClip IansanDespawn; public static AudioClip IansanHurt1; public static AudioClip IansanHurt2; public static AudioClip IansanHurt3; public static AudioClip IansanIdle1; public static AudioClip IansanIdle2; public static AudioClip IansanIdle3; public static AudioClip IansanJump; public static AudioClip IansanLand; public static AudioClip IansanScream1Global; public static AudioClip IansanScream1Local; public static AudioClip IansanScream2Global; public static AudioClip IansanScream2Local; public static AudioClip IansanScream3Global; public static AudioClip IansanScream3Local; public static GameObject HuTaoPrefab; public static AudioClip HutaoAttack; public static AudioClip HutaoAttackGlobal; public static AudioClip HutaoCrackingFingers; public static AudioClip HutaoCrackingFingersAggresive; public static AudioClip HutaoHurt1; public static AudioClip HutaoHurt2; public static AudioClip HutaoHurt3; public static AudioClip HutaoLookUnderScream; public static AudioClip HutaoLookUnderScreamGlobal; public static AudioClip HutaoNoise1; public static AudioClip HutaoNoise2; public static AudioClip HutaoNoise3; public static AudioClip HutaoNoise4; public static AudioClip HutaoStunStart; public static AudioClip HutaoTargetingPlayer; public static AudioClip HutaoStunnedLoop; public static GameObject AyatoPrefab; public static AudioClip AyatoAttack1; public static AudioClip AyatoAttack2; public static AudioClip AyatoAttack3; public static AudioClip AyatoAttack4; public static AudioClip AyatoAttack5; public static AudioClip AyatoDeath; public static AudioClip AyatoHurt1; public static AudioClip AyatoHurt2; public static AudioClip AyatoHurt3; public static AudioClip AyatoJump; public static AudioClip AyatoStunnedLoop; public static GameObject NahidaPrefab; public static AudioClip NahidaBlink1; public static AudioClip NahidaBlink2; public static AudioClip NahidaBlink3; public static AudioClip NahidaDeath; public static AudioClip NahidaDespawn; public static AudioClip NahidaLaser; public static AudioClip NahidaLaserBuildup; public static AudioClip NahidaSpawn; public static AudioClip NahidaStaringStart; public static AudioClip NahidaStareLoopTwitching; public static AudioClip NahidaStareLoop; public static GameObject GorouPrefab; public static AudioClip GorouBiteStart1; public static AudioClip GorouBiteStart2; public static AudioClip GorouBiteStart3; public static AudioClip GorouChaseBegin; public static AudioClip GorouChaseBeginGlobal; public static AudioClip GorouChaseBeginToChase; public static AudioClip GorouChaseToIdle; public static AudioClip GorouDeath; public static AudioClip GorouDespawn; public static AudioClip GorouHurt1; public static AudioClip GorouHurt2; public static AudioClip GorouHurt3; public static AudioClip GorouSpawn; public static AudioClip GorouTeethChatter1; public static AudioClip GorouTeethChatter2; public static AudioClip GorouTeethChatter3; public static AudioClip GorouTeethChatter4; public static AudioClip GorouTeethChatter5; public static GameObject TapirPrefab; public static AudioClip TapirAttackLoop; public static AudioClip TapirDeath; public static AudioClip TapirHurt1; public static AudioClip TapirHurt2; public static AudioClip TapirHurt3; public static AudioClip TapirNotice1; public static AudioClip TapirNotice2; public static AudioClip TapirNotice3; public static AudioClip TapirQuack1; public static AudioClip TapirQuack2; public static AudioClip TapirQuack3; public static AudioClip TapirStunEnd1; public static AudioClip TapirStunEnd2; public static AudioClip TapirStunEnd3; public static AudioClip TapirStunLoop; public static AudioClip TapirBite1; public static AudioClip TapirBite2; public static AudioClip TapirBite3; public static AudioClip TapirBite4; public static AudioClip TapirBite5; public static AudioClip TapirBite6; public static GameObject MavuikaPrefab; public static AudioClip MavuikaAttackBreaker1; public static AudioClip MavuikaAttackBreaker2; public static AudioClip MavuikaAttackBreaker3; public static AudioClip MavuikaAttackBreaker4; public static AudioClip MavuikaAttackBreaker5; public static AudioClip MavuikaDeath1; public static AudioClip MavuikaDeath2; public static AudioClip MavuikaDeath3; public static AudioClip MavuikaExplodeTell1; public static AudioClip MavuikaExplodeTell2; public static AudioClip MavuikaExplodeTell3; public static AudioClip MavuikaFuseTell1; public static AudioClip MavuikaFuseTell2; public static AudioClip MavuikaFuseTell3; public static AudioClip MavuikaHurt1; public static AudioClip MavuikaHurt2; public static AudioClip MavuikaHurt3; public static AudioClip MavuikaIdleBreaker1; public static AudioClip MavuikaIdleBreaker2; public static AudioClip MavuikaIdleBreaker3; public static AudioClip MavuikaIdleBreaker4; public static AudioClip MavuikaIdleBreaker5; public static AudioClip MavuikaJump1; public static AudioClip MavuikaJump2; public static AudioClip MavuikaJump3; public static AudioClip MavuikaLand1; public static AudioClip MavuikaLand2; public static AudioClip MavuikaLand3; public static AudioClip MavuikaStunIntro1; public static AudioClip MavuikaStunIntro2; public static AudioClip MavuikaStunIntro3; public static AudioClip MavuikaStunLoop; public static AudioClip MavuikaStunOutro1; public static AudioClip MavuikaStunOutro2; public static AudioClip MavuikaStunOutro3; public static Texture2D DoriEmojis; public static Material DoriMaterial; public static 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<bool> MikaReplacement { get; private set; } public static ConfigEntry<bool> ClorindeReplacement { get; private set; } public static ConfigEntry<bool> BeidouReplacement { get; private set; } public static ConfigEntry<bool> SayuReplacement { get; private set; } public static ConfigEntry<bool> KachinaReplacement { get; private set; } public static ConfigEntry<bool> IansanReplacement { get; private set; } public static ConfigEntry<bool> HuTaoReplacement { get; private set; } public static ConfigEntry<bool> GamingReplacement { get; private set; } public static ConfigEntry<bool> BarbaraReplacement { get; private set; } public static ConfigEntry<bool> AyatoReplacement { get; private set; } public static ConfigEntry<bool> GorouReplacement { get; private set; } public static ConfigEntry<bool> AlhaithamReplacement { get; private set; } public static ConfigEntry<bool> MavuikaReplacement { get; private set; } public static ConfigEntry<bool> NahidaReplacement { get; private set; } public static ConfigEntry<bool> TapirReplacement { get; private set; } public static ConfigEntry<bool> XianyunReplacement { get; private set; } public static ConfigEntry<bool> ArlecchinoReplacement { get; private set; } public static ConfigEntry<bool> ColleiReplacement { get; private set; } public static ConfigEntry<bool> DoriEmojiReplacement { get; private set; } public static ConfigEntry<bool> GanyuReplacement { get; private set; } public static ConfigEntry<bool> AinoIneffaReplacement { get; private set; } public static ConfigEntry<bool> DottoreReplacement { get; private set; } public static ConfigEntry<bool> SkirkReplacement { get; private set; } public static ConfigEntry<bool> IfaReplacement { get; private set; } public static ConfigEntry<bool> DurinReplacement { get; private set; } public static ConfigEntry<bool> KiraraReplacement { get; private set; } public static ConfigEntry<bool> NeferReplacement { get; private set; } public static ConfigEntry<bool> YelanReplacement { get; private set; } public static ConfigEntry<bool> FlinsReplacement { get; private set; } public static ConfigEntry<bool> 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<bool>("Extra", "Emojis", true, "Replace some of the money related emojis with Dori ones"); AlhaithamReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Alhaitham", true, "Replace the Clown with Alhaitham"); ArlecchinoReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Arlecchino", true, "Replace the Shadow Child with Arlecchino"); BarbaraReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Barbara", true, "Replace the Bowtie with Barbara"); BeidouReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Beidou", true, "Replace the Trudge with Beidou"); ClorindeReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Clorinde", true, "Replace the Hunter with Clorinde"); GamingReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Gaming", true, "Replace the Chef with Gaming"); GorouReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Gorou", true, "Replace the Headman with Gorou"); HuTaoReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Hu Tao", true, "Replace the Robe with Hu Tao"); IansanReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Iansan", true, "Replace the Upscream with Iansan"); KachinaReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Kachina", true, "Replace the Rugrat with Kachina"); AyatoReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Kamisato Ayato", true, "Replace the Reaper with Ayato"); MavuikaReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Mavuika", true, "Replace the Bang with Mavuika"); MikaReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Mika", true, "Replace the Gnomes with Mika"); NahidaReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Nahida", true, "Replace the Peeper with Nahida"); SayuReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Sayu", true, "Replace the Animal with Sayu"); TapirReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Tapir", true, "Replace the Duck with Mizuki's Tapir"); XianyunReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Xianyun", true, "Replace the Mentalist with Xianyun"); ColleiReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Collei", true, "Replace the Cleanup Crew with Collei"); GanyuReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Ganyu", true, "Replace the Birthday Boy with Ganyu"); AinoIneffaReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Aino and Ineffa", true, "Replace Elsa with Aino and Ineffa"); DottoreReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Dottore", true, "Replace the Loom with Dottore"); SkirkReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Skirk", true, "Replace Bella with Skirk"); IfaReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Ifa", true, "Replace Oogly with Ifa"); DurinReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Durin", true, "Replace the Tick with Durin"); NeferReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Nefer", true, "Replace the Hearthugger with Nefer"); YelanReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Yelan", true, "Replace the Gambit with Yelan"); KiraraReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Kirara", true, "Replace the Headgrab with Kirara"); FlinsReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("Models and Sounds", "Flins", true, "Replace the Hidden with Flins"); PaimonReplacement = ((BaseUnityPlugin)this).Config.Bind<bool>("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<GameObject>("Assets/Mika/Mika.prefab"); MikaSoundDeath1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaDeath1.ogg"); MikaSoundDeath2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaDeath2.ogg"); MikaSoundDeath3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaDeath3.ogg"); MikaSoundDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaDespawn.ogg"); MikaSoundHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaHurt1.ogg"); MikaSoundHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaHurt2.ogg"); MikaSoundHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaHurt3.ogg"); MikaSoundIdle1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaIdleBreaker1.ogg"); MikaSoundIdle2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaIdleBreaker2.ogg"); MikaSoundIdle3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaIdleBreaker3.ogg"); MikaSoundJump = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaJump.ogg"); MikaSoundNotice1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaNotice1.ogg"); MikaSoundNotice2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaNotice2.ogg"); MikaSoundNotice3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaNotice3.ogg"); MikaSoundPickaxeTell = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaPickaxeTell.ogg"); MikaSoundSpawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaSpawn.ogg"); MikaSoundStunFlyLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/MikaStunFlyLoop.ogg"); MikaStunIntro1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/StunIntro1.ogg"); MikaStunIntro2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/StunIntro2.ogg"); MikaStunIntro3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/StunIntro3.ogg"); MikaStunOutro1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/StunOutro1.ogg"); MikaStunOutro2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/StunOutro2.ogg"); MikaStunOutro3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mika/Sounds/StunOutro3.ogg"); } public void LoadClorindeAssets() { ClorindePrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Clorinde/Clorinde.prefab"); ClorindeSoundAim1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeAim1.ogg"); ClorindeSoundAimGlobal1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeAim1Global.ogg"); ClorindeSoundAimGlobal2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeAim2Global.ogg"); ClorindeSoundAim2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeAim2.ogg"); ClorindeSoundAimGlobal3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeAim3Global.ogg"); ClorindeSoundAim3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeAim3.ogg"); ClorindeSoundDeath1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeDeath1.ogg"); ClorindeSoundDeath2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeDeath2.ogg"); ClorindeSoundDeath3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeDeath3.ogg"); ClorindeSoundHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeHurt1.ogg"); ClorindeSoundHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeHurt2.ogg"); ClorindeSoundHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeHurt3.ogg"); ClorindeSoundSpawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeSpawn.ogg"); ClorindeSoundDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeDespawn.ogg"); ClorindeSoundLeave1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeLeave1.ogg"); ClorindeSoundLeave2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeLeave2.ogg"); ClorindeSoundLeave3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Clorinde/Sounds/ClorindeLeave3.ogg"); } public void LoadAlhaithamAssets() { AlhaithamPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Alhaitham/Alhaitham.prefab"); AlhaithamAttackIntro = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/AttackIntro.ogg"); AlhaithamAttackLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/AttackLoop.ogg"); AlhaithamAttackOutro = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/AttackOutro.ogg"); AlhaithamDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/Death.ogg"); AlhaithamHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/Hurt1.ogg"); AlhaithamHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/Hurt2.ogg"); AlhaithamHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/Hurt3.ogg"); AlhaithamJump = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/Jump.ogg"); AlhaithamLand = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/Land.ogg"); AlhaithamMeleeKick = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/MeleeKick.ogg"); AlhaithamMeleeTell = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/MeleeTell.ogg"); AlhaithamStunIntro = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/StunIntro.ogg"); AlhaithamStunLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/StunnedLoop.ogg"); AlhaithamStunOutro = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Alhaitham/Sounds/StunOutro.ogg"); AlhaithamLaser = GenshinImpactOverhaulAssetBundle.LoadAsset<Material>("Assets/Alhaitham/LaserMaterial.mat"); AlhaithamLaserInside = GenshinImpactOverhaulAssetBundle.LoadAsset<Material>("Assets/Alhaitham/LaserInsideMaterial.mat"); AlhaithamLaserVariant = GenshinImpactOverhaulAssetBundle.LoadAsset<Material>("Assets/Alhaitham/LaserMaterialVariant.mat"); AlhaithamLaserSmoke = GenshinImpactOverhaulAssetBundle.LoadAsset<Material>("Assets/Alhaitham/LaserSmoke.mat"); } public void LoadGorouAssets() { GorouPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Gorou/GorouHead.prefab"); GorouBiteStart1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/BiteStart1.ogg"); GorouBiteStart2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/BiteStart2.ogg"); GorouBiteStart3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/BiteStart3.ogg"); GorouChaseBegin = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/ChaseBegin.ogg"); GorouChaseBeginGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/ChaseBeginGlobal.ogg"); GorouChaseBeginToChase = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/ChaseBeginToChase.ogg"); GorouChaseToIdle = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/ChaseToIdle.ogg"); GorouDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/Death.ogg"); GorouDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/Despawn.ogg"); GorouHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/Hurt1.ogg"); GorouHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/Hurt2.ogg"); GorouHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/Hurt3.ogg"); GorouSpawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/Spawn.ogg"); GorouTeethChatter1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/TeethChatter1.ogg"); GorouTeethChatter2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/TeethChatter2.ogg"); GorouTeethChatter3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/TeethChatter3.ogg"); GorouTeethChatter4 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/TeethChatter4.ogg"); GorouTeethChatter5 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gorou/Sounds/TeethChatter5.ogg"); } public void LoadTapirAssets() { TapirPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Tapir/Tapir.prefab"); TapirAttackLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/AttackLoop.ogg"); TapirDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Death.ogg"); TapirHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Hurt1.ogg"); TapirHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Hurt2.ogg"); TapirHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Hurt3.ogg"); TapirNotice1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Notice1.ogg"); TapirNotice2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Notice2.ogg"); TapirNotice3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Notice3.ogg"); TapirQuack1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Quack1.ogg"); TapirQuack2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Quack2.ogg"); TapirQuack3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Quack3.ogg"); TapirStunEnd1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/StunEnd1.ogg"); TapirStunEnd2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/StunEnd2.ogg"); TapirStunEnd3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/StunEnd3.ogg"); TapirStunLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/StunLoop.ogg"); TapirBite1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Bite1.ogg"); TapirBite2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Bite2.ogg"); TapirBite3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Bite3.ogg"); TapirBite4 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Bite4.ogg"); TapirBite5 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Bite5.ogg"); TapirBite6 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Tapir/Sounds/Bite6.ogg"); } public void LoadMavuikaAssets() { MavuikaPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Mavuika/Mavuika.prefab"); MavuikaAttackBreaker1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/AttackBreaker1.ogg"); MavuikaAttackBreaker2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/AttackBreaker2.ogg"); MavuikaAttackBreaker3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/AttackBreaker3.ogg"); MavuikaAttackBreaker4 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/AttackBreaker4.ogg"); MavuikaAttackBreaker5 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/AttackBreaker5.ogg"); MavuikaDeath1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Death1.ogg"); MavuikaDeath2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Death2.ogg"); MavuikaDeath3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Death3.ogg"); MavuikaExplodeTell1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/ExplodeTell1.ogg"); MavuikaExplodeTell2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/ExplodeTell2.ogg"); MavuikaExplodeTell3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/ExplodeTell3.ogg"); MavuikaFuseTell1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/FuseTell1.ogg"); MavuikaFuseTell2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/FuseTell2.ogg"); MavuikaFuseTell3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/FuseTell3.ogg"); MavuikaHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Hurt1.ogg"); MavuikaHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Hurt2.ogg"); MavuikaHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Hurt3.ogg"); MavuikaIdleBreaker1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/IdleBreaker1.ogg"); MavuikaIdleBreaker2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/IdleBreaker2.ogg"); MavuikaIdleBreaker3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/IdleBreaker3.ogg"); MavuikaIdleBreaker4 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/IdleBreaker4.ogg"); MavuikaIdleBreaker5 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/IdleBreaker5.ogg"); MavuikaJump1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Jump1.ogg"); MavuikaJump2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Jump2.ogg"); MavuikaJump3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Jump3.ogg"); MavuikaLand1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Land1.ogg"); MavuikaLand2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Land2.ogg"); MavuikaLand3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/Land3.ogg"); MavuikaStunIntro1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/StunIntro1.ogg"); MavuikaStunIntro2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/StunIntro2.ogg"); MavuikaStunIntro3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/StunIntro3.ogg"); MavuikaStunLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/StunLoop.ogg"); MavuikaStunOutro1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/StunOutro1.ogg"); MavuikaStunOutro2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/StunOutro2.ogg"); MavuikaStunOutro3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Mavuika/Sounds/StunOutro3.ogg"); } public void LoadBeidouAssets() { BeidouPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Beidou/Beidou.prefab"); BeidouAttackBuildupVO = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/AttackBuildupVO.ogg"); BeidouAttackImpact = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/AttackImplosionImpact.ogg"); BeidouAttackImpactGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/AttackImplosionImpactGlobal.ogg"); BeidouDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/Death.ogg"); BeidouHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/Hurt1.ogg"); BeidouHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/Hurt2.ogg"); BeidouHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/Hurt3.ogg"); BeidouJump = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/Jump.ogg"); BeidouLand = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/Land.ogg"); BeidouLookUnderAttack = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/LookUnderAttack.ogg"); BeidouLookUnderIntro = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/LookUnderIntro.ogg"); BeidouLookUnderOutro = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/LookUnderOutro.ogg"); BeidouNoiseLong1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/NoiseLong1.ogg"); BeidouNoiseLong2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/NoiseLong2.ogg"); BeidouNoiseLong3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/NoiseLong3.ogg"); BeidouNoiseShort1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/NoiseShort1.ogg"); BeidouNoiseShort2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/NoiseShort2.ogg"); BeidouNoiseShort3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/NoiseShort3.ogg"); BeidouNotice1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/Notice1.ogg"); BeidouNotice2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/Notice2.ogg"); BeidouNotice3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/Notice3.ogg"); BeidouStunnedLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Beidou/Sounds/StunnedLoop.ogg"); } public void LoadBarbaraAssets() { BarbaraPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Barbara/Barbara.prefab"); BarbaraDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/Death.ogg"); BarbaraDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/Despawn.ogg"); BarbaraHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/Hurt1.ogg"); BarbaraHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/Hurt2.ogg"); BarbaraHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/Hurt3.ogg"); BarbaraIdleLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/IdleLoop.ogg"); BarbaraScreamEndGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/ScreamEndGlobal.ogg"); BarbaraScreamLoopGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/ScreamLoopGlobal.ogg"); BarbaraScreamStartGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/ScreamStartGlobal.ogg"); BarbaraScreamLoopLocal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/ScreamLoopLocal.ogg"); BarbaraStunnedLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/StunnedLoop.ogg"); BarbaraJump = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/Jump.ogg"); BarbaraLand = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/Land.ogg"); BarbaraNotice = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Barbara/Sounds/Notice.ogg"); } public void LoadSayuAssets() { SayuPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Sayu/Sayu.prefab"); SayuAttackStart = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/AttackStart.ogg"); SayuAttackStop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/AttackStop.ogg"); SayuDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Death.ogg"); SayuDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Despawn.ogg"); SayuHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Hurt1.ogg"); SayuHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Hurt2.ogg"); SayuHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Hurt3.ogg"); SayuJump1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Jump1.ogg"); SayuJump2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Jump2.ogg"); SayuJump3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Jump3.ogg"); SayuLand1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Land1.ogg"); SayuLand2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Land2.ogg"); SayuLand3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Land3.ogg"); SayuNotice1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Notice1.ogg"); SayuNotice2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Notice2.ogg"); SayuNotice3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Notice3.ogg"); SayuAttackLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/AttackLoop.ogg"); SayuSpawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Sayu/Sounds/Spawn.ogg"); } public void LoadKachinaAssets() { KachinaPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Kachina/Kachina.prefab"); KachinaDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/Death.ogg"); KachinaDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/Despawn.ogg"); KachinaHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/Hurt1.ogg"); KachinaHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/Hurt2.ogg"); KachinaHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/Hurt3.ogg"); KachinaJump = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/Jump.ogg"); KachinaLand = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/Land.ogg"); KachinaNotice = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/Notice.ogg"); KachinaPickupIntro = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/PickupIntro.ogg"); KachinaPickupOutroTell = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/PickupOutroTell.ogg"); KachinaPickupOutroThrow = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/PickupOutroThrow.ogg"); KachinaSpawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/Spawn.ogg"); KachinaStunOutro = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/StunOutro.ogg"); KachinaStunLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Kachina/Sounds/StunnedLoop.ogg"); } public void LoadIansanAssets() { IansanPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Iansan/Iansan.prefab"); IansanDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Despawn.ogg"); IansanHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Hurt1.ogg"); IansanHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Hurt2.ogg"); IansanHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Hurt3.ogg"); IansanIdle1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Idle1.ogg"); IansanIdle2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Idle2.ogg"); IansanIdle3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Idle3.ogg"); IansanJump = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Jump.ogg"); IansanLand = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Land.ogg"); IansanScream1Global = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Scream1Global.ogg"); IansanScream2Global = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Scream2Global.ogg"); IansanScream3Global = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Scream3Global.ogg"); IansanScream1Local = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Scream1Local.ogg"); IansanScream2Local = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Scream2Local.ogg"); IansanScream3Local = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Iansan/Sounds/Scream3Local.ogg"); } public void LoadXianyunAssets() { XianyunPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Xianyun/Xianyun.prefab"); XianyunAttackDown = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/AttackDown.ogg"); XianyunAttackDownGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/AttackDownGlobal.ogg"); XianyunDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/Death.ogg"); XianyunHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/Hurt1.ogg"); XianyunHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/Hurt2.ogg"); XianyunHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/Hurt3.ogg"); XianyunStunnedLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/StunnedLoop.ogg"); XianyunChargeAttack = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/ChargeStart.ogg"); XianyunChargeAttackLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/ChargeAttack.ogg"); XianyunClapGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/ClapGlobal.ogg"); XianyunClapLocal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/ClapLocal.ogg"); XianyunDelayAttack = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Xianyun/Sounds/DelayAttack.ogg"); XianyunMaterial = GenshinImpactOverhaulAssetBundle.LoadAsset<Material>("Assets/Xianyun/SphereMat.mat"); } public void LoadArlecchinoAssets() { ArlecchinoPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Arlecchino/Arlecchino.prefab"); ArlecchinoAttack = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Attack.ogg"); ArlecchinoDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Death.ogg"); ArlecchinoHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Hurt1.ogg"); ArlecchinoHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Hurt2.ogg"); ArlecchinoHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Hurt3.ogg"); ArlecchinoScream1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Scream1.ogg"); ArlecchinoScream1Global = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Scream1Global.ogg"); ArlecchinoScream2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Scream2.ogg"); ArlecchinoScream2Global = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Scream2Global.ogg"); ArlecchinoScream3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Scream3.ogg"); ArlecchinoScream3Global = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Scream3Global.ogg"); ArlecchinoTeleportIn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/TeleportIn.ogg"); ArlecchinoTeleportOut = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/TeleportOut.ogg"); ArlecchinoZoom = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Arlecchino/Sounds/Zoom.ogg"); } public void LoadNahidaAssets() { NahidaPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Nahida/NahidaHead.prefab"); NahidaBlink1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/Blink1.ogg"); NahidaBlink2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/Blink2.ogg"); NahidaBlink3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/Blink3.ogg"); NahidaDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/Death.ogg"); NahidaDespawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/Despawn.ogg"); NahidaLaser = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/Laser.ogg"); NahidaLaserBuildup = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/LaserBuildup.ogg"); NahidaSpawn = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/Spawn.ogg"); NahidaStareLoopTwitching = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/StareLoopTwitching.ogg"); NahidaStaringStart = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/StaringStart.ogg"); NahidaStareLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Nahida/Sounds/StareLoop.ogg"); } public void LoadHuTaoAssets() { HuTaoPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/HuTao/Hu Tao.prefab"); HutaoAttack = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/Attack.ogg"); HutaoAttackGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/AttackGlobal.ogg"); HutaoCrackingFingers = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/CrackingFingersSlow.ogg"); HutaoCrackingFingersAggresive = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/CrackingFingersAggresive.ogg"); HutaoHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/Hurt1.ogg"); HutaoHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/Hurt2.ogg"); HutaoHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/Hurt3.ogg"); HutaoLookUnderScream = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/LookUnderScream.ogg"); HutaoLookUnderScreamGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/LookUnderScreamGlobal.ogg"); HutaoNoise1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/Noise1.ogg"); HutaoNoise2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/Noise2.ogg"); HutaoNoise3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/Noise3.ogg"); HutaoNoise4 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/Noise4.ogg"); HutaoStunStart = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/StunStart.ogg"); HutaoTargetingPlayer = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/TargetingPlayer.ogg"); HutaoStunnedLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/HuTao/Sounds/StunnedLoop.ogg"); } public void LoadGamingAssets() { GamingPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Gaming/Gaming.prefab"); GamingCleaverSwing1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/CleaverSwing1.ogg"); GamingCleaverSwing2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/CleaverSwing2.ogg"); GamingCleaverSwing3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/CleaverSwing3.ogg"); GamingHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Hurt1.ogg"); GamingHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Hurt2.ogg"); GamingHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Hurt3.ogg"); GamingJump1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Jump1.ogg"); GamingJump2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Jump2.ogg"); GamingJump3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Jump3.ogg"); GamingJump4 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Jump4.ogg"); GamingJump5 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Jump5.ogg"); GamingLand1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Land1.ogg"); GamingLand2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Land2.ogg"); GamingLand3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Land3.ogg"); GamingNotice = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/Notice.ogg"); GamingStunnedLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/StunnedLoop.ogg"); GamingTumbleGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/TumbleGlobal.ogg"); GamingTumbleLocal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Gaming/Sounds/TumbleLocal.ogg"); } public void LoadAyatoAssets() { AyatoPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Ayato/Ayato.prefab"); AyatoAttack1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/Attack1.ogg"); AyatoAttack2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/Attack2.ogg"); AyatoAttack3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/Attack3.ogg"); AyatoAttack4 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/Attack4.ogg"); AyatoAttack5 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/Attack5.ogg"); AyatoDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/Death.ogg"); AyatoHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/Hurt1.ogg"); AyatoHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/Hurt2.ogg"); AyatoHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/Hurt3.ogg"); AyatoJump = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/Jump.ogg"); AyatoStunnedLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ayato/Sounds/StunnedLoop.ogg"); } public void LoadColleiAssets() { ColleiPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Collei/Collei.prefab"); ColleiCat = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Collei/Cat.prefab"); ColleiDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Collei/Sounds/Death.ogg"); ColleiHeadDetach = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Collei/Sounds/HeadDetach.ogg"); ColleiHeadDetachTell = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Collei/Sounds/HeadDetachTell.ogg"); ColleiHeadExplosionTell = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Collei/Sounds/HeadExplosionTell.ogg"); ColleiHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Collei/Sounds/Hurt.ogg"); ColleiHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Collei/Sounds/Hurt2.ogg"); ColleiHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Collei/Sounds/Hurt3.ogg"); ColleiIdleLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Collei/Sounds/IdleLoop.ogg"); ColleiMelee = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Collei/Sounds/Melee.ogg"); ColleiMeleeGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Collei/Sounds/MeleeGlobal.ogg"); ColleiJump = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Collei/Sounds/Jump.ogg"); ColleiLand = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Collei/Sounds/Land.ogg"); ColleiNotice = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Collei/Sounds/Notice.ogg"); ColleiNoticeGlobal = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Collei/Sounds/NoticeGlobal.ogg"); ColleiHeadLaugh = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Collei/Sounds/HeadLaugh.ogg"); } public void LoadGanyuAssets() { GanyuPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Ganyu/Ganyu.prefab"); GanyuBall = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Ganyu/GanyuBall.prefab"); GanyuAttackSwoosh1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/AttackSwoosh1.ogg"); GanyuAttackSwoosh2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/AttackSwoosh2.ogg"); GanyuDeath1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/Death1.ogg"); GanyuDeath2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/Death2.ogg"); GanyuDeath3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/Death3.ogg"); GanyuHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/Hurt1.ogg"); GanyuHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/Hurt2.ogg"); GanyuHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/Hurt3.ogg"); GanyuIdleBreak1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/IdleBreak1.ogg"); GanyuIdleBreak2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/IdleBreak2.ogg"); GanyuIdleBreak3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/IdleBreak3.ogg"); GanyuIdleBreak4 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/IdleBreak4.ogg"); GanyuIdleLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/IdleLoop.ogg"); GanyuInhale1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/Inhale1.ogg"); GanyuInhale2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/Inhale2.ogg"); GanyuInhale3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/Inhale3.ogg"); GanyuJump1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/Jump1.ogg"); GanyuJump2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/Jump2.ogg"); GanyuJump3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/Jump3.ogg"); GanyuLand1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/Land1.ogg"); GanyuLand2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/Land2.ogg"); GanyuLand3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/Land3.ogg"); GanyuNotice1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/Notice1.ogg"); GanyuNotice2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/Notice2.ogg"); GanyuNotice3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/Notice3.ogg"); GanyuRunAttackLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Ganyu/Sounds/RunLoop.ogg"); GanyuMaterial = GenshinImpactOverhaulAssetBundle.LoadAsset<Material>("Assets/Ganyu/GanyuMat.mat"); } public void LoadAinoIneffaAssets() { AinoIneffaPrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/AinoIneffa/AinoIneffa.prefab"); AinoIneffaBarkBig1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/BigBark1.ogg"); AinoIneffaBarkBig2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/BigBark2.ogg"); AinoIneffaBarkBig3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/BigBark3.ogg"); AinoIneffaBarkBigGlobal1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/BigBark1Global.ogg"); AinoIneffaBarkBigGlobal2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/BigBark2Global.ogg"); AinoIneffaBarkBigGlobal3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/BigBark3Global.ogg"); AinoIneffaBarkSmall1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/BarkSmall1.ogg"); AinoIneffaBarkSmall2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/BarkSmall2.ogg"); AinoIneffaBarkSmall3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/BarkSmall3.ogg"); AinoIneffaBigDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/BigDeath.ogg"); AinoIneffaBigHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/BigHurt1.ogg"); AinoIneffaBigHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/BigHurt2.ogg"); AinoIneffaBigHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/BigHurt3.ogg"); AinoIneffaBigStinger = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/BigStinger.ogg"); AinoIneffaFlyLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/FlyLoop.ogg"); AinoIneffaPantingSmall = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/PantingSmall.ogg"); AinoIneffaPet1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/Pet1.ogg"); AinoIneffaPet2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/Pet2.ogg"); AinoIneffaPet3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/Pet3.ogg"); AinoIneffaSmallDeath = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/SmallDeath.ogg"); AinoIneffaSmallHurt1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/SmallHurt1.ogg"); AinoIneffaSmallHurt2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/SmallHurt2.ogg"); AinoIneffaSmallHurt3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/SmallHurt3.ogg"); AinoIneffaIdleBreak1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/SmallIdleBreak1.ogg"); AinoIneffaIdleBreak2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/SmallIdleBreak2.ogg"); AinoIneffaIdleBreak3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/SmallIdleBreak3.ogg"); AinoIneffaIdleBreak4 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/SmallIdleBreak4.ogg"); AinoIneffaStunLoop = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/StunLoop.ogg"); AinoIneffaPantingBig = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/PantingBig.ogg"); AinoIneffaTransformationStart = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/AinoIneffa/Sounds/StartTransformation.ogg"); AinoIneffaMaterial = GenshinImpactOverhaulAssetBundle.LoadAsset<Material>("Assets/AinoIneffa/Lightning.mat"); } public void LoadDottoreAssets() { DottorePrefab = GenshinImpactOverhaulAssetBundle.LoadAsset<GameObject>("Assets/Dottore/Dottore.prefab"); DottoreAttackTell = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Dottore/Sounds/AttackTell.ogg"); DottoreBackCrackLong1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Dottore/Sounds/BackCrackLong1.ogg"); DottoreBackCrackLong2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Dottore/Sounds/BackCrackLong2.ogg"); DottoreBackCrackLong3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Dottore/Sounds/BackCrackLong3.ogg"); DottoreBackCrackShort1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Dottore/Sounds/BackCrackShort1.ogg"); DottoreBackCrackShort2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Dottore/Sounds/BackCrackShort2.ogg"); DottoreBackCrackShort3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Dottore/Sounds/BackCrackShort3.ogg"); DottoreNeckCrackLong1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Dottore/Sounds/NeckCrackLong1.ogg"); DottoreNeckCrackLong2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Dottore/Sounds/NeckCrackLong2.ogg"); DottoreNeckCrackLong3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Dottore/Sounds/NeckCrackLong3.ogg"); DottoreNeckCrackShort1 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Dottore/Sounds/NeckCrackShort1.ogg"); DottoreNeckCrackShort2 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Dottore/Sounds/NeckCrackShort2.ogg"); DottoreNeckCrackShort3 = GenshinImpactOverhaulAssetBundle.LoadAsset<AudioClip>("Assets/Dottore/Sounds/NeckCrackShort3.ogg"); DottoreLoop = GenshinImpactOverhaulAssetB