//Restituisce la lista delle classi disponibili per il personaggio mostro public static List <Classe> ClassiPerMostro() { ClasseService classeService = serviceProvider.GetService <ClasseService>(); var classi = classeService.GetClassiFiltrate(0).ToList(); return(classi); }
static void Main(string[] args) { var serviceProvider = Configurazone.Configurazione(); EroeService eroeservice = serviceProvider.GetService <EroeService>(); GiocatoreService giocatoreService = serviceProvider.GetService <GiocatoreService>(); MostroService mostroService = serviceProvider.GetService <MostroService>(); ArmaService armaService = serviceProvider.GetService <ArmaService>(); ClasseService classeService = serviceProvider.GetService <ClasseService>(); LivelloService livelloService = serviceProvider.GetService <LivelloService>(); List <Giocatore> listaG = giocatoreService.GetAllGiocatori().ToList(); //inizio del gioco Console.WriteLine("Benvenuto in eroi contro mostri"); Giocatore giocatore = new Giocatore(); Console.WriteLine("Inserisci il tuo nome:"); string n = Console.ReadLine(); giocatore.Nome = n; Console.WriteLine(); //Controllo sul giocatore Partita.ControlloGiocatore(giocatore, listaG); giocatore = giocatoreService.GetGiocatore(n); int x = 0; do { //ogni volta che torno al menù vengono caricate le liste aggiornate List <Livello> listaLivelli = livelloService.GetAllLivelli().ToList(); List <Classe> listaClassi = classeService.GetAllClassi().ToList(); List <Arma> listaArmi = armaService.GetAllArmi().ToList(); List <Giocatore> listaGiocatori = giocatoreService.GetAllGiocatori().ToList(); List <Eroe> listaeroi = eroeservice.GetAllEroi().ToList(); List <Mostro> listaMostri = mostroService.GetAllMostri().ToList(); Console.WriteLine("Se vuoi iniziare una partita premi 1"); Console.WriteLine("Se vuoi creare un eroe premi 2"); Console.WriteLine("Se vuoi eliminare un eroe premi 3"); Console.WriteLine("Se vuoi vedere le statistiche premi 4"); //inserisco questa scelta solo se il giocatore ha la caratteristica richiesta if (giocatore.Ruolo == "Admin") { Console.WriteLine("Dato che sei Admin, se vuoi inserire un mostro premi 5"); } Console.WriteLine("Se vuoi uscire dal gioco premi un tasto"); char a = Console.ReadKey().KeyChar; Console.WriteLine(); switch (a) { case '1': //Scelgo l'eroe per la partita Eroe eroe = Partita.SceltaEroe(listaeroi, giocatore, listaClassi, listaArmi); //controllo di non aver inserito male i dati if (eroe == null) { giocatore.ListaEroi.Clear(); break; } //aggiorno i restanti campi eroe.Classe = classeService.GetClasseByID(eroe.ClasseID); eroe.Arma = armaService.GetArmaByID(eroe.ArmaID); eroe.Giocatore = giocatoreService.GetGiocatore(giocatore.Nome); eroe.GiocatoreID = eroe.Giocatore.ID; eroe.Livello = livelloService.GetLivello(eroe.LivelloID); if (eroe == null) { x = 0; break; } //Scelgo il mostro con la funzione random Mostro mostro = Partita.SceltaMostro(eroe, listaMostri); //Inizia la battaglia x = Partita.Battaglia(eroe, mostro); Console.WriteLine("Se vuoi giocare ancora premi 0"); char d = Console.ReadKey().KeyChar; Console.WriteLine(); if (d == '0') { giocatore.ListaEroi.Clear(); x = 0; break; } else { x = 1; } break; case '2': Eroe eroe3 = Partita.CreazioneEroe(giocatore, listaClassi, listaArmi, listaeroi); break; case '3': Partita.VisualizzaEroi(listaeroi, giocatore); Console.WriteLine("Inserisci il nome dell'eroe che vuoi eliminare"); string nome = Console.ReadLine(); Eroe eroe2 = eroeservice.GetEroeByName(nome); if (eroe2.Nome == null) { Console.WriteLine("Non esiste questo eroe!"); break; } eroeservice.DeleteEroe(eroe2); break; case '4': Partita.VisualizzaStatistiche(giocatore, listaGiocatori, listaeroi); break; case '5': //nel caso in cui un giocatore Utente inserisca il 5 faccio un controllo e lo riporto al menù if (giocatore.Ruolo != "Admin") { Console.WriteLine("Scelta sbagliata, Torna al menu"); break; } Partita.CreazioneMostro(listaMostri, listaClassi, listaArmi, listaLivelli); Console.WriteLine("Il Mostro é stato creato, torna al menù"); break; default: x = 1; break; } } while (x == 0); }
/// <summary> /// Metodo Start che mostra il menù principale /// e fa partire il gioco /// </summary> public static void Start(Giocatore giocatore) { #region Dependency Injection var serviceProvider = DIConfig.Config(); HeroService heroService = serviceProvider.GetService <HeroService>(); ClasseService classeService = serviceProvider.GetService <ClasseService>(); ArmaService armaService = serviceProvider.GetService <ArmaService>(); //LevelService levelService = serviceProvider.GetService<LevelService>(); MostroService mostroService = serviceProvider.GetService <MostroService>(); var mostri = mostroService.GetAllMostri(); #endregion //Chiamo il menù delle opzioniprima di iniziare l'eventuale partita Helper.Menu(); //Catturo la scelta dell'utente da console bool IsCorrectUserInput = Int32.TryParse(Console.ReadLine(), out int key); Console.WriteLine(); //Se l'input è idoneo, per ogni opzione scelta //vengono eseguite le istruzioni corrispondenti if (IsCorrectUserInput) { switch (key) { #region CASO 1 NUOVO EROE case 1: //Giocatore può creare un nuovo eroe con il quale giocare #region CREAZIONE EROE //Richiesta Parametri in input da console Console.WriteLine("Inserisci il nome del tuo Eroe: "); string Nome = Console.ReadLine(); Console.WriteLine("CLASSI: "); var classi = classeService.GetAllClassi(); foreach (var cl in classi) { if (cl.Hero == true) { Console.WriteLine($"{cl.Nome}"); } } Console.WriteLine("Scegli la classe del tuo Eroe: "); string Classe = Console.ReadLine(); Console.WriteLine("ARMI: "); var armi = armaService.GetAllArmi(); foreach (var arma in armi) { if (arma.Classe == Classe) { Console.WriteLine($"{arma.Nome}"); } } Console.WriteLine("Scegli l'arma del tuo Eroe: "); string Arma = Console.ReadLine(); Hero hero = new Hero(Nome, Classe, Arma, giocatore); heroService.CreateHero(hero); //è stato creato un nuovo oggetto eroe, sia nel programma //nel database e può iniziare a giocare Console.WriteLine("Premi il tasto invio per iniziare a giocare!"); Console.ReadLine(); #endregion //GAME //Chiamo il metodo che gioca la battaglia eroe selezionato contro mostri //formata eventualmente da diversi scontri Turno.Game(hero, mostri, giocatore); break; #endregion #region CASO 2 ELIMINA EROE case 2: //Giocatore sceglie di eliminare un suo eroe Console.WriteLine("I Tuoi Eroi: "); var heros = heroService.GetAllHeros(); //Seleziono solo gli eroi del giocatore corrente foreach (var h in heros) { if (h.Giocatore.Nome == giocatore.Nome) { Console.WriteLine($"{h.Nome}"); } } Console.WriteLine("Seleziona l'Eroe da eliminare: "); string heroDel = Console.ReadLine(); Hero heroToDelete = heroService.GetHero(heroDel); bool deleted = heroService.DeleteHero(heroToDelete); if (deleted == true) { Console.WriteLine("L'operazione di cancellazione è avvenuta correttamente"); } else { Console.WriteLine("L'operazione di cancellazione NON è avvenuta correttamente"); } Console.ReadLine(); break; #endregion #region CASO 3 CONTINUA PARTITA EROE case 3: //il giocatore sceglie di continuare la partita con un suo eroe già esistente Console.WriteLine("Ecco i Tuoi Eroi: "); var eroi = heroService.GetAllHeros(); //Seleziono solo gli eroi associati al giocatore corrente foreach (var h in eroi) { if (h.Giocatore.Nome == giocatore.Nome) { Console.WriteLine($"{h.Nome}"); } } Console.WriteLine("Seleziona l'Eroe col quale giocare la partita: "); string nomeHero = Console.ReadLine(); hero = heroService.GetHero(nomeHero); //GAME //Chiamo il metodo che gioca la battaglia eroe selezionato contro mostri //formata eventualmente da diversi scontri Turno.Game(hero, mostri, giocatore); break; #endregion case 'q': //Il giocatore sceglie di uscire dal gioco Console.WriteLine("Arrivederci!!!"); Console.ReadLine(); break; default: //caso in cui il giocatore ha inserito un input errato Console.WriteLine("Riprovare."); Console.ReadLine(); break; } } Console.Clear(); }