Mercurial > repos > IBDev-IBBoard.WarFoundry.API
view api/Objects/UnitEquipmentItemObj.cs @ 14:0770e5cbba7c
Closes #21 - File loading in order
* Reworked LoadFiles to smaller methods for readability (also re #10) and structure
* Now determine expected load return before loading then load all "expected GameSystem" before "expected Race"
* Make "can load as race/game system/army" methods public in interface
Re #22 - Get errored file loading
* Created FileLoadFailure class and made LoadFiles return a list of them
Also
* Some code cleanup
* Change to DictionaryUtils calls
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sun, 25 Jan 2009 14:03:20 +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(); } } } } }