From 803de98e4dce55df3d454b479fa784dc03e9ac34 Mon Sep 17 00:00:00 2001 From: Jukixyo <206367640+jukixyo@users.noreply.github.com> Date: Wed, 4 Mar 2026 06:39:18 +0530 Subject: [PATCH 1/3] Refactor SmoothZoomStep to use MoveTowards for zoom --- ScrollZoom.cs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/ScrollZoom.cs b/ScrollZoom.cs index da867d9..7501dbb 100644 --- a/ScrollZoom.cs +++ b/ScrollZoom.cs @@ -91,18 +91,19 @@ private static void SmoothZoomStep() { if (_targetZoom < 0f) return; - + float current = Camera.main.orthographicSize; - - float t = Time.deltaTime * ZoomSmoothSpeed; - float eased = t * t; - - float newZoom = Mathf.Lerp(current, _targetZoom, eased); - - // snap to target zoom when very close (fix shadow bug) + + float newZoom = Mathf.MoveTowards( + current, + _targetZoom, + ZoomSmoothSpeed * Time.deltaTime * 20f + ); + + // snap to target when very close if (Mathf.Abs(newZoom - _targetZoom) < 0.01f) newZoom = _targetZoom; - + ApplyZoom(newZoom); } From 0824210affb74a31099d9be5088199f213fd175e Mon Sep 17 00:00:00 2001 From: Jukixyo <206367640+jukixyo@users.noreply.github.com> Date: Wed, 4 Mar 2026 07:15:43 +0530 Subject: [PATCH 2/3] Update plugin version and improve zoom interpolation --- ScrollZoom.cs | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/ScrollZoom.cs b/ScrollZoom.cs index 7501dbb..8ea2222 100644 --- a/ScrollZoom.cs +++ b/ScrollZoom.cs @@ -3,7 +3,7 @@ using HarmonyLib; using UnityEngine; -[BepInPlugin("com.jukixyo.scrollzoom", "Scroll Zoom", "1.1.0")] +[BepInPlugin("com.jukixyo.scrollzoom", "Scroll Zoom", "1.0.3")] public class ScrollZoomPlugin : BasePlugin { private Harmony _harmony; @@ -24,7 +24,7 @@ public static class HudManager_Update_Patch private const float MaxZoom = 15f; private const float ZoomStep = 1.25f; - private const float ZoomSmoothSpeed = 12f; + private const float ZoomSmoothSpeed = 30f; // higher = snappier interpolation private static float _targetZoom = -1f; private static float _defaultZoom = -1f; @@ -52,7 +52,7 @@ static void Postfix() if (Minigame.Instance != null || HudManager.Instance.GameMenu.IsOpen) return; - // chat scroll fix + // prevent zoom when chat is open if (HudManager.Instance?.Chat != null && HudManager.Instance.Chat.IsOpenOrOpening) return; @@ -91,19 +91,15 @@ private static void SmoothZoomStep() { if (_targetZoom < 0f) return; - + float current = Camera.main.orthographicSize; - - float newZoom = Mathf.MoveTowards( - current, - _targetZoom, - ZoomSmoothSpeed * Time.deltaTime * 20f - ); - - // snap to target when very close - if (Mathf.Abs(newZoom - _targetZoom) < 0.01f) + + float newZoom = Mathf.Lerp(current, _targetZoom, Time.deltaTime * ZoomSmoothSpeed); + + // snap exactly to target when close + if (Mathf.Abs(newZoom - _targetZoom) < 0.02f) newZoom = _targetZoom; - + ApplyZoom(newZoom); } From b2eaec4e8a81680be2716dc243c70fe9de7438ed Mon Sep 17 00:00:00 2001 From: Jukixyo <206367640+jukixyo@users.noreply.github.com> Date: Wed, 4 Mar 2026 07:15:55 +0530 Subject: [PATCH 3/3] Update plugin version to 1.1.0 --- ScrollZoom.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ScrollZoom.cs b/ScrollZoom.cs index 8ea2222..55cf74d 100644 --- a/ScrollZoom.cs +++ b/ScrollZoom.cs @@ -3,7 +3,7 @@ using HarmonyLib; using UnityEngine; -[BepInPlugin("com.jukixyo.scrollzoom", "Scroll Zoom", "1.0.3")] +[BepInPlugin("com.jukixyo.scrollzoom", "Scroll Zoom", "1.1.0")] public class ScrollZoomPlugin : BasePlugin { private Harmony _harmony;