public IEnumerator RollForGreyman()
 {
     _hasSpawnedGreyman = false;
     while (true)
     {
         if (RandUtil.OneIn(CHANCE_FOR_GREYMAN) && !_hasSpawnedGreyman)
         {
             Spawn();
             _hasSpawnedGreyman = true;
         }
         yield return(new WaitForSeconds(RandUtil.Float(MIN_WAIT_BETWEEN_SPAWN_CHANCES_SECONDS,
                                                        MAX_WAIT_BETWEEN_SPAWN_CHANCES_SECONDS)));
     }
     // ReSharper disable once IteratorNeverReturns
 }
        public void Transition(Color fadeCol, Dream dream, bool playSound = true, string spawnPointID = null)
        {
            if (!_canTransition)
            {
                return;
            }

            Debug.Log($"Linking to {dream.Name}");

            _currentlyTransitioning = true;

            SettingsSystem.CanControlPlayer = false;
            _forcedSpawnID = spawnPointID;

            // disable pausing to prevent throwing off timers etc
            PauseSystem.CanPause = false;

            if (playSound)
            {
                AudioPlayer.Instance.PlayClip(LinkSound, false, "SFX");
            }

            CurrentSequence.Visited.Add(dream);

            ToriiFader.Instance.FadeIn(fadeCol, 1F, () =>
            {
                // see if we should switch texture sets
                if (RandUtil.OneIn(CHANCE_TO_SWITCH_TEXTURES_WHEN_LINKING))
                {
                    TextureSetSystem.SetTextureSet(
                        randomTextureSetFromDayNumber(GameSave.CurrentJournalSave.DayNumber));
                }

                Coroutines.Instance.StartCoroutine(LoadDream(dream));
            });
        }