/// <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(); } }
/// <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); }
/// <summary> /// Constructeur /// </summary> /// <param name="leJeu">jeu en cours</param> public Villes(Jeu leJeu) { _jeu = leJeu; _texVillesNormales = new Texture2D[_jeu.factions.nbFactions + 1]; }
/// <summary> /// Constructeur /// </summary> /// <param name="leJeu">jeu en cours</param> public Items(Jeu leJeu) { _jeu = leJeu; }
/// <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(); }
/// <summary> /// IA Joue /// </summary> /// <param name="jeu"></param> public IAJoue(Jeu jeu) { this._jeu = jeu; this._etat = Etat.PHASE_INIT; }