From 9e70c8fc4a338fc089a28fe77afaef1ca31e917b Mon Sep 17 00:00:00 2001 From: AlecM33 Date: Tue, 15 Aug 2023 16:53:48 -0400 Subject: [PATCH 1/2] add Doctor to the default roles --- client/src/config/defaultRoles.js | 6 ++++++ client/src/images/roles/Doctor.png | Bin 0 -> 4356 bytes client/src/images/roles/DreamWolf.png | Bin 8886 -> 8484 bytes 3 files changed, 6 insertions(+) create mode 100644 client/src/images/roles/Doctor.png diff --git a/client/src/config/defaultRoles.js b/client/src/config/defaultRoles.js index c589fc6..44ceda4 100644 --- a/client/src/config/defaultRoles.js +++ b/client/src/config/defaultRoles.js @@ -34,6 +34,12 @@ export const defaultRoles = [ team: 'good', description: 'Each night, learn if a chosen person is a Werewolf.' }, + { + role: 'Doctor', + team: 'good', + description: `Each night, choose a player to protect from the Werewolves. This can be yourself. If the Werewolves + target this person, they still survive to the following day.` + }, { role: 'Parity Hunter', team: 'good', diff --git a/client/src/images/roles/Doctor.png b/client/src/images/roles/Doctor.png new file mode 100644 index 0000000000000000000000000000000000000000..8479f804702a27614650d7a58c3a818185f093c0 GIT binary patch literal 4356 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 literal 0 HcmV?d00001 diff --git a/client/src/images/roles/DreamWolf.png b/client/src/images/roles/DreamWolf.png index bf5b085ed82fe913ddd4c27f7ab4a049085c488e..f5e4e7b1d1b3c8d79826069256f6be67bbcb240d 100644 GIT binary patch literal 8484 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 z zh01z=3D`R{t3O@uF7TAwy#c+Bb?A^=lg|m8rxwOP0I_gimVFbvImzrwnqAY4T}U;% zejm`)A9YDK5LDDAyulhX$Wt|^FdKMZHq4%{3P|Tt#i^t^5c2D+Ii2fn44C4rU&HWB zBi4YIpy%w}{v>1c@>ka=V%Shb(Oi{t{%C#aGq62O|x% zVRbLX3qU$2YaY$yo4%<1xQHuBSbD#6R6HX3>4K&2!8mWZ^B~;pEtwO;a(bI%*aKf& zbhGi`SVecRdy9Z%V;xhp!2a+5H`sFpwaoK<@hhUT{OE%ru1ua+yBb`AgvpYZzt1+1 zIox&f3aFK6@at_uKwkf*8!EgAZkt!Qteh^Iixm;aFKWU+6lJS<)%Fa7!faT@_=Xt; zEt%s7^ZDQS(xYQJdQ)=pQTkv>@;CZEXfg@ATrtQ9k?~qqolArk%Hsg?dc3>APcgUz zU+nHBB8Eb^UvfjzF$V0hF>K!jWu6P=n~E`zu@!cb+dJ*O`PIlUX6IL886#QGOpOYP zg;1~=6H(rvhcw^$&icWZrU3i7Yucr!Ikm97lR>AzU6GqbsMRoA zyn6dF96+4-*L1oy$LT?CH49A4I#Qfi633Q@Q@oVe;N&S|*Z-Wr{@*%*?b#<}489of lZR@)L|Nk7OM{Vvz-=G$K9}Kw+HYb2NiL)v_e&vq9{{n(&1=#=q literal 8886 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 From 73d19fa7f621fc565d4ca35cae9f38bd6847e4dd Mon Sep 17 00:00:00 2001 From: AlecM33 Date: Tue, 15 Aug 2023 22:42:22 -0400 Subject: [PATCH 2/2] display role art during game creation --- .../modules/game_creation/DeckStateManager.js | 16 ++++++++++++++++ client/src/modules/game_creation/RoleBox.js | 13 +++++++++++++ client/src/styles/modal.css | 15 ++++++++++++++- client/src/view_templates/CreateTemplate.js | 1 + 4 files changed, 44 insertions(+), 1 deletion(-) diff --git a/client/src/modules/game_creation/DeckStateManager.js b/client/src/modules/game_creation/DeckStateManager.js index f85442b..251f67d 100644 --- a/client/src/modules/game_creation/DeckStateManager.js +++ b/client/src/modules/game_creation/DeckStateManager.js @@ -216,8 +216,24 @@ export class DeckStateManager { roleEl.querySelector('.role-remove').addEventListener('keyup', minusOneHandler); const infoHandler = (e) => { + document.querySelector('#custom-role-info-modal-image')?.remove(); if (e.type === 'click' || e.code === 'Enter') { const alignmentEl = document.getElementById('custom-role-info-modal-alignment'); + if (!sortedDeck[i].custom) { + document.getElementById('custom-role-info-modal-image-placeholder').style.display = 'flex'; + const roleImg = new Image(); + roleImg.id = 'custom-role-info-modal-image'; + roleImg.onload = () => { + document.getElementById('custom-role-info-modal-image-placeholder').appendChild(roleImg); + }; + if (sortedDeck[i].role.toLowerCase() === 'villager') { + roleImg.src = '../images/roles/Villager' + Math.ceil(Math.random() * 2) + '.png'; + } else { + roleImg.src = '../images/roles/' + sortedDeck[i].role.replaceAll(' ', '') + '.png'; + } + } else { + document.getElementById('custom-role-info-modal-image-placeholder').style.display = 'none'; + } const nameEl = document.getElementById('custom-role-info-modal-name'); alignmentEl.classList.remove(ALIGNMENT.GOOD); alignmentEl.classList.remove(ALIGNMENT.EVIL); diff --git a/client/src/modules/game_creation/RoleBox.js b/client/src/modules/game_creation/RoleBox.js index 1bb801c..e074a5f 100644 --- a/client/src/modules/game_creation/RoleBox.js +++ b/client/src/modules/game_creation/RoleBox.js @@ -263,6 +263,7 @@ export class RoleBox { } if (info) { const infoHandler = (e) => { + document.querySelector('#custom-role-info-modal-image')?.remove(); if (e.type === 'click' || e.code === 'Enter') { const alignmentEl = document.getElementById('custom-role-info-modal-alignment'); const nameEl = document.getElementById('custom-role-info-modal-name'); @@ -273,9 +274,21 @@ export class RoleBox { e.preventDefault(); let role; if (isCustom) { + document.getElementById('custom-role-info-modal-image-placeholder').style.display = 'none'; role = this.getCustomRole(name); } else { + document.getElementById('custom-role-info-modal-image-placeholder').style.display = 'flex'; role = this.getDefaultRole(name); + const roleImg = new Image(); + roleImg.id = 'custom-role-info-modal-image'; + roleImg.onload = () => { + document.getElementById('custom-role-info-modal-image-placeholder').appendChild(roleImg); + }; + if (name.toLowerCase() === 'villager') { + roleImg.src = '../images/roles/Villager' + Math.ceil(Math.random() * 2) + '.png'; + } else { + roleImg.src = '../images/roles/' + name.replaceAll(' ', '') + '.png'; + } } nameEl.innerText = name; nameEl.classList.add(role.team); diff --git a/client/src/styles/modal.css b/client/src/styles/modal.css index c508e79..33cd6ed 100644 --- a/client/src/styles/modal.css +++ b/client/src/styles/modal.css @@ -55,6 +55,13 @@ justify-content: center; } +#custom-role-info-modal-image { + margin: 0 auto; + width: 200px; + background-color: #4645525c; + border-radius: 5px; +} + #custom-role-info-modal { color: #d7d7d7; text-align: left; @@ -62,8 +69,14 @@ align-items: flex-start; } +#custom-role-info-modal-image-placeholder { + width: 200px; + height: 200px; + margin: 0 auto; +} + #custom-role-info-modal h3 { - margin: 0 0 0.5em 0; + margin: 0 auto 0.5em auto; } #custom-role-info-modal-description { diff --git a/client/src/view_templates/CreateTemplate.js b/client/src/view_templates/CreateTemplate.js index 964ee07..f7473a3 100644 --- a/client/src/view_templates/CreateTemplate.js +++ b/client/src/view_templates/CreateTemplate.js @@ -35,6 +35,7 @@ export const hiddenMenus =