Exemple #1
0
        /// <summary>
        /// Créateur à partir de fichier de description des villes
        /// </summary>
        /// <param name="leJeu">jeu en cours</param>
        /// <param name="nomFichierRessource">nom du fichier texte (sans préfixe SeigneursDeGuerre.)</param>
        public Villes(Jeu leJeu, string nomFichierRessource) :  this(leJeu) {
            // Format du fichier :
            // Indice;Nom;NiveauDefense;NiveauProductivtié;CapitaleFaction;Faction;Productions possibles (indexes séparées par |)
            // (header présent dans le fichier)
            _description = new VilleDescription[leJeu.terrain.terrainDesc.nombreVilles];

            CSVReader csv = new CSVReader(nomFichierRessource, ";");
            // header
            if (!csv.readLine())
            {
                throw new SdGException("Le fichier des villes est vide");
            }
            ;
            try {
                while (csv.readLine())
                {
                    VilleDescription ville = new VilleDescription(Int32.Parse(csv.getField(0)));
                    ville.nom                  = csv.getField(1);
                    ville.niveauDefense        = Int32.Parse(csv.getField(2));
                    ville.niveauProductivite   = Int32.Parse(csv.getField(3));
                    ville.capitaleFaction      = Int32.Parse(csv.getField(4));
                    ville.faction              = Int32.Parse(csv.getField(5));
                    _description[ville.indice] = ville;
                    ville.positionMap          = leJeu.terrain.terrainDesc.getPositionVilles(ville.indice);
                    string[] types = csv.getField(6).Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
                    ville.typeCreatures = new int[types.Length];
                    for (int i = 0; i < types.Length; i++)
                    {
                        ville.typeCreatures[i] = Int32.Parse(types[i]);
                    }
                    // La faction neutre ne produit rien
                    ville.productionCourante = (ville.faction == 0) ? -1 : 0;
                }
            }
            finally {
                csv.dispose();
            }
        }
        /// <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();
            }
        }
Exemple #3
0
 /// <summary>
 /// Constructeur
 /// </summary>
 /// <param name="jeu">jeu</param>
 /// <param name="attaque">attaquant</param>
 /// <param name="garnison">défenseurs</param>
 public Combat(Jeu jeu, Armee attaque, List <Armee> garnison)
 {
     _jeu          = jeu;
     _attaque      = attaque;
     _garnison     = garnison;
     _indexDefense = 0;
     _defense      = garnison[0];
     // Ordonne les armées dans l'ordre qui va bien (normalement inutile, mais bon)
     _attaque.ordonnePourCombat();
     _defense.ordonnePourCombat();
     // Détermine si l'armée de défense est dans une ville
     foreach (VilleDescription vd in jeu.villes.villeDesc)
     {
         if (vd.contains(_defense.positionCarte))
         {
             _dansVille    = true;
             _defenseVille = vd.niveauDefense;
             break;
         }
     }
     // Calcul du 1er bonus pour l'affichage
     _bonusAttaque = calculBonusAttaque(_attaque.getCreature(0), _attaque);
     _bonusDefense = calculBonusDefense(_defense.getCreature(0), _defense);
 }
Exemple #4
0
 /// <summary>
 /// Constructeur
 /// </summary>
 /// <param name="leJeu">jeu en cours</param>
 public Villes(Jeu leJeu)
 {
     _jeu = leJeu;
     _texVillesNormales = new Texture2D[_jeu.factions.nbFactions + 1];
 }
Exemple #5
0
 /// <summary>
 /// Constructeur
 /// </summary>
 /// <param name="leJeu">jeu en cours</param>
 public Items(Jeu leJeu)
 {
     _jeu = leJeu;
 }
Exemple #6
0
 /// <summary>
 /// Créateur
 /// </summary>
 /// <param name="leJeu">jeu</param>
 public InfoCarte(Jeu leJeu)
 {
     _jeu = leJeu;
 }
 /// <summary>
 /// Constructeur vide
 /// </summary>
 /// <param name="leJeu"></param>
 public Creatures(Jeu leJeu)
 {
     _jeu = leJeu;
 }
 /// <summary>
 /// Constructeur
 /// </summary>
 /// <param name="leJeu">jeu</param>
 public InteractionJoueur(Jeu leJeu)
 {
     _jeu = leJeu;
     reinitDoubleClick();
 }
Exemple #9
0
 /// <summary>
 /// IA Joue
 /// </summary>
 /// <param name="jeu"></param>
 public IAJoue(Jeu jeu)
 {
     this._jeu  = jeu;
     this._etat = Etat.PHASE_INIT;
 }