diff --git a/parts/eventsets/master_g.lua b/parts/eventsets/master_g.lua index 618e2757..3a039195 100644 --- a/parts/eventsets/master_g.lua +++ b/parts/eventsets/master_g.lua @@ -2,7 +2,13 @@ local gc=love.graphics local regretDelay=-1 local int_grade=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} +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 gradeList={ + "9","8","7","6","5","4","3","2","1", + "S1","S2","S3","S4","S5","S6","S7","S8","S9", + "m1","m2","m3","m4","m5","m6","m7","m8","m9", + "M","MK","MV","MO","MM-","MM","MM+","GM-","GM","GM+","TM-","TM","TM+" +} local spd_lvl=0 local cools=0 local regrets=0 @@ -66,15 +72,9 @@ local function getDas(l) 6 end local function getGrade() - local gradeList={ - "9","8","7","6","5","4","3","2","1", - "S1","S2","S3","S4","S5","S6","S7","S8","S9", - "m1","m2","m3","m4","m5","m6","m7","m8","m9", - "M","MK","MV","MO","MM-","MM","MM+","GM-","GM","GM+","TM-","TM","TM+" - } if int_grade==nil then int_grade=0 end if rollGrades==nil then rollGrades=0 end - return gradeList[math.min(math.floor(int_grade_boosts[int_grade+1]+rollGrades+cools+1-regrets),#gradeList)] + return gradeList[math.min(math.floor(int_grade_boosts[math.min(int_grade+1,#int_grade_boosts)]+rollGrades+cools+1-regrets),#gradeList)] end local function addGrade(row, cmb, lvl) -- IGS = internal grade system if row<1 then return end @@ -247,12 +247,12 @@ return{ isInRollTrans=false prevDrop70=false nextSpeedUp=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} + 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 while true do YIELD() P.modeData.grade=getGrade() - P.modeData.gradePts=math.min(math.floor(int_grade_boosts[int_grade+1]+rollGrades+cools-regrets),36) + P.modeData.gradePts=math.min(math.floor(int_grade_boosts[math.min(int_grade+1,#int_grade_boosts)]+rollGrades+cools+1-regrets),#gradeList) if regretDelay>-1 then regretDelay=regretDelay-1 if regretDelay==-1 then P:_showText("REGRET!!",0,-120,80,'beat',.8) end @@ -284,7 +284,7 @@ return{ end if P.waiting<=0 and grade_points>0 and not isInRoll then decayTimer=decayTimer+1 - if decayTimer>=decayRate[int_grade+1] then + if decayTimer>=decayRate[math.min(int_grade+1,#decayRate)] then decayTimer=0 grade_points=grade_points-1 end