public Eroi CreateEroe(Giocatori giocatore)
        {
            Eroi eroe = new Eroi();

            //ID, Nome, Classe, Arma, Livello, TempoTotale = 0, PuntiVita
            //L'id lo inserisce il db

            //Il nome deve essere univoco, lo confronto con gli eroi già inseriti
            Console.WriteLine("Inserisci il nome del tuo eroe: ");
            string nome    = Console.ReadLine();
            bool   univoco = true;

            do
            {
                univoco = true;
                List <Eroi> listaEroi = new List <Eroi>(GetAllEroi());
                foreach (var item in listaEroi)
                {
                    if (nome == item.Nome)
                    {
                        Console.WriteLine("Il nome dell'eroe deve essere univoco, riprova: ");
                        nome    = Console.ReadLine();
                        univoco = false;
                    }
                }
            } while (univoco != true);
            eroe.Nome = nome;
            Console.WriteLine("Le classi disponibili sono: ");
            //Mostra lista di classi con filtro su eroe
            //var classiService = new ClassiService(new MockClassiRepository());
            var classiService = new ClassiService(new ADOClassiRepos());
            var classiEroi    = classiService.ListaClassiConFiltro(1);

            foreach (var item in classiEroi)
            {
                Console.WriteLine($"{item.ID} - {item.Nome}");
            }
            bool trovato = false;

            Console.WriteLine("Inserisci il numero della classe: ");
            do
            {
                bool corretto = Int32.TryParse(Console.ReadLine(), out int classe);
                if (corretto == true)
                {
                    foreach (var item in classiEroi)
                    {
                        if (item.ID == classe)
                        {
                            trovato     = true;
                            eroe.Classe = item.ID;
                            break;
                        }
                    }
                }
                if (corretto == false || trovato == false)
                {
                    Console.WriteLine("Classe non trovata, riprova");
                }
            } while (trovato == false);

            //Mostra lista di armi con filtro sulla classe dell'eroe
            //var armiService = new ArmiService(new MockArmiRepository());
            var armiService = new ArmiService(new ADOArmiRepos());
            var armiEroe    = armiService.ListaArmiConFiltro(eroe.Classe);

            foreach (var item in armiEroe)
            {
                Console.WriteLine($"{item.ID} - {item.Nome}");
            }
            bool trovataArma = false;

            Console.WriteLine("Inserisci il numero dell'arma che vuoi: ");
            do
            {
                bool corretto = Int32.TryParse(Console.ReadLine(), out int idArma);
                if (corretto == true)
                {
                    foreach (var item in armiEroe)
                    {
                        if (item.ID == idArma)
                        {
                            trovataArma = true;
                            eroe.Arma   = item.ID;
                            break;
                        }
                    }
                }
                if (corretto == false || trovataArma == false)
                {
                    Console.WriteLine("Arma non trovata, riprova:");
                }
            } while (trovataArma == false);
            eroe.Giocatore = giocatore.ID;

            //Tutti i nuovi eroi sono di livello 1
            eroe.Livello = 1;

            //Impostato a 0 perchè non ha ancora mai giocato
            eroe.TempoTotale = 0;

            //I punti vita sono relativi al livello
            //var livelliService = new LivelliService(new MockLivelliRepository());
            var livelliService = new LivelliService(new ADOLivelliRepos());
            var livelloDB      = livelliService.RitornaLivello(1);

            eroe.PuntiVita = livelloDB.PuntiVita;

            _repo.Create(eroe);

            //Devo restituirlo creato
            List <Eroi> eroi = new List <Eroi> (GetAllEroi());

            foreach (var item in eroi)
            {
                //Basta il nome perchè è univoco
                if (item.Nome == nome)
                {
                    return(item);
                }
            }
            return(new Eroi());
        }
Exemple #2
0
        public void CreaMostro()
        {
            Mostri mostro = new Mostri();

            //Nome, Classe, Arma, Livello, PuntiVita
            Console.WriteLine("Inserisci il nome del mostro: ");
            string nome = Console.ReadLine();
            //Il nome deve essere univoco
            bool univoco = true;

            do
            {
                univoco = true;
                List <Mostri> listaMostri = new List <Mostri>(TuttiIMostri());
                foreach (var item in listaMostri)
                {
                    if (nome == item.Nome)
                    {
                        Console.WriteLine("Il nome del mostro deve essere univoco, riprova: ");
                        nome    = Console.ReadLine();
                        univoco = false;
                    }
                }
            } while (univoco != true);
            mostro.Nome = nome;
            Console.WriteLine("Le classi disponibili sono: ");
            //Mostra lista di classi con filtro su mostro
            //var classiService = new ClassiService(new MockClassiRepository());
            var classiService = new ClassiService(new ADOClassiRepos());
            var classiEroi    = classiService.ListaClassiConFiltro(0);

            foreach (var item in classiEroi)
            {
                Console.WriteLine($"{item.ID} - {item.Nome}");
            }
            bool trovato = false;

            Console.WriteLine("Inserisci il numero della classe che vuoi: ");
            do
            {
                bool corretto = Int32.TryParse(Console.ReadLine(), out int idClasse);
                if (corretto == true)
                {
                    foreach (var item in classiEroi)
                    {
                        if (item.ID == idClasse)
                        {
                            trovato       = true;
                            mostro.Classe = item.ID;
                            break;
                        }
                    }
                }
                if (trovato != true || corretto == false)
                {
                    Console.WriteLine("Numero non corretto, riprova:");
                }
            } while (trovato == false);

            //Mostra la lista delle armi con filtro sulla categoria del mostro
            //var armiService = new ArmiService(new MockArmiRepository());
            var armiService = new ArmiService(new ADOArmiRepos());
            var armiEroe    = armiService.ListaArmiConFiltro(mostro.Classe);

            Console.WriteLine("Le armi disponibili sono: ");
            foreach (var item in armiEroe)
            {
                Console.WriteLine($"{item.ID} - {item.Nome}");
            }
            bool trovataArma = false;

            Console.WriteLine("Inserisci il numero dell'arma che vuoi: ");
            do
            {
                bool corretto = Int32.TryParse(Console.ReadLine(), out int idArma);
                if (corretto == true)
                {
                    foreach (var item in armiEroe)
                    {
                        if (item.ID == idArma)
                        {
                            trovataArma = true;
                            mostro.Arma = item.ID;
                            break;
                        }
                    }
                }
                if (trovataArma != true || corretto == false)
                {
                    Console.WriteLine("Numero non corretto, riprova:");
                }
            } while (trovataArma == false);
            //L'admin può scegliere il livello del mostro
            Console.WriteLine("Inserisci il livello del mostro da 1 a 5:");
            int livello = 0;

            do
            {
                bool corretto = Int32.TryParse(Console.ReadLine(), out livello);
                if (corretto == true && livello > 0 && livello < 6)
                {
                    break;
                }
                Console.WriteLine("Livello non corretto, riprova:");
            } while (true);
            mostro.Livello = livello;

            //I punti vita sono relativi al livello
            //var livelliService = new LivelliService(new MockLivelliRepository());
            var livelliService = new LivelliService(new ADOLivelliRepos());
            var livelloDB      = livelliService.RitornaLivello(livello);

            mostro.PuntiVita = livelloDB.PuntiVita;
            _repo.Create(mostro);
        }