From de7101682d451445c670b6bf4b0cf09152b0363e Mon Sep 17 00:00:00 2001 From: FajsiEx Date: Wed, 28 Jul 2021 17:12:04 +0200 Subject: [PATCH] + best score and best score delta to results & / crash when chart has no jacket --- scripts/result.lua | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/scripts/result.lua b/scripts/result.lua index 5c656c8..facf948 100644 --- a/scripts/result.lua +++ b/scripts/result.lua @@ -13,7 +13,7 @@ local jacketPanelImage = gfx.CreateSkinImage("result/panels/jacket.png", 0); local rightPanelImage = gfx.CreateSkinImage("result/panels/right.png", 0); local bottomPanelImage = gfx.CreateSkinImage("result/panels/bottom.png", 0); -local jacketImage = gfx.CreateSkinImage("result/default_jacket.png", 0); +local defaultJacketImage = gfx.CreateSkinImage("result/default_jacket.png", 0); local gradeImages = { S = gfx.CreateSkinImage("score/S.png", 0), @@ -44,6 +44,8 @@ local JACKET_PANEL_TRANSTION_ENTER_OFFSET = -128; local RIGHT_PANEL_TRANSTION_ENTER_OFFSET = 128; local BOTTOM_PANEL_TRANSTION_ENTER_OFFSET = 128; +local highScore; + local earlyLateBarsStats = { earlyErrors = 0, earlyNears = 0, @@ -57,6 +59,7 @@ local objectTypeTimingStats = { vol = {criticals = 0, errors = 0} } + game.LoadSkinSample("result") function resetLayoutInformation() @@ -172,11 +175,29 @@ local drawRightPanelContent = function() gfx.BeginPath(); gfx.ImageRect(rightPanelX+890, rightPanelY+130, 85, 85, gradeImage, 1, 0); - -- Draw err/early/critical/late/err texts - gfx.FontSize(24) + -- Draw best score + gfx.FontSize(20) gfx.TextAlign(gfx.TEXT_ALIGN_RIGHT + gfx.TEXT_ALIGN_MIDDLE) gfx.LoadSkinFont('Digital-Serial-Bold.ttf') + local highScoreScore = 0; + if highScore then + highScoreScore = highScore.score + end + + local highScoreDelta = result.score - highScoreScore + local deltaPrefix = '-' + if highScoreDelta > 0 then + deltaPrefix = '+' + end + highScoreDelta = math.abs(highScoreDelta); + + gfx.Text(string.format("%08d", highScoreScore), rightPanelX + 962, rightPanelY + 239); + gfx.Text(deltaPrefix .. string.format("%08d", highScoreDelta), rightPanelX + 962, rightPanelY + 259); + + -- Draw err/early/critical/late/err texts + gfx.FontSize(24) + gfx.Text(earlyLateBarsStats.earlyErrors, rightPanelX + 683, rightPanelY + 370); gfx.Text(earlyLateBarsStats.earlyNears, rightPanelX + 683, rightPanelY + 401); @@ -238,7 +259,7 @@ end local drawJacketPanelContent = function() gfx.BeginPath(); - gfx.ImageRect(jacketPanelX + 12, jacketPanelY + 26, 273, 273, jacketImage, + gfx.ImageRect(jacketPanelX + 12, jacketPanelY + 26, 273, 273, jacketImage or defaultJacketImage, Easing.outQuad(transitionEnterScale), 0); end @@ -262,6 +283,8 @@ result_set = function() jacketImage = gfx.CreateImage(result.jacketPath, 0) end + highScore = result.highScores[1]; + -- This only counts the "CHIP" objects, not LONGs or LAZERs for hitStatIndex = 1, #result.noteHitStats do local hitStat = result.noteHitStats[hitStatIndex];