public CulturalDna GetVanillaCulture(CulturalDna not) { String culture = dnaTypes[Rand.Next(dnaTypes.Count)]; while (this.dna[culture] == not) { culture = dnaTypes[Rand.Next(dnaTypes.Count)]; } return(this.dna[culture]);; }
public CulturalDna GetVanillaCulture(CulturalDna not) { String culture = dnaTypes[Rand.Next(dnaTypes.Count)]; while (this.dna[culture] == not) { culture = dnaTypes[Rand.Next(dnaTypes.Count)]; } return this.dna[culture]; ; }
public void LoadVanilla() { SaveCultures = false; var files = ModManager.instance.GetFileKeys("common\\cultures"); foreach (var file in files) { Script s = ScriptLoader.instance.LoadKey(file); foreach (var rootChild in s.Root.Children) { CultureGroupParser p = new CultureGroupParser(rootChild as ScriptScope); AllCultureGroups.Add(p); CultureGroupMap[p.Name] = p; foreach (var scopeChild in p.Scope.Children) { if (scopeChild is ScriptScope) { var sc = scopeChild as ScriptScope; if (sc.Name == "graphical_cultures") { continue; } CultureParser r = new CultureParser(sc, p); AllCultures.Add(r); CultureMap[r.Name] = r; p.Cultures.Add(r); r.Group = p; r.LanguageName = LanguageManager.instance.Get(r.Name); CulturalDna dna = new CulturalDna(); foreach (var scope in r.Scope.Scopes) { if (scope.Name == "male_names" || scope.Name == "female_names") { String[] male_names = scope.Data.Split(new[] { ' ', '_', '\t' }); foreach (var maleName in male_names) { var mName = maleName.Trim(); if (mName.Length > 0) { dna.Cannibalize(mName); } } } } r.dna = dna; } } } } }
public CulturalDna GetNewFromVanillaCulture(String culture = null) { if (culture == null) { culture = dnaTypes[Rand.Next(dnaTypes.Count)]; } CulturalDna dna = this.dna[culture]; dna.culture = null; CulturalDna dna2 = dna.Mutate(256); dna2.DoRandom(); return(dna2); }
public void Init() { Script s = ScriptLoader.instance.Load(Globals.GameDir+"common\\cultures\\00_cultures.txt"); foreach (var child in s.Root.Children) { if (child is ScriptScope) { ScriptScope cc = (ScriptScope) child; foreach (var scriptScope in cc.Scopes) { if (scriptScope.Name == "graphical_cultures") continue; CulturalDna dna = new CulturalDna(); foreach (var scope in scriptScope.Scopes) { if (scope.Name == "male_names" || scope.Name == "female_names") { String[] male_names = scope.Data.Split(new []{' ', '_', '\t'}); foreach (var maleName in male_names) { var mName = maleName.Trim(); if (mName.Length > 0) dna.Cannibalize(mName); } } } this.dna[scriptScope.Name] = dna; dnaTypes.Add(scriptScope.Name); { } dna.Name = scriptScope.Name; dna.ShortenWordCounts(); } } } }
public void Init() { Script s = ScriptLoader.instance.Load(Globals.GameDir + "common\\cultures\\00_cultures.txt"); foreach (var child in s.Root.Children) { if (child is ScriptScope) { ScriptScope cc = (ScriptScope)child; foreach (var scriptScope in cc.Scopes) { if (scriptScope.Name == "graphical_cultures") { continue; } CulturalDna dna = new CulturalDna(); foreach (var scope in scriptScope.Scopes) { if (scope.Name == "male_names" || scope.Name == "female_names") { String[] male_names = scope.Data.Split(new [] { ' ', '_', '\t' }); foreach (var maleName in male_names) { var mName = maleName.Trim(); if (mName.Length > 0) { dna.Cannibalize(mName); } } } } this.dna[scriptScope.Name] = dna; dnaTypes.Add(scriptScope.Name); { } dna.Name = scriptScope.Name; dna.ShortenWordCounts(); } } } }
public CulturalDna Mutate(int numChanges, CultureParser rel) { this.culture = rel; var c = new CulturalDna(); c.empTitle = empTitle; c.kingTitle = kingTitle; c.dukeTitle = dukeTitle; c.countTitle = countTitle; c.baronTitle = baronTitle; c.mayorTitle = mayorTitle; c.tribal = tribal; c.wordsForLand.AddRange(wordsForLand); //c.cons.AddRange(cons); // c.vowels.AddRange(vowels); c.CommonStartNames.AddRange(CommonStartNames); c.CommonMiddleNames.AddRange(CommonMiddleNames); c.CommonEndNames.AddRange(CommonEndNames); c.WordFormats.AddRange(CommonWordFormats); c.portraitPool.AddRange(portraitPool); c.placeFormat = placeFormat; c.firstLetters.AddRange(firstLetters); c.wordLengthBias = wordLengthBias; c.from_dynasty_prefix = from_dynasty_prefix; c.count_titles_hidden = count_titles_hidden; c.baron_titles_hidden = baron_titles_hidden; c.allow_looting = allow_looting; c.female_patronym = female_patronym; c.male_patronym = male_patronym; c.founder_named_dynasties = founder_named_dynasties; c.dynasty_title_names = dynasty_title_names; c.horde = horde; c.culture = culture; c.seafarer = seafarer; for (int n = 0; n < numChanges; n++) { c.DoRandomChange(rel); } return(c); }
private int AddRandomMiddleNames(int count) { int c = count; CulturalDna dna = CulturalDnaManager.instance.GetVanillaCulture((string)null); if (dna.CommonMiddleNames.Count == 0) { return(0); } List <String> choices = new List <string>(); int added = 0; for (int n = 0; n < c; n++) { String str = dna.CommonMiddleNames[Rand.Next(dna.CommonMiddleNames.Count)]; if (CommonMiddleNames.Contains(str)) { } else { choices.Add(str); } } if (choices.Count > 0) { c = Math.Min(choices.Count, c); for (int n = 0; n < c; n++) { var cc = choices[Rand.Next(choices.Count)]; CommonMiddleNames.Add(cc); choices.Remove(cc); n--; c = Math.Min(choices.Count, c); added++; } } return(added); }
public CulturalDna MutateSmall(int numChanges) { var c = new CulturalDna(); c.empTitle = empTitle; c.kingTitle = kingTitle; c.dukeTitle = dukeTitle; c.countTitle = countTitle; c.baronTitle = baronTitle; c.mayorTitle = mayorTitle; c.tribal = tribal; c.wordsForLand.AddRange(wordsForLand); //c.cons.AddRange(cons); c.WordFormats.AddRange(CommonWordFormats); // c.vowels.Clear(); //c.vowels.AddRange(vowels); c.CommonStartNames.AddRange(CommonStartNames); c.CommonMiddleNames.AddRange(CommonMiddleNames); c.CommonEndNames.AddRange(CommonEndNames); c.portraitPool.AddRange(portraitPool); c.placeFormat = placeFormat; c.firstLetters.AddRange(firstLetters); c.wordLengthBias = wordLengthBias; c.from_dynasty_prefix = from_dynasty_prefix; c.count_titles_hidden = count_titles_hidden; c.baron_titles_hidden = baron_titles_hidden; c.allow_looting = allow_looting; c.female_patronym = female_patronym; c.male_patronym = male_patronym; c.founder_named_dynasties = founder_named_dynasties; c.dynasty_title_names = dynasty_title_names; c.horde = horde; c.culture = culture; for (int n = 0; n < numChanges; n++) { c.DoRandomSmallChange(); } return c; }
public void CreateRandomReligion(ReligionGroupParser group) { String culture = ""; CulturalDna dna = null; if (this.capital == null) { dna = CulturalDnaManager.instance.GetVanillaCulture((string)null); } else { culture = capital.Title.Holder.culture; dna = CultureManager.instance.CultureMap[culture].dna; } RandomReligionProperties(); // Modern = true; int r = Rand.Next(255); int g = Rand.Next(255); int b = Rand.Next(255); string god = dna.GetGodName(); string devil = dna.GetPlaceName(); string priest = dna.GetPlaceName(); this.priest = priest; high_god_name = dna.GetGodName(); string scripture_name = dna.GetPlaceName(); string crusade_name = dna.GetPlaceName(); this.high_god_name = god; this.devil = devil; this.priest = priest; this.scripture_name = scripture_name; this.crusade_name = crusade_name; if (Name == "sanappa") { int gfdgdf = 0; } DoReligionScope(god, devil, priest, scripture_name, crusade_name, dna, r, g, b); }
public void CreateNewReligion() { String culture = ""; CulturalDna dna = null; if (Capitol == null) { dna = CulturalDnaManager.instance.GetVanillaCulture((string)null); } else { culture = Capitol.Title.Holder.culture; dna = CultureManager.instance.CultureMap[culture].dna; } NewReligionProperties(); int r = Rand.Next(255); int g = Rand.Next(255); int b = Rand.Next(255); string god = dna.GetGodName(); string devil = dna.GetPlaceName(); string priest = dna.GetPlaceName(); string scripture_name = dna.GetPlaceName(); string crusade_name = dna.GetPlaceName(); high_god_name = god; this.devil = devil; this.priest = priest; this.scripture_name = scripture_name; this.crusade_name = crusade_name; DoReligionScope(god, devil, priest, scripture_name, crusade_name, dna, r, g, b); }
public void Mutate(ReligionParser rel, CultureParser culture, int nChanges) { this.dna = culture.dna; this.ai_convert_other_group = rel.ai_convert_other_group; this.max_consorts = rel.max_consorts; this.max_wives = rel.max_wives; this.religious_clothing_head = rel.religious_clothing_head; this.religious_clothing_priest = rel.religious_clothing_priest; this.allow_looting = rel.allow_looting; this.allow_rivermovement = rel.allow_rivermovement; this.allow_viking_invasion = rel.allow_viking_invasion; this.autocephaly = rel.autocephaly; this.bs_marriage = rel.bs_marriage; this.can_call_crusade = rel.can_call_crusade; this.can_excommunicate = rel.can_excommunicate; this.can_grant_claim = rel.can_grant_claim; this.can_grant_divorce = rel.can_grant_divorce; this.can_have_antipopes = rel.can_have_antipopes; this.can_hold_temples = rel.can_hold_temples; this.can_retire_to_monastery = rel.can_retire_to_monastery; this.divine_blood = rel.divine_blood; this.female_temple_holders = rel.female_temple_holders; this.hasLeader = rel.hasLeader; this.has_heir_designation = rel.has_heir_designation; this.investiture = rel.investiture; this.matrilineal_marriages = rel.matrilineal_marriages; this.pacifist = rel.pacifist; this.pc_marriage = rel.pc_marriage; this.peace_prestige_loss = rel.peace_prestige_loss; this.polytheism = rel.polytheism; this.priests_can_inherit = rel.priests_can_inherit; this.psc_marriage = rel.psc_marriage; high_god_name = rel.high_god_name; devil = rel.devil; priest = rel.priest; gods.AddRange(rel.gods); int r = Rand.Next(255); int g = Rand.Next(255); int b = Rand.Next(255); r = rel.r; g = rel.g; b = rel.b; switch (Rand.Next(3)) { case 0: r += Rand.Next(-45, 45); g += Rand.Next(-25, 25); b += Rand.Next(-15, 15); break; case 1: g += Rand.Next(-45, 45); r += Rand.Next(-25, 25); b += Rand.Next(-15, 15); break; case 2: b += Rand.Next(-45, 45); g += Rand.Next(-25, 25); r += Rand.Next(-15, 15); break; } if (r > 255) { r = 255; } if (g > 255) { g = 255; } if (b > 255) { b = 255; } if (r < 0) { r = 0; } if (g < 0) { g = 0; } if (b < 0) { b = 0; } for (int n = 0; n < nChanges; n++) { MakeChange(); } DoReligionScope(high_god_name, devil, priest, scripture_name, crusade_name, culture.dna, r, g, b); }
private void DoReligionScope(string god, string devil, string priest, string scripture_name, string crusade_name, CulturalDna dna, int r, int g, int b) { string safegod = StarNames.SafeName(god); string safedevil = StarNames.SafeName(devil); string safepriest = StarNames.SafeName(priest); string safehigh_god_name = StarNames.SafeName(high_god_name); string safescripture_name = StarNames.SafeName(scripture_name); string safecrusade_name = StarNames.SafeName(crusade_name); String desc = ""; if (!polytheism) { desc = "All praise the almighty " + high_god_name + "!"; } else { desc = "The Gods smile upon you."; } LanguageManager.instance.Add(this.Name + "_DESC", desc); LanguageManager.instance.Add(safegod, god); LanguageManager.instance.Add(safedevil, devil); LanguageManager.instance.Add(safepriest, priest); LanguageManager.instance.Add(safehigh_god_name, high_god_name); LanguageManager.instance.Add(safescripture_name, scripture_name); LanguageManager.instance.Add(safecrusade_name, crusade_name); this.r = r; this.g = g; this.b = b; String gods = ""; { for (int n = 0; n < 10; n++) { string go = dna.GetGodName(); var sg = StarNames.SafeName(go); LanguageManager.instance.Add(sg, go); this.gods.Add(sg); gods += sg + " "; } } String egods = ""; for (int n = 0; n < 5; n++) { string go = dna.GetGodName(); var sg = StarNames.SafeName(go); LanguageManager.instance.Add(sg, go); this.evilgods.Add(sg); egods += sg + " "; } if (!polytheism) { gods = safegod; egods = safedevil; } else { gods = safehigh_god_name + " " + gods; } if (max_wives > 1 && max_consorts > 0) { max_consorts = 0; } Scope.Do(@" graphical_culture = westerngfx icon = " + icon + @" heresy_icon = " + heresy_icon + @" ai_convert_other_group = " + ai_convert_other_group + @" # always try to convert color = { " + r + " " + g + " " + b + @" } crusade_name = " + safecrusade_name + @" scripture_name = " + safescripture_name + @" priest_title = " + safepriest + @" high_god_name = " + safehigh_god_name + @" god_names = { " + gods + @" } evil_god_names = { " + egods + @" } investiture = " + (investiture ? "yes" : "no") + @" can_have_antipopes = " + (can_have_antipopes ? "yes" : "no") + @" can_excommunicate = " + (can_excommunicate ? "yes" : "no") + @" can_grant_divorce = " + (can_grant_divorce ? "yes" : "no") + @" can_grant_claim = " + (can_grant_claim ? "yes" : "no") + @" can_call_crusade = " + (can_call_crusade ? "yes" : "no") + @" can_retire_to_monastery = " + (can_retire_to_monastery ? "yes" : "no") + @" priests_can_inherit = " + (priests_can_inherit ? "yes" : "no") + @" can_hold_temples = " + (can_hold_temples ? "yes" : "no") + @" pacifist = " + (pacifist ? "yes" : "no") + @" bs_marriage = " + (bs_marriage ? "yes" : "no") + @" pc_marriage = " + (pc_marriage ? "yes" : "no") + @" psc_marriage = " + (psc_marriage ? "yes" : "no") + @" cousin_marriage = " + (psc_marriage ? "yes" : "no") + @" matrilineal_marriages = " + (matrilineal_marriages ? "yes" : "no") + @" allow_viking_invasion = " + (allow_viking_invasion ? "yes" : "no") + @" allow_looting = " + (allow_looting ? "yes" : "no") + @" allow_rivermovement = " + (allow_rivermovement ? "yes" : "no") + @" female_temple_holders = " + (female_temple_holders ? "yes" : "no") + @" autocephaly = " + (autocephaly ? "yes" : "no") + @" divine_blood = " + (divine_blood ? "yes" : "no") + @" has_heir_designation = " + (has_heir_designation ? "yes" : "no") + @" peace_prestige_loss = " + (peace_prestige_loss ? "yes" : "no") + @" " + (max_consorts > 0 ? ("max_consorts = " + max_consorts.ToString()) : "") + @" max_wives = " + max_wives + @" uses_decadence = " + (uses_decadence ? "yes" : "no") + @" uses_jizya_tax = " + (uses_jizya_tax ? "yes" : "no") + @" can_grant_invasion_cb = invasion religious_clothing_head = " + religious_clothing_head + @" religious_clothing_priest = " + religious_clothing_priest + @" "); }
public void Mutate(ReligionParser rel, CultureParser culture, int nChanges) { this.dna = culture.dna; this.ai_convert_other_group = rel.ai_convert_other_group; this.max_consorts = rel.max_consorts; this.max_wives = rel.max_wives; this.religious_clothing_head = rel.religious_clothing_head; this.religious_clothing_priest = rel.religious_clothing_priest; this.allow_looting = rel.allow_looting; this.allow_rivermovement = rel.allow_rivermovement; this.allow_viking_invasion = rel.allow_viking_invasion; this.autocephaly = rel.autocephaly; this.bs_marriage = rel.bs_marriage; this.can_call_crusade = rel.can_call_crusade; this.can_excommunicate = rel.can_excommunicate; this.can_grant_claim = rel.can_grant_claim; this.can_grant_divorce = rel.can_grant_divorce; this.can_have_antipopes = rel.can_have_antipopes; this.can_hold_temples = rel.can_hold_temples; this.can_retire_to_monastery = rel.can_retire_to_monastery; this.divine_blood = rel.divine_blood; this.female_temple_holders = rel.female_temple_holders; this.hasLeader = rel.hasLeader; this.has_heir_designation = rel.has_heir_designation; this.investiture = rel.investiture; this.matrilineal_marriages = rel.matrilineal_marriages; this.pacifist = rel.pacifist; this.pc_marriage = rel.pc_marriage; this.peace_prestige_loss = rel.peace_prestige_loss; this.polytheism = rel.polytheism; this.priests_can_inherit = rel.priests_can_inherit; this.psc_marriage = rel.psc_marriage; high_god_name = rel.high_god_name; devil = rel.devil; priest = rel.priest; gods.AddRange(rel.gods); int r = Rand.Next(255); int g = Rand.Next(255); int b = Rand.Next(255); r = rel.r; g = rel.g; b = rel.b; switch (Rand.Next(3)) { case 0: r += Rand.Next(-45, 45); g += Rand.Next(-25, 25); b += Rand.Next(-15, 15); break; case 1: g += Rand.Next(-45, 45); r += Rand.Next(-25, 25); b += Rand.Next(-15, 15); break; case 2: b += Rand.Next(-45, 45); g += Rand.Next(-25, 25); r += Rand.Next(-15, 15); break; } if (r > 255) r = 255; if (g > 255) g = 255; if (b > 255) b = 255; if (r < 0) r = 0; if (g < 0) g = 0; if (b < 0) b = 0; for(int n=0;n<nChanges;n++) MakeChange(); DoReligionScope(high_god_name, devil, priest, scripture_name, crusade_name, culture.dna, r, g, b); }
private void DoReligionScope(string god, string devil, string priest, string scripture_name, string crusade_name, CulturalDna dna, int r, int g, int b) { string safegod = StarNames.SafeName(god); string safedevil = StarNames.SafeName(devil); string safepriest = StarNames.SafeName(priest); string safehigh_god_name = StarNames.SafeName(high_god_name); string safescripture_name = StarNames.SafeName(scripture_name); string safecrusade_name = StarNames.SafeName(crusade_name); String desc = ""; if (!polytheism) desc = "All praise the almighty " + high_god_name + "!"; else desc = "The Gods smile upon you."; LanguageManager.instance.Add(this.Name + "_DESC", desc); LanguageManager.instance.Add(safegod, god); LanguageManager.instance.Add(safedevil, devil); LanguageManager.instance.Add(safepriest, priest); LanguageManager.instance.Add(safehigh_god_name, high_god_name); LanguageManager.instance.Add(safescripture_name, scripture_name); LanguageManager.instance.Add(safecrusade_name, crusade_name); this.r = r; this.g = g; this.b = b; String gods = ""; { for (int n = 0; n < 10; n++) { string go = dna.GetGodName(); var sg = StarNames.SafeName(go); LanguageManager.instance.Add(sg, go); this.gods.Add(sg); gods += sg + " "; } } String egods = ""; for (int n = 0; n < 5; n++) { string go = dna.GetGodName(); var sg = StarNames.SafeName(go); LanguageManager.instance.Add(sg, go); this.evilgods.Add(sg); egods += sg + " "; } if (!polytheism) { gods = safegod; egods = safedevil; } else { gods = safehigh_god_name + " " + gods; } if (max_wives > 1 && max_consorts > 0) max_consorts = 0; Scope.Do(@" graphical_culture = westerngfx icon = " + icon + @" heresy_icon = " + heresy_icon + @" ai_convert_other_group = " + ai_convert_other_group + @" # always try to convert color = { " + r + " " + g + " " + b + @" } crusade_name = " + safecrusade_name + @" scripture_name = " + safescripture_name + @" priest_title = " + safepriest + @" high_god_name = " + safehigh_god_name + @" god_names = { " + gods + @" } evil_god_names = { " + egods + @" } investiture = " + (investiture ? "yes" : "no") + @" can_have_antipopes = " + (can_have_antipopes ? "yes" : "no") + @" can_excommunicate = " + (can_excommunicate ? "yes" : "no") + @" can_grant_divorce = " + (can_grant_divorce ? "yes" : "no") + @" can_grant_claim = " + (can_grant_claim ? "yes" : "no") + @" can_call_crusade = " + (can_call_crusade ? "yes" : "no") + @" can_retire_to_monastery = " + (can_retire_to_monastery ? "yes" : "no") + @" priests_can_inherit = " + (priests_can_inherit ? "yes" : "no") + @" can_hold_temples = " + (can_hold_temples ? "yes" : "no") + @" pacifist = " + (pacifist ? "yes" : "no") + @" bs_marriage = " + (bs_marriage ? "yes" : "no") + @" pc_marriage = " + (pc_marriage ? "yes" : "no") + @" psc_marriage = " + (psc_marriage ? "yes" : "no") + @" cousin_marriage = " + (psc_marriage ? "yes" : "no") + @" matrilineal_marriages = " + (matrilineal_marriages ? "yes" : "no") + @" allow_viking_invasion = " + (allow_viking_invasion ? "yes" : "no") + @" allow_looting = " + (allow_looting ? "yes" : "no") + @" allow_rivermovement = " + (allow_rivermovement ? "yes" : "no") + @" female_temple_holders = " + (female_temple_holders ? "yes" : "no") + @" autocephaly = " + (autocephaly ? "yes" : "no") + @" divine_blood = " + (divine_blood ? "yes" : "no") + @" has_heir_designation = " + (has_heir_designation ? "yes" : "no") + @" peace_prestige_loss = " + (peace_prestige_loss ? "yes" : "no") + @" " + (max_consorts > 0 ? ("max_consorts = " + max_consorts.ToString()) : "") + @" max_wives = " + max_wives + @" uses_decadence = " + (uses_decadence ? "yes" : "no") + @" uses_jizya_tax = " + (uses_jizya_tax ? "yes" : "no") + @" can_grant_invasion_cb = invasion religious_clothing_head = " + religious_clothing_head + @" religious_clothing_priest = " + religious_clothing_priest + @" "); }
private void DoReligionScope(string god, string devil, string priest, string scripture_name, string crusade_name, CulturalDna dna, int r, int g, int b, bool bNew = true) { string safegod = StarNames.SafeName(god); string safedevil = StarNames.SafeName(devil); string safepriest = StarNames.SafeName(priest); string safehigh_god_name = StarNames.SafeName(high_god_name); string safescripture_name = StarNames.SafeName(scripture_name); string safecrusade_name = StarNames.SafeName(crusade_name); String desc = ""; this.god = god; this.devil = devil; this.scripture_name = scripture_name; if (!polytheism) { desc = "All praise the almighty " + high_god_name + "!"; } else { desc = "The Gods smile upon you."; } LanguageManager.instance.Add(Name + "_DESC", desc); LanguageManager.instance.Add(safegod, god); LanguageManager.instance.Add(safedevil, devil); LanguageManager.instance.Add(safepriest, priest); LanguageManager.instance.Add(safehigh_god_name, high_god_name); LanguageManager.instance.Add(safescripture_name, scripture_name); LanguageManager.instance.Add(safecrusade_name, crusade_name); this.r = r; this.g = g; this.b = b; String gods = ""; if (bNew) { for (int n = 0; n < 10; n++) { string go = dna.GetGodName(); var sg = StarNames.SafeName(go); LanguageManager.instance.Add(sg, go); this.gods.Add(sg); gods += sg + " "; } } String egods = ""; if (bNew) { for (int n = 0; n < 5; n++) { string go = dna.GetGodName(); var sg = StarNames.SafeName(go); LanguageManager.instance.Add(sg, go); evilgods.Add(sg); egods += sg + " "; } } if (!polytheism) { gods = safegod; egods = safedevil; } else { gods = safehigh_god_name + " " + gods; } this.safecrusade_name = safecrusade_name; this.safescripture_name = safescripture_name; this.safepriest = safepriest; this.safehigh_god_name = safehigh_god_name; this.egods = egods; if (max_wives > 1 && max_consorts > 0) { max_consorts = 0; } ScopeReligionDetails(); }