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