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(); 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); } } }