大师l/u改为n/h(两个旧模式文件为看录像保留)

n难度新增500~1000,使用新bgm:secret8th remix
h难度降低时间门槛
This commit is contained in:
MrZ626
2021-07-23 17:03:29 +08:00
parent ac9fd5e618
commit 29a922e41f
14 changed files with 265 additions and 24 deletions

View File

@@ -19,7 +19,6 @@
-- setmetatable(_G,{__newindex=function(self,k,v)print('>>'..k)print(debug.traceback():match("\n.-\n\t(.-): "))rawset(self,k,v)end})
--Declaration
goto REM love=require"love"::REM::--Just tell IDE to load love-api, no actual usage
local fs=love.filesystem
TIME=love.timer.getTime
YIELD=coroutine.yield
@@ -306,6 +305,10 @@ do
RANKS.sprint_10l=0
needSave=true
end
if RANKS.master_l or RANKS.master_u then
RANKS.master_l,RANKS.master_u=0,0
needSave=true
end
if needSave then
FILE.save(SETTING,'conf/settings')

Binary file not shown.

View File

@@ -750,8 +750,8 @@ return{
['round_h']= {"Turn-Based", "HARD", "Chess mode"},
['round_l']= {"Turn-Based", "LUNATIC", "Chess mode"},
['round_u']= {"Turn-Based", "ULTIMATE", "Chess mode"},
['master_l']= {"Master", "LUNATIC", "For 20G beginners."},
['master_u']= {"Master", "ULTIMATE", "For 20G pros."},
['master_n']= {"Master", "NORMAL", "For 20G beginners."},
['master_h']= {"Master", "HARD", "For 20G pros."},
['master_final']= {"Master", "FINAL", "20G and beyond."},
['master_ph']= {"Master", "PHANTASM", "???"},
['master_ex']= {"GrandMaster", "EXTRA", "An eternity shorter than an instant."},
@@ -805,10 +805,15 @@ return{
['ultra']= {'Ultra', "EXTRA", "A 2-minute score attack."},
['infinite']= {'infinite', "", "It's just a sandbox."},
['infinite_dig']= {"Infinite: Dig", "", "Dig-diggi-dug."},
['sprintFix']= {"Sprint", "NO LEFT/RIGHT"},
['sprintLock']= {"Sprint", "NO ROTATIONS"},
['sprintSmooth']= {"Sprint", "NO FRICTION"},
['marathon_bfmax']= {"Marathon", "ULTIMATE"},
['master_l']= {"Master", "LUNATIC"},
['master_u']= {"Master", "ULTIMATE"},
['custom_clear']= {"Custom", "NORMAL"},
['custom_puzzle']= {"Custom", "PUZZLE"},
},

View File

@@ -655,8 +655,8 @@ return{
['round_h']= {"Por Turnos", "Difícil", "Modo ajedrez."},
['round_l']= {"Por Turnos", "Lunático", "Modo ajedrez."},
['round_u']= {"Por Turnos", "Supremo", "Modo ajedrez."},
['master_l']= {"Master", "Lunático", "Para principiantes en 20G"},
['master_u']= {"Master", "Supremo", "¡Desafío profesional de 20G!"},
['master_n']= {"Master", "Normal", "Para principiantes en 20G"},
['master_h']= {"Master", "Difícil", "¡Desafío profesional de 20G!"},
['master_final']= {"Master", "FINAL", "El verdadero 20G Supremo: el final es inalcanzable."},
['master_ex']= {"GrandMaster", "EXTRA", "Para ser un gran maestro, acepta este desafío"},
['rhythm_e']= {"Al Ritmo", "Fácil", "Maratón rítmica de 200 líneas con bajo bpm."},
@@ -709,10 +709,15 @@ return{
['ultra']= {'Ultra', "Extra", "¡Consigue el mayor puntaje posible en 2 minutos!"},
['infinite']= {"Infinito", "", "Modo Sandbox."},
['infinite_dig']= {"Infinito: Queso", "", "Limpia, limpia, más limpia que tú."},
['sprintFix']= {"Sprint", "Sin mover a Izq./Der."},
['sprintLock']= {"Sprint", "Sin rotar"},
['sprintSmooth']= {"Sprint", "SIN FRICCIÓN"},
['marathon_bfmax']= {"Maratón", "Supremo"},
['master_l']= {"Master", "Lunático"},
['master_u']= {"Master", "Supremo"},
['custom_clear']= {"Personalizado", "Normal"},
['custom_puzzle']= {"Personalizado", "Puzzle"},
},

View File

@@ -657,8 +657,8 @@ return{
['round_h']= {"Tour à tour", "DIFFICILE", "Mode échecs"},
['round_l']= {"Tour à tour", "LUNATIQUE", "Mode échecs"},
['round_u']= {"Tour à tour", "ULTIME", "Mode échecs"},
['master_l']= {"Master", "LUNATIQUE", "Pour les débutants en 20G."},
['master_u']= {"Master", "ULTIME", "Challenge 20G pro !"},
['master_n']= {"Master", "NORMAL", "Pour les débutants en 20G."},
['master_h']= {"Master", "DIFFICILE", "Challenge 20G pro !"},
['master_final']= {"Master", "FINAL", "20G : Un point final impossible à atteindre !"},
-- ['master_ph']= {"Mester", "FANTASMA", "20G: ???"},
['master_ex']= {"GrandMaster", "EXTRA", "Tentez de devenir un Grandmaster."},
@@ -712,10 +712,15 @@ return{
['ultra']= {'Ultra', "EXTRA", "2 minutes pour avoir le meilleur score."},
['infinite']= {"Infini", "", "Mode tranquile."},
['infinite_dig']= {"Infini : Dig", "", "Creuser, creuser, creuser."},
['sprintFix']= {"Sprint", "Sans gauche/droite"},
['sprintLock']= {"Sprint", "Sans rotation"},
-- ['sprintSmooth']= {"Sprint", "NO FRICTION"},
['marathon_bfmax']= {"Marathon", "ULTIME"},
['master_l']= {"Master", "LUNATIQUE"},
['master_u']= {"Master", "ULTIME"},
['custom_clear']= {"Perso.", "NORMAL"},
['custom_puzzle']= {"Perso.", "PUZZLE"},
},

View File

@@ -741,8 +741,8 @@ return{
['round_h']= {"Baseado Turnos", "DIFÍCIL", "Modo xadrez"},
['round_l']= {"Baseado Turnos", "LUNÁTICO", "Modo xadrez"},
['round_u']= {"Baseado Turnos", "ULTIMATE", "Modo xadrez"},
['master_l']= {"Mestre", "LUNÁTICO", "Pra iniciantes de 20G."},
['master_u']= {"Mestre", "ULTIMATE", "Desafio 20G profissional!"},
['master_n']= {"Mestre", "NORMAL", "Pra iniciantes de 20G."},
['master_h']= {"Mestre", "DIFÍCIL", "Desafio 20G profissional!"},
['master_final']= {"Mestre", "FINAL", "20G: Final inalcançável!"},
['master_ph']= {"Mestre", "FANTASMA", "20G: ???"},
['master_ex']= {"GrandMaster", "EXTRA", "Para ser um Grand Master, aceite \nesse desafio."},
@@ -796,10 +796,15 @@ return{
['ultra']= {'Ultra', "EXTRA", "Pegue a maior pontuação em 2 minutos."},
['infinite']= {"Infinito", "", "Modo Sandbox."},
['infinite_dig']= {"Infinito:Cave", "", "Cava, Cava, Cava."},
['sprintFix']= {"Sprint", "SEM ESQUERDA/DIREITA"},
['sprintLock']= {"Sprint", "SEM ROTAÇÃO"},
-- ['sprintSmooth']= {"Sprint", "NO FRICTION"},
['marathon_bfmax']= {"Maratona", "ULTIMATE"},
['master_l']= {"Mestre", "LUNÁTICO"},
['master_u']= {"Mestre", "ULTIMATE"},
['custom_clear']= {"Custom", "NORMAL"},
['custom_puzzle']= {"Custom", "PUZZLE"},
},

View File

@@ -238,8 +238,8 @@ return{
['round_h']= {"回合制", "困难", "下棋"},
['round_l']= {"回合制", "疯狂", "下棋"},
['round_u']= {"回合制", "极限", "下棋"},
['master_l']= {"大师", "疯狂", "无脑20G"},
['master_u']= {"大师", "极限", "简单20G"},
['master_n']= {"大师", "普通", "无脑20G"},
['master_h']= {"大师", "困难", "简单20G"},
['master_final']= {"大师", "终点", "究极20G:真正的游戏"},
['master_ph']= {"大师", "虚幻", "虚幻20G:好玩"},
['master_ex']= {"宗师", "EX", "你行你上"},
@@ -293,10 +293,15 @@ return{
['ultra']= {"限时打分", "挑战", "2分钟刷分"},
['infinite']= {"无尽", "", "真的有人会玩这个?"},
['infinite_dig']= {"无尽:挖掘", "", "闲得慌就来挖"},
['sprintFix']= {"竞速", "无移动"},
['sprintLock']= {"竞速", "无旋转"},
['sprintSmooth']= {"竞速", "无摩擦"},
['marathon_bfmax']= {"马拉松", "极限"},
['master_l']= {"大师", "疯狂"},
['master_u']= {"大师", "极限"},
['custom_clear']= {"自定义", "普通"},
['custom_puzzle']= {"自定义", "拼图"},
},

View File

@@ -751,8 +751,8 @@ return{
['round_h']= {"回合制", "困难", "下棋模式"},
['round_l']= {"回合制", "疯狂", "下棋模式"},
['round_u']= {"回合制", "极限", "下棋模式"},
['master_l']= {"大师", "疯狂", "20G初心者练习"},
['master_u']= {"大师", "极限", "上级者20G挑战"},
['master_n']= {"大师", "普通", "20G初心者练习"},
['master_h']= {"大师", "困难", "上级者20G挑战"},
['master_final']= {"大师", "终点", "究极20G:无法触及的终点"},
['master_ph']= {"大师", "虚幻", "虚幻20G:???"},
['master_ex']= {"宗师", "EX", "成为方块大师"},
@@ -806,10 +806,15 @@ return{
['ultra']= {"限时打分", "挑战", "在两分钟内尽可能拿到最多的分数"},
['infinite']= {"无尽", "", "沙盒"},
['infinite_dig']= {"无尽:挖掘", "", "挖呀挖呀挖"},
['sprintFix']= {"竞速", "无移动"},
['sprintLock']= {"竞速", "无旋转"},
['sprintSmooth']= {"竞速", "无摩擦"},
['marathon_bfmax']= {"马拉松", "极限"},
['master_l']= {"大师", "疯狂"},
['master_u']= {"大师", "极限"},
['custom_clear']= {"自定义", "普通"},
['custom_puzzle']= {"自定义", "拼图"},
},

View File

@@ -164,8 +164,8 @@ return{
['round_h']= {"回合制", "困难", "下棋模式"},
['round_l']= {"回合制", "疯狂", "下棋模式"},
['round_u']= {"回合制", "极限", "下棋模式"},
['master_l']= {"大师", "疯狂", "20G初心者练习"},
['master_u']= {"大师", "极限", "上级者20G挑战"},
['master_n']= {"大师", "普通", "20G初心者练习"},
['master_h']= {"大师", "困难", "上级者20G挑战"},
['master_final']= {"大师", "终点", "究极20G:无法触及的终点"},
['master_ph']= {"大师", "虚幻", "虚幻20G:???"},
['master_ex']= {"宗师", "EX", "成为方块大师"},
@@ -219,10 +219,14 @@ return{
['ultra']= {"限时打分", "挑战", "在两分钟内尽可能拿到最多的分数"},
['infinite']= {"无尽", "", "沙盒"},
['infinite_dig']= {"无尽:挖掘", "", "挖呀挖呀挖"},
['sprintFix']= {"竞速", "无移动"},
['sprintLock']= {"竞速", "无旋转"},
['sprintSmooth']= {"竞速", "无摩擦"},
['marathon_bfmax']= {"马拉松", "极限"},
['master_l']= {"大师", "疯狂"},
['master_u']= {"大师", "极限"},
['custom_clear']= {"自定义", "普通"},
['custom_puzzle']= {"自定义", "拼图"},
},

View File

@@ -18,7 +18,7 @@ return{
{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'}},
{name='marathon_h', x=0, y=-800, size=50,shape=1,icon="marathon",unlock={'master_l'}},
{name='marathon_h', x=0, y=-800, size=50,shape=1,icon="marathon",unlock={'master_n'}},
{name='solo_e', x=-600, y=-1000,size=40,shape=1,icon="solo", unlock={'solo_n'}},
{name='solo_n', x=-800, y=-1000,size=40,shape=1,icon="solo", unlock={'solo_h'}},
@@ -39,8 +39,8 @@ return{
{name='round_l', x=-1200,y=-800, size=40,shape=1,icon="round", unlock={'round_u'}},
{name='round_u', x=-1400,y=-800, size=40,shape=1,icon="round"},
{name='master_l', x=0, y=-1000,size=40,shape=1,icon="master", unlock={'master_u'}},
{name='master_u', x=0, y=-1200,size=40,shape=3,icon="master", unlock={'master_final','master_ex','master_ph'}},
{name='master_n', x=0, y=-1000,size=40,shape=1,icon="master", unlock={'master_h'}},
{name='master_h', x=0, y=-1200,size=40,shape=3,icon="master", unlock={'master_final','master_ex','master_ph'}},
{name='master_final', x=0, y=-1600,size=40,shape=2,icon="master"},
{name='master_ph', x=-150, y=-1500,size=40,shape=2,icon="master"},
{name='master_ex', x=150, y=-1500,size=40,shape=2,icon="master_ex"},
@@ -111,12 +111,17 @@ return{
{name='infinite', x=-1000,y=-400, size=40,shape=1,icon='infinite'},
{name='infinite_dig', x=-800, y=-400, size=40,shape=1,icon="dig"},
--Secret
{name='sprintFix'},
{name='sprintLock'},
{name='sprintSmooth'},
{name='marathon_bfmax'},
--Old
{name='master_l'},
{name='master_u'},
--Special
{name='custom_puzzle'},
{name='custom_clear'},
{name="netBattle"},

100
parts/modes/master_h.lua Normal file
View File

@@ -0,0 +1,100 @@
local gc=love.graphics
local death_lock={12,11,10,9,8, 7,7,7,7,6}
local death_wait={10,9, 8, 7,6, 6,6,5,5,4}
local death_fall={10,9, 8, 7,6, 6,5,5,4,4}
local function score(P)
local D=P.modeData
local c=#P.clearedRow
if c==0 and D.pt%100==99 then return end
local s=c<3 and c+1 or c==3 and 5 or 7
if P.combo>7 then s=s+2
elseif P.combo>3 then s=s+1
end
D.pt=D.pt+s
if D.pt%100==99 then
SFX.play('blip_1')
elseif D.pt>=D.target then--Level up!
s=D.target/100
local E=P.gameEnv
E.lock=death_lock[s]
E.wait=death_wait[s]
E.fall=death_fall[s]
if s==2 then
E.das=5
BG.set('rainbow')
elseif s==4 then
E.das=4
BG.set('rainbow2')
elseif s==5 then
if P.stat.frame>183*60 then
D.pt=500
P:win('finish')
return
else
E.bone=true
P.gameEnv.freshLimit=10
BG.set('glow')
BGM.play('secret7th remix')
end
elseif s==6 then
E.das=3
BG.set('lightning')
elseif s==7 then
E.bone=true
elseif s==10 then
D.pt=1000
P:win('finish')
return
end
D.target=D.target+100
P:showTextF(text.stage:gsub("$1",s),0,-120,80,'beat')
SFX.play('reach')
end
end
return{
color=COLOR.red,
env={
noTele=true,
das=6,arr=1,
drop=0,
lock=death_lock[1],
wait=death_wait[1],
fall=death_fall[1],
dropPiece=score,
task=function(P)
P.modeData.pt=0
P.modeData.target=100
end,
freshLimit=15,
noInitSZO=true,
bg='bg2',bgm='secret7th',
},
slowMark=true,
load=function()
PLY.newPlayer(1)
end,
mesDisp=function(P)
setFont(45)
mStr(P.modeData.pt,69,320)
mStr(P.modeData.target,69,370)
gc.rectangle('fill',25,375,90,4)
end,
score=function(P)return{P.modeData.pt,P.stat.time}end,
scoreDisp=function(D)return D[1].."P "..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 S=P.modeData.pt
return
S>=1000 and 5 or
S>=800 and 4 or
S>=500 and 3 or
S>=300 and 2 or
S>=100 and 1 or
S>=60 and 0
end,
}

View File

@@ -1,6 +1,6 @@
local gc=love.graphics
local rush_lock={20,18,16,15,14}
local rush_wait={12,10,9,8,7}
local rush_wait={12,10, 9, 8, 7}
local rush_fall={18,16,14,13,12}
local function score(P)
local D=P.modeData

100
parts/modes/master_n.lua Normal file
View File

@@ -0,0 +1,100 @@
local gc=love.graphics
local rush_lock={20,18,16,15,14, 14,13,12,11,11}
local rush_wait={12,11,11,10,10, 10,10, 9, 9, 9}
local rush_fall={18,16,14,13,12, 12,11,11,10,10}
local function score(P)
local D=P.modeData
local c=#P.clearedRow
if c==0 and D.pt%100==99 then return end
local s=c<3 and c+1 or c==3 and 5 or 7
if P.combo>7 then s=s+2
elseif P.combo>3 then s=s+1
end
D.pt=D.pt+s
if D.pt%100==99 then
SFX.play('blip_1')
elseif D.pt>=D.target then--Level up!
s=D.target/100
local E=P.gameEnv
E.lock=rush_lock[s]
E.wait=rush_wait[s]
E.fall=rush_fall[s]
if s==2 then
E.das=8
BG.set('rainbow')
elseif s==4 then
BG.set('rainbow2')
elseif s==5 then
if P.stat.frame>260*60 then
D.pt=500
P:win('finish')
return
else
P.gameEnv.freshLimit=10
E.das=7
BG.set('glow')
BGM.play('secret8th remix')
end
elseif s==7 then
E.das=6
BG.set('lightning')
elseif s==9 then
E.bone=true
elseif s==10 then
D.pt=1000
P:win('finish')
return
end
D.target=D.target+100
P:showTextF(text.stage:gsub("$1",s),0,-120,80,'fly')
SFX.play('reach')
end
end
return{
color=COLOR.red,
env={
noTele=true,
das=10,arr=3,
drop=0,
lock=rush_lock[1],
wait=rush_wait[1],
fall=rush_fall[1],
dropPiece=score,
noInitSZO=true,
task=function(P)
P.modeData.pt=0
P.modeData.target=100
end,
freshLimit=15,
bg='bg1',bgm='secret8th',
},
slowMark=true,
load=function()
PLY.newPlayer(1)
end,
mesDisp=function(P)
setFont(45)
mStr(P.modeData.pt,69,320)
mStr(P.modeData.target,69,370)
gc.rectangle('fill',25,375,90,4)
end,
score=function(P)return{P.modeData.pt,P.stat.time}end,
scoreDisp=function(D)return D[1].."P "..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 S=P.modeData.pt
return
S>=1000 and 5 or
S>=800 and 4 or
S>=500 and 3 or
S>=300 and 2 or
S>=100 and 1 or
S>=60 and 0
end,
}

View File

@@ -1,7 +1,7 @@
local gc=love.graphics
local death_lock={12,11,10,9,8, 7,7,7,6,6}
local death_wait={10,9,8,7,6, 6,5,4,4,3}
local death_fall={10,9,8,7,6, 5,5,4,3,2}
local death_lock={12,11,10,9,8, 7,7,7,6,6}
local death_wait={10, 9, 8,7,6, 6,5,4,4,3}
local death_fall={10, 9, 8,7,6, 5,5,4,3,3}
local function score(P)
local D=P.modeData
@@ -29,7 +29,6 @@ local function score(P)
BG.set('rainbow2')
elseif s==3 then
BG.set('glow')
E.bone=true
elseif s==5 then
if P.stat.frame>183*60 then
D.pt=500