添加节奏模式-简单

This commit is contained in:
MrZ626
2021-02-15 15:05:13 +08:00
parent f053b99ce3
commit efaa279e24
9 changed files with 107 additions and 18 deletions

View File

@@ -705,8 +705,9 @@ return{
["master_final"]= {"Master", "FINAL", "20G: Unreachable end point!"},
["master_phantasm"]= {"Master", "PHANTASM", "20G: ???"},
["GM"]= {"GrandMaster", "GM", "To be a Grand Master, take \nthis challenge."},
["rhythm_h"]= {"Rhythm", "HARD", "200-line marathon with accelerating rhythm."},
["rhythm_u"]= {"Rhythm", "ULTIMATE", "200-line high-speed rhythm marathon."},
["rhythm_e"]= {"Rhythm", "EASY", "200-line low-bpm rhythm marathon."},
["rhythm_h"]= {"Rhythm", "HARD", "200-line medium-bpm rhythm marathon"},
["rhythm_u"]= {"Rhythm", "ULTIMATE", "200-line high-bpm rhythm marathon."},
["blind_e"]= {"Blind", "HALF", "For novice players."},
["blind_n"]= {"Blind", "ALL", "For intermediate players."},
["blind_h"]= {"Blind", "SUDDEN", "For experienced players."},

View File

@@ -622,8 +622,9 @@ return{
["master_advance"]= {"Master", "ULTIME", "Challenge 20G pro !"},
["master_final"]= {"Master", "FINAL", "20G : Un point final impossible à atteindre !"},
["GM"]= {"GrandMaster", "GM", "Tentez de devenir un Grandmaster."},
-- ["rhythm_h"]= {"Rhythm", "HARD", "200-line marathon with accelerating rhythm."},
-- ["rhythm_u"]= {"Rhythm", "ULTIMATE", "200-line high-speed rhythm marathon."},
-- ["rhythm_e"]= {"Rhythm", "EASY", "200-line low-bpm rhythm marathon."},
-- ["rhythm_h"]= {"Rhythm", "HARD", "200-line medium-bpm rhythm marathon"},
-- ["rhythm_u"]= {"Rhythm", "ULTIMATE", "200-line high-bpm rhythm marathon."},
["blind_e"]= {"Aveugle", "MOITIE", "Pour les novices."},
["blind_n"]= {"Aveugle", "TOUT", "Pour les joueurs intermédiaires."},
["blind_h"]= {"Aveugle", "SOUDAIN", "Pour les bons jooeurs."},

View File

@@ -701,8 +701,9 @@ return{
["master_final"]= {"Mestre", "FINAL", "20G: Final inalcançável!"},
["master_phantasm"]= {"Mestre", "FANTASMA", "20G: ???"},
["GM"]= {"GrandMaster", "GM", "Para ser um Grand Master, aceite \nesse desafio."},
-- ["rhythm_h"]= {"Rhythm", "HARD", "200-line marathon with accelerating rhythm."},
-- ["rhythm_u"]= {"Rhythm", "ULTIMATE", "200-line high-speed rhythm marathon."},
-- ["rhythm_e"]= {"Rhythm", "EASY", "200-line low-bpm rhythm marathon."},
-- ["rhythm_h"]= {"Rhythm", "HARD", "200-line medium-bpm rhythm marathon"},
-- ["rhythm_u"]= {"Rhythm", "ULTIMATE", "200-line high-bpm rhythm marathon."},
["blind_e"]= {"Cego", "METADE", "Para novatos."},
["blind_n"]= {"Cego", "TUDO", "Para intermediários."},
["blind_h"]= {"Cego", "DE REPENTE", "Para experientes."},

View File

@@ -617,8 +617,9 @@ return{
["master_advance"]= {"Master", "Supremo", "¡Desafío profesional de 20G!"},
["master_final"]= {"Master", "FINAL", "El verdadero 20G Supremo: el final es inalcanzable."},
["GM"]= {"GrandMaster", "GM", "Para ser un gran maestro, acepta este desafío"},
-- ["rhythm_h"]= {"Rhythm", "HARD", "200-line marathon with accelerating rhythm."},
-- ["rhythm_u"]= {"Rhythm", "ULTIMATE", "200-line high-speed rhythm marathon."},
-- ["rhythm_e"]= {"Rhythm", "EASY", "200-line low-bpm rhythm marathon."},
-- ["rhythm_h"]= {"Rhythm", "HARD", "200-line medium-bpm rhythm marathon"},
-- ["rhythm_u"]= {"Rhythm", "ULTIMATE", "200-line high-bpm rhythm marathon."},
["blind_e"]= {"A Ciegas", "Parcial", "Para novatos."},
["blind_n"]= {"A Ciegas", "Total", "Para jugadores intermedios."},
["blind_h"]= {"A Ciegas", "Inmediato", "Para jugadores experimentados"},

View File

@@ -224,8 +224,9 @@ return{
["master_final"]= {"大师", "终点", "究极20G:真正的游戏"},
["master_phantasm"]= {"大师", "虚幻", "虚幻20G:好玩"},
["GM"]= {"宗师", "GM", "你行你上"},
["rhythm_h"]= {"节奏", "困难", "不好玩"},
["rhythm_u"]= {"节奏", "极限", "开局暴毙警告"},
["rhythm_e"]= {"节奏", "简单", "很无聊"},
["rhythm_h"]= {"节奏", "困难", "好玩么?"},
["rhythm_u"]= {"节奏", "极限", "真男人不玩低难度"},
["blind_e"]= {"隐形", "半隐", "谁都能玩"},
["blind_n"]= {"隐形", "全隐", "稍加练习即可"},
["blind_h"]= {"隐形", "瞬隐", "和上一个一样"},
@@ -234,7 +235,7 @@ return{
["blind_wtf"]= {"隐形", "不会吧", "还没准备好"},
["classic_fast"]= {"高速经典", "CTWC", "就这?简单"},
["survivor_e"]= {"生存", "简单", "这都玩不下去?不会吧"},
["survivor_n"]= {"生存", "普通", ",这都玩不过?"},
["survivor_n"]= {"生存", "普通", "呵,这都玩不过?"},
["survivor_h"]= {"生存", "困难", "所以呢?"},
["survivor_l"]= {"生存", "疯狂", "然后呢?"},
["survivor_u"]= {"生存", "极限", "舒服了"},

View File

@@ -707,8 +707,9 @@ return{
["master_final"]= {"大师", "终点", "究极20G:无法触及的终点"},
["master_phantasm"]= {"大师", "虚幻", "虚幻20G:???"},
["GM"]= {"宗师", "GM", "成为方块大师"},
["rhythm_h"]= {"节奏", "困难", "200行速节奏马拉松"},
["rhythm_u"]= {"节奏", "极限", "200行超高速节奏马拉松"},
["rhythm_e"]= {"节奏", "简单", "200行速节奏马拉松"},
["rhythm_h"]= {"节奏", "困难", "200行速节奏马拉松"},
["rhythm_u"]= {"节奏", "极限", "200行高速节奏马拉松"},
["blind_e"]= {"隐形", "半隐", "不强大脑"},
["blind_n"]= {"隐形", "全隐", "挺强大脑"},
["blind_h"]= {"隐形", "瞬隐", "很强大脑"},

View File

@@ -183,8 +183,9 @@ return{
["master_final"]= {"大师", "终点", "究极20G:无法触及的终点"},
["master_phantasm"]= {"大师", "虚幻", "虚幻20G:???"},
["GM"]= {"宗师", "GM", "成为方块大师"},
["rhythm_h"]= {"节奏", "困难", "200行速节奏马拉松"},
["rhythm_u"]= {"节奏", "极限", "200行超高速节奏马拉松"},
["rhythm_e"]= {"节奏", "简单", "200行速节奏马拉松"},
["rhythm_h"]= {"节奏", "困难", "200行速节奏马拉松"},
["rhythm_u"]= {"节奏", "极限", "200行高速节奏马拉松"},
["blind_e"]= {"隐形", "半隐", "不强大脑"},
["blind_n"]= {"隐形", "全隐", "挺强大脑"},
["blind_h"]= {"隐形", "瞬隐", "很强大脑"},

View File

@@ -17,7 +17,7 @@ return{
{name="dig_100l", x=-600, y=-400, size=40,shape=1,icon="dig", unlock={"dig_400l"}},
{name="dig_400l", x=-800, y=-200, size=40,shape=1,icon="dig"},
{name="marathon_n", x=0, y=-600, size=60,shape=1,icon="marathon",unlock={"marathon_h","rhythm_h","solo_e","round_e","blind_e","classic_fast","survivor_e","bigbang","zen"}},
{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"}},
{name="marathon_h", x=0, y=-800, size=50,shape=1,icon="marathon",unlock={"master_beginner"}},
{name="solo_e", x=-600, y=-1000,size=40,shape=1,icon="solo", unlock={"solo_n"}},
@@ -45,8 +45,9 @@ return{
{name="master_phantasm",x=-150, y=-1500,size=40,shape=2,icon="master"},
{name="GM", x=150, y=-1500,size=40,shape=2,icon="master"},
{name="rhythm_h", x=-500, y=-1200,size=40,shape=3,icon="rhythm", unlock={"rhythm_u"}},
{name="rhythm_u", x=-500, y=-1500,size=40,shape=2,icon="rhythm"},
{name="rhythm_e", x=-350, y=-1000,size=40,shape=3,icon="rhythm", unlock={"rhythm_h"}},
{name="rhythm_h", x=-350, y=-1200,size=40,shape=3,icon="rhythm", unlock={"rhythm_u"}},
{name="rhythm_u", x=-350, y=-1400,size=40,shape=2,icon="rhythm"},
{name="blind_e", x=150, y=-700, size=40,shape=1,icon="blind", unlock={"blind_n"}},
{name="blind_n", x=150, y=-800, size=40,shape=1,icon="blind", unlock={"blind_h"}},

81
parts/modes/rhythm_e.lua Normal file
View File

@@ -0,0 +1,81 @@
local gc=love.graphics
local dropSpeed={[0]=40,33,27,20,16,12,11,10,9,8,7,6,5,4,3,3,2,2,1,1}
return{
color=COLOR.green,
env={
noTele=true,
lock=1e99,
wait=20,fall=90,
mindas=7,minarr=1,minsdarr=1,
keyCancel={6},
dropPiece=function(P)
if P.stat.row>=P.modeData.target then
if P.modeData.target==200 then
P:win("finish")
else
P.modeData.bpm=40+2*P.modeData.target/10
P.modeData.beatFrame=math.floor(3600/P.modeData.bpm)
P.gameEnv.fall=P.modeData.beatFrame
P.gameEnv.wait=math.max(P.gameEnv.wait-2,0)
P.gameEnv.drop=dropSpeed[P.modeData.target/10]
P.modeData.target=P.modeData.target+10
SFX.play("reach")
end
end
end,
task=function(P)
P.modeData.target=10
P.modeData.bpm=40
P.modeData.beatFrame=90
P.modeData.counter=90
while true do
coroutine.yield()
P.modeData.counter=P.modeData.counter-1
if P.modeData.counter==0 then
P.modeData.counter=P.modeData.beatFrame
SFX.play("click",.3)
P:switchKey(6,true)
P:pressKey(6)
P:switchKey(6,false)
end
end
end,
bg="bg2",bgm="push",
},
pauseLimit=true,
slowMark=true,
load=function()
PLY.newPlayer(1)
end,
mesDisp=function(P)
setFont(45)
mStr(P.stat.row,69,320)
mStr(P.modeData.target,69,370)
gc.rectangle("fill",25,375,90,4)
setFont(30)
mStr(P.modeData.bpm,69,178)
gc.setLineWidth(4)
gc.circle("line",69,200,30)
local beat=P.modeData.counter/P.modeData.beatFrame
gc.setColor(1,1,1,1-beat)
gc.setLineWidth(3)
gc.circle("line",69,200,30+45*beat)
end,
score=function(P)return{math.min(P.stat.row,200),P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(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.row
return
L>=200 and 5 or
L>=170 and 4 or
L>=140 and 3 or
L>=100 and 2 or
L>=50 and 1 or
L>=20 and 0
end,
}