protected override async Task <string> GetTargetId()
        {
            var playerId   = playerData.Id;
            var usersTable = database.GetTable <Server.Player>();

            //TODO query not the whole table, but a limited chunck of players selected randomly
            var otherPlayers = await usersTable.Where(u => u.Id != playerId).ToListAsync();

            var result = otherPlayers[Random.Range(0, otherPlayers.Count)];

            database.CachePlayer(result);

            return(result.Id);
        }
Esempio n. 2
0
        private async Task AzureInit()
        {
            var playersTable        = database.GetTable <Server.Player>();
            var playerQuery         = playersTable.Where(u => u.DeviceId == SystemInfo.deviceUniqueIdentifier);
            var currentPlayerEntity = (await playersTable.ReadAsync(playerQuery)).FirstOrDefault();

            if (currentPlayerEntity != null)
            {
                id = currentPlayerEntity.Id;
            }
            else
            {
                var playerName = await GetPlayerNameInput();

                currentPlayerEntity = CreateNewUser(playerName);
                await playersTable.InsertAsync(currentPlayerEntity);

                id = currentPlayerEntity.Id;
            }

            database.CachePlayer(currentPlayerEntity);
        }