view Util/UnitEquipmentChoice.cs @ 203:b4e428dcfcb6 default-army-name

Re #153: Default name for armies * Have a fight between VS.Net versions over how to reference projects (may need to update from 2K3 but still target .Net 2) * Use property of race object and clean up comments
author IBBoard <dev@ibboard.co.uk>
date Tue, 07 Sep 2010 20:03:52 +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; }
        }
    }
}