Mercurial > repos > IBBoard.WarFoundry.API
view api/Objects/UnitEquipmentItemObj.cs @ 10:607c3232d689
Re #11 - Documentation
* Document Stats and SystemStats at class level to explain the difference
* Document WarFoundryXmlFactory at class level
Re #13 - XPath for XML loading
* Load categories using XPath - needs fixing so we can do a proper "categories/cat" query
Re #10 - Refactoring for readability
* Fix method signature for getting number from attribute added in r19
* Refactor more code in to GetExtraData method
* Separate out loading of categories for GameSystem
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sun, 04 Jan 2009 20:43:36 +0000 |
parents | 520818033bb6 |
children | 306558904c2a |
line wrap: on
line source
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 == -1) { return "all"; } else { return amount.ToString(); } } } } }