Exemple #1
0
        public async Task <HttpResponseMessage> MakeHttpClientRequest(object data = null, Verbs method = Verbs.POST, Dictionary <string, string> headers = null)
        {
            HttpResponseMessage response = null;

            using (var httpClient = new HttpClient())
            {
                httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                if (headers != null)
                {
                    foreach (var header in headers)
                    {
                        httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
                    }
                }

                var content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(data), Encoding.UTF8, "application/json");

                if (method.Equals(Verbs.POST))
                {
                    if (data == null)
                    {
                        data = new { }
                    }
                    ;

                    response = await httpClient.PostAsync($"{Url}", content);
                }
                else if (method.Equals(Verbs.GET))
                {
                    response = await httpClient.GetAsync(this.Url);
                }
                return(response);
            }
        }
    }
 /*
  * Method to reset the quit and restart.
  */
 private bool IsSingleVerbCommand(Verbs verb)
 {
     if (verb.Equals(Verbs.Swim) || verb.Equals(Verbs.Bunyon) || verb.Equals(Verbs.Jump) || verb.Equals(Verbs.Release) ||
         verb.Equals(Verbs.Away) || verb.Equals(Verbs.Suicide) || verb.Equals(Verbs.Inventory))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
        /*
         * Game Controller that handles the execution of game logic
         */
        public void NewQuest()
        {
            while (gameInProgress)
            {
                while (!quit && !restart && gameInProgress)
                {
                    DisplayAreaText();
                    Output.OutputInstance.NewLine();
                    cmd = input.GetUserInput();

                    Directions direct = input.ValidDirection(cmd[0]);

                    if (!direct.Equals(Directions.Invalid))
                    {
                        //Special check for when entering the long D hallway into darkness and returnign safely from the darkness. Otherwsie, darkness sends to misty room.
                        if (!AreaEvent.AreaEventInstance.LampOn && previousArea.GetAreaIdentifier().Equals(AdventurelandAreas.Long_Downsloping_Hallway) && direct.Equals(Directions.Up))
                        {
                            previousArea = currentArea;
                            currentArea  = quest.GetArea(AdventurelandAreas.Semi_Dark_Hole);
                        }
                        else
                        {
                            previousArea = currentArea;
                            currentArea  = quest.GetArea(processor.ProcessDirection(direct, currentArea));
                        }

                        if (currentArea == null)
                        {
                            Output.OutputInstance.InvalidArea();
                            currentArea = previousArea;
                        }
                        else if (AreaEvent.AreaEventInstance.LampOn)
                        {
                            AreaEvent.AreaEventInstance.LampCount = AreaEvent.AreaEventInstance.LampCount - 1;
                            if (LampDarknessCheck(currentArea))
                            {
                                currentArea = quest.GetArea(AdventurelandAreas.Large_Misty_Room);
                            }
                            else if (AreaEvent.AreaEventInstance.LampCount == 0)
                            {
                                Output.OutputInstance.LampOutOfEnergy();
                                AreaEvent.AreaEventInstance.LampOn = false;
                            }
                        }
                    }
                    else
                    {
                        Verbs verb = input.ValidVerb(cmd[0]);
                        if (verb.Equals(Verbs.Restart))
                        {
                            restart = true;
                            Output.OutputInstance.PrintRestart();
                            Output.OutputInstance.NewLine();
                        }
                        else if (verb.Equals(Verbs.Quit))
                        {
                            quit = true;
                            Output.OutputInstance.PrintQuit();
                            Output.OutputInstance.NewLine();
                        }
                        else if (!verb.Equals(Verbs.Invalid))
                        {
                            singleVerb = IsSingleVerbCommand(verb);

                            noun = "";

                            if (!singleVerb)
                            {
                                for (int i = 1; i < cmd.Count; i++)
                                {
                                    noun += cmd[i] + "_";
                                }
                            }

                            if (noun.Length > 0 || singleVerb)
                            {
                                AdventurelandItems item;
                                Verbs verb2;

                                if (noun.Length > 0)
                                {
                                    item = input.ValidItem(noun); //removes the last appendeed _
                                    if (item.Equals(AdventurelandItems.Invalid) || (item.Equals(AdventurelandItems.Bees) && AreaEvent.AreaEventInstance.BeesRemoved))
                                    {
                                        item = input.CheckShortCut(noun);
                                    }
                                    verb2 = input.ValidVerb(noun);
                                }
                                else
                                {
                                    item  = AdventurelandItems.Invalid;
                                    verb2 = Verbs.Invalid;
                                }

                                if (!item.Equals(AdventurelandItems.Invalid) || !verb2.Equals(Verbs.Invalid) || singleVerb)
                                {
                                    checkIfAreaChanged = currentArea;

                                    processor.ProcessVerb(verb, verb2, item, ref currentArea, quest);

                                    if (checkIfAreaChanged != currentArea)
                                    {
                                        previousArea = checkIfAreaChanged;
                                    }
                                }
                                else
                                {
                                    Output.OutputInstance.InvalidCommand();
                                }
                            }
                            else if (verb.Equals(Verbs.Help))
                            {
                                processor.DoHelp();
                            }
                            else if (verb.Equals(Verbs.Score))
                            {
                                processor.DoScore();
                            }
                            else if (verb.Equals(Verbs.UWU))
                            {
                                Output.OutputInstance.UWU();
                            }
                            else
                            {
                                Output.OutputInstance.InvalidCommand();
                            }
                        }
                        else
                        {
                            Output.OutputInstance.InvalidCommand();
                        }
                    }
                    if (!AreaEvent.AreaEventInstance.LampOn && currentArea.GetDark())
                    {
                        previousArea = currentArea;
                        currentArea  = quest.GetArea(AdventurelandAreas.Darkness);
                    }
                    else if (AreaEvent.AreaEventInstance.LampOn && currentArea.Equals(quest.GetArea(AdventurelandAreas.Darkness)))
                    {
                        currentArea = previousArea;
                    }
                    if (AreaEvent.AreaEventInstance.ChiggerBite && !AreaEvent.AreaEventInstance.MudApplied)
                    {
                        if (AreaEvent.AreaEventInstance.ChiggerCount == 0)
                        {
                            Output.OutputInstance.ChiggerKilledPlayer();
                            currentArea = quest.GetArea(AdventurelandAreas.Large_Misty_Room);
                            AreaEvent.AreaEventInstance.ChiggerBite  = false;
                            AreaEvent.AreaEventInstance.ChiggerCount = CHIGGER_COUNT;
                        }
                        else
                        {
                            AreaEvent.AreaEventInstance.ChiggerCount--;
                        }
                    }
                    else if (AreaEvent.AreaEventInstance.MudApplied)
                    {
                        AreaEvent.AreaEventInstance.ChiggerBite  = false;
                        AreaEvent.AreaEventInstance.ChiggerCount = CHIGGER_COUNT;
                    }
                    if (Score.ScoreInstance.ScoreValue >= WINNING_NUMBER)
                    {
                        gameInProgress = false;
                        Output.OutputInstance.ScoreOutput();
                    }
                }
                gameInProgress = input.ProcessConfirmation();

                if (gameInProgress == true)
                {
                    ResumeGame();
                }
            }
        }