public void LoseHitPoints(int value) { if (!_isHurt && !(_currentState is RollState)) { _isHurt = true; WarningText.enabled = true; _timer = 2; if (_hitPoints - value < 0) { _hitPoints = 0; } else { _hitPoints -= value; } OnDamageTakenEvent?.Invoke(); if (_hitPoints <= 0) { StartCoroutine(GameOver()); } UpdateHealthBarHUD?.Invoke(_hitPoints); } }
public void TakeDamage(float damage) { CurrentHP -= damage; if (OnDamageTakenEvent != null) { OnDamageTakenEvent.Invoke(CurrentHP); } }
private void ExecuteDamageTakenEvents(float damageAmount) { OnDamageTakenEvent temp = (OnDamageTakenEvent)eventTable["DamageEvent"]; if (temp != null) { temp(damageAmount); } }
public void TakeDamage(float damage) { if (Health <= 0) { return; } if (mobileBehaviour.ShieldBehaviour != null && mobileBehaviour.Mobile.IsDefending) { if (mobileBehaviour.ShieldBehaviour.TryParry(damage)) { return; } } Health -= damage; if (UnityEngine.Random.value > 0.5) { StartCoroutine(CreateBloodStainsAfterSeconds(0.5f)); } if (OnDamageTakenEvent != null) { OnDamageTakenEvent.Invoke(damage, Health, MaxHealth); } if (FloatingDamagesPrefab != null) { PopUpFloatingDamages(damage); } if (Health <= 0 && OnHealthBelowZeroEvent != null) { OnHealthBelowZeroEvent.Invoke(mobileBehaviour); } }