예제 #1
0
        /// <summary>
        /// Metodo per ottenere il massimo livello possibile con i punti accumulati minori o uguali a quelli dell'eroe
        /// </summary>
        /// <returns></returns>
        private static Livello GetMaxLivelloWithPuntiAccumulatiLessOrEqualThan()
        {
            Livello newLivello = Eroe.Livello;

            for (int i = Eroe.Livello.ID; i < ListaLivelli.Count(); i++)
            {
                if (ListaLivelli[i].PuntiAccumulati <= Eroe.PuntiAccumulati)
                {
                    newLivello = ListaLivelli[i];
                }
                else
                {
                    return(newLivello);
                }
            }
            return(newLivello);
        }
예제 #2
0
        /// <summary>
        /// Metodo pubblico da chiamare da program per avviare il gioco
        /// </summary>
        public static void MostriVSEroiMain( )
        {
            Console.ForegroundColor = ConsoleColor.Cyan;

            //LogIn
            //Controllo che non siano generate eccezioni

            string input = "";

            do
            {
                LogIn();

                if (Giocatore == null) // Eccezione generata
                {
                    do
                    {
                        Console.WriteLine("C'è stato un problema. Digita R per riprovare o U per uscire");
                        input = Console.ReadLine();
                        if (input != "R" && input != "U")
                        {
                            Console.WriteLine("Comando non valido");
                        }
                    } while (input != "R" && input != "U");

                    if (input == "U")
                    {
                        Console.ResetColor();
                        return;
                    }
                }
            } while (input == "R");


            // Salvo i possibili livelli in ListaLivelli
            // e controllo non siano generate eccezioni

            input = "";
            IEnumerable <Livello> livelliTemp;

            do
            {
                livelliTemp = livelloService.GetAllLivelli();

                if (livelliTemp == null)  // Eccezione generata
                {
                    do
                    {
                        Console.WriteLine("C'è stato un problema per ottenere i livelli per il gioco. Digita R per riprovare o U per uscire");
                        input = Console.ReadLine();
                        if (input != "R" && input != "U")
                        {
                            Console.WriteLine("Comando non valido");
                        }
                    } while (input != "R" && input != "U");

                    if (input == "U")
                    {
                        Console.ResetColor();
                        return;
                    }
                }
            } while (input == "R");



            ListaLivelli = livelliTemp.ToList();

            ListaLivelli.Sort(delegate(Livello l1, Livello l2) { return(l1.ID.CompareTo(l2.ID)); }); // ordino per sicurezza, potrebbero essere stati inseriti nel database non in ordine
            MaxLivello = ListaLivelli.Count();

            // Se Admin parte da MenuADMIN con possibilità di andare al Menu giocatore e da lì tornare al MenuADMIN
            // controllo che non siano generate eccezioni
            if (Giocatore.IsAdmin == true && MenuADMIN() || Giocatore.IsAdmin == false)
            {
                bool cont;
                do
                {
                    cont = false;
                    switch (MenuUser())
                    {
                    case MenuReturn.Esci:
                        Console.ResetColor();
                        return;

                    case MenuReturn.IniziaPartita:
                        Partita();
                        cont = true;
                        break;

                    case MenuReturn.MenuAdmin:
                        if (MenuADMIN())
                        {
                            cont = true;
                        }
                        else
                        {
                            Console.ResetColor();
                            return;
                        }
                        break;
                    }
                } while (cont == true);
            }
            Console.ResetColor();
        }