Example #1
0
    private void FixedUpdate()
    {
        UpdateMain();
        /*WE CHECK IF THE MM IS POSSIBLE AND GENEREATE A MATCH*/
        var mm = HandleMatchMaking.CheckIfMatchMakingIsPossible();

        if (!HandleMatchMaking.Generating && mm != null)
        {
            HandleMatchMaking.GenerateMatch(mm);
        }
    }
Example #2
0
    public void StartMatch()
    {
        var x = new List <PlayerDataHolder>();

        for (var i = 0; i < 6; i++)
        {
            var p = new PlayerDataHolder(i, $"user{(int)(i + Random.Range(1,25)) * Random.Range(1, 800) * .5f}");
            if (p.Username == "user0")
            {
                Debug.Log($"{p.Username}");
            }
        }
        HandleMatchMaking.GenerateMatch(x);
    }
Example #3
0
    public static void AddToMatchMaking(int fromClient, Packet packet)
    {
        if (HandleMatchMaking.IsPlayerInQueue(fromClient))
        {
            return;
        }
        Debug.Log("Added to mm");
        var mapId = packet.ReadInt();

        switch (mapId)
        {
        case 0:     //Tutorial
            Debug.Log("Tutorial Request");
            var match = new Match(Dictionaries.dictionaries.PlayerDataHolders[fromClient],
                                  MatchType.Tutorial);
            break;

        case 1:
        case 2:
            var isClientInParty = packet.ReadBool();
            if (isClientInParty)     //Player In Party
            {
                var partyID      = Dictionaries.dictionaries.PlayerDataHolders[fromClient].PartyID;
                var partyMembers = Parties.GetParty(partyID);
                foreach (var member in partyMembers)
                {
                    HandleMatchMaking.AddToQueue(member);
                    ServerSend.MatchMakingState(Dictionaries.dictionaries.PlayersByName[member.Username]);
                }
            }
            else     //Player Is NOT IN PARTY
            {
                HandleMatchMaking.AddToQueue(Dictionaries.dictionaries.PlayerDataHolders[fromClient]);
                ServerSend.MatchMakingState(fromClient);
            }
            break;

        default:
            Debug.LogError($"Add To Match Making Method was called by {fromClient} with an invalid MAP ID {mapId} \n His request has been ignored.");
            break;
        }
    }
Example #4
0
    public static void RemoveFromMatchMaking(int fromClient, Packet packet)
    {
        var isClientInParty = packet.ReadBool();

        if (isClientInParty) //Player In Party
        {
            var partyID      = Dictionaries.dictionaries.PlayerDataHolders[fromClient].PartyID;
            var partyMembers = Parties.GetParty(partyID);
            foreach (var member in partyMembers)
            {
                HandleMatchMaking.RemoveFromQueue(member);
                ServerSend.MatchMakingState(Dictionaries.dictionaries.PlayersByName[member.Username]);
            }
        }
        else //Player Is NOT IN PARTY
        {
            HandleMatchMaking.RemoveFromQueue(Dictionaries.dictionaries.PlayerDataHolders[fromClient]);
            ServerSend.MatchMakingState(fromClient);
        }
    }
Example #5
0
        /// <summary>Closes and cleans up the TCP connection.</summary>
        public void Disconnect()
        {
            var item = Dictionaries.dictionaries.PlayersByName.FirstOrDefault(kvp => kvp.Value == id);

            if (item.Key != null)
            {
                if (Dictionaries.dictionaries.PlayerDataHolders[id].GetMatchId() != 0)
                {
                    //Dictionaries.Matches[Dictionaries.PlayerDataHolders[id].GetMatchId()].myGamePLay.RemoveGameObjectFromMatch(id);
                    ThreadManager.ExecuteOnMainThread(() =>
                    {
                        // ServerConsoleWriter.WriteLine($"Destroying GameObjects related to Player {id}...");
                        //Dictionaries.PlayerDataHolders[id].DestroyGameObject();
                        Dictionaries.dictionaries.PlayerDataHolders[id].SetMatchId(0);
                        HandleMatchMaking.RemoveFromQueue(Dictionaries.dictionaries.PlayerDataHolders[id]);
                        Dictionaries.dictionaries.PlayerDataHolders.Remove(id);
                        Dictionaries.dictionaries.PlayersById.Remove(id);
                        Dictionaries.dictionaries.PlayersByName.Remove(item.Key);
                    });
                }
                else
                {
                    ThreadManager.ExecuteOnMainThread(() =>
                    {
                        //ServerConsoleWriter.WriteLine($"Player {id} had not started a game so no gameobject should be destroyed");
                        HandleMatchMaking.RemoveFromQueue(Dictionaries.dictionaries.PlayerDataHolders[id]);
                        Dictionaries.dictionaries.PlayerDataHolders.Remove(id);
                        Dictionaries.dictionaries.PlayersById.Remove(id);
                        Dictionaries.dictionaries.PlayersByName.Remove(item.Key);
                    });
                }
                //ServerConsoleWriter.WriteLine($"Player {id} has been successfully disconnected");
            }

            //Dictionaries.Parties.Remove(id);
            Socket.Close();
            stream        = null;
            receivedData  = null;
            receiveBuffer = null;
            Socket        = null;
        }