[RF] AquaMai configuration refactor (#82)

更新了配置文件格式,原有的配置文件将被自动无缝迁移,详情请见新的配置文件中的注释(例外:`SlideJudgeTweak` 不再默认启用)
旧配置文件将被重命名备份,如果更新到此版本遇到 Bug 请联系我们

Updated configuration file schema. The old config file will be migrated automatically and seamlessly. See the comments in the new configuration file for details. (Except for `SlideJudgeTweak` is no longer enabled by default)
Your old configuration file will be renamed as a backup. If you encounter any bug with this version, please contact us.
This commit is contained in:
Menci
2024-11-25 01:25:19 +08:00
committed by GitHub
parent e9ee31b22a
commit 37044dae01
217 changed files with 6051 additions and 3040 deletions

View File

@@ -0,0 +1,34 @@
using AquaMai.Core.Attributes;
using AquaMai.Config.Attributes;
using HarmonyLib;
using Manager;
namespace AquaMai.Mods.GameSystem;
[ConfigSection(
en: "Hold the bottom four buttons (3456) for quick retry (like in Freedom Mode, default non-utage only).",
zh: "按住下方四个按钮3456快速重开本局游戏像在 Freedom Mode 中一样,默认仅对非宴谱有效)")]
[EnableGameVersion(23000)]
public class QuickRetry
{
[ConfigEntry(
en: "Force enable in Utage.",
zh: "在宴谱中强制启用")]
private static readonly bool enableInUtage = false;
[HarmonyPrefix]
[HarmonyPatch(typeof(Monitor.QuickRetry), "IsQuickRetryEnable")]
public static bool OnQuickRetryIsQuickRetryEnable(ref bool __result)
{
if (enableInUtage)
{
__result = true;
}
else
{
var isUtageProperty = Traverse.Create(typeof(GameManager)).Property("IsUtage");
__result = !isUtageProperty.PropertyExists() || !isUtageProperty.GetValue<bool>();
}
return false;
}
}