From c81850cb36e1d7592531c5d888a2255bd4613919 Mon Sep 17 00:00:00 2001 From: Trebor Huang <41145779+Trebor-Huang@users.noreply.github.com> Date: Thu, 12 Aug 2021 19:06:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=8D=B3=E5=B0=86=E8=A7=A3?= =?UTF-8?q?=E9=94=81=E7=9A=84=E5=85=B3=E5=8D=A1=20closes=20#194=20(#198)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 显示即将解锁的关卡, closes #194 除了中文和英文之外的语言我还没处理。 * 成绩从Grade改为Rank --- parts/language/lang_en.lua | 2 ++ parts/language/lang_zh.lua | 2 ++ parts/list.lua | 2 +- parts/scenes/mode.lua | 72 +++++++++++++++++++++----------------- 4 files changed, 44 insertions(+), 34 deletions(-) diff --git a/parts/language/lang_en.lua b/parts/language/lang_en.lua index 3e013b7d..c5cf8c3d 100644 --- a/parts/language/lang_en.lua +++ b/parts/language/lang_en.lua @@ -77,6 +77,8 @@ return{ VKCurW="Current. Pos. Weight", noScore="No Scores Yet", + modeLocked="Locked", + unlockHint="Achieve Rank D or above in prerequisite modes to unlock.", highScore="Personal Bests", newRecord="New Record!", diff --git a/parts/language/lang_zh.lua b/parts/language/lang_zh.lua index 3542117c..6e486080 100644 --- a/parts/language/lang_zh.lua +++ b/parts/language/lang_zh.lua @@ -77,6 +77,8 @@ return{ VKCurW="当前点权重", noScore="暂无成绩", + modeLocked="暂未解锁", + unlockHint="前一模式达到成绩D或以上即可解锁", highScore="最佳成绩", newRecord="打破纪录", diff --git a/parts/list.lua b/parts/list.lua index aec2b5b6..4581b244 100644 --- a/parts/list.lua +++ b/parts/list.lua @@ -175,7 +175,7 @@ do--drawableText combo=T(20),maxcmb=T(20), pc=T(20),ko=T(25), - noScore=T(45),highScore=T(30), + noScore=T(45),highScore=T(30),modeLocked=T(45), } end do--BLOCKS diff --git a/parts/scenes/mode.lua b/parts/scenes/mode.lua index 7e6ddf01..6e402df0 100644 --- a/parts/scenes/mode.lua +++ b/parts/scenes/mode.lua @@ -30,6 +30,15 @@ local scene={} function scene.sceneInit(org) BG.set() mapCam.zoomK=org=='main'and 5 or 1 + VisibleModes = {} -- 1 for unlocked, 2 for locked but visible + for name,M in next,MODES do + if RANKS[name]and M.unlock and M.x then + VisibleModes[name] = 1 + for _=1,#M.unlock do + VisibleModes[M.unlock[_]] = VisibleModes[M.unlock[_]] or 2 + end + end + end end local function getK() @@ -39,11 +48,9 @@ local function getPos() return mapCam.xOy:inverseTransformPoint(0,0) end -local function onMode(x,y) - x,y=x-640,y-360 - x,y=mapCam.xOy:inverseTransformPoint(x,y) +local function onModeRaw(x,y) for name,M in next,MODES do - if RANKS[name]and M.x then + if VisibleModes[name]and M.x then local s=M.size if M.shape==1 then if x>M.x-s and xM.y-s and yM.x-s and xM.y-s and y