-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathCharacterLife.cs
More file actions
66 lines (56 loc) · 1.38 KB
/
Copy pathCharacterLife.cs
File metadata and controls
66 lines (56 loc) · 1.38 KB
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CharacterLife : MonoBehaviour {
public int health;
public GameObject explosion;
public Color damageColor;
public int scorePoints;
public GameObject[] dropItems;
[HideInInspector]
public bool isDead = false;
private SpriteRenderer sprite;
// Use this for initialization
void Start () {
sprite = GetComponent<SpriteRenderer>();
}
public void TakeDamage(int damage)
{
if (!isDead)
{
health -= damage;
if(health <= 0)
{
isDead = true;
if(explosion != null)
Instantiate(explosion, transform.position, transform.rotation);
if(this.GetComponent<Player>() != null)
{
GetComponent<Player>().Respawn();
}
else
{
chanceToDroptItem++;
int random = Random.Range(0, 100);
if(random < chanceToDroptItem && dropItems.Length > 0)
{
Instantiate(dropItems[Random.Range(0, dropItems.Length)], transform.position, Quaternion.identity);
chanceToDroptItem = 0;
}
LevelController.levelController.SetScore(scorePoints);
Destroy(gameObject);
}
}
else
{
StartCoroutine(TakingDamage());
}
}
}
IEnumerator TakingDamage()
{
sprite.color = damageColor;
yield return new WaitForSeconds(0.1f);
sprite.color = Color.white;
}
}