-
Notifications
You must be signed in to change notification settings - Fork 0
/
GameManager.cs
142 lines (113 loc) · 3.57 KB
/
GameManager.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
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class GameManager : MonoBehaviour
{
public TextMeshProUGUI rockCount;
private int rocksLeft;
private GameObject trafficLight;
// public TextMeshProUGUI throwForceBar;
// private int throwForceValue;
private PlayerController playerScript;
[SerializeField] GameObject brokenLight;
[SerializeField] ParticleSystem explosionParticle;
private AudioSource playerAudio;
public AudioClip glassShattering;
public AudioClip manBirdSquawk;
public TextMeshProUGUI gameOverText;
public Button restartButton;
public TextMeshProUGUI victoryText;
public Button nextLevel;
public bool isGameActive;
public int currentSceneIndex;
public int lastSceneIndex = 11;
public Button learnMore;
public bool GameIsOver;
public Scene scene;
private PlayerController playerController;
private Animator playerAnim;
private Animator policeAnim;
void Start()
{
isGameActive = true;
WhichBuildIndex();
currentSceneIndex = scene.buildIndex;
IsGameComplete();
rocksLeft = 3;
UpdateRockCount(0);
playerAudio = GetComponent<AudioSource>();
// playerAnim = GameObject.Find("Player").GetComponent<Animator>();
playerController = GameObject.Find("Player").GetComponent<PlayerController>();
policeAnim = GameObject.Find("PoliceOfficer").GetComponent<Animator>();
}
// Update is called once per frame
void Update()
{
if (rocksLeft < 0)
{
GameOver();
}
}
public void UpdateRockCount(int rockToSubtract)
{
rocksLeft = rocksLeft - rockToSubtract;
rockCount.text = "Rocks: " + rocksLeft;
}
public void PlayGlassAudio()
{
playerAudio.PlayOneShot(glassShattering, 0.1f);
}
public void PlayBirdNoise()
{
playerAudio.PlayOneShot(manBirdSquawk, 0.1f);
}
public void GameOver()
{
gameOverText.gameObject.SetActive(true);
restartButton.gameObject.SetActive(true);
isGameActive = false;
playerAudio.Stop();
}
public void RestartGame()
{
SceneManager.LoadScene("Scene1", LoadSceneMode.Single);
}
public void LevelVictory()
{
victoryText.gameObject.SetActive(true);
nextLevel.gameObject.SetActive(true);
}
public void NextLevel()
{
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
}
public int WhichBuildIndex()
{
scene = SceneManager.GetActiveScene();
Debug.Log("Active Scene name is: " + scene.name + "\nActive Scene index: " + scene.buildIndex);
return scene.buildIndex;
}
public void IsGameComplete()
{
if (currentSceneIndex < lastSceneIndex)
{
GameIsOver = false;
Debug.Log("GameIsNotOver");
}
else
{
Debug.Log("GameIsOver");
isGameActive = false;
GameIsOver = true;
//playerAnim.SetBool("GameIsOver", true);
// playerAnim.SetTrigger("DanceParty");
playerController.DanceParty();
policeAnim.SetFloat("Speed_f", 0.0f);
//policeAnim.SetBool("GameIsOver", true);
policeAnim.SetTrigger("DanceParty");
}
}
}