comparison API/Objects/Requirement/UnitRequiresAtLeastNUnitsRequirement.cs @ 338:4497ebce9a57

Re #27: Unit requirements * Add "is applicable" checking to army validation
author IBBoard <dev@ibboard.co.uk>
date Sun, 03 Apr 2011 19:03:30 +0000
parents 3c4a6403a88c
children 7bd2a7cdbfbd
comparison
equal deleted inserted replaced
337:3c4a6403a88c 338:4497ebce9a57
34 public override bool AllowsAdding(WarFoundryObject wfObject, Army toArmy) 34 public override bool AllowsAdding(WarFoundryObject wfObject, Army toArmy)
35 { 35 {
36 return IsApplicable(wfObject, toArmy) ? base.ValidatesArmy(toArmy) : true; 36 return IsApplicable(wfObject, toArmy) ? base.ValidatesArmy(toArmy) : true;
37 } 37 }
38 38
39 public bool IsApplicable (WarFoundryObject wfObject, Army toArmy) 39
40 private bool IsApplicable(WarFoundryObject toObject, Army toArmy)
40 { 41 {
41 return toArmy.GetUnitTypeCount(requirementOnType) > 0 || requirementOnType.Equals(wfObject) || (wfObject is Unit && requirementOnType.Equals(((Unit)wfObject).UnitType)); 42 return IsApplicable(toArmy) || IsApplicable(toObject);
43 }
44
45
46 private bool IsApplicable(Army toArmy)
47 {
48 return toArmy.GetUnitTypeCount(requirementOnType) > 0;
49 }
50
51
52 private bool IsApplicable(WarFoundryObject toObject)
53 {
54 return requirementOnType.Equals(toObject) || (toObject is Unit && requirementOnType.Equals(((Unit)toObject).UnitType));
55 }
56
57
58 public override bool ValidatesArmy(Army toArmy)
59 {
60 return IsApplicable(toArmy) ? base.ValidatesArmy(toArmy) : true;
42 } 61 }
43 } 62 }
44 } 63 }
45 64