Ejemplo n.º 1
0
        /// <summary>
        /// Get opponent client from matching queue.
        /// </summary>
        /// <param name="client"> Client who request matching. </param>
        public static void MatchingRequest(Client client)
        {
            var oppoClient = MatchingManager.MatchProcess(client);

            if (oppoClient == null)
                return;

            oppoClient.BeginSend("OnSucceedMatching", client.MatchingData);
            client.BeginSend("OnSucceedMatching", oppoClient.MatchingData);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Accept connection request of client.
        /// </summary>
        /// <param name="ar"></param>
        private void OnAcceptCallback(IAsyncResult ar)
        {
            var socket = (Socket)ar.AsyncState;
            var clientSocket = socket.EndAccept(ar);

            var newClient = new Client(clientSocket);
            GameManager.AddClient(newClient);
            newClient.BeginReceive();

            _serverSocket.BeginAccept(OnAcceptCallback, _serverSocket);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Get client info from DB whis has same device ID.
        /// </summary>
        /// <param name="client"> Accepted client. </param>
        public static void LoginRequest(Client client)
        {
            //DatabaseManager.GetClientInfo(client);

            // Write code to get Login Information from DB (now temporary)
            var nick = "Ragdoll";
            var wins = 10;
            var loses = 5;
            // ...

            client.LoginData = new ProfilePacket
            {
                NickName = nick,
                Wins = wins,
                Loses = loses
            };
            client.BeginSend("OnSucceedLogin", client.LoginData);
        }
Ejemplo n.º 4
0
        internal static Client MatchProcess(Client client)
        {
            if (Clients.Any())
            {
                var r = new Random();
                var idx = r.Next(0, Clients.Count);

                var opponent = Clients[idx];
                Clients.Remove(opponent);

                opponent.MatchingData.TeamColor = 1;
                client.MatchingData.TeamColor = 2;

                return opponent;
            }
            else
            {
                Clients.Add(client);
                return null;
            }
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Remove client that requested matching.
 /// </summary>
 /// <param name="client"> Client who request to cancel matching. </param>
 public static void MatchingCancelRequest(Client client)
 {
     MatchingManager.MatchCancelProcess(client);
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Process ingame request and send result to clients.
 /// </summary>
 /// <param name="client"></param>
 public static void IngameRequest(Client client)
 {
     // Write code for game logic.
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Add connected client to list
 /// </summary>
 /// <param name="c"> Connected client. </param>
 public static void AddClient(Client c)
 {
     Clients.Add(c);
     Console.WriteLine("\nGAME MANAGER : client was added.\n");
     PrintConnectedClients();
 }
Ejemplo n.º 8
0
        /// <summary>
        /// Remove disconnected client from list.
        /// </summary>
        /// <param name="c"> Disconnected client. </param>
        public static void ReleaseClient(Client c)
        {
            Clients.Remove(c);

            Console.WriteLine("\nGAME MANAGER : client was removed.\n");
            PrintConnectedClients();
        }
Ejemplo n.º 9
0
 internal static void SetClientInfo(Client client)
 {
 }
Ejemplo n.º 10
0
 internal static void MatchCancelProcess(Client client)
 {
     Clients.Remove(client);
 }