comparison API/Factories/Requirement/UnitRequiresAtLeastNUnitsRequirementFactory.cs @ 379:04f4c2fea356

Re #351: Add extensible requirement handling method * Extract common IRequirementFactory interface * Drop back to just returning IRequirement from factory to simplify generics * Add initial registration of requirement factories
author IBBoard <dev@ibboard.co.uk>
date Sat, 23 Jul 2011 19:53:42 +0000
parents c3b0b28bad48
children 3882b533d99d
comparison
equal deleted inserted replaced
378:ff7f1b319b4e 379:04f4c2fea356
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 public class UnitRequiresAtLeastNUnitsRequirementFactory 10 public class UnitRequiresAtLeastNUnitsRequirementFactory : IRequirementFactory
11 { 11 {
12 public UnitRequiresAtLeastNUnitsRequirementFactory() 12 public UnitRequiresAtLeastNUnitsRequirementFactory()
13 { 13 {
14 //Do nothing special 14 //Do nothing special
15 } 15 }
16 16
17 public UnitRequiresAtLeastNUnitsRequirement CreateRequirement<SOURCE_FILE_TYPE, ENTRY_TYPE>(UnitType type, string data, IRaceFactory<SOURCE_FILE_TYPE, ENTRY_TYPE> raceFactory) 17 public string AppliesToID {
18 get {
19 return "RequiresAtLeastNUnits";
20 }
21 }
22
23 public IRequirement CreateRequirement<SOURCE_FILE_TYPE, ENTRY_TYPE>(UnitType type, string data, IRaceFactory<SOURCE_FILE_TYPE, ENTRY_TYPE> raceFactory)
18 { 24 {
19 UnitRequiresAtLeastNUnitsRequirement req = new UnitRequiresAtLeastNUnitsRequirement(type); 25 UnitRequiresAtLeastNUnitsRequirement req = new UnitRequiresAtLeastNUnitsRequirement(type);
20 Race race = type.Race; 26 Race race = type.Race;
21 AddRequirements(req, race, data, raceFactory); 27 AddRequirements(req, race, data, raceFactory);
22 return req; 28 return req;