Exemplo n.º 1
0
        /// <summary>
        /// Displays and handles user inputs to create all the data needed
        /// for a castle. This method calls the OnCastleSaveEvent in order
        /// to save the user input data.
        /// </summary>
        public void CreateCastle()
        {
            int           answer, price = 0;
            bool          bCreating = true;
            string        userInput, castleName;
            string        tempRoomName, tempRoomDescription;
            List <string> features, histEvents;
            List <Tuple <string, string> > rooms;

            features   = new List <string> ();
            histEvents = new List <string> ();
            rooms      = new List <Tuple <string, string> > ();

            castleName = ConsoleUtil.UserInputNewCastleName();
            price      = ConsoleUtil.UserInputNewPrice();

            while (bCreating)
            {
                ConsoleDisplay.DisplayCastleCreateMenu(
                    castleName,
                    price,
                    features,
                    histEvents,
                    rooms);

                userInput = Console.ReadLine();
                answer    = ConsoleUtil.TryUserInputConvert(userInput);

                switch (answer)
                {
                case 1:
                    // Edit Name Here
                    castleName = ConsoleUtil.UserInputNewCastleName();
                    break;

                case 2:
                    ConsoleDisplay.DisplayPriceOfCastle();
                    price = ConsoleUtil.UserInputNewPrice();
                    break;

                case 3:
                    //Add Room + Description
                    ConsoleDisplay.DisplayRoomAddition();
                    tempRoomName = Console.ReadLine();
                    ConsoleDisplay.DisplayRoomDescription();
                    tempRoomDescription = Console.ReadLine();

                    rooms.Add(new Tuple <string, string> (tempRoomName, tempRoomDescription));
                    break;

                case 4:
                    //Add Feature
                    ConsoleDisplay.DisplayFeatureAddition();
                    features.Add(Console.ReadLine());
                    break;

                case 5:
                    //Add Historical Event
                    ConsoleDisplay.DisplayHistoricalEventAddition();
                    histEvents.Add(Console.ReadLine());
                    break;

                case 6:
                    //Save Castle
                    if (!OnCastleSaveEvent(castleName, price, features, histEvents, rooms))
                    {
                        ConsoleDisplay.ErrorCastleNameAlreadyTaken();
                    }
                    else
                    {
                        bCreating = false;
                    }
                    break;

                case 7:
                    bCreating = false;
                    break;
                }
            }
        }