mod重新整理
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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={
|
||||
"左移:","右移:",
|
||||
|
||||
@@ -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={
|
||||
"时间:",
|
||||
|
||||
@@ -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},
|
||||
})
|
||||
Reference in New Issue
Block a user