public void AssignAndSave() { if (!Directory.Exists(Globals.ModDir + "gfx\\flags\\")) { Directory.CreateDirectory(Globals.ModDir + "gfx\\flags\\"); } var files = Directory.GetFiles(Globals.ModDir + "gfx\\flags\\"); foreach (var file in files) { File.Delete(file); } files = Directory.GetFiles(Globals.GameDir + "gfx\\flags\\"); Bitmap bmp = new Bitmap(2048, 2048); bmpList.Add(bmp); int x = 0; int y = 0; int w = 76; List <String> filenames = new List <string>(files); int n = 0; int sheets = 0; foreach (var titleParser in TitleManager.instance.Titles) { if (titleParser.Rank < 1) { continue; } SolidBrush b = new SolidBrush(Color.FromArgb(255, Rand.Next(255), Rand.Next(255), Rand.Next(255))); Graphics g = Graphics.FromImage(bmp); int xx = x * w; int yy = y * w; int i = Rand.Next(filenames.Count); String str = filenames[i]; if (File.Exists(Globals.ModDir + "gfx\\flags\\" + titleParser.Name + ".tga")) { File.Delete(Globals.ModDir + "gfx\\flags\\" + titleParser.Name + ".tga"); } File.Copy(str, Globals.ModDir + "gfx\\flags\\" + titleParser.Name + ".tga"); b.Dispose(); } foreach (var titleParser in TitleManager.instance.mercs) { SolidBrush b = new SolidBrush(Color.FromArgb(255, Rand.Next(255), Rand.Next(255), Rand.Next(255))); Graphics g = Graphics.FromImage(bmp); int xx = x * w; int yy = y * w; int i = Rand.Next(filenames.Count); String str = filenames[i]; if (File.Exists(Globals.ModDir + "gfx\\flags\\" + titleParser + ".tga")) { File.Delete(Globals.ModDir + "gfx\\flags\\" + titleParser + ".tga"); } File.Copy(str, Globals.ModDir + "gfx\\flags\\" + titleParser + ".tga"); b.Dispose(); } }
public void SaveTitles() { foreach (var titleParser in Titles) { if (titleParser.Name == "b_sasaka") { int gfdg = 0; } if (titleParser.culture == null) { if (titleParser.Dejure != null) { titleParser.culture = titleParser.Dejure.culture; } else { titleParser.culture = "urtru"; } } if (titleParser.Rank > 1 && titleParser.Scope.Find("capital") == null) { } var p = titleParser.GetAllProvinces(); bool bFound = false; foreach (var provinceParser in p) { if (provinceParser.id == titleParser.capital) { bFound = true; break; } } if (!bFound && p.Count > 0) { var ca = p[Rand.Next(p.Count)]; titleParser.capital = ca.id; var cap = (titleParser.Scope.Find("capital") as ScriptCommand); if (cap == null) { titleParser.Scope.Add(new ScriptCommand("capital", ca.id, titleParser.Scope)); } else { cap.Value = ca.id; } titleParser.CapitalProvince = ca; if (titleParser.Holder != null) { titleParser.Holder.GiveTitleSoftPlusIntermediate(titleParser.CapitalProvince.Title); } } int h = 0; foreach (var child in titleParser.Scope.Children) { ScriptScope scope = child as ScriptScope; } String tit = titleParser.Culture.dna.kingTitle; switch (titleParser.Rank) { case 0: tit = titleParser.Culture.dna.baronTitle; break; case 1: tit = titleParser.Culture.dna.countTitle; break; case 2: tit = titleParser.Culture.dna.dukeTitle; break; case 3: tit = titleParser.Culture.dna.kingTitle; break; case 4: tit = titleParser.Culture.dna.empTitle; break; } if (titleParser.Rank > 0) { if (!titleParser.Scope.HasNamed("culture")) { titleParser.Scope.Add(new ScriptCommand() { Name = "culture", Value = titleParser.culture }); } } if (tit == null) { } if (tit != null && tit.Trim().Length > 0) { if (!titleParser.Scope.HasNamed("title_female") && !titleParser.Scope.HasNamed("title")) { titleParser.Scope.Do( @" title=" + tit + @" title_female=" + tit + @" " ); } } } if (!Directory.Exists(Globals.ModDir + "history\\titles\\")) { Directory.CreateDirectory(Globals.ModDir + "history\\titles\\"); } var files = Directory.GetFiles(Globals.ModDir + "history\\titles\\"); foreach (var file in files) { File.Delete(file); } for (int index = 0; index < Titles.Count; index++) { var title = Titles[index]; if (title.Name == "b_sasaka") { } if (!title.Active && title.Rank > 0) { continue; } if (title.Religious) { } Script titleScript = ScriptLoader.instance.Load(Globals.GameDir + "history\\titles\\" + title.Name + ".txt"); titleScript.Root.Clear(); /* ScriptScope thing = new ScriptScope(); * thing.Name = "1.1.1"; * titleScript.Root.SetChild(thing);*/ /* * if (title.government == "republic") * { * thing.Add(new ScriptCommand() {Name = "law", Value = "succ_patrician_elective"}); * // if (title.Liege != null && title.Rank == 0 && title.TopmostTitle.government == "republic") * { * // if (title.Liege.Owns[0].baronies[0].title == title.Name) * { * var name = title.Culture.dna.GetPlaceName(); * var sname = StarNames.SafeName(name); * while (LanguageManager.instance.Get(sname) != null) * { * name = title.Culture.dna.GetPlaceName(); * sname = StarNames.SafeName(name); * } * if (!dynastiesWithPalaces.Contains(title.Holder.Dynasty.ID)) * { * var barony = TitleManager.instance.CreateBaronyScriptScope(null, title.Culture); * Titles.Add(barony); * barony.government = "republicpalace"; * barony.republicdynasty = title.Holder.Dynasty.ID; * barony.culture = title.culture; * barony.republicreligion = title.Holder.religion; * barony.Liege = title; * title.Holder.GiveTitleSoft(barony); * dynastiesWithPalaces.Add(title.Holder.Dynasty.ID); * * } * } * } * } */ if (title.Liege != null && title.Liege.Rank > title.Rank) { // thing.Add(new ScriptCommand() {Name = "liege", Value = title.Liege.Name}); } /* if (title.Rank == 0 && title.government == "republicpalace") * { * * thing.Add(new ScriptCommand() { Name = "holding_dynasty", Value = title.republicdynasty }); * //thing.Add(new ScriptCommand() { Name = "liege", Value = title.republicdynasty }); * if (title.Scope.Find("culture") == null) * { * title.Scope.Add(new ScriptCommand() { Name = "culture", Value = title.culture }); * title.Scope.Add(new ScriptCommand() { Name = "religion", Value = title.republicreligion }); * * } * }*/ // titleScript.Root.SetChild(thing); foreach (var scriptScope in title.titleScripts) { int v = 2; if (!scriptScope.FromVanilla) { while (titleScript.Root.HasNamed(scriptScope.Name)) { var indexOf = scriptScope.Name.LastIndexOf(".");//(v - 1)); scriptScope.Name = scriptScope.Name.Substring(0, indexOf) + "." + v; v++; } } titleScript.Root.SetChild(scriptScope); } /* TitleParser lastLiege = null; * foreach (var heldDate in title.heldDates) * { * ScriptScope thing = new ScriptScope(); * thing.Name = heldDate.date+".1.1"; * titleScript.Root.SetChild(thing); * if (title.Culture.dna.horde) * thing.Add(new ScriptCommand() { Name = "historical_nomad", Value = true }); * * if (title.Liege != null && title.Liege.Rank > title.Rank && title.Liege != lastLiege) * { * thing.Add(new ScriptCommand() { Name = "liege", Value = title.Liege.Name }); * lastLiege = title.Liege; * } * * // if (title.Holder != null) * { * thing.Add(new ScriptCommand() { Name = "holder", Value = heldDate.chrid }); * * // title.Holder.MakeAlive(); * } * * } * /* { * * { * ScriptScope thing = new ScriptScope(); * thing.Name = "1.1.1"; * titleScript.Root.SetChild(thing); * if (title.Culture.dna.horde) * thing.Add(new ScriptCommand() { Name = "historical_nomad", Value = true }); * * if (title.Liege != null) * { * thing.Add(new ScriptCommand() { Name = "liege", Value = title.Liege.Name }); * * } * * if (title.Holder != null) * { * thing.Add(new ScriptCommand() { Name = "holder", Value = title.Holder.ID }); * * // title.Holder.MakeAlive(); * } * else if (title.SubTitles.Count > 0 && title.Rank >= 2 && title.Holder == null) * { * * thing.Add(new ScriptCommand() { Name = "holder", Value = title.SubTitles.Values.ToArray()[0].Holder.ID }); * // title.SubTitles.Values.ToArray()[0].Holder.MakeAlive(); * } * thing = new ScriptScope(); * thing.Name = SimulationManager.instance.Year + ".1.1"; * titleScript.Root.SetChild(thing); * if (title.CurrentHolder != null) * { * thing.Add(new ScriptCommand() { Name = "holder", Value = title.CurrentHolder.ID }); * * } * * * } * * * } */ titleScript.Save(); } }
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); }
public TitleParser CreateDukeScriptScope(ProvinceParser capital, String name = null) { if (capital.title == "c_keysay") { } 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); if (TitleManager.instance.TitleMap.ContainsKey("d_" + place)) { return(CreateDukeScriptScope(capital, name)); } LanguageManager.instance.Add(place, text); scope.Name = "d_" + place; LanguageManager.instance.Add(scope.Name, text); } else { scope.Name = "d_" + name; if (TitleManager.instance.TitleMap.ContainsKey(scope.Name)) { return(CreateDukeScriptScope(capital)); } } // 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); }