diff --git a/document/mode.txt b/document/mode.txt index d9da7a96..4a4b147c 100644 --- a/document/mode.txt +++ b/document/mode.txt @@ -127,12 +127,12 @@ return{--返回一个table,你也可以在之前定义一些常量或者函数 mStr(r,69,335)--把计算出来的剩余行数r显示出来 PLY.draw.drawTargetLine(P,r)--使用自带的境界高度线绘制函数 end, - score=function(P)return{P.stat.time,P.stat.piece}end,--游戏结束时需要保存的本局关键信息 + score=function(P)return{P.stat.frame/60,P.stat.piece}end,--游戏结束时需要保存的本局关键信息 scoreDisp=function(D)return toTime(D[1]).." "..D[2].." Pieces"end,--把score返回的数据显示出来的方法 comp=function(a,b)return a[1]=53.5 then + if P.stat.frame>=53.5 then P.modeData.point=min(P.modeData.point+16,80) P.modeData.event=sectionName[int(P.modeData.point*.1)+1] P:win("finish") diff --git a/parts/modes/attacker_hard.lua b/parts/modes/attacker_hard.lua index 1b2aadf6..bab6d7cb 100644 --- a/parts/modes/attacker_hard.lua +++ b/parts/modes/attacker_hard.lua @@ -46,7 +46,7 @@ return{ mText(drawableText.wave,69,330) mText(drawableText.nextWave,69,450) end, - score=function(P)return{P.modeData.event,P.stat.time}end, + score=function(P)return{P.modeData.event,P.stat.frame/60}end, scoreDisp=function(D)return D[1].." Waves "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]=200 then - local T=P.stat.time + local T=P.stat.frame/60 return T<=140 and 5 or T<=200 and 4 or diff --git a/parts/modes/blind_hard.lua b/parts/modes/blind_hard.lua index ee9fc3bc..996e96f2 100644 --- a/parts/modes/blind_hard.lua +++ b/parts/modes/blind_hard.lua @@ -26,13 +26,13 @@ return{ gc.setColor(1,1,1,.2) gc.draw(IMG.electric,124,176,0,2.6) end, - score=function(P)return{min(P.stat.row,200),P.stat.time}end, + score=function(P)return{min(P.stat.row,200),P.stat.frame/60}end, scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 then - local T=P.stat.time + local T=P.stat.frame/60 return T<=150 and 5 or T<=210 and 4 or diff --git a/parts/modes/blind_lunatic.lua b/parts/modes/blind_lunatic.lua index 2c1348b2..a8d9e67f 100644 --- a/parts/modes/blind_lunatic.lua +++ b/parts/modes/blind_lunatic.lua @@ -27,13 +27,13 @@ return{ gc.setColor(1,1,1,.2) gc.draw(IMG.electric,124,176,0,2.6) end, - score=function(P)return{min(P.stat.row,200),P.stat.time}end, + score=function(P)return{min(P.stat.row,200),P.stat.frame/60}end, scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 then - local T=P.stat.time + local T=P.stat.frame/60 return T<=180 and 5 or T<=240 and 4 or diff --git a/parts/modes/blind_normal.lua b/parts/modes/blind_normal.lua index bb2da193..7017e385 100644 --- a/parts/modes/blind_normal.lua +++ b/parts/modes/blind_normal.lua @@ -23,13 +23,13 @@ return{ gc.setColor(1,1,1,.2) gc.draw(IMG.electric,124,176,0,2.6) end, - score=function(P)return{min(P.stat.row,200),P.stat.time}end, + score=function(P)return{min(P.stat.row,200),P.stat.frame/60}end, scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 then - local T=P.stat.time + local T=P.stat.frame/60 return T<=150 and 5 or T<=210 and 4 or diff --git a/parts/modes/blind_ultimate.lua b/parts/modes/blind_ultimate.lua index d55e4aad..45acf12e 100644 --- a/parts/modes/blind_ultimate.lua +++ b/parts/modes/blind_ultimate.lua @@ -26,7 +26,7 @@ return{ gc.setColor(1,1,1,.2) gc.draw(IMG.electric,124,176,0,2.6) end, - score=function(P)return{min(P.stat.row,100),P.stat.time}end, + score=function(P)return{min(P.stat.row,100),P.stat.frame/60}end, scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]=0 and R or 0,69,335) end, - score=function(P)return{min(P.stat.row,100),P.stat.time}end, + score=function(P)return{min(P.stat.row,100),P.stat.frame/60}end, scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=100 then - local T=P.stat.time + local T=P.stat.frame/60 return T<=90 and 5 or T<=105 and 4 or diff --git a/parts/modes/drought_normal.lua b/parts/modes/drought_normal.lua index 06c69340..661eac76 100644 --- a/parts/modes/drought_normal.lua +++ b/parts/modes/drought_normal.lua @@ -20,13 +20,13 @@ return{ local R=100-P.stat.row mStr(R>=0 and R or 0,69,335) end, - score=function(P)return{min(P.stat.row,100),P.stat.time}end, + score=function(P)return{min(P.stat.row,100),P.stat.frame/60}end, scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=100 then - local T=P.stat.time + local T=P.stat.frame/60 return T<=65 and 5 or T<=100 and 4 or diff --git a/parts/modes/marathon_hard.lua b/parts/modes/marathon_hard.lua index 46a9f175..e6070edd 100644 --- a/parts/modes/marathon_hard.lua +++ b/parts/modes/marathon_hard.lua @@ -36,13 +36,13 @@ return{ mStr(P.gameEnv.target,69,440) gc.rectangle("fill",25,445,90,4) end, - score=function(P)return{math.min(P.stat.row,200),P.stat.time}end, + score=function(P)return{math.min(P.stat.row,200),P.stat.frame/60}end, scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 then - local T=P.stat.time + local T=P.stat.frame/60 return T<=230 and 5 or T<=270 and 4 or diff --git a/parts/modes/marathon_normal.lua b/parts/modes/marathon_normal.lua index 9686183e..b9071f9b 100644 --- a/parts/modes/marathon_normal.lua +++ b/parts/modes/marathon_normal.lua @@ -33,13 +33,13 @@ return{ mStr(P.modeData.point+10,69,440) gc.rectangle("fill",25,445,90,4) end, - score=function(P)return{math.min(P.stat.row,200),P.stat.time}end, + score=function(P)return{math.min(P.stat.row,200),P.stat.frame/60}end, scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 then - local T=P.stat.time + local T=P.stat.frame/60 return T<=230 and 5 or T<=270 and 4 or diff --git a/parts/modes/marathon_ultimate.lua b/parts/modes/marathon_ultimate.lua index d8eb301f..0d882928 100644 --- a/parts/modes/marathon_ultimate.lua +++ b/parts/modes/marathon_ultimate.lua @@ -40,13 +40,13 @@ return{ mStr(P.modeData.point+10,69,440) gc.rectangle("fill",25,445,90,4) end, - score=function(P)return{math.min(P.stat.row,200),P.stat.time}end, + score=function(P)return{math.min(P.stat.row,200),P.stat.frame/60}end, scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 then - local T=P.stat.time + local T=P.stat.frame/60 return T<=400 and 5 or T<=600 and 4 or diff --git a/parts/modes/master_advance.lua b/parts/modes/master_advance.lua index ac3acf04..09fc8e6b 100644 --- a/parts/modes/master_advance.lua +++ b/parts/modes/master_advance.lua @@ -62,7 +62,7 @@ return{ mStr((P.modeData.event+1)*100,69,440) gc.rectangle("fill",25,445,90,4) end, - score=function(P)return{P.modeData.point,P.stat.time}end, + score=function(P)return{P.modeData.point,P.stat.frame/60}end, scoreDisp=function(D)return D[1].."P "..toTime(D[2])end, comp=function(a,b) return a[1]>b[1]or(a[1]==b[1]and a[2]b[1]or(a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]10 and 1 or L>5 and 0 end - local T=P.stat.time + local T=P.stat.frame/60 return T<=260 and 5 or T<=420 and 4 or diff --git a/parts/modes/sprintLock.lua b/parts/modes/sprintLock.lua index 096b80b0..a0fa8a7e 100644 --- a/parts/modes/sprintLock.lua +++ b/parts/modes/sprintLock.lua @@ -24,7 +24,7 @@ return{ L>10 and 1 or L>2 and 0 end - local T=P.stat.time + local T=P.stat.frame/60 return T<=60 and 5 or T<=100 and 4 or diff --git a/parts/modes/sprintMPH.lua b/parts/modes/sprintMPH.lua index bae5f654..61513cea 100644 --- a/parts/modes/sprintMPH.lua +++ b/parts/modes/sprintMPH.lua @@ -17,12 +17,12 @@ return{ mStr(r,69,335) PLY.draw.drawTargetLine(P,r) end, - score=function(P)return{P.stat.time,P.stat.piece}end, + score=function(P)return{P.stat.frame/60,P.stat.piece}end, scoreDisp=function(D)return toTime(D[1]).." "..D[2].." Pieces"end, comp=function(a,b)return a[1]b[1]or a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]=200 then - local T=P.stat.time + local T=P.stat.frame/60 return T<120 and 5 or T<150 and 4 or diff --git a/parts/modes/tech_finesse2.lua b/parts/modes/tech_finesse2.lua index c7eea2c3..fc0b588f 100644 --- a/parts/modes/tech_finesse2.lua +++ b/parts/modes/tech_finesse2.lua @@ -34,13 +34,13 @@ return{ mText(drawableText.atk,69,313) mText(drawableText.eff,69,433) end, - score=function(P)return{P.stat.atk<=200 and int(P.stat.atk)or 200,P.stat.time}end, + score=function(P)return{P.stat.atk<=200 and int(P.stat.atk)or 200,P.stat.frame/60}end, scoreDisp=function(D)return D[1].." Attack "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 then - local T=P.stat.time + local T=P.stat.frame/60 return T<120 and 5 or T<150 and 4 or diff --git a/parts/modes/tech_hard.lua b/parts/modes/tech_hard.lua index efe21a1e..fbba6550 100644 --- a/parts/modes/tech_hard.lua +++ b/parts/modes/tech_hard.lua @@ -21,13 +21,13 @@ return{ mText(drawableText.atk,69,313) mText(drawableText.eff,69,433) end, - score=function(P)return{P.stat.atk<=200 and int(P.stat.atk)or 200,P.stat.time}end, + score=function(P)return{P.stat.atk<=200 and int(P.stat.atk)or 200,P.stat.frame/60}end, scoreDisp=function(D)return D[1].." Attack "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 then - local T=P.stat.time + local T=P.stat.frame/60 return T<120 and 5 or T<150 and 4 or diff --git a/parts/modes/tech_hard2.lua b/parts/modes/tech_hard2.lua index f8cb642b..6da2caed 100644 --- a/parts/modes/tech_hard2.lua +++ b/parts/modes/tech_hard2.lua @@ -31,13 +31,13 @@ return{ mText(drawableText.atk,69,313) mText(drawableText.eff,69,433) end, - score=function(P)return{P.stat.atk<=200 and int(P.stat.atk)or 200,P.stat.time}end, + score=function(P)return{P.stat.atk<=200 and int(P.stat.atk)or 200,P.stat.frame/60}end, scoreDisp=function(D)return D[1].." Attack "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 then - local T=P.stat.time + local T=P.stat.frame/60 return T<130 and 5 or T<160 and 4 or diff --git a/parts/modes/tech_lunatic.lua b/parts/modes/tech_lunatic.lua index 800c8853..19493df0 100644 --- a/parts/modes/tech_lunatic.lua +++ b/parts/modes/tech_lunatic.lua @@ -21,13 +21,13 @@ return{ mText(drawableText.atk,69,313) mText(drawableText.eff,69,433) end, - score=function(P)return{P.stat.atk<=200 and int(P.stat.atk)or 200,P.stat.time}end, + score=function(P)return{P.stat.atk<=200 and int(P.stat.atk)or 200,P.stat.frame/60}end, scoreDisp=function(D)return D[1].." Attack "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 then - local T=P.stat.time + local T=P.stat.frame/60 return T<130 and 5 or T<160 and 4 or diff --git a/parts/modes/tech_lunatic2.lua b/parts/modes/tech_lunatic2.lua index 2073bd84..2127a94f 100644 --- a/parts/modes/tech_lunatic2.lua +++ b/parts/modes/tech_lunatic2.lua @@ -31,13 +31,13 @@ return{ mText(drawableText.atk,69,313) mText(drawableText.eff,69,433) end, - score=function(P)return{P.stat.atk<=200 and int(P.stat.atk)or 200,P.stat.time}end, + score=function(P)return{P.stat.atk<=200 and int(P.stat.atk)or 200,P.stat.frame/60}end, scoreDisp=function(D)return D[1].." Attack "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 then - local T=P.stat.time + local T=P.stat.frame/60 return T<140 and 5 or T<180 and 4 or diff --git a/parts/modes/tech_normal.lua b/parts/modes/tech_normal.lua index 4529c2ee..b89fb2d1 100644 --- a/parts/modes/tech_normal.lua +++ b/parts/modes/tech_normal.lua @@ -21,13 +21,13 @@ return{ mText(drawableText.atk,69,313) mText(drawableText.eff,69,433) end, - score=function(P)return{P.stat.atk<=200 and int(P.stat.atk)or 200,P.stat.time}end, + score=function(P)return{P.stat.atk<=200 and int(P.stat.atk)or 200,P.stat.frame/60}end, scoreDisp=function(D)return D[1].." Attack "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 then - local T=P.stat.time + local T=P.stat.frame/60 return T<120 and 5 or T<150 and 4 or diff --git a/parts/modes/tech_normal2.lua b/parts/modes/tech_normal2.lua index 74054621..96f3dabc 100644 --- a/parts/modes/tech_normal2.lua +++ b/parts/modes/tech_normal2.lua @@ -31,13 +31,13 @@ return{ mText(drawableText.atk,69,313) mText(drawableText.eff,69,433) end, - score=function(P)return{P.stat.atk<=200 and int(P.stat.atk)or 200,P.stat.time}end, + score=function(P)return{P.stat.atk<=200 and int(P.stat.atk)or 200,P.stat.frame/60}end, scoreDisp=function(D)return D[1].." Attack "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 then - local T=P.stat.time + local T=P.stat.frame/60 return T<130 and 5 or T<160 and 4 or diff --git a/parts/modes/tsd_easy.lua b/parts/modes/tsd_easy.lua index b673b4a4..b106d86f 100644 --- a/parts/modes/tsd_easy.lua +++ b/parts/modes/tsd_easy.lua @@ -26,7 +26,7 @@ return{ mStr(P.modeData.event,69,320) mText(drawableText.tsd,69,385) end, - score=function(P)return{P.modeData.event,P.stat.time}end, + score=function(P)return{P.modeData.event,P.stat.frame/60}end, scoreDisp=function(D)return D[1].."TSD "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]=warnTime[_]then + if P.stat.frame>=warnTime[_]then if _<9 then P.modeData.counter=_ SFX.play("ready",.7+_*.03) @@ -30,7 +30,7 @@ return{ mesDisp=function(P) gc.setLineWidth(2) gc.rectangle("line",55,190,32,402) - local T=P.stat.time/120 + local T=P.stat.frame/7200 gc.setColor(2*T,2-2*T,.2) gc.rectangle("fill",56,591,30,(T-1)*400) end, diff --git a/parts/player/init.lua b/parts/player/init.lua index 42742f5f..80b77621 100644 --- a/parts/player/init.lua +++ b/parts/player/init.lua @@ -14,7 +14,7 @@ local PLY={ ---------------------------------------------------- local function getNewStatTable() local T={ - time=0,score=0, + time=0,frame=0,score=0, key=0,rotate=0,hold=0, extraPiece=0,finesseRate=0, piece=0,row=0,dig=0, diff --git a/parts/player/update.lua b/parts/player/update.lua index 89407d5b..1c504884 100644 --- a/parts/player/update.lua +++ b/parts/player/update.lua @@ -101,7 +101,11 @@ end local update={} function update.alive(P,dt) - if P.timing then P.stat.time=P.stat.time+dt end + if P.timing then + local S=P.stat + S.time=S.time+dt + S.frame=S.frame+1 + end if P.keyRec then--Update speeds local frame=GAME.frame @@ -318,10 +322,10 @@ function update.alive(P,dt) updateTasks(P) end function update.dead(P,dt) - if P.timing then P.stat.time=P.stat.time+dt end if P.keyRec then - P.keySpeed=P.keySpeed*.96+P.stat.key/P.stat.time*60*.04 - P.dropSpeed=P.dropSpeed*.96+P.stat.piece/P.stat.time*60*.04 + local S=P.stat + P.keySpeed=P.keySpeed*.96+S.key/S.frame*.04 + P.dropSpeed=P.dropSpeed*.96+S.piece/S.frame*.04 --Final average speeds if GAME.modeEnv.royaleMode then P.swappingAtkMode=min(P.swappingAtkMode+2,30) diff --git a/parts/scenes/pause.lua b/parts/scenes/pause.lua index 67f7e90a..d9d1678d 100644 --- a/parts/scenes/pause.lua +++ b/parts/scenes/pause.lua @@ -28,7 +28,7 @@ function sceneInit.pause(org) sceneTemp={ timer=org=="play"and 0 or 50, list={ - toTime(S.time), + format("%s / %s",toTime(S.frame/60),toTime(S.time)), format("%d/%d/%d",S.key,S.rotate,S.hold), format("%d %.2fPPS",S.piece,S.piece/S.time), format("%d(%d) %.2fLPM",S.row,S.dig,S.row/S.time*60),