public bool Equals(Inventaire inv) { if (inv == null) { return(false); } if (longueur != inv.longueur || hauteur != inv.hauteur) { return(false); } for (int i = 0; i < Length; i++) { if ((items[i] == null) != (inv.items[i] == null)) { return(false); } if (items[i] == null && inv.items[i] == null) { continue; } if (!items[i].Equals(inv.items[i])) { return(false); } } return(true); }
/// <summary> /// Constructeur de Joueur /// </summary> /// <param name="x">La position horizontale du joueur</param> /// <param name="y">La position verticale du joueur</param> public Joueur(float x, float y) : base(x, y, 20) { crafting = new Inventaire("CRAFT", 2, 2); barre = new Inventaire("BARRE", 1, 3); inventaire = new Inventaire("INVENTAIRE", 2, 3); faim = 20; }
private Joueur(float x, float y, int vie, float faim, int maindroite, Inventaire inventaire, Inventaire barre, Inventaire crafting) : base(x, y, vie) { this.faim = faim; this.maindroite = maindroite; this.inventaire = inventaire; this.barre = barre; this.crafting = crafting; }
/// <summary> /// regarde s'il a un craft possible dans l'inventaire (les 3x3 premier slot) /// </summary> /// <param name="inv"></param> /// <returns></returns> public static Craft CheckAll(Inventaire inv) { foreach (Craft craft in Craft.crafts) { if (Check(inv, craft)) { return(craft); } } return(null); }
private Marchand(float x, float y, int vie, Echange[] echanges) : base(x, y, vie) { inventaire = new Inventaire("MARCHAND", 9, 1); if (echanges == null) { this.echanges = new Echange[0]; } else { this.echanges = echanges; } }
/// <summary> /// Constructeur de Marchand /// </summary> /// <param name="x">position horizontale du marchand</param> /// <param name="y">Position verticale de Marchand</param> /// <param name="echanges">echanges possible que le marchand peut faire</param> public Marchand(float x, float y, Echange[] echanges) : base(x, y, 20) { inventaire = new Inventaire("MARCHAND", 9, 1); if (echanges == null) { this.echanges = new Echange[0]; } else { this.echanges = echanges; } }
private static bool Check(Inventaire inv, Craft craft) { int longueur = inv.Longueur; int hauteur = inv.Hauteur; //max 3x3 if (longueur > 3) { longueur = 3; } if (hauteur > 3) { hauteur = 3; } for (int x = 0; x < 3; x++) { for (int y = 0; y < 3; y++) { int slot = x + (y * inv.Longueur); bool invnull = true; if (x < longueur && y < hauteur) { invnull = inv.GetItem(slot) == null; } bool craftnull = craft.From[x, y] == null; //les deux slot sont null if (invnull && craftnull) { continue; } //seulement un des deux est null if (invnull != craftnull) { return(false); } if (x < longueur && y < hauteur) { //si pas meme item ou pas assez de cette item if (craft.From[x, y].id() != inv.GetItem(slot).id() || craft.From[x, y].Quantite > inv.GetItem(slot).Quantite) { return(false); } } } } return(true); }
/// <summary> /// effectue le craft dans l'inventaire</br> /// enleve les items du craft dans l'inventaire</br> /// ajoute l'item crafter dans l'inventaire du joueur</br> /// reset si plus de place /// </summary> /// <param name="inv"></param> /// <param name="joueur"></param> /// <returns></returns> public static bool CraftIt(Inventaire inv, Joueur joueur) { foreach (Craft craft in Craft.crafts) { if (Check(inv, craft)) { Item cl = craft.To.Clone(); int i = joueur.AjouterItem(cl); if (i > 0) { Item cl2 = craft.To.Clone(); cl2.Quantite -= i; joueur.EnleverItem(cl2); } else { int longueur = inv.Longueur; int hauteur = inv.Hauteur; //max 3x3 if (longueur > 3) { longueur = 3; } if (hauteur > 3) { hauteur = 3; } for (int x = 0; x < longueur; x++) { for (int y = 0; y < hauteur; y++) { int slot = x + (y * longueur); Item it = inv.GetItem(slot); if (it != null) { it.Quantite -= craft.From[x, y].Quantite; if (it.Quantite == 0) { inv.SetItem(slot, null); } } } } return(true); } } } return(false); }
/// <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); } }
private Sacados(Inventaire inv) : base(1, 1) { inventaire = inv; }
public Sacados() : base(1, 1) { inventaire = new Inventaire("SacADos", 2, 2); }
public override Block Clone() { Inventaire inv = inventaire.Clone(); return(new Coffre_Block(inv)); }
private Four_Block(Inventaire inv, int carburant) : base(1, "Four") { this.carburant = carburant; inventaire = inv; }
/// <summary> /// Constructeur de Coffre_Block /// </summary> public Coffre_Block() : base(1, "Coffre") { inventaire = new Inventaire("COFFRE", 3, 2); }
/// <summary> /// Constructeur de TableDeCraft qui permet de créé une table de craft directement dans la table de craft /// </summary> /// <param name="inv">l'inventaire de la table de craft</param> private TableDeCraft(Inventaire inv) : base(1, "TableDeCraft") { inventaire = inv; }
/// <summary> /// Constructeur de TableDeCraft /// </summary> public TableDeCraft() : base(1, "TableDeCraft") { inventaire = new Inventaire("CRAFT", 3, 3); }
/// <summary> /// Constructeur Coffre_Block qui permet de créé un coffre directement avec ton inventaire /// </summary> /// <param name="inv">L'inventaire de coffre(3,2)</param> private Coffre_Block(Inventaire inv) : base(1, "Coffre") { inventaire = inv; }
/// <summary> /// Constructeur de Four_Block /// </summary> public Four_Block() : base(1, "Four") { carburant = 0; inventaire = new Inventaire("FOUR", 1, 3); }