From e3a3c39f3deb16411e1bed782d0b2f3481adceb7 Mon Sep 17 00:00:00 2001 From: Wofsauge Date: Thu, 29 May 2025 18:32:51 +0200 Subject: [PATCH] Implement Gulped Trinket detection using Repentogon closes #856 --- features/eid_repentogon.lua | 27 +++++++++++++++++++++++++++ main.lua | 4 ++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/features/eid_repentogon.lua b/features/eid_repentogon.lua index 6a46203c..490f5f50 100644 --- a/features/eid_repentogon.lua +++ b/features/eid_repentogon.lua @@ -83,6 +83,33 @@ end EID:AddCallback(ModCallbacks.MC_MAIN_MENU_RENDER, EID.OnMenuRender) +--------------------------Gulped items----------------------------------- + +-- REPENTOGON: Gulped trinkets can be read directly from the game +function EID:ItemReminderHeldPlusGulped(player) + local newTable = {} + for i=0, 1 do + local trinket = player:GetTrinket(i) + if trinket > 0 then table.insert(newTable, trinket) end + end + + -- Use GetSmeltedTrinkets() to aquire player smelted trinkets infos, instead of keeping a separate table + for id, dataTable in pairs(player:GetSmeltedTrinkets()) do + if dataTable then + local sumTrinket = dataTable.trinketAmount + dataTable.goldenTrinketAmount + if sumTrinket > 0 then + table.insert(newTable, id) + end + end + end + return newTable +end + +-- Remove callback, since we dont need to track smelter usage in Repentogon +EID:RemoveCallback(ModCallbacks.MC_PRE_USE_ITEM, EID.OnUseSmelter) + +-- remove function. No longer needed +function EID:UpdateAllPlayerTrinkets() end ---------------------------BAG OF CRAFTING------------------------------- -- Directly read bag of crafting content diff --git a/main.lua b/main.lua index cb6d32c4..c283c5bc 100644 --- a/main.lua +++ b/main.lua @@ -1706,7 +1706,7 @@ end EID:AddCallback(ModCallbacks.MC_USE_ITEM, OnUseD4, CollectibleType.COLLECTIBLE_D4) -- Watch for smelting trinkets; includes Gulp and Marbles -local function OnUseSmelter(_, _, _, player) +function EID:OnUseSmelter(_, _, _, player) player = player or EID.player local playerNum = EID:getPlayerID(player, true) @@ -1716,7 +1716,7 @@ local function OnUseSmelter(_, _, _, player) if trinket > 0 then table.insert(EID.GulpedTrinkets[playerNum], trinket) end end end -EID:AddCallback(ModCallbacks.MC_PRE_USE_ITEM, OnUseSmelter, CollectibleType.COLLECTIBLE_SMELTER) +EID:AddCallback(ModCallbacks.MC_PRE_USE_ITEM, EID.OnUseSmelter, CollectibleType.COLLECTIBLE_SMELTER) -- Watch for Glowing Hourglass to revert certain variables local function OnUseGlowingHourglass(_, _, _, _)