Exemplo n.º 1
0
    private void Shoot()
    {
        if (isReloadAnimFinished && clipAmmoCount > 0)
        {
            animator.SetTrigger("gunSpin");
            UseAmmo();

            player.AddImpact(-fpsCam.transform.forward, backFireAmount);

            RaycastHit hitInfo;
            if (Physics.Raycast(fpsCam.transform.position, fpsCam.transform.forward, out hitInfo, range))
            {
                DestroyableObject destroyableObject = hitInfo.transform.GetComponent <DestroyableObject>();
                Enemy             enemy             = hitInfo.transform.GetComponentInParent <Enemy>();


                if (hitInfo.transform.gameObject.tag == "DestroyableObject")
                {
                    destroyableObject.gameObject.GetComponent <BoxCollider>().enabled = false;
                    destroyableObject.ExplodeObject();
                }

                else if (hitInfo.transform.gameObject.tag == "Enemy")
                {
                    enemy.TakeDamage(damage);
                }
            }
        }
    }
Exemplo n.º 2
0
 private void OnCollisionEnter(Collision collision)
 {
     /*if (collision.gameObject.tag == "Wall")
      * {*/
     /*isCharging = false;
      * speed = 0;
      * chargeTime = 0;
      * Debug.Log("made it");
      * locActive = true;
      * /*}
      */
     if (collision.gameObject.tag == "Player" && isCharging == true)
     {
         PlayerMovement playerMovement = collision.transform.GetComponent <PlayerMovement>();
         if (playerMovement != null)
         {
             playerMovement.TakeDamage(8);
             playerMovement.ShakeIt();
             isCharging = false;
             speed      = 0;
             chargeTime = 0;
             Debug.Log("made it");
             locActive = true;
             Vector3 direction = collision.transform.position - transform.position;
             navMeshAgent.SetDestination(transform.position);
             playerMovement.AddImpact(direction, 100f);
         }
     }
     else
     {
         isCharging = false;
         speed      = 0;
         chargeTime = 0;
         Debug.Log("made it");
         locActive = true;
         Vector3 direction = collision.transform.position - transform.position;
         navMeshAgent.SetDestination(transform.position);
     }
 }
Exemplo n.º 3
0
    // Update is called once per frame
    void Update()
    {
        healthSlideReal.maxValue = 700;
        healthSlideReal.value    = health.health;

        Collider[] colliders = Physics.OverlapSphere(transform.position, radius);

        foreach (Collider near in colliders)
        {
            PlayerMovement playerMove = near.GetComponent <PlayerMovement>();
            if (playerMove != null)
            {
                playerMove.TakeDamage(10);
                playerMove.ShakeIt();
                playerMove.mouse.camAnim.SetTrigger("camShake2");
                Vector3 direction = playerMove.transform.position - transform.position;
                playerMove.AddImpact(direction, 300f);
            }
        }


        SetDestination();

        for (int i = 0; i < drones.Length; i++)
        {
            /*if (drones[0].GetComponent<BossDrone>().stopped == true && drones[1].GetComponent<BossDrone>().stopped == true)
             * {
             *  collid.enabled = true;
             *  mov.locActive = false;
             *  staggered = true;
             * }
             * }*/
            if (dronesStaggared == 0)
            {
                staggered      = true;
                collid.enabled = true;
                noiseBlock.SetActive(true);
                //mov.locActive = false;
                canRumble  = false;
                canShoot   = false;
                rumbleTime = 0;
                shootTime  = 0;
                //StartCoroutine(resetDrones());
            }
        }

        /*if (dronesStaggared > 0){
         *  SetDestination();
         * }*/

        if (health.health <= 0)
        {
            collid.enabled = false;
        }

        if (canRumble == true)
        {
            rumbleTime += Time.deltaTime;
            if (rumbleTime >= maxRumbleTime)
            {
                sendWave();
                rumbleTime = 0;
            }
        }

        if (staggered == true)
        {
            navMeshAgent.SetDestination(transform.position);
            animator.SetBool("IsHurt", true);
            staggerTime += Time.deltaTime;
            if (staggerTime >= maxStaggerTime)
            {
                staggered   = false;
                staggerTime = 0;
                //mov.locActive = true;
                collid.enabled = false;
                animator.SetBool("IsHurt", false);
                SetDestination();
                resetDrones = true;
                canShoot    = true;
                canRumble   = true;
                noiseBlock.SetActive(false);
                dronesStaggared = drones.Length;
            }
        }

        if (resetDrones == true)
        {
            StartCoroutine(reset());
        }

        if (expandDong == true)
        {
        }

        if (canShoot == true)
        {
            shootTime += Time.deltaTime;
            if (shootTime >= timeBetweenShots)
            {
                shootTime        = 0;
                timeBetweenShots = Random.Range(2, 4);
                shoot();
                StartCoroutine(shootStop());
            }
        }
    }