370 lines
12 KiB
Lua
370 lines
12 KiB
Lua
local r = 75
|
|
local edge = 5
|
|
|
|
local x = -480 + r + edge
|
|
local y = 270 - r - edge
|
|
|
|
local x2 = 480 - r - edge
|
|
local y2 = 270 - r - edge
|
|
|
|
local verticalOffset = math.pi/2
|
|
|
|
local timeSegments = 60
|
|
local timeSegmentRadius = math.pi*2 / timeSegments
|
|
local timeDividerRadius = timeSegmentRadius / 2
|
|
|
|
local lg = love.graphics
|
|
|
|
--[[
|
|
local function brighten(color)
|
|
if color[cycle] == true then
|
|
if color[1] < 251 then
|
|
color[1] = color[1] + 5
|
|
else
|
|
color[1] = 255
|
|
end
|
|
if color[2] < 251 then
|
|
color[2] = color[2] + 5
|
|
else
|
|
color[2] = 255
|
|
end
|
|
if color[3] < 251 then
|
|
color[3] = color[3] + 5
|
|
else
|
|
color[3] = 255
|
|
end
|
|
if color[1] == 255 and color[2] == 255 and color[3] == 255 then
|
|
color[cycle] = false
|
|
end
|
|
else
|
|
if color[1] > 4 then
|
|
color[1] = color[1] - 5
|
|
else
|
|
color[1] = 0
|
|
end
|
|
if color[2] > 4 then
|
|
color[2] = color[2] - 5
|
|
else
|
|
color[2] = 0
|
|
end
|
|
if color[3] > 4 then
|
|
color[3] = color[3] - 5
|
|
else
|
|
color[3] = 0
|
|
end
|
|
if color[1] == 0 and color[2] == 0 and color[3] == 0 then
|
|
color[cycle] = true
|
|
end
|
|
end
|
|
lg.setColor(color)
|
|
return color
|
|
end
|
|
--]]
|
|
|
|
return function(stats)
|
|
--[[ for seeing warnings
|
|
stats.ammo = 3
|
|
stats.fuel = 2
|
|
stats.supplies = 1
|
|
stats.water = 4
|
|
stats.food = 5
|
|
stats.metal = 1
|
|
stats.ore = 2
|
|
--]]
|
|
local tCalc = stats.time * 10
|
|
stats.time = math.floor(stats.time)
|
|
|
|
lg.setColor(10, 20, 30)
|
|
for i=1,60 do
|
|
lg.arc("fill", x, y, r, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
--local timeColor = {165, 52, 0, cycle = true}
|
|
lg.setColor(165, 52, 0)
|
|
if stats.time > 120 then
|
|
lg.setColor(255, 210, 110)
|
|
for i=1,60 do
|
|
lg.arc("fill", x, y, r, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
--lg.setColor(40, 60, 100)
|
|
if tCalc%32 < 16 then
|
|
lg.setColor(165, 52, 0)
|
|
else
|
|
lg.setColor(0, 45, 145)
|
|
end
|
|
--lg.setColor(0, 45, 145)
|
|
for i=1,(stats.time-120)/5+1 do
|
|
lg.arc("fill", x, y, r, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
elseif stats.time > 60 then
|
|
for i=1,60 do
|
|
lg.arc("fill", x, y, r, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
lg.setColor(255, 210, 110)
|
|
for i=1,stats.time-60 do
|
|
--timeColor = brighten(timeColor)
|
|
lg.arc("fill", x, y, r, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
elseif stats.time > 0 then
|
|
for i=1,stats.time do
|
|
lg.arc("fill", x, y, r, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
else
|
|
for i=0,stats.time+1,-1 do
|
|
lg.arc("fill", x, y, r, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
lg.setColor(0, 0, 0)
|
|
lg.circle("fill", x, y, r*4/5 + edge/2)
|
|
|
|
if stats.ammo < 2 then
|
|
if tCalc%4 < 2 then
|
|
lg.setColor(10, 20, 30)
|
|
for i=1,60 do
|
|
lg.arc("fill", x, y, r*4/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
else
|
|
lg.setColor(10, 20, 30)
|
|
for i=1,60 do
|
|
lg.arc("fill", x, y, r*4/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
if stats.ammo < 6 then
|
|
if tCalc%8 < 4 then
|
|
lg.setColor(255, 0, 0)
|
|
for i=1,stats.ammo do
|
|
lg.arc("fill", x, y, r*4/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
else
|
|
lg.setColor(255, 0, 0)
|
|
for i=1,stats.ammo do
|
|
lg.arc("fill", x, y, r*4/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
lg.setColor(0, 0, 0)
|
|
lg.circle("fill", x, y, r*3/5 + edge/2)
|
|
|
|
---[[tmp to see warnings]] stats.fuel = 1
|
|
if stats.fuel < 2 then
|
|
if (tCalc+1)%4 < 2 then
|
|
lg.setColor(10, 20, 30)
|
|
for i=1,60 do
|
|
lg.arc("fill", x, y, r*3/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
else
|
|
lg.setColor(10, 20, 30)
|
|
for i=1,60 do
|
|
lg.arc("fill", x, y, r*3/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
if stats.fuel < 6 then
|
|
if (tCalc+1)%8 < 4 then
|
|
lg.setColor(255, 255, 0)
|
|
for i=1,stats.fuel do
|
|
lg.arc("fill", x, y, r*3/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
else
|
|
lg.setColor(255, 255, 0)
|
|
for i=1,stats.fuel do
|
|
lg.arc("fill", x, y, r*3/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
lg.setColor(0, 0, 0)
|
|
lg.circle("fill", x, y, r*2/5 + edge/2)
|
|
|
|
---[[tmp to see warnings]] stats.supplies = 1
|
|
if stats.supplies < 2 then
|
|
if (tCalc+2)%4 < 2 then
|
|
lg.setColor(10, 20, 30)
|
|
for i=1,60 do
|
|
lg.arc("fill", x, y, r*2/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
else
|
|
lg.setColor(10, 20, 30)
|
|
for i=1,60 do
|
|
lg.arc("fill", x, y, r*2/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
if stats.supplies < 6 then
|
|
if (tCalc+2)%8 < 4 then
|
|
lg.setColor(0, 255, 255)
|
|
for i=1,stats.supplies do
|
|
lg.arc("fill", x, y, r*2/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
else
|
|
lg.setColor(0, 255, 255)
|
|
for i=1,stats.supplies do
|
|
lg.arc("fill", x, y, r*2/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
lg.setColor(0, 0, 0)
|
|
lg.circle("fill", x, y, r*1/5 + edge/2)
|
|
|
|
--[[
|
|
1-4 on first dial, main dial
|
|
5-8 on second dial
|
|
|
|
1 Time orange
|
|
2 Ammo red
|
|
3 Fuel yellow
|
|
4 Supplies teal
|
|
|
|
5 Water blue
|
|
6 Food green
|
|
7 Metal silver
|
|
8 Ore brown
|
|
]]
|
|
|
|
---[[tmp to see warnings]] stats.water = 1
|
|
if stats.water < 2 then
|
|
if (tCalc+3)%4 < 2 then
|
|
lg.setColor(10, 20, 30)
|
|
for i=1,60 do
|
|
lg.arc("fill", x2, y2, r, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
else
|
|
lg.setColor(10, 20, 30)
|
|
for i=1,60 do
|
|
lg.arc("fill", x2, y2, r, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
if stats.water < 6 then
|
|
if (tCalc+3)%8 < 4 then
|
|
lg.setColor(0, 0, 255)
|
|
for i=1,stats.water do
|
|
lg.arc("fill", x2, y2, r, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
else
|
|
lg.setColor(0, 0, 255)
|
|
for i=1,stats.water do
|
|
lg.arc("fill", x2, y2, r, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
lg.setColor(0, 0, 0)
|
|
lg.circle("fill", x2, y2, r*4/5 + edge/2)
|
|
|
|
---[[tmp to see warnings]] stats.food = 1
|
|
if stats.food < 2 then
|
|
if tCalc%4 < 2 then
|
|
lg.setColor(10, 20, 30)
|
|
for i=1,60 do
|
|
lg.arc("fill", x2, y2, r*4/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
else
|
|
lg.setColor(10, 20, 30)
|
|
for i=1,60 do
|
|
lg.arc("fill", x2, y2, r*4/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
if stats.food < 6 then
|
|
if tCalc%8 < 4 then
|
|
lg.setColor(0, 160, 0)
|
|
for i=1,stats.food do
|
|
lg.arc("fill", x2, y2, r*4/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
else
|
|
lg.setColor(0, 160, 0)
|
|
for i=1,stats.food do
|
|
lg.arc("fill", x2, y2, r*4/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
lg.setColor(0, 0, 0)
|
|
lg.circle("fill", x2, y2, r*3/5 + edge/2)
|
|
|
|
---[[tmp to see warnings]] stats.metal = 1
|
|
if stats.metal < 2 then
|
|
if (tCalc+1)%4 < 2 then
|
|
lg.setColor(10, 20, 30)
|
|
for i=1,60 do
|
|
lg.arc("fill", x2, y2, r*3/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
else
|
|
lg.setColor(10, 20, 30)
|
|
for i=1,60 do
|
|
lg.arc("fill", x2, y2, r*3/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
if stats.metal < 6 then
|
|
if (tCalc+1)%8 < 4 then
|
|
lg.setColor(100, 100, 100)
|
|
for i=1,stats.metal do
|
|
lg.arc("fill", x2, y2, r*3/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
else
|
|
lg.setColor(100, 100, 100)
|
|
for i=1,stats.metal do
|
|
lg.arc("fill", x2, y2, r*3/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
lg.setColor(0, 0, 0)
|
|
lg.circle("fill", x2, y2, r*2/5 + edge/2)
|
|
|
|
---[[tmp to see warnings]] stats.ore = 1
|
|
if stats.ore < 2 then
|
|
if (tCalc+2)%4 < 2 then
|
|
lg.setColor(10, 20, 30)
|
|
for i=1,60 do
|
|
lg.arc("fill", x2, y2, r*2/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
else
|
|
lg.setColor(10, 20, 30)
|
|
for i=1,60 do
|
|
lg.arc("fill", x2, y2, r*2/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
if stats.ore < 7 then
|
|
if (tCalc+2)%8 < 4 then
|
|
lg.setColor(107, 66, 38)
|
|
for i=1,stats.ore do
|
|
lg.arc("fill", x2, y2, r*2/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
else
|
|
lg.setColor(107, 66, 38)
|
|
for i=1,stats.ore do
|
|
lg.arc("fill", x2, y2, r*2/5 - edge/2, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset)
|
|
end
|
|
end
|
|
lg.setColor(0, 0, 0)
|
|
lg.circle("fill", x2, y2, r*1/5 + edge/2)
|
|
|
|
--lg.setColor(255, 255, 255)
|
|
if stats.time < 0 then
|
|
lg.setColor(255, 102, 0)
|
|
elseif stats.time < 6 then
|
|
if tCalc%4 < 2 then
|
|
lg.setColor(255, 102, 0)
|
|
else
|
|
lg.setColor(255, 255, 255)
|
|
end
|
|
elseif stats.time < 31 then
|
|
if tCalc%8 < 4 then
|
|
lg.setColor(255, 102, 0)
|
|
else
|
|
lg.setColor(255, 255, 255)
|
|
end
|
|
else
|
|
if tCalc%16 < 8 then
|
|
lg.setColor(255, 255, 255)
|
|
else
|
|
lg.setColor(255, 210, 110)
|
|
--lg.setColor(255, 102, 0)
|
|
end
|
|
end
|
|
--stats.time = math.floor(stats.time)
|
|
local font = lg.getFont();
|
|
lg.print(stats.time, x - font:getWidth(stats.time)/2, y - font:getHeight()/2)
|
|
end
|