using ADOFAIRenderer.Core; using HarmonyLib; namespace ADOFAIRenderer.Patch.Game; [HarmonyPatch(typeof(Persistence))] public static class PersistencePatch { [HarmonyPostfix] [HarmonyPatch("skipIntroBehavior", MethodType.Getter)] // ReSharper disable once InconsistentNaming public static void LockSkipIntroBehavior(ref SkipIntroBehavior __result) { if (RenderManager.IsActive && scrConductor.instance != null && !scrConductor.instance.hasSongStarted) { __result = SkipIntroBehavior.Off; } } [HarmonyPostfix] [HarmonyPatch("GetPlayerColor")] // ReSharper disable once InconsistentNaming public static void OverridePlayerColor(bool red, ref PlanetColor __result) { if (!RenderManager.Instance || RenderManager.Instance.stage == RenderStage.None) return; var advConf = RenderManager.Instance.Configuration.AdvancedConfig; __result = red switch { true when advConf.firePlanetColor.HasValue => new PlanetColor(advConf.firePlanetColor.Value), false when advConf.icePlanetColor.HasValue => new PlanetColor(advConf.icePlanetColor.Value), _ => __result }; } }