diff --git a/audio/theme3.mp3 b/audio/theme3.mp3 index fac94d8..acadab2 100644 Binary files a/audio/theme3.mp3 and b/audio/theme3.mp3 differ diff --git a/main.lua b/main.lua index 5931e77..14c6e1f 100644 --- a/main.lua +++ b/main.lua @@ -68,7 +68,7 @@ craz = 0 AI_LEVEL = 500 isFullscreen = 0 prtext = "Easy" -MAP_TYPE = 2 +MAP_TYPE = 0 difficultyl = 300 req = "pp" ballSet = 200 @@ -445,15 +445,6 @@ function love.load() end ) ) - table.insert( - modeSelectorButtons, - newButton( - "Nuclear Practice", - function() - gameState = "prdiff" - end - ) - ) table.insert( modeSelectorButtons, newButton( @@ -509,6 +500,7 @@ function love.load() function() speedSetter("reset") gameState = "menu" + end ) ) @@ -528,6 +520,7 @@ function love.load() function() AGAINST_AI = 0 gameState = "1serve" + globalState = "base" end ) ) @@ -633,12 +626,13 @@ function startShake(duration, magnitude) end function displayFPS() --love.window.setTitle(love.timer.getFPS()) - love.window.setTitle(gameState .. " " .. gameMode .. " " .. globalState .. " " .. MAP_TYPE) + love.window.setTitle(globalState .. " " .. gameState) if love.keyboard.isDown("space") then player1nukescore = 200 - player1score = 9 - player2score = 9 + player1score = player1score + 0.2 + player2nukescore = 200 end + end function speedControl() @@ -650,6 +644,7 @@ end function love.update(dt) staticanimatorcounter(dt) + musicController('norm', 1) if debug then displayFPS() end diff --git a/main2.lua b/main2.lua index 214e731..47929ae 100644 --- a/main2.lua +++ b/main2.lua @@ -1,4 +1,11 @@ --CALLING OTHER LUA FILES +-- +--THIS IS LEGACY CODE FOR NUCLEAR PONG +-- +--IT WILL *NOT* WORK! +-- +--I ONLY KEEP IT TO SQUASH BUGS HERE AND THERE +-- require 'src/dependencies' io.stdout:setvbuf('no') --CANCELLED ATTEMPETED SHADING (NOT WORKING) diff --git a/mainMenu.lua b/mainMenu.lua index 62a6976..ed450c7 100644 --- a/mainMenu.lua +++ b/mainMenu.lua @@ -78,8 +78,8 @@ function mainMenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, buttons, sounds ev_bx = -400 ev_by = -400 else - ev_bx = locationx - (ev_button_width * 0.5) - ev_by = locationy - (total_height * 0.5) + cursor_y + ev_bx = locationx - (ev_button_width * 0.5) + ev_by = locationy - (total_height * 0.5) + cursor_y end if (button.text == 'Play') and location == 'playercount' then color = {0/255, 255/255, 0/255, 255} else color = {10, 10, 0, 255} @@ -110,22 +110,27 @@ function mainMenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, buttons, sounds local textW = smallfont:getWidth(button.text) local textH = smallfont:getHeight(button.text) if (location == 'control') then + if danger == button.text or danger2 == button.text then + love.graphics.setColor(1,0,0,1) + else + love.graphics.setColor(0,0,0,1) + end if (button.text == "1up") then - love.graphics.print("Player 1 UP: " .. string.upper(p1control.up), smallfont, ev_bx + (ev_button_width * 0.1), ev_by+textH*0.5) + love.graphics.print("P1 UP: " .. string.upper(p1control.up), smallfont, ev_bx + (ev_button_width * 0.1), ev_by+textH*0.5) elseif button.text == '2up' then - love.graphics.print("Player 2 UP: " .. string.upper(p2control.up), smallfont, ev_bx + (ev_button_width * 0.1), ev_by+textH*0.5) + love.graphics.print("P2 UP: " .. string.upper(p2control.up), smallfont, ev_bx + (ev_button_width * 0.1), ev_by+textH*0.5) elseif button.text == '1down' then - love.graphics.print("Player 1 DOWN: " .. string.upper(p1control.down), smallfont, ev_bx + (ev_button_width * 0.1), ev_by+textH*0.5) + love.graphics.print("P1 DOWN: " .. string.upper(p1control.down), smallfont, ev_bx + (ev_button_width * 0.1), ev_by+textH*0.5) elseif button.text == '2down' then - love.graphics.print("Player 2 DOWN: " .. string.upper(p2control.down), smallfont, ev_bx + (ev_button_width * 0.1), ev_by+textH*0.5) + love.graphics.print("P2 DOWN: " .. string.upper(p2control.down), smallfont, ev_bx + (ev_button_width * 0.1), ev_by+textH*0.5) elseif button.text == '1special' then - love.graphics.print("Player 1 SPECIAL: " .. string.upper(p1control.super), smallfont, ev_bx + (ev_button_width * 0.1), ev_by+textH*0.5) + love.graphics.print("P1 SPECIAL: " .. string.upper(p1control.super), smallfont, ev_bx + (ev_button_width * 0.1), ev_by+textH*0.5) elseif button.text == '2special' then - love.graphics.print("Player 2 SPECIAL: " .. string.upper(p2control.super), smallfont, ev_bx + (ev_button_width * 0.1), ev_by+textH*0.5) + love.graphics.print("P2 SPECIAL: " .. string.upper(p2control.super), smallfont, ev_bx + (ev_button_width * 0.1), ev_by+textH*0.5) elseif button.text == '1ct' then - love.graphics.print("Player 1 COUNTER: " .. string.upper(p1control.counter), smallfont, ev_bx + (ev_button_width * 0.1), ev_by+textH*0.5) + love.graphics.print("P1 COUNTER: " .. string.upper(p1control.counter), smallfont, ev_bx + (ev_button_width * 0.1), ev_by+textH*0.5) elseif button.text == '2ct' then - love.graphics.print("Player 2 COUNTER: " .. string.upper(p2control.counter), smallfont, ev_bx + (ev_button_width * 0.1), ev_by+textH*0.5) + love.graphics.print("P2 COUNTER: " .. string.upper(p2control.counter), smallfont, ev_bx + (ev_button_width * 0.1), ev_by+textH*0.5) else love.graphics.print(button.text, smallfont, ev_bx + (ev_button_width * 0.1), ev_by+textH*0.5) @@ -137,15 +142,15 @@ function mainMenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, buttons, sounds elseif button.text == 'snc' then if (nuckemodactive == 1) then love.graphics.setColor(1,0,0,1) - love.graphics.print(synctext, smallfont, VIRTUAL_WIDTH*0.5 - textW*0.5, ev_by+textH*0.5) + love.graphics.print(synctext, smallfont, VIRTUAL_WIDTH*0.5 - textW*0.7, ev_by+textH*0.5) love.graphics.setColor(1,1,1,1) - love.graphics.print(synctext, smallfont, VIRTUAL_WIDTH*0.5 - textW*0.5, ev_by+textH*0.5) + love.graphics.print(synctext, smallfont, VIRTUAL_WIDTH*0.5 - textW*0.7, ev_by+textH*0.5) love.graphics.setColor(0,0,0,1) else love.graphics.print(synctext, smallfont, VIRTUAL_WIDTH*0.45 - textW*0.5, ev_by+textH*0.5) end elseif (button.text == 'ballCount') then - love.graphics.print("Ball Count: " .. maxBalls, smallfont, VIRTUAL_WIDTH*0.5 - textW*0.5, ev_by+textH*0.5) + love.graphics.print("Ball Count: " .. maxBalls, smallfont, VIRTUAL_WIDTH*0.5 - textW*0.7, ev_by+textH*0.5) elseif (button.text == "Ball Speed: ") then if (nuckemodactive == 1) then @@ -156,10 +161,10 @@ function mainMenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, buttons, sounds love.graphics.setColor(0,0,0,1) else - love.graphics.print(button.text .. ballSet, smallfont, VIRTUAL_WIDTH*0.5 - textW*0.5, ev_by+textH*0.5) + love.graphics.print(button.text .. ballSet, smallfont, VIRTUAL_WIDTH*0.5 - textW*0.6, ev_by+textH*0.5) end elseif button.text == 'ptw' then - love.graphics.print("Points to Win: " .. ptw, smallfont,VIRTUAL_WIDTH*0.5 - textW * 1.5, ev_by+textH*0.5) + love.graphics.print("Points to Win: " .. ptw, smallfont,VIRTUAL_WIDTH*0.5 - textW * 2.8, ev_by+textH*0.5) elseif (button.text == 'Silverblade') then love.graphics.print("Difficulty: " .. prtext, smallfont, VIRTUAL_WIDTH*0.5 - textW , ev_by+textH*0.5) else diff --git a/music.lua b/music.lua index b8798f2..0fb9539 100644 --- a/music.lua +++ b/music.lua @@ -1,8 +1,9 @@ function musicController(orders, toggling) if (orders == 'norm') then - if (gameState ~= 'play' and gameState ~= '1serve' and gameState ~= '2serve' and areanuclear == 0) then + if (globalState == 'menu') then sounds['gayTheme']:stop() sounds['gayTheme2']:stop() + sounds['gayTheme3']:stop() sounds['updateMusic']:play() elseif (areanuclear == 1) then sounds['gayTheme']:setVolume(0) @@ -10,18 +11,30 @@ function musicController(orders, toggling) elseif ((gameState == 'play' or gameState == '1serve' or gameState == '2serve') and player1score <= 7 and player2score <= 7 and areanuclear == 0) then sounds['updateMusic']:stop() + sounds['gayTheme2']:stop() + sounds['gayTheme3']:stop() sounds['gayTheme']:setPitch(1) sounds['gayTheme']:setLooping(true) sounds['gayTheme']:setVolume(0.5) sounds['gayTheme']:play() - elseif gameState == 'play' and player1score > 7 or player2score > 7 and areanuclear == 0 then + elseif gameState == 'play' and player1score > ptw-2 or player2score > ptw-2 and areanuclear == 0 then + print(ptw-2) sounds['gayTheme']:stop() + sounds['gayTheme3']:stop() sounds['updateMusic']:stop() sounds['gayTheme2']:setPitch(1) sounds['gayTheme2']:setLooping(true) sounds['gayTheme2']:setVolume(0.5) sounds['gayTheme2']:play() - else + elseif gameState == 'play' and player1score > ptw-4 or player2score > ptw-4 and areanuclear == 0 then + print(ptw-4) + sounds['gayTheme']:stop() + sounds['gayTheme2']:stop() + sounds['updateMusic']:stop() + sounds['gayTheme3']:setPitch(1) + sounds['gayTheme3']:setLooping(true) + sounds['gayTheme3']:setVolume(0.5) + sounds['gayTheme3']:play() end elseif orders ~= nil then diff --git a/roadmap b/roadmap index 8ff8131..e685499 100644 --- a/roadmap +++ b/roadmap @@ -1,2 +1,3 @@ TODO: Change nuclear explosions to be handled by the animatior --COMPLETE -TODO: For the love of god make love.draw limited to drawing only. \ No newline at end of file +TODO: For the love of god make love.draw limited to drawing only. --COMPLETE +TODO: Make up new moves \ No newline at end of file diff --git a/src/baseGame.lua b/src/baseGame.lua index ddf9af0..4b530e3 100644 --- a/src/baseGame.lua +++ b/src/baseGame.lua @@ -7,7 +7,7 @@ function basegame(dt) end speedControl() balancer() - musicController('norm', 1) + if t < shakeDuration then t = t + dt end @@ -85,7 +85,7 @@ function basegame(dt) for i = 1, maxBalls do if ball[i]:collides(player1) then - if (areanuclear == 0 and striken == 1 and (player1score > 8 or player2score > 8)) then + if (areanuclear == 0 and striken == 1 and (player1score > ptw-2 or player2score > ptw-2)) then print("Calling animation") superanimator("tensehit", 1) end @@ -118,6 +118,7 @@ function basegame(dt) sounds["nuclearhit"]:setPitch(1) sounds["nuclearhit"]:play() end + superanimator("tensehit", 1) else if areanuclear == 0 then sounds["beep"]:setPitch(ballSpeed / 250) @@ -128,6 +129,7 @@ function basegame(dt) end end if (striken == 1) then + player1nukescore = player1nukescore * 1.2 if (synctype == 0) then paddle_SPEED = paddle_SPEED * 1.10 @@ -208,7 +210,7 @@ function basegame(dt) shakeDuration = 1 if (areanuclear == 0 and - (striken == 1 and (player1score > 8 or player2score > 8))) + (striken == 1 and (player1score > ptw-2 or player2score > ptw-2))) then superanimator("tensehit", 2) end @@ -229,7 +231,7 @@ function basegame(dt) potentialnuke2 = 0 player2nukescore = 0 potentialstrike2 = 0 - + superanimator("tensehit", 2) if areanuclear == 0 then sounds["striking"]:setPitch(ballSpeed / 250) sounds["striking"]:play() @@ -238,6 +240,7 @@ function basegame(dt) sounds["nuclearhit"]:play() end elseif (striken == 1) then + player2nukescore = player2nukescore * 1.5 if (synctype == 0) then paddle_SPEED = paddle_SPEED * 1.10 @@ -389,7 +392,7 @@ end function debugCheck(dt) if (gameState == "menu") then - updateTEXT = "0.7.1 Chalkboard Update" + updateTEXT = "0.7.2 Chalkboard Update" end dangerChecker() elapsed = elapsed + dt @@ -486,7 +489,7 @@ function powerAvailability() player1reverbav = 0 end end - if (player1nukescore >= 140) and timeIsSlow2 == false and timeIsSlow == false and maxBalls == 1 and ball[1].x < VIRTUAL_WIDTH / 2 then + if (player1nukescore >= 140) and timeIsSlow2 == false and timeIsSlow == false and maxBalls == 1 and ball[1].x < VIRTUAL_WIDTH / 2 and ball[1].dx < 0 then player1reverbav = 1 if love.keyboard.isDown(p1control.counter) then powerControl(1, "special") @@ -529,7 +532,7 @@ function powerAvailability() end end end - if (player2nukescore >= 140) and timeIsSlow == false and timeIsSlow2 == false and maxBalls == 1 and ball[1].x > VIRTUAL_WIDTH / 2 then + if (player2nukescore >= 140) and timeIsSlow == false and timeIsSlow2 == false and maxBalls == 1 and ball[1].x > VIRTUAL_WIDTH / 2 and ball[1].dx > 0 then player2reverbav = 1 if love.keyboard.isDown(p2control.counter) then sounds["time"]:play() @@ -803,7 +806,7 @@ function displayPoints() else love.graphics.print(tostring("READY"), VIRTUAL_WIDTH / 2 - 500, VIRTUAL_HEIGHT / 60) end - elseif (player1reverbav == 1 and potentialnuke1 == 0) then + elseif (player1reverbav == 1 and potentialnuke1 == 0 and maxBalls == 1) then love.graphics.print( tostring( math.floor(player1nukescore) .. "[" .. p1control.super .. "]" .. " [" .. p1control.counter .. "]" @@ -811,7 +814,7 @@ function displayPoints() VIRTUAL_WIDTH / 2 - 500, VIRTUAL_HEIGHT / 60 ) - elseif (potentialnuke1 == 1) then + elseif (potentialnuke1 == 1 and maxBalls == 1) then love.graphics.setColor(255, 0, 0, 255) love.graphics.print( tostring( @@ -821,6 +824,16 @@ function displayPoints() VIRTUAL_HEIGHT / 60 ) love.graphics.setColor(255, 255, 255, 255) + elseif (potentialnuke1 == 1) then + love.graphics.setColor(255, 0, 0, 255) + love.graphics.print( + tostring( + math.floor(player1nukescore) .. "[" .. p1control.super .. "]" + ), + VIRTUAL_WIDTH / 2 - 500, + VIRTUAL_HEIGHT / 60 + ) + love.graphics.setColor(255, 255, 255, 255) else love.graphics.print(tostring(math.floor(player1nukescore)), VIRTUAL_WIDTH / 2 - 500, VIRTUAL_HEIGHT / 60) end @@ -834,18 +847,26 @@ function displayPoints() else love.graphics.print(tostring("READY"), VIRTUAL_WIDTH / 2 + 430, VIRTUAL_HEIGHT / 60) end - elseif (potentialnuke2 == 1) then + elseif (potentialnuke2 == 1 and maxBalls == 1) then + love.graphics.setColor(255, 0, 0, 255) + love.graphics.print( + tostring(math.floor(player2nukescore) .. "[" .. p2control.super .. "] [" .. p2control.counter .. "]"), + VIRTUAL_WIDTH / 2 + 400, + VIRTUAL_HEIGHT / 60 + ) + love.graphics.setColor(255, 255, 255, 255) + elseif (potentialnuke2 == 1 and maxBalls > 1) then love.graphics.setColor(255, 0, 0, 255) love.graphics.print( tostring(math.floor(player2nukescore) .. "[" .. p2control.super .. "]"), VIRTUAL_WIDTH / 2 + 430, VIRTUAL_HEIGHT / 60 ) - love.graphics.setColor(255, 255, 255, 255) - elseif (player2reverbav == 1 and potentialnuke2 == 0) then + love.graphics.setColor(255, 255, 255, 255) + elseif (player2reverbav == 1 and potentialnuke2 == 0 and maxBalls == 1) then love.graphics.print( tostring(math.floor(player2nukescore) .. "[" .. p2control.super .. "] [" .. p2control.counter .. "]"), - VIRTUAL_WIDTH / 2 + 430, + VIRTUAL_WIDTH / 2 + 400, VIRTUAL_HEIGHT / 60 ) else