Mercurial > repos > snowblizz-super-API-ideas
annotate api/Objects/UnitEquipmentItem.cs @ 138:c11c0da01bbc
Fixes #147: "Replace Weapon" button doesn't always enable (regression)
r167 introduced the bug by triggering an "add item to unit type" call before the mutex group was set
* Added optional mutex group parameter to constructor
* Remove setter on mutex group
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sun, 13 Sep 2009 18:00:52 +0000 |
parents | 2f3cafb69799 |
children | 0c0e14f03785 |
rev | line source |
---|---|
104
2f3cafb69799
Re #121: Migrate to AGPL license
IBBoard <dev@ibboard.co.uk>
parents:
101
diff
changeset
|
1 // This file (UnitEquipmentItem.cs) is a part of the IBBoard.WarFoundry.API project and is copyright 2007, 2008, 2009 IBBoard. |
15 | 2 // |
104
2f3cafb69799
Re #121: Migrate to AGPL license
IBBoard <dev@ibboard.co.uk>
parents:
101
diff
changeset
|
3 // The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license. |
15 | 4 |
82 | 5 using System; |
79
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
6 using System.Xml; |
82 | 7 using IBBoard.Lang; |
8 | |
9 namespace IBBoard.WarFoundry.API.Objects | |
10 { | |
11 /// <summary> | |
12 /// Summary description for UnitEquipmentItem. | |
13 /// </summary> | |
14 public class UnitEquipmentItem : WarFoundryObject | |
54
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
15 { |
82 | 16 private EquipmentItem item; |
54
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
17 private bool required; |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
18 private bool roundUp; |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
19 private int minNum; |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
20 private int maxNum; |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
21 private double minPercentage; |
79
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
22 private double maxPercentage; |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
23 private double costMultiplier; |
82 | 24 private RoundType roundType; |
25 private string mutexGroup; | |
26 private UnitType unitType; | |
54
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
27 |
138
c11c0da01bbc
Fixes #147: "Replace Weapon" button doesn't always enable (regression)
IBBoard <dev@ibboard.co.uk>
parents:
104
diff
changeset
|
28 public UnitEquipmentItem(EquipmentItem equipmentItem, UnitType equipmentFor) : this(equipmentItem, equipmentFor, "") |
c11c0da01bbc
Fixes #147: "Replace Weapon" button doesn't always enable (regression)
IBBoard <dev@ibboard.co.uk>
parents:
104
diff
changeset
|
29 { |
c11c0da01bbc
Fixes #147: "Replace Weapon" button doesn't always enable (regression)
IBBoard <dev@ibboard.co.uk>
parents:
104
diff
changeset
|
30 //Do nothing extra |
c11c0da01bbc
Fixes #147: "Replace Weapon" button doesn't always enable (regression)
IBBoard <dev@ibboard.co.uk>
parents:
104
diff
changeset
|
31 } |
c11c0da01bbc
Fixes #147: "Replace Weapon" button doesn't always enable (regression)
IBBoard <dev@ibboard.co.uk>
parents:
104
diff
changeset
|
32 |
c11c0da01bbc
Fixes #147: "Replace Weapon" button doesn't always enable (regression)
IBBoard <dev@ibboard.co.uk>
parents:
104
diff
changeset
|
33 public UnitEquipmentItem(EquipmentItem equipmentItem, UnitType equipmentFor, string mutexGroup) |
54
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
34 { |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
35 item = equipmentItem; |
92
729d9e54162c
Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents:
85
diff
changeset
|
36 unitType = equipmentFor; |
138
c11c0da01bbc
Fixes #147: "Replace Weapon" button doesn't always enable (regression)
IBBoard <dev@ibboard.co.uk>
parents:
104
diff
changeset
|
37 this.mutexGroup = mutexGroup; |
92
729d9e54162c
Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents:
85
diff
changeset
|
38 unitType.AddEquipmentItem(this); |
54
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
39 } |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
40 |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
41 public override string Name |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
42 { |
92
729d9e54162c
Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents:
85
diff
changeset
|
43 get |
729d9e54162c
Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents:
85
diff
changeset
|
44 { |
54
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
45 return item.Name; |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
46 } |
92
729d9e54162c
Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents:
85
diff
changeset
|
47 set |
729d9e54162c
Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents:
85
diff
changeset
|
48 { |
54
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
49 base.Name = value; |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
50 } |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
51 } |
92
729d9e54162c
Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents:
85
diff
changeset
|
52 |
729d9e54162c
Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents:
85
diff
changeset
|
53 public override string ID { |
729d9e54162c
Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents:
85
diff
changeset
|
54 get |
729d9e54162c
Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents:
85
diff
changeset
|
55 { |
729d9e54162c
Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents:
85
diff
changeset
|
56 return (EquipmentForUnit == null ? base.ID : EquipmentForUnit.ID) + EquipmentItemID; |
729d9e54162c
Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents:
85
diff
changeset
|
57 } |
729d9e54162c
Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents:
85
diff
changeset
|
58 set |
729d9e54162c
Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents:
85
diff
changeset
|
59 { |
729d9e54162c
Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents:
85
diff
changeset
|
60 base.ID = value; |
729d9e54162c
Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents:
85
diff
changeset
|
61 } |
729d9e54162c
Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents:
85
diff
changeset
|
62 } |
729d9e54162c
Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents:
85
diff
changeset
|
63 |
54
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
64 |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
65 public string EquipmentItemID |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
66 { |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
67 get { return item.ID; } |
82 | 68 } |
69 | |
70 public double Cost | |
71 { | |
79
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
72 get |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
73 { |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
74 return IBBMath.Round(EquipmentItem.Cost * CostMultiplier, CostRoundType); |
82 | 75 } |
79
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
76 } |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
77 |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
78 public double CostMultiplier |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
79 { |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
80 get { return costMultiplier; } |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
81 set |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
82 { |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
83 costMultiplier = value; |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
84 } |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
85 } |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
86 |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
87 public RoundType CostRoundType |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
88 { |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
89 get { return roundType; } |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
90 set |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
91 { |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
92 roundType = value; |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
93 } |
82 | 94 } |
95 | |
96 public bool IsRequired | |
97 { | |
98 get { return required; } | |
99 set { required = value; } | |
100 } | |
101 | |
102 public bool RoundNumberUp | |
103 { | |
104 get { return roundUp; } | |
105 set { roundUp = value; } | |
106 } | |
107 | |
108 public string MutexGroup | |
109 { | |
110 get { return mutexGroup; } | |
111 } | |
112 | |
113 public UnitType EquipmentForUnit | |
114 { | |
115 get { return unitType; } | |
54
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
116 } |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
117 |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
118 public bool IsRatioLimit |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
119 { |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
120 get { return minPercentage!=100 || maxPercentage!=100; } |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
121 } |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
122 |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
123 public int MinNumber |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
124 { |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
125 get { return minNum; } |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
126 set |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
127 { |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
128 if (value >=0 || value == WarFoundryCore.INFINITY) |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
129 { |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
130 minNum = value; |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
131 } |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
132 //TODO: Check Min<Max |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
133 } |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
134 } |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
135 |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
136 public int MaxNumber |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
137 { |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
138 get { return maxNum; } |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
139 set |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
140 { |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
141 if (value >=0 || value == WarFoundryCore.INFINITY) |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
142 { |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
143 maxNum = value; |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
144 } |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
145 //TODO: Check Min<Max |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
146 } |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
147 } |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
148 |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
149 public double MinPercentage |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
150 { |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
151 get { return minPercentage; } |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
152 set |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
153 { |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
154 if (value >=0 && value <= 100) |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
155 { |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
156 minPercentage = value; |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
157 } |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
158 //TODO: Check Min<Max |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
159 } |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
160 } |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
161 |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
162 public double MaxPercentage |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
163 { |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
164 get { return maxPercentage; } |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
165 set |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
166 { |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
167 if (value >=0 && value <= 100) |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
168 { |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
169 maxPercentage = value; |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
170 } |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
171 //TODO: Check Min<Max |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
172 } |
82 | 173 } |
174 | |
175 public EquipmentItem EquipmentItem | |
176 { | |
177 get { return item; } | |
178 } | |
179 | |
180 public override string ToString() | |
181 { | |
182 return EquipmentItem.Name+ " ("+EquipmentItem.Cost+"pts each)"; | |
183 } | |
184 | |
185 public bool HasAlternatives() | |
186 { | |
187 if (MutexGroup=="") | |
188 { | |
189 return false; | |
190 } | |
85
46ad6f478203
Re #50: Complete core loading of WarFoundry XML files
IBBoard <dev@ibboard.co.uk>
parents:
82
diff
changeset
|
191 else if (EquipmentForUnit == null) |
46ad6f478203
Re #50: Complete core loading of WarFoundry XML files
IBBoard <dev@ibboard.co.uk>
parents:
82
diff
changeset
|
192 { |
46ad6f478203
Re #50: Complete core loading of WarFoundry XML files
IBBoard <dev@ibboard.co.uk>
parents:
82
diff
changeset
|
193 return false; |
46ad6f478203
Re #50: Complete core loading of WarFoundry XML files
IBBoard <dev@ibboard.co.uk>
parents:
82
diff
changeset
|
194 } |
82 | 195 else |
196 { | |
197 //If the number of items in the MutEx group is greater than one then it must be this item plus another | |
198 return EquipmentForUnit.GetEquipmentItemsByExclusionGroup(MutexGroup).Length > 1; | |
199 } | |
54
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
15
diff
changeset
|
200 } |
79
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
201 |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
202 public ArmourType ItemArmourType |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
203 { |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
204 get { return EquipmentItem.ItemArmourType; } |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
205 } |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
206 |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
207 public string Description |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
208 { |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
209 get { return EquipmentItem.Description; } |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
210 } |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
211 |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
212 public Race EquipmentForRace |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
213 { |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
214 get { return EquipmentItem.EquipmentForRace; } |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
215 } |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
216 |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
217 public bool CanBeUsedWithItem(EquipmentItem item) |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
218 { |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
219 return EquipmentItem.CanBeUsedWithItem(item); |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
220 } |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
221 |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
222 public bool CanBeUsedWithArmourType(ArmourType otherItemType) |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
223 { |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
224 return EquipmentItem.CanBeUsedWithArmourType(otherItemType); |
284ebe05158c
Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents:
54
diff
changeset
|
225 } |
82 | 226 } |
227 } |