Esempio n. 1
0
    public void TakeDamage(int damage, Thing owner)
    {
        if (dead)
        {
            return;
        }
        OnGetHit?.Invoke(owner);
        if (damage == 0 || CheckStackableBool <InvinsibleBuff>())
        {
            return;
        }
        damage = Mathf.Clamp(damage + owner.strength, 0, 10000);
        // if tmpShieldQueue
        if (shield > 0)
        {
            int dmgOnShield = Mathf.Min(shield, damage);
            shield -= dmgOnShield;
            damage -= dmgOnShield;
        }

        hp -= damage;
        if (damage > 0)
        {
            OnLoseHP?.Invoke(damage);
        }
        if (hp <= 0)
        {
            Die();
        }
    }
Esempio n. 2
0
        private void SetCollider(Transform pTransformTarget, BoxCollider pBoxCollider)
        {
            p_pTransformTarget = pTransformTarget;

            _pBoxCollider_Current         = pBoxCollider;
            _pBoxCollider_Current.enabled = p_bColliderOn;

            _eColliderType = EColliderType.BoxCollider;
            _OnGetHit      = GetHit3D_BoxCollider;
        }
Esempio n. 3
0
        private void SetCollider(Transform pTransformTarget, SphereCollider pSphereCollider)
        {
            p_pTransformTarget = pTransformTarget;

            _pSphereCollider_Current         = pSphereCollider;
            _pSphereCollider_Current.enabled = p_bColliderOn;

            _eColliderType = EColliderType.SphereCollider;
            _OnGetHit      = GetHit3D_SphereCollider;
        }
Esempio n. 4
0
        private void SetCollider(Transform pTransformTarget, CircleCollider2D pCircleCollider2D)
        {
            p_pTransformTarget = pTransformTarget;

            _pCircleCollider2D_Current         = pCircleCollider2D;
            _pCircleCollider2D_Current.enabled = p_bColliderOn;

            _eColliderType = EColliderType.CircleCollider_2D;
            _OnGetHit      = GetHit2D_CircleCollider;
        }
    private void SetCollider(Transform pTransformTarget, BoxCollider2D pBoxCollider2D)
    {
        p_pTransformTarget = pTransformTarget;

        _pBoxCollider2D_Current         = pBoxCollider2D;
        _pBoxCollider2D_Current.enabled = false;

        _eColliderType = EColliderType.BoxCollider_2D;
        _OnGetHit      = GetHit2D_BoxCollider;
    }
Esempio n. 6
0
    public void GetHit(int amount)
    {
        if (!IsDead)
        {
            _currentHealth -= amount;

            if (_currentHealth <= 0)
            {
                StartDeath();
            }

            CallHealthChange();
            OnGetHit?.Invoke();
        }
    }
Esempio n. 7
0
 public void GetHit(float damage)
 {
     OnGetHit?.Invoke(damage);
 }