From 20cda1cdaeb6e1374fef1533560882b1fe9c2d85 Mon Sep 17 00:00:00 2001 From: Tamcodes4 Date: Fri, 26 Jun 2026 13:45:13 +0530 Subject: [PATCH] fix: clamp period deltas at 0 in processTimeframe to prevent negative scores --- scripts/sync-leaderboard.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/scripts/sync-leaderboard.js b/scripts/sync-leaderboard.js index a035c6af..515b4b60 100644 --- a/scripts/sync-leaderboard.js +++ b/scripts/sync-leaderboard.js @@ -278,9 +278,18 @@ async function processTimeframe( data.splice(i--, 1); continue; } - data[i].data.easySolved -= previousData[previousIndex].data.easySolved; - data[i].data.mediumSolved -= previousData[previousIndex].data.mediumSolved; - data[i].data.hardSolved -= previousData[previousIndex].data.hardSolved; + data[i].data.easySolved = Math.max( + 0, + data[i].data.easySolved - previousData[previousIndex].data.easySolved, + ); + data[i].data.mediumSolved = Math.max( + 0, + data[i].data.mediumSolved - previousData[previousIndex].data.mediumSolved, + ); + data[i].data.hardSolved = Math.max( + 0, + data[i].data.hardSolved - previousData[previousIndex].data.hardSolved, + ); data[i].score = data[i].data.easySolved + data[i].data.mediumSolved * 3 +