15
|
1 // This file (UnitEquipmentItemObj.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
|
0
|
5 using System;
|
|
6 using System.Collections;
|
|
7
|
|
8 namespace IBBoard.WarFoundry.API.Objects
|
|
9 {
|
|
10 /// <summary>
|
|
11 /// Summary description for UnitEquipmentItemObj.
|
|
12 /// </summary>
|
|
13 public class UnitEquipmentItemObj
|
|
14 {
|
|
15 private Unit unit;
|
|
16 private UnitEquipmentItem item;
|
|
17 private EquipmentItem equip;
|
|
18
|
|
19 private static Hashtable equipObjs = new Hashtable();
|
|
20
|
|
21 private UnitEquipmentItemObj(Unit unit, UnitEquipmentItem unitItem)
|
|
22 {
|
|
23 this.unit = unit;
|
|
24 item = unitItem;
|
|
25 equip = item.EquipmentItem;
|
|
26 }
|
|
27
|
|
28 public static UnitEquipmentItemObj GetEquipObj(Unit unit, UnitEquipmentItem unitItem)
|
|
29 {
|
|
30 if (!equipObjs.ContainsKey(unitItem))
|
|
31 {
|
|
32 equipObjs[unitItem] = new UnitEquipmentItemObj(unit, unitItem);
|
|
33 }
|
|
34
|
|
35 return (UnitEquipmentItemObj)equipObjs[unitItem];
|
|
36 }
|
|
37
|
|
38 public override string ToString()
|
|
39 {
|
|
40 return String.Format("{0} (For {1} at {2}pts each)", equip.Name, FormatEquipmentAmount(unit, equip), equip.Cost);
|
|
41 }
|
|
42
|
|
43 public UnitEquipmentItem Item
|
|
44 {
|
|
45 get { return item; }
|
|
46 }
|
|
47
|
|
48 public static string FormatEquipmentAmount(Unit unit, EquipmentItem equip)
|
|
49 {
|
|
50 return FormatEquipmentAmount(equip, unit.GetEquipmentAmount(equip.ID));
|
|
51 }
|
|
52
|
|
53 public static string FormatEquipmentAmount(EquipmentItem equip, float amount)
|
|
54 {
|
|
55 if (equip.IsRatioLimit)
|
|
56 {
|
|
57 return Math.Round(amount * 100) + "%";
|
|
58 }
|
|
59 else
|
|
60 {
|
|
61 if (amount == -1)
|
|
62 {
|
|
63 return "all";
|
|
64 }
|
|
65 else
|
|
66 {
|
|
67 return amount.ToString();
|
|
68 }
|
|
69 }
|
|
70 }
|
|
71 }
|
|
72 }
|