Fixed items rerolled by D4 to falsely count towards transformation progress
This commit is contained in:
1 parent
3f51927e25
commit
8a2dbebbbe
2 files changed
+19
-2
No files matched your search
+18
-2
@@ -1695,7 +1695,9 @@ function EID:evaluateTransformationProgress(transformation)
|
|||||||
if activesTable[tostring(eSubType)] then
|
if activesTable[tostring(eSubType)] then
|
||||||
EID.TransformationProgress[i][transformation] = EID.TransformationProgress[i][transformation] + activesTable[tostring(eSubType)]
|
EID.TransformationProgress[i][transformation] = EID.TransformationProgress[i][transformation] + activesTable[tostring(eSubType)]
|
||||||
else
|
else
|
||||||
EID.TransformationProgress[i][transformation] = EID.TransformationProgress[i][transformation] + player:GetCollectibleNum(eSubType, true)
|
local collCount = player:GetCollectibleNum(eSubType, true) - (EID.PlayerItemInteractions[i].rerollItems[tostring(eSubType)] or 0)
|
||||||
|
EID.TransformationProgress[i][transformation] = EID.TransformationProgress[i][transformation] + collCount
|
||||||
|
|
||||||
-- Undo the Book of Virtues active item getting counted here
|
-- Undo the Book of Virtues active item getting counted here
|
||||||
if tonumber(eSubType) == 584 and player:GetActiveItem() == 584 then
|
if tonumber(eSubType) == 584 and player:GetActiveItem() == 584 then
|
||||||
EID.TransformationProgress[i][transformation] = EID.TransformationProgress[i][transformation] - 1
|
EID.TransformationProgress[i][transformation] = EID.TransformationProgress[i][transformation] - 1
|
||||||
@@ -1767,7 +1769,7 @@ end
|
|||||||
function EID:InitItemInteractionIfAbsent(playerID)
|
function EID:InitItemInteractionIfAbsent(playerID)
|
||||||
if not EID.PlayerItemInteractions[playerID] then
|
if not EID.PlayerItemInteractions[playerID] then
|
||||||
EID.PlayerItemInteractions[playerID] = { LastTouch = 0, actives = {}, pills = {}, altActives = {}, altPills = {},
|
EID.PlayerItemInteractions[playerID] = { LastTouch = 0, actives = {}, pills = {}, altActives = {}, altPills = {},
|
||||||
pickupHistory = {}, altPickupHistory = {} }
|
pickupHistory = {}, altPickupHistory = {}, rerollItems = {} }
|
||||||
end
|
end
|
||||||
EID.RecentlyTouchedItems[playerID] = EID.RecentlyTouchedItems[playerID] or {}
|
EID.RecentlyTouchedItems[playerID] = EID.RecentlyTouchedItems[playerID] or {}
|
||||||
end
|
end
|
||||||
@@ -1851,6 +1853,20 @@ function EID:GetTransformationsOfModdedItems()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Collects items that the player got after using D4 item
|
||||||
|
function EID:CollectRerolledItemsOfPlayer(player)
|
||||||
|
if maxCollectibleID == nil then maxCollectibleID = EID:GetMaxCollectibleID() end
|
||||||
|
local playerID = EID:getPlayerID(player)
|
||||||
|
EID.PlayerItemInteractions[playerID].rerollItems = {}
|
||||||
|
for i = 1, maxCollectibleID do
|
||||||
|
local count = player:GetCollectibleNum(i, true)
|
||||||
|
if count > 0 then
|
||||||
|
EID.PlayerItemInteractions[playerID].rerollItems[tostring(i)] = count
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
-- Returns true if a given entity is a grid entity
|
-- Returns true if a given entity is a grid entity
|
||||||
function EID:IsGridEntity(entity)
|
function EID:IsGridEntity(entity)
|
||||||
return entity.Type == nil
|
return entity.Type == nil
|
||||||
|
|||||||
@@ -1560,6 +1560,7 @@ EID:AddCallback(ModCallbacks.MC_POST_GAME_STARTED, OnGameStartGeneral)
|
|||||||
local function OnUseD4(_, _, _, player)
|
local function OnUseD4(_, _, _, player)
|
||||||
-- in AB+, USE_ITEM doesn't provide a player
|
-- in AB+, USE_ITEM doesn't provide a player
|
||||||
AddActiveItemProgress(player or EID.player, true)
|
AddActiveItemProgress(player or EID.player, true)
|
||||||
|
EID:CollectRerolledItemsOfPlayer(player or EID.player)
|
||||||
end
|
end
|
||||||
EID:AddCallback(ModCallbacks.MC_USE_ITEM, OnUseD4, CollectibleType.COLLECTIBLE_D4)
|
EID:AddCallback(ModCallbacks.MC_USE_ITEM, OnUseD4, CollectibleType.COLLECTIBLE_D4)
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user