From cd075a3559400eaa0abf54e04f7206fc03591da6 Mon Sep 17 00:00:00 2001 From: Clansty Date: Sat, 16 Nov 2024 01:47:07 +0800 Subject: [PATCH] [F] RatingUpWhenSSSp Algo --- AquaMai/Utils/SelectionDetail.cs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/AquaMai/Utils/SelectionDetail.cs b/AquaMai/Utils/SelectionDetail.cs index 86677a0b..1f1187af 100644 --- a/AquaMai/Utils/SelectionDetail.cs +++ b/AquaMai/Utils/SelectionDetail.cs @@ -113,12 +113,19 @@ public class SelectionDetail private uint CalcB50(MusicData musicData, int difficulty) { - var newRate = new UserRate(musicData.name.id, difficulty, 1010000, (uint)musicData.version); - var userLowRate = (newRate.OldFlag ? userData.RatingList.RatingList : userData.RatingList.NewRatingList).Last(); + var theory = new UserRate(musicData.name.id, difficulty, 1010000, (uint)musicData.version); + var list = theory.OldFlag ? userData.RatingList.RatingList : userData.RatingList.NewRatingList; + var userLowRate = list.Last(); + var userSongRate = list.FirstOrDefault(it => it.MusicId == musicData.name.id && it.Level == difficulty); - if (newRate.SingleRate > userLowRate.SingleRate) + if (!userSongRate.Equals(default(UserRate))) { - return newRate.SingleRate - userLowRate.SingleRate; + return theory.SingleRate - userSongRate.SingleRate; + } + + if (theory.SingleRate > userLowRate.SingleRate) + { + return theory.SingleRate - userLowRate.SingleRate; } return 0;