全新自定义游戏设置界面

This commit is contained in:
MrZ626
2020-09-17 18:17:06 +08:00
parent 3099043c62
commit 43874a09db
8 changed files with 255 additions and 307 deletions

View File

@@ -31,34 +31,6 @@ local langList={
pauseCount="暂停统计",
custom="自定义游戏",
customOption={
drop="下落速度:",
lock="锁定延迟:",
wait="放块延迟:",
fall="消行延迟:",
next="序列数量:",
hold="暂存:",
sequence="序列:",
visible="可见性:",
target="目标行数:",
freshLimit="锁延刷新次数:",
opponent="对手速度等级:",
bg="背景:",
bgm="背景音乐:",
},
customVal={
drop={"0G","1/180G","1/60G","1/40G","1/30G","1/25G","1/20G","1/18G","1/16G","1/14G","1/12G","1/10G","1/9G","1/8G","1/7G","1/6G","1/5G","1/4G","1/3G","1/2G","1G","2G","4G","8G","20G"},
lock={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,""},
wait=nil,
fall=nil,
next=nil,
hold={"","","无限"},
sequence={"bag","his4","随机","循环","固定"},
visible={"可见","半隐","全隐","瞬隐"},
target={10,20,40,100,200,500,1000,""},
freshLimit={0,8,15,""},
opponent={"无电脑","9S Lv1","9S Lv2","9S Lv3","9S Lv4","9S Lv5","CC Lv1","CC Lv2","CC Lv3","CC Lv4","CC Lv5","CC Lv6"},
},
sequence="自定义序列",
softdropdas="软降DAS:",
softdroparr="软降ARR:",
@@ -222,16 +194,28 @@ local langList={
back="返回",
},
custom={
up="",
down="",
left="",
right="",
set1="40行(1)",
set2="1v1(2)",
set3="无尽(3)",
set4="隐形(4)",
set5="极限(5)",
seq="高级设置(Q)",
drop="下落延迟",lock="锁定延迟",wait="出块等待",fall="消行延迟",
next="Next",hold="Hold",oncehold="Hold一次",
block="方块透明度",ghost="阴影透明度",center="中心透明度",
bagLine="包分界线",
highCam="超屏视野",
nextPos="生成预览",
mindas="最小DAS",minarr="最小ARR",minsdarr="最小软降ARR",
noTele="禁止瞬移",
ospin="O-spin",
sequence="序列",
target="目标行数",
bone="骨块",
visible="能见度",
freshLimit="锁延刷新限制",
easyFresh="普通刷新锁延",
fineKill="非极简即死",
opponent="对手",
life="命数",
pushSpeed="上涨速度",
bg="背景",
bgm="音乐",
seq="序列内容(Q)",
draw="初始场地(E)",
back="返回",
},
@@ -535,34 +519,6 @@ local langList={
pauseCount="暂停统计",
custom="自定义游戏",
customOption={
drop="下落速度:",
lock="锁定延迟:",
wait="放块延迟:",
fall="消行延迟:",
next="序列数量:",
hold="暂存:",
sequence="序列:",
visible="可见性:",
target="目标行数:",
freshLimit="锁延刷新次数:",
opponent="对手速度等级:",
bg="背景:",
bgm="背景音乐:",
},
customVal={
drop={"0G","1/180G","1/60G","1/40G","1/30G","1/25G","1/20G","1/18G","1/16G","1/14G","1/12G","1/10G","1/9G","1/8G","1/7G","1/6G","1/5G","1/4G","1/3G","1/2G","1G","2G","4G","8G","20G"},
lock={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,""},
wait=nil,
fall=nil,
next=nil,
hold={"","","无限"},
sequence={"bag","his4","随机","循环","固定"},
visible={"可见","半隐","全隐","瞬隐"},
target={10,20,40,100,200,500,1000,""},
freshLimit={0,8,15,""},
opponent={"无电脑","9S Lv1","9S Lv2","9S Lv3","9S Lv4","9S Lv5","CC Lv1","CC Lv2","CC Lv3","CC Lv4","CC Lv5","CC Lv6"},
},
sequence="自定义序列",
snapLevelName={"无吸附","10像素吸附","20像素吸附","40像素吸附","60像素吸附","80像素吸附"},
setting_game="游戏设置",
@@ -722,16 +678,28 @@ local langList={
back="返回",
},
custom={
up="",
down="",
left="",
right="",
set1="40行(1)",
set2="1v1(2)",
set3="无尽(3)",
set4="隐形(4)",
set5="极限(5)",
seq="高级设置(Q)",
drop="下落延迟",lock="锁定延迟",wait="出块等待",fall="消行延迟",
next="Next",hold="Hold",oncehold="Hold一次",
block="方块透明度",ghost="阴影透明度",center="中心透明度",
bagLine="包分界线",
highCam="超屏视野",
nextPos="生成预览",
mindas="最小DAS",minarr="最小ARR",minsdarr="最小软降ARR",
noTele="禁止瞬移",
ospin="O-spin",
sequence="序列",
target="目标行数",
bone="骨块",
visible="能见度",
freshLimit="锁延刷新限制",
easyFresh="普通刷新锁延",
fineKill="非极简即死",
opponent="对手",
life="命数",
pushSpeed="上涨速度",
bg="背景",
bgm="音乐",
seq="序列内容(Q)",
draw="初始场地(E)",
back="返回",
},
@@ -1035,34 +1003,6 @@ local langList={
pauseCount="Pauses:",
custom="Custom Game",
customOption={
drop="Drop Speed:",
lock="Lock Delay:",
wait="Entry Delay:",
fall="Line Delay:",
next="Next Length:",
hold="Hold:",
sequence="Randomizer:",
visible="Visibility:",
target="Line Goal:",
freshLimit="Lock Reset Limit:",
opponent="Opponent Type:",
bg="Background:",
bgm="Music:",
},
customVal={
drop={"0G","1/180G","1/60G","1/40G","1/30G","1/25G","1/20G","1/18G","1/16G","1/14G","1/12G","1/10G","1/9G","1/8G","1/7G","1/6G","1/5G","1/4G","1/3G","1/2G","1G","2G","4G","8G","20G"},
lock={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,"Inf"},
wait=nil,
fall=nil,
next=nil,
hold={"On","Off","Inf"},
sequence={"Bag","His4","Random","Loop","Fixed"},
visible={"Normal","Slow Fade","Quick Fade","Sudden Fade"},
target={10,20,40,100,200,500,1000,"None"},
freshLimit={0,8,15,"Inf"},
opponent={"None","9S Lv1","9S Lv2","9S Lv3","9S Lv4","9S Lv5","CC Lv1","CC Lv2","CC Lv3","CC Lv4","CC Lv5","CC Lv6"},
},
sequence="Custom Sequence",
snapLevelName={"Free pos","Snap-10","Snap-20","Snap-40","Snap-60","Snap-80"},
setting_game="Game Settings",
@@ -1212,16 +1152,28 @@ local langList={
back="Back",
},
custom={
up="",
down="",
left="",
right="",
set1="40L (1)",
set2="1v1 (2)",
set3="Inf. (3)",
set4="Blind (4)",
set5="Master (5)",
seq="Advanced(Q)",
drop="Drop Speed",lock="Lock Delay",wait="Entry Delay",fall="Line Delay",
next="Next",hold="Hold",oncehold="Hold Once",
block="Block",ghost="Ghost",center="Center",
bagLine="Bag Line",
highCam="Bird-eye view",
nextPos="Next preview",
mindas="min DAS",minarr="min ARR",minsdarr="min SDARR",
noTele="no Teleport",
ospin="O-spin",
sequence="Sequence",
target="Target",
bone="Bone Block",
visible="Visibility",
freshLimit="LD-Reset Limit",
easyFresh="Normal Lock Reset",
fineKill="100% Finesse",
opponent="Opponent",
life="Life",
pushSpeed="Garbage Speed",
bg="Background",
bgm="Music",
seq="Sequence(Q)",
draw="Edit Field (E)",
back="Back",
},
@@ -1293,7 +1245,7 @@ local langList={
frame="Render Frame Rate",
text="Action Text",
warn="Death Alert",
highCam="Superhigh view",
highCam="Bird-eye view",
nextPos="Next preview",
fullscreen="Full Screen",
bg="Background",
@@ -1507,7 +1459,7 @@ local langList={
clear={"1","2","3","4","5"},
mini="v",b2b="^ ",b3b="^^ ",
PC="#<>#",HPC="<>",
hold="[ ]",next="",
hold="[ ]",next="",
replaying="[Replaying]",
stage=function(n)return"::"..n.."::"end,
@@ -1525,34 +1477,6 @@ local langList={
pauseCount="=:",
custom="!@#$%^&*",
customOption={
drop="↓:",
lock="↓_:",
wait="→=:",
fall="↓=:",
next="→:",
hold="[ ]:",
sequence="$=:",
visible="?=:",
target="&=:",
freshLimit="@:",
opponent="^_^:",
bg="{~}:",
bgm="(~):",
},
customVal={
drop={"0G","1/180G","1/60G","1/40G","1/30G","1/25G","1/20G","1/18G","1/16G","1/14G","1/12G","1/10G","1/9G","1/8G","1/7G","1/6G","1/5G","1/4G","1/3G","1/2G","1G","2G","4G","8G","20G"},
lock={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,"Inf"},
wait=nil,
fall=nil,
next=nil,
hold={"+","-","~"},
sequence={"(xxx)","[....]","???","{abc}+","==="},
visible={"=","-","_","."},
target={10,20,40,100,200,500,1000,"x"},
freshLimit={0,8,15,"~"},
opponent={"x","9S Lv1","9S Lv2","9S Lv3","9S Lv4","9S Lv5","CC Lv1","CC Lv2","CC Lv3","CC Lv4","CC Lv5","CC Lv6"},
},
sequence="!@#$%^&*",
snapLevelName={"~","10","20","40","60","80"},
setting_game="%~~%",
@@ -1600,7 +1524,7 @@ local langList={
load={[0]="___","_vocie_","_BGM_","_SFX_","_images_","_modes_","_???_"},
pauseStat={
"~:",
"=/''/[ ]:",
"=/''/[ ]:",
"□:",
"-/↓:",
"→/↓→:",
@@ -1625,7 +1549,7 @@ local langList={
"@:",
"##:",
"~:",
"=/''/[ ]:",
"=/''/[ ]:",
"□/-/→.:",
"←/-↓/↑:",
"↓/↓→.:",
@@ -1700,16 +1624,29 @@ local langList={
back="X",
},
custom={
up="",
down="",
left="",
right="",
set1="40L (1)",
set2="1v1 (2)",
set3="Inf. (3)",
set4="Blind (4)",
set5="Master (5)",
seq="Advanced(Q)",
drop="",lock="↓_",wait="→=",fall="↓=",
next="",hold="[ ]",oncehold="[ ]*1",
block="==↓==",ghost="__↓__",center="+",
bagLine="123|123",
highCam="↑__↑",
nextPos="???←",
mindas="mDAS",minarr="mARR",minsdarr="msdARR",
noTele="X→→X",
ospin="O→Any",
sequence="$=",
target="&=",
bone="[]",
visible="?=",
freshLimit="@",
easyFresh="普通刷新锁延",
fineKill="12 XX 21",
opponent="^_^",
life="命数",
pushSpeed="上涨速度",
bg="{~}",
bgm="(~)",
seq="!!!!(Q)",
draw="####(E)",
back="X",
},
@@ -1759,7 +1696,7 @@ local langList={
layout="=-=-=",
autoPause="A||",
swap="=+=+=",
fine="!#!X #!#",
fine="12 X 21",
appLock="?XX(=626)",
back="X",
},
@@ -2013,34 +1950,6 @@ local langList={
pauseCount="歇多久了",
custom="随便玩",
customOption={
drop="落多快:",
lock="锁多快:",
wait="出多快:",
fall="消多快:",
next="看几个:",
hold="暂存:",
sequence="出啥:",
visible="看不看得见:",
target="要消多少:",
freshLimit="能动几下:",
opponent="打谁:",
bg="背景:",
bgm="歌:",
},
customVal={
drop={"0G","1/180G","1/60G","1/40G","1/30G","1/25G","1/20G","1/18G","1/16G","1/14G","1/12G","1/10G","1/9G","1/8G","1/7G","1/6G","1/5G","1/4G","1/3G","1/2G","1G","2G","4G","8G","20G"},
lock={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,""},
wait=nil,
fall=nil,
next=nil,
hold={"","","无限"},
sequence={"bag","his4","乱出","循环","就那几个"},
visible={"看得到","还行","看不到","瞎了"},
target={10,20,40,100,200,500,1000,""},
freshLimit={0,8,15,""},
opponent={"打空气","9S Lv1","9S Lv2","9S Lv3","9S Lv4","9S Lv5","CC Lv1","CC Lv2","CC Lv3","CC Lv4","CC Lv5","CC Lv6"},
},
sequence="自定义序列",
softdropdas="软降DAS:",
softdroparr="软降ARR:",
@@ -2202,16 +2111,28 @@ local langList={
back="返回",
},
custom={
up="",
down="",
left="",
right="",
set1="40行(1)",
set2="1v1(2)",
set3="无尽(3)",
set4="隐形(4)",
set5="极限(5)",
seq="高级设置(Q)",
drop="下落延迟",lock="锁定延迟",wait="出块等待",fall="消行延迟",
next="Next",hold="Hold",oncehold="Hold一次",
block="方块透明度",ghost="阴影透明度",center="中心透明度",
bagLine="包分界线",
highCam="超屏视野",
nextPos="生成预览",
mindas="最小DAS",minarr="最小ARR",minsdarr="最小软降ARR",
noTele="禁止瞬移",
ospin="O-spin",
sequence="序列",
target="目标行数",
bone="骨块",
visible="能见度",
freshLimit="锁延刷新限制",
easyFresh="普通刷新锁延",
fineKill="非极简即死",
opponent="对手",
life="命数",
pushSpeed="上涨速度",
bg="背景",
bgm="音乐",
seq="序列内容(Q)",
draw="初始场地(E)",
back="返回",
},

View File

@@ -74,11 +74,28 @@ local virtualkeySet={
{20,1210, 50,30},--zangiRight
},--PC key feedback(top&in a row)
}
local CUSlist={
drop={1e99,180,60,40,30,25,20,18,16,14,12,10,9,8,7,6,5,4,3,2,1,.5,.25,.125,0},
lock={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,1e99},
wait={0,1,2,3,4,5,6,7,8,10,15,20,30,60},
fall={0,1,2,3,4,5,6,7,8,10,15,20,30,60},
sequence={"bag","his4","rnd","loop","fixed"},
target={10,20,40,100,200,500,1000,1e99},
visible={"show","time","fast","none"},
freshLimit={0,8,15,1e99},
opponent={0,1,2,3,4,5,6,7,8,9,10},
life={0,1,2,3,4,5,10,42,87,500},
pushSpeed={1,2,3,5,15},
bg={"none","bg1","bg2","rainbow","aura","rgb","glow","matrix"},
bgm={"blank","race","push","way","reason","newera","oxygen","infinite","down","secret7th","secret8th","rockblock","cruelty","final"},
}
--Lambda Funcs for widgets,delete at file end
function CUSval(k) return function()return customEnv[k] end end
function CUSrev(k) return function()customEnv[k]=not customEnv[k] end end
function CUSsto(k) return function(i)customEnv[k]=i end end
function SETval(k) return function()return setting[k] end end
function SETsto(k) return function(i)setting[k]=i end end
function SETrev(k) return function()setting[k]=not setting[k] end end
function SETsto(k) return function(i)setting[k]=i end end
function pressKey(k)return function()love.keypressed(k) end end
function setPen(i) return function()sceneTemp.pen=i end end
function prevSkin(n)return function()SKIN.prev(n) end end
@@ -96,6 +113,7 @@ newButton=WIDGET.newButton
newKey=WIDGET.newKey
newSwitch=WIDGET.newSwitch
newSlider=WIDGET.newSlider
newSelector=WIDGET.newSelector
--All widgets
local Widgets={
@@ -148,18 +166,46 @@ local Widgets={
newButton({name="back", x=1140, y=640, w=180,h=80, color="white", font=35,code=BACK}),
},
custom={
newKey({name="up", x=1140, y=100, w=100, color="white", font=45,code=function()sceneTemp=(sceneTemp-2)%#customID+1 end}),
newKey({name="down", x=1140, y=340, w=100, color="white", font=45,code=function()sceneTemp=sceneTemp%#customID+1 end}),
newKey({name="left", x=1080, y=220, w=100, color="white", font=45,code=pressKey("left")}),
newKey({name="right", x=1200, y=220, w=100, color="white", font=45,code=pressKey("right")}),
--Basic
newSelector({name="drop", x=180, y=150+20,w=260, list=CUSlist.drop, disp=CUSval("drop"), code=CUSsto("drop")}),
newSelector({name="lock", x=180, y=230+20,w=260, list=CUSlist.lock, disp=CUSval("lock"), code=CUSsto("lock")}),
newSelector({name="wait", x=180, y=310+20,w=260, list=CUSlist.wait, disp=CUSval("wait"), code=CUSsto("wait")}),
newSelector({name="fall", x=180, y=390+20,w=260, list=CUSlist.fall, disp=CUSval("fall"), code=CUSsto("fall")}),
newButton({name="set1", x=900, y=320, w=210,h=70, color="lYellow",font=32,code=pressKey("1")}),
newButton({name="set2", x=900, y=400, w=210,h=70, color="lYellow",font=32,code=pressKey("2")}),
newButton({name="set3", x=900, y=480, w=210,h=70, color="lYellow",font=32,code=pressKey("3")}),
newButton({name="set4", x=900, y=560, w=210,h=70, color="lYellow",font=32,code=pressKey("4")}),
newButton({name="set5", x=900, y=640, w=210,h=70, color="lYellow",font=32,code=pressKey("5")}),
newSlider({name="next", x=120, y=500,w=200,unit=6, font=30, disp=CUSval("next"), code=CUSsto("next")}),
newSwitch({name="hold", x=230, y=570, font=30, disp=CUSval("hold"), code=CUSrev("hold")}),
newSwitch({name="oncehold", x=230, y=650, font=30, disp=CUSval("oncehold"),code=CUSrev("oncehold"),hide=function()return not customEnv.hold end}),
newButton({name="seq", x=665, y=415, w=200,h=40, color="lGreen", font=30,code=pressKey("q")}),
--Visual
newSlider({name="block", x=470, y=150,w=120,unit=1, font=25, disp=CUSval("block"), code=CUSsto("block")}),
newSlider({name="ghost", x=470, y=210,w=120,unit=.6, font=25, disp=CUSval("ghost"), code=CUSsto("ghost")}),
newSlider({name="center", x=470, y=270,w=120,unit=1, font=25, disp=CUSval("center"), code=CUSsto("center")}),
newSwitch({name="bagLine", x=570, y=340, font=30, disp=CUSval("bagLine"), code=CUSrev("bagLine")}),
newSwitch({name="highCam", x=570, y=400, font=30, disp=CUSval("highCam"), code=CUSrev("highCam")}),
newSwitch({name="nextPos", x=570, y=460, font=30, disp=CUSval("nextPos"), code=CUSrev("nextPos")}),
newSwitch({name="bone", x=570, y=520, font=30, disp=CUSval("bone"), code=CUSrev("bone")}),
--Rule
newSlider({name="mindas", x=750, y=150,w=200,unit=15,font=25, disp=CUSval("mindas"), code=CUSsto("mindas")}),
newSlider({name="minarr", x=750, y=210,w=200,unit=10,font=25, disp=CUSval("minarr"), code=CUSsto("minarr")}),
newSlider({name="minsdarr", x=750, y=270,w=200,unit=4, font=22, disp=CUSval("minsdarr"),code=CUSsto("minsdarr")}),
newSelector({name="sequence", x=520, y=600,w=200, list=CUSlist.sequence, disp=CUSval("sequence"),code=CUSsto("sequence")}),
newSwitch({name="ospin", x=860, y=340, font=30, disp=CUSval("ospin"), code=CUSrev("ospin")}),
newSwitch({name="noTele", x=860, y=400, font=25, disp=CUSval("noTele"), code=CUSrev("noTele")}),
newSwitch({name="fineKill", x=860, y=460, font=22, disp=CUSval("fineKill"),code=CUSrev("fineKill")}),
newSwitch({name="easyFresh", x=860, y=520, font=18, disp=CUSval("easyFresh"),code=CUSrev("easyFresh")}),
newSelector({name="visible", x=1120, y=60,w=260, list=CUSlist.visible, disp=CUSval("visible"), code=CUSsto("visible")}),
newSelector({name="target", x=1120, y=140,w=260, list=CUSlist.target, disp=CUSval("target"), code=CUSsto("target")}),
newSelector({name="freshLimit", x=1120, y=220,w=260, list=CUSlist.freshLimit,disp=CUSval("freshLimit"),code=CUSsto("freshLimit")}),
newSelector({name="opponent", x=1120, y=300,w=260, list=CUSlist.opponent, disp=CUSval("opponent"),code=CUSsto("opponent")}),
newSelector({name="life", x=1120, y=380,w=260, list=CUSlist.life, disp=CUSval("life"), code=CUSsto("life")}),
newSelector({name="pushSpeed", x=1120, y=460,w=260, list=CUSlist.pushSpeed, disp=CUSval("pushSpeed"),code=CUSsto("pushSpeed")}),
--Else
newSelector({name="bg", x=800, y=600, w=220, list=CUSlist.bg, disp=CUSval("bg"), code=CUSsto("bg")}),
newSelector({name="bgm", x=800, y=670, w=220, list=CUSlist.bgm, disp=CUSval("bgm"), code=CUSsto("bgm")}),
newButton({name="seq", x=520, y=670, w=200,h=60, color="lGreen", font=30,code=pressKey("q")}),
newButton({name="draw", x=150, y=80, w=220,h=80, color="white", font=35,code=pressKey("e")}),
newButton({name="back", x=1140, y=640, w=180,h=80, color="white", font=35,code=BACK}),
},

View File

@@ -43,7 +43,46 @@ scr={
k=1,--Scale size
}--1280:720-Rect Screen Info
customSel={1,22,1,1,7,3,1,1,8,4,1,1,1}
customEnv={
--Basic
drop=60,
lock=60,
wait=0,
fall=0,
next=6,
hold=true,
oncehold=true,
--Visual
block=1,
ghost=.3,
center=1,
bagLine=false,
highCam=false,
nextPos=false,
bone=false,
--Rule
mindas=0,
minarr=0,
minsdarr=0,
sequence="bag",
ospin=true,
noTele=false,
fineKill=false,
easyFresh=true,
visible="show",
target=200,
freshLimit=1e99,
opponent=0,
life=0,
pushSpeed=3,
--Else
bg="none",
bgm="race"
}
preField={h=20}for i=1,20 do preField[i]={0,0,0,0,0,0,0,0,0,0}end
preBag={}

View File

@@ -6,12 +6,9 @@ return{
dropPiece=PLY.check_lineReach,
},
load=function()
for i=1,#customID do
local k=customID[i]
modeEnv[k]=customRange[k][customSel[i]]
for k,v in next,customEnv do
modeEnv[k]=v
end
modeEnv._20G=modeEnv.drop==0
modeEnv.oncehold=customSel[6]==1
if preBag[1]then
modeEnv.bag=preBag
else
@@ -21,10 +18,10 @@ return{
local L=modeEnv.opponent
if L~=0 then
modeEnv.target=nil
if L<10 then
if L<6 then
PLY.newAIPlayer(2,965,360,.5,AITemplate("9S",2*L))
else
PLY.newAIPlayer(2,965,360,.5,AITemplate("CC",L-6,2+int((L-11)*.5),modeEnv.hold,15000+5000*(L-10)))
PLY.newAIPlayer(2,965,360,.5,AITemplate("CC",L,int(L*.5-1.5),modeEnv.hold,4000*L))
end
end
preField.h=20
@@ -46,8 +43,8 @@ return{
end
P.garbageBeneath=preField.h
end
modeEnv.bg=customRange.bg[customSel[12]]
modeEnv.bgm=customRange.bgm[customSel[13]]
modeEnv.bg=customEnv.bg
modeEnv.bgm=customEnv.bgm
end,
mesDisp=function(P,dx,dy)
setFont(55)

View File

@@ -24,26 +24,22 @@ return{
dropPiece=puzzleCheck,
},
load=function()
for i=1,#customID do
local k=customID[i]
modeEnv[k]=customRange[k][customSel[i]]
for k,v in next,customEnv do
modeEnv[k]=v
end
modeEnv._20G=modeEnv.drop==0
modeEnv.oncehold=customSel[6]==1
if preBag[1]then
modeEnv.bag=preBag
else
modeEnv.bag=nil
end
modeEnv.target=0
PLY.newPlayer(1,340,15)
local L=modeEnv.opponent
if L~=0 then
modeEnv.target=nil
if L<10 then
if L<6 then
PLY.newAIPlayer(2,965,360,.5,AITemplate("9S",2*L))
else
PLY.newAIPlayer(2,965,360,.5,AITemplate("CC",L-6,2+int((L-11)*.5),modeEnv.hold,15000+5000*(L-10)))
PLY.newAIPlayer(2,965,360,.5,AITemplate("CC",L,int(L*.5-1.5),modeEnv.hold,4000*L))
end
end
preField.h=20
@@ -56,8 +52,8 @@ return{
preField.h=preField.h-1
until preField.h==0
::L::
modeEnv.bg=customRange.bg[customSel[12]]
modeEnv.bgm=customRange.bgm[customSel[13]]
modeEnv.bg=customEnv.bg
modeEnv.bgm=customEnv.bgm
end,
mesDisp=function(P)
local dx,dy=P.fieldOff.x,P.fieldOff.y

View File

@@ -163,31 +163,6 @@ for i=1,8 do
end
end
customID={
"drop","lock",
"wait","fall",
"next","hold",
"sequence","visible",
"target",
"freshLimit",
"opponent",
"bg","bgm",
}
customRange={
drop={1e99,180,60,40,30,25,20,18,16,14,12,10,9,8,7,6,5,4,3,2,1,.5,.25,.125,0},
lock={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,1e99},
wait={0,1,2,3,4,5,6,7,8,10,15,20,30,60},
fall={0,1,2,3,4,5,6,7,8,10,15,20,30,60},
next={0,1,2,3,4,5,6},
hold={true,false,true},
sequence={"bag","his4","rnd","loop","fixed"},
visible={"show","time","fast","none"},
target={10,20,40,100,200,500,1000,1e99},
freshLimit={0,8,15,1e99},
opponent={0,1,2,3,4,5,11,12,13,14,15,16},
bg={"none","bg1","bg2","rainbow","aura","rgb","glow","matrix"},
bgm={"blank","way","race","newera","push","reason","infinite","secret7th","secret8th","rockblock"},
}
local function T(s,t)return love.graphics.newText(setFont(s),t)end
drawableText={
question=T(100,"?"),

View File

@@ -2983,12 +2983,22 @@ function PLY.newDemoPlayer(id,x,y,size)
P.field,P.visTime={},{}
P.atkBuffer={sum=0}
P.gameEnv={
noTele=false,
drop=1e99,lock=1e99,
wait=10,fall=20,
next=6,hold=true,
oncehold=true,
das=10,arr=2,
sddas=2,sdarr=2,
swap=true,
ghost=setting.ghost,center=setting.center,
smooth=setting.smooth,grid=setting.grid,
--Visual
block=true,
ghost=setting.ghost,
center=setting.center,
bone=false,
smooth=setting.smooth,
grid=setting.grid,
text=setting.text,
lockFX=setting.lockFX,
dropFX=setting.dropFX,
@@ -2996,23 +3006,20 @@ function PLY.newDemoPlayer(id,x,y,size)
clearFX=setting.clearFX,
shakeFX=setting.shakeFX,
_20G=false,bone=false,
drop=1e99,lock=1e99,
wait=10,fall=20,
next=6,hold=true,
oncehold=true,
ospin=true,
mindas=0,minarr=0,minsdarr=0,
sequence="bag",
ospin=true,
noTele=false,
easyFresh=true,
visible="show",
freshLimit=1e99,
life=1e99,
pushSpeed=3,
bag={1,2,3,4,5,6,7},
face={0,0,0,0,0,0,0},
skin=setting.skin,
life=1e99,
pushSpeed=3,
block=true,
visible="show",
freshLimit=1e99,easyFresh=true,
mindas=0,minarr=0,minsdarr=0,
}
applyGameEnv(P)

View File

@@ -979,8 +979,8 @@ do--mode
if key=="return"then
if mapCam.sel then
if mapCam.sel=="custom_clear"or mapCam.sel=="custom_puzzle"then
if customSel[11]>1 then
if customSel[7]==5 then
if customEnv.opponent>1 then
if customEnv.seq=="fixed"then
LOG.print(text.ai_fixed,"warn",color.red)
return
elseif #preBag>0 then
@@ -1289,52 +1289,19 @@ do--music
end
do--custom
function sceneInit.custom()
BG.set("space")
sceneTemp=1--Option selected
destroyPlayers()
BG.set(customRange.bg[customSel[12]])
BGM.play(customRange.bgm[customSel[13]])
BG.set(customEnv.bg)
BGM.play(customEnv.bgm)
end
local customSet={
{3,20,1,1,7,1,1,1,3,4,1,2,3},
{5,20,1,1,7,1,1,1,8,3,8,3,3},
{1,22,1,1,7,3,1,1,8,4,1,6,7},
{3,20,1,1,7,1,1,3,8,3,1,6,8},
{25,11,8,11,4,1,2,1,8,3,1,4,9},
}
function keyDown.custom(key)
local sel=sceneTemp
if key=="up"or key=="w"then
sceneTemp=(sel-2)%#customID+1
elseif key=="down"or key=="s"then
sceneTemp=sel%#customID+1
elseif key=="left"or key=="a"then
customSel[sel]=(customSel[sel]-2)%#customRange[customID[sel]]+1
if sel==12 then
BG.set(customRange.bg[customSel[12]])
elseif sel==13 then
BGM.play(customRange.bgm[customSel[13]])
end
elseif key=="right"or key=="d"then
customSel[sel]=customSel[sel]%#customRange[customID[sel]]+1
if sel==12 then
BG.set(customRange.bg[customSel[sel]])
elseif sel==13 then
BGM.play(customRange.bgm[customSel[sel]])
end
elseif key=="q"then
if key=="q"then
SCN.go("sequence")
elseif key=="e"then
SCN.swapTo("draw","swipeL")
elseif #key==1 then
local T=tonumber(key)
if T and T>=1 and T<=5 then
for i=1,#customSet[T]do
customSel[i]=customSet[T][i]
end
BG.set(customRange.bg[customSel[12]])
BGM.play(customRange.bgm[customSel[13]])
end
elseif key=="escape"then
SCN.back()
end