comparison API/Factories/Requirement/UnitRequiresAtLeastNUnitsRequirementFactory.cs @ 427:3882b533d99d

Re #27: Define unit requirements * Add ID to requirements so that it isn't just defined in factories * Make factory use ID from requirement class to avoid duplication and possible mismatch
author IBBoard <dev@ibboard.co.uk>
date Sun, 30 Oct 2011 20:31:43 +0000
parents 04f4c2fea356
children 7b9ff7b1df24
comparison
equal deleted inserted replaced
426:61fae5cbba02 427:3882b533d99d
5 using IBBoard.WarFoundry.API.Objects; 5 using IBBoard.WarFoundry.API.Objects;
6 using IBBoard.WarFoundry.API.Objects.Requirement; 6 using IBBoard.WarFoundry.API.Objects.Requirement;
7 7
8 namespace IBBoard.WarFoundry.API.Factories.Requirement 8 namespace IBBoard.WarFoundry.API.Factories.Requirement
9 { 9 {
10 /// <summary>
11 /// Factory for creating instances of <see cref="UnitRequiresAtLeastNUnitsRequirement" />. Data must be in the format:
12 ///
13 /// <code>unitID[:count][|unitID[:count][|...]]</code>
14 ///
15 /// e.g.:
16 ///
17 /// <code>Swordsmen:2|Bowmen</code>
18 ///
19 /// would generate a requirement to allow any number of the unit type after 1 unit with ID Bowmen or 2 units with ID Swordsmen were added.
20 /// </summary>
21 /// <exception cref='InvalidRequirementException'>
22 /// Is thrown when the invalid requirement exception.
23 /// </exception>
10 public class UnitRequiresAtLeastNUnitsRequirementFactory : IRequirementFactory 24 public class UnitRequiresAtLeastNUnitsRequirementFactory : IRequirementFactory
11 { 25 {
12 public UnitRequiresAtLeastNUnitsRequirementFactory() 26 public UnitRequiresAtLeastNUnitsRequirementFactory()
13 { 27 {
14 //Do nothing special 28 //Do nothing special
15 } 29 }
16 30
17 public string AppliesToID { 31 public string AppliesToID {
18 get { 32 get {
19 return "RequiresAtLeastNUnits"; 33 return UnitRequiresAtLeastNUnitsRequirement.REQUIREMENT_ID;
20 } 34 }
21 } 35 }
22 36
23 public IRequirement CreateRequirement<SOURCE_FILE_TYPE, ENTRY_TYPE>(UnitType type, string data, IRaceFactory<SOURCE_FILE_TYPE, ENTRY_TYPE> raceFactory) 37 public IRequirement CreateRequirement<SOURCE_FILE_TYPE, ENTRY_TYPE>(UnitType type, string data, IRaceFactory<SOURCE_FILE_TYPE, ENTRY_TYPE> raceFactory)
24 { 38 {