diff --git a/lua/wikis/brawlstars/MatchSummary.lua b/lua/wikis/brawlstars/MatchSummary.lua index f6375ece06e..675323598d7 100644 --- a/lua/wikis/brawlstars/MatchSummary.lua +++ b/lua/wikis/brawlstars/MatchSummary.lua @@ -20,6 +20,8 @@ local MatchSummaryWidgets = Lua.import('Module:Widget/Match/Summary/All') local MatchSummary = Lua.import('Module:MatchSummary/Base') local WidgetUtil = Lua.import('Module:Widget/Util') +local MAX_NUM_BANS = 3 + local CustomMatchSummary = {} ---@param args table @@ -32,14 +34,19 @@ end ---@return Renderable[] function CustomMatchSummary.createBody(match) local globalBans = (match.extradata or {}).globalbans + + local gameBansData = MatchSummary.buildCharacterBanData(match.games, MAX_NUM_BANS) + + -- To make the Global Bans doesn't get count as Game 1 + Array.forEach(gameBansData, function(banData, gameIndex) + if Logic.isNotDeepEmpty(banData) then + banData.label = 'Game ' .. gameIndex + end + end) + local characterBansData = Array.extend( Logic.isNotDeepEmpty(globalBans) and {globalBans.team1 or {}, globalBans.team2 or {}, label = 'Global Bans'} or nil, - Array.map(match.games, function(game, gameIndex) - local extradata = game.extradata or {} - local bans = extradata.bans or {} - if Logic.isDeepEmpty(bans) then return end - return {bans.team1 or {}, bans.team2 or {}, label = 'Game ' .. gameIndex} - end) + gameBansData ) return WidgetUtil.collect( diff --git a/lua/wikis/commons/MatchSummary/Base.lua b/lua/wikis/commons/MatchSummary/Base.lua index d204e301dd2..65b2ef4ed39 100644 --- a/lua/wikis/commons/MatchSummary/Base.lua +++ b/lua/wikis/commons/MatchSummary/Base.lua @@ -327,7 +327,7 @@ end ---@param games table[] ---@param maxNumberOfBans integer ----@return {[1]: string[], [2]: string[], start: integer?}[] +---@return {[1]: string[], [2]: string[], start: integer?, label: string?}[] function MatchSummary.buildCharacterBanData(games, maxNumberOfBans) return Array.map(games, function(game) local extradata = game.extradata or {}