From b6c42ac3fe20db861f1a75a79d84f20a97805eea Mon Sep 17 00:00:00 2001 From: Evgast <136436468+Evgast@users.noreply.github.com> Date: Tue, 31 Mar 2026 03:51:37 +1100 Subject: [PATCH 1/3] Pool, my badges --- lovely/ui.toml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lovely/ui.toml b/lovely/ui.toml index 1bb8fd32d..b0a8b4da6 100644 --- a/lovely/ui.toml +++ b/lovely/ui.toml @@ -465,3 +465,22 @@ if not v.no_ui then game_rules[#game_rules+1] = {n=G.UIT.R, config={align = "cl"}, nodes= localize{type = 'text', key = 'ch_c_'..v.id, vars = {v.value}}} end ''' + +# Pool badges +[[patches]] +[patches.pattern] +target = "functions/UI_definitions.lua" +pattern = ''' + if AUT.info then +''' +position = "before" +payload = ''' + for k, v in pairs(SMODS.ObjectTypes) do + if card.config.center.pools and card.config.center.pools[v.key] and v.pool_badge then + if not badges[v.pool_badge] then + badges[#badges+1] = v.pool_badge() + end + end + end +''' +match_indent = true From ffac55b6e5b1220cb850d314f7e9800565ec9043 Mon Sep 17 00:00:00 2001 From: Evgast <136436468+Evgast@users.noreply.github.com> Date: Tue, 31 Mar 2026 04:07:50 +1100 Subject: [PATCH 2/3] Un-brainfarted --- lovely/ui.toml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lovely/ui.toml b/lovely/ui.toml index b0a8b4da6..d4e130abe 100644 --- a/lovely/ui.toml +++ b/lovely/ui.toml @@ -477,9 +477,7 @@ position = "before" payload = ''' for k, v in pairs(SMODS.ObjectTypes) do if card.config.center.pools and card.config.center.pools[v.key] and v.pool_badge then - if not badges[v.pool_badge] then - badges[#badges+1] = v.pool_badge() - end + badges[#badges+1] = v.pool_badge() end end ''' From fc7aec8fbe635afa76558d2c1c7ed99673f962ac Mon Sep 17 00:00:00 2001 From: N Date: Mon, 1 Jun 2026 23:17:55 -0300 Subject: [PATCH 3/3] standarize the feature to work like set_badges --- lovely/ui.toml | 4 ++-- lsp_def/classes/object_type.lua | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lovely/ui.toml b/lovely/ui.toml index d0745d1a2..8e34dc8cc 100644 --- a/lovely/ui.toml +++ b/lovely/ui.toml @@ -477,8 +477,8 @@ pattern = ''' position = "before" payload = ''' for k, v in pairs(SMODS.ObjectTypes) do - if card.config.center.pools and card.config.center.pools[v.key] and v.pool_badge then - badges[#badges+1] = v.pool_badge() + if card.config.center.pools and card.config.center.pools[v.key] and type(v.set_badges) == "function" then + v:set_badges(card, badges) end end ''' diff --git a/lsp_def/classes/object_type.lua b/lsp_def/classes/object_type.lua index 6d82fcf6a..8e20504fc 100644 --- a/lsp_def/classes/object_type.lua +++ b/lsp_def/classes/object_type.lua @@ -21,7 +21,8 @@ ---@field take_ownership? fun(self: SMODS.ObjectType|table, key: string, obj: SMODS.ObjectType|table, silent?: boolean): nil|table|SMODS.ObjectType Takes control of vanilla objects. Child class must have get_obj for this to function ---@field get_obj? fun(self: SMODS.ObjectType|table, key: string): SMODS.ObjectType|table? Returns an object if one matches the `key`. ---@field inject_card? fun(self: SMODS.ObjectType|table, center: table) Injects the center into the ObjectType pools. ----@field remove_card? fun(self: SMODS.ObjectType|table, center: table) Removes the center from ObjectType pools. +---@field remove_card? fun(self: SMODS.ObjectType|table, center: table) Removes the center from ObjectType pools. +---@field set_badges? fun(self: SMODS.ObjectType|table, card: Card|table, badges: table) Append `badges` for additional badges on the UI display of the cards in the pool. ---@overload fun(self: SMODS.ObjectType): SMODS.ObjectType SMODS.ObjectType = setmetatable({}, { __call = function(self)