Esempio n. 1
0
        public override AbstractPreMenu AskPreDayMenu(ref AbstractDay day)
        {
            var choices = preMenu.availableChoices.FindAll(x => x.count > 0 && x.ShowBeforeDay());

            if (choices.Count == 0)
            {
                Console.WriteLine("Skipping Pre Day menu because no options available");
                return(preMenu);
            }

            int selectedChoice = -1;

            Console.WriteLine("\n////////////Pre day menu////////////////");
            Console.WriteLine("This menu allows you to choose some options before starting the planning");
            var            taskCount = (day.tasks != null) ? day.tasks.Count : 0;
            ConsoleRoadmap r         = new ConsoleRoadmap(this);

            r.ShowRoadmap();
            int curIndex = 1;

            foreach (var choice in choices)
            {
                if (choice.IsSelectable(out string msg))
                {
                    Console.WriteLine(curIndex + ")\t" + choice.GetName() + $" {choice.count}/{choice.maxCount}");
                }
                else
                {
                    Console.WriteLine("[Locked]\t" + choice.GetName());
                    Console.WriteLine("\t\t|\t" + msg);
                }
                curIndex++;
            }
            int quitChoice = curIndex;

            Console.WriteLine(quitChoice + ")\tClose the menu and continue");
            selectedChoice = SecureIntInput(1, curIndex, "Choose your option before starting the day");
            if (selectedChoice != quitChoice)
            {
                Console.WriteLine("Using choice ...");
                if (choices[selectedChoice - 1].IsSelectable(out string errorMsg))
                {
                    choices[selectedChoice - 1].Use(ref day, null);
                    AskPreDayMenu(ref day);
                }
                else
                {
                    Console.WriteLine("This feature cannot be used at the moment, try something else :\n" + errorMsg);
                    AskPreDayMenu(ref day);
                }
            }
            return(preMenu);
        }
Esempio n. 2
0
        public override AbstractPreMenu AskPreTaskMenu(ref AbstractDay d, AbstractTask t)
        {
            var choices = preMenu.availableChoices.FindAll(x => x.count > 0 && x.ShowBeforeTask());

            if (choices.Count == 0)
            {
                Console.WriteLine("Skipping Pre Day menu because no options available");
                return(preMenu);
            }

            int selectedChoice = -1;

            Console.WriteLine("\n//////////////Pre Task menu////////////////");
            Console.WriteLine("This menu allows you to choose some options before starting the planning");
            int            curIndex = 1;
            ConsoleRoadmap r        = new ConsoleRoadmap(this);

            r.ShowRoadmapDay(d);
            foreach (var choice in choices)
            {
                if (choice.IsSelectable(out string msg))
                {
                    Console.WriteLine(curIndex + ")\t" + choice.GetName() + $" {choice.count}/{choice.maxCount}");
                }
                else
                {
                    Console.WriteLine("[Locked]\t" + choice.GetName());
                    Console.WriteLine("\t|\t" + msg);
                }
                curIndex++;
            }
            int quitChoice = curIndex;

            Console.WriteLine(quitChoice + ")\tClose the menu and start task");
            selectedChoice = SecureIntInput(1, curIndex, "Choose your option before starting the task : " + t.Infos.name);
            if (selectedChoice != quitChoice)
            {
                Console.WriteLine("Using choice ...");
                choices[selectedChoice - 1].Use(ref d, t);
                AskPreTaskMenu(ref d, t);
            }
            return(preMenu);
        }