MetalButtplug/Patches/UpdateBeat.cs
2024-05-20 23:55:16 +02:00

24 lines
908 B
C#

using HarmonyLib;
using MetalButtplug.Utils;
namespace MetalButtplug.Patches;
[HarmonyPatch(typeof(BeatSequencer), nameof(BeatSequencer.UpdateBeat))]
internal class UpdateBeatPatch {
private static void Prefix(BeatStatusProvider beatStatus) {
if (beatStatus.BeatFlags.HasFlag(BeatFlags.Quarter)) {
var playerController = UnityEngine.Object.FindObjectOfType<FirstPersonController>();
var player = playerController.m_player;
var controller = player.ScoreController;
Plugin.Log.LogInfo(
$"Quarter beat, multiplier: {controller.GetCurrentTierIndex()}/{controller.GetNumTiers()-1} ({1 << controller.GetCurrentTierIndex()}x)"
);
var scoreMultiplier = (float)controller.GetCurrentTierIndex() / ((float)controller.GetNumTiers() - 1);
ButtplugManager.Vibrate(scoreMultiplier, 100);
}
}
}