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); }
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); }
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); }
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); }
internal void AddData(PdxSublist data) { foreach (var reform in typeof(Reforms).GetProperties()) { data.AddValue(reform.Name, Enum.GetName(reform.PropertyType, reform.GetValue(this))); } }
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); }
private PdxSublist GetNameData(List <string> names) { var nameData = new PdxSublist(); foreach (var name in names) { nameData.AddValue(string.Empty, name); } return(nameData); }
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); }
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); }
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); }
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); }
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); } }
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); }
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); }
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); }
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); } }
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); }
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); }
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); }
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); }
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); }