public Dynasty GetDynasty(CultureParser culture) { ScriptScope scope = new ScriptScope(); scope.Name = ID.ToString(); ID++; do { Name = culture.dna.GetDynastyName(); } while (Name == null || Name.Trim().Length == 0); var nameScope = new ScriptCommand("name", Name, scope); scope.Add(nameScope); scope.Add(new ScriptCommand("culture", culture.Name, scope)); script.Root.Add(scope); var d = new Dynasty() { ID = ID - 1, Scope = scope, NameScope = nameScope }; d.Color = Color.FromArgb(255, Rand.Next(200) + 55, Rand.Next(200) + 55, Rand.Next(200) + 55); DynastyMap[ID - 1] = d; culture.Dynasties.Add(d); return(d); }
public CharacterParser CreateNewCharacter(Dynasty dynasty, bool bFemale, int dateOfBirth, string religion, String culture) { if (!bInit) { Init(); } var chr = new CharacterParser(); Characters.Add(chr); AliveCharacters.Add(chr); chr.YearOfBirth = dateOfBirth; if (dynasty == null) { dynasty = DynastyManager.instance.GetDynasty(CultureManager.instance.CultureMap[culture]); } chr.Dynasty = dynasty; chr.religion = religion; chr.isFemale = bFemale; chr.culture = culture; chr.YearOfDeath = SimulationManager.instance.Year + 1000; AddedSinceLastPrune.Add(chr); CharacterMap[chr.ID] = chr; chr.SetupExistingDynasty(); chr.UpdateCultural(); return(chr); }
public CharacterParser CreateNewCharacter(Dynasty dynasty, bool bFemale, int dateOfBirth, string religion, String culture) { if (!bInit) { Init(); } // var scope = new ScriptScope(); // scope.Name = CharacterParser.IDMax.ToString(); // scope.SetChild(CharactersScript.Root); var chr = new CharacterParser(); // chr.SetProperty("dynasty", Rand.Next(1235)+1); // chr.SetProperty("culture", new ScriptReference("norse")); // chr.SetProperty("religion", new ScriptReference("pagan")); // chr.DeleteProperty("name"); Characters.Add(chr); chr.YearOfBirth = dateOfBirth; chr.Dynasty = dynasty; chr.religion = religion; chr.isFemale = bFemale; chr.culture = culture; chr.YearOfDeath = 769 + Rand.Next(30); this.CharactersScript.Root.SetChild(chr.Scope); AddedSinceLastPrune.Add(chr); CharacterMap[chr.ID] = chr; chr.SetupExistingDynasty(); chr.UpdateCultural(); return(chr); }
public Dynasty GetDynasty(CultureParser culture) { ScriptScope scope = new ScriptScope(); scope.Name = ID.ToString(); ID++; scope.Add(new ScriptCommand("name", culture.dna.GetDynastyName(), scope)); scope.Add(new ScriptCommand("culture", culture.Name, scope)); script.Root.Add(scope); var d = new Dynasty() {ID = ID - 1, Scope = scope}; DynastyMap[ID - 1] = d; culture.Dynasties.Add(d); return d; }
public CharacterParser CreateNewHistoricCharacter(Dynasty dynasty, bool bFemale, string religion, String culture, int dateOfBirth, int dateOfDeath = -1, bool adult = true) { if (!bInit) { Init(); } // var scope = new ScriptScope(); // scope.Name = CharacterParser.IDMax.ToString(); // scope.SetChild(CharactersScript.Root); var chr = new CharacterParser(); // chr.SetProperty("dynasty", Rand.Next(1235)+1); // chr.SetProperty("culture", new ScriptReference("norse")); // chr.SetProperty("religion", new ScriptReference("pagan")); // chr.DeleteProperty("name"); Characters.Add(chr); chr.YearOfBirth = dateOfBirth; chr.isFemale = bFemale; chr.culture = culture; chr.religion = religion; if (dateOfDeath != -1) { chr.YearOfDeath = dateOfDeath; } else { chr.YearOfDeath = dateOfBirth + Rand.Next(40); if (Rand.Next(4) == 0) { chr.YearOfDeath = dateOfBirth + Rand.Next(80); } if (adult) { chr.YearOfDeath = dateOfBirth + 16 + Rand.Next(80 - 16); } } this.CharactersScript.Root.SetChild(chr.Scope); AddedSinceLastPrune.Add(chr); CharacterMap[chr.ID] = chr; chr.Dynasty = dynasty; chr.SetupExistingDynasty(); chr.UpdateCultural(); // CharacterManager.instance.SetAllDates(chr.YearOfBirth, chr.YearOfDeath, chr.Scope); return(chr); }
public Dynasty GetDynasty(int id, string name, string culture, string religion, ScriptScope scope) { ID = id; Name = name; var nameScope = scope.ChildrenMap["name"] as ScriptCommand; script.Root.Add(scope); var d = new Dynasty() { ID = ID, Scope = scope, NameScope = nameScope }; d.Color = Color.FromArgb(255, Rand.Next(200) + 55, Rand.Next(200) + 55, Rand.Next(200) + 55); DynastyMap[ID] = d; return(d); }
public Dynasty GetDynasty(CultureParser culture) { ScriptScope scope = new ScriptScope(); scope.Name = ID.ToString(); ID++; scope.Add(new ScriptCommand("name", culture.dna.GetDynastyName(), scope)); scope.Add(new ScriptCommand("culture", culture.Name, scope)); script.Root.Add(scope); var d = new Dynasty() { ID = ID - 1, Scope = scope }; DynastyMap[ID - 1] = d; culture.Dynasties.Add(d); return(d); }
public CharacterParser CreateNewHistoricCharacter(Dynasty dynasty, bool bFemale, string religion, String culture, int dateOfBirth, int dateOfDeath = -1, bool adult = true) { if (!bInit) { Init(); } var chr = new CharacterParser(); Characters.Add(chr); AliveCharacters.Add(chr); chr.YearOfBirth = dateOfBirth; chr.isFemale = bFemale; chr.culture = culture; chr.religion = religion; if (dateOfDeath != -1) { chr.YearOfDeath = dateOfDeath; } else { chr.YearOfDeath = dateOfBirth + 150 + Rand.Next(40); if (Rand.Next(4) == 0) { chr.YearOfDeath = dateOfBirth + 150 + Rand.Next(80); } if (adult) { chr.YearOfDeath = dateOfBirth + 150 + 16 + Rand.Next(80 - 16); } } this.CharactersScript.Root.SetChild(chr.Scope); AddedSinceLastPrune.Add(chr); CharacterMap[chr.ID] = chr; chr.Dynasty = dynasty; chr.SetupExistingDynasty(); chr.UpdateCultural(); return(chr); }
public void LoadVanilla() { var files = ModManager.instance.GetFileKeys("common\\dynasties"); foreach (var file in files) { Script s = ScriptLoader.instance.LoadKey(file); foreach (var rootChild in s.Root.Children) { var scope = rootChild as ScriptScope; int id = Convert.ToInt32(scope.Name); String name = scope.GetString("name"); String culture = scope.GetString("culture"); String religion = scope.GetString("religion"); Dynasty d = GetDynasty(id, name, culture, religion, scope); } } }
public CharacterParser CreateNewHistoricCharacter(Dynasty dynasty, bool bFemale, string religion, String culture, int dateOfBirth, int dateOfDeath = -1, bool adult = true) { if (!bInit) Init(); // var scope = new ScriptScope(); // scope.Name = CharacterParser.IDMax.ToString(); // scope.SetChild(CharactersScript.Root); var chr = new CharacterParser(); // chr.SetProperty("dynasty", Rand.Next(1235)+1); // chr.SetProperty("culture", new ScriptReference("norse")); // chr.SetProperty("religion", new ScriptReference("pagan")); // chr.DeleteProperty("name"); Characters.Add(chr); chr.YearOfBirth = dateOfBirth; chr.isFemale = bFemale; chr.culture = culture; chr.religion = religion; if (dateOfDeath != -1) { chr.YearOfDeath = dateOfDeath; } else { chr.YearOfDeath = dateOfBirth + Rand.Next(40); if(Rand.Next(4)==0) chr.YearOfDeath = dateOfBirth + Rand.Next(80); if (adult) chr.YearOfDeath = dateOfBirth + 16 + Rand.Next(80 - 16); } this.CharactersScript.Root.SetChild(chr.Scope); AddedSinceLastPrune.Add(chr); CharacterMap[chr.ID] = chr; chr.Dynasty = dynasty; chr.SetupExistingDynasty(); chr.UpdateCultural(); // CharacterManager.instance.SetAllDates(chr.YearOfBirth, chr.YearOfDeath, chr.Scope); return chr; }
public CharacterParser CreateNewCharacter(Dynasty dynasty, bool bFemale, int dateOfBirth, string religion, String culture) { if (!bInit) Init(); // var scope = new ScriptScope(); // scope.Name = CharacterParser.IDMax.ToString(); // scope.SetChild(CharactersScript.Root); var chr = new CharacterParser(); // chr.SetProperty("dynasty", Rand.Next(1235)+1); // chr.SetProperty("culture", new ScriptReference("norse")); // chr.SetProperty("religion", new ScriptReference("pagan")); // chr.DeleteProperty("name"); Characters.Add(chr); chr.YearOfBirth = dateOfBirth; chr.Dynasty = dynasty; chr.religion = religion; chr.isFemale = bFemale; chr.culture = culture; chr.YearOfDeath = 769 + Rand.Next(30); this.CharactersScript.Root.SetChild(chr.Scope); AddedSinceLastPrune.Add(chr); CharacterMap[chr.ID] = chr; chr.SetupExistingDynasty(); chr.UpdateCultural(); return chr; }
public void HandleTech(CharacterParser chr) { return; var provinces = chr.GetAllProvinces(); foreach (var provinceParser in provinces) { if (provinceParser.economicTechPoints > holdingCost) { bool bTribal = false; if (provinceParser.government == "tribal") { bTribal = true; } if (bTribal) { // work toward feudalism... provinceParser.economicTechPoints -= holdingCost; provinceParser.baronies[0].level++; if (provinceParser.baronies[0].level >= 5) { ScriptScope thing = new ScriptScope(); String barName = provinceParser.baronies[0].title; thing.Name = SimulationManager.instance.Year + ".4.1"; bool done = false; if (numMerchantRepublics < maxMerchantRepublics) { if (provinceParser.Adjacent.Where(p => !p.land && p.Range.Y - p.Range.X > 10).Any() && provinceParser.Title.Liege != null && provinceParser.Title.Liege.Rank == 2 && provinceParser.Title.Liege.CapitalProvince == provinceParser) { if (Rand.Next(4) == 0) { provinceParser.republic = true; thing.Add(new ScriptCommand() { Name = barName, Value = "city" }); done = true; provinceParser.government = "republic"; numMerchantRepublics++; { var chosen = provinceParser.Title.Liege; chosen.Holder.GiveTitleSoft(provinceParser.Title); chosen.CapitalProvince = provinceParser; //chosen.Holder.GiveTitleSoft(provinceParser.Title); //if (provinceParser.Title.Liege != chosen) // chosen.Holder.GiveTitleSoft(provinceParser.Title.Liege); chosen.DoSetLiegeEvent(null); chosen.government = "republic"; provinceParser.Title.government = "republic"; chosen.Scope.Do(@" dignity = 200 # Never want the Republic of Venice to change primary title allow = { is_republic = yes } "); { ScriptScope thingTit = new ScriptScope(); thingTit.Name = SimulationManager.instance.Year + ".4.1"; ScriptScope thingTit3 = new ScriptScope(); thingTit3.Name = SimulationManager.instance.Year + ".4.1"; chosen.titleScripts.Add(thingTit); provinceParser.Title.titleScripts.Add(thingTit3); thingTit.Add(new ScriptCommand() { Name = "law", Value = "succ_patrician_elective" }); thingTit3.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 = chosen.Culture.dna.GetPlaceName(); var sname = StarNames.SafeName(name); while (LanguageManager.instance.Get(sname) != null) { name = chosen.Culture.dna.GetPlaceName(); sname = StarNames.SafeName(name); } chosen.republicdynasties.Add(chosen.Holder.Dynasty.ID); for (int x = 0; x < 4; x++) { Dynasty d = DynastyManager.instance.GetDynasty(chosen.Culture); if (!TitleManager.instance.dynastiesWithPalaces.Contains(d.ID)) { var barony = TitleManager.instance.CreateBaronyScriptScope(null, chosen.Culture); TitleManager.instance.Titles.Add(barony); barony.government = "republicpalace"; barony.republicdynasty = d.ID; barony.culture = chosen.culture; barony.PalaceLocation = provinceParser; barony.republicreligion = chosen.Holder.religion; barony.DoSetLiegeEvent(chosen); var cr = SimulationManager.instance.AddCharacterForTitle(barony, true, false, d); //chosen.Holder.GiveTitleSoft(barony); chosen.Holder.Dynasty.palace = barony; TitleManager.instance.dynastiesWithPalaces.Add(d.ID); chosen.palaces.Add(barony); if (barony.Rank == 0 && barony.government == "republicpalace") { ScriptScope thingTit2 = new ScriptScope(); thingTit2.Name = SimulationManager.instance.Year + ".4.1"; thingTit2.Add(new ScriptCommand() { Name = "holding_dynasty", Value = barony.republicdynasty }); //thing.Add(new ScriptCommand() { Name = "liege", Value = title.republicdynasty }); if (barony.Scope.Find("culture") == null) { barony.Scope.Add(new ScriptCommand() { Name = "culture", Value = chosen.culture }); barony.Scope.Add(new ScriptCommand() { Name = "religion", Value = chosen.Holder.religion }); } barony.titleScripts.Add(thingTit2); } } } if (!TitleManager.instance.dynastiesWithPalaces.Contains(chosen.Holder.Dynasty.ID)) { var barony = TitleManager.instance.CreateBaronyScriptScope(null, chosen.Culture); TitleManager.instance.Titles.Add(barony); barony.government = "republicpalace"; barony.republicdynasty = chosen.Holder.Dynasty.ID; barony.culture = chosen.culture; barony.republicreligion = chosen.Holder.religion; barony.DoSetLiegeEvent(chosen); barony.PalaceLocation = provinceParser; chosen.Holder.GiveTitleSoft(barony); chosen.Holder.Dynasty.palace = barony; chosen.palaces.Add(barony); TitleManager.instance.dynastiesWithPalaces.Add(chosen.Holder.Dynasty.ID); if (barony.Rank == 0 && barony.government == "republicpalace") { ScriptScope thingTit2 = new ScriptScope(); thingTit2.Name = SimulationManager.instance.Year + ".4.1"; thingTit2.Add(new ScriptCommand() { Name = "holding_dynasty", Value = barony.republicdynasty }); //thing.Add(new ScriptCommand() { Name = "liege", Value = title.republicdynasty }); if (barony.Scope.Find("culture") == null) { barony.Scope.Add(new ScriptCommand() { Name = "culture", Value = chosen.culture }); barony.Scope.Add(new ScriptCommand() { Name = "religion", Value = chosen.Holder.religion }); } barony.titleScripts.Add(thingTit2); } } } } if (chosen.Liege != null && chosen.Liege.Rank > chosen.Rank) { thingTit.Add(new ScriptCommand() { Name = "liege", Value = chosen.Liege.Name }); } } } } } } if (!done) { thing.Add(new ScriptCommand() { Name = barName, Value = "castle" }); provinceParser.government = "feudalism"; } provinceParser.militaryTechPoints = 0; provinceParser.dateScripts.Add(thing); if (provinceParser.Title.Holder == chr) { chr.PrimaryTitle.government = "feudalism"; } } } else if (provinceParser.militaryTechPoints > holdingCost) { if (provinceParser.ActiveBaronies < provinceParser.max_settlements) { provinceParser.militaryTechPoints -= holdingCost; ProvinceParser.Barony b = provinceParser.GetLastEnabledBarony(); if (b.level >= 2) { List <String> choices = new List <string>(); b = provinceParser.GetNextBarony(); if (provinceParser.CastleCount == 0) { choices.Add("castle"); } if (provinceParser.TownCount == 0) { choices.Add("city"); } if (provinceParser.TempleCount == 0) { choices.Add("temple"); } if (choices.Count == 0) { choices.Add("castle"); choices.Add("city"); choices.Add("temple"); } { b.enabled = true; b.type = choices[Rand.Next(choices.Count)]; ScriptScope thing = new ScriptScope(); String barName = b.title; thing.Name = SimulationManager.instance.Year + ".4.1"; thing.Add(new ScriptCommand() { Name = barName, Value = b.type }); provinceParser.dateScripts.Add(thing); } } else { b.level++; } } } } } }