Пример #1
0
 public static GameInfo StartNew(Session gameHost, string gameType)
 {
     if (!Regex.IsMatch(gameType, "[a-zA-Z0-9]+"))
     {
         throw new Exception("Invalid game name");
     }
     var game = new GameInfo(gameType);
     game.JoinGame(gameHost);
     games.Add(game);
     return game;
 }
Пример #2
0
 public void JoinGame(Session session)
 {
     lock (syncRoot)
     {
         if (Started)
         {
             throw new GameException("The game has already started.");
         }
         players.Add(session);
         if (players.Count == game.PlayerCount)
         {
             // Signal the start of the game
             foreach (var p in players)
             {
                 p.SignalGameStart(this);
             }
         }
     }
 }
Пример #3
0
 /// <summary>
 /// Creates a new session
 /// </summary>
 /// <param name="nick">The nickname of the player</param>
 /// <param name="session">The session data</param>
 /// <returns>Everything went OK</returns>
 public static bool TryAddNew(string nick, out Session session)
 {
     session = new Session
     (
         key: Guid.NewGuid().ToString(),
         nickName: nick
     );
     bool success = Sessions.TryAdd(session.Key, session);
     if (success)
     {
         session.StartListening();
         return true;
     }
     else
     {
         return false;
     }
 }
Пример #4
0
 /// <summary>
 /// Gets the session data specified by the API key
 /// </summary>
 /// <param name="key">The API key</param>
 /// <param name="value">The session value</param>
 /// <returns>The API key was found</returns>
 public static bool TryGetByKey(string key, out Session value)
 {
     return Sessions.TryGetValue(key, out value);
 }
Пример #5
0
 public static void JoinSpectator(Session spectator, Guid GameId)
 {
 }
Пример #6
0
 public static void Join(Session player, Guid GameId)
 {
 }