public async Task <IActionResult> AreaDeJogo(int id, string button) { Tentativa tentativa = Repositorio.ObterTentativa(id); HttpClient client = MyHttpClient.Client; string path = "/api/Play"; Playeraction acao = Playeraction.GoForward; switch (button) { case "Atacar": acao = Playeraction.Attack; break; case "Recuar": acao = Playeraction.GoBack; break; case "Examinar": acao = Playeraction.SearchArea; break; case "Fugir": acao = Playeraction.Flee; break; case "Poção": acao = Playeraction.DrinkPotion; break; case "Desistir": { acao = Playeraction.Quit; tentativa.FinalizarTentativa(); break; } } PlayRequest playRequest = new PlayRequest(id, acao); string json = JsonConvert.SerializeObject(playRequest); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, path); request.Content = new StringContent(json, System.Text.Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.SendAsync(request); if (!response.IsSuccessStatusCode) { return(Redirect("/")); } string json_r = await response.Content.ReadAsStringAsync(); GameState gs = JsonConvert.DeserializeObject <GameState>(json_r); if (button != "Desistir") { tentativa.AtualizarDados(gs); tentativa.ExecutarAcao(); } if (tentativa.JogoFinalizado) { ModeloDeHiscores modeloDeHiscores = new ModeloDeHiscores(tentativa.Nickname, tentativa.MoedasDeOuro, tentativa.Resultado, tentativa.ChaveNoBolso, tentativa.InimigosDerrotados, tentativa.InimigosFintados, tentativa.ContadorPesquisas, tentativa.ContadorItensEncontrados, tentativa.PocoesUsadas, tentativa.PocoesTotais); Repositorio.AddHiscores(modeloDeHiscores); return(View("JogoFinalizado", tentativa)); } else { return(View(tentativa)); } }