private void addPlayerToPeerToTournaments(IPeer peer, PreTournamentGame newTournament) { if (peerToTournaments.ContainsKey(peer.Id) == false) { peerToTournaments.Add(peer.Id, newTournament); return; } PreTournamentGame oldTournament = peerToTournaments[peer.Id]; if (SpectatorAuthModule.existsAdmin(peer)) //Admin { closeTournament(oldTournament); peerToTournaments.Remove(peer.Id); } else //User { if (oldTournament.getRoomID() != newTournament.getRoomID()) { removePlayerFromGame(peer, oldTournament); } else { return; } } peerToTournaments.Add(peer.Id, newTournament); }
public void handleJoinTournament(IIncommingMessage rawMsg) { PreGameJoinRequest msg = rawMsg.Deserialize <PreGameJoinRequest>(); if (currentPreTournaments.ContainsKey(msg.roomID) == false) { Debug.LogError("Tried to join tournament " + msg.roomID + ", but no such tournament exist"); rawMsg.Respond("Game does not exist", ResponseStatus.Error); return; } PreTournamentGame tournament = currentPreTournaments[msg.roomID]; if (tournament.addPlayer(rawMsg.Peer, msg.joiningPlayer)) { rawMsg.Respond(msg.roomID, ResponseStatus.Success); addPlayerToPeerToTournaments(rawMsg.Peer, tournament); //Debug.LogError("Adding player: " + rawMsg.Peer.Id + " to tournament: " + tournament.getRoomID()); } else { rawMsg.Respond("Could not join game", ResponseStatus.Failed); } }
public void closeTournament(PreTournamentGame game, string key) { game.closeTournament(); Debug.LogError("Closing tournament: " + key); currentPreTournaments.Remove(key); peerToTournaments.Remove(game.getAdmin().Id); foreach (int id in game.getPeerIDs()) { peerToTournaments.Remove(id); } }
public void handleCreateTournament(IIncommingMessage rawMsg) { IPeer peer = rawMsg.Peer; if (SpectatorAuthModule.existsAdmin(peer) == false) { rawMsg.Respond("You don't have admin permission", ResponseStatus.Failed); return; } TournamentInfoMsg msg = rawMsg.Deserialize <TournamentInfoMsg>(); string key = generateGameKey(); PreTournamentGame newTournament = new PreTournamentGame(msg, peer, key); currentPreTournaments.Add(key, newTournament); addPlayerToPeerToTournaments(rawMsg.Peer, newTournament); rawMsg.Respond(key, ResponseStatus.Success); newTournament.updateAdmin(); Debug.LogError("Created Tournament: " + key + " With admin: " + rawMsg.Peer.Id); }
public void handleStartTournament(IIncommingMessage rawMsg) { string roomID = rawMsg.AsString(); if (currentPreTournaments.ContainsKey(roomID) == false) { rawMsg.Respond("Tried to start tournament " + roomID + ", but no such tournament exist", ResponseStatus.Error); return; } PreTournamentGame preGame = currentPreTournaments[roomID]; RunningTournamentGame runningGame = null; if (preGame.startTournament(ref runningGame, rawMsg) == false) { return; } currentPreTournaments.Remove(roomID); AlbotRunningTournamentModule.addNewRunningGame(roomID, runningGame); }
private string getGameKey(PreTournamentGame game) { return(game.getRoomID()); }
private void removePlayerFromGame(IPeer p, PreTournamentGame tournament) { tournament.removePlayer(p.Id); peerToTournaments.Remove(p.Id); }
public void closeTournament(PreTournamentGame game) { closeTournament(game, getGameKey(game)); }