Add easier Classic modes (#302)

* Remove SDARR limitation on Rhythm

* Remove SDARR limitation on Rhythm

* Remove SDARR limitation on Rhythm

* Revert "Remove SDARR limitation on Rhythm"

This reverts commit 1a0a56bbf6.

* Add classic modes: easy and normal

(Easy: lvl9 start, Normal: lvl15 start)

* fixed typos

* Updated map
This commit is contained in:
Not-A-Normal-Robot
2021-09-21 00:58:17 +07:00
committed by MrZ626
parent 6f715a663a
commit 30ed4179d6
6 changed files with 172 additions and 4 deletions

View File

@@ -0,0 +1,54 @@
return{
das=16,
arr=6,
sddas=2,
sdarr=2,
irs=false,
ims=false,
drop=6,
lock=6,
wait=10,
fall=25,
freshLimit=0,
fieldH=19,
nextCount=1,
holdCount=0,
RS='Classic',
sequence='rnd',
noTele=true,
keyCancel={5,6},
mesDisp=function(P)
setFont(75)
local r=P.modeData.target*.1
mStr(r<11 and 9 or r<22 and r or("%02x"):format(r*10-220),63,210)
mText(drawableText.speedLV,63,290)
PLY.draw.drawProgress(P.stat.row,P.modeData.target)
end,
task=function(P)
P.modeData.target=10
end,
dropPiece=function(P)
local D=P.modeData
if P.stat.row>=D.target then
D.target=D.target+10
if D.target==110 then
P.gameEnv.drop,P.gameEnv.lock=5,5
SFX.play('blip_1')
elseif D.target==140 then
P.gameEnv.drop,P.gameEnv.lock=4,4
SFX.play('blip_1')
elseif D.target==170 then
P.gameEnv.drop,P.gameEnv.lock=3,3
SFX.play('blip_1')
elseif D.target==200 then
P.gameEnv.drop,P.gameEnv.lock=2,2
SFX.play('blip_1')
elseif D.target==300 then
P.gameEnv.drop,P.gameEnv.lock=1,1
SFX.play('blip_1')
else
SFX.play('reach')
end
end
end,
}

View File

@@ -0,0 +1,48 @@
return{
das=16,
arr=6,
sddas=2,
sdarr=2,
irs=false,
ims=false,
drop=4,
lock=4,
wait=10,
fall=25,
freshLimit=0,
fieldH=19,
nextCount=1,
holdCount=0,
RS='Classic',
sequence='rnd',
noTele=true,
keyCancel={5,6},
mesDisp=function(P)
setFont(75)
local r=P.modeData.target*.1
mStr(r<11 and 15 or r<22 and r+5 or("%02x"):format(r*10-220),63,210)
mText(drawableText.speedLV,63,290)
PLY.draw.drawProgress(P.stat.row,P.modeData.target)
end,
task=function(P)
P.modeData.target=10
end,
dropPiece=function(P)
local D=P.modeData
if P.stat.row>=D.target then
D.target=D.target+10
if D.target==110 then
P.gameEnv.drop,P.gameEnv.lock=3,3
SFX.play('blip_1')
elseif D.target==140 then
P.gameEnv.drop,P.gameEnv.lock=2,2
SFX.play('blip_1')
elseif D.target==240 then
P.gameEnv.drop,P.gameEnv.lock=1,1
SFX.play('blip_1')
else
SFX.play('reach')
end
end
end,
}

View File

@@ -789,6 +789,8 @@ return{
['blind_l']= {"Invisible", "SUDDEN+", "For professionals."},
['blind_u']= {"Invisible", "?", "Are you ready?"},
['blind_wtf']= {"Invisible", "WTF", "You're not ready."},
['classic_e']= {"Classic", "EASY", "A very low-speed recreation from the 80s."},
['classic_n']= {"Classic", "NORMAL", "A low-speed recreation from the 80s."},
['classic_h']= {"Classic", "HARD", "A medium speed recreation from the 80s."},
['classic_l']= {"Classic", "LUNATIC", "A high-speed recreation from the 80s."},
['classic_u']= {"Classic", "ULTIMATE", "A very high-speed recreation from the 80s."},

View File

@@ -21,7 +21,7 @@ return{
{name='dig_100l', x=-600, y=-200, size=40,shape=1,icon="dig_sprint", unlock={'dig_400l'}},
{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_h','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_e','survivor_e','bigbang','zen'}},
{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'}},
@@ -61,9 +61,11 @@ return{
{name='blind_u', x=150, y=-1100, size=30,shape=3,icon="hidden", unlock={'blind_wtf'}},
{name='blind_wtf', x=150, y=-1200, size=25,shape=2,icon="hidden"},
{name='classic_h', x=-150, y=-950, size=40,shape=2,icon="classic", unlock={'classic_l'}},
{name='classic_l', x=-150, y=-1100, size=40,shape=2,icon="classic", unlock={'classic_u'}},
{name='classic_u', x=-150, y=-1250, size=40,shape=2,icon="classic"},
{name='classic_e', x=-150, y=-825, size=40,shape=1,icon="classic", unlock={'classic_n'}},
{name='classic_n', x=-150, y=-950, size=40,shape=3,icon="classic", unlock={'classic_h'}},
{name='classic_h', x=-150, y=-1075, size=40,shape=2,icon="classic", unlock={'classic_l'}},
{name='classic_l', x=-150, y=-1200, size=40,shape=2,icon="classic", unlock={'classic_u'}},
{name='classic_u', x=-150, y=-1325, size=40,shape=2,icon="classic"},
{name='survivor_e', x=300, y=-600, size=40,shape=1,icon="survivor", unlock={'survivor_n'}},
{name='survivor_n', x=500, y=-600, size=40,shape=1,icon="survivor", unlock={'survivor_h','attacker_h','defender_n','dig_h'}},

31
parts/modes/classic_e.lua Normal file
View File

@@ -0,0 +1,31 @@
return{
color=COLOR.lBlue,
env={
center=0,ghost=0,
smooth=false,
face={0,0,2,2,2,0,0},
eventSet='classic_e',
bg='rgb',bgm='magicblock',
},
slowMark=true,
mesDisp=function(P)
setFont(75)
local r=P.modeData.target*.1
mStr(r<11 and 9 or r<22 and r or("%02x"):format(r*10-220),63,210)
mText(drawableText.speedLV,63,290)
PLY.draw.drawProgress(P.stat.row,P.modeData.target)
end,
score=function(P)return{P.stat.score,P.stat.row}end,
scoreDisp=function(D)return D[1].." "..D[2].." Lines"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>=150 and 5 or
L>=120 and 4 or
L>=90 and 3 or
L>=60 and 2 or
L>=40 and 1 or
L>=10 and 0
end,
}

31
parts/modes/classic_n.lua Normal file
View File

@@ -0,0 +1,31 @@
return{
color=COLOR.lBlue,
env={
center=0,ghost=0,
smooth=false,
face={0,0,2,2,2,0,0},
eventSet='classic_n',
bg='rgb',bgm='magicblock',
},
slowMark=true,
mesDisp=function(P)
setFont(75)
local r=P.modeData.target*.1
mStr(r<11 and 15 or r<22 and r+5 or("%02x"):format(r*10-220),63,210)
mText(drawableText.speedLV,63,290)
PLY.draw.drawProgress(P.stat.row,P.modeData.target)
end,
score=function(P)return{P.stat.score,P.stat.row}end,
scoreDisp=function(D)return D[1].." "..D[2].." Lines"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>=110 and 5 or
L>=80 and 4 or
L>=50 and 3 or
L>=30 and 2 or
L>=10 and 1 or
L>=1 and 0
end,
}