lobby advancement
This commit is contained in:
parent
3728b2986f
commit
2282a5b91a
@ -25,6 +25,19 @@ def create_game():
|
||||
flask.session["username"] = username
|
||||
|
||||
return response
|
||||
|
||||
@routes_api.route("/getGameMembers", methods=["GET", "POST"])
|
||||
def getMembers():
|
||||
if not flask.session:
|
||||
return {"error": 1, "msg": "No session"}
|
||||
game = game_logic.get_game(flask.session["game_id"])
|
||||
if game == None:
|
||||
return {"error": 1, "msg": "this game doesn't exist"}
|
||||
|
||||
response = {"error" : 0}
|
||||
player_list = [member.username for member in game.members]
|
||||
response["members"] = player_list
|
||||
return response
|
||||
|
||||
@routes_api.route("/joinGame", methods=["GET", "POST"])
|
||||
def join_game():
|
||||
@ -49,7 +62,16 @@ def join_game():
|
||||
APP.socketio_app.emit("playersjoin", [flask.session["username"]], room="game."+game.game_id)
|
||||
|
||||
return {"error": 0}
|
||||
|
||||
|
||||
@routes_api.route("/hasJoined", methods=["GET", "POST"])
|
||||
def has_joined():
|
||||
if not flask.session:
|
||||
return {"error": 0, "joined": False}
|
||||
game = game_logic.get_game(flask.session["game_id"])
|
||||
if game == None:
|
||||
return {"error": 0, "joined": False}
|
||||
return {"error": 0, "joined": True}
|
||||
|
||||
@routes_api.route("/startGame", methods=["GET", "POST"])
|
||||
def start_game():
|
||||
if not flask.session:
|
||||
|
@ -23,6 +23,14 @@ function displayRoomCode() {
|
||||
* Display the players list element.
|
||||
*/
|
||||
function displayPlayerList() {
|
||||
response = makeAPIRequest("getGameMembers");
|
||||
response.then((value) =>{
|
||||
player_list = document.getElementsByClassName("player_names")[0];
|
||||
value["members"].forEach(username => {
|
||||
player_list.appendChild(document.createTextNode(username+"\n"));
|
||||
});
|
||||
|
||||
});
|
||||
document.getElementsByClassName("players_list")[0].classList.remove("hidden");
|
||||
}
|
||||
|
||||
@ -49,6 +57,10 @@ function displayJoinRoomView() {
|
||||
document.getElementsByClassName("join_room_view")[0].classList.remove("hidden");
|
||||
}
|
||||
|
||||
|
||||
function addJoinRoomView() {
|
||||
document.getElementsByClassName("join_room_view")[0].classList.add("hidden");
|
||||
}
|
||||
/**
|
||||
* Show an error message on the first game_start_failed CSS element.
|
||||
*
|
||||
@ -111,9 +123,16 @@ function joinRoom() {
|
||||
}
|
||||
|
||||
hideInvalidNickNameErrorMessage();
|
||||
//TODO: join the game room and handle server errors + connection errors
|
||||
data = {}
|
||||
data["username"] = document.getElementById("game_username").value;
|
||||
data["game_id"] = getRoomCode();
|
||||
response = makeAPIRequest("joinGame",data);
|
||||
response.then((value)=>{
|
||||
displayRoomView();
|
||||
displayPlayerList();
|
||||
displayJoinRoomView();
|
||||
})
|
||||
}
|
||||
|
||||
// Room code functions
|
||||
|
||||
/**
|
||||
@ -216,9 +235,9 @@ function isRoomOwner() {
|
||||
return true;
|
||||
}
|
||||
|
||||
function hasJoinedRoom() {
|
||||
//FIXME: check if player has joined the room
|
||||
return true;
|
||||
async function hasJoinedRoom() {
|
||||
response = await makeAPIRequest("hasJoined");
|
||||
return response["joined"];
|
||||
}
|
||||
|
||||
/**
|
||||
@ -297,7 +316,6 @@ function getChallengeModeRoundsCount() {
|
||||
*/
|
||||
function getRoomCode() {
|
||||
gameid = document.getElementById("game_id").value;
|
||||
console.log(gameid);
|
||||
return gameid;
|
||||
}
|
||||
|
||||
@ -317,7 +335,7 @@ function getRoomCode() {
|
||||
* join room button will be set.
|
||||
* </p>
|
||||
*/
|
||||
function initLobby() {
|
||||
async function initLobby() {
|
||||
|
||||
gameid = getRoomCode();
|
||||
socket = io({
|
||||
@ -330,12 +348,13 @@ function initLobby() {
|
||||
console.log("Connected !")
|
||||
})
|
||||
|
||||
socket.on("playersjoin", (err) => {
|
||||
console.log(`Failed to connect to socket: ${err.message}`);
|
||||
socket.on("playersjoin", (username) => {
|
||||
console.log(`${username} joined`);
|
||||
player_list = document.getElementsByClassName("player_names")[0];
|
||||
player_list.appendChild(document.createTextNode(username));
|
||||
});
|
||||
|
||||
|
||||
if (hasJoinedRoom()) {
|
||||
if (await hasJoinedRoom()) {
|
||||
displayRoomView();
|
||||
if (isRoomOwner()) {
|
||||
displayRoomCode();
|
||||
|
Loading…
Reference in New Issue
Block a user