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(); } }
private void SetCollider(Transform pTransformTarget, BoxCollider pBoxCollider) { p_pTransformTarget = pTransformTarget; _pBoxCollider_Current = pBoxCollider; _pBoxCollider_Current.enabled = p_bColliderOn; _eColliderType = EColliderType.BoxCollider; _OnGetHit = GetHit3D_BoxCollider; }
private void SetCollider(Transform pTransformTarget, SphereCollider pSphereCollider) { p_pTransformTarget = pTransformTarget; _pSphereCollider_Current = pSphereCollider; _pSphereCollider_Current.enabled = p_bColliderOn; _eColliderType = EColliderType.SphereCollider; _OnGetHit = GetHit3D_SphereCollider; }
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; }
public void GetHit(int amount) { if (!IsDead) { _currentHealth -= amount; if (_currentHealth <= 0) { StartDeath(); } CallHealthChange(); OnGetHit?.Invoke(); } }
public void GetHit(float damage) { OnGetHit?.Invoke(damage); }