Advertisement
Guest User

Untitled

a guest
Dec 20th, 2015
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 16.70 KB | None | 0 0
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Xml.Serialization;
  9.  
  10. namespace JRPG
  11. {
  12.     //Classe qui permet d'y mettre des méthode utiles pouvant être réutilisées
  13.     class Utility
  14.     {
  15.         public GroupeAventurier groupeAventuriers;
  16.         public Utility()
  17.         {
  18.         }
  19.  
  20.         public Utility(GroupeAventurier _groupeAventuriers)
  21.         {
  22.             groupeAventuriers = _groupeAventuriers;
  23.         }
  24.  
  25.         public Boolean sauvegardePartie()
  26.         {
  27.             //On crée un dossier pour les saves
  28.             DirectoryInfo dossier = new DirectoryInfo(".");
  29.             DirectoryInfo dossier2 = new DirectoryInfo(".");
  30.             dossier = new DirectoryInfo(@"C:\Users\Public\Documents");
  31.             DirectoryInfo sousDossier = dossier.CreateSubdirectory("saves");
  32.  
  33.             //Combattants
  34.             dossier2 = new DirectoryInfo(@"C:\Users\Public\Documents\saves");
  35.             DirectoryInfo sousDossierCombattants = dossier2.CreateSubdirectory("combattants");
  36.  
  37.             //On insert dans un fichier pour le groupe
  38.             //FileInfo f = new FileInfo(@"C:\Users\Public\Documents\saves\groupe.dat");
  39.             using (FileStream fs = File.Open(@"C:\Users\Public\Documents\saves\groupe.dat", FileMode.Create))
  40.             {
  41.                 int totalLength = 0;
  42.                 String nomGroupe = groupeAventuriers.nomGroupe;
  43.                 byte[] messageEncode = Encoding.Default.GetBytes(nomGroupe + ",");
  44.                 fs.Write(messageEncode, 0, messageEncode.Length);
  45.                 totalLength = messageEncode.Length;
  46.                 fs.Position = totalLength;
  47.  
  48.                 String bourse = groupeAventuriers.bourse.ToString();
  49.                 byte[] messageEncode2 = Encoding.Default.GetBytes(bourse + ",");
  50.                 fs.Write(messageEncode2, 0, messageEncode2.Length);
  51.                 totalLength += messageEncode2.Length;
  52.                 fs.Position = totalLength;
  53.  
  54.                 foreach (Item item in groupeAventuriers.inventaire)
  55.                 {
  56.                     String itemInventaire = item.nom;
  57.                     byte[] messageEncode3 = Encoding.Default.GetBytes(itemInventaire + ",");
  58.                     fs.Write(messageEncode3, 0, messageEncode3.Length);
  59.                     totalLength += messageEncode3.Length;
  60.                     fs.Position = totalLength;
  61.                 }
  62.                 fs.Close();
  63.             }
  64.  
  65.             //On insert dans un fichier pour les combattants
  66.             using (FileStream fs = File.Open(@"C:\Users\Public\Documents\saves\combattants\combattants.dat", FileMode.Create))
  67.             {
  68.                 int totalLength = 0;
  69.                 foreach (Aventurier aventurier in groupeAventuriers.getAventuriers())
  70.                 {
  71.                     String equip = "";
  72.                     int compteur = 0;
  73.                     byte[] messageEncode = Encoding.Default.GetBytes(aventurier.nom + "+" + aventurier.classe + "+" + aventurier.niveau + "+" + aventurier.px + "+" + aventurier.etat
  74.                          + "+" + aventurier.hp + "+" + aventurier.pi + "+" + aventurier.pp + "+" + aventurier.pe + "+" + aventurier.pf + "+" +
  75.                         aventurier.pd + "+" + aventurier.mana + "+" + aventurier.readyToFight);
  76.                     foreach (Item item in aventurier.equipement)
  77.                     {
  78.                         if (compteur < 2)
  79.                         {
  80.                             if (item == null)
  81.                                 equip += "null+";
  82.                             else
  83.                                 equip += item.nom + "+";
  84.                         }
  85.                         else
  86.                         {
  87.                             if (item == null)
  88.                                 equip += "null";
  89.                             else
  90.                                 equip += item.nom;
  91.                         }
  92.                         compteur++;
  93.                     }
  94.                     byte[] equipement = Encoding.Default.GetBytes("+" + equip + ";");
  95.                     fs.Write(messageEncode, 0, messageEncode.Length);
  96.                     fs.Write(equipement, 0, equipement.Length);
  97.                     totalLength += messageEncode.Length + equipement.Length;
  98.                     fs.Position = totalLength;
  99.                 }
  100.                 fs.Close();
  101.             }
  102.             return true;
  103.         }
  104.  
  105.         public void sauvegarderXML()
  106.         {
  107.             //Armes
  108.             List<Item> listeItems = new List<Item>();
  109.             listeItems = chargementsItems();//Méthode contenant tous les items
  110.  
  111.             XmlSerializer format = new XmlSerializer(typeof(List<Item>));
  112.             using (Stream stream = new FileStream(@"C:\Users\Public\Documents\saves\items.xml", FileMode.Create, FileAccess.Write, FileShare.None))
  113.                 format.Serialize(stream, listeItems);
  114.         }
  115.  
  116.         public List<Item> chargerListeXML()
  117.         {
  118.             string curFile = @"C:\Users\Public\Documents\saves\items.xml";
  119.             Boolean canLoad = File.Exists(curFile) ? true : false;
  120.  
  121.             if (canLoad)
  122.             {
  123.                 List<Item> items;
  124.                 XmlSerializer format = new XmlSerializer(typeof(List<Item>));
  125.                 using (Stream stream = new FileStream(@"C:\Users\Public\Documents\saves\items.xml", FileMode.Open, FileAccess.Read, FileShare.None))
  126.                     items = (List<Item>)format.Deserialize(stream);
  127.                 return items;
  128.             }
  129.             else
  130.             {
  131.                 return null;
  132.             }
  133.         }
  134.  
  135.         //Surcharge méthode chargerListeXML
  136.         public List<Item> chargerListeXML(int min, int max)
  137.         {
  138.             string curFile = @"C:\Users\Public\Documents\saves\items.xml";
  139.             Boolean canLoad = File.Exists(curFile) ? true : false;
  140.             List<Item> listeItem = new List<Item>();
  141.  
  142.             if (canLoad)
  143.             {
  144.                 List<Item> items;
  145.                 XmlSerializer format = new XmlSerializer(typeof(List<Item>));
  146.                 using (Stream stream = new FileStream(@"C:\Users\Public\Documents\saves\items.xml", FileMode.Open, FileAccess.Read, FileShare.None))
  147.                     items = (List<Item>)format.Deserialize(stream);
  148.  
  149.                 for (int i = min; i <= max; i++)
  150.                 {
  151.                     listeItem.Add(items[i]);
  152.                 }
  153.  
  154.                 return listeItem;
  155.             }
  156.             else
  157.             {
  158.                 return null;
  159.             }
  160.         }
  161.  
  162.         public GroupeAventurier chargerData()
  163.         {
  164.             String nomGroupe = "";
  165.             int bourse = 0;
  166.             String text;
  167.             ArrayList listeEquipementGroupe = new ArrayList();
  168.  
  169.             string curFile = @"c:\Users\Public\Documents\saves\groupe.dat";
  170.             Boolean canLoad = File.Exists(curFile) ? true : false;
  171.  
  172.             if (canLoad)
  173.             {
  174.                 //lecture du fichier
  175.                 using (StreamReader sr = new StreamReader((@"C:\Users\Public\Documents\saves\groupe.dat")))
  176.                 text = File.ReadAllText(@"C:\Users\Public\Documents\saves\groupe.dat");
  177.  
  178.                 String[] array = text.Split(',');
  179.                 nomGroupe = array[0];//Nom du groupe à la position connue 0;
  180.                 bourse = Int32.Parse(array[1]);//Bourse du groupe à la position connue 1
  181.  
  182.                 for (int i = 2; i < array.Length - 1; i++)
  183.                 {
  184.                     listeEquipementGroupe.Add(array[i]);
  185.                 }
  186.  
  187.                 GroupeAventurier groupeAventurier = new GroupeAventurier(nomGroupe);
  188.                 groupeAventurier.bourse = bourse;
  189.  
  190.                 //On parcourt la liste de tous les item pour sélectionner celui que l'on doit remettre dans l'inventaire
  191.                 List<Item> listeComplet = new List<Item>();
  192.                 listeComplet = this.chargerListeXML();
  193.                 int num = 0;
  194.                 for (int i = 0; i < listeEquipementGroupe.Count; i++)
  195.                 {
  196.                     foreach (Item item in listeComplet)
  197.                     {
  198.                         if (item.nom.Equals(listeEquipementGroupe[i]))
  199.                         {
  200.                             groupeAventurier.ajouterAIventaire(item);
  201.                         }
  202.                         num++;
  203.                     }
  204.                 }
  205.  
  206.                
  207.                 //groupeAventurier.inventaire = listeEquipementGroupe;
  208.                 Aventurier aventurier = null;
  209.  
  210.                 //Charger les data des combattants
  211.                 ArrayList aventuriers = new ArrayList();
  212.                 using (StreamReader sr = new StreamReader((@"C:\Users\Public\Documents\saves\combattants\combattants.dat")))
  213.                 text = File.ReadAllText(@"C:\Users\Public\Documents\saves\combattants\combattants.dat");
  214.  
  215.                 String[] arrayAventuriers = text.Split(';');
  216.                 for (int i = 0; i < arrayAventuriers.Length - 1; i++)
  217.                 {
  218.                     aventuriers.Add(arrayAventuriers[i]);
  219.                 }
  220.  
  221.                 ArrayList listeAventuriers = new ArrayList();
  222.                 ArrayList listeItemsAventuriers = new ArrayList();
  223.                 foreach (String av in aventuriers)
  224.                 {
  225.                     String[] arrayAventurierData = av.Split('+');
  226.                     switch (arrayAventurierData[1])
  227.                     {
  228.                         case "Guerrier"://items: 14, 15, 16
  229.                             aventurier = new Guerrier(Int32.Parse(arrayAventurierData[3]), Int32.Parse(arrayAventurierData[2]), arrayAventurierData[0],
  230.                         (EtatAventurier)Enum.Parse(typeof(EtatAventurier), arrayAventurierData[4], true), arrayAventurierData[1], Int32.Parse(arrayAventurierData[5]), Int32.Parse(arrayAventurierData[6]), Double.Parse(arrayAventurierData[7]),
  231.                         Double.Parse(arrayAventurierData[8]), Int32.Parse(arrayAventurierData[9]), Int32.Parse(arrayAventurierData[10]), Int32.Parse(arrayAventurierData[11]));
  232.                             break;
  233.                         case "Mage":
  234.                             aventurier = new Mage(Int32.Parse(arrayAventurierData[3]), Int32.Parse(arrayAventurierData[2]), arrayAventurierData[0],
  235.                         (EtatAventurier)Enum.Parse(typeof(EtatAventurier), arrayAventurierData[4], true), arrayAventurierData[1], Int32.Parse(arrayAventurierData[5]), Int32.Parse(arrayAventurierData[6]), Double.Parse(arrayAventurierData[7]),
  236.                         Double.Parse(arrayAventurierData[8]), Int32.Parse(arrayAventurierData[9]), Int32.Parse(arrayAventurierData[10]), Int32.Parse(arrayAventurierData[11]));
  237.                             break;
  238.                         case "Druide":
  239.                             aventurier = new Druide(Int32.Parse(arrayAventurierData[3]), Int32.Parse(arrayAventurierData[2]), arrayAventurierData[0],
  240.                         (EtatAventurier)Enum.Parse(typeof(EtatAventurier), arrayAventurierData[4], true), arrayAventurierData[1], Int32.Parse(arrayAventurierData[5]), Int32.Parse(arrayAventurierData[6]), Double.Parse(arrayAventurierData[7]),
  241.                         Double.Parse(arrayAventurierData[8]), Int32.Parse(arrayAventurierData[9]), Int32.Parse(arrayAventurierData[10]), Int32.Parse(arrayAventurierData[11]));
  242.                             break;
  243.                         case "Rogue":
  244.                             aventurier = new Rogue(Int32.Parse(arrayAventurierData[3]), Int32.Parse(arrayAventurierData[2]), arrayAventurierData[0],
  245.                         (EtatAventurier)Enum.Parse(typeof(EtatAventurier), arrayAventurierData[4], true), arrayAventurierData[1], Int32.Parse(arrayAventurierData[5]), Int32.Parse(arrayAventurierData[6]), Double.Parse(arrayAventurierData[7]),
  246.                         Double.Parse(arrayAventurierData[8]), Int32.Parse(arrayAventurierData[9]), Int32.Parse(arrayAventurierData[10]), Int32.Parse(arrayAventurierData[11]));
  247.                             break;
  248.                     }
  249.                     listeComplet = this.chargerListeXML();
  250.                     foreach (Item item in listeComplet)
  251.                     {
  252.                         for (int i = 13; i < arrayAventurierData.Length; i++)
  253.                         {
  254.                             if (item.nom.Equals(arrayAventurierData[i]))
  255.                                 aventurier.equipement.Add(item);
  256.                         }
  257.                     }
  258.                     listeAventuriers.Add(aventurier);
  259.                 }
  260.  
  261.                 //On ajoute les aventuriers dans le groupe
  262.                 foreach (Aventurier av in listeAventuriers)
  263.                 {
  264.                     groupeAventurier.ajouterAventurier(av);
  265.                 }
  266.  
  267.                 return groupeAventurier;
  268.             }
  269.             else
  270.             {
  271.                 return null;
  272.             }
  273.         }
  274.  
  275.         private List<Item> chargementsItems(){
  276.             List<Item> liste = new List<Item>();
  277.  
  278.             //Armes bas niveau
  279.             Item item = new Arme("Epee de fer", 10, "Arme", 10, 0, 0, 0);
  280.             Item item2 = new Arme("Epee en bois", 1, "Arme", 2, 0, 0, 0);
  281.             //Armure bas niveaux
  282.             Item item3 = new Armure("Armure de cuir", 80, "Armure", 0, 5, 0, 0);
  283.             Item item4 = new Armure("Armure de maille", 90, "Armure", 0, 10, 0, 0);
  284.             //Potions bas niveaux
  285.             Item item5 = new Potion("Potion de vie", 25, "Potion", 0, 0, 10, 0);
  286.             Item item6 = new Potion("Potion de mana", 30, "Potion", 0, 0, 0, 10);
  287.             //Nourriture bas niveaux
  288.             Item item7 = new Nourriture("Pomme", 2, "Nourriture", 0, 0, 5, 0);
  289.  
  290.  
  291.             //Armes bas/moyen niveaux
  292.             Item item8 = new Arme("Epee en or", 20, "Arme", 15, 0, 0, 0);
  293.             Item item9 = new Arme("Dague assassine", 25, "Arme", 14, 0, 0, 0);
  294.             //Armure bas/moyen niveaux
  295.             Item item10 = new Armure("Armure de maille en or", 100, "Armure", 0, 20, 0, 0);
  296.             Item item11 = new Armure("Armure de fil elfique", 150, "Armure", 0, 30, 0, 0);
  297.             //Potions bas/moyen niveaux
  298.             Item item12 = new Potion("Potion double de vie", 45, "Potion", 0, 0, 20, 0);
  299.             Item item13 = new Potion("Potion double de mana", 60, "Potion", 0, 0, 0, 20);
  300.             //Nourriture bas/moyen niveaux
  301.             Item item14 = new Nourriture("Brochette de poulet", 10, "Nourriture", 0, 0, 10, 0);
  302.  
  303.  
  304.             //Armes moyen niveaux
  305.             Item item15 = new Arme("Epee affutee en or", 35, "Arme", 22, 0, 0, 0);
  306.             Item item16 = new Arme("Dague assassine en or", 60, "Arme", 24, 0, 0, 0);
  307.             //Armure moyen niveaux
  308.             Item item17 = new Armure("Armure de plaque", 200, "Armure", 0, 35, 0, 0);
  309.             Item item177 = new Armure("Armure de plaque en or", 250, "Armure", 0, 45, 0, 0);
  310.             //Potions moyen niveaux
  311.             Item item18 = new Potion("Potion triple de vie", 85, "Potion", 0, 0, 30, 0);
  312.             Item item19 = new Potion("Potion triple de mana", 100, "Potion", 0, 0, 0, 30);
  313.             //Nourriture moyen niveaux
  314.             Item item20 = new Nourriture("Assiette de poulet General-tao", 12, "Nourriture", 0, 0, 15, 0);
  315.  
  316.  
  317.             //Armes haut niveaux
  318.             Item item21 = new Arme("Dent de dragon", 500, "Arme", 85, 0, 0, 0);
  319.             //Armure haut niveaux
  320.             Item item22 = new Armure("Armure de cuir de dragon", 350, "Armure", 0, 80, 0, 0);
  321.             //Potions haut niveaux
  322.             Item item23 = new Potion("Potion invincible", 150, "Potion", 0, 0, 120, 0);
  323.             Item item24 = new Potion("Potion du magicien experimente", 100, "Potion", 0, 0, 0, 120);
  324.             //Nourriture haut niveaux
  325.             Item item25 = new Nourriture("Roteux", 12, "Nourriture", 0, 0, 45, 0);
  326.  
  327.             //Pas vendable dans la boutique
  328.             Item item211 = new Arme("Epee de Sanguinaire", 1000, "Arme", 200, 0, 0, 0);
  329.             Item item222 = new Armure("Armure de diamant", 500, "Armure", 0, 100, 0, 0);
  330.  
  331.  
  332.             liste.Add(item); liste.Add(item2); liste.Add(item3); liste.Add(item4); liste.Add(item5); liste.Add(item6);
  333.             liste.Add(item7); liste.Add(item8); liste.Add(item9); liste.Add(item10); liste.Add(item11); liste.Add(item12);
  334.             liste.Add(item13); liste.Add(item14); liste.Add(item15); liste.Add(item16); liste.Add(item17); liste.Add(item177); liste.Add(item18);
  335.             liste.Add(item19); liste.Add(item20); liste.Add(item21); liste.Add(item211); liste.Add(item22); liste.Add(item222); liste.Add(item23); liste.Add(item24);
  336.             liste.Add(item25);
  337.  
  338.             return liste;
  339.         }
  340.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement