From 83ebfddde869f315e0e74a2a0e930fbeab4fbe94 Mon Sep 17 00:00:00 2001 From: fretuks Date: Mon, 18 May 2026 19:46:53 +0200 Subject: [PATCH] try to fix an issue with sanity/insanity interactions --- .../mindmotion/player/SanityCapability.java | 15 +++++++-------- .../fretux/mindmotion/player/TempoCapability.java | 10 ++-------- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/main/java/net/fretux/mindmotion/player/SanityCapability.java b/src/main/java/net/fretux/mindmotion/player/SanityCapability.java index 76f3cc6..e81f2ed 100644 --- a/src/main/java/net/fretux/mindmotion/player/SanityCapability.java +++ b/src/main/java/net/fretux/mindmotion/player/SanityCapability.java @@ -58,18 +58,17 @@ public class SanityCapability implements ISanity { } public void setBonusMaxSanity(float bonusMaxSanity) { - float oldMax = getMaxSanity(); this.bonusMaxSanity = Math.max(0f, bonusMaxSanity); - float newMax = getMaxSanity(); - if (oldMax > 0) { - float pct = sanity / oldMax; - sanity = pct * newMax; - } - setSanity(sanity); - setInsanity(insanity); + clampToMax(); } public float getBonusMaxSanity() { return bonusMaxSanity; } + + private void clampToMax() { + float max = getMaxSanity(); + this.sanity = Math.max(0, Math.min(max, this.sanity)); + this.insanity = Math.max(0, Math.min(max, this.insanity)); + } } diff --git a/src/main/java/net/fretux/mindmotion/player/TempoCapability.java b/src/main/java/net/fretux/mindmotion/player/TempoCapability.java index 9cb1bf2..023abe1 100644 --- a/src/main/java/net/fretux/mindmotion/player/TempoCapability.java +++ b/src/main/java/net/fretux/mindmotion/player/TempoCapability.java @@ -47,17 +47,11 @@ public class TempoCapability implements ITempo { } public void setBonusMaxTempo(float bonusMaxTempo) { - int oldMax = getMaxTempo(); this.bonusMaxTempo = Math.max(0f, bonusMaxTempo); - int newMax = getMaxTempo(); - if (oldMax > 0) { - float pct = (float) tempo / (float) oldMax; - tempo = Math.round(pct * newMax); - } - setTempo(tempo); + setTempo(this.tempo); } public float getBonusMaxTempo() { return bonusMaxTempo; } -} \ No newline at end of file +}