添加节奏模式-简单
This commit is contained in:
@@ -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."},
|
||||
|
||||
@@ -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."},
|
||||
|
||||
@@ -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."},
|
||||
|
||||
@@ -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"},
|
||||
|
||||
@@ -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"]= {"生存", "极限", "舒服了"},
|
||||
|
||||
@@ -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"]= {"隐形", "瞬隐", "很强大脑"},
|
||||
|
||||
@@ -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"]= {"隐形", "瞬隐", "很强大脑"},
|
||||
|
||||
@@ -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
81
parts/modes/rhythm_e.lua
Normal 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,
|
||||
}
|
||||
Reference in New Issue
Block a user