Files
Techmino/parts/eventsets/master_ex.lua
2022-10-29 00:59:41 +08:00

66 lines
2.0 KiB
Lua

local sectionName={"D","C","B","A","A+","S-","S","S+","S+","SS","SS","U","U","X","X+"}
local passPoint=16
local function getRollGoal(P)
-- get amount of grades needed for X+
local rem=12.4-P.modeData.rankPoint/10
if rem<=0 then return 0 end
local goal=math.floor(rem)*4
rem=rem%1
return goal+(rem>0.3 and 4 or rem*10)
end
return {
drop=0,lock=15,
wait=15,fall=6,
noTele=true,
minarr=1,
nextCount=3,
sequence='hisPool',
visible='fast',
freshLimit=15,
noInitSZO=true,
mesDisp=function(P)
local h=(3600-P.stat.frame)/10
if h>0 then
GC.setColor(1,1,1,.12)
GC.rectangle('fill',0,475-h,125,h,4)
GC.setColor(COLOR.Z)
end
mText(TEXTOBJ.line,63,310)
mText(TEXTOBJ.techrash,63,420)
mText(TEXTOBJ.grade,63,180)
setFont(20)
GC.mStr(("%.1f"):format(P.modeData.rankPoint/10),63,208)
setFont(55)
GC.mStr(P.modeData.rankName,63,125)
setFont(75)
GC.mStr(P.stat.row,63,230)
GC.mStr(P.stat.clears[4],63,340)
PLY.draw.drawTargetLine(P,getRollGoal(P))
end,
hook_drop=function(P)
if P.modeData.rankPoint<140-passPoint then-- If Less then X
local R=#P.clearedRow
if R>0 then
if R==4 then R=10 end-- Techrash +10
P.modeData.rankPoint=math.min(P.modeData.rankPoint+R,140-passPoint)
P.modeData.rankName=sectionName[math.floor(P.modeData.rankPoint/10)+1]
end
end
end,
task=function(P)
P.modeData.rankPoint=0
P.modeData.rankName=sectionName[1]
while true do
coroutine.yield()
if P.stat.frame>=3600 then
P.modeData.rankPoint=math.min(P.modeData.rankPoint+passPoint,140)
P.modeData.rankName=sectionName[math.floor(P.modeData.rankPoint/10)+1]
P:win('finish')
return
end
end
end,
}