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