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); }
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 Vic2Country(Vic2World world, string tag, Vic2Culture culture) : this(world, tag, world.Vic2Countries.Where(c => c.PrimaryCulture == culture.Name), culture) { }