新增三个堆叠模式 close #142

This commit is contained in:
MrZ626
2021-08-03 03:11:14 +08:00
parent d6853d381f
commit 13e58e6f80
13 changed files with 138 additions and 30 deletions

View File

@@ -729,6 +729,9 @@ return{
['dig_1000l']= {"Dig", "1000L", "Dig 1000 garbage lines."},
['drought_n']= {"Drought", "100L", "There are no I-pieces."},
['drought_l']= {"Drought+", "100L", "W T F"},
['stack_20l']= {"Stack", "20L", "Pack them!"},
['stack_40l']= {"Stack", "40L", "Pack them!"},
['stack_100l']= {"Stack", "100L", "Pack them!"},
['marathon_n']= {"Marathon", "NORMAL", "200-line marathon with accelerating speed."},
['marathon_h']= {"Marathon", "HARD", "200-line high-speed marathon."},
['solo_e']= {"Battle", "EASY", "Defeat the AI!"},

View File

@@ -634,6 +634,9 @@ return{
['dig_1000l']= {"Queso", "1000L", "Limpia 1000 líneas de queso."},
['drought_n']= {"Sequía", "100L", "¡Sin piezas I!"},
['drought_l']= {"Sequía+", "100L", "Guat de foc..."},
-- ['stack_20l']= {"Stack", "20L", "Pack them!"},
-- ['stack_40l']= {"Stack", "40L", "Pack them!"},
-- ['stack_100l']= {"Stack", "100L", "Pack them!"},
['marathon_n']= {"Maratón", "Normal", "Maratón de 200 líneas con velocidad en aumento."},
['marathon_h']= {"Maratón", "Difícil", "Maratón de 200 líneas a velocidad máxima."},
['solo_e']= {"VS.", "Fácil", "¡Derrota a la CPU!"},

View File

@@ -636,6 +636,9 @@ return{
['dig_1000l']= {"Dig", "1000L", "Creusez 1000 lines"},
['drought_n']= {"Drought", "100L", "Pas de pièce I !"},
['drought_l']= {"Drought+", "100L", "WTF ??!!"},
-- ['stack_20l']= {"Stack", "20L", "Pack them!"},
-- ['stack_40l']= {"Stack", "40L", "Pack them!"},
-- ['stack_100l']= {"Stack", "100L", "Pack them!"},
['marathon_n']= {"Marathon", "NORMAL", "Marathon de 200 lignes."},
['marathon_h']= {"Marathon", "DIFFICILE", "Marathon de 200 lignes à très haute vitesse"},
['solo_e']= {"Battle", "FACILE", "Battez l'IA !"},

View File

@@ -720,6 +720,9 @@ return{
['dig_1000l']= {"Cave", "1000L", "Cave 1000 linhas de lixo."},
['drought_n']= {"Drought", "100L", "Sem peça I !"},
['drought_l']= {"Drought+", "100L", "WTF"},
-- ['stack_20l']= {"Stack", "20L", "Pack them!"},
-- ['stack_40l']= {"Stack", "40L", "Pack them!"},
-- ['stack_100l']= {"Stack", "100L", "Pack them!"},
['marathon_n']= {"Maratona", "NORMAL", "200-line Maratona com velocidade aumentando."},
['marathon_h']= {"Maratona", "DIFÍCIL", "200-line Maratona com velocidade alta."},
['solo_e']= {"Batalha", "FÁCIL", "Derrote a inteligência!"},

View File

@@ -220,6 +220,9 @@ return{
['dig_1000l']= {"挖掘", "1000L", "挖1000行"},
['drought_n']= {"干旱", "100L", "放轻松,简单得很"},
['drought_l']= {"干旱+", "100L", "有趣的要来了"},
['stack_20l']= {"堆叠", "20L", "拼图(确信"},
['stack_40l']= {"堆叠", "40L", "拼图(确信"},
['stack_100l']= {"堆叠", "100L", "盖楼(确信"},
['marathon_n']= {"马拉松", "普通", "休闲模式"},
['marathon_h']= {"马拉松", "困难", "休闲模式"},
['solo_e']= {"单挑", "简单", "鲨AI"},

View File

@@ -730,6 +730,9 @@ return{
['dig_1000l']= {"挖掘", "1000L", "挖掘1000行"},
['drought_n']= {"干旱", "100L", "你I没了"},
['drought_l']= {"干旱+", "100L", "后 妈 发 牌"},
['stack_20l']= {"堆积", "20L", "搭积木"},
['stack_40l']= {"堆积", "40L", "搭积木"},
['stack_100l']= {"堆积", "100L", "搭积木"},
['marathon_n']= {"马拉松", "普通", "200行加速马拉松"},
['marathon_h']= {"马拉松", "困难", "200行高速马拉松"},
['solo_e']= {"单挑", "简单", "打败AI"},

View File

@@ -146,6 +146,9 @@ return{
['dig_1000l']= {"挖掘", "1000L", "挖掘1000行"},
['drought_n']= {"干旱", "100行", "你I没了"},
['drought_l']= {"干旱+", "100行", "后 妈 发 牌"},
['stack_20l']= {"堆积", "20L", "搭积木"},
['stack_40l']= {"堆积", "40L", "搭积木"},
['stack_100l']= {"堆积", "100L", "搭积木"},
['marathon_n']= {"马拉松", "普通", "200行加速马拉松"},
['marathon_h']= {"马拉松", "困难", "200行高速马拉松"},
['solo_e']= {"单挑", "简单", "打败机器人"},

View File

@@ -1,20 +1,24 @@
return{
{name='sprint_10l', x=0, y=0, size=40,shape=1,icon="sprint1", unlock={'sprint_20l','sprint_40l'}},
{name='sprint_20l', x=-200, y=0, size=50,shape=1,icon="sprint1"},
{name='sprint_40l', x=0, y=-300, size=40,shape=1,icon="sprint2", unlock={'dig_10l','sprint_100l','marathon_n','sprintPenta','sprintMPH'}},
{name='sprint_100l', x=-200, y=-200, size=50,shape=1,icon="sprint2", unlock={'sprint_400l','drought_n'}},
{name='sprint_400l', x=-400, y=-200, size=40,shape=1,icon="sprint3", unlock={'sprint_1000l'}},
{name='sprint_1000l', x=-600, y=-200, size=40,shape=1,icon="sprint3"},
{name='sprint_20l', x=-200, y=200, size=50,shape=1,icon="sprint1"},
{name='sprint_40l', x=0, y=-300, size=40,shape=1,icon="sprint2", unlock={'dig_10l','sprint_100l','marathon_n','sprintPenta','sprintMPH','stack_20l'}},
{name='sprint_100l', x=-200, y=0, size=50,shape=1,icon="sprint2", unlock={'sprint_400l','drought_n'}},
{name='sprint_400l', x=-400, y=0, size=40,shape=1,icon="sprint3", unlock={'sprint_1000l'}},
{name='sprint_1000l', x=-600, y=0, size=40,shape=1,icon="sprint3"},
{name='sprintPenta', x=210, y=-370, size=40,shape=3,icon="tech"},
{name='sprintMPH', x=210, y=-230, size=40,shape=3,icon="tech"},
{name='drought_n', x=-400, y=0, size=40,shape=1,icon="drought", unlock={'drought_l'}},
{name='drought_l', x=-600, y=0, size=40,shape=1,icon="mess"},
{name='drought_n', x=-400, y=200, size=40,shape=1,icon="drought", unlock={'drought_l'}},
{name='drought_l', x=-600, y=200, size=40,shape=1,icon="drought"},
{name='dig_10l', x=-200, y=-400, size=40,shape=1,icon="dig_sprint",unlock={'dig_40l'}},
{name='dig_40l', x=-400, y=-400, size=40,shape=1,icon="dig_sprint",unlock={'dig_100l'}},
{name='dig_100l', x=-600, y=-400, size=40,shape=1,icon="dig_sprint",unlock={'dig_400l'}},
{name='stack_20l', x=-200, y=-400, size=40,shape=1,icon="mess", unlock={'stack_40l'}},
{name='stack_40l', x=-400, y=-400, size=40,shape=1,icon="mess", unlock={'stack_100l'}},
{name='stack_100l', x=-600, y=-400, size=40,shape=1,icon="mess"},
{name='dig_10l', x=-200, y=-200, size=40,shape=1,icon="dig_sprint",unlock={'dig_40l'}},
{name='dig_40l', x=-400, y=-200, size=40,shape=1,icon="dig_sprint",unlock={'dig_100l'}},
{name='dig_100l', x=-600, y=-200, size=40,shape=1,icon="dig_sprint",unlock={'dig_400l'}},
{name='dig_400l', x=-800, y=-200, size=40,shape=1,icon="dig_sprint"},
{name='marathon_n', x=0, y=-600, size=60,shape=1,icon="marathon",unlock={'marathon_h','rhythm_e','solo_e','round_e','blind_e','classic_fast','survivor_e','bigbang','zen'}},

View File

@@ -0,0 +1,27 @@
return{
color=COLOR.cyan,
env={
drop=60,lock=60,
freshLimit=15,
fieldH=100,
fillClear=false,
bg='none',bgm='there',
},
mesDisp=function(P)
setFont(55)
mStr(P.stat.piece,69,265)
end,
score=function(P)return{P.stat.piece,P.stat.time}end,
scoreDisp=function(D)return D[1].." Pieces".." "..STRING.time(D[2])end,
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[2]end,
getRank=function(P)
local B=P.stat.piece
return
B>=260 and 5 or
B>=254 and 4 or
B>=250 and 3 or
B>=243 and 2 or
B>=235 and 1 or
0
end,
}

26
parts/modes/stack_20l.lua Normal file
View File

@@ -0,0 +1,26 @@
return{
color=COLOR.cyan,
env={
drop=60,lock=60,
freshLimit=15,
fillClear=false,
bg='none',bgm='there',
},
mesDisp=function(P)
setFont(55)
mStr(P.stat.piece,69,265)
end,
score=function(P)return{P.stat.piece,P.stat.time}end,
scoreDisp=function(D)return D[1].." Pieces".." "..STRING.time(D[2])end,
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[2]end,
getRank=function(P)
local B=P.stat.piece
return
B>=55 and 5 or
B>=52 and 4 or
B>=49 and 3 or
B>=47 and 2 or
B>=44 and 1 or
0
end,
}

27
parts/modes/stack_40l.lua Normal file
View File

@@ -0,0 +1,27 @@
return{
color=COLOR.cyan,
env={
drop=60,lock=60,
freshLimit=15,
fieldH=40,
fillClear=false,
bg='none',bgm='there',
},
mesDisp=function(P)
setFont(55)
mStr(P.stat.piece,69,265)
end,
score=function(P)return{P.stat.piece,P.stat.time}end,
scoreDisp=function(D)return D[1].." Pieces".." "..STRING.time(D[2])end,
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[2]end,
getRank=function(P)
local B=P.stat.piece
return
B>=105 and 5 or
B>=101 and 4 or
B>=97 and 3 or
B>=94 and 2 or
B>=90 and 1 or
0
end,
}

View File

@@ -49,6 +49,7 @@ return{
visible='show',
freshLimit=1e99,easyFresh=true,
bufferLimit=1e99,
fillClear=true,
fkey1=false,fkey2=false,
keyCancel={},

View File

@@ -1009,32 +1009,34 @@ do--Player.drop(self)--Place piece
if self.clearedRow[1]then self.clearedRow={}end
--Check line clear
for i=1,#CB do
local h=CY+i-2
if ENV.fillClear then
for i=1,#CB do
local h=CY+i-2
--Bomb trigger
if h>0 and self.field[h]and self.clearedRow[cc]~=h then
for x=1,#CB[1]do
if CB[i][x]and self.field[h][CX+x-1]==19 then
cc=cc+1
self.clearingRow[cc]=h-cc+1
self.clearedRow[cc]=h
break
--Bomb trigger
if h>0 and self.field[h]and self.clearedRow[cc]~=h then
for x=1,#CB[1]do
if CB[i][x]and self.field[h][CX+x-1]==19 then
cc=cc+1
self.clearingRow[cc]=h-cc+1
self.clearedRow[cc]=h
break
end
end
end
end
h=h+1
--Row filled
for x=1,10 do
if self.field[h][x]<=0 then
goto CONTINUE_notFull
h=h+1
--Row filled
for x=1,10 do
if self.field[h][x]<=0 then
goto CONTINUE_notFull
end
end
cc=cc+1
self.clearingRow[cc]=h-cc+1
self.clearedRow[cc]=h
::CONTINUE_notFull::
end
cc=cc+1
self.clearingRow[cc]=h-cc+1
self.clearedRow[cc]=h
::CONTINUE_notFull::
end
--Create clearing FX