using UnityEngine; using UnityEngine.Events; public class Damagable : MonoBehaviour { public float multiplier = 1f; private PlayerDeath playerDeath; public UnityEvent outOfLiveEvent; public UnityEvent damageEvent; public float health = 100f; private float currentHealth; private bool dead; private Rigidbody rig; private void Start() { rig = GetComponent(); currentHealth = health; playerDeath = base.transform.root.GetComponent(); } private void Update() { } public void TakeDamage(Vector3 damage, Vector3 hitPoint) { damage *= multiplier; if ((bool)playerDeath) { playerDeath.TakeDamage(damage, hitPoint, rig); return; } damageEvent.Invoke(); currentHealth -= damage.magnitude; if (currentHealth < 0f && !dead) { dead = true; outOfLiveEvent.Invoke(); } } public void RefillHP() { currentHealth = health; } }