private void updateHumanRecords(double elapsedSeconds)
        {
            var validRecords = HumanRecords.GetValidRecords();

            foreach (var record in validRecords)
            {
                record.Human.Update(elapsedSeconds);
            }
        }
        public override bool FininalizeSystem()
        {
            MarriageRecords.RemoveObseleteRecords();
            DivorceRecords.RemoveObseleteRecords();
            HumanRecords.RemoveObseleteRecords();
            DieRecords.RemoveObseleteRecords();

            return(base.FininalizeSystem());
        }
        public override bool InitializeSystem()
        {
            HumanSex sex            = RandomSelector.GetRandomEnumValue <HumanSex>();
            var      family1Husband = HumanRecords.CreateRecord(null, RandomSelector.GetRandomName(HumanSex.Male), HumanSex.Male);
            var      family1Wife    = HumanRecords.CreateRecord(null, RandomSelector.GetRandomName(HumanSex.Female), HumanSex.Female);

            var family2Husband = HumanRecords.CreateRecord(null, RandomSelector.GetRandomName(HumanSex.Male), HumanSex.Male);
            var family2Wife    = HumanRecords.CreateRecord(null, RandomSelector.GetRandomName(HumanSex.Female), HumanSex.Female);

            MarriageRecords.CreateRecord(family1Husband.Human as Man, family1Wife.Human as Woman);
            MarriageRecords.CreateRecord(family2Husband.Human as Man, family2Wife.Human as Woman);

            return(base.InitializeSystem());
        }
        public List <Woman> GetSuitableWomenForMarriage(Man man)
        {
            List <Woman> suitableWomen = new List <Woman>();

            var unMarriedWomen = HumanRecords.GetUnmarriedWomenRecords();
            var manRecord      = HumanRecords.GetRecord(man);
            var manFamilyTree  = new FamilyTree(CivilManager, manRecord);

            foreach (var woman in unMarriedWomen)
            {
                int level;
                var foundNode = manFamilyTree.FindHuman(woman.Human, out level);
                if (foundNode != null && level == 1)
                {
                    suitableWomen.Add((Woman)foundNode.Data.Human);
                }
                else if (foundNode == null)
                {
                    suitableWomen.Add((Woman)woman.Human);
                }
            }

            return(suitableWomen);
        }