Mercurial > repos > IBBoard.WarFoundry.API
annotate api/Objects/EquipmentItem.cs @ 101:f7b9423c2a5a
Big mess of updates, breaking our rules on "commit little and often" because the code was so ugly.
This revision will be broken for the WinForms UI, but as MonoDevelop/eSVN don't have a way of committing multiple projects in one go it can't be helped (Eclipse's Team Sync view could handle it)
Fixes #122: Make usage of percentage or ratio common
* All usage of ratio amounts for equipment items should now assume percentage
* Properly calculate number taken for ratio selection (divide by 0 now we're using percentages)
Fixes #118: Allow equipment amounts of "ratio" equipment to be define as absolute or ratio amounts
* Added extra commands that differentiate between ratio and absolute amounts
Fixes #120: Numeric limit equipment items show large percentages
* Now made formatting treat ratios as percentages (don't multiply by 100)
* Move string formatting to UnitEquipmentItem...Selection classes
* Add method to Unit to say whether an equipment item is a numeric or ratio amount
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Thu, 13 Aug 2009 21:09:20 +0000 |
parents | 3ea0ab04352b |
children | 2f3cafb69799 |
rev | line source |
---|---|
15 | 1 // This file (EquipmentItem.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 | |
82 | 5 using System; |
6 using System.Xml; | |
7 | |
8 namespace IBBoard.WarFoundry.API.Objects | |
9 { | |
10 /// <summary> | |
11 /// Summary description for EquipmentItem. | |
12 /// </summary> | |
13 public class EquipmentItem : WarFoundryObject | |
14 { | |
54
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
15 private double cost; |
82 | 16 private string description; |
0 | 17 private ArmourType armourType; |
54
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
18 private Race equipForRace; |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
19 |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
20 public EquipmentItem(string id, string name, Race race) : base(id, name) |
0 | 21 { |
22 equipForRace = race; | |
54
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
23 description = ""; |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
24 armourType = ArmourType.None; |
82 | 25 } |
54
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
26 |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
27 [Obsolete("Use the three argument constructor and the appropriate 'set' methods")] |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
28 public EquipmentItem(string id, string name, double itemCost, double minimum, double maximum, ArmourType itemArmourType, Race race) : this(id, name, race) |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
29 { |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
30 ItemArmourType = itemArmourType; |
82 | 31 } |
32 | |
33 public ArmourType ItemArmourType | |
34 { | |
35 get { return armourType; } | |
36 set { armourType = value; } | |
37 } | |
38 | |
39 public double Cost | |
40 { | |
41 get { return cost; } | |
54
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
42 set |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
43 { |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
44 if (value >= 0) |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
45 { |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
46 cost = value; |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
47 } |
82 | 48 } |
54
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
49 } |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
50 |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
51 public string Description |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
52 { |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
53 get { return description; } |
3a90f70dac73
Re #61 - Complete structure of WarFoundry API objects
IBBoard <dev@ibboard.co.uk>
parents:
43
diff
changeset
|
54 set { description = (value == null ? "" : value); } |
0 | 55 } |
56 | |
57 public Race EquipmentForRace | |
58 { | |
59 get { return equipForRace; } | |
82 | 60 } |
61 | |
62 public bool CanBeUsedWithItem(EquipmentItem item) | |
63 { | |
64 return CanBeUsedWithArmourType(item.ItemArmourType); | |
65 } | |
66 | |
67 public bool CanBeUsedWithArmourType(ArmourType otherItemType) | |
68 { | |
69 return (this.ItemArmourType & otherItemType) == 0; | |
70 } | |
71 } | |
72 } |