commit f55b1823f0671a6c2bcd80471c645ec8f9ef936f Author: Juan Date: Wed Jul 23 22:23:38 2025 -0400 initial commit diff --git a/assets/fonts/Born2bSportyFS.otf b/assets/fonts/Born2bSportyFS.otf new file mode 100644 index 0000000..958b8b4 Binary files /dev/null and b/assets/fonts/Born2bSportyFS.otf differ diff --git a/assets/images/cleaver/cleaver-charged.png b/assets/images/cleaver/cleaver-charged.png new file mode 100644 index 0000000..a0258a1 Binary files /dev/null and b/assets/images/cleaver/cleaver-charged.png differ diff --git a/assets/images/cleaver/cleaver-chop.png b/assets/images/cleaver/cleaver-chop.png new file mode 100644 index 0000000..60b00a1 Binary files /dev/null and b/assets/images/cleaver/cleaver-chop.png differ diff --git a/assets/images/cleaver/cleaver-idle.png b/assets/images/cleaver/cleaver-idle.png new file mode 100644 index 0000000..bba8d1c Binary files /dev/null and b/assets/images/cleaver/cleaver-idle.png differ diff --git a/assets/images/cleaver/cleaver-windup.png b/assets/images/cleaver/cleaver-windup.png new file mode 100644 index 0000000..43bfeac Binary files /dev/null and b/assets/images/cleaver/cleaver-windup.png differ diff --git a/assets/images/tiles/chop-floor-tile.png b/assets/images/tiles/chop-floor-tile.png new file mode 100644 index 0000000..f621fea Binary files /dev/null and b/assets/images/tiles/chop-floor-tile.png differ diff --git a/assets/images/ui/chop - ui.png b/assets/images/ui/chop - ui.png new file mode 100644 index 0000000..3637de3 Binary files /dev/null and b/assets/images/ui/chop - ui.png differ diff --git a/assets/images/ui/chopping-bottom-bar.png b/assets/images/ui/chopping-bottom-bar.png new file mode 100644 index 0000000..2fd60b2 Binary files /dev/null and b/assets/images/ui/chopping-bottom-bar.png differ diff --git a/assets/images/ui/chopping-profitloss-bar.png b/assets/images/ui/chopping-profitloss-bar.png new file mode 100644 index 0000000..1604d93 Binary files /dev/null and b/assets/images/ui/chopping-profitloss-bar.png differ diff --git a/conf.lua b/conf.lua new file mode 100644 index 0000000..a3e5668 --- /dev/null +++ b/conf.lua @@ -0,0 +1,11 @@ +-- conf.lua +function love.conf(t) + t.title = "Mr Meat" + t.version = "11.3" + t.console = true + + t.window.width = 640 + t.window.height = 360 + t.window.resizable = true + t.window.fullscreen = false +end \ No newline at end of file diff --git a/main.lua b/main.lua new file mode 100644 index 0000000..fd19deb --- /dev/null +++ b/main.lua @@ -0,0 +1,115 @@ +-- 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 \ No newline at end of file