Mercurial > repos > IBDev-IBBoard.WarFoundry.API
annotate API/Objects/Requirement/RequiresAtLeastNUnitsRequirement.cs @ 499:2fc99446f9c9 default tip
Add initial structure for categories of equipment
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sun, 16 Oct 2016 20:26:44 +0100 |
parents | 248df19652f9 |
children |
rev | line source |
---|---|
357 | 1 // This file (UnitRequiresAtLeastNUnitsRequirement.cs) is a part of the IBBoard.WarFoundry.API project and is copyright 2011 IBBoard |
337
3c4a6403a88c
* Fix capitalisation so that new files are in the namespace
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
2 // |
3c4a6403a88c
* Fix capitalisation so that new files are in the namespace
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
3 // The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license. |
357 | 4 using System; |
5 using System.Collections.Generic; | |
337
3c4a6403a88c
* Fix capitalisation so that new files are in the namespace
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
6 using IBBoard.WarFoundry.API.Objects; |
359
2a9c046be55a
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
358
diff
changeset
|
7 using System.Text; |
480
e0641e0eb86c
Re #410: "N units per M models in parent" requirement
IBBoard <dev@ibboard.co.uk>
parents:
479
diff
changeset
|
8 using IBBoard.WarFoundry.API.Objects.Requirement.Context; |
337
3c4a6403a88c
* Fix capitalisation so that new files are in the namespace
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
9 |
3c4a6403a88c
* Fix capitalisation so that new files are in the namespace
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
10 namespace IBBoard.WarFoundry.API.Objects.Requirement |
357 | 11 { |
12 /// <summary> | |
427
3882b533d99d
Re #27: Define unit requirements
IBBoard <dev@ibboard.co.uk>
parents:
419
diff
changeset
|
13 /// A requirement where a WarFoundryObject requires at least N units of any of the specified unit types before any number of that object can be taken in an army. |
3882b533d99d
Re #27: Define unit requirements
IBBoard <dev@ibboard.co.uk>
parents:
419
diff
changeset
|
14 /// |
3882b533d99d
Re #27: Define unit requirements
IBBoard <dev@ibboard.co.uk>
parents:
419
diff
changeset
|
15 /// The definition for how this requirement is built from a data file is defined in the <see cref="UnitRequiresAtLeastNUnitsRequirementFactory"/> class. |
337
3c4a6403a88c
* Fix capitalisation so that new files are in the namespace
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
16 /// </summary> |
458 | 17 public abstract class RequiresAtLeastNUnitsRequirement<OBJECT_TYPE> : AbstractUnitRequirement<OBJECT_TYPE> where OBJECT_TYPE : IWarFoundryObject |
357 | 18 { |
427
3882b533d99d
Re #27: Define unit requirements
IBBoard <dev@ibboard.co.uk>
parents:
419
diff
changeset
|
19 public static readonly string REQUIREMENT_ID = "RequiresAtLeastNUnits"; |
337
3c4a6403a88c
* Fix capitalisation so that new files are in the namespace
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
20 |
455
afc6410e4efc
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
453
diff
changeset
|
21 public RequiresAtLeastNUnitsRequirement(OBJECT_TYPE requirementOn, params UnitType[] requiredUnitTypes) : base(requirementOn, requiredUnitTypes) |
357 | 22 { |
455
afc6410e4efc
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
453
diff
changeset
|
23 //Do nothing |
357 | 24 } |
25 | |
427
3882b533d99d
Re #27: Define unit requirements
IBBoard <dev@ibboard.co.uk>
parents:
419
diff
changeset
|
26 public override string RequirementID |
3882b533d99d
Re #27: Define unit requirements
IBBoard <dev@ibboard.co.uk>
parents:
419
diff
changeset
|
27 { |
3882b533d99d
Re #27: Define unit requirements
IBBoard <dev@ibboard.co.uk>
parents:
419
diff
changeset
|
28 get |
3882b533d99d
Re #27: Define unit requirements
IBBoard <dev@ibboard.co.uk>
parents:
419
diff
changeset
|
29 { |
3882b533d99d
Re #27: Define unit requirements
IBBoard <dev@ibboard.co.uk>
parents:
419
diff
changeset
|
30 return REQUIREMENT_ID; |
3882b533d99d
Re #27: Define unit requirements
IBBoard <dev@ibboard.co.uk>
parents:
419
diff
changeset
|
31 } |
3882b533d99d
Re #27: Define unit requirements
IBBoard <dev@ibboard.co.uk>
parents:
419
diff
changeset
|
32 } |
3882b533d99d
Re #27: Define unit requirements
IBBoard <dev@ibboard.co.uk>
parents:
419
diff
changeset
|
33 |
479
f48c49b53738
Re #410: "N units per M models in parent" requirement
IBBoard <dev@ibboard.co.uk>
parents:
465
diff
changeset
|
34 protected override bool IsApplicable(Army toArmy, AddingContext context) |
357 | 35 { |
36 return false; | |
37 } | |
38 | |
479
f48c49b53738
Re #410: "N units per M models in parent" requirement
IBBoard <dev@ibboard.co.uk>
parents:
465
diff
changeset
|
39 protected override bool IsApplicable(IWarFoundryObject toObject, AddingContext context) |
357 | 40 { |
41 bool isApplicable = false; | |
42 UnitType unitType = GetUnitTypeFromObject(toObject); | |
43 | |
44 if (unitType != null) | |
45 { | |
46 isApplicable = IsApplicable(unitType); | |
47 } | |
48 | |
49 return isApplicable; | |
50 } | |
51 | |
452
b671085871b7
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
427
diff
changeset
|
52 private bool IsApplicable(UnitType unitType) |
357 | 53 { |
54 bool isApplicable = false; | |
457
8e01c3174cc3
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
456
diff
changeset
|
55 foreach (UnitCountRequirementData requirement in ConstraintTypes) |
357 | 56 { |
57 if (requirement.UnitType.Equals(unitType)) | |
58 { | |
59 isApplicable = true; | |
60 break; | |
61 } | |
62 } | |
63 return isApplicable; | |
64 } | |
65 | |
479
f48c49b53738
Re #410: "N units per M models in parent" requirement
IBBoard <dev@ibboard.co.uk>
parents:
465
diff
changeset
|
66 protected override Validation CheckAllowsAdding(IWarFoundryObject wfObject, Army toArmy, AddingContext context) |
357 | 67 { |
68 Validation isValid = Validation.Passed; | |
69 | |
457
8e01c3174cc3
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
456
diff
changeset
|
70 foreach (UnitCountRequirementData requirement in ConstraintTypes) |
357 | 71 { |
465
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
72 if (GetUnitTypesCount(toArmy, requirement.UnitTypes, wfObject) < requirement.Count) |
357 | 73 { |
74 isValid = Validation.Failed; | |
75 break; | |
76 } | |
77 } | |
78 | |
79 return isValid; | |
80 } | |
81 | |
82 /// <summary> | |
465
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
83 /// Adds a requirement for there to be at least minCount of a given UnitType, allowing any number of of this UnitType. |
357 | 84 /// </summary> |
85 /// <param name='unitType'> | |
86 /// The unit type to require. | |
87 /// </param> | |
88 /// <param name='minCount'> | |
89 /// The minimum number of that type that must exist. | |
90 /// </param> | |
91 public void AddUnitTypeRequirement(UnitType unitType, int minCount) | |
92 { | |
465
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
93 AddUnitTypeRequirement(minCount, unitType); |
357 | 94 } |
95 | |
96 /// <summary> | |
465
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
97 /// Adds a requirement for there to be one or more of a given UnitType, allowing any number of of this UnitType. |
357 | 98 /// </summary> |
99 /// <param name='unitType'> | |
100 /// The unit type to require. | |
101 /// </param> | |
455
afc6410e4efc
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
453
diff
changeset
|
102 public override void AddUnitTypeRequirement(UnitType unitType) |
357 | 103 { |
104 AddUnitTypeRequirement(unitType, 1); | |
105 } | |
106 | |
107 /// <summary> | |
465
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
108 /// Adds a requirement for there to be one or more of the given UnitTypes, allowing any number of of this UnitType. If multiple unit types |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
109 /// are supplied here then they are treated as alternatives (so "unitType1, unitType2" requires one of either type). |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
110 /// </summary> |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
111 /// <param name='unitType'> |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
112 /// The unit type or types to require. |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
113 /// </param> |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
114 public void AddUnitTypeRequirement(params UnitType[] unitTypes) |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
115 { |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
116 AddUnitTypeRequirement(1, unitTypes); |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
117 } |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
118 |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
119 /// <summary> |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
120 /// Adds a requirement for there to be minCount or more of the given UnitTypes, allowing any number of of this UnitType. If multiple unit types |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
121 /// are supplied here then they are treated as alternatives (so "unitType1, unitType2" requires one of either type). |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
122 /// </summary> |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
123 /// <param name="minCount"> |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
124 /// The number of units to be allowed for each 1 of unitType |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
125 /// </param> |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
126 /// <param name='unitType'> |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
127 /// The unit type or types to require. |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
128 /// </param> |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
129 public void AddUnitTypeRequirement(int minCount, params UnitType[] unitTypes) |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
130 { |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
131 ConstraintTypes.Add(new UnitCountRequirementData(unitTypes, minCount)); |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
132 } |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
133 |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
134 |
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
135 /// <summary> |
357 | 136 /// Checks whether the supplied army is currently valid according to this requirement. |
137 /// </summary> | |
138 /// <returns> | |
139 /// A <code>Validation</code> enum to show the result of the validation | |
140 /// </returns> | |
141 /// <param name='toValidate'> | |
142 /// The army to validate | |
143 /// </param> | |
358
dbe7ccb1e557
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
357
diff
changeset
|
144 public override Validation ValidatesArmy(Army toValidate) |
357 | 145 { |
458 | 146 Validation isValid = Validation.NotApplicable; |
147 int allowedTypeCount = GetObjectCountFromArmy(toValidate, AllowedObject); | |
357 | 148 |
458 | 149 if (allowedTypeCount > 0) |
357 | 150 { |
458 | 151 isValid = Validation.Passed; |
152 | |
153 foreach (UnitCountRequirementData requirement in ConstraintTypes) | |
357 | 154 { |
465
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
155 if (GetUnitTypesCount(toValidate, requirement.UnitTypes) < requirement.Count) |
458 | 156 { |
157 isValid = Validation.Failed; | |
158 break; | |
159 } | |
357 | 160 } |
161 } | |
458 | 162 else |
163 { | |
164 isValid = Validation.NotApplicable; | |
165 } | |
357 | 166 |
167 return isValid; | |
168 } | |
358
dbe7ccb1e557
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
357
diff
changeset
|
169 |
453
dace3b7779ca
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
452
diff
changeset
|
170 protected override string GetFailedRequirementsString(Army army) |
358
dbe7ccb1e557
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
357
diff
changeset
|
171 { |
453
dace3b7779ca
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
452
diff
changeset
|
172 return String.Join("; ", GetFailedRequirements(army).ToArray()); |
359
2a9c046be55a
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
358
diff
changeset
|
173 } |
2a9c046be55a
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
358
diff
changeset
|
174 |
2a9c046be55a
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
358
diff
changeset
|
175 private List<string> GetFailedRequirements(Army army) |
2a9c046be55a
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
358
diff
changeset
|
176 { |
2a9c046be55a
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
358
diff
changeset
|
177 List<string> failures = new List<string>(); |
2a9c046be55a
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
358
diff
changeset
|
178 |
457
8e01c3174cc3
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
456
diff
changeset
|
179 foreach (UnitCountRequirementData requirement in ConstraintTypes) |
359
2a9c046be55a
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
358
diff
changeset
|
180 { |
465
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
181 int unitCount = GetUnitTypesCount(army, requirement.UnitTypes); |
359
2a9c046be55a
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
358
diff
changeset
|
182 |
2a9c046be55a
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
358
diff
changeset
|
183 if (unitCount < requirement.Count) |
2a9c046be55a
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
358
diff
changeset
|
184 { |
465
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
185 failures.Add(requirement.Count + " × " + GetUnitTypeList(requirement) + " (have " + unitCount + ")"); |
359
2a9c046be55a
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
358
diff
changeset
|
186 } |
2a9c046be55a
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
358
diff
changeset
|
187 } |
2a9c046be55a
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
358
diff
changeset
|
188 |
2a9c046be55a
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
358
diff
changeset
|
189 return failures; |
358
dbe7ccb1e557
Re #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
357
diff
changeset
|
190 } |
364
0dd8dbe8afe9
Fixes #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
360
diff
changeset
|
191 |
487
248df19652f9
Re #410: Create "N units per M models in parent unit" requirement
IBBoard <dev@ibboard.co.uk>
parents:
480
diff
changeset
|
192 protected override string GetFailedAddingRequirementsString(IWarFoundryObject toAdd, Army toArmy, AddingContext context) |
364
0dd8dbe8afe9
Fixes #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
360
diff
changeset
|
193 { |
453
dace3b7779ca
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
452
diff
changeset
|
194 return String.Join("; ", GetFailedAddingRequirements(toAdd, toArmy).ToArray()); |
364
0dd8dbe8afe9
Fixes #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
360
diff
changeset
|
195 } |
0dd8dbe8afe9
Fixes #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
360
diff
changeset
|
196 |
455
afc6410e4efc
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
453
diff
changeset
|
197 private List<string> GetFailedAddingRequirements(IWarFoundryObject toAdd, Army army) |
364
0dd8dbe8afe9
Fixes #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
360
diff
changeset
|
198 { |
0dd8dbe8afe9
Fixes #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
360
diff
changeset
|
199 List<string> failures = new List<string>(); |
0dd8dbe8afe9
Fixes #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
360
diff
changeset
|
200 |
457
8e01c3174cc3
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
456
diff
changeset
|
201 foreach (UnitCountRequirementData requirement in ConstraintTypes) |
364
0dd8dbe8afe9
Fixes #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
360
diff
changeset
|
202 { |
465
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
203 int unitCount = GetUnitTypesCount(army, requirement.UnitTypes, toAdd); |
364
0dd8dbe8afe9
Fixes #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
360
diff
changeset
|
204 |
0dd8dbe8afe9
Fixes #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
360
diff
changeset
|
205 if (unitCount < requirement.Count) |
0dd8dbe8afe9
Fixes #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
360
diff
changeset
|
206 { |
465
7b9ff7b1df24
Re #394: Make requirements (or factory) more closely match Rollcall methods
IBBoard <dev@ibboard.co.uk>
parents:
462
diff
changeset
|
207 failures.Add(requirement.Count + " × " + GetUnitTypeList(requirement) + " (would have " + unitCount + ")"); |
364
0dd8dbe8afe9
Fixes #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
360
diff
changeset
|
208 } |
0dd8dbe8afe9
Fixes #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
360
diff
changeset
|
209 } |
0dd8dbe8afe9
Fixes #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
360
diff
changeset
|
210 |
0dd8dbe8afe9
Fixes #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
360
diff
changeset
|
211 return failures; |
0dd8dbe8afe9
Fixes #345: Add failure message to requirements
IBBoard <dev@ibboard.co.uk>
parents:
360
diff
changeset
|
212 } |
455
afc6410e4efc
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
453
diff
changeset
|
213 |
afc6410e4efc
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
453
diff
changeset
|
214 protected override int GetObjectCountFromArmy(Army toArmy) |
afc6410e4efc
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
453
diff
changeset
|
215 { |
afc6410e4efc
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
453
diff
changeset
|
216 return 0; |
afc6410e4efc
Re #379: Fix validation of requirements to check for unit
IBBoard <dev@ibboard.co.uk>
parents:
453
diff
changeset
|
217 } |
337
3c4a6403a88c
* Fix capitalisation so that new files are in the namespace
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
218 } |
3c4a6403a88c
* Fix capitalisation so that new files are in the namespace
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
219 } |
3c4a6403a88c
* Fix capitalisation so that new files are in the namespace
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
220 |