Example #1
0
        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);
            }
        }
Example #2
0
    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());
    }
Example #3
0
    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);
        });
    }
Example #4
0
        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);
        }
Example #5
0
        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();
                }
            }
        }
Example #6
0
        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);
        }
Example #7
0
 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;
 }