comparison API/Objects/Requirement/RequiresNUnitsForMUnitsRequirement.cs @ 453:dace3b7779ca

Re #379: Fix validation of requirements to check for unit * Restructure all validation messages to a common base system that will translate better * Update "No More Than" texts to differentiate two contexts (adding and validating)
author IBBoard <dev@ibboard.co.uk>
date Sun, 29 Jan 2012 20:05:25 +0000
parents dbd779cdc0f9
children def5d333c5e8
comparison
equal deleted inserted replaced
452:b671085871b7 453:dace3b7779ca
14 private UnitType allowedType; 14 private UnitType allowedType;
15 15
16 public RequiresNUnitsForMUnitsRequirement(UnitType allowedType, params UnitType[] requiredUnitTypes) 16 public RequiresNUnitsForMUnitsRequirement(UnitType allowedType, params UnitType[] requiredUnitTypes)
17 { 17 {
18 this.allowedType = allowedType; 18 this.allowedType = allowedType;
19 FailureStringPrefix = "Army must contain: ";
20 requiredTypes = new List<UnitCountRequirementData>(); 19 requiredTypes = new List<UnitCountRequirementData>();
21 20
22 foreach (UnitType unitType in requiredUnitTypes) 21 foreach (UnitType unitType in requiredUnitTypes)
23 { 22 {
24 AddUnitTypeRequirement(unitType); 23 AddUnitTypeRequirement(unitType);
48 { 47 {
49 return true; 48 return true;
50 } 49 }
51 } 50 }
52 51
53 protected string FailureStringPrefix { get; set; } 52 protected override string GetFailedAddingRequirementsString(UnitType toAdd, Army toArmy)
54 53 {
55 protected override string GetAllowsAddingFailedMessage(UnitType toAdd, Army toArmy) 54 return String.Join("; ", GetFailedAddingRequirements(toAdd, toArmy).ToArray());
56 {
57 StringBuilder sb = new StringBuilder();
58 sb.Append(FailureStringPrefix);
59 sb.Append(String.Join("; ", GetFailedAddingRequirements(toAdd, toArmy).ToArray()));
60 sb.Append(".");
61 return sb.ToString();
62 } 55 }
63 56
64 private List<string> GetFailedAddingRequirements(UnitType unitType, Army toArmy) 57 private List<string> GetFailedAddingRequirements(UnitType unitType, Army toArmy)
65 { 58 {
66 List<string> failures = new List<string>(); 59 List<string> failures = new List<string>();
178 } 171 }
179 172
180 return canAdd; 173 return canAdd;
181 } 174 }
182 175
183 protected override string GetValidationFailedMessage(Army army) 176 protected override string GetFailedRequirementsString(Army army)
184 { 177 {
185 StringBuilder sb = new StringBuilder(); 178 return String.Join("; ", GetFailedValidationRequirements(army).ToArray());
186 sb.Append(FailureStringPrefix);
187 sb.Append(String.Join("; ", GetFailedValidationRequirements(army).ToArray()));
188 sb.Append(".");
189 return sb.ToString();
190 } 179 }
191 180
192 private List<string> GetFailedValidationRequirements(Army army) 181 private List<string> GetFailedValidationRequirements(Army army)
193 { 182 {
194 List<string> failures = new List<string>(); 183 List<string> failures = new List<string>();