public bool Equals(Echange echange) { if (echange == null) { return(false); } return((((itemVoulu == null) == (echange.itemVoulu == null)) || (itemVoulu != null && itemVoulu.Equals(echange.itemVoulu))) && (((itemVoulu2 == null) == (echange.itemVoulu2 == null)) || (itemVoulu2 != null && itemVoulu2.Equals(echange.itemVoulu2))) && (((itemDonne == null) == (echange.itemDonne == null)) || (itemDonne != null && itemDonne.Equals(echange.itemDonne)))); }
public override Entite Charger(string path) { string name = System.IO.File.ReadAllLines(path + "\\info.txt")[0]; string[] coord = name.Split('/'); string[] echangesString = System.IO.Directory.GetDirectories(path + "\\Echanges"); Echange[] echanges = new Echange[echangesString.Length]; foreach (string echangeString in echangesString) { string[] p = echangeString.Split('\\'); echanges[int.Parse(p[p.Length - 1])] = Echange.Charger(echangeString); } return(new Marchand(float.Parse(coord[0]), float.Parse(coord[1]), int.Parse(coord[2]), echanges)); }
/// <summary> /// Vérifie si le joueur et le marchand a les items<br/> /// Les échanges si ils les ont /// </summary> /// <param name="joueur">Le joueur qui fait l'échange</param> /// <param name="index">L'index de l'échange</param> public bool Echanger(Joueur joueur, int index) { Echange echange = echanges[index]; if (joueur.ContientItem(echange.ItemVoulu) && inventaire.ContientItem(echange.ItemDonne)) { joueur.EnleverItem(echange.ItemVoulu); joueur.AjouterItem(echange.ItemDonne); inventaire.EnleverItem(echange.ItemDonne); inventaire.AjouterItem(echange.ItemVoulu); return(true); } return(false); }
/// <summary> /// charge l'echande /// </summary> /// <param name="path">son dossier</param> /// <returns></returns> public static Echange Charger(string path) { Echange echange = new Echange(null, null, null); if (!Directory.Exists(path + "\\itemVoulu.null")) { string[] s = Directory.GetDirectories(path); foreach (string h in s) { if (h.StartsWith(path + "\\itemVoulu.")) { string[] j = h.Split('\\'); string t = j[j.Length - 1].Split('.')[1]; echange.itemVoulu = Item.Items()[t].Charger(h); break; } } } if (!Directory.Exists(path + "\\itemVoulu2.null")) { string[] s = Directory.GetDirectories(path); foreach (string h in s) { if (h.StartsWith(path + "\\itemVoulu2.")) { string[] j = h.Split('\\'); string t = j[j.Length - 1].Split('.')[1]; echange.itemVoulu2 = Item.Items()[t].Charger(h); break; } } } if (!Directory.Exists(path + "\\itemDonne.null")) { string[] s = Directory.GetDirectories(path); foreach (string h in s) { if (h.StartsWith(path + "\\itemDonne.")) { string[] j = h.Split('\\'); string t = j[j.Length - 1].Split('.')[1]; echange.itemDonne = Item.Items()[t].Charger(h); break; } } } return(echange); }
/// <summary> /// genere un marchand avec des echange aleatoire /// </summary> /// <param name="x"></param> /// <param name="y"></param> public Marchand(float x, float y) : base(x, y, 20) { inventaire = new Inventaire("MARCHAND", 9, 1); echanges = new Echange[5]; Random r = new Random(); Item[] items = Item.Items().Values.ToArray(); for (int i = 0; i < 5; i++) { Item i1 = items[r.Next(0, items.Length)].Clone(); i1.Quantite = r.Next(1, i1.MaxQuantite + 1); Item i2 = null; if (r.NextDouble() > .5) { i2 = items[r.Next(0, items.Length)].Clone(); i2.Quantite = r.Next(1, i2.MaxQuantite + 1); } Item i3 = items[r.Next(0, items.Length)].Clone(); i3.Quantite = r.Next(1, i3.MaxQuantite + 1); echanges[i] = new Echange(i1, i2, i3); } }