From a64acb201d98f61fdf610f4df3e6c864f7384efa Mon Sep 17 00:00:00 2001 From: 3ger <41837307+3ger@users.noreply.github.com> Date: Wed, 27 Dec 2023 09:38:18 +0100 Subject: [PATCH 1/6] Added relation based war declaration "prevention". --- .../GenericConditions/BadRelationCondition.cs | 42 +++++++++++++++++++ .../WarPeace/DeclareWarConditions.cs | 3 +- .../Extensions/ClanExtensions.cs | 7 ++++ .../Extensions/HeroExtensions.cs | 34 +++++++++++++++ src/Bannerlord.Diplomacy/Settings.cs | 16 +++++++ .../Languages/std_module_strings_xml.xml | 16 +++++-- 6 files changed, 114 insertions(+), 4 deletions(-) create mode 100644 src/Bannerlord.Diplomacy/DiplomaticAction/GenericConditions/BadRelationCondition.cs diff --git a/src/Bannerlord.Diplomacy/DiplomaticAction/GenericConditions/BadRelationCondition.cs b/src/Bannerlord.Diplomacy/DiplomaticAction/GenericConditions/BadRelationCondition.cs new file mode 100644 index 00000000..4cf6ed14 --- /dev/null +++ b/src/Bannerlord.Diplomacy/DiplomaticAction/GenericConditions/BadRelationCondition.cs @@ -0,0 +1,42 @@ +using Diplomacy.Extensions; + +using TaleWorlds.CampaignSystem; +using TaleWorlds.Localization; + +namespace Diplomacy.DiplomaticAction.GenericConditions +{ + internal sealed class BadRelationCondition : IDiplomacyCondition + { + public bool ApplyCondition(Kingdom kingdom, + Kingdom otherKingdom, + out TextObject? textObject, + bool forcePlayerCosts = false, + bool bypassCosts = false) + { + textObject = null; + + // if kingdom leaders are friends, do not allow war + if (Settings.Instance!.NoWarBetweenFriends && kingdom.Leader.IsFriend(otherKingdom.Leader)) + { + textObject = new TextObject("{=9aaZ8Ed4}Cannot declare war, kingdom leaders are friends."); + return false; + } + + // if relations are above "good" do not start wars + if (Settings.Instance!.NoWarOnGoodRelations && kingdom.Leader.GetRelation(otherKingdom.Leader) >= Settings.Instance!.NoWarOnGoodRelationsThreshold) + { + textObject = new TextObject("{=Zimavbgw}Cannot declare war, kingdom leaders personal relations are excellent."); + return false; + } + + // if leading clans have marriages between them => no wars + if (Settings.Instance!.NoWarWhenMarriedLeaderClans && kingdom.RulingClan.HasMarriedClanLeaderRelation(otherKingdom.RulingClan)) + { + textObject = new TextObject("{=pXD8Uf2e}Cannot declare war, kingdom leader clans have close family marriages."); + return false; + } + + return true; + } + } +} \ No newline at end of file diff --git a/src/Bannerlord.Diplomacy/DiplomaticAction/WarPeace/DeclareWarConditions.cs b/src/Bannerlord.Diplomacy/DiplomaticAction/WarPeace/DeclareWarConditions.cs index f9f569dd..f87619ef 100644 --- a/src/Bannerlord.Diplomacy/DiplomaticAction/WarPeace/DeclareWarConditions.cs +++ b/src/Bannerlord.Diplomacy/DiplomaticAction/WarPeace/DeclareWarConditions.cs @@ -16,7 +16,8 @@ internal sealed class DeclareWarConditions : AbstractConditionEvaluator GetRebelFactions(this Clan clan) { return default; } + } + + public static bool HasMarriedClanLeaderRelation(this Clan clan, Clan other) + { + // if any relatives are alive and married to other clan => "related by marriage" + return clan.Leader.Spouse?.AllRelatedHeroes().Any(ownSpouseFamMember => ownSpouseFamMember.Clan == other) ?? false + || clan.Leader.AllRelatedHeroes().Any(famMember => famMember.IsAlive && (famMember.Spouse?.AllRelatedHeroes().Any(spouseFamMember => spouseFamMember.Clan == other) ?? false)); } } } \ No newline at end of file diff --git a/src/Bannerlord.Diplomacy/Extensions/HeroExtensions.cs b/src/Bannerlord.Diplomacy/Extensions/HeroExtensions.cs index 6bae39cb..1020a9cf 100644 --- a/src/Bannerlord.Diplomacy/Extensions/HeroExtensions.cs +++ b/src/Bannerlord.Diplomacy/Extensions/HeroExtensions.cs @@ -12,6 +12,40 @@ public static float GetNormalizedTraitValue(this Hero hero, TraitObject trait) var zeroMinMaxTraitLevel = (float) Math.Abs(trait.MinValue) + trait.MaxValue; var zeroMinTraitLevel = hero.GetTraitLevel(trait) + Math.Abs(trait.MinValue); return zeroMinTraitLevel / zeroMinMaxTraitLevel; + } + + public static IEnumerable AllRelatedHeroes(this Hero inHero, bool includeExSpouses = false) + { + if (inHero.Father != null) + { + yield return inHero.Father; + + // father side uncles/aunts are close family + foreach (Hero hero3 in inHero.Father.Siblings) + yield return hero3; + } + + if (inHero.Mother != null) + { + yield return inHero.Mother; + + // mother side uncles/aunts are close family + foreach (Hero hero4 in inHero.Mother.Siblings) + yield return hero4; + } + + if (inHero.Spouse != null) + yield return inHero.Spouse; + + foreach (Hero hero in inHero.Children) + yield return hero; + + foreach (Hero hero2 in inHero.Siblings) + yield return hero2; + + if (includeExSpouses) + foreach (Hero hero3 in inHero.ExSpouses) + yield return hero3; } } } \ No newline at end of file diff --git a/src/Bannerlord.Diplomacy/Settings.cs b/src/Bannerlord.Diplomacy/Settings.cs index a1df160e..aa372298 100644 --- a/src/Bannerlord.Diplomacy/Settings.cs +++ b/src/Bannerlord.Diplomacy/Settings.cs @@ -80,6 +80,22 @@ class Settings : AttributeGlobalSettings [SettingPropertyGroup(HeadingKingdomDiplomacy)] public bool PlayerDiplomacyControl { get; set; } = false; + [SettingPropertyBool(displayName: "{=dRyU9E7Z}No Wars Between Friends", Order = 1001, RequireRestart = false, HintText = "{=XyXJSTKr}If active, kingdom leaders that are friends will not start wars with each other. Default value is enabled.")] + [SettingPropertyGroup(HeadingKingdomDiplomacy)] + public bool NoWarBetweenFriends { get; set; } = true; + + [SettingPropertyBool(displayName: "{=pWoKQ6HO}No Wars If Good Relations", Order = 1002, RequireRestart = false, HintText = "{=bOuGhbPt}If active, wars between leaders of kingdoms will not be allowed if relations are above war start relations. Default value is enabled.")] + [SettingPropertyGroup(HeadingKingdomDiplomacy)] + public bool NoWarOnGoodRelations { get; set; } = true; + + [SettingPropertyInteger("{=x0Aoiomr}No Wars Good Relations Threshold", 0, 100, Order = 1003, RequireRestart = false, HintText = "{=aH6rpjt6}The relation value of kingdom leaders after which kingdoms will not start wars with each other. Default value is 30.")] + [SettingPropertyGroup(HeadingKingdomDiplomacy)] + public int NoWarOnGoodRelationsThreshold { get; set; } = 30; + + [SettingPropertyInteger("{=jwNKk8P7}No Wars When Married", 0, 100, Order = 1004, RequireRestart = false, HintText = "{=xcMzKH48}If active, kingdom leader clans that have a marriage between each other will not start wars. Default value is active.")] + [SettingPropertyGroup(HeadingKingdomDiplomacy)] + public bool NoWarWhenMarriedLeaderClans { get; set; } = true; + // Messengers [SettingPropertyBool("{=nwTyegdV}Enable Messengers Accidents", Order = 0, RequireRestart = false, HintText = "{=T7yybpw3}If enabled, adds a small chance of failure for messengers. The longer the journey, the higher the chance of an accident on the road. Default value is enabled.")] diff --git a/src/Bannerlord.Diplomacy/_Module/ModuleData/Languages/std_module_strings_xml.xml b/src/Bannerlord.Diplomacy/_Module/ModuleData/Languages/std_module_strings_xml.xml index 61012399..13187f6e 100644 --- a/src/Bannerlord.Diplomacy/_Module/ModuleData/Languages/std_module_strings_xml.xml +++ b/src/Bannerlord.Diplomacy/_Module/ModuleData/Languages/std_module_strings_xml.xml @@ -14,10 +14,13 @@ + + + + - @@ -136,7 +139,7 @@ - + @@ -184,6 +187,14 @@ + + + + + + + + @@ -245,7 +256,6 @@ - From 8408c0c4ed8b67379a48a7e8f9a009971a943f29 Mon Sep 17 00:00:00 2001 From: 3ger <41837307+3ger@users.noreply.github.com> Date: Wed, 27 Dec 2023 10:38:26 +0100 Subject: [PATCH 2/6] Missing using fixed --- src/Bannerlord.Diplomacy/Extensions/HeroExtensions.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Bannerlord.Diplomacy/Extensions/HeroExtensions.cs b/src/Bannerlord.Diplomacy/Extensions/HeroExtensions.cs index 1020a9cf..49477f74 100644 --- a/src/Bannerlord.Diplomacy/Extensions/HeroExtensions.cs +++ b/src/Bannerlord.Diplomacy/Extensions/HeroExtensions.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using TaleWorlds.CampaignSystem; using TaleWorlds.CampaignSystem.CharacterDevelopment; From 9769aa781479a6f42d7cdbcc3f03bae612ea89b1 Mon Sep 17 00:00:00 2001 From: 3ger <41837307+3ger@users.noreply.github.com> Date: Wed, 27 Dec 2023 17:58:05 +0100 Subject: [PATCH 3/6] Added modifier to alliance tendency when leader clans married --- .../DiplomaticAction/AbstractScoringModel.cs | 8 ++++++++ .../DiplomaticAction/Alliance/AllianceScoringModel.cs | 3 +++ .../NonAggressionPact/NonAggressionPactScoringModel.cs | 1 + src/Bannerlord.Diplomacy/Settings.cs | 4 ++++ .../ModuleData/Languages/std_module_strings_xml.xml | 6 +++++- 5 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/Bannerlord.Diplomacy/DiplomaticAction/AbstractScoringModel.cs b/src/Bannerlord.Diplomacy/DiplomaticAction/AbstractScoringModel.cs index fff520ba..085533cd 100644 --- a/src/Bannerlord.Diplomacy/DiplomaticAction/AbstractScoringModel.cs +++ b/src/Bannerlord.Diplomacy/DiplomaticAction/AbstractScoringModel.cs @@ -32,6 +32,11 @@ public virtual ExplainedNumber GetScore(Kingdom ourKingdom, Kingdom otherKingdom if (!ourKingdom.IsStrong()) explainedNum.Add(Scores.BelowMedianStrength, _TWeakKingdom); + // Marriage score + + if (Settings.Instance!.LeaderClanMarriageAffectsAlliance && ourKingdom.RulingClan.HasMarriedClanLeaderRelation(otherKingdom.RulingClan)) + explainedNum.Add(Scores.LeaderClanMarriage, CreateTextWithKingdom(SMarriageWithLeaderClan, otherKingdom)); + // Common Enemies var commonEnemies = FactionManager.GetEnemyKingdoms(ourKingdom).Intersect(FactionManager.GetEnemyKingdoms(otherKingdom)); @@ -129,6 +134,8 @@ public interface IDiplomacyScores public int Relationship { get; } public int Tendency { get; } + + public int LeaderClanMarriage { get; } } private static readonly TextObject _TWeakKingdom = new("{=q5qphBwi}Weak Kingdom"); @@ -139,6 +146,7 @@ public interface IDiplomacyScores private const string SWarWithKingdom = "{=RqQ4oqvl}War with {KINGDOM}"; private const string SAllianceWithKingdom = "{=cmOSpfyW}Alliance with {KINGDOM}"; private const string SPactWithKingdom = "{=t6YhBLj7}Non-Aggression Pact with {KINGDOM}"; + private const string SMarriageWithLeaderClan = "{=BjkwaNot}Marriage with leading clan of {KINGDOM}"; private const string SCommonEnemy = SWarWithKingdom; private const string SAlliedToEnemy = SAllianceWithKingdom; diff --git a/src/Bannerlord.Diplomacy/DiplomaticAction/Alliance/AllianceScoringModel.cs b/src/Bannerlord.Diplomacy/DiplomaticAction/Alliance/AllianceScoringModel.cs index 2ff15609..4f858255 100644 --- a/src/Bannerlord.Diplomacy/DiplomaticAction/Alliance/AllianceScoringModel.cs +++ b/src/Bannerlord.Diplomacy/DiplomaticAction/Alliance/AllianceScoringModel.cs @@ -21,7 +21,10 @@ public class AllianceScores : IDiplomacyScores public int Tendency => Settings.Instance!.AllianceTendency; public int NonAggressionPactWithEnemy => -1000; + public int NonAggressionPactWithNeutral => -10; + + public int LeaderClanMarriage => 50; } } } \ No newline at end of file diff --git a/src/Bannerlord.Diplomacy/DiplomaticAction/NonAggressionPact/NonAggressionPactScoringModel.cs b/src/Bannerlord.Diplomacy/DiplomaticAction/NonAggressionPact/NonAggressionPactScoringModel.cs index d214c470..1743034f 100644 --- a/src/Bannerlord.Diplomacy/DiplomaticAction/NonAggressionPact/NonAggressionPactScoringModel.cs +++ b/src/Bannerlord.Diplomacy/DiplomaticAction/NonAggressionPact/NonAggressionPactScoringModel.cs @@ -15,6 +15,7 @@ public class NonAggressionPactScores : IDiplomacyScores public int Tendency => Settings.Instance!.NonAggressionPactTendency; public int NonAggressionPactWithEnemy => -20; public int NonAggressionPactWithNeutral => -10; + public int LeaderClanMarriage => 50; } } } \ No newline at end of file diff --git a/src/Bannerlord.Diplomacy/Settings.cs b/src/Bannerlord.Diplomacy/Settings.cs index aa372298..0fcf9c3e 100644 --- a/src/Bannerlord.Diplomacy/Settings.cs +++ b/src/Bannerlord.Diplomacy/Settings.cs @@ -68,6 +68,10 @@ class Settings : AttributeGlobalSettings [SettingPropertyGroup(HeadingKingdomDiplomacy)] public int MinimumAllianceDuration { get; set; } = 42; + [SettingPropertyBool("{=xXKKRp99}Leader Clan Family Marriage Affects Alliance", Order = 33, RequireRestart = false, HintText = "{=BGS6mUID}If active, will grant a bonus to alliance tendency when leader clans have a family marriage between them. Default value is active.")] + [SettingPropertyGroup(HeadingKingdomDiplomacy)] + public bool LeaderClanMarriageAffectsAlliance { get; set; } = true; + [SettingPropertyInteger("{=V35hUfcc}Non-Aggression Pact Duration in Days", 0, 1000, Order = 50, RequireRestart = false, HintText = "{=KXLGZEPh}The duration (in days) that a non-aggression pact will last. Default value is 84 (one standard game year).")] [SettingPropertyGroup(HeadingKingdomDiplomacy)] public int NonAggressionPactDuration { get; set; } = 84; diff --git a/src/Bannerlord.Diplomacy/_Module/ModuleData/Languages/std_module_strings_xml.xml b/src/Bannerlord.Diplomacy/_Module/ModuleData/Languages/std_module_strings_xml.xml index 13187f6e..3ada5da7 100644 --- a/src/Bannerlord.Diplomacy/_Module/ModuleData/Languages/std_module_strings_xml.xml +++ b/src/Bannerlord.Diplomacy/_Module/ModuleData/Languages/std_module_strings_xml.xml @@ -126,6 +126,7 @@ + @@ -195,7 +196,10 @@ - + + + + From 9574430423979ac48b894e547b6649f0b56a3b2d Mon Sep 17 00:00:00 2001 From: Rogue-Demon-King <155316169+Rogue-Demon-King@users.noreply.github.com> Date: Wed, 3 Jan 2024 12:17:25 +0100 Subject: [PATCH 4/6] Update ClansPanel.xml Removed "OverlayTextureScale" properties in line with base game files. Caused clan banners to appear stretched out and cropped. --- .../GUI/Prefabs/KingdomManagement/Clan/ClansPanel.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Bannerlord.Diplomacy/_Module/GUI/Prefabs/KingdomManagement/Clan/ClansPanel.xml b/src/Bannerlord.Diplomacy/_Module/GUI/Prefabs/KingdomManagement/Clan/ClansPanel.xml index 042c5df3..56c17bc5 100644 --- a/src/Bannerlord.Diplomacy/_Module/GUI/Prefabs/KingdomManagement/Clan/ClansPanel.xml +++ b/src/Bannerlord.Diplomacy/_Module/GUI/Prefabs/KingdomManagement/Clan/ClansPanel.xml @@ -149,7 +149,7 @@ - + @@ -187,7 +187,7 @@ --> - + @@ -395,4 +395,4 @@ - \ No newline at end of file + From b5263717fc92690dfa9ecc189be832d20938a626 Mon Sep 17 00:00:00 2001 From: Rogue-Demon-King <155316169+Rogue-Demon-King@users.noreply.github.com> Date: Wed, 3 Jan 2024 13:00:14 +0100 Subject: [PATCH 5/6] Update DiplomacyPanelCustom.xml Removed "OverlayTextureScale" properties in line with base game files. Caused clan banners to appear stretched out and cropped. Updated to Widget using Sprite with base game files as base Rebuilt using base game files as base Re-added It's redundant info if viewing Overview tab, but is in base game files and prefer to have it --- .../Diplomacy/DiplomacyPanelCustom.xml | 169 ++++++++++-------- 1 file changed, 96 insertions(+), 73 deletions(-) diff --git a/src/Bannerlord.Diplomacy/_Module/GUI/Prefabs/KingdomManagement/Diplomacy/DiplomacyPanelCustom.xml b/src/Bannerlord.Diplomacy/_Module/GUI/Prefabs/KingdomManagement/Diplomacy/DiplomacyPanelCustom.xml index 860a746e..5815dff9 100644 --- a/src/Bannerlord.Diplomacy/_Module/GUI/Prefabs/KingdomManagement/Diplomacy/DiplomacyPanelCustom.xml +++ b/src/Bannerlord.Diplomacy/_Module/GUI/Prefabs/KingdomManagement/Diplomacy/DiplomacyPanelCustom.xml @@ -34,12 +34,12 @@ - + - + - - + + @@ -47,29 +47,21 @@ - + - - - + + + - - - - - - - - - - - + + + + - @@ -79,47 +71,29 @@ - - - - - - - - - - - - - + + + + + - - - + + + - + - - - - - - - - - - - - - + + + + - @@ -134,6 +108,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -141,19 +155,6 @@ - - - @@ -179,7 +180,7 @@ - + @@ -215,7 +216,7 @@ - + @@ -300,7 +301,7 @@ - + @@ -329,7 +330,7 @@ - + @@ -345,6 +346,7 @@ + @@ -391,13 +393,13 @@ - + - + @@ -435,12 +437,33 @@ + + + + + + + + + + + + + + + + + + + + + + - - + - \ No newline at end of file + From 44fceccaa577705a44f123026253d5335b08988b Mon Sep 17 00:00:00 2001 From: Benny Zlotnik Date: Sat, 17 Feb 2024 13:44:32 +0200 Subject: [PATCH 6/6] Prepare 1.2.11 --- build/common.props | 12 ++++++------ changelog.txt | 7 +++++++ .../CampaignBehaviors/CivilWarBehavior.cs | 2 +- src/Bannerlord.Diplomacy/SubModule.cs | 4 ++++ .../ViewModel/RebelFactionsVM.cs | 2 +- .../ViewModel/WarExhaustionMapIndicatorVM.cs | 4 ++-- supported-game-versions.txt | 12 ++---------- 7 files changed, 23 insertions(+), 20 deletions(-) diff --git a/build/common.props b/build/common.props index fcdf70f9..685dee91 100644 --- a/build/common.props +++ b/build/common.props @@ -2,24 +2,24 @@ - 1.2.10 + 1.2.11 1.0.0 - 1.1.0.102 + 1.1.0.104 2.2.2 - 2.8.11 + 2.8.16 - 5.9.1 + 5.9.2 - 2.8.0 + 2.11.0 - 3.0.0.137 + 3.0.0.138 5.0.209 diff --git a/changelog.txt b/changelog.txt index 602f231c..3b105973 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,11 @@ --------------------------------------------------------------------------------------------------- +Version: 1.2.11 +Game Versions: v1.1.1,v1.1.2,v1.1.3,v1.1.4,v1.1.5,v1.1.6,v1.2.0,v1.2.1,v1.2.2,v1.2.3,v1.2.4,v1.2.5,v1.2.6,v1.2.7,v1.2.8,1.2.9 +* Add support for v1.2.9 +* UI fixes (Rogue-Demon-King) +* Alliance tendency bonus on leader clan marriages (eg3r) +* Relation based war declaration (eg3r) +--------------------------------------------------------------------------------------------------- Version: 1.2.10 Game Versions: v1.0.0,v1.0.1,v1.0.2,v1.0.3,v1.1.0,v1.1.1,v1.1.2,v1.1.3,v1.1.4,v1.1.5,v1.1.6,v1.2.0,v1.2.1,v1.2.2,v1.2.3,v1.2.4,v1.2.5,v1.2.6,v1.2.7,v1.2.8 * Add support for v1.2.6,v1.2.7,v1.2.8 diff --git a/src/Bannerlord.Diplomacy/CampaignBehaviors/CivilWarBehavior.cs b/src/Bannerlord.Diplomacy/CampaignBehaviors/CivilWarBehavior.cs index 21cf7d3d..f6561e42 100644 --- a/src/Bannerlord.Diplomacy/CampaignBehaviors/CivilWarBehavior.cs +++ b/src/Bannerlord.Diplomacy/CampaignBehaviors/CivilWarBehavior.cs @@ -25,7 +25,7 @@ internal sealed class CivilWarBehavior : CampaignBehaviorBase public override void RegisterEvents() { CampaignEvents.DailyTickClanEvent.AddNonSerializedListener(this, DailyTickClan); -#if v124 || v125 || v126 || v127 || v128 +#if v124 || v125 || v126 || v127 || v128 || v129 CampaignEvents.OnClanChangedKingdomEvent.AddNonSerializedListener(this, (x, y, z, _, _) => RemoveClanFromRebelFaction(x, y, z)); #elif v100 || v101 || v102 || v103 || v110 || v111 || v112 || v113 || v114 || v115 || v116 || v120 || v121 || v122 || v123 CampaignEvents.ClanChangedKingdom.AddNonSerializedListener(this, (x, y, z, _, _) => RemoveClanFromRebelFaction(x, y, z)); diff --git a/src/Bannerlord.Diplomacy/SubModule.cs b/src/Bannerlord.Diplomacy/SubModule.cs index cbe38f6a..d855d3a3 100644 --- a/src/Bannerlord.Diplomacy/SubModule.cs +++ b/src/Bannerlord.Diplomacy/SubModule.cs @@ -47,7 +47,11 @@ protected override void OnSubModuleLoad() base.OnSubModuleLoad(); Instance = this; +#if v129 + var extender = UIExtender.Create(Name); +#else var extender = new UIExtender(Name); +#endif extender.Register(typeof(SubModule).Assembly); extender.Enable(); diff --git a/src/Bannerlord.Diplomacy/ViewModel/RebelFactionsVM.cs b/src/Bannerlord.Diplomacy/ViewModel/RebelFactionsVM.cs index 6b37a8ba..57eaa118 100644 --- a/src/Bannerlord.Diplomacy/ViewModel/RebelFactionsVM.cs +++ b/src/Bannerlord.Diplomacy/ViewModel/RebelFactionsVM.cs @@ -139,7 +139,7 @@ public void OnCreateFaction() inquiryElements, true, 1, -#if v120 || v121 || v122 || v123 || v124 || v125 || v126 || v127 || v128 +#if v120 || v121 || v122 || v123 || v124 || v125 || v126 || v127 || v128 || v129 1, #endif GameTexts.FindText("str_ok").ToString(), diff --git a/src/Bannerlord.Diplomacy/ViewModel/WarExhaustionMapIndicatorVM.cs b/src/Bannerlord.Diplomacy/ViewModel/WarExhaustionMapIndicatorVM.cs index 001bd106..7b6f8488 100644 --- a/src/Bannerlord.Diplomacy/ViewModel/WarExhaustionMapIndicatorVM.cs +++ b/src/Bannerlord.Diplomacy/ViewModel/WarExhaustionMapIndicatorVM.cs @@ -19,7 +19,7 @@ public WarExhaustionMapIndicatorVM() _kingdomsAtWar = new MBBindingList(); RefreshValues(); DiplomacyEvents.WarExhaustionInitialized.AddNonSerializedListener(this, HandleStanceChange); -#if v124 || v125 || v126 || v127 || v128 +#if v124 || v125 || v126 || v127 || v128 || v129 CampaignEvents.OnClanChangedKingdomEvent.AddNonSerializedListener(this, (x, _, _, _, _) => HandleClanChangedKingdom(x)); #elif v100 || v101 || v102 || v103 || v110 || v111 || v112 || v113 || v114 || v115 || v116 || v120 || v121 || v122 || v123 CampaignEvents.ClanChangedKingdom.AddNonSerializedListener(this, (x, _, _, _, _) => HandleClanChangedKingdom(x)); @@ -51,7 +51,7 @@ public override void OnFinalize() { base.OnFinalize(); -#if v124 || v125 || v126 || v127 || v128 +#if v124 || v125 || v126 || v127 || v128 || v129 CampaignEvents.OnClanChangedKingdomEvent.ClearListeners(this); #elif v100 || v101 || v102 || v103 || v110 || v111 || v112 || v113 || v114 || v115 || v116 || v120 || v121 || v122 || v123 CampaignEvents.ClanChangedKingdom.ClearListeners(this); diff --git a/supported-game-versions.txt b/supported-game-versions.txt index 2096b4dc..f0b0f727 100644 --- a/supported-game-versions.txt +++ b/supported-game-versions.txt @@ -1,3 +1,4 @@ +v1.2.9 v1.2.8 v1.2.7 v1.2.6 @@ -8,13 +9,4 @@ v1.2.2 v1.2.1 v1.2.0 v1.1.6 -v1.1.5 -v1.1.4 -v1.1.3 -v1.1.2 -v1.1.1 -v1.1.0 -v1.0.3 -v1.0.2 -v1.0.1 -v1.0.0 \ No newline at end of file +v1.1.5 \ No newline at end of file