Exemplo n.º 1
0
        public async Task <FireResponseDto> FireAsync(FireRequestDto parameters, Guid roomId, Guid playerId)
        {
            var content  = new StringContent(JsonConvert.SerializeObject(parameters), Encoding.UTF8, "application/json");
            var response = await httpClient.PostAsync($"/v2/rooms/{roomId}/game/fire?playerId={playerId}", content).ConfigureAwait(false);

            var json = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

            logger.Info($"{nameof(FireAsync)}:Response:{json}");

            return(JsonConvert.DeserializeObject <FireResponseDto>(json));
        }
Exemplo n.º 2
0
        private async Task <MapForEnemyDto> FireAsync(MapForEnemyDto opponentMap, RoomDto room)
        {
            while (true)
            {
                var(x, y) = (random.Next(10), random.Next(10));
                if (opponentMap.Cells[x, y].Status == CellForEnemyDtoStatus.Unknown)
                {
                    var fireRequest = new FireRequestDto {
                        X = x, Y = y
                    };
                    var fireResult = await client.FireAsync(fireRequest, room.Id, playerId).ConfigureAwait(false);

                    logger.Info($"Выстрел по координате {(x,y)} с результатом {fireResult.EnemyMap.Cells[x,y].Status}");
                    return(fireResult.EnemyMap);
                }
            }
        }
Exemplo n.º 3
0
 public Task <FireResponseDto> FireAsync(FireRequestDto parameters, Guid roomId, Guid playerId) =>
 RetryAsync(x => client.FireAsync(x.parameters, x.roomId, x.playerId), (parameters, roomId, playerId));