15
|
1 // This file (UnitEquipmentItem.cs) is a part of the IBBoard.WarFoundry.API project and is copyright 2009 IBBoard.
|
|
2 //
|
|
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.
|
|
4
|
0
|
5 using System;
|
|
6 using System.Xml;
|
|
7
|
|
8 namespace IBBoard.WarFoundry.API.Objects
|
|
9 {
|
|
10 /// <summary>
|
|
11 /// Summary description for UnitEquipmentItem.
|
|
12 /// </summary>
|
|
13 public class UnitEquipmentItem : WarFoundryObject
|
|
14 {
|
|
15 private bool required, roundUp;
|
|
16 private string mutexGroup;
|
|
17 private UnitType unitType;
|
|
18
|
|
19 /*public UnitEquipmentItem(XmlElement node, UnitType equipForType)
|
|
20 {
|
|
21 EquipmentForUnit = equipForType;
|
|
22 ID = node.GetAttribute("id");
|
|
23 IsRequired = bool.Parse(node.GetAttribute("required"));
|
|
24 RoundNumberUp = "up".Equals(node.GetAttribute("roundDirection").ToLower());
|
|
25 MutexGroup = node.GetAttribute("exclusivityGroup");
|
|
26 }*/
|
|
27 protected UnitEquipmentItem(UnitType equipForType)
|
|
28 {
|
|
29 EquipmentForUnit = equipForType;
|
|
30 }
|
|
31
|
|
32 public bool IsRequired
|
|
33 {
|
|
34 get { return required; }
|
|
35 set { required = value; }
|
|
36 }
|
|
37
|
|
38 public bool RoundNumberUp
|
|
39 {
|
|
40 get { return roundUp; }
|
|
41 set { roundUp = value; }
|
|
42 }
|
|
43
|
|
44 public string MutexGroup
|
|
45 {
|
|
46 get { return mutexGroup; }
|
|
47 set { mutexGroup = (value == null ? "" : value.Trim()); }
|
|
48 }
|
|
49
|
|
50 public UnitType EquipmentForUnit
|
|
51 {
|
|
52 get { return unitType; }
|
|
53 set
|
|
54 {
|
|
55 if (value != null)
|
|
56 {
|
|
57 unitType = value;
|
|
58 }
|
|
59 }
|
|
60 }
|
|
61
|
|
62 public EquipmentItem EquipmentItem
|
|
63 {
|
|
64 get { return EquipmentForUnit == null ? null : EquipmentForUnit.Race.GetEquipmentItem(ID); }
|
|
65 }
|
|
66
|
|
67 public override string ToString()
|
|
68 {
|
|
69 return EquipmentItem.Name+ " ("+EquipmentItem.Cost+"pts each)";
|
|
70 }
|
|
71
|
|
72 public bool HasAlternatives()
|
|
73 {
|
|
74 if (MutexGroup=="")
|
|
75 {
|
|
76 return false;
|
|
77 }
|
|
78 else
|
|
79 {
|
|
80 //If the number of items in the MutEx group is greater than one then it must be this item plus another
|
|
81 return EquipmentForUnit.GetEquipmentItemsByExclusionGroup(MutexGroup).Length > 1;
|
|
82 }
|
|
83 }
|
|
84 }
|
|
85 }
|