Exemple #1
0
 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"]]));
         }
     });
 }
Exemple #2
0
 public NationalIdeaGroup(PdxSublist data)
 {
     Name  = data.Key;
     Ideas = new List <NationalIdea>();
     data.ForEachSublist(sub =>
     {
         Ideas.Add(new NationalIdea(sub.Value, this));
     });
 }
Exemple #3
0
 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);
     });
 }
Exemple #4
0
        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");
            }
        }
Exemple #5
0
        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);
        }