Rizu/Rizu.BepInEx/PatchGameScoreList.cs

38 lines
1.2 KiB
C#

using System.Reflection;
using Game;
using HarmonyLib;
using Manager;
using Rizu.Core;
namespace Rizu.BepInEx;
[HarmonyPatch(typeof(GameScoreList))]
public class PatchGameScoreList
{
// New field introduced in SDEZ 1.40 (maimai DX BUDDiES)
private static readonly FieldInfo UtageKanjiTextField = typeof(SessionInfo)
.GetField("utageKanjiText", BindingFlags.Instance | BindingFlags.Public);
// ReSharper disable once InconsistentNaming
[HarmonyPatch(nameof(GameScoreList.SetPlayAfterRate))]
[HarmonyPostfix]
private static void SetPlayAfterRatePostfix(GameScoreList __instance, int musicRate, int danRate, UdemaeID dan, int classValue)
{
if (!__instance.IsEnable)
{
return;
}
if (__instance.SessionInfo.isAdvDemo || __instance.SessionInfo.isTutorial)
{
return;
}
if (UtageKanjiTextField != null && !string.IsNullOrEmpty((string)UtageKanjiTextField.GetValue(__instance.SessionInfo)))
{
return;
}
RizuPlugin.Instance.StartCoroutine(Exporter.Instance.ExportScore(__instance));
}
}