public TitleParser CreateBaronyScriptScope(ProvinceParser capital, CultureParser culture) { var place = culture.dna.GetPlaceName(); var text = place; place = StarNames.SafeName(text); if (TitleManager.instance.TieredTitles.ContainsKey("b_" + place)) { return(CreateBaronyScriptScope(capital, culture)); } var rand = Rand.Get(); Color col = Color.FromArgb(255, rand.Next(200) + 55, rand.Next(200) + 55, rand.Next(200) + 55); ScriptScope scope = new ScriptScope(); scope.Parent = capital.Title.Scope; scope.Name = "b_" + place; LanguageManager.instance.Add("b_" + place, text); // scope.Kids.Add(new ScriptCommand() { Name = "rebel", Value = false }); TitleParser title = new TitleParser(scope); TieredTitles[title.Name] = title; capital.Title.Scope.Add(title.Scope); // if (culture.dna.horde) // title.Scope.Do("historical_nomad = yes"); // AddTitle(title); return(title); }
public string AddSafe(string name) { String safe = StarNames.SafeName(name); Add(safe, name); return(safe); }
public void Save() { Script s = new Script(); s.Name = Globals.GameDir + "map\\geographical_region.txt"; s.Root = new ScriptScope(); foreach (var region in regions) { ScriptScope ss = new ScriptScope(); String duchieList = ""; foreach (var titleParser in region.duchies) { duchieList = duchieList + " " + titleParser.Name; } ss.Name = StarNames.SafeName(region.name); ss.Do(@" duchies = { " + duchieList + @" } "); s.Root.Add(ss); } s.Save(); }
public ReligionParser BranchReligion(string religion, ProvinceParser capital = null) { var rel = this.ReligionMap[religion]; var group = rel.Group; if (rel.Group.Religions.Count > 3 && Rand.Next(2) == 0) { String name = StarNames.Generate(capital.Title.culture); String safe = StarNames.SafeName(name); LanguageManager.instance.Add(safe, name); group = AddReligionGroup(safe); var rel2 = group.AddReligion(StarNames.Generate(capital.Title.culture)); rel2.RandomReligionProperties(); //rel2.Init(Rand.Next(255), Rand.Next(255), Rand.Next(255)); rel2.CreateRandomReligion(group); return(rel2); } else { var rel2 = group.AddReligion(StarNames.Generate(capital.Title.culture)); //rel2.Init(Rand.Next(255), Rand.Next(255), Rand.Next(255)); rel2.RandomReligionProperties(); rel2.CreateRandomReligion(group); rel2.Mutate(rel, capital.Title.Culture, 6); return(rel2); } }
public ReligionParser AddReligion(String name, String orig = null) { if (name != "pagan") { String oname = name; name = StarNames.SafeName(name); LanguageManager.instance.Add(name, oname); orig = oname; } ScriptScope scope = new ScriptScope(); scope.Name = name; Scope.Add(scope); ReligionParser r = new ReligionParser(scope); ReligionManager.instance.AllReligions.Add(r); if (orig != null) { r.LanguageName = orig; } Religions.Add(r); ReligionManager.instance.ReligionMap[name] = r; return(r); }
public Government BranchGovernment(Government gov, CultureParser culture) { var newGov = gov.Mutate(10); { if (newGov.type == "nomadic") { newGov.type = "tribal"; newGov.SetType(newGov.type); } } do { newGov.name = culture.dna.GetMaleName(); } while (LanguageManager.instance.Get(StarNames.SafeName(newGov.name) + "_government") != null); string s = newGov.name; newGov.name = StarNames.SafeName(newGov.name) + "_government"; LanguageManager.instance.Add(newGov.name, s); culture.Governments.Add(newGov); if (!newGov.cultureAllow.Contains(culture.Name)) { newGov.cultureAllow.Add(culture.Name); } return(newGov); }
public CultureParser AddCulture(String name) { if (name != "norse") { String oname = name; name = StarNames.SafeName(name); LanguageManager.instance.Add(name, oname); } ScriptScope scope = new ScriptScope(); scope.Name = name; Name = name; Scope.Add(scope); CultureParser r = new CultureParser(scope); CultureManager.instance.AllCultures.Add(r); Cultures.Add(r); CultureManager.instance.CultureMap[name] = r; r.Name = Name; r.Init(); Scope.SetChild(r.Scope); return(r); }
public ReligionParser BranchReligion(string religion, String culture) { var rel = ReligionMap[religion]; var group = rel.Group; int totCount = 0; foreach (var religionParser in rel.Group.Religions) { totCount += religionParser.Provinces.Count; } if (CultureManager.instance.allowMultiCultureGroups) { var rell = StarNames.Generate(culture); while (instance.ReligionMap.ContainsKey(StarNames.SafeName(rell))) { rell = StarNames.Generate(culture); } var rel2 = group.AddReligion(rell); rel2.CreateNewReligion(); rel2.Mutate(rel, CultureManager.instance.CultureMap[culture], 6); return(rel2); } else { String name = StarNames.Generate(culture); String safe = StarNames.SafeName(name); while (instance.GroupMap.ContainsKey(safe)) { name = StarNames.Generate(culture); safe = StarNames.Generate(culture); } LanguageManager.instance.Add(safe, name); group = AddReligionGroup(safe); name = StarNames.Generate(culture); while (instance.ReligionMap.ContainsKey(safe)) { name = StarNames.Generate(culture); safe = StarNames.SafeName(name); } var rel2 = group.AddReligion(name); rel2.CreateNewReligion(); return(rel2); } }
public void Rename(string name) { String oldName = Name; Name = "c_" + StarNames.SafeName(name); LanguageManager.instance.Add(Name, name); LanguageManager.instance.Add("PROV" + id, name); MapManager.instance.ProvinceMap.Remove(oldName); MapManager.instance.ProvinceMap[Name] = this; }
public string GetUniqueMaleName() { var name = ConstructWord(3 * wordLengthBias, 8 * wordLengthBias); name = stripVowelsFromEnd(name); if (LanguageManager.instance.Get(StarNames.SafeName(name)) != null) { return(GetUniqueMaleName()); } return(name); }
public TitleParser CreateKingScriptScope(ProvinceParser capital, CharacterParser chr) { var rand = Rand.Get(); Color col = Color.FromArgb(255, rand.Next(200) + 55, rand.Next(200) + 55, rand.Next(200) + 55); ScriptScope scope = new ScriptScope(); scope.Parent = LandedTitlesScript.Root; { String place = chr.Culture.dna.GetPlaceName(); String text = place; place = StarNames.SafeName(place); if (TitleManager.instance.TitleMap.ContainsKey("k_" + place)) { return(CreateKingScriptScope(capital, chr.culture)); } LanguageManager.instance.Add(place, text); scope.Name = "k_" + place; LanguageManager.instance.Add(scope.Name, text); } //scope.Kids.Add(new ScriptCommand() { Name = "rebel", Value = false }); scope.Add(new ScriptCommand() { Name = "color", Value = col }); scope.Add(new ScriptCommand() { Name = "color2", Value = col }); scope.Add(new ScriptCommand() { Name = "capital", Value = capital.id }); TitleParser title = new TitleParser(scope); AddTitle(title); // now place the counties into it... if (title.capital != 0) { title.CapitalProvince = MapManager.instance.ProvinceIDMap[title.capital]; } return(title); }
public CultureParser BranchCulture(string Culture) { var rel = CultureMap[Culture]; var group = rel.Group; var cultureName = rel.dna.GetPlaceName(); while (GroupMap.ContainsKey(StarNames.SafeName(cultureName))) { cultureName = rel.dna.GetPlaceName(); } CultureParser rel2 = null; if (allowMultiCultureGroups) { rel2 = group.AddCulture(cultureName); rel2.Init(); rel2.dna = rel.dna.MutateSmall(4); } else { // need to make a new group for the culture var newGroupName = rel.dna.GetPlaceName(); while (GroupMap.ContainsKey(StarNames.SafeName(newGroupName))) { newGroupName = rel.dna.GetPlaceName(); } LanguageManager.instance.Add(StarNames.SafeName(newGroupName), newGroupName); var newCultureGroup = AddCultureGroup(StarNames.SafeName(newGroupName), group); newCultureGroup.Name = StarNames.SafeName(newGroupName); rel2 = newCultureGroup.AddCulture(cultureName); newCultureGroup.AddCulture(rel2); rel2.Init(); rel2.dna = rel.dna.Mutate(16, rel); rel2.dna.DoRandom(); CultureGroupMap[newCultureGroup.Name] = newCultureGroup; } rel2.DoDetailsForCulture(); return(rel2); }
public void CreateMercs() { // do mercs... foreach (var cultureParser in CultureManager.instance.AllCultures) { String name = ""; String namesafe = null; do { name = cultureParser.dna.GetMaleName(); namesafe = "d_" + StarNames.SafeName(name); } while (TitleMap.ContainsKey(namesafe) || LanguageManager.instance.Get(namesafe) != ""); LanguageManager.instance.Add(namesafe, name); String composition = compositions[Rand.Next(compositions.Length)]; LandedTitlesScript.Root.Do(@" " + namesafe + @" = { color = { 135 170 60 } color2 = { 255 255 255 } capital = " + MapManager.instance.GetInhabited().id + @" # Parent Religion culture = " + cultureParser.Name + @" mercenary = yes title = ""CAPTAIN"" foa = ""CAPTAIN_FOA"" # Always exists landless = yes # Cannot be held as a secondary title primary = yes # Cannot be vassalized independent = yes strength_growth_per_century = 1.00 mercenary_type = " + composition + @" } "); } }
public TitleParser CreateDukeScriptScope(ProvinceParser capital, String name = null) { var rand = Rand.Get(); Color col = Color.FromArgb(255, rand.Next(200) + 55, rand.Next(200) + 55, rand.Next(200) + 55); ScriptScope scope = new ScriptScope(); scope.Parent = LandedTitlesScript.Root; if (name == null) { String place = capital.Title.Holder.Culture.dna.GetPlaceName(); String text = place; place = StarNames.SafeName(place); LanguageManager.instance.Add(place, text); scope.Name = "d_" + place; LanguageManager.instance.Add(scope.Name, text); } else { scope.Name = "d_" + name; } // scope.Kids.Add(new ScriptCommand() { Name = "rebel", Value = false }); scope.Add(new ScriptCommand() { Name = "color", Value = col }); scope.Add(new ScriptCommand() { Name = "color2", Value = col }); scope.Add(new ScriptCommand() { Name = "capital", Value = capital.id }); TitleParser title = new TitleParser(scope); // if (capital.Title.Culture.dna.horde) // title.Scope.Do("historical_nomad = yes"); AddTitle(title); if (title.capital != 0) { title.CapitalProvince = MapManager.instance.ProvinceIDMap[title.capital]; } // now place the counties into it... return(title); }
public void RenameForCulture(CultureParser culture) { LanguageManager.instance.Remove(Name); String namem = null; do { var name = culture.dna.GetPlaceName(); namem = name; } while (MapManager.instance.ProvinceMap.ContainsKey(StarNames.SafeName(namem))); Rename(namem); }
public void Rename(String name) { String oldName = Name; LanguageManager.instance.Remove(Name); this.Name = StarNames.SafeName(name); if (Rank == 0) { Name = "b_" + Name; } if (Rank == 1) { Name = "c_" + Name; } if (Rank == 2) { Name = "d_" + Name; } if (Rank == 3) { Name = "k_" + Name; } if (Rank == 4) { Name = "e_" + Name; } LanguageManager.instance.Add(Name, name); TitleManager.instance.TitleMap.Remove(oldName); TitleManager.instance.TitleMap[name] = this; if (TitleManager.instance.TieredTitles.ContainsKey(oldName)) { TitleManager.instance.TieredTitles.Remove(oldName); TitleManager.instance.TieredTitles[name] = this; if (Liege != null) { Liege.SubTitles.Remove(oldName); Liege.SubTitles[name] = this; } } Scope.Parent.ChildrenMap.Remove(oldName); Scope.Parent.ChildrenMap[name] = this; }
public CultureParser BranchCulture(string Culture) { var rel = this.CultureMap[Culture]; var group = rel.Group; var naa = rel.dna.GetPlaceName(); while (GroupMap.ContainsKey(StarNames.SafeName(naa))) { naa = rel.dna.GetPlaceName(); } CultureParser rel2 = null; if (!allowMultiCultureGroups) { var na = rel.dna.GetPlaceName(); while (GroupMap.ContainsKey(StarNames.SafeName(na))) { na = rel.dna.GetPlaceName(); } LanguageManager.instance.Add(StarNames.SafeName(na), na); var group2 = AddCultureGroup(StarNames.SafeName(na), group); group2.Name = StarNames.SafeName(na); rel2 = group2.AddCulture(naa); group2.AddCulture(rel2); rel2.Init(); rel2.dna = rel.dna.Mutate(16, rel); rel2.dna.DoRandom(); CultureGroupMap[group2.Name] = group2; } else { rel2 = group.AddCulture(naa); rel2.Init(); rel2.dna = rel.dna.MutateSmall(4); } rel2.DoDetailsForCulture(); return(rel2); }
public void RenameForCulture(CultureParser culture) { LanguageManager.instance.Remove(Name); var name = culture.dna.GetPlaceName(); if (MapManager.instance.ProvinceMap.ContainsKey("c_" + StarNames.SafeName(name))) { RenameForCulture(culture); return; } if (Title != null) { Title.Rename(name); } Rename(name); }
public ReligionParser AddReligion(String name, String orig = null) { if (name != "urtru") { String oname = name; name = StarNames.SafeName(name); LanguageManager.instance.Add(name, oname); orig = oname; } ScriptScope scope = new ScriptScope { Name = name }; Scope.Add(scope); ReligionParser r = new ReligionParser(scope); ReligionManager.instance.AllReligions.Add(r); if (orig != null) { r.LanguageName = orig; } r.Name = r.Scope.Name; r.Group = this; var col = Col(); r.r = col.R; r.g = col.G; r.b = col.B; Religions.Add(r); ReligionManager.instance.ReligionMap[name] = r; Console.Out.WriteLine(r.Name + " added"); return(r); }
public void Rename(string name) { if (StarNames.SafeName(name) == "selj") { } String oldName = Name; Name = StarNames.SafeName(name); LanguageManager.instance.Remove(Name); LanguageManager.instance.Add(StarNames.SafeName(name), name); LanguageManager.instance.Add("c_" + StarNames.SafeName(name), name); LanguageManager.instance.Add("PROV" + id, name); MapManager.instance.ProvinceMap.Remove(oldName); MapManager.instance.ProvinceMap[Name] = this; if (Title != null) { Title.Rename(name, true); } }
public Government CreateNewGovernment(CultureParser culture) { Government g = new Government(); g.type = "tribal"; Government r = g.Mutate(8); r.name = culture.dna.GetMaleName(); string s = r.name; r.name = StarNames.SafeName(r.name) + "_government"; LanguageManager.instance.Add(r.name, s); culture.Governments.Add(r); r.SetType(r.type); if (!r.cultureAllow.Contains(culture.Name)) { r.cultureAllow.Add(culture.Name); // governments.Add(r); } return(r); }
public void AddRegion(String name, List <TitleParser> duchies) { String safeName = StarNames.SafeName(name); LanguageManager.instance.Add(safeName, name); Region r = new Region(); for (int index = 0; index < duchies.Count; index++) { var titleParser = duchies[index]; if (duchiesAssigned.Contains(titleParser)) { duchies.Remove(titleParser); index--; } } r.name = name; r.duchies.AddRange(duchies); duchiesAssigned.AddRange(duchies); regions.Add(r); }
public CultureParser AddCulture(String name) { string langName = ""; if (name != "norse") { String oname = name; name = StarNames.SafeName(name); LanguageManager.instance.Add(name, oname); langName = oname; } ScriptScope scope = new ScriptScope(); scope.Name = name; Scope.Add(scope); CultureParser r = new CultureParser(scope, this); CultureManager.instance.AllCultures.Add(r); r.LanguageName = langName; Cultures.Add(r); CultureManager.instance.CultureMap[name] = r; r.Name = name; r.Init(); r.group = this; var col = Col(); r.r = col.R; r.g = col.G; r.b = col.B; Scope.SetChild(r.Scope); return(r); }
public CultureParser BranchCulture(string Culture) { var rel = this.CultureMap[Culture]; var group = rel.Group; var rel2 = group.AddCulture(rel.dna.GetPlaceName()); if (Rand.Next(10) == 0 || rel.Group.Cultures.Count > 5) { var group2 = AddCultureGroup(StarNames.SafeName(rel.dna.GetPlaceName()), group); group2.AddCulture(rel2); rel2.Init(); rel2.dna = rel.dna.Mutate(6); rel2.dna.DoRandom(); } else { rel2.Init(); rel2.dna = rel.dna.MutateSmall(5); } rel2.DoDetailsForCulture(); return(rel2); }
public void DoLeader(ProvinceParser capital) { String popeName = StarNames.SafeName(StarNames.Generate(10000000)); LanguageManager.instance.Add(popeName, StarNames.Generate(10000000)); TitleParser title = null; switch (Rand.Next(3)) { case 0: title = TitleManager.instance.CreateKingScriptScope(capital, Name); break; case 1: title = TitleManager.instance.CreateEmpireScriptScope(capital, Name); break; case 2: title = TitleManager.instance.CreateDukeScriptScope(capital, Name); break; } ReligiousHeadTitle = title; ReligiousHeadTitle.Religious = true; ReligiousHeadTitle.Active = true; // ch.UpdateCultural(); var ch = SimulationManager.instance.AddCharacterForTitle(ReligiousHeadTitle, true); ch.religion = Name; ch.UpdateCultural(); var liege = ReligiousHeadTitle.CapitalProvince.Title; if (Rand.Next(3) == 0) { ch.GiveTitle(ReligiousHeadTitle.CapitalProvince.Title); } String religious_names = ""; for (int n = 0; n < 40; n++) { religious_names = CultureManager.instance.CultureMap[ch.culture].dna.GetMaleName() + " "; } title.Scope.Do(@" title = """ + popeName + @""" foa = ""POPE_FOA"" short_name = yes location_ruler_title = yes landless = yes controls_religion = """ + Name + @""" religion = """ + Name + @""" primary = yes dynasty_title_names = no male_names = { " + religious_names + @" } "); LanguageManager.instance.Add(title.Name, this.LanguageName); }
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(); }
public String GetPlaceName() { if (Rand.Next(3) != 0) { return(ConstructWord(5, 8)); } if (WordFormats.Count == 0) { for (int n = 0; n < 1; n++) { WordFormats.Add(CommonWordFormats[Rand.Next(CommonWordFormats.Count)]); } } if (wordsForLand.Count == 0) { string s = ConstructWord(2 * wordLengthBias, 4 * wordLengthBias); wordsForLand.Add(s); } if (placeFormat == null) { placeFormat = placeFormatOptions[Rand.Next(placeFormatOptions.Count())]; } string format = this.WordFormats[Rand.Next(WordFormats.Count)]; int nWords = 1; if (Rand.Next(3) == 0) { nWords++; } if (Rand.Next(3) == 0) { nWords++; } if (Rand.Next(3) != 0) { format = "{0}"; nWords = 1; } int index = 0; if (nWords == 1) { index = format.IndexOf("{0}") + 3; format = format.Substring(0, index); } if (nWords == 2) { index = format.IndexOf("{1}") + 3; format = format.Substring(0, index); } String[] strs = new String[nWords]; for (int n = 0; n < nWords; n++) { if (nWords == 1) { strs[n] = ConstructWord(5 * wordLengthBias, 8 * wordLengthBias); } else if (nWords == 2) { strs[n] = ConstructWord(3 * wordLengthBias, 5 * wordLengthBias); } else if (nWords == 3) { strs[n] = ConstructWord(3 * wordLengthBias, 4 * wordLengthBias); } } if (nWords == 1) { var s = Capitalize(String.Format(format, strs[0])); if (LanguageManager.instance.Get(StarNames.SafeName(s)) != null) { return(GetPlaceName()); } return(s); } else if (nWords == 2) { var s = Capitalize(String.Format(format, strs[0], strs[1])); if (LanguageManager.instance.Get(StarNames.SafeName(s)) != null) { return(GetPlaceName()); } return(s); } else { var s = Capitalize(String.Format(format, strs[0], strs[1], strs[2])); if (LanguageManager.instance.Get(StarNames.SafeName(s)) != null) { return(GetPlaceName()); } return(s); } }
public void DoLeader(ProvinceParser capital) { String popeName = StarNames.SafeName(StarNames.Generate(10000000)); LanguageManager.instance.Add(popeName, StarNames.Generate(10000000)); PopeName = popeName; TitleParser title = null; bool bNew = false; ReligiousHeadTitle = null; if (ReligiousHeadTitle == null) { bNew = true; switch (Rand.Next(8)) { case 0: case 1: case 2: case 3: title = TitleManager.instance.CreateKingScriptScope(capital, Name); break; case 4: title = TitleManager.instance.CreateEmpireScriptScope(capital, Name); break; case 5: case 6: case 7: title = TitleManager.instance.CreateDukeScriptScope(capital, Name); break; } ReligiousHeadTitle = title; } ReligiousHeadTitle.Religious = true; ReligiousHeadTitle.Active = true; ReligiousHeadTitle.religion = Name; TitleManager.instance.ReligiousTitles.Add(ReligiousHeadTitle); if (bNew) { var ch = SimulationManager.instance.AddCharacterForTitle(ReligiousHeadTitle, true); ch.religion = Name; ch.UpdateCultural(); } String religious_names = ""; for (int n = 0; n < 40; n++) { religious_names = CultureManager.instance.CultureMap[ReligiousHeadTitle.Holder.culture].dna.GetMaleName() + " "; } ReligiousHeadTitle.Scope.Do(@" title = """ + popeName + @""" foa = ""POPE_FOA"" short_name = " + (Rand.Next(2) == 0 ? "yes" : "no") + @" location_ruler_title = " + (Rand.Next(2) == 0 ? "yes" : "no") + @" landless = " + (bNew ? "yes" : "no") + @" controls_religion = """ + Name + @""" religion = """ + Name + @""" primary = yes dynasty_title_names = no "); LanguageManager.instance.Add(ReligiousHeadTitle.Name, this.LanguageName); }
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 Module CreateReligionPhilosophy(String nameSpace, String religion, List <SchoolInfo> schools) { Module m = new Module(); m.name = religion + "_philosophies"; m.nameSpace = nameSpace; String eventID = ""; int n = 1; var schoolss = new List <SchoolTypes>(Schools); foreach (var school in schools) { ScriptScope decision = new ScriptScope(); ScriptScope trait = new ScriptScope(); int nn = Rand.Next(schoolss.Count); var schooldata = schoolss[nn]; schoolss.RemoveAt(nn); String otherSchools = ""; foreach (var schoolInfo in schools) { if (schoolInfo.Name == school.Name) { continue; } otherSchools += StarNames.SafeName(schoolInfo.Name) + "\n\r"; } String rname = LanguageManager.instance.Get(religion); ScriptScope ev = new ScriptScope(); eventID = nameSpace + "." + n; String eventDesc = eventID + "desc"; TraitManager.instance.AddTrait(StarNames.SafeName(school.Name)); LanguageManager.instance.Add(StarNames.SafeName(school.Name), school.Name); LanguageManager.instance.Add("embrace_" + StarNames.SafeName(school.Name), "Embrace " + school.Name); LanguageManager.instance.Add("embrace_" + StarNames.SafeName(school.Name) + "_desc", "You embrace " + school.Name + ", a philosophy of " + rname + " that promotes " + schooldata.principles + @". Members of the opposing philosophies will disapprove."); LanguageManager.instance.Add(StarNames.SafeName(school.Name) + "_desc", "Follows the school of " + school.Name + ", a philosophy of " + rname + " that promotes " + schooldata.principles + @"."); LanguageManager.instance.Add(eventDesc, "You have embraced the " + school.Name + " philosophy of " + rname); LanguageManager.instance.Add("embrace_" + StarNames.SafeName(school.Name) + "_desc", "Praise " + ReligionManager.instance.ReligionMap[religion].high_god_name + ", " + school.Name + " is the way!"); LanguageManager.instance.Add("embrace_" + StarNames.SafeName(school.Name) + "_event_desc", "You embrace " + school.Name + ", a philosophy of " + rname + " that promotes " + schooldata.principles + @". Members of the opposing philosophies will disapprove."); ev.Do(@" id = " + eventID + @" desc = " + eventDesc + @" picture = GFX_evt_kaaba border = GFX_event_normal_frame_religion is_triggered_only = yes hide_from = yes option = { name = " + "embrace_" + StarNames.SafeName(school.Name) + "_desc" + @" add_trait = " + StarNames.SafeName(school.Name) + @" } "); decision.Do(@" potential = { has_dlc = ""Sons of Abraham"" religion = " + religion + @" NOT = { OR = { } } is_ruler = yes age = 16 prisoner = no } allow = { piety = 50 } effect = { add_trait = " + StarNames.SafeName(school.Name) + @" character_event = { id = " + eventID + @" tooltip = " + "embrace_" + StarNames.SafeName(school.Name) + "_event_desc" + @" } } revoke_allowed = { always = no } ai_will_do = { factor = 1 modifier = { factor = " + schooldata.ZealousMod + @" trait = zealous } modifier = { factor = " + schooldata.CynicalMod + @" trait = cynical } modifier = { factor = 1.2 liege = { trait = " + StarNames.SafeName(school.Name) + @" } } modifier = { factor = 0.05 # Slow it down } } "); trait.Do(@" opposites = { " + otherSchools + @" } " + schooldata.effectString + @" customizer = no random = no opposite_opinion = -20 same_opinion = 20 religious = yes "); n++; m.Decisions["embrace_" + StarNames.SafeName(school.Name)] = decision; m.Events["embrace_" + StarNames.SafeName(school.Name)] = ev; m.Traits[StarNames.SafeName(school.Name)] = trait; } return(m); }