diff api/Objects/UnitEquipmentItem.cs @ 0:520818033bb6

Initial commit of WarFoundry code
author IBBoard <dev@ibboard.co.uk>
date Fri, 19 Dec 2008 15:57:51 +0000
parents
children 306558904c2a
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/api/Objects/UnitEquipmentItem.cs	Fri Dec 19 15:57:51 2008 +0000
@@ -0,0 +1,81 @@
+using System;
+using System.Xml;
+
+namespace IBBoard.WarFoundry.API.Objects
+{
+	/// <summary>
+	/// Summary description for UnitEquipmentItem.
+	/// </summary>
+	public class UnitEquipmentItem : WarFoundryObject
+	{
+		private bool required, roundUp;
+		private string mutexGroup;
+		private UnitType unitType;
+
+		/*public UnitEquipmentItem(XmlElement node, UnitType equipForType)
+		{
+			EquipmentForUnit = equipForType;
+			ID = node.GetAttribute("id");
+			IsRequired = bool.Parse(node.GetAttribute("required"));
+			RoundNumberUp = "up".Equals(node.GetAttribute("roundDirection").ToLower());
+			MutexGroup = node.GetAttribute("exclusivityGroup");
+		}*/
+		protected UnitEquipmentItem(UnitType equipForType)
+		{
+			EquipmentForUnit = equipForType;
+		}
+
+		public bool IsRequired
+		{
+			get { return required; }
+			set { required = value; }
+		}
+
+		public bool RoundNumberUp
+		{
+			get { return roundUp; }
+			set { roundUp = value; }
+		}
+
+		public string MutexGroup
+		{
+			get { return mutexGroup; }
+			set { mutexGroup = (value == null ? "" : value.Trim()); }
+		}
+
+		public UnitType EquipmentForUnit
+		{
+			get { return unitType; }
+			set 
+			{ 
+				if (value != null)
+				{
+					unitType = value;
+				}
+			}
+		}
+
+		public EquipmentItem EquipmentItem
+		{
+			get { return EquipmentForUnit == null ? null : EquipmentForUnit.Race.GetEquipmentItem(ID); }
+		}
+
+		public override string ToString()
+		{
+			return EquipmentItem.Name+ " ("+EquipmentItem.Cost+"pts each)";
+		}
+
+		public bool HasAlternatives()
+		{
+			if (MutexGroup=="")
+			{
+				return false;
+			}
+			else
+			{
+				//If the number of items in the MutEx group is greater than one then it must be this item plus another
+				return EquipmentForUnit.GetEquipmentItemsByExclusionGroup(MutexGroup).Length > 1;
+			}
+		}
+	}
+}