Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of GenshinImpactOverhaul REPO v2.0.5
JigglePhysicsPlugin.dll
Decompiled 2 months 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 months 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", "Genshin Impact Overhaul", "2.0.5")] public class GenshinImpactOverhaul : BaseUnityPlugin { private readonly Harmony harmony = new Harmony("GenshinImpactOverhaul"); private static GenshinImpactOverhaul Instance; public static ManualLogSource mls; public static AssetBundle GenshinImpactOverhaulAssetBundle; public static GameObject MikaPrefab; public static AudioClip MikaSoundDeath1; public static AudioClip MikaSoundDeath2; public static AudioClip MikaSoundDeath3; public static AudioClip MikaSoundHurt1; public static AudioClip MikaSoundHurt2; public static AudioClip MikaSoundHurt3; public static AudioClip MikaSoundDespawn; public static AudioClip MikaSoundSpawn; public static AudioClip MikaSoundIdle1; public static AudioClip MikaSoundIdle2; public static AudioClip MikaSoundIdle3; public static AudioClip MikaSoundJump; public static AudioClip MikaSoundNotice1; public static AudioClip MikaSoundNotice2; public static AudioClip MikaSoundNotice3; public static AudioClip MikaSoundPickaxeTell; public static AudioClip MikaSoundStunFlyLoop; public static AudioClip MikaStunIntro1; public static AudioClip MikaStunIntro2; public static AudioClip MikaStunIntro3; public static AudioClip MikaStunOutro1; public static AudioClip MikaStunOutro2; public static AudioClip MikaStunOutro3; public static GameObject ClorindePrefab; public static AudioClip ClorindeSoundAim1; public static AudioClip ClorindeSoundAim2; public static AudioClip ClorindeSoundAim3; public static AudioClip ClorindeSoundAimGlobal1; public static AudioClip ClorindeSoundAimGlobal2; public static AudioClip ClorindeSoundAimGlobal3; public static AudioClip ClorindeSoundDeath1; public static AudioClip ClorindeSoundDeath2; public static AudioClip ClorindeSoundDeath3; public static AudioClip ClorindeSoundHurt1; public static AudioClip ClorindeSoundHurt2; public static AudioClip ClorindeSoundHurt3; public static AudioClip ClorindeSoundDespawn; public static AudioClip ClorindeSoundSpawn; public static AudioClip ClorindeSoundLeave1; public static AudioClip ClorindeSoundLeave2; public static AudioClip ClorindeSoundLeave3; public static GameObject BeidouPrefab; public static AudioClip BeidouAttackImpact; public static AudioClip BeidouAttackImpactGlobal; public static AudioClip BeidouAttackBuildupVO; public static AudioClip BeidouDeath; public static AudioClip BeidouHurt1; public static AudioClip BeidouHurt2; public static AudioClip BeidouHurt3; public static AudioClip BeidouJump; public static AudioClip BeidouLand; public static AudioClip BeidouLookUnderAttack; public static AudioClip BeidouLookUnderIntro; public static AudioClip BeidouLookUnderOutro; public static AudioClip BeidouNoiseLong1; public static AudioClip BeidouNoiseLong2; public static AudioClip BeidouNoiseLong3; public static AudioClip BeidouNoiseShort1; public static AudioClip BeidouNoiseShort2; public static AudioClip BeidouNoiseShort3; public static AudioClip BeidouNotice1; public static AudioClip BeidouNotice2; public static AudioClip BeidouNotice3; public static AudioClip BeidouStunnedLoop; public static GameObject SayuPrefab; public static AudioClip SayuAttackStart; public static AudioClip SayuAttackStop; public static AudioClip SayuDeath; public static AudioClip SayuDespawn; public static AudioClip SayuHurt1; public static AudioClip SayuHurt2; public static AudioClip SayuHurt3; public static AudioClip SayuJump1; public static AudioClip SayuJump2; public static AudioClip SayuJump3; public static AudioClip SayuLand1; public static AudioClip SayuLand2; public static AudioClip SayuLand3; public static AudioClip SayuNotice1; public static AudioClip SayuNotice2; public static AudioClip SayuNotice3; public static AudioClip SayuAttackLoop; public static AudioClip SayuSpawn; public static GameObject GamingPrefab; public static AudioClip GamingCleaverSwing1; public static AudioClip GamingCleaverSwing2; public static AudioClip GamingCleaverSwing3; public static AudioClip GamingHurt1; public static AudioClip GamingHurt2; public static AudioClip GamingHurt3; public static AudioClip GamingJump1; public static AudioClip GamingJump2; public static AudioClip GamingJump3; public static AudioClip GamingJump4; public static AudioClip GamingJump5; public static AudioClip GamingLand1; public static AudioClip GamingLand2; public static AudioClip GamingLand3; public static AudioClip GamingNotice; public static AudioClip GamingStunnedLoop; public static AudioClip GamingTumbleLocal; public static AudioClip GamingTumbleGlobal; public static GameObject KachinaPrefab; public static AudioClip KachinaDeath; public static AudioClip KachinaDespawn; public static AudioClip KachinaHurt1; public static AudioClip KachinaHurt2; public static AudioClip KachinaHurt3; public static AudioClip KachinaJump; public static AudioClip KachinaLand; public static AudioClip KachinaNotice; public static AudioClip KachinaPickupIntro; public static AudioClip KachinaPickupOutroTell; public static AudioClip KachinaPickupOutroThrow; public static AudioClip KachinaSpawn; public static AudioClip KachinaStunOutro; public static AudioClip KachinaStunLoop; public static GameObject ArlecchinoPrefab; public static AudioClip ArlecchinoAttack; public static AudioClip ArlecchinoDeath; public static AudioClip ArlecchinoHurt1; public static AudioClip ArlecchinoHurt2; public static AudioClip ArlecchinoHurt3; public static AudioClip ArlecchinoScream1; public static AudioClip ArlecchinoScream1Global; public static AudioClip ArlecchinoScream2; public static AudioClip ArlecchinoScream2Global; public static AudioClip ArlecchinoScream3; public static AudioClip ArlecchinoScream3Global; public static AudioClip ArlecchinoTeleportIn; public static AudioClip ArlecchinoTeleportOut; public static AudioClip ArlecchinoZoom; public static GameObject AlhaithamPrefab; public static AudioClip AlhaithamAttackIntro; public static AudioClip AlhaithamAttackLoop; public static AudioClip AlhaithamAttackOutro; public static AudioClip AlhaithamDeath; public static AudioClip AlhaithamHurt1; public static AudioClip AlhaithamHurt2; public static AudioClip AlhaithamHurt3; public static AudioClip AlhaithamJump; public static AudioClip AlhaithamLand; public static AudioClip AlhaithamMeleeKick; public static AudioClip AlhaithamMeleeTell; public static AudioClip AlhaithamStunIntro; public static AudioClip AlhaithamStunOutro; public static AudioClip AlhaithamStunLoop; public static Material AlhaithamLaserInside; public static Material AlhaithamLaser; public static Material AlhaithamLaserVariant; public static Material AlhaithamLaserSmoke; public static GameObject BarbaraPrefab; public static AudioClip BarbaraDeath; public static AudioClip BarbaraDespawn; public static AudioClip BarbaraHurt1; public static AudioClip BarbaraHurt2; public static AudioClip BarbaraHurt3; public static AudioClip BarbaraIdleLoop; public static AudioClip BarbaraScreamEndGlobal; public static AudioClip BarbaraScreamStartGlobal; public static AudioClip BarbaraScreamLoopGlobal; public static AudioClip BarbaraScreamLoopLocal; public static AudioClip BarbaraStunnedLoop; public static AudioClip BarbaraJump; public static AudioClip BarbaraNotice; public static AudioClip BarbaraLand; public static GameObject XianyunPrefab; public static AudioClip XianyunAttackDown; public static AudioClip XianyunAttackDownGlobal; public static AudioClip XianyunAttackUp; public static AudioClip XianyunAttackUpGlobal; public static AudioClip XianyunDeath; public static AudioClip XianyunHurt1; public static AudioClip XianyunHurt2; public static AudioClip XianyunHurt3; public static AudioClip XianyunStunnedLoop; public static AudioClip XianyunChargeAttack; public static AudioClip XianyunChargeAttackLoop; public static AudioClip XianyunClapGlobal; public static AudioClip XianyunClapLocal; public static AudioClip XianyunDelayAttack; public static Material XianyunMaterial; public static GameObject IansanPrefab; public static AudioClip IansanDespawn; public static AudioClip IansanHurt1; public static AudioClip IansanHurt2; public static AudioClip IansanHurt3; public static AudioClip IansanIdle1; public static AudioClip IansanIdle2; public static AudioClip IansanIdle3; public static AudioClip IansanJump; public static AudioClip IansanLand; public static AudioClip IansanScream1Global; public static AudioClip IansanScream1Local; public static AudioClip IansanScream2Global; public static AudioClip IansanScream2Local; public static AudioClip IansanScream3Global; public static AudioClip IansanScream3Local; public static GameObject HuTaoPrefab; public static AudioClip HutaoAttack; public static AudioClip HutaoAttackGlobal; public static AudioClip HutaoCrackingFingers; public static AudioClip HutaoCrackingFingersAggresive; public static AudioClip HutaoHurt1; public static AudioClip HutaoHurt2; public static AudioClip HutaoHurt3; public static AudioClip HutaoLookUnderScream; public static AudioClip HutaoLookUnderScreamGlobal; public static AudioClip HutaoNoise1; public static AudioClip HutaoNoise2; public static AudioClip HutaoNoise3; public static AudioClip HutaoNoise4; public static AudioClip HutaoStunStart; public static AudioClip HutaoTargetingPlayer; public static AudioClip HutaoStunnedLoop; public static GameObject AyatoPrefab; public static AudioClip AyatoAttack1; public static AudioClip AyatoAttack2; public static AudioClip AyatoAttack3; public static AudioClip AyatoAttack4; public static AudioClip AyatoAttack5; public static AudioClip AyatoDeath; public static AudioClip AyatoHurt1; public static AudioClip AyatoHurt2; public static AudioClip AyatoHurt3; public static AudioClip AyatoJump; public static AudioClip AyatoStunnedLoop; public static GameObject NahidaPrefab; public static AudioClip NahidaBlink1; public static AudioClip NahidaBlink2; public static AudioClip NahidaBlink3; public static AudioClip NahidaDeath; public static AudioClip NahidaDespawn; public static AudioClip NahidaLaser; public static AudioClip NahidaLaserBuildup; public static AudioClip NahidaSpawn; public static AudioClip NahidaStaringStart; public static AudioClip NahidaStareLoopTwitching; public static AudioClip NahidaStareLoop; public static GameObject GorouPrefab; public static AudioClip GorouBiteStart1; public static AudioClip GorouBiteStart2; public static AudioClip GorouBiteStart3; public static AudioClip GorouChaseBegin; public static AudioClip GorouChaseBeginGlobal; public static AudioClip GorouChaseBeginToChase; public static AudioClip GorouChaseToIdle; public static AudioClip GorouDeath; public static AudioClip GorouDespawn; public static AudioClip GorouHurt1; public static AudioClip GorouHurt2; public static AudioClip GorouHurt3; public static AudioClip GorouSpawn; public static AudioClip GorouTeethChatter1; public static AudioClip GorouTeethChatter2; public static AudioClip GorouTeethChatter3; public static AudioClip GorouTeethChatter4; public static AudioClip GorouTeethChatter5; public static GameObject TapirPrefab; public static AudioClip TapirAttackLoop; public static AudioClip TapirDeath; public static AudioClip TapirHurt1; public static AudioClip TapirHurt2; public static AudioClip TapirHurt3; public static AudioClip TapirNotice1; public static AudioClip TapirNotice2; public static AudioClip TapirNotice3; public static AudioClip TapirQuack1; public static AudioClip TapirQuack2; public static AudioClip TapirQuack3; public static AudioClip TapirStunEnd1; public static AudioClip TapirStunEnd2; public static AudioClip TapirStunEnd3; public static AudioClip TapirStunLoop; public static AudioClip TapirBite1; public static AudioClip TapirBite2; public static AudioClip TapirBite3; public static AudioClip TapirBite4; public static AudioClip TapirBite5; public static AudioClip TapirBite6; public static GameObject MavuikaPrefab; public static AudioClip MavuikaAttackBreaker1; public static AudioClip MavuikaAttackBreaker2; public static AudioClip MavuikaAttackBreaker3; public static AudioClip MavuikaAttackBreaker4; public static AudioClip MavuikaAttackBreaker5; public static AudioClip MavuikaDeath1; public static AudioClip MavuikaDeath2; public static AudioClip MavuikaDeath3; public static AudioClip MavuikaExplodeTell1; public static AudioClip MavuikaExplodeTell2; public static AudioClip MavuikaExplodeTell3; public static AudioClip MavuikaFuseTell1; public static AudioClip MavuikaFuseTell2; public static AudioClip MavuikaFuseTell3; public static AudioClip MavuikaHurt1; public static AudioClip MavuikaHurt2; public static AudioClip MavuikaHurt3; public static AudioClip MavuikaIdleBreaker1; public static AudioClip MavuikaIdleBreaker2; public static AudioClip MavuikaIdleBreaker3; public static AudioClip MavuikaIdleBreaker4; public static AudioClip MavuikaIdleBreaker5; public static AudioClip MavuikaJump1; public static AudioClip MavuikaJump2; public static AudioClip MavuikaJump3; public static AudioClip MavuikaLand1; public static AudioClip MavuikaLand2; public static AudioClip MavuikaLand3; public static AudioClip MavuikaStunIntro1; public static AudioClip MavuikaStunIntro2; public static AudioClip MavuikaStunIntro3; public static AudioClip MavuikaStunLoop; public static AudioClip MavuikaStunOutro1; public static AudioClip MavuikaStunOutro2; public static AudioClip MavuikaStunOutro3; public static Texture2D DoriEmojis; public static Material DoriMaterial; public static GameObject ColleiPrefab; public static GameObject ColleiCat; public static AudioClip ColleiDeath; public static AudioClip ColleiHeadDetachTell; public static AudioClip ColleiHeadDetach; public static AudioClip ColleiHeadExplosionTell; public static AudioClip ColleiHurt1; public static AudioClip ColleiHurt2; public static AudioClip ColleiHurt3; public static AudioClip ColleiIdleLoop; public static AudioClip ColleiMelee; public static AudioClip ColleiMeleeGlobal; public static AudioClip ColleiJump; public static AudioClip ColleiLand; public static AudioClip ColleiNotice; public static AudioClip ColleiNoticeGlobal; public static AudioClip ColleiHeadLaugh; public static GameObject GanyuPrefab; public static GameObject GanyuBall; public static Material GanyuMaterial; public static AudioClip GanyuAttackSwoosh1; public static AudioClip GanyuAttackSwoosh2; public static AudioClip GanyuDeath1; public static AudioClip GanyuDeath2; public static AudioClip GanyuDeath3; public static AudioClip GanyuHurt1; public static AudioClip GanyuHurt2; public static AudioClip GanyuHurt3; public static AudioClip GanyuIdleBreak1; public static AudioClip GanyuIdleBreak2; public static AudioClip GanyuIdleBreak3; public static AudioClip GanyuIdleBreak4; public static AudioClip GanyuIdleLoop; public static AudioClip GanyuRunAttackLoop; public static AudioClip GanyuInhale1; public static AudioClip GanyuInhale2; public static AudioClip GanyuInhale3; public static AudioClip GanyuJump1; public static AudioClip GanyuJump2; public static AudioClip GanyuJump3; public static AudioClip GanyuLand1; public static AudioClip GanyuLand2; public static AudioClip GanyuLand3; public static AudioClip GanyuNotice1; public static AudioClip GanyuNotice2; public static AudioClip GanyuNotice3; public static GameObject AinoIneffaPrefab; public static AudioClip AinoIneffaBarkSmall1; public static AudioClip AinoIneffaBarkSmall2; public static AudioClip AinoIneffaBarkSmall3; public static AudioClip AinoIneffaBarkBig1; public static AudioClip AinoIneffaBarkBig2; public static AudioClip AinoIneffaBarkBig3; public static AudioClip AinoIneffaBarkBigGlobal1; public static AudioClip AinoIneffaBarkBigGlobal2; public static AudioClip AinoIneffaBarkBigGlobal3; public static AudioClip AinoIneffaBigDeath; public static AudioClip AinoIneffaBigHurt1; public static AudioClip AinoIneffaBigHurt2; public static AudioClip AinoIneffaBigHurt3; public static AudioClip AinoIneffaBigStinger; public static AudioClip AinoIneffaFlyLoop; public static AudioClip AinoIneffaPantingSmall; public static AudioClip AinoIneffaPantingBig; public static AudioClip AinoIneffaSmallHurt1; public static AudioClip AinoIneffaSmallHurt2; public static AudioClip AinoIneffaSmallHurt3; public static AudioClip AinoIneffaPet1; public static AudioClip AinoIneffaPet2; public static AudioClip AinoIneffaPet3; public static AudioClip AinoIneffaSmallDeath; public static AudioClip AinoIneffaStunLoop; public static AudioClip AinoIneffaIdleBreak1; public static AudioClip AinoIneffaIdleBreak2; public static AudioClip AinoIneffaIdleBreak3; public static AudioClip AinoIneffaIdleBreak4; public static AudioClip AinoIneffaTransformationStart; public static Material AinoIneffaMaterial; public static GameObject DottorePrefab; public static AudioClip DottoreAttackTell; public static AudioClip DottoreBackCrackShort1; public static AudioClip DottoreBackCrackShort2; public static AudioClip DottoreBackCrackShort3; public static AudioClip DottoreBackCrackLong1; public static AudioClip DottoreBackCrackLong2; public static AudioClip DottoreBackCrackLong3; public static AudioClip DottoreNeckCrackShort1; public static AudioClip DottoreNeckCrackShort2; public static AudioClip DottoreNeckCrackShort3; public static AudioClip DottoreNeckCrackLong1; public static AudioClip DottoreNeckCrackLong2; public static AudioClip DottoreNeckCrackLong3; public static AudioClip DottoreDeath1; public static AudioClip DottoreDeath2; public static AudioClip DottoreDeath3; public static AudioClip DottoreHurt1; public static AudioClip DottoreHurt2; public static AudioClip DottoreHurt3; public static AudioClip DottoreLoop; public static AudioClip DottoreTarget; public static AudioClip DottoreNonTarget; public static AudioClip DottoreSlap; public static AudioClip DottoreSlapGlobal; public static Sprite DottoreSprite; public static GameObject SkirkPrefab; public static AudioClip SkirkAttack1; public static AudioClip SkirkAttack2; public static AudioClip SkirkAttack3; public static AudioClip SkirkAttackOutro1; public static AudioClip SkirkAttackOutro2; public static AudioClip SkirkAttackOutro3; public static AudioClip SkirkDeath1; public static AudioClip SkirkDeath2; public static AudioClip SkirkDeath3; public static AudioClip SkirkIdle1; public static AudioClip SkirkIdle2; public static AudioClip SkirkIdle3; public static AudioClip SkirkBell1; public static AudioClip SkirkBell2; public static AudioClip SkirkBell3; public static AudioClip SkirkBell1Global; public static AudioClip SkirkBell2Global; public static AudioClip SkirkBell3Global; public static AudioClip SkirkStunLoop; public static AudioClip SkirkTeleport1; public static AudioClip SkirkTeleport2; public static AudioClip SkirkTeleport3; public static AudioClip SkirkBellBuildup; public static AudioClip SkirkBattleLoop; public static AudioClip SkirkWheelSqueak; public static AudioClip SkirkWheelRattle; public static AudioClip SkirkMove1; public static AudioClip SkirkMove2; public static AudioClip SkirkMove3; public static AudioClip SkirkSilence; public static GameObject IfaPrefab; public static Material IfaMaterial; public static Material IfaNothingMaterial; public static Material IfaDeathMaterial; public static AudioClip IfaDeath1; public static AudioClip IfaDeath2; public static AudioClip IfaDeath3; public static AudioClip IfaDropPlayer1; public static AudioClip IfaDropPlayer2; public static AudioClip IfaDropPlayer3; public static AudioClip IfaEyesOff; public static AudioClip IfaEyesOn; public static AudioClip IfaHurt1; public static AudioClip IfaHurt2; public static AudioClip IfaHurt3; public static AudioClip IfaIdle1; public static AudioClip IfaIdle2; public static AudioClip IfaIdle3; public static AudioClip IfaNotice1; public static AudioClip IfaNotice2; public static AudioClip IfaNotice3; public static AudioClip IfaNotice1Global; public static AudioClip IfaNotice2Global; public static AudioClip IfaNotice3Global; public static AudioClip IfaOoglyIdle; public static AudioClip IfaStartCharge1; public static AudioClip IfaStartCharge2; public static AudioClip IfaStartCharge3; public static AudioClip IfaAttackLoop; public static AudioClip IfaHitPlayer1; public static AudioClip IfaHitPlayer2; public static AudioClip IfaHitPlayer3; public static GameObject DurinPrefab; public static AudioClip DurinDeath1; public static AudioClip DurinDeath2; public static AudioClip DurinDeath3; public static AudioClip DurinBigSuck1; public static AudioClip DurinBigSuck2; public static AudioClip DurinBigSuck3; public static AudioClip DurinHurt1; public static AudioClip DurinHurt2; public static AudioClip DurinHurt3; public static AudioClip DurinJump1; public static AudioClip DurinJump2; public static AudioClip DurinJump3; public static AudioClip DurinNotice1; public static AudioClip DurinNotice2; public static AudioClip DurinNotice3; public static AudioClip DurinSlowFlap; public static AudioClip DurinFastFlap; public static GameObject YelanPrefab; public static GameObject YelanDice; public static AudioClip YelanDeath; public static AudioClip YelanRunLoop; public static AudioClip YelanMusic; public static AudioClip YelanMusicRunning; public static AudioClip YelanCloseMouth1; public static AudioClip YelanCloseMouth2; public static AudioClip YelanCloseMouth3; public static AudioClip YelanHurt1; public static AudioClip YelanHurt2; public static AudioClip YelanHurt3; public static AudioClip YelanIdleLoop; public static AudioClip YelanJingleBlack; public static AudioClip YelanJingleBlackGlobal; public static AudioClip YelanJingleWhite; public static AudioClip YelanJingleGreen; public static AudioClip YelanJingleRed; public static AudioClip YelanJingleYellow; public static AudioClip YelanJump; public static AudioClip YelanLand; public static AudioClip YelanNotice; public static AudioClip YelanOpenMouth1; public static AudioClip YelanOpenMouth2; public static AudioClip YelanOpenMouth3; public static AudioClip YelanMusicDeath; public static RuntimeAnimatorController YelanWalk; public static RuntimeAnimatorController YelanRun; public static GameObject KiraraPrefab; public static AudioClip KiraraAttackSwipe; public static AudioClip KiraraBreathingLoop; public static AudioClip KiraraCantReach; public static AudioClip KiraraDeath; public static AudioClip KiraraDropKickEnd; public static AudioClip KiraraDropKickTell; public static AudioClip KiraraGrabHead; public static AudioClip KiraraHurt1; public static AudioClip KiraraHurt2; public static AudioClip KiraraHurt3; public static AudioClip KiraraJump1; public static AudioClip KiraraJump2; public static AudioClip KiraraJump3; public static AudioClip KiraraLand1; public static AudioClip KiraraLand2; public static AudioClip KiraraLand3; public static AudioClip KiraraLongNoise1; public static AudioClip KiraraLongNoise2; public static AudioClip KiraraLongNoise3; public static AudioClip KiraraShortNoise1; public static AudioClip KiraraShortNoise2; public static AudioClip KiraraShortNoise3; public static AudioClip KiraraShortNoise4; public static AudioClip KiraraShortNoise5; public static AudioClip KiraraNotice; public static AudioClip KiraraNoticeGlobal; public static AudioClip KiraraReleaseHeadStart; public static AudioClip KiraraReleaseHeadEnd; public static AudioClip KiraraStunEnd; public static AudioClip KiraraStunLoop; public static AudioClip KiraraStunStart; public static GameObject KiraraParticles; public static GameObject NeferPrefab; public static Material NeferMaterial; public static AudioClip NeferBite1; public static AudioClip NeferBite2; public static AudioClip NeferBite3; public static AudioClip NeferDegrow1; public static AudioClip NeferDegrow2; public static AudioClip NeferDegrow3; public static AudioClip NeferGasTell1; public static AudioClip NeferGasTell2; public static AudioClip NeferGasTell3; public static AudioClip NeferGrow1; public static AudioClip NeferGrow2; public static AudioClip NeferGrow3; public static AudioClip NeferIdleLoop; public static AudioClip NeferScare1; public static AudioClip NeferScare2; public static AudioClip NeferScare3; public static AudioClip NeferScare1Global; public static AudioClip NeferScare2Global; public static AudioClip NeferScare3Global; public static AudioClip NeferStunLoop; public static AudioClip NeferAggrobreaker1; public static AudioClip NeferAggrobreaker2; public static AudioClip NeferAggrobreaker3; public static AudioClip NeferAggroLoop; public static AudioClip NeferAggroStart1; public static AudioClip NeferAggroStart2; public static AudioClip NeferAggroStart3; public static AudioClip NeferDeath1; public static AudioClip NeferDeath2; public static AudioClip NeferDeath3; public static AudioClip NeferGasLoop; public static AudioClip NeferHurt1; public static AudioClip NeferHurt2; public static AudioClip NeferHurt3; public static AudioClip NeferIdlebreaker1; public static AudioClip NeferIdlebreaker2; public static AudioClip NeferIdlebreaker3; public static AudioClip NeferPopAway1; public static AudioClip NeferPopAway2; public static AudioClip NeferPopAway3; public static AudioClip NeferLove1; public static AudioClip NeferLove2; public static AudioClip NeferLove3; public static AudioClip NeferGasStart1; public static AudioClip NeferGasStart2; public static AudioClip NeferGasStart3; public static AudioClip NeferGasStop1; public static AudioClip NeferGasStop2; public static AudioClip NeferGasStop3; public static GameObject FlinsPrefab; public static Texture2D FlinsFootstep; public static AudioClip FlinsBreath1; public static AudioClip FlinsBreath2; public static AudioClip FlinsBreath3; public static AudioClip FlinsBreath4; public static AudioClip FlinsBreath5; public static AudioClip FlinsBreath6; public static AudioClip FlinsBreath7; public static AudioClip FlinsBreath8; public static AudioClip FlinsBreath9; public static AudioClip FlinsBreath10; public static AudioClip FlinsDeath1; public static AudioClip FlinsDeath2; public static AudioClip FlinsDeath3; public static AudioClip FlinsDropPlayer; public static AudioClip FlinsHurt1; public static AudioClip FlinsHurt2; public static AudioClip FlinsHurt3; public static AudioClip FlinsJump1; public static AudioClip FlinsJump2; public static AudioClip FlinsJump3; public static AudioClip FlinsLand1; public static AudioClip FlinsLand2; public static AudioClip FlinsLand3; public static AudioClip FlinsNotice1; public static AudioClip FlinsNotice2; public static AudioClip FlinsNotice3; public static AudioClip FlinsMovePlayerLoop; public static AudioClip FlinsMovePlayerStop; public static AudioClip FlinsPickupPlayer; public static AudioClip FlinsStunEnd; public static AudioClip FlinsStunStart; public static AudioClip FlinsStunLoop; public static GameObject PaimonPrefab; public static ConfigEntry<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 = GenshinImpactOverhaulAssetBundle.LoadAss