自定义游戏高级设置加入新增功能,最高场地高度机制微调,增加可视化
This commit is contained in:
@@ -213,6 +213,8 @@ customEnv0={
|
|||||||
--Rule
|
--Rule
|
||||||
sequence='bag',
|
sequence='bag',
|
||||||
fieldH=20,
|
fieldH=20,
|
||||||
|
heightLimit=1e99,
|
||||||
|
bufferLimit=1e99,
|
||||||
|
|
||||||
ospin=true,
|
ospin=true,
|
||||||
fineKill=false,
|
fineKill=false,
|
||||||
|
|||||||
@@ -438,19 +438,23 @@ return{
|
|||||||
holdCount="Hold",
|
holdCount="Hold",
|
||||||
infHold="Infinite Hold",
|
infHold="Infinite Hold",
|
||||||
phyHold="In-place Hold",
|
phyHold="In-place Hold",
|
||||||
bone="Bone Blocks",
|
|
||||||
|
|
||||||
fieldH="Field Height",
|
fieldH="Field Height",
|
||||||
ospin="O-Spin",
|
|
||||||
deepDrop="Deep Drop",
|
|
||||||
visible="Visibility",
|
visible="Visibility",
|
||||||
freshLimit="Lock Reset Limit",
|
freshLimit="Lock Reset Limit",
|
||||||
easyFresh="Normal Lock Reset",
|
|
||||||
fineKill="100% Finesse",
|
|
||||||
b2bKill="No B2B break",
|
|
||||||
opponent="Opponent",
|
opponent="Opponent",
|
||||||
life="Lives",
|
life="Lives",
|
||||||
pushSpeed="Garbage Speed",
|
pushSpeed="Garbage Speed",
|
||||||
|
|
||||||
|
bufferLimit="Buffer Limit",
|
||||||
|
heightLimit="Height Limit",
|
||||||
|
initSkip="Initial Skip",
|
||||||
|
ospin="O-Spin",
|
||||||
|
fineKill="100% Finesse",
|
||||||
|
b2bKill="No B2B break",
|
||||||
|
easyFresh="Normal Lock Reset",
|
||||||
|
deepDrop="Deep Drop",
|
||||||
|
bone="Bone Blocks",
|
||||||
},
|
},
|
||||||
custom_field={
|
custom_field={
|
||||||
title="Custom Game",
|
title="Custom Game",
|
||||||
|
|||||||
@@ -410,19 +410,23 @@ return{
|
|||||||
holdCount="Réserve",
|
holdCount="Réserve",
|
||||||
infHold="Réserver une fois",
|
infHold="Réserver une fois",
|
||||||
-- phyHold="Physical Hold",
|
-- phyHold="Physical Hold",
|
||||||
bone="Crochets",
|
|
||||||
|
|
||||||
-- fieldH="Field height",
|
-- fieldH="Field height",
|
||||||
ospin="O-spin",
|
|
||||||
-- deepDrop="Deep Drop",
|
|
||||||
visible="Visibilité",
|
visible="Visibilité",
|
||||||
freshLimit="Limite de réinit. du délai de verrouillage",
|
freshLimit="Limite de réinit. du délai de verrouillage",
|
||||||
easyFresh="Réinit. de verrouillage normale",
|
|
||||||
fineKill="100% Finesse",
|
|
||||||
b2bKill="Sans perte de B2B",
|
|
||||||
opponent="Adversaire",
|
opponent="Adversaire",
|
||||||
life="Vie",
|
life="Vie",
|
||||||
pushSpeed="Vitesse des lignes indésirables",
|
pushSpeed="Vitesse des lignes indésirables",
|
||||||
|
|
||||||
|
-- bufferLimit="Buffer Limit",
|
||||||
|
-- heightLimit="Height Limit",
|
||||||
|
-- initSkip="Initial Skip",
|
||||||
|
ospin="O-spin",
|
||||||
|
fineKill="100% Finesse",
|
||||||
|
b2bKill="Sans perte de B2B",
|
||||||
|
easyFresh="Réinit. de verrouillage normale",
|
||||||
|
-- deepDrop="Deep Drop",
|
||||||
|
bone="Crochets",
|
||||||
},
|
},
|
||||||
custom_field={
|
custom_field={
|
||||||
title="Mode personnalisé",
|
title="Mode personnalisé",
|
||||||
|
|||||||
@@ -438,19 +438,23 @@ return{
|
|||||||
holdCount="Segurar",
|
holdCount="Segurar",
|
||||||
infHold="Segurar Infinito",
|
infHold="Segurar Infinito",
|
||||||
-- phyHold="Physical Hold",
|
-- phyHold="Physical Hold",
|
||||||
bone="Bone Blocks",
|
|
||||||
|
|
||||||
-- fieldH="Field height",
|
-- fieldH="Field height",
|
||||||
ospin="O-Spin",
|
|
||||||
-- deepDrop="Deep Drop",
|
|
||||||
visible="Visibilidade",
|
visible="Visibilidade",
|
||||||
freshLimit="Limite Reset de Trava",
|
freshLimit="Limite Reset de Trava",
|
||||||
easyFresh="Reset De Trava Normal",
|
|
||||||
fineKill="100% Finesse",
|
|
||||||
b2bKill="Sem Quebrar B2B",
|
|
||||||
opponent="Oponente",
|
opponent="Oponente",
|
||||||
life="Vidas",
|
life="Vidas",
|
||||||
pushSpeed="Velocidade De Lixo",
|
pushSpeed="Velocidade De Lixo",
|
||||||
|
|
||||||
|
-- bufferLimit="Buffer Limit",
|
||||||
|
-- heightLimit="Height Limit",
|
||||||
|
-- initSkip="Initial Skip",
|
||||||
|
ospin="O-Spin",
|
||||||
|
fineKill="100% Finesse",
|
||||||
|
b2bKill="Sem Quebrar B2B",
|
||||||
|
easyFresh="Reset De Trava Normal",
|
||||||
|
-- deepDrop="Deep Drop",
|
||||||
|
bone="Bone Blocks",
|
||||||
},
|
},
|
||||||
custom_field={
|
custom_field={
|
||||||
title="Jogo Costumizado",
|
title="Jogo Costumizado",
|
||||||
|
|||||||
@@ -411,20 +411,23 @@ return{
|
|||||||
holdCount="Reserva",
|
holdCount="Reserva",
|
||||||
infHold="Reserva Inft.",
|
infHold="Reserva Inft.",
|
||||||
phyHold="Reserva Limit.",
|
phyHold="Reserva Limit.",
|
||||||
bone="Bone Block",
|
|
||||||
|
|
||||||
fieldH="Altura del tablero",
|
fieldH="Altura del tablero",
|
||||||
ospin="O-Spin",
|
|
||||||
deepDrop="Deep Drop",
|
|
||||||
target="Objetivo",
|
|
||||||
visible="Visibilidad",
|
visible="Visibilidad",
|
||||||
freshLimit="Límite de Reinicio LD",
|
freshLimit="Límite de Reinicio LD",
|
||||||
easyFresh="Reinicio de Bloqueo Normal",
|
|
||||||
fineKill="100% Finesse",
|
|
||||||
b2bKill="No Romper B2B ",
|
|
||||||
opponent="Oponente",
|
opponent="Oponente",
|
||||||
life="Vida",
|
life="Vida",
|
||||||
pushSpeed="Velocidad de Basura",
|
pushSpeed="Velocidad de Basura",
|
||||||
|
|
||||||
|
-- bufferLimit="Buffer Limit",
|
||||||
|
-- heightLimit="Height Limit",
|
||||||
|
-- initSkip="Initial Skip",
|
||||||
|
ospin="O-Spin",
|
||||||
|
fineKill="100% Finesse",
|
||||||
|
b2bKill="No Romper B2B ",
|
||||||
|
easyFresh="Reinicio de Bloqueo Normal",
|
||||||
|
deepDrop="Deep Drop",
|
||||||
|
bone="Bone Block",
|
||||||
},
|
},
|
||||||
custom_field={
|
custom_field={
|
||||||
title="Juego Personalizado",
|
title="Juego Personalizado",
|
||||||
|
|||||||
@@ -294,19 +294,23 @@ return{
|
|||||||
holdCount="[ ]",
|
holdCount="[ ]",
|
||||||
infHold="∞*[ ]",
|
infHold="∞*[ ]",
|
||||||
phyHold="P-[ ]",
|
phyHold="P-[ ]",
|
||||||
bone="[]",
|
|
||||||
|
|
||||||
fieldH="↑[]↓",
|
fieldH="↑[]↓",
|
||||||
ospin="O→Any",
|
|
||||||
deepDrop="\\↓↓/",
|
|
||||||
visible="?=",
|
visible="?=",
|
||||||
freshLimit="@",
|
freshLimit="@",
|
||||||
easyFresh="↓_↓_↓_",
|
|
||||||
fineKill="12 XX 21",
|
|
||||||
b2bKill="_1 XX",
|
|
||||||
opponent="^_^",
|
opponent="^_^",
|
||||||
life="<R>",
|
life="<R>",
|
||||||
pushSpeed="_↑_↑_",
|
pushSpeed="_↑_↑_",
|
||||||
|
|
||||||
|
bufferLimit="^↑",
|
||||||
|
heightLimit="#↑",
|
||||||
|
initSkip="X→→",
|
||||||
|
ospin="O→Any",
|
||||||
|
fineKill="12 XX 21",
|
||||||
|
b2bKill="_1 XX",
|
||||||
|
easyFresh="↓_↓_↓_",
|
||||||
|
deepDrop="\\↓↓/",
|
||||||
|
bone="[]",
|
||||||
},
|
},
|
||||||
custom_field={
|
custom_field={
|
||||||
title="!@#$%^&*",
|
title="!@#$%^&*",
|
||||||
|
|||||||
@@ -437,19 +437,23 @@ return{
|
|||||||
holdCount="Hold",
|
holdCount="Hold",
|
||||||
infHold="无限Hold",
|
infHold="无限Hold",
|
||||||
phyHold="物理Hold",
|
phyHold="物理Hold",
|
||||||
bone="骨块",
|
|
||||||
|
|
||||||
fieldH="场地高度",
|
fieldH="场地高度",
|
||||||
ospin="O-spin",
|
|
||||||
deepDrop="深降",
|
|
||||||
visible="能见度",
|
visible="能见度",
|
||||||
freshLimit="锁延刷新限制",
|
freshLimit="锁延刷新限制",
|
||||||
easyFresh="普通刷新锁延",
|
|
||||||
fineKill="强制极简",
|
|
||||||
b2bKill="强制B2B",
|
|
||||||
opponent="对手",
|
opponent="对手",
|
||||||
life="命数",
|
life="命数",
|
||||||
pushSpeed="上涨速度",
|
pushSpeed="上涨速度",
|
||||||
|
|
||||||
|
bufferLimit="缓冲上限",
|
||||||
|
heightLimit="高度上限",
|
||||||
|
initSkip="开局跳块",
|
||||||
|
ospin="O-spin",
|
||||||
|
fineKill="强制极简",
|
||||||
|
b2bKill="强制B2B",
|
||||||
|
easyFresh="普通刷新锁延",
|
||||||
|
deepDrop="深降",
|
||||||
|
bone="骨块",
|
||||||
},
|
},
|
||||||
custom_field={
|
custom_field={
|
||||||
title="自定义游戏",
|
title="自定义游戏",
|
||||||
|
|||||||
@@ -571,6 +571,10 @@ function draw.norm(P)
|
|||||||
gc_setLineWidth(4)
|
gc_setLineWidth(4)
|
||||||
gc_line(0,fieldTop-FBN,300,fieldTop-FBN)
|
gc_line(0,fieldTop-FBN,300,fieldTop-FBN)
|
||||||
|
|
||||||
|
--Draw height limit line
|
||||||
|
gc_setColor(.4,.7+sin(t*12)*.3,1,.7)
|
||||||
|
gc_rectangle('fill',0,-ENV.heightLimit*30-FBN-2,300,4)
|
||||||
|
|
||||||
--Draw FXs
|
--Draw FXs
|
||||||
drawFXs(P)
|
drawFXs(P)
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,11 @@
|
|||||||
return{
|
return{
|
||||||
das=10,
|
das=10,arr=2,
|
||||||
arr=2,
|
|
||||||
dascut=0,
|
dascut=0,
|
||||||
sddas=2,
|
sddas=2,sdarr=2,
|
||||||
sdarr=2,
|
ihs=true,irs=true,ims=true,
|
||||||
ihs=true,
|
|
||||||
irs=true,
|
|
||||||
ims=true,
|
|
||||||
swap=true,
|
swap=true,
|
||||||
|
|
||||||
ghost=.3,center=1,
|
block=true,ghost=.3,center=1,
|
||||||
smooth=false,grid=.16,
|
smooth=false,grid=.16,
|
||||||
upEdge=true,
|
upEdge=true,
|
||||||
bagLine=true,
|
bagLine=true,
|
||||||
@@ -32,7 +28,7 @@ return{
|
|||||||
drop=60,lock=60,
|
drop=60,lock=60,
|
||||||
wait=0,fall=0,
|
wait=0,fall=0,
|
||||||
bone=false,
|
bone=false,
|
||||||
fieldH=20,maxOver=1e99,
|
fieldH=20,heightLimit=1e99,
|
||||||
nextCount=6,nextStartPos=1,
|
nextCount=6,nextStartPos=1,
|
||||||
holdCount=1,infHold=false,phyHold=false,
|
holdCount=1,infHold=false,phyHold=false,
|
||||||
ospin=true,deepDrop=false,initSkip=false,
|
ospin=true,deepDrop=false,initSkip=false,
|
||||||
@@ -45,7 +41,6 @@ return{
|
|||||||
life=0,
|
life=0,
|
||||||
garbageSpeed=1,
|
garbageSpeed=1,
|
||||||
pushSpeed=3,
|
pushSpeed=3,
|
||||||
block=true,
|
|
||||||
noTele=false,
|
noTele=false,
|
||||||
visible='show',
|
visible='show',
|
||||||
freshLimit=1e99,easyFresh=true,
|
freshLimit=1e99,easyFresh=true,
|
||||||
|
|||||||
@@ -277,7 +277,7 @@ function Player:garbageRise(color,amount,line)--Release n-lines garbage to field
|
|||||||
_=self.dropFX[i]
|
_=self.dropFX[i]
|
||||||
_[3],_[5]=_[3]+amount,_[5]+amount
|
_[3],_[5]=_[3]+amount,_[5]+amount
|
||||||
end
|
end
|
||||||
if #self.field>self.gameEnv.fieldH+self.gameEnv.maxOver then self:lose()end
|
if #self.field>self.gameEnv.heightLimit then self:lose()end
|
||||||
end
|
end
|
||||||
|
|
||||||
local invList={2,1,4,3,5,6,7}
|
local invList={2,1,4,3,5,6,7}
|
||||||
@@ -1444,6 +1444,9 @@ do--Player.drop(self)--Place piece
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--Check height limit
|
||||||
|
if cc==0 and #self.field>ENV.heightLimit then self:lose()end
|
||||||
|
|
||||||
--Update stat
|
--Update stat
|
||||||
Stat.score=Stat.score+cscore
|
Stat.score=Stat.score+cscore
|
||||||
Stat.piece=Stat.piece+1
|
Stat.piece=Stat.piece+1
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
local sList={
|
local sList={
|
||||||
fieldH={1,2,3,4,6,8,10,15,20,30,50,100},
|
|
||||||
visible={"show","easy","slow","medium","fast","none"},
|
visible={"show","easy","slow","medium","fast","none"},
|
||||||
freshLimit={0,8,15,1e99},
|
freshLimit={0,8,15,1e99},
|
||||||
opponent={"X","9S Lv.1","9S Lv.2","9S Lv.3","9S Lv.4","9S Lv.5","CC Lv.1","CC Lv.2","CC Lv.3","CC Lv.4","CC Lv.5"},
|
opponent={"X","9S Lv.1","9S Lv.2","9S Lv.3","9S Lv.4","9S Lv.5","CC Lv.1","CC Lv.2","CC Lv.3","CC Lv.4","CC Lv.5"},
|
||||||
life={0,1,2,3,5,10,15,26,42,87,500},
|
life={0,1,2,3,5,10,15,26,42,87,500},
|
||||||
pushSpeed={1,2,3,5,15},
|
pushSpeed={1,2,3,5,15},
|
||||||
|
fieldH={1,2,3,4,6,8,10,15,20,30,50,100},
|
||||||
|
heightLimit={2,3,4,6,8,10,15,20,30,50,100,150,200,1e99},
|
||||||
|
bufferLimit={4,6,10,15,20,40,100,1e99},
|
||||||
}
|
}
|
||||||
|
|
||||||
local scene={}
|
local scene={}
|
||||||
@@ -14,25 +16,28 @@ scene.widgetList={
|
|||||||
WIDGET.newText{name="subTitle", x=530,y=50,font=35,align='L',color='H'},
|
WIDGET.newText{name="subTitle", x=530,y=50,font=35,align='L',color='H'},
|
||||||
|
|
||||||
--Control
|
--Control
|
||||||
WIDGET.newSlider{name="nextCount", x=200, y=150, w=200,unit=6, disp=CUSval("nextCount"),code=CUSsto("nextCount")},
|
WIDGET.newSlider{name="nextCount", x=180, y=150, w=200,unit=6, disp=CUSval("nextCount"),code=CUSsto("nextCount")},
|
||||||
WIDGET.newSlider{name="holdCount", x=200, y=240, w=200,unit=6, disp=CUSval("holdCount"),code=CUSsto("holdCount")},
|
WIDGET.newSlider{name="holdCount", x=180, y=240, w=200,unit=6, disp=CUSval("holdCount"),code=CUSsto("holdCount")},
|
||||||
WIDGET.newSwitch{name="infHold", x=350, y=340, disp=CUSval("infHold"), code=CUSrev("infHold"),hide=function()return CUSTOMENV.holdCount==0 end},
|
WIDGET.newSwitch{name="infHold", x=330, y=340, disp=CUSval("infHold"),code=CUSrev("infHold"),hide=function()return CUSTOMENV.holdCount==0 end},
|
||||||
WIDGET.newSwitch{name="phyHold", x=350, y=430, disp=CUSval("phyHold"), code=CUSrev("phyHold"),hide=function()return CUSTOMENV.holdCount==0 end},
|
WIDGET.newSwitch{name="phyHold", x=330, y=430, disp=CUSval("phyHold"),code=CUSrev("phyHold"),hide=function()return CUSTOMENV.holdCount==0 end},
|
||||||
|
WIDGET.newSwitch{name="initSkip", x=330, y=530, font=25, disp=CUSval("initSkip"),code=CUSrev("initSkip")},
|
||||||
|
|
||||||
--Rule
|
--Rule
|
||||||
WIDGET.newSelector{name="fieldH", x=270, y=520, w=260,color='N',list=sList.fieldH, disp=CUSval("fieldH"),code=CUSsto("fieldH")},
|
WIDGET.newSelector{name="visible", x=840, y=60, w=260,color='lB',list=sList.visible, disp=CUSval("visible"), code=CUSsto("visible")},
|
||||||
WIDGET.newSelector{name="visible", x=840, y=60, w=260,color='lB',list=sList.visible, disp=CUSval("visible"),code=CUSsto("visible")},
|
WIDGET.newSelector{name="freshLimit",x=840, y=160, w=260,color='V',list=sList.freshLimit, disp=CUSval("freshLimit"), code=CUSsto("freshLimit")},
|
||||||
WIDGET.newSelector{name="freshLimit",x=840, y=160, w=260,color='V',list=sList.freshLimit, disp=CUSval("freshLimit"),code=CUSsto("freshLimit")},
|
WIDGET.newSelector{name="opponent", x=1120, y=60, w=260,color='R',list=sList.opponent, disp=CUSval("opponent"), code=CUSsto("opponent")},
|
||||||
WIDGET.newSelector{name="opponent", x=1120, y=60, w=260,color='R',list=sList.opponent, disp=CUSval("opponent"),code=CUSsto("opponent")},
|
WIDGET.newSelector{name="life", x=1120, y=160, w=260,color='R',list=sList.life, disp=CUSval("life"), code=CUSsto("life")},
|
||||||
WIDGET.newSelector{name="life", x=1120, y=160, w=260,color='R',list=sList.life, disp=CUSval("life"),code=CUSsto("life")},
|
WIDGET.newSelector{name="pushSpeed",x=1120, y=260, w=260,color='R',list=sList.pushSpeed, disp=CUSval("pushSpeed"), code=CUSsto("pushSpeed")},
|
||||||
WIDGET.newSelector{name="pushSpeed",x=1120, y=260, w=260,color='R',list=sList.pushSpeed, disp=CUSval("pushSpeed"),code=CUSsto("pushSpeed")},
|
|
||||||
|
|
||||||
WIDGET.newSwitch{name="ospin", x=870, y=350, font=30,disp=CUSval("ospin"), code=CUSrev("ospin")},
|
WIDGET.newSelector{name="fieldH", x=570, y=350, w=260,color='N',list=sList.fieldH, disp=CUSval("fieldH"), code=CUSsto("fieldH")},
|
||||||
WIDGET.newSwitch{name="fineKill", x=870, y=440, font=20,disp=CUSval("fineKill"),code=CUSrev("fineKill")},
|
WIDGET.newSelector{name="heightLimit",x=570,y=440, w=260,color='S',list=sList.heightLimit, disp=CUSval("heightLimit"), code=CUSsto("heightLimit")},
|
||||||
WIDGET.newSwitch{name="b2bKill", x=870, y=530, font=20,disp=CUSval("b2bKill"), code=CUSrev("b2bKill")},
|
WIDGET.newSelector{name="bufferLimit",x=570,y=520, w=260,color='O',list=sList.bufferLimit, disp=CUSval("bufferLimit"), code=CUSsto("bufferLimit")},
|
||||||
WIDGET.newSwitch{name="easyFresh", x=1160, y=350, font=20,disp=CUSval("easyFresh"),code=CUSrev("easyFresh")},
|
WIDGET.newSwitch{name="ospin", x=880, y=350, font=30,disp=CUSval("ospin"), code=CUSrev("ospin")},
|
||||||
WIDGET.newSwitch{name="deepDrop", x=1160, y=440, font=30,disp=CUSval("deepDrop"),code=CUSrev("deepDrop")},
|
WIDGET.newSwitch{name="fineKill", x=880, y=440, font=20,disp=CUSval("fineKill"), code=CUSrev("fineKill")},
|
||||||
WIDGET.newSwitch{name="bone", x=1160, y=530, disp=CUSval("bone"), code=CUSrev("bone")},
|
WIDGET.newSwitch{name="b2bKill", x=880, y=530, font=20,disp=CUSval("b2bKill"), code=CUSrev("b2bKill")},
|
||||||
|
WIDGET.newSwitch{name="easyFresh", x=1160, y=350, font=20,disp=CUSval("easyFresh"), code=CUSrev("easyFresh")},
|
||||||
|
WIDGET.newSwitch{name="deepDrop", x=1160, y=440, font=30,disp=CUSval("deepDrop"), code=CUSrev("deepDrop")},
|
||||||
|
WIDGET.newSwitch{name="bone", x=1160, y=530, disp=CUSval("bone"), code=CUSrev("bone")},
|
||||||
|
|
||||||
WIDGET.newButton{name="back", x=1140, y=640, w=170,h=80, font=40,code=backScene},
|
WIDGET.newButton{name="back", x=1140, y=640, w=170,h=80, font=40,code=backScene},
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user