private void TakeDamage(float amount) { if (amount == 0) { return; } currentHealth -= amount; currentHealth = Mathf.Clamp(currentHealth, 0, MaxHealth); if (currentHealth <= 0) { IsGameover = true; } OnPlayerHealthChanged(new PlayerHealthChangedEventArgs(this, currentHealth + amount, currentHealth)); if (amount < 0) { return; } CameraShakeAgent.Create(Camera.main, 0.1f, 0.1f); spriteRenderer.color = HurtColourTint; lastTakeDamageTime = Time.time; }
public void Shock(float duration, float cameraShakeAmount = 0.5f, float cameraShakeDegradationFactor = 1) { Freeze(duration); CameraController.Instance.Freeze(duration); CameraShakeAgent.Create(duration, cameraShakeAmount, cameraShakeDegradationFactor); }