public override PersonnageAbstrait creerPersonnage(string nom, int typeFourmi, ZoneAbstraite zoneFourmiliere, EnvironnementAbstrait env)
        {
            id++;
            switch (typeFourmi)
            {
            case (int)FourmiliereConstante.typeFourmie.fourmiOuvriere:
            {
                FourmiOuvriere f = new FourmiOuvriere(nom, zoneFourmiliere, id, env);
                env.ZoneAbstraiteList[zoneFourmiliere.coordonnes.x].zoneAbstraiteList[zoneFourmiliere.coordonnes.y].AjoutePersonnage(f);
                return(f);
            }

            case (int)FourmiliereConstante.typeFourmie.fourmiGuerriere:
            {
                FourmiGuerriere f = new FourmiGuerriere(nom, zoneFourmiliere, id, env);
                env.ZoneAbstraiteList[zoneFourmiliere.coordonnes.x].zoneAbstraiteList[zoneFourmiliere.coordonnes.y].AjoutePersonnage(f);
                return(f);
            }

            case (int)FourmiliereConstante.typeFourmie.oeufFourmiOuvriere:
            {
                Oeuf f = new Oeuf(nom, zoneFourmiliere, id, (int)FourmiliereConstante.typeFourmie.fourmiOuvriere);
                env.ZoneAbstraiteList[zoneFourmiliere.coordonnes.x].zoneAbstraiteList[zoneFourmiliere.coordonnes.y].AjoutePersonnage(f);
                return(f);
            }

            case (int)FourmiliereConstante.typeFourmie.oeufFourmiGuerriere:
            {
                Oeuf f = new Oeuf(nom, zoneFourmiliere, id, (int)FourmiliereConstante.typeFourmie.fourmiGuerriere);
                env.ZoneAbstraiteList[zoneFourmiliere.coordonnes.x].zoneAbstraiteList[zoneFourmiliere.coordonnes.y].AjoutePersonnage(f);
                return(f);
            }

            case (int)FourmiliereConstante.typeFourmie.oeufFourmiChaman:
            {
                Oeuf f = new Oeuf(nom, zoneFourmiliere, id, (int)FourmiliereConstante.typeFourmie.fourmiChaman);
                env.ZoneAbstraiteList[zoneFourmiliere.coordonnes.x].zoneAbstraiteList[zoneFourmiliere.coordonnes.y].AjoutePersonnage(f);
                return(f);
            }

            case (int)FourmiliereConstante.typeFourmie.fourmiReine:
            {
                FourmiReine f = new FourmiReine(nom, zoneFourmiliere, id, env);
                zoneFourmiliere.AjoutePersonnage(f);
                env.ZoneAbstraiteList[zoneFourmiliere.coordonnes.x].zoneAbstraiteList[zoneFourmiliere.coordonnes.y].AjoutePersonnage(f);
                return(f);
            }

            case (int)FourmiliereConstante.typeFourmie.fourmiChaman:
            {
                FourmiChaman f = new FourmiChaman(nom, zoneFourmiliere, id, env);
                env.ZoneAbstraiteList[zoneFourmiliere.coordonnes.x].zoneAbstraiteList[zoneFourmiliere.coordonnes.y].AjoutePersonnage(f);
                return(f);
            }

            default:
                return(null);
            }
        }
Exemple #2
0
        public void PondreOeuf()
        {
            FabriqueFourmiliere fabrique = new FabriqueFourmiliere();
            CoordonneesAbstrait pos      = new Coordonnees();

            pos.X     = Position.X + Fourmiliere.Hazard.Next(-1, 2);
            pos.Y     = Position.Y + Fourmiliere.Hazard.Next(-1, 2);
            oeufPondu = (Oeuf)fabrique.CreerOeuf(String.Format("Oeuf N° {0}", zone.ObjetList.Where(x => x.GetType().Equals(typeof(Oeuf))).Count()), pos);
            AjouterEtape(0, String.Format("Je pond un oeuf en X={0}, Y={1}", pos.X, pos.Y), Position.X, Position.Y);
        }
Exemple #3
0
        public override List <Evenement> executer(PersonnageAbstrait personnage, EnvironnementAbstrait env)
        {
            FabriqueAbstraite fabriqueFourmiliere = new FabriqueFourmiliere();
            List <Evenement>  evenements          = new List <Evenement>();

            if (personnage.GetType() == typeof(Oeuf))
            {
                Oeuf oeuf = (Oeuf)personnage;
                oeuf.timer--;
                if (oeuf.timer == 0)
                {
                    evenements.Add(new Evenement(personnage, (int)FourmiliereConstante.typeEvenement.eclore));
                    oeuf.pointDeVie = 0;
                }
            }
            return(evenements);
        }