Example #1
0
        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));
            }
        }