public string GetV2Culture(string eu4Culture, Eu4ProvinceBase prov, Vic2Province vProv) { var culture = Map(Culture, eu4Culture); if (prov != null) { Vic2CultureGroup group = null; if (World.Cultures.ContainsKey(culture)) { group = World.Cultures[culture].Group; } else if (World.CultureGroups.ContainsKey(culture)) { group = World.CultureGroups[culture]; } else { group = new Vic2CultureGroup(World.Eu4Save.Cultures[eu4Culture].Group, World); } var dist = group.GetDistance(vProv); if (dist > 20) //diff cul, same group // different cultures for off colonies { var neoEu4Culture = $"{eu4Culture}:{prov.Continent.Name}"; var neoCulture = Map(Culture, neoEu4Culture); if (neoCulture == null) { // todo: fix what this will do to nations on borders between continents such as the ottomans neoCulture = World.GenerateCulture(eu4Culture, culture + '_' + prov.Continent.Name + 'n', World.Eu4Save.Localisation[prov.Continent.Name], true); NeoCultures[neoCulture] = culture; Culture.Add(neoEu4Culture, neoCulture); } return(neoCulture); } } if (culture == null || !World.Cultures.ContainsKey(culture)) { culture = World.GenerateCulture(eu4Culture, culture); if (!Culture.ContainsKey(eu4Culture)) { Culture.Add(eu4Culture, culture); } } return(culture); }