IEnumerator ModifyHoming(float seconds)
    {
        Debug.Log("modify");

        yield return(new WaitForSeconds(seconds));

        _myProjectType = ProjectileTypes.projectileTypes.homing_missile;
    }
    private void OnCollisionEnter2D(Collision2D collision)
    {
        Debug.Log("Hit");
        if (collision.gameObject.tag == "BlackHoleEntrance")
        {
            if (_myProjectType == ProjectileTypes.projectileTypes.homing_missile)
            {
                ChangeTargetToBoss();
                ChangeLocation(collision.gameObject.GetComponent <Entrance_BlackHole>().testExit.transform);
            }
        }
        else if (collision.gameObject.tag == "Player")
        {
            //Player Takes Damage
        }
        else if (collision.gameObject.tag == "Boss")
        {
            //Boss Takes Damage
            Destroy(gameObject);
        }

        if (collision.gameObject.tag == "Reflector")
        {
            _myProjectType = ProjectileTypes.projectileTypes.missile;

            float   speed     = lastVelocity.magnitude;
            Vector3 direction = Vector3.Reflect(lastVelocity.normalized, collision.contacts[0].normal);

            _rb.velocity = direction * Mathf.Max(speed, 0f);

            StartCoroutine("ModifyHoming", 0.5);
        }

        if (collision.gameObject.tag == "ElectroCannonBattery")
        {
            Destroy(gameObject);

            collision.gameObject.GetComponent <ElectroCannonBattery>().IncrementChargeCount();
        }
    }