private void Awake() { objectHelper = Main.graphics.objectHelper; animator = GetComponent <Animator>(); front = objectHelper.FindDeepChild(gameObject, "hook").transform; ExosuitGrapplingArm component = GetComponent <ExosuitGrapplingArm>(); hookPrefab = Instantiate(component.hookPrefab); rope = objectHelper.GetObjectClone(component.rope); DestroyImmediate(hookPrefab.GetComponent <GrapplingHook>()); DestroyImmediate(component); hook = hookPrefab.AddComponent <SeamothGrapplingHook>(); hook.transform.parent = front; hook.transform.localPosition = Vector3.zero; hook.transform.localRotation = Quaternion.identity; hook.transform.localScale = new Vector3(1f, 1f, 1f); rope.attachPoint = hook.transform; grapplingLoopSound = GetComponent <FMOD_CustomLoopingEmitter>(); shootSound = ScriptableObject.CreateInstance <FMODAsset>(); shootSound.path = "event:/sub/exo/hook_shoot"; shootSound.name = "hook_shoot"; }
public static void Postfix(VFXGrapplingRope __instance) { __instance.GetType().GetField("maxDistance", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue(__instance, QMultiModSettings.Instance.ExosuitGrapplingArmRange); }