public static AttaqueChoisie TypeAttaquePersonnage(Personnage perso) { var attType = new ClasseTypeAttaque { AttaqueArme = 60, AttaqueSort = 40, Item = 10 }; switch (perso.Race) { case PersonnageRace.Humain: attType = TypeAttSwitchClasse(perso.Classe, attType); break; case PersonnageRace.Nain: attType = TypeAttSwitchClasse(perso.Classe, attType); break; case PersonnageRace.Elfe: attType = TypeAttSwitchClasse(perso.Classe, attType); break; } attType.RandomType(); return(attType.Choix); }
private static void Attaque(Personnage attaquant, ref Personnage defenseur) { bool successoption = false; while (true) { var typeatt = TypeAttaquePersonnage(attaquant); switch (typeatt) { case AttaqueChoisie.AttaqueArme: attaquant.FrapperPersonnage(ref defenseur); successoption = true; break; case AttaqueChoisie.AttaqueSort: successoption = attaquant.LancerSortVsPerso(ref defenseur, null); break; case AttaqueChoisie.Item: successoption = attaquant.UtiliserItemVsPerso(ref defenseur); break; } if (!successoption) { continue; } //WaitAfterAtt Thread.Sleep(450); break; } }
private static Personnage CreationPersonnage() { Player = new Personnage(); //demander infos Player.CharacterCreation(); foreach (var arme in ListeArmes) { if (arme.NomObjet == "Mains Nues") { Player.Arme = arme; break; } } foreach (var armure in ListeArmures) { if (armure.NomObjet == "Vetements") { Player.Armure = armure; break; } } return(Player); }
public double DammageCalculatorMagicPerso(Personnage defenseur, Sort sort) { var rand = new Random(); var chance = ((double)rand.Next(-30, 31) / 100); var mulDmgAtt = MethodeCombat.Dommage(sort.TypeElement, defenseur.Armure.TypeElement); var dmg = ((PuissanceMagique * sort.Puissance) - (defenseur.Defense + defenseur.Armure.Defense)) * mulDmgAtt; if (dmg <= 1) { dmg = rand.Next(2, 7); } dmg = dmg + (dmg * chance); return(dmg); }
public static void Loot(ref Personnage joueur, int lootchances) { ObjInventaire loot = null; var rand = new Random(); var chances = rand.Next(0, 101); if (chances > lootchances) { loot = LootTable[rand.Next(0, LootTable.Count)]; } if (loot != null) { joueur.Inventaire.Add(loot); } else { Console.WriteLine("L'ennemi n'avais aucun objet de valeur!"); } }
public bool UtiliserItemVsPerso(ref Personnage defenseur) { if (Inventaire.Count != 0) { var rand = new Random(); var newList = new List <ObjConsumable>(); foreach (var i in Inventaire.ToList()) { if (i.ObjetCons != null) { newList.Add(i.ObjetCons); Inventaire.Remove(i); } } if (newList.Count != 0) { var item = newList[rand.Next(0, newList.Count)]; newList.Remove(item); if (newList.Count != 0) { foreach (var objConsumable in newList) { Inventaire.Add(new ObjInventaire(objConsumable)); } } var sort = item.ItemToSpell(); LancerSortVsPerso(ref defenseur, sort); return(true); } } return(false); }
public static void AttaqueEnnemi(ref Personnage persJ, ref Ennemi baddie) { bool win = false; var cond = persJ.Vitesse > baddie.Vitesse ? AttaqueCondition.Attaque : AttaqueCondition.Defense; int x = 0; while (!win) { if (cond == AttaqueCondition.Attaque) { Console.ForegroundColor = ConsoleColor.Green; if (x == 0) { Console.WriteLine($"\n{persJ.Nom} Attaque !"); ++x; } Console.ForegroundColor = ConsoleColor.White; bool successoption = true; var typeatt = TypeAttaquePersonnage(persJ); switch (typeatt) { case AttaqueChoisie.AttaqueArme: persJ.FrapperEnnemi(ref baddie); break; case AttaqueChoisie.AttaqueSort: successoption = persJ.LancerSortVsEnnemi(ref baddie, null); break; case AttaqueChoisie.Item: successoption = persJ.UtiliserItemVsEnnemi(ref baddie); break; } if (!successoption) { continue; } //WaitAfterAtt Thread.Sleep(450); } if (cond == AttaqueCondition.Defense) { Console.ForegroundColor = ConsoleColor.Red; if (x == 0) { Console.WriteLine($"\n{baddie.Name} Attaque !"); ++x; } Console.ForegroundColor = ConsoleColor.White; var typeatt = TypeAttaqueEnnemi(baddie); switch (typeatt) { case AttaqueChoisie.AttaqueArme: persJ.RecevoirFrappeDeEnnemi(baddie); break; } //WaitAfterAtt Thread.Sleep(450); } cond = cond == AttaqueCondition.Attaque ? AttaqueCondition.Defense : AttaqueCondition.Attaque; x = 0; if (!(persJ.PvActuels <= 0 | baddie.Pv <= 0)) { continue; } if (persJ.PvActuels <= 0) { GameOver(); } else { win = true; Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine($"\n\n ~~~~~~~~~~~~~~~VICTOIRE!!!~~~~~~~~~~~~~~~" + $"\n {persJ.Nom} a Vaincu {baddie.Name} !!!!!\n" + $" Vous avez Gagne !"); Console.WriteLine(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n" + "\n ---> Appuyez sur une touche pour continuer....! <---"); Console.ReadLine(); Console.Clear(); } } Console.ForegroundColor = ConsoleColor.Gray; persJ.AddXpEnnemi(baddie); persJ.CheckLevelPlayer(); baddie.Loot(ref persJ); Console.ReadLine(); }
public static void CombatPersonnage(ref Personnage persJoueur, ref Personnage persEnnemi) { bool win = false; var cond = persJoueur.Vitesse > persEnnemi.Vitesse ? AttaqueCondition.Attaque : AttaqueCondition.Defense; int x = 0; while (!win) { switch (cond) { case AttaqueCondition.Attaque: Console.ForegroundColor = ConsoleColor.Green; if (x == 0) { Console.WriteLine($"\n{persJoueur.Nom} Attaque !"); ++x; } Console.ForegroundColor = ConsoleColor.White; Attaque(persJoueur, ref persEnnemi); break; case AttaqueCondition.Defense: Console.ForegroundColor = ConsoleColor.Red; if (x == 0) { Console.WriteLine($"\n{persEnnemi.Nom} Attaque !"); ++x; } Console.ForegroundColor = ConsoleColor.White; Attaque(persEnnemi, ref persJoueur); break; } cond = cond == AttaqueCondition.Attaque ? AttaqueCondition.Defense : AttaqueCondition.Attaque; x = 0; if (!(persJoueur.PvActuels <= 0 | persEnnemi.PvActuels <= 0)) { continue; } if (persJoueur.PvActuels <= 0) { GameOver(); } else { Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine($"\n\n ~~~~~~~~~~~~~~~VICTOIRE!!!~~~~~~~~~~~~~~~" + $"\n {persJoueur.Nom} a Vaincu {persEnnemi.Nom} !!!!!\n" + $" Vous avez Gagne !"); Console.WriteLine(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n" + "\n ---> Appuyez sur une touche pour continuer....! <---"); Console.ReadLine(); Console.Clear(); win = true; } } Console.ForegroundColor = ConsoleColor.Gray; persJoueur.AddXpPersonnage(persEnnemi); persJoueur.CheckLevelPlayer(); persEnnemi.Loot(ref persJoueur); }
public bool LancerSortVsPerso(ref Personnage defenseur, Sort itemSort) { Sort sort; if (itemSort == null) { sort = ChoixSort(); } else { sort = itemSort; } if (sort != null) { if (MpActuel >= sort.CoutMp) { if (sort.TypeElement != TypeElement.Lumiere) { MpActuel -= sort.CoutMp; if (sort.CoutMp == 0) { Console.WriteLine($"\n{Nom} utilise {sort.NomSort} a {defenseur.Nom} le {defenseur.Race}"); } else { Console.WriteLine($"\n{Nom} lance le sort {sort.NomSort} a {defenseur.Nom} le {defenseur.Race}"); } double dmg = DammageCalculatorMagicPerso(defenseur, sort); Console.WriteLine($"{defenseur.Nom} prends {dmg} de dommage dans la geule!\n"); defenseur.PvActuels -= (int)dmg; return(true); } else // ElementType.Lumiere { Console.ForegroundColor = ConsoleColor.Yellow; MpActuel -= sort.CoutMp; if (sort.CoutMp == 0) { Console.WriteLine($"\n{Nom} utilise {sort.NomSort} !"); } else { Console.WriteLine($"\n{Nom} lance le sort {sort.NomSort} !"); } int heal = (int)PuissanceMagique * sort.Puissance; PvActuels += heal; if (PvActuels > PvMax) { PvActuels = PvMax; } Console.WriteLine($"{Nom} se soigne de {heal} Points de vie !\n"); Console.ForegroundColor = ConsoleColor.Gray; return(true); } } else { Console.WriteLine( $"\n{Nom} pas lancer le sort {sort.NomSort} il coute {sort.CoutMp} MP et il n'a que {MpActuel} MP\n"); return(false); } } return(false); }
public void Init() { LoadAllContent(); Table = new ClasseLootTable(ListeArmes, ListeArmures, ListeConsumables); Player = new Personnage(PersonnageRace.Humain, PersonnageClasse.Magicien, "Alex", 100, 100, 19, 5, 5, 5) { Arme = new ObjArme("yeaaa", TypeElement.Air, 3), Armure = new ObjArmure("PasUneArmure", TypeElement.Air, 2), SeuilExperience = 200, ListeSorts = ListeSorts }; Player.Inventaire.Add(new ObjInventaire(new ObjConsumable("pete", TypeConsumable.Potion, TypeElement.Lumiere, 7))); Player.Inventaire.Add(new ObjInventaire(new ObjConsumable("pete", TypeConsumable.Potion, TypeElement.Lumiere, 7))); Player.Inventaire.Add(new ObjInventaire(ListeConsumables[0])); foreach (var listeArme in ListeArmes) { Player.Inventaire.Add(new ObjInventaire(listeArme)); } foreach (var listeArme in ListeArmures) { Player.Inventaire.Add(new ObjInventaire(listeArme)); } var suif = new Ennemi("Vache Enrage", TypeEnnemi.PerchaudeEnchantee, 30, TypeElement.Eau, 10, 10, 10, 3000, 90); suif.LootTable = Table; var Client = new AffichageManager.AffichageManagerTest(); Client.Init(); Affichage = new Thread(Client.SendLoop); Affichage.Start(); Thread.Sleep(300); Player2 = new Personnage(PersonnageRace.Humain, PersonnageClasse.Magicien, "Pablo", 100, 5, 5, 5, 5, 5); Player2.Arme = new ObjArme("PabStick", TypeElement.Air, 2); Player2.ValeurExp = 3000; Player2.Armure = new ObjArmure("Pab String", TypeElement.Air, 2); Player2.LootTable = Table; Player2.LootChances = 90; Console.WriteLine("Nom " + Player.Nom); Console.WriteLine(Player.Classe); Console.WriteLine(Player.Race); Console.WriteLine(Player.Arme.NomObjet); Console.WriteLine(Player.Armure.NomObjet); Console.WriteLine("Niv " + Player.Niveau); Console.WriteLine("MP " + Player.MpActuel); Console.WriteLine("MPMax " + Player.MpMax); Console.WriteLine("Att " + Player.Puissance); Console.WriteLine("Def " + Player.Defense); Console.WriteLine("EXP " + Player.Experience); Console.WriteLine("HP " + Player.PvActuels); Console.WriteLine("Vit " + Player.Vitesse); Console.WriteLine("PM " + Player.PuissanceMagique); Console.WriteLine(Player.SeuilExperience); Console.WriteLine(Player.ValeurExp); Console.ReadLine(); Console.Clear(); Player.MenuInventaire(); MethodeCombat.CombatPersonnage(ref Player, ref Player2); Console.ReadLine(); MethodeCombat.AttaqueEnnemi(ref Player, ref suif); Onrouledesnoeuds("Taxi"); Affichage.Abort(); //Histoire modules //SWITCH Decision /Hotel/Arena/Rencontre/Aventure#Quetes // | // V //Combat module //loop }