Ejemplo n.º 1
0
    private void Shoot()
    {
        if (FpsController.currentWeapon.bulletLeft <= 0)
        {
        }
        else
        {
            if ((FpsController.currentWeapon.name == "deagle"
                ? Input.GetMouseButtonDown(0)
                : Input.GetMouseButton(0)) && Time.time > nextTimeToFire && !FpsController.isReloading)
            {
                FpsController.BulletDown();
                nextTimeToFire = Time.time + 1f / FpsController.currentWeapon.fireRate;
                RaycastHit hit;
                if (Physics.Raycast(mainCam.transform.position, mainCam.transform.forward, out hit))
                {
                    Debug.DrawRay(mainCam.transform.position, mainCam.transform.forward, Color.red, 1);
                    Instantiate(concreteImpact, hit.point, Quaternion.LookRotation(hit.normal));
                    GameObject hitObject = hit.transform.gameObject;
                    if (hitObject.CompareTag("Board"))
                    {
                        hit.transform.gameObject.GetComponent <Animator>().SetTrigger("Hit");
                        switch (hitObject.name)
                        {
                        case "RobotBoard":
                            LoadRobotScene();
                            break;

                        case "BossFightBoard":
                            LoadFinalBossScene();
                            break;
                        }
                    }

                    if (hitObject.CompareTag("Trophy"))
                    {
                        hitObject.GetComponent <TrophyBehavior>().PlayTrophy();
                    }

                    var targetScript = hit.transform.gameObject.GetComponent <EnemyTarget>();
                    if (targetScript != null)
                    {
                        targetScript.TakeDamage(FpsController.currentWeapon.damage);
                    }
                }
            }
        }
    }