public override Tuple <bool, Tuple <Ecrans, object> > CliqueGauche(Joueur joueur, int bx, int by, Block block, Entite entite, Monde monde) { if (block != null) { durabiliter--; if (durabiliter == 0) { joueur.EnleverItem(this); } } return(new Tuple <bool, Tuple <Ecrans, object> >(true, null)); }
/// <summary> /// place un block si ni a rien /// </summary> /// <param name="joueur"></param> /// <param name="bx"></param> /// <param name="by"></param> /// <param name="block"></param> /// <param name="entite"></param> /// <param name="monde"></param> /// <returns></returns> public override Tuple <bool, Tuple <Ecrans, object> > CliqueDroite(Joueur joueur, int bx, int by, Block block, Entite entite, Monde monde) { if (block == null && entite == null) { monde.SetBlock(bx, by, this.block.Clone()); Item it = Clone(); it.Quantite = 1; joueur.EnleverItem(it); return(new Tuple <bool, Tuple <Ecrans, object> >(false, null)); } return(new Tuple <bool, Tuple <Ecrans, object> >(true, null)); }
public override Tuple <bool, Tuple <Ecrans, object> > CliqueGauche(Joueur joueur, int bx, int by, Block block, Entite entite, Monde monde) { //dans le system de degat. les degats de larme son deja pris en compte if (entite != null) { durabiliter--; if (durabiliter == 0) { joueur.EnleverItem(this); } } return(new Tuple <bool, Tuple <Ecrans, object> >(true, null)); }
/// <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); }
public override bool Detruire(Joueur joueur) { //si ciseau en main if (joueur.MainDroit() is Ciseau cis) { joueur.AjouterItem(new FeuilleDeChene_Item(1)); cis.Durabiliter--; if (cis.Durabiliter <= 0) { joueur.EnleverItem(cis); } } return(true); }
/// <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); }