annotate api/Objects/UnitEquipmentItem.cs @ 101:f7b9423c2a5a

Big mess of updates, breaking our rules on "commit little and often" because the code was so ugly. This revision will be broken for the WinForms UI, but as MonoDevelop/eSVN don't have a way of committing multiple projects in one go it can't be helped (Eclipse's Team Sync view could handle it) Fixes #122: Make usage of percentage or ratio common * All usage of ratio amounts for equipment items should now assume percentage * Properly calculate number taken for ratio selection (divide by 0 now we're using percentages) Fixes #118: Allow equipment amounts of "ratio" equipment to be define as absolute or ratio amounts * Added extra commands that differentiate between ratio and absolute amounts Fixes #120: Numeric limit equipment items show large percentages * Now made formatting treat ratios as percentages (don't multiply by 100) * Move string formatting to UnitEquipmentItem...Selection classes * Add method to Unit to say whether an equipment item is a numeric or ratio amount
author IBBoard <dev@ibboard.co.uk>
date Thu, 13 Aug 2009 21:09:20 +0000
parents ced5a18d9f52
children 2f3cafb69799
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15
306558904c2a Re #1 - LGPL license all code
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
1 // This file (UnitEquipmentItem.cs) is a part of the IBBoard.WarFoundry.API project and is copyright 2009 IBBoard.
306558904c2a Re #1 - LGPL license all code
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
2 //
306558904c2a Re #1 - LGPL license all code
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
3 // The file and the library/program it is in are licensed under the GNU LGPL license, either version 3 of the License or (at your option) any later version. Please see COPYING.LGPL for more information and the full license.
306558904c2a Re #1 - LGPL license all code
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
4
82
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
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
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
7 using IBBoard.Lang;
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
8
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
9 namespace IBBoard.WarFoundry.API.Objects
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
10 {
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
11 /// <summary>
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
12 /// Summary description for UnitEquipmentItem.
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
13 /// </summary>
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
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
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
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
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
24 private RoundType roundType;
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
25 private string mutexGroup;
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
26 private UnitType unitType;
54
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
27
92
729d9e54162c Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents: 85
diff changeset
28 public UnitEquipmentItem(EquipmentItem equipmentItem, UnitType equipmentFor)
54
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
29 {
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
30 item = equipmentItem;
92
729d9e54162c Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents: 85
diff changeset
31 unitType = equipmentFor;
729d9e54162c Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents: 85
diff changeset
32 unitType.AddEquipmentItem(this);
54
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
33 }
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 public override string Name
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
36 {
92
729d9e54162c Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents: 85
diff changeset
37 get
729d9e54162c Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents: 85
diff changeset
38 {
54
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
39 return item.Name;
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
40 }
92
729d9e54162c Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents: 85
diff changeset
41 set
729d9e54162c Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents: 85
diff changeset
42 {
54
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
43 base.Name = value;
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
44 }
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
45 }
92
729d9e54162c Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents: 85
diff changeset
46
729d9e54162c Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents: 85
diff changeset
47 public override string ID {
729d9e54162c Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents: 85
diff changeset
48 get
729d9e54162c Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents: 85
diff changeset
49 {
729d9e54162c Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents: 85
diff changeset
50 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
51 }
729d9e54162c Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents: 85
diff changeset
52 set
729d9e54162c Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents: 85
diff changeset
53 {
729d9e54162c Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents: 85
diff changeset
54 base.ID = value;
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 }
729d9e54162c Re #111: "Replace" button doesn't always enable
IBBoard <dev@ibboard.co.uk>
parents: 85
diff changeset
57
54
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
58
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
59 public string EquipmentItemID
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
60 {
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
61 get { return item.ID; }
82
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
62 }
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
63
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
64 public double Cost
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
65 {
79
284ebe05158c Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents: 54
diff changeset
66 get
284ebe05158c Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents: 54
diff changeset
67 {
284ebe05158c Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents: 54
diff changeset
68 return IBBMath.Round(EquipmentItem.Cost * CostMultiplier, CostRoundType);
82
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
69 }
79
284ebe05158c Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents: 54
diff changeset
70 }
284ebe05158c Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents: 54
diff changeset
71
284ebe05158c Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents: 54
diff changeset
72 public double CostMultiplier
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 get { return costMultiplier; }
284ebe05158c Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents: 54
diff changeset
75 set
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 costMultiplier = value;
284ebe05158c Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents: 54
diff changeset
78 }
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
284ebe05158c Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents: 54
diff changeset
81 public RoundType CostRoundType
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 get { return roundType; }
284ebe05158c Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents: 54
diff changeset
84 set
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 roundType = value;
284ebe05158c Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents: 54
diff changeset
87 }
82
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
88 }
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
89
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
90 public bool IsRequired
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
91 {
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
92 get { return required; }
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
93 set { required = value; }
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
94 }
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
95
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
96 public bool RoundNumberUp
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
97 {
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
98 get { return roundUp; }
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
99 set { roundUp = value; }
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
100 }
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
101
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
102 public string MutexGroup
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
103 {
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
104 get { return mutexGroup; }
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
105 set { mutexGroup = (value == null ? "" : value.Trim()); }
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
106 }
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
107
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
108 public UnitType EquipmentForUnit
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
109 {
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
110 get { return unitType; }
54
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
111 }
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
112
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
113 public bool IsRatioLimit
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
114 {
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
115 get { return minPercentage!=100 || maxPercentage!=100; }
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 int MinNumber
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 minNum; }
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
121 set
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 if (value >=0 || value == WarFoundryCore.INFINITY)
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 minNum = value;
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
126 }
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
127 //TODO: Check Min<Max
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
128 }
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
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
131 public int MaxNumber
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
132 {
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
133 get { return maxNum; }
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
134 set
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 if (value >=0 || value == WarFoundryCore.INFINITY)
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 maxNum = value;
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
139 }
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
140 //TODO: Check Min<Max
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
141 }
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
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
144 public double MinPercentage
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
145 {
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
146 get { return minPercentage; }
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
147 set
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 if (value >=0 && value <= 100)
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 minPercentage = value;
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
152 }
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
153 //TODO: Check Min<Max
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
154 }
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
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
157 public double MaxPercentage
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
158 {
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
159 get { return maxPercentage; }
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
160 set
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 if (value >=0 && value <= 100)
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 maxPercentage = value;
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
165 }
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
166 //TODO: Check Min<Max
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
167 }
82
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
168 }
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
169
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
170 public EquipmentItem EquipmentItem
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
171 {
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
172 get { return item; }
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
173 }
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
174
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
175 public override string ToString()
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
176 {
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
177 return EquipmentItem.Name+ " ("+EquipmentItem.Cost+"pts each)";
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
178 }
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
179
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
180 public bool HasAlternatives()
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
181 {
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
182 if (MutexGroup=="")
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
183 {
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
184 return false;
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
185 }
85
46ad6f478203 Re #50: Complete core loading of WarFoundry XML files
IBBoard <dev@ibboard.co.uk>
parents: 82
diff changeset
186 else if (EquipmentForUnit == null)
46ad6f478203 Re #50: Complete core loading of WarFoundry XML files
IBBoard <dev@ibboard.co.uk>
parents: 82
diff changeset
187 {
46ad6f478203 Re #50: Complete core loading of WarFoundry XML files
IBBoard <dev@ibboard.co.uk>
parents: 82
diff changeset
188 return false;
46ad6f478203 Re #50: Complete core loading of WarFoundry XML files
IBBoard <dev@ibboard.co.uk>
parents: 82
diff changeset
189 }
82
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
190 else
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
191 {
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
192 //If the number of items in the MutEx group is greater than one then it must be this item plus another
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
193 return EquipmentForUnit.GetEquipmentItemsByExclusionGroup(MutexGroup).Length > 1;
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
194 }
54
3a90f70dac73 Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents: 15
diff changeset
195 }
79
284ebe05158c Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents: 54
diff changeset
196
284ebe05158c Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents: 54
diff changeset
197 public ArmourType ItemArmourType
284ebe05158c Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents: 54
diff changeset
198 {
284ebe05158c Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents: 54
diff changeset
199 get { return EquipmentItem.ItemArmourType; }
284ebe05158c Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents: 54
diff changeset
200 }
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 string Description
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.Description; }
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 Race EquipmentForRace
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.EquipmentForRace; }
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 bool CanBeUsedWithItem(EquipmentItem item)
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 return EquipmentItem.CanBeUsedWithItem(item);
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 CanBeUsedWithArmourType(ArmourType otherItemType)
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.CanBeUsedWithArmourType(otherItemType);
284ebe05158c Re #61 - Complete structure of API objects
IBBoard <dev@ibboard.co.uk>
parents: 54
diff changeset
220 }
82
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
221 }
3ea0ab04352b * Fix line terminators
IBBoard <dev@ibboard.co.uk>
parents: 79
diff changeset
222 }