private void CalcEffects(Vic2World vic2World, int siblingProvinces, List <Eu4ProvinceBase> eu4Provinces) { var factories = new Dictionary <string, float>(); var baseFactories = 0f; //Factories = new HashSet<string>(); IterateEffects(vic2World, vic2World.ProvinceEffects, siblingProvinces, eu4Provinces, (effects, fromProvince) => { CalcPopEffects(effects, fromProvince); baseFactories += CalcFactoryEffects(effects, fromProvince, factories); if (effects.ContainsKey("railroad")) { RailroadLevel += effects["railroad"]; } if (effects.ContainsKey("fort")) { RailroadLevel += effects["fort"]; } }); IterateEffects(vic2World, vic2World.ProvinceEffects, siblingProvinces, eu4Provinces, (effects, fromProvince) => { CalcRelativePopEffects(effects, fromProvince); }); FinaliseFactoryEffects(factories, baseFactories); //on country }
public Vic2Culture(string eu4Name, Vic2World vic2World, string vic2Name, Vic2CultureGroup group, string prefix, bool neoCulture = false) { Group = group; Name = vic2Name; World = vic2World; eu4Cultures = new List <Eu4Culture>(); eu4Cultures.Add(vic2World.Eu4Save.Cultures[eu4Name]); var display = string.Empty; if (isNeoCulture) { var culture = vic2World.Cultures[vic2World.V2Mapper.GetV2Culture(eu4Cultures[0].Name)]; display = culture.DisplayName; } else { display = eu4Cultures[0].DisplayName; } DisplayName = (string.IsNullOrEmpty(prefix) ? string.Empty : (prefix + "-")) + display; FirstNames = eu4Cultures[0].MaleNames.ToList(); isNeoCulture = neoCulture; LastNames = eu4Cultures[0].DynastyNames; if (vic2World.PrimaryNations) { SetupPrimaryNation(vic2World); } }
public PoliticalParty(string name, Ideology ideology, Vic2World world) { Name = name; Ideology = ideology; StartDate = new DateTime(world.StartYear - 5, 1, 1); EndDate = new DateTime(1940, 1, 1); }
public Vic2CultureGroup(string name, Vic2World world) { World = world; Name = name; Cultures = new List <Vic2Culture>(); // todo: better default values (dynamic?) Leader = "european"; Unit = "EuropeanGC"; }
public Vic2Culture AddCulture(string eu4Culture, Vic2World vic2World, string vic2Name = null, string prefix = "", bool neoCulture = false) { if (vic2Name == "british_north_america") { Console.WriteLine(); } var culture = new Vic2Culture(eu4Culture, vic2World, vic2Name, this, prefix, neoCulture); Cultures.Add(culture); return(culture); }
public void SetupUnionNation(Vic2World world) { if (world.CultureNations.GetSublist("union").KeyValuePairs.ContainsKey(Name)) { var tag = world.CultureNations.GetSublist("union").GetString(Name); Union = world.Vic2Countries.Find(c => c.CountryTag == tag) ?? new Vic2Country(world, tag, this); } else if (unionKey != null) { Union = new Vic2Country(world, unionKey, this); } }
private void IterateEffects(Vic2World vic2World, PdxSublist provEffects, int siblingProvinces, List <Eu4ProvinceBase> eu4Provinces, Action <Dictionary <string, float>, Eu4ProvinceBase> callback) { foreach (var prov in eu4Provinces) { Action <Dictionary <string, float> > newCallback = (Dictionary <string, float> effects) => { callback(effects, prov); }; // development vic2World.ValueEffect(provEffects, newCallback, "base_tax", prov.BaseTax / (float)siblingProvinces); vic2World.ValueEffect(provEffects, newCallback, "base_production", prov.BaseProduction / (float)siblingProvinces); vic2World.ValueEffect(provEffects, newCallback, "base_manpower", prov.BaseManpower / (float)siblingProvinces); // total dev vic2World.ValueEffect(provEffects, newCallback, "development", (prov.BaseTax + prov.BaseProduction + prov.BaseManpower) / (float)siblingProvinces); // estates if (prov.Estate != null && provEffects.Sublists["estate"].Sublists.ContainsKey(prov.Estate)) { newCallback(provEffects.Sublists["estate"].Sublists[prov.Estate].FloatValues.ToDictionary(effect => effect.Key, effect => effect.Value.Sum() / eu4Provinces.Count)); } // province flags if (provEffects.Sublists.ContainsKey("province_flags") && prov.Flags != null) { foreach (var flag in prov.Flags) { if (provEffects.Sublists["province_flags"].Sublists.ContainsKey(flag)) { newCallback(provEffects.Sublists["province_flags"].Sublists[flag].FloatValues.ToDictionary(effect => effect.Key, effect => effect.Value.Sum() / eu4Provinces.Count)); } } } // buildings if (provEffects.Sublists.ContainsKey("buildings")) { foreach (var build in prov.Buildings) { if (provEffects.Sublists["buildings"].Sublists.ContainsKey(build)) { newCallback(provEffects.Sublists["buildings"].Sublists[build].FloatValues.ToDictionary(effect => effect.Key, effect => effect.Value.Sum() / eu4Provinces.Count)); } } } // from owner country if (prov.Owner != null && provEffects.Sublists.ContainsKey("owner")) { Vic2Country.IterateCountryEffects(vic2World, prov.Owner, provEffects.Sublists["owner"], (effects) => { callback(effects, null); }); } } }
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 PopPool(Vic2World world, Vic2Province province) { World = world; pops = new Dictionary <string, Pop>(); this.province = province; //culture = new Dictionary<Eu4Province, ValueSet<string>>(); //religion = new Dictionary<Eu4Province, ValueSet<string>>(); //foreach (var prov in eu4Provinces) //{ // culture[prov] = HistoryEffect(prov.CulturalHistory); // religion[prov] = HistoryEffect(prov.ReligiousHistory); //} }
static void Main(string[] args) { var keepStartDate = !args.Contains("1836"); //TGAWriter.WriteTricolourTGA("test.tga", new Colour(0, 85, 164), new Colour(255, 255, 255), new Colour(239, 65, 53)); var save = new Eu4Save("Grindia.eu4", @"C:\Users\Blake\Documents\Paradox Interactive\Europa Universalis IV\mod\converter_test"); //Console.WriteLine(save.RootList); var V2World = new Vic2World(save, keepStartDate); Console.Read(); }
private void DoSetup(int provID, PdxSublist defaultProvince, Vic2World vic2World, int siblingProvinces, List <Eu4ProvinceBase> eu4Provinces) { World = vic2World; Subfolder = Path.GetFileName(Path.GetDirectoryName(defaultProvince.Key)); FileName = Path.GetFileName(defaultProvince.Key); Eu4Provinces = eu4Provinces; ProvID = provID; TradeGoods = defaultProvince.GetString("trade_goods"); LifeRating = (int)defaultProvince.GetFloat("life_rating"); Pops = new PopPool(vic2World, this); Factories = new HashSet <string>(); SiblingProvinces = siblingProvinces; if (ProvID == 222) { Console.WriteLine(); } var mapPos = vic2World.Vic2ProvPositions[ProvID.ToString()]; var mapX = mapPos.Sum(p => p.X) / mapPos.Count; var mapY = mapPos.Sum(p => p.Y) / mapPos.Count; MapPosition = new Point(mapX, mapY); if (eu4Provinces.Count > 0) { // most common owner Owner = vic2World.GetCountry(eu4Provinces.GroupBy(p => p.Owner).OrderByDescending(grp => grp.Count()) .Select(grp => grp.Key).First()); if (Owner?.Eu4Country?.IsColonialNation ?? false) { Owner = vic2World.GetCountry(Owner.Eu4Country.Overlord); } if (Owner != null) { Owner.NumProvinces++; } // all countries that have full cores in any of the eu4 counterparts gets cores here Cores = eu4Provinces.Where(p => p.IsState).SelectMany(p => p.Cores).Select(c => vic2World.GetCountry(c)).Distinct().ToList(); //Cores = new List<Vic2Country>(); var r = eu4Provinces.GroupBy(p => p.Religion).OrderByDescending(g => g.Sum(p => p.Development)).First().First().Religion; if (r != "no_religion") { MajorityReligion = World.Eu4Save.Religions[r]; } FortLevel = eu4Provinces.Any(p => p.FortLevel > 6) ? 1 : 0; } else { Pops.ReadData(vic2World.PopData.Sublists[provID.ToString()]); } }
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 Vic2Culture(Vic2World world, PdxSublist data, Vic2CultureGroup group) { World = world; Group = group; Name = data.Key; DisplayName = world.VanillaLocalisation[Name]; FirstNames = data.GetSublist("first_names").Values; LastNames = data.GetSublist("last_names").Values; Colour = new Colour(data.GetSublist("color").FloatValues[string.Empty]); eu4Cultures = world.V2Mapper.Culture.Where(c => c.Value == Name).Select(s => world.Eu4Save.Cultures.ContainsKey(s.Key) ? world.Eu4Save.Cultures[s.Key] : null).Where(s => s != null).ToList(); if (data.KeyValuePairs.ContainsKey("primary")) { primaryKey = data.GetString("primary"); } if (world.PrimaryNations) { SetupPrimaryNation(world); } }
public Mapper(Vic2World vic2World) //string mappingPath) { World = vic2World; //instance = this; Country = Mappings("country_mappings.txt"); Culture = Mappings("cultureMap.txt"); NeoCultures = new Dictionary <string, string>(); Religion = Mappings("religionMap.txt"); var gov = MappingsFile("governmentMapping.txt"); Government = Mappings(gov); Monarchies = new List <Monarchy>(); var monarchies = gov.GetSublist("monarchies"); monarchies.ForEachSublist(monarchy => { Monarchies.Add(new Monarchy(monarchy.Value)); }); }
public Vic2Country(Vic2World vic2World, Eu4CountryBase eu4Country) { World = vic2World; CountryTag = vic2World.V2Mapper.GetV2Country(eu4Country.CountryTag); IsVic2Country = !vic2World.ExistingCountries.Add(CountryTag); Eu4Country = eu4Country; MapColour = eu4Country.MapColour; GraphicalCulture = "Generic"; DisplayNoun = eu4Country.DisplayNoun; DisplayAdj = eu4Country.DisplayAdj; PrimaryCulture = vic2World.V2Mapper.GetV2Culture(eu4Country.PrimaryCulture); AcceptedCultures = eu4Country.AcceptedCultures.ConvertAll(c => vic2World.V2Mapper.GetV2Culture(c)); Religion = vic2World.V2Mapper.GetV2Religion(eu4Country.Religion); Government = vic2World.V2Mapper.GetV2Government(eu4Country); Capital = vic2World.GetBestVic2ProvinceMatch(eu4Country.Capital); //base literacy Literacy = 0.1f; IsCivilised = eu4Country.Institutions.Values.All(b => b); // -100 - 100 scaled to 0 - 100 //Prestige = (eu4Country.Prestige + 100) / 2; Prestige = (100 * eu4Country.GreatPowerScore) / eu4Country.World.GreatestPower.GreatPowerScore; LastElection = eu4Country.LastElection; CalcEffects(vic2World); // TODO: make this less of a hack if (Government == "absolute_monarchy" && Reforms.vote_franschise != vote_franschise.none_voting) { Government = "prussian_constitutionalism"; } if (Government == null) { Console.WriteLine("Uh oh"); } //RulingParty = PoliticalParties.First(p => p.Ideology == UpperHouse.GetMode()); }
public Vic2DiploRelation(Eu4DiploRelation eu4, Vic2World world) { World = world; Type = V2Relation.invalid; switch (eu4.Type) { case Relation.alliance: Type = V2Relation.alliance; break; case Relation.dependency: if (eu4.SubjectType == "vassal") { Type = V2Relation.vassal; } break; } First = world.GetCountry(eu4.First); Second = world.GetCountry(eu4.Second); }
private void FinalisePoliticalParties(Vic2World vic2World, IdeologyModifier baseModifier) { if (Eu4Country?.CountryTag == "Z16") { Console.WriteLine("Me!"); } foreach (var ideology in vic2World.IdeologyModifiers) { var polParty = new PoliticalParty(CountryTag + "_" + Enum.GetName(typeof(Ideology), ideology.Key), ideology.Key, vic2World); var totalModifier = baseModifier + ideology.Value; foreach (var pol in totalModifier.Policies) { polParty.SetIssue(pol.Key, pol.Value); } PoliticalParties.Add(polParty); if (ideology.Key == UpperHouse?.GetMode()) { RulingParty = polParty; } } }
private void CalcEffects(Vic2World vic2World) { NationalValues = new NV(); TechSchools = new TechSchoolValues(); Reforms = new Reforms(); var reforms = new Dictionary <Type, float>(); UpperHouse = new UHouse(); PoliticalParties = new List <PoliticalParty>(); BasePartyModifier = new IdeologyModifier(); Technologies = new List <string>(); var techInvestment = new Dictionary <string, float>(); var femaleLeaders = 0f; foreach (var techCategory in vic2World.TechOrder.Keys) { techInvestment.Add(techCategory, 0); } IterateEffects(vic2World, (Dictionary <string, float> effects) => { CalcNationalValues(effects); CalcTechSchool(effects); CalcReforms(effects, reforms); CalcUpperHouse(effects); CalcPoliticalParties(effects, BasePartyModifier); CalcLiteracy(effects); CalcConsciousness(effects); CalcMilitancy(effects); CalcTechnology(effects, techInvestment); femaleLeaders = CalcFemaleLeaders(effects, femaleLeaders); }); FinaliseReforms(reforms); FinalisePoliticalParties(vic2World, BasePartyModifier); FinaliseTechnology(techInvestment, vic2World.TechOrder); FinaliseFemaleLeaders(femaleLeaders); }
private void IterateEffects(Vic2World vic2World, Action <Dictionary <string, float> > callback) { IterateCountryEffects(vic2World, Eu4Country, vic2World.CountryEffects, callback); }
private Vic2Country(Vic2World world, string tag, IEnumerable <Vic2Country> cultureNations, Vic2Culture primaryCulture) { World = world; CountryTag = tag; IsVic2Country = !world.ExistingCountries.Add(tag); IsCultureNation = true; if (!IsVic2Country) { Console.WriteLine($"Creating nation for {primaryCulture.DisplayName} culture... ({primaryCulture.Name})"); GraphicalCulture = "Generic"; world.Vic2Countries.Add(this); //setup Capital = 1; PrimaryCulture = primaryCulture.Name; // Name generator DisplayNoun = world.LocalisationHelper.GetSublist("culture_nation").GetString("noun").Replace("%CULTURE%", primaryCulture.DisplayName).Replace("\"", string.Empty); DisplayAdj = world.LocalisationHelper.GetSublist("culture_nation").GetString("adj").Replace("%CULTURE%", primaryCulture.DisplayName).Replace("\"", string.Empty); if (primaryCulture.DisplayName.Last() == 'n' && "aeiu".Contains(primaryCulture.DisplayName[primaryCulture.DisplayName.Length - 2])) { DisplayNoun = primaryCulture.DisplayName.Substring(0, primaryCulture.DisplayName.Length - 1); //DisplayNoun = world.LocalisationHelper.GetSublist("culture_nation").GetString("noun").Replace("%CULTURE%", primaryCulture.DisplayName).Replace("\"", string.Empty); } else if (primaryCulture.DisplayName.Last() == 'n' && primaryCulture.DisplayName[primaryCulture.DisplayName.Length - 2] == 'o') { //TODO: make this less of a hack if (primaryCulture.DisplayName.EndsWith("eton")) { DisplayNoun = primaryCulture.DisplayName.Substring(0, primaryCulture.DisplayName.Length - 4) + "ittany"; } else { DisplayNoun = primaryCulture.DisplayName + 'y'; } DisplayAdj = primaryCulture.DisplayName; } else if (primaryCulture.DisplayName.Last() == 'a') { DisplayNoun = primaryCulture.DisplayName; DisplayAdj = primaryCulture.DisplayName + 'n'; } else if (primaryCulture.DisplayName.Last() == 'i') { DisplayNoun = primaryCulture.DisplayName + 'a'; } else if ("ou".Contains(primaryCulture.DisplayName.Last())) { DisplayNoun = primaryCulture.DisplayName + "ria"; } else if (primaryCulture.DisplayName.EndsWith("ese")) { DisplayNoun = primaryCulture.DisplayName.Substring(0, primaryCulture.DisplayName.Length - 3); } else if (primaryCulture.DisplayName.Last() == 'e') { DisplayNoun = primaryCulture.DisplayName; } else if (primaryCulture.DisplayName.Last() == 'r' && "aeiou".Contains(primaryCulture.DisplayName[primaryCulture.DisplayName.Length - 2])) { DisplayNoun = primaryCulture.DisplayName + "ia"; } AcceptedCultures = new List <string>(); PoliticalParties = new List <PoliticalParty>(); BasePartyModifier = new IdeologyModifier(); foreach (var nation in cultureNations) { BasePartyModifier += nation.BasePartyModifier; } FinalisePoliticalParties(world, BasePartyModifier); MapColour = primaryCulture.Colour; // the most common religion out of nations with that culture //Religion = cultureNations.GroupBy(c => c.Religion).Select(c => new { // Name = c.Key, Count = c.Count() //}).OrderByDescending(x => x.Count).Select(x => x.Name).First(); // ////most common government type //Government = cultureNations.GroupBy(c => c.Government).Select(c => new { // Name = c.Key, // Count = c.Count() //}).OrderByDescending(x => x.Count).Select(x => x.Name).First(); } }
public void SetupPrimaryNation(Vic2World world) { if (Name == "british_north_america") { Console.WriteLine(); } //if(isNeoCulture) //{ // return; //} if (world.CultureNations.GetSublist("except").Values.Contains(Name)) { // this culture is blacklisted return; } if (world.CultureNations.GetSublist("primary").KeyValuePairs.ContainsKey(Name)) { var tag = world.CultureNations.GetSublist("primary").GetString(Name); PrimaryNation = world.Vic2Countries.Find(c => c.CountryTag == tag) ?? new Vic2Country(world, tag, this); } else if (primaryKey != null) { PrimaryNation = world.Vic2Countries.Find(c => c.CountryTag == primaryKey) ?? new Vic2Country(world, primaryKey, this); } else if (eu4Cultures.Count == 1 && (eu4Cultures[0].PrimaryNation != null || isNeoCulture)) { if (isNeoCulture) { //find colonial nation matching the culture-region PrimaryNation = world.Vic2Countries.Where(c => (c.Eu4Country?.Overlord ?? string.Empty) == PrimaryNation?.Eu4Country?.CountryTag && c.Eu4Country.IsColonialNation && world.Eu4Save.Continents.Where(cul => cul.Value == eu4Cultures[0].Continent && cul.Value.Provinces.Contains(c.Capital)).Count() != 0).FirstOrDefault(); } else if (eu4Cultures[0].PrimaryNation != null) { PrimaryNation = world.GetCountry(eu4Cultures[0].PrimaryNation) ?? new Vic2Country(world, world.V2Mapper.GetV2Country(eu4Cultures[0].PrimaryNation), this); } } else if (Group.Union == null && !isNeoCulture) { var tag = 'P' + world.NumCultureNations.ToString("D2"); world.NumCultureNations++; PrimaryNation = new Vic2Country(world, tag, this); } if (PrimaryNation?.FemaleLeaders ?? false) { foreach (var eu4Culture in eu4Cultures) { FirstNames.AddRange(eu4Culture.FemaleNames); } } if (Colour == null) { Colour = PrimaryNation?.MapColour; if (Colour == null) { byte r = 0; byte g = 0; byte b = 240; byte threshhold = 8; while (!isUnique(r, g, b, (byte)(threshhold * 4))) { r += (byte)(threshhold * 2); if (r < threshhold * 2) { g += (byte)(threshhold * 4); if (g < threshhold * 4) { b += (byte)(threshhold * 3); } } } Colour = new Colour(r, g, b); } if (PrimaryNation != null && PrimaryNation.MapColour == null) { PrimaryNation.MapColour = Colour; } } }
public Vic2Country(Vic2World world, string tag, Vic2Culture culture) : this(world, tag, world.Vic2Countries.Where(c => c.PrimaryCulture == culture.Name), culture) { }
public Vic2Country(Vic2World world, string tag, Vic2CultureGroup cultureGroup) : this(world, tag, world.Vic2Countries.Where(c => cultureGroup.Cultures.Find(cul => c.PrimaryCulture == cul.Name) != null), cultureGroup.Cultures.First()) { }
public Vic2CultureGroup(Eu4CultureGroup group, Vic2World world) : this(group.Name, world) { Eu4Group = group; DisplayName = group.DisplayName; }
public static void IterateCountryEffects(Vic2World vic2World, Eu4CountryBase country, PdxSublist effects, Action <Dictionary <string, float> > callback) { if (effects.Sublists.ContainsKey("ideas")) { //idea groups foreach (var idea in country.Ideas) { if (effects.GetSublist("ideas").Sublists.ContainsKey(idea.Key)) { callback(effects.GetSublist("ideas").GetSublist(idea.Key).FloatValues.ToDictionary(effect => effect.Key, effect => (idea.Value + 1) * effect.Value.Sum())); } } } // country flags if (effects.Sublists.ContainsKey("country_flags")) { foreach (var flag in country.Flags) { if (effects.GetSublist("country_flags").Sublists.ContainsKey(flag)) { callback(effects.GetSublist("country_flags").GetSublist(flag).FloatValues.ToDictionary(effect => effect.Key, effect => effect.Value.Sum())); } } } // religion if (effects.Sublists.ContainsKey("religion")) { if (effects.GetSublist("religion").Sublists.ContainsKey(country.Religion)) { callback(effects.GetSublist("religion").GetSublist(country.Religion).FloatValues.ToDictionary(effect => effect.Key, effect => effect.Value.Sum())); //newCallback(effects.GetSublist("religion").GetSublist(country.Religion), 1); } } // government if (effects.Sublists.ContainsKey("government")) { if (effects.GetSublist("government").Sublists.ContainsKey(country.Government)) { callback(effects.GetSublist("government").GetSublist(country.Government).FloatValues.ToDictionary(effect => effect.Key, effect => effect.Value.Sum())); //newCallback(effects.GetSublist("government").GetSublist(country.Government), 1); //callback(effects.Sublists["government"].Sublists[country.Government].KeyValuePairs.ToDictionary(effect => effect.Key, effect => float.Parse(effect.Value))); } } // policies if (effects.Sublists.ContainsKey("policies")) { foreach (var policy in country.Policies) { if (effects.GetSublist("policies").Sublists.ContainsKey(policy)) { callback(effects.GetSublist("policies").GetSublist(policy).FloatValues.ToDictionary(effect => effect.Key, effect => effect.Value.Sum())); //newCallback(effects.GetSublist("policies").GetSublist(policy), 1); //callback(effects.Sublists["policies"].Sublists[policy].KeyValuePairs.ToDictionary(effect => effect.Key, effect => float.Parse(effect.Value))); } } } // values vic2World.ValueEffect(effects, callback, "mercantilism", country.Mercantilism); vic2World.ValueEffect(effects, callback, "legitimacy", country.Legitimacy); // - 50); vic2World.ValueEffect(effects, callback, "republican_tradition", country.RepublicanTradition); // - 50); vic2World.ValueEffect(effects, callback, "stability", country.Stability); vic2World.ValueEffect(effects, callback, "absolutism", country.Absolutism); // tech vic2World.ValueEffect(effects, callback, "adm_tech", country.AdmTech); vic2World.ValueEffect(effects, callback, "dip_tech", country.DipTech); vic2World.ValueEffect(effects, callback, "mil_tech", country.MilTech); //institutions if (effects.Sublists.ContainsKey("institutions")) { foreach (var institution in country.Institutions) { var key = institution.Value ? institution.Key : ("not_" + institution.Key); if (effects.Sublists["institutions"].Sublists.ContainsKey(key)) { callback(effects.GetSublist("institutions").GetSublist(key).FloatValues.ToDictionary(effect => effect.Key, effect => effect.Value.Sum())); } } } }
/// <summary> /// /// </summary> /// <param name="provID">ID of the province</param> /// <param name="defaultProvince">The province's default history file</param> /// <param name="vic2World">The world object the province exists in</param> /// <param name="siblingProvinces">The number of other vic2 provinces that eu4Provinces has been mapped to</param> /// <param name="eu4Provinces">List of eu4 provinces mapped to this province</param> public Vic2Province(int provID, PdxSublist defaultProvince, Vic2World vic2World, int siblingProvinces, List <Eu4ProvinceBase> eu4Provinces) { DoSetup(provID, defaultProvince, vic2World, siblingProvinces, eu4Provinces); }
public void AddLocalisation(Dictionary <string, string> localisation, PdxSublist localeHelper, Vic2World world) { if (IsCultureNation) { localisation.Add($"form_{PrimaryCulture}_nation_title", $"Unite the {world.Cultures[PrimaryCulture].DisplayName} People"); localisation.Add($"form_{PrimaryCulture}_nation_desc", $"Since time immemorial, the {world.Cultures[PrimaryCulture].DisplayName} people have been split among many nation states. In the modern days of nationalism, we need our own country to fulfil our desire for self-determination."); } if (!IsVic2Country) { localisation.Add(CountryTag, DisplayNoun); localisation.Add($"{CountryTag}_ADJ", DisplayAdj); localeHelper.GetSublist("government").ForEachString(gov => { // eg. "People's Republic of %NOUN%" -> "People's Republic of France" localisation.Add($"{CountryTag}_{gov.Key}", gov.Value.Replace("%NOUN%", DisplayNoun).Replace("%ADJ%", DisplayAdj).Replace("\"", string.Empty)); }); foreach (var party in PoliticalParties) { localisation.Add(party.Name, localeHelper.GetSublist("party").GetString(Enum.GetName(typeof(Ideology), party.Ideology)).Replace("\"", string.Empty)); } } }
public Vic2Culture(string name, Vic2World vic2World, Vic2CultureGroup group) : this(name, vic2World, name, group, "") { }