diff --git a/eid_api.lua b/eid_api.lua index d03bf1da..83550370 100644 --- a/eid_api.lua +++ b/eid_api.lua @@ -1229,6 +1229,19 @@ function EID:AreAchievementsAllowed() return true end +function EID:IsDeathCertificateRoom() + local level = game:GetLevel() + local roomData = level:GetCurrentRoomDesc().Data + if roomData then + if roomData.StageID == 35 then -- Home ID + if roomData.SubType == 33 or roomData.SubType == 34 then -- Death Certificate room subtypes + return true + end + end + end + return false +end + -- Converts a given table into a string containing the crafting icons of the table -- Example input: {1,2,3,4,5,6,7,8} -- Result: "{{Crafting1}}{{Crafting2}}{{Crafting3}}{{Crafting4}}{{Crafting5}}{{Crafting6}}{{Crafting7}}{{Crafting8}}" diff --git a/main.lua b/main.lua index 35a5ff03..0001d117 100644 --- a/main.lua +++ b/main.lua @@ -740,10 +740,7 @@ if REPENTANCE then end function EID:onNewRoom() isMirrorRoom = game:GetLevel():GetCurrentRoom():IsMirrorWorld() - - local level = game:GetLevel() - local id = level:GetCurrentRoomIndex() - isDeathCertRoom = (id >=0 and GetPtrHash(level:GetRoomByIdx(id)) == GetPtrHash(level:GetRoomByIdx(id, 2))) + isDeathCertRoom = EID:IsDeathCertificateRoom() -- Handle Flip Item initialItemNext = false @@ -1505,6 +1502,12 @@ local function OnUseD4(_, _, _, player) end EID:AddCallback(ModCallbacks.MC_USE_ITEM, OnUseD4, CollectibleType.COLLECTIBLE_D4) +-- Re-init transformation progress and item interactions after using Genesis +local function OnUseGenesis(_, _, _, player) + OnGameStartGeneral() +end +EID:AddCallback(ModCallbacks.MC_USE_ITEM, OnUseGenesis, CollectibleType.COLLECTIBLE_GENESIS) + function EID:OnUsePill(pillEffectID, player) local playerID = EID:getPlayerID(player) -- Dead Tainted Lazarus exceptions