public void OnDamaged(float damage, int ID) { if (ragdollControl.shotByBullet || Dead || IsInvincible) { return; } if (IsAxe) { damage /= 2; } float oldH = Health; Health -= damage; Health = Mathf.Max(0, Health); if (ID != playerIdentity.PlayerID) { BattleData.AddDamage(ID, damage); LastDamagedID = ID; } OnHealthChanged?.Invoke(this, oldH, Health); if (Health <= 0) { if (Dead) { return; } audioSource.PlayOneShot(deathSound, 0.5f); StartCoroutine(Respawn(2)); OnDeath?.Invoke(this); Dead = true; } else if (damage > 1) { int r = Random.Range(0, hurtSound.Length); audioSource.PlayOneShot(hurtSound[r], 1f); } else if (damage < 1) { if (!audioSource.isPlaying) { int r = Random.Range(0, hurtSound.Length); audioSource.clip = hurtSound[r]; audioSource.Play(); } } }