diff --git a/expcore/gui/_require.lua b/expcore/gui/_require.lua index 51fc0a14..78aac647 100644 --- a/expcore/gui/_require.lua +++ b/expcore/gui/_require.lua @@ -128,4 +128,17 @@ require 'expcore.gui.left_flow' require 'expcore.gui.helper_functions' require 'expcore.gui.defines' +local Roles = _C.opt_require('expcore.roles') +local Event = _C.opt_require('utils.event') + +if Roles and Event then + Event.add(Roles.events.on_role_assigned, function(e) + Gui.update_top_flow(game.get_player(e.player_index)) + end) + Event.add(Roles.events.on_role_unassigned, function(e) + Gui.update_top_flow(game.get_player(e.player_index)) + end) +end + + return Gui \ No newline at end of file diff --git a/expcore/gui/top_flow.lua b/expcore/gui/top_flow.lua index 39bfb99f..064ee906 100644 --- a/expcore/gui/top_flow.lua +++ b/expcore/gui/top_flow.lua @@ -73,7 +73,8 @@ function Gui.update_top_flow(player) end -- Set the visible state - local allowed = type(authenticator) == 'function' and authenticator(player) or authenticator + local allowed = authenticator + if type(allowed) == 'function' then allowed = allowed(player) end element.visible = is_visible and allowed or false end end