自定义游戏高级设置加入新增功能,最高场地高度机制微调,增加可视化

This commit is contained in:
MrZ626
2021-05-13 14:47:17 +08:00
parent a04438dbf8
commit 70408e4a2e
11 changed files with 97 additions and 65 deletions

View File

@@ -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,

View File

@@ -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",

View File

@@ -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é",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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="!@#$%^&*",

View File

@@ -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="自定义游戏",

View File

@@ -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)

View File

@@ -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,

View File

@@ -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

View File

@@ -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},
} }