From 7ca184cfee73c214c4503fc968aff5993bdf52c2 Mon Sep 17 00:00:00 2001 From: AlecM33 Date: Fri, 7 Jan 2022 19:00:38 -0500 Subject: [PATCH] display custom role info --- client/src/images/roles/custom-role.svg | 107 ++++++++++++++++++ client/src/images/screenshots/deckbuilder.PNG | Bin 0 -> 61433 bytes client/src/modules/GameCreationStepManager.js | 15 ++- client/src/modules/GameStateRenderer.js | 19 ++-- client/src/modules/Templates.js | 8 +- client/src/scripts/game.js | 1 + client/src/styles/create.css | 4 +- client/src/styles/modal.css | 23 ++++ client/src/views/create.html | 8 ++ server/modules/GameManager.js | 2 + server/modules/GameStateCurator.js | 1 + 11 files changed, 175 insertions(+), 13 deletions(-) create mode 100644 client/src/images/roles/custom-role.svg create mode 100644 client/src/images/screenshots/deckbuilder.PNG diff --git a/client/src/images/roles/custom-role.svg b/client/src/images/roles/custom-role.svg new file mode 100644 index 0000000..3184bb5 --- /dev/null +++ b/client/src/images/roles/custom-role.svg @@ -0,0 +1,107 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/client/src/images/screenshots/deckbuilder.PNG b/client/src/images/screenshots/deckbuilder.PNG new file mode 100644 index 0000000000000000000000000000000000000000..f7310b0ba7b03d1803c34990bda73ce1993e6fc2 GIT binary patch literal 61433 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 literal 0 HcmV?d00001 diff --git a/client/src/modules/GameCreationStepManager.js b/client/src/modules/GameCreationStepManager.js index a67208b..c6acab6 100644 --- a/client/src/modules/GameCreationStepManager.js +++ b/client/src/modules/GameCreationStepManager.js @@ -537,7 +537,7 @@ function addCustomRoleEventListeners(deckManager, select) { if (!deckManager.getCard(name)) { deckManager.addToDeck(name); let cardEl = constructCompactDeckBuilderElement(deckManager.getCard(name), deckManager); - toast('"' + name + '" included.', 'success', true, true, 3); + toast('"' + name + '" made available below.', 'success', true, true, 4); if (deckManager.getCard(name).team === globals.ALIGNMENT.GOOD) { document.getElementById("deck-good").appendChild(cardEl); } else { @@ -555,6 +555,19 @@ function addCustomRoleEventListeners(deckManager, select) { deckManager.removeFromCustomRoleOptions(name); updateCustomRoleOptionsList(deckManager, select); } + }); + + role.querySelector('.deck-select-info').addEventListener('click', (e) => { + let alignmentEl = document.getElementById("custom-role-info-modal-alignment"); + alignmentEl.classList.remove(globals.ALIGNMENT.GOOD); + alignmentEl.classList.remove(globals.ALIGNMENT.EVIL); + e.preventDefault(); + let option = deckManager.getCustomRoleOption(name); + document.getElementById("custom-role-info-modal-name").innerText = name; + alignmentEl.classList.add(option.team); + document.getElementById("custom-role-info-modal-description").innerText = option.description; + alignmentEl.innerText = option.team; + ModalManager.displayModal("custom-role-info-modal", "modal-background", "close-custom-role-info-modal-button"); }) }); } diff --git a/client/src/modules/GameStateRenderer.js b/client/src/modules/GameStateRenderer.js index 15c18b4..ad16d30 100644 --- a/client/src/modules/GameStateRenderer.js +++ b/client/src/modules/GameStateRenderer.js @@ -15,9 +15,7 @@ export class GameStateRenderer { renderLobbyPlayers() { document.querySelectorAll('.lobby-player').forEach((el) => el.remove()) let lobbyPlayersContainer = document.getElementById("lobby-players"); - if (this.stateBucket.currentGameState.client.userType === globals.USER_TYPES.PLAYER - && this.stateBucket.currentGameState.moderator.userType === globals.USER_TYPES.MODERATOR - ) { + if (this.stateBucket.currentGameState.moderator.userType === globals.USER_TYPES.MODERATOR) { lobbyPlayersContainer.appendChild( renderLobbyPerson( this.stateBucket.currentGameState.moderator.name, @@ -409,10 +407,17 @@ function renderPlayerRole(gameState) { '../images/roles/Villager' + Math.ceil(Math.random() * 2) + '.png' ); } else { - document.getElementById("role-image").setAttribute( - 'src', - '../images/roles/' + gameState.client.gameRole.replaceAll(' ', '') + '.png' - ); + if (gameState.client.customRole) { + document.getElementById("role-image").setAttribute( + 'src', + '../images/roles/custom-role.svg' + ); + } else { + document.getElementById("role-image").setAttribute( + 'src', + '../images/roles/' + gameState.client.gameRole.replaceAll(' ', '') + '.png' + ); + } } } diff --git a/client/src/modules/Templates.js b/client/src/modules/Templates.js index 06e231d..f3bd3b1 100644 --- a/client/src/modules/Templates.js +++ b/client/src/modules/Templates.js @@ -227,11 +227,11 @@ export const templates = { CREATE_GAME_DECK: "
" + "
" + - "" + + "" + "
" + "
" + "
" + - "" + + "" + "
" + "
" + "
", @@ -246,7 +246,7 @@ export const templates = { '
Export
' + '
Import
' + '' + - '' + + '' + '
' + '' + '', @@ -258,7 +258,7 @@ export const templates = { DECK_SELECT_ROLE: '
' + '
' + - 'include' + + 'include' + 'info' + 'edit' + 'remove' + diff --git a/client/src/scripts/game.js b/client/src/scripts/game.js index c9d2946..9f75c87 100644 --- a/client/src/scripts/game.js +++ b/client/src/scripts/game.js @@ -165,6 +165,7 @@ function setClientSocketHandlers(stateBucket, gameStateRenderer, socket, timerWo socket.on(globals.EVENTS.PLAYER_JOINED, (player, gameIsFull) => { toast(player.name + " joined!", "success", false, true, 3); stateBucket.currentGameState.people.push(player); + stateBucket.currentGameState.isFull = gameIsFull; gameStateRenderer.renderLobbyPlayers(); if ( gameIsFull diff --git a/client/src/styles/create.css b/client/src/styles/create.css index ff28b03..40192c1 100644 --- a/client/src/styles/create.css +++ b/client/src/styles/create.css @@ -135,7 +135,9 @@ bottom: 0; right: 0; width: 290px; - height: 20px; + height: 50px; + font-size: 20px; + text-align: center; } #custom-role-hamburger .hamburger-inner, #custom-role-hamburger .hamburger-inner::before, #custom-role-hamburger .hamburger-inner::after { diff --git a/client/src/styles/modal.css b/client/src/styles/modal.css index 2d4c757..0bddbba 100644 --- a/client/src/styles/modal.css +++ b/client/src/styles/modal.css @@ -49,6 +49,29 @@ flex-direction: row; } +#custom-role-info-modal { + display: flex; + color: #d7d7d7; + text-align: left; + font-family: signika-negative, sans-serif; +} + +#custom-role-info-modal-description { + margin: 2em 0; + max-height: 10em; + overflow: auto; +} + +#custom-role-info-modal-name { + font-family: 'diavlo', sans-serif; + font-size: 23px; +} + +#custom-role-info-modal-alignment { + font-size: 20px; + font-weight: bold; +} + #change-name-modal, #transfer-mod-modal, #role-info-modal { position: fixed; } diff --git a/client/src/views/create.html b/client/src/views/create.html index db7afe6..7b11d76 100644 --- a/client/src/views/create.html +++ b/client/src/views/create.html @@ -56,6 +56,14 @@
+

Create A Game

diff --git a/server/modules/GameManager.js b/server/modules/GameManager.js index 9c838fc..fe9dd23 100644 --- a/server/modules/GameManager.js +++ b/server/modules/GameManager.js @@ -355,6 +355,7 @@ function initializePeopleForGame(uniqueCards, moderator) { let j = 0; if (moderator.userType === globals.USER_TYPES.TEMPORARY_MODERATOR) { // temporary moderators should be dealt in. moderator.gameRole = cards[j].role; + moderator.customRole = cards[j].custom; moderator.gameRoleDescription = cards[j].description; moderator.alignment = cards[j].team; people.push(moderator); @@ -371,6 +372,7 @@ function initializePeopleForGame(uniqueCards, moderator) { cards[j].description, cards[j].team ); + person.customRole = cards[j].custom; person.hasEnteredName = false; people.push(person); j ++; diff --git a/server/modules/GameStateCurator.js b/server/modules/GameStateCurator.js index ec75652..b7f4fa6 100644 --- a/server/modules/GameStateCurator.js +++ b/server/modules/GameStateCurator.js @@ -38,6 +38,7 @@ function getGameStateBasedOnPermissions(game, person, gameRunner) { userType: person.userType, gameRole: person.gameRole, gameRoleDescription: person.gameRoleDescription, + customRole: person.customRole, alignment: person.alignment, out: person.out }