private IEnumerator CinematicFinishedRoutine()
        {
            TransitionFader.PlayTransition(_transitionPrefab, _nextSceneName);
            yield return(new WaitForSeconds(0.5f));

            LevelLoader.LoadNextLevel();
        }
        // called when zone is triggered
        private IEnumerator CutsceneCompleteRoutine()
        {
            TransitionFader.PlayTransition(_transitionPrefab, _transitionName);
            yield return(new WaitForSeconds(_playDelay));

            ComManager.Instance.EndCommunicationCutscene(); // end communication

            if (_deactivatePlayer && PlayerController.Instance != null)
            {
                PlayerController.Instance.FreezePlayer();
                PlayerController.Instance.gameObject.GetComponent <SpriteRenderer>().sortingLayerName = "Ground";
                PlayerController.Instance.gameObject.GetComponent <SpriteRenderer>().sortingOrder     = -10;
            }

            if (_activatePlayer && PlayerController.Instance != null)
            {
                PlayerController.Instance.UnfreezePlayer();

                PlayerController.Instance.DisplayHUD();
                PlayerController.Instance.AttackRangeOn();
                // TODO: REPLACE PLAYER POSITION
                PlayerController.Instance.gameObject.GetComponent <SpriteRenderer>().sortingLayerName = "Player";
                PlayerController.Instance.gameObject.GetComponent <SpriteRenderer>().sortingOrder     = 0;
                AbilityDescriptionUIController.Instance.Activatable = true;
            }

            LevelLoader.LoadNextLevel();
            _active = false;
        }
Example #3
0
    private IEnumerator TransitionIn()
    {
        //fade to black
        TransitionFader.FadeToBlack(transitionTime * 0.95f);

        // Wait while the camera moves to transition and the screen fades to black
        yield return(new WaitForSeconds(transitionTime));

        // Set the zodiac puzzle to the correct mode for startup
        ZodiacPuzzle.Mode mode = GlobalState.ObservatoryPowered ? ZodiacPuzzle.Mode.Stars : ZodiacPuzzle.Mode.Moon;
        zodiacPuzzle.ChangeMode(mode, true);

        // jump-cut the camera to the correct starting mode
        brain.m_DefaultBlend = new CinemachineBlendDefinition(CinemachineBlendDefinition.Style.Cut, 0);
        ;
        transitionCam.Priority = 0;
        starCam.Priority       = GlobalState.ObservatoryPowered ? 100 : 0;
        moonCam.Priority       = GlobalState.ObservatoryPowered ? 0 : 100;

        // Pause for effect
        yield return(new WaitForSeconds(0.2f));

        // Activate all children in preperation for the screen to fade back in
        for (int i = 0; i < transform.childCount; i++)
        {
            transform.GetChild(i).gameObject.SetActive(true);
        }

        // Fade back in
        TransitionFader.WipeFromBlackFromCenter(transitionTime);

        // Reset the cinemachine blend mode back to it's original state before we started.
        brain.m_DefaultBlend = oldBlend;
    }
Example #4
0
        private IEnumerator SkipCutscene()
        {
            CutsceneManager.Instance.Active = false;
            CutsceneManager.Instance.StopAllCoroutines();

            TransitionFader.PlayTransition(_transitionPrefab, CutsceneManager.Instance.TransitionName);
            yield return(new WaitForSeconds(0.5f));

            ComManager.Instance.EndCommunicationCutscene(); // end communication

            if (CutsceneManager.Instance.DeactivatePlayer && PlayerController.Instance != null)
            {
                PlayerController.Instance.FreezePlayer();
                PlayerController.Instance.gameObject.GetComponent <SpriteRenderer>().sortingLayerName = "Ground";
                PlayerController.Instance.gameObject.GetComponent <SpriteRenderer>().sortingOrder     = -10;
            }

            if (CutsceneManager.Instance.ActivatePlayer && PlayerController.Instance != null)
            {
                PlayerController.Instance.UnfreezePlayer();

                PlayerController.Instance.DisplayHUD();
                PlayerController.Instance.AttackRangeOn();

                PlayerController.Instance.gameObject.GetComponent <SpriteRenderer>().sortingLayerName = "Player";
                PlayerController.Instance.gameObject.GetComponent <SpriteRenderer>().sortingOrder     = 0;
                AbilityDescriptionUIController.Instance.Activatable = true;
            }

            LevelLoader.LoadNextLevel();
        }
Example #5
0
    private void OnTransitionComplete(RoomManager.Room from, RoomManager.Room to)
    {
        Transform dest = RoomManager.GetExitPosition(to, from);

        TransitionFader.WipeFromBlack(dest.position, RoomManager.animationTime);
        SpawnPlayerAt(dest.position, dest.rotation * Quaternion.AngleAxis(180.0f, Vector3.up));
    }
Example #6
0
 public static void PlayTransition(TransitionFader transitionPrefab)
 {
     if (transitionPrefab != null)
     {
         TransitionFader instance = Instantiate(transitionPrefab, Vector3.zero, Quaternion.identity);
         instance.Play();
     }
 }
    private void Awake()
    {
        Instance      = this;
        _tempMaterial = Instantiate(gameObject.GetComponent <RawImage>().material);
        _cam          = Camera.main;

        gameObject.GetComponent <RawImage>().material = _tempMaterial;
    }
Example #8
0
 public static void PlayTransition(TransitionFader transitionPrefab)
 {
     if (transitionPrefab != null)
     {
         TransitionFader instance = Instantiate(transitionPrefab);
         instance.Play();
     }
 }
Example #9
0
        IEnumerator StartMissionRoutine(string sceneName)
        {
            TransitionFader.PlayTransition(_startTransitionPrefab);
            LevelLoader.LoadLevel(sceneName);
            yield return(new WaitForSeconds(_playDelay));

            GameMenu.Open();
        }
Example #10
0
        private IEnumerator OnPlayPressedRoutine()
        {
            TransitionFader.PlayTransition(startTransitionPrefab);
            LevelLoader.LoadNextLevel();
            yield return(new WaitForSeconds(_playDelay));

            GameMenu.Open();
        }
        private IEnumerator WinRoutine()
        {
            TransitionFader.PlayTransition(_endTransitionPrefab);
            float fadeDelay = (_endTransitionPrefab != null) ? _endTransitionPrefab.Delay + _endTransitionPrefab.FadeOnDuration : 0f;

            yield return(new WaitForSeconds(fadeDelay));

            WinScreen.Open();
        }
        IEnumerator EndLevelTransitionRoutine()
        {
            TransitionFader.CreateAndPlayTransition(_endLevelTransitionPrefab);
            float fadeDelay = (_endLevelTransitionPrefab != null) ?
                              _endLevelTransitionPrefab.Delay + _endLevelTransitionPrefab.FadeOnDuration :
                              0f;

            yield return(new WaitForSeconds(fadeDelay));

            WinMenu.Open();
        }
        // called when zone is triggered
        private IEnumerator OnZonerTriggered()
        {
            ActionBarUIController.Instance.HideAllFlashes();    // hide all flashes when zoning to new zone
            PlayerController.Instance.FreezePlayer();
            TransitionFader.PlayTransition(_transitionPrefab, _zoneName);
            yield return(new WaitForSeconds(_playDelay));

            PlayerInformationController.Instance.UpdateZones(_zoneName);
            LevelLoader.LoadLevel(_zoneSceneName);
            PlayerController.Instance.UnfreezePlayer();
        }
Example #14
0
    // Start is called before the first frame update
    void Awake()
    {
        if (instance != null && instance != this)
        {
            Destroy(rootObject);
        }
        else
        {
            instance = this;
            DontDestroyOnLoad(transform.parent.gameObject);
            DontDestroyOnLoad(this);
        }

        image = GetComponent <Image>();
    }
Example #15
0
    private IEnumerator TransitionOut()
    {
        //wipe to black
        TransitionFader.WipeToBlackFromCenter(transitionTime);

        // Wait while the camera moves to transition and the screen wipes to black
        yield return(new WaitForSeconds(transitionTime));

        // Turn the puzzle off
        zodiacPuzzle.ChangeMode(ZodiacPuzzle.Mode.Off, true);

        // unlock the player
        PlayerMovement player;

        if (PlayerManager.IsLoaded)
        {
            player = PlayerManager.CurrentPlayer.GetComponent <PlayerMovement>();
        }
        else
        {
            player = GameObject.FindWithTag("Player").GetComponent <PlayerMovement>();
        }
        player.ChangeState(PlayerMovement.PlayerState.Waiting);

        //wipe to black
        TransitionFader.FadeFromBlack(transitionTime);

        // Deactivate all children. Remember that THIS object must remain active or the coroutine dies!
        for (int i = 0; i < transform.childCount; i++)
        {
            transform.GetChild(i).gameObject.SetActive(false);
        }

        //cooldown for re-entering..
        _isCoolingDown = true;

        yield return(new WaitForSeconds(cooldownPeriod));

        _isCoolingDown = false;
    }
Example #16
0
    // level complete coroutine
    private IEnumerator WinRoutine()
    {
        TransitionFader.PlayTransition(_transitionPrefab);

        float fadeDelay = (_transitionPrefab != null) ?
                          _transitionPrefab.Delay + _transitionPrefab.FadeOnDuration : 0f;

        yield return(new WaitForSeconds(fadeDelay));

#if UNITY_ADS
        UnityAdsPlayer.Instance.PlayAd();
#endif
        // TODO: ALTER THIS IF NOT IN TUTORIAL
        if (LevelLoader.CurrentSceneIndex == 6)
        {
            FinishMenu.Open();
        }
        else
        {
            WinScreen.Open();
        }
    }
Example #17
0
        private IEnumerator GameOver()
        {
            TransitionFader.PlayTransition(_transitionPrefab, "THE END");
            yield return(new WaitForSeconds(1.5f));

            // reset item object counters
            ItemObject.ItemIdCounter  = 0;
            ItemObject.ItemIdDatabase = null;

            DontDestroyOnLoad[] objectsToDestroy = FindObjectsOfType <DontDestroyOnLoad>();
            foreach (DontDestroyOnLoad obj in objectsToDestroy)
            {
                if (obj.tag != "Persist")
                {
                    Destroy(obj.gameObject);
                }
            }



            LevelLoader.LoadMainMenuLevel();
        }
Example #18
0
    public override void Interact()
    {
        if (key != null && !GlobalState.observatoryDoorUnlocked)
        {
            if (!TryUnlockDoor())
            {
                return;
            }
        }

        if (Time.time - lastTransition < spamClickProtection)
        {
            return;
        }

        lastTransition = Time.time;

        // Start doing the cool wipe animation
        var position = transform.position;

        TransitionFader.WipeToBlack(position, RoomManager.animationTime);
        SFXManager.PlaySoundAt(SFXManager.ClipCategory.ChangeArea, position);
        RoomManager.TransitionToRoom(room);
    }