diff api/Commands/SetUnitEquipmentAmountCommand.cs @ 54:3a90f70dac73

Re #61 - Complete structure of WarFoundry API objects * Remove min/max from EquipmentItem and add description * Add min/max numbers and percentages to UnitEquipmentItem * Make Race schema define min/max number without the ratio (which is the percentage) * Replace use of EquipmentItem with UnitEquipmentItem because of increased use of UnitEquipmentItem for unit-specific data * Use doubles instead of floats for equipment amounts * Distinguish between ratio and absolute limits * Delete UnitEquipmentItemObj helper class that was purely used for UI Re #9 - Use smaller methods * Deprecate long Race and EquipmentItem constructors and ensure all getters/setters exist Also: * Migrate Unit to using genericed collections * Always use GameSystem object for Race, not ID string
author IBBoard <dev@ibboard.co.uk>
date Sun, 05 Apr 2009 13:45:23 +0000
parents 306558904c2a
children 3ea0ab04352b
line wrap: on
line diff
--- a/api/Commands/SetUnitEquipmentAmountCommand.cs	Wed Apr 01 19:20:27 2009 +0000
+++ b/api/Commands/SetUnitEquipmentAmountCommand.cs	Sun Apr 05 13:45:23 2009 +0000
@@ -15,10 +15,11 @@
 	public class SetUnitEquipmentAmountCommand : Command
 	{
 		private Unit unit;
-		private EquipmentItem equip;
-		private float newAmount, oldAmount;
+		private UnitEquipmentItem equip;
+		private double newAmount;
+		private double oldAmount;
 		
-		public SetUnitEquipmentAmountCommand(Unit unit, EquipmentItem item, float amount)
+		public SetUnitEquipmentAmountCommand(Unit unit, UnitEquipmentItem item, double amount)
 		{
 			this.unit = unit;
 			equip = item;
@@ -33,12 +34,12 @@
 
 		public override string Description
 		{
-			get { return "Set "+StringManipulation.CutToLength(equip.Name, 20)+" amount for "+StringManipulation.CutToLength(unit.Name, 20)+" to "+UnitEquipmentItemObj.FormatEquipmentAmount(equip, newAmount); }
+			get { return "Set "+StringManipulation.CutToLength(equip.Name, 20)+" amount for "+StringManipulation.CutToLength(unit.Name, 20)+" to "+UnitEquipmentItem.FormatEquipmentAmount(equip, newAmount); }
 		}
 
 		public override string UndoDescription
 		{
-			get { return "Set "+StringManipulation.CutToLength(equip.Name, 20)+" amount for "+StringManipulation.CutToLength(unit.Name, 20)+" to "+UnitEquipmentItemObj.FormatEquipmentAmount(equip, oldAmount); }
+			get { return "Set "+StringManipulation.CutToLength(equip.Name, 20)+" amount for "+StringManipulation.CutToLength(unit.Name, 20)+" to "+UnitEquipmentItem.FormatEquipmentAmount(equip, oldAmount); }
 		}
 
 		public override bool Execute()
@@ -48,13 +49,27 @@
 		}
 
 		public override void Redo()
-		{
-			unit.SetEquipmentAmount(equip.ID, newAmount);
+		{
+			if (equip.IsRatioLimit)
+			{
+				unit.SetEquipmentRatio(equip, newAmount);
+			}
+			else
+			{
+				unit.SetEquipmentAmount(equip, (int)newAmount);
+			}
 		}
 
 		public override void Undo()
-		{
-			unit.SetEquipmentAmount(equip.ID, oldAmount);
+		{
+			if (equip.IsRatioLimit)
+			{
+				unit.SetEquipmentRatio(equip, oldAmount);
+			}
+			else
+			{
+				unit.SetEquipmentAmount(equip, (int)oldAmount);
+			}
 		}
 
 		public override string Name
@@ -62,7 +77,7 @@
 			get { return "Set equipment amount"; }
 		}
 
-		public EquipmentItem EquipItem
+		public UnitEquipmentItem EquipItem
 		{
 			get { return equip; }
 		}