Mercurial > repos > IBBoard.WarFoundry.GUI.WinForms
view Util/UnitEquipmentChoice.cs @ 140:60c795eca8de WarFoundry_v0.1beta8_Winforms
Re #265: Add language preference UI
* Add initial preferences dialog with translation options
* Re-translate main form when language changes
* Save translation for later use
Only known bug on initial quick implementation is that open unit dialogs become named "{0}" (which should be replaced by unit name), but this should be quite a simple fix
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sun, 11 Apr 2010 19:55:03 +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; } } } }