/// <summary> /// Teste la validité d'un ordre de soutien défensif. /// </summary> /// <param name="ordreATester">Ordre de soutien défensif dont il faut tester la validité.</param> /// <returns>Vrai si l'ordre est valide, faux sinon.</returns> private Boolean TesteValiditeSoutienDefensif(SoutenirDefensif ordreATester) { if (ordreATester.Unite == EUnite.Armée) { if ((this.dictionnaireAdjacence.DetermineAdjacence(ordreATester.Region, ordreATester.RegionSoutenue) == EAdjacence.AdjacentTerre) || (this.dictionnaireAdjacence.DetermineAdjacence(ordreATester.Region, ordreATester.RegionSoutenue) == EAdjacence.AjacentTerreEtMer)) { return(true); } else { return(false); } } else if (ordreATester.Unite == EUnite.Flotte) { if ((this.dictionnaireAdjacence.DetermineAdjacence(ordreATester.Region, ordreATester.RegionSoutenue) == EAdjacence.AdjacentMer) || (this.dictionnaireAdjacence.DetermineAdjacence(ordreATester.Region, ordreATester.RegionSoutenue) == EAdjacence.AjacentTerreEtMer)) { return(true); } else { return(false); } } else { return(false); } }
/// <summary> /// Enregistre un ordre de soutien (défensif). /// </summary> /// <param name="ordre">Ordre à enregistrer dans le dictionnaire.</param> public void EnregistreSoutienDefensif(SoutenirDefensif ordre) { this.ForceDefensive = 1; this.TypeOrdre = EOrdre.SoutienDefensif; this.RegionCiblee = ordre.RegionSoutenue; this.TypeUnite = ordre.Unite; this.Possesseur = ordre.Belligerant; }
/// <summary> /// Applique un ordre de soutien défensif. /// </summary> /// <param name="ordre">Ordre à appliquer.</param> private void AppliqueSoutienDefensif(SoutenirDefensif ordre) { OrdreRegional ordreSoutenu = this.Dictionnaire[ordre.RegionSoutenue]; if (ordreSoutenu.TypeOrdre != EOrdre.Attaque) { ordreSoutenu.ForceDefensive++; } }
/// <summary> /// Retourne l'ordre associé au contrôle. /// </summary> /// <returns>Ordre associé au contrôle.</returns> public OrdreAbstrait RetourneOrdre() { String[] ordre = this.Ordre.Text.Split(' '); String regionConcernee = this.region.Text; EUnite unite = Convertisseurs.DepuisEUniteAbrege(this.Unite.Text); EBelligerant belligerant = Convertisseurs.DepuisEBelligerantAbrege(this.Belligerant.Text); if (ordre[0] == "-") { String regionAttaquee = ordre[1]; Attaquer attaque = new Attaquer(unite, belligerant, regionConcernee, regionAttaquee); return(attaque); } else if (ordre[0] == "c") { String regionAttaquante = ordre[1]; String regionAttaquee = ordre[3]; Convoyer convoi = new Convoyer(belligerant, regionConcernee, regionAttaquante, regionAttaquee); return(convoi); } else if (ordre[0] == "s") { if (ordre.Length < 4) { String regionSoutenue = ordre[1]; SoutenirDefensif soutieDefensif = new SoutenirDefensif(unite, belligerant, regionConcernee, regionSoutenue); return(soutieDefensif); } else { String regionAttaquante = ordre[1]; String regionAttaquee = ordre[3]; SoutenirOffensif soutienOffensif = new SoutenirOffensif( unite, belligerant, regionConcernee, regionAttaquante, regionAttaquee); return(soutienOffensif); } } else { Tenir tenir = new Tenir(unite, belligerant, regionConcernee); return(tenir); } }