From f2216970061235df61d702a08f02e2de3254765e Mon Sep 17 00:00:00 2001 From: wcko87 Date: Thu, 22 Jul 2021 00:01:39 +0900 Subject: [PATCH 1/2] GrooveGauge: Fix MODIFY_DAMAGE for LR2 Hard Gauge for TotalNotes<1000 --- .../player/beatoraja/play/GrooveGauge.java | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/bms/player/beatoraja/play/GrooveGauge.java b/src/bms/player/beatoraja/play/GrooveGauge.java index f9dd54711..69586a350 100644 --- a/src/bms/player/beatoraja/play/GrooveGauge.java +++ b/src/bms/player/beatoraja/play/GrooveGauge.java @@ -287,6 +287,7 @@ public float modify(float f, BMSModel model) { float fix1=1.0f; float fix2=1.0f; if(f < 0) { + // トータル補正 (<240) if(model.getTotal()>=240.0){ fix1=1.0f; }else if(model.getTotal()>=230.0){ @@ -308,13 +309,26 @@ public float modify(float f, BMSModel model) { }else{ fix1=10.0f; } - int note=1000; - float mod=0.002f; - while(note>model.getTotalNotes()||note>1){ - fix2 += mod * (float)(note - Math.max(model.getTotalNotes(), note/2)); - note/=2; - mod*=2.0f; + + // ノート数補正 (<1000) + if(model.getTotalNotes()<=20) { + fix2 = 10.0f; + }else if(model.getTotalNotes()<30) { + fix2 = 8.0f + 0.2f*(30-model.getTotalNotes()); + }else if(model.getTotalNotes()<60) { + fix2 = 5.0f + 0.2f*(60-model.getTotalNotes())/3.0f; + }else if(model.getTotalNotes()<125) { + fix2 = 4.0f + (125-model.getTotalNotes())/65.0f; + }else if(model.getTotalNotes()<250) { + fix2 = 3.0f + 0.008f*(250-model.getTotalNotes()); + }else if(model.getTotalNotes()<500) { + fix2 = 2.0f + 0.004f*(500-model.getTotalNotes()); + }else if(model.getTotalNotes()<1000) { + fix2 = 1.0f + 0.002f*(1000-model.getTotalNotes()); + }else { + fix2 = 1.0f; } + f *= Math.max(fix1, fix2); } return f; From edfe28939ce64331362cff39dda79b8ea12d2493 Mon Sep 17 00:00:00 2001 From: wcko87 Date: Sun, 17 Oct 2021 04:56:40 +0900 Subject: [PATCH 2/2] GrooveGauge : put totalNotes and total in temporary variables --- .../player/beatoraja/play/GrooveGauge.java | 66 ++++++++++--------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/src/bms/player/beatoraja/play/GrooveGauge.java b/src/bms/player/beatoraja/play/GrooveGauge.java index 69586a350..2074ee259 100644 --- a/src/bms/player/beatoraja/play/GrooveGauge.java +++ b/src/bms/player/beatoraja/play/GrooveGauge.java @@ -288,43 +288,45 @@ public float modify(float f, BMSModel model) { float fix2=1.0f; if(f < 0) { // トータル補正 (<240) - if(model.getTotal()>=240.0){ - fix1=1.0f; - }else if(model.getTotal()>=230.0){ - fix1=1.11f; - }else if(model.getTotal()>=210.0){ - fix1=1.25f; - }else if(model.getTotal()>=200.0){ - fix1=1.5f; - }else if(model.getTotal()>=180.0){ - fix1=1.666f; - }else if(model.getTotal()>=160.0){ - fix1=2.0f; - }else if(model.getTotal()>=150.0){ - fix1=2.5f; - }else if(model.getTotal()>=130.0){ - fix1=3.333f; - }else if(model.getTotal()>=120.0){ - fix1=5.0f; + final double total = model.getTotal(); + if(total >= 240.0){ + fix1 = 1.0f; + }else if(total >= 230.0){ + fix1 = 1.11f; + }else if(total >= 210.0){ + fix1 = 1.25f; + }else if(total >= 200.0){ + fix1 = 1.5f; + }else if(total >= 180.0){ + fix1 = 1.666f; + }else if(total >= 160.0){ + fix1 = 2.0f; + }else if(total >= 150.0){ + fix1 = 2.5f; + }else if(total >= 130.0){ + fix1 = 3.333f; + }else if(total >= 120.0){ + fix1 = 5.0f; }else{ - fix1=10.0f; + fix1 = 10.0f; } // ノート数補正 (<1000) - if(model.getTotalNotes()<=20) { + final int totalNotes = model.getTotalNotes(); + if(totalNotes <= 20) { fix2 = 10.0f; - }else if(model.getTotalNotes()<30) { - fix2 = 8.0f + 0.2f*(30-model.getTotalNotes()); - }else if(model.getTotalNotes()<60) { - fix2 = 5.0f + 0.2f*(60-model.getTotalNotes())/3.0f; - }else if(model.getTotalNotes()<125) { - fix2 = 4.0f + (125-model.getTotalNotes())/65.0f; - }else if(model.getTotalNotes()<250) { - fix2 = 3.0f + 0.008f*(250-model.getTotalNotes()); - }else if(model.getTotalNotes()<500) { - fix2 = 2.0f + 0.004f*(500-model.getTotalNotes()); - }else if(model.getTotalNotes()<1000) { - fix2 = 1.0f + 0.002f*(1000-model.getTotalNotes()); + }else if(totalNotes < 30) { + fix2 = 8.0f + 0.2f*(30-totalNotes); + }else if(totalNotes < 60) { + fix2 = 5.0f + 0.2f*(60-totalNotes)/3.0f; + }else if(totalNotes < 125) { + fix2 = 4.0f + (125-totalNotes)/65.0f; + }else if(totalNotes < 250) { + fix2 = 3.0f + 0.008f*(250-totalNotes); + }else if(totalNotes < 500) { + fix2 = 2.0f + 0.004f*(500-totalNotes); + }else if(totalNotes < 1000) { + fix2 = 1.0f + 0.002f*(1000-totalNotes); }else { fix2 = 1.0f; }