-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHealth.cs
41 lines (33 loc) · 931 Bytes
/
Health.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using UnityEngine;
using UnityEngine.Events;
public class Health : MonoBehaviour
{
[SerializeField]
private int currentHealth, maxHealth;
public UnityEvent<GameObject> OnHitWithReference, OnDeathWithReference;
[SerializeField]
private bool isDead = false;
public void InitializeHealth(int healthValue)
{
currentHealth = healthValue;
maxHealth = healthValue;
isDead = false;
}
public void GetHit(int amount, GameObject sender)
{
if (isDead)
return;
if (sender.layer == gameObject.layer)
return;
currentHealth -= amount;
if (currentHealth > 0)
{
OnHitWithReference?.Invoke(sender);
}
else {
OnDeathWithReference?.Invoke(sender);
isDead = true;
Destroy(gameObject);
}
}
}