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); } } } }
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); } }
// 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()); } } }