示例#1
0
        public static void joinGame(int roomName, Player player)
        {
            player.sendCommand(Command.joinGameCommand(0, roomName));
            player.gs = gss[roomName];
            if (player.gsID != player.gs.roomID)
            {
                player.score = 0;
            }
            gss[roomName].addPlayer(player);

            player.gsID = player.gs.roomID;
            if(gss[roomName].gameStarted)
            {
                Player[] lockedPlayerList;

                lock (playerList)
                {
                    lockedPlayerList = new Player[gss[roomName].playerList.Count];
                    gss[roomName].playerList.CopyTo(lockedPlayerList);
                }

                player.resetPosition();
                player.sendCommand(Command.startGameInProgressCommand(0, lockedPlayerList, gss[roomName].pelletList));
            }

            roomUpdateToAllPlayers(player.gs);

            Console.WriteLine(player.playerName + " has joined " + gss[roomName].roomName + ".");
            startStopGame(gss[roomName]);
        }
示例#2
0
 public static void leaveGame(int roomName, Player player)
 {
     gss[roomName].removePlayer(player);
     roomUpdateToAllPlayers(player.gs);
     player.gs = null;
     player.sendCommand(Command.leaveGameCommand(0, roomName));
     Console.WriteLine(player.playerName + " has left " + gss[roomName].roomName + ".");
     startStopGame(gss[roomName]);
 }
示例#3
0
        public static void loginPlayer(Player player, string username, string password)
        {
            LoginResponseType lrt = LoginResponseType.FailedLogin;
            if (username != "" && password != "")
            {
                string realPassword = db.getPassword(username);
                if (realPassword == null)
                {
                    realPassword = password;
                    db.addUser(username, password);
                    lrt = LoginResponseType.NewUser;
                    Console.WriteLine("New user created.");
                }
                if (realPassword == password)
                {
                    //db.dbPrintAll();
                    lrt |= LoginResponseType.SucceededLogin;
                    player.playerName = username;
                    Console.WriteLine(player.playerName + " has connected.");
                }
            }

            player.sendCommand(Command.loginCommand(0, lrt, gss));
        }
示例#4
0
        public void sendPlayerInfo(Player player)
        {
            Player[] lockedPlayerList;

            lock (playerList)
            {
                lockedPlayerList = new Player[playerList.Count];
                playerList.CopyTo(lockedPlayerList);
            }

            for (int i = 0; i < lockedPlayerList.Length; i++)
            {
                lockedPlayerList[i].sendCommand(Command.newPlayerCommand(0, player.playerName, player.playerNumber, player.score));

                if (player != lockedPlayerList[i])
                {
                    player.sendCommand(Command.newPlayerCommand(0, ((Player)lockedPlayerList[i]).playerName, ((Player)lockedPlayerList[i]).playerNumber, ((Player)lockedPlayerList[i]).score));
                }
            }
        }