diff --git a/features/eid_conditionals.lua b/features/eid_conditionals.lua index 764880e8..f887be7e 100644 --- a/features/eid_conditionals.lua +++ b/features/eid_conditionals.lua @@ -335,8 +335,8 @@ EID:AddSynergyConditional({127, 297, 347, 475, 483, 490, 515, 536}, "5.300.48", if EID.isRepentance then EID:AddSynergyConditional({577, 585, 628, 636}, "5.300.48", "? Card Single Use") end -- ? Card + Single Use Actives EID:AddConditional(521, EID.PlayersHaveRestock) -- Coupon + Restock/Greed -for k,_ in pairs(EID.blackFeatherItems) do EID:AddItemConditional(k, "5.350.80", "Black Feather", {lineColor="BlinkGray"}) end -- Black Feather -for k,_ in pairs(EID.blackFeatherTrinkets) do EID:AddItemConditional("5.350." .. k, "5.350.80", "Black Feather", {lineColor="BlinkGray"}) end -- Black Feather +for k,_ in pairs(EID.BlackFeatherItems) do EID:AddItemConditional(k, "5.350.80", "Black Feather", {lineColor="BlinkGray"}) end -- Black Feather +for k,_ in pairs(EID.BlackFeatherTrinkets) do EID:AddItemConditional("5.350." .. k, "5.350.80", "Black Feather", {lineColor="BlinkGray"}) end -- Black Feather EID:AddItemConditional("5.70.28", 358) -- Wizard pill + The Wiz EID:AddItemConditional(523, 477) -- Moving Box is a passive to Void EID:AddItemConditional({8, 113, 163, 167, 99, 100, 174, 95, 268, 67}, 322, "Mongo Babies") -- Mongo Baby + Copiable familiars diff --git a/features/eid_conditionals_funcs.lua b/features/eid_conditionals_funcs.lua index 6f90adb9..7b77e138 100644 --- a/features/eid_conditionals_funcs.lua +++ b/features/eid_conditionals_funcs.lua @@ -357,21 +357,6 @@ function EID:InStageTheShop() return EID:IsGreedMode() and EID:InStageNum(0) end --- Check if we have any characters that can't have Red Health, to print additions to descs like Dead Cat -function EID:CheckForNoRedHealthPlayer() - if EID.InsideItemReminder then - local player = EID.ItemReminderPlayerEntity - return EID.NoRedHeartsPlayerIDs[player:GetPlayerType()] - else - for _, player in ipairs(EID.coopAllPlayers) do - if EID.NoRedHeartsPlayerIDs[player:GetPlayerType()] then - return true - end - end - end - return false -end - function EID:CheckForTaintedPlayer() if EID.InsideItemReminder then local player = EID.ItemReminderPlayerEntity diff --git a/features/eid_data.lua b/features/eid_data.lua index 8ae9ecc9..2995b219 100644 --- a/features/eid_data.lua +++ b/features/eid_data.lua @@ -1138,31 +1138,27 @@ EID.TaintedToRegularID = { [20] = 19, [21] = 0, [22] = 1, [23] = 2, [24] = 3, [2 -- Player IDs of Tainted characters EID.TaintedIDs = {}; for i = 21, 40 do EID.TaintedIDs[i] = true end --- Character IDs that are Soul/Black Hearts only: ???, The Lost, The Soul -EID.NoRedHeartsPlayerIDs = { [4] = true, [10] = true, [17] = true } --- More separated table for more exact data -EID.SpecialHeartPlayers = {} -EID.SpecialHeartPlayers["Soul"] = { 4, 17 } -EID.SpecialHeartPlayers["Black"] = {} -EID.SpecialHeartPlayers["Coin"] = { 14 } -EID.SpecialHeartPlayers["Bone"] = { 16 } -EID.SpecialHeartPlayers["None"] = { 10 } --- Lookup table for the type of health each player has -EID.CharacterToHeartType = {}; for i = 0, 17 do EID.CharacterToHeartType[i] = "Red" end -EID.CharacterToHeartType[4] = "Soul"; EID.CharacterToHeartType[10] = "None"; EID.CharacterToHeartType[14] = "Coin"; EID.CharacterToHeartType[16] = "Bone"; EID.CharacterToHeartType[17] = "Soul" - +-- lookup table of all characters with a given heart type +EID.SpecialHeartPlayers = { + Soul = { 4, 17 }, + Coin = { 14 }, + Bone = { 16 }, + None = { 10 }, +} if EID.isRepentance then - -- ???, The Lost, Black Judas, The Soul, Tainted Judas, Tainted ???, Tainted Lost, Tainted Forgotten, Tainted Bethany, Tainted Soul - EID.NoRedHeartsPlayerIDs = { [4] = true, [10] = true, [12] = true, [17] = true, [24] = true, [25] = true, [31] = true, [35] = true, [36] = true, [40] = true } EID.SpecialHeartPlayers["Soul"] = { 4, 17, 25, 35, 36, 40 } EID.SpecialHeartPlayers["Black"] = { 12, 24 } EID.SpecialHeartPlayers["Coin"] = { 14, 33 } EID.SpecialHeartPlayers["None"] = { 10, 31 } - - for i = 18, 40 do EID.CharacterToHeartType[i] = "Red" end - EID.CharacterToHeartType[12] = "Black"; EID.CharacterToHeartType[24] = "Black"; EID.CharacterToHeartType[25] = "Soul"; EID.CharacterToHeartType[31] = "None"; EID.CharacterToHeartType[33] = "Coin"; EID.CharacterToHeartType[35] = "Soul"; EID.CharacterToHeartType[36] = "Soul"; EID.CharacterToHeartType[40] = "Soul"; end +-- Lookup table for the type of health each player has +EID.CharacterToHeartType = {}; for i = 0, 40 do EID.CharacterToHeartType[i] = "Red" end +-- fill EID.CharacterToHeartType table with data from EID.SpecialHeartPlayers table +for heartType, charTable in pairs(EID.SpecialHeartPlayers) do for _, charID in ipairs(charTable) do EID.CharacterToHeartType[charID] = heartType end end + + + EID.HealthTypesWithoutHealing = {} EID.HealthTypesWithoutHealing["Soul"] = true EID.HealthTypesWithoutHealing["Black"] = true @@ -1172,9 +1168,9 @@ EID.HealthTypesWithoutHealing["None"] = true EID.PocketActivePlayerIDs = { [22] = 0, [23] = 2, [24] = 1, [25] = 2, [26] = 1, [29] = 0, [34] = 0, [36] = 0, [37] = 1, [38] = 0, [39] = 1 } -- "Evil" item IDs for Black Feather -EID.blackFeatherItems = {[215]=true,[216]=true,[230]=true,[260]=true,[262]=true,[339]=true,[344]=true} -if EID.isRepentance then EID.blackFeatherItems[654] = true end -EID.blackFeatherTrinkets = {[17]=true,[22]=true} +EID.BlackFeatherItems = { [215] = true, [216] = true, [230] = true, [260] = true, [262] = true, [339] = true, [344] = true } +if EID.isRepentance then EID.BlackFeatherItems[654] = true end +EID.BlackFeatherTrinkets = { [17] = true, [22] = true } -- Luck formulas EID.LuckFormulas = {} diff --git a/features/eid_itemprediction.lua b/features/eid_itemprediction.lua index 181885cb..a7352e55 100644 --- a/features/eid_itemprediction.lua +++ b/features/eid_itemprediction.lua @@ -353,7 +353,7 @@ function EID:GlyphOfBalancePrediction(player) local fullID = "5.0" local playerID = player:GetPlayerType() - local skipHearts = EID.isRepentance and EID.NoRedHeartsPlayerIDs[playerID] -- Soul Heart characters can't get hearts in Repentance + local skipHearts = EID.CharacterToHeartType[playerID] ~= "Red" local skipSoulHearts = EID.isRepentance and (playerID == 18 or playerID == 14 or playerID == 33) -- Bethany and Keepers can't get Soul Hearts with 6 or less containers in Repentance local skipBombs = EID.isRepentance and playerID == 25 -- Tainted ??? (the only character that can't have Bombs) diff --git a/features/eid_modifiers.lua b/features/eid_modifiers.lua index f5008d46..67956cff 100644 --- a/features/eid_modifiers.lua +++ b/features/eid_modifiers.lua @@ -226,10 +226,10 @@ local function BlackFeatherCallback(descObj) local playerType = player:GetPlayerType() local itemCounter = 0 - for itemID, _ in pairs(EID.blackFeatherItems) do + for itemID, _ in pairs(EID.BlackFeatherItems) do itemCounter = itemCounter + player:GetCollectibleNum(itemID) end - for trinketID, _ in pairs(EID.blackFeatherTrinkets) do + for trinketID, _ in pairs(EID.BlackFeatherTrinkets) do if EID.isRepentance then itemCounter = itemCounter + player:GetTrinketMultiplier(trinketID) else