Ejemplo n.º 1
0
 public void UnregisterListener()
 {
     listener = null;
     ResetControl();
 }
Ejemplo n.º 2
0
 public void RegisterListener(IPlayerSessionEventListener listener)
 {
     this.listener = listener;
 }
Ejemplo n.º 3
0
        public void Replace(int id, Password password, CreatePlayerData data, IPlayerSessionEventListener listener)
        {
            if(state == SessionState.Ended)
                throw new BadSessionStateException();
            lock(Lock)
            {
                if(!this.data.PlayerPassword.CheckPassword(password))
                    throw new BadSessionPasswordException();

                SessionPlayer player = GetPlayer(id);
                if(player.CheckListener() && !player.IsAI)
                    throw new CannotReplacePlayerException();
                player.Update(data);
                player.RegisterListener(listener);
                eventMgr.SendController(player);
                if(state == SessionState.Playing)
                    game.RegisterPlayer(player);
                eventMgr.OnPlayerUpdated(player);
                server.SaveState();
            }
        }
Ejemplo n.º 4
0
        public void Join(Password password, CreatePlayerData data, IPlayerSessionEventListener listener)
        {
            if(state == SessionState.Ended)
                throw new BadSessionStateException();
            lock(Lock)
            {
                if(state != SessionState.WaitingForPlayers)
                    throw new BadSessionStateException();
                if(players.Count >= this.data.MaxPlayers)
                    throw new TooManyPlayersException();
                if(!this.data.PlayerPassword.CheckPassword(password))
                    throw new BadSessionPasswordException();

                int id = players.GenerateID();
                if(creatorId == 0)
                    creatorId = id;
                SessionPlayer player = new SessionPlayer(id, this, data);
                players.Add(id, player);
                playerList.Add(player);
                player.RegisterListener(listener);
                eventMgr.SendController(player);
                eventMgr.OnPlayerJoinedSession(player);
                server.SaveState();
            }
        }
 /// <summary>
 /// Adds the listener to the list of member listeners.
 /// </summary>
 /// <param name="listener">
 /// The listener to add.
 /// </param>
 public void AddListener(IPlayerSessionEventListener listener)
 {
     if(!mainListeners.Contains(listener))
         mainListeners.Add(listener);
     if(!playerListeners.Contains(listener))
         playerListeners.Add(listener);
 }
Ejemplo n.º 6
0
        public void CreateSession(CreateSessionData sessionData, CreatePlayerData playerData, IPlayerSessionEventListener listener)
        {
            lock(Lock)
            {
                int id = sessions.GenerateID();
                Session session = new Session(this, id, sessionData);
                sessions.Add(id, session);
                Console.Error.WriteLine("INFO: Created session #{0}.", id);

                session.Join(sessionData.PlayerPassword, playerData, listener);
                eventMgr.OnSessionCreated(session);
                SaveState();
            }
        }