Esempio n. 1
0
        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";
        }
Esempio n. 2
0
 public static void Postfix(VFXGrapplingRope __instance)
 {
     __instance.GetType().GetField("maxDistance", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue(__instance, QMultiModSettings.Instance.ExosuitGrapplingArmRange);
 }