void OnTriggerStay2D(Collider2D collision)
    {
        GameObject checkCollision = collision.gameObject;

        LeftGun leftDock = checkCollision.GetComponent <LeftGun>();

        RightGun rightDock = checkCollision.GetComponent <RightGun>();

        if (leftDock != null)
        {
            //collision.gameObject.GetComponent<SpriteRenderer>().color = hoverColor;

            if (dockAttempt && !docked)
            {
                docked             = true;
                transform.position = collision.transform.position;
                _body.velocity     = new Vector2(0, 0);
                dockAttempt        = false;
                currentGun         = leftDock.curGun;
            }

            if (docked)
            {
                //collision.gameObject.GetComponent<SpriteRenderer>().color = dockedColor;
                transform.position = collision.transform.position;
                _body.velocity     = new Vector2(0, 0);
                if (dockAttempt)
                {
                    docked             = false;
                    transform.position = new Vector3(collision.transform.position.x + 0.2f, collision.transform.position.y, transform.position.z);
                }
            }
        }
        if (rightDock != null)
        {
            //collision.gameObject.GetComponent<SpriteRenderer>().color = hoverColor;

            if (dockAttempt && !docked)
            {
                docked             = true;
                transform.position = collision.transform.position;
                _body.velocity     = new Vector2(0, 0);
                dockAttempt        = false;
                currentGun         = rightDock.curGun;
            }

            if (docked)
            {
                //collision.gameObject.GetComponent<SpriteRenderer>().color = dockedColor;
                transform.position = collision.transform.position;
                _body.velocity     = new Vector2(0, 0);
                if (dockAttempt)
                {
                    docked             = false;
                    transform.position = new Vector3(collision.transform.position.x - 0.2f, collision.transform.position.y, transform.position.z);
                }
            }
        }
    }
示例#2
0
//--------------------------------------------------------------------------HELPERS:
    private void CalculateArms()
    {
        if (LeftGunHP <= 0 && healingLeft)
        {
            LeftArmHPRegening.text = "Left Arm Repairing - " + (leftGunTimer - Time.time).ToString("F2");
            if (Time.time >= leftGunTimer)
            {
                LeftArmHPRegening.text = "Left Arm Fully Functional";
                LeftGunHP = leftGunInitialHP;
            }
        }
        if (RightGunHP <= 0 && healingRight)
        {
            RightArmHPRegening.text = "Right Arm Repairing - " + (rightGunTimer - Time.time).ToString("F2");
            if (Time.time >= rightGunTimer)
            {
                RightArmHPRegening.text = "Right Arm Fully Functional";
                RightGunHP = rightGunInitialHP;
            }
        }

        if (RightGunHP <= 0 && !healingRight)
        {
            RightGun.SetActive(false);
            rightGunTimer = Time.time + RightGunRegenTimer;
            cannonChange  = false;
            healingRight  = true;
        }
        else if (RightGunHP >= 0)
        {
            healingRight = false;
            RightGun.SetActive(true);
        }

        if (LeftGunHP <= 0 && !healingLeft)
        {
            LeftGun.SetActive(false);
            leftGunTimer = Time.time + LeftGunRegenTimer;
            cannonChange = true;
            healingLeft  = true;
        }
        else if (LeftGunHP >= 0)
        {
            healingLeft = false;
            LeftGun.SetActive(true);
        }
    }