Esempio n. 1
0
        /// <summary>
        /// Si le numéro d'enclos est 0 ou 1 : demande le type de l'animal que l'enclos contiendra/ajoute un animal dans l'enclos
        /// 2 ou 3 : ajoute un animal dans l'enclos.
        /// </summary>
        /// <param name="numEnclos">Le numéro de l'enclos où l'animal doit être ajouté</param>
        /// <param name="tuile">La tuile sur laquelle l'animal apparaîtra</param>
        private void AjouterAnimalDansEnclos(int numEnclos, TuileZoo tuile)
        {
            Enclos enclos = ListeEnclos[numEnclos];

            switch (numEnclos)
            {
            case 0:
                goto case 1;

            case 1:
                if (enclos.Espece == Animal.TypeAnimal.Inexistant)
                {
                    ChoisirEtAcheterAnimal(tuile, enclos);
                }
                else
                {
                    AcheterAnimal(enclos, enclos.PrixEspece, tuile, enclos.Espece);
                }
                break;

            case 2:
                AcheterAnimal(enclos, Animal.PRIX_LION, tuile, Animal.TypeAnimal.Lion);
                break;

            case 3:
                AcheterAnimal(enclos, Animal.PRIX_GRIZZLY, tuile, Animal.TypeAnimal.Grizzly);
                break;
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Si la tuile cliquée est à côté du héros :
        /// nourrit les animaux, ou ajoute un animal dans un enclos, ou ramasse les déchets, ou ajoute un concierge
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CliqueGauche(object sender, MouseEventArgs e)
        {
            TuileZoo tuile = Terrain[e.X / 32, e.Y / 32];

            if (tuile.EstACoteDuHeros())
            {
                if (tuile.ContientAnimal())
                {
                    NourrirAnimal(tuile);
                }

                else if (tuile.EstDansQuelEnclos().HasValue&& tuile.Tuile != TuileZoo.TypeTuile.Interdit)
                {
                    AjouterAnimalDansEnclos(tuile.EstDansQuelEnclos().Value, tuile);
                }

                else if (tuile.ContientDechet())
                {
                    HerosRamasseDechet(tuile);
                }

                else if (!tuile.ContientEntite() && tuile.Tuile == TuileZoo.TypeTuile.Allee)
                {
                    new Concierge(tuile);
                }
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Affiche un message contenant les informations de l'entité cliquée, si la case contient une entité.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CliqueDroit(object sender, MouseEventArgs e)
        {
            FrmInfos infos = new FrmInfos();
            TuileZoo tuile = Terrain[e.X / 32, e.Y / 32];

            foreach (Entite entite in ListeEntites.Where(entite => entite.Position == tuile))
            {
                if (entite is Animal)
                {
                    Animal a = entite as Animal;
                    MontrerInformations(infos, a.Type.ToString(), a.Image, a.Sexe.ToString(),
                                        a.Age.ToString(), a.Enceinte ? "Enceinte" : "Pas enceinte",
                                        a.DerniereFoisNourri.AddMinutes(a.MinutesPourNourrir) > DateTime.Now ? "A mangé récemment" : "A faim depuis " + a.DerniereFoisNourri.ToShortTimeString());
                }
                else if (entite is Visiteur)
                {
                    Visiteur v = entite as Visiteur;
                    MontrerInformations(infos, v.Nom, v.Image, v.SexeVisiteur.ToString(),
                                        (DateTime.Now - v.QuandEntreZoo).ToString());
                }
                else if (entite is Concierge)
                {
                    Concierge c = entite as Concierge;
                    MontrerInformations(infos, c.GetType().ToString(), c.Image);
                }
                break;
            }
        }
Esempio n. 4
0
 /// <summary>
 /// Methode pour ajouter (acheter) un animal dans un enclos
 /// </summary>
 /// <param name="enclos"></param>
 /// <param name="prixAnimal"></param>
 /// <param name="tuile"></param>
 /// <param name="type"></param>
 private void AcheterAnimal(Enclos enclos, double prixAnimal, TuileZoo tuile, Animal.TypeAnimal type)
 {
     if (!tuile.ContientAnimal() && Heros.AAssezDArgent(prixAnimal))
     {
         enclos.Espece     = type;
         enclos.PrixEspece = prixAnimal;
         enclos.AnimauxPresents.Add(new Animal(tuile, type));
     }
 }
Esempio n. 5
0
        /// <summary>
        /// Le clique gauche sur une tuile adjacente au Héros enlève les déchets
        /// </summary>
        /// <param name="tuile">La tuile cliquée</param>
        private void HerosRamasseDechet(TuileZoo tuile)
        {
            Dechet dechetEntite = null;

            foreach (Entite entite in ListeEntites.OfType <Dechet>().Where(e => e.Position == tuile))
            {
                dechetEntite = entite as Dechet;
            }

            ListeEntites.Remove(dechetEntite);
        }
Esempio n. 6
0
 /// <summary>
 /// Nourrit un animal et il émet le son approprié. Si le temps pour nourrir l'animal est écoulé, ça coûtera 2$ au lieu de 1$.
 /// </summary>
 /// <param name="tuile"></param>
 private void NourrirAnimal(TuileZoo tuile)
 {
     if (Heros.AAssezDArgent(1))
     {
         foreach (Entite e in ListeEntites.OfType <Animal>().Where(e => e.Position == tuile))
         {
             Animal a = e as Animal;
             Heros.Argent        -= a.DerniereFoisNourri.AddMinutes(a.MinutesPourNourrir) > DateTime.Now ? 1 : 2;
             a.DerniereFoisNourri = DateTime.Now;
             a.EmettreSon();
         }
     }
 }
Esempio n. 7
0
        /// <summary>
        /// Methode pour la selection d'animal (licorne ou mouton)
        /// </summary>
        /// <param name="tuile"></param>
        /// <param name="enclos"></param>
        private void ChoisirEtAcheterAnimal(TuileZoo tuile, Enclos enclos)
        {
            ChoixAnimal choix = new ChoixAnimal();

            choix.ShowDialog();
            switch (choix.Selection)
            {
            case Animal.TypeAnimal.Licorne:
                AcheterAnimal(enclos, Animal.PRIX_LICORNE, tuile, Animal.TypeAnimal.Licorne);
                break;

            case Animal.TypeAnimal.Mouton:
                AcheterAnimal(enclos, Animal.PRIX_MOUTON, tuile, Animal.TypeAnimal.Mouton);
                break;
            }
        }
Esempio n. 8
0
        /// <summary>
        /// Pour chaque tuile, la methode la dessine et l'ajoute dans le tableau de tuile Terrain
        /// </summary>
        /// <param name="g"></param>
        /// <param name="image"></param>
        /// <param name="x"></param>
        /// <param name="y"></param>
        /// <param name="typeTuile"></param>
        private void DessinerUneImageEtInitialiserTerrain(Graphics g, Bitmap image, int x, int y, TuileZoo.TypeTuile typeTuile)
        {
            if (image == TileSetGenerator.GetTile(TileSetGenerator.TB_CLOTURE_ENCLOS))
            {
                g.DrawImage(image, x * 32 + 8, y * 32);
            }

            else if (image == TileSetGenerator.GetTile(TileSetGenerator.BR_CLOTURE_ENCLOS))
            {
                g.DrawImage(image, x * 32 - 8, y * 32);
            }
            else
            {
                g.DrawImage(image, x * 32, y * 32);
            }

            Terrain[x, y] = new TuileZoo(typeTuile, x, y);
        }