diff --git a/src/js/config.js b/src/js/config.js index 91d3a8fcd..2dbc653cf 100644 --- a/src/js/config.js +++ b/src/js/config.js @@ -261,11 +261,11 @@ export function setMode(mode, nosave, mp = false) { $("#top .config .punctuationMode").removeClass("hidden"); $("#top .config .numbersMode").removeClass("hidden"); $("#top .config .quoteLength").addClass("hidden"); - setPunctuation(false, true); - setNumbers(false, true); + setPunctuation(false, true, mp); + setNumbers(false, true, mp); } else if (config.mode == "quote") { - setPunctuation(false, nosave); - setNumbers(false, nosave); + setPunctuation(false, nosave, mp); + setNumbers(false, nosave, mp); $("#top .config .wordCount").addClass("hidden"); $("#top .config .time").addClass("hidden"); $("#top .config .customText").addClass("hidden"); diff --git a/src/js/test/funbox.js b/src/js/test/funbox.js index d704d7e6c..db88d62a3 100644 --- a/src/js/test/funbox.js +++ b/src/js/test/funbox.js @@ -75,7 +75,7 @@ export async function activate(funbox, mode, mp = false) { if (!Tribe.checkIfCanChangeConfig(mp)) { return; } - if (TestLogic.active || (TestUI.resultVisible && Tribe.state < 10)) { + if (TestLogic.active || (TestUI.resultVisible && Tribe.state < 8)) { Notifications.add( "You can only change the funbox before starting a test.", 0 diff --git a/src/js/test/test-logic.js b/src/js/test/test-logic.js index 03df9b9c9..67185e086 100644 --- a/src/js/test/test-logic.js +++ b/src/js/test/test-logic.js @@ -961,27 +961,42 @@ export function finish(difficultyFailed = false, mp_outOfTime = false) { ChartController.result.options.annotation.annotations = []; + $(".pageTest #nextTestButton").removeClass("hidden"); + $(".pageTest #backToLobbyButton").addClass("hidden"); + $(".pageTest #readyButton").addClass("hidden"); + $(".pageTest #restartTestButtonWithSameWordset").removeClass("hidden"); + $(".pageTest #goBackToLobbyButton").addClass("hidden"); + $(".pageTest #practiseMissedWordsButton").removeClass("hidden"); + $(".pageTest #result .tribeResultChat").addClass("hidden"); + $(".pageTest #readyButton").addClass("hidden"); + $(".pageTest #queueAgainButton").addClass("hidden"); + if (Tribe.state >= 10) { - $(".pageTest #nextTestButton").addClass("hidden"); - $(".pageTest #backToLobbyButton").addClass("hidden"); - $(".pageTest #readyButton").removeClass("hidden"); - $(".pageTest #restartTestButtonWithSameWordset").addClass("hidden"); - $(".pageTest #goBackToLobbyButton").removeClass("hidden"); - $(".pageTest #practiseMissedWordsButton").addClass("hidden"); - $(".pageTest #result .tribeResultChat").removeClass("hidden"); - if (Tribe.room.isLeader) { - // $(".pageTest #backToLobbyButton").removeClass("hidden"); - // $(".pageTest #nextTestButton").removeClass("hidden"); - $(".pageTest #readyButton").addClass("hidden"); + if (Tribe.room.private) { + $(".pageTest #nextTestButton").addClass("hidden"); + $(".pageTest #backToLobbyButton").addClass("hidden"); + $(".pageTest #readyButton").removeClass("hidden"); + $(".pageTest #restartTestButtonWithSameWordset").addClass("hidden"); + $(".pageTest #goBackToLobbyButton").removeClass("hidden"); + $(".pageTest #practiseMissedWordsButton").addClass("hidden"); + $(".pageTest #result .tribeResultChat").removeClass("hidden"); + $(".pageTest #result .resultMpButtons").removeClass("hidden"); + + if (Tribe.room.isLeader) { + // $(".pageTest #backToLobbyButton").removeClass("hidden"); + // $(".pageTest #nextTestButton").removeClass("hidden"); + $(".pageTest #readyButton").addClass("hidden"); + } else { + $(".pageTest #readyButton").removeClass("hidden"); + } + } else { + //public + $(".pageTest #result .resultMpButtons").addClass("hidden"); + $(".pageTest #nextTestButton").removeClass("hidden"); + $(".pageTest #restartTestButtonWithSameWordset").removeClass("hidden"); + $(".pageTest #practiseMissedWordsButton").removeClass("hidden"); + $(".pageTest #queueAgainButton").removeClass("hidden"); } - } else { - $(".pageTest #nextTestButton").removeClass("hidden"); - $(".pageTest #backToLobbyButton").addClass("hidden"); - $(".pageTest #readyButton").addClass("hidden"); - $(".pageTest #restartTestButtonWithSameWordset").removeClass("hidden"); - $(".pageTest #goBackToLobbyButton").addClass("hidden"); - $(".pageTest #practiseMissedWordsButton").removeClass("hidden"); - $(".pageTest #result .tribeResultChat").addClass("hidden"); } $("#result #resultWordsHistory").addClass("hidden"); diff --git a/src/js/tribe-default-configs.js b/src/js/tribe-default-configs.js index d3a18c3f8..b279dacbe 100644 --- a/src/js/tribe-default-configs.js +++ b/src/js/tribe-default-configs.js @@ -35,7 +35,7 @@ export default [ }, { mode: "quote", - mode2: -1, + mode2: [0], difficulty: "normal", blindMode: false, language: "english", diff --git a/src/js/tribe.js b/src/js/tribe.js index 46c668ef1..82d1ae606 100644 --- a/src/js/tribe.js +++ b/src/js/tribe.js @@ -36,6 +36,7 @@ export let expectedVersion = "0.8.2"; export let room = undefined; let name = undefined; let autoJoin = undefined; +let lastQueue = undefined; export function setAutoJoin(code) { autoJoin = code; @@ -217,8 +218,8 @@ function resetRace() { $(".pageTribe .lobby .tribePlayers").empty().addClass("hidden"); hideCountdown(); hideResultCountdown(); - $(".pageTest #result .tribeResult").addClass("hidden"); - $(".pageTest #result .tribeResultChat").addClass("hidden"); + // $(".pageTest #result .tribeResult").addClass("hidden"); + // $(".pageTest #result .tribeResultChat").addClass("hidden"); } function applyRoomConfig(cfg) { @@ -228,7 +229,7 @@ function applyRoomConfig(cfg) { } else if (cfg.mode === "words") { UpdateConfig.setWordCount(cfg.mode2, true, true); } else if (cfg.mode === "quote") { - UpdateConfig.setQuoteLength(cfg.mode2, true, true); + UpdateConfig.setQuoteLength(cfg.mode2, true, true, true); } UpdateConfig.setDifficulty(cfg.difficulty, true, true); UpdateConfig.setBlindMode(cfg.blindMode, true, true); @@ -1126,7 +1127,7 @@ socket.on("mp_room_leave", () => { resetLobby(); changeActiveSubpage("prelobby"); resetLobby(); - if (privateRoom) resetRace(); + resetRace(); // swapElements($(".pageTribe .lobby"), $(".pageTribe .prelobby"), 250); }); @@ -1244,7 +1245,6 @@ socket.on("mp_update_mm_status", (data) => { MatchmakingStatus.hide(); } if (data.text !== undefined) MatchmakingStatus.setText(data.text); - if (data.text !== undefined) MatchmakingStatus.setText(data.text); }); socket.on("mp_room_user_istypingupdate", (data) => { @@ -1431,7 +1431,6 @@ socket.on("mp_room_readyResultTimer_over", (data) => { }); socket.on("mp_room_test_init", (data) => { - refreshTestUserList(); if (room.private && room.isReady !== true && room.isLeader !== true) { UI.changePage("tribe"); changeActiveSubpage("lobby"); @@ -1443,6 +1442,13 @@ socket.on("mp_room_test_init", (data) => { ); return; } + + let delay = 0; + if ($(".page.pageTest").hasClass("active")) { + //test already visible, delay some stuff + delay = 125; + } + playSound("start"); room.userSpeeds = {}; resetTribeDiff(); @@ -1459,10 +1465,13 @@ socket.on("mp_room_test_init", (data) => { resultSuggestions.hide(); MatchmakingStatus.reset(); sendIsTypingUpdate(false); - TestLogic.restart(false, true, true); - showCountdown(); hideResultCountdown(); $(".pageTest #restartTestButton").addClass("hidden"); + + setTimeout(() => { + refreshTestUserList(); + showCountdown(); + }, delay); }); socket.on("mp_room_state_update", (data) => { @@ -1935,12 +1944,24 @@ $(".pageTribe .prelobby .matchmaking .button").click((e) => { MatchmakingStatus.setText("Searching for a room..."); MatchmakingStatus.show(); state = 8; + lastQueue = queue; applyRoomConfig(TribeDefaultConfigs[queue]); setTimeout(() => { socket.emit("mp_room_join", { queue: queue }); }, 1000); }); +$(".pageTest #result #queueAgainButton").click((e) => { + MatchmakingStatus.setText("Searching for a room..."); + MatchmakingStatus.show(); + state = 8; + applyRoomConfig(TribeDefaultConfigs[lastQueue]); + TestLogic.restart(); + setTimeout(() => { + socket.emit("mp_room_join", { queue: lastQueue }); + }, 1000); +}); + $(".pageTribe .prelobby #joinByCode .button").click((e) => { let code = $(".pageTribe .prelobby #joinByCode input").val().toLowerCase(); if (code.length !== 6) { diff --git a/src/js/ui.js b/src/js/ui.js index 3985c3455..8eb43199b 100644 --- a/src/js/ui.js +++ b/src/js/ui.js @@ -145,7 +145,11 @@ export function changePage(page, tribe = false) { // incompleteTestSeconds = 0; TestStats.resetIncomplete(); ManualRestart.set(); - TestLogic.restart(undefined, undefined, undefined, tribe); + if (tribe) { + TestLogic.restart(false, true, undefined, tribe); + } else { + TestLogic.restart(undefined, undefined, undefined, tribe); + } } else if (page == "about") { setPageTransition(true); TestLogic.restart(); diff --git a/src/sass/style.scss b/src/sass/style.scss index d7b63ffa6..3c01d16d1 100644 --- a/src/sass/style.scss +++ b/src/sass/style.scss @@ -2474,6 +2474,7 @@ key { #nextTestButton, #backToLobbyButton, #readyButton, +#queueAgainButton, #practiseMissedWordsButton, #goBackToLobbyButton { position: relative; diff --git a/static/index.html b/static/index.html index 5f9eac87f..841f5eba4 100644 --- a/static/index.html +++ b/static/index.html @@ -1497,6 +1497,15 @@ > +