-- main.lua local score = 0 local font local cleaverImages = {} local cleaverState = "idle" local cleaverTimer = 0 local scorePending = false local tileImage local bottomBar local profitLossBar function love.load() font = love.graphics.newFont("assets/fonts/Born2bSportyFS.otf", 32) love.graphics.setFont(font) love.mouse.setVisible(false) -- Hide the default cursor -- Load cleaver images cleaverImages.idle = love.graphics.newImage("assets/images/cleaver/cleaver-idle.png") cleaverImages.windup = love.graphics.newImage("assets/images/cleaver/cleaver-windup.png") cleaverImages.charged = love.graphics.newImage("assets/images/cleaver/cleaver-charged.png") cleaverImages.chop = love.graphics.newImage("assets/images/cleaver/cleaver-chop.png") -- Set initial cleaver image cleaverCurrentImage = cleaverImages.idle -- Load tile image tileImage = love.graphics.newImage("assets/images/tiles/chop-floor-tile.png") -- Load UI images for bottom bar and profit/loss bar bottomBar = love.graphics.newImage("assets/images/ui/chopping-bottom-bar.png") profitLossBar = love.graphics.newImage("assets/images/ui/chopping-profitloss-bar.png") end function love.update(dt) -- Update cleaver state if cleaverState == "windup" then cleaverTimer = cleaverTimer + dt if cleaverTimer >= 0.2 then cleaverState = "charged" cleaverCurrentImage = cleaverImages.charged end elseif cleaverState == "charged" then -- Stay in charged state until mouse is released elseif cleaverState == "chop" then cleaverTimer = cleaverTimer + dt if cleaverTimer >= 0.1 then cleaverState = "idle" cleaverCurrentImage = cleaverImages.idle cleaverTimer = 0 if scorePending then score = score + 1 scorePending = false end end end end function love.draw() -- Draw tile background local tileWidth = tileImage:getWidth() local tileHeight = tileImage:getHeight() local scale = 4 -- Adjust this value to change the tile size for x = 0, love.graphics.getWidth(), tileWidth * scale do for y = 0, love.graphics.getHeight(), tileHeight * scale do love.graphics.draw(tileImage, x, y, 0, scale, scale) end end -- Draw bottom bar and score local bottomBarX = (love.graphics.getWidth() - bottomBar:getWidth()) / 2 local bottomBarY = love.graphics.getHeight() - bottomBar:getHeight() love.graphics.draw(bottomBar, bottomBarX, bottomBarY) -- Draw score on bottom bar local scoreText = "Net Worth: " local scoreValue = "$" .. tostring(score) local scoreTextWidth = font:getWidth(scoreText) local scoreValueWidth = font:getWidth(scoreValue) love.graphics.setColor(0, 0, 0) -- Black love.graphics.print(scoreText, bottomBarX + 20, bottomBarY + (bottomBar:getHeight() - font:getHeight()) / 2 + 15) love.graphics.setColor(0, 0.5, 0) love.graphics.print(scoreValue, bottomBarX + 20 + scoreTextWidth, bottomBarY + (bottomBar:getHeight() - font:getHeight()) / 2 + 15) love.graphics.setColor(1, 1, 1) -- Reset to white -- Draw profit/loss bar at top right love.graphics.draw(profitLossBar, love.graphics.getWidth() - profitLossBar:getWidth() - 10, 10) -- Draw cleaver local x, y = love.mouse.getPosition() love.graphics.draw(cleaverCurrentImage, x - cleaverCurrentImage:getWidth() / 2, y - cleaverCurrentImage:getHeight() / 2) end function love.mousepressed(x, y, button) if button == 1 then -- Left mouse button cleaverState = "windup" cleaverCurrentImage = cleaverImages.windup cleaverTimer = 0 scorePending = false end end function love.mousereleased(x, y, button) if button == 1 then -- Left mouse button if cleaverState == "charged" then cleaverState = "chop" cleaverCurrentImage = cleaverImages.chop cleaverTimer = 0 scorePending = true elseif cleaverState == "windup" then cleaverState = "idle" cleaverCurrentImage = cleaverImages.idle cleaverTimer = 0 end end end