# HG changeset patch # User IBBoard # Date 1295294561 0 # Node ID 483b491d18f4fb5724c80318ffcc1877177f9674 # Parent 349e521785c11cabb82686db112a04a40a956410 Fixes #337: Merge API v0.1.1 changes into v0.2 * Merge translation-related changes from v0.1.1 branch diff -r 349e521785c1 -r 483b491d18f4 api/Commands/AbstractReplaceUnitEquipmentCommand.cs --- a/api/Commands/AbstractReplaceUnitEquipmentCommand.cs Fri Jan 07 03:35:50 2011 +0000 +++ b/api/Commands/AbstractReplaceUnitEquipmentCommand.cs Mon Jan 17 20:02:41 2011 +0000 @@ -16,9 +16,7 @@ { private SetUnitEquipmentNumericAmountCommand removeOldCommand; private AbstractSetUnitEquipmentAmountCommand addNewCommand; - private string description; - private string undoDescription; - + public AbstractReplaceUnitEquipmentCommand(Unit unit, UnitEquipmentItem oldItem, AbstractSetUnitEquipmentAmountCommand addNewEquipmentCommand) { //We can get away with a numeric amount here even if it is a ratio item because we're setting it to 0 @@ -35,12 +33,7 @@ { get { - if (description == null) - { - description = Translation.GetTranslation("replaceUnitEquipmentCommandDescription", "replace {0} with {1} for {2}", removeOldCommand.EquipItem.Name, addNewCommand.EquipItem.Name, removeOldCommand.Unit.Name); - } - - return description; + return Translation.GetTranslation("replaceUnitEquipmentCommandDescription", "replace {0} with {1} for {2}", removeOldCommand.EquipItem.Name, addNewCommand.EquipItem.Name, removeOldCommand.Unit.Name); } } @@ -48,12 +41,7 @@ { get { - if (undoDescription == null) - { - undoDescription = Translation.GetTranslation("replaceUnitEquipmentCommandUndoDescription", "replace {0} with {1} for {2}", addNewCommand.EquipItem.Name, removeOldCommand.EquipItem.Name, removeOldCommand.Unit.Name); - } - - return undoDescription; + return Translation.GetTranslation("replaceUnitEquipmentCommandUndoDescription", "replace {0} with {1} for {2}", addNewCommand.EquipItem.Name, removeOldCommand.EquipItem.Name, removeOldCommand.Unit.Name); } } @@ -75,7 +63,6 @@ removeOldCommand.Undo(); } - public override string Name { get diff -r 349e521785c1 -r 483b491d18f4 api/Commands/AbstractSetUnitEquipmentAmountCommand.cs --- a/api/Commands/AbstractSetUnitEquipmentAmountCommand.cs Fri Jan 07 03:35:50 2011 +0000 +++ b/api/Commands/AbstractSetUnitEquipmentAmountCommand.cs Mon Jan 17 20:02:41 2011 +0000 @@ -19,9 +19,7 @@ private UnitEquipmentItem equip; private double oldAmount; private bool oldAmountWasRatio; - private string description; - private string undoDescription; - + public AbstractSetUnitEquipmentAmountCommand(Unit unit, UnitEquipmentItem item) { this.unit = unit; @@ -32,19 +30,14 @@ public override bool CanExecute() { - return (unit!=null && equip!=null); + return (unit != null && equip != null); } public override string Description { get { - if (description == null) - { - description = Translation.GetTranslation("setEquipmentAmountCommandDescription", "set {0} amount for {1} to {2}", equip.Name, unit.Name, GetNewAmountString()); - } - - return description; + return Translation.GetTranslation("setEquipmentAmountCommandDescription", "set {0} amount for {1} to {2}", equip.Name, unit.Name, GetNewAmountString()); } } @@ -60,12 +53,7 @@ { get { - if (undoDescription == null) - { - undoDescription = Translation.GetTranslation("setEquipmentAmountCommandUndoDescription", "set {0} amount for {1} to {2}", equip.Name, unit.Name, GetOldAmountString()); - } - - return undoDescription; + return Translation.GetTranslation("setEquipmentAmountCommandUndoDescription", "set {0} amount for {1} to {2}", equip.Name, unit.Name, GetOldAmountString()); } } @@ -79,23 +67,23 @@ { return oldAmountWasRatio ? GetRatioAmountString(oldAmount, UnitEquipmentRatioSelection.CalculateNumberTaken(Unit, EquipItem, oldAmount)) : GetNumberAmountString((int)oldAmount); } - + protected string GetNumberAmountString(int number) { - return Translation.GetTranslation ("equipmentAmountNumber", "{0}", number); + return Translation.GetTranslation("equipmentAmountNumber", "{0}", number); } - protected string GetRatioAmountString (double amount, int number) + protected string GetRatioAmountString(double amount, int number) { string amountString; if (amount == 100) { - amountString = Translation.GetTranslation ("equipmentAmountAll", "all ({1})", amount, number); + amountString = Translation.GetTranslation("equipmentAmountAll", "all ({1})", amount, number); } else { - amountString = Translation.GetTranslation ("equipmentAmountPercentage", "{0}% ({1})", amount, number); + amountString = Translation.GetTranslation("equipmentAmountPercentage", "{0}% ({1})", amount, number); } return amountString; @@ -107,7 +95,7 @@ return true; } - public override void Undo () + public override void Undo() { if (oldAmountWasRatio) { @@ -119,7 +107,6 @@ } } - public UnitEquipmentItem EquipItem { get { return equip; } diff -r 349e521785c1 -r 483b491d18f4 api/Commands/CreateAndAddUnitCommand.cs --- a/api/Commands/CreateAndAddUnitCommand.cs Fri Jan 07 03:35:50 2011 +0000 +++ b/api/Commands/CreateAndAddUnitCommand.cs Mon Jan 17 20:02:41 2011 +0000 @@ -14,9 +14,7 @@ private UnitType addedUnitType; private ArmyCategory armyCat; private Unit addedUnit; - private string description; - private string undoDescription; - + public CreateAndAddUnitCommand(UnitType toAdd, ArmyCategory armyCatTo) { addedUnitType = toAdd; @@ -25,19 +23,14 @@ public override bool CanExecute() { - return (addedUnitType!=null && armyCat!=null); + return (addedUnitType != null && armyCat != null); } public override string Description { get { - if (description == null) - { - description = Translation.GetTranslation("createAndAddUnitCommandDescription", "add unit of {0} to the army", addedUnitType.Name); - } - - return description; + return Translation.GetTranslation("createAndAddUnitCommandDescription", "add unit of {0} to the army", addedUnitType.Name); } } @@ -45,12 +38,7 @@ { get { - if (undoDescription == null) - { - undoDescription = Translation.GetTranslation("createAndAddUnitCommandUndoDescription", "remove unit of {0} from army", addedUnitType.Name); - } - - return undoDescription; + return Translation.GetTranslation("createAndAddUnitCommandUndoDescription", "remove unit of {0} from army", addedUnitType.Name); } } diff -r 349e521785c1 -r 483b491d18f4 api/Commands/RemoveUnitCommand.cs --- a/api/Commands/RemoveUnitCommand.cs Fri Jan 07 03:35:50 2011 +0000 +++ b/api/Commands/RemoveUnitCommand.cs Mon Jan 17 20:02:41 2011 +0000 @@ -16,8 +16,6 @@ { private Unit unit; private ArmyCategory cat; - private string description; - private string undoDescription; public RemoveUnitCommand(Unit toRemove) { @@ -27,19 +25,14 @@ public override bool CanExecute() { - return (unit!=null); + return (unit != null); } public override string Description { get { - if (description == null) - { - description = Translation.GetTranslation("removeUnitCommandDescription", "remove {0} from the army", unit.Name); - } - - return description; + return Translation.GetTranslation("removeUnitCommandDescription", "remove {0} from the army", unit.Name); } } @@ -47,12 +40,7 @@ { get { - if (undoDescription == null) - { - undoDescription = Translation.GetTranslation("removeUnitCommandUndoDescription", "re-add {0} to the army", unit.Name); - } - - return undoDescription; + return Translation.GetTranslation("removeUnitCommandUndoDescription", "re-add {0} to the army", unit.Name); } } diff -r 349e521785c1 -r 483b491d18f4 api/Commands/SetNameCommand.cs --- a/api/Commands/SetNameCommand.cs Fri Jan 07 03:35:50 2011 +0000 +++ b/api/Commands/SetNameCommand.cs Mon Jan 17 20:02:41 2011 +0000 @@ -16,8 +16,6 @@ { private WarFoundryObject obj; private string newName, oldName; - private string description; - private string undoDescription; public SetNameCommand(WarFoundryObject toRename, string name) { @@ -28,19 +26,14 @@ public override bool CanExecute() { - return (obj!=null && newName!=null && newName!=""); + return (obj != null && newName != null && newName != ""); } public override string Description { get { - if (description == null) - { - description = Translation.GetTranslation("setUnitNameCommandDescription", "rename \"{0}\" to \"{1}\"", oldName, newName); - } - - return description; + return Translation.GetTranslation("setUnitNameCommandDescription", "rename \"{0}\" to \"{1}\"", oldName, newName); } } @@ -48,12 +41,7 @@ { get { - if (undoDescription == null) - { - undoDescription = Translation.GetTranslation("setUnitNameCommandUndoDescription", "rename \"{0}\" to \"{1}\"", newName, oldName); - } - - return undoDescription; + return Translation.GetTranslation("setUnitNameCommandUndoDescription", "rename \"{0}\" to \"{1}\"", newName, oldName); } } diff -r 349e521785c1 -r 483b491d18f4 api/Commands/SetUnitSizeCommand.cs --- a/api/Commands/SetUnitSizeCommand.cs Fri Jan 07 03:35:50 2011 +0000 +++ b/api/Commands/SetUnitSizeCommand.cs Mon Jan 17 20:02:41 2011 +0000 @@ -16,8 +16,6 @@ { private Unit unit; private int newSize, oldSize; - private string description; - private string undoDescription; public SetUnitSizeCommand(Unit toResize, int size) { @@ -28,19 +26,14 @@ public override bool CanExecute() { - return (unit!=null && newSize >0 && oldSize > 0); + return (unit != null && newSize > 0 && oldSize > 0); } public override string Description { get { - if (description == null) - { - description = Translation.GetTranslation("setUnitSizeCommandDescription", "set size of {0} to {1}", unit.Name, newSize); - } - - return description; + return Translation.GetTranslation("setUnitSizeCommandDescription", "set size of {0} to {1}", unit.Name, newSize); } } @@ -48,12 +41,7 @@ { get { - if (undoDescription == null) - { - undoDescription = Translation.GetTranslation("setUnitSizeCommandUndoDescription", "set size of {0} to {1}", unit.Name, oldSize); - } - - return undoDescription; + return Translation.GetTranslation("setUnitSizeCommandUndoDescription", "set size of {0} to {1}", unit.Name, oldSize); } } diff -r 349e521785c1 -r 483b491d18f4 api/Objects/Unit.cs --- a/api/Objects/Unit.cs Fri Jan 07 03:35:50 2011 +0000 +++ b/api/Objects/Unit.cs Mon Jan 17 20:02:41 2011 +0000 @@ -25,33 +25,38 @@ private Dictionary equipment = new Dictionary(); private Dictionary> equipmentSlots = new Dictionary>(); private List containedUnits = new List(); + public event DoubleValChangedDelegate PointsValueChanged; public event IntValChangedDelegate UnitSizeChanged; public event DoubleValChangedDelegate UnitEquipmentAmountChanged; - public Unit(UnitType unitType, ArmyCategory parentArmyCat) : this(unitType, unitType.MinSize, parentArmyCat) { } + public Unit(UnitType unitType, ArmyCategory parentArmyCat) : this(unitType, unitType.MinSize, parentArmyCat) + { + //Do nothing extra + } public Unit(UnitType unitType, int startSize, ArmyCategory parentArmyCat) : this("", "", startSize, unitType, parentArmyCat) { - SetInitialEquipment(); + SetInitialEquipment(); UnitSizeChanged += new IntValChangedDelegate(RefreshUnitEquipmentAmounts); } - + public Unit(string id, string name, int startSize, UnitType unitType, ArmyCategory parentArmyCat) : base(id, name) { Category = parentArmyCat; type = unitType; Size = startSize; CalcCost(); - UnitEquipmentAmountChanged+= new DoubleValChangedDelegate(UnitEquipmentAmountChangedHandler); - UnitSizeChanged+= new IntValChangedDelegate(UnitSizeChangedHandler); + UnitEquipmentAmountChanged += new DoubleValChangedDelegate(UnitEquipmentAmountChangedHandler); + UnitSizeChanged += new IntValChangedDelegate(UnitSizeChangedHandler); + Translation.TranslationChanged += HandleTranslationChanged; } - + private void UnitEquipmentAmountChangedHandler(WarFoundryObject obj, double oldVal, double newVal) { CalcCost(); } - + private void UnitSizeChangedHandler(WarFoundryObject obj, int oldVal, int newVal) { CalcCost(); @@ -81,6 +86,14 @@ } } + private void HandleTranslationChanged() + { + if (type != null && HasDefaultName() && size != 1) + { + OnNameChanged(null, DefaultName()); + } + } + private void SetInitialEquipment() { foreach (UnitEquipmentItem unitEquip in UnitType.GetEquipmentItems()) @@ -114,12 +127,12 @@ points += equipSelection.TotalCost; } - if (oldpoints!=points) + if (oldpoints != points) { OnPointsValueChanged(oldpoints, points); } } - + public int AdditionalTroopers { get { return Math.Max(Size - type.BaseSize, 0); } @@ -128,12 +141,12 @@ public int Size { get { return size; } - set + set { - if (value!=size) + if (value != size) { int oldValue = size; - size = (value>0 ? value : 1); + size = (value > 0 ? value : 1); OnUnitSizeChanged(oldValue, size); } } @@ -168,10 +181,10 @@ { get { return Points; } } - + public double Points { - get + get { if (points == 0) { @@ -181,12 +194,12 @@ return points; } } - + public Unit[] ContainedUnits { get { return containedUnits.ToArray(); } } - + public void AddContainedUnit(Unit unit) { if (UnitType.CanContainUnit(unit)) @@ -203,12 +216,12 @@ throw new InvalidContainershipException(this, unit); } } - + public void RemoveContainedUnit(Unit unit) { containedUnits.Remove(unit); } - + public Unit ParentUnit { get { return parentUnit; } @@ -218,7 +231,7 @@ { parentUnit = value; - if (value!=null) + if (value != null) { value.AddContainedUnit(this); } @@ -241,7 +254,7 @@ { List list = new List(); - foreach(UnitEquipmentItem item in GetEquipment()) + foreach (UnitEquipmentItem item in GetEquipment()) { if (item.IsRequired) { @@ -292,10 +305,10 @@ { return ""; } - + public void SetEquipmentAmount(UnitEquipmentItem equip, int amount) { - if (amount <1 && amount != WarFoundryCore.INFINITY) + if (amount < 1 && amount != WarFoundryCore.INFINITY) { amount = 0; } @@ -330,7 +343,7 @@ } } } - + private void AddEquipmentAmount(UnitEquipmentItem equip, int amount) { AbstractUnitEquipmentItemSelection newItem = new UnitEquipmentNumericSelection(this, equip, amount); @@ -345,12 +358,12 @@ selections.Add(newItem); } - + public void SetEquipmentRatio(UnitEquipmentItem equip, double ratio) { if (!equip.IsRatioLimit) { - throw new InvalidOperationException("Equipment with ID "+equip.ID+" for unit of type "+UnitType.ID+" has an absolute limit, not a ratio limit"); + throw new InvalidOperationException("Equipment with ID " + equip.ID + " for unit of type " + UnitType.ID + " has an absolute limit, not a ratio limit"); } if (ratio > 100) @@ -391,10 +404,10 @@ } } } - + private void AddEquipmentRatio(UnitEquipmentItem equip, double ratio) { - UnitEquipmentRatioSelection newItem = new UnitEquipmentRatioSelection (this, equip, ratio); + UnitEquipmentRatioSelection newItem = new UnitEquipmentRatioSelection(this, equip, ratio); equipment[equip] = newItem; List selections = DictionaryUtils.GetValue(equipmentSlots, equip.SlotName); @@ -406,21 +419,21 @@ selections.Add(newItem); } - + private void RemoveEquipmentItem(UnitEquipmentItem equip) { double oldAmount = UnitEquipmentUtil.GetEquipmentAmount(this, equip); if (oldAmount != 0) { - AbstractUnitEquipmentItemSelection selection = DictionaryUtils.GetValue (equipment, equip); + AbstractUnitEquipmentItemSelection selection = DictionaryUtils.GetValue(equipment, equip); equipment.Remove(equip); - List slotSelections = DictionaryUtils.GetValue (equipmentSlots, equip.SlotName); + List slotSelections = DictionaryUtils.GetValue(equipmentSlots, equip.SlotName); slotSelections.Remove(selection); OnUnitEquipmentAmountChanged(equip, oldAmount, 0); } } - + public bool CanEquipWithItem(UnitEquipmentItem item) { string[] mutexes = item.MutexGroups; @@ -451,7 +464,7 @@ private void OnPointsValueChanged(double oldValue, double newValue) { - if (PointsValueChanged!=null) + if (PointsValueChanged != null) { PointsValueChanged(this, oldValue, newValue); } @@ -459,7 +472,7 @@ private void OnUnitSizeChanged(int oldValue, int newValue) { - if (UnitSizeChanged!=null) + if (UnitSizeChanged != null) { UnitSizeChanged(this, oldValue, newValue); } @@ -467,7 +480,7 @@ private void OnUnitEquipmentAmountChanged(UnitEquipmentItem equip, double oldValue, double newValue) { - if (UnitEquipmentAmountChanged!=null) + if (UnitEquipmentAmountChanged != null) { UnitEquipmentAmountChanged(equip, oldValue, newValue); } @@ -478,7 +491,7 @@ { get { return UnitType.UnitStatsArray; } } - + public Stat[][] UnitStatsArrays { get { return UnitType.UnitStatsArrays; } @@ -489,15 +502,15 @@ { get { return UnitType.UnitStatsArrayWithName; } } - + public Stat[][] UnitStatsArraysWithName { get { return UnitType.UnitStatsArraysWithName; } } - + public string[] UnitStatsArrayIDs { - get + get { return UnitType.UnitStatsArrayIDs; } @@ -508,7 +521,7 @@ return UnitType.GetStatValue(statName); } - public int GetEquipmentAmountInSlot (string slotName) + public int GetEquipmentAmountInSlot(string slotName) { int amount = 0; @@ -558,13 +571,13 @@ } } - private int GetSelectionTotal (List selections) + private int GetSelectionTotal(List selections) { int amount = 0; foreach (AbstractUnitEquipmentItemSelection selection in selections) { - amount+= selection.NumberTaken; + amount += selection.NumberTaken; } return amount; @@ -578,20 +591,20 @@ get { return UnitType.GetRequiredAbilities(); - } - } - - private void RefreshUnitEquipmentAmounts(WarFoundryObject obj, int oldValue, int newValue) - { - foreach (UnitEquipmentItem item in equipment.Keys) - { - AbstractUnitEquipmentItemSelection selection = equipment[item]; - - if (selection is UnitEquipmentRatioSelection) - { - OnUnitEquipmentAmountChanged(item, selection.AmountTaken, selection.AmountTaken); - } - } + } + } + + private void RefreshUnitEquipmentAmounts(WarFoundryObject obj, int oldValue, int newValue) + { + foreach (UnitEquipmentItem item in equipment.Keys) + { + AbstractUnitEquipmentItemSelection selection = equipment[item]; + + if (selection is UnitEquipmentRatioSelection) + { + OnUnitEquipmentAmountChanged(item, selection.AmountTaken, selection.AmountTaken); + } + } } } }