diff --git a/RePrint/src/CHANGELOG.md b/RePrint/src/CHANGELOG.md index c4738d1..fa9431a 100644 --- a/RePrint/src/CHANGELOG.md +++ b/RePrint/src/CHANGELOG.md @@ -51,4 +51,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - "mod adds carepackages, even if you disabled them in your game" - Now mod respects this setting on game creation step \ No newline at end of file + Now mod respects this setting on game creation step + +## [1.4.2] - 2024-08-04 + +### Fixed +- fixed reshuffleAllBtn via changing reflection binding attribute, since game devs changed CharacterContainer.Reshuffle method from private to public \ No newline at end of file diff --git a/RePrint/src/RePrintPatches.cs b/RePrint/src/RePrintPatches.cs index 934539c..82dd295 100644 --- a/RePrint/src/RePrintPatches.cs +++ b/RePrint/src/RePrintPatches.cs @@ -22,9 +22,9 @@ private static KButton MakeReshuffleAllButton(KButton rejectBtnPrefab, KButton c return reshuffleAllBtn; } - private static void ReshuffleAllContainers(ImmigrantScreen imScreen) + private static void ReshuffleAllContainers(ImmigrantScreen immigrantScreen) { - var containers = (List)Traverse.Create(imScreen).Field( + var containers = (List)Traverse.Create(immigrantScreen).Field( "containers").GetValue(); foreach (var container in containers) switch (container) @@ -41,8 +41,17 @@ private static void ReshuffleAllContainers(ImmigrantScreen imScreen) private static void ReshuffleContainer(ITelepadDeliverableContainer container) { Traverse.Create(container).Field("controller").Method("RemoveLast").GetValue(); - var reshuffle = container.GetType().GetMethod("Reshuffle", BindingFlags.NonPublic | BindingFlags.Instance); var reshuffleParams = new object[] { false }; + MethodInfo reshuffle = null; + switch (container) + { + case CharacterContainer characterContainer when characterContainer != null: + reshuffle = typeof(CharacterContainer).GetMethod("Reshuffle", BindingFlags.Public | BindingFlags.Instance); + break; + case CarePackageContainer carePackageContainer when carePackageContainer != null: + reshuffle = typeof(CarePackageContainer).GetMethod("Reshuffle", BindingFlags.NonPublic | BindingFlags.Instance); + break; + } if (reshuffle != null) reshuffle.Invoke(container, reshuffleParams); } diff --git a/RePrint/src/mod_info.yaml b/RePrint/src/mod_info.yaml index 6056b07..1d2a594 100644 --- a/RePrint/src/mod_info.yaml +++ b/RePrint/src/mod_info.yaml @@ -1,4 +1,4 @@ supportedContent: ALL minimumSupportedBuild: 469112 -version: 1.4.1 +version: 1.4.2 APIVersion: 2 \ No newline at end of file