public void TriggerPlayerQuitEvent() { PlayerQuit playerQuitEvent = PlayerQuit.Create(); playerQuitEvent.PlayerID = SWMatchmaking.GetMyBoltId(); playerQuitEvent.Send(); }
public void FindGame() { var lobbyList = BoltNetwork.SessionList; foreach (var lobby in lobbyList) { var lobbyToken = SWMatchmaking.GetLobbyToken(lobby.Key); Debug.Log("[LOBBY] Name : " + lobbyToken.ServerName); var lobbyMatchesSelectedServerName = _matchmakingSettings.LookForPrivateGames && lobbyToken.ServerName == _matchmakingSettings.PrivateGameName; Debug.Log("[LOBBY] Matched : " + lobbyMatchesSelectedServerName); var lobbyMatchesSelectedGamemodes = !_matchmakingSettings.LookForPrivateGames && _lobbyData.GamemodePool.Contains(lobbyToken.GameMode); var lobbyMatchesMatchmakingSettings = (!lobbyToken.GameStarted || lobbyToken.GameStarted == _matchmakingSettings.LookForStartedGames); if ((lobbyMatchesSelectedServerName || lobbyMatchesSelectedGamemodes) && lobbyMatchesMatchmakingSettings && lobbyToken.CanBeJoined && lobbyToken.Version.Equals(_lobbyData.Version)) { _lobbyData.SetGamemode(lobbyToken.GameMode); _lobbyData.SetMap(lobbyToken.MapName); SWMatchmaking.JoinLobby ( lobby.Key, new JoinToken() { Nickname = _playerSettings.Nickname } ); } } }
public void TriggerPlayerHitEvent() { PlayerHit playerHitEvent = PlayerHit.Create(); playerHitEvent.VictimEntity = SWExtensions.KartExtensions.GetKartWithID(SWMatchmaking.GetMyBoltId()).GetComponent <BoltEntity>(); playerHitEvent.Send(); }
// PRIVATE private IEnumerator SetLobbyPrivateAfterXSeconds(float x) { yield return(new WaitForSeconds(x)); _lobbyData.CanBeJoined = false; SWMatchmaking.SetLobbyData(_lobbyData); }
public override void Connected(BoltConnection connection) { if (connection.ConnectionId == SWMatchmaking.GetMyBoltId()) { SetLookingForPlayers(); ResetTimer(); } }
private void SendRespawnRequestEvent(PlayerSettings player) { RespawnRequest respawnRequestEvent = RespawnRequest.Create(); respawnRequestEvent.ConnectionID = SWMatchmaking.GetMyBoltId(); respawnRequestEvent.Team = (int)player.ColorSettings.TeamEnum; respawnRequestEvent.Send(); }
public override void OnEvent(PlayerInfoEvent evnt) { if (evnt.TargetPlayerID == SWMatchmaking.GetMyBoltId() && // This event is for me evnt.KartEntity == _entity && // This is the targetted kart !evnt.KartEntity.IsOwner) // I don't own this kart { SetVoicelines(evnt.CharacterIndex); } }
// PRIVATE private void UpdateCurrentPlayerCount(int playerCount) { _currentPlayerCountText.text = playerCount + " players"; if (BoltNetwork.IsServer) { _lobbyData.CurrentPlayers = playerCount; SWMatchmaking.UpdateLobbyData(_lobbyData); } }
private IEnumerator ServerConnectionCheckRoutine() { var connectedToHost = true; while (connectedToHost) { connectedToHost = SWMatchmaking.ConnectedToHost(); yield return(new WaitForSeconds(1f)); } SceneManager.LoadScene("Menu"); }
public override void OnEvent(PlayerInfoEvent evnt) { if (evnt.TargetPlayerID == SWMatchmaking.GetMyBoltId() && // This event is for me evnt.KartEntity == _kartEntity && // This is the targetted kart !evnt.KartEntity.IsOwner) // I don't own this kart { Nickname = evnt.Nickname; Team = evnt.Team.ToTeam(); OwnerID = evnt.PlayerID; } }
public override void OnEvent(PlayerSpawn evnt) { if (evnt.ConnectionID == SWMatchmaking.GetMyBoltId()) { if (_gameStarted.Value == false && evnt.GameStarted == true) { _gameStarted.Value = true; } InstantiateKart(evnt.SpawnPosition, evnt.SpawnRotation, evnt.TeamEnum.ToTeam(), (RoomProtocolToken)evnt.RoomToken); } }
// CORE private void Start() { if (BoltNetwork.IsServer) { _lobbyData.CanBeJoined = true; _lobbyData.GameStarted = true; SWMatchmaking.SetLobbyData(_lobbyData); StartCoroutine(SetLobbyPrivateAfterXSeconds(_secondsBeforeLobbyGoesPrivate)); } }
public override void OnEvent(PlayerAllStats evnt) { if (evnt.TargetPlayerID == SWMatchmaking.GetMyBoltId()) { var entry = CreateEntryForPlayer(evnt.PlayerID, evnt.Name, evnt.Team.ToTeam()); if (entry) { entry.UpdateKillCount(evnt.KillCount); entry.UpdateDeathCount(evnt.DeathCount); } } }
public static void JoinLobby(string serverName, IProtocolToken connectToken = null) { foreach (var session in BoltNetwork.SessionList) { var lobbyToken = SWMatchmaking.GetLobbyToken(session.Key); Debug.Log("Server name : " + lobbyToken.ServerName); if (lobbyToken.ServerName.Equals(serverName)) { BoltNetwork.Connect(BoltNetwork.SessionList[session.Key], connectToken); } } }
public void CreateRandomGame() { _lobbyData.SetRandomGamemode(); PopulateMapList(); _lobbyData.SetRandomMap(); SWMatchmaking.SetLobbyData(_lobbyData); Debug.Log("Creating random game for " + _lobbyData.ChosenGamemode); SWMatchmaking.CreateLobby(); if (OnGameCreated != null) { OnGameCreated.Invoke(); } }
public override void Disconnected(BoltConnection connection) { var joinToken = (JoinToken)connection.ConnectToken; if (BoltNetwork.IsServer) { var playerCount = SWMatchmaking.GetCurrentLobbyPlayerCount(); LobbyPlayerLeft lobbyPlayerLeftEvent = LobbyPlayerLeft.Create(); lobbyPlayerLeftEvent.LobbyPlayerCount = playerCount; lobbyPlayerLeftEvent.PlayerID = (int)connection.ConnectionId; lobbyPlayerLeftEvent.PlayerNickname = joinToken.Nickname; lobbyPlayerLeftEvent.Send(); } }
// PUBLIC public void StartNextGame() { if (BoltNetwork.IsServer) { SWMatchmaking.SetLobbyData(_lobbyData); var token = new Multiplayer.RoomProtocolToken() { Gamemode = _lobbyData.ChosenGamemode, PlayersCount = SWMatchmaking.GetCurrentLobbyPlayerCount() }; BoltNetwork.LoadScene(_lobbyData.ChosenMapName, token); } }
private IEnumerator JoinBoltLobby(string serverName) { while (!(BoltNetwork.IsClient && BoltNetwork.SessionList.Count > 0)) { yield return(new WaitForEndOfFrame()); } Debug.Log("[BOLT] Joining lobby ..."); SWMatchmaking.JoinLobby(serverName, new JoinToken() { Nickname = _playerSettings.Nickname }); _tinyLobbyPanel.SetActive(true); }
// PRIVATE private void SetLobbyData() { if (_lobbyData.Public) { _lobbyData.SetRandomName(); } _lobbyData.GameStarted = false; _lobbyData.CanBeJoined = true; _lobbyData.SetRandomGamemode(); _lobbyData.SetRandomMap(); VerifyLobbyDataSanity(); SWMatchmaking.SetLobbyData(_lobbyData); }
public override void SceneLoadLocalDone(string map, IProtocolToken token) { if (BoltNetwork.IsServer) { InitializeSpawns(); RoomInfoToken = (RoomProtocolToken)token; _playersCount = RoomInfoToken.PlayersCount; // Instantiate server kart var serverTeam = _teamAssigner.PickAvailableTeam(); AssignSpawn(SWMatchmaking.GetMyBoltId(), serverTeam); _teamAssigner.AddPlayer(serverTeam, SWMatchmaking.GetMyBoltId()); } }
public override void SessionListUpdated(Map <Guid, UdpSession> sessionList) { LobbyToken lobbyToken; int matchedLobbyCount = 0; foreach (var lobby in sessionList) { lobbyToken = SWMatchmaking.GetLobbyToken(lobby.Key); if (_lobbyData.GamemodePool.Contains(lobbyToken.GameMode)) { matchedLobbyCount++; } } UpdateCurrentMatchedLobbies(matchedLobbyCount); }
private void CheckTimer() { if (BoltNetwork.IsServer && _timer > _secondsBeforeLaunchingGame && (1 + SWMatchmaking.GetCurrentLobbyPlayerCount()) >= _minimumPlayersToAutomaticLaunch) { ResetTimer(); if (OnAutomaticLaunch != null) { OnAutomaticLaunch.Invoke(); } } else if (BoltNetwork.IsClient && _timer > _secondsBeforeCreatingGame && !_createGamePanelOpen) { _createGamePanelOpen = true; if (OnNoLobbyFound != null) { OnNoLobbyFound.Invoke(); } } }
// PRIVATE private void InstantiateKart(Vector3 spawnPosition, Quaternion spawnRotation, Team team, RoomProtocolToken roomProtocolToken) { GameObject myKart; if (roomProtocolToken != null) { myKart = BoltNetwork.Instantiate(BoltPrefabs.Kart, roomProtocolToken); } else { Debug.LogError("RoomToken not set."); myKart = BoltNetwork.Instantiate(BoltPrefabs.Kart); } _playerSettings.ColorSettings = _gameSettings.TeamsListSettings.GetSettings(team); myKart.GetComponentInChildren <Health.Health>().SetInvincibilityForXSeconds(_playerSettings.InvicibilityOnSpawnDuration); myKart.transform.position = spawnPosition; myKart.transform.rotation = spawnRotation; PlayerInfo.Me = myKart.GetComponent <PlayerInfo>(); myKart.GetComponent <PlayerInfo>().Nickname = _playerSettings.Nickname; myKart.GetComponent <PlayerInfo>().OwnerID = SWMatchmaking.GetMyBoltId(); myKart.GetComponent <PlayerInfo>().Team = team; myKart.GetComponent <BoltEntity>().GetState <IKartState>().Team = (int)team; myKart.GetComponent <BoltEntity>().GetState <IKartState>().OwnerID = SWMatchmaking.GetMyBoltId(); PlayerReady playerReadyEvent = PlayerReady.Create(); playerReadyEvent.Nickname = _playerSettings.Nickname; playerReadyEvent.PlayerID = SWMatchmaking.GetMyBoltId(); playerReadyEvent.Team = (int)team; playerReadyEvent.KartIndex = _playerSettings.KartIndex; playerReadyEvent.CharacterIndex = _playerSettings.CharacterIndex; playerReadyEvent.Entity = myKart.GetComponent <BoltEntity>(); playerReadyEvent.Send(); }
// PUBLIC public void CreateLobby() { SWMatchmaking.SetRegion((int)udpkit.platform.photon.PhotonRegion.Regions.BEST_REGION); SWMatchmaking.CreateLobby(); StartCoroutine(WaitForLobbyCreated()); }
// PUBLIC public void SetRegion(int regionID) { SWMatchmaking.SetRegion(regionID); }