private void OnCollisionEnter(Collision collision) { if (collision.gameObject.layer == LayerMask.NameToLayer("Player")) { // Damage player - caused by enemy shooting Player.GetInstanceHealth()?.Damage(damage); Score.IncreaseScore(ScoreValues.playerShot); } else if (collision.gameObject.layer == LayerMask.NameToLayer("Enemy")) { Armour armour = collision.gameObject.GetComponent <Armour>(); if (armour != null && armour.IsActive()) { // Damage armour - caused by player shooting armour?.Damage(damage); Score.IncreaseScore(ScoreValues.armouredEnemyShot); } else if (collision.gameObject.CompareTag("Head")) { EnemyHead enemyHead = collision.gameObject.GetComponent <EnemyHead>(); // Kill enemy with 1 shot enemyHead?.KillEnemy(); Score.IncreaseScore(ScoreValues.enemyHeadshot); } else if (collision.gameObject.CompareTag("HeadBoss")) { BossHead enemyHead = collision.gameObject.GetComponent <BossHead>(); // Damage enemy - caused by player shooting enemyHead?.DamageHead(damage); Score.IncreaseScore(ScoreValues.enemyHeadshot); } else { IEnemyController enemyController = collision.gameObject.GetComponent <IEnemyController>(); // Damage enemy - caused by player shooting enemyController?.DamageEnemy(damage); Score.IncreaseScore(ScoreValues.enemyShot); } } else if (collision.gameObject.layer == LayerMask.NameToLayer("Cover")) { Health coverHealth = collision.gameObject.GetComponent <Health>(); // Damage cover - caused by enemy shooting coverHealth?.Damage(damage); } // Destroy Bullet Destroy(gameObject); }
public void registerHead(GameObject part) { if (myHead == null) { myHead = part; myHeadScript = myHead.GetComponent <BossHead>(); } }