/// <summary> /// Ajoute arbitrairement une unité sur la carte. /// </summary> /// <param name="identificateurBelligerant">Belligérant possesseur de l'unité à ajouter.</param> /// <param name="identificateurUnite">Type d'unité à ajouter.</param> /// <param name="nomRegion">Nom de la région où ajouter l'unité.</param> /// <param name="carte">Image représentant la carte.</param> /// <param name="outilsGraphiques">Outils graphiques utilisés pour effectuer le dessin.</param> public void AjouteUnite(String identificateurBelligerant, String identificateurUnite, String nomRegion, Image carte, Graphics outilsGraphiques) { if (this.DictionnaireOccupation.Keys.Contains(nomRegion) == true) { EBelligerant belligerantConcerne = Convertisseurs.VersEBelligerant(identificateurBelligerant); EUnite uniteAjoutee = Convertisseurs.VersEUnite(identificateurUnite); this.DictionnaireOccupation[nomRegion].ChangeUnite(uniteAjoutee, belligerantConcerne); Pictogrammes.PlaceUnite(this.DictionnaireRegions[nomRegion], this.DictionnaireOccupation[nomRegion], carte, outilsGraphiques); } else { throw new Exception("L'allégeance et/ou le nom de la région sont mal définis."); } }
/// <summary> /// Retourne l'ordre d'ajustement associé au contrôle. /// </summary> /// <returns>Ordre d'ajustement associé au contrôle.</returns> public Ajuster RetourneAjustement() { EUnite unite; EAjustement ajustement; String nomRegion = this.region.Text; EBelligerant belligerant = Convertisseurs.DepuisEBelligerantAbrege(this.Belligerant.Text); if (this.comboBox.Visible == true) { String recrutement = this.comboBox.Text; if (recrutement != "") { unite = Convertisseurs.VersEUnite(recrutement); ajustement = EAjustement.Recrutement; } else { unite = EUnite.Aucune; ajustement = EAjustement.Aucun; } } else { unite = Convertisseurs.DepuisEUniteAbrege(this.Unite.Text); if (this.Ordre.Text == "*") { ajustement = EAjustement.Congédiement; } else { ajustement = EAjustement.Aucun; } } Ajuster ordre = new Ajuster(ajustement, unite, belligerant, nomRegion); return(ordre); }
/// <summary> /// Initialise le dictionnaire des régions. /// </summary> /// <param name="fichierACharger">Chemin d'accès au fichier à charger contenant le dictionnaire des régions.</param> private void InitialiseDictionnaireRegions(String fichierACharger) { this.DictionnaireRecrutement = new Dictionary <EBelligerant, List <String> >(); this.dictionnaireRegions = new Dictionary <string, GRegion>(); this.DictionnaireOccupation = new Dictionary <string, OccupationRegion>(); using (StreamReader lecteur = new StreamReader(fichierACharger)) { foreach (String nomRegion in this.ListeNomsRegions) { String donnees = lecteur.ReadLine(); String[] donneesDetaillees = donnees.Split(';'); if (donneesDetaillees[0] == nomRegion) { String abreviation = donneesDetaillees[1]; Boolean centre = Boolean.Parse(donneesDetaillees[2]); ETypeRegion typeRegion = (ETypeRegion)(Int32.Parse(donneesDetaillees[3])); Coordonnees coordonneesUnite = Coordonnees.Convertit(donneesDetaillees[4]); EBelligerant possesseurUnite = (EBelligerant)(Int32.Parse(donneesDetaillees[5])); EUnite unite = (EUnite)(Int32.Parse(donneesDetaillees[6])); if (centre == false) { GRegion nouvelleRegion = new GRegion(nomRegion, abreviation, typeRegion, coordonneesUnite); this.dictionnaireRegions.Add(nomRegion, nouvelleRegion); OccupationRegion occupation = new OccupationRegion(nomRegion, unite, possesseurUnite); this.DictionnaireOccupation.Add(nomRegion, occupation); } else { Coordonnees coordonneesCentre = Coordonnees.Convertit(donneesDetaillees[7]); EBelligerant possesseurCentre = (EBelligerant)(Int32.Parse(donneesDetaillees[8])); EBelligerant recrutement = (EBelligerant)(Int32.Parse(donneesDetaillees[9])); Centre nouveauCentre = new Centre( nomRegion, abreviation, typeRegion, coordonneesUnite, coordonneesCentre, recrutement); this.dictionnaireRegions.Add(nomRegion, nouveauCentre); OccupationCentre occupation = new OccupationCentre(nomRegion, unite, possesseurUnite, possesseurCentre); this.DictionnaireOccupation.Add(nomRegion, occupation); if (recrutement != EBelligerant.Aucun) { if (this.DictionnaireRecrutement.ContainsKey(recrutement)) { this.DictionnaireRecrutement[recrutement].Add(nomRegion); } else { this.DictionnaireRecrutement.Add(recrutement, new List <String>() { nomRegion }); } } } } else { throw new Exception("Le fichier de régions ne correspond pas à la matrice d'adjacence."); } } String retraite = lecteur.ReadLine(); while (retraite != null) { String[] retraiteDetaillee = retraite.Split(';'); String attaquant = retraiteDetaillee[0]; EBelligerant possesseur = Convertisseurs.VersEBelligerant(retraiteDetaillee[1]); String region = retraiteDetaillee[2]; EUnite typeUnite = Convertisseurs.VersEUnite(retraiteDetaillee[3]); OrdreRegional nouvelleRetraite = new OrdreRegional(typeUnite, possesseur, region, attaquant); this.ListeRetraites.Add(nouvelleRetraite); retraite = lecteur.ReadLine(); } } }