Пример #1
0
        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);
            }
        }
Пример #2
0
 public void TakeDamage(float damage)
 {
     CurrentHP -= damage;
     if (OnDamageTakenEvent != null)
     {
         OnDamageTakenEvent.Invoke(CurrentHP);
     }
 }
Пример #3
0
    private void ExecuteDamageTakenEvents(float damageAmount)
    {
        OnDamageTakenEvent temp = (OnDamageTakenEvent)eventTable["DamageEvent"];

        if (temp != null)
        {
            temp(damageAmount);
        }
    }
Пример #4
0
        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);
            }
        }