コード例 #1
0
ファイル: FamilyTree.cs プロジェクト: ijedi1234/Attila2CK2
        private void updateDynastyForCharacter(CK2Character character, CK2Dynasty newDynasty, bool canOverwrite, HashSet <int> processed)
        {
            bool hasChar = !(processed.Add(character.getFamilyTreeID()));

            if (hasChar)
            {
                return;
            }
            if (character.getDynasty() == null || canOverwrite)
            {
                character.setDynasty(newDynasty);
            }
            CK2Character father = character.getFather();

            if (father != null)
            {
                //CK2Dynasty fatherDynasty = father.getDynasty();
                //if (fatherDynasty == null || fatherDynasty.getID() != newDynasty.getID())
                updateDynastyForCharacter(father, newDynasty, canOverwrite, processed);
            }
            List <CK2Character> children = character.getChildren();

            if (children != null)
            {
                foreach (CK2Character child in children)
                {
                    //CK2Dynasty childDynasty = child.getDynasty();
                    //if (childDynasty == null || childDynasty.getID() != newDynasty.getID())
                    updateDynastyForCharacter(child, newDynasty, canOverwrite, processed);
                }
            }
        }