using System; using System.Collections.Generic; using System.Linq; using SHADE; using SHADE_Scripting.Audio; public class CutsceneEnd : Script { public uint nextScene; public float duration = 3.0f; public float skipDuration = 0.1f; private float oldDuration = 0.0f; private Renderable pic4aRenderable; private Renderable pic4bRenderable; private Renderable pic4cRenderable; private Renderable pic5aRenderable; private Renderable pic5bRenderable; private Transform pic4aTran; private Transform pic4bTran; private Transform pic4cTran; private Transform pic5aTran; private Transform pic5bTran; private float alphaIn = 0.0f; private float time = 0.0f; private bool showPic4a = true; private bool showPic4b = false; private bool showPic4c = false; private bool showPic5a = true; private bool showPic5b = false; private bool skip = false; public GameObject cutscene4Points; private List listOfCutscene4Points; public GameObject cutscene4Pics; private List listOfCutscene4Pics; public GameObject cutscene5Points; private List listOfCutscene5Points; public GameObject cutscene5Pics; private List listOfCutscene5Pics; private TextRenderable text4; private TextRenderable text5; public GameObject canvas4; public GameObject canvas5; private bool cutscene4Done = false; private bool cutscene5Done = false; protected override void awake() { initCutscene4(); initCutscene5(); AudioHandler.audioClipHandlers["cutsceneBGM"] = Audio.CreateAudioClip("event:/Cinematics/BGM"); AudioHandler.audioClipHandlers["cutscenePanelSlide"] = Audio.CreateAudioClip("event:/Cinematics/panel_slide"); //Cutscene 4 Audio AudioHandler.audioClipHandlers["cutscene4Run"] = Audio.CreateAudioClip("event:/Cinematics/4/1_run"); //Cutscene 5 Audio AudioHandler.audioClipHandlers["cutscene5Yay"] = Audio.CreateAudioClip("event:/Cinematics/5/2_yay"); AudioHandler.audioClipHandlers["cutsceneBGM"].Play(); } protected override void update() { Canvas4(); Canvas5(); if (Input.GetKeyUp(Input.KeyCode.Space) && !skip && (!cutscene4Done || !cutscene5Done)) { skip = true; oldDuration = duration; duration = skipDuration; AudioHandler.audioClipHandlers["cutscenePanelSlide"].Stop(true); AudioHandler.audioClipHandlers["cutscene4Run"].Stop(true); AudioHandler.audioClipHandlers["cutscene5Yay"].Stop(true); } if (Input.GetKeyUp(Input.KeyCode.Space) && cutscene4Done && canvas4.IsActiveSelf) { canvas4.SetActive(false); canvas5.SetActive(true); duration = oldDuration; skip = false; } if (Input.GetKeyUp(Input.KeyCode.Space) && cutscene5Done && canvas5.IsActiveSelf) { SceneManager.ChangeScene(nextScene); } } private void Canvas4() { if (canvas4.IsActiveSelf) { if(time == 0 && !skip) { AudioHandler.audioClipHandlers["cutscenePanelSlide"].Play(); AudioHandler.audioClipHandlers["cutscene4Run"].Play(); } if (showPic4a) { if (time < duration) { pic4aTran.LocalPosition = Vector3.Lerp(pic4aTran.LocalPosition, listOfCutscene4Points[0].LocalPosition, time / duration); alphaIn = SHADE.Math.Lerp(0.0f, 1.0f, time / duration); time += Time.DeltaTimeF; } else { pic4aTran.LocalPosition = listOfCutscene4Points[0].LocalPosition; alphaIn = 1.0f; } pic4aRenderable.Material.SetProperty("data.alpha", alphaIn); if (alphaIn >= 1.0f) { showPic4a = false; showPic4b = true; time = 0; alphaIn = 0; } } if (showPic4b) { if (time == 0 && !skip) { AudioHandler.audioClipHandlers["cutscenePanelSlide"].Play(); } if (time < duration) { pic4bTran.LocalPosition = Vector3.Lerp(pic4bTran.LocalPosition, listOfCutscene4Points[1].LocalPosition, time / duration); alphaIn = SHADE.Math.Lerp(0.0f, 1.0f, time / duration); time += Time.DeltaTimeF; } else { pic4bTran.LocalPosition = listOfCutscene4Points[1].LocalPosition; alphaIn = 1.0f; } pic4bRenderable.Material.SetProperty("data.alpha", alphaIn); if (alphaIn >= 1.0f) { showPic4b = false; showPic4c = true; time = 0; alphaIn = 0; } } if (showPic4c) { if (time == 0 && !skip) { AudioHandler.audioClipHandlers["cutscenePanelSlide"].Play(); } if (time < duration) { pic4cTran.LocalPosition = Vector3.Lerp(pic4cTran.LocalPosition, listOfCutscene4Points[2].LocalPosition, time / duration); alphaIn = SHADE.Math.Lerp(0.0f, 1.0f, time / duration); time += Time.DeltaTimeF; } else { pic4cTran.LocalPosition = listOfCutscene4Points[2].LocalPosition; alphaIn = 1.0f; } pic4cRenderable.Material.SetProperty("data.alpha", alphaIn); if (alphaIn >= 1.0f) { showPic4c = false; cutscene4Done = true; text4.Enabled = true; time = 0; alphaIn = 0; } } } } private void Canvas5() { if (canvas5.IsActiveSelf) { if (showPic5a) { if (time == 0 && !skip) { AudioHandler.audioClipHandlers["cutscenePanelSlide"].Play(); } if (time < duration) { pic5aTran.LocalPosition = Vector3.Lerp(pic5aTran.LocalPosition, listOfCutscene5Points[0].LocalPosition, time / duration); alphaIn = SHADE.Math.Lerp(0.0f, 1.0f, time / duration); time += Time.DeltaTimeF; } else { pic5aTran.LocalPosition = listOfCutscene5Points[0].LocalPosition; alphaIn = 1.0f; } pic5aRenderable.Material.SetProperty("data.alpha", alphaIn); if (alphaIn >= 1.0f) { showPic5a = false; showPic5b = true; time = 0; alphaIn = 0; } } if (showPic5b) { if (time == 0) { AudioHandler.audioClipHandlers["cutscenePanelSlide"].Play(); AudioHandler.audioClipHandlers["cutscene5Yay"].Play(); } if (time < duration) { pic5bTran.LocalPosition = Vector3.Lerp(pic5bTran.LocalPosition, listOfCutscene5Points[1].LocalPosition, time / duration); alphaIn = SHADE.Math.Lerp(0.0f, 1.0f, time / duration); time += Time.DeltaTimeF; } else { pic5bTran.LocalPosition = listOfCutscene5Points[1].LocalPosition; alphaIn = 1.0f; } pic5bRenderable.Material.SetProperty("data.alpha", alphaIn); if (alphaIn >= 1.0f) { showPic5b = false; text5.Enabled = true; cutscene5Done = true; time = 0; alphaIn = 0; } } } } private void initCutscene4() { if (cutscene4Points) listOfCutscene4Points = cutscene4Points.GetComponentsInChildren().ToList(); else Debug.LogError("Cutscene4Points Missing"); if (listOfCutscene4Points.Count == 0) Debug.LogError("Cutscene4Points Empty"); listOfCutscene4Pics = cutscene4Pics.GetComponentsInChildren().ToList(); if (listOfCutscene4Pics.Count == 0) Debug.LogError("Cutscene4Pics Empty"); if (listOfCutscene4Pics[0]) { pic4aRenderable = listOfCutscene4Pics[0].GetComponent(); pic4aTran = listOfCutscene4Pics[0].GetComponent(); pic4aRenderable.Material.SetProperty("data.alpha", 0.0f); } else Debug.LogError("SCENE 4 PIC1 MISSING"); if (listOfCutscene4Pics[1]) { pic4bRenderable = listOfCutscene4Pics[1].GetComponent(); pic4bTran = listOfCutscene4Pics[1].GetComponent(); pic4bRenderable.Material.SetProperty("data.alpha", 0.0f); } else Debug.LogError("SCENE 4 PIC2 MISSING"); if (listOfCutscene4Pics[2]) { pic4cRenderable = listOfCutscene4Pics[2].GetComponent(); pic4cTran = listOfCutscene4Pics[2].GetComponent(); pic4cRenderable.Material.SetProperty("data.alpha", 0.0f); } else Debug.LogError("SCENE 1 PIC3 MISSING"); if (canvas4) { text4 = canvas4.GetComponentInChildren(); text4.Enabled = false; } else Debug.LogError("Canvas 4 missing"); } private void initCutscene5() { if (cutscene5Points) listOfCutscene5Points = cutscene5Points.GetComponentsInChildren().ToList(); else Debug.LogError("cutscene5Points Missing"); if (listOfCutscene5Points.Count == 0) Debug.LogError("Cutscene5Points Empty"); listOfCutscene5Pics = cutscene5Pics.GetComponentsInChildren().ToList(); if (listOfCutscene5Pics.Count == 0) Debug.LogError("Cutscene5Pics Empty"); if (listOfCutscene5Pics[0]) { pic5aRenderable = listOfCutscene5Pics[0].GetComponent(); pic5aTran = listOfCutscene5Pics[0].GetComponent(); pic5aRenderable.Material.SetProperty("data.alpha", 0.0f); } else Debug.LogError("SCENE 5 PIC1 MISSING"); if (listOfCutscene5Pics[1]) { pic5bRenderable = listOfCutscene5Pics[1].GetComponent(); pic5bTran = listOfCutscene5Pics[1].GetComponent(); pic5bRenderable.Material.SetProperty("data.alpha", 0.0f); } else Debug.LogError("SCENE 5 PIC2 MISSING"); if (canvas5) { text5 = canvas5.GetComponentInChildren(); text5.Enabled = false; canvas5.SetActive(false); } else Debug.LogError("Canvas 5 missing"); } }