aboutsummaryrefslogtreecommitdiff
path: root/server.js
diff options
context:
space:
mode:
Diffstat (limited to 'server.js')
-rwxr-xr-xserver.js31
1 files changed, 25 insertions, 6 deletions
diff --git a/server.js b/server.js
index 73add35..08812a7 100755
--- a/server.js
+++ b/server.js
@@ -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;