玩家绘制代码调整

This commit is contained in:
MrZ626
2020-09-02 22:25:24 +08:00
parent 719a14bed4
commit e7a9a2c0e9
75 changed files with 501 additions and 521 deletions

View File

@@ -40,14 +40,14 @@ return{
players[1].modeData.event="M7"
end,
mesDisp=function(P,dx,dy)
mText(drawableText.line,-81,300)
mText(drawableText.techrash,-81,420)
mText(drawableText.grade,-81,170)
mText(drawableText.line,69,370)
mText(drawableText.techrash,69,490)
mText(drawableText.grade,69,240)
setFont(55)
mStr(P.modeData.event,-81,110)
mStr(P.modeData.event,69,180)
setFont(75)
mStr(P.stat.row,-81,220)
mStr(P.stat.clears[4],-81,340)
mStr(P.stat.row,69,290)
mStr(P.stat.clears[4],69,410)
end,
score=function(P)return{P.modeData.point,P.stat.score}end,
scoreDisp=function(D)return sectionName[int(D[1]*.1)+1].." "..D[2]end,

View File

@@ -42,10 +42,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(55)
mStr(P.modeData.event,-81,200)
mStr("24",-81,320)
mText(drawableText.wave,-81,260)
mText(drawableText.nextWave,-81,380)
mStr(P.modeData.event,69,340)
mStr("24",69,390)
mText(drawableText.wave,69,400)
mText(drawableText.nextWave,69,520)
end,
score=function(P)return{P.modeData.event,P.stat.time}end,
scoreDisp=function(D)return D[1].." Waves "..toTime(D[2])end,

View File

@@ -51,14 +51,14 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(55)
mStr(P.modeData.event,-81,200)
mStr(P.modeData.event,69,270)
mStr(
P.modeData.event<10 and 22
or P.modeData.event<20 and 25
or 28
,-81,320)
mText(drawableText.wave,-81,260)
mText(drawableText.nextWave,-81,380)
,69,390)
mText(drawableText.wave,69,330)
mText(drawableText.nextWave,69,450)
end,
score=function(P)return{P.modeData.event,P.stat.time}end,
scoreDisp=function(D)return D[1].." Waves "..toTime(D[2])end,

View File

@@ -19,8 +19,6 @@ return{
load=function()
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P,dx,dy)
end,
score=function(P)return{P.modeData.event,P.stat.extraRate}end,
scoreDisp=function(D)return D[1].."Stage "..format("%.2f",D[2]).."%"end,
comp=function(a,b)return a[1]>b[1]end,

View File

@@ -14,11 +14,11 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P,dx,dy)
mText(drawableText.line,-81,300)
mText(drawableText.techrash,-81,420)
mText(drawableText.line,69,370)
mText(drawableText.techrash,69,490)
setFont(75)
mStr(P.stat.row,-81,220)
mStr(P.stat.clears[4],-81,340)
mStr(P.stat.row,69,290)
mStr(P.stat.clears[4],69,410)
end,
score=function(P)return{min(P.stat.row or 200),P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -18,13 +18,13 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P,dx,dy)
mText(drawableText.line,-81,300)
mText(drawableText.techrash,-81,420)
mText(drawableText.line,69,370)
mText(drawableText.techrash,69,490)
setFont(75)
mStr(P.stat.row,-81,220)
mStr(P.stat.clears[4],-81,340)
mStr(P.stat.row,69,290)
mStr(P.stat.clears[4],69,410)
gc.setColor(1,1,1,.2)
gc.draw(IMG.electric,-26,106,0,2.6)
gc.draw(IMG.electric,124,176,0,2.6)
end,
score=function(P)return{min(P.stat.row or 200),P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -18,13 +18,13 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P,dx,dy)
mText(drawableText.line,-81,300)
mText(drawableText.techrash,-81,420)
mText(drawableText.line,69,370)
mText(drawableText.techrash,69,490)
setFont(75)
mStr(P.stat.row,-81,220)
mStr(P.stat.clears[4],-81,340)
mStr(P.stat.row,69,290)
mStr(P.stat.clears[4],69,410)
gc.setColor(1,1,1,.2)
gc.draw(IMG.electric,-26,106,0,2.6)
gc.draw(IMG.electric,124,176,0,2.6)
end,
score=function(P)return{min(P.stat.row or 200),P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -15,13 +15,13 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P,dx,dy)
mText(drawableText.line,-81,300)
mText(drawableText.techrash,-81,420)
mText(drawableText.line,69,370)
mText(drawableText.techrash,69,490)
setFont(75)
mStr(P.stat.row,-81,220)
mStr(P.stat.clears[4],-81,340)
mStr(P.stat.row,69,290)
mStr(P.stat.clears[4],69,410)
gc.setColor(1,1,1,.2)
gc.draw(IMG.electric,-26,106,0,2.6)
gc.draw(IMG.electric,124,176,0,2.6)
end,
score=function(P)return{min(P.stat.row or 200),P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -18,13 +18,13 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P,dx,dy)
mText(drawableText.line,-81,300)
mText(drawableText.techrash,-81,420)
mText(drawableText.line,69,370)
mText(drawableText.techrash,69,490)
setFont(75)
mStr(P.stat.row,-81,220)
mStr(P.stat.clears[4],-81,340)
mStr(P.stat.row,69,290)
mStr(P.stat.clears[4],69,410)
gc.setColor(1,1,1,.2)
gc.draw(IMG.electric,-26,106,0,2.6)
gc.draw(IMG.electric,124,176,0,2.6)
end,
score=function(P)return{min(P.stat.row or 200),P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -27,22 +27,22 @@ return{
--Figures
local t=Timer()
gc.setColor(1,1,1,.5+.2*sin(t))
gc.draw(IMG.hbm,-426,-86,0,1.5)
gc.draw(IMG.electric,326,142,0,2.6)
gc.draw(IMG.hbm,-276,-16,0,1.5)
gc.draw(IMG.electric,476,212,0,2.6)
--Texts
gc.setColor(.8,.8,.8)
mText(drawableText.line,-81,300)
mText(drawableText.techrash,-81,420)
mText(drawableText.line,69,370)
mText(drawableText.techrash,69,490)
setFont(75)
mStr(P.stat.row,-81,220)
mStr(P.stat.clears[4],-81,340)
mStr(P.stat.row,69,290)
mStr(P.stat.clears[4],69,410)
--"Field"
gc.setColor(.5,.5,.5)
gc.rectangle("line",-1,-11,302,612)
gc.rectangle("line",301,0,15,601)
gc.rectangle("line",-16,-3,15,604)
gc.rectangle("line",149,59,302,612)
gc.rectangle("line",451,70,15,601)
gc.rectangle("line",134,67,15,604)
end,
score=function(P)return{min(P.stat.row or 200),P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -46,10 +46,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.combo,-81,310)
mStr(P.modeData.point,-81,400)
mText(drawableText.combo,-81,358)
mText(drawableText.mxcmb,-81,450)
mStr(P.combo,69,380)
mStr(P.modeData.point,69,470)
mText(drawableText.combo,69,428)
mText(drawableText.mxcmb,69,520)
end,
score=function(P)return{min(P.modeData.point,100),P.stat.time}end,
scoreDisp=function(D)return D[1].." Combo "..toTime(D[2])end,

View File

@@ -44,10 +44,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.combo,-81,310)
mStr(P.modeData.point,-81,400)
mText(drawableText.combo,-81,358)
mText(drawableText.mxcmb,-81,450)
mStr(P.combo,69,380)
mStr(P.modeData.point,69,470)
mText(drawableText.combo,69,428)
mText(drawableText.mxcmb,69,520)
end,
score=function(P)return{min(P.modeData.point,100),P.stat.time}end,
scoreDisp=function(D)return D[1].." Combo "..toTime(D[2])end,

View File

@@ -34,12 +34,12 @@ return{
mesDisp=function(P,dx,dy)
setFont(75)
local r=P.gameEnv.target*.1
mStr(r<11 and 18 or r<22 and r+8 or r==22 and"00"or r==23 and"0a"or format("%x",r*10-220),-81,210)
mText(drawableText.speedLV,-81,290)
mStr(r<11 and 18 or r<22 and r+8 or r==22 and"00"or r==23 and"0a"or format("%x",r*10-220),69,280)
mText(drawableText.speedLV,69,360)
setFont(45)
mStr(P.stat.row,-81,320)
mStr(P.gameEnv.target,-81,370)
gc.rectangle("fill",-125,375,90,4)
mStr(P.stat.row,69,390)
mStr(P.gameEnv.target,69,440)
gc.rectangle("fill",25,445,90,4)
end,
score=function(P)return{P.stat.score,P.stat.row}end,
scoreDisp=function(D)return D[1].." "..D[2].." Lines"end,

View File

@@ -51,21 +51,12 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(55)
if P.gameEnv.puzzle or P.gameEnv.target>1e10 then
mStr(P.stat.row,-81,225)
mText(drawableText.line,-81,290)
if P.gameEnv.target>1e10 then
mStr(P.stat.row,69,295)
mText(drawableText.line,69,360)
else
local R=P.gameEnv.target-P.stat.row
mStr(R>=0 and R or 0,-81,240)
end
if P.gameEnv.puzzle and P.modeData.event==0 then
local m=puzzleMark
for y=1,preField.h do for x=1,10 do
local T=preField[y][x]
if T~=0 then
gc.draw(m[T],30*x-30+dx,600-30*y+dy)
end
end end
mStr(R>=0 and R or 0,69,310)
end
end,
}

View File

@@ -63,14 +63,14 @@ return{
mesDisp=function(P)
local dx,dy=P.fieldOff.x,P.fieldOff.y
setFont(55)
mStr(P.stat.row,-81,225)
mText(drawableText.line,-81,290)
mStr(P.stat.row,69,295)
mText(drawableText.line,69,360)
if P.gameEnv.puzzle and P.modeData.event==0 then
local m=puzzleMark
for y=1,preField.h do for x=1,10 do
local T=preField[y][x]
if T~=0 then
gc.draw(m[T],30*x-30+dx,600-30*y+dy)
gc.draw(m[T],150+30*x-30+dx,70+600-30*y+dy)
end
end end
end

View File

@@ -45,10 +45,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(55)
mStr(P.modeData.event,-81,200)
mStr(P.modeData.point,-81,320)
mText(drawableText.wave,-81,260)
mText(drawableText.rpm,-81,380)
mStr(P.modeData.event,69,270)
mStr(P.modeData.point,69,390)
mText(drawableText.wave,69,350)
mText(drawableText.rpm,69,450)
end,
score=function(P)return{P.modeData.event,P.stat.time}end,
scoreDisp=function(D)return D[1].." Waves "..toTime(D[2])end,

View File

@@ -45,10 +45,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(55)
mStr(P.modeData.event,-81,200)
mStr(P.modeData.point,-81,320)
mText(drawableText.wave,-81,260)
mText(drawableText.rpm,-81,380)
mStr(P.modeData.event,69,270)
mStr(P.modeData.point,69,390)
mText(drawableText.wave,69,350)
mText(drawableText.rpm,69,450)
end,
score=function(P)return{P.modeData.event,P.stat.time}end,
scoreDisp=function(D)return D[1].." Waves "..toTime(D[2])end,

View File

@@ -24,8 +24,8 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(65)
mStr(P.modeData.event,-81,310)
mText(drawableText.wave,-81,375)
mStr(P.modeData.event,69,380)
mText(drawableText.wave,69,445)
end,
score=function(P)return{P.modeData.event,P.stat.row}end,
scoreDisp=function(D)return D[1].." Waves "..D[2].." Lines"end,

View File

@@ -23,8 +23,8 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(65)
mStr(P.modeData.event,-81,310)
mText(drawableText.wave,-81,375)
mStr(P.modeData.event,69,380)
mText(drawableText.wave,69,445)
end,
score=function(P)return{P.modeData.event,P.stat.row}end,
scoreDisp=function(D)return D[1].." Waves "..D[2].." Lines"end,

View File

@@ -104,7 +104,7 @@ return{
mesDisp=function(P,dx,dy)
setFont(70)
local R=100-P.stat.row
mStr(R>=0 and R or 0,-81,280)
mStr(R>=0 and R or 0,69,335)
end,
score=function(P)return{min(P.stat.row,100),P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -18,7 +18,7 @@ return{
mesDisp=function(P,dx,dy)
setFont(70)
local R=100-P.stat.row
mStr(R>=0 and R or 0,-81,280)
mStr(R>=0 and R or 0,69,335)
end,
score=function(P)return{min(P.stat.row,100),P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -11,10 +11,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.atk,-81,260)
mStr(format("%.2f",P.stat.atk/P.stat.row),-81,370)
mText(drawableText.atk,-81,313)
mText(drawableText.eff,-81,425)
mStr(P.stat.atk,69,260)
mStr(format("%.2f",P.stat.atk/P.stat.row),69,380)
mText(drawableText.atk,69,313)
mText(drawableText.eff,69,433)
end,
score=function(P)return{P.stat.score}end,
scoreDisp=function(D)return tostring(D[1])end,

View File

@@ -44,12 +44,12 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.dig,-81,190)
mStr(P.stat.atk,-81,310)
mStr(format("%.2f",P.stat.atk/P.stat.row),-81,420)
mText(drawableText.line,-81,243)
mText(drawableText.atk,-81,363)
mText(drawableText.eff,-81,475)
mStr(P.stat.dig,69,260)
mStr(P.stat.atk,69,380)
mStr(format("%.2f",P.stat.atk/P.stat.row),69,490)
mText(drawableText.line,69,313)
mText(drawableText.atk,69,433)
mText(drawableText.eff,69,545)
end,
score=function(P)return{P.stat.dig}end,
scoreDisp=function(D)return D[1].." Lines"end,

View File

@@ -30,9 +30,9 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.row,-81,320)
mStr(P.gameEnv.target,-81,370)
gc.rectangle("fill",-125,375,90,4)
mStr(P.stat.row,69,390)
mStr(P.modeData.event*100+100,69,440)
gc.rectangle("fill",25,445,90,4)
end,
score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -29,9 +29,9 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.row,-81,320)
mStr(P.modeData.point+10,-81,370)
gc.rectangle("fill",-125,375,90,4)
mStr(P.stat.row,69,390)
mStr(P.modeData.event*100+100,69,440)
gc.rectangle("fill",25,445,90,4)
end,
score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -52,9 +52,9 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.modeData.point,-81,320)
mStr((P.modeData.event+1)*100,-81,370)
gc.rectangle("fill",-125,375,90,4)
mStr(P.modeData.point,69,390)
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,
scoreDisp=function(D)return D[1].."P "..toTime(D[2])end,

View File

@@ -56,9 +56,9 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.modeData.point,-81,320)
mStr((P.modeData.event+1)*100,-81,370)
gc.rectangle("fill",-125,375,90,4)
mStr(P.modeData.point,69,390)
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,
scoreDisp=function(D)return D[1].."P "..toTime(D[2])end,

View File

@@ -54,10 +54,9 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
local MD=P.modeData
mStr(MD.point,-81,320)
mStr((MD.event+1)*100,-81,370)
gc.rectangle("fill",-125,375,90,4)
mStr(P.modeData.point,69,390)
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,
scoreDisp=function(D)return D[1].."P "..toTime(D[2])end,

View File

@@ -16,11 +16,11 @@ return{
mesDisp=function(P,dx,dy)
setFont(45)
local R=100-P.stat.row
mStr(R>=0 and R or 0,-81,250)
mStr(R>=0 and R or 0,69,320)
setFont(75)
mStr(P.stat.pc,-81,350)
mText(drawableText.pc,-81,432)
mStr(P.stat.pc,69,420)
mText(drawableText.pc,69,502)
end,
score=function(P)return{P.stat.pc,P.stat.time}end,
scoreDisp=function(D)return D[1].." PCs "..toTime(D[2])end,

View File

@@ -16,11 +16,11 @@ return{
mesDisp=function(P,dx,dy)
setFont(45)
local R=100-P.stat.row
mStr(R>=0 and R or 0,-81,250)
mStr(R>=0 and R or 0,69,320)
setFont(75)
mStr(P.stat.pc,-81,350)
mText(drawableText.pc,-81,432)
mStr(P.stat.pc,69,420)
mText(drawableText.pc,69,502)
end,
score=function(P)return{P.stat.pc,P.stat.time}end,
scoreDisp=function(D)return D[1].." PCs "..toTime(D[2])end,

View File

@@ -15,11 +15,11 @@ return{
mesDisp=function(P,dx,dy)
setFont(45)
local R=100-P.stat.row
mStr(R>=0 and R or 0,-81,250)
mStr(R>=0 and R or 0,69,320)
setFont(75)
mStr(P.stat.pc,-81,350)
mText(drawableText.pc,-81,432)
mStr(P.stat.pc,69,420)
mText(drawableText.pc,69,502)
end,
score=function(P)return{P.stat.pc,P.stat.time}end,
scoreDisp=function(D)return D[1].." PCs "..toTime(D[2])end,

View File

@@ -67,8 +67,8 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(75)
mStr(P.stat.pc,-81,330)
mText(drawableText.pc,-81,412)
mStr(P.stat.pc,69,400)
mText(drawableText.pc,69,482)
end,
score=function(P)return{P.stat.pc,P.stat.time}end,
scoreDisp=function(D)return D[1].." PCs "..toTime(D[2])end,

View File

@@ -58,8 +58,8 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(75)
mStr(P.stat.pc,-81,330)
mText(drawableText.pc,-81,412)
mStr(P.stat.pc,69,400)
mText(drawableText.pc,69,482)
end,
score=function(P)return{P.stat.pc,P.stat.time}end,
scoreDisp=function(D)return D[1].." PCs "..toTime(D[2])end,

View File

@@ -23,8 +23,6 @@ return{
PLY.newAIPlayer(2,965,360,.5,AITemplate("CC",10,1,true,5000))
game.garbageSpeed=1e99
end,
mesDisp=function(P,dx,dy)
end,
score=function(P)return{P.stat.piece,P.stat.time}end,
scoreDisp=function(D)return D[1].." Pieces "..toTime(D[2])end,
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[2]end,

View File

@@ -23,8 +23,6 @@ return{
PLY.newAIPlayer(2,965,360,.5,AITemplate("CC",10,1,true,10000))
game.garbageSpeed=1e99
end,
mesDisp=function(P,dx,dy)
end,
score=function(P)return{P.stat.piece,P.stat.time}end,
scoreDisp=function(D)return D[1].." Pieces "..toTime(D[2])end,
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[2]end,

View File

@@ -23,8 +23,6 @@ return{
PLY.newAIPlayer(2,965,360,.5,AITemplate("CC",10,2,true,12600))
game.garbageSpeed=1e99
end,
mesDisp=function(P,dx,dy)
end,
score=function(P)return{P.stat.piece,P.stat.time}end,
scoreDisp=function(D)return D[1].." Pieces "..toTime(D[2])end,
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[2]end,

View File

@@ -23,8 +23,6 @@ return{
PLY.newAIPlayer(2,965,360,.5,AITemplate("CC",10,3,true,16260))
game.garbageSpeed=1e99
end,
mesDisp=function(P,dx,dy)
end,
score=function(P)return{P.stat.piece,P.stat.time}end,
scoreDisp=function(D)return D[1].." Pieces "..toTime(D[2])end,
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[2]end,

View File

@@ -23,8 +23,6 @@ return{
PLY.newAIPlayer(2,965,360,.5,AITemplate("CC",10,3,true,26000))
game.garbageSpeed=1e99
end,
mesDisp=function(P,dx,dy)
end,
score=function(P)return{P.stat.piece,P.stat.time}end,
scoreDisp=function(D)return D[1].." Pieces "..toTime(D[2])end,
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[2]end,

View File

@@ -11,8 +11,6 @@ return{
PLY.newPlayer(1,340,15)
PLY.newAIPlayer(2,965,360,.5,AITemplate("9S",3))
end,
mesDisp=function(P,dx,dy)
end,
score=function(P)return{P.stat.time}end,
scoreDisp=function(D)return toTime(D[1])end,
comp=function(a,b)return a[1]<b[1]end,

View File

@@ -11,8 +11,6 @@ return{
PLY.newPlayer(1,340,15)
PLY.newAIPlayer(2,965,360,.5,AITemplate("9S",5))
end,
mesDisp=function(P,dx,dy)
end,
score=function(P)return{P.stat.time}end,
scoreDisp=function(D)return toTime(D[1])end,
comp=function(a,b)return a[1]<b[1]end,

View File

@@ -11,8 +11,6 @@ return{
PLY.newPlayer(1,340,15)
PLY.newAIPlayer(2,965,360,.5,AITemplate("9S",7))
end,
mesDisp=function(P,dx,dy)
end,
score=function(P)return{P.stat.time}end,
scoreDisp=function(D)return toTime(D[1])end,
comp=function(a,b)return a[1]<b[1]end,

View File

@@ -11,8 +11,6 @@ return{
PLY.newPlayer(1,340,15)
PLY.newAIPlayer(2,965,360,.5,AITemplate("CC",9,2,true,26000))
end,
mesDisp=function(P,dx,dy)
end,
score=function(P)return{P.stat.time}end,
scoreDisp=function(D)return toTime(D[1])end,
comp=function(a,b)return a[1]<b[1]end,

View File

@@ -11,8 +11,6 @@ return{
PLY.newPlayer(1,340,15)
PLY.newAIPlayer(2,965,360,.5,AITemplate("CC",10,3,true,50000))
end,
mesDisp=function(P,dx,dy)
end,
score=function(P)return{P.stat.time}end,
scoreDisp=function(D)return toTime(D[1])end,
comp=function(a,b)return a[1]<b[1]end,

View File

@@ -12,11 +12,11 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P)
local dx,dy=P.fieldOff.x,P.fieldOff.y
local dx,dy=150+P.fieldOff.x,70+P.fieldOff.y
setFont(55)
local r=40-P.stat.row
if r<0 then r=0 end
mStr(r,-81,265)
mStr(r,69,335)
if r<21 and r>0 then
gc.setLineWidth(4)
gc.setColor(1,r>10 and 0 or rnd(),.5)

View File

@@ -11,12 +11,12 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P)
local dx,dy=P.fieldOff.x,P.fieldOff.y
local dx,dy=150+P.fieldOff.x,70+P.fieldOff.y
setFont(55)
local r=10-P.stat.row
if r<0 then r=0 end
mStr(r,-81,265)
if r<21 and r>0 then
mStr(r,69,335)
if r>0 then
gc.setLineWidth(4)
gc.setColor(1,r>10 and 0 or rnd(),.5)
gc.line(dx,600-30*r+dy,300+dx,600-30*r+dy)

View File

@@ -11,11 +11,11 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P)
local dx,dy=P.fieldOff.x,P.fieldOff.y
local dx,dy=150+P.fieldOff.x,70+P.fieldOff.y
setFont(55)
local r=100-P.stat.row
if r<0 then r=0 end
mStr(r,-81,265)
mStr(r,69,335)
if r<21 and r>0 then
gc.setLineWidth(4)
gc.setColor(1,r>10 and 0 or rnd(),.5)

View File

@@ -11,11 +11,11 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P)
local dx,dy=P.fieldOff.x,P.fieldOff.y
local dx,dy=150+P.fieldOff.x,70+P.fieldOff.y
setFont(55)
local r=1000-P.stat.row
if r<0 then r=0 end
mStr(r,-81,265)
mStr(r,69,335)
if r<21 and r>0 then
gc.setLineWidth(4)
gc.setColor(1,r>10 and 0 or rnd(),.5)

View File

@@ -11,12 +11,12 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P)
local dx,dy=P.fieldOff.x,P.fieldOff.y
local dx,dy=150+P.fieldOff.x,70+P.fieldOff.y
setFont(55)
local r=20-P.stat.row
if r<0 then r=0 end
mStr(r,-81,265)
if r<21 and r>0 then
mStr(r,69,335)
if r>0 then
gc.setLineWidth(4)
gc.setColor(1,r>10 and 0 or rnd(),.5)
gc.line(dx,600-30*r+dy,300+dx,600-30*r+dy)

View File

@@ -11,11 +11,11 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P)
local dx,dy=P.fieldOff.x,P.fieldOff.y
local dx,dy=150+P.fieldOff.x,70+P.fieldOff.y
setFont(55)
local r=40-P.stat.row
if r<0 then r=0 end
mStr(r,-81,265)
mStr(r,69,335)
if r<21 and r>0 then
gc.setLineWidth(4)
gc.setColor(1,r>10 and 0 or rnd(),.5)

View File

@@ -11,11 +11,11 @@ return{
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P)
local dx,dy=P.fieldOff.x,P.fieldOff.y
local dx,dy=150+P.fieldOff.x,70+P.fieldOff.y
setFont(55)
local r=400-P.stat.row
if r<0 then r=0 end
mStr(r,-81,265)
mStr(r,69,335)
if r<21 and r>0 then
gc.setLineWidth(4)
gc.setColor(1,r>10 and 0 or rnd(),.5)

View File

@@ -24,8 +24,8 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(65)
mStr(P.modeData.event,-81,310)
mText(drawableText.wave,-81,375)
mStr(P.modeData.event,69,380)
mText(drawableText.wave,69,445)
end,
score=function(P)return{P.modeData.event,P.stat.time}end,
scoreDisp=function(D)return D[1].." Waves "..toTime(D[2])end,

View File

@@ -30,8 +30,8 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(65)
mStr(P.modeData.event,-81,310)
mText(drawableText.wave,-81,375)
mStr(P.modeData.event,69,380)
mText(drawableText.wave,69,445)
end,
score=function(P)return{P.modeData.event,P.stat.time}end,
scoreDisp=function(D)return D[1].." Waves "..toTime(D[2])end,

View File

@@ -25,8 +25,8 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(65)
mStr(P.modeData.event,-81,310)
mText(drawableText.wave,-81,375)
mStr(P.modeData.event,69,380)
mText(drawableText.wave,69,445)
end,
score=function(P)return{P.modeData.event,P.stat.time}end,
scoreDisp=function(D)return D[1].." Waves "..toTime(D[2])end,

View File

@@ -29,8 +29,8 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(65)
mStr(P.modeData.event,-81,310)
mText(drawableText.wave,-81,375)
mStr(P.modeData.event,69,380)
mText(drawableText.wave,69,445)
end,
score=function(P)return{P.modeData.event,P.stat.time}end,
scoreDisp=function(D)return D[1].." Waves "..toTime(D[2])end,

View File

@@ -31,8 +31,8 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(65)
mStr(P.modeData.event,-81,310)
mText(drawableText.wave,-81,375)
mStr(P.modeData.event,69,380)
mText(drawableText.wave,69,445)
end,
score=function(P)return{P.modeData.event,P.stat.time}end,
scoreDisp=function(D)return D[1].." Waves "..toTime(D[2])end,

View File

@@ -25,10 +25,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.atk,-81,310)
mStr(format("%.2f",P.stat.atk/P.stat.row),-81,420)
mText(drawableText.atk,-81,363)
mText(drawableText.eff,-81,475)
mStr(P.stat.atk,69,260)
mStr(format("%.2f",P.stat.atk/P.stat.row),69,380)
mText(drawableText.atk,69,313)
mText(drawableText.eff,69,433)
end,
score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -17,10 +17,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.atk,-81,310)
mStr(format("%.2f",P.stat.atk/P.stat.row),-81,420)
mText(drawableText.atk,-81,363)
mText(drawableText.eff,-81,475)
mStr(P.stat.atk,69,260)
mStr(format("%.2f",P.stat.atk/P.stat.row),69,380)
mText(drawableText.atk,69,313)
mText(drawableText.eff,69,433)
end,
score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -22,10 +22,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.atk,-81,310)
mStr(format("%.2f",P.stat.atk/P.stat.row),-81,420)
mText(drawableText.atk,-81,363)
mText(drawableText.eff,-81,475)
mStr(P.stat.atk,69,260)
mStr(format("%.2f",P.stat.atk/P.stat.row),69,380)
mText(drawableText.atk,69,313)
mText(drawableText.eff,69,433)
end,
score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -22,10 +22,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.atk,-81,310)
mStr(format("%.2f",P.stat.atk/P.stat.row),-81,420)
mText(drawableText.atk,-81,363)
mText(drawableText.eff,-81,475)
mStr(P.stat.atk,69,260)
mStr(format("%.2f",P.stat.atk/P.stat.row),69,380)
mText(drawableText.atk,69,313)
mText(drawableText.eff,69,433)
end,
score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -22,10 +22,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.atk,-81,310)
mStr(format("%.2f",P.stat.atk/P.stat.row),-81,420)
mText(drawableText.atk,-81,363)
mText(drawableText.eff,-81,475)
mStr(P.stat.atk,69,260)
mStr(format("%.2f",P.stat.atk/P.stat.row),69,380)
mText(drawableText.atk,69,313)
mText(drawableText.eff,69,433)
end,
score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -22,10 +22,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.atk,-81,310)
mStr(format("%.2f",P.stat.atk/P.stat.row),-81,420)
mText(drawableText.atk,-81,363)
mText(drawableText.eff,-81,475)
mStr(P.stat.atk,69,260)
mStr(format("%.2f",P.stat.atk/P.stat.row),69,380)
mText(drawableText.atk,69,313)
mText(drawableText.eff,69,433)
end,
score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -22,10 +22,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.atk,-81,310)
mStr(format("%.2f",P.stat.atk/P.stat.row),-81,420)
mText(drawableText.atk,-81,363)
mText(drawableText.eff,-81,475)
mStr(P.stat.atk,69,260)
mStr(format("%.2f",P.stat.atk/P.stat.row),69,380)
mText(drawableText.atk,69,313)
mText(drawableText.eff,69,433)
end,
score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -22,10 +22,10 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(45)
mStr(P.stat.atk,-81,310)
mStr(format("%.2f",P.stat.atk/P.stat.row),-81,420)
mText(drawableText.atk,-81,363)
mText(drawableText.eff,-81,475)
mStr(P.stat.atk,69,260)
mStr(format("%.2f",P.stat.atk/P.stat.row),69,380)
mText(drawableText.atk,69,313)
mText(drawableText.eff,69,433)
end,
score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -58,17 +58,17 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(35)
mStr(#players.alive.."/49",-81,175)
mStr(P.modeData.point,-70,215)
gc.draw(drawableText.ko,-127,225)
mStr(#players.alive.."/49",69,245)
mStr(P.modeData.point,80,285)
gc.draw(drawableText.ko,23,295)
setFont(20)
gc.setColor(1,.5,0,.6)
gc.print(P.badge,-47,227)
gc.print(P.badge,103,297)
gc.setColor(1,1,1)
setFont(25)
gc.print(powerUp[P.strength],-132,290)
gc.print(powerUp[P.strength],18,360)
for i=1,P.strength do
gc.draw(IMG.badgeIcon,16*i-138,260)
gc.draw(IMG.badgeIcon,16*i+12,330)
end
end,
score=function(P)return{P.modeData.event,P.modeData.point}end,

View File

@@ -58,17 +58,17 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(35)
mStr(#players.alive.."/49",-81,175)
mStr(P.modeData.point,-70,215)
gc.draw(drawableText.ko,-127,225)
mStr(#players.alive.."/49",69,245)
mStr(P.modeData.point,80,285)
gc.draw(drawableText.ko,23,295)
setFont(20)
gc.setColor(1,.5,0,.6)
gc.print(P.badge,-47,227)
gc.print(P.badge,103,297)
gc.setColor(1,1,1)
setFont(25)
gc.print(powerUp[P.strength],-132,290)
gc.print(powerUp[P.strength],18,360)
for i=1,P.strength do
gc.draw(IMG.badgeIcon,16*i-138,260)
gc.draw(IMG.badgeIcon,16*i+12,330)
end
end,
score=function(P)return{P.modeData.event,P.modeData.point}end,

View File

@@ -58,17 +58,17 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(35)
mStr(#players.alive.."/49",-81,175)
mStr(P.modeData.point,-70,215)
gc.draw(drawableText.ko,-127,225)
mStr(#players.alive.."/49",69,245)
mStr(P.modeData.point,80,285)
gc.draw(drawableText.ko,23,295)
setFont(20)
gc.setColor(1,.5,0,.6)
gc.print(P.badge,-47,227)
gc.print(P.badge,103,297)
gc.setColor(1,1,1)
setFont(25)
gc.print(powerUp[P.strength],-132,290)
gc.print(powerUp[P.strength],18,360)
for i=1,P.strength do
gc.draw(IMG.badgeIcon,16*i-138,260)
gc.draw(IMG.badgeIcon,16*i+12,330)
end
end,
score=function(P)return{P.modeData.event,P.modeData.point}end,

View File

@@ -58,17 +58,17 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(35)
mStr(#players.alive.."/99",-81,175)
mStr(P.modeData.point,-70,215)
gc.draw(drawableText.ko,-127,225)
mStr(#players.alive.."/99",69,245)
mStr(P.modeData.point,80,285)
gc.draw(drawableText.ko,23,295)
setFont(20)
gc.setColor(1,.5,0,.6)
gc.print(P.badge,-47,227)
gc.print(P.badge,103,297)
gc.setColor(1,1,1)
setFont(25)
gc.print(powerUp[P.strength],-132,290)
gc.print(powerUp[P.strength],18,360)
for i=1,P.strength do
gc.draw(IMG.badgeIcon,16*i-138,260)
gc.draw(IMG.badgeIcon,16*i+12,330)
end
end,
score=function(P)return{P.modeData.event,P.modeData.point}end,

View File

@@ -58,17 +58,17 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(35)
mStr(#players.alive.."/99",-81,175)
mStr(P.modeData.point,-70,215)
gc.draw(drawableText.ko,-127,225)
mStr(#players.alive.."/99",69,245)
mStr(P.modeData.point,80,285)
gc.draw(drawableText.ko,23,295)
setFont(20)
gc.setColor(1,.5,0,.6)
gc.print(P.badge,-47,227)
gc.print(P.badge,103,297)
gc.setColor(1,1,1)
setFont(25)
gc.print(powerUp[P.strength],-132,290)
gc.print(powerUp[P.strength],18,360)
for i=1,P.strength do
gc.draw(IMG.badgeIcon,16*i-138,260)
gc.draw(IMG.badgeIcon,16*i+12,330)
end
end,
score=function(P)return{P.modeData.event,P.modeData.point}end,

View File

@@ -58,17 +58,17 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(35)
mStr(#players.alive.."/99",-81,175)
mStr(P.modeData.point,-70,215)
gc.draw(drawableText.ko,-127,225)
mStr(#players.alive.."/99",69,245)
mStr(P.modeData.point,80,285)
gc.draw(drawableText.ko,23,295)
setFont(20)
gc.setColor(1,.5,0,.6)
gc.print(P.badge,-47,227)
gc.print(P.badge,103,297)
gc.setColor(1,1,1)
setFont(25)
gc.print(powerUp[P.strength],-132,290)
gc.print(powerUp[P.strength],18,360)
for i=1,P.strength do
gc.draw(IMG.badgeIcon,16*i-138,260)
gc.draw(IMG.badgeIcon,16*i+12,330)
end
end,
score=function(P)return{P.modeData.event,P.modeData.point}end,

View File

@@ -25,8 +25,8 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(75)
mStr(P.modeData.event,-81,330)
mText(drawableText.tsd,-81,407)
mStr(P.modeData.event,69,400)
mText(drawableText.tsd,69,477)
end,
score=function(P)return{P.modeData.event,P.stat.time}end,
scoreDisp=function(D)return D[1].."TSD "..toTime(D[2])end,

View File

@@ -23,8 +23,8 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(75)
mStr(P.modeData.event,-81,330)
mText(drawableText.tsd,-81,407)
mStr(P.modeData.event,69,400)
mText(drawableText.tsd,69,477)
end,
score=function(P)return{P.modeData.event,P.stat.time}end,
scoreDisp=function(D)return D[1].."TSD "..toTime(D[2])end,

View File

@@ -23,8 +23,8 @@ return{
end,
mesDisp=function(P,dx,dy)
setFont(75)
mStr(P.modeData.event,-81,330)
mText(drawableText.tsd,-81,407)
mStr(P.modeData.event,69,400)
mText(drawableText.tsd,69,477)
end,
score=function(P)return{P.modeData.event,P.stat.time}end,
scoreDisp=function(D)return D[1].."TSD "..toTime(D[2])end,

View File

@@ -29,10 +29,10 @@ return{
end,
mesDisp=function(P,dx,dy)
gc.setLineWidth(2)
gc.rectangle("line",-95,120,32,402)
gc.rectangle("line",55,190,32,402)
local T=P.stat.time/120
gc.setColor(2*T,2-2*T,.2)
gc.rectangle("fill",-94,521,30,(T-1)*400)
gc.rectangle("fill",56,591,30,(T-1)*400)
end,
score=function(P)return{P.stat.score}end,
scoreDisp=function(D)return tostring(D[1])end,

View File

@@ -12,7 +12,7 @@ return{
mesDisp=function(P,dx,dy)
setFont(70)
local R=200-P.stat.row
mStr(R>=0 and R or 0,-81,280)
mStr(R>=0 and R or 0,69,335)
end,
score=function(P)return{P.stat.score}end,
scoreDisp=function(D)return tostring(D[1])end,

View File

@@ -591,282 +591,292 @@ local function Pdraw_norm(P)
local _
local ENV=P.gameEnv
gc.push("transform")
gc.translate(P.x,P.y)gc.scale(P.size)
--Camera
gc.translate(P.x,P.y)gc.scale(P.size)
--Fill field
gc.translate(150+P.fieldOff.x,70+P.fieldOff.y)
gc.setColor(0,0,0,.6)gc.rectangle("fill",0,-10,300,610)
--Grid
if ENV.grid then
gc.setLineWidth(1)
gc.setColor(1,1,1,.2)
for x=1,9 do gc.line(30*x,-10,30*x,600)end
for y=0,19 do
y=30*(y-int(P.fieldBeneath/30))+P.fieldBeneath
gc.line(0,y,300,y)
end
end
--In-field things
gc.setLineWidth(2)
gc.translate(0,P.fieldBeneath)
gc.setScissor(scr.x+(P.absFieldX+P.fieldOff.x)*scr.k,scr.y+(P.absFieldY+P.fieldOff.y)*scr.k,300*P.size*scr.k,610*P.size*scr.k)
if P.falling==-1 then--Field block only
for j=int(P.fieldBeneath/30+1),#P.field do
for i=1,10 do
if P.field[j][i]>0 then
gc.setColor(1,1,1,min(P.visTime[j][i]*.05,1))
drawPixel(j,i,P.field[j][i])
end
end
end
else--Field with falling animation
local dy,stepY=0,ENV.smooth and(P.falling/(ENV.fall+1))^2.5*30 or 30
local A=P.falling/ENV.fall
local h,H=1,#P.field
for j=int(P.fieldBeneath/30+1),H do
while j==P.clearingRow[h]do
h=h+1
dy=dy+stepY
gc.translate(0,-stepY)
gc.setColor(1,1,1,A)
gc.rectangle("fill",0,630-30*j,300,stepY)
end
for i=1,10 do
if P.field[j][i]>0 then
gc.setColor(1,1,1,min(P.visTime[j][i]*.05,1))
drawPixel(j,i,P.field[j][i])
end
end
end
gc.translate(0,dy)
end
drawFXs(P)
if P.cur and P.waiting==-1 then
local curColor=P.cur.color
--Ghost
if ENV.ghost then
gc.setColor(1,1,1,ENV.ghost)
for i=1,P.r do for j=1,P.c do
if P.cur.bk[i][j]then
drawPixel(i+P.imgY-1,j+P.curX-1,curColor)
end
end end
end
local dy=ENV.smooth and P.imgY~=P.curY and(P.dropDelay/ENV.drop-1)*30 or 0
gc.translate(0,-dy)
local trans=P.lockDelay/ENV.lock
if ENV.block then
--White Boarder(indicate lockdelay)
SHADER.alpha:send("a",trans)
gc.setShader(SHADER.alpha)
_=blockSkin[curColor]
for i=1,P.r do for j=1,P.c do
if P.cur.bk[i][j]then
local x=30*(j+P.curX)-60-3
local y=630-30*(i+P.curY)-3
gc.draw(_,x,y)gc.draw(_,x+6,y+6)
gc.draw(_,x+6,y)gc.draw(_,x,y+6)
end
end end
gc.setShader()
--Block
gc.setColor(1,1,1)
for i=1,P.r do for j=1,P.c do
if P.cur.bk[i][j]then
drawPixel(i+P.curY-1,j+P.curX-1,curColor)
end
end end
end
--Rotate center
if ENV.center then
gc.setColor(1,1,1,trans*ENV.center)
local x=30*(P.curX+P.sc[2])-15
gc.draw(IMG.spinCenter,x,600-30*(P.curY+P.sc[1])+15,nil,nil,nil,4,4)
if ENV.ghost then
gc.translate(0,dy)
gc.setColor(1,1,1,trans*ENV.center)
gc.draw(IMG.spinCenter,x,600-30*(P.imgY+P.sc[1])+15,nil,nil,nil,4,4)
goto E
end
end
gc.translate(0,dy)
end
::E::
gc.setScissor()
gc.translate(0,-P.fieldBeneath)
gc.setColor(P.frameColor)
gc.rectangle("line",-1,-11,302,612)--Boarder
gc.rectangle("line",301,0,15,601)--AtkBuffer boarder
gc.rectangle("line",-16,-3,15,604)--B2b bar boarder
--LockDelay indicator
if ENV.easyFresh then
gc.setColor(1,1,1)
else
gc.setColor(1,.26,.26)
end
if P.lockDelay>=0 then
gc.rectangle("fill",0,602,300*P.lockDelay/ENV.lock,6)--Lock delay indicator
end
_=3
for i=1,min(ENV.freshLimit-P.freshTime,15)do
gc.rectangle("fill",_,615,14,5)
_=_+20
end
--Buffer line
local h=0
for i=1,#P.atkBuffer do
local A=P.atkBuffer[i]
local bar=A.amount*30
if h+bar>600 then bar=600-h end
if not A.sent then
--Appear
if A.time<20 then
bar=bar*(20*A.time)^.5*.05
end
if A.countdown>0 then
--Timing
gc.setColor(attackColor[A.lv][1])
gc.rectangle("fill",303,599-h,11,-bar+3)
gc.setColor(attackColor[A.lv][2])
gc.rectangle("fill",303,599-h+(-bar+3),11,-(-bar+3)*(1-A.countdown/A.cd0))
else
--Warning
local t=math.sin((Timer()-i)*30)*.5+.5
local c1,c2=attackColor[A.lv][1],attackColor[A.lv][2]
gc.setColor(c1[1]*t+c2[1]*(1-t),c1[2]*t+c2[2]*(1-t),c1[3]*t+c2[3]*(1-t))
gc.rectangle("fill",303,599-h,11,-bar+3)
end
else
gc.setColor(attackColor[A.lv][1])
bar=bar*(20-A.time)*.05
gc.rectangle("fill",303,599-h,11,-bar+2)
--Disappear
end
h=h+bar
end
--B2B indictator
local a,b=P.b2b,P.b2b1 if a>b then a,b=b,a end
gc.setColor(.8,1,.2)
gc.rectangle("fill",-14,599,11,-b*.5)
gc.setColor(P.b2b<40 and color.white or P.b2b<=1e3 and color.lRed or color.lBlue)
gc.rectangle("fill",-14,599,11,-a*.5)
gc.setColor(1,1,1)
if Timer()%.5<.3 then
gc.rectangle("fill",-15,b<40 and 578.5 or 98.5,13,3)
end
gc.translate(-P.fieldOff.x,-P.fieldOff.y)
--Draw Hold
if ENV.hold then
gc.setColor(0,0,0,.4)gc.rectangle("fill",-140,36,124,80)
gc.setColor(1,1,1)gc.rectangle("line",-140,36,124,80)
mText(drawableText.hold,-78,-15)
if P.hd then
if P.holded then gc.setColor(.6,.5,.5)end
local B=P.hd.bk
for i=1,#B do for j=1,#B[1]do
if B[i][j]then
drawPixel(i+17.5-#B*.5,j-2.6-#B[1]*.5,P.hd.color)
end
end end
end
end
--Draw Next(s)
local N=ENV.next*72
if ENV.next>0 then
gc.setColor(0,0,0,.4)gc.rectangle("fill",316,36,124,N)
gc.setColor(1,1,1)gc.rectangle("line",316,36,124,N)
mText(drawableText.next,378,-15)
N=1
while N<=ENV.next and P.next[N]do
local b,c=P.next[N].bk,P.next[N].color
for i=1,#b do for j=1,#b[1] do
if b[i][j]then
drawPixel(i+20-2.4*N-#b*.5,j+12.6-#b[1]*.5,c)
end
end end
N=N+1
end
end
--Draw Bagline(s)
if ENV.bagLine then
local L=ENV.bagLen
local C=-P.pieceCount%L--Phase
gc.setColor(.8,.5,.5)
for i=C,N-1,L do
local y=72*i+36
gc.line(318+P.fieldOff.x,y,438,y)
end
end
--Draw starting counter
gc.setColor(1,1,1)
if game.frame<180 then
local count=179-game.frame
--Field-related things
gc.push("transform")
gc.translate(155,220)
setFont(95)
if count%60>45 then gc.scale(1+(count%60-45)^2*.01,1)end
mStr(int(count/60+1),0,0)
gc.translate(150,70)
--Things shake with field
gc.push("transform")
gc.translate(P.fieldOff.x,P.fieldOff.y)
--Fill field
gc.setColor(0,0,0,.6)gc.rectangle("fill",0,-10,300,610)
--Grid
if ENV.grid then
gc.setLineWidth(1)
gc.setColor(1,1,1,.2)
for x=1,9 do gc.line(30*x,-10,30*x,600)end
for y=0,19 do
y=30*(y-int(P.fieldBeneath/30))+P.fieldBeneath
gc.line(0,y,300,y)
end
end
--In-field things
gc.push("transform")
gc.translate(0,P.fieldBeneath)
gc.setScissor(scr.x+(P.absFieldX+P.fieldOff.x)*scr.k,scr.y+(P.absFieldY+P.fieldOff.y)*scr.k,300*P.size*scr.k,610*P.size*scr.k)
--Draw field
if P.falling==-1 then--Blocks only
for j=int(P.fieldBeneath/30+1),#P.field do
for i=1,10 do
if P.field[j][i]>0 then
gc.setColor(1,1,1,min(P.visTime[j][i]*.05,1))
drawPixel(j,i,P.field[j][i])
end
end
end
else--With falling animation
local dy,stepY=0,ENV.smooth and(P.falling/(ENV.fall+1))^2.5*30 or 30
local A=P.falling/ENV.fall
local h,H=1,#P.field
for j=int(P.fieldBeneath/30+1),H do
while j==P.clearingRow[h]do
h=h+1
dy=dy+stepY
gc.translate(0,-stepY)
gc.setColor(1,1,1,A)
gc.rectangle("fill",0,630-30*j,300,stepY)
end
for i=1,10 do
if P.field[j][i]>0 then
gc.setColor(1,1,1,min(P.visTime[j][i]*.05,1))
drawPixel(j,i,P.field[j][i])
end
end
end
gc.translate(0,dy)
end
--Draw FXs
drawFXs(P)
--Draw current block
if P.cur and P.waiting==-1 then
local curColor=P.cur.color
--Ghost
if ENV.ghost then
gc.setColor(1,1,1,ENV.ghost)
for i=1,P.r do for j=1,P.c do
if P.cur.bk[i][j]then
drawPixel(i+P.imgY-1,j+P.curX-1,curColor)
end
end end
end
local dy=ENV.smooth and P.imgY~=P.curY and(P.dropDelay/ENV.drop-1)*30 or 0
gc.translate(0,-dy)
local trans=P.lockDelay/ENV.lock
if ENV.block then
--White Boarder(indicate lockdelay)
SHADER.alpha:send("a",trans)
gc.setShader(SHADER.alpha)
_=blockSkin[curColor]
for i=1,P.r do for j=1,P.c do
if P.cur.bk[i][j]then
local x=30*(j+P.curX)-60-3
local y=630-30*(i+P.curY)-3
gc.draw(_,x,y)gc.draw(_,x+6,y+6)
gc.draw(_,x+6,y)gc.draw(_,x,y+6)
end
end end
gc.setShader()
--Block
gc.setColor(1,1,1)
for i=1,P.r do for j=1,P.c do
if P.cur.bk[i][j]then
drawPixel(i+P.curY-1,j+P.curX-1,curColor)
end
end end
end
--Rotate center
local x=30*(P.curX+P.sc[2])-15
if ENV.center then
gc.setColor(1,1,1,trans*ENV.center)
gc.draw(IMG.spinCenter,x,600-30*(P.curY+P.sc[1])+15,nil,nil,nil,4,4)
end
gc.translate(0,dy)
if ENV.center and ENV.ghost then
gc.setColor(1,1,1,trans*ENV.center)
gc.draw(IMG.spinCenter,x,600-30*(P.imgY+P.sc[1])+15,nil,nil,nil,4,4)
end
end
gc.setScissor()
gc.pop()
gc.setLineWidth(2)
gc.setColor(P.frameColor)
gc.rectangle("line",-1,-11,302,612)--Boarder
gc.rectangle("line",301,0,15,601)--AtkBuffer boarder
gc.rectangle("line",-16,-3,15,604)--B2b bar boarder
--LockDelay indicator
if ENV.easyFresh then
gc.setColor(1,1,1)
else
gc.setColor(1,.26,.26)
end
if P.lockDelay>=0 then
gc.rectangle("fill",0,602,300*P.lockDelay/ENV.lock,6)--Lock delay indicator
end
_=3
for i=1,min(ENV.freshLimit-P.freshTime,15)do
gc.rectangle("fill",_,615,14,5)
_=_+20
end
--Buffer line
local h=0
for i=1,#P.atkBuffer do
local A=P.atkBuffer[i]
local bar=A.amount*30
if h+bar>600 then bar=600-h end
if not A.sent then
--Appear
if A.time<20 then
bar=bar*(20*A.time)^.5*.05
end
if A.countdown>0 then
--Timing
gc.setColor(attackColor[A.lv][1])
gc.rectangle("fill",303,599-h,11,-bar+3)
gc.setColor(attackColor[A.lv][2])
gc.rectangle("fill",303,599-h+(-bar+3),11,-(-bar+3)*(1-A.countdown/A.cd0))
else
--Warning
local t=math.sin((Timer()-i)*30)*.5+.5
local c1,c2=attackColor[A.lv][1],attackColor[A.lv][2]
gc.setColor(c1[1]*t+c2[1]*(1-t),c1[2]*t+c2[2]*(1-t),c1[3]*t+c2[3]*(1-t))
gc.rectangle("fill",303,599-h,11,-bar+3)
end
else
gc.setColor(attackColor[A.lv][1])
bar=bar*(20-A.time)*.05
gc.rectangle("fill",303,599-h,11,-bar+2)
--Disappear
end
h=h+bar
end
--B2B indictator
local a,b=P.b2b,P.b2b1 if a>b then a,b=b,a end
gc.setColor(.8,1,.2)
gc.rectangle("fill",-14,599,11,-b*.5)
gc.setColor(P.b2b<40 and color.white or P.b2b<=1e3 and color.lRed or color.lBlue)
gc.rectangle("fill",-14,599,11,-a*.5)
gc.setColor(1,1,1)
if Timer()%.5<.3 then
gc.rectangle("fill",-15,b<40 and 578.5 or 98.5,13,3)
end
--Draw Hold
if ENV.hold then
gc.setColor(0,0,0,.4)gc.rectangle("fill",-140,36,124,80)
gc.setColor(1,1,1)gc.rectangle("line",-140,36,124,80)
mText(drawableText.hold,-78,-15)
if P.hd then
if P.holded then gc.setColor(.6,.5,.5)end
local B=P.hd.bk
for i=1,#B do for j=1,#B[1]do
if B[i][j]then
drawPixel(i+17.5-#B*.5,j-2.6-#B[1]*.5,P.hd.color)
end
end end
end
end
--Draw Next(s)
local N=ENV.next*72
if ENV.next>0 then
gc.setColor(0,0,0,.4)gc.rectangle("fill",316,36,124,N)
gc.setColor(1,1,1)gc.rectangle("line",316,36,124,N)
mText(drawableText.next,378,-15)
N=1
while N<=ENV.next and P.next[N]do
local b,c=P.next[N].bk,P.next[N].color
for i=1,#b do for j=1,#b[1] do
if b[i][j]then
drawPixel(i+20-2.4*N-#b*.5,j+12.6-#b[1]*.5,c)
end
end end
N=N+1
end
end
--Draw Bagline(s)
if ENV.bagLine then
local L=ENV.bagLen
local C=-P.pieceCount%L--Phase
gc.setColor(.8,.5,.5)
for i=C,N-1,L do
local y=72*i+36
gc.line(318+P.fieldOff.x,y,438,y)
end
end
--Draw target selecting pad
if modeEnv.royaleMode then
if P.atkMode then
gc.setColor(1,.8,0,P.swappingAtkMode*.02)
gc.rectangle("fill",RCPB[2*P.atkMode-1],RCPB[2*P.atkMode],90,35,8,4)
end
gc.setColor(1,1,1,P.swappingAtkMode*.025)
setFont(18)
for i=1,4 do
gc.rectangle("line",RCPB[2*i-1],RCPB[2*i],90,35,8,4)
mStr(text.atkModeName[i],RCPB[2*i-1]+45,RCPB[2*i]+3)
end
end
gc.pop()
--Bonus texts
TEXT.draw(P.bonus)
gc.pop()
end
--Bonus texts
TEXT.draw(P.bonus)
--Speed dials
setFont(25)
drawDial(360,510,P.dropSpeed)
drawDial(405,565,P.keySpeed)
gc.setColor(1,1,1)
gc.draw(drawableText.bpm,390,480)
gc.draw(drawableText.kpm,344,573)
if P.life>0 then
for i=1,P.life do
gc.draw(IMG.lifeIcon,300+25*i,595,nil,.7)
--Speed dials
setFont(25)
drawDial(510,580,P.dropSpeed)
drawDial(555,635,P.keySpeed)
gc.setColor(1,1,1)
gc.draw(drawableText.bpm,540,550)
gc.draw(drawableText.kpm,494,643)
if P.life>0 then
for i=1,P.life do
gc.draw(IMG.lifeIcon,450+25*i,665,nil,.8)
end
end
end
mStr(format("%.2f",P.stat.time),-81,518)--Time
mStr(P.score1,-81,560)--Score
mStr(format("%.2f",P.stat.time),69,588)--Time
mStr(P.score1,69,630)--Score
--Display Ys
-- gc.setLineWidth(6)
-- if P.curY then gc.setColor(1,.4,0,.626)gc.line(0,611-P.curY*30,300,611-P.curY*30)end
-- if P.imgY then gc.setColor(0,1,.4,.626)gc.line(0,615-P.imgY*30,300,615-P.imgY*30)end
-- if P.minY then gc.setColor(0,.4,1,.626)gc.line(0,619-P.minY*30,300,619-P.minY*30)end
--Display Ys
-- gc.setLineWidth(6)
-- if P.curY then gc.setColor(1,.4,0,.626)gc.line(0,611-P.curY*30,300,611-P.curY*30)end
-- if P.imgY then gc.setColor(0,1,.4,.626)gc.line(0,615-P.imgY*30,300,615-P.imgY*30)end
-- if P.minY then gc.setColor(0,.4,1,.626)gc.line(0,619-P.minY*30,300,619-P.minY*30)end
--Other messages
gc.setColor(1,1,1)
curMode.mesDisp(P)
if modeEnv.royaleMode then
if P.atkMode then
gc.setColor(1,.8,0,P.swappingAtkMode*.02)
gc.rectangle("fill",RCPB[2*P.atkMode-1],RCPB[2*P.atkMode],90,35,8,4)
--Other messages
gc.setColor(1,1,1)
if curMode.mesDisp then
curMode.mesDisp(P)
end
gc.setColor(1,1,1,P.swappingAtkMode*.025)
setFont(18)
for i=1,4 do
gc.rectangle("line",RCPB[2*i-1],RCPB[2*i],90,35,8,4)
mStr(text.atkModeName[i],RCPB[2*i-1]+45,RCPB[2*i]+3)
--Draw starting counter
gc.setColor(1,1,1)
if game.frame<180 then
local count=179-game.frame
gc.push("transform")
gc.translate(305,290)
setFont(95)
if count%60>45 then gc.scale(1+(count%60-45)^2*.01,1)end
mStr(int(count/60+1),0,0)
gc.pop()
end
end
gc.pop()
end
local function Pdraw_small(P)
@@ -2262,6 +2272,8 @@ function player.lose(P)
end
sysFX.newShade(.5,1,1,1,P.x+150*P.size,P.y+60*P.size,300*P.size,610*P.size)
sysFX.newRectRipple(.3,P.x+150*P.size,P.y+60*P.size,300*P.size,610*P.size)
sysFX.newRipple(.3,P.x+(300+25+25*P.life+12)*P.size,P.y+(595+12)*P.size,20)
--300+25*i,595
SFX.play("clear_3")
SFX.play("emit")