| @@ -36,6 +36,12 @@ function staticanimatorcounter(dt) | |||||
| explosionRange = 0 | explosionRange = 0 | ||||
| end | end | ||||
| end | end | ||||
| if gameState == "done" then | |||||
| if explosionRange < 40 then | |||||
| nuclearanimation = nuclearanimation - dt | |||||
| explosionRange = explosionRange + dt*24 | |||||
| end | |||||
| end | |||||
| if (player1anim) then | if (player1anim) then | ||||
| --print("Effect range: " .. effectRange[0]) | --print("Effect range: " .. effectRange[0]) | ||||
| effectRange[0] = effectRange[0] + dt*24 | effectRange[0] = effectRange[0] + dt*24 | ||||
| @@ -1,9 +1,11 @@ | |||||
| fullScreener = Class{} | fullScreener = Class{} | ||||
| function fullScreener:init(a,b,c,d) | |||||
| function fullScreener:init(a,b,c,d,e,f) | |||||
| self.a = a | self.a = a | ||||
| self.b = b | self.b = b | ||||
| self.c = c | self.c = c | ||||
| self.d = d | |||||
| self.d = d | |||||
| self.e = e | |||||
| self.f = f | |||||
| end | end | ||||
| function fullScreener:toggle(vh, vw) | function fullScreener:toggle(vh, vw) | ||||
| self.a = self.a + 1 | self.a = self.a + 1 | ||||
| @@ -14,6 +16,8 @@ function fullScreener:toggle(vh, vw) | |||||
| if (self.b == 1) then | if (self.b == 1) then | ||||
| self.c = 1 | self.c = 1 | ||||
| self.d = 1 | self.d = 1 | ||||
| self.e = 0 | |||||
| self.f = 0 | |||||
| simpleScale.updateWindow(WINDOW_WIDTH, WINDOW_HEIGHT,{fullscreen = false}) | simpleScale.updateWindow(WINDOW_WIDTH, WINDOW_HEIGHT,{fullscreen = false}) | ||||
| self.b = 0 | self.b = 0 | ||||
| end | end | ||||
| @@ -26,6 +30,8 @@ function fullScreener:toggle(vh, vw) | |||||
| local newHeight = love.graphics.getHeight() | local newHeight = love.graphics.getHeight() | ||||
| self.c = VIRTUAL_WIDTH / newWidth | self.c = VIRTUAL_WIDTH / newWidth | ||||
| self.d = VIRTUAL_HEIGHT / newHeight | self.d = VIRTUAL_HEIGHT / newHeight | ||||
| self.e = math.fmod(newWidth * self.d, VIRTUAL_WIDTH) / 2 | |||||
| self.f = math.fmod(newHeight * self.d, VIRTUAL_HEIGHT) / 2 | |||||
| self.b = 1 | self.b = 1 | ||||
| end | end | ||||
| @@ -15,8 +15,11 @@ doubleclick1 = false | |||||
| doubleclick2 = false | doubleclick2 = false | ||||
| hold1 = false | hold1 = false | ||||
| hold2 = false | hold2 = false | ||||
| debug = true | |||||
| debug = false | |||||
| paused = false | |||||
| androidButtons = {} | androidButtons = {} | ||||
| pauseButtons = {} | |||||
| doneButtons = {} | |||||
| showTouchControls = false | showTouchControls = false | ||||
| --GLOBAL VARIABLES | --GLOBAL VARIABLES | ||||
| frameratecap = 1/60 | frameratecap = 1/60 | ||||
| @@ -72,6 +75,8 @@ nuckemodactive = 0 | |||||
| maxspeed = 700 | maxspeed = 700 | ||||
| DIFFERENCE_X = 1 | DIFFERENCE_X = 1 | ||||
| DIFFERENCE_Y = 1 | DIFFERENCE_Y = 1 | ||||
| OFFSET_X = 0 | |||||
| OFFSET_Y = 0 | |||||
| paddle_SPEED = 200 | paddle_SPEED = 200 | ||||
| textamount = 15 | textamount = 15 | ||||
| AI_STRIKEMOD = 1000 | AI_STRIKEMOD = 1000 | ||||
| @@ -185,50 +190,17 @@ function love.load() | |||||
| newButton( | newButton( | ||||
| "H", | "H", | ||||
| function() | function() | ||||
| if gameState == "start" then | |||||
| if globalState == "base" and gameState ~= "done" then | |||||
| paused = true | |||||
| else | |||||
| resettinggenius() | resettinggenius() | ||||
| paused = false | |||||
| gameState = "menu" | gameState = "menu" | ||||
| ball[1].dx = 1 | ball[1].dx = 1 | ||||
| ball_DIR = 1 | ball_DIR = 1 | ||||
| ball[1].dy = 1 | ball[1].dy = 1 | ||||
| globalState = "menu" | globalState = "menu" | ||||
| hardmanager() | hardmanager() | ||||
| elseif (gameState == "done") then | |||||
| if (player1score > player2score) then | |||||
| gameState = "2serve" | |||||
| potentialnuke1 = 0 | |||||
| potentialnuke2 = 0 | |||||
| striken = 0 | |||||
| if (nuckemodactive == 0) then | |||||
| areanuclear = 0 | |||||
| nuclearanimation = 3 | |||||
| end | |||||
| potentialstrike1 = 0 | |||||
| potentialstrike2 = 0 | |||||
| player1nukescore = 0 | |||||
| player2nukescore = 0 | |||||
| else | |||||
| gameState = "1serve" | |||||
| resettinggenius() | |||||
| for i = 1, maxBalls do | |||||
| ball[i]:reset(i, 1) | |||||
| end | |||||
| end | |||||
| else | |||||
| gameState = "menu" | |||||
| ball[1].dx = 1 | |||||
| ball[1].dy = 1 | |||||
| ball_DIR = 1 | |||||
| globalState = "menu" | |||||
| if (love.math.random(0, 10) == 1) then | |||||
| TEXT = "Nuclear Ching Chong" | |||||
| else | |||||
| TEXT = "Nuclear Pong" | |||||
| end | |||||
| resettinggenius() | |||||
| for i = 1, maxBalls do | |||||
| ball[i]:reset(i) | |||||
| end | |||||
| end | end | ||||
| end | end | ||||
| ) | ) | ||||
| @@ -244,6 +216,103 @@ function love.load() | |||||
| end | end | ||||
| ) | ) | ||||
| ) | ) | ||||
| table.insert( | |||||
| pauseButtons, | |||||
| newButton( | |||||
| "Resume", | |||||
| function() | |||||
| paused = false | |||||
| TEXT = "Let's Continue" | |||||
| end | |||||
| ) | |||||
| ) | |||||
| table.insert( | |||||
| doneButtons, | |||||
| newButton( | |||||
| "Freeplay", | |||||
| function() | |||||
| if player1score > player2score then | |||||
| gameState = "2serve" | |||||
| else | |||||
| gameState = "1serve" | |||||
| end | |||||
| potentialnuke1 = 0 | |||||
| potentialnuke2 = 0 | |||||
| striken = 0 | |||||
| if (nuckemodactive == 0) then | |||||
| areanuclear = 0 | |||||
| nuclearanimation = 3 | |||||
| end | |||||
| potentialstrike1 = 0 | |||||
| potentialstrike2 = 0 | |||||
| player1nukescore = 0 | |||||
| player2nukescore = 0 | |||||
| end | |||||
| ) | |||||
| ) | |||||
| table.insert( | |||||
| doneButtons, | |||||
| newButton( | |||||
| "Menu", | |||||
| function() | |||||
| resettinggenius() | |||||
| TEXT = "Nuclear Pong" | |||||
| paused = false | |||||
| gameState = "menu" | |||||
| ball[1].dx = 1 | |||||
| ball_DIR = 1 | |||||
| ball[1].dy = 1 | |||||
| globalState = "menu" | |||||
| hardmanager() | |||||
| end | |||||
| ) | |||||
| ) | |||||
| if not isAndroid then | |||||
| table.insert( | |||||
| pauseButtons, | |||||
| newButton( | |||||
| "Toggle Fullscreen", | |||||
| function() | |||||
| myscreen:toggle(VIRTUAL_HEIGHT, VIRTUAL_WIDTH) | |||||
| DIFFERENCE_X = myscreen.c | |||||
| DIFFERENCE_Y = myscreen.d | |||||
| OFFSET_X = myscreen.e | |||||
| OFFSET_Y = myscreen.f | |||||
| end | |||||
| ) | |||||
| ) | |||||
| end | |||||
| table.insert( | |||||
| pauseButtons, | |||||
| newButton( | |||||
| "Toggle Music", | |||||
| function() | |||||
| if mute then | |||||
| musicController("mute", 0) | |||||
| else | |||||
| musicController("mute", 1) | |||||
| end | |||||
| end | |||||
| ) | |||||
| ) | |||||
| table.insert( | |||||
| pauseButtons, | |||||
| newButton( | |||||
| "Menu", | |||||
| function() | |||||
| resettinggenius() | |||||
| paused = false | |||||
| TEXT = "Nuclear Pong" | |||||
| gameState = "menu" | |||||
| ball[1].dx = 1 | |||||
| ball_DIR = 1 | |||||
| ball[1].dy = 1 | |||||
| globalState = "menu" | |||||
| hardmanager() | |||||
| end | |||||
| ) | |||||
| ) | |||||
| table.insert( | table.insert( | ||||
| editorpicks, | editorpicks, | ||||
| newButton( | newButton( | ||||
| @@ -267,6 +336,7 @@ function love.load() | |||||
| newButton( | newButton( | ||||
| "Singleplayer", | "Singleplayer", | ||||
| function() | function() | ||||
| ptw = 10 | |||||
| gameState = "gameMode" | gameState = "gameMode" | ||||
| end | end | ||||
| ) | ) | ||||
| @@ -399,19 +469,21 @@ function love.load() | |||||
| -- ) | -- ) | ||||
| --) | --) | ||||
| table.insert( | table.insert( | ||||
| buttons, | |||||
| settings, | |||||
| newButton( | newButton( | ||||
| "Toggle Fullscreen", | "Toggle Fullscreen", | ||||
| function() | function() | ||||
| myscreen:toggle(VIRTUAL_HEIGHT, VIRTUAL_WIDTH) | myscreen:toggle(VIRTUAL_HEIGHT, VIRTUAL_WIDTH) | ||||
| DIFFERENCE_X = myscreen.c | DIFFERENCE_X = myscreen.c | ||||
| DIFFERENCE_Y = myscreen.d | DIFFERENCE_Y = myscreen.d | ||||
| OFFSET_X = myscreen.e | |||||
| OFFSET_Y = myscreen.f | |||||
| end | end | ||||
| ) | ) | ||||
| ) | ) | ||||
| if isAndroid then | if isAndroid then | ||||
| table.insert( | table.insert( | ||||
| settings, | |||||
| buttons, | |||||
| newButton( | newButton( | ||||
| "Toggle Music", | "Toggle Music", | ||||
| function() | function() | ||||
| @@ -802,11 +874,13 @@ function love.load() | |||||
| ball[3] = eball(VIRTUAL_WIDTH / 1.8, VIRTUAL_HEIGHT / 2 - 2, 16, 16) | ball[3] = eball(VIRTUAL_WIDTH / 1.8, VIRTUAL_HEIGHT / 2 - 2, 16, 16) | ||||
| ball[4] = eball(VIRTUAL_WIDTH / 2.2, VIRTUAL_HEIGHT / 2 - 2, 16, 16) | ball[4] = eball(VIRTUAL_WIDTH / 2.2, VIRTUAL_HEIGHT / 2 - 2, 16, 16) | ||||
| ball[5] = eball(VIRTUAL_WIDTH / 2.1, VIRTUAL_HEIGHT / 2 - 2, 16, 16) | ball[5] = eball(VIRTUAL_WIDTH / 2.1, VIRTUAL_HEIGHT / 2 - 2, 16, 16) | ||||
| myscreen = fullScreener(RESOLUTION_SET, isFullscreen, DIFFERENCE_X, DIFFERENCE_Y) | |||||
| myscreen = fullScreener(RESOLUTION_SET, isFullscreen, DIFFERENCE_X, DIFFERENCE_Y, OFFSET_X, OFFSET_Y) | |||||
| if isAndroid then | if isAndroid then | ||||
| myscreen:toggle(VIRTUAL_HEIGHT, VIRTUAL_WIDTH) | myscreen:toggle(VIRTUAL_HEIGHT, VIRTUAL_WIDTH) | ||||
| DIFFERENCE_X = myscreen.c | DIFFERENCE_X = myscreen.c | ||||
| DIFFERENCE_Y = myscreen.d | DIFFERENCE_Y = myscreen.d | ||||
| OFFSET_X = myscreen.e | |||||
| OFFSET_Y = myscreen.f | |||||
| end | end | ||||
| mymenu = mainMenu() | mymenu = mainMenu() | ||||
| @@ -851,9 +925,9 @@ function love.update(dt) | |||||
| end | end | ||||
| if debug then | if debug then | ||||
| displayFPS() | displayFPS() | ||||
| print(player2.y .. " " .. player2.goal .. " " .. player2.dy .. " " .. AI_SPEED .. " " .. paddle_SPEED) | |||||
| end | |||||
| if globalState == "base" then | |||||
| print(player2.y .. " " .. player2.goal .. " " .. player2.dy .. " " .. AI_SPEED .. " " .. paddle_SPEED .. " " .. lastSentKeyClient) | |||||
| end | |||||
| if globalState == "base" and not paused then | |||||
| basegame(dt) | basegame(dt) | ||||
| end | end | ||||
| @@ -867,6 +941,7 @@ function love.update(dt) | |||||
| musicController('norm', 1) | musicController('norm', 1) | ||||
| end | end | ||||
| if globalState == "nettest" then | if globalState == "nettest" then | ||||
| --print("Confcode: " .. confirmation) | --print("Confcode: " .. confirmation) | ||||
| if confirmation == "N" then | if confirmation == "N" then | ||||
| @@ -894,7 +969,6 @@ function love.update(dt) | |||||
| end | end | ||||
| clienttest(dt) | clienttest(dt) | ||||
| end | end | ||||
| end | end | ||||
| serverinit = false | serverinit = false | ||||
| @@ -1319,9 +1393,15 @@ function love.keypressed(key) | |||||
| end | end | ||||
| end | end | ||||
| if key == "escape" then | if key == "escape" then | ||||
| if not isAndroid then | |||||
| TEXT = "Escape Key" | |||||
| love.event.quit() | |||||
| if not isAndroid and globalState == "base" and gameState ~= "done" then | |||||
| if paused then | |||||
| paused = false | |||||
| TEXT = "Let's Continue" | |||||
| else | |||||
| paused = true | |||||
| TEXT = "PAUSED" | |||||
| end | |||||
| end | end | ||||
| elseif key == "enter" or key == "return" then | elseif key == "enter" or key == "return" then | ||||
| if gameState == "start" then | if gameState == "start" then | ||||
| @@ -1497,6 +1577,8 @@ function gameModeChanger() | |||||
| local by = (VIRTUAL_HEIGHT * 0.5) - (total_height * 0.5) + cursor_y | local by = (VIRTUAL_HEIGHT * 0.5) - (total_height * 0.5) + cursor_y | ||||
| local color = {255, 255, 255, 255} | local color = {255, 255, 255, 255} | ||||
| local mx, my = love.mouse.getPosition() | local mx, my = love.mouse.getPosition() | ||||
| mx = mx | |||||
| my = my | |||||
| mx = mx * DIFFERENCE_X | mx = mx * DIFFERENCE_X | ||||
| my = my * DIFFERENCE_Y | my = my * DIFFERENCE_Y | ||||
| hot = (mx > bx and mx < bx + button_width and my > by and my < by + BUTTON_HEIGHT) and i | hot = (mx > bx and mx < bx + button_width and my > by and my < by + BUTTON_HEIGHT) and i | ||||
| @@ -1538,6 +1620,8 @@ function gameModeChanger() | |||||
| end | end | ||||
| local color = {255, 255, 255, 255} | local color = {255, 255, 255, 255} | ||||
| local mx, my = love.mouse.getPosition() | local mx, my = love.mouse.getPosition() | ||||
| mx = mx | |||||
| my = my | |||||
| mx = mx * DIFFERENCE_X | mx = mx * DIFFERENCE_X | ||||
| my = my * DIFFERENCE_Y | my = my * DIFFERENCE_Y | ||||
| hot = (mx > bx and mx < bx + button_width and my > by and my < by + BUTTON_HEIGHT) and i | hot = (mx > bx and mx < bx + button_width and my > by and my < by + BUTTON_HEIGHT) and i | ||||
| @@ -1655,6 +1739,18 @@ function love.draw(dt) | |||||
| androidDraw() | androidDraw() | ||||
| love.keyboard.mouseisReleased = false | love.keyboard.mouseisReleased = false | ||||
| end | end | ||||
| if debug then | |||||
| if touches then | |||||
| for i, touch in ipairs(touches) do | |||||
| love.graphics.printf(touch.x, 0, VIRTUAL_HEIGHT / 2, VIRTUAL_WIDTH, "center") | |||||
| end | |||||
| if doubleclick1 then | |||||
| TEXT = "DOUBLECLICK1" | |||||
| elseif doubleclick2 then TEXT = "DOUBLECLICK2" | |||||
| else TEXT = "NO" | |||||
| end | |||||
| end | |||||
| end | |||||
| simpleScale.unSet() | simpleScale.unSet() | ||||
| end | end | ||||
| @@ -1787,6 +1883,8 @@ function resolutionChanger() | |||||
| if (isFullscreen == 1) then | if (isFullscreen == 1) then | ||||
| DIFFERENCE_X = 1 | DIFFERENCE_X = 1 | ||||
| DIFFERENCE_Y = 1 | DIFFERENCE_Y = 1 | ||||
| OFFSET_X = 0 | |||||
| OFFSET_Y = 0 | |||||
| simpleScale.updateWindow(WINDOW_WIDTH, WINDOW_HEIGHT, {fullscreen = false}) | simpleScale.updateWindow(WINDOW_WIDTH, WINDOW_HEIGHT, {fullscreen = false}) | ||||
| isFullscreen = 0 | isFullscreen = 0 | ||||
| end | end | ||||
| @@ -1798,6 +1896,8 @@ function resolutionChanger() | |||||
| local newHeight = love.graphics.getHeight() | local newHeight = love.graphics.getHeight() | ||||
| DIFFERENCE_X = VIRTUAL_WIDTH / newWidth | DIFFERENCE_X = VIRTUAL_WIDTH / newWidth | ||||
| DIFFERENCE_Y = VIRTUAL_HEIGHT / newHeight | DIFFERENCE_Y = VIRTUAL_HEIGHT / newHeight | ||||
| OFFSET_X = math.fmod(newWidth, VIRTUAL_WIDTH) / 2 | |||||
| OFFSET_Y = math.fmod(newHeight, VIRTUAL_HEIGHT) / 2 | |||||
| isFullscreen = 1 | isFullscreen = 1 | ||||
| end | end | ||||
| end | end | ||||
| @@ -1848,7 +1948,7 @@ function love.mousereleased(x, y, button) | |||||
| love.keyboard.mouseisReleased = true | love.keyboard.mouseisReleased = true | ||||
| if (gameState == "editor") then | if (gameState == "editor") then | ||||
| if (#walls < 1000 and button == 1 and blockinput ~= true) then | if (#walls < 1000 and button == 1 and blockinput ~= true) then | ||||
| table.insert(walls, newWall(x * DIFFERENCE_X, y * DIFFERENCE_Y, 10, wall1width)) | |||||
| table.insert(walls, newWall((x ) * DIFFERENCE_Y , (y ) * DIFFERENCE_Y , 10, wall1width)) | |||||
| end | end | ||||
| end | end | ||||
| end | end | ||||
| @@ -2135,16 +2235,21 @@ end | |||||
| local lastclick = 0 | local lastclick = 0 | ||||
| local clickInterval = 0.4 | local clickInterval = 0.4 | ||||
| function love.touchpressed( id, x, y, dx, dy, pressure ) | function love.touchpressed( id, x, y, dx, dy, pressure ) | ||||
| if isAndroid then | |||||
| if isAndroid then | |||||
| if x < love.graphics.getWidth()-OFFSET_X/2 then | |||||
| actualX = (x - OFFSET_X/2) * DIFFERENCE_Y | |||||
| else | |||||
| actualX = 1380 | |||||
| end | |||||
| local existsingID = touchExists(id) | local existsingID = touchExists(id) | ||||
| if existsingID ~= -1 then | if existsingID ~= -1 then | ||||
| touches[existsingID].x = x * DIFFERENCE_X | |||||
| touches[existsingID].y = y * DIFFERENCE_Y | |||||
| touches[existsingID].x = actualX | |||||
| touches[existsingID].y = (y) * DIFFERENCE_Y | |||||
| else | else | ||||
| table.insert(touches, newTouch(id, x*DIFFERENCE_X, y*DIFFERENCE_Y)) | |||||
| table.insert(touches, newTouch(id, actualX , (y) * DIFFERENCE_Y)) | |||||
| local time = love.timer.getTime() | local time = love.timer.getTime() | ||||
| if x * DIFFERENCE_X < VIRTUAL_WIDTH/2 then | |||||
| if time <= lastclick + clickInterval and x*DIFFERENCE_X > 100 then | |||||
| if actualX < VIRTUAL_WIDTH/2 then | |||||
| if time <= lastclick + clickInterval and actualX> 100 then | |||||
| doubleclick1 = true | doubleclick1 = true | ||||
| if gameState == "1serve" then | if gameState == "1serve" then | ||||
| lastSentKey = "q" | lastSentKey = "q" | ||||
| @@ -2155,8 +2260,9 @@ function love.touchpressed( id, x, y, dx, dy, pressure ) | |||||
| doubleclick1 = false | doubleclick1 = false | ||||
| lastclick = time | lastclick = time | ||||
| end | end | ||||
| else | else | ||||
| if time <= lastclick + clickInterval and x*DIFFERENCE_X < VIRTUAL_WIDTH-100 then | |||||
| if time <= lastclick + clickInterval and actualX < VIRTUAL_WIDTH-100 then | |||||
| doubleclick2 = true | doubleclick2 = true | ||||
| if gameState == "2serve" then | if gameState == "2serve" then | ||||
| lastSentKey = "p" | lastSentKey = "p" | ||||
| @@ -2191,10 +2297,15 @@ function love.touchreleased( id, x, y, dx, dy, pressure ) | |||||
| end | end | ||||
| function love.touchmoved( id, x, y, dx, dy, pressure ) | function love.touchmoved( id, x, y, dx, dy, pressure ) | ||||
| if isAndroid then | if isAndroid then | ||||
| if x < love.graphics.getWidth()-OFFSET_X/2 then | |||||
| actualX = (x - OFFSET_X/2) * DIFFERENCE_Y | |||||
| else | |||||
| actualX = 1380 | |||||
| end | |||||
| local existsingID = touchExists(id) | local existsingID = touchExists(id) | ||||
| if existsingID ~= -1 then | if existsingID ~= -1 then | ||||
| touches[existsingID].x = x * DIFFERENCE_X | |||||
| touches[existsingID].y = y * DIFFERENCE_Y | |||||
| touches[existsingID].x = actualX | |||||
| touches[existsingID].y = (y ) * DIFFERENCE_Y | |||||
| if touches[existsingID].originalX - touches[existsingID].x > 200 and | if touches[existsingID].originalX - touches[existsingID].x > 200 and | ||||
| touches[existsingID].originalX < VIRTUAL_WIDTH/2 then | touches[existsingID].originalX < VIRTUAL_WIDTH/2 then | ||||
| hold1 = true | hold1 = true | ||||
| @@ -2229,7 +2340,22 @@ function table.empty (self) | |||||
| end | end | ||||
| function sectortouched(sector) | function sectortouched(sector) | ||||
| for i, touch in ipairs(touches) do | for i, touch in ipairs(touches) do | ||||
| if touch.x > VIRTUAL_WIDTH-100 and touch.y < player2.y then | |||||
| if (AGAINST_AI == 1) then | |||||
| if sector == 2 and touch.x < 100 and touch.y < player1.y then | |||||
| lastSentKey = p1control.up | |||||
| return true | |||||
| elseif sector == 2 and touch.x > VIRTUAL_WIDTH/2+10 and touch.y < player1.y then | |||||
| lastSentKey = p1control.up | |||||
| return true | |||||
| elseif sector == 3 and touch.x < 100 and touch.y > player1.y+player1.height*0.9 then | |||||
| lastSentKey = p1control.down | |||||
| return true | |||||
| elseif sector == 3 and touch.x > VIRTUAL_WIDTH/2+10 and touch.y > player1.y+player1.height*0.9 then | |||||
| lastSentKey = p1control.down | |||||
| return true | |||||
| end | |||||
| else | |||||
| if sector == 1 and touch.x > VIRTUAL_WIDTH-100 and touch.y < player2.y then | |||||
| lastSentKey = p2control.up | lastSentKey = p2control.up | ||||
| return true | return true | ||||
| elseif sector == 2 and touch.x < 100 and touch.y < player1.y then | elseif sector == 2 and touch.x < 100 and touch.y < player1.y then | ||||
| @@ -2242,6 +2368,7 @@ for i, touch in ipairs(touches) do | |||||
| lastSentKey = p2control.down | lastSentKey = p2control.down | ||||
| return true | return true | ||||
| end | end | ||||
| end | |||||
| end | end | ||||
| return false | return false | ||||
| end | end | ||||
| @@ -15,6 +15,8 @@ function mainMenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, buttons, sounds | |||||
| ev_by = (VIRTUAL_HEIGHT * 0.1) - (total_height * 0.5) + cursor_y | ev_by = (VIRTUAL_HEIGHT * 0.1) - (total_height * 0.5) + cursor_y | ||||
| local color = {255, 255, 255, 255} | local color = {255, 255, 255, 255} | ||||
| local mx, my = love.mouse.getPosition() | local mx, my = love.mouse.getPosition() | ||||
| mx = mx | |||||
| my = my | |||||
| mx = mx * DIFFERENCE_X | mx = mx * DIFFERENCE_X | ||||
| my = my * DIFFERENCE_Y | my = my * DIFFERENCE_Y | ||||
| hot = (mx > ev_bx and mx < ev_bx + ev_button_width and my > ev_by and my < ev_by + ev_BUTTON_HEIGHT) and i | hot = (mx > ev_bx and mx < ev_bx + ev_button_width and my > ev_by and my < ev_by + ev_BUTTON_HEIGHT) and i | ||||
| @@ -26,7 +28,7 @@ function mainMenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, buttons, sounds | |||||
| button.now = love.keyboard.mouseWasReleased() | button.now = love.keyboard.mouseWasReleased() | ||||
| if button.now and not button.last and hot == i then | if button.now and not button.last and hot == i then | ||||
| love.keyboard.mouseisReleased = false | |||||
| love.graphics.setColor(0,0,0,1) | love.graphics.setColor(0,0,0,1) | ||||
| love.graphics.rectangle("fill", 0, 0, VIRTUAL_WIDTH, VIRTUAL_HEIGHT) | love.graphics.rectangle("fill", 0, 0, VIRTUAL_WIDTH, VIRTUAL_HEIGHT) | ||||
| sounds['wallhit']:play() | sounds['wallhit']:play() | ||||
| @@ -99,6 +101,8 @@ function mainMenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, buttons, sounds | |||||
| color = {1,1,1,1} | color = {1,1,1,1} | ||||
| end | end | ||||
| local mx, my = love.mouse.getPosition() | local mx, my = love.mouse.getPosition() | ||||
| mx = mx | |||||
| my = my | |||||
| local mx = mx * DIFFERENCE_X | local mx = mx * DIFFERENCE_X | ||||
| local my = my * DIFFERENCE_Y | local my = my * DIFFERENCE_Y | ||||
| local hot = (mx > ev_bx and mx < ev_bx + ev_button_width and my > ev_by and my < ev_by + ev_BUTTON_HEIGHT) and i | local hot = (mx > ev_bx and mx < ev_bx + ev_button_width and my > ev_by and my < ev_by + ev_BUTTON_HEIGHT) and i | ||||
| @@ -112,6 +116,7 @@ function mainMenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, buttons, sounds | |||||
| button.now = love.mouse.isDown(1) | button.now = love.mouse.isDown(1) | ||||
| end | end | ||||
| if button.now and hot == i then | if button.now and hot == i then | ||||
| love.keyboard.mouseisReleased = false | |||||
| love.graphics.setColor(0,0,0,1) | love.graphics.setColor(0,0,0,1) | ||||
| love.graphics.rectangle("fill", 0, 0, VIRTUAL_WIDTH, VIRTUAL_HEIGHT) | love.graphics.rectangle("fill", 0, 0, VIRTUAL_WIDTH, VIRTUAL_HEIGHT) | ||||
| sounds['wallhit']:play() | sounds['wallhit']:play() | ||||
| @@ -188,7 +193,7 @@ function mainMenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, buttons, sounds | |||||
| end | end | ||||
| end | end | ||||
| end | end | ||||
| love.keyboard.mouseisReleased = false | |||||
| end | end | ||||
| function mainMenu:addButton(text, fn) | function mainMenu:addButton(text, fn) | ||||
| return { | return { | ||||
| @@ -212,6 +217,8 @@ local bx = (VIRTUAL_WIDTH*0.5) - (button_width * 0.5) | |||||
| local by = (VIRTUAL_HEIGHT * 0.8) - (total_height * 0.5) + cursor_y | local by = (VIRTUAL_HEIGHT * 0.8) - (total_height * 0.5) + cursor_y | ||||
| local color = {255, 255, 255, 255} | local color = {255, 255, 255, 255} | ||||
| local mx, my = love.mouse.getPosition() | local mx, my = love.mouse.getPosition() | ||||
| mx = mx | |||||
| my = my | |||||
| mx = mx * DIFFERENCE_X | mx = mx * DIFFERENCE_X | ||||
| my = my * DIFFERENCE_Y | my = my * DIFFERENCE_Y | ||||
| hot = (mx > bx and mx < bx + button_width and my > by and my < by + BUTTON_HEIGHT) and i | hot = (mx > bx and mx < bx + button_width and my > by and my < by + BUTTON_HEIGHT) and i | ||||
| @@ -220,6 +227,7 @@ if (hot == i) then | |||||
| end | end | ||||
| button.now = love.keyboard.mouseWasReleased() | button.now = love.keyboard.mouseWasReleased() | ||||
| if button.now and not button.last and hot == i then | if button.now and not button.last and hot == i then | ||||
| love.keyboard.mouseisReleased = false | |||||
| love.graphics.setColor(0,0,0,1) | love.graphics.setColor(0,0,0,1) | ||||
| love.graphics.rectangle("fill", 0, 0, VIRTUAL_WIDTH, VIRTUAL_HEIGHT) | love.graphics.rectangle("fill", 0, 0, VIRTUAL_WIDTH, VIRTUAL_HEIGHT) | ||||
| sounds['wallhit']:play() | sounds['wallhit']:play() | ||||
| @@ -9,7 +9,7 @@ function musicController(orders, toggling) | |||||
| sounds['gayTheme']:setVolume(0) | sounds['gayTheme']:setVolume(0) | ||||
| sounds['gayTheme2']:setVolume(0) | sounds['gayTheme2']:setVolume(0) | ||||
| elseif ((gameState == 'play' or gameState == '1serve' or gameState == '2serve') and player1score <= 7 and player2score <= 7 and areanuclear == 0) then | |||||
| elseif ((gameState == 'play' or gameState == '1serve' or gameState == '2serve') and player1score <= ptw*0.5 and player2score <= ptw*0.5 and areanuclear == 0) then | |||||
| sounds['updateMusic']:stop() | sounds['updateMusic']:stop() | ||||
| sounds['gayTheme2']:stop() | sounds['gayTheme2']:stop() | ||||
| sounds['gayTheme3']:stop() | sounds['gayTheme3']:stop() | ||||
| @@ -17,8 +17,8 @@ function musicController(orders, toggling) | |||||
| sounds['gayTheme']:setLooping(true) | sounds['gayTheme']:setLooping(true) | ||||
| sounds['gayTheme']:setVolume(0.5) | sounds['gayTheme']:setVolume(0.5) | ||||
| sounds['gayTheme']:play() | sounds['gayTheme']:play() | ||||
| elseif gameState == 'play' and player1score > ptw-2 or player2score > ptw-2 and areanuclear == 0 then | |||||
| --print(ptw-2) | |||||
| elseif gameState == 'play' and player1score > ptw*0.8 or player2score > ptw*0.8 and areanuclear == 0 then | |||||
| --print(ptw*0.8) | |||||
| sounds['gayTheme']:stop() | sounds['gayTheme']:stop() | ||||
| sounds['gayTheme3']:stop() | sounds['gayTheme3']:stop() | ||||
| sounds['updateMusic']:stop() | sounds['updateMusic']:stop() | ||||
| @@ -26,7 +26,7 @@ function musicController(orders, toggling) | |||||
| sounds['gayTheme2']:setLooping(true) | sounds['gayTheme2']:setLooping(true) | ||||
| sounds['gayTheme2']:setVolume(0.5) | sounds['gayTheme2']:setVolume(0.5) | ||||
| sounds['gayTheme2']:play() | sounds['gayTheme2']:play() | ||||
| elseif gameState == 'play' and player1score > ptw-5 or player2score > ptw-5 and areanuclear == 0 then | |||||
| elseif gameState == 'play' and player1score > ptw*0.5 or player2score > ptw*0.5 and areanuclear == 0 then | |||||
| --print(ptw-4) | --print(ptw-4) | ||||
| sounds['gayTheme']:stop() | sounds['gayTheme']:stop() | ||||
| sounds['gayTheme2']:stop() | sounds['gayTheme2']:stop() | ||||
| @@ -1,4 +1,5 @@ | |||||
| function AI(target, ballCnt, diff) | function AI(target, ballCnt, diff) | ||||
| print("AI RUNNING") | |||||
| currentTarget = evaluateClosestBall(target); | currentTarget = evaluateClosestBall(target); | ||||
| --print("CLOSEST TARGET IS " .. currentTarget) | --print("CLOSEST TARGET IS " .. currentTarget) | ||||
| if diff < 1200 then | if diff < 1200 then | ||||
| @@ -130,9 +131,9 @@ function recursiveCalculations(px, ex, ey, edx, edy, ifspecial) | |||||
| --print("SS") | --print("SS") | ||||
| local emulatedx = ex + distance * edx | local emulatedx = ex + distance * edx | ||||
| local emulatedy = VIRTUAL_HEIGHT-40 | local emulatedy = VIRTUAL_HEIGHT-40 | ||||
| print("EMULATED: " .. emulatedx .. " " .. emulatedy) | |||||
| --print("EMULATED: " .. emulatedx .. " " .. emulatedy) | |||||
| local answer = recursiveCalculations(px, emulatedx, emulatedy, edx, -edy, 0) | local answer = recursiveCalculations(px, emulatedx, emulatedy, edx, -edy, 0) | ||||
| print("GOT EMULATION RESULT AS " .. answer) | |||||
| --print("GOT EMULATION RESULT AS " .. answer) | |||||
| --love.window.setTitle(tostring(answer) .. "recursive calc bottom") | --love.window.setTitle(tostring(answer) .. "recursive calc bottom") | ||||
| return answer | return answer | ||||
| end | end | ||||
| @@ -41,7 +41,7 @@ function basegame(dt) | |||||
| for i = 1, maxBalls do | for i = 1, maxBalls do | ||||
| if rules("p1hit", i) then | if rules("p1hit", i) then | ||||
| if (areanuclear == 0 and striken == 1 and (player1score > ptw-2 or player2score > ptw-2)) then | |||||
| if (areanuclear == 0 and striken == 1 and (player1score > ptw*0.8 or player2score > ptw*0.8)) then | |||||
| --print("Calling animation") | --print("Calling animation") | ||||
| --print("AREA NUCLEAR?" .. areanuclear) | --print("AREA NUCLEAR?" .. areanuclear) | ||||
| superanimator("tensehit", 1) | superanimator("tensehit", 1) | ||||
| @@ -170,7 +170,7 @@ function basegame(dt) | |||||
| shakeDuration = 1 | shakeDuration = 1 | ||||
| if | if | ||||
| (areanuclear == 0 and | (areanuclear == 0 and | ||||
| (striken == 1 and (player1score > ptw-2 or player2score > ptw-2))) | |||||
| (striken == 1 and (player1score > ptw*0.8 or player2score > ptw*0.8))) | |||||
| then | then | ||||
| --print("AREA NUCLEAR?" .. areanuclear) | --print("AREA NUCLEAR?" .. areanuclear) | ||||
| superanimator("tensehit", 2) | superanimator("tensehit", 2) | ||||
| @@ -356,7 +356,7 @@ end | |||||
| function debugCheck(dt) | function debugCheck(dt) | ||||
| if (gameState == "menu") then | if (gameState == "menu") then | ||||
| updateTEXT = "0.7.8 Chalkboard Update" | |||||
| updateTEXT = "0.7.9 Chalkboard" | |||||
| end | end | ||||
| dangerChecker() | dangerChecker() | ||||
| elapsed = elapsed + dt | elapsed = elapsed + dt | ||||
| @@ -394,7 +394,7 @@ function goalManager() | |||||
| for i = 1, maxBalls do | for i = 1, maxBalls do | ||||
| ball[i]:reset(i, 2) | ball[i]:reset(i, 2) | ||||
| end | end | ||||
| if (player2score == ptw and gameMode ~= "practice") then | |||||
| if (player2score+1 >= ptw and gameMode ~= "practice") then | |||||
| for i = 1, maxBalls do | for i = 1, maxBalls do | ||||
| ball[i]:reset(i) | ball[i]:reset(i) | ||||
| end | end | ||||
| @@ -436,12 +436,12 @@ function goalManager() | |||||
| AI_SPEED = difficultyl | AI_SPEED = difficultyl | ||||
| if (player1score == ptw) then | |||||
| if (player1score+1 >= ptw) then | |||||
| ball[i]:reset(i) | ball[i]:reset(i) | ||||
| sounds["win"]:play() | sounds["win"]:play() | ||||
| gameState = "done" | gameState = "done" | ||||
| TEXT = "Player 1 Won!" | |||||
| TEXT = "Player 1 Won" | |||||
| else | else | ||||
| if globalState ~= "nettest" or (globalState == "nettest" and gameState == "2serve") then | if globalState ~= "nettest" or (globalState == "nettest" and gameState == "2serve") then | ||||
| gameState = "2serve" | gameState = "2serve" | ||||
| @@ -461,10 +461,11 @@ function goalManager() | |||||
| end | end | ||||
| function powerAvailability() | function powerAvailability() | ||||
| if (player1nukescore >= 20 and player1nukescore < 140) then | |||||
| if (player1nukescore >= 20 and player1nukescore < 200) then | |||||
| potentialstrike1 = 1 | potentialstrike1 = 1 | ||||
| if (((globalState ~= "clienttest" and (love.keyboard.isDown(p1control.super) or doubleclick1 == true)) or (globalState == "clienttest" and lastSentKeyP1 == p1control.super)) ) then | if (((globalState ~= "clienttest" and (love.keyboard.isDown(p1control.super) or doubleclick1 == true)) or (globalState == "clienttest" and lastSentKeyP1 == p1control.super)) ) then | ||||
| player1striken = 1 | player1striken = 1 | ||||
| doubleclick1 = false | |||||
| player1reverbav = 0 | player1reverbav = 0 | ||||
| end | end | ||||
| end | end | ||||
| @@ -476,8 +477,9 @@ function powerAvailability() | |||||
| end | end | ||||
| if (player1nukescore >= 200) then | if (player1nukescore >= 200) then | ||||
| potentialnuke1 = 1 | potentialnuke1 = 1 | ||||
| if ((globalState == "clienttest" and (lastSentKeyP1 == p1control.super or doubleclick1 == true))or (globalState ~= "clienttest" and love.keyboard.isDown(p1control.super))) then | |||||
| if ((globalState == "clienttest" and (lastSentKeyP1 == p1control.super or doubleclick1 == true))or (globalState ~= "clienttest" and (love.keyboard.isDown(p1control.super) or doubleclick1 == true))) then | |||||
| sounds["nuke"]:play() | sounds["nuke"]:play() | ||||
| doubleclick1 = false | |||||
| if areanuclear == 1 then | if areanuclear == 1 then | ||||
| maxspeed = maxspeed + 50 | maxspeed = maxspeed + 50 | ||||
| end | end | ||||
| @@ -502,12 +504,13 @@ function powerAvailability() | |||||
| potentialnuke1 = 0 | potentialnuke1 = 0 | ||||
| end | end | ||||
| end | end | ||||
| if (player2nukescore >= 20 and player2nukescore <= 140) then | |||||
| if (player2nukescore >= 20 and player2nukescore < 200) then | |||||
| potentialstrike2 = 1 | potentialstrike2 = 1 | ||||
| if (AGAINST_AI == 0) then | if (AGAINST_AI == 0) then | ||||
| if ((globalState ~= "nettest" and (love.keyboard.isDown(p2control.super) or doubleclick2)) or lastSentKeyClient == p2control.super ) then | if ((globalState ~= "nettest" and (love.keyboard.isDown(p2control.super) or doubleclick2)) or lastSentKeyClient == p2control.super ) then | ||||
| player2striken = 1 | player2striken = 1 | ||||
| player2reverbav = 0 | player2reverbav = 0 | ||||
| doubleclick2 = false | |||||
| end | end | ||||
| end | end | ||||
| end | end | ||||
| @@ -529,6 +532,7 @@ function powerAvailability() | |||||
| potentialnuke2 = 1 | potentialnuke2 = 1 | ||||
| if (((globalState ~= "nettest" and (love.keyboard.isDown(p2control.super) or doubleclick2)) or lastSentKeyClient == p2control.super)) and AGAINST_AI == 0 then | if (((globalState ~= "nettest" and (love.keyboard.isDown(p2control.super) or doubleclick2)) or lastSentKeyClient == p2control.super)) and AGAINST_AI == 0 then | ||||
| sounds["nuke"]:play() | sounds["nuke"]:play() | ||||
| doubleclick2 = false | |||||
| if areanuclear == 1 then | if areanuclear == 1 then | ||||
| maxspeed = maxspeed + 50 | maxspeed = maxspeed + 50 | ||||
| end | end | ||||
| @@ -591,6 +595,20 @@ function nuclearDraw() | |||||
| player2:render() | player2:render() | ||||
| end | end | ||||
| function winDraw(who) | |||||
| love.graphics.setColor(0, 0, 0, 1) | |||||
| if who == 1 then | |||||
| love.graphics.circle("fill", player2.x, player2.y, explosionRange * 100, 100) | |||||
| print("cicrleexplostion at " .. explosionRange) | |||||
| else | |||||
| love.graphics.circle("fill", player1.x, player1.y, explosionRange * 100, 100) | |||||
| end | |||||
| love.graphics.setColor(1, 1, 1, 1) | |||||
| love.graphics.printf(TEXT, 0, 20, VIRTUAL_WIDTH, "center") | |||||
| end | |||||
| function normalDraw() | function normalDraw() | ||||
| if (areanuclear == 1) then | if (areanuclear == 1) then | ||||
| love.graphics.clear(1, 1, 1, 1) | love.graphics.clear(1, 1, 1, 1) | ||||
| @@ -724,6 +742,7 @@ function menuDraw() | |||||
| AGAINST_AI = 0 | AGAINST_AI = 0 | ||||
| gameState = "1serve" | gameState = "1serve" | ||||
| ball[1]:reset(1, 1) | ball[1]:reset(1, 1) | ||||
| player2.dy = 0 | |||||
| end | end | ||||
| ) | ) | ||||
| ) | ) | ||||
| @@ -751,6 +770,7 @@ function menuDraw() | |||||
| AGAINST_AI = 0 | AGAINST_AI = 0 | ||||
| gameState = "1serve" | gameState = "1serve" | ||||
| ball[1]:reset(1, 1) | ball[1]:reset(1, 1) | ||||
| player2.dy = 0 | |||||
| end | end | ||||
| ) | ) | ||||
| ) | ) | ||||
| @@ -766,6 +786,7 @@ function menuDraw() | |||||
| AGAINST_AI = 0 | AGAINST_AI = 0 | ||||
| gameState = "1serve" | gameState = "1serve" | ||||
| ball[1]:reset(1, 1) | ball[1]:reset(1, 1) | ||||
| player2.dy = 0 | |||||
| end | end | ||||
| ) | ) | ||||
| ) | ) | ||||
| @@ -837,25 +858,37 @@ function baseDraw() | |||||
| if gameState == 'nuclearExplosion' then | if gameState == 'nuclearExplosion' then | ||||
| nuclearDraw() | nuclearDraw() | ||||
| end | end | ||||
| if gameState == 'play' or gameState == '1serve' or gameState == '2serve' or gameState == 'done' then | if gameState == 'play' or gameState == '1serve' or gameState == '2serve' or gameState == 'done' then | ||||
| --print("Drawing normally") | --print("Drawing normally") | ||||
| normalDraw() | normalDraw() | ||||
| end | end | ||||
| if gameState == 'done' and player1score > player2score then | |||||
| winDraw(1) | |||||
| elseif gameState == 'done' and player1score < player2score then | |||||
| winDraw(2) | |||||
| end | |||||
| end | end | ||||
| if paused then | |||||
| mymenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, pauseButtons, sounds, "middle") | |||||
| love.keyboard.mouseisReleased = false | |||||
| end | |||||
| if gameState == "done" then | |||||
| mymenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, doneButtons, sounds, "middle") | |||||
| love.keyboard.mouseisReleased = false | |||||
| end | |||||
| end | end | ||||
| function androidDraw() | function androidDraw() | ||||
| --HOME BUTTON HERE | --HOME BUTTON HERE | ||||
| mymenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, androidButtons, sounds, "android") | mymenu:butt(gameState, VIRTUAL_WIDTH, VIRTUAL_HEIGHT, androidButtons, sounds, "android") | ||||
| if showTouchControls then | if showTouchControls then | ||||
| love.graphics.setColor(15/255, 255/255, 15/255, 0.5) | love.graphics.setColor(15/255, 255/255, 15/255, 0.5) | ||||
| love.graphics.rectangle("fill", 0, 0, 50, VIRTUAL_HEIGHT) | |||||
| love.graphics.rectangle("fill", 0, 0, 100, VIRTUAL_HEIGHT) | |||||
| love.graphics.setColor(15/255, 255/255, 15/255, 0.5) | love.graphics.setColor(15/255, 255/255, 15/255, 0.5) | ||||
| love.graphics.rectangle("fill", VIRTUAL_WIDTH-50, 0, 50, VIRTUAL_HEIGHT) | |||||
| love.graphics.rectangle("fill", VIRTUAL_WIDTH-100, 0, 50, VIRTUAL_HEIGHT) | |||||
| love.graphics.setColor(255/255, 15/255, 15/255, 0.5) | love.graphics.setColor(255/255, 15/255, 15/255, 0.5) | ||||
| love.graphics.rectangle("fill", 50, 0, VIRTUAL_WIDTH/2-50, VIRTUAL_HEIGHT) | |||||
| love.graphics.rectangle("fill", VIRTUAL_WIDTH/2, 0, VIRTUAL_WIDTH/2-50, VIRTUAL_HEIGHT) | |||||
| love.graphics.rectangle("fill", 100, 0, VIRTUAL_WIDTH/2-100, VIRTUAL_HEIGHT) | |||||
| love.graphics.rectangle("fill", VIRTUAL_WIDTH/2, 0, VIRTUAL_WIDTH/2-100, VIRTUAL_HEIGHT) | |||||
| love.graphics.setColor(0, 0, 0, 0.5) | love.graphics.setColor(0, 0, 0, 0.5) | ||||
| love.graphics.rectangle("fill", VIRTUAL_WIDTH/2-5, 0, 10, VIRTUAL_HEIGHT) | love.graphics.rectangle("fill", VIRTUAL_WIDTH/2-5, 0, 10, VIRTUAL_HEIGHT) | ||||
| end | end | ||||
| @@ -1061,14 +1094,14 @@ function rules(query, i) | |||||
| if gameMode == "reversegame" then | if gameMode == "reversegame" then | ||||
| return ball[i]:collides(player1) | return ball[i]:collides(player1) | ||||
| elseif gameMode == "normal" then | elseif gameMode == "normal" then | ||||
| return ball[i].x < 0 and ball[i].disabled == false | |||||
| return ball[i].x < -10 and ball[i].disabled == false | |||||
| end | end | ||||
| end | end | ||||
| if query == "p2miss" then | if query == "p2miss" then | ||||
| if gameMode == "reversegame" then | if gameMode == "reversegame" then | ||||
| return ball[i]:collides(player2) | return ball[i]:collides(player2) | ||||
| elseif gameMode == "normal" then | elseif gameMode == "normal" then | ||||
| return ball[i].x > VIRTUAL_WIDTH-10 and ball[i].disabled == false | |||||
| return ball[i].x > VIRTUAL_WIDTH and ball[i].disabled == false | |||||
| end | end | ||||
| end | end | ||||
| end | end | ||||
| @@ -1116,7 +1149,7 @@ function clientsBaseGame(dt) | |||||
| for i = 1, maxBalls do | for i = 1, maxBalls do | ||||
| if rules("p1hit", i) then | if rules("p1hit", i) then | ||||
| if (areanuclear == 0 and striken == 1 and (player1score > ptw-2 or player2score > ptw-2)) then | |||||
| if (areanuclear == 0 and striken == 1 and (player1score > ptw*0.8 or player2score > ptw*0.8)) then | |||||
| --print("Calling animation") | --print("Calling animation") | ||||
| superanimator("tensehit", 1) | superanimator("tensehit", 1) | ||||
| --print("AREA NUCLEAR?" .. areanuclear) | --print("AREA NUCLEAR?" .. areanuclear) | ||||
| @@ -1188,7 +1221,7 @@ function clientsBaseGame(dt) | |||||
| shakeDuration = 1 | shakeDuration = 1 | ||||
| if | if | ||||
| (areanuclear == 0 and | (areanuclear == 0 and | ||||
| (striken == 1 and (player1score > ptw-2 or player2score > ptw-2))) | |||||
| (striken == 1 and (player1score > ptw*0.8 or player2score > ptw*0.8))) | |||||
| then | then | ||||
| --print("AREA NUCLEAR?" .. areanuclear) | --print("AREA NUCLEAR?" .. areanuclear) | ||||
| superanimator("tensehit", 2) | superanimator("tensehit", 2) | ||||
| @@ -1467,7 +1500,6 @@ function menuDemo(dt) | |||||
| end | end | ||||
| ball[1].x = player2.x-8 | ball[1].x = player2.x-8 | ||||
| ball[1].dx = -ball[1].dx | ball[1].dx = -ball[1].dx | ||||
| ball[1].dy = -ball[1].dy | |||||
| end | end | ||||
| if ball[1].x <= player1.x+7 then | if ball[1].x <= player1.x+7 then | ||||
| sounds["beep"]:setPitch(ballSpeed / 250) | sounds["beep"]:setPitch(ballSpeed / 250) | ||||
| @@ -1502,7 +1534,6 @@ function menuDemo(dt) | |||||
| end | end | ||||
| ball[1].x = player1.x+8 | ball[1].x = player1.x+8 | ||||
| ball[1].dx = -ball[1].dx | ball[1].dx = -ball[1].dx | ||||
| ball[1].dy = -ball[1].dy | |||||
| end | end | ||||
| if ball[1].y <= 0 then | if ball[1].y <= 0 then | ||||
| @@ -2,3 +2,4 @@ VIRTUAL_WIDTH = 1280 | |||||
| VIRTUAL_HEIGHT = 720 | VIRTUAL_HEIGHT = 720 | ||||
| WINDOW_WIDTH = 1280 | WINDOW_WIDTH = 1280 | ||||
| WINDOW_HEIGHT = 720 | WINDOW_HEIGHT = 720 | ||||
| isAndroid = true | |||||