71 lines
1.5 KiB
Lua
71 lines
1.5 KiB
Lua
local min=math.min
|
|
local mini=love.window.isMinimized
|
|
local task={}
|
|
function task.finish(P)
|
|
if scene.cur~="play"then return true end
|
|
P.endCounter=P.endCounter+1
|
|
if P.endCounter>120 then pauseGame()end
|
|
end
|
|
function task.lose(P)
|
|
P.endCounter=P.endCounter+1
|
|
if P.endCounter>80 then
|
|
for i=1,#P.field do
|
|
for j=1,10 do
|
|
if P.visTime[i][j]>0 then
|
|
P.visTime[i][j]=P.visTime[i][j]-1
|
|
end
|
|
end
|
|
end
|
|
if P.endCounter==120 then
|
|
for _=#P.field,1,-1 do
|
|
freeRow.discard(P.field[_])
|
|
freeRow.discard(P.visTime[_])
|
|
P.field[_],P.visTime[_]=nil
|
|
end
|
|
if #players==1 and scene=="play"then
|
|
pauseGame()
|
|
end
|
|
return true
|
|
end
|
|
end
|
|
end
|
|
function task.throwBadge(A,data)
|
|
data[2]=data[2]-1
|
|
if data[2]%4==0 then
|
|
local S,R=data[1],data[1].lastRecv
|
|
local x1,y1,x2,y2
|
|
if S.small then
|
|
x1,y1=S.centerX,S.centerY
|
|
else
|
|
x1,y1=S.x+308*S.size,S.y+450*S.size
|
|
end
|
|
if R.small then
|
|
x2,y2=R.centerX,R.centerY
|
|
else
|
|
x2,y2=R.x+66*R.size,R.y+344*R.size
|
|
end
|
|
FX_badge[#FX_badge+1]={x1,y1,x2,y2,t=0}
|
|
--generate badge object
|
|
|
|
if not A.ai and data[2]%8==0 then
|
|
SFX.play("collect")
|
|
end
|
|
end
|
|
if data[2]<=0 then return true end
|
|
end
|
|
function task.bgmFadeOut(_,id)
|
|
local src=BGM.list[id]
|
|
local v=src:getVolume()-.025*setting.bgm*.1
|
|
src:setVolume(v>0 and v or 0)
|
|
if v<=0 then
|
|
src:stop()
|
|
return true
|
|
end
|
|
end
|
|
function task.bgmFadeIn(_,id)
|
|
local src=BGM.list[id]
|
|
local v=min(src:getVolume()+.025*setting.bgm*.1,setting.bgm*.1)
|
|
src:setVolume(v)
|
|
if v>=setting.bgm*.1 then return true end
|
|
end
|
|
return task |