Пример #1
0
        public CharacterParser CreateNewCharacter(String culture, String religion, bool bFemale)
        {
            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 = 769 - Rand.Next(60);
            chr.Dynasty = DynastyManager.instance.GetDynasty(CultureManager.instance.CultureMap[culture]);
            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;
        }
Пример #2
0
        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;
        }
Пример #3
0
        public void CreateFamily(int depth = 0, int maxdepth = 4, int minYearForHeirs = -1)
        {
     

            if (depth > maxdepth)
                return;

            int deathdate = -1;
            if (depth == 0)
            {
                deathdate = 768 - 1;
            }
            if (deathdate <= YearOfBirth)
                deathdate = YearOfBirth + 1;

            Father = CharacterManager.instance.CreateNewHistoricCharacter(Dynasty, false, religion, culture, this.YearOfBirth - (16 + Rand.Next(30)), deathdate);
            int max = YearOfBirth - 19;
            int min = Father.YearOfBirth - 5;

            Mother = GetSuitableMotherForChild(religion, culture, min, max, YearOfBirth);
            if (Mother.ID == 1002182)
            {

            }
            Father.Spouses.Add(Mother);
            Mother.Spouses.Add(Father);
            if (Age > 16 && Spouses.Count < Religion.max_wives && !isFemale)
            {
                int numWives = 1;
                if (Age > 30)
                {
                    numWives++;
                }
                if (Age > 40)
                {
                    numWives++;
                }

                numWives = 1;
                min = YearOfBirth - 3;
                max = YearOfBirth + 16;
                max = DateFunctions.MakeDOBAtLeastAdult(max);
                numWives = Math.Min(numWives, Religion.max_wives - Spouses.Count);

                int dateWhenSixteen = YearOfBirth + 16;
                int startAdulthood = dateWhenSixteen;
                if (minYearForHeirs > startAdulthood)
                    startAdulthood = minYearForHeirs;

            }

            if (Father.YearOfDeath < YearOfBirth)
                Father.YearOfDeath = YearOfBirth + 1;
            if (Mother.YearOfDeath < YearOfBirth)
                Mother.YearOfDeath = YearOfBirth + 1;

            Father.CreateFamily(depth + 1, maxdepth);
            Father.Kids.Add(this);
            Mother.Kids.Add(this);
            if (depth < 4)
                Mother.CreateFamily(depth + 1, maxdepth);

            Father.UpdateCultural();
            Mother.UpdateCultural();
            //  Father.SetupExistingDynasty();
            //   Mother.SetupExistingDynasty();
        }