From b4fa1a6d84b0c0cdae0cec6f728d1a1e49f2d35e Mon Sep 17 00:00:00 2001 From: Paul Liverman Date: Thu, 7 May 2015 01:49:00 -0700 Subject: [PATCH] woo stuff fancy --- screenshots/Resources.png | Bin 0 -> 31326 bytes screenshots/The Clock.png | Bin 0 -> 3696 bytes src/hud.lua | 106 +++++++++++++++++++++++++++++++++ src/main.lua | 119 ++++++++++++++++++++++++++++++++++++++ src/ships/Resources.lua | 19 ++++++ src/ships/Ship.lua | 2 + 6 files changed, 246 insertions(+) create mode 100644 screenshots/Resources.png create mode 100644 screenshots/The Clock.png create mode 100644 src/hud.lua diff --git a/screenshots/Resources.png b/screenshots/Resources.png new file mode 100644 index 0000000000000000000000000000000000000000..a46a1af3980bb61314f04bbe05ab860416ae3a3c GIT binary patch literal 31326 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 VN76q)P3RdrtnIC?Z`uE^{|k3~Xo~;< literal 0 HcmV?d00001 diff --git a/screenshots/The Clock.png b/screenshots/The Clock.png new file mode 100644 index 0000000000000000000000000000000000000000..26e7942011ca655d1de3fbfd7e4b77cba051b54c GIT binary patch literal 3696 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 uRx 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) + + 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 + + lg.setColor(0, 0, 0) + lg.circle("fill", x, y, r*3/5 + edge/2) + + 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 + + lg.setColor(0, 0, 0) + lg.circle("fill", x, y, r*2/5 + edge/2) + + lg.setColor(0, 0, 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 + + 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 blue ? + + 5 Water teal ? + 6 Food green + 7 Metal silver + 8 Ore brown + ]] + + lg.setColor(0, 255, 255) + for i=1,stats.water do + lg.arc("fill", x2, y2, r, (i-1)*timeSegmentRadius - verticalOffset, i*timeSegmentRadius - timeDividerRadius - verticalOffset) + end + + lg.setColor(0, 0, 0) + lg.circle("fill", x2, y2, r*4/5 + edge/2) + + lg.setColor(0, 255, 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 + + lg.setColor(0, 0, 0) + lg.circle("fill", x2, y2, r*3/5 + edge/2) + + 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 + + lg.setColor(0, 0, 0) + lg.circle("fill", x2, y2, r*2/5 + edge/2) + + 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 + + lg.setColor(0, 0, 0) + lg.circle("fill", x2, y2, r*1/5 + edge/2) + + lg.setColor(255, 255, 255) + lg.print(stats.time, x, y) +end diff --git a/src/main.lua b/src/main.lua index b1749fe..21d616c 100644 --- a/src/main.lua +++ b/src/main.lua @@ -9,6 +9,8 @@ local scale = 8 local images = {} local fleet = {} +local hud = require "hud" + local bsg = require "ships.bsg" local viper = require "ships.viper" @@ -31,6 +33,121 @@ function love.load() end end +local timer = 0 +local stats = { + time = 60, + ammo = 40, + fuel = 55, + supplies = 10, + water = 30, + food = 40, + metal = 60, + ore = 24 +} +local function getStats() + local ammo = 0 + local fuel = 0 + local supplies = 0 + local water = 0 + local food = 0 + local metal = 0 + local ore = 0 + + local maxAmmo = 0 + local maxFuel = 0 + local maxSupplies = 0 + local maxWater = 0 + local maxFood = 0 + local maxMetal = 0 + local maxOre = 0 + + for i=1,#fleet do + ammo = ammo + fleet[i].Resources.ammo + fuel = fuel + fleet[i].Resources.fuel + supplies = supplies + fleet[i].Resources.supplies + water = water + fleet[i].Resources.water + food = food + fleet[i].Resources.food + metal = metal + fleet[i].Resources.metal + ore = ore + fleet[i].Resources.ore + + maxAmmo = maxAmmo + fleet[i].Resources.maxAmmo + maxFuel = maxFuel + fleet[i].Resources.maxFuel + maxSupplies = maxSupplies + fleet[i].Resources.maxSupplies + maxWater = maxWater + fleet[i].Resources.maxWater + maxFood = maxFood + fleet[i].Resources.maxFood + maxMetal = maxMetal + fleet[i].Resources.maxMetal + maxOre = maxOre + fleet[i].Resources.maxOre + end + + ammo = ammo * 60 / maxAmmo + fuel = fuel * 60 / maxFuel + supplies = supplies * 60 / maxSupplies + water = water * 60 / maxWater + food = food * 60 / maxFood + metal = metal * 60 / maxMetal + ore = ore * 60 / maxOre + + if ammo > 0 and ammo < 1 then + ammo = 1 + end + if fuel > 0 and fuel < 1 then + fuel = 1 + end + if supplies > 0 and supplies < 1 then + supplies = 1 + end + if water > 0 and water < 1 then + water = 1 + end + if food > 0 and food < 1 then + food = 1 + end + if metal > 0 and metal < 1 then + metal = 1 + end + if ore > 0 and ore < 1 then + ore = 1 + end + + return { + ammo = math.floor(ammo), + fuel = math.floor(fuel), + supplies = math.floor(supplies), + water = math.floor(water), + food = math.floor(food), + metal = math.floor(metal), + ore = math.floor(ore) + } +end +local timing = -60 +function love.update(dt) + timer = timer + dt + if timer >= 1 then + timer = timer - 1 + --stat = current * 60 / max + stats = getStats() + --[[ + stats = { + time = math.random(0, 60), + ammo = math.random(0, 60), + fuel = math.random(0, 60), + supplies = math.random(0, 60), + water = math.random(0, 60), + food = math.random(0, 60), + metal = math.random(0, 60), + ore = math.random(0, 60) + } + --]] + end + + timing = timing + dt + if timing >= 60 then + timing = timing -120 + end + + stats.time = math.floor(timing) --TMP +end + function love.draw() lg.translate(hx, hy) @@ -44,6 +161,8 @@ function love.draw() lg.setColor(220, 180, 0) lg.point(selected.x * scale, selected.y * scale) end + + hud(stats) end function love.keypressed(key, unicode) diff --git a/src/ships/Resources.lua b/src/ships/Resources.lua index 057a080..1b7a1a5 100644 --- a/src/ships/Resources.lua +++ b/src/ships/Resources.lua @@ -36,6 +36,25 @@ function Resources:initialize() self.crewUse = 0 end +function Resources:update(dt, engineStatus) + self.ammo = self.ammo - self.ammoUse * dt + if engineStatus == "idle" then + self.fuel = self.fuel - self.fuelUseIdle * dt + elseif engineStatus == "moving" then + self.fuel = self.fuel - self.fuelUseMoving * dt + else + error("Invalid engineStatus!") + end + self.supplies = self.supplies - self.suppliesUse * dt + self.water = self.water - self.waterUse * dt + self.food = self.food - self.foodUse * dt + self.metal = self.metal - self.metalUse * dt + self.ore = self.ore - self.oreUse * dt + self.crew = self.crew - self.crewUse * dt + + --TODO check if running out of anything, and do whatever is appropriate +end + function Resources:maxEverything() self.ammo = self.maxAmmo self.fuel = self.maxFuel diff --git a/src/ships/Ship.lua b/src/ships/Ship.lua index 9bd8326..84974f0 100644 --- a/src/ships/Ship.lua +++ b/src/ships/Ship.lua @@ -24,6 +24,7 @@ function Ship:initialize(x, y, rotation) self.dockedTo = false + self.engineStatus = "idle" self.Resources = Resources() end @@ -77,6 +78,7 @@ function Ship:moveTo(x, y) end function Ship:update(dt) + self.Resources:update(dt, self.engineStatus) --check our speed, see how far along the "line" we can go, go there -- if reached destination ... WELL SHIT DEST NEEDS TO BE ABLE TO KNOW IF IS SHIP OR WHATEVER end