diff api/Objects/EquipmentItem.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/EquipmentItem.cs	Fri Dec 19 15:57:51 2008 +0000
@@ -0,0 +1,84 @@
+using System;
+using System.Xml;
+
+namespace IBBoard.WarFoundry.API.Objects
+{
+	/// <summary>
+	/// Summary description for EquipmentItem.
+	/// </summary>
+	public class EquipmentItem : WarFoundryObject
+	{
+		private float cost, min, max;
+		private ArmourType armourType;
+		private Race equipForRace;
+
+		public EquipmentItem(string id, string name, float itemCost, float minimum, float maximum, ArmourType itemArmourType, Race race) : base(id, name)
+		{
+			cost = itemCost;
+			min = minimum;
+			max = maximum;
+			armourType = itemArmourType;
+			equipForRace = race;
+		}
+
+		public bool IsRatioLimit
+		{
+			get { return ((MaxNumber < 1 && MaxNumber > 0) || (MaxNumber == 1 && MinNumber > 0)); }
+		}
+
+		public float MinNumber
+		{
+			get { return min; }
+			set 
+			{
+				min = (value >= 0 || value == -1) ? value : 0; 
+
+				if (MaxNumber != -1 && min > MaxNumber)
+				{
+					MaxNumber = min;
+				}
+			}
+		}
+
+		public float MaxNumber
+		{
+			get { return max; }
+			set 
+			{
+				max = (value > 0 || value == -1) ? value : -1; 
+
+				if (max != -1 && MinNumber > max)
+				{
+					MinNumber = max;
+				}
+			}
+		}
+
+		public ArmourType ItemArmourType
+		{
+			get { return armourType; }
+			set { armourType = value; }
+		}
+
+		public float Cost
+		{
+			get { return cost; }
+			set { cost = value; }
+		}
+		
+		public Race EquipmentForRace
+		{
+			get { return equipForRace; }
+		}
+
+		public bool CanBeUsedWithItem(EquipmentItem item)
+		{
+			return CanBeUsedWithArmourType(item.ItemArmourType);
+		}
+
+		public bool CanBeUsedWithArmourType(ArmourType otherItemType)
+		{
+			return (this.ItemArmourType & otherItemType) == 0;
+		}
+	}
+}