diff options
Diffstat (limited to 'server.js')
-rwxr-xr-x | server.js | 31 |
1 files changed, 25 insertions, 6 deletions
@@ -46,8 +46,15 @@ app.get("/game/:gameid", (req, res) => { res.sendFile(__dirname + "/game.html"); }); -app.get("/game.css", (req, res) => res.sendFile(__dirname + "/game.css")); -app.get("/game.js", (req, res) => res.sendFile(__dirname + "/game.js")); +const staticFiles = [ + "/game.css", + "/game.js", + /^\/snd\//, +]; + +app.get(staticFiles, (req, res) => { + res.sendFile(__dirname + req.path); +}); io.on("connection", (conn) => { let gameid, gameobj; @@ -65,10 +72,11 @@ io.on("connection", (conn) => { console.log(" serve"); gameid = id; gameobj.pl.push(conn); + gameobj.pl[0].emit("join"); gameobj.pl[0].emit("status", "Get ready..."); gameobj.pl[1].emit("status", "Get ready..."); - gameobj.pl[0].emit("serve", "left", 0.5, 0.5); - gameobj.pl[1].emit("serve", "right", 0.5, 0.5); + gameobj.pl[0].emit("serve", "left", 0.5, 0.5, true); + gameobj.pl[1].emit("serve", "right", 0.5, 0.5, true); gameobj.started = true; setTimeout(() => { if (!gameobj || gameobj.pl.length != 2) return; @@ -105,6 +113,7 @@ io.on("connection", (conn) => { for (const p of gameobj.pl) { if (p != conn) { p.emit("stop"); + p.emit("leave"); p.emit("status", "Other player left."); setTimeout(() => { p.emit("redirect", "/"); @@ -140,6 +149,15 @@ io.on("connection", (conn) => { } }); + conn.on("bounce", () => { + if (!gameobj) return; + for (const p of gameobj.pl) { + if (p != conn) { + p.emit("bounce"); + } + } + }); + conn.on("ballout", () => { if (!gameobj || gameobj.pl.length != 2) return; @@ -151,6 +169,7 @@ io.on("connection", (conn) => { for (let i = 0; i < gameobj.pl.length; i++) { if (gameobj.pl[i] != conn) { gameobj.score[i]++; + gameobj.pl[i].emit("othermiss"); } } @@ -161,8 +180,8 @@ io.on("connection", (conn) => { if (!gameobj || gameobj.pl.length != 2) return; gameobj.pl[0].emit("status", "Get ready..."); gameobj.pl[1].emit("status", "Get ready..."); - gameobj.pl[0].emit("serve", "left", 0.5, 0.5); - gameobj.pl[1].emit("serve", "right", 0.5, 0.5); + gameobj.pl[0].emit("serve", "left", 0.5, 0.5, false); + gameobj.pl[1].emit("serve", "right", 0.5, 0.5, false); setTimeout(() => { if (!gameobj || gameobj.pl.length != 2) return; |