comparison FrmNewUnitEquipment.cs @ 34:3ceb0efd261f

Re #118: Allow equipment amounts of "ratio" equipment to be define as absolute or ratio amounts * Use new commands created in previous revision Re #122: Make usage of percentage or ratio common * Make sure all usage of percentages are correct Re #117: Add percentage and number boxes to equipment item dialogs * Fix some enable/disable inconsistencies for percentage amounts * Fix problems where fixed limits weren't honoured by widgets
author IBBoard <dev@ibboard.co.uk>
date Thu, 13 Aug 2009 21:16:21 +0000
parents 7c366fe55635
children 6ab7ddc038f9
comparison
equal deleted inserted replaced
33:67c283ea77a7 34:3ceb0efd261f
7 using System.Collections; 7 using System.Collections;
8 using System.ComponentModel; 8 using System.ComponentModel;
9 using System.Windows.Forms; 9 using System.Windows.Forms;
10 using IBBoard; 10 using IBBoard;
11 using IBBoard.Commands; 11 using IBBoard.Commands;
12 using IBBoard.Lang;
12 using IBBoard.WarFoundry.API; 13 using IBBoard.WarFoundry.API;
13 using IBBoard.WarFoundry.API.Commands; 14 using IBBoard.WarFoundry.API.Commands;
14 using IBBoard.WarFoundry.API.Objects; 15 using IBBoard.WarFoundry.API.Objects;
15 16
16 namespace IBBoard.WarFoundry 17 namespace IBBoard.WarFoundry
190 { 191 {
191 UnitEquipmentItem equipItem = (UnitEquipmentItem)listItems.SelectedItem; 192 UnitEquipmentItem equipItem = (UnitEquipmentItem)listItems.SelectedItem;
192 193
193 if (cbEquipAll.Checked) 194 if (cbEquipAll.Checked)
194 { 195 {
195 commandStack.Execute(new SetUnitEquipmentAmountCommand(unit, equipItem, WarFoundryCore.INFINITY)); 196 commandStack.Execute(new SetUnitEquipmentNumericAmountCommand(unit, equipItem, WarFoundryCore.INFINITY));
196 } 197 }
197 else 198 else
198 { 199 {
199 if (equipItem.IsRatioLimit) 200 if (equipItem.IsRatioLimit)
200 { 201 {
201 commandStack.Execute(new SetUnitEquipmentAmountCommand(unit, equipItem, (double)numEquipAmount.Value / 100.0)); 202 commandStack.Execute(new SetUnitEquipmentRatioAmountCommand(unit, equipItem, (double)numEquipAmount.Value / 100.0));
202 } 203 }
203 else 204 else
204 { 205 {
205 commandStack.Execute(new SetUnitEquipmentAmountCommand(unit, equipItem, (double)numEquipAmount.Value)); 206 commandStack.Execute(new SetUnitEquipmentNumericAmountCommand(unit, equipItem, (int)numEquipAmount.Value));
206 } 207 }
207 } 208 }
208 } 209 }
209 210
210 private void bttnCancel_Click(object sender, System.EventArgs e) 211 private void bttnCancel_Click(object sender, System.EventArgs e)
231 UnitEquipmentItem equipItem = (UnitEquipmentItem)listItems.SelectedItem; 232 UnitEquipmentItem equipItem = (UnitEquipmentItem)listItems.SelectedItem;
232 required = equipItem.IsRequired; 233 required = equipItem.IsRequired;
233 234
234 if (equipItem.IsRatioLimit) 235 if (equipItem.IsRatioLimit)
235 { 236 {
236 numEquipAmount.Minimum = (decimal)Math.Round(equipItem.MinNumber * 100.0, 2); 237 numEquipAmount.Minimum = (decimal) equipItem.MinPercentage;
237 numEquipAmount.Maximum = (decimal)Math.Round(equipItem.MaxNumber * 100.0, 2); 238 numEquipAmount.Maximum = (decimal) equipItem.MaxPercentage;
239 numEquipAmount.Enabled = true;
238 numEquipAmount.Value = numEquipAmount.Minimum; 240 numEquipAmount.Value = numEquipAmount.Minimum;
239 cbEquipAll.Enabled = false; 241 cbEquipAll.Enabled = false;
240 lblPercent.Visible = true; 242 lblPercent.Visible = true;
241 numEquipAmount.Width = 120; 243 numEquipAmount.Width = 120;
242 } 244 }
243 else 245 else
244 { 246 {
245 numEquipAmount.Minimum = (decimal)(equipItem.MinNumber != WarFoundryCore.INFINITY ? equipItem.MinNumber : unit.Size); 247 numEquipAmount.Minimum = (decimal)(equipItem.MinNumber != WarFoundryCore.INFINITY ? Math.Min(equipItem.MinNumber, unit.Size) : unit.Size);
246 numEquipAmount.Maximum = (decimal)(equipItem.MaxNumber != WarFoundryCore.INFINITY ? equipItem.MaxNumber : unit.Size); 248 numEquipAmount.Maximum = (decimal)(equipItem.MaxNumber != WarFoundryCore.INFINITY ? Math.Min(equipItem.MaxNumber, unit.Size) : unit.Size);
247 numEquipAmount.Value = numEquipAmount.Minimum; 249 numEquipAmount.Value = numEquipAmount.Minimum;
248 cbEquipAll.Enabled = equipItem.MinNumber != WarFoundryCore.INFINITY; 250 numEquipAmount.Enabled = equipItem.MinNumber != WarFoundryCore.INFINITY;
251 cbEquipAll.Enabled = equipItem.MinNumber != WarFoundryCore.INFINITY && equipItem.MaxNumber == WarFoundryCore.INFINITY;
249 cbEquipAll.Checked = equipItem.MinNumber == WarFoundryCore.INFINITY; 252 cbEquipAll.Checked = equipItem.MinNumber == WarFoundryCore.INFINITY;
253 lblPercent.Visible = false;
250 numEquipAmount.Width = 144; 254 numEquipAmount.Width = 144;
251 } 255 }
252 } 256 }
253 else 257 else
254 { 258 {