新模式:backfire
This commit is contained in:
BIN
media/image/modeicon/backfire.png
Normal file
BIN
media/image/modeicon/backfire.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.5 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 5.4 KiB |
@@ -743,6 +743,10 @@ return{
|
||||
["tsd_e"]= {"TSD Challenge", "EASY", "T-spin-doubles only!"},
|
||||
["tsd_h"]= {"TSD Challenge", "HARD", "T-spin-doubles only!"},
|
||||
["tsd_u"]= {"TSD Challenge", "ULTIMATE", "T-spin-doubles only!"},
|
||||
["backfire_n"]= {"Backfire", "NORMAL", "Self-send garbages"},
|
||||
["backfire_h"]= {"Backfire", "HARD", "Self-send garbages"},
|
||||
["backfire_l"]= {"Backfire", "LUNATIC", "Self-send garbages"},
|
||||
["backfire_u"]= {"Backfire", "ULTIMATE", "Self-send garbages"},
|
||||
["zen"]= {"Zen", "200", "200 lines without a time limit."},
|
||||
["ultra"]= {"Ultra", "EXTRA", "Get the highest score within 2 min."},
|
||||
["infinite"]= {"Infinite", "", "Sandbox mode."},
|
||||
|
||||
@@ -659,6 +659,10 @@ return{
|
||||
["tsd_e"]= {"TSD Challenge", "FACILE", "T-spin doubles uniquement !"},
|
||||
["tsd_h"]= {"TSD Challenge", "DIFFICILE", "T-spin doubles uniquement !"},
|
||||
["tsd_u"]= {"TSD Challenge", "ULTIME", "T-spin doubles uniquement !"},
|
||||
-- ["backfire_n"]= {"Backfire", "NORMAL", "Self-send garbages"},
|
||||
-- ["backfire_h"]= {"Backfire", "HARD", "Self-send garbages"},
|
||||
-- ["backfire_l"]= {"Backfire", "LUNATIC", "Self-send garbages"},
|
||||
-- ["backfire_u"]= {"Backfire", "ULTIMATE", "Self-send garbages"},
|
||||
["zen"]= {"Zen", "200", "200 lignes sans limites de temps."},
|
||||
["ultra"]= {"Ultra", "EXTRA", "2 minutes pour avoir le meilleur score."},
|
||||
["infinite"]= {"Infini", "", "Mode tranquile."},
|
||||
|
||||
@@ -742,6 +742,10 @@ return{
|
||||
["tsd_e"]= {"Desafio TSD", "FÁCIL", "Apenas T-spin-doubles!"},
|
||||
["tsd_h"]= {"Desafio TSD", "DIFÍCIL", "Apenas T-spin-doubles!"},
|
||||
["tsd_u"]= {"Desafio TSD", "ULTIMATE", "Apenas T-spin-doubles!"},
|
||||
-- ["backfire_n"]= {"Backfire", "NORMAL", "Self-send garbages"},
|
||||
-- ["backfire_h"]= {"Backfire", "HARD", "Self-send garbages"},
|
||||
-- ["backfire_l"]= {"Backfire", "LUNATIC", "Self-send garbages"},
|
||||
-- ["backfire_u"]= {"Backfire", "ULTIMATE", "Self-send garbages"},
|
||||
["zen"]= {"Zen", "200", "200 linhas sem um limite de tempo."},
|
||||
["ultra"]= {"Ultra", "EXTRA", "Pegue a maior pontuação em 2 minutos."},
|
||||
["infinite"]= {"Infinito", "", "Modo Sandbox."},
|
||||
|
||||
@@ -656,6 +656,10 @@ return{
|
||||
["tsd_e"]= {"Desafío de TSD", "Fácil", "¡Sólo se permiten T-Spin Dobles!"},
|
||||
["tsd_h"]= {"Desafío de TSD", "Difícil", "¡Sólo se permiten T-Spin Dobles!"},
|
||||
["tsd_u"]= {"Desafío de TSD", "Supremo", "¡Sólo se permiten T-Spin Dobles!"},
|
||||
-- ["backfire_n"]= {"Backfire", "NORMAL", "Self-send garbages"},
|
||||
-- ["backfire_h"]= {"Backfire", "HARD", "Self-send garbages"},
|
||||
-- ["backfire_l"]= {"Backfire", "LUNATIC", "Self-send garbages"},
|
||||
-- ["backfire_u"]= {"Backfire", "ULTIMATE", "Self-send garbages"},
|
||||
["zen"]= {"Zen", "200L", "200 líneas sin límite de tiempo."},
|
||||
["ultra"]= {"Ultra", "Extra", "¡Consigue el mayor puntaje posible en 2 minutos!"},
|
||||
["infinite"]= {"Infinito", "", "Modo Sandbox."},
|
||||
|
||||
@@ -267,6 +267,10 @@ return{
|
||||
["tsd_e"]= {"TSD挑战", "简单", "刷T2"},
|
||||
["tsd_h"]= {"TSD挑战", "困难", "刷T2"},
|
||||
["tsd_u"]= {"TSD挑战", "极限", "刷T2"},
|
||||
["backfire_n"]= {"自攻自受", "普通", "200攻击很少的,冲冲冲"},
|
||||
["backfire_h"]= {"自攻自受", "困难", "你在害怕什么"},
|
||||
["backfire_l"]= {"自攻自受", "疯狂", "别怂啊,打攻击呀"},
|
||||
["backfire_u"]= {"自攻自受", "极限", "能把自己玩死,不会吧"},
|
||||
["zen"]= {"禅", "200", "不限时200行"},
|
||||
["ultra"]= {"限时打分", "挑战", "2分钟刷分"},
|
||||
["infinite"]= {"无尽", "", "真的有人会玩这个?"},
|
||||
|
||||
@@ -745,6 +745,10 @@ return{
|
||||
["tsd_e"]= {"TSD挑战", "简单", "你能连续做几个TSD?"},
|
||||
["tsd_h"]= {"TSD挑战", "困难", "你能连续做几个TSD?"},
|
||||
["tsd_u"]= {"TSD挑战", "极限", "你能连续做几个TSD?"},
|
||||
["backfire_n"]= {"自攻自受", "普通", "打出200攻击"},
|
||||
["backfire_h"]= {"自攻自受", "困难", "打出200攻击"},
|
||||
["backfire_l"]= {"自攻自受", "疯狂", "打出200攻击"},
|
||||
["backfire_u"]= {"自攻自受", "极限", "打出200攻击"},
|
||||
["zen"]= {"禅", "200", "不限时200行"},
|
||||
["ultra"]= {"限时打分", "挑战", "在两分钟内尽可能拿到最多的分数"},
|
||||
["infinite"]= {"无尽", "", "沙盒"},
|
||||
|
||||
@@ -220,6 +220,10 @@ return{
|
||||
["tsd_e"]= {"T2挑战", "简单", "你能连续做几个T旋双清?"},
|
||||
["tsd_h"]= {"T2挑战", "困难", "你能连续做几个T旋双清?"},
|
||||
["tsd_u"]= {"T2挑战", "极限", "你能连续做几个T旋双清?"},
|
||||
["backfire_n"]= {"自攻自受", "普通", "见模式名"},
|
||||
["backfire_h"]= {"自攻自受", "困难", "见模式名"},
|
||||
["backfire_l"]= {"自攻自受", "疯狂", "见模式名"},
|
||||
["backfire_u"]= {"自攻自受", "极限", "见模式名"},
|
||||
["zen"]= {"禅", "200", "不限时200行"},
|
||||
["ultra"]= {"限时打分", "挑战", "在两分钟内尽可能拿到最多的分数"},
|
||||
["infinite"]= {"无尽", "", "沙盒"},
|
||||
|
||||
@@ -85,7 +85,7 @@ return{
|
||||
{name="pc_l", x=1200, y=-100, size=40,shape=2,icon="pc"},
|
||||
|
||||
{name="tech_n", x=400, y=-150, size=40,shape=1,icon="tech", unlock={"tech_n_plus","tech_h","tech_finesse"}},
|
||||
{name="tech_n_plus", x=650, y=150, size=40,shape=3,icon="tech", unlock={"tsd_e"}},
|
||||
{name="tech_n_plus", x=600, y=160, size=40,shape=3,icon="tech", unlock={"tsd_e","backfire_n"}},
|
||||
{name="tech_h", x=400, y=40, size=40,shape=1,icon="tech", unlock={"tech_h_plus","tech_l"}},
|
||||
{name="tech_h_plus", x=200, y=70, size=35,shape=3,icon="tech"},
|
||||
{name="tech_l", x=400, y=200, size=40,shape=1,icon="tech", unlock={"tech_l_plus"}},
|
||||
@@ -94,9 +94,14 @@ return{
|
||||
{name="tech_finesse", x=800, y=50, size=40,shape=1,icon="tech", unlock={"tech_finesse_f"}},
|
||||
{name="tech_finesse_f", x=1000, y=50, size=40,shape=1,icon="tech"},
|
||||
|
||||
{name="tsd_e", x=800, y=250, size=40,shape=1,icon="tsd", unlock={"tsd_h"}},
|
||||
{name="tsd_h", x=1000, y=250, size=40,shape=1,icon="tsd", unlock={"tsd_u"}},
|
||||
{name="tsd_u", x=1200, y=250, size=40,shape=1,icon="tsd"},
|
||||
{name="tsd_e", x=800, y=200, size=40,shape=1,icon="tsd", unlock={"tsd_h"}},
|
||||
{name="tsd_h", x=1000, y=200, size=40,shape=1,icon="tsd", unlock={"tsd_u"}},
|
||||
{name="tsd_u", x=1200, y=200, size=40,shape=1,icon="tsd"},
|
||||
|
||||
{name="backfire_n", x=800, y=350, size=40,shape=1,icon="backfire",unlock={"backfire_h"}},
|
||||
{name="backfire_h", x=950, y=350, size=40,shape=1,icon="backfire",unlock={"backfire_l"}},
|
||||
{name="backfire_l", x=1100, y=350, size=40,shape=3,icon="backfire",unlock={"backfire_u"}},
|
||||
{name="backfire_u", x=1250, y=350, size=35,shape=2,icon="backfire"},
|
||||
|
||||
{name="zen", x=-800, y=-600, size=40,shape=1,icon="zen", unlock={"ultra","infinite","infinite_dig"}},
|
||||
{name="ultra", x=-1000,y=-400, size=40,shape=1,icon="ultra"},
|
||||
|
||||
43
parts/modes/backfire_h.lua
Normal file
43
parts/modes/backfire_h.lua
Normal file
@@ -0,0 +1,43 @@
|
||||
local format=string.format
|
||||
return{
|
||||
color=COLOR.lGrey,
|
||||
env={
|
||||
drop=30,lock=60,
|
||||
dropPiece=function(P)
|
||||
if P.lastPiece.atk>0 then
|
||||
P:receive(nil,P.lastPiece.atk,60,generateLine(P:RND(2,9)))
|
||||
if P.stat.atk>=200 then
|
||||
P:win("finish")
|
||||
end
|
||||
end
|
||||
end,
|
||||
bg="tunnel",bgm="warped",
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
PLY.newPlayer(1)
|
||||
end,
|
||||
mesDisp=function(P)
|
||||
setFont(45)
|
||||
mStr(format("%.1f",P.stat.atk),69,247)
|
||||
mText(drawableText.atk,69,300)
|
||||
end,
|
||||
score=function(P)return{P.stat.atk<=200 and math.floor(P.stat.atk)or 200,P.stat.time}end,
|
||||
scoreDisp=function(D)return D[1].." Attack "..TIMESTR(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 L=P.stat.atk
|
||||
if L>=200 then
|
||||
local T=P.stat.time
|
||||
return
|
||||
T<120 and 5 or
|
||||
T<150 and 4 or
|
||||
T<200 and 3 or
|
||||
2
|
||||
else
|
||||
return
|
||||
L>=126 and 1 or
|
||||
L>=30 and 0
|
||||
end
|
||||
end,
|
||||
}
|
||||
43
parts/modes/backfire_l.lua
Normal file
43
parts/modes/backfire_l.lua
Normal file
@@ -0,0 +1,43 @@
|
||||
local format=string.format
|
||||
return{
|
||||
color=COLOR.lGrey,
|
||||
env={
|
||||
drop=30,lock=60,
|
||||
dropPiece=function(P)
|
||||
if P.lastPiece.atk>0 then
|
||||
P:receive(nil,P.lastPiece.atk,30,generateLine(P:RND(10)))
|
||||
if P.stat.atk>=200 then
|
||||
P:win("finish")
|
||||
end
|
||||
end
|
||||
end,
|
||||
bg="blackhole",bgm="echo",
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
PLY.newPlayer(1)
|
||||
end,
|
||||
mesDisp=function(P)
|
||||
setFont(45)
|
||||
mStr(format("%.1f",P.stat.atk),69,247)
|
||||
mText(drawableText.atk,69,300)
|
||||
end,
|
||||
score=function(P)return{P.stat.atk<=200 and math.floor(P.stat.atk)or 200,P.stat.time}end,
|
||||
scoreDisp=function(D)return D[1].." Attack "..TIMESTR(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 L=P.stat.atk
|
||||
if L>=200 then
|
||||
local T=P.stat.time
|
||||
return
|
||||
T<120 and 5 or
|
||||
T<150 and 4 or
|
||||
T<200 and 3 or
|
||||
2
|
||||
else
|
||||
return
|
||||
L>=126 and 1 or
|
||||
L>=30 and 0
|
||||
end
|
||||
end,
|
||||
}
|
||||
43
parts/modes/backfire_n.lua
Normal file
43
parts/modes/backfire_n.lua
Normal file
@@ -0,0 +1,43 @@
|
||||
local format=string.format
|
||||
return{
|
||||
color=COLOR.lGrey,
|
||||
env={
|
||||
drop=30,lock=60,
|
||||
dropPiece=function(P)
|
||||
if P.lastPiece.atk>0 then
|
||||
P:receive(nil,P.lastPiece.atk,120,generateLine(P:RND(3,8)))
|
||||
if P.stat.atk>=200 then
|
||||
P:win("finish")
|
||||
end
|
||||
end
|
||||
end,
|
||||
bg="tunnel",bgm="warped",
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
PLY.newPlayer(1)
|
||||
end,
|
||||
mesDisp=function(P)
|
||||
setFont(45)
|
||||
mStr(format("%.1f",P.stat.atk),69,247)
|
||||
mText(drawableText.atk,69,300)
|
||||
end,
|
||||
score=function(P)return{P.stat.atk<=200 and math.floor(P.stat.atk)or 200,P.stat.time}end,
|
||||
scoreDisp=function(D)return D[1].." Attack "..TIMESTR(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 L=P.stat.atk
|
||||
if L>=200 then
|
||||
local T=P.stat.time
|
||||
return
|
||||
T<120 and 5 or
|
||||
T<150 and 4 or
|
||||
T<200 and 3 or
|
||||
2
|
||||
else
|
||||
return
|
||||
L>=126 and 1 or
|
||||
L>=30 and 0
|
||||
end
|
||||
end,
|
||||
}
|
||||
43
parts/modes/backfire_u.lua
Normal file
43
parts/modes/backfire_u.lua
Normal file
@@ -0,0 +1,43 @@
|
||||
local format=string.format
|
||||
return{
|
||||
color=COLOR.lGrey,
|
||||
env={
|
||||
drop=30,lock=60,
|
||||
dropPiece=function(P)
|
||||
if P.lastPiece.atk>0 then
|
||||
P:receive(nil,math.floor(P.lastPiece.atk*1.5),0,generateLine(P:RND(10)))
|
||||
if P.stat.atk>=200 then
|
||||
P:win("finish")
|
||||
end
|
||||
end
|
||||
end,
|
||||
bg="blackhole",bgm="echo",
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
PLY.newPlayer(1)
|
||||
end,
|
||||
mesDisp=function(P)
|
||||
setFont(45)
|
||||
mStr(format("%.1f",P.stat.atk),69,247)
|
||||
mText(drawableText.atk,69,300)
|
||||
end,
|
||||
score=function(P)return{P.stat.atk<=200 and math.floor(P.stat.atk)or 200,P.stat.time}end,
|
||||
scoreDisp=function(D)return D[1].." Attack "..TIMESTR(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 L=P.stat.atk
|
||||
if L>=200 then
|
||||
local T=P.stat.time
|
||||
return
|
||||
T<120 and 5 or
|
||||
T<150 and 4 or
|
||||
T<200 and 3 or
|
||||
2
|
||||
else
|
||||
return
|
||||
L>=126 and 1 or
|
||||
L>=30 and 0
|
||||
end
|
||||
end,
|
||||
}
|
||||
Reference in New Issue
Block a user