using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; [System.Serializable] public class OnHardMoveIn : UnityEvent { } [System.Serializable] public class OnHardMoveOut : UnityEvent { } [System.Serializable] public class OnWind : UnityEvent { } public class CanvasManager : MonoBehaviour{ [HideInInspector] public OnWind onWind; [HideInInspector] public OnHardMoveIn onHardMoveIn; [HideInInspector] public OnHardMoveOut onHardMoveOut; [SerializeField] GameObject prefab; [SerializeField] int turnsToWind = 5; int currentOne; [HideInInspector] public bool stopped; [HideInInspector] public bool dead; [SerializeField] RythmBarController[] initialRythmBars; [System.Serializable] public enum CanvasDifficulty {Easy, Hard} public CanvasDifficulty difficulty; void Start(){ if(SceneLoader.instance.difficultySelected == SceneLoader.DifficultySelected.Easy){ difficulty = CanvasDifficulty.Easy; }else{ difficulty = CanvasDifficulty.Hard; } FindObjectOfType().SetDifficulty(); foreach(RythmBarController r in initialRythmBars){ r.SetDifficulty(); } } void Update(){ if(dead && !stopped){ stopped = true; } } public GameObject SpawnFromPool(Vector3 position, Quaternion rotation){ GameObject objectToSpawn = Instantiate(prefab, position, rotation, transform); if(difficulty == CanvasDifficulty.Easy){ objectToSpawn.GetComponent().difficulty = RythmBarController.Difficulty.Easy; } if (difficulty == CanvasDifficulty.Hard){ objectToSpawn.GetComponent().difficulty = RythmBarController.Difficulty.Hard; } if(currentOne == 0){ objectToSpawn.GetComponent().IsWind(); currentOne = turnsToWind - 1; }else{ objectToSpawn.GetComponent().IsNotWind(); currentOne--; } return objectToSpawn; } public void WindStart(){ if (!dead){ stopped = true; } } public void WindStop(){ if (!dead){ stopped = false; } } }