diff --git a/ImperatorToCK3/CK3/Characters/CharactersLoader.cs b/ImperatorToCK3/CK3/Characters/CharactersLoader.cs index bc3af715b..703c48df5 100644 --- a/ImperatorToCK3/CK3/Characters/CharactersLoader.cs +++ b/ImperatorToCK3/CK3/Characters/CharactersLoader.cs @@ -30,7 +30,9 @@ public void LoadCK3Characters(ModFilesystem ck3ModFS, Date bookmarkDate) { string[] irrelevantEffects = ["set_relation_rival", "set_relation_potential_rival", "set_relation_nemesis", "set_relation_lover", "set_relation_soulmate", "set_relation_friend", "set_relation_potential_friend", "set_relation_best_friend", - "set_relation_ward", "set_relation_mentor",]; + "set_relation_ward", "set_relation_mentor", + "add_opinion", + ]; foreach (var character in loadedCharacters) { // Remove post-bookmark history except for births and deaths. diff --git a/ImperatorToCK3/CK3/Dynasties/DynastyCollection.cs b/ImperatorToCK3/CK3/Dynasties/DynastyCollection.cs index 2ba25c4b7..59f91d6a2 100644 --- a/ImperatorToCK3/CK3/Dynasties/DynastyCollection.cs +++ b/ImperatorToCK3/CK3/Dynasties/DynastyCollection.cs @@ -146,14 +146,15 @@ public void FlattenDynastiesWithNoFounders(CharacterCollection characters, House continue; } - var dynastyHouses = houses.Where(h => h.DynastyId == dynasty.Id).ToArray(); - List cadetHouseMembers = []; - foreach (var house in dynastyHouses) { - var houseMembers = characters.Where(c => c.GetDynastyHouseId(date) == house.Id); - cadetHouseMembers.AddRange(houseMembers); - } + var dynastyHouseIds = houses + .Where(h => h.DynastyId == dynasty.Id) + .Select(h => h.Id) + .ToArray(); + var cadetHouseMembers = characters + .Where(c => dynastyHouseIds.Contains(c.GetDynastyHouseId(date))) + .ToArray(); - if (cadetHouseMembers.Count == 0) { + if (cadetHouseMembers.Length == 0) { continue; } @@ -163,8 +164,8 @@ public void FlattenDynastiesWithNoFounders(CharacterCollection characters, House } // Remove all the cadet houses. - foreach (var house in dynastyHouses) { - houses.Remove(house.Id); + foreach (var houseId in dynastyHouseIds) { + houses.Remove(houseId); } ++count;