Added health, respawning and Bullet spawners
This commit is contained in:
@@ -4,14 +4,16 @@ using UnityEngine;
|
||||
|
||||
public enum PatternTypes
|
||||
{
|
||||
DEFAULT
|
||||
DEFAULT,
|
||||
DOUBLE_SPINNING,
|
||||
QUADRUPLE_SPINNING,
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public class PatternMap
|
||||
{
|
||||
public PatternTypes patternType;
|
||||
public Pattern pattern;
|
||||
public GameObject pattern;
|
||||
}
|
||||
public class BulletManager : MonoBehaviour
|
||||
{
|
||||
@@ -31,8 +33,10 @@ public class BulletManager : MonoBehaviour
|
||||
|
||||
}
|
||||
|
||||
public Pattern SpawnPattern(PatternTypes pattern)
|
||||
public void SpawnPattern(PatternTypes pattern, Enemy enemy)
|
||||
{
|
||||
return null;
|
||||
GameObject patternObject = Instantiate(PatternMap.Find(x => x.patternType == pattern).pattern, enemy.transform.position, Quaternion.identity);
|
||||
Pattern patternScript = patternObject.GetComponent<Pattern>();
|
||||
patternScript.enemy = enemy;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
public class GameManager : MonoBehaviour
|
||||
{
|
||||
@@ -21,7 +22,7 @@ public class GameManager : MonoBehaviour
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
|
||||
player = GameObject.FindGameObjectWithTag("Player").GetComponent<Player>();
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
@@ -49,4 +50,11 @@ public class GameManager : MonoBehaviour
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void RestartGame()
|
||||
{
|
||||
//get active scene and reload it
|
||||
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,8 +5,9 @@ using UnityEngine;
|
||||
public class Pattern : MonoBehaviour
|
||||
{
|
||||
public string name = "Default Pattern";
|
||||
public ParticleSystem particleSystem;
|
||||
private Enemy enemy;
|
||||
public float duration;
|
||||
public bool notified = false;
|
||||
public Enemy enemy;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
@@ -15,14 +16,47 @@ public class Pattern : MonoBehaviour
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
private void Update()
|
||||
{
|
||||
|
||||
OnPatternUpdate();
|
||||
duration -= Time.deltaTime;
|
||||
if (duration <= 0)
|
||||
{
|
||||
//find all particle systems in children and stop them
|
||||
foreach (ParticleSystem ps in GetComponentsInChildren<ParticleSystem>())
|
||||
{
|
||||
ps.Stop();
|
||||
}
|
||||
|
||||
//find all particle systems in children and sum their particle counts
|
||||
int totalParticles = 0;
|
||||
foreach (ParticleSystem ps in GetComponentsInChildren<ParticleSystem>())
|
||||
{
|
||||
totalParticles += ps.particleCount;
|
||||
}
|
||||
|
||||
if (totalParticles == 0)
|
||||
{
|
||||
Destroy(gameObject);
|
||||
return;
|
||||
}
|
||||
|
||||
if (enemy && !notified)
|
||||
{
|
||||
enemy.OnPatternFinished();
|
||||
notified = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void OnPatternUpdate()
|
||||
{
|
||||
//override this
|
||||
}
|
||||
|
||||
public void StartPattern(Enemy enemy)
|
||||
{
|
||||
//Start pattern
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,19 +1,33 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using TMPro;
|
||||
|
||||
public class UIManager : MonoBehaviour
|
||||
{
|
||||
public TextMeshProUGUI playerHealthLabel;
|
||||
public TextMeshProUGUI gameOverLabel;
|
||||
public Button restartButton;
|
||||
private GameManager gameManager;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
|
||||
gameManager = FindObjectOfType<GameManager>();
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
//round player health
|
||||
playerHealthLabel.text = "Health: " + Mathf.Round(gameManager.player.health).ToString();
|
||||
|
||||
if (gameManager.player.health <= 0)
|
||||
{
|
||||
gameOverLabel.gameObject.SetActive(true);
|
||||
restartButton.gameObject.SetActive(true);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user