public CK2Province(int id, CK2World world, PdxSublist historyData) { World = world; ID = id; county = historyData.KeyValuePairs["title"]; _cultureHistory = new List <Dated <CK2Culture> >(); _religionHistory = new List <Dated <CK2Religion> >(); if (historyData.KeyValuePairs.ContainsKey("culture")) { _cultureHistory.Add(new Dated <CK2Culture>(new DateTime(769, 1, 1), world.CK2Cultures[historyData.KeyValuePairs["culture"]])); } if (historyData.KeyValuePairs.ContainsKey("religion")) { _religionHistory.Add(new Dated <CK2Religion>(new DateTime(769, 1, 1), world.CK2Religions[historyData.KeyValuePairs["religion"]])); } historyData.ForEachSublist((sub) => { var date = PdxSublist.ParseDate(sub.Key); if (sub.Value.KeyValuePairs.ContainsKey("religion")) { _religionHistory.Add(new Dated <CK2Religion>(date, world.CK2Religions[sub.Value.KeyValuePairs["religion"]])); } if (sub.Value.KeyValuePairs.ContainsKey("culture")) { _cultureHistory.Add(new Dated <CK2Culture>(date, world.CK2Cultures[sub.Value.KeyValuePairs["culture"]])); } }); }
public NationalIdeaGroup(PdxSublist data) { Name = data.Key; Ideas = new List <NationalIdea>(); data.ForEachSublist(sub => { Ideas.Add(new NationalIdea(sub.Value, this)); }); }
private void RecursiveTitleSearch(PdxSublist data) { data.ForEachSublist((sub) => { if (CK2Titles.ContainsKey(sub.Key) && CK2Titles[sub.Key].Colour == null && sub.Value.Sublists.ContainsKey("color")) { CK2Titles[sub.Key].Colour = new Colour(sub.Value.Sublists["color"].FloatValues[string.Empty]); } RecursiveTitleSearch(sub.Value); }); }
public Vic2CultureGroup(Vic2World world, PdxSublist data) : this(data.Key, world) { //World = world; Leader = data.GetString("leader"); if (data.KeyValuePairs.ContainsKey("unit")) { Unit = data.GetString("unit"); } data.ForEachSublist(sub => { Cultures.Add(new Vic2Culture(world, sub.Value, this)); }); if (data.KeyValuePairs.ContainsKey("union")) { unionKey = data.GetString("union"); } }
public bool InitFromSaveFile(PdxSublist data) { if (CountyTitle == null) { return(false); } if (data.Sublists.ContainsKey("variables") && data.Sublists["variables"].FloatValues.ContainsKey("prosperity_value")) { Prosperity = (int)data.Sublists["variables"].FloatValues["prosperity_value"].Single(); } if (data.KeyValuePairs.ContainsKey("culture")) { Culture = World.CK2Cultures[data.KeyValuePairs["culture"]]; } if (data.KeyValuePairs.ContainsKey("religion")) { Religion = World.CK2Religions[data.KeyValuePairs["religion"]]; } if (ID == 28) { Console.WriteLine(); } // if(ID == 1682) // { // Console.WriteLine(); //} ////a mess. blame pdx for having duplicates where they shouldn't //if (!world.CK2Titles.ContainsKey(county) && !world.CK2Titles.ContainsKey(countyDupe)) // { // return; //} CountyTitle.Province = this; if (World.Localisation.ContainsKey($"PROV{ID}")) { DisplayName = World.Localisation[$"PROV{ID}"]; if (CountyTitle.DisplayName == null) { CountyTitle.DisplayName = DisplayName; } } //world.AddTitle(CountyTitle); BaronTitles = new List <CK2Title>(); data.ForEachSublist(sub => { if (sub.Key[1] == '_') { BaronTitles.Add(World.CK2Titles[sub.Key]); World.CK2Titles[sub.Key].AddBaronData(sub.Value, CountyTitle); World.CK2Titles[sub.Key].Province = this; } }); Hospital = data.Sublists.ContainsKey("hospital"); HospitalBuildings = new HashSet <string>(); if (Hospital) { foreach (var building in data.Sublists["hospital"].BoolValues) { if (building.Value.Single()) { HospitalBuildings.Add(building.Key); } } } Technology = data.Sublists["technology"].Sublists["tech_levels"].FloatValues[string.Empty]; var mapPos = World.CK2ProvPositions[ID.ToString()]; var mapX = mapPos.Sum(p => p.X) / mapPos.Count; var mapY = mapPos.Sum(p => p.Y) / mapPos.Count; MapPosition = new Point(mapX, mapY); Modifiers = new HashSet <string>(); data.Sublists.ForEach("modifier", sub => { Modifiers.Add(sub.KeyValuePairs["modifier"]); }); //world.TaskPool.Add(FindMapPosition(world)); return(true); }