public static Hero GetHeroByPlayerID(int id) { var serviceProvider2 = DIConfiguration.ConfigurazioneHero(); HeroService heroService = serviceProvider2.GetService <HeroService>(); var heros = heroService.GetHeroByID(id); var presentHero = HeroService.areHeroPresent(heros); Hero fightingHero = new Hero(); //decido quale è l'eroe combattente if (presentHero) { Console.WriteLine("Inserisci il nome dell'eroe scelto:"); string heroName = Console.ReadLine(); foreach (var h in heros) { if (h.name == heroName) { fightingHero = h; } } } else { try { var newHero = heroService.DataNewHero(); var Hero = heroService.CreateHero(newHero, id); fightingHero = Hero; } catch (Exception e) { Console.WriteLine("Giocatore non creato" + e.Message); } } return(fightingHero); }
static void Main(string[] args) { //identificaton player ID (if any) otherwise create new player (int id, Player p) = Funzionalità.Funzionalità.MatchPredisposition(); menu: Console.WriteLine("A - CreaEroe e Nuova Partita\nB - Elimina Eroe\nC - Esci"); var menuCommand = Funzionalità.Funzionalità.isAdmin(p); //SAlvi il giocatore dcide di salvare -> poi si torna al menu //se non salvi if (menuCommand == "d") { goto menu; } else if (menuCommand == "a") { newHero: //recover (if any) the characters associated with the player's id otherwise character creation Hero h = Funzionalità.Funzionalità.GetHeroByPlayerID(id); newMatch: //Hero Weapons: choise between the waepons associated to the specific Hero class h.weapon = Funzionalità.Funzionalità.GetWeapons(h); //fetch of a monster (same or less level of the Hero) and match // match end when: 1) Hero success in the escape // 2) Monster win // 3) Player win h = Funzionalità.Funzionalità.Match(h); var serviceProvider2 = DIConfiguration.ConfigurazioneHero(); HeroService heroService = serviceProvider2.GetService <HeroService>(); Console.WriteLine("Vuoi sfidare un altro mostro??"); bool answer = Funz.CheckAnswer(); if (answer) // se answer = true { if (h.lifePoint == 0) { heroService.DeleteHero(h); Console.WriteLine("il personaggio precedente è stato eliminato!"); goto newHero; } Console.WriteLine("Vuoi cambiare personaggio?"); bool a = Funz.CheckAnswer(); if (a) { Funzionalità.Funzionalità.updateLevel(h); goto newHero; } else { h = Funzionalità.Funzionalità.updateLevel(h); //heroService.Update(h); goto newMatch; } } else //se non vuole continuare a gocare -> uscita { Console.WriteLine("Salvataggio dati"); //salvataggio dati h = Funzionalità.Funzionalità.updateLevel(h); heroService.Update(h); goto menu; } } else if (menuCommand == "b") { var serviceProvider2 = DIConfiguration.ConfigurazioneHero(); HeroService heroService = serviceProvider2.GetService <HeroService>(); Console.WriteLine("Hai scelto di eliminare un eroe!"); //Funzionalità.Funzionalità.GetHeroByPlayerID(id); //mi da gli eroi associati ad un id di un giocatore var heros = heroService.GetHeroByID(id); //var presentHero = HeroService.areHeroPresent(heros); //mi dice se ci sono eroi associati all'ID; //Console.WriteLine("I tuoi eroi sono: "); foreach (var h in heros) { Console.WriteLine($"Nome: {h.name}\t - Classe: {h.classPerson}\t - Livello: {h.level}\t - Punti Vita:{h.lifePoint}"); } Console.WriteLine("Inserisci il nome del personaggio che vuoi eliminare"); inserimento: try { var answer = Console.ReadLine(); foreach (var h in heros) { if (h.name == answer) { heroService.DeleteHero(h); } } Console.WriteLine("E stato eliminato!"); goto menu; } catch { Console.WriteLine("inserimento non valido"); goto inserimento; } } }