From 03a1b5ccd459ca467e61d04206a31279406dd26a Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Tue, 16 Mar 2021 18:31:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E6=A8=A1=E5=BC=8F=EF=BC=9Abackfire?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- media/image/modeicon/backfire.png | Bin 0 -> 3625 bytes media/image/modeicon/bigbang.png | Bin 1704 -> 5540 bytes parts/language/lang_en.lua | 4 +++ parts/language/lang_fr.lua | 4 +++ parts/language/lang_pt.lua | 4 +++ parts/language/lang_sp.lua | 4 +++ parts/language/lang_yygq.lua | 4 +++ parts/language/lang_zh.lua | 4 +++ parts/language/lang_zh2.lua | 4 +++ parts/modes.lua | 13 ++++++--- parts/modes/backfire_h.lua | 43 ++++++++++++++++++++++++++++++ parts/modes/backfire_l.lua | 43 ++++++++++++++++++++++++++++++ parts/modes/backfire_n.lua | 43 ++++++++++++++++++++++++++++++ parts/modes/backfire_u.lua | 43 ++++++++++++++++++++++++++++++ 14 files changed, 209 insertions(+), 4 deletions(-) create mode 100644 media/image/modeicon/backfire.png create mode 100644 parts/modes/backfire_h.lua create mode 100644 parts/modes/backfire_l.lua create mode 100644 parts/modes/backfire_n.lua create mode 100644 parts/modes/backfire_u.lua diff --git a/media/image/modeicon/backfire.png b/media/image/modeicon/backfire.png new file mode 100644 index 0000000000000000000000000000000000000000..cf6bc57926498aeaacfd65da88e249324a7dbf97 GIT binary patch literal 3625 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 literal 0 HcmV?d00001 diff --git a/media/image/modeicon/bigbang.png b/media/image/modeicon/bigbang.png index e7e56e853117d609d75dfb09c2da784dbd6cd774..8eb09cc89ccb31a72bdefe6bcedc33260025edfc 100644 GIT binary patch literal 5540 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 diff --git a/parts/language/lang_en.lua b/parts/language/lang_en.lua index 3de55302..32ba14b6 100644 --- a/parts/language/lang_en.lua +++ b/parts/language/lang_en.lua @@ -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."}, diff --git a/parts/language/lang_fr.lua b/parts/language/lang_fr.lua index f010468f..66fd9df1 100644 --- a/parts/language/lang_fr.lua +++ b/parts/language/lang_fr.lua @@ -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."}, diff --git a/parts/language/lang_pt.lua b/parts/language/lang_pt.lua index 0639d06f..95e459fc 100644 --- a/parts/language/lang_pt.lua +++ b/parts/language/lang_pt.lua @@ -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."}, diff --git a/parts/language/lang_sp.lua b/parts/language/lang_sp.lua index bd8ae425..f2336979 100644 --- a/parts/language/lang_sp.lua +++ b/parts/language/lang_sp.lua @@ -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."}, diff --git a/parts/language/lang_yygq.lua b/parts/language/lang_yygq.lua index 96f40ef9..e3f7120a 100644 --- a/parts/language/lang_yygq.lua +++ b/parts/language/lang_yygq.lua @@ -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"]= {"无尽", "", "真的有人会玩这个?"}, diff --git a/parts/language/lang_zh.lua b/parts/language/lang_zh.lua index ce522fef..cbadc332 100644 --- a/parts/language/lang_zh.lua +++ b/parts/language/lang_zh.lua @@ -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"]= {"无尽", "", "沙盒"}, diff --git a/parts/language/lang_zh2.lua b/parts/language/lang_zh2.lua index c2f8cdb7..238276e1 100644 --- a/parts/language/lang_zh2.lua +++ b/parts/language/lang_zh2.lua @@ -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"]= {"无尽", "", "沙盒"}, diff --git a/parts/modes.lua b/parts/modes.lua index 9f63db8a..4fbd0313 100644 --- a/parts/modes.lua +++ b/parts/modes.lua @@ -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"}, diff --git a/parts/modes/backfire_h.lua b/parts/modes/backfire_h.lua new file mode 100644 index 00000000..e3456700 --- /dev/null +++ b/parts/modes/backfire_h.lua @@ -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]=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, +} \ No newline at end of file diff --git a/parts/modes/backfire_l.lua b/parts/modes/backfire_l.lua new file mode 100644 index 00000000..1d1f406d --- /dev/null +++ b/parts/modes/backfire_l.lua @@ -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]=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, +} \ No newline at end of file diff --git a/parts/modes/backfire_n.lua b/parts/modes/backfire_n.lua new file mode 100644 index 00000000..83393380 --- /dev/null +++ b/parts/modes/backfire_n.lua @@ -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]=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, +} \ No newline at end of file diff --git a/parts/modes/backfire_u.lua b/parts/modes/backfire_u.lua new file mode 100644 index 00000000..7788fdba --- /dev/null +++ b/parts/modes/backfire_u.lua @@ -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]=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, +} \ No newline at end of file