From 71ff870612a0eabc41efb97e03a47e6c93e6e11f Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Thu, 23 Nov 2023 21:53:37 +0100 Subject: [PATCH] [MIRROR] Updates the Mafia UI [MDB IGNORE] (#25214) * 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> * Updates the Mafia UI --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> 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 (
- + +