From 01cb79e43a75e3e8560cc42f4f3d318cd65b2f4c Mon Sep 17 00:00:00 2001 From: Seweryn Presnal Date: Mon, 2 Sep 2024 02:20:00 +0200 Subject: [PATCH] Discard `add_opinion` effects in vanilla CK3 characters --- .../CK3/Characters/CharactersLoader.cs | 4 +++- .../CK3/Dynasties/DynastyCollection.cs | 19 ++++++++++--------- 2 files changed, 13 insertions(+), 10 deletions(-) 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;