private void HandleElleniaHurtCutScene() { // Ensure Psychic Duck is the active sticker and we haven't already played this cut scene. bool isPsychicDuckActive = Script_ActiveStickerManager.Control.IsActiveSticker(Const_Items.PsychicDuckId); if (!isPsychicDuckActive) { return; } if (isElleniaHurtCutSceneActivated) { return; } isElleniaHurtCutSceneActivated = true; isCheckingPsychicDuckElleniaHurtCutScene = false; game.ChangeStateCutScene(); Script_BackgroundMusicManager bgm = Script_BackgroundMusicManager.Control; bgm.FadeOutFast(() => { bgm.Stop(); bgm.SetVolume(1f, BGMParam); }, BGMParam); StartCoroutine(WaitForElleniaHurtCutScene()); IEnumerator WaitForElleniaHurtCutScene() { yield return(new WaitForSeconds(onStartElleniaHurtCutSceneWaitTime)); StartCoroutine(game.TransitionFadeIn(cutSceneFadeInTime, () => { // Teleport player. game.GetPlayer().Teleport(playerTeleportPos.transform.position); game.GetPlayer().FaceDirection(Directions.Left); // Face camera to Ellenia (Hurt). SwitchVCamElleniaHurt(); StartCoroutine(WaitForElleniaDialogue()); })); } IEnumerator WaitForElleniaDialogue() { yield return(new WaitForSeconds(elleniaHurtCutSceneWaitToFadeInTime)); StartCoroutine(game.TransitionFadeOut(cutSceneFadeInTime, () => { PlayElleniasHandPRCS(); })); } void PlayElleniasHandPRCS() { game.ChangeStateCutScene(); Script_UIAspectRatioEnforcerFrame.Control.EndingsLetterBox( isOpen: true, framing: Script_UIAspectRatioEnforcerFrame.Framing.ElleniasHand, cb: OnFramingAnimationDone ); void OnFramingAnimationDone() { ElleniasHandPRCSPlayer.PlayCustom(Script_PRCSManager.CustomTypes.ElleniasHand); } } }