Exemplo n.º 1
0
        private PdxSublist GetCharacterData(string type, CK2CharacterBase character)
        {
            var rulerData   = new PdxSublist(null, character.BirthDate.ToString("yyyy.MM.dd"));
            var monarchData = new PdxSublist(null, type);

            monarchData.AddValue("name", character.Name);

            if (character.DynastyID == 0)
            {             //todo: better support for lowborn rulers
                          //monarchData.AddValue("dynasty", "Lowborn");
            }
            else
            {
                monarchData.AddValue("dynasty", character.World.CK2Dynasties[character.DynastyID].Name);
            }
            if (CountryTag == "SCA")
            {
                Console.WriteLine();
            }
            monarchData.AddValue("birth_date", rulerData.Key);
            monarchData.AddValue("adm", ((character.Attribites.Stewardship + character.Attribites.Learning) / 6).ToString());
            monarchData.AddValue("dip", ((character.Attribites.Diplomacy + character.Attribites.Learning) / 6).ToString());
            monarchData.AddValue("mil", ((character.Attribites.Martial + character.Attribites.Learning) / 6).ToString());

            if (type == "heir")
            {
                monarchData.AddValue("claim", "95");
                monarchData.AddValue("monarch_name", character.Name);
                monarchData.AddValue("death_date", "1821.5.5");
            }


            rulerData.AddSublist(monarchData.Key, monarchData);
            return(rulerData);
        }
Exemplo n.º 2
0
        public PdxSublist GetData()
        {
            var data = new PdxSublist(null, Enum.GetName(typeof(V2Relation), Type));

            data.AddValue("first", First.CountryTag);
            data.AddValue("second", Second.CountryTag);
            data.AddValue("start_date", World.StartDate);
            data.AddValue("end_date", "1936.1.1");

            return(data);
        }
Exemplo n.º 3
0
        public override PdxSublist GetHistoryFile()
        {
            var data = new PdxSublist(null, (FileName == CountryTag ? CountryTag : (CountryTag + " - " + FileName)) + ".txt");

            data.AddValue("government", Government);
            foreach (var reform in Reforms)
            {
                data.AddValue("add_government_reform", reform);
            }
            data.AddValue("government_rank", GovernmentRank.ToString());
            data.AddValue("mercantilism", Mercantilism.ToString());
            //TODO: tech groups
            data.AddValue("technology_group", TechGroup);
            data.AddValue("religion", Religion);
            data.AddValue("primary_culture", PrimaryCulture);
            foreach (var culture in AcceptedCultures)
            {
                data.AddValue("add_accepted_culture", culture);
            }
            if (IsElector)
            {
                data.AddValue("elector", "yes");
            }
            if (Capital != 0)
            {
                data.AddValue("capital", Capital.ToString());
            }
            if (holder != null)
            {
                var rulerData = GetCharacterData("monarch", holder);


                //rulerData.AddValue("clear_scripted_personalities", "yes");
                data.AddSublist(rulerData.Key, rulerData);
                if (title.Name == "k_dyn_8040718")
                {
                    Console.WriteLine();
                }
                var heir = holder.Heir;
                if (heir != null)
                {
                    var heirData = GetCharacterData("heir", heir);
                    data.AddSublist(heirData.Key, heirData);
                }
                //TODO: heirs
                //if(holder.PrimaryTitle.Succession == "succ_primogeniture")
                //{

                //}
            }
            //TODO: heirs & spouses

            return(data);
        }
Exemplo n.º 4
0
        public PdxSublist GetData()
        {
            var data = new PdxSublist();

            data.AddValue("icon", Icon.ToString());

            var colourData = new PdxSublist();

            colourData.AddValue((Colour.Red / 255f).ToString());
            colourData.AddValue((Colour.Green / 255f).ToString());
            colourData.AddValue((Colour.Blue / 255f).ToString());
            data.AddSublist("color", colourData);
            return(data);
        }
Exemplo n.º 5
0
 internal void AddData(PdxSublist data)
 {
     foreach (var reform in typeof(Reforms).GetProperties())
     {
         data.AddValue(reform.Name, Enum.GetName(reform.PropertyType, reform.GetValue(this)));
     }
 }
Exemplo n.º 6
0
        public PdxSublist GetData(PdxSublist parent)
        {
            var partyData = new PdxSublist(parent, "party");

            partyData.AddValue("name", Name);
            partyData.AddDate("start_date", StartDate);
            partyData.AddDate("end_date", EndDate);
            partyData.AddValue("ideology", Enum.GetName(typeof(Ideology), Ideology));

            foreach (var pos in policyPositions.Keys)
            {
                var prop = typeof(PoliticalParty).GetProperty(pos.Name);

                partyData.AddValue(pos.Name, Enum.GetName(pos, prop.GetValue(this)));
            }

            return(partyData);
        }
Exemplo n.º 7
0
        private PdxSublist GetNameData(List <string> names)
        {
            var nameData = new PdxSublist();

            foreach (var name in names)
            {
                nameData.AddValue(string.Empty, name);
            }
            return(nameData);
        }
Exemplo n.º 8
0
        public override PdxSublist GetCountryFile()
        {
            var data = new PdxSublist(null, FileName + ".txt");

            if (MapColour == null)
            {
                MapColour = title.Colour ?? new Colour(255, 255, 255);
            }
            var colour = new PdxSublist(null, "color");

            colour.AddValue(MapColour.Red.ToString());
            colour.AddValue(MapColour.Green.ToString());
            colour.AddValue(MapColour.Blue.ToString());

            data.AddSublist("color", colour);
            //TODO: Graphical culture
            data.AddValue("graphical_culture", "westerngfx");
            return(data);
        }
Exemplo n.º 9
0
        internal PdxSublist GetData(Vic2Province province)
        {
            var data = new PdxSublist(null, province.ProvID.ToString());

            foreach (var pop in Pops)
            {
                var job = pop.Job;
                if (province.Factories.Count == 0 && (job == "craftsmen" || job == "clerks"))
                {
                    job = "artisans";
                }
                var popData = new PdxSublist(data, job);
                popData.AddValue("culture", pop.Culture);
                popData.AddValue("religion", pop.Religion);
                popData.AddValue("size", pop.Size.ToString());
                data.AddSublist(pop.Job, popData);
            }
            return(data);
        }
Exemplo n.º 10
0
        public PdxSublist GetGroupData()
        {
            var data = new PdxSublist(null, Name);

            data.AddValue("graphical_culture", GraphicalCulture);
            Cultures.ForEach((culture) =>
            {
                data.AddSublist(culture.Name, culture.GetCultureData());
            });
            return(data);
        }
Exemplo n.º 11
0
        public PdxSublist GetCommonCountryFile()
        {
            var data = new PdxSublist(null);

            var colour = new PdxSublist(data, "color");

            colour.AddValue(MapColour.Red.ToString());
            colour.AddValue(MapColour.Green.ToString());
            colour.AddValue(MapColour.Blue.ToString());
            data.AddSublist("color", colour);

            data.AddValue("graphical_culture", GraphicalCulture);

            foreach (var party in PoliticalParties)
            {
                data.AddSublist("party", party.GetData(data));
            }

            return(data);
        }
Exemplo n.º 12
0
        private void FixBookmarks()
        {
            //var bookmarkData = PdxSublist.ReadFile(Path.Combine(VIC2_DIR, @"common\bookmarks.txt"));


            var fixedData    = new PdxSublist();
            var bookmarkData = new PdxSublist();

            bookmarkData.AddValue("name", "GC_NAME");
            bookmarkData.AddValue("desc", "GC_DESC");
            bookmarkData.AddValue("date", StartDate);
            bookmarkData.AddValue("cameraX", 2950.ToString());
            bookmarkData.AddValue("cameraY", 1550.ToString());

            fixedData.AddSublist("bookmark", bookmarkData);

            using (var file = new StreamWriter(Path.Combine(OUTPUT, @"common\bookmarks.txt")))
            {
                fixedData.WriteToFile(file);
            }
        }
Exemplo n.º 13
0
        public PdxSublist GetProvinceData()
        {
            var file = new PdxSublist(null);

            if (Owner != null)
            {
                file.AddValue("owner", Owner.CountryTag);
                file.AddValue("controller", Owner.CountryTag);
            }
            if (Cores != null)
            {
                foreach (var core in Cores)
                {
                    file.AddValue("add_core", core.CountryTag);
                }
            }
            file.AddValue("trade_goods", TradeGoods);
            file.AddValue("fort", FortLevel.ToString());
            file.AddValue("railroad", RailroadLevel.ToString());
            foreach (var factory in Factories)
            {
                var factoryData = new PdxSublist();

                factoryData.AddValue("level", "1");
                factoryData.AddValue("building", factory);
                factoryData.AddValue("upgrade", "yes");

                file.AddSublist("state_building", factoryData);
            }


            return(file);
        }
Exemplo n.º 14
0
        public PdxSublist GetHistoryCountryFile(Vic2World world)
        {
            var data = new PdxSublist(null);

            data.AddValue("capital", Capital.ToString());
            data.AddValue("primary_culture", PrimaryCulture);
            AcceptedCultures.ForEach(c => data.AddValue("culture", c));
            data.AddValue("religion", Religion);
            data.AddValue("government", Government);
            data.AddValue("plurality", Plurality.ToString());
            if (NationalValues != null)
            {
                data.AddValue("nationalvalue", NationalValues.Value);
            }
            data.AddValue("literacy", Literacy.ToString());
            data.AddValue("civilized", IsCivilised ? "yes" : "no");

            data.AddValue("prestige", Prestige.ToString());
            if (Reforms != null)
            {
                Reforms.AddData(data);
            }
            if (Technologies != null)
            {
                Technologies.ForEach(t => data.AddValue(t, "1"));
            }
            data.AddValue("consciousness", Consciousness.ToString());
            // todo
            data.AddValue("nonstate_consciousness", (Consciousness / 3).ToString());
            if (RulingParty != null)
            {
                data.AddValue("ruling_party", RulingParty.Name);
            }
            data.AddDate("last_election", LastElection);
            if (UpperHouse != null)
            {
                data.AddSublist("upper_house", UpperHouse.GetData(data));
            }
            if (TechSchools != null)
            {
                data.AddValue("schools", Enum.GetName(typeof(TechSchool), TechSchools.TechSchool));
            }

            if (FemaleLeaders && (Reforms.vote_franschise == vote_franschise.universal_voting || Reforms.vote_franschise == vote_franschise.universal_weighted_voting))
            {
                var entry = new PdxSublist();
                entry.AddValue("decision", "enact_female_suffrage");

                data.AddSublist(world.StartDate, entry);
            }
            return(data);
        }
Exemplo n.º 15
0
        public PdxSublist GetData()
        {
            var data = new PdxSublist(null, Name);

            data.AddValue("leader", Leader);
            if (Unit != null)
            {
                data.AddValue("unit", Unit);
            }

            foreach (var cul in Cultures)
            {
                data.AddSublist(cul.Name, cul.GetData());
            }

            if (Union != null)
            {
                data.AddValue("union", Union.CountryTag);
            }

            return(data);
        }
Exemplo n.º 16
0
        public override void AddDiplomacy(PdxSublist data)
        {
            //vassals
            foreach (var sub in Subjects)
            {
                var subData = new PdxSublist();
                subData.AddValue("first", CountryTag);
                subData.AddValue("second", sub);

                subData.AddValue("start_date", World.StartDate);
                subData.AddValue("end_date", "1821.1.1");

                data.AddSublist("vassal", subData);
            }

            //HRE
            if (holder?.PrimaryTitle == World.HRE)
            {
                var hreData = new PdxSublist();
                hreData.AddValue("emperor", CountryTag);
                data.AddSublist(World.StartDate, hreData);
            }
        }
Exemplo n.º 17
0
        public PdxSublist GetData()
        {
            var data = new PdxSublist();


            var colourData = new PdxSublist();

            colourData.AddValue((Colour.Red / 255f).ToString());
            colourData.AddValue((Colour.Green / 255f).ToString());
            colourData.AddValue((Colour.Blue / 255f).ToString());
            data.AddSublist("color", colourData);

            data.AddSublist("first_names", GetNameData(FirstNames));

            data.AddSublist("last_names", GetNameData(LastNames));


            if (PrimaryNation != null)
            {
                data.AddValue("primary", PrimaryNation.CountryTag);
            }
            return(data);
        }
Exemplo n.º 18
0
        internal PdxSublist GetData(PdxSublist parent)
        {
            var data = new PdxSublist(parent, "upper_house");

            data.AddValue("liberal", Liberal.ToString());
            data.AddValue("conservative", Conservative.ToString());
            data.AddValue("reactionary", Reactionary.ToString());
            data.AddValue("fascist", "0");
            data.AddValue("communist", "0");
            data.AddValue("anarcho_liberal", "0");
            data.AddValue("socialist", "0");
            return(data);
        }
Exemplo n.º 19
0
        public PdxSublist GetCultureData()
        {
            var data = new PdxSublist(null, Name);

            if (PrimaryNation != null)
            {
                data.AddValue("primary", PrimaryNation);
            }



            data.AddSublist("male_names", PdxSublist.FromList(MaleNames));


            data.AddSublist("female_names", PdxSublist.FromList(FemaleNames));
            if (DynastyNames.Count > 0)
            {
                data.AddSublist("dynasty_names", PdxSublist.FromList(DynastyNames));
            }



            return(data);
        }
Exemplo n.º 20
0
        public override PdxSublist GetHistoryFile()
        {
            var data = new PdxSublist(null, FileName);

            foreach (var core in Cores)
            {
                if (core != null)
                {
                    data.KeyValuePairs.Add("add_core", core.CountryTag);
                }
            }
            if (Owner != null)
            {
                data.KeyValuePairs["owner"] = Owner.CountryTag;
            }
            if (ControllerTag != null)
            {
                data.AddValue("controller", ControllerTag);
            }
            if (Culture != null)
            {
                data.KeyValuePairs["culture"] = Culture;
            }
            if (Religion != null)
            {
                data.KeyValuePairs["religion"] = Religion;
            }
            data.BoolValues["hre"] = new List <bool>();
            data.BoolValues["hre"].Add(IsHRE);

            data.AddValue("base_tax", BaseTax.ToString());
            data.AddValue("base_production", BaseProduction.ToString());
            data.AddValue("base_manpower", BaseManpower.ToString());
            //todo: trade goods

            data.AddValue("is_city", (Owner != null) ? "yes" : "no");

            if (LatentTradeGoods.Count != 0)
            {
                var latentGoods = new PdxSublist();
                LatentTradeGoods.ForEach((good) =>
                {
                    latentGoods.AddValue(good);
                });

                data.AddSublist("latent_trade_goods", latentGoods);
            }

            if (TradeGood != null)
            {
                data.AddValue("trade_goods", TradeGood);
            }

            if (CentreOfTradeWeight >= 1)
            {
                data.AddValue("center_of_trade", ((int)Math.Min(3, CentreOfTradeWeight)).ToString());
            }

            foreach (var mod in Modifiers)
            {
                var modSub = new PdxSublist();
                modSub.AddValue("name", mod);
                modSub.AddValue("duration", "-1");

                data.AddSublist("add_permanent_province_modifier", modSub);
            }

            //TODO: something more sophisticated
            data.AddValue("discovered_by", "western");
            data.AddValue("discovered_by", "muslim");
            data.AddValue("discovered_by", "ottoman");
            data.AddValue("discovered_by", "eastern");
            data.AddValue("discovered_by", "indian");
            data.AddValue("discovered_by", "sub_saharan");

            if (Revolt != null && RevoltArmy != -1)
            {
                var revolt = new PdxSublist();
                revolt.AddValue("type", Revolt);
                revolt.AddValue("size", RevoltArmy.ToString());
                if (RevoltLeader != null)
                {
                    revolt.AddValue("leader", RevoltLeader);
                }

                data.AddSublist("revolt", revolt);
            }
            return(data);
        }
Exemplo n.º 21
0
        public PdxSublist GetNationalIdeas()
        {
            //transfer holding effects into main effects
            TransferDict(IdeaWeightsHolding, IdeaWeights, 1f / NumHoldings);
            TransferDict(IdeaLevelsHolding, IdeaLevels, 1f / NumHoldings);

            TransferDict(IdeaWeightsProvince, IdeaWeights, 1f / NumProvinces);
            TransferDict(IdeaLevelsProvince, IdeaLevels, 1f / NumProvinces);

            var data = new PdxSublist();

            var trigger = new PdxSublist();

            trigger.KeyValuePairs.Add("tag", CountryTag);

            data.AddSublist("trigger", trigger);
            data.AddValue("free", "yes");
            var ideaCandidates = IdeaWeights.GroupBy(idea => idea.Key.Group).Select(ig => new NationalIdeaGroupScore(ig.Key, ig.Sum(id => id.Value) / ig.Count())).OrderByDescending(id => id.Score).ToList();//.ThenByDescending(id => IdeaLevels[id.Key]);

            NationalIdeas = new List <NationalIdea>();
            while (NationalIdeas.Count < 10)
            {
                var firstGroup = ideaCandidates.First();
                var groupIdeas = firstGroup.Group.Ideas.OrderByDescending(id => IdeaWeights[id]).ThenByDescending(id => IdeaLevels[id]).ToList();
                var index      = 0;
                for (index = 0; index < groupIdeas.Count && NationalIdeas.Contains(groupIdeas[index]); index++)
                {
                    ;                                                                                             // if it already exists, skip this one
                }
                if (index < groupIdeas.Count)
                {
                    NationalIdeas.Add(groupIdeas[index]);
                }
                else
                {
                    firstGroup.Score = -1000;
                }
                firstGroup.Score /= 2;
                ideaCandidates    = ideaCandidates.OrderByDescending(ic => ic.Score).ToList();
            }
            //NationalIdeas = ideaCandidates.Take(10).Select(id => id.Key).ToList();


            //tradition
            var traditionData = new PdxSublist();

            TransferEffects(traditionData, NationalIdeas[0]);
            TransferEffects(traditionData, NationalIdeas[1]);

            data.AddSublist($"start", traditionData);
            //ideas
            for (var i = 2; i < NationalIdeas.Count - 1; i++)
            {
                var idea     = NationalIdeas[i];
                var ideaData = new PdxSublist();

                var level = TransferEffects(ideaData, idea);

                data.AddSublist($"{idea.Name}_{level}", ideaData);
            }

            //ambition
            var ambitionData = new PdxSublist();

            TransferEffects(ambitionData, NationalIdeas.Last());

            data.AddSublist($"bonus", ambitionData);

            if (title.Name == "k_dyn_8040718")
            {
                foreach (var idea in NationalIdeas)
                {
                    var level = Math.Max(0, Math.Min((int)IdeaLevels[idea], idea.Effects.Count - 1));
                    Console.WriteLine($"{idea.Name} x{level} ({IdeaWeights[idea]})");
                }

                Console.WriteLine();
            }
            return(data);
        }