// Update is called once per frame //private void Update() //{ // Debug //if (_healthBar != null && Input.GetKeyDown(KeyCode.Return)) //{ // TakeDamage(10); //} //} public void TakeDamage(int damage) { // If player is already dead don't do anything (dead animation should've played already) if (_playerHealth == 0) { return; } // Damage cannot be negative if (damage < 0) { return; } // Set health _playerHealth = _playerHealth - damage < 0 ? 0 : _playerHealth - damage; _healthBar.SetHealth(_playerHealth); // Make damage visible to user by blinking the character in red DamageCharacterBlink(); // Trigger camera shake effect _cameraShake.CameraShakeEffect(); // Change character flag and trigger dead animation if player health drops down to 0 if (_playerHealth == 0) { // Set dead flag to true GetComponent <CharacterFlags>().IsDead = true; // Trigger animation if (_characterComponents.Animator != null) { _characterComponents.Animator.SetBool("PlayerDead", true); } // Play dead sound _characterComponents.CharacterAudio.Dead(); } else { // Play damage sound _characterComponents.CharacterAudio.Damage(); } }