Exemplo n.º 1
0
    public void AttemptToStartMode()
    {
        if (StartingModeDelay)
        {
            return;
        }

        if (Cancellable.CheckCancelled(OnCheckIfModeCanStartEvent))
        {
            StartingModeTime = Network.time;
            return;
        }

        if (StartingModeTime == -1.0 || Network.time - StartingModeTime < StartingModeTimeout)
        {
            foreach (var player in ValidPlayers)
            {
                if (!player.Stuck && !player.HasLoadedLevel(true))
                {
                    return;
                }
            }
        }


        StartingModeDelay = true;
        // StartModeAfterDelay is a fix for the mode sometimes starting so early that the loading screen won't disappear
        DistanceServerMainStarter.Instance.StartCoroutine(StartModeAfterDelay(5.0f));
    }
Exemplo n.º 2
0
        void AttemptToAdvanceLevel()
        {
            if (Server.StartingLevel || !Server.HasModeStarted)
            {
                Log.Debug($"Mode not started, not advancing normally.");
                return;
            }

            if (Server.ValidPlayers.Count == 0)
            {
                Log.Debug($"No players, not advancing normally.");
                return;
            }

            if (ServerStage != Stage.Started)
            {
                return;
            }

            if (Cancellable.CheckCancelled(OnCheckIfLevelCanAdvanceEvent))
            {
                return;
            }

            Log.Debug("Advancing level from AttemptToAdvanceLevel");
            AdvanceLevel();
        }