From 3116fff5521c5c03f49f3cb7e31a924093e61c6a Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Mon, 23 Nov 2020 21:11:31 +0800 Subject: [PATCH] =?UTF-8?q?mod=E9=87=8D=E6=96=B0=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- parts/globalTables.lua | 160 ++++++++++++++++-------------------- parts/language/lang_zh.lua | 37 ++++----- parts/language/lang_zh2.lua | 10 +-- parts/scenes/mod.lua | 24 +++--- 4 files changed, 102 insertions(+), 129 deletions(-) diff --git a/parts/globalTables.lua b/parts/globalTables.lua index 2a174f0d..12f043aa 100644 --- a/parts/globalTables.lua +++ b/parts/globalTables.lua @@ -2,147 +2,109 @@ local function disableKey(P,key) table.insert(P.gameEnv.keyCancel,key) end MODOPT={--Mod options - noNext={no=0,id="NN", - key="q",x=80,y=230,color="red", - conflict={"hideNext","fullNext"}, - func=function(P)P.gameEnv.nextCount=0 end, + next={no=0,id="NX", + key="q",x=80,y=230,color="orange", + list={0,1,2,3,4,5,6}, + func=function(P,M)P.gameEnv.nextCount=M.list[M.sel]end, }, - fullNext={no=1,id="FN", - key="w",x=200,y=230,color="water", - conflict={"noNext"}, - func=function(P)P.gameEnv.nextCount=6 end, + hold={no=1,id="HL", + key="w",x=200,y=230,color="orange", + list={0,1,2,3,4,5,6}, + func=function(P,M)P.gameEnv.holdCount=M.list[M.sel]end, unranked=true, }, - noHold={no=2,id="NH", - key="e",x=320,y=230,color="red", - conflict={"multiHold"}, - func=function(P)P.gameEnv.holdCount=0 end, - }, - multiHold={no=3,id="MH", - key="r",x=440,y=230,color="water", - list={2,3,4,5,6}, - conflict={"noHold"}, - func=function(P,M)P.gameEnv.holdCount=M.list[M.sel] end, - unranked=true, - }, - hideNext={no=4,id="FL", - key="y",x=680,y=230,color="orange", + hideNext={no=2,id="FL", + key="e",x=320,y=230,color="water", list={1,2,3,4,5}, - conflict={"noNext"}, func=function(P,M)P.gameEnv.nextStartPos=M.list[M.sel]+1 end, }, - hideBlock={no=5,id="HB", - key="u",x=800,y=230,color="orange", + infHold={no=3,id="IH", + key="r",x=440,y=230,color="water", + func=function(P,M)P.gameEnv.infHold=true end, + unranked=true, + }, + hideBlock={no=4,id="HB", + key="y",x=680,y=230,color="purple", func=function(P)P.gameEnv.block=false end, }, - hideGhost={no=6,id="HG", - key="i",x=920,y=230,color="orange", + hideGhost={no=5,id="HG", + key="u",x=800,y=230,color="purple", func=function(P)P.gameEnv.ghost=false end, }, - hidden={no=7,id="HD", - key="o",x=1040,y=230,color="grape", + hidden={no=6,id="HD", + key="i",x=920,y=230,color="grape", list={"time","fast","none"}, - conflict={"coverBoard"}, func=function(P,M)P.gameEnv.visible=M.list[M.sel]end, unranked=true, }, - coverBoard={no=8,id="CB", - key="p",x=1160,y=230,color="grape", + hideBoard={no=7,id="HB", + key="o",x=1040,y=230,color="grape", list={"down","up","all"}, - conflict={"hidden"}, + func=function(P)LOG.print("该mod还没有做好!")end, + }, + flipBoard={no=8,id="FB", + key="p",x=1160,y=230,color="grass", + list={"UD","LR","180"}, func=function(P)LOG.print("该mod还没有做好!")end, }, - maxG={no=9,id="20G", + dropDelay={no=9,id="DT", key="a",x=140,y=350,color="red", - conflict={"minG","suddenLock"}, - func=function(P)P.gameEnv.drop=0 end, + 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}, + func=function(P,M)P.gameEnv.drop=M.list[M.sel]end, unranked=true, }, - suddenLock={no=10,id="SL", + lockDelay={no=10,id="LT", key="s",x=260,y=350,color="red", - conflict={"maxG","infLock"}, - func=function(P)P.gameEnv.lock=0 end, + list={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,1e99}, + func=function(P,M)P.gameEnv.lock=M.list[M.sel]end, unranked=true, }, - oneLife={no=11,id="SD", + waitDelay={no=11,id="ST", key="d",x=380,y=350,color="red", - conflict={"infLife"}, - func=function(P)P.gameEnv.life=0 end, + list={0,1,2,3,4,5,6,7,8,10,15,20,30,60}, + func=function(P,M)P.gameEnv.wait=M.list[M.sel]end, unranked=true, }, - noTele={no=12,id="NT", + fallDelay={no=12,id="CT", key="f",x=500,y=350,color="red", - conflict={"teleMove"}, - func=function(P)P.gameEnv.noTele=true end, + list={0,1,2,3,4,5,6,7,8,10,15,20,30,60}, + func=function(P,M)P.gameEnv.fall=M.list[M.sel]end, + unranked=true, }, - customSeq={no=13,id="CS", - key="g",x=620,y=350,color="blue", - list={"bag","his4","rnd","reverb"}, - func=function(P,M)P.gameEnv.sequence=M.list[M.sel]end, + life={no=13,id="LF", + key="j",x=860,y=350,color="yellow", + list={0,1,2,3,5,10,15,26,42,87,500}, + func=function(P,M)P.gameEnv.life=M.list[M.sel]end, unranked=true, }, forceB2B={no=14,id="FB", - key="h",x=740,y=350,color="yellow", + key="k",x=980,y=350,color="yellow", func=function(P)P.gameEnv.b2bKill=true end, }, forceFinesse={no=15,id="PF", - key="j",x=860,y=350,color="yellow", + key="l",x=1100,y=350,color="yellow", func=function(P)P.gameEnv.fineKill=true end, }, - mirror={no=16,id="MR", - key="k",x=980,y=350,color="grass", - func=function(P)LOG.print("该mod还没有做好!")end, - }, - flip={no=17,id="HR", - key="l",x=1100,y=350,color="grass", - func=function(P)LOG.print("该mod还没有做好!")end, - }, - minG={no=18,id="0G", - key="z",x=200,y=470,color="cyan", - conflict={"maxG"}, - func=function(P)P.gameEnv.drop=1e99 end, - unranked=true, - }, - infLock={no=19,id="IF", - key="x",x=320,y=470,color="cyan", - conflict={"suddenLock"}, - func=function(P)P.gameEnv.lock=1e99 end, - unranked=true, - }, - infLife={no=20,id="NF", - key="c",x=440,y=470,color="cyan", - conflict={"oneLife"}, - func=function(P)P.gameEnv.life=1e99 end, - unranked=true, - }, - teleMove={no=21,id="TL", - key="v",x=560,y=470,color="cyan", - conflict={"noTele"}, + tele={no=16,id="TL", + key="z",x=200,y=470,color="lGrey", func=function(P) P.gameEnv.das,P.gameEnv.arr=0,0 P.gameEnv.sddas,P.gameEnv.sdarr=0,0 - disableKey(P,14) - disableKey(P,15) - disableKey(P,16) end, unranked=true, }, - boneBlock={no=22,id="BN", - key="b",x=680,y=470,color="blue", - func=function(P,M)P.gameEnv.bone=true end, - }, - noRotation={no=23,id="FX", - key="n",x=800,y=470,color="lGrey", + noRotation={no=17,id="FX", + key="x",x=320,y=470,color="lGrey", func=function(P) disableKey(P,3) disableKey(P,4) disableKey(P,5) end, }, - noMove={no=24,id="ST", - key="m",x=920,y=470,color="lGrey", + noMove={no=18,id="GL", + key="c",x=440,y=470,color="lGrey", func=function(P) disableKey(P,1)disableKey(P,2) disableKey(P,11)disableKey(P,12) @@ -150,6 +112,22 @@ MODOPT={--Mod options disableKey(P,19)disableKey(P,20) end, }, + customSeq={no=19,id="CS", + key="b",x=680,y=470,color="blue", + list={"bag","his4","rnd","reverb"}, + func=function(P,M)P.gameEnv.sequence=M.list[M.sel]end, + unranked=true, + }, + pushSpeed={no=20,id="PS", + key="n",x=800,y=470,color="blue", + list={.5,1,2,3,5,15,1e99}, + func=function(P,M)P.gameEnv.pushSpeed=M.list[M.sel]end, + unranked=true, + }, + boneBlock={no=21,id="BN", + key="m",x=920,y=470,color="blue", + func=function(P,M)P.gameEnv.bone=true end, + }, } for _,M in next,MODOPT do M.sel,M.time=0,0 diff --git a/parts/language/lang_zh.lua b/parts/language/lang_zh.lua index b308b88a..bfe762fa 100644 --- a/parts/language/lang_zh.lua +++ b/parts/language/lang_zh.lua @@ -90,33 +90,30 @@ return{ errorMsg="Techmino遭受了雷击,需要重新启动.\n我们已收集了一些错误信息,你可以向作者进行反馈.", - modInstruction="选择你要使用的Mod!\n不同Mod会用不同的方式改变初始游戏规则(可能导致不能正常游玩)\n来开发新玩法或者挑战自我吧!\n提醒:开启一些Mod会让成绩无效,你也可以用键盘开关Mod", + modInstruction="选择你要使用的Mod!\n不同Mod会用不同的方式改变初始游戏规则(可能导致不能正常游玩)\n来开发新玩法或者挑战自我吧!\n提醒:开启一些Mod会让成绩无效,你也可以用键盘开关Mod,按住shift反向", modInfo={ - noNext="无Next:\n禁用Next", - fullNext="全Next:\n强制打开6Next", - noHold="无Hold:\n禁用Hold", - multiHold="多Hold:\n可以使用多个Hold", + next="Next数量:\n强制使用Next的个数", + hold="Hold数量:\n强制使用Hold的个数", hideNext="隐藏Next:\n隐藏前几个Next", - hideBlock="隐藏方块:\n隐藏当前方块", - hideGhost="隐藏阴影:\n隐藏提示阴影", + infHold="无限Hold:\n可以无限制使用Hold", + hideBlock="隐藏方块:\n使当前方块不可见", + hideGhost="隐藏阴影:\n使提示阴影不可见", hidden="隐形:\n方块将会在锁定之后隐形", - coverBoard="遮挡:\n遮挡部分/全部场地", - maxG="20G:\n强制启用最高下落速度", - suddenLock="零锁延:\n强制启用0锁定延迟", - oneLife="一命:\n有且只有一条生命", - noTele="简单操作:\n禁用10个高级操作按键", - customSeq="指定序列:\n强制使用某种序列", + hideBoard="遮挡:\n遮挡部分或者全部场地", + flipBoard="翻转:\n将场地以一定方式翻转显示", + dropDelay="重力:\n强制使用下落速度(单位:帧/格)", + lockDelay="锁延:\n强制使用锁定延迟(单位:帧)", + waitDelay="出块等待:\n出块后的等待时间(单位:帧)", + fallDelay="消行等待:\n消行后的等待时间(单位:帧)", + life="生命数:\n修改初始生命数量", forceB2B="强制B2B:\nB2B条掉到启动线以下就会结束游戏", forceFinesse="强制极简:\n非极简操作将强制结束游戏", - mirror="镜像:\n场地左右颠倒", - flip="翻转:\n场地上下颠倒", - minG="0G:\n关闭重力", - infLock="无限锁延:\n方块将不会锁定", - infLife="不死:\n无限生命数", - teleMove="瞬移:\n强制启用0DAS和0ARR", - boneBlock="骨块:\n使用骨块进行游戏", + tele="瞬移:\n强制启用0移动延迟", noRotation="无旋转:\n禁用旋转按键", noMove="无移动:\n禁用移动按键", + customSeq="指定序列:\n强制使用某种序列", + pushSpeed="涨行速度:\n改变垃圾行升起的速度(单位:格/帧)", + boneBlock="骨块:\n使用骨块进行游戏", }, acts={ "左移:","右移:", diff --git a/parts/language/lang_zh2.lua b/parts/language/lang_zh2.lua index 1e4894e6..82654cb5 100644 --- a/parts/language/lang_zh2.lua +++ b/parts/language/lang_zh2.lua @@ -29,13 +29,11 @@ return{ modInstruction="选择你要使用的模组!\n不同的模组会用不同的方式改变游戏规则,来开发新玩法挑战自我吧!\n提醒:开启一些模组会让成绩无效 你可以用键盘开关模组,按tab重置", modInfo={ - noNext="无预览:\n禁用预览", - fullNext="全预览:\n强制打开6预览", - noHold="无暂存:\n禁用暂存", + next="预览数量:\n强制使用预览的个数", + hold="暂存数量:\n强制使用暂存的个数", hideNext="隐藏预览:\n隐藏前几个预览", - suddenLock="零锁延:\n强制启用0锁定延迟", - forceB2B="禁断满贯:\n满贯点数掉到启动线以下就会结束游戏", - forceFinesse="强制极简:\n非极简操作将强制结束游戏", + infHold="无限暂存:\n可以无限制使用暂存", + forceB2B="强制满贯:\n满贯点数条掉到启动线以下就会结束游戏", }, pauseStat={ "时间:", diff --git a/parts/scenes/mod.lua b/parts/scenes/mod.lua index 3610c7de..3d473dbd 100644 --- a/parts/scenes/mod.lua +++ b/parts/scenes/mod.lua @@ -1,4 +1,5 @@ local gc=love.graphics +local kb=love.keyboard local ins,rem=table.insert,table.remove local function modComp(a,b) @@ -12,23 +13,22 @@ local function remMod(M) end end end -local function toggleMod(M) +local function toggleMod(M,back) if M.sel==0 then ins(GAME.mod,M) table.sort(GAME.mod,modComp) end if M.list then - M.sel=(M.sel+1)%(#M.list+1) + if back then + M.sel=(M.sel-1)%(#M.list+1) + else + M.sel=(M.sel+1)%(#M.list+1) + end else M.sel=1-M.sel end if M.sel==0 then remMod(M) - elseif M.conflict then - for _,v in next,M.conflict do - MODOPT[v].sel=0 - remMod(MODOPT[v]) - end end if M.unranked then SFX.play("move",.6) @@ -55,10 +55,10 @@ function mouseMove.mod(x,y) end end end -function mouseDown.mod(x,y) +function mouseDown.mod(x,y,k) for _,M in next,MODOPT do if(x-M.x)^2+(y-M.y)^2<2000 then - toggleMod(M) + toggleMod(M,k==2 or kb.isDown("lshift","rshift")) break end end @@ -81,7 +81,7 @@ function keyDown.mod(key) elseif #key==1 then for N,M in next,MODOPT do if key==M.key then - toggleMod(M) + toggleMod(M,kb.isDown("lshift","rshift")) sceneTemp.sel=N break end @@ -106,7 +106,7 @@ function Tmr.mod() end function Pnt.mod() setFont(40) - gc.setLineWidth(4) + gc.setLineWidth(5) for _,M in next,MODOPT do gc.push("transform") gc.translate(M.x,M.y) @@ -147,7 +147,7 @@ end WIDGET.init("mod",{ WIDGET.newText{name="title", x=80,y=50,font=70,align="L"}, - WIDGET.newText{name="unranked", x=1200,y=60,color="lRed",font=50,align="R",hide=function()return scoreValid()end}, + WIDGET.newText{name="unranked", x=1200,y=60,color="yellow",font=50,align="R",hide=function()return scoreValid()end}, WIDGET.newButton{name="reset", x=1140,y=540,w=170,h=80,font=25,code=WIDGET.lnk_pressKey("tab")}, WIDGET.newButton{name="back", x=1140,y=640,w=170,h=80,font=40,code=WIDGET.lnk_BACK}, }) \ No newline at end of file