function love.load() -- font sizes med_font = love.graphics.newFont(32) big_font = love.graphics.newFont(128) -- string value upgrade_per_click = 1 price_upgrade1 = 30 price_upgrade2 = 7 price_upgrade3 = 50 upgrade_per_second = 0 counter = 5 counter_2 = 1 timer = 0 timer_2 = 0 X2_active = false timer_2_initiated = false button_text1 = "+" .. tostring(upgrade_per_click) button_text2 = "+1 extra clicks, price: " .. tostring(price_upgrade1) button_text3 = "+1 extra clicks per second, price: " .. tostring(price_upgrade2) button_text4 = "X2 clicks for 15 seconds, price: " .. tostring(price_upgrade3) -- title love.window.setTitle("The Best Game EVER!!!") -- number value number_value = 0 -- button table button = {} button.width = 300 button.height = 75 button.x = 400 - button.width/2 button.y = 300 button.label = button_text1 button.hovered = false -- button upgrade 1 table button_upgrade1 = {} button_upgrade1.width = 200 button_upgrade1.height = 175 button_upgrade1.x = 20 button_upgrade1.y = 400 button_upgrade1.label = button_text2 button_upgrade1.hovered = false -- button upgrade 2 table button_upgrade2 = {} button_upgrade2.width = 200 button_upgrade2.height = 175 button_upgrade2.x = 400 - button_upgrade2.width/2 button_upgrade2.y = 400 button_upgrade2.label = button_text3 button_upgrade2.hovered = false -- button upgrade 3 table button_upgrade3 = {} button_upgrade3.width = 200 button_upgrade3.height = 175 button_upgrade3.x = 580 button_upgrade3.y = 400 button_upgrade3.label = button_text4 button_upgrade3.hovered = false end function love.update(dt) -- get mouse cords mouseX, mouseY = love.mouse.getPosition() timer = timer + 1 -- for click per second if timer == 60 then timer = 0 number_value = number_value + upgrade_per_second end -- X2 boost logic if timer_2_initiated and not x2_active then x2_active = true timer_2 = 0 upgrade_per_click = upgrade_per_click * 2 upgrade_per_second = upgrade_per_second * 2 button.label = "+" .. tostring(upgrade_per_click) end if x2_active then timer_2 = timer_2 + dt if timer_2 >= 15 then -- restore x2_active = false timer_2_initiated = false upgrade_per_click = upgrade_per_click / 2 upgrade_per_second = upgrade_per_second / 2 button.label = "+" .. tostring(upgrade_per_click) end end -- check when mouse is hovered if (mouseX > button.x and mouseX < button.x + button.width and mouseY > button.y and mouseY < button.y + button.height) then button.hovered = true else button.hovered = false end if (mouseX > button_upgrade1.x and mouseX < button_upgrade1.x + button_upgrade1.width and mouseY > button_upgrade1.y and mouseY < button_upgrade1.y + button_upgrade1.height) then button_upgrade1.hovered = true else button_upgrade1.hovered = false end if (mouseX > button_upgrade2.x and mouseX < button_upgrade2.x + button_upgrade2.width and mouseY > button_upgrade2.y and mouseY < button_upgrade2.y + button_upgrade2.height) then button_upgrade2.hovered = true else button_upgrade2.hovered = false end if (mouseX > button_upgrade3.x and mouseX < button_upgrade3.x + button_upgrade3.width and mouseY > button_upgrade3.y and mouseY < button_upgrade3.y + button_upgrade3.height) then button_upgrade3.hovered = true else button_upgrade3.hovered = false end end function love.draw() -- background color love.graphics.setBackgroundColor(0, 0.2, 0.2) -- draw hover if button.hovered == true then -- draw highlited 1 love.graphics.setColor(255, 255, 255, 0.60) love.graphics.rectangle("fill", button.x, button.y, button.width, button.height) else -- draw button love.graphics.setColor(255, 255, 255, 0.40) love.graphics.rectangle("fill", button.x, button.y, button.width, button.height) end -- draw click if (button.hovered == true and love.mouse.isDown(1)) then love.graphics.setColor(255, 255, 255, 1) love.graphics.rectangle("fill", button.x, button.y, button.width, button.height) else love.graphics.setColor(255, 255, 255, 0.40) love.graphics.rectangle("fill", button.x, button.y, button.width, button.height) end --------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------- -- draw hover if button_upgrade1.hovered == true then -- draw highlited 1 love.graphics.setColor(255, 255, 255, 0.60) love.graphics.rectangle("fill", button_upgrade1.x, button_upgrade1.y, button_upgrade1.width, button_upgrade1.height) else -- draw button love.graphics.setColor(255, 255, 255, 0.40) love.graphics.rectangle("fill", button_upgrade1.x, button_upgrade1.y, button_upgrade1.width, button_upgrade1.height) end -- draw click if (button_upgrade1.hovered == true and love.mouse.isDown(1)) then love.graphics.setColor(255, 255, 255, 1) love.graphics.rectangle("fill", button_upgrade1.x, button_upgrade1.y, button_upgrade1.width, button_upgrade1.height) else love.graphics.setColor(255, 255, 255, 0.40) love.graphics.rectangle("fill", button_upgrade1.x, button_upgrade1.y, button_upgrade1.width, button_upgrade1.height) end ------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------- -- draw hover if button_upgrade3.hovered == true then -- draw highlited 1 love.graphics.setColor(255, 255, 255, 0.60) love.graphics.rectangle("fill", button_upgrade3.x, button_upgrade3.y, button_upgrade3.width, button_upgrade3.height) else -- draw button love.graphics.setColor(255, 255, 255, 0.40) love.graphics.rectangle("fill", button_upgrade3.x, button_upgrade3.y, button_upgrade3.width, button_upgrade3.height) end -- draw click if (button_upgrade3.hovered == true and love.mouse.isDown(1)) then love.graphics.setColor(255, 255, 255, 1) love.graphics.rectangle("fill", button_upgrade3.x, button_upgrade3.y, button_upgrade3.width, button_upgrade3.height) else love.graphics.setColor(255, 255, 255, 0.40) love.graphics.rectangle("fill", button_upgrade3.x, button_upgrade3.y, button_upgrade3.width, button_upgrade3.height) end ------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------- -- draw hover if button_upgrade2.hovered == true then -- draw highlited 1 love.graphics.setColor(255, 255, 255, 0.60) love.graphics.rectangle("fill", button_upgrade2.x, button_upgrade2.y, button_upgrade2.width, button_upgrade2.height) else -- draw button love.graphics.setColor(255, 255, 255, 0.40) love.graphics.rectangle("fill", button_upgrade2.x, button_upgrade2.y, button_upgrade2.width, button_upgrade2.height) end -- draw click if (button_upgrade2.hovered == true and love.mouse.isDown(1)) then love.graphics.setColor(255, 255, 255, 1) love.graphics.rectangle("fill", button_upgrade2.x, button_upgrade2.y, button_upgrade2.width, button_upgrade2.height) else love.graphics.setColor(255, 255, 255, 0.40) love.graphics.rectangle("fill", button_upgrade2.x, button_upgrade2.y, button_upgrade2.width, button_upgrade2.height) end -- print button label love.graphics.setFont(med_font) love.graphics.setColor(0, 0, 0, 1) love.graphics.printf(button.label, button.x+100, button.y+20, button.width, "left") -- print button upgrade 1 label love.graphics.setFont(med_font) love.graphics.setColor(0, 0, 0, 1) love.graphics.printf(button_upgrade1.label, button_upgrade1.x+15, button_upgrade1.y+20, button_upgrade1.width, "left") -- print button upgrade 2 label love.graphics.setFont(med_font) love.graphics.setColor(0, 0, 0, 1) love.graphics.printf(button_text3, button_upgrade2.x+15, button_upgrade2.y+5, button_upgrade2.width, "left") -- print button upgrade 3 label love.graphics.setFont(med_font) love.graphics.setColor(0, 0, 0, 1) love.graphics.printf(button_text4, button_upgrade3.x+25, button_upgrade3.y+10, button_upgrade3.width-20, "left") -- print number value love.graphics.setFont(big_font) love.graphics.setColor(255, 255, 255, 1) love.graphics.printf(number_value, -100, 40, 1000, "center") -- print X2 time love.graphics.setFont(med_font) love.graphics.printf("2X time: " .. tostring(math.ceil(timer_2)) .. "s/15s", 0, 0, 1000, "left") -- print clicks per second love.graphics.setFont(med_font) love.graphics.printf("Clicks per second: " .. tostring(upgrade_per_second), 0, 35, 1000, "left") end -- button click function (all) function love.mousepressed() if button.hovered == true then number_value = number_value + upgrade_per_click end if button_upgrade1.hovered == true then if timer_2_initiated == false then if number_value >= price_upgrade1 then -- remove number value number_value = number_value - price_upgrade1 -- increase price price_upgrade1 = math.ceil(price_upgrade1 * 1.35) -- increase clicks per click upgrade_per_click = upgrade_per_click + 1 button.label = "+" .. tostring(upgrade_per_click) button_upgrade1.label = "+1 extra clicks, price: " .. tostring(price_upgrade1) else love.window.showMessageBox("The Best Game EVER!!!", "Not enough clicks!", "info", "false") end else love.window.showMessageBox("The Best Game EVER!!!", "Purchases not available in X2 time!", "info", "false") end end if button_upgrade2.hovered == true then if timer_2_initiated == false then if number_value >= price_upgrade2 then -- remove number value number_value = number_value - price_upgrade2 -- increase price price_upgrade2 = math.ceil(price_upgrade2 * 1.35) -- increase clicks per second upgrade_per_second = upgrade_per_second + 1 -- update label button_text3 = "+1 extra clicks per second, price: " .. tostring(price_upgrade2) else love.window.showMessageBox("The Best Game EVER!!!", "Not enough clicks!", "info", "false") end else love.window.showMessageBox("The Best Game EVER!!!", "Purchases not available in X2 time!", "info", "false") end end if button_upgrade3.hovered == true then if timer_2_initiated == false then if number_value >= price_upgrade3 then number_value = number_value - price_upgrade3 price_upgrade3 = math.ceil(price_upgrade3 * 1.5) timer_2_initiated = true -- update label button_text4 = "X2 clicks for 15 seconds, price: " .. tostring(price_upgrade3) else love.window.showMessageBox("The Best Game EVER!!!", "Not enough clicks!", "info", "false") end else love.window.showMessageBox("The Best Game EVER!!!", "Purchases not available in X2 time!", "info", "false") end end end ---------------------------- IDEAS ----------------------------------- -- an upgrade that gives 2x clicks for 30 seconds