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