Exemple #1
0
        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))));
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        /// <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);
        }
Exemple #4
0
        /// <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);
        }
Exemple #5
0
        /// <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);
            }
        }