Ejemplo n.º 1
0
        /// <returns>Is logged out correctly</returns>
        public bool Logout(bool force = false, TimeSpan?timeout = null)
        {
            if (force && timeout == null)
            {
                timeout = TimeSpan.FromSeconds(5);
            }
            else
            {
                timeout = Timeout.InfiniteTimeSpan;
            }

            if (GameServer.State > Game.State.Still)
            {
                lock (Sync)
                {
                    GameServer.Logout();
                    var result = Wait(r => r is Result.LoggedOut || r is Result.ActionFailed,
                                      timeout.Value);

                    if (force && result is Result.ActionFailed)
                    {
                        GameServer.Abort();
                    }

                    return(result is Result.LoggedOut);
                }
            }
            else
            {
                return(true);
            }
        }
        protected static void DisposeGame()
        {
            Game?.Abort();
            Lobby?.Abort();

            Game    = null;
            Lobby   = null;
            Running = false;
        }
Ejemplo n.º 3
0
 public virtual void Shutdown()
 {
     Running = false;
     {
         EmptyCacheCollectors();
         Game?.Abort();
         Game = null;
     }
 }