rooms lol
This commit is contained in:
parent
e19453dc66
commit
baa1b00839
|
@ -38,7 +38,10 @@ server.listen(8080);
|
||||||
|
|
||||||
app
|
app
|
||||||
.use(express.static(path.resolve("src", "static")))
|
.use(express.static(path.resolve("src", "static")))
|
||||||
|
.get("/rooms", (req, res) => {
|
||||||
|
res.setHeader("Content-Type", "application/json");
|
||||||
|
res.send([...rooms.keys()]);
|
||||||
|
});
|
||||||
|
|
||||||
io.on("connection", socket => {
|
io.on("connection", socket => {
|
||||||
socket.emit("auth"); // initial ping
|
socket.emit("auth"); // initial ping
|
||||||
|
@ -46,22 +49,37 @@ io.on("connection", socket => {
|
||||||
console.log(blah);
|
console.log(blah);
|
||||||
io.in(socket.room).emit("test", blah);
|
io.in(socket.room).emit("test", blah);
|
||||||
});
|
});
|
||||||
socket.on("player", data => { // playername, roomname
|
socket.on("player", data => { // playername, gameroom
|
||||||
socket.playername = data.playername;
|
socket.playername = data.playername;
|
||||||
socket.room = data.roomname;
|
socket.room = data.gameroom;
|
||||||
|
socket.join(data.gameroom);
|
||||||
|
|
||||||
socket.join(data.roomname);
|
if(!rooms.has(data.gameroom)) {
|
||||||
|
rooms.set(data.gameroom, {
|
||||||
if(!rooms.has(data.roomname)) {
|
player: new Map(Object.entries({ [data.playername]: { cards: new cards, leader: true }})),
|
||||||
rooms.set(data.roomname, {
|
mainstack: []//deck()
|
||||||
player: new Map(Object.entries({ [data.playername]: { cards: new cards }})),
|
|
||||||
mainstack: deck()
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
console.log(rooms);
|
|
||||||
socket.emit("done");
|
|
||||||
});
|
|
||||||
|
|
||||||
|
if(!rooms.get(data.gameroom).player.has(data.playername)) {
|
||||||
|
rooms.get(data.gameroom).player.set(data.playername, { cards: new cards, leader: false });
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(rooms);
|
||||||
|
io.in(socket.room).emit("playerlist", [...rooms.get(data.gameroom).player.keys()]);
|
||||||
|
});
|
||||||
|
socket.on("disconnect", data => {
|
||||||
|
const room = socket.room;
|
||||||
|
const player = socket.playername;
|
||||||
|
socket.disconnect(true);
|
||||||
|
rooms.get(room).player.delete(player);
|
||||||
|
io.in(room).emit("playerlist", [...rooms.get(room).player.keys()]);
|
||||||
|
if(rooms.get(room).player.size === 1)
|
||||||
|
rooms.get(room).player.values().next().leader = true;
|
||||||
|
if(rooms.get(room).player.size === 0)
|
||||||
|
rooms.delete(room);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
//repl.start("> ");
|
const r = repl.start("> ");
|
||||||
|
r.context.rooms = rooms;
|
|
@ -1,5 +1,5 @@
|
||||||
import * as render from "./render.js";
|
import * as render from "./render.js";
|
||||||
import { tpl, msgBox } from "./tpl.js";
|
import { msgBox } from "./tpl.js";
|
||||||
//let socket = io();
|
//let socket = io();
|
||||||
|
|
||||||
function card({ type = "normal", val = "" }) {
|
function card({ type = "normal", val = "" }) {
|
||||||
|
|
|
@ -1,45 +1,33 @@
|
||||||
|
import { msgBox, removeAllmsgBox } from "./tpl.js";
|
||||||
|
|
||||||
let socket = false;
|
let socket = false;
|
||||||
let _playername;
|
let _playername;
|
||||||
let _roomname;
|
let _gameroom;
|
||||||
|
|
||||||
export const connect = ({ playername, roomname = "default" }) => {
|
export const connect = ({ playername, gameroom = "default" }) => {
|
||||||
// checks
|
// checks
|
||||||
if(playername < 3 || roomname < 3)
|
if(playername < 3 || gameroom < 3)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
[_playername, _roomname] = [playername, roomname];
|
[_playername, _gameroom] = [playername, gameroom];
|
||||||
|
if(socket) {
|
||||||
|
socket.disconnect();
|
||||||
|
socket = false;
|
||||||
|
}
|
||||||
socket = io();
|
socket = io();
|
||||||
socketevents();
|
socketevents();
|
||||||
};
|
};
|
||||||
|
|
||||||
const socketevents = () => {
|
const socketevents = () => {
|
||||||
socket.on("auth", () => {
|
|
||||||
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
/*const socketevents = () => {
|
|
||||||
socket.on("auth", () => {
|
socket.on("auth", () => {
|
||||||
socket.emit("player", {
|
socket.emit("player", {
|
||||||
roomname: _roomname,
|
playername: _playername,
|
||||||
playername: _playername
|
gameroom: _gameroom
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
socket.on("done", () => {
|
removeAllmsgBox();
|
||||||
socket.emit("test", "lul");
|
msgBox("waitforPlayer");
|
||||||
});
|
socket.on("playerlist", player => {
|
||||||
socket.on("test", blah => {
|
document.querySelector("span#wfp_players").innerHTML = player.join("<br />");
|
||||||
console.log(blah);
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
export const connect = ({ playername, roomname = "default" }) => {
|
|
||||||
[_playername, _roomname] = [playername, roomname];
|
|
||||||
if(!socket)
|
|
||||||
socket = io();
|
|
||||||
else {
|
|
||||||
socket.disconnect(true);
|
|
||||||
socket = io();
|
|
||||||
}
|
|
||||||
socketevents();
|
|
||||||
};*/
|
|
|
@ -101,6 +101,18 @@ export const tpl = {
|
||||||
removemsgBox(e.target.parentNode.parentNode.parentNode);
|
removemsgBox(e.target.parentNode.parentNode.parentNode);
|
||||||
}
|
}
|
||||||
}]
|
}]
|
||||||
|
},
|
||||||
|
waitforPlayer: {
|
||||||
|
title: "waiting for players",
|
||||||
|
content: `
|
||||||
|
actually connected: <span id="wfp_players">1</span>
|
||||||
|
`,
|
||||||
|
buttons: [{
|
||||||
|
tpl: `<input class="msgButton" type="button" value="Cancel" />`,
|
||||||
|
event: e => {
|
||||||
|
removemsgBox(e.target.parentNode.parentNode.parentNode);
|
||||||
|
}
|
||||||
|
}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -110,6 +122,11 @@ const removemsgBox = node => {
|
||||||
if(document.querySelectorAll(".msgBox").length === 0 && document.querySelector("div#menu").style.display === "none")
|
if(document.querySelectorAll(".msgBox").length === 0 && document.querySelector("div#menu").style.display === "none")
|
||||||
document.querySelector("#black").style.display = "none";
|
document.querySelector("#black").style.display = "none";
|
||||||
};
|
};
|
||||||
|
export const removeAllmsgBox = () => {
|
||||||
|
document.querySelectorAll(".msgbox").forEach(msgbox => {
|
||||||
|
removemsgBox(msgbox);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
export const msgBox = type => {
|
export const msgBox = type => {
|
||||||
if(document.querySelector("#black").style.display === "none")
|
if(document.querySelector("#black").style.display === "none")
|
||||||
|
|
Loading…
Reference in New Issue
Block a user