Пример #1
0
 public static void DoPotager(HeroConstructor hero, Enemy enemy)
 {
     Console.WriteLine(enemy.GetName() + " a lancé l'attaque: " + potager.GetName() + "!");
     hero.SetHp(hero.GetHp() - (potager.GetDamage() + enemy.GetAtt() - hero.GetDef()));
     Console.WriteLine(enemy.GetName() + " vous a tappé pour " + (potager.GetDamage() + enemy.GetAtt()) + " - " + hero.GetDef() + "armure = " + (potager.GetDamage() + enemy.GetAtt() - hero.GetDef()) + " dommages");
     Console.WriteLine("il vous reste " + hero.GetHp() + " pvs");
 }
Пример #2
0
 public static void DoEtalage(HeroConstructor hero, Enemy enemy)
 {
     Console.WriteLine(hero.GetName() + " a lancé l'attaque: " + etalage.GetName() + "!");
     hero.SetDef(hero.GetDef() - 10);
     enemy.SetHp(enemy.GetHp() - (etalage.GetDamage() + hero.GetAtt() - enemy.GetDef()));
     Console.WriteLine("Vous avez infligé " + (etalage.GetDamage() + hero.GetAtt() - enemy.GetDef()) + " et perdu 10 de défense");
 }
Пример #3
0
 public static void DoFlambage(HeroConstructor hero, Enemy enemy)
 {
     Console.WriteLine(hero.GetName() + " a lancé l'attaque: " + flambage.GetName() + "!");
     enemy.SetHp(enemy.GetHp() - (flambage.GetDamage() + hero.GetAtt() - enemy.GetDef()));
     hero.SetAtt(hero.GetAtt() + 25);
     Console.WriteLine("Vous avez infligé " + (flambage.GetDamage() + hero.GetAtt() - enemy.GetDef()) + " et augmenté votre de 25!!");
 }
Пример #4
0
        //fonction appelée a chaque fois que le héros se déplace
        //lance également le combat si on va sur une case contenant un ennemi
        public void MovePlayer(HeroConstructor hero)
        {
            MapCase currentCase = FindHero();
            MapCase droite      = FindCase(currentCase.GetX() + 1, currentCase.GetY());
            MapCase gauche      = FindCase(currentCase.GetX() - 1, currentCase.GetY());
            MapCase bas         = FindCase(currentCase.GetX(), currentCase.GetY() - 1);
            MapCase haut        = FindCase(currentCase.GetX(), currentCase.GetY() + 1);

            ConsoleKeyInfo direction = Console.ReadKey();

            if (direction.KeyChar == 'z' && haut.GetY() <= 14)
            {
                currentCase.SetHeroHere(false);
                haut.SetHeroHere(true);
            }
            else if (direction.KeyChar == 'd' && droite.GetX() <= 14)
            {
                currentCase.SetHeroHere(false);
                droite.SetHeroHere(true);
            }
            else if (direction.KeyChar == 's' && bas.GetY() >= 1)
            {
                currentCase.SetHeroHere(false);
                bas.SetHeroHere(true);
            }
            else if (direction.KeyChar == 'q' && gauche.GetX() >= 1)
            {
                currentCase.SetHeroHere(false);
                gauche.SetHeroHere(true);
            }
        }
Пример #5
0
 public static void DoSpores(HeroConstructor hero, Enemy enemy)
 {
     Console.WriteLine(enemy.GetName() + " a lancé l'attaque: " + spores.GetName() + "!");
     hero.SetHp(hero.GetHp() - (spores.GetDamage() + enemy.GetAtt()));
     Console.WriteLine(enemy.GetName() + " vous a tappé pour " + (spores.GetDamage() + enemy.GetAtt()) + " - 0 armure = " + (spores.GetDamage() + enemy.GetAtt()) + " dommages");
     hero.SetAtt(hero.GetAtt() - 10);
     Console.WriteLine("votre attaque diminue de 10");
 }
Пример #6
0
 public static void UseGingembre(HeroConstructor hero, int heroMaxHp)
 {
     if (hero.GetHp() + 50 <= heroMaxHp)
     {
         hero.SetHp(hero.GetHp() + 50);
     }
     else
     {
         hero.SetHp(heroMaxHp);
     }
     Console.WriteLine("Vous avez récupéré 50hp !!");
 }
Пример #7
0
        //at
        public static void DoJulienne(HeroConstructor hero, Enemy enemy)
        {
            Console.WriteLine(hero.GetName() + " a lancé l'attaque: " + julienne.GetName() + "!");
            int total = enemy.GetHp();

            enemy.SetHp(enemy.GetHp() - (julienne.GetDamage() + hero.GetAtt() - enemy.GetDef()));
            enemy.SetHp(enemy.GetHp() - (int)((julienne.GetDamage() + hero.GetAtt()) / 2));
            enemy.SetHp(enemy.GetHp() - (int)((julienne.GetDamage() + hero.GetAtt()) / 4));
            Console.WriteLine("Premier coup ... " + (julienne.GetDamage() + hero.GetAtt() - enemy.GetDef()));
            Console.WriteLine("Deuxième coup ..... " + (int)((julienne.GetDamage() + hero.GetAtt()) / 2));
            Console.WriteLine("Troisième coup ........ " + (int)((julienne.GetDamage() + hero.GetAtt()) / 4));
            Console.WriteLine("Total " + (total - enemy.GetHp()));
        }
Пример #8
0
 public static void DoBasicAttack(Attack atk, HeroConstructor hero, Enemy enemy)
 {
     if ((atk.GetDamage() + hero.GetAtt()) <= enemy.GetDef())
     {
         Console.WriteLine(hero.GetName() + " a lancé l'attaque: " + atk.GetName() + "!");
         Console.WriteLine("l'attaque à été complètement bloquée!!!");
     }
     else
     {
         Console.WriteLine(hero.GetName() + " a lancé l'attaque: " + atk.GetName() + "!");
         enemy.SetHp(enemy.GetHp() - (atk.GetDamage() + hero.GetAtt() - enemy.GetDef()));
         Console.WriteLine("vous avez tappé pour " + (atk.GetDamage() + hero.GetAtt()) + " - " + enemy.GetDef() + "armure = " + (atk.GetDamage() + hero.GetAtt() - enemy.GetDef()) + " dommages");
     }
 }
Пример #9
0
 public static void DoHachage(HeroConstructor hero, Enemy enemy, int enemyMaxHp)
 {
     Console.WriteLine(hero.GetName() + " a lancé l'attaque: " + hachage.GetName() + "!");
     if (enemy.GetHp() <= enemyMaxHp / 2)
     {
         enemy.SetHp(enemy.GetHp() - ((hachage.GetDamage() + hero.GetAtt()) * 2 - enemy.GetDef()));
         Console.WriteLine("Execution!! " + ((hachage.GetDamage() + hero.GetAtt()) * 2));
     }
     else
     {
         Console.WriteLine("Pas d'execution, dommages normaux.." + (hachage.GetDamage() + hero.GetAtt()));
         enemy.SetHp(enemy.GetHp() - (hachage.GetDamage() + hero.GetAtt() - enemy.GetDef()));
     }
 }
Пример #10
0
        public static void DoPyrolise(HeroConstructor hero, Enemy enemy)
        {
            Console.WriteLine("Vous a lancé l'attaque: " + pyrolise.GetName() + "!");
            Random r    = new Random(DateTime.Now.Millisecond);
            int    alea = r.Next(1, 5);

            if (alea == 1)
            {
                Console.WriteLine("Surchauffe!! l'attaque à raté..");
            }
            else if (alea > 1)
            {
                enemy.SetHp(enemy.GetHp() - (pyrolise.GetDamage() + hero.GetAtt() - enemy.GetDef()));
                Console.WriteLine("Réussite! vous avez tappé pour " + (pyrolise.GetDamage() + hero.GetAtt()) + " - " + enemy.GetDef() + "armure = " + (pyrolise.GetDamage() + hero.GetAtt() - enemy.GetDef()) + " dommages");
            }
        }
Пример #11
0
        public void StartGame()
        {
            //on crée le hero, on lui donne un inventaire et une liste d'attaques
            hero = HeroConstructor.CreateHero();
            // on génère les attaques de chaque ennemi
            foreach (Enemy enemy in enemies)
            {
                enemy.SetAttackEnemy();
            }
            foreach (Boss boss in boss)
            {
                boss.SetAttackEnemy();
            }

            //on crée la map et on spawn le joueur dedans
            map = new Map();
            map.CreateMap();
            map.FillMap(hero, enemies);

            GameRun();
        }
Пример #12
0
        public bool Fight(HeroConstructor hero, Enemy enemy)
        {
            string option;
            bool   tourJoueur = true;
            bool   victoire;
            int    enemyHpReset  = enemy.GetHp();
            int    enemyAttReset = enemy.GetAtt();
            int    enemyDefReset = enemy.GetDef();
            int    heroHpReset   = hero.GetHp();
            int    heroAttReset  = hero.GetAtt();
            int    heroDefReset  = hero.GetDef();

            //début du combat

            while (true)
            {
                //tour de l'ennemi
                if (tourJoueur == false)
                {
                    Attack atk = enemy.ChoixAttackEnemy();

                    if (enemy.GetTheType() == "plaine" && atk == enemy.attackList[2])
                    {
                        EnemyPlaine.DoOgm(enemy);
                    }
                    else if (enemy.GetTheType() == "plaine" && atk == enemy.attackList[3])
                    {
                        EnemyPlaine.DoPotager(hero, enemy);
                    }
                    else if (enemy.GetTheType() == "foret" && atk == enemy.attackList[2])
                    {
                        EnemyForet.DoOgm2(enemy);
                    }
                    else if (enemy.GetTheType() == "foret" && atk == enemy.attackList[3])
                    {
                        EnemyForet.DoDoubleBaffe(hero, enemy);
                    }
                    else if (enemy.GetTheType() == "bossPlaine")
                    {
                        Enemy.DoBasicAttack(atk, hero, enemy);
                    }
                    else if (enemy.GetTheType() == "bossforet" && atk == enemy.attackList[0] || atk == enemy.attackList[1])
                    {
                        Enemy.DoBasicAttack(atk, hero, enemy);
                    }
                    else if (enemy.GetTheType() == "bossforet" && atk == enemy.attackList[2])
                    {
                        EnemyForet.DoDoubleBaffe(hero, enemy);
                    }
                    else if (enemy.GetTheType() == "bossforet" && atk == enemy.attackList[3])
                    {
                        Boss.DoSpores(hero, enemy);
                    }
                    else if (atk == enemy.attackList[0] || atk == enemy.attackList[1])
                    {
                        Enemy.DoBasicAttack(atk, hero, enemy);
                    }

                    tourJoueur = true;
                }
                if (hero.GetHp() <= 0)
                {
                    Console.WriteLine("Vous vous etes fait tuer par " + enemy.GetName());
                    //on reset les stats du joueur et de l'ennemi
                    hero.SetHp(heroHpReset);
                    hero.SetAtt(heroAttReset);
                    hero.SetDef(heroDefReset);
                    enemy.SetHp(enemyHpReset);
                    enemy.SetAtt(enemyAttReset);
                    enemy.SetDef(enemyDefReset);
                    return(victoire = false);
                }
                if (tourJoueur == true)

                {
                    Console.WriteLine("c'est votre tour!");
                    Console.WriteLine("Hp = " + hero.GetHp() + " /// Att = " + hero.GetAtt() + " /// Def = " + hero.GetDef());
                    option = FightMenu(enemy);
                    if (option == "attack")
                    {
                        hero.AttackMenu();
                        Attack atk = hero.ChoixAttaqueHero();

                        if (hero.GetClasse() == "Découpe" && atk == hero.GetAttacKList()[2])
                        {
                            AttackDecoupe.DoJulienne(hero, enemy);
                        }
                        else if (hero.GetClasse() == "Découpe" && atk == hero.GetAttacKList()[3])
                        {
                            AttackDecoupe.DoHachage(hero, enemy, enemyHpReset);
                        }
                        else if (hero.GetClasse() == "Cuisson" && atk == hero.GetAttacKList()[2])
                        {
                            AttackCuisson.DoFlambage(hero, enemy);
                        }
                        else if (hero.GetClasse() == "Cuisson" && atk == hero.GetAttacKList()[3])
                        {
                            AttackCuisson.DoPyrolise(hero, enemy);
                        }
                        else if (hero.GetClasse() == "Pâte" && atk == hero.GetAttacKList()[2])
                        {
                            AttackPate.DoMalaxage(hero, enemy);
                        }
                        else if (hero.GetClasse() == "Pâte" && atk == hero.GetAttacKList()[3])
                        {
                            AttackPate.DoEtalage(hero, enemy);
                        }
                        else if (atk == hero.GetAttacKList()[0] || atk == hero.GetAttacKList()[1])
                        {
                            Attack.DoBasicAttack(atk, hero, enemy);
                        }

                        tourJoueur = false;
                    }
                    else if (option == "herb")
                    {
                        Herb herb = hero.ChoixHerbs();
                        if (herb != null)
                        {
                            Console.WriteLine(hero.GetName() + " a utilisé: " + herb.GetName() + "!");

                            if (herb == herbs[0])
                            {
                                Herb.UseRomarin(enemy);
                            }
                            else if (herb == herbs[1])
                            {
                                Herb.UseThym(enemy);
                            }
                            else if (herb == herbs[2])
                            {
                                Herb.UseCoriandre(enemy);
                            }
                        }
                        else
                        {
                            Console.WriteLine("vous n'en n'avez pas dans votre inventaire!!");
                        }
                    }
                    else if (option == "spice")
                    {
                        Spice spice = hero.ChoixSpice();
                        if (spice != null)
                        {
                            Console.WriteLine(hero.GetName() + " a utilisé: " + spice.GetName() + "!");
                            if (spice == spices[0])
                            {
                                Spice.UsePaprika(hero);
                            }
                            else if (spice == spices[1])
                            {
                                Spice.UseCanelle(hero);
                            }
                            else if (spice == spices[2])
                            {
                                Spice.UseGingembre(hero, heroHpReset);
                            }
                        }
                        else
                        {
                            Console.WriteLine("vous n'en n'avez pas dans votre inventaire!!");
                        }
                    }
                    else if (option == "infos")
                    {
                        enemy.StatsMenuEnemy();
                        enemy.AttackMenuEnemy();
                    }

                    if (enemy.GetHp() > 0)
                    {
                        Console.WriteLine(enemy.GetName() + " a " + enemy.GetHp() + "hp");
                    }
                }
                if (enemy.GetHp() <= 0)
                {
                    Console.WriteLine(enemy.GetName() + " est mort!!");
                    //on reset les stats du joueur et de l'ennemis
                    hero.SetHp(heroHpReset);
                    hero.SetAtt(heroAttReset);
                    hero.SetDef(heroDefReset);
                    enemy.SetHp(enemyHpReset);
                    enemy.SetAtt(enemyAttReset);
                    enemy.SetDef(enemyDefReset);

                    if (hero.getXp() + enemy.xp >= hero.getNextLvl())
                    {
                        Console.WriteLine("Vous avez gagné un niveau!!");
                        Console.WriteLine(hero.GetName() + " passe niveau " + (hero.getLvl() + 1) + "!!!");
                        Console.WriteLine("Hp --> +100 | Att --> +10 | Def --> +10");
                        hero.SetXp(enemy.xp - (hero.getNextLvl() - hero.getXp()));
                        hero.SetLvl(hero.getLvl() + 1);
                        hero.SetNextLvl(hero.getNextLvl() * 2 + 50);
                        hero.SetHp(hero.GetHp() + 100);
                        hero.SetAtt(hero.GetAtt() + 10);
                        hero.SetDef(hero.GetDef() + 10);
                    }
                    else if (hero.getXp() + enemy.xp < hero.getNextLvl())
                    {
                        hero.SetXp(hero.getXp() + enemy.xp);
                    }

                    if (enemy.GetTheType() == "bossplaine" || enemy.GetTheType() == "bossforet" || enemy.GetTheType() == "bossmer" || enemy.GetTheType() == "bossdesert" || enemy.GetTheType() == "bossmontagne" || enemy.GetTheType() == "bossruine")
                    {
                        Console.WriteLine("Vous avez gagné \"" + enemy.reward.GetName() + "\"!!!");
                        hero.inventory.ingredientList.Add(enemy.reward);
                    }
                    Console.ReadLine();
                    return(victoire = true);
                }
            }
        }
Пример #13
0
 public static void UseCanelle(HeroConstructor hero)
 {
     hero.SetDef(hero.GetDef() + 20);
     Console.WriteLine("Votre défense a augmenté de 20!");
 }
Пример #14
0
 public static void UsePaprika(HeroConstructor hero)
 {
     hero.SetAtt(hero.GetAtt() + 20);
     Console.WriteLine("Votre attaque a augmenté de 20!");
 }
Пример #15
0
        public void FillMap(HeroConstructor hero, Enemy[] enemies)
        {
            //instanciation du héro
            for (int i = 0; i < cases.Count; i++)
            {
                if (cases[i].GetX() == 3 && cases[i].GetY() == 6)
                {
                    hero.posX = 3;
                    hero.posY = 6;
                    cases[i].SetHeroHere(true);
                }

                //instanciation des oigons des plaines
                else if (cases[i].GetX() == 1 && cases[i].GetY() == 4)
                {
                    cases[i].enemyHere = enemies[0];
                }
                else if (cases[i].GetX() == 2 && cases[i].GetY() == 7)
                {
                    cases[i].enemyHere = enemies[0];
                }
                else if (cases[i].GetX() == 5 && cases[i].GetY() == 5)
                {
                    cases[i].enemyHere = enemies[0];
                }
                else if (cases[i].GetX() == 3 && cases[i].GetY() == 5)
                {
                    cases[i].enemyHere = enemies[0];
                }

                //ajout des patates des plaines
                else if (cases[i].GetX() == 2 && cases[i].GetY() == 3)
                {
                    cases[i].enemyHere = enemies[1];
                }
                else if (cases[i].GetX() == 1 && cases[i].GetY() == 9)
                {
                    cases[i].enemyHere = enemies[1];
                }
                else if (cases[i].GetX() == 4 && cases[i].GetY() == 8)
                {
                    cases[i].enemyHere = enemies[1];
                }

                //ajout des champis de la foret
                else if (cases[i].GetX() == 1 && cases[i].GetY() == 12)
                {
                    cases[i].enemyHere = enemies[2];
                }
                else if (cases[i].GetX() == 5 && cases[i].GetY() == 12)
                {
                    cases[i].enemyHere = enemies[2];
                }
                else if (cases[i].GetX() == 4 && cases[i].GetY() == 10)
                {
                    cases[i].enemyHere = enemies[2];
                }

                //ajout des tomates de la foret
                else if (cases[i].GetX() == 2 && cases[i].GetY() == 11)
                {
                    cases[i].enemyHere = enemies[3];
                }
                else if (cases[i].GetX() == 6 && cases[i].GetY() == 11)
                {
                    cases[i].enemyHere = enemies[3];
                }
                else if (cases[i].GetX() == 8 && cases[i].GetY() == 13)
                {
                    cases[i].enemyHere = enemies[3];
                }

                //ajout des coffres
                else if (cases[i].GetX() == 1 && cases[i].GetY() == 3)
                {
                    cases[i].chestHere = true;
                }
                else if (cases[i].GetX() == 2 && cases[i].GetY() == 8)
                {
                    cases[i].chestHere = true;
                }
                else if (cases[i].GetX() == 6 && cases[i].GetY() == 8)
                {
                    cases[i].chestHere = true;
                }
                else if (cases[i].GetX() == 1 && cases[i].GetY() == 14)
                {
                    cases[i].chestHere = true;
                }
                else if (cases[i].GetX() == 6 && cases[i].GetY() == 13)
                {
                    cases[i].chestHere = true;
                }
                else if (cases[i].GetX() == 9 && cases[i].GetY() == 11)
                {
                    cases[i].chestHere = true;
                }
            }
        }