From abef1920f3e512b69843792887246855365707a4 Mon Sep 17 00:00:00 2001 From: Hesketh2 <88981446+Hesketh2@users.noreply.github.com> Date: Wed, 8 Jul 2026 18:03:36 +0700 Subject: [PATCH 1/5] feat(Infobox): Add Character for Delta Force --- .../deltaforce/Infobox/Character/Custom.lua | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 lua/wikis/deltaforce/Infobox/Character/Custom.lua diff --git a/lua/wikis/deltaforce/Infobox/Character/Custom.lua b/lua/wikis/deltaforce/Infobox/Character/Custom.lua new file mode 100644 index 00000000000..23bbf3a606c --- /dev/null +++ b/lua/wikis/deltaforce/Infobox/Character/Custom.lua @@ -0,0 +1,64 @@ +--- +-- @Liquipedia +-- page=Module:Infobox/Character/Custom +-- +-- Please see https://github.com/Liquipedia/Lua-Modules to contribute +-- + +local Lua = require('Module:Lua') + +local Array = Lua.import('Module:Array') +local Class = Lua.import('Module:Class') + +local Injector = Lua.import('Module:Widget/Injector') +local Character = Lua.import('Module:Infobox/Character') + +local Widgets = Lua.import('Module:Widget/All') +local Builder = Widgets.Builder +local Cell = Widgets.Cell +local Title = Widgets.Title + +---@class DeltaforceAgentInfobox: CharacterInfobox +local CustomCharacter = Class.new(Character) +---@class DeltaforceAgentInfoboxWidgetInjector: WidgetInjector +---@field caller DeltaforceAgentInfobox +local CustomInjector = Class.new(Injector) + +---@param frame Frame +---@return VNode +function CustomCharacter.run(frame) + local character = CustomCharacter(frame) + character:setWidgetInjector(CustomInjector(character)) + character.args.informationType = 'Agents' + return character:createInfobox() +end + +---@param id string +---@param widgets Renderable[] +---@return Renderable[] +function CustomInjector:parse(id, widgets) + local args = self.caller.args + if id == 'custom' then + Array.appendWith( + widgets, + Title{children = 'Abilities'}, + Builder{ + builder = function() + local gadgets = self.caller:getAllArgsForBase(args, 'gadget') + return { + Cell{ + name = 'Gadgets', + children = gadgets, + } + } + end + }, + Cell{name = 'Tactical Gear', children = {args.tacticalgear}}, + Cell{name = 'Trait', children = {args.trait}} + ) + end + + return widgets +end + +return CustomCharacter From 041ad32277c81c329875adf482075cef9bbc6cfc Mon Sep 17 00:00:00 2001 From: Hesketh2 <88981446+Hesketh2@users.noreply.github.com> Date: Wed, 8 Jul 2026 18:32:19 +0700 Subject: [PATCH 2/5] Update Custom.lua --- lua/wikis/deltaforce/Infobox/Character/Custom.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lua/wikis/deltaforce/Infobox/Character/Custom.lua b/lua/wikis/deltaforce/Infobox/Character/Custom.lua index 23bbf3a606c..2ff6cf7d189 100644 --- a/lua/wikis/deltaforce/Infobox/Character/Custom.lua +++ b/lua/wikis/deltaforce/Infobox/Character/Custom.lua @@ -18,10 +18,10 @@ local Builder = Widgets.Builder local Cell = Widgets.Cell local Title = Widgets.Title ----@class DeltaforceAgentInfobox: CharacterInfobox +---@class DeltaforceCharacterInfobox: CharacterInfobox local CustomCharacter = Class.new(Character) ----@class DeltaforceAgentInfoboxWidgetInjector: WidgetInjector ----@field caller DeltaforceAgentInfobox +---@class DeltaforceCharacterInfoboxWidgetInjector: WidgetInjector +---@field caller DeltaforceCharacterInfobox local CustomInjector = Class.new(Injector) ---@param frame Frame @@ -29,7 +29,7 @@ local CustomInjector = Class.new(Injector) function CustomCharacter.run(frame) local character = CustomCharacter(frame) character:setWidgetInjector(CustomInjector(character)) - character.args.informationType = 'Agents' + character.args.informationType = 'Characters' return character:createInfobox() end From 3144ebcf2743fcb9023a83c1e5b8e4c2c4c153a5 Mon Sep 17 00:00:00 2001 From: Hesketh2 <88981446+Hesketh2@users.noreply.github.com> Date: Wed, 8 Jul 2026 18:38:10 +0700 Subject: [PATCH 3/5] Class LPDB data We need a way to for character portal to filter displays by class, so i'm going to make |class= able to store LPDB Data, unless there are more recommended way, please let me know --- lua/wikis/deltaforce/Infobox/Character/Custom.lua | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lua/wikis/deltaforce/Infobox/Character/Custom.lua b/lua/wikis/deltaforce/Infobox/Character/Custom.lua index 2ff6cf7d189..94449732930 100644 --- a/lua/wikis/deltaforce/Infobox/Character/Custom.lua +++ b/lua/wikis/deltaforce/Infobox/Character/Custom.lua @@ -61,4 +61,12 @@ function CustomInjector:parse(id, widgets) return widgets end +---@param lpdbData table +---@param args table +---@return table +function CustomCharacter:addToLpdb(lpdbData, args) + lpdbData.extradata.class = args.class + return lpdbData +end + return CustomCharacter From a38a19c776ba54273d0101e3658aead965b93160 Mon Sep 17 00:00:00 2001 From: Hesketh2 <88981446+Hesketh2@users.noreply.github.com> Date: Wed, 8 Jul 2026 19:24:15 +0700 Subject: [PATCH 4/5] Cleanup ability section push it to page content instead --- .../deltaforce/Infobox/Character/Custom.lua | 28 ------------------- 1 file changed, 28 deletions(-) diff --git a/lua/wikis/deltaforce/Infobox/Character/Custom.lua b/lua/wikis/deltaforce/Infobox/Character/Custom.lua index 94449732930..70670a1703f 100644 --- a/lua/wikis/deltaforce/Infobox/Character/Custom.lua +++ b/lua/wikis/deltaforce/Infobox/Character/Custom.lua @@ -33,34 +33,6 @@ function CustomCharacter.run(frame) return character:createInfobox() end ----@param id string ----@param widgets Renderable[] ----@return Renderable[] -function CustomInjector:parse(id, widgets) - local args = self.caller.args - if id == 'custom' then - Array.appendWith( - widgets, - Title{children = 'Abilities'}, - Builder{ - builder = function() - local gadgets = self.caller:getAllArgsForBase(args, 'gadget') - return { - Cell{ - name = 'Gadgets', - children = gadgets, - } - } - end - }, - Cell{name = 'Tactical Gear', children = {args.tacticalgear}}, - Cell{name = 'Trait', children = {args.trait}} - ) - end - - return widgets -end - ---@param lpdbData table ---@param args table ---@return table From b293d10d907cdde528c5b2376bc7e5404dd2000c Mon Sep 17 00:00:00 2001 From: Hesketh2 <88981446+Hesketh2@users.noreply.github.com> Date: Thu, 9 Jul 2026 01:35:55 +0700 Subject: [PATCH 5/5] Update Custom.lua --- lua/wikis/deltaforce/Infobox/Character/Custom.lua | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lua/wikis/deltaforce/Infobox/Character/Custom.lua b/lua/wikis/deltaforce/Infobox/Character/Custom.lua index 70670a1703f..bf5929c645b 100644 --- a/lua/wikis/deltaforce/Infobox/Character/Custom.lua +++ b/lua/wikis/deltaforce/Infobox/Character/Custom.lua @@ -7,16 +7,12 @@ local Lua = require('Module:Lua') -local Array = Lua.import('Module:Array') local Class = Lua.import('Module:Class') local Injector = Lua.import('Module:Widget/Injector') local Character = Lua.import('Module:Infobox/Character') local Widgets = Lua.import('Module:Widget/All') -local Builder = Widgets.Builder -local Cell = Widgets.Cell -local Title = Widgets.Title ---@class DeltaforceCharacterInfobox: CharacterInfobox local CustomCharacter = Class.new(Character)