fgm24/Assets/Scripts/Managers/GameManager.cs

76 lines
2.1 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.SceneManagement;
public class GameManager : MonoBehaviour
{
public static GameManager Instance { get; private set; }
public List<GameObject> Players = new List<GameObject>();
public static Action<GameObject[]> OnPlayersReady;
void Awake()
{
if (Instance != null)
{
Destroy(Instance);
}
Instance = this;
StartCoroutine(WaitForPlayers());
}
private IEnumerator WaitForPlayers()
{
yield return new WaitUntil(()=>Players.Count == 2);
OnPlayersReady?.Invoke(Players.ToArray());
}
//public void playerDied(GameObject who)
//{
// Debug.Log($"{who.name} died");
// if (Revives == 0)
// {
// AudioManager.Instance.StopAllAudio();
// AudioManager.PlaySound("Game_Over_Jingle", Vector3.zero);
// SceneManager.LoadScene(3);
// }
// else
// {
// Revives--;
// ReviveText.text = Revives + "x";
// Collider2D[] d = Physics2D.OverlapCircleAll(who.transform.position, 3f);
// Debug.Log(d);
// foreach (Collider2D c in d)
// {
// if (c.gameObject.CompareTag("Enemy"))
// {
// c.gameObject.GetComponent<HealthComponent>().TakeDamage(69420);
// }
// }
// var g = who.GetComponent<HealthComponent>();
// // heal
// g.setMaxHealth(g.getMaxHealth(), true);
// g.resetKillFlag();
// // REVIVE SOUND HERE
// AudioManager.PlaySound("Revive_SFX", who.transform.position);
// RumbleManager.StartRumble(0, 0.3f, 0.1f, 3f);
// RumbleManager.StartRumble(1, 0.3f, 0.1f, 3f);
// GameObject go = Instantiate(ReviveParticleSystem, who.transform.position, Quaternion.identity);
// ParticleSystem ps = go.GetComponent<ParticleSystem>();
// ps.Play();
// go.AddComponent<DestroyAfter>().Init(5f);
// }
//}
}