示例#1
0
 private void StartMachineTurn()
 {
     Turn.setTurnForComputer();                             // 0.Computer turn
     currentSelectedInsult = Computer.chooseRandomInsult(); // 1. Computer select question
     FillSelectedInsultText();                              // 2. Fill insult selected on screen
     FillWithResponses();                                   // 4. Show response selection and player resolve
 }
        // GET: Insults/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            try
            {
                if (id == null)
                {
                    return(NotFound());
                }

                // Préparation de l'appel à l'API
                string accessToken = await HttpContext.GetTokenAsync("access_token");

                HttpClient client = new HttpClient();
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);

                // Récurération des données et convertion des données dans le bon type
                string content = await client.GetStringAsync(_configuration["URLAPI"] + $"api/Insults/{id}");

                Insult insult = JsonConvert.DeserializeObject <Insult>(content);

                if (insult == null)
                {
                    return(NotFound());
                }

                return(View(insult));
            }
            catch (HttpRequestException)
            {
                return(Unauthorized());
            }
        }
        public async Task <IActionResult> Edit(int id, [Bind("InsultId,InsultName")] Insult insult)
        {
            try
            {
                if (id != insult.InsultId)
                {
                    return(NotFound());
                }

                // Préparation de l'appel à l'API
                string accessToken = await HttpContext.GetTokenAsync("access_token");

                HttpClient client = new HttpClient();
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);

                if (ModelState.IsValid)
                {
                    // Préparation de la requête update à l'API
                    StringContent       httpContent = new StringContent(insult.ToJson(), Encoding.UTF8, "application/json");
                    HttpResponseMessage response    = await client.PutAsync(_configuration["URLAPI"] + $"api/Insults/{id}", httpContent);

                    if (response.StatusCode != HttpStatusCode.NoContent)
                    {
                        return(BadRequest());
                    }
                    return(RedirectToAction(nameof(Index)));
                }
                return(View(insult));
            }
            catch (HttpRequestException)
            {
                return(Unauthorized());
            }
        }
        public async Task <ActionResult <Insult> > PostInsult(Insult insult)
        {
            _context.Insults.Add(insult);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetInsult", new { id = insult.InsultId }, insult));
        }
        public async Task <IActionResult> PutInsult(int id, Insult insult)
        {
            if (id != insult.InsultId)
            {
                return(BadRequest());
            }

            _context.Entry(insult).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!InsultExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
示例#6
0
    // Response selection listener
    // Only player can call a listener
    private void ResponseSelected(Insult insultInstance)
    {
        currentSelectedResponse = insultInstance;
        FillSelectedResponseText();

        //resolve player response
        var isResponseCorrect = currentSelectedResponse.isAValidResponse(currentSelectedInsult.id);

        resolvePlayerTurn(isResponseCorrect);
    }
示例#7
0
    // Insult selection listener
    // Only player can call a listener
    private void InsultSelected(Insult insultInstance)
    {
        currentSelectedInsult = insultInstance;
        FillSelectedInsultText();
        // Computer response to Player
        currentSelectedResponse = Computer.chooseRandomInsult();
        FillSelectedResponseText();

        //resolve computer response
        var isResponseCorrect = currentSelectedInsult.isAValidResponse(currentSelectedResponse.id);

        resolveComputerTurn(isResponseCorrect);
    }
示例#8
0
    public Insult[] GetInsultsArray()
    {
        var insults = new List <Insult>();

        for (int i = 0; i < connectedPlayers.Count; i++)
        {
            var p = connectedPlayers[i];
            if (i != curJudge)
            {
                var ins = new Insult();
                ins.caster   = p.name;
                ins.content  = p.receivedInsult;
                ins.casterID = p.id;
                insults.Add(ins);
            }
        }

        return(insults.ToArray());
    }
示例#9
0
 private void ResponseListener(Button button, Insult insultInstance)
 {
     button.onClick.AddListener(() => { ResponseSelected(insultInstance); });
 }
示例#10
0
    //**************************************

    //** Click Listeners *******************
    private void InsultListener(Button button, Insult insultInstance)
    {
        button.onClick.AddListener(() => { InsultSelected(insultInstance); });
    }
示例#11
0
    public static StoryNode FillStory()
    {
        Initialize();

        StoryNode root = CreateNode(
            "¡Luchemos!",
            new[] {
            "¡Adelante!"
        });

        StoryNode player_insults = CreateNode(
            "",
            new string[n_insults]);

        player_insults.OnNodeVisited = () =>
        {
            guybrush_animator.SetTrigger("game_started");
            pirate_animator.SetTrigger("game_started");
        };

        StoryNode[] player_insulted = new StoryNode[n_insults];
        StoryNode[] player_answered = new StoryNode[n_insults];

        StoryNode[] computer_insults = new StoryNode[n_insults];
        StoryNode[] computer_answers = new StoryNode[n_insults];

        StoryNode player_wins = CreateNode(
            "¡Está bien, tú ganas! ¡La victoria es tuya!",
            new string[] { "Menú principal",
                           "Jugar otra vez",
                           "Salir" });

        player_wins.IsFinal       = true;
        player_wins.OnNodeVisited = () =>
        {
            changeSpeaker(PIRATE);
        };

        StoryNode computer_wins = CreateNode(
            "¡Perdiste! ¡Tendrás que mejorar si quieres ser un digno rival para mí!",
            new string[] { "Menú principal",
                           "Jugar otra vez",
                           "Salir" });

        computer_wins.IsFinal       = true;
        computer_wins.OnNodeVisited = () =>
        {
            changeSpeaker(PIRATE);
        };

        for (int i = 0; i < n_insults; i++)
        {
            Insult insult = insults.insults[i];
            // player_insulted
            player_insulted[i] = CreateNode(
                insult.pirate,
                new string[] { "Siguiente" });
            // player_insults
            player_insults.Answers[i]  = insult.pirate;
            player_insults.NextNode[i] = player_insulted[i];
            // player_answered
            player_answered[i] = CreateNode(
                insult.guybrush,
                new[] { "Siguiente" });
            // computer_insults
            computer_insults[i] = CreateNode(
                insult.pirate,
                new string[n_insults]);
            // computer_answers
            computer_answers[i] = CreateNode(
                insult.guybrush,
                new[] { "Siguiente" });
        }

        for (int i = 0; i < n_insults; i++)
        {
            int index = i;
            // player_insulted
            player_insulted[i].OnNodeVisited = () =>
            {
                changeSpeaker(GUYBRUSH);
                int computer_answer = (Random.Range(0, 2) == 0 ? index : Random.Range(0, n_insults)); // Let's make the computer win the round the (50% + 50% * 1/16) of times
                player_insulted[index].NextNode[0] = computer_answers[computer_answer];
                insult_index = index;
            };
            // player_answered
            player_answered[i].OnNodeVisited = () =>
            {
                changeSpeaker(GUYBRUSH);
                answer_index = index;
                resolveRound(false, player_answered[index], player_insults, computer_insults, player_wins, computer_wins);
            };
            // computer_insults
            computer_insults[i].OnNodeVisited = () =>
            {
                guybrush_animator.SetTrigger("game_started");
                pirate_animator.SetTrigger("game_started");
                changeSpeaker(PIRATE);
                insult_index = index;
            };
            for (int j = 0; j < n_insults; j++)
            {
                computer_insults[i].Answers[j]  = insults.insults[j].guybrush;
                computer_insults[i].NextNode[j] = player_answered[j];
            }
            // computer_answers
            computer_answers[i].OnNodeVisited = () =>
            {
                changeSpeaker(PIRATE);
                answer_index = index;
                GameplayManager.WriteDialog(insults.insults[answer_index].guybrush);
                resolveRound(true, computer_answers[index], player_insults, computer_insults, player_wins, computer_wins);
            };
        }

        root.NextNode[0] = newRound(-1, player_insults, computer_insults);

        return(root);
    }
示例#12
0
 public void InsultAction(Image contextPanel) {
     Insult insult = new Insult();
     EventManager.AddRitual(insult);
     insult.triggerLightning();
 }