From a6b42398b943006d826239fa2a67414596d297b4 Mon Sep 17 00:00:00 2001 From: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Date: Thu, 23 Nov 2023 18:12:33 +0000 Subject: [PATCH] Updates the Mafia UI (#79856) ## About The Pull Request The player currently on the stand has a yellow color behind their name. Players who have had their roles revealed now has that stated in the player list Votes no longer show up to people who are on trial ![image](https://github.com/tgstation/tgstation/assets/53777086/7b3b6128-4aa0-4a83-b7f6-54c9e9cde4d9) Minor edit: It no longer says 'ON STAND', it instead has their name in yellow background ![image](https://github.com/tgstation/tgstation/assets/53777086/d149a881-04ab-4a75-91e1-1e5f53dd1c7f) ## Why It's Good For The Game Mafia UI's a little better now. ## Changelog :cl: qol: Mafia panel no longer shows vote buttons if you're on stand, shows the roles of revealed players, and list out who is on the stand, if any. /:cl: --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> --- code/modules/mafia/controller_ui.dm | 7 +++++ tgui/packages/tgui/interfaces/MafiaPanel.tsx | 32 ++++++++++++++------ 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/code/modules/mafia/controller_ui.dm b/code/modules/mafia/controller_ui.dm index cc901392d22..578555d21f4 100644 --- a/code/modules/mafia/controller_ui.dm +++ b/code/modules/mafia/controller_ui.dm @@ -29,6 +29,8 @@ if(turn) data["turn"] = " - Day [turn]" + if(phase == MAFIA_PHASE_JUDGEMENT) + data["person_voted_up_ref"] = REF(on_trial) if(phase == MAFIA_PHASE_SETUP) data["lobbydata"] = list() for(var/key in GLOB.mafia_signup + GLOB.mafia_bad_signup + GLOB.pda_mafia_signup) @@ -41,8 +43,10 @@ data["timeleft"] = next_phase_timer ? timeleft(next_phase_timer) : 0 var/datum/mafia_role/user_role = get_role_player(user) + if(user_role) data["user_notes"] = user_role.written_notes + data["player_voted_up"] = (user_role == on_trial) var/list/ui_messages = list() for(var/i = user_role.role_messages.len to 1 step -1) ui_messages.Add(list(list( @@ -56,6 +60,9 @@ player_info["name"] = role.body.real_name player_info["ref"] = REF(role) player_info["alive"] = role.game_status == MAFIA_ALIVE + player_info["role_revealed"] = FALSE + if(role.role_flags & ROLE_REVEALED) + player_info["role_revealed"] = role.name player_info["possible_actions"] = list() if(user_role) //not observer diff --git a/tgui/packages/tgui/interfaces/MafiaPanel.tsx b/tgui/packages/tgui/interfaces/MafiaPanel.tsx index ee63d105dd1..23b4b45a27a 100644 --- a/tgui/packages/tgui/interfaces/MafiaPanel.tsx +++ b/tgui/packages/tgui/interfaces/MafiaPanel.tsx @@ -16,6 +16,7 @@ type RoleInfo = { type PlayerInfo = { name: string; + role_revealed: string; is_you: BooleanLike; ref: string; alive: string; @@ -49,11 +50,13 @@ type MafiaData = { is_observer: boolean; all_roles: string[]; admin_controls: boolean; + person_voted_up_ref: string; + player_voted_up: BooleanLike; }; export const MafiaPanelData = (props, context) => { const { act, data } = useBackend(context); - const { phase, roleinfo, admin_controls, messages } = data; + const { phase, roleinfo, admin_controls, messages, player_voted_up } = data; const [mafia_tab, setMafiaMode] = useLocalState( context, 'mafia_tab', @@ -90,7 +93,7 @@ export const MafiaPanelData = (props, context) => { - {phase === 'Judgment' && ( + {phase === 'Judgment' && !player_voted_up && ( @@ -401,17 +404,20 @@ const MafiaJudgement = (props, context) => { const { act, data } = useBackend(context); return (
- + +