From beb669750784f9d65b2d64bb4fac92c3d1dbb7a7 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 28 Feb 2024 23:37:27 -0500 Subject: [PATCH] [F] Fix all perfect count --- src/main/java/icu/samnyan/aqua/net/utils/GameHelper.kt | 5 +++-- .../aqua/sega/chusan/model/userdata/UserPlaylog.java | 5 +++++ .../aqua/sega/maimai2/model/userdata/UserPlaylog.java | 9 +++++++++ .../aqua/sega/ongeki/model/userdata/UserPlaylog.java | 5 +++++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/net/utils/GameHelper.kt b/src/main/java/icu/samnyan/aqua/net/utils/GameHelper.kt index d1b49d3e..3d7c50d4 100644 --- a/src/main/java/icu/samnyan/aqua/net/utils/GameHelper.kt +++ b/src/main/java/icu/samnyan/aqua/net/utils/GameHelper.kt @@ -60,6 +60,7 @@ interface IGenericGamePlaylog { val isFullCombo: Boolean val beforeRating: Int val afterRating: Int + val isAllPerfect: Boolean } interface GenericPlaylogRepo { @@ -95,7 +96,7 @@ fun genericUserSummary( ranks = ranks.map { (k, v) -> RankCount(k, v) }, maxCombo = plays.maxOf { it.maxCombo }, fullCombo = plays.count { it.isFullCombo }, - allPerfect = plays.count { it.achievement == 1010000 }, + allPerfect = plays.count { it.isAllPerfect }, totalScore = user.totalScore, plays = plays.size, totalPlayTime = plays.count() * 3L, // TODO: Give a better estimate @@ -121,7 +122,7 @@ fun genericRanking( name = user.userName, accuracy = plays.sumOf { it.achievement }.toDouble() / plays.size / 10000.0, rating = user.playerRating, - allPerfect = plays.count { it.achievement == 1010000 }, + allPerfect = plays.count { it.isAllPerfect }, fullCombo = plays.count { it.isFullCombo }, lastSeen = user.lastPlayDate.toString() ) diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/model/userdata/UserPlaylog.java b/src/main/java/icu/samnyan/aqua/sega/chusan/model/userdata/UserPlaylog.java index 45ddac46..c509b337 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/model/userdata/UserPlaylog.java +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/model/userdata/UserPlaylog.java @@ -166,4 +166,9 @@ public class UserPlaylog implements Serializable, IGenericGamePlaylog { public int getBeforeRating() { return playerRating; // TODO: Get before rating } + + @Override + public boolean isAllPerfect() { + return isAllJustice; + } } diff --git a/src/main/java/icu/samnyan/aqua/sega/maimai2/model/userdata/UserPlaylog.java b/src/main/java/icu/samnyan/aqua/sega/maimai2/model/userdata/UserPlaylog.java index 25617dd5..21973614 100644 --- a/src/main/java/icu/samnyan/aqua/sega/maimai2/model/userdata/UserPlaylog.java +++ b/src/main/java/icu/samnyan/aqua/sega/maimai2/model/userdata/UserPlaylog.java @@ -269,4 +269,13 @@ public class UserPlaylog implements Serializable, IGenericGamePlaylog { public boolean isFullCombo() { return maxCombo == totalCombo; } + + @Override + public boolean isAllPerfect() { + return tapMiss + tapGood + tapGreat == 0 + && holdMiss + holdGood + holdGreat == 0 + && slideMiss + slideGood + slideGreat == 0 + && touchMiss + touchGood + touchGreat == 0 + && breakMiss + breakGood + breakGreat == 0; + } } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserPlaylog.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserPlaylog.java index 00224613..49759d1e 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserPlaylog.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserPlaylog.java @@ -174,4 +174,9 @@ public class UserPlaylog implements Serializable, IGenericGamePlaylog { public int getBeforeRating() { return playerRating; // TODO: Get before rating } + + @Override + public boolean isAllPerfect() { + return isAllBreak; + } }