From b6edc941fc60791cf6f93368cd1e5809af83b592 Mon Sep 17 00:00:00 2001 From: Alec Date: Tue, 16 Nov 2021 22:42:44 -0500 Subject: [PATCH] cleaner styling, display start game prompt --- client/images/Werewolf_Small.png | Bin 1385 -> 1346 bytes client/images/logo_cropped.gif | Bin 0 -> 166055 bytes client/modules/GameCreationStepManager.js | 19 ++++-- client/modules/GameStateRenderer.js | 10 ++- client/modules/Templates.js | 4 ++ client/modules/Toast.js | 2 +- client/modules/UserUtility.js | 9 ++- client/scripts/game.js | 29 ++++++++- client/styles/GLOBAL.css | 47 +++++++++++--- client/styles/create.css | 41 +++++++++++- client/styles/game.css | 67 +++++++++++++++++-- client/styles/home.css | 40 ++++++++++-- client/views/404.html | 75 +++++++++++++++++++--- client/views/create.html | 1 + client/views/game.html | 5 ++ client/views/home.html | 4 +- server/model/Game.js | 1 + server/modules/GameManager.js | 9 ++- server/modules/GameStateCurator.js | 9 ++- 19 files changed, 320 insertions(+), 52 deletions(-) create mode 100644 client/images/logo_cropped.gif diff --git a/client/images/Werewolf_Small.png b/client/images/Werewolf_Small.png index d81ac12e18fe5a4cb410fc900767aa035f3cee8e..0f6256a9986e9c288031df74e8926cc4316654e8 100644 GIT binary patch delta 1181 zcmV;O1Y-N?3c?B@iBL{Q4GJ0x0000DNk~Le0000-0000;2m=5B0FyWv_>m#Df8`4i z05~;N1X-d00004Ra!ynM&!Tsl000BpNklre`^+H7Ym5@QCJg`cDM_bn_fy%RL`CHePHQT~>MAal0$BF-`f8wxi2ju8ez* z-avC&BAA*&5cCSw&5p7e1_^}ge>yFDNf54S96l-(lt^4#7zjKzCDOED*4@0_6LtwPS+JIx?3 z1IV__IHh)R#!wEYby{Vi;(5C?)+ijCp^Uhq6z2e{;q*f&w@9lm=e#qLf1I70IiMk9 zoIT{)Db8Ki<+nQi7_zM@bFL_Xig9X0uT(88Y79-a-J7G@m6P{PYmSsZhTn zRVRd)*Bf>`Ii8ua5LKvWYKntdxF{lZEQ63b-J%UP9IBpc87IqpDlD~S!&WT|In#6z zhy&vMsQZ55)7S~43^fizf0y@n$N?26!aF*+7s(j}WF71d4C8Wv$xILe76JtI`<7fHa;UP<@p<85j4F=C zIxu!PBFZ*K6FeF;E5PgUEHkFgjU$J$ffWI~rx!W&4rc{6bJ5vyf0sjTVIX<&@O|Xr6kBNCWfaR%YP9-kAZilQqmW%mZfFVOg4`s)yh?qJTTtDn5P0bjz52 zqBI92E7CZiv)y;laK6`7b^dVNq@)ERI(T&dRn|FE1JU(3hEuvqK?ys3uN*s7f|yvi zCix%1<#-O96X1PHe-{xYh=`<{Yl0GwWje>)IB7T-kkr2>ZdU?ruVtq0>q4ewfq=Va zmSCA>&Y;rsy%_^x-H}Ldtd0A5&7bepNmPX6)<-#unZ&qZ}ME#%yA?VvVIcPQ2|3`2iY(%js^C=_V{T(?gw zy!qT#S{|bYe{;`cxFm@xt=pEJZM$XWk!N{^u&=lEbKO?npo2FZk1;&o@Z)dmx}imi zgcHIeibz-y#~zMjD%@G|!Duu~F*Sv6sviHHgYLoF^1~lX_|Cu}PyFVBcXO5bv7%Xu zdXM>}GYRvIA`;yNKdYSd_oUx(enDaAcbvP*Ka1N>a|a0qd7%IR03~!qSaf7zbY(hY za%Ew3WdJfTGBGVNF)cASR4_0)H8wgkH!CnOIxsNg4{ve+001R)MObuXVRU6WZEs|0 vW_bWIFfuVMF)=MMH&ie%IyE*rGdC+RFgh?Wl~UKv00000NkvXXu0mjf-HZ$1 delta 1221 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

VgfmgTWyaF`Zg4AE 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�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 M2K7{9aR>kaJ8T~fH~;_u literal 0 HcmV?d00001 diff --git a/client/modules/GameCreationStepManager.js b/client/modules/GameCreationStepManager.js index f10ada1..a284ea5 100644 --- a/client/modules/GameCreationStepManager.js +++ b/client/modules/GameCreationStepManager.js @@ -247,12 +247,19 @@ function renderReviewAndCreateStep(containerId, stepNumber, game) { div.setAttribute("id", "step-" + stepNumber); div.innerHTML = - "" + - "
" + - "" + - "
" + - "" + - "
"; + "
" + + "" + + "
" + + "
" + + "
" + + "" + + "
" + + "
" + + "
" + + "" + + "
" + + "
"; + div.querySelector('#mod-option').innerText = game.hasDedicatedModerator ? "I will be the dedicated mod. Don't deal me a card." diff --git a/client/modules/GameStateRenderer.js b/client/modules/GameStateRenderer.js index fb2af5d..3c22239 100644 --- a/client/modules/GameStateRenderer.js +++ b/client/modules/GameStateRenderer.js @@ -1,4 +1,5 @@ -import {globals} from "../config/globals.js"; +import { globals } from "../config/globals.js"; +import { toast } from "./Toast.js"; export class GameStateRenderer { constructor(gameState) { @@ -30,9 +31,14 @@ export class GameStateRenderer { renderLobbyHeader() { let title = document.createElement("h1"); title.innerText = "Lobby"; - document.body.prepend(title); + document.getElementById("game-title").appendChild(title); let gameLinkContainer = document.getElementById("game-link"); gameLinkContainer.innerText = window.location; + gameLinkContainer.addEventListener('click', () => { + navigator.clipboard.writeText(gameLinkContainer.innerText).then(() => { + toast('Link copied!', 'success', true); + }); + }); let copyImg = document.createElement("img"); copyImg.setAttribute("src", "../images/copy.svg"); gameLinkContainer.appendChild(copyImg); diff --git a/client/modules/Templates.js b/client/modules/Templates.js index f7c2b0d..ca547d6 100644 --- a/client/modules/Templates.js +++ b/client/modules/Templates.js @@ -20,5 +20,9 @@ export const templates = { "" + + "", + START_GAME_PROMPT: + "
" + + "" + "
" } diff --git a/client/modules/Toast.js b/client/modules/Toast.js index 7b14cf5..93a9b72 100644 --- a/client/modules/Toast.js +++ b/client/modules/Toast.js @@ -7,7 +7,7 @@ export const toast = (message, type, positionAtTop = true) => { function buildAndInsertMessageElement (message, type, positionAtTop) { cancelCurrentToast(); let backgroundColor; - const position = positionAtTop ? 'top:4rem;' : 'bottom: 35px;'; + const position = positionAtTop ? 'top:3rem;' : 'bottom: 35px;'; switch (type) { case 'warning': backgroundColor = '#fff5b1'; diff --git a/client/modules/UserUtility.js b/client/modules/UserUtility.js index 208f08a..ce1912c 100644 --- a/client/modules/UserUtility.js +++ b/client/modules/UserUtility.js @@ -1,9 +1,14 @@ import { globals } from '../config/globals.js'; +/* + we will use sessionStorage during local development to aid in testing, vs. localStorage for production. + sessionStorage does not persist across tabs, allowing developers to join a game as different players from different windows. + */ export const UserUtility = { createNewAnonymousUserId (force = true, environment) { let newId, currentId; + if (environment === globals.ENVIRONMENT.LOCAL) { currentId = sessionStorage.getItem(globals.PLAYER_ID_COOKIE_KEY); } else { @@ -23,7 +28,7 @@ export const UserUtility = { }, setAnonymousUserId (id, environment) { - if (environment === globals.ENVIRONMENT.LOCAL) { // use sessionStorage for cookie during local development to aid in testing. + if (environment === globals.ENVIRONMENT.LOCAL) { sessionStorage.setItem(globals.PLAYER_ID_COOKIE_KEY, id); } else { localStorage.setItem(globals.PLAYER_ID_COOKIE_KEY, id); @@ -32,7 +37,7 @@ export const UserUtility = { validateAnonUserSignature (environment) { let userSig; - if (environment === globals.ENVIRONMENT.LOCAL) { // use sessionStorage for cookie during local development to aid in testing. + if (environment === globals.ENVIRONMENT.LOCAL) { userSig = sessionStorage.getItem(globals.PLAYER_ID_COOKIE_KEY); } else { userSig = localStorage.getItem(globals.PLAYER_ID_COOKIE_KEY); diff --git a/client/scripts/game.js b/client/scripts/game.js index 32cafad..f4426ad 100644 --- a/client/scripts/game.js +++ b/client/scripts/game.js @@ -32,8 +32,17 @@ function processGameState (gameState, userId, socket, gameStateRenderer) { switch (gameState.status) { case globals.GAME_STATE.LOBBY: document.getElementById("game-state-container").innerHTML = templates.LOBBY; - gameStateRenderer.renderLobbyPlayers(); gameStateRenderer.renderLobbyHeader(); + gameStateRenderer.renderLobbyPlayers(); + if ( + gameState.isFull + && ( + gameState.userType === globals.USER_TYPES.MODERATOR + || gameState.userType === globals.USER_TYPES.TEMPORARY_MODERATOR + ) + ) { + displayStartGamePromptForModerators(); + } break; default: break; @@ -41,9 +50,25 @@ function processGameState (gameState, userId, socket, gameStateRenderer) { } function setClientSocketHandlers(gameStateRenderer, socket) { - socket.on(globals.EVENTS.PLAYER_JOINED, (player) => { + socket.on(globals.EVENTS.PLAYER_JOINED, (player, gameIsFull) => { toast(player.name + " joined!", "success", false); gameStateRenderer.gameState.people.push(player); gameStateRenderer.renderLobbyPlayers(); + if ( + gameIsFull + && ( + gameStateRenderer.gameState.userType === globals.USER_TYPES.MODERATOR + || gameStateRenderer.gameState.userType === globals.USER_TYPES.TEMPORARY_MODERATOR + ) + ) { + displayStartGamePromptForModerators(); + } }) } + +function displayStartGamePromptForModerators() { + document.getElementById("lobby-players").setAttribute("style", 'margin-bottom: 130px'); + let div = document.createElement("div"); + div.innerHTML = templates.START_GAME_PROMPT; + document.body.appendChild(div); +} diff --git a/client/styles/GLOBAL.css b/client/styles/GLOBAL.css index fc363cc..7b99623 100644 --- a/client/styles/GLOBAL.css +++ b/client/styles/GLOBAL.css @@ -23,23 +23,20 @@ th, thead, tr, tt, u, ul, var { html { font-family: 'signika-negative', sans-serif !important; - background-color: #23282b !important; + background-color: #121314 !important; } body { display: flex; flex-direction: column; align-items: flex-start; - width: 95%; margin: 0 auto; - max-width: 68em; } h1 { font-family: 'diavlo', sans-serif; color: #ab2626; filter: drop-shadow(2px 2px 4px black); - font-size: 50px; margin: 0.5em 0; } @@ -79,12 +76,13 @@ textarea, input { button, input[type="submit"] { font-family: 'signika-negative', sans-serif !important; padding: 10px; - background-color: black; + background-color: #722c2c; border-radius: 3px; color: whitesmoke; font-size: 18px; cursor: pointer; border: 2px solid transparent; + transition: background-color 0.3s ease-out; } button:active, input[type=submit]:active { @@ -97,11 +95,13 @@ button:active, input[type=submit]:active { display: flex; flex-direction: column; justify-content: center; - width: 100%; + width: 95%; + max-width: 68em; + margin: 0 auto; } -button:hover, input[type="submit"]:hover { - background-color: #4f4f4f; +button:hover, input[type="submit"]:hover, #game-link:hover { + background-color: #333243; } input { @@ -122,7 +122,7 @@ input { left: 0; right: 0; width: fit-content; - max-width: 30em; + max-width: 80%; min-width: 15em; font-size: 20px; margin: 0 auto; @@ -134,8 +134,14 @@ input { #navbar { display: flex; align-items: center; - padding: 5px; + padding: 5px 0; width: 100%; + background-color: #333243; +} + +#navbar img { + margin: 0 1em; + width: 50px; } #navbar a { @@ -143,6 +149,7 @@ input { text-decoration: none; cursor: pointer; font-size: 25px; + font-family: 'diavlo', sans-serif; } #navbar a:hover { @@ -253,3 +260,23 @@ input { transform: translateY(-20px); } } + +@media(max-width: 550px) { + h1 { + font-size: 35px; + } + + #step-1 div { + font-size: 20px; + } +} + +@media(min-width: 551px) { + h1 { + font-size: 50px; + } + + #step-1 div { + font-size: 25px; + } +} diff --git a/client/styles/create.css b/client/styles/create.css index 9eb7037..5976516 100644 --- a/client/styles/create.css +++ b/client/styles/create.css @@ -86,7 +86,7 @@ width: fit-content; } -#deck-container, #custom-roles-container, #step-3 { +#deck-container, #custom-roles-container { margin: 1em 0; background-color: #1f1f1f; padding: 10px; @@ -95,12 +95,29 @@ #step-3 { display: flex; + padding: 10px; justify-content: center; align-items: center; width: fit-content; + border-radius: 3px; margin: 0 auto; } +#step-4 > div { + display: flex; + flex-direction: column; + align-items: center; + text-align: left; + justify-content: center; + margin: 0 auto; + width: 25em; + max-width: 95%; +} + +#step-4 > div label { + width: 100%; +} + #deck { display: flex; flex-wrap: wrap; @@ -235,7 +252,6 @@ input[type="number"] { cursor: pointer; border: 2px solid transparent; border-radius: 3px; - font-size: 25px; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.6); } @@ -259,6 +275,7 @@ input[type="number"] { width: fit-content; border-radius: 3px; margin: 0.5em 0; + align-self: flex-start; } @keyframes fade-in { @@ -268,3 +285,23 @@ input[type="number"] { opacity: 1; } } + +@media(max-width: 550px) { + h1 { + font-size: 35px; + } + + #step-1 div { + font-size: 20px; + } +} + +@media(min-width: 551px) { + h1 { + font-size: 50px; + } + + #step-1 div { + font-size: 25px; + } +} diff --git a/client/styles/game.css b/client/styles/game.css index b285bc7..f6950b3 100644 --- a/client/styles/game.css +++ b/client/styles/game.css @@ -41,15 +41,15 @@ h1 { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; - border: 2px solid transparent; cursor: pointer; margin-top: 10px; - padding: 5px; + padding: 7px; border-radius: 3px; - background-color: #1f1f1f; + background-color: #722c2c; color: whitesmoke; align-items: center; display: flex; + transition: background-color 0.2s; } #game-player-count { @@ -63,8 +63,8 @@ h1 { margin-left: 0.5em; } -#game-link:hover { - border: 2px solid #0075F2; +#game-title { + margin: 0 auto; } label[for='moderator'] { @@ -80,3 +80,60 @@ label[for='lobby-players'] { filter: drop-shadow(2px 2px 4px black); font-size: 30px; } + +#start-game-prompt { + display: flex; + align-items: center; + justify-content: center; + position: fixed; + z-index: 1000; + border-radius: 3px; + font-family: 'signika-negative', sans-serif; + font-weight: 100; + box-shadow: 0 2px 4px 0 rgb(0 0 0 / 25%); + left: 0; + right: 0; + bottom: 0; + /* width: fit-content; */ + font-size: 20px; + height: 120px; + margin: 0 auto; + animation: fade-in-slide-up 10s ease; + animation-fill-mode: forwards; + animation-direction: normal; + width: 100%; + background-color: #333243; +} + +#start-game-button { + font-family: 'signika-negative', sans-serif !important; + padding: 10px; + background-color: #1c8a36; + border-radius: 3px; + color: whitesmoke; + font-size: 30px; + cursor: pointer; + border: 2px solid transparent; + transition: background-color, border 0.3s ease-out; + text-shadow: 0 3px 4px rgb(0 0 0 / 85%); +} + +#start-game-button:hover { + background-color: #326243; + border: 2px solid #1c8a36; +} + +@keyframes fade-in-slide-up { + 0% { + opacity: 0; + transform: translateY(20px); + } + 5% { + opacity: 1; + transform: translateY(0px); + } + 100% { + opacity: 1; + transform: translateY(0px); + } +} diff --git a/client/styles/home.css b/client/styles/home.css index 2b9761a..f84aee8 100644 --- a/client/styles/home.css +++ b/client/styles/home.css @@ -1,10 +1,15 @@ +html { + height: 100%; +} + body { align-items: center; + justify-content: center; + height: 100%; } button { padding: 20px; - font-size: 25px; margin-bottom: 1em; } @@ -19,6 +24,10 @@ form { align-items: center; } +a button { + text-shadow: 0 3px 4px rgb(0 0 0 / 85%); +} + #join-button { min-width: 6em; max-height: 3em; @@ -26,19 +35,26 @@ form { } h3 { - max-width: 30em; - font-size: 16px; + font-size: 20px; margin-bottom: 2em; + padding: 1em; + max-width: 23em; + font-family: 'diavlo', sans-serif; } img { - max-width: 650px; + max-width: 400px; width: 63vw; - min-width: 430px; + min-width: 250px; + margin: 1em 0; } form > div { - margin: 1em; + margin: 1em 0; +} + +#join-container { + max-width: 90%; } #join-container > label { @@ -51,3 +67,15 @@ form > div { label[for="room-code"], label[for="player-name"] { margin-right: 0.5em; } + +@media (min-width: 700px) { + button { + font-size: 35px; + } +} + +@media (max-width: 701px) { + button { + font-size: 5vw; + } +} diff --git a/client/views/404.html b/client/views/404.html index 07ab078..4a212d6 100644 --- a/client/views/404.html +++ b/client/views/404.html @@ -3,22 +3,77 @@ - - Werewolf Utility - - + Create A Game + + - - + + - - - + + + + + + + + + + -

404

+ + +

404

+

The game or other resource that you are looking for could not be found, or you don't have permission to access it. + If this error is unexpected, the application may have restarted.

+
+ diff --git a/client/views/create.html b/client/views/create.html index 251eb12..1250225 100644 --- a/client/views/create.html +++ b/client/views/create.html @@ -26,6 +26,7 @@
diff --git a/client/views/game.html b/client/views/game.html index 78e0b17..cae06da 100644 --- a/client/views/game.html +++ b/client/views/game.html @@ -18,6 +18,11 @@ + +