private void OnTriggerEnter2D(Collider2D collision) { Debug.Log("Bullet collided with: " + collision.gameObject.name); // Check for enemy EnemyHealth eh = collision.gameObject.GetComponent <EnemyHealth>(); if (eh && eh.Active) { eh.DealDamage(damage); Destroy(this.gameObject); } else { // Check for room Room r = collision.GetComponent <Room>(); if (r) { if (_managerRoom) { if (r != _managerRoom) { Destroy(this.gameObject); } } else { _managerRoom = r; } } } }
void OnCollisionEnter2D(Collision2D col) { EnemyHealth enemyHealth = col.gameObject.GetComponent <EnemyHealth>(); if (enemyHealth != null) { enemyHealth.DealDamage(attackDamage); } Instantiate(explosionPrefab, transform.position, Quaternion.identity); Destroy(this.gameObject); }
private void OnCollisionEnter(Collision collision) { var go = collision.gameObject; if (_onSkill && go.CompareTag("Enemy")) { EnemyHealth eh = go.GetComponent <EnemyHealth>(); KnockbackHandler kbh = go.GetComponent <KnockbackHandler>(); kbh.HandleKnockBack(transform.position, _knockbackForce); eh.DealDamage(damage); if (_stopPlayerOnEnemyCollision) { playerRb.velocity = Vector3.zero; } } }
void OnTriggerEnter2D(Collider2D other) { if (other.tag == "Enemy") { EnemyHealth _eh = other.gameObject.GetComponent <EnemyHealth> (); _eh.DealDamage(Damage); if (DiesOnTouch) { AllowToMove = false; if (_anim != null) { mov.Stop(); } mov.Kill(); } } }
public override void Fire() { if (isReadyToFire) { if (!weaponItem.isRangedWeapon) { RaycastHit hit; if (weaponAnchor != null) { Debug.DrawRay(weaponAnchor.transform.position, weaponAnchor.transform.TransformDirection(Vector3.forward) * weaponItem.weaponRange, Color.yellow); if (Physics.Raycast(weaponAnchor.transform.position, weaponAnchor.transform.TransformDirection(Vector3.forward), out hit, weaponItem.weaponRange)) { //Debug.Log("Hit succesful, hit: " + hit.transform.gameObject.name); EnemyHealth hitHealth = hit.transform.gameObject.GetComponent <EnemyHealth>(); if (hitHealth != null) { hitHealth.DealDamage(weaponItem.weaponDamage); Debug.Log("Dealing damage to enemy"); } } } } else { GameObject projectile = Instantiate(weaponItem.projectileObject, weaponAnchor.transform.position, Quaternion.identity); projectile.GetComponent <Rigidbody>().AddForce(transform.forward * weaponItem.projectileSpawnSpeed); BulletCollision bc = projectile.GetComponent <BulletCollision>(); if (bc != null) { bc.damage = weaponItem.weaponDamage; bc.isPlayer = true; } else { GrenadeTimer gt = projectile.GetComponent <GrenadeTimer>(); gt.damage = weaponItem.weaponDamage; } } } base.Fire(); }
private void OnCollisionEnter2D(Collision2D other) { //collision whit enemy if (((1 << other.gameObject.layer) & enemyLayer) != 0) { if (other.transform.position.y + collisionTolorance < rb2d.position.y) { EnemyHealth eh = other.gameObject.GetComponent <EnemyHealth>(); eh.DealDamage(1); addScore(eh.deathScore); Vector2 forceDir = Vector2.Reflect(rb2d.velocity.normalized, Vector2.up); rb2d.velocity = Vector2.zero; rb2d.AddForce(forceDir * collisionForce, ForceMode2D.Impulse); return; } PlayerHit(); } }
void Update() { Vector2 playerPosition = transform.position; Vector2 direction = playerMovement.LookDirection; Vector2 attackPosition = playerPosition + (direction * attackBornPosition); Vector3 attackPositionVector3 = attackPosition; if (Input.GetKeyDown(KeyCode.Space)) { if (hasAttack == false) { direction.Normalize(); Instantiate(attackPrefab, attackPosition, Quaternion.Euler(0f, 0f, Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg)); Collider2D[] enemiesToDamage = Physics2D.OverlapCircleAll(attackPosition, attackRange, whatIsEnemies); for (int i = 0; i < enemiesToDamage.Length; i++) { EnemyHealth enemyHealth = enemiesToDamage[i].GetComponent <EnemyHealth>(); if (enemyHealth) { enemyHealth.DealDamage(damage); } EarthBossHealth bossHealth = enemiesToDamage[i].GetComponent <EarthBossHealth>(); if (bossHealth) { bossHealth.DealDamage(damage); } } Collider2D[] bossesToDamage = Physics2D.OverlapCircleAll(attackPosition, attackRange, whatIsBoss); for (int i = 0; i < bossesToDamage.Length; i++) { bossesToDamage[i].GetComponent <EarthBossHealth>().DealDamage(damage); } StartCoroutine(AttackCooldown()); } } }