comparison api/Objects/EquipmentItem.cs @ 54:3a90f70dac73

Re #61 - Complete structure of WarFoundry API objects * Remove min/max from EquipmentItem and add description * Add min/max numbers and percentages to UnitEquipmentItem * Make Race schema define min/max number without the ratio (which is the percentage) * Replace use of EquipmentItem with UnitEquipmentItem because of increased use of UnitEquipmentItem for unit-specific data * Use doubles instead of floats for equipment amounts * Distinguish between ratio and absolute limits * Delete UnitEquipmentItemObj helper class that was purely used for UI Re #9 - Use smaller methods * Deprecate long Race and EquipmentItem constructors and ensure all getters/setters exist Also: * Migrate Unit to using genericed collections * Always use GameSystem object for Race, not ID string
author IBBoard <dev@ibboard.co.uk>
date Sun, 05 Apr 2009 13:45:23 +0000
parents d0812d7de39d
children 3ea0ab04352b
comparison
equal deleted inserted replaced
53:1b35eed503ef 54:3a90f70dac73
10 /// <summary> 10 /// <summary>
11 /// Summary description for EquipmentItem. 11 /// Summary description for EquipmentItem.
12 /// </summary> 12 /// </summary>
13 public class EquipmentItem : WarFoundryObject 13 public class EquipmentItem : WarFoundryObject
14 { 14 {
15 private double cost, min, max; 15 private double cost;
16 private string description;
16 private ArmourType armourType; 17 private ArmourType armourType;
17 private Race equipForRace; 18 private Race equipForRace;
18 19
19 public EquipmentItem(string id, string name, double itemCost, double minimum, double maximum, ArmourType itemArmourType, Race race) : base(id, name) 20 public EquipmentItem(string id, string name, Race race) : base(id, name)
20 { 21 {
21 cost = itemCost;
22 min = minimum;
23 max = maximum;
24 armourType = itemArmourType;
25 equipForRace = race; 22 equipForRace = race;
23 description = "";
24 armourType = ArmourType.None;
26 } 25 }
27 26
28 public bool IsRatioLimit 27 [Obsolete("Use the three argument constructor and the appropriate 'set' methods")]
28 public EquipmentItem(string id, string name, double itemCost, double minimum, double maximum, ArmourType itemArmourType, Race race) : this(id, name, race)
29 { 29 {
30 get { return ((MaxNumber < 1 && MaxNumber > 0) || (MaxNumber == 1 && MinNumber > 0)); } 30 ItemArmourType = itemArmourType;
31 }
32
33 public double MinNumber
34 {
35 get { return min; }
36 set
37 {
38 min = (value >= 0 || value == WarFoundryCore.INFINITY) ? value : 0;
39
40 if (MaxNumber != WarFoundryCore.INFINITY && min > MaxNumber)
41 {
42 MaxNumber = min;
43 }
44 }
45 }
46
47 public double MaxNumber
48 {
49 get { return max; }
50 set
51 {
52 max = (value > 0 || value == WarFoundryCore.INFINITY) ? value : WarFoundryCore.INFINITY;
53
54 if (max != WarFoundryCore.INFINITY && MinNumber > max)
55 {
56 MinNumber = max;
57 }
58 }
59 } 31 }
60 32
61 public ArmourType ItemArmourType 33 public ArmourType ItemArmourType
62 { 34 {
63 get { return armourType; } 35 get { return armourType; }
65 } 37 }
66 38
67 public double Cost 39 public double Cost
68 { 40 {
69 get { return cost; } 41 get { return cost; }
70 set { cost = value; } 42 set
43 {
44 if (value >= 0)
45 {
46 cost = value;
47 }
48 }
49 }
50
51 public string Description
52 {
53 get { return description; }
54 set { description = (value == null ? "" : value); }
71 } 55 }
72 56
73 public Race EquipmentForRace 57 public Race EquipmentForRace
74 { 58 {
75 get { return equipForRace; } 59 get { return equipForRace; }