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); }
public override Item Clone() { Sacados it = new Sacados(); for (int x = 0; x < inventaire.Length; x++) { it.inventaire.SetItem(x, inventaire.GetItem(x)); } return(it); }
public override bool Detruire(Joueur joueur) { if (joueur.MainDroit() is Pioche) { joueur.AjouterItem(new Four_Item(1)); if (inventaire.GetItem(0) != null) { joueur.AjouterItem(inventaire.GetItem(0)); } if (inventaire.GetItem(1) != null) { joueur.AjouterItem(inventaire.GetItem(1)); } if (inventaire.GetItem(2) != null) { joueur.AjouterItem(inventaire.GetItem(2)); } return(true); } return(false); }
/// <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> /// recupère l'item dans sa main droit /// </summary> /// <returns></returns> public Item MainDroit() { return(barre.GetItem(maindroite)); }