private void ProcessHit(DamageDealer damageDealer) { if (damageDealer.GetAlliance() != alliance) { currentHealth -= damageDealer.GetDamage(); damageDealer.Hit(); if (currentHealth <= 0f) { PlayerInput player = GetComponent <PlayerInput>(); if (player != null) { Destroy(gameObject); FindObjectOfType <GameSession>().PlayerDies(); FindObjectOfType <AudioPlayer>().PlaySoundEffect(deathSound); //TODO: add delay } else { FindObjectOfType <GameSession>().IncreaseScore(scoreValue); //TODO: destruction animations Asteroid asteroid = GetComponent <Asteroid>(); if (asteroid != null) { asteroid.Shatter(); } Destroy(gameObject); } } } }