From f70fcc6addd7cac8847314442b17bbbe15e780fb Mon Sep 17 00:00:00 2001 From: Jack Date: Wed, 7 Apr 2021 20:49:41 +0100 Subject: [PATCH] added multi queue --- src/js/tribe/matchmaking.js | 46 +++++++++++++++++++++++++++ src/js/tribe/tribe-default-configs.js | 17 +++++++++- src/js/tribe/tribe.js | 44 ++++++++++++++----------- src/sass/style.scss | 19 +++++++---- static/index.html | 16 +++++++--- 5 files changed, 112 insertions(+), 30 deletions(-) diff --git a/src/js/tribe/matchmaking.js b/src/js/tribe/matchmaking.js index 7d7d24f9d..08f003771 100644 --- a/src/js/tribe/matchmaking.js +++ b/src/js/tribe/matchmaking.js @@ -1,5 +1,7 @@ let banner = $("#tribeMatchmakingStatus"); +export let queues = [true, true, true, true]; + export function showBanner() { banner.removeClass("hidden"); } @@ -45,3 +47,47 @@ export function hideLeaveQueueButton() { "hidden" ); } + +export function showStartQueueButton() { + $(".pageTribe .prelobby .matchmaking .startMatchmakingButton").removeClass( + "hidden" + ); +} + +export function hideStartQueueButton() { + $(".pageTribe .prelobby .matchmaking .startMatchmakingButton").addClass( + "hidden" + ); +} + +function toggleQueue(queue) { + queues[queue] = !queues[queue]; +} + +function refreshQueueButtons() { + let buttons = $(".pageTribe .prelobby .matchmaking .buttons .button"); + + buttons.removeClass("active"); + + queues.forEach((queue, id) => { + if (queue) { + $(buttons[id]).addClass("active"); + } + }); +} + +export function getQ() { + let ret = []; + queues.forEach((queue, id) => { + if (queue) { + ret.push(id); + } + }); + return ret; +} + +$(".pageTribe .prelobby .matchmaking .buttons .button").click((e) => { + let queue = $(e.currentTarget).attr("queue"); + toggleQueue(queue); + refreshQueueButtons(); +}); diff --git a/src/js/tribe/tribe-default-configs.js b/src/js/tribe/tribe-default-configs.js index b279dacbe..d0069ef6b 100644 --- a/src/js/tribe/tribe-default-configs.js +++ b/src/js/tribe/tribe-default-configs.js @@ -35,7 +35,22 @@ export default [ }, { mode: "quote", - mode2: [0], + mode2: [1], + difficulty: "normal", + blindMode: false, + language: "english", + funbox: "none", + stopOnError: "word", + confidenceMode: false, + customText: null, + punctuation: false, + numbers: false, + minWpm: null, + minAcc: null, + }, + { + mode: "quote", + mode2: [2], difficulty: "normal", blindMode: false, language: "english", diff --git a/src/js/tribe/tribe.js b/src/js/tribe/tribe.js index 369aa537d..f6e662819 100644 --- a/src/js/tribe/tribe.js +++ b/src/js/tribe/tribe.js @@ -29,12 +29,11 @@ export let socket = io( ); export let activePage = "preloader"; export let pageTransition = false; -export let expectedVersion = "0.9.4"; +export let expectedVersion = "0.9.6"; export let room = undefined; let name = undefined; let autoJoin = undefined; -let lastQueue = undefined; export function setAutoJoin(code) { autoJoin = code; @@ -1130,6 +1129,7 @@ socket.on("mp_room_leave", () => { resetRace(); Matchmaking.enableLobbyButtons(); Matchmaking.hideLeaveQueueButton(); + Matchmaking.showStartQueueButton(); Matchmaking.hideBanner(); // swapElements($(".pageTribe .lobby"), $(".pageTribe .prelobby"), 250); }); @@ -1183,17 +1183,19 @@ socket.on("mp_room_new_leader", (data) => { socket.on("mp_room_config_update", (data) => { room.config = data.newConfig; - refreshConfig(); - if (!room.isLeader) { - Notifications.add("Config changed", 0, 2); - applyRoomConfig(room.config); + if (room.private) { + refreshConfig(); + if (!room.isLeader) { + Notifications.add("Config changed", 0, 2); + applyRoomConfig(room.config); + } + Object.keys(room.users).forEach((sid) => { + room.users[sid].isReady = false; + }); + room.isReady = false; + resetReadyButtons(); + refreshUserList(); } - Object.keys(room.users).forEach((sid) => { - room.users[sid].isReady = false; - }); - room.isReady = false; - resetReadyButtons(); - refreshUserList(); }); socket.on("mp_chat_message", async (data) => { @@ -1466,6 +1468,10 @@ socket.on("mp_room_test_init", (data) => { //test already visible, delay some stuff delay = 125; } + if (!room.private) { + room.config = data.newConfig; + applyRoomConfig(room.config); + } playSound("start"); room.userSpeeds = {}; @@ -1968,16 +1974,17 @@ $(".pageTribe .prelobby #joinByCode input").focusout((e) => { ); }); -$(".pageTribe .prelobby .matchmaking .button").click((e) => { +$(".pageTribe .prelobby .matchmaking .startMatchmakingButton").click((e) => { if (state >= 6 && state <= 8) return; if ($(e.currentTarget).hasClass("disabled")) return; - let queue = $(e.currentTarget).attr("queue"); + let queue = Matchmaking.getQ(); Matchmaking.setBannerText("Searching for a room..."); Matchmaking.showBanner(); state = 6; - lastQueue = queue; - applyRoomConfig(TribeDefaultConfigs[queue]); + // lastQueue = queue; + // applyRoomConfig(TribeDefaultConfigs[queue]); Matchmaking.disableLobbyButtons(); + Matchmaking.hideStartQueueButton(); setTimeout(() => { Matchmaking.showLeaveQueueButton(); socket.emit("mp_room_join", { queue: queue }); @@ -1991,11 +1998,12 @@ $(".pageTest #result #queueAgainButton").click((e) => { Matchmaking.showBanner(); showHideTribeDiff(false); state = 6; - applyRoomConfig(TribeDefaultConfigs[lastQueue]); + // applyRoomConfig(TribeDefaultConfigs[lastQueue]); TestLogic.restart(); Matchmaking.disableLobbyButtons(); + Matchmaking.hideStartQueueButton(); setTimeout(() => { - socket.emit("mp_room_join", { queue: lastQueue }); + socket.emit("mp_room_join", { queue: Matchmaking.getQ() }); Matchmaking.showLeaveQueueButton(); resetResult(); }, 1000); diff --git a/src/sass/style.scss b/src/sass/style.scss index 5e5473964..9298fd78d 100644 --- a/src/sass/style.scss +++ b/src/sass/style.scss @@ -3629,17 +3629,21 @@ key { grid-area: mm; display: grid; gap: 1rem; - grid-template-rows: auto 1fr; - .title { + grid-template-rows: auto auto 1fr; + .title, + .subtitle { color: var(--sub-color); } .buttons { display: grid; - grid-template-columns: 1fr 1fr 1fr; + grid-template-columns: 1fr 1fr; gap: 1rem; - .button { - padding: 2rem 0; - } + // .button { + // padding: 2rem 0; + // } + } + .button { + padding: 0.7rem 0.5rem; } .leaveMatchmakingButton { padding: 0.7rem; @@ -3649,11 +3653,12 @@ key { grid-area: priv; display: grid; gap: 1rem; + grid-template-rows: auto auto auto 1fr; .title { color: var(--sub-color); } #createPrivateRoom { - padding: 2rem 0; + padding: 2.4rem 0; } } #joinByCode { diff --git a/static/index.html b/static/index.html index cd53f8aac..2d3934fe3 100644 --- a/static/index.html +++ b/static/index.html @@ -3912,18 +3912,26 @@
matchmaking
-
+
Time 15
-
+
Time 60
-
+
- Quotes + Medium Quotes
+
+ + Long Quotes +
+
+
+ + Search