Example #1
0
    void OnTriggerEnter2D(Collider2D collider)
    {
        BeamBehaviour beam = collider.gameObject.GetComponent <BeamBehaviour>();

        if (beam)
        {
            EnemyHealth -= beam.GetDamage();
            if (EnemyHealth <= 0f)
            {
                Debug.Log("Enemy destroyed");
                GameObject boom = Instantiate(Explosion, transform.position, Quaternion.identity) as GameObject;
                Destroy(gameObject);
                beam.Hit();
                Game.OnEnemyDestroyed();
            }
        }
    }
    void OnTriggerEnter2D(Collider2D collider)
    {
        BeamBehaviour beam = collider.gameObject.GetComponent <BeamBehaviour>();

        if (beam)
        {
            PlayerHealth.CurrentVal -= beam.GetDamage();
            if (PlayerHealth.CurrentVal <= 0)
            {
                GameObject boom = Instantiate(Explosion, transform.position, Quaternion.identity) as GameObject;

                var allRenderers = gameObject.GetComponentsInChildren <Renderer>();
                foreach (var renderer in allRenderers)
                {
                    renderer.enabled = false;
                }
                AudioSource.PlayClipAtPoint(PlayerDestroyed, transform.position);
                var coroutine = FadeToEnd();
                StartCoroutine(coroutine);
            }
        }
    }
    private void CreateNextBounceBeam()
    {
        if (Mathf.Abs(endPoint.position.y) > RAYCAST_BOUNCE_LIMIT_VERTICAL_ABS)
        {
            return;
        }
        if (bounces <= 0)
        {
            return;
        }

        switch (lastCollisionTag)
        {
        case "Border":
        {
            BeamBehaviour bounceBeam = ObjectPool.currentInstance.GetBeamFromPool();
            bounceBeam.SetBeam(entityUser, endPoint.position, bounces - 1, 180 - aimDegree, lastHitCollider);
            break;
        }

        case "Entity":
        {
            BeamBehaviour bounceBeam = ObjectPool.currentInstance.GetBeamFromPool();
            bounceBeam.SetBeam(entityUser, endPoint.position, bounces - 1, Random.Range(0, 361), lastHitCollider);

            break;
        }

        default:
        {
            //BeamBehaviour bounceBeam = ObjectPool.currentInstance.GetBeamFromPool();
            //bounceBeam.SetBeam(entityUser, endPoint.position, bounces - 1, 180 - aimDegree);
            //Nada demomento.
            break;
        }
        }
    }