287 lines
10 KiB
Lua
287 lines
10 KiB
Lua
--func:DrawText(x, y, text)
|
|
--func:DrawNum(x, y, num)
|
|
--func:AddGraph("filename")
|
|
--func:DrawGraph(x, y, filename)
|
|
--func:DrawRectGraph(x, y, rect_x, rect_y, rect_width, rect_height, filename)
|
|
--func:DrawGraphCenter(x, y, filename)
|
|
--func:DrawGraphRectCenter(x, y, rect_x, rect_y, rect_width, rect_height, filename)
|
|
--func:SetOpacity(opacity, "filename")
|
|
--func:SetRotation(angle, "fileName")
|
|
--func:SetScale(xscale, yscale, "filename")
|
|
--func:SetColor(r, g, b, "filename")
|
|
|
|
local bg_width = 1920
|
|
local bg_height = 1080
|
|
|
|
local cloud_width = 1800
|
|
local cloud_height = 540
|
|
|
|
local cloud_count = 11
|
|
|
|
local cloud_x = { 963, 918, 978, 1722, 1770, 168, 12, 1632, 1650, 48, 618 }
|
|
local cloud_y = { 303, 636, 954, 795, 954, 954, 153, 78, 162, 489, 966 }
|
|
local cloud_move = { 225, 180, 270, 90, 135, 225, 180, 75, 67, 180, 270 }
|
|
|
|
local shine_count = 6
|
|
|
|
local shine_x = {
|
|
{ 1327,1882,1087,1335,1737,1710 },
|
|
{ 592, 37, 832, 585, 183, 210}
|
|
}
|
|
|
|
local shine_y = {
|
|
{ 975, 607, 967, 630, 303, 877 },
|
|
{ 975, 607, 967, 630, 303, 877 }
|
|
}
|
|
|
|
local shine_size = { 0.44, 0.6, 0.4, 0.15, 0.35, 0.6 }
|
|
|
|
local work_count = 3
|
|
|
|
local work_x = {
|
|
{ 1200, 1350, 1740 },
|
|
{ 720, 570, 180 }
|
|
}
|
|
local work_y = {
|
|
{ 652, 277, 390 },
|
|
{ 652, 277, 390 }
|
|
}
|
|
|
|
local worksTimeStamp = { 1000, 2000, 3000 }
|
|
|
|
local commonCounter = 0
|
|
|
|
local gaugeFactor = 0
|
|
local mountainAppearValue = 0
|
|
local mountainClearIncounter = 0
|
|
|
|
local shineCounter = 0
|
|
local workCounter = 0
|
|
|
|
function skipAnime()
|
|
commonCounter = mountainAppearValue
|
|
end
|
|
|
|
function clearIn(player)
|
|
end
|
|
|
|
function clearOut(player)
|
|
end
|
|
|
|
function init()
|
|
func:AddGraph("Background.png")
|
|
|
|
func:AddGraph("Background_0.png")
|
|
func:AddGraph("Background_1.png")
|
|
func:AddGraph("Background_2.png")
|
|
func:AddGraph("Background_3.png")
|
|
func:AddGraph("Background_4.png")
|
|
func:AddGraph("Background_5.png")
|
|
|
|
func:AddGraph("Background_Mountain_0.png")
|
|
func:AddGraph("Background_Mountain_1.png")
|
|
func:AddGraph("Background_Mountain_2.png")
|
|
func:AddGraph("Background_Mountain_3.png")
|
|
|
|
func:AddGraph("Cloud.png")
|
|
func:AddGraph("Shine.png")
|
|
|
|
for i = 0, work_count - 1 do
|
|
func:AddGraph("Work/"..tostring(i)..".png")
|
|
end
|
|
|
|
commonCounter = 0
|
|
gaugeFactor = math.max(gauge[0], math.max(gauge[1], math.max(gauge[2], math.max(gauge[3], gauge[4])))) / 2
|
|
mountainAppearValue = 10275 + (66 * gaugeFactor)
|
|
mountainClearIncounter = 0
|
|
|
|
shineCounter = 0
|
|
end
|
|
|
|
function update()
|
|
commonCounter = commonCounter + (deltaTime * 1000)
|
|
|
|
if commonCounter >= mountainAppearValue then
|
|
mountainClearIncounter = mountainClearIncounter + (deltaTime * 333)
|
|
mountainClearIncounter = math.min(mountainClearIncounter, 515)
|
|
end
|
|
|
|
shineCounter = shineCounter + (deltaTime * 1000)
|
|
if shineCounter > 1000 then
|
|
shineCounter = 0
|
|
end
|
|
|
|
workCounter = workCounter + (deltaTime * 1000)
|
|
if workCounter > 4000 then
|
|
workCounter = 0
|
|
end
|
|
end
|
|
|
|
function draw()
|
|
func:DrawGraph(0, 0, "Background.png")
|
|
|
|
gaugeAnimFactors = (commonCounter - mountainAppearValue) * 3
|
|
|
|
if playerCount == 1 then
|
|
|
|
index = 0
|
|
if p1IsBlue then
|
|
index = 2
|
|
end
|
|
|
|
mountainScale = 1.0
|
|
|
|
if commonCounter >= mountainAppearValue and isClear[0] then
|
|
func:SetOpacity(gaugeAnimFactors, "Background_1.png")
|
|
func:SetOpacity(255 - gaugeAnimFactors, "Background_Mountain_"..tostring(index)..".png")
|
|
func:SetOpacity(gaugeAnimFactors, "Background_Mountain_"..tostring(index + 1)..".png")
|
|
|
|
if mountainClearIncounter <= 90 then
|
|
mountainScale = 1.0 - math.sin(mountainClearIncounter * (math.pi / 180)) * 0.18
|
|
elseif mountainClearIncounter <= 225 then
|
|
mountainScale = 0.82 + math.sin((mountainClearIncounter - 90) / 1.5 * (math.pi / 180)) * 0.58
|
|
elseif mountainClearIncounter <= 245 then
|
|
mountainScale = 1.4
|
|
elseif mountainClearIncounter <= 335 then
|
|
mountainScale = 0.9 + math.sin((mountainClearIncounter - 155) * (math.pi / 180)) * 0.5
|
|
elseif mountainClearIncounter <= 515 then
|
|
mountainScale = 0.9 + math.sin((mountainClearIncounter - 335) * (math.pi / 180)) * 0.4
|
|
else
|
|
mountainScale = 0.9
|
|
end
|
|
else
|
|
func:SetOpacity(0, "Background_1.png")
|
|
func:SetOpacity(255, "Background_Mountain_"..tostring(index)..".png")
|
|
func:SetOpacity(0, "Background_Mountain_"..tostring(index + 1)..".png")
|
|
end
|
|
|
|
func:SetScale(1.0, mountainScale, "Background_Mountain_"..tostring(index + 1)..".png")
|
|
|
|
if p1IsBlue then
|
|
func:DrawGraph(0, 0, "Background_2.png")
|
|
else
|
|
func:DrawGraph(0, 0, "Background_0.png")
|
|
end
|
|
func:DrawGraph(0, 0, "Background_1.png")
|
|
|
|
func:DrawGraph(0, 0 - ((mountainScale - 1.0) * bg_height), "Background_Mountain_"..tostring(index)..".png")
|
|
func:DrawGraph(0, 0 - ((mountainScale - 1.0) * bg_height), "Background_Mountain_"..tostring(index + 1)..".png")
|
|
|
|
|
|
func:SetScale(0.65, 0.65, "Cloud.png")
|
|
|
|
cloudOpacity = 0
|
|
if commonCounter >= mountainAppearValue and isClear[0] then
|
|
cloudOpacity = math.min(255, math.max(0, commonCounter - mountainAppearValue))
|
|
end
|
|
|
|
for i = 0, cloud_count - 1 do
|
|
move = (cloud_move[i + 1] * (commonCounter / 10000))
|
|
|
|
clearValue = ((commonCounter - mountainAppearValue) % 10000) / 10000.0
|
|
|
|
clearMove = (cloud_move[i + 1] * clearValue)
|
|
|
|
func:SetOpacity(255 - cloudOpacity, "Cloud.png")
|
|
func:DrawGraphRectCenter(cloud_x[i + 1] - move, cloud_y[i + 1], cloud_width * i, cloud_height * index, cloud_width, cloud_height, "Cloud.png")
|
|
|
|
func:SetOpacity(cloudOpacity + (math.min(math.sin(clearValue * math.pi) * 1000, 255) - 255), "Cloud.png")
|
|
func:DrawGraphRectCenter(cloud_x[i + 1] - clearMove, cloud_y[i + 1], cloud_width * i, cloud_height, cloud_width, cloud_height, "Cloud.png")
|
|
end
|
|
|
|
if commonCounter >= mountainAppearValue and isClear[0] then
|
|
quadrant500 = shineCounter % 500
|
|
|
|
for i = 0, shine_count - 1 do
|
|
|
|
--shineCounter
|
|
if (i < 2 and shineCounter >= 500) or (i >= 2 and shineCounter < 500) then
|
|
func:SetOpacity(0, "Shine.png")
|
|
elseif quadrant500 >= 100 and quadrant500 <= 500 - 100 then
|
|
func:SetOpacity(255, "Shine.png")
|
|
else
|
|
func:SetOpacity((255 * math.min(quadrant500, 500 - quadrant500)) / 100, "Shine.png")
|
|
end
|
|
func:SetScale(shine_size[i + 1], shine_size[i + 1], "Shine.png")
|
|
|
|
if p1IsBlue then
|
|
func:DrawGraphCenter(shine_x[2][i + 1], shine_y[2][i + 1], "Shine.png")
|
|
else
|
|
func:DrawGraphCenter(shine_x[1][i + 1], shine_y[1][i + 1], "Shine.png")
|
|
end
|
|
|
|
end
|
|
|
|
if commonCounter <= mountainAppearValue + 1000 then
|
|
for i = 0, work_count - 1 do
|
|
if commonCounter <= mountainAppearValue + 255 then
|
|
tmpTimer = commonCounter - mountainAppearValue
|
|
func:SetOpacity(tmpTimer, "Work/"..tostring(i)..".png")
|
|
func:SetScale(0.6 * (tmpTimer / 225), 0.6 * (tmpTimer / 225), "Work/"..tostring(i)..".png")
|
|
else
|
|
tmpTimer = math.max(0, (2 * 255) - (commonCounter - mountainAppearValue - 255))
|
|
func:SetOpacity(tmpTimer, "Work/"..tostring(i)..".png")
|
|
func:SetScale(0.6, 0.6, "Work/"..tostring(i)..".png")
|
|
end
|
|
|
|
if p1IsBlue then
|
|
func:DrawGraphCenter(work_x[2][i + 1], work_y[2][i + 1], "Work/"..tostring(i)..".png")
|
|
else
|
|
func:DrawGraphCenter(work_x[1][i + 1], work_y[1][i + 1], "Work/"..tostring(i)..".png")
|
|
end
|
|
end
|
|
else
|
|
for i = 0, work_count - 1 do
|
|
tmpStamp = worksTimeStamp[i + 1]
|
|
if workCounter <= tmpStamp + 255 then
|
|
tmpTimer = workCounter - tmpStamp
|
|
func:SetOpacity(tmpTimer, "Work/"..tostring(i)..".png")
|
|
func:SetScale(0.6 * (tmpTimer / 225), 0.6 * (tmpTimer / 225), "Work/"..tostring(i)..".png")
|
|
else
|
|
tmpTimer = math.max(0, (2 * 255) - (workCounter - tmpStamp - 255))
|
|
func:SetOpacity(tmpTimer / 2, "Work/"..tostring(i)..".png")
|
|
func:SetScale(0.6 , 0.6, "Work/"..tostring(i)..".png")
|
|
end
|
|
|
|
if p1IsBlue then
|
|
func:DrawGraphCenter(work_x[2][i + 1], work_y[2][i + 1], "Work/"..tostring(i)..".png")
|
|
else
|
|
func:DrawGraphCenter(work_x[1][i + 1], work_y[1][i + 1], "Work/"..tostring(i)..".png")
|
|
end
|
|
end
|
|
end
|
|
end
|
|
elseif playerCount == 2 then
|
|
|
|
for i = 0, 1 do
|
|
|
|
if isClear[i] then
|
|
func:SetOpacity(gaugeAnimFactors, "Background_1.png")
|
|
else
|
|
func:SetOpacity(0, "Background_1.png")
|
|
end
|
|
|
|
func:DrawRectGraph((bg_width / 2) * i, 0, (bg_width / 2) * i, 0, (bg_width / 2), bg_height, "Background_"..tostring(2 * i)..".png")
|
|
func:DrawRectGraph((bg_width / 2) * i, 0, (bg_width / 2) * i, 0, (bg_width / 2), bg_height, "Background_1.png")
|
|
end
|
|
else
|
|
|
|
drawCount = math.max(playerCount, 4)
|
|
for i = 0, drawCount - 1 do
|
|
index = i + 1
|
|
if i == 0 then
|
|
index = 0
|
|
end
|
|
|
|
if isClear[i] then
|
|
func:SetOpacity(gaugeAnimFactors, "Background_1.png")
|
|
else
|
|
func:SetOpacity(0, "Background_1.png")
|
|
end
|
|
|
|
func:DrawRectGraph((bg_width / drawCount) * i, 0, (bg_width / drawCount) * i, 0, (bg_width / drawCount), bg_height, "Background_"..tostring(index)..".png")
|
|
func:DrawRectGraph((bg_width / drawCount) * i, 0, (bg_width / drawCount) * i, 0, (bg_width / drawCount), bg_height, "Background_1.png")
|
|
end
|
|
end
|
|
end
|