Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Xml.Serialization;
- namespace JRPG
- {
- //Classe qui permet d'y mettre des méthode utiles pouvant être réutilisées
- class Utility
- {
- public GroupeAventurier groupeAventuriers;
- public Utility()
- {
- }
- public Utility(GroupeAventurier _groupeAventuriers)
- {
- groupeAventuriers = _groupeAventuriers;
- }
- public Boolean sauvegardePartie()
- {
- //On crée un dossier pour les saves
- DirectoryInfo dossier = new DirectoryInfo(".");
- DirectoryInfo dossier2 = new DirectoryInfo(".");
- dossier = new DirectoryInfo(@"C:\Users\Public\Documents");
- DirectoryInfo sousDossier = dossier.CreateSubdirectory("saves");
- //Combattants
- dossier2 = new DirectoryInfo(@"C:\Users\Public\Documents\saves");
- DirectoryInfo sousDossierCombattants = dossier2.CreateSubdirectory("combattants");
- //On insert dans un fichier pour le groupe
- //FileInfo f = new FileInfo(@"C:\Users\Public\Documents\saves\groupe.dat");
- using (FileStream fs = File.Open(@"C:\Users\Public\Documents\saves\groupe.dat", FileMode.Create))
- {
- int totalLength = 0;
- String nomGroupe = groupeAventuriers.nomGroupe;
- byte[] messageEncode = Encoding.Default.GetBytes(nomGroupe + ",");
- fs.Write(messageEncode, 0, messageEncode.Length);
- totalLength = messageEncode.Length;
- fs.Position = totalLength;
- String bourse = groupeAventuriers.bourse.ToString();
- byte[] messageEncode2 = Encoding.Default.GetBytes(bourse + ",");
- fs.Write(messageEncode2, 0, messageEncode2.Length);
- totalLength += messageEncode2.Length;
- fs.Position = totalLength;
- foreach (Item item in groupeAventuriers.inventaire)
- {
- String itemInventaire = item.nom;
- byte[] messageEncode3 = Encoding.Default.GetBytes(itemInventaire + ",");
- fs.Write(messageEncode3, 0, messageEncode3.Length);
- totalLength += messageEncode3.Length;
- fs.Position = totalLength;
- }
- fs.Close();
- }
- //On insert dans un fichier pour les combattants
- using (FileStream fs = File.Open(@"C:\Users\Public\Documents\saves\combattants\combattants.dat", FileMode.Create))
- {
- int totalLength = 0;
- foreach (Aventurier aventurier in groupeAventuriers.getAventuriers())
- {
- String equip = "";
- int compteur = 0;
- byte[] messageEncode = Encoding.Default.GetBytes(aventurier.nom + "+" + aventurier.classe + "+" + aventurier.niveau + "+" + aventurier.px + "+" + aventurier.etat
- + "+" + aventurier.hp + "+" + aventurier.pi + "+" + aventurier.pp + "+" + aventurier.pe + "+" + aventurier.pf + "+" +
- aventurier.pd + "+" + aventurier.mana + "+" + aventurier.readyToFight);
- foreach (Item item in aventurier.equipement)
- {
- if (compteur < 2)
- {
- if (item == null)
- equip += "null+";
- else
- equip += item.nom + "+";
- }
- else
- {
- if (item == null)
- equip += "null";
- else
- equip += item.nom;
- }
- compteur++;
- }
- byte[] equipement = Encoding.Default.GetBytes("+" + equip + ";");
- fs.Write(messageEncode, 0, messageEncode.Length);
- fs.Write(equipement, 0, equipement.Length);
- totalLength += messageEncode.Length + equipement.Length;
- fs.Position = totalLength;
- }
- fs.Close();
- }
- return true;
- }
- public void sauvegarderXML()
- {
- //Armes
- List<Item> listeItems = new List<Item>();
- listeItems = chargementsItems();//Méthode contenant tous les items
- XmlSerializer format = new XmlSerializer(typeof(List<Item>));
- using (Stream stream = new FileStream(@"C:\Users\Public\Documents\saves\items.xml", FileMode.Create, FileAccess.Write, FileShare.None))
- format.Serialize(stream, listeItems);
- }
- public List<Item> chargerListeXML()
- {
- string curFile = @"C:\Users\Public\Documents\saves\items.xml";
- Boolean canLoad = File.Exists(curFile) ? true : false;
- if (canLoad)
- {
- List<Item> items;
- XmlSerializer format = new XmlSerializer(typeof(List<Item>));
- using (Stream stream = new FileStream(@"C:\Users\Public\Documents\saves\items.xml", FileMode.Open, FileAccess.Read, FileShare.None))
- items = (List<Item>)format.Deserialize(stream);
- return items;
- }
- else
- {
- return null;
- }
- }
- //Surcharge méthode chargerListeXML
- public List<Item> chargerListeXML(int min, int max)
- {
- string curFile = @"C:\Users\Public\Documents\saves\items.xml";
- Boolean canLoad = File.Exists(curFile) ? true : false;
- List<Item> listeItem = new List<Item>();
- if (canLoad)
- {
- List<Item> items;
- XmlSerializer format = new XmlSerializer(typeof(List<Item>));
- using (Stream stream = new FileStream(@"C:\Users\Public\Documents\saves\items.xml", FileMode.Open, FileAccess.Read, FileShare.None))
- items = (List<Item>)format.Deserialize(stream);
- for (int i = min; i <= max; i++)
- {
- listeItem.Add(items[i]);
- }
- return listeItem;
- }
- else
- {
- return null;
- }
- }
- public GroupeAventurier chargerData()
- {
- String nomGroupe = "";
- int bourse = 0;
- String text;
- ArrayList listeEquipementGroupe = new ArrayList();
- string curFile = @"c:\Users\Public\Documents\saves\groupe.dat";
- Boolean canLoad = File.Exists(curFile) ? true : false;
- if (canLoad)
- {
- //lecture du fichier
- using (StreamReader sr = new StreamReader((@"C:\Users\Public\Documents\saves\groupe.dat")))
- text = File.ReadAllText(@"C:\Users\Public\Documents\saves\groupe.dat");
- String[] array = text.Split(',');
- nomGroupe = array[0];//Nom du groupe à la position connue 0;
- bourse = Int32.Parse(array[1]);//Bourse du groupe à la position connue 1
- for (int i = 2; i < array.Length - 1; i++)
- {
- listeEquipementGroupe.Add(array[i]);
- }
- GroupeAventurier groupeAventurier = new GroupeAventurier(nomGroupe);
- groupeAventurier.bourse = bourse;
- //On parcourt la liste de tous les item pour sélectionner celui que l'on doit remettre dans l'inventaire
- List<Item> listeComplet = new List<Item>();
- listeComplet = this.chargerListeXML();
- int num = 0;
- for (int i = 0; i < listeEquipementGroupe.Count; i++)
- {
- foreach (Item item in listeComplet)
- {
- if (item.nom.Equals(listeEquipementGroupe[i]))
- {
- groupeAventurier.ajouterAIventaire(item);
- }
- num++;
- }
- }
- //groupeAventurier.inventaire = listeEquipementGroupe;
- Aventurier aventurier = null;
- //Charger les data des combattants
- ArrayList aventuriers = new ArrayList();
- using (StreamReader sr = new StreamReader((@"C:\Users\Public\Documents\saves\combattants\combattants.dat")))
- text = File.ReadAllText(@"C:\Users\Public\Documents\saves\combattants\combattants.dat");
- String[] arrayAventuriers = text.Split(';');
- for (int i = 0; i < arrayAventuriers.Length - 1; i++)
- {
- aventuriers.Add(arrayAventuriers[i]);
- }
- ArrayList listeAventuriers = new ArrayList();
- ArrayList listeItemsAventuriers = new ArrayList();
- foreach (String av in aventuriers)
- {
- String[] arrayAventurierData = av.Split('+');
- switch (arrayAventurierData[1])
- {
- case "Guerrier"://items: 14, 15, 16
- aventurier = new Guerrier(Int32.Parse(arrayAventurierData[3]), Int32.Parse(arrayAventurierData[2]), arrayAventurierData[0],
- (EtatAventurier)Enum.Parse(typeof(EtatAventurier), arrayAventurierData[4], true), arrayAventurierData[1], Int32.Parse(arrayAventurierData[5]), Int32.Parse(arrayAventurierData[6]), Double.Parse(arrayAventurierData[7]),
- Double.Parse(arrayAventurierData[8]), Int32.Parse(arrayAventurierData[9]), Int32.Parse(arrayAventurierData[10]), Int32.Parse(arrayAventurierData[11]));
- break;
- case "Mage":
- aventurier = new Mage(Int32.Parse(arrayAventurierData[3]), Int32.Parse(arrayAventurierData[2]), arrayAventurierData[0],
- (EtatAventurier)Enum.Parse(typeof(EtatAventurier), arrayAventurierData[4], true), arrayAventurierData[1], Int32.Parse(arrayAventurierData[5]), Int32.Parse(arrayAventurierData[6]), Double.Parse(arrayAventurierData[7]),
- Double.Parse(arrayAventurierData[8]), Int32.Parse(arrayAventurierData[9]), Int32.Parse(arrayAventurierData[10]), Int32.Parse(arrayAventurierData[11]));
- break;
- case "Druide":
- aventurier = new Druide(Int32.Parse(arrayAventurierData[3]), Int32.Parse(arrayAventurierData[2]), arrayAventurierData[0],
- (EtatAventurier)Enum.Parse(typeof(EtatAventurier), arrayAventurierData[4], true), arrayAventurierData[1], Int32.Parse(arrayAventurierData[5]), Int32.Parse(arrayAventurierData[6]), Double.Parse(arrayAventurierData[7]),
- Double.Parse(arrayAventurierData[8]), Int32.Parse(arrayAventurierData[9]), Int32.Parse(arrayAventurierData[10]), Int32.Parse(arrayAventurierData[11]));
- break;
- case "Rogue":
- aventurier = new Rogue(Int32.Parse(arrayAventurierData[3]), Int32.Parse(arrayAventurierData[2]), arrayAventurierData[0],
- (EtatAventurier)Enum.Parse(typeof(EtatAventurier), arrayAventurierData[4], true), arrayAventurierData[1], Int32.Parse(arrayAventurierData[5]), Int32.Parse(arrayAventurierData[6]), Double.Parse(arrayAventurierData[7]),
- Double.Parse(arrayAventurierData[8]), Int32.Parse(arrayAventurierData[9]), Int32.Parse(arrayAventurierData[10]), Int32.Parse(arrayAventurierData[11]));
- break;
- }
- listeComplet = this.chargerListeXML();
- foreach (Item item in listeComplet)
- {
- for (int i = 13; i < arrayAventurierData.Length; i++)
- {
- if (item.nom.Equals(arrayAventurierData[i]))
- aventurier.equipement.Add(item);
- }
- }
- listeAventuriers.Add(aventurier);
- }
- //On ajoute les aventuriers dans le groupe
- foreach (Aventurier av in listeAventuriers)
- {
- groupeAventurier.ajouterAventurier(av);
- }
- return groupeAventurier;
- }
- else
- {
- return null;
- }
- }
- private List<Item> chargementsItems(){
- List<Item> liste = new List<Item>();
- //Armes bas niveau
- Item item = new Arme("Epee de fer", 10, "Arme", 10, 0, 0, 0);
- Item item2 = new Arme("Epee en bois", 1, "Arme", 2, 0, 0, 0);
- //Armure bas niveaux
- Item item3 = new Armure("Armure de cuir", 80, "Armure", 0, 5, 0, 0);
- Item item4 = new Armure("Armure de maille", 90, "Armure", 0, 10, 0, 0);
- //Potions bas niveaux
- Item item5 = new Potion("Potion de vie", 25, "Potion", 0, 0, 10, 0);
- Item item6 = new Potion("Potion de mana", 30, "Potion", 0, 0, 0, 10);
- //Nourriture bas niveaux
- Item item7 = new Nourriture("Pomme", 2, "Nourriture", 0, 0, 5, 0);
- //Armes bas/moyen niveaux
- Item item8 = new Arme("Epee en or", 20, "Arme", 15, 0, 0, 0);
- Item item9 = new Arme("Dague assassine", 25, "Arme", 14, 0, 0, 0);
- //Armure bas/moyen niveaux
- Item item10 = new Armure("Armure de maille en or", 100, "Armure", 0, 20, 0, 0);
- Item item11 = new Armure("Armure de fil elfique", 150, "Armure", 0, 30, 0, 0);
- //Potions bas/moyen niveaux
- Item item12 = new Potion("Potion double de vie", 45, "Potion", 0, 0, 20, 0);
- Item item13 = new Potion("Potion double de mana", 60, "Potion", 0, 0, 0, 20);
- //Nourriture bas/moyen niveaux
- Item item14 = new Nourriture("Brochette de poulet", 10, "Nourriture", 0, 0, 10, 0);
- //Armes moyen niveaux
- Item item15 = new Arme("Epee affutee en or", 35, "Arme", 22, 0, 0, 0);
- Item item16 = new Arme("Dague assassine en or", 60, "Arme", 24, 0, 0, 0);
- //Armure moyen niveaux
- Item item17 = new Armure("Armure de plaque", 200, "Armure", 0, 35, 0, 0);
- Item item177 = new Armure("Armure de plaque en or", 250, "Armure", 0, 45, 0, 0);
- //Potions moyen niveaux
- Item item18 = new Potion("Potion triple de vie", 85, "Potion", 0, 0, 30, 0);
- Item item19 = new Potion("Potion triple de mana", 100, "Potion", 0, 0, 0, 30);
- //Nourriture moyen niveaux
- Item item20 = new Nourriture("Assiette de poulet General-tao", 12, "Nourriture", 0, 0, 15, 0);
- //Armes haut niveaux
- Item item21 = new Arme("Dent de dragon", 500, "Arme", 85, 0, 0, 0);
- //Armure haut niveaux
- Item item22 = new Armure("Armure de cuir de dragon", 350, "Armure", 0, 80, 0, 0);
- //Potions haut niveaux
- Item item23 = new Potion("Potion invincible", 150, "Potion", 0, 0, 120, 0);
- Item item24 = new Potion("Potion du magicien experimente", 100, "Potion", 0, 0, 0, 120);
- //Nourriture haut niveaux
- Item item25 = new Nourriture("Roteux", 12, "Nourriture", 0, 0, 45, 0);
- //Pas vendable dans la boutique
- Item item211 = new Arme("Epee de Sanguinaire", 1000, "Arme", 200, 0, 0, 0);
- Item item222 = new Armure("Armure de diamant", 500, "Armure", 0, 100, 0, 0);
- liste.Add(item); liste.Add(item2); liste.Add(item3); liste.Add(item4); liste.Add(item5); liste.Add(item6);
- liste.Add(item7); liste.Add(item8); liste.Add(item9); liste.Add(item10); liste.Add(item11); liste.Add(item12);
- liste.Add(item13); liste.Add(item14); liste.Add(item15); liste.Add(item16); liste.Add(item17); liste.Add(item177); liste.Add(item18);
- liste.Add(item19); liste.Add(item20); liste.Add(item21); liste.Add(item211); liste.Add(item22); liste.Add(item222); liste.Add(item23); liste.Add(item24);
- liste.Add(item25);
- return liste;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement