void OnTriggerEnter(Collider other) { if (collided) { return; } if (other.gameObject.layer == enemyLayer && other.tag == "Enemy") { //deal damage to the enemy CellScript script = other.GetComponent <CellScript>(); if (script.infected) { script.TakeDamage(initialDamage); } collided = true; colliders[0].enabled = !colliders[0].enabled; colliders[1].enabled = !colliders[1].enabled; explosionMesh[0].enabled = false; Instantiate(explosionParticles, transform.position, Quaternion.Euler(90, 0, 0)); } if (other.gameObject.layer == enemyLayer && other.tag == "Boss") { //deal damage to the enemy BossScript script = other.GetComponent <BossScript>(); script.TakeDamage(initialDamage); collided = true; colliders[0].enabled = !colliders[0].enabled; colliders[1].enabled = !colliders[1].enabled; explosionMesh[0].enabled = false; Instantiate(explosionParticles, transform.position, Quaternion.Euler(90, 0, 0)); } if (other.gameObject.layer != enemyLayer && other.gameObject.layer != shieldLayer) { collided = true; colliders[0].enabled = !colliders[0].enabled; colliders[1].enabled = !colliders[1].enabled; explosionMesh[0].enabled = false; Instantiate(explosionParticles, transform.position, Quaternion.Euler(90, 0, 0)); } }
IEnumerator Shoot() { cooldown = maxCooldown; heat -= shootHeat; heatSlider.value = heat; //shooting logic RaycastHit2D hitInfo = Physics2D.Raycast(firepoint.position, firepoint.up); if (hitInfo && hitInfo.distance <= 4.2f) { EnemyScript enemy = hitInfo.transform.GetComponent <EnemyScript>(); EnemyBombScript enemyBomb = hitInfo.transform.GetComponent <EnemyBombScript>(); BossScript boss = hitInfo.transform.GetComponent <BossScript>(); HumanBombScript humanBomb = hitInfo.transform.GetComponent <HumanBombScript>(); if (enemy != null) { enemy.TakeDamage(damage); } else if (enemyBomb != null) { enemyBomb.Die(); } else if (humanBomb != null) { humanBomb.Die(); } else if (boss != null) { if (hitInfo.collider.name != "Shield") { boss.TakeDamage(damage); } } Instantiate(impactEffect, hitInfo.point, Quaternion.identity); lineRenderer.SetPosition(0, firepoint.position); lineRenderer.SetPosition(1, hitInfo.point); } else { lineRenderer.SetPosition(0, firepoint.position); lineRenderer.SetPosition(1, firepoint.position + firepoint.up * 4.2f); } lineRenderer.enabled = true; yield return(new WaitForSeconds(0.02f)); lineRenderer.enabled = false; }
private void OnTriggerEnter2D(Collider2D collision) { BossScript boss = collision.GetComponent <BossScript>(); EnemyDamage enemy = collision.GetComponent <EnemyDamage>(); if (enemy != null) { enemy.TakeDamage(damage); } else if (boss != null) { boss.TakeDamage(damage); } Instantiate(effect, transform.position, Quaternion.identity); Destroy(gameObject); }
private IEnumerator meleeAttack() { sideAnimator.SetTrigger("Attack"); yield return(new WaitForSeconds(0.75f)); foreach (EnemyScript enemy in meleeWeaponHitList) { enemy.TakeDamage(10); } if (boss) { boss.TakeDamage(10); } yield return(new WaitForSeconds(0.75f)); canAttack = true; PlayerMovementController.PMC.canMove = true; }
private void OnTriggerEnter2D(Collider2D hitInfo) { KnightScript knight = hitInfo.GetComponent <KnightScript>(); TinajaVaciaScript tinajaVacia = hitInfo.GetComponent <TinajaVaciaScript>(); TinajaLlaveScript tinajaLlave = hitInfo.GetComponent <TinajaLlaveScript>(); TinajaMonedaScript tinajaMoneda = hitInfo.GetComponent <TinajaMonedaScript>(); CoinController moneda = hitInfo.GetComponent <CoinController>(); BossScript boss = hitInfo.GetComponent <BossScript>(); Debug.Log("HIT INFO" + hitInfo.name); if (knight != null) { knight.TakeDamage(damage); Destroy(gameObject, 0f); } else if (tinajaVacia != null) { tinajaVacia.TakeDamage(damage); Destroy(gameObject, 0f); } else if (tinajaLlave != null) { tinajaLlave.TakeDamage(damage); Destroy(gameObject, 0f); } else if (tinajaMoneda != null) { tinajaMoneda.TakeDamage(damage); Destroy(gameObject, 0f); } else if (boss != null) { boss.TakeDamage(damage); Destroy(gameObject, 0f); } else { } }
void OnTriggerStay(Collider other) { if (!collided) { return; } if (other.gameObject.layer == enemyLayer && other.tag == "Enemy") { //deal damage to the enemy CellScript script = other.GetComponent <CellScript>(); if (script.infected) { script.TakeDamage(explosionDamage * Time.deltaTime); } } if (other.gameObject.layer == enemyLayer && other.tag == "Boss") { //deal damage to the enemy BossScript script = other.GetComponent <BossScript>(); script.TakeDamage(explosionDamage * Time.deltaTime); } }
private void OnTriggerEnter(Collider HitScan) { EnemyScript enemy = HitScan.GetComponent <EnemyScript>(); if (enemy != null) { enemy.TakeDamage(1); Destroy(gameObject); } BossScript Boss = HitScan.GetComponent <BossScript>(); if (Boss != null) { Boss.TakeDamage(1); Destroy(gameObject); } EarthScript Wall = HitScan.GetComponent <EarthScript>(); if (Wall != null) { Destroy(gameObject); } }
void UpdateLazer() { var mousePos = (Vector2)cam.ScreenToWorldPoint(Input.mousePosition); lineRenderer.SetPosition(0, (Vector2)firePoint.position); startVFX.transform.position = (Vector2)firePoint.position; lineRenderer.SetPosition(1, mousePos); Vector2 direction = mousePos - (Vector2)transform.position; RaycastHit2D hit = Physics2D.Raycast((Vector2)transform.position, direction.normalized, direction.magnitude); if (hit) { lineRenderer.SetPosition(1, hit.point); if (hit.collider.gameObject.tag == "Boss1") { BossScript bossScript = hit.collider.GetComponent <BossScript>(); bossScript.TakeDamage(0.25f); } } endVFX.transform.position = lineRenderer.GetPosition(1); }
void OnTriggerEnter(Collider other) { if (!alive) { return; } if (!isEnemyBullet && other.gameObject.layer == enemyLayer && other.tag == "Enemy") { GameObject.Instantiate(particles, transform.position, transform.localRotation); //deal damage to the enemy CellScript script = other.GetComponent <CellScript>(); if (script.infected) { script.SetVelocityDelta(transform.forward * 100); script.TakeDamage(damage); } alive = false; } if (!isEnemyBullet && other.gameObject.layer == enemyLayer && other.tag == "Boss") { GameObject.Instantiate(particles, transform.position, transform.localRotation); //deal damage to the enemy BossScript script = other.GetComponent <BossScript>(); script.TakeDamage(damage); alive = false; } if (isEnemyBullet && other.gameObject.layer == playerLayer) { GameObject.Instantiate(particles, transform.position, transform.localRotation); PlayerScript script = other.GetComponent <PlayerScript>(); script.TakeDamage(damage); alive = false; } if (isEnemyBullet && other.gameObject.layer == shieldLayer) { GameObject.Instantiate(particles, transform.position, transform.localRotation); SetAsFriendlyBullet(); Vector3 delta = other.transform.position - transform.position; delta.Normalize(); transform.forward -= 2 * delta; transform.forward.Normalize(); lifeTime = 1.5f; alive = true; } if (other.tag == "Bouncy") { GameObject.Instantiate(particles, transform.position, transform.localRotation); Vector3 delta = other.transform.position - transform.position; delta.Normalize(); transform.forward -= 2 * delta; transform.forward.Normalize(); lifeTime = 1.5f; alive = true; } if (!isEnemyBullet && other.gameObject.layer != enemyLayer && other.gameObject.layer != shieldLayer) { alive = false; } }