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); } }
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); }
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; } }
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); } }
/// <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; }