Пример #1
0
        /// <summary>
        /// Follows the warp master if the warp mode is set to MASTER and warp master is in another subspace
        /// </summary>
        private IEnumerator FollowWarpMaster()
        {
            var seconds = new WaitForSeconds(CheckFollowMasterSInterval);

            while (true)
            {
                try
                {
                    if (!Enabled)
                    {
                        break;
                    }

                    if (MainSystem.Singleton.GameRunning)
                    {
                        if (ClientSubspaceList.ContainsKey(SettingsSystem.ServerSettings.WarpMaster) &&
                            ClientSubspaceList[SettingsSystem.ServerSettings.WarpMaster] != CurrentSubspace)
                        {
                            //Follow the warp master into warp if needed
                            CurrentSubspace = ClientSubspaceList[SettingsSystem.ServerSettings.WarpMaster];
                        }
                    }
                }
                catch (Exception e)
                {
                    Debug.LogError($"[LMP]: Error in coroutine FollowWarpMaster {e}");
                    throw;
                }

                yield return(seconds);
            }
        }
Пример #2
0
 public void RemovePlayer(string playerName)
 {
     if (ClientSubspaceList.ContainsKey(playerName))
     {
         ClientSubspaceList.Remove(playerName);
     }
 }
Пример #3
0
 public int GetPlayerSubspace(string playerName)
 {
     if (ClientSubspaceList.ContainsKey(playerName))
     {
         return(ClientSubspaceList[playerName]);
     }
     return(0);
 }
Пример #4
0
 public override void OnDisabled()
 {
     GameEvents.onTimeWarpRateChanged.Remove(WarpEvents.OnTimeWarpChanged);
     ClientSubspaceList.Clear();
     Subspaces.Clear();
     _currentSubspace            = int.MinValue;
     SkipSubspaceProcess         = false;
     WaitingSubspaceIdFromServer = false;
     SyncedToLastSubspace        = false;
 }
Пример #5
0
        public bool PlayerIsInPastSubspace(string player)
        {
            if (ClientSubspaceList.ContainsKey(player) && CurrentSubspace >= 0)
            {
                var playerSubspace = ClientSubspaceList[player];
                if (playerSubspace == -1)
                {
                    return(false);
                }

                return(playerSubspace != CurrentSubspace && Subspaces[playerSubspace] < Subspaces[CurrentSubspace]);
            }
            return(false);
        }