ItemReminder: Fixed Tainted Forgotten and coop-babies behavior
This commit is contained in:
1 parent
eb637bb297
commit
55f7b3baaf
1 file changed
+20
-7
+20
-7
@@ -435,7 +435,7 @@ function EID:ItemReminderHandleInputs()
|
|||||||
lastScrollDirection = 1
|
lastScrollDirection = 1
|
||||||
elseif Input.IsActionTriggered(EID.Config["ItemReminderNavigateUpButton"], EID.holdTabPlayer.ControllerIndex) and Isaac.GetTime() - lastInputTime > 50 then
|
elseif Input.IsActionTriggered(EID.Config["ItemReminderNavigateUpButton"], EID.holdTabPlayer.ControllerIndex) and Isaac.GetTime() - lastInputTime > 50 then
|
||||||
if not EID:IsScrollableCategorySelected() then
|
if not EID:IsScrollableCategorySelected() then
|
||||||
EID.ItemReminderSelectedPlayer = (EID.ItemReminderSelectedPlayer - 1) % #EID.coopAllPlayers
|
EID.ItemReminderSelectedPlayer = (EID.ItemReminderSelectedPlayer - 1) % #EID:ItemReminderGetAllPlayers()
|
||||||
else
|
else
|
||||||
EID.ItemReminderSelectedItem = EID.ItemReminderSelectedItem - 1 -- clamp later
|
EID.ItemReminderSelectedItem = EID.ItemReminderSelectedItem - 1 -- clamp later
|
||||||
end
|
end
|
||||||
@@ -444,7 +444,7 @@ function EID:ItemReminderHandleInputs()
|
|||||||
lastInputTime = Isaac.GetTime()
|
lastInputTime = Isaac.GetTime()
|
||||||
elseif Input.IsActionTriggered(EID.Config["ItemReminderNavigateDownButton"], EID.holdTabPlayer.ControllerIndex) and Isaac.GetTime() - lastInputTime > 50 then
|
elseif Input.IsActionTriggered(EID.Config["ItemReminderNavigateDownButton"], EID.holdTabPlayer.ControllerIndex) and Isaac.GetTime() - lastInputTime > 50 then
|
||||||
if not EID:IsScrollableCategorySelected() then
|
if not EID:IsScrollableCategorySelected() then
|
||||||
EID.ItemReminderSelectedPlayer = (EID.ItemReminderSelectedPlayer + 1) % #EID.coopAllPlayers
|
EID.ItemReminderSelectedPlayer = (EID.ItemReminderSelectedPlayer + 1) % #EID:ItemReminderGetAllPlayers()
|
||||||
else
|
else
|
||||||
EID.ItemReminderSelectedItem = EID.ItemReminderSelectedItem + 1 -- clamp later
|
EID.ItemReminderSelectedItem = EID.ItemReminderSelectedItem + 1 -- clamp later
|
||||||
end
|
end
|
||||||
@@ -455,6 +455,17 @@ function EID:ItemReminderHandleInputs()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- special list of all players, ignoring tainted forgotten ghost and coop babies
|
||||||
|
function EID:ItemReminderGetAllPlayers()
|
||||||
|
local filteredPlayerList = {}
|
||||||
|
for i, player in ipairs(EID.coopAllPlayers) do
|
||||||
|
if not (EID.isRepentance and player:GetPlayerType() == PlayerType.PLAYER_THESOUL_B) and player:GetBabySkin() == -1 then
|
||||||
|
table.insert(filteredPlayerList, player)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return filteredPlayerList
|
||||||
|
end
|
||||||
|
|
||||||
function EID:IsScrollableCategorySelected()
|
function EID:IsScrollableCategorySelected()
|
||||||
return EID.ItemReminderCategories[EID.ItemReminderSelectedCategory + 1].isScrollable
|
return EID.ItemReminderCategories[EID.ItemReminderSelectedCategory + 1].isScrollable
|
||||||
end
|
end
|
||||||
@@ -467,8 +478,9 @@ function EID:ItemReminderHandleInitHoldTab()
|
|||||||
local oldDisplayPlayer = EID.ItemReminderSelectedPlayer
|
local oldDisplayPlayer = EID.ItemReminderSelectedPlayer
|
||||||
|
|
||||||
-- set currently displayed player to the one who is now holding tab
|
-- set currently displayed player to the one who is now holding tab
|
||||||
for i = 1, #EID.coopAllPlayers do
|
local playerList = EID:ItemReminderGetAllPlayers()
|
||||||
if EID.coopAllPlayers[i] == EID.holdTabPlayer then
|
for i = 1, #playerList do
|
||||||
|
if playerList[i] == EID.holdTabPlayer then
|
||||||
EID.ItemReminderSelectedPlayer = i - 1
|
EID.ItemReminderSelectedPlayer = i - 1
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
@@ -497,9 +509,10 @@ function EID:ItemReminderGetTitle()
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- add player toggle when more than 1 player is present
|
-- add player toggle when more than 1 player is present
|
||||||
if #EID.coopAllPlayers > 1 then
|
local playerList = EID:ItemReminderGetAllPlayers()
|
||||||
|
if #playerList > 1 then
|
||||||
local curPlayerID = EID.ItemReminderSelectedPlayer + 1
|
local curPlayerID = EID.ItemReminderSelectedPlayer + 1
|
||||||
local currentPlayer = EID.coopAllPlayers[curPlayerID]
|
local currentPlayer = playerList[curPlayerID]
|
||||||
local playerIcon = EID:GetPlayerIcon(currentPlayer:GetPlayerType(), "P" .. curPlayerID )
|
local playerIcon = EID:GetPlayerIcon(currentPlayer:GetPlayerType(), "P" .. curPlayerID )
|
||||||
|
|
||||||
local playerSelectWidget = playerIcon .. " "
|
local playerSelectWidget = playerIcon .. " "
|
||||||
@@ -576,7 +589,7 @@ function EID:ItemReminderGetDescription()
|
|||||||
currentBlacklist = {}
|
currentBlacklist = {}
|
||||||
for key, _ in pairs(EID.ItemReminderBlacklist) do currentBlacklist[key] = true end
|
for key, _ in pairs(EID.ItemReminderBlacklist) do currentBlacklist[key] = true end
|
||||||
|
|
||||||
local player = EID.coopAllPlayers[EID.ItemReminderSelectedPlayer + 1]
|
local player = EID:ItemReminderGetAllPlayers()[EID.ItemReminderSelectedPlayer + 1] or EID.player -- use main player as fallback
|
||||||
|
|
||||||
if EID.ItemReminderSelectedCategory == 0 or EID.Config["ItemReminderDisplayMode"] == "Classic" then
|
if EID.ItemReminderSelectedCategory == 0 or EID.Config["ItemReminderDisplayMode"] == "Classic" then
|
||||||
-- execute all functions defined per category
|
-- execute all functions defined per category
|
||||||
|
|||||||
Reference in new issue
Block a user