| @@ -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 | |||
| @@ -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) | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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. | |||
| TODO: For the love of god make love.draw limited to drawing only. --COMPLETE | |||
| TODO: Make up new moves | |||
| @@ -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 | |||