示例#1
0
        /// <summary>
        /// Retourne le contenu de la texture d'une créature extraite de la planche
        /// </summary>
        /// <param name="output">tableau de sortie</param>
        /// <param name="typeCreature">type de la créature</param>
        public Color[] getTextureData(int typeCreature)
        {
            CreatureDescription desc = _description[typeCreature];

            Color[] output = new Color[Creatures.CREATURE_SIZE * Creatures.CREATURE_SIZE];
            texPlancheCreatures.GetData <Color>(0, new Rectangle(desc.positionPlanche.X * (CREATURE_SIZE + 1),
                                                                 desc.positionPlanche.Y * (CREATURE_SIZE + 1), CREATURE_SIZE, CREATURE_SIZE), output, 0, CREATURE_SIZE * CREATURE_SIZE);
            return(output);
        }
示例#2
0
        /// <summary>
        /// Affiche une créature à l'endroit désiré
        /// Appelé au sein d'un spriteBatch begin/end
        /// </summary>
        /// <param name="spriteBatch">spriteBatch du jeu</param>
        /// <param name="GraphicsDevice">gd du jeu</param>
        /// <param name="gameTime">temps du jeu</param>
        /// <param name="x">x coin haut gauche (coordonnées de type offet de terrain)</param>
        /// <param name="y">y coin haut gauche (coordonnées de type offet de terrain)</param>
        /// <param name="z">z </param>
        /// <param name="typeCreature">type de créature à afficher</param>
        ///
        public void draw(SpriteBatch spriteBatch, GraphicsDevice GraphicsDevice, GameTime gameTime, int x, int y, float z, int typeCreature)
        {
            CreatureDescription desc = _description[typeCreature];

            int drawX = x - _jeu.terrain.offsetCarte.X;
            int drawY = y - _jeu.terrain.offsetCarte.Y;

            spriteBatch.Draw(texPlancheCreatures, new Rectangle(drawX, drawY, CREATURE_SIZE, CREATURE_SIZE),
                             new Rectangle(desc.positionPlanche.X * (CREATURE_SIZE + 1), desc.positionPlanche.Y * (CREATURE_SIZE + 1), CREATURE_SIZE, CREATURE_SIZE),
                             Color.White, 0, Vector2.Zero, SpriteEffects.None, z);
        }
示例#3
0
        // TODO : expérience, bonuses...

        // Créateur -----------------------------------------------------------
        /// <summary>
        /// Crée une créature
        /// </summary>
        /// <param name="leJeu">jeu</param>
        /// <param name="typeCreature">type de créature</param>
        /// <param name="faction">n° de faction</param>
        /// <param name="position">position dans la carte (position de carte)</param>
        public Creature(Jeu leJeu, int typeCreature, int faction, Point position)
        {
            _jeu             = leJeu;
            _typeCreature    = typeCreature;
            _faction         = faction;
            _positionEcran.X = position.X * _jeu.blockSize;
            _positionEcran.Y = position.Y * _jeu.blockSize;
            _positionCarte   = position;

            _items = new List <ItemDescription>();
            // cache la description
            _desc          = _jeu.creatures.description[typeCreature];
            _vraiNom       = _desc.nom;
            _vraicout      = _desc.cout;
            _vraieforce    = _desc.force;
            _vraimouvement = _desc.mouvement;
            _vrainage      = _desc.nage;
            _vraivol       = _desc.vol;
            reinitTour();
        }
示例#4
0
        /// <summary>
        /// Constructeur avec fichier CSV
        /// </summary>
        /// <param name="leJeu">jeu</param>
        /// <param name="nomFichierRessource">nom du fichier sans SeigneurDeGuerre.rsc.</param>
        public Creatures(Jeu leJeu, string nomFichierRessource)
            : this(leJeu) {
            // Format du fichier :
            // Index;NomCreature;PositionPlancheX;PositionPlancheY;Force;Mouvement;Cout;Heros?;Vol?;Nage?;BonusAttaque:AUCUN/VILLE/EXTERIEUR;BonusDefense;BonusMouvement:AUCUN/FORET/COLLINES/MARAIS/HERBE/EAU
            // (header présent dans le fichier)
            _description = new List <CreatureDescription>();

            CSVReader csv = new CSVReader(nomFichierRessource, ";");
            // header
            if (!csv.readLine())
            {
                throw new SdGException("Le fichier des créatures est vide");
            }
            ;
            try {
                while (csv.readLine())
                {
                    CreatureDescription crea = new CreatureDescription(csv.getField(1), new Point(Int32.Parse(csv.getField(2)), Int32.Parse(csv.getField(3))), Int32.Parse(csv.getField(0)));
                    crea.force     = Int32.Parse(csv.getField(4));
                    crea.mouvement = Int32.Parse(csv.getField(5));
                    crea.cout      = Int32.Parse(csv.getField(6));
                    crea.heros     = csv.getField(7).StartsWith("O", StringComparison.InvariantCultureIgnoreCase);
                    crea.vol       = csv.getField(8).StartsWith("O", StringComparison.InvariantCultureIgnoreCase);
                    crea.nage      = csv.getField(9).StartsWith("O", StringComparison.InvariantCultureIgnoreCase);

                    crea.bonusAttaque   = (CreatureDescription.BonusUrbain)Enum.Parse(typeof(CreatureDescription.BonusUrbain), csv.getField(10), true);
                    crea.bonusDefense   = (CreatureDescription.BonusUrbain)Enum.Parse(typeof(CreatureDescription.BonusUrbain), csv.getField(11), true);
                    crea.bonusMouvement = (CreatureDescription.BonusEnvironnement)Enum.Parse(typeof(CreatureDescription.BonusEnvironnement), csv.getField(12), true);

                    // Attention : si l'indexe ne suit pas l'ordre du fichier, pb...
                    _description.Add(crea);
                }
            }
            finally {
                csv.dispose();
            }
        }