Esempio n. 1
0
    void Update()
    {
        // Simulate collision rays
        for (int i = 0; i < collisionRays.Length; i++)
        {
            LayerMask layerMask = 1 << 8; // Wall layer
            Vector2   PosXY     = new Vector2(transform.position.x, transform.position.y);
            //Debug.DrawRay(PosXY + collisionRays[i].rayOffset, collisionRays[i].rayDir, Color.green);

            RaycastHit2D rcHit = Physics2D.Raycast(PosXY + collisionRays[i].rayOffset, collisionRays[i].rayDir, collisionRays[i].rayDir.magnitude, layerMask);

            if (rcHit.collider != null)
            {
                //Debug.Log(i + " hit", rcHit.collider.gameObject);
                if (rayStay[i] == false)
                {
                    // Choose which dir to send it in
                    switch (collisionRays[i].reboundDir)
                    {
                    case ReboundDir.PosX:
                        //vel.x = Mathf.Max(0, vel.x);
                        vel.x = Mathf.Abs(vel.x * reboundModifier);
                        break;

                    case ReboundDir.NegX:
                        //vel.x = Mathf.Min(0, vel.x);
                        vel.x = -Mathf.Abs(vel.x * reboundModifier);
                        break;

                    case ReboundDir.PosY:
                        vel.y = Mathf.Abs(vel.y * reboundModifier);
                        break;

                    case ReboundDir.NegY:
                        vel.y = -Mathf.Abs(vel.y * reboundModifier);
                        break;

                    default:
                        break;
                    }

                    takeWallDamage = true;
                }
                rayStay[i] = true;
            }
            else
            {
                rayStay[i] = false;
            }
        }

        if (takeWallDamage)
        {
            PhoneHealth.TakeDamage(3);
            audioSource.Play();

            takeWallDamage = false;
        }
    }
Esempio n. 2
0
 void Update()
 {
     // Changing the phone damage if its still on the phone with a delay
     if (isColliding || theresFire)
     {
         damageTimer += Time.deltaTime;
         if (damageTimer >= damagePS)
         {
             damageTimer = 0.0f;
             PhoneHealth.TakeDamage(damage);
             //Debug.Log(PhoneHealth.phoneHealth);
         }
     }
 }