Mercurial > repos > IBDev-IBBoard.WarFoundry.GUI.WinForms
view Util/UnitEquipmentChoice.cs @ 159:964f946d3cac
Fixes #288: WarFoundry WinForms assumes that army tree will be open
* Add a getter method that returns a new army tree if the old one was disposed or non exists
* Unhook the army tree from the army changed events on dispose
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Fri, 04 Jun 2010 19:31:02 +0000 |
parents | 3e78af88ceb3 |
children | 1ca23c47345a |
line wrap: on
line source
// This file (UnitEquipmentChoice.cs) is a part of the IBBoard.WarFoundry.GUI.WinForms project and is copyright 2009 IBBoard. // // The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license. using System; using IBBoard.Lang; using IBBoard.WarFoundry.API.Objects; using IBBoard.WarFoundry.API.Util; namespace IBBoard.WarFoundry.GUI.WinForms.Util { /// <summary> /// A helper object that holds an equipment choice for a unit. /// </summary> public class UnitEquipmentChoice { private Unit unit; private UnitEquipmentItem item; public UnitEquipmentChoice(Unit unit, UnitEquipmentItem unitItem) { this.unit = unit; item = unitItem; } public override string ToString() { String translation = ""; if (item.Cost == 0) { translation = Translation.GetTranslation("equipmentAmountWithZeroCost", "{0} ({1} - free)", item.Name, GetAmountString()); } else { translation = Translation.GetTranslation("equipmentAmountWithCost", "{0} ({1} at {2}pts each)", item.Name, GetAmountString(), item.Cost); } return translation; } private string GetAmountString() { double amount = UnitEquipmentUtil.GetEquipmentAmount(unit, item); string amountString = ""; if (UnitEquipmentUtil.GetEquipmentAmountIsRatio(unit, item)) { int number = UnitEquipmentUtil.GetEquipmentAmountTaken(unit, item); if (amount == 100) { amountString = Translation.GetTranslation("equipmentChoiceAmountAll", "all ({1})", amount, number); } else { amountString = Translation.GetTranslation("equipmentChoiceAmountPercentage", "{0}% ({1})", amount, number); } } else { amountString = Translation.GetTranslation("equipmentChoiceAmountNumber", "{0}", amount); } return amountString; } public UnitEquipmentItem Item { get { return item; } } } }