void MoveToLoggedInPlayers(List <PlayerConnectionState> tempList) { for (int i = tempList.Count - 1; i >= 0; --i) { var player = tempList[i];// normally goes to db loggedInPlayers.Add(player); player.finishedLoginSuccessfully = true; tempList.RemoveAt(i); PlayerSaveState save = new PlayerSaveState(); // Fudge the accountId to be the temporary id save.accountId = player.tempId; OnNewPlayerLoggedIn?.Invoke(player, true, save); } }
public void SendPlayerSaveState(string defaultSaveState, PlayerSaveState stateFromServer) { PlayerSaveStatePacket packet = (PlayerSaveStatePacket)IntrepidSerialize.TakeFromPool(PacketType.PlayerSaveState); saveState = stateFromServer; packet.state = saveState; if (!saveState.hasState()) { // the player doesn't exist yet // so load the default state packet.state.name = "Player" + packet.state.accountId; packet.state.state.state = defaultSaveState; } Server.Send(packet, this.EntityId.SingleItemAsEnumerable()); }
private void NetworkInterface_OnClientConnected(int entityID, PlayerSaveState saveState) { MainThreadQueuer.Instance.AddMessage(() => { var go = GameObject.Instantiate(playerPrefab); var playerComp = go.GetComponent <ServerPlayer>(); //Init the player to itself and others playerComp.Init(entityID, networking); playerComp.SendPlayerSaveState(defaultSaveState, saveState); playerComp.SendInitData(playerComp); Debug.Log("Player connected: " + playerComp.EntityId); createdPlayers.Add(playerComp.EntityId, playerComp); }); }
private void ProcessUserAccountRequest(RequestSetup requestInProcess) { UserAccountRequest request = requestInProcess.request as UserAccountRequest; PlayerSaveState saveState = accountQuerier.GetPlayerSaveState( request.username.MakeString(), request.password.MakeString(), request.product_name.MakeString()); UserAccountResponse response = (UserAccountResponse)IntrepidSerialize.TakeFromPool(PacketType.UserAccountRequest); response.connectionId = request.connectionId; response.isValidAccount = saveState != null; if (saveState != null) { response.state = saveState; } ConnectionState cs = connections[requestInProcess.connectionId]; cs.Send(response); }
public void OnPointerClick(PointerEventData eventData) { if (GameManager.SaveManager.IsShipOwned(representedShip)) { GameManager.SaveManager.SelectShip(representedShip); if (selectedSfx != null) { GameManager.SoundManager.PlayGlobalSound(selectedSfx, ESoundType.Sfx); } } else { PlayerSaveState saveState = GameManager.SaveManager.SaveState; if (saveState.CanAfford(representedShip.Price)) { saveState.RemoveSpaceCredits(representedShip.Price); saveState.AddShipAsOwned(representedShip.Id); CheckOwnedState(); } } }
public void NewPlayerLoginResult(PlayerConnectionState playerConnection, bool success, PlayerSaveState save) { if (success == true) { int connectionId = nextGateWayPlayerConnectionId++; GatewayPlayer gp = new GatewayPlayer(connectionId, this, playerConnection, save.accountId); playerConnection.finishedLoginSuccessfully = success; // Get the server instance id lock (connectedLock) { players.Add(gp); } PassSaveStateToGameServer(playerConnection.gameId, connectionId, save); gp.HasNotifiedGameServer = true; } LoginCredentialValid lcv = (LoginCredentialValid)IntrepidSerialize.TakeFromPool(PacketType.LoginCredentialValid); lcv.isValid = success; playerConnection.Send(lcv); }
public ConnectedClient(int entityId, int socketId, ServerNetworking gameServer, PlayerSaveState saveState) { outgoingPackets = new List <BasePacket>(); incomingPackets = new List <BasePacket>(); SocketId = socketId; EntityId = entityId; this.saveState = saveState; this.gameServer = gameServer; }