From 888f2f607431442b83dc7446eebf9fee25e2ee1a Mon Sep 17 00:00:00 2001 From: SweetSea-ButImNotSweet <106439598+SweetSea-ButImNotSweet@users.noreply.github.com> Date: Mon, 8 Jan 2024 13:37:00 +0700 Subject: [PATCH] Resolve change requests part 2 --- Zframework/widget.lua | 2 +- parts/gameFuncs.lua | 2 +- parts/gameTables.lua | 83 ++++++++++++++++++------------------ parts/language/manual_vi.txt | 25 +++++------ parts/player/init.lua | 2 +- parts/scenes/app_console.lua | 12 +++--- parts/scenes/mod.lua | 6 +-- 7 files changed, 68 insertions(+), 64 deletions(-) diff --git a/Zframework/widget.lua b/Zframework/widget.lua index 4fd108fc..876206ad 100644 --- a/Zframework/widget.lua +++ b/Zframework/widget.lua @@ -803,7 +803,7 @@ function selector:press(x) end end if self.select~=s then - self.code(self.list[s]) + self.code(self.list[s],s) self.select=s self.selText=self.list[s] if self.sound then diff --git a/parts/gameFuncs.lua b/parts/gameFuncs.lua index dbcfcf78..2f19f4f7 100644 --- a/parts/gameFuncs.lua +++ b/parts/gameFuncs.lua @@ -998,7 +998,7 @@ do-- function resetGameData(args) coroutine.yield() local counter=0 - if GAME.modUsed then + if usingMod() then SFX.play('collect',.2) TEXT.show(GAME.modApplyAt,640,26,45,'spin') for _=1,90 do coroutine.yield() end diff --git a/parts/gameTables.lua b/parts/gameTables.lua index 8083e8ee..08a5871b 100644 --- a/parts/gameTables.lua +++ b/parts/gameTables.lua @@ -372,41 +372,41 @@ do-- Mod data {no=0,id="NX",name="next", key="q",x=80,y=230,color='lO', list={0,1,2,3,4,5,6}, - funcInit=function(P,O) P.gameEnv.nextCount=O end, - funcOnce=_lockVfunc('nextCount'), + funcInit =function(P,O) P.gameEnv.nextCount=O end, + funcOnce =_lockVfunc('nextCount'), }, {no=1,id="HL",name="hold", key="w",x=200,y=230,color='lO', list={0,1,2,3,4,5,6}, - funcInit=function(P,O) P.gameEnv.holdCount=O end, - funcOnce=_lockVfunc('holdCount'), + funcInit =function(P,O) P.gameEnv.holdCount=O end, + funcOnce =_lockVfunc('holdCount'), }, {no=2,id="FL",name="hideNext", key="e",x=320,y=230,color='lA', list={1,2,3,4,5}, - funcInit=function(P,O) P.gameEnv.nextStartPos=O+1 end, - funcOnce=_lockVfunc('nextStartPos'), + funcInit =function(P,O) P.gameEnv.nextStartPos=O+1 end, + funcOnce =_lockVfunc('nextStartPos'), }, {no=3,id="IH",name="infHold", key="r",x=440,y=230,color='lA', - funcInit=function(P) P.gameEnv.infHold=true end, - funcOnce=_lockVfunc('infHold'), + funcInit =function(P) P.gameEnv.infHold=true end, + funcOnce =_lockVfunc('infHold'), }, {no=4,id="HB",name="hideBlock", key="y",x=680,y=230,color='lV', - funcInit=function(P) P.gameEnv.block=false end, - funcOnce=_lockVfunc('block'), + funcInit =function(P) P.gameEnv.block=false end, + funcOnce =_lockVfunc('block'), }, {no=5,id="HG",name="hideGhost", key="u",x=800,y=230,color='lV', - funcInit=function(P) P.gameEnv.ghost=false end, - funcOnce=function(P) P.gameEnv.ghost=false; P.gameEnv.__lock('ghost') end, + funcInit =function(P) P.gameEnv.ghost=false end, + funcOnce =function(P) P.gameEnv.ghost=false; P.gameEnv.__lock('ghost') end, }, {no=6,id="HD",name="hidden", key="i",x=920,y=230,color='lP', list={'easy','slow','medium','fast','none'}, - funcInit=function(P,O) P.gameEnv.visible=O end, - funcRepe=function(P,O) + funcInit =function(P,O) P.gameEnv.visible=O end, + funcRepeat=function(P,O) if P.showTime~=_invisibleTime[O] then P:setInvisible(_invisibleTime[O]) end @@ -415,20 +415,20 @@ do-- Mod data {no=7,id="HB",name="hideBoard", key="o",x=1040,y=230,color='lP', list={'down','up','all'}, - funcInit=function(P,O) P.gameEnv.hideBoard=O end, + funcInit =function(P,O) P.gameEnv.hideBoard=O end, }, {no=8,id="FB",name="flipBoard", key="p",x=1160,y=230,color='lJ', list={'U-D','L-R','180'}, - funcInit=function(P,O) P.gameEnv.flipBoard=O end, - funcOnce=_lockVfunc('flipBoard'), + funcInit =function(P,O) P.gameEnv.flipBoard=O end, + funcOnce =_lockVfunc('flipBoard'), }, {no=9,id="DT",name="dropDelay", key="a",x=140,y=350,color='lR', list={0,.125,.25,.5,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,1e99}, - funcInit=function(P,O) P.gameEnv.drop=O end, - funcRepe=function(P,O) + funcInit =function(P,O) P.gameEnv.drop=O end, + funcRepeat=function(P,O) if P.dropDelay~=O then P.gameEnv.drop=O P:set20G(O==0) @@ -438,45 +438,45 @@ do-- Mod data {no=10,id="LT",name="lockDelay", key="s",x=260,y=350,color='lR', list={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,1e99}, - funcInit=function(P,O) P.gameEnv.lock=O end, - funcRepe=function(P,O) P.dropDelay=O end, + funcInit =function(P,O) P.gameEnv.lock=O end, + funcRepeat=function(P,O) P.dropDelay=O end, }, {no=11,id="ST",name="waitDelay", key="d",x=380,y=350,color='lR', list={0,1,2,3,4,5,6,7,8,10,15,20,30,60}, - funcInit=function(P,O) P.gameEnv.wait=O end, - funcOnce=_lockVfunc('waitDelay'), + funcInit =function(P,O) P.gameEnv.wait=O end, + funcOnce =_lockVfunc('waitDelay'), }, {no=12,id="CT",name="fallDelay", key="f",x=500,y=350,color='lR', list={0,1,2,3,4,5,6,7,8,10,15,20,30,60}, - funcInit=function(P,O) P.gameEnv.fall=O end, - funcOnce=_lockVfunc('fallDelay'), + funcInit =function(P,O) P.gameEnv.fall=O end, + funcOnce =_lockVfunc('fallDelay'), }, {no=13,id="LF",name="life", key="j",x=860,y=350,color='lY', list={0,1,2,3,5,10,15,26,42,87,500}, - funcInit=function(P,O) P.gameEnv.life=O end, - funcOnce=_lockVfunc('life'), + funcInit =function(P,O) P.gameEnv.life=O end, + funcOnce =_lockVfunc('life'), }, {no=14,id="FB",name="forceB2B", key="k",x=980,y=350,color='lY', - funcInit=function(P) P.gameEnv.b2bKill=true end, - funcOnce=_lockVfunc('b2bKill'), + funcInit =function(P) P.gameEnv.b2bKill=true end, + funcOnce =_lockVfunc('b2bKill'), }, {no=15,id="PF",name="forceFinesse", key="l",x=1100,y=350,color='lY', - funcInit=function(P) P.gameEnv.fineKill=true end, - funcOnce=_lockVfunc('fineKill'), + funcInit =function(P) P.gameEnv.fineKill=true end, + funcOnce =_lockVfunc('fineKill'), }, {no=16,id="TL",name="tele", key="z",x=200,y=470,color='lH', - funcInit=function(P) + funcInit =function(P) P.gameEnv.das,P.gameEnv.arr=0,0 P.gameEnv.sddas,P.gameEnv.sdarr=0,0 end, - funcOnce=function(P) + funcOnce =function(P) for _,k in pairs{'das','arr','sddas','sdarr'} do P.gameEnv[k]=0 P.gameEnv.__lock(k) @@ -485,7 +485,7 @@ do-- Mod data }, {no=17,id="FX",name="noRotation", key="x",x=320,y=470,color='lH', - funcInit=function(P) + funcInit =function(P) _disableKey(P,3) _disableKey(P,4) _disableKey(P,5) @@ -493,7 +493,7 @@ do-- Mod data }, {no=18,id="GL",name="noMove", key="c",x=440,y=470,color='lH', - funcInit=function(P) + funcInit =function(P) _disableKey(P,1) _disableKey(P,2) _disableKey(P,11)_disableKey(P,12) _disableKey(P,17)_disableKey(P,18) @@ -503,20 +503,20 @@ do-- Mod data {no=19,id="CS",name="customSeq", key="b",x=680,y=470,color='lB', list={'bag','bagES','his','hisPool','c2','bagP1inf','rnd','mess','reverb'}, - funcInit=function(P,O) P.gameEnv.sequence=O end, - funcOnce=_lockVfunc('sequence'), + funcInit =function(P,O) P.gameEnv.sequence=O end, + funcOnce =_lockVfunc('sequence'), }, {no=20,id="PS",name="pushSpeed", key="n",x=800,y=470,color='lB', list={.5,1,2,3,5,15,1e99}, - funcInit=function(P,O) P.gameEnv.pushSpeed=O end, - funcOnce=_lockVfunc('pushSpeed'), + funcInit =function(P,O) P.gameEnv.pushSpeed=O end, + funcOnce =_lockVfunc('pushSpeed'), }, {no=21,id="BN",name="boneBlock", key="m",x=920,y=470,color='lB', list={'on','off'}, - funcInit=function(P,O) P.gameEnv.bone=O end, - funcRepe=function(P,O) + funcInit =function(P,O) P.gameEnv.bone=O end, + funcRepeat=function(P,O) P.gameEnv.bone=O if O=='on' then for _,bk in pairs(P.nextQueue) do bk.color=17 end @@ -551,6 +551,7 @@ do-- Game data tables seed=1046101471, -- Game seed curMode=false, -- Current gamemode object initPlayerCount=0, -- Player count when init game + modUsed=false, mod=TABLE.new(0,#MODOPT),-- List of loaded mods modApplyAt='postInit', -- Apply mod when? (preInit, postInit, always) modeEnv=false, -- Current gamemode environment diff --git a/parts/language/manual_vi.txt b/parts/language/manual_vi.txt index 954ac59a..6a75cf07 100644 --- a/parts/language/manual_vi.txt +++ b/parts/language/manual_vi.txt @@ -1,6 +1,6 @@ Cách chơi: Hệ thống sẽ cấp cho người chơi 7 loại tetromino (gạch 4 ô) bao gồm: Z, S, J, L, I, O, T; - và người chơi cần điều khiển chúng (di chuyển sang trái và phải; xoay 90 / 180 / 270 độ). + và người chơi cần điều khiển chúng (di chuyển sang trái và phải; xoay 90 / 180 / 270 độ). Cứ mỗi hàng được lấp đầy trong bảng bởi các viên gạch, chúng sẽ bị xóa ra khỏi bảng. Nếu có đối thủ, đối thủ sẽ bị tấn công mạnh hoặc nhẹ tùy theo số hàng bạn gửi. Chơi hết hoặc đạt mục tiêu của cấp độ để thắng. @@ -25,19 +25,19 @@ Cách phát hiện spin: bằng cách sử dụng hệ thống điểm. Hệ thống tấn công: - Kiểu xóa nâng cao (Special clear): - Kiểu xóa nâng cao chỉ trường hợp bạn thực hiện Spin, Techrash, Techrash+ — xóa 5 hàng hoặc hơn, PC, HPC. - Kiểu xóa nâng cao có thể sạc đầy thanh B2B. + Kiểu xóa đặc biệt (Special clear): + Kiểu xóa đặc biệt chỉ trường hợp bạn thực hiện Spin, Techrash, Techrash+ — xóa 5 hàng hoặc hơn, PC, HPC. + Kiểu xóa đặc biệt có thể sạc đầy thanh B2B. Kiểu xóa Siêu cấp (Super clear): - Là Kiểu xóa nâng cao nhưng được thực hiện với B2B hoặc B3B + Là Kiểu xóa đặc biệt nhưng được thực hiện với B2B hoặc B3B - Kiểu xóa nâng cao (spin): Gửi gấp đôi số hàng vừa xóa. + Kiểu xóa đặc biệt (spin): Gửi gấp đôi số hàng vừa xóa. — B2B gửi thêm 1/1/2/4/8 cho Spin Đơn/Spin Đôi/Spin Tam/Techrash/Techrash+ — B2B2B gửi thêm (số hàng xóa × 0.5) trên B2B và +1 hàng để đánh chặn — Mini sẽ bị cắt chỉ còn ¼ so với giá trị ban đầu - Kiểu xóa nâng cao (Techrash/Techrash+ nhưng không spin): + Kiểu xóa đặc biệt (Techrash/Techrash+ nhưng không spin): — B2B gửi thêm 1 hàng — B3B boost 50% tấn công và +1 hàng để đánh chặn @@ -64,7 +64,7 @@ Thanh Back to Back (B2B): Một người chơi đang ở trang thái B3B khi thanh có hơn 800 điểm. Nếu có hàng được xóa: - Kiểu xóa nâng cao: + Kiểu xóa đặc biệt: — Spin Đơn/Đôi/Tam/Techrash/Techrash+ lần lượt cộng thêm 50/100/180/800/1000 (×50% nếu là Mini) — Techrash +150 điểm, nếu xóa hơn 4 hàng cùng lúc, mỗi hàng từ hàng thứ 5 trở đi cộng thêm 50 điểm. — PC từ thứ 4 trở đi có giá trị 800 điểm @@ -82,12 +82,13 @@ Hệ thống tính điểm: Việc tính điểm cũng độc lập tùy vào từng chế độ. -Khoảng thời gian chờ trước khi tấn công: - Một đòn sát thương sẽ không có hiệu lực ngay lập tức để người chơi có chút thời gian phản ứng trước khi tràn vào bảng. - Thời gian chờ của các đòn tấn công như sau, sắp xếp từ nhanh nhất tới lâu nhất: +Khoảng thời gian chờ trước khi gây sát thương: + Một đòn sát thương sẽ không có hiệu lực ngay lập tức + để người chơi có chút thời gian phản ứng trước khi chúng có hiệu lực (rác tràn vào bảng). + Thời gian chờ của các đòn tấn công như sau, xếp từ ngắn nhất tới dài nhất: — Double và Triple (Đôi và Tam) là nhanh nhất — Theo sau là Techrash, Techrash+, spin; Mini, B2B và B3B có thêm thêm chút thời gian chờ nữa. - — Sát thương từ combo có thời gian chờ lâu nhất.. + — Sát thương từ combo có thời gian chờ lâu nhất. Phản công: diff --git a/parts/player/init.lua b/parts/player/init.lua index 684f900a..1a5cec89 100644 --- a/parts/player/init.lua +++ b/parts/player/init.lua @@ -205,7 +205,7 @@ local function _executeMod(P) if applyStatus=='always' then if M.funcOnce then M.funcOnce(P,M.list and M.list[GAME.mod[i]]) - elseif M.funcRepe then + elseif M.funcRepeat then table.insert(GAME.modCodeList[P.id],function() M.funcInit(P,M.list and M.list[GAME.mod[i]]) end) else M.funcInit(P,M.list and M.list[GAME.mod[i]]) diff --git a/parts/scenes/app_console.lua b/parts/scenes/app_console.lua index 1ab2340a..b4ee724f 100644 --- a/parts/scenes/app_console.lua +++ b/parts/scenes/app_console.lua @@ -379,11 +379,11 @@ local commands={} do } commands.viewlog={ code=goScene('viewLog'), - description="View crashes' log", + description="View crash logs", details={ - "Open crashes' log to view right at the spot", + "Open the crash logs menu", "", - "Usage: viewLog" + "Usage: viewlog" } } commands.scrinfo={ @@ -487,7 +487,9 @@ local commands={} do commands.setbg={ code=function(name) if name~="" then - if name~=BG.cur then + if SETTING.lockBG then + log{"Background ",C.R,"locked",C.Z,"! Please unlock background first."} + elseif name~=BG.cur then if BG.set(name) then log(("Background set to '%s'"):format(name)) else @@ -511,7 +513,7 @@ local commands={} do code=function(name) if name~="" then if SETTING.noTheme then - log{"Theme is ",C.R,"disabled",C.Z,"! Please re-enable it before trying this command again"} + log{"Theme is ",C.R,"disabled",C.Z,"! Please re-enable theme first."} else if THEME.set(name) then log("Theme set to: "..name) diff --git a/parts/scenes/mod.lua b/parts/scenes/mod.lua index 536e4e8c..574d947d 100644 --- a/parts/scenes/mod.lua +++ b/parts/scenes/mod.lua @@ -108,9 +108,9 @@ function scene.draw() GC.rotate(t) local rad,side=45,5 if GAME.modApplyAt=='always' then - if M.funcRepe then side=nil - elseif M.funcOnce then side=8 - else side=5 end + if M.funcRepeat then side=nil + elseif M.funcOnce then side=8 + else side=5 end end local color=M.color GC.setColor(color[1],color[2],color[3],5*t)