${
MP.room.config.minAcc == null ? "off" : MP.room.config.minAcc + "%"
}
@@ -668,6 +669,27 @@ function destroyAllGraphs() {
});
}
+function mp_userReady() {
+ $(".pageTribe .lobby .lobbyButtons .userReadyButton").addClass("hidden");
+ $(".pageTest #result .resultMpButtons .userReadyButton").addClass("hidden");
+ $(".pageTest #result #readyButton").addClass("hidden");
+ MP.socket.emit("mp_user_ready");
+}
+
+function mp_resetReadyButtons() {
+ if (!MP.room.isLeader && !MP.room.isReady) {
+ $(".pageTribe .lobby .lobbyButtons .userReadyButton").removeClass("hidden");
+ $(".pageTest #result .resultMpButtons .userReadyButton").removeClass(
+ "hidden"
+ );
+ $(".pageTest #result #readyButton").removeClass("hidden");
+ } else {
+ $(".pageTribe .lobby .lobbyButtons .userReadyButton").addClass("hidden");
+ $(".pageTest #result .resultMpButtons .userReadyButton").addClass("hidden");
+ $(".pageTest #result #readyButton").addClass("hidden");
+ }
+}
+
MP.socket.on("connect", (f) => {
setTimerStyle("mini", true);
MP.state = 1;
@@ -786,6 +808,10 @@ MP.socket.on("mp_room_joined", (data) => {
MP.room.id.substring(5)
);
$(".pageTribe .lobby .inviteLink .link").text(link);
+ $(".pageTest .tribeResultChat .inviteLink .code .text").text(
+ MP.room.id.substring(5)
+ );
+ $(".pageTest .tribeResultChat .inviteLink .link").text(link);
mp_changeActiveSubpage("lobby");
MP.state = data.room.state;
if (MP.state >= 20 && MP.state < 29) {
@@ -795,12 +821,11 @@ MP.socket.on("mp_room_joined", (data) => {
// MP.state = 10;
// // $(".pageTribe .prelobby").addClass('hidden');
// });
+ mp_resetReadyButtons();
if (MP.room.isLeader) {
$(".pageTribe .lobby .startTestButton").removeClass("hidden");
- $(".pageTribe .lobby .userReadyButton").addClass("hidden");
} else {
$(".pageTribe .lobby .startTestButton").addClass("hidden");
- $(".pageTribe .lobby .userReadyButton").removeClass("hidden");
}
}
});
@@ -823,9 +848,9 @@ MP.socket.on("mp_room_user_left", (data) => {
MP.room.isLeader = true;
MP.room.users[MP.socket.id].isLeader = true;
$(".pageTribe .lobby .lobbyButtons .startTestButton").removeClass("hidden");
- $(".pageTribe .lobby .userReadyButton").addClass("hidden");
$(".pageTest #result #backToLobbyButton").removeClass("hidden");
- $(".pageTest #result #readyButton").addClass("hidden");
+
+ mp_resetReadyButtons();
// $(".pageTest #result #nextTestButton").removeClass("hidden");
}
mp_refreshUserList();
@@ -841,9 +866,8 @@ MP.socket.on("mp_room_config_update", (data) => {
Object.keys(MP.room.users).forEach((sid) => {
MP.room.users[sid].isReady = false;
});
- if (!MP.room.isLeader) {
- $(".pageTribe .lobby .userReadyButton").removeClass("hidden");
- }
+ MP.room.isReady = false;
+ mp_resetReadyButtons();
mp_refreshUserList();
});
@@ -1218,14 +1242,27 @@ MP.socket.on("mp_room_user_info_update", (data) => {
Object.keys(data.values).forEach((bool) => {
MP.room.users[data.sid][bool] = data.values[bool];
if (data.sid === MP.socket.id) {
- if (bool === "isReady" && !data.values[bool] && !MP.room.isLeader) {
- $(".pageTribe .lobby .lobbyButtons .userReadyButton").removeClass(
- "hidden"
- );
- }
MP.room[bool] = data.values[bool];
+ if (bool === "isReady" && !data.values[bool] && !MP.room.isLeader) {
+ mp_resetReadyButtons();
+ }
}
});
+ if ((MP.state === 10 || MP.state === 29) && MP.room.isLeader) {
+ let everyoneReady = true;
+ Object.keys(MP.room.users).forEach((sid) => {
+ if (
+ !MP.room.users[sid].isReady &&
+ !MP.room.users[sid].isLeader &&
+ (!MP.room.users[sid].isTyping || MP.room.users[sid].isFinished)
+ )
+ everyoneReady = false;
+ });
+ if (everyoneReady) {
+ mp_playSound("chat_mention");
+ Notifications.add("Everyone is ready", 1, 3, "Tribe");
+ }
+ }
mp_refreshUserList();
});
@@ -1306,7 +1343,9 @@ $(".pageTribe .lobby .chat .input input").keyup((e) => {
}
});
-$(".pageTribe .lobby .inviteLink .text").click(async (e) => {
+$(
+ ".pageTribe .lobby .inviteLink .text, .pageTest .tribeResultChat .inviteLink .code .text"
+).click(async (e) => {
try {
await navigator.clipboard.writeText(
$(".pageTribe .lobby .inviteLink .text").text()
@@ -1317,14 +1356,23 @@ $(".pageTribe .lobby .inviteLink .text").click(async (e) => {
}
});
-$(".pageTribe .lobby .inviteLink .text").hover(async (e) => {
- $(".pageTribe .lobby .inviteLink .text").css(
+$(
+ ".pageTribe .lobby .inviteLink .text, .pageTest .tribeResultChat .inviteLink .code .text"
+).hover(async (e) => {
+ $(
+ ".pageTribe .lobby .inviteLink .text, .pageTest .tribeResultChat .inviteLink .code .text"
+ ).css(
"color",
- "#" + $(".pageTribe .lobby .inviteLink .text").text()
+ "#" +
+ $(
+ ".pageTribe .lobby .inviteLink .text, .pageTest .tribeResultChat .inviteLink .code .text"
+ ).text()
);
});
-$(".pageTribe .lobby .inviteLink .text").hover(
+$(
+ ".pageTribe .lobby .inviteLink .text, .pageTest .tribeResultChat .inviteLink .code .text"
+).hover(
function () {
$(this).css("color", "#" + $(".pageTribe .lobby .inviteLink .text").text());
},
@@ -1333,7 +1381,9 @@ $(".pageTribe .lobby .inviteLink .text").hover(
}
);
-$(".pageTribe .lobby .inviteLink .link").click(async (e) => {
+$(
+ ".pageTribe .lobby .inviteLink .link, .pageTest .tribeResultChat .inviteLink .link"
+).click(async (e) => {
try {
await navigator.clipboard.writeText(
$(".pageTribe .lobby .inviteLink .link").text()
@@ -1408,17 +1458,18 @@ $(".pageTribe .lobby .lobbyButtons .startTestButton").click((e) => {
});
$(
- ".pageTribe .lobby .lobbyButtons .userReadyButton, .pageTest #result #readyButton"
+ `.pageTribe .lobby .lobbyButtons .userReadyButton,
+ .pageTest #result #readyButton,
+ .pageTest #result .resultMpButtons .userReadyButton`
).click((e) => {
- $(".pageTribe .lobby .lobbyButtons .userReadyButton").addClass("hidden");
- MP.socket.emit("mp_user_ready");
+ mp_userReady();
});
$(
".pageTribe .lobby .lobbyButtons .userReadyButton, .pageTest #result #readyButton"
).on("keypress", "#nextTestButton", (event) => {
if (event.keyCode == 13) {
- MP.socket.emit("mp_user_ready");
+ mp_userReady();
}
});
@@ -1426,6 +1477,21 @@ $(".pageTest #result #backToLobbyButton").click((e) => {
MP.socket.emit("mp_room_back_to_lobby");
});
+$(document).on(
+ "click",
+ ".pageTribe .lobby .currentSettings .groups .group",
+ (e) => {
+ let commands = eval($(e.currentTarget).attr("commands"));
+ let func = $(e.currentTarget).attr("function");
+ if (commands != undefined) {
+ currentCommands.push(commands);
+ showCommandLine();
+ } else if (func != undefined) {
+ eval(func);
+ }
+ }
+);
+
let miniChartSettings = {
type: "line",
data: {
diff --git a/src/sass/style.scss b/src/sass/style.scss
index b1501b064..f5969f6d3 100644
--- a/src/sass/style.scss
+++ b/src/sass/style.scss
@@ -1574,6 +1574,18 @@ key {
.timerAndButtons {
display: grid;
grid-template-columns: 3fr 1fr;
+ .resultMpButtons {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+ .userReadyButton {
+ background: var(--main-color);
+ color: var(--bg-color);
+ &:hover {
+ background: var(--text-color);
+ }
+ }
+ }
.timer {
text-align: center;
}
@@ -2885,13 +2897,40 @@ key {
.pageTest #result {
.tribeResultChat {
display: grid;
- grid-template-areas: "chat userlist";
+ grid-template-areas:
+ "chat userlist"
+ "invitecode invitecode";
grid-template-columns: 3fr 1fr;
gap: 2rem;
}
.title {
color: var(--sub-color);
}
+ .inviteLink {
+ grid-area: invitecode;
+ text-align: center;
+ color: var(--sub-color);
+ display: grid;
+ justify-content: center;
+ .code {
+ width: min-content;
+ }
+ .title {
+ line-height: 1rem;
+ font-size: 1rem;
+ }
+ .text {
+ font-size: 2rem;
+ line-height: 2rem;
+ color: var(--main-color);
+ cursor: pointer;
+ transition: 0.25s;
+ }
+ .link {
+ font-size: 0.75rem;
+ cursor: pointer;
+ }
+ }
.chat {
grid-area: chat;
gap: 1rem;
@@ -3074,6 +3113,7 @@ key {
}
}
.currentSettings {
+ user-select: none;
grid-area: currentsettings;
.groups {
display: grid;
@@ -3095,6 +3135,11 @@ key {
grid-area: inviteLink;
text-align: center;
color: var(--sub-color);
+ display: grid;
+ justify-content: center;
+ .code {
+ width: min-content;
+ }
.title {
line-height: 1rem;
font-size: 1rem;
diff --git a/static/index.html b/static/index.html
index 67580bd6d..a0f065a1b 100644
--- a/static/index.html
+++ b/static/index.html
@@ -1252,6 +1252,10 @@