Ejemplo n.º 1
0
        public async Task CreateHeroShouldCreateHeroInDatabase()
        {
            // Arrange
            HeroCreateInputModel inputModel = new HeroCreateInputModel()
            {
                Fraction = Fraction.Sheep, Gender = Gender.Male
            };
            HeroService heroService = this.GetHeroServiceInitialValues();

            // Act
            await heroService.CreateHero(inputModel);

            // Assert
            Assert.True(this.context.Heroes.Any());
        }
Ejemplo n.º 2
0
        public async Task CreateHeroShouldUseGenderAndFractionFromInputModel()
        {
            // Arrange
            Fraction             fraction   = Fraction.Pig;
            Gender               gender     = Gender.Female;
            HeroCreateInputModel inputModel = new HeroCreateInputModel()
            {
                Fraction = fraction, Gender = gender
            };
            HeroService heroService = this.GetHeroServiceInitialValues();

            // Act
            await heroService.CreateHero(inputModel);

            // Assert
            Assert.True(this.context.Heroes.Any(x => x.Fraction == fraction && x.Gender == gender));
        }
Ejemplo n.º 3
0
        public async Task CreateHeroShouldIgnoreNameInInputModel()
        {
            // Arrange
            HeroCreateInputModel inputModel = new HeroCreateInputModel()
            {
                Fraction = Fraction.Sheep, Gender = Gender.Male, Name = "Name"
            };
            HeroService heroService = this.GetHeroServiceInitialValues();

            // Act
            await heroService.CreateHero(inputModel);

            Hero hero = this.context.Heroes.First();

            // Assert
            Assert.Equal(UserName, hero.Name);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
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();
        }
 public void CreateHero(string name, string type, int id)
 {
     heroService.CreateHero(name, type, id);
 }