Mercurial > repos > IBBoard.WarFoundry.API
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 { |