changeset 391:d051f8f44e6c default-army-name

Re #99: added points name system to GameSystem
author snowblizz
date Mon, 24 Jan 2011 16:42:43 +0000
parents 4e0031339bcb
children dc6243326a93
files api/Objects/GameSystem.cs
diffstat 1 files changed, 395 insertions(+), 225 deletions(-) [+]
line wrap: on
line diff
--- a/api/Objects/GameSystem.cs	Sun Dec 12 15:27:07 2010 +0000
+++ b/api/Objects/GameSystem.cs	Mon Jan 24 16:42:43 2011 +0000
@@ -7,33 +7,44 @@
 using System.Xml;
 using System.IO;
 using IBBoard.Logging;
+using IBBoard.Lang;
 using IBBoard.WarFoundry.API.Factories;
 using ICSharpCode.SharpZipLib.Zip;
 
 namespace IBBoard.WarFoundry.API.Objects
 {
-	/// <summary>
-	/// Summary description for GameSystem.
-	/// </summary>
-	public class GameSystem : WarFoundryStagedLoadingObject
-	{
-        private static int SYSTEM_DEFAULT_ARMY_SIZE = 1000;
+    /// <summary>
+    /// Summary description for GameSystem.
+    /// </summary>
+    public class GameSystem : WarFoundryStagedLoadingObject
+    {
+        private static decimal SYSTEM_DEFAULT_ARMY_SIZE = 1000;
         private bool warnOnError;
-		private bool allowAllies;
-		private Dictionary<string, Category> categories = new Dictionary<string,Category>();
-		private Dictionary<string, SystemStats> stats = new Dictionary<string,SystemStats>();
-		private string defaultStats;
-        private int defaultArmySize;
+        private bool allowAllies;
+        private Dictionary<string, Category> categories = new Dictionary<string, Category>();
+        private Dictionary<string, SystemStats> stats = new Dictionary<string, SystemStats>();
+        private string defaultStats;
+        private decimal defaultArmySize;
+        private string systemPtsAbbrevSingle;
+        private string systemPtsAbbrevPlural;
+        private string systemPtsNameSingle;
+        private string systemPtsNamePlural;
+        private string pointsAbbrevSingle;
+        private string pointsAbbrevPlural;
+        public string pointsAbbreviation;
+        private string pointsNameSingle;
+        private string pointsNamePlural;
+        public string pointsName;
 
         public GameSystem(string systemID, string systemName, IWarFoundryFactory creatingFactory)
             : base(systemID, systemName, creatingFactory)
-		{
-			stats = new Dictionary<string,SystemStats>();
-		}
+        {
+            stats = new Dictionary<string, SystemStats>();
+        }
 
-        public int SystemArmyDefaultSize
+        public decimal SystemArmyDefaultSize
         {
-            get { return  defaultArmySize; }
+            get { return defaultArmySize; }
             set
             {
                 if (value == 0)
@@ -46,224 +57,383 @@
                 }
             }
         }
-		
-		public bool AllowAllies
-		{
-			get { return allowAllies; }
-			set { allowAllies = value; }
-		}
-		
-		public void AddCategory(Category cat)
-		{
-			RawCategories[cat.ID] = cat;
-		}
+
+        public string SystemPtsAbbrevSingle
+        {
+            get { return systemPtsAbbrevSingle; }
+            set { systemPtsAbbrevSingle = value; }
+        }
+        public string SystemPtsAbbrevPlural
+        {
+            get { return systemPtsAbbrevPlural; }
+            set { systemPtsAbbrevPlural = value; }
+        }
+        public string SystemPtsNameSingle
+        {
+            get { return systemPtsNameSingle; }
+            set { systemPtsNameSingle = value; }
+        }
+        public string SystemPtsNamePlural
+        {
+            get { return systemPtsNamePlural; }
+            set { systemPtsNamePlural = value; }
+        }
+        public bool AllowAllies
+        {
+            get { return allowAllies; }
+            set { allowAllies = value; }
+        }
+
+        public void AddCategory(Category cat)
+        {
+            RawCategories[cat.ID] = cat;
+        }
+
+        public Category GetCategory(string id)
+        {
+            EnsureFullyLoaded();
+            Category cat = null;
+            RawCategories.TryGetValue(id, out cat);
+            return cat;
+        }
+
+        public void SetCategory(Category cat)
+        {
+            Category old;
+            RawCategories.TryGetValue(cat.ID, out old);
 
-		public Category GetCategory(string id)
-		{
-			EnsureFullyLoaded();
-			Category cat = null;
-			RawCategories.TryGetValue(id, out cat);
-			return cat;
-		}
+            if (old == null)
+            {
+                AddCategory(cat);
+            }
+            else
+            {
+                if (!old.Equals(cat))
+                {
+                    RawCategories[old.ID] = cat;
+                }
+            }
+        }
+
+        public void RemoveCategory(string id)
+        {
+            RawCategories.Remove(id);
+        }
 
-		public Category[] Categories
-		{
-			get 
-			{ 
-				EnsureFullyLoaded();
-				return DictionaryUtils.ToArray<string, Category>(RawCategories); 
-			}
-		}
-		
-		protected Dictionary<string, Category> RawCategories
-		{
-			get { return categories; }
-		}
+        public Category[] Categories
+        {
+            get
+            {
+                EnsureFullyLoaded();
+                return DictionaryUtils.ToArray<string, Category>(RawCategories);
+            }
+        }
+
+        protected Dictionary<string, Category> RawCategories
+        {
+            get { return categories; }
+        }
+
+        public bool WarnOnError
+        {
+            get
+            {
+                return warnOnError;
+            }
+            set { warnOnError = value; }
+        }
+
+        public void AddSystemStats(SystemStats sysStats)
+        {
+            stats[sysStats.ID] = sysStats;
+        }
 
-		public bool WarnOnError
-		{
-			get
-			{
-				return warnOnError;
-			}
-			set { warnOnError = value; }
-		}
-		
-		public void AddSystemStats(SystemStats sysStats)
-		{
-			stats[sysStats.ID] = sysStats;
-		}
-		
-		public SystemStats StandardSystemStats
-		{
-			get
-			{
-				EnsureFullyLoaded();
-				return stats[defaultStats];
-			}
-		}
-		
-		public string StandardSystemStatsID
-		{
-			get
-			{
-				EnsureFullyLoaded();
-				return defaultStats;
-			}
-			
-			set
-			{
-				if (value != null && value.Trim().Length > 0)
-				{
-					defaultStats = value;
-				}
-			}
-		}
+        public SystemStats StandardSystemStats
+        {
+            get
+            {
+                EnsureFullyLoaded();
+                return stats[defaultStats];
+            }
+        }
+
+        public string StandardSystemStatsID
+        {
+            get
+            {
+                EnsureFullyLoaded();
+                return defaultStats;
+            }
+
+            set
+            {
+                if (value != null && value.Trim().Length > 0)
+                {
+                    defaultStats = value;
+                }
+            }
+        }
+
+        public SystemStats[] SystemStats
+        {
+            get
+            {
+                EnsureFullyLoaded();
+                SystemStats[] statsArray = new SystemStats[stats.Count];
+                stats.Values.CopyTo(statsArray, 0);
+                return statsArray;
+            }
+        }
+
+        public SystemStats GetSystemStatsForID(string id)
+        {
+            EnsureFullyLoaded();
+            SystemStats statsForID;
+            stats.TryGetValue(id, out statsForID);
+            return statsForID;
+        }
 
-		public SystemStats[] SystemStats
-		{
-			get 
-			{ 
-				EnsureFullyLoaded();
-				SystemStats[] statsArray = new SystemStats[stats.Count];
-				stats.Values.CopyTo(statsArray, 0);
-				return statsArray;
-			}
-		}
-		
-		public SystemStats GetSystemStatsForID(string id)
-		{
-			EnsureFullyLoaded();
-			SystemStats statsForID;
-			stats.TryGetValue(id, out statsForID);
-			return statsForID;
-		}
-		
-		public Race SystemDefaultRace
-		{
-			get { return WarFoundryLoader.GetDefault().GetRace(this, Race.SYSTEM_DEFAULT_RACE_ID); }
-		}
+        public void SetSystemStats(SystemStats newStats)
+        {
+            SystemStats old;
+            stats.TryGetValue(newStats.ID, out old);
+
+            if (old == null)
+            {
+                AddSystemStats(newStats);
+            }
+            else
+            {
+                if (!old.Equals(newStats))
+                {
+                    stats[old.ID] = newStats;
+                }
+            }
+        }
+
+        public void RemoveSystemStats(string id)
+        {
+            stats.Remove(id);
+        }
 
-		public bool Matches(GameSystem otherSystem)
-		{
-			if (otherSystem==null)
-			{
-				return false;
-			}
+        public Race SystemDefaultRace
+        {
+            get { return WarFoundryLoader.GetDefault().GetRace(this, Race.SYSTEM_DEFAULT_RACE_ID); }
+        }
+
+        public bool Matches(GameSystem otherSystem)
+        {
+            if (otherSystem == null)
+            {
+                return false;
+            }
 
-			return this.ID == otherSystem.ID;
-		}
+            return this.ID == otherSystem.ID;
+        }
+
+        public override bool Equals(object obj)
+        {
+            if (obj == null)
+            {
+                return false;
+            }
+
+            if (obj.GetType().Equals(this.GetType()))
+            {
+                GameSystem otherSystem = (GameSystem)obj;
 
-		public override bool Equals(object obj)
-		{
-			if (obj == null)
-			{
-				return false;		
-			}
-			
-			if (obj.GetType().Equals(this.GetType()))
-			{
-				GameSystem otherSystem = (GameSystem)obj;
+                return this.ID == otherSystem.ID && this.Name == otherSystem.Name && ((this.RawCategories == null && otherSystem.RawCategories == null) || this.RawCategories.Equals(otherSystem.RawCategories));
+            }
+            else
+            {
+                return false;
+            }
+        }
+
+        public override int GetHashCode()
+        {
+            return ID.GetHashCode() + Name.GetHashCode() + (RawCategories != null ? RawCategories.GetHashCode() : 0) + warnOnError.GetHashCode();
+        }
+
+        public bool UnitTypeMaxed(UnitType unitType, Army army)
+        {
+            return unitType.MaxNumber != WarFoundryCore.INFINITY && army.GetUnitTypeCount(unitType) >= unitType.MaxNumber;
+        }
+
+        public bool UnitTypeMinned(UnitType unitType, Army army)
+        {
+            return army.GetUnitTypeCount(unitType) <= unitType.MinNumber;
+        }
+
+        public List<EquipmentItem> GetSystemEquipmentList()
+        {
+            List<EquipmentItem> items = new List<EquipmentItem>();
+            Race defaultRace = SystemDefaultRace;
+
+            if (defaultRace != null)
+            {
+                items = defaultRace.GetEquipmentList();
+            }
+
+            return items;
+        }
+
+        public EquipmentItem GetSystemEquipmentItem(string id)
+        {
+            EquipmentItem item = null;
+            Race defaultRace = SystemDefaultRace;
+
+            if (defaultRace != null)
+            {
+                item = defaultRace.GetEquipmentItem(id);
+            }
+
+            return item;
+        }
 
-				return this.ID == otherSystem.ID && this.Name == otherSystem.Name && ((this.RawCategories == null && otherSystem.RawCategories == null) || this.RawCategories.Equals(otherSystem.RawCategories));
-			}
-			else
-			{
-				return false;
-			}
-		}
+        public UnitType[] GetSystemUnitTypes(Category cat)
+        {
+            UnitType[] items = new UnitType[0];
+            Race defaultRace = SystemDefaultRace;
+
+            if (defaultRace != null)
+            {
+                items = defaultRace.GetUnitTypes(cat);
+            }
+
+            return items;
+        }
+
+        public UnitType GetSystemUnitType(string id)
+        {
+            UnitType unit = null;
+            Race defaultRace = SystemDefaultRace;
+
+            if (defaultRace != null)
+            {
+                unit = defaultRace.GetUnitType(id);
+            }
 
-		public override int GetHashCode()
-		{
-			return ID.GetHashCode() + Name.GetHashCode() + (RawCategories!=null ? RawCategories.GetHashCode() : 0) + warnOnError.GetHashCode();
-		}
+            return unit;
+        }
+
+        public List<Ability> GetSystemAbilityList()
+        {
+            List<Ability> items = new List<Ability>();
+            Race defaultRace = SystemDefaultRace;
+
+            if (defaultRace != null)
+            {
+                items = defaultRace.GetAbilityList();
+            }
 
-		public bool UnitTypeMaxed(UnitType unitType, Army army)
-		{
-			return unitType.MaxNumber!=WarFoundryCore.INFINITY && army.GetUnitTypeCount(unitType) >= unitType.MaxNumber;
-		}
+            return items;
+        }
+
+        public Ability GetSystemAbility(string id)
+        {
+            Ability ability = null;
+            Race defaultRace = SystemDefaultRace;
+
+            if (defaultRace != null)
+            {
+                ability = defaultRace.GetAbility(id);
+            }
 
-		public bool UnitTypeMinned(UnitType unitType, Army army)
-		{
-			return army.GetUnitTypeCount(unitType) <= unitType.MinNumber;
-		}
-		
-		public List<EquipmentItem> GetSystemEquipmentList()
-		{
-			List<EquipmentItem> items = new List<EquipmentItem>();
-			Race defaultRace = SystemDefaultRace;
-			
-			if (defaultRace!=null)
-			{				
-				items = defaultRace.GetEquipmentList();
-			}
-			
-			return items;
-		}
-				
-		public EquipmentItem GetSystemEquipmentItem(string id)
-		{
-			EquipmentItem item = null;
-			Race defaultRace = SystemDefaultRace;
-			
-			if (defaultRace!=null)
-			{				
-				item = defaultRace.GetEquipmentItem(id);
-			}
-			
-			return item;
-		}
-		
-		public UnitType[] GetSystemUnitTypes(Category cat)
-		{
-			UnitType[] items = new UnitType[0];
-			Race defaultRace = SystemDefaultRace;
-			
-			if (defaultRace!=null)
-			{				
-				items = defaultRace.GetUnitTypes(cat);
-			}
-			
-			return items;
-		}
-				
-		public UnitType GetSystemUnitType(string id)
-		{
-			UnitType unit = null;
-			Race defaultRace = SystemDefaultRace;
-			
-			if (defaultRace!=null)
-			{				
-				unit = defaultRace.GetUnitType(id);
-			}
-			
-			return unit;
-		}
-		
-		public List<Ability> GetSystemAbilityList()
-		{
-			List<Ability> items = new List<Ability>();
-			Race defaultRace = SystemDefaultRace;
-			
-			if (defaultRace!=null)
-			{				
-				items = defaultRace.GetAbilityList();
-			}
-			
-			return items;
-		}
-				
-		public Ability GetSystemAbility(string id)
-		{
-			Ability ability = null;
-			Race defaultRace = SystemDefaultRace;
-			
-			if (defaultRace!=null)
-			{				
-				ability = defaultRace.GetAbility(id);
-			}
-			
-			return ability;
-		}
-	}
+            return ability;
+        }
+        public string UsePointsAbbrev(double pointTemp)
+        {
+            if (pointTemp == 1)
+            {
+                pointsAbbreviation = pointsAbbrevSingle;
+            }
+            else
+            {
+                pointsAbbreviation = pointsAbbrevPlural;
+            }
+            return pointsAbbreviation;
+        }
+
+        public string UsePointsName(double pointTemp)
+        {
+
+            if (pointTemp == 1)
+            {
+                pointsName = pointsNameSingle;
+            }
+            else
+            {
+                pointsName = pointsNamePlural;
+            }
+            return pointsName;
+        }
+        public void LoadPointsSystemNames()
+        {
+            if (this != null)
+            {
+                LoadPointsAbbrevPlural();
+                LoadPointsAbbrevSingle();
+                LoadPointsNamePlural();
+                LoadPointsNameSingle();
+            }
+        }
+        private void LoadPointsAbbrevPlural()
+        {
+            // Use this before calling on pointsAbbreviationPlural to "populate" the variable
+
+            if (SystemPtsAbbrevPlural == "")
+            {
+                pointsAbbrevPlural = String.Format(Translation.GetTranslation("PointsLocalisationAbbrevPlural"));
+            }
+            else
+            {
+                pointsAbbrevPlural = SystemPtsAbbrevPlural;
+            }
+
+        }
+        private void LoadPointsAbbrevSingle()
+        {
+            // Use this before calling on pointsAbbreviationSingle to "populate" the variable
+            if (SystemPtsAbbrevSingle == "")
+            {
+                pointsAbbrevSingle = String.Format(Translation.GetTranslation("PointsLocalisationAbbrevSingle"));
+            }
+            else
+            {
+                pointsAbbrevSingle = SystemPtsAbbrevSingle;
+            }
+        }
+        private void LoadPointsNamePlural()
+        {
+            // Use this before calling on pointsNamePlural to "populate" the variable
+            if (SystemPtsNamePlural == "")
+            {
+                pointsNamePlural = String.Format(Translation.GetTranslation("PointsLocalisationNamePlural"));
+            }
+            else
+            {
+                pointsNamePlural = SystemPtsNamePlural;
+            }
+
+        }
+
+        private void LoadPointsNameSingle()
+        {
+            // Use this before calling on pointsNameSingle to "populate" the variable
+            if (SystemPtsNameSingle == "")
+            {
+                pointsNameSingle = String.Format(Translation.GetTranslation("PointsLocalisationNameSingle"));
+            }
+            else
+            {
+                pointsNameSingle = SystemPtsNameSingle;
+            }
+        }
+
+        public string setUnitEquipmentItemName(string itemName,double pointsTemp)
+        {
+            return itemName + Translation.GetTranslation("setUnitEquipmentItemName", "({0}pts each)", pointsTemp, UsePointsAbbrev(pointsTemp));
+        }
+    }
 }