Improved master_g (#622)
Fixed mroll ending not giving you points in the record, fixed crash when you got a negative grade, added colors that indicate cool/regret
This commit is contained in:
@@ -3,6 +3,8 @@ local regretDelay=-1
|
|||||||
local int_grade=0
|
local int_grade=0
|
||||||
local grade_points=0
|
local grade_points=0
|
||||||
local int_grade_boosts={0,1,2,3,4,5,5,6,6,7,7,7,8,8,8,9,9,9,10,11,12,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26}
|
local int_grade_boosts={0,1,2,3,4,5,5,6,6,7,7,7,8,8,8,9,9,9,10,11,12,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26}
|
||||||
|
local coolList={false,false,false,false,false,false,false,false,false}
|
||||||
|
local regretList={false,false,false,false,false,false,false,false,false,false}
|
||||||
local gradeList={
|
local gradeList={
|
||||||
"9","8","7","6","5","4","3","2","1",
|
"9","8","7","6","5","4","3","2","1",
|
||||||
"S1","S2","S3","S4","S5","S6","S7","S8","S9",
|
"S1","S2","S3","S4","S5","S6","S7","S8","S9",
|
||||||
@@ -74,7 +76,7 @@ end
|
|||||||
local function getGrade()
|
local function getGrade()
|
||||||
if int_grade==nil then int_grade=0 end
|
if int_grade==nil then int_grade=0 end
|
||||||
if rollGrades==nil then rollGrades=0 end
|
if rollGrades==nil then rollGrades=0 end
|
||||||
return gradeList[math.min(math.floor(int_grade_boosts[math.min(int_grade+1,#int_grade_boosts)]+rollGrades+cools+1-regrets),#gradeList)]
|
return gradeList[math.max(math.min(math.floor(int_grade_boosts[math.min(int_grade+1,#int_grade_boosts)]+rollGrades+cools+1-regrets),#gradeList),1)]
|
||||||
end
|
end
|
||||||
local function addGrade(row, cmb, lvl) -- IGS = internal grade system
|
local function addGrade(row, cmb, lvl) -- IGS = internal grade system
|
||||||
if row<1 then return end
|
if row<1 then return end
|
||||||
@@ -139,6 +141,16 @@ return{
|
|||||||
setFont(20)
|
setFont(20)
|
||||||
mStr(grade_points,63,208)
|
mStr(grade_points,63,208)
|
||||||
setFont(45)
|
setFont(45)
|
||||||
|
if coolList[math.ceil(P.modeData.pt/100+0.01)] then
|
||||||
|
gc.setColor(0,1,0,1)
|
||||||
|
elseif P.stat.frame-prevSectTime > cool_time[math.ceil(P.modeData.pt/100+0.01)] then
|
||||||
|
gc.setColor(0.7,0.7,0.7,1)
|
||||||
|
end
|
||||||
|
if coolList[math.ceil(P.modeData.pt/100+0.01)] and regretList[math.ceil(P.modeData.pt/100+0.01)] then
|
||||||
|
gc.setColor(1,1,0,1)
|
||||||
|
elseif regretList[math.ceil(P.modeData.pt/100+0.01)] then
|
||||||
|
gc.setColor(1,0,0,1)
|
||||||
|
end
|
||||||
PLY.draw.drawProgress(P.modeData.pt,P.modeData.target)
|
PLY.draw.drawProgress(P.modeData.pt,P.modeData.target)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
@@ -175,6 +187,7 @@ return{
|
|||||||
if D.pt%100>70 and not prevDrop70 then
|
if D.pt%100>70 and not prevDrop70 then
|
||||||
if P.stat.frame-prevSectTime < cool_time[math.ceil(D.pt/100)] then
|
if P.stat.frame-prevSectTime < cool_time[math.ceil(D.pt/100)] then
|
||||||
cools=cools+1
|
cools=cools+1
|
||||||
|
coolList[math.ceil(D.pt/100)]=true
|
||||||
P:_showText("COOL!",0,-120,80,'fly',.8)
|
P:_showText("COOL!",0,-120,80,'fly',.8)
|
||||||
nextSpeedUp=true
|
nextSpeedUp=true
|
||||||
end
|
end
|
||||||
@@ -247,12 +260,17 @@ return{
|
|||||||
isInRollTrans=false
|
isInRollTrans=false
|
||||||
prevDrop70=false
|
prevDrop70=false
|
||||||
nextSpeedUp=false
|
nextSpeedUp=false
|
||||||
|
coolList={false,false,false,false,false,false,false,false,false}
|
||||||
|
regretList={false,false,false,false,false,false,false,false,false,false}
|
||||||
local decayRate={125,80,80,50,45,45,45,40,40,40,40,40,30,30,30,20,20,20,20,20,15,15,15,15,15,15,15,15,15,15,10,10,10,9,9,9,8,8,8,7,7,7,6}
|
local decayRate={125,80,80,50,45,45,45,40,40,40,40,40,30,30,30,20,20,20,20,20,15,15,15,15,15,15,15,15,15,15,10,10,10,9,9,9,8,8,8,7,7,7,6}
|
||||||
local decayTimer=0
|
local decayTimer=0
|
||||||
while true do
|
while true do
|
||||||
YIELD()
|
YIELD()
|
||||||
P.modeData.grade=getGrade()
|
P.modeData.grade=getGrade()
|
||||||
P.modeData.gradePts=math.min(math.floor(int_grade_boosts[math.min(int_grade+1,#int_grade_boosts)]+rollGrades+cools+1-regrets),#gradeList)
|
P.modeData.gradePts=math.max(math.min(math.floor(int_grade_boosts[math.min(int_grade+1,#int_grade_boosts)]+rollGrades+cools+1-regrets),#gradeList),1)
|
||||||
|
if P.stat.frame-prevSectTime > reg_time[math.ceil(P.modeData.pt/100+0.01)] then
|
||||||
|
regretList[math.ceil(P.modeData.pt/100)]=true
|
||||||
|
end
|
||||||
if regretDelay>-1 then
|
if regretDelay>-1 then
|
||||||
regretDelay=regretDelay-1
|
regretDelay=regretDelay-1
|
||||||
if regretDelay==-1 then P:_showText("REGRET!!",0,-120,80,'beat',.8) end
|
if regretDelay==-1 then P:_showText("REGRET!!",0,-120,80,'beat',.8) end
|
||||||
@@ -287,8 +305,11 @@ return{
|
|||||||
decayTimer=0
|
decayTimer=0
|
||||||
grade_points=grade_points-1
|
grade_points=grade_points-1
|
||||||
end
|
end
|
||||||
elseif isInRoll and P.stat.frame>=prevSectTime+3600 then
|
elseif isInRoll and P.stat.frame>=prevSectTime+3599 then
|
||||||
rollGrades=rollGrades+(cools>8 and 1.6 or 0.5)
|
rollGrades=rollGrades+(cools>8 and 1.6 or 0.5)
|
||||||
|
P.modeData.grade=getGrade()
|
||||||
|
P.modeData.gradePts=math.min(math.floor(int_grade_boosts[math.min(int_grade+1,#int_grade_boosts)]+rollGrades+cools+1-regrets),#gradeList)
|
||||||
|
YIELD()
|
||||||
P:win('finish')
|
P:win('finish')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user