mod重新整理
This commit is contained in:
@@ -2,147 +2,109 @@ local function disableKey(P,key)
|
|||||||
table.insert(P.gameEnv.keyCancel,key)
|
table.insert(P.gameEnv.keyCancel,key)
|
||||||
end
|
end
|
||||||
MODOPT={--Mod options
|
MODOPT={--Mod options
|
||||||
noNext={no=0,id="NN",
|
next={no=0,id="NX",
|
||||||
key="q",x=80,y=230,color="red",
|
key="q",x=80,y=230,color="orange",
|
||||||
conflict={"hideNext","fullNext"},
|
list={0,1,2,3,4,5,6},
|
||||||
func=function(P)P.gameEnv.nextCount=0 end,
|
func=function(P,M)P.gameEnv.nextCount=M.list[M.sel]end,
|
||||||
},
|
},
|
||||||
fullNext={no=1,id="FN",
|
hold={no=1,id="HL",
|
||||||
key="w",x=200,y=230,color="water",
|
key="w",x=200,y=230,color="orange",
|
||||||
conflict={"noNext"},
|
list={0,1,2,3,4,5,6},
|
||||||
func=function(P)P.gameEnv.nextCount=6 end,
|
func=function(P,M)P.gameEnv.holdCount=M.list[M.sel]end,
|
||||||
unranked=true,
|
unranked=true,
|
||||||
},
|
},
|
||||||
noHold={no=2,id="NH",
|
hideNext={no=2,id="FL",
|
||||||
key="e",x=320,y=230,color="red",
|
key="e",x=320,y=230,color="water",
|
||||||
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",
|
|
||||||
list={1,2,3,4,5},
|
list={1,2,3,4,5},
|
||||||
conflict={"noNext"},
|
|
||||||
func=function(P,M)P.gameEnv.nextStartPos=M.list[M.sel]+1 end,
|
func=function(P,M)P.gameEnv.nextStartPos=M.list[M.sel]+1 end,
|
||||||
},
|
},
|
||||||
hideBlock={no=5,id="HB",
|
infHold={no=3,id="IH",
|
||||||
key="u",x=800,y=230,color="orange",
|
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,
|
func=function(P)P.gameEnv.block=false end,
|
||||||
},
|
},
|
||||||
hideGhost={no=6,id="HG",
|
hideGhost={no=5,id="HG",
|
||||||
key="i",x=920,y=230,color="orange",
|
key="u",x=800,y=230,color="purple",
|
||||||
func=function(P)P.gameEnv.ghost=false end,
|
func=function(P)P.gameEnv.ghost=false end,
|
||||||
},
|
},
|
||||||
hidden={no=7,id="HD",
|
hidden={no=6,id="HD",
|
||||||
key="o",x=1040,y=230,color="grape",
|
key="i",x=920,y=230,color="grape",
|
||||||
list={"time","fast","none"},
|
list={"time","fast","none"},
|
||||||
conflict={"coverBoard"},
|
|
||||||
func=function(P,M)P.gameEnv.visible=M.list[M.sel]end,
|
func=function(P,M)P.gameEnv.visible=M.list[M.sel]end,
|
||||||
unranked=true,
|
unranked=true,
|
||||||
},
|
},
|
||||||
coverBoard={no=8,id="CB",
|
hideBoard={no=7,id="HB",
|
||||||
key="p",x=1160,y=230,color="grape",
|
key="o",x=1040,y=230,color="grape",
|
||||||
list={"down","up","all"},
|
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,
|
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",
|
key="a",x=140,y=350,color="red",
|
||||||
conflict={"minG","suddenLock"},
|
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)P.gameEnv.drop=0 end,
|
func=function(P,M)P.gameEnv.drop=M.list[M.sel]end,
|
||||||
unranked=true,
|
unranked=true,
|
||||||
},
|
},
|
||||||
suddenLock={no=10,id="SL",
|
lockDelay={no=10,id="LT",
|
||||||
key="s",x=260,y=350,color="red",
|
key="s",x=260,y=350,color="red",
|
||||||
conflict={"maxG","infLock"},
|
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)P.gameEnv.lock=0 end,
|
func=function(P,M)P.gameEnv.lock=M.list[M.sel]end,
|
||||||
unranked=true,
|
unranked=true,
|
||||||
},
|
},
|
||||||
oneLife={no=11,id="SD",
|
waitDelay={no=11,id="ST",
|
||||||
key="d",x=380,y=350,color="red",
|
key="d",x=380,y=350,color="red",
|
||||||
conflict={"infLife"},
|
list={0,1,2,3,4,5,6,7,8,10,15,20,30,60},
|
||||||
func=function(P)P.gameEnv.life=0 end,
|
func=function(P,M)P.gameEnv.wait=M.list[M.sel]end,
|
||||||
unranked=true,
|
unranked=true,
|
||||||
},
|
},
|
||||||
noTele={no=12,id="NT",
|
fallDelay={no=12,id="CT",
|
||||||
key="f",x=500,y=350,color="red",
|
key="f",x=500,y=350,color="red",
|
||||||
conflict={"teleMove"},
|
list={0,1,2,3,4,5,6,7,8,10,15,20,30,60},
|
||||||
func=function(P)P.gameEnv.noTele=true end,
|
func=function(P,M)P.gameEnv.fall=M.list[M.sel]end,
|
||||||
|
unranked=true,
|
||||||
},
|
},
|
||||||
customSeq={no=13,id="CS",
|
life={no=13,id="LF",
|
||||||
key="g",x=620,y=350,color="blue",
|
key="j",x=860,y=350,color="yellow",
|
||||||
list={"bag","his4","rnd","reverb"},
|
list={0,1,2,3,5,10,15,26,42,87,500},
|
||||||
func=function(P,M)P.gameEnv.sequence=M.list[M.sel]end,
|
func=function(P,M)P.gameEnv.life=M.list[M.sel]end,
|
||||||
unranked=true,
|
unranked=true,
|
||||||
},
|
},
|
||||||
forceB2B={no=14,id="FB",
|
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,
|
func=function(P)P.gameEnv.b2bKill=true end,
|
||||||
},
|
},
|
||||||
forceFinesse={no=15,id="PF",
|
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,
|
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",
|
tele={no=16,id="TL",
|
||||||
key="z",x=200,y=470,color="cyan",
|
key="z",x=200,y=470,color="lGrey",
|
||||||
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"},
|
|
||||||
func=function(P)
|
func=function(P)
|
||||||
P.gameEnv.das,P.gameEnv.arr=0,0
|
P.gameEnv.das,P.gameEnv.arr=0,0
|
||||||
P.gameEnv.sddas,P.gameEnv.sdarr=0,0
|
P.gameEnv.sddas,P.gameEnv.sdarr=0,0
|
||||||
disableKey(P,14)
|
|
||||||
disableKey(P,15)
|
|
||||||
disableKey(P,16)
|
|
||||||
end,
|
end,
|
||||||
unranked=true,
|
unranked=true,
|
||||||
},
|
},
|
||||||
boneBlock={no=22,id="BN",
|
noRotation={no=17,id="FX",
|
||||||
key="b",x=680,y=470,color="blue",
|
key="x",x=320,y=470,color="lGrey",
|
||||||
func=function(P,M)P.gameEnv.bone=true end,
|
|
||||||
},
|
|
||||||
noRotation={no=23,id="FX",
|
|
||||||
key="n",x=800,y=470,color="lGrey",
|
|
||||||
func=function(P)
|
func=function(P)
|
||||||
disableKey(P,3)
|
disableKey(P,3)
|
||||||
disableKey(P,4)
|
disableKey(P,4)
|
||||||
disableKey(P,5)
|
disableKey(P,5)
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
noMove={no=24,id="ST",
|
noMove={no=18,id="GL",
|
||||||
key="m",x=920,y=470,color="lGrey",
|
key="c",x=440,y=470,color="lGrey",
|
||||||
func=function(P)
|
func=function(P)
|
||||||
disableKey(P,1)disableKey(P,2)
|
disableKey(P,1)disableKey(P,2)
|
||||||
disableKey(P,11)disableKey(P,12)
|
disableKey(P,11)disableKey(P,12)
|
||||||
@@ -150,6 +112,22 @@ MODOPT={--Mod options
|
|||||||
disableKey(P,19)disableKey(P,20)
|
disableKey(P,19)disableKey(P,20)
|
||||||
end,
|
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
|
for _,M in next,MODOPT do
|
||||||
M.sel,M.time=0,0
|
M.sel,M.time=0,0
|
||||||
|
|||||||
@@ -90,33 +90,30 @@ return{
|
|||||||
|
|
||||||
errorMsg="Techmino遭受了雷击,需要重新启动.\n我们已收集了一些错误信息,你可以向作者进行反馈.",
|
errorMsg="Techmino遭受了雷击,需要重新启动.\n我们已收集了一些错误信息,你可以向作者进行反馈.",
|
||||||
|
|
||||||
modInstruction="选择你要使用的Mod!\n不同Mod会用不同的方式改变初始游戏规则(可能导致不能正常游玩)\n来开发新玩法或者挑战自我吧!\n提醒:开启一些Mod会让成绩无效,你也可以用键盘开关Mod",
|
modInstruction="选择你要使用的Mod!\n不同Mod会用不同的方式改变初始游戏规则(可能导致不能正常游玩)\n来开发新玩法或者挑战自我吧!\n提醒:开启一些Mod会让成绩无效,你也可以用键盘开关Mod,按住shift反向",
|
||||||
modInfo={
|
modInfo={
|
||||||
noNext="无Next:\n禁用Next",
|
next="Next数量:\n强制使用Next的个数",
|
||||||
fullNext="全Next:\n强制打开6Next",
|
hold="Hold数量:\n强制使用Hold的个数",
|
||||||
noHold="无Hold:\n禁用Hold",
|
|
||||||
multiHold="多Hold:\n可以使用多个Hold",
|
|
||||||
hideNext="隐藏Next:\n隐藏前几个Next",
|
hideNext="隐藏Next:\n隐藏前几个Next",
|
||||||
hideBlock="隐藏方块:\n隐藏当前方块",
|
infHold="无限Hold:\n可以无限制使用Hold",
|
||||||
hideGhost="隐藏阴影:\n隐藏提示阴影",
|
hideBlock="隐藏方块:\n使当前方块不可见",
|
||||||
|
hideGhost="隐藏阴影:\n使提示阴影不可见",
|
||||||
hidden="隐形:\n方块将会在锁定之后隐形",
|
hidden="隐形:\n方块将会在锁定之后隐形",
|
||||||
coverBoard="遮挡:\n遮挡部分/全部场地",
|
hideBoard="遮挡:\n遮挡部分或者全部场地",
|
||||||
maxG="20G:\n强制启用最高下落速度",
|
flipBoard="翻转:\n将场地以一定方式翻转显示",
|
||||||
suddenLock="零锁延:\n强制启用0锁定延迟",
|
dropDelay="重力:\n强制使用下落速度(单位:帧/格)",
|
||||||
oneLife="一命:\n有且只有一条生命",
|
lockDelay="锁延:\n强制使用锁定延迟(单位:帧)",
|
||||||
noTele="简单操作:\n禁用10个高级操作按键",
|
waitDelay="出块等待:\n出块后的等待时间(单位:帧)",
|
||||||
customSeq="指定序列:\n强制使用某种序列",
|
fallDelay="消行等待:\n消行后的等待时间(单位:帧)",
|
||||||
|
life="生命数:\n修改初始生命数量",
|
||||||
forceB2B="强制B2B:\nB2B条掉到启动线以下就会结束游戏",
|
forceB2B="强制B2B:\nB2B条掉到启动线以下就会结束游戏",
|
||||||
forceFinesse="强制极简:\n非极简操作将强制结束游戏",
|
forceFinesse="强制极简:\n非极简操作将强制结束游戏",
|
||||||
mirror="镜像:\n场地左右颠倒",
|
tele="瞬移:\n强制启用0移动延迟",
|
||||||
flip="翻转:\n场地上下颠倒",
|
|
||||||
minG="0G:\n关闭重力",
|
|
||||||
infLock="无限锁延:\n方块将不会锁定",
|
|
||||||
infLife="不死:\n无限生命数",
|
|
||||||
teleMove="瞬移:\n强制启用0DAS和0ARR",
|
|
||||||
boneBlock="骨块:\n使用骨块进行游戏",
|
|
||||||
noRotation="无旋转:\n禁用旋转按键",
|
noRotation="无旋转:\n禁用旋转按键",
|
||||||
noMove="无移动:\n禁用移动按键",
|
noMove="无移动:\n禁用移动按键",
|
||||||
|
customSeq="指定序列:\n强制使用某种序列",
|
||||||
|
pushSpeed="涨行速度:\n改变垃圾行升起的速度(单位:格/帧)",
|
||||||
|
boneBlock="骨块:\n使用骨块进行游戏",
|
||||||
},
|
},
|
||||||
acts={
|
acts={
|
||||||
"左移:","右移:",
|
"左移:","右移:",
|
||||||
|
|||||||
@@ -29,13 +29,11 @@ return{
|
|||||||
|
|
||||||
modInstruction="选择你要使用的模组!\n不同的模组会用不同的方式改变游戏规则,来开发新玩法挑战自我吧!\n提醒:开启一些模组会让成绩无效 你可以用键盘开关模组,按tab重置",
|
modInstruction="选择你要使用的模组!\n不同的模组会用不同的方式改变游戏规则,来开发新玩法挑战自我吧!\n提醒:开启一些模组会让成绩无效 你可以用键盘开关模组,按tab重置",
|
||||||
modInfo={
|
modInfo={
|
||||||
noNext="无预览:\n禁用预览",
|
next="预览数量:\n强制使用预览的个数",
|
||||||
fullNext="全预览:\n强制打开6预览",
|
hold="暂存数量:\n强制使用暂存的个数",
|
||||||
noHold="无暂存:\n禁用暂存",
|
|
||||||
hideNext="隐藏预览:\n隐藏前几个预览",
|
hideNext="隐藏预览:\n隐藏前几个预览",
|
||||||
suddenLock="零锁延:\n强制启用0锁定延迟",
|
infHold="无限暂存:\n可以无限制使用暂存",
|
||||||
forceB2B="禁断满贯:\n满贯点数掉到启动线以下就会结束游戏",
|
forceB2B="强制满贯:\n满贯点数条掉到启动线以下就会结束游戏",
|
||||||
forceFinesse="强制极简:\n非极简操作将强制结束游戏",
|
|
||||||
},
|
},
|
||||||
pauseStat={
|
pauseStat={
|
||||||
"时间:",
|
"时间:",
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
local gc=love.graphics
|
local gc=love.graphics
|
||||||
|
local kb=love.keyboard
|
||||||
local ins,rem=table.insert,table.remove
|
local ins,rem=table.insert,table.remove
|
||||||
|
|
||||||
local function modComp(a,b)
|
local function modComp(a,b)
|
||||||
@@ -12,23 +13,22 @@ local function remMod(M)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
local function toggleMod(M)
|
local function toggleMod(M,back)
|
||||||
if M.sel==0 then
|
if M.sel==0 then
|
||||||
ins(GAME.mod,M)
|
ins(GAME.mod,M)
|
||||||
table.sort(GAME.mod,modComp)
|
table.sort(GAME.mod,modComp)
|
||||||
end
|
end
|
||||||
if M.list then
|
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
|
else
|
||||||
M.sel=1-M.sel
|
M.sel=1-M.sel
|
||||||
end
|
end
|
||||||
if M.sel==0 then
|
if M.sel==0 then
|
||||||
remMod(M)
|
remMod(M)
|
||||||
elseif M.conflict then
|
|
||||||
for _,v in next,M.conflict do
|
|
||||||
MODOPT[v].sel=0
|
|
||||||
remMod(MODOPT[v])
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
if M.unranked then
|
if M.unranked then
|
||||||
SFX.play("move",.6)
|
SFX.play("move",.6)
|
||||||
@@ -55,10 +55,10 @@ function mouseMove.mod(x,y)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
function mouseDown.mod(x,y)
|
function mouseDown.mod(x,y,k)
|
||||||
for _,M in next,MODOPT do
|
for _,M in next,MODOPT do
|
||||||
if(x-M.x)^2+(y-M.y)^2<2000 then
|
if(x-M.x)^2+(y-M.y)^2<2000 then
|
||||||
toggleMod(M)
|
toggleMod(M,k==2 or kb.isDown("lshift","rshift"))
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -81,7 +81,7 @@ function keyDown.mod(key)
|
|||||||
elseif #key==1 then
|
elseif #key==1 then
|
||||||
for N,M in next,MODOPT do
|
for N,M in next,MODOPT do
|
||||||
if key==M.key then
|
if key==M.key then
|
||||||
toggleMod(M)
|
toggleMod(M,kb.isDown("lshift","rshift"))
|
||||||
sceneTemp.sel=N
|
sceneTemp.sel=N
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
@@ -106,7 +106,7 @@ function Tmr.mod()
|
|||||||
end
|
end
|
||||||
function Pnt.mod()
|
function Pnt.mod()
|
||||||
setFont(40)
|
setFont(40)
|
||||||
gc.setLineWidth(4)
|
gc.setLineWidth(5)
|
||||||
for _,M in next,MODOPT do
|
for _,M in next,MODOPT do
|
||||||
gc.push("transform")
|
gc.push("transform")
|
||||||
gc.translate(M.x,M.y)
|
gc.translate(M.x,M.y)
|
||||||
@@ -147,7 +147,7 @@ end
|
|||||||
|
|
||||||
WIDGET.init("mod",{
|
WIDGET.init("mod",{
|
||||||
WIDGET.newText{name="title", x=80,y=50,font=70,align="L"},
|
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="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},
|
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