using System.Collections; using System.Collections.Generic; using UnityEngine; public class BossScript : MonoBehaviour, IUpdatable { // Start is called before the first frame update [SerializeField] List<HealthSystem> roomEnemies; [SerializeField] List<ParticleSystem> particles; bool dead = false; float timer= 0f; [SerializeField] float timeBeforeGoingToScene; [SerializeField] int winingScene; [SerializeField] private GameObject canvas; SceneMan s; bool canvasOn = false; SoundsManager soundManager; AudioSource audioSource; private void Start() { audioSource = GetComponent<AudioSource>(); GameObject t = GameObject.Find("AudioManager"); if(t) soundManager = t.GetComponent<SoundsManager>(); s = GameObject.Find("SceneManager").GetComponent<SceneMan>(); } public void OnDeath() { if (soundManager) soundManager.PlaySoundEffect("Explosion", audioSource); canvas.SetActive(false); dead = true; foreach (HealthSystem e in roomEnemies) { e.Die(); } foreach(ParticleSystem p in particles) { p.Play(); } timer = timeBeforeGoingToScene; } public void Updating() { if (!canvasOn) { if(canvas) canvas.SetActive(true); canvasOn = true; } if (dead) { timer -= Time.deltaTime; if(timer <= 0) { s.ChangeScene(winingScene); } } } }