// BOLT public override void BoltStartDone() // Used for In-Editor tests { RoomProtocolToken _roomProtocolToken = new RoomProtocolToken() { Gamemode = _gameMode, PlayersCount = 1, RoomInfo = "Solo" }; InstantiateKart(transform.position, transform.rotation, Team.Blue, _roomProtocolToken); // Scene specific position }
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()); } }
// 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(); }