From 6462f3bd794a241cc7078abf7a34ded833fc2c21 Mon Sep 17 00:00:00 2001 From: Jasper Jacobs <97167868+Kanopedia@users.noreply.github.com> Date: Wed, 16 Oct 2024 16:38:32 +0200 Subject: [PATCH] feat(infobox): custom infobox league for deadlock (#4873) --- .../wikis/deadlock/infobox_league_custom.lua | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 components/infobox/wikis/deadlock/infobox_league_custom.lua diff --git a/components/infobox/wikis/deadlock/infobox_league_custom.lua b/components/infobox/wikis/deadlock/infobox_league_custom.lua new file mode 100644 index 00000000000..e19d54b72c4 --- /dev/null +++ b/components/infobox/wikis/deadlock/infobox_league_custom.lua @@ -0,0 +1,46 @@ +--- +-- @Liquipedia +-- wiki=deadlock +-- page=Module:Infobox/League/Custom +-- +-- Please see https://github.com/Liquipedia/Lua-Modules to contribute +-- + +local Class = require('Module:Class') +local Lua = require('Module:Lua') + +local Injector = Lua.import('Module:Widget/Injector') +local League = Lua.import('Module:Infobox/League') + +local Widgets = require('Module:Widget/All') +local Cell = Widgets.Cell + +---@class DeadlockLeagueInfobox: InfoboxLeague +local CustomLeague = Class.new(League) +local CustomInjector = Class.new(Injector) + +---@param frame Frame +---@return Html +function CustomLeague.run(frame) + local league = CustomLeague(frame) + league:setWidgetInjector(CustomInjector(league)) + + return league:createInfobox() +end + +---@param id string +---@param widgets Widget[] +---@return Widget[] +function CustomInjector:parse(id, widgets) + local args = self.caller.args + + if id == 'custom' then + return { + Cell{name = 'Number of teams', content = {args.team_number}}, + Cell{name = 'Number of players', content = {args.player_number}}, + } + end + return widgets +end + +return CustomLeague