Added health, respawning and Bullet spawners

This commit is contained in:
2022-04-18 00:32:24 +02:00
parent 1bd6d79672
commit 209470d610
227 changed files with 53417 additions and 40 deletions

View File

@@ -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;
}
}

View File

@@ -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);
}
}

View File

@@ -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
}
}

View File

@@ -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);
}
}
}