Mercurial > repos > IBDev-IBBoard.WarFoundry.API
view api/Objects/UnitEquipmentItemObj.cs @ 38:548cfc776f54
Fixes #34 - Remove "Choices" and "Base/Increment" from Category
* Remove Choices and Base/Increment from code
Re #47: Remove magic numbers
* Replace "-1" magic number with WarFoundryCore.INFINITY
* Use INFINITY instead of -1 in code
* Use INF in schemas instead of -1
* Handle and parse INF as a special value in XML Factory
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Thu, 19 Mar 2009 20:11:07 +0000 |
parents | 306558904c2a |
children |
line wrap: on
line source
// This file (UnitEquipmentItemObj.cs) is a part of the IBBoard.WarFoundry.API project and is copyright 2009 IBBoard. // // 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. using System; using System.Collections; namespace IBBoard.WarFoundry.API.Objects { /// <summary> /// Summary description for UnitEquipmentItemObj. /// </summary> public class UnitEquipmentItemObj { private Unit unit; private UnitEquipmentItem item; private EquipmentItem equip; private static Hashtable equipObjs = new Hashtable(); private UnitEquipmentItemObj(Unit unit, UnitEquipmentItem unitItem) { this.unit = unit; item = unitItem; equip = item.EquipmentItem; } public static UnitEquipmentItemObj GetEquipObj(Unit unit, UnitEquipmentItem unitItem) { if (!equipObjs.ContainsKey(unitItem)) { equipObjs[unitItem] = new UnitEquipmentItemObj(unit, unitItem); } return (UnitEquipmentItemObj)equipObjs[unitItem]; } public override string ToString() { return String.Format("{0} (For {1} at {2}pts each)", equip.Name, FormatEquipmentAmount(unit, equip), equip.Cost); } public UnitEquipmentItem Item { get { return item; } } public static string FormatEquipmentAmount(Unit unit, EquipmentItem equip) { return FormatEquipmentAmount(equip, unit.GetEquipmentAmount(equip.ID)); } public static string FormatEquipmentAmount(EquipmentItem equip, float amount) { if (equip.IsRatioLimit) { return Math.Round(amount * 100) + "%"; } else { if (amount == WarFoundryCore.INFINITY) { return "all"; } else { return amount.ToString(); } } } } }