Example #1
0
    public void AbandonRocket()
    {
        if (ridingRocket)
        {
            StopAllCoroutines();

            ridingRocket          = false;
            transform.parent      = null;
            rigidbody.isKinematic = false;
            rigidbody.velocity    = rocket.rigidbody.velocity;

            if (!isDead && stunTimer <= 0f)
            {
                StartCoroutine(RecoverCoroutine(transform.localRotation));
            }

            rocket.SetControlRocket(false);
            rocket = null;
        }
    }
Example #2
0
    private void FireRocket(Vector3 aimDir, bool ride)
    {
        float angle = Mathf.Rad2Deg * Mathf.Atan2(-aimDir.y, aimDir.x);

        rocket = (RocketBehaviour)Instantiate(rocketPrefab, transform.position + shoulderPos + aimDir * 3, Quaternion.Euler(new Vector3(angle, 90f, 0f)));
        rocket.rigidbody.velocity = rigidbody.velocity;

        // ride rocket
        if (ride)
        {
            rocket.SetControlRocket(true);
            ridingRocket          = true;
            transform.parent      = rocket.transform;
            rigidbody.isKinematic = true;

            animation.Play("StandAnimation", PlayMode.StopAll);

            MountRocket(transform.localPosition, transform.localRotation, facingRight);
        }
    }
Example #3
0
    private void FireRocket(Vector3 aimDir, bool ride)
    {
        float angle = Mathf.Rad2Deg * Mathf.Atan2(-aimDir.y, aimDir.x);
        rocket = (RocketBehaviour) Instantiate(rocketPrefab, transform.position + shoulderPos + aimDir * 3, Quaternion.Euler(new Vector3(angle, 90f, 0f)));
        rocket.rigidbody.velocity = rigidbody.velocity;

        // ride rocket
        if (ride) {
            rocket.SetControlRocket(true);
            ridingRocket = true;
            transform.parent = rocket.transform;
            rigidbody.isKinematic = true;

            animation.Play("StandAnimation", PlayMode.StopAll);

            MountRocket(transform.localPosition, transform.localRotation, facingRight);
        }
    }