Conditionals overhaul (#666)

* more general type check

* conditional work + characterInfo

* conditional work + characterInfo

* conditional overhaul WIP

* fix typo with BagLearnedRecipes

* Cursed Eye + Black Candle synergy

* conditional stuff

* Change Brittle wording

* Teleport 2.0 Red Room check

* Changed collectiblesToCheck format, moved some mods to conds

* Add getPlayerName, tweak replaceNameMarkupStrings

* massive conditional overhaul

* AB+ birthright check fix

* oh yeah birthright isn't zero-indexed yet

* update with mirades

* update with mirades

* Move blank card / rune IDs

* move rune IDs, reduce reused code

* Add {{NameOnlyX###}} markup

* more conditionals

* more conditionals

* Update eid_conditionals.lua

* separate icon from name in variablecharge

* keep old localizations working

* split Dead Cat so it doesn't have a variable text

* Blank Card + ? Card

* moving Blank Card + ? Card

* Pretend english detailed doesn't exist

* Oops! No Comma!

* milk override

* Placenta no red hp

* actually no placenta still gives +1 health

* Dark Arts conditional

* Marbles percentage

* Dark Arts conditional
This commit is contained in:
Buurazu authored and GitHub committed 2024-06-09 17:59:56 +02:00
1 parent 68caf34fed
commit ac2aecae92
30 files changed
+590 -334

No files matched your search

+8
View File
@@ -911,3 +911,11 @@ EID.descriptions[languageCode].PickupNames = {
["5.350"] = "{{Trinket}} Trinket", ["5.350"] = "{{Trinket}} Trinket",
} }
-- Conditional descriptions
-- Strings will be appended to the original description
-- Tables with one entry will completely replace the original description
-- Tables with two or more entries are find-replace pairs
EID.descriptions[languageCode].ConditionalDescs = {
["5.300.48"] = "Teleportuje tě do JSEM ERROR místnosti#Prázdná Karta a ?-Karta bude zničena", -- Blank Card + Q Card
}
+8
View File
@@ -641,3 +641,11 @@ EID.descriptions[languageCode].VoidText = "Wenn absorbiert, erhalte:"
EID.descriptions[languageCode].VoidNames = {"{1} Tempo", "{1} Tränen", "{1} Schaden", "{1} Reichweite", "{1} Schusstempo", "{1} Glück"} EID.descriptions[languageCode].VoidNames = {"{1} Tempo", "{1} Tränen", "{1} Schaden", "{1} Reichweite", "{1} Schusstempo", "{1} Glück"}
-- Not yet Translated! -- Not yet Translated!
-- Copy & Paste entries from en_us and continue translating from that -- Copy & Paste entries from en_us and continue translating from that
-- Conditional descriptions
-- Strings will be appended to the original description
-- Tables with one entry will completely replace the original description
-- Tables with two or more entries are find-replace pairs
EID.descriptions[languageCode].ConditionalDescs = {
["5.300.48"] = "Teleport zum I AM ERROR-Raum#Blanko-Karte und ?-Karte werden zerstört", -- Blank Card + Q Card
}
+94 -13
View File
@@ -27,7 +27,7 @@ EID.descriptions[languageCode].collectibles={
{"4", "Cricket's Head", "↑ {{Damage}} +0.5 Damage#↑ {{Damage}} x1.5 Damage multiplier"}, -- Cricket's Head {"4", "Cricket's Head", "↑ {{Damage}} +0.5 Damage#↑ {{Damage}} x1.5 Damage multiplier"}, -- Cricket's Head
{"5", "My Reflection", "↑ {{Range}} +1.5 Range#↑ +1 Tear height#↑ {{Shotspeed}} +0.6 Shot speed#Tears get a boomerang effect"}, -- My Reflection {"5", "My Reflection", "↑ {{Range}} +1.5 Range#↑ +1 Tear height#↑ {{Shotspeed}} +0.6 Shot speed#Tears get a boomerang effect"}, -- My Reflection
{"6", "Number One", "↑ {{Tears}} +1.5 Tears#↑ +0.76 Tear height#↓ {{Range}} -17.62 Range"}, -- Number One {"6", "Number One", "↑ {{Tears}} +1.5 Tears#↑ +0.76 Tear height#↓ {{Range}} -17.62 Range"}, -- Number One
{"7", "Blood of the Martyr", "↑ {{Damage}} +1 Damage#{{Collectible34}} x1.5 Damage multiplier if \"The Book of Belial\" or \"XV - The Devil\" effect is active"}, -- Blood of the Martyr {"7", "Blood of the Martyr", "↑ {{Damage}} +1 Damage"}, -- Blood of the Martyr
{"8", "Brother Bobby", "Shoots normal tears#Deals 3.5 damage per tear"}, -- Brother Bobby {"8", "Brother Bobby", "Shoots normal tears#Deals 3.5 damage per tear"}, -- Brother Bobby
{"9", "Skatole", "All fly enemies are friendly"}, -- Skatole {"9", "Skatole", "All fly enemies are friendly"}, -- Skatole
{"10", "Halo of Flies", "+2 Fly orbitals#Blocks enemy projectiles"}, -- Halo of Flies {"10", "Halo of Flies", "+2 Fly orbitals#Blocks enemy projectiles"}, -- Halo of Flies
@@ -54,7 +54,7 @@ EID.descriptions[languageCode].collectibles={
{"31", "Mom's Lipstick", "↑ {{Range}} +5.25 Range#↑ +0.5 Tear height"}, -- Mom's Lipstick {"31", "Mom's Lipstick", "↑ {{Range}} +5.25 Range#↑ +0.5 Tear height"}, -- Mom's Lipstick
{"32", "Wire Coat Hanger", "↑ {{Tears}} +0.7 Tears"}, -- Wire Coat Hanger {"32", "Wire Coat Hanger", "↑ {{Tears}} +0.7 Tears"}, -- Wire Coat Hanger
{"33", "The Bible", "{{Timer}} Flight for the room#{{MomsHeart}} Kills Mom's Foot and Mom's Heart instantly#{{Warning}} Kills Isaac when used on Satan"}, -- The Bible {"33", "The Bible", "{{Timer}} Flight for the room#{{MomsHeart}} Kills Mom's Foot and Mom's Heart instantly#{{Warning}} Kills Isaac when used on Satan"}, -- The Bible
{"34", "The Book of Belial", "{{AngelDevilChance}} +12.5% Devil/Angel Room chance while held#{{Timer}} Receive for the room:#↑ {{Damage}} +2 Damage#{{Collectible7}} x1.5 Damage multiplier if Isaac has \"Blood of the Martyr\""}, -- The Book of Belial {"34", "The Book of Belial", "{{AngelDevilChance}} +12.5% Devil/Angel Room chance while held#{{Timer}} Receive for the room:#↑ {{Damage}} +2 Damage"}, -- The Book of Belial
{"35", "The Necronomicon", "Deals 40 damage to all enemies in the room"}, -- The Necronomicon {"35", "The Necronomicon", "Deals 40 damage to all enemies in the room"}, -- The Necronomicon
{"36", "The Poop", "Spawns one poop and knocks back enemies#Can be placed next to a pit and destroyed with a bomb to make a bridge"}, -- The Poop {"36", "The Poop", "Spawns one poop and knocks back enemies#Can be placed next to a pit and destroyed with a bomb to make a bridge"}, -- The Poop
{"37", "Mr. Boom", "Drops a large bomb below Isaac which deals 110 damage"}, -- Mr. Boom {"37", "Mr. Boom", "Drops a large bomb below Isaac which deals 110 damage"}, -- Mr. Boom
@@ -69,7 +69,7 @@ EID.descriptions[languageCode].collectibles={
{"46", "Lucky Foot", "↑ {{Luck}} +1 Luck#+8% room clear reward chance#Better chance to win while gambling"}, -- Lucky Foot {"46", "Lucky Foot", "↑ {{Luck}} +1 Luck#+8% room clear reward chance#Better chance to win while gambling"}, -- Lucky Foot
{"47", "Doctor's Remote", "{{Collectible168}} On use, start aiming a crosshair#A missile lands on the crosshair after 1.5 seconds#Deals 20x Isaac's damage"}, -- Doctor's Remote {"47", "Doctor's Remote", "{{Collectible168}} On use, start aiming a crosshair#A missile lands on the crosshair after 1.5 seconds#Deals 20x Isaac's damage"}, -- Doctor's Remote
{"48", "Cupid's Arrow", "Piercing tears"}, -- Cupid's Arrow {"48", "Cupid's Arrow", "Piercing tears"}, -- Cupid's Arrow
{"49", "Shoop da Whoop!", "{{Collectible118}} Using the item and shooting in a direction fires a high damage Brimstone beam"}, -- Shoop da Whoop! {"49", "Shoop da Whoop!", "{{Collectible118}} Using the item and shooting in a direction fires a 2x damage laser"}, -- Shoop da Whoop!
{"50", "Steven", "↑ {{Damage}} +1 Damage"}, -- Steven {"50", "Steven", "↑ {{Damage}} +1 Damage"}, -- Steven
{"51", "Pentagram", "↑ {{Damage}} +1 Damage#{{AngelDevilChance}} +10% Devil/Angel Room chance"}, -- Pentagram {"51", "Pentagram", "↑ {{Damage}} +1 Damage#{{AngelDevilChance}} +10% Devil/Angel Room chance"}, -- Pentagram
{"52", "Dr. Fetus", "↓ {{Tears}} x2.5 Tear delay multiplier#{{Bomb}} Isaac shoots bombs instead of tears#{{Damage}} Those bombs deal 5x Isaac's damage + 30"}, -- Dr. Fetus {"52", "Dr. Fetus", "↓ {{Tears}} x2.5 Tear delay multiplier#{{Bomb}} Isaac shoots bombs instead of tears#{{Damage}} Those bombs deal 5x Isaac's damage + 30"}, -- Dr. Fetus
@@ -95,7 +95,7 @@ EID.descriptions[languageCode].collectibles={
{"72", "Rosary", "{{SoulHeart}} +3 Soul Hearts#{{Collectible33}} The Bible is added to all item pools"}, -- Rosary {"72", "Rosary", "{{SoulHeart}} +3 Soul Hearts#{{Collectible33}} The Bible is added to all item pools"}, -- Rosary
{"73", "Cube of Meat", "Lv1: Orbital#Lv2: Shooting orbital#Lv3: Meat Boy#Lv4: Super Meat Boy"}, -- Cube of Meat {"73", "Cube of Meat", "Lv1: Orbital#Lv2: Shooting orbital#Lv3: Meat Boy#Lv4: Super Meat Boy"}, -- Cube of Meat
{"74", "A Quarter", "{{Coin}} +25 Coins"}, -- A Quarter {"74", "A Quarter", "{{Coin}} +25 Coins"}, -- A Quarter
{"75", "PHD", "{{Heart}} Heals 2 hearts#{{Pill}} Spawns 1 pill#{{Pill}} Changes bad pills into good pills#{{BloodDonationMachine}} Blood Donation Machines and {{Collectible135}} IV Bag give more {{Coin}} coins"}, -- PHD {"75", "PHD", "{{Heart}} Heals 2 hearts#{{Pill}} Spawns 1 pill#{{Pill}} Changes bad pills into good pills#{{BloodDonationMachine}} Blood Donation Machines give more {{Coin}} coins"}, -- PHD
{"76", "X-Ray Vision", "{{SecretRoom}} Opens all secret room entrances"}, -- X-Ray Vision {"76", "X-Ray Vision", "{{SecretRoom}} Opens all secret room entrances"}, -- X-Ray Vision
{"77", "My Little Unicorn", "{{Timer}} Receive for 6 seconds:#↑ {{Speed}} +0.28 Speed#Invincibility#Isaac can't shoot but deals 40 contact damage per second"}, -- My Little Unicorn {"77", "My Little Unicorn", "{{Timer}} Receive for 6 seconds:#↑ {{Speed}} +0.28 Speed#Invincibility#Isaac can't shoot but deals 40 contact damage per second"}, -- My Little Unicorn
{"78", "Book of Revelations", "{{SoulHeart}} +1 Soul Heart#{{AngelDevilChance}} +17.5% Devil/Angel Room chance while held#Using the item has a high chance to replace the floor's boss with a horseman"}, -- Book of Revelations {"78", "Book of Revelations", "{{SoulHeart}} +1 Soul Heart#{{AngelDevilChance}} +17.5% Devil/Angel Room chance while held#Using the item has a high chance to replace the floor's boss with a horseman"}, -- Book of Revelations
@@ -128,7 +128,7 @@ EID.descriptions[languageCode].collectibles={
{"105", "The D6", "Rerolls pedestal items in the room"}, -- The D6 {"105", "The D6", "Rerolls pedestal items in the room"}, -- The D6
{"106", "Mr. Mega", "↑ {{Bomb}} x1.83 Bomb damage#{{Bomb}} +5 Bombs"}, -- Mr. Mega {"106", "Mr. Mega", "↑ {{Bomb}} x1.83 Bomb damage#{{Bomb}} +5 Bombs"}, -- Mr. Mega
{"107", "The Pinking Shears", "{{Timer}} Receive for the room:#Flight#Isaac's body separates from his head and attacks enemies with 82.5 contact damage per second"}, -- The Pinking Shears {"107", "The Pinking Shears", "{{Timer}} Receive for the room:#Flight#Isaac's body separates from his head and attacks enemies with 82.5 contact damage per second"}, -- The Pinking Shears
{"108", "The Wafer", "Reduces most damage taken to half a heart#{{Player14}} Doesn't work for Keeper"}, -- The Wafer {"108", "The Wafer", "Reduces most damage taken to half a heart"}, -- The Wafer
{"109", "Money = Power", "↑ {{Damage}} +0.04 Damage for every {{Coin}} coin Isaac has"}, -- Money = Power {"109", "Money = Power", "↑ {{Damage}} +0.04 Damage for every {{Coin}} coin Isaac has"}, -- Money = Power
{"110", "Mom's Contacts", "↑ {{Range}} +0.25 Range#↑ +0.5 Tear height#20% chance to shoot petrifying tears#{{Luck}} 50% chance at 20 luck"}, -- Mom's Contacts {"110", "Mom's Contacts", "↑ {{Range}} +0.25 Range#↑ +0.5 Tear height#20% chance to shoot petrifying tears#{{Luck}} 50% chance at 20 luck"}, -- Mom's Contacts
{"111", "The Bean", "{{Poison}} Farts a poison cloud#The poison deals Isaac's damage 6 times"}, -- The Bean {"111", "The Bean", "{{Poison}} Farts a poison cloud#The poison deals Isaac's damage 6 times"}, -- The Bean
@@ -247,7 +247,7 @@ EID.descriptions[languageCode].collectibles={
{"224", "Cricket's Body", "↑ {{Tears}} -1 Tear delay#↑ {{Tearsize}} x1.2 Tear size#↓ {{Range}} -10 Range#Tears split up in 4 on hit#Split tears deal half damage"}, -- Cricket's Body {"224", "Cricket's Body", "↑ {{Tears}} -1 Tear delay#↑ {{Tearsize}} x1.2 Tear size#↓ {{Range}} -10 Range#Tears split up in 4 on hit#Split tears deal half damage"}, -- Cricket's Body
{"225", "Gimpy", "{{SoulHeart}} Taking damage has a chance to spawn a Soul Heart#{{HalfHeart}} Enemies have a chance to drop a half Red Heart on death"}, -- Gimpy {"225", "Gimpy", "{{SoulHeart}} Taking damage has a chance to spawn a Soul Heart#{{HalfHeart}} Enemies have a chance to drop a half Red Heart on death"}, -- Gimpy
{"226", "Black Lotus", "↑ {{Heart}} +1 Health#{{SoulHeart}} +1 Soul Heart#{{BlackHeart}} +1 Black Heart"}, -- Black Lotus {"226", "Black Lotus", "↑ {{Heart}} +1 Health#{{SoulHeart}} +1 Soul Heart#{{BlackHeart}} +1 Black Heart"}, -- Black Lotus
{"227", "Piggy Bank", "{{Coin}} +3 Coins#{{Coin}} Taking damage spawns 1-2 coins#{{Player14}} 0-1 Coin as Keeper"}, -- Piggy Bank {"227", "Piggy Bank", "{{Coin}} +3 Coins#{{Coin}} Taking damage spawns 1-2 coins"}, -- Piggy Bank
{"228", "Mom's Perfume", "↑ {{Tears}} -1 Tear delay#{{Fear}} 15% chance to shoot fear tears"}, -- Mom's Perfume {"228", "Mom's Perfume", "↑ {{Tears}} -1 Tear delay#{{Fear}} 15% chance to shoot fear tears"}, -- Mom's Perfume
{"229", "Monstro's Lung", "↓ {{Tears}} x4.3 Tear delay multiplier#{{Chargeable}} Tears are charged and released in a shotgun style attack"}, -- Monstro's Lung {"229", "Monstro's Lung", "↓ {{Tears}} x4.3 Tear delay multiplier#{{Chargeable}} Tears are charged and released in a shotgun style attack"}, -- Monstro's Lung
{"230", "Abaddon", "↑ {{Speed}} +0.2 Speed#↑ {{Damage}} +1.5 Damage#↓ {{EmptyHeart}} Removes all heart containers#{{BlackHeart}} +6 Black Hearts#{{Fear}} 15% chance to shoot fear tears"}, -- Abaddon {"230", "Abaddon", "↑ {{Speed}} +0.2 Speed#↑ {{Damage}} +1.5 Damage#↓ {{EmptyHeart}} Removes all heart containers#{{BlackHeart}} +6 Black Hearts#{{Fear}} 15% chance to shoot fear tears"}, -- Abaddon
@@ -338,7 +338,7 @@ EID.descriptions[languageCode].collectibles={
{"313", "Holy Mantle", "Negates the first hit taken once per room"}, -- Holy Mantle {"313", "Holy Mantle", "Negates the first hit taken once per room"}, -- Holy Mantle
{"314", "Thunder Thighs", "↑ {{Heart}} +1 Health#↓ {{Speed}} -0.4 Speed#Isaac can destroy rocks by walking into them"}, -- Thunder Thighs {"314", "Thunder Thighs", "↑ {{Heart}} +1 Health#↓ {{Speed}} -0.4 Speed#Isaac can destroy rocks by walking into them"}, -- Thunder Thighs
{"315", "Strange Attractor", "Isaac's tears attract enemies, pickups and trinkets"}, -- Strange Attractor {"315", "Strange Attractor", "Isaac's tears attract enemies, pickups and trinkets"}, -- Strange Attractor
{"316", "Cursed Eye", "Charged wave of 4 tears#{{Warning}} Taking damage while partially charged teleports Isaac to a random room#{{Collectible260}} Black Candle removes the teleportation effect"}, -- Cursed Eye {"316", "Cursed Eye", "Charged wave of 4 tears#{{Warning}} Taking damage while partially charged teleports Isaac to a random room"}, -- Cursed Eye
{"317", "Mysterious Liquid", "Isaac's tears leave creep#The creep deals 30 damage per second"}, -- Mysterious Liquid {"317", "Mysterious Liquid", "Isaac's tears leave creep#The creep deals 30 damage per second"}, -- Mysterious Liquid
{"318", "Gemini", "Close combat familiar#Deals 6 contact damage per second"}, -- Gemini {"318", "Gemini", "Close combat familiar#Deals 6 contact damage per second"}, -- Gemini
{"319", "Cain's Other Eye", "Bounces around the room#Shoots towards Isaac#{{Damage}} Deals the same damage as Isaac"}, -- Cain's Other Eye {"319", "Cain's Other Eye", "Bounces around the room#Shoots towards Isaac#{{Damage}} Deals the same damage as Isaac"}, -- Cain's Other Eye
@@ -523,7 +523,7 @@ EID.descriptions[languageCode].collectibles={
{"498", "Duality", "{{AngelDevilChance}} Spawns both an Angel and Devil Room if either would have spawned#Entering one makes the other disappear"}, -- Duality {"498", "Duality", "{{AngelDevilChance}} Spawns both an Angel and Devil Room if either would have spawned#Entering one makes the other disappear"}, -- Duality
{"499", "Eucharist", "{{AngelChance}} 100% chance for Angel Rooms to spawn"}, -- Eucharist {"499", "Eucharist", "{{AngelChance}} 100% chance for Angel Rooms to spawn"}, -- Eucharist
{"500", "Sack of Sacks", "Spawns a sack every 5-6 rooms"}, -- Sack of Sacks {"500", "Sack of Sacks", "Spawns a sack every 5-6 rooms"}, -- Sack of Sacks
{"501", "Greed's Gullet", "{{Heart}} +1 Heart container for every 25 coins gained after getting Greed's Gullet#{{Player14}} Keeper can gain additional coin containers"}, -- Greed's Gullet {"501", "Greed's Gullet", "{{Heart}} +1 Heart container for every 25 coins gained after getting Greed's Gullet"}, -- Greed's Gullet
{"502", "Large Zit", "{{Slow}} Firing occasionally shoots a white creep tear that deals double damage and slows enemies#Taking damage shoots a white creep tear"}, -- Large Zit {"502", "Large Zit", "{{Slow}} Firing occasionally shoots a white creep tear that deals double damage and slows enemies#Taking damage shoots a white creep tear"}, -- Large Zit
{"503", "Little Horn", "5% chance to shoot tears that instantly kill enemies#{{Luck}} 20% chance at 15 luck#Isaac deals 3.5 contact damage"}, -- Little Horn {"503", "Little Horn", "5% chance to shoot tears that instantly kill enemies#{{Luck}} 20% chance at 15 luck#Isaac deals 3.5 contact damage"}, -- Little Horn
{"504", "Brown Nugget", "Spawns a fly turret that shoots at enemies#Each shot deals 2 damage"}, -- Brown Nugget {"504", "Brown Nugget", "Spawns a fly turret that shoots at enemies#Each shot deals 2 damage"}, -- Brown Nugget
@@ -560,7 +560,7 @@ EID.descriptions[languageCode].collectibles={
{"535", "Blanket", "{{Heart}} Heals 1 heart#{{SoulHeart}} +1 Soul Heart#{{HolyMantle}} Entering a boss room grants a Holy Mantle shield (prevents damage once)"}, -- Blanket {"535", "Blanket", "{{Heart}} Heals 1 heart#{{SoulHeart}} +1 Soul Heart#{{HolyMantle}} Entering a boss room grants a Holy Mantle shield (prevents damage once)"}, -- Blanket
{"536", "Sacrificial Altar", "{{Warning}} SINGLE USE {{Warning}}#Sacrifices up to 2 familiars and spawns a devil item for each sacrifice#{{Coin}} Turns blue spiders/flies into coins"}, -- Sacrificial Altar {"536", "Sacrificial Altar", "{{Warning}} SINGLE USE {{Warning}}#Sacrifices up to 2 familiars and spawns a devil item for each sacrifice#{{Coin}} Turns blue spiders/flies into coins"}, -- Sacrificial Altar
{"537", "Lil Spewer", "{{Pill}} Spawns a random pill on pickup#Fires a line of creep#The type of creep changes with each pill use"}, -- Lil Spewer {"537", "Lil Spewer", "{{Pill}} Spawns a random pill on pickup#Fires a line of creep#The type of creep changes with each pill use"}, -- Lil Spewer
{"538", "Marbles", "{{Trinket}} Spawns 3 random trinkets#{{Collectible479}} Taking damage can remove Isaac's held trinket and grant its effects permanently"}, -- Marbles {"538", "Marbles", "{{Trinket}} Spawns 3 random trinkets#{{Collectible479}} Taking damage has a 10% chance to consume Isaac's held trinket and grant its effects permanently"}, -- Marbles
{"539", "Mystery Egg", "Taking damage spawns a charmed enemy#Spawns stronger friends the more rooms are cleared without taking damage"}, -- Mystery Egg {"539", "Mystery Egg", "Taking damage spawns a charmed enemy#Spawns stronger friends the more rooms are cleared without taking damage"}, -- Mystery Egg
{"540", "Flat Stone", "Isaac's tears bounce off the floor and cause splash damage on every bounce"}, -- Flat Stone {"540", "Flat Stone", "Isaac's tears bounce off the floor and cause splash damage on every bounce"}, -- Flat Stone
{"541", "Marrow", "{{Heart}} Spawns 3 Red Hearts#{{EmptyBoneHeart}} +1 Bone Heart"}, -- Marrow {"541", "Marrow", "{{Heart}} Spawns 3 Red Hearts#{{EmptyBoneHeart}} +1 Bone Heart"}, -- Marrow
@@ -972,14 +972,71 @@ EID.descriptions[languageCode].PickupNames = {
} }
-- Card Buffs caused by Tarot Cloth (separate table from Rep due to how different they are)
-- Strings will be appended to the original description (with line breaks replaced with a Tarot Cloth icon)
-- Tables with one entry will completely replace the original description
-- Tables with two or more entries are find-replace pairs (the new text will be colored Shiny Purple)
EID.descriptions[languageCode].tarotClothBuffsAB = {
[4] = {0.3, 0.6, 1.5, 3}, -- III - The Empress
[6] = {2, 4}, -- V - The Hierophant
[7] = {2, 4}, -- VI - The Lovers
[8] = {6, 12}, -- VII - The Chariot
[9] = {"Spawns {{ColorShinyPurple}}2{{CR}} random {{UnknownHeart}} hearts, {{Coin}} coins, {{Bomb}} bombs and {{Key}} keys"}, -- VIII - Justice
[11] = {"Spawns {{ColorShinyPurple}}2{{CR}} {{Slotmachine}} Slot Machines or {{FortuneTeller}} Fortune Machines"}, -- X - Wheel of Fortune
[12] = {1, 2, 0.3, 0.6, 0.3, 0.6, 5.25, 10.5}, -- XI - Strength
[14] = {40, 80}, -- XIII - Death
[15] = {"{{DonationMachine}} Spawns {{ColorShinyPurple}}2{{CR}} Blood Donation Machines"}, -- XIV - Temperance
[17] = {6, 12}, -- XVI - The Tower
[20] = {100, 200}, -- XIX - The Sun
[21] = {"Spawns {{ColorShinyPurple}}2{{CR}} Beggars or Devil Beggars#2% chance to spawn a special Beggar"}, -- XX - Judgement
[23] = {"Doubles", "Quadruples"}, -- 2 of Clubs
[24] = {"Doubles", "Quadruples"}, -- 2 of Diamonds
[25] = {"Doubles", "Quadruples"}, -- 2 of Spades
[26] = {"Doubles", "Quadruples"}, -- 2 of Hearts
[33] = {"Doubles", "Quadruples"}, -- Jera
[35] = {1, 2}, -- Dagaz
[37] = "Rerolls twice", -- Perthro
[38] = {3, 6, 3, 6}, -- Berkano
[39] = {30, 60}, -- Algiz
[40] = "Triggers 2 rune effects and tries to duplicate itself twice", -- Blank Rune
[41] = {40, 80}, -- Black Rune
[46] = {10, 20}, -- Suicide King
[48] = "Uses it twice", -- ? Card
[53] = {3, 6}, -- Ancient Recall
}
-- Conditional descriptions
-- Strings will be appended to the original description
-- Tables with one entry will completely replace the original description
-- Tables with two or more entries are find-replace pairs
EID.descriptions[languageCode].ConditionalDescs = { EID.descriptions[languageCode].ConditionalDescs = {
["Overridden"] = "Overridden by {1}",
["Overrides"] = "Overrides {1}",
["No Effect"] = "No effect for {1}",
["No Red"] = "No effect for characters that can't have Red Hearts",
["5.100.81"] = "Characters that can't have Red Hearts get set to 1 Soul/Black Heart", -- Dead Cat ["5.100.81"] = "Characters that can't have Red Hearts get set to 1 Soul/Black Heart", -- Dead Cat
["5.100.7"] = "x1.5 Damage multiplier while The Book of Belial or XV - The Devil effect is active", -- Blood of the Martyr
["5.100.34"] = "x1.5 Damage multiplier", -- Book of Belial
["5.300.16"] = "x1.5 Damage multiplier", -- The Devil
["5.100.135 (PHD)"] = "Spawns 2-3 coins if you have {1}", -- IV Bag PHD
["Keeper 0-1"] = "Spawns 0-1 coin as {1}", -- IV Bag/Piggy Bank Keeper
["5.100.241"] = "{{GreedMode}} Doesn't affect Greed Mode", -- Contract From Below ["5.100.241"] = "{{GreedMode}} Doesn't affect Greed Mode", -- Contract From Below
["5.100.135 (Keeper)"] = "{{Player14}} Spawns 0-1 coin as Keeper", -- IV Bag Keeper ["5.300.15"] = {"{{DemonBeggar}} Spawns a Devil Beggar"}, -- Temperance (Greed Mode effect)
["5.100.135 (PHD)"] = "{{Collectible75}} Spawns 2-3 coins if you have PHD", -- IV Bag PHD ["5.300.15 (Tarot)"] = {"{{DemonBeggar}} Spawns {{ColorShinyPurple}}2{{CR}} Devil Beggars"}, -- Temperance (Greed Mode + Tarot Cloth effect)
["5.100.442"] = "No effect for characters that can't have Red Hearts", -- Dark Prince's Crown
["5.300.15"] = "{{DemonBeggar}} Spawns a Devil Beggar", -- Temperance (Greed Mode effect)
["5.350.23"] = "{{Warning}} Dying in a {{SacrificeRoom}} Sacrifice Room while holding this trinket unlocks The Lost", -- Missing Poster (Unlock The Lost) ["5.350.23"] = "{{Warning}} Dying in a {{SacrificeRoom}} Sacrifice Room while holding this trinket unlocks The Lost", -- Missing Poster (Unlock The Lost)
["5.100.549"] = "{1} simply gets ↑ {{Tears}} +0.4 Tears on pickup", -- Brittle Bones (Keeper+Lost)
["5.100.316"] = "{1} removes the teleportation effect", -- Cursed Eye
["5.100.260"] = "Removes the teleportation effect of {1}", -- Black Candle
["5.100.501"] = "{1} can gain additional coin containers", -- Greed's Gullet
["5.100.230 (Keeper)"] = "{1} just dies", -- Abaddon
["5.300.48"] = "Teleport to I AM ERROR Room#Blank Card and ? Card will be destroyed", -- Blank Card + Q Card
} }
EID.descriptions[languageCode].BFFSSynergies = { EID.descriptions[languageCode].BFFSSynergies = {
@@ -992,3 +1049,27 @@ EID.descriptions[languageCode].BFFSSynergies = {
["5.100.537"] = "Increases pool size, but not damage", -- Lil Spewer ["5.100.537"] = "Increases pool size, but not damage", -- Lil Spewer
["5.100.539"] = "Spawns a champion variant of the enemy", -- Mystery Egg ["5.100.539"] = "Spawns a champion variant of the enemy", -- Mystery Egg
} }
-- TODO: make these more consistent with other descs, add icons, and is there any traits of the characters missing?
-- Soon, these descriptions, along with their starting item descriptions, will be in a tab in the Item Reminder
-- The character names here are also used in getPlayerName to provide localized character names
EID.descriptions[languageCode].characterInfo = {
[0] = {"Isaac", ""},
{"Magdalene", ""},
{"Cain", ""},
{"Judas", ""},
{"???", "Can't have Red Hearts"},
{"Eve", "Eve's Whore of Babylon triggers at 1 Red Heart or less"}, --this could just be desc modifier?
{"Samson", ""},
{"Azazel", "Flight#Short range Brimstone instead of tears"},
{"Lazarus", "When you die, resurrect as Lazarus Risen with 1 Red Heart container"},
{"Eden", "Start with random stats and items each run"},
{"The Lost", "Flight#Spectral tears#No health#One devil deal per room can be taken for free"},
{"Lazarus Risen", "Increased stats and 1.2x damage multiplier"},
{"Dark Judas", "2x Damage multiplier"},
{"Lilith", "Cannot shoot tears"},
{"Keeper", "Heal by picking up coins#Heart pickups are turned into Blue Flies"},
{"Apollyon", ""},
{"The Forgotten", "You have a melee attack#Can have up to 6 Bone Hearts#Press {{ButtonRT}} to switch to The Soul#The Soul can have up to 6 Soul/Black Hearts and has flight and spectral tears#The Soul is chained to The Forgotten, and can only move in a small radius around him"},
{"The Forgotten Soul", "You have a melee attack#Can have up to 6 Bone Hearts#Press {{ButtonRT}} to switch to The Soul#The Soul can have up to 6 Soul/Black Hearts and has flight and spectral tears#The Soul is chained to The Forgotten, and can only move in a small radius around him"},
}
+4 -2
View File
@@ -991,11 +991,13 @@ EID.descriptions[languageCode].PickupNames = {
} }
EID.descriptions[languageCode].ConditionalDescs = { EID.descriptions[languageCode].ConditionalDescs = {
["5.300.48"] = "Téléporte Isaac dans la salle d'erreur#La {{ColorYellow}}Carte Blanche{{ColorWhite}} et la {{ColorYellow}}Carte ?{{ColorWhite}} seront détruites", -- Blank Card + Q Card
["5.100.81"] = "Retire tous les cœurs sauf 1 aux personnages qui ne peuvent pas avoir de cœurs rouges", -- Dead Cat ["5.100.81"] = "Retire tous les cœurs sauf 1 aux personnages qui ne peuvent pas avoir de cœurs rouges", -- Dead Cat
["5.100.241"] = "{{Warning}} Sans effet en mode Avarice", -- Contract From Below ["5.100.241"] = "{{Warning}} Sans effet en mode Avarice", -- Contract From Below
["5.100.135 (Keeper)"] = "{{Player14}} Peut ne pas faire apparaître de pièce", -- IV Bag Keeper ["Keeper 0-1"] = "{{Player14}} Peut ne pas faire apparaître de pièce", -- IV Bag Keeper
["5.100.135 (PHD)"] = "Fait apparaître 2 ou 3 pièces avec {{ColorYellow}}Doctorat {{Collectible75}}", -- IV Bag PHD ["5.100.135 (PHD)"] = "Fait apparaître 2 ou 3 pièces avec {{ColorYellow}}Doctorat {{Collectible75}}", -- IV Bag PHD
["5.100.442"] = "{{Warning}} Aucun effet pour les personnages qui ne peuvent pas avoir de cœurs rouges", -- Dark Prince's Crown ["No Red"] = "{{Warning}} Aucun effet pour les personnages qui ne peuvent pas avoir de cœurs rouges", -- Dark Prince's Crown
["5.300.15"] = "Invoque un mendiant diabolique {{DemonBeggar}}", -- Temperance (Greed Mode effect) ["5.300.15"] = "Invoque un mendiant diabolique {{DemonBeggar}}", -- Temperance (Greed Mode effect)
["5.350.23"] = "{{Warning}} Mourir dans une Salle de Sacrifice {{SacrificeRoom}} en portant cette babiole débloque {{ColorLightOrange}}L'Égaré", -- Missing Poster (Unlock The Lost) ["5.350.23"] = "{{Warning}} Mourir dans une Salle de Sacrifice {{SacrificeRoom}} en portant cette babiole débloque {{ColorLightOrange}}L'Égaré", -- Missing Poster (Unlock The Lost)
} }
+4 -2
View File
@@ -991,11 +991,13 @@ EID.descriptions[languageCode].PickupNames = {
} }
EID.descriptions[languageCode].ConditionalDescs = { EID.descriptions[languageCode].ConditionalDescs = {
["5.300.48"] = "I AM ERRORにテレポート#白紙のカードと?カード 両方が消失する", -- Blank Card + Q Card
["5.100.81"] = "赤ハートを持てない キャラクターの場合、 青/黒ハートを1個に 設定・復活", -- Dead Cat ["5.100.81"] = "赤ハートを持てない キャラクターの場合、 青/黒ハートを1個に 設定・復活", -- Dead Cat
["5.100.241"] = "{{GreedMode}} グリードモードでは 効果なし", -- Contract From Below ["5.100.241"] = "{{GreedMode}} グリードモードでは 効果なし", -- Contract From Below
["5.100.135 (Keeper)"] = "{{Player14}} キーパー使用時は0~1コイン", -- IV Bag Keeper ["Keeper 0-1"] = "{{Player14}} キーパー使用時は0~1コイン", -- IV Bag Keeper
["5.100.135 (PHD)"] = "{{Collectible75}} PHD所有時は2~3コイン", -- IV Bag PHD ["5.100.135 (PHD)"] = "{{Collectible75}} PHD所有時は2~3コイン", -- IV Bag PHD
["5.100.442"] = "赤ハートを持てない キャラクターの場合、 効果なし", -- Dark Prince's Crown ["No Red"] = "赤ハートを持てない キャラクターの場合、 効果なし", -- Dark Prince's Crown
["5.300.15"] = "{{DemonBeggar}} 悪魔乞食をスポーン", -- Temperance (Greed Mode effect) ["5.300.15"] = "{{DemonBeggar}} 悪魔乞食をスポーン", -- Temperance (Greed Mode effect)
["5.350.23"] = "{{Warning}} 保持中に生贄部屋で死ぬと ザ・ロストをアンロック", -- Missing Poster (Unlock The Lost) ["5.350.23"] = "{{Warning}} 保持中に生贄部屋で死ぬと ザ・ロストをアンロック", -- Missing Poster (Unlock The Lost)
} }
+4 -2
View File
@@ -1025,11 +1025,13 @@ EID.descriptions[languageCode].PickupNames = {
} }
EID.descriptions[languageCode].ConditionalDescs = { EID.descriptions[languageCode].ConditionalDescs = {
["5.300.48"] = "오류방으로 순간이동합니다.#Blank Card와 ? 카드가 제거됩니다.", -- Blank Card + Q Card
["5.100.81"] = "!!! 최대 체력 = 소울하트 보정을 받는 캐릭터는 소울하트가 1칸이 됩니다.", -- Dead Cat ["5.100.81"] = "!!! 최대 체력 = 소울하트 보정을 받는 캐릭터는 소울하트가 1칸이 됩니다.", -- Dead Cat
["5.100.241"] = "{{GreedModeSmall}} Greed 모드의 동전 보상은 영향 없음", -- Contract From Below ["5.100.241"] = "{{GreedModeSmall}} Greed 모드의 동전 보상은 영향 없음", -- Contract From Below
["5.100.135 (Keeper)"] = "{{Player14}}Keeper: 0~1개", -- IV Bag Keeper ["Keeper 0-1"] = "{{Player14}}Keeper: 0~1개", -- IV Bag Keeper
["5.100.135 (PHD)"] = "{{Collectible75}} PHD 소지 시 2-3개로 증가", -- IV Bag PHD ["5.100.135 (PHD)"] = "{{Collectible75}} PHD 소지 시 2-3개로 증가", -- IV Bag PHD
["5.100.442"] = "빨간하트를 소지할 수 없는 캐릭터는 무효과", -- Dark Prince's Crown ["No Red"] = "빨간하트를 소지할 수 없는 캐릭터는 무효과", -- Dark Prince's Crown
["5.300.15"] = "{{DemonBeggar}} 악마거지를 소환합니다.", -- Temperance (Greed Mode effect) ["5.300.15"] = "{{DemonBeggar}} 악마거지를 소환합니다.", -- Temperance (Greed Mode effect)
-- ["5.350.23"] = "", -- Missing Poster (Unlock The Lost) -- ["5.350.23"] = "", -- Missing Poster (Unlock The Lost)
} }
+8
View File
@@ -891,3 +891,11 @@ EID.descriptions[languageCode].ItemReminder = {
-- includes Planetarium even though it's unused in AB+ for convenience -- includes Planetarium even though it's unused in AB+ for convenience
EID.descriptions[languageCode].Teleport2RoomNames = { "Sala Normal","Sala do Chefe","Sala Super Secreta","Loja","Sala do Tesouro","Sala de Sacrifício","Sala do Dado","Biblioteca","Sala da Maldição","Sala do Mini-Chefe","Sala do Desafio/Desafio do Chefe","Sala do Isaac","Sala Estéril","Sala do Jogos","Sala do Baú","Planetário","Sala Secreta","Sala Vermelha Especial","Sala do Anjo/Diabo","Sala I AM ERROR" } EID.descriptions[languageCode].Teleport2RoomNames = { "Sala Normal","Sala do Chefe","Sala Super Secreta","Loja","Sala do Tesouro","Sala de Sacrifício","Sala do Dado","Biblioteca","Sala da Maldição","Sala do Mini-Chefe","Sala do Desafio/Desafio do Chefe","Sala do Isaac","Sala Estéril","Sala do Jogos","Sala do Baú","Planetário","Sala Secreta","Sala Vermelha Especial","Sala do Anjo/Diabo","Sala I AM ERROR" }
EID.descriptions[languageCode].Teleport2GreedRoomNames = { "Sala Principal", "Sala do Chefe", "Loja", "Sala do Tesouro Prateada/Dourada", "Sala da Maldição", "Sala da Saída", "Sala Super Secreta", "Sala do Anjo/Diabo", "Sala I AM ERROR" } EID.descriptions[languageCode].Teleport2GreedRoomNames = { "Sala Principal", "Sala do Chefe", "Loja", "Sala do Tesouro Prateada/Dourada", "Sala da Maldição", "Sala da Saída", "Sala Super Secreta", "Sala do Anjo/Diabo", "Sala I AM ERROR" }
-- Conditional descriptions
-- Strings will be appended to the original description
-- Tables with one entry will completely replace the original description
-- Tables with two or more entries are find-replace pairs
EID.descriptions[languageCode].ConditionalDescs = {
["5.300.48"] = "Teleporta para a Sala I AM Error#Blank Card e ?-Carta serão destruídas", -- Blank Card + Q Card
}
+8
View File
@@ -895,3 +895,11 @@ EID.descriptions[languageCode].ItemReminder = {
Passives = "Пассивные предметы" Passives = "Пассивные предметы"
} }
} }
-- Conditional descriptions
-- Strings will be appended to the original description
-- Tables with one entry will completely replace the original description
-- Tables with two or more entries are find-replace pairs
EID.descriptions[languageCode].ConditionalDescs = {
["5.300.48"] = "Телепортирует в комнату Я-ОШИБКА#Пустая карта и ?-карта будут уничтожены", -- Blank Card + Q Card
}
+8
View File
@@ -920,3 +920,11 @@ EID.descriptions[languageCode].MCM = {
DemoObjectTransformation = "Transformación demostrativa", DemoObjectTransformation = "Transformación demostrativa",
DemoObjectText = "Este texto está en español#¡Una larga y genial descripción para demostrar los saltos de línea causados por la anchura de texto de EID!#\1 Esta linea también es genial#Esta linea te ama {{Heart}}", DemoObjectText = "Este texto está en español#¡Una larga y genial descripción para demostrar los saltos de línea causados por la anchura de texto de EID!#\1 Esta linea también es genial#Esta linea te ama {{Heart}}",
} }
-- Conditional descriptions
-- Strings will be appended to the original description
-- Tables with one entry will completely replace the original description
-- Tables with two or more entries are find-replace pairs
EID.descriptions[languageCode].ConditionalDescs = {
["5.300.48"] = "Te teletransporta a la habitación de I Am Error#Tanto Carta en blanco como la ¿? carta se destruirán", -- Blank Card + Q Card
}
+8
View File
@@ -955,3 +955,11 @@ EID.descriptions[languageCode].PickupNames = {
["5.350"] = "{{Trinket}} Брелок", ["5.350"] = "{{Trinket}} Брелок",
} }
-- Conditional descriptions
-- Strings will be appended to the original description
-- Tables with one entry will completely replace the original description
-- Tables with two or more entries are find-replace pairs
EID.descriptions[languageCode].ConditionalDescs = {
["5.300.48"] = "Телепортує до кімнати Я - ПОМИЛКА#Пуста Карта та ?-Карта будуть знищені", -- Blank Card + Q Card
}
+8
View File
@@ -956,3 +956,11 @@ EID.descriptions[languageCode].PickupNames = {
["5.350"] = "{{Trinket}} 饰品", ["5.350"] = "{{Trinket}} 饰品",
} }
-- Conditional descriptions
-- Strings will be appended to the original description
-- Tables with one entry will completely replace the original description
-- Tables with two or more entries are find-replace pairs
EID.descriptions[languageCode].ConditionalDescs = {
["5.300.48"] = "传送至错误房#空白卡牌和?卡牌会被摧毁", -- Blank Card + Q Card
}
+2 -4
View File
@@ -1120,10 +1120,8 @@ EID.descriptions[languageCode].CraftingPreviewKey = "Náhled:"
EID.descriptions[languageCode].CraftingResults = "(Posouvání: Podrž {{CONFIG_BoC_Toggle}} + {{ButtonY}} {{ButtonA}}, Uzamknout: {{ButtonX}}, Obnovit: {{ButtonB}}, Resetovat pytlík: Podržet {{ButtonRB}})" EID.descriptions[languageCode].CraftingResults = "(Posouvání: Podrž {{CONFIG_BoC_Toggle}} + {{ButtonY}} {{ButtonA}}, Uzamknout: {{ButtonX}}, Obnovit: {{ButtonB}}, Resetovat pytlík: Podržet {{ButtonRB}})"
EID.descriptions[languageCode].BlankCardCharge = "Nabití Prázdné Karty:" EID.descriptions[languageCode].VariableCharge = "Nabití {1}:"
EID.descriptions[languageCode].BlankCardQCard = "Teleportuje tě do JSEM ERROR místnosti#Prázdná Karta a ?-Karta bude zničena"
EID.descriptions[languageCode].ClearRuneCharge = "Nabití Čisté Runy:"
EID.descriptions[languageCode].PlaceboCharge = "Nabití Placeba:"
EID.descriptions[languageCode].FlipItemToggleInfo = "(Podržením tlačítka {{ButtonSelect}} (Mapa) zobrazíš popis)" EID.descriptions[languageCode].FlipItemToggleInfo = "(Podržením tlačítka {{ButtonSelect}} (Mapa) zobrazíš popis)"
-1
View File
@@ -1163,7 +1163,6 @@ EID.descriptions[languageCode].CraftingResults = "(Scrollen: Halte {{CONFIG_BoC_
EID.descriptions[languageCode].BlankCardCharge = "Blanko-Kartenladung:" EID.descriptions[languageCode].BlankCardCharge = "Blanko-Kartenladung:"
EID.descriptions[languageCode].BlankCardEffect = "Effekt der Blanko-Karte:" EID.descriptions[languageCode].BlankCardEffect = "Effekt der Blanko-Karte:"
EID.descriptions[languageCode].BlankCardQCard = "Teleport zum I AM ERROR-Raum#Blanko-Karte und ?-Karte werden zerstört"
EID.descriptions[languageCode].ClearRuneCharge = "Ladezeit der leeren Rune:" EID.descriptions[languageCode].ClearRuneCharge = "Ladezeit der leeren Rune:"
EID.descriptions[languageCode].PlaceboCharge = "Placebo-Ladezeit:" EID.descriptions[languageCode].PlaceboCharge = "Placebo-Ladezeit:"
EID.descriptions[languageCode].FlipItemToggleInfo = "(Halte {{CONFIG_BoC_Toggle}} gedrückt, um die Beschreibung anzuzeigen)" EID.descriptions[languageCode].FlipItemToggleInfo = "(Halte {{CONFIG_BoC_Toggle}} gedrückt, um die Beschreibung anzuzeigen)"
+80 -30
View File
@@ -37,7 +37,7 @@ local repCollectibles={
[52] = {"52", "Dr. Fetus", "↓ {{Tears}} x0.4 Fire rate multiplier#{{Bomb}} Isaac shoots bombs instead of tears#{{Damage}} Those bombs deal 10x Isaac's tear damage#If that results in over 60 damage, they instead deal 5x damage +30"}, -- Dr. Fetus [52] = {"52", "Dr. Fetus", "↓ {{Tears}} x0.4 Fire rate multiplier#{{Bomb}} Isaac shoots bombs instead of tears#{{Damage}} Those bombs deal 10x Isaac's tear damage#If that results in over 60 damage, they instead deal 5x damage +30"}, -- Dr. Fetus
[53] = {"53", "Magneto", "Pickups are attracted to Isaac#Opens chests from 2 tiles away, ignoring damage of Spike Chests"}, -- Magneto [53] = {"53", "Magneto", "Pickups are attracted to Isaac#Opens chests from 2 tiles away, ignoring damage of Spike Chests"}, -- Magneto
[55] = {"55", "Mom's Eye", "50% chance to shoot an extra tear backwards#{{Luck}} 100% chance at 5 luck"}, -- Mom's Eye [55] = {"55", "Mom's Eye", "50% chance to shoot an extra tear backwards#{{Luck}} 100% chance at 5 luck"}, -- Mom's Eye
[59] = {"59", "The Book of Belial", "{{AngelDevilChance}} +12.5% Devil/Angel Room chance while held#{{Timer}} Receive for the room:#↑ {{Damage}} +2 Damage#{{Collectible7}} x1.5 Damage multiplier if Isaac has Blood of the Martyr"}, -- The Book of Belial (Judas' Birthright) [59] = {"59", "The Book of Belial", "{{AngelDevilChance}} +12.5% Devil/Angel Room chance while held#{{Timer}} Receive for the room:#↑ {{Damage}} +2 Damage"}, -- The Book of Belial (Judas' Birthright)
[62] = {"62", "Charm of the Vampire", "↑ {{Damage}} +0.3 Damage#{{HalfHeart}} Killing 13 enemies heals half a heart"}, -- Charm of the Vampire [62] = {"62", "Charm of the Vampire", "↑ {{Damage}} +0.3 Damage#{{HalfHeart}} Killing 13 enemies heals half a heart"}, -- Charm of the Vampire
[64] = {"64", "Steam Sale", "{{Shop}} Shop items cost 50% less#Owning this item multiple times reduces the price further"}, -- Steam Sale [64] = {"64", "Steam Sale", "{{Shop}} Shop items cost 50% less#Owning this item multiple times reduces the price further"}, -- Steam Sale
[67] = {"67", "Sister Maggy", "Shoots normal tears#Deals 6 damage per tear"}, -- Sister Maggy [67] = {"67", "Sister Maggy", "Shoots normal tears#Deals 6 damage per tear"}, -- Sister Maggy
@@ -55,7 +55,6 @@ local repCollectibles={
[98] = {"98", "The Relic", "{{SoulHeart}} Spawns 1 Soul Heart every 7-8 rooms"}, -- The Relic [98] = {"98", "The Relic", "{{SoulHeart}} Spawns 1 Soul Heart every 7-8 rooms"}, -- The Relic
[101] = {"101", "The Halo", "↑ {{Heart}} +1 Health#↑ {{Speed}} +0.3 Speed#↑ {{Tears}} +0.2 Tears#↑ {{Damage}} +0.3 Damage#↑ {{Range}} +1.5 Range#{{Heart}} Heals 1 heart"}, -- The Halo [101] = {"101", "The Halo", "↑ {{Heart}} +1 Health#↑ {{Speed}} +0.3 Speed#↑ {{Tears}} +0.2 Tears#↑ {{Damage}} +0.3 Damage#↑ {{Range}} +1.5 Range#{{Heart}} Heals 1 heart"}, -- The Halo
[106] = {"106", "Mr. Mega", "↑ x1.85 Bomb damage#{{Bomb}} +5 Bombs"}, -- Mr. Mega [106] = {"106", "Mr. Mega", "↑ x1.85 Bomb damage#{{Bomb}} +5 Bombs"}, -- Mr. Mega
[108] = {"108", "The Wafer", "Reduces most damage taken to half a heart#{{Player14}} Doesn't work for Keeper or Tainted Keeper"}, -- The Wafer
[110] = {"110", "Mom's Contacts", "↑ {{Range}} +1.5 Range#20% chance to shoot petrifying tears#{{Luck}} 50% chance at 20 luck"}, -- Mom's Contacts [110] = {"110", "Mom's Contacts", "↑ {{Range}} +1.5 Range#20% chance to shoot petrifying tears#{{Luck}} 50% chance at 20 luck"}, -- Mom's Contacts
[114] = {"114", "Mom's Knife", "Isaac's tears are replaced by a throwable knife#{{Damage}} The knife deals 2x Isaac's damage while held and caps at 6x damage at 1/3 charge#Charging further only increases throwing range#Damage reduces to 2x when returning to Isaac"}, -- Mom's Knife [114] = {"114", "Mom's Knife", "Isaac's tears are replaced by a throwable knife#{{Damage}} The knife deals 2x Isaac's damage while held and caps at 6x damage at 1/3 charge#Charging further only increases throwing range#Damage reduces to 2x when returning to Isaac"}, -- Mom's Knife
[115] = {"115", "Ouija Board", "↑ {{Tears}} +0.5 Tears#Spectral tears"}, -- Ouija Board [115] = {"115", "Ouija Board", "↑ {{Tears}} +0.5 Tears#Spectral tears"}, -- Ouija Board
@@ -84,7 +83,7 @@ local repCollectibles={
[182] = {"182", "Sacred Heart", "↑ {{Heart}} +1 Health#↑ {{Damage}} x2.3 Damage multiplier#↑ {{Damage}} +1 Damage#↓ {{Tears}} -0.4 Tears#↓ {{Shotspeed}} -0.25 Shot speed#{{Heart}} Full health#Homing tears"}, -- Sacred Heart [182] = {"182", "Sacred Heart", "↑ {{Heart}} +1 Health#↑ {{Damage}} x2.3 Damage multiplier#↑ {{Damage}} +1 Damage#↓ {{Tears}} -0.4 Tears#↓ {{Shotspeed}} -0.25 Shot speed#{{Heart}} Full health#Homing tears"}, -- Sacred Heart
[184] = {"184", "Holy Grail", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart#Flight"}, -- Holy Grail [184] = {"184", "Holy Grail", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart#Flight"}, -- Holy Grail
[186] = {"186", "Blood Rights", "Deals 40 damage to every enemy#{{Warning}} Deals 1 heart of damage to Isaac#After the first use in a room, deals half a heart instead#{{Heart}} Removes Red Hearts first"}, -- Blood Rights [186] = {"186", "Blood Rights", "Deals 40 damage to every enemy#{{Warning}} Deals 1 heart of damage to Isaac#After the first use in a room, deals half a heart instead#{{Heart}} Removes Red Hearts first"}, -- Blood Rights
[188] = {"188", "Abel", "Mirrors Isaac's movement#Shoots towards Isaac#Deals 3.5 damage per tear#{{Player2}} Deals 7.5 damage as Cain"}, -- Abel [188] = {"188", "Abel", "Mirrors Isaac's movement#Shoots towards Isaac#Deals 3.5 damage per tear"}, -- Abel
[189] = {"189", "SMB Super Fan", "↑ {{Heart}} +1 Health#↑ {{Speed}} +0.2 Speed#↑ {{Tears}} +0.2 Tears#↑ {{Damage}} +0.3 Damage#↑ {{Range}} +2.5 Range#{{Heart}} Full health"}, -- SMB Super Fan [189] = {"189", "SMB Super Fan", "↑ {{Heart}} +1 Health#↑ {{Speed}} +0.2 Speed#↑ {{Tears}} +0.2 Tears#↑ {{Damage}} +0.3 Damage#↑ {{Range}} +2.5 Range#{{Heart}} Full health"}, -- SMB Super Fan
[192] = {"192", "Telepathy for Dummies", "{{Timer}} Receive for the room:#↑ {{Range}} +3 Range#Homing tears"}, -- Telepathy for Dummies [192] = {"192", "Telepathy for Dummies", "{{Timer}} Receive for the room:#↑ {{Range}} +3 Range#Homing tears"}, -- Telepathy for Dummies
[193] = {"193", "MEAT!", "↑ {{Heart}} +1 Health#↑ {{Damage}} +0.3 Damage#{{Heart}} Heals 1 heart"}, -- MEAT! [193] = {"193", "MEAT!", "↑ {{Heart}} +1 Health#↑ {{Damage}} +0.3 Damage#{{Heart}} Heals 1 heart"}, -- MEAT!
@@ -106,7 +105,7 @@ local repCollectibles={
[230] = {"230", "Abaddon", "↑ {{Speed}} +0.2 Speed#↑ {{Damage}} +1.5 Damage#{{BlackHeart}} Converts all heart containers into Black Hearts#{{BlackHeart}} +2 Black Hearts#{{Fear}} 15% chance to shoot fear tears"}, -- Abaddon [230] = {"230", "Abaddon", "↑ {{Speed}} +0.2 Speed#↑ {{Damage}} +1.5 Damage#{{BlackHeart}} Converts all heart containers into Black Hearts#{{BlackHeart}} +2 Black Hearts#{{Fear}} 15% chance to shoot fear tears"}, -- Abaddon
[232] = {"232", "Stop Watch", "↑ {{Speed}} +0.3 Speed#{{Slow}} Enemies are permanently slowed down to 80% of their attack and movement speed"}, -- Stop Watch [232] = {"232", "Stop Watch", "↑ {{Speed}} +0.3 Speed#{{Slow}} Enemies are permanently slowed down to 80% of their attack and movement speed"}, -- Stop Watch
[233] = {"233", "Tiny Planet", "↑ {{Range}} +6.5 Range#Spectral tears#Isaac's tears orbit around him"}, -- Tiny Planet [233] = {"233", "Tiny Planet", "↑ {{Range}} +6.5 Range#Spectral tears#Isaac's tears orbit around him"}, -- Tiny Planet
[245] = {"245", "20/20", "↓ {{Damage}} x0.8 Damage multiplier#Isaac shoots 2 tears at once#Removes the tear rate penalty of {{Collectible153}} Mutant Spider, {{Collectible2}} The Inner Eye and {{Collectible169}} Polyphemus"}, -- 20/20 [245] = {"245", "20/20", "↓ {{Damage}} x0.8 Damage multiplier#Isaac shoots 2 tears at once"}, -- 20/20
[248] = {"248", "Hive Mind", "Blue spiders and flies deal double damage#Spider and fly familiars become stronger"}, -- Hive Mind [248] = {"248", "Hive Mind", "Blue spiders and flies deal double damage#Spider and fly familiars become stronger"}, -- Hive Mind
[253] = {"253", "Magic Scab", "↑ {{Heart}} +1 Health#↑ {{Luck}} +1 Luck#{{Heart}} Heals 1 heart"}, -- Magic Scab [253] = {"253", "Magic Scab", "↑ {{Heart}} +1 Health#↑ {{Luck}} +1 Luck#{{Heart}} Heals 1 heart"}, -- Magic Scab
[254] = {"254", "Blood Clot", "↑ {{Damage}} +1 Damage for the left eye#↑ {{Range}} +2.75 Range for the left eye"}, -- Blood Clot [254] = {"254", "Blood Clot", "↑ {{Damage}} +1 Damage for the left eye#↑ {{Range}} +2.75 Range for the left eye"}, -- Blood Clot
@@ -142,7 +141,7 @@ local repCollectibles={
[310] = {"310", "Eve's Mascara", "↑ {{Damage}} x2 Damage multiplier#↓ {{Tears}} x0.66 Tear multiplier#↓ {{Shotspeed}} -0.5 Shot speed"}, -- Eve's Mascara [310] = {"310", "Eve's Mascara", "↑ {{Damage}} x2 Damage multiplier#↓ {{Tears}} x0.66 Tear multiplier#↓ {{Shotspeed}} -0.5 Shot speed"}, -- Eve's Mascara
[314] = {"314", "Thunder Thighs", "↑ {{Heart}} +1 Health#↓ {{Speed}} -0.4 Speed#{{Heart}} Heals 1 heart#Isaac can destroy rocks by walking into them"}, -- Thunder Thighs [314] = {"314", "Thunder Thighs", "↑ {{Heart}} +1 Health#↓ {{Speed}} -0.4 Speed#{{Heart}} Heals 1 heart#Isaac can destroy rocks by walking into them"}, -- Thunder Thighs
[315] = {"315", "Strange Attractor", "Isaac's tears attract enemies, pickups and trinkets#The attraction effect is much stronger at the end of the tears' path"}, -- Strange Attractor [315] = {"315", "Strange Attractor", "Isaac's tears attract enemies, pickups and trinkets#The attraction effect is much stronger at the end of the tears' path"}, -- Strange Attractor
[316] = {"316", "Cursed Eye", "Charged wave of 5 tears#{{Warning}} Taking damage while partially charged teleports Isaac to a random room#{{Collectible260}} Black Candle removes the teleportation effect"}, -- Cursed Eye [316] = {"316", "Cursed Eye", "Charged wave of 5 tears#{{Warning}} Taking damage while partially charged teleports Isaac to a random room"}, -- Cursed Eye
[319] = {"319", "Cain's Other Eye", "Shoots tears in random directions with the same effects as Isaac#{{Damage}} Deals 75% of Isaac's damage"}, -- Cain's Other Eye [319] = {"319", "Cain's Other Eye", "Shoots tears in random directions with the same effects as Isaac#{{Damage}} Deals 75% of Isaac's damage"}, -- Cain's Other Eye
[320] = {"320", "???'s Only Friend", "Controllable fly#Deals 15 contact damage per second"}, -- ???'s Only Friend [320] = {"320", "???'s Only Friend", "Controllable fly#Deals 15 contact damage per second"}, -- ???'s Only Friend
[323] = {"323", "Isaac's Tears", "Shoots 8 tears in all directions#The tears copy Isaac's tear effects, plus 5 damage#Recharges by shooting tears"}, -- Isaac's Tears [323] = {"323", "Isaac's Tears", "Shoots 8 tears in all directions#The tears copy Isaac's tear effects, plus 5 damage#Recharges by shooting tears"}, -- Isaac's Tears
@@ -160,7 +159,7 @@ local repCollectibles={
[352] = {"352", "Glass Cannon", "{{Damage}} Shoots a large piercing spectral tear that does 10x Isaac's damage#{{Warning}} While held, taking damage:#↓ Removes an extra 2 hearts of health#↓ Breaks the cannon for a few rooms#↑ {{Range}} +1.5 Range and leaves a blood trail for the room#The extra damage can't kill Isaac#Self-damage does not trigger the effect"}, -- Glass Cannon [352] = {"352", "Glass Cannon", "{{Damage}} Shoots a large piercing spectral tear that does 10x Isaac's damage#{{Warning}} While held, taking damage:#↓ Removes an extra 2 hearts of health#↓ Breaks the cannon for a few rooms#↑ {{Range}} +1.5 Range and leaves a blood trail for the room#The extra damage can't kill Isaac#Self-damage does not trigger the effect"}, -- Glass Cannon
[354] = {"354", "Crack Jacks", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart#{{Trinket}} Spawns a trinket"}, -- Crack Jacks [354] = {"354", "Crack Jacks", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart#{{Trinket}} Spawns a trinket"}, -- Crack Jacks
[355] = {"355", "Mom's Pearls", "↑ {{Range}} +2.5 Range#↑ {{Luck}} +1 Luck#{{SoulHeart}} +1 Soul Heart"}, -- Mom's Pearls [355] = {"355", "Mom's Pearls", "↑ {{Range}} +2.5 Range#↑ {{Luck}} +1 Luck#{{SoulHeart}} +1 Soul Heart"}, -- Mom's Pearls
[360] = {"360", "Incubus", "Shoots tears with the same effects as Isaac#{{Damage}} Deals 75% of Isaac's damage#{{Player13}} Deals 100% damage while playing as Lilith"}, -- Incubus [360] = {"360", "Incubus", "Shoots tears with the same effects as Isaac#{{Damage}} Deals 75% of Isaac's damage"}, -- Incubus
[365] = {"365", "Lost Fly", "Moves along walls/obstacles in the room#Deals 30 contact damage per second#Nearby enemies target the fly"}, -- Lost Fly [365] = {"365", "Lost Fly", "Moves along walls/obstacles in the room#Deals 30 contact damage per second#Nearby enemies target the fly"}, -- Lost Fly
[366] = {"366", "Scatter Bombs", "{{Bomb}} +5 Bombs#Isaac's bombs scatter into 4-5 tiny bombs"}, -- Scatter Bombs [366] = {"366", "Scatter Bombs", "{{Bomb}} +5 Bombs#Isaac's bombs scatter into 4-5 tiny bombs"}, -- Scatter Bombs
[367] = {"367", "Sticky Bombs", "{{Bomb}} +5 Bombs#{{Slow}} Isaac's bombs stick to enemies and leave white slowing creep#Killing an enemy with a bomb spawns blue spiders"}, -- Sticky Bombs [367] = {"367", "Sticky Bombs", "{{Bomb}} +5 Bombs#{{Slow}} Isaac's bombs stick to enemies and leave white slowing creep#Killing an enemy with a bomb spawns blue spiders"}, -- Sticky Bombs
@@ -198,17 +197,17 @@ local repCollectibles={
[433] = {"433", "My Shadow", "A small shadow follows Isaac#{{Timer}} When an enemy touches the shadow a friendly black charger spawns for the room#The charger deals 8.7 damage per hit"}, -- My Shadow [433] = {"433", "My Shadow", "A small shadow follows Isaac#{{Timer}} When an enemy touches the shadow a friendly black charger spawns for the room#The charger deals 8.7 damage per hit"}, -- My Shadow
[437] = {"437", "D7", "Restarts a room and respawns all enemies#Can be used to get multiple room clear rewards from a single room"}, -- D7 [437] = {"437", "D7", "Restarts a room and respawns all enemies#Can be used to get multiple room clear rewards from a single room"}, -- D7
[440] = {"440", "Kidney Stone", "Isaac occasionally stops firing and charges an attack that releases a burst of tears and a kidney stone"}, -- Kidney Stone [440] = {"440", "Kidney Stone", "Isaac occasionally stops firing and charges an attack that releases a burst of tears and a kidney stone"}, -- Kidney Stone
[442] = {"442", "Dark Prince's Crown", "While at 1 full Red Heart:#↑ {{Tears}} +2 Fire rate#↑ {{Range}} +1.5 Range#↑ {{Shotspeed}} +0.2 Shot speed#Does not work on characters without Red Hearts"}, -- Dark Prince's Crown [442] = {"442", "Dark Prince's Crown", "While at 1 full Red Heart:#↑ {{Tears}} +2 Fire rate#↑ {{Range}} +1.5 Range#↑ {{Shotspeed}} +0.2 Shot speed"}, -- Dark Prince's Crown
[444] = {"444", "Lead Pencil", "Isaac shoots a cluster of tears every 15 tears"}, -- Lead Pencil [444] = {"444", "Lead Pencil", "Isaac shoots a cluster of tears every 15 tears"}, -- Lead Pencil
[448] = {"448", "Shard of Glass", "Upon taking damage:#{{Heart}} 25% chance to spawn a Red Heart#{{BleedingOut}} Isaac bleeds, spewing tears in the direction he is shooting#The bleeding does half a Red Heart of damage every 20 seconds#The bleeding stops if a Red Heart is healed, all Red Hearts are empty, or the next damage would kill Isaac"}, -- Shard of Glass [448] = {"448", "Shard of Glass", "Upon taking damage:#{{Heart}} 25% chance to spawn a Red Heart#{{BleedingOut}} Isaac bleeds, spewing tears in the direction he is shooting#The bleeding does half a Red Heart of damage every 20 seconds#The bleeding stops if a Red Heart is healed, all Red Hearts are empty, or the next damage would kill Isaac"}, -- Shard of Glass
[450] = {"450", "Eye of Greed", "{{Damage}} Every 20 tears, Isaac shoots a coin tear that deals x1.5 +10 damage#Enemies hit with the coin turn into gold#{{Coin}} Killing a gold enemy drops 1-3 coins#{{Warning}} Firing a coin tear costs 1 coin"}, -- Eye of Greed [450] = {"450", "Eye of Greed", "{{Damage}} Every 20 tears, Isaac shoots a coin tear that deals x1.5 +10 damage#Enemies hit with the coin turn into gold#{{Coin}} Killing a gold enemy drops 1-3 coins#{{Warning}} Firing a coin tear costs 1 coin"}, -- Eye of Greed
[451] = {"451", "Tarot Cloth", "{{Card}} Spawns a card#{{Card}} Tarot cards effects are doubled or enhanced"}, -- Tarot Cloth [451] = {"451", "Tarot Cloth", "{{Card}} Spawns a card#{{Card}} Tarot card effects are doubled or enhanced"}, -- Tarot Cloth
[453] = {"453", "Compound Fracture", "↑ {{Range}} +1.5 Range#Tears shatter into 1-3 bone shards upon hitting anything"}, -- Compound Fracture [453] = {"453", "Compound Fracture", "↑ {{Range}} +1.5 Range#Tears shatter into 1-3 bone shards upon hitting anything"}, -- Compound Fracture
[455] = {"455", "Dad's Lost Coin", "↑ {{Range}} +2.5 Range#{{Luck}} Spawns a Lucky Penny"}, -- Dad's Lost Coin [455] = {"455", "Dad's Lost Coin", "↑ {{Range}} +2.5 Range#{{Luck}} Spawns a Lucky Penny"}, -- Dad's Lost Coin
[456] = {"456", "Midnight Snack", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart"}, -- Midnight Snack [456] = {"456", "Midnight Snack", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart"}, -- Midnight Snack
[459] = {"459", "Sinus Infection", "20% chance to shoot a sticky booger#{{Damage}} Boogers deal Isaac's damage once a second and stick for 10 seconds#{{Luck}} Not affected by luck"}, -- Sinus Infection [459] = {"459", "Sinus Infection", "20% chance to shoot a sticky booger#{{Damage}} Boogers deal Isaac's damage once a second and stick for 10 seconds#{{Luck}} Not affected by luck"}, -- Sinus Infection
[462] = {"462", "Eye of Belial", "↑ {{Range}} +1.5 Range#Piercing tears#Hitting an enemy makes the tear homing and doubles its damage"}, -- Eye of Belial [462] = {"462", "Eye of Belial", "↑ {{Range}} +1.5 Range#Piercing tears#Hitting an enemy makes the tear homing and doubles its damage"}, -- Eye of Belial
[464] = {"464", "Glyph of Balance", "{{SoulHeart}} +2 Soul Hearts#Champion enemy drops and room clear rewards become whatever pickup Isaac needs the most"}, -- Glyph of Balance [464] = {"464", "Glyph of Balance", "{{SoulHeart}} +2 Soul Hearts#Room clear rewards and champion enemy drops become whatever pickup Isaac needs the most"}, -- Glyph of Balance
[468] = {"468", "Shade", "Follows Isaac's movement on a 1 second delay#Deals 75 contact damage per second#After it deals 666 damage, it is absorbed by Isaac, increasing his contact damage"}, -- Shade [468] = {"468", "Shade", "Follows Isaac's movement on a 1 second delay#Deals 75 contact damage per second#After it deals 666 damage, it is absorbed by Isaac, increasing his contact damage"}, -- Shade
[472] = {"472", "King Baby", "Other familiars follow it and automatically shoot at enemies#Stops moving when Isaac shoots#Teleports back to Isaac when he stops shooting"}, -- King Baby [472] = {"472", "King Baby", "Other familiars follow it and automatically shoot at enemies#Stops moving when Isaac shoots#Teleports back to Isaac when he stops shooting"}, -- King Baby
[474] = {"474", "Broken Glass Cannon", "Using the item turns it back into Glass Cannon"}, -- Broken Glass Cannon [474] = {"474", "Broken Glass Cannon", "Using the item turns it back into Glass Cannon"}, -- Broken Glass Cannon
@@ -222,7 +221,7 @@ local repCollectibles={
[495] = {"495", "Ghost Pepper", "8.33% chance to shoot a blue fire that blocks enemy shots and deals contact damage#{{Luck}} 50% chance at 10 luck#Fires shrink and disappear after 2 seconds"}, -- Ghost Pepper [495] = {"495", "Ghost Pepper", "8.33% chance to shoot a blue fire that blocks enemy shots and deals contact damage#{{Luck}} 50% chance at 10 luck#Fires shrink and disappear after 2 seconds"}, -- Ghost Pepper
[496] = {"496", "Euthanasia", "3.33% chance to shoot a needle#{{Luck}} 25% chance at 13 luck#Needles kill normal enemies instantly, bursting them into 10 tears#{{Damage}} Needles deal 3x Isaac's damage against bosses"}, -- Euthanasia [496] = {"496", "Euthanasia", "3.33% chance to shoot a needle#{{Luck}} 25% chance at 13 luck#Needles kill normal enemies instantly, bursting them into 10 tears#{{Damage}} Needles deal 3x Isaac's damage against bosses"}, -- Euthanasia
[497] = {"497", "Camo Undies", "{{Confusion}} Entering a room camouflages Isaac and confuses all enemies until a tear is shot#↑ {{Speed}} +0.5 Speed while cloaked#Uncloaking deals damage around Isaac and grants a very brief fire rate and damage up"}, -- Camo Undies [497] = {"497", "Camo Undies", "{{Confusion}} Entering a room camouflages Isaac and confuses all enemies until a tear is shot#↑ {{Speed}} +0.5 Speed while cloaked#Uncloaking deals damage around Isaac and grants a very brief fire rate and damage up"}, -- Camo Undies
[501] = {"501", "Greed's Gullet", "{{Heart}} +1 Heart container for every 25 coins Isaac has#{{Collectible416}} +1 Heart container for every 100 coins past 99#{{Player14}} Keeper can gain additional coin containers"}, -- Greed's Gullet [501] = {"501", "Greed's Gullet", "{{Heart}} +1 Heart container for every 25 coins Isaac has"}, -- Greed's Gullet
[503] = {"503", "Little Horn", "5% chance to shoot a tear that summons a Big Horn hand#{{Luck}} 20% chance at 15 luck#The hand instantly kills enemies and deals 36 damage to bosses#Isaac deals 7 contact damage per second"}, -- Little Horn [503] = {"503", "Little Horn", "5% chance to shoot a tear that summons a Big Horn hand#{{Luck}} 20% chance at 15 luck#The hand instantly kills enemies and deals 36 damage to bosses#Isaac deals 7 contact damage per second"}, -- Little Horn
[504] = {"504", "Brown Nugget", "Spawns a fly that shoots at enemies#Each shot deals 3.5 damage"}, -- Brown Nugget [504] = {"504", "Brown Nugget", "Spawns a fly that shoots at enemies#Each shot deals 3.5 damage"}, -- Brown Nugget
[506] = {"506", "Backstabber", "{{BleedingOut}} Hitting an enemy in the back deals double damage and causes bleeding, which makes enemies leave creep and take damage when they move"}, -- Backstabber [506] = {"506", "Backstabber", "{{BleedingOut}} Hitting an enemy in the back deals double damage and causes bleeding, which makes enemies leave creep and take damage when they move"}, -- Backstabber
@@ -271,7 +270,7 @@ local repCollectibles={
[584] = {"584", "Book of Virtues", "{{AngelChance}} +12.5% Angel Room chance while held#Spawns an orbital wisp familiar that shoots spectral tears but can be destroyed#Can be combined with a second active item to create special wisps#{{AngelRoom}} Turns the first Devil Room into an Angel Room#{{AngelRoom}} Allows Angel Rooms to spawn after taking a Devil deal"}, -- Book of Virtues [584] = {"584", "Book of Virtues", "{{AngelChance}} +12.5% Angel Room chance while held#Spawns an orbital wisp familiar that shoots spectral tears but can be destroyed#Can be combined with a second active item to create special wisps#{{AngelRoom}} Turns the first Devil Room into an Angel Room#{{AngelRoom}} Allows Angel Rooms to spawn after taking a Devil deal"}, -- Book of Virtues
[585] = {"585", "Alabaster Box", "Must be charged by picking up Soul Hearts, then spawns:#{{SoulHeart}} Three Soul Hearts#{{AngelRoom}} Two Angel Room items#{{DevilRoom}} Only spawns 2 Soul Hearts and 1 Angel item if a Devil deal was taken previously"}, -- Alabaster Box [585] = {"585", "Alabaster Box", "Must be charged by picking up Soul Hearts, then spawns:#{{SoulHeart}} Three Soul Hearts#{{AngelRoom}} Two Angel Room items#{{DevilRoom}} Only spawns 2 Soul Hearts and 1 Angel item if a Devil deal was taken previously"}, -- Alabaster Box
[586] = {"586", "The Stairway", "Spawns a ladder in the first room of every floor that leads to a unique {{AngelRoom}} Angel Room shop with items and pickups"}, -- The Stairway [586] = {"586", "The Stairway", "Spawns a ladder in the first room of every floor that leads to a unique {{AngelRoom}} Angel Room shop with items and pickups"}, -- The Stairway
[587] = {"587", "Menorah (Unused but scripted)", "<Item does not exist>"}, [587] = {"587", "", "<Item does not exist>"},
[588] = {"588", "Sol", "{{BossRoom}} Reveals the location of the Boss Room#{{Timer}} When the floor boss is defeated, receive for the floor:#↑ {{Damage}} +3 Damage#↑ {{Luck}} +1 Luck#{{Card20}} The Sun effect#{{Battery}} Fully recharges the active item#{{CurseBlind}} Removes any curses"}, -- Sol [588] = {"588", "Sol", "{{BossRoom}} Reveals the location of the Boss Room#{{Timer}} When the floor boss is defeated, receive for the floor:#↑ {{Damage}} +3 Damage#↑ {{Luck}} +1 Luck#{{Card20}} The Sun effect#{{Battery}} Fully recharges the active item#{{CurseBlind}} Removes any curses"}, -- Sol
[589] = {"589", "Luna", "Adds an extra {{SecretRoom}} Secret Room and {{SuperSecretRoom}} Super Secret Room to each floor#Reveals one Secret Room each floor#{{Timer}} Secret Rooms contain a beam of light that grant for the floor:#↑ {{Tears}} +0.5 Fire rate#↑ {{Tears}} Additional +0.5 Fire rate from the first beam per floor#{{HalfSoulHeart}} Half a Soul Heart"}, -- Luna [589] = {"589", "Luna", "Adds an extra {{SecretRoom}} Secret Room and {{SuperSecretRoom}} Super Secret Room to each floor#Reveals one Secret Room each floor#{{Timer}} Secret Rooms contain a beam of light that grant for the floor:#↑ {{Tears}} +0.5 Fire rate#↑ {{Tears}} Additional +0.5 Fire rate from the first beam per floor#{{HalfSoulHeart}} Half a Soul Heart"}, -- Luna
[590] = {"590", "Mercurius", "↑ {{Speed}} +0.4 Speed#Most doors stay permanently open"}, -- Mercurius [590] = {"590", "Mercurius", "↑ {{Speed}} +0.4 Speed#Most doors stay permanently open"}, -- Mercurius
@@ -326,7 +325,7 @@ local repCollectibles={
[639] = {"639", "Yuck Heart", "{{RottenHeart}} +1 Rotten Heart"}, -- Yuck Heart [639] = {"639", "Yuck Heart", "{{RottenHeart}} +1 Rotten Heart"}, -- Yuck Heart
[640] = {"640", "Urn of Souls", "Spews a stream of flames#Killing an enemy adds a charge to the urn"}, -- Urn of Souls [640] = {"640", "Urn of Souls", "Spews a stream of flames#Killing an enemy adds a charge to the urn"}, -- Urn of Souls
[641] = {"641", "Akeldama", "Creates a chain of tears behind Isaac in hostile rooms#The tears deal 3.5 damage"}, -- Akeldama [641] = {"641", "Akeldama", "Creates a chain of tears behind Isaac in hostile rooms#The tears deal 3.5 damage"}, -- Akeldama
[642] = {"642", "Magic Skin", "Spawns an item from the current room's item pool#{{BrokenHeart}} Turns 1 heart container or 1 Bone Heart or 2 Soul Hearts into a Broken Heart#{{Warning}} Replaces future items if Isaac isn't holding it {{ColorSilver}}(33% after 1 use, 50% after 2, 100% after 3)#Lower chance if Magic Skin is on a pedestal on the current floor#{{Player10}} Single use for The Lost"}, -- Magic Skin [642] = {"642", "Magic Skin", "Spawns an item from the current room's item pool#{{BrokenHeart}} Turns 1 heart container or 1 Bone Heart or 2 Soul Hearts into a Broken Heart#{{Warning}} Replaces future items if Isaac isn't holding it {{ColorSilver}}(33% after 1 use, 50% after 2, 100% after 3)#Lower chance if Magic Skin is on a pedestal on the current floor"}, -- Magic Skin
[643] = {"643", "Revelation", "{{SoulHeart}} +2 Soul Hearts#Flight#{{Chargeable}} Chargeable high damage holy beam#Does not replace Isaac's tears"}, -- Revelation [643] = {"643", "Revelation", "{{SoulHeart}} +2 Soul Hearts#Flight#{{Chargeable}} Chargeable high damage holy beam#Does not replace Isaac's tears"}, -- Revelation
[644] = {"644", "Consolation Prize", "↑ Increases Isaac's lowest stat out of Speed, Fire rate, Damage, and Range#Spawns either 3 {{Coin}} coins, 1 {{Bomb}} bomb, or 1 {{Key}} key depending on what Isaac has the least of"}, -- Consolation Prize [644] = {"644", "Consolation Prize", "↑ Increases Isaac's lowest stat out of Speed, Fire rate, Damage, and Range#Spawns either 3 {{Coin}} coins, 1 {{Bomb}} bomb, or 1 {{Key}} key depending on what Isaac has the least of"}, -- Consolation Prize
[645] = {"645", "Tinytoma", "Large orbital that blocks shots#Deals 3.5 contact damage per second#Splits into smaller versions of itself upon taking 3 hits#The smaller versions break into blue spiders#Respawns 5 seconds after fully disappearing"}, -- Tinytoma [645] = {"645", "Tinytoma", "Large orbital that blocks shots#Deals 3.5 contact damage per second#Splits into smaller versions of itself upon taking 3 hits#The smaller versions break into blue spiders#Respawns 5 seconds after fully disappearing"}, -- Tinytoma
@@ -388,7 +387,7 @@ local repCollectibles={
[701] = {"701", "Isaac's Tomb", "Spawns an {{DirtyChest}} Old Chest at the start of every floor#Old Chests require a key to unlock and can contain {{SoulHeart}} Soul Hearts, {{Trinket}} trinkets or Mom, Dad and Angel items"}, -- Isaac's Tomb [701] = {"701", "Isaac's Tomb", "Spawns an {{DirtyChest}} Old Chest at the start of every floor#Old Chests require a key to unlock and can contain {{SoulHeart}} Soul Hearts, {{Trinket}} trinkets or Mom, Dad and Angel items"}, -- Isaac's Tomb
[702] = {"702", "Vengeful Spirit", "Taking damage spawns an orbital wisp#Wisps shoot tears, do not block shots and disappear on the next floor#Caps at 6 wisps"}, -- Vengeful Spirit [702] = {"702", "Vengeful Spirit", "Taking damage spawns an orbital wisp#Wisps shoot tears, do not block shots and disappear on the next floor#Caps at 6 wisps"}, -- Vengeful Spirit
[703] = {"703", "Esau Jr.", "Swaps between the current character and Esau Jr.#Esau Jr. has {{BlackHeart}} 3 Black Hearts, {{Damage}} +2 Damage, flight, and random items equal to the number of items the player has the first time this item is used#Characters have independent items and health#{{Warning}} Dying as either character ends the run"}, -- Esau Jr. [703] = {"703", "Esau Jr.", "Swaps between the current character and Esau Jr.#Esau Jr. has {{BlackHeart}} 3 Black Hearts, {{Damage}} +2 Damage, flight, and random items equal to the number of items the player has the first time this item is used#Characters have independent items and health#{{Warning}} Dying as either character ends the run"}, -- Esau Jr.
[704] = {"704", "Berserk!", "{{Battery}} Charges with damage dealt#{{Timer}} Receive for 5 seconds:#↑ {{Speed}} +0.4 Speed#↓ {{Tears}} x0.5 Fire rate multiplier#↑ {{Tears}} +2 Fire rate#↑ {{Damage}} +3 Damage#Restricts attacks to a melee#{{Timer}} Each kill increases the duration by 1 second"}, -- Berserk! [704] = {"704", "Berserk!", "{{Battery}} Charges with damage dealt#{{Timer}} Receive for 5 seconds:#↑ {{Speed}} +0.4 Speed#↓ {{Tears}} x0.5 Fire rate multiplier#↑ {{Tears}} +2 Fire rate#↑ {{Damage}} +3 Damage#Restricts attacks to a melee that reflects shots#{{Timer}} Each kill increases the duration by 1 second and grants brief invincibility"}, -- Berserk!
[705] = {"705", "Dark Arts", "{{Timer}} Receive for 1 second (or until shooting):↑ {{Speed}} +1 Speed#Isaac can pass through enemies/projectiles and paralyzes them#When the effect ends, damages paralyzed enemies, removes paralyzed projectiles and creates a blast at Isaac's location#The attacks and blast are more powerful the more enemies/projectiles have been hit"}, -- Dark Arts [705] = {"705", "Dark Arts", "{{Timer}} Receive for 1 second (or until shooting):↑ {{Speed}} +1 Speed#Isaac can pass through enemies/projectiles and paralyzes them#When the effect ends, damages paralyzed enemies, removes paralyzed projectiles and creates a blast at Isaac's location#The attacks and blast are more powerful the more enemies/projectiles have been hit"}, -- Dark Arts
[706] = {"706", "Abyss", "Consumes all item pedestals in the room and spawns an attack fly familiar for each one#Some items spawn a special fly when consumed"}, -- Abyss [706] = {"706", "Abyss", "Consumes all item pedestals in the room and spawns an attack fly familiar for each one#Some items spawn a special fly when consumed"}, -- Abyss
[707] = {"707", "Supper", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart"}, -- Supper [707] = {"707", "Supper", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart"}, -- Supper
@@ -429,12 +428,12 @@ EID.descriptions[languageCode].birthright ={
{"Cain", "", "↑ {{Luck}} +1 Luck#{{Arcade}} All future floors will contain an upgraded Arcade Room (except for Dark Room and Chest)#{{Collectible46}} Greatly increases Lucky Foot's chances of winning effect"}, {"Cain", "", "↑ {{Luck}} +1 Luck#{{Arcade}} All future floors will contain an upgraded Arcade Room (except for Dark Room and Chest)#{{Collectible46}} Greatly increases Lucky Foot's chances of winning effect"},
{"Judas", "", "{{Collectible34}} The Book of Belial becomes a passive item similar to {{Collectible584}} Book of Virtues#{{Collectible34}} Grants The Book of Belial if Judas is not currently holding it#↑ {{Damage}} The damage boost it grants scales with the amount of charges the active item combined with it has#Grants special effects for certain active items"}, {"Judas", "", "{{Collectible34}} The Book of Belial becomes a passive item similar to {{Collectible584}} Book of Virtues#{{Collectible34}} Grants The Book of Belial if Judas is not currently holding it#↑ {{Damage}} The damage boost it grants scales with the amount of charges the active item combined with it has#Grants special effects for certain active items"},
{"???", "", "{{SoulHeart}} Soul Hearts gained from health upgrades are doubled"}, {"???", "", "{{SoulHeart}} Soul Hearts gained from health upgrades are doubled"},
{"Eve", "", "{{Collectible122}} Whore of Babylon is active regardless of health#Dead Bird is always active"}, {"Eve", "", "{{Collectible122}} Whore of Babylon is active regardless of health#{{Collectible117}} Dead Bird is always active"},
{"Samson", "", "{{Collectible157}} Bloody Lust can trigger 4 more times per floor, up to +14 damage after 10 triggers"}, {"Samson", "", "{{Collectible157}} Bloody Lust can trigger 4 more times per floor, up to +14 damage after 10 triggers"},
{"Azazel", "", "Azazel's Brimstone beam becomes much wider#Does not increase damage"}, {"Azazel", "", "Azazel's Brimstone beam becomes much wider#Does not increase damage"},
{"Lazarus", "", "↑ Resurrecting as Lazarus Risen grants {{Damage}} +7.2 damage#{{Timer}} Damage up wears off over 60 seconds#{{Blank}} Killing enemies while the effect is active extends it"}, {"Lazarus", "", "↑ Resurrecting as Lazarus Risen grants {{Damage}} +7.2 damage#{{Timer}} Damage up wears off over 60 seconds#{{Blank}} Killing enemies while the effect is active extends it"},
{"Eden", "", "Spawns 3 random items from random item pools#Only one can be taken"}, {"Eden", "", "Spawns 3 random items from random item pools#Only one can be taken"},
{"The Lost", "", "Prevents items useless to The Lost from spawning#Examples: items that only give health, flight, and/or spectral tears or activate upon taking damage"}, {"The Lost", "", "Prevents items useless to The Lost from spawning#Examples: items that only give health, flight, spectral tears, or activate upon taking damage"},
{"Lazarus Risen", "", "↑ {{Damage}} +7.2 Damage#Damage up wears off over 60 seconds#Killing enemies while the effect is active extends it#The effect triggers each time Lazarus revives as Lazarus Risen"}, {"Lazarus Risen", "", "↑ {{Damage}} +7.2 Damage#Damage up wears off over 60 seconds#Killing enemies while the effect is active extends it#The effect triggers each time Lazarus revives as Lazarus Risen"},
{"Black Judas", "", "{{Collectible34}} The Book of Belial becomes a passive item similar to {{Collectible584}} Book of Virtues#{{Collectible34}} Grants The Book of Belial if Judas is not currently holding it#↑ {{Damage}} The damage boost it grants scales with the amount of charges the active item combined with it has#Grants special effects for certain active items"}, {"Black Judas", "", "{{Collectible34}} The Book of Belial becomes a passive item similar to {{Collectible584}} Book of Virtues#{{Collectible34}} Grants The Book of Belial if Judas is not currently holding it#↑ {{Damage}} The damage boost it grants scales with the amount of charges the active item combined with it has#Grants special effects for certain active items"},
{"Lilith", "", "Familiars are positioned in front of Lilith's face"}, {"Lilith", "", "Familiars are positioned in front of Lilith's face"},
@@ -785,7 +784,7 @@ local repTrinkets={
[153] = {"153", "Mom's Lock", "25% chance for a random Mom item effect each room"}, -- Mom's Lock [153] = {"153", "Mom's Lock", "25% chance for a random Mom item effect each room"}, -- Mom's Lock
[154] = {"154", "Dice Bag", "50% chance per new room to grant a single use die consumable item#The die disappears when leaving#The die does not take up a pill/card slot"}, -- Dice Bag [154] = {"154", "Dice Bag", "50% chance per new room to grant a single use die consumable item#The die disappears when leaving#The die does not take up a pill/card slot"}, -- Dice Bag
[155] = {"155", "Holy Crown", "Spawns a {{TreasureRoom}} Treasure Room and {{Shop}} Shop in Cathedral"}, -- Holy Crown [155] = {"155", "Holy Crown", "Spawns a {{TreasureRoom}} Treasure Room and {{Shop}} Shop in Cathedral"}, -- Holy Crown
[156] = {"156", "Mother's Kiss", "{{Heart}} +1 Heart container while held#{{Player14}} +1 Coin container for Keeper"}, -- Mother's Kiss [156] = {"156", "Mother's Kiss", "{{Heart}} +1 Heart container while held"}, -- Mother's Kiss
[157] = {"157", "Torn Card", "Every 15 shots, Isaac shoots an {{Collectible149}} Ipecac + {{Collectible5}} My Reflection tear with a very high range value"}, -- Torn Card [157] = {"157", "Torn Card", "Every 15 shots, Isaac shoots an {{Collectible149}} Ipecac + {{Collectible5}} My Reflection tear with a very high range value"}, -- Torn Card
[158] = {"158", "Torn Pocket", "Taking damage makes Isaac drop 2 of his coins, keys or bombs#The pickups can be replaced with other variants, such as golden keys, nickels, dimes, etc."}, -- Torn Pocket [158] = {"158", "Torn Pocket", "Taking damage makes Isaac drop 2 of his coins, keys or bombs#The pickups can be replaced with other variants, such as golden keys, nickels, dimes, etc."}, -- Torn Pocket
[159] = {"159", "Gilded Key", "{{Key}} +1 Key on pickup#{{GoldenChest}} Replaces all chests (except Old/Mega) with golden chests#{{GoldenChest}} Golden chests can contain extra cards, pills or trinkets"}, -- Gilded Key [159] = {"159", "Gilded Key", "{{Key}} +1 Key on pickup#{{GoldenChest}} Replaces all chests (except Old/Mega) with golden chests#{{GoldenChest}} Golden chests can contain extra cards, pills or trinkets"}, -- Gilded Key
@@ -914,7 +913,7 @@ local repCards={
[77] = {"77", "XXI - The World?", "{{LadderRoom}} Spawns a trapdoor to a crawlspace"}, -- XXI - The World? [77] = {"77", "XXI - The World?", "{{LadderRoom}} Spawns a trapdoor to a crawlspace"}, -- XXI - The World?
[78] = {"78", "Cracked Key", "{{Collectible580}} Single-use Red Key"}, -- Cracked Key [78] = {"78", "Cracked Key", "{{Collectible580}} Single-use Red Key"}, -- Cracked Key
[79] = {"79", "Queen of Hearts", "{{Heart}} Spawns 1-20 Red Hearts"}, -- Queen of Hearts [79] = {"79", "Queen of Hearts", "{{Heart}} Spawns 1-20 Red Hearts"}, -- Queen of Hearts
[80] = {"80", "Wild Card", "Copies the effect of the most recently used pill, card, rune, soul stone or activated item"}, -- Wild Card [80] = {"80", "Wild Card", "Copies the effect of your most recently used pill, card, rune, soul stone or activated item"}, -- Wild Card
[81] = {"81", "Soul of Isaac", "Makes all item pedestals in the room cycle between two different items"}, -- Soul of Isaac [81] = {"81", "Soul of Isaac", "Makes all item pedestals in the room cycle between two different items"}, -- Soul of Isaac
[82] = {"82", "Soul of Magdalene", "{{Timer}} Effect lasts for the room:#{{HalfHeart}} Enemies killed drop half Red Hearts that disappear after 2 seconds"}, -- Soul of Magdalene [82] = {"82", "Soul of Magdalene", "{{Timer}} Effect lasts for the room:#{{HalfHeart}} Enemies killed drop half Red Hearts that disappear after 2 seconds"}, -- Soul of Magdalene
[83] = {"83", "Soul of Cain", "Opens all doors in the room#{{Collectible580}} Creates red rooms on every wall possible"}, -- Soul of Cain [83] = {"83", "Soul of Cain", "Opens all doors in the room#{{Collectible580}} Creates red rooms on every wall possible"}, -- Soul of Cain
@@ -1169,11 +1168,9 @@ EID.descriptions[languageCode].CraftingIsHidden = "Currently Hidden (Unhide with
EID.descriptions[languageCode].CraftingResults = "(Scroll: Hold {{CONFIG_BoC_Toggle}} + {{ButtonY}} {{ButtonA}}, Lock: {{ButtonX}}, Refresh: {{ButtonB}}, Reset Bag: Hold {{ButtonRB}}, Search: {{ButtonEnter}})" EID.descriptions[languageCode].CraftingResults = "(Scroll: Hold {{CONFIG_BoC_Toggle}} + {{ButtonY}} {{ButtonA}}, Lock: {{ButtonX}}, Refresh: {{ButtonB}}, Reset Bag: Hold {{ButtonRB}}, Search: {{ButtonEnter}})"
EID.descriptions[languageCode].BlankCardCharge = "Blank Card charge:"
EID.descriptions[languageCode].BlankCardEffect = "Blank Card effect:" EID.descriptions[languageCode].BlankCardEffect = "Blank Card effect:"
EID.descriptions[languageCode].BlankCardQCard = "Teleport to I AM ERROR Room#Blank Card and ?-Card will be destroyed" EID.descriptions[languageCode].VariableCharge = "{1} charge:"
EID.descriptions[languageCode].ClearRuneCharge = "Clear Rune charge:"
EID.descriptions[languageCode].PlaceboCharge = "Placebo charge:"
EID.descriptions[languageCode].FlipItemToggleInfo = "(Hold {{CONFIG_BoC_Toggle}} to show description)" EID.descriptions[languageCode].FlipItemToggleInfo = "(Hold {{CONFIG_BoC_Toggle}} to show description)"
EID.descriptions[languageCode].GlowingHourglassTransformed = "Will change back to Glowing Hourglass next floor" EID.descriptions[languageCode].GlowingHourglassTransformed = "Will change back to Glowing Hourglass next floor"
@@ -1192,21 +1189,40 @@ EID.descriptions[languageCode].AchievementWarningText = "Achievements are disabl
EID.descriptions[languageCode].OldGameVersionWarningText = "EID is updated for the newest Steam version#Your game version is not officially supported, so some descriptions and features will be inaccurate#(This warning can be disabled in the config)" EID.descriptions[languageCode].OldGameVersionWarningText = "EID is updated for the newest Steam version#Your game version is not officially supported, so some descriptions and features will be inaccurate#(This warning can be disabled in the config)"
EID.descriptions[languageCode].ModdedRecipesWarningText = "Modded items could make the crafting recipe calculation inaccurate!#Install REPENTOGON for modded recipe support#(This warning can be disabled in the config)" EID.descriptions[languageCode].ModdedRecipesWarningText = "Modded items could make the crafting recipe calculation inaccurate!#Install REPENTOGON for improved modded recipe support#(This warning can be disabled in the config)"
EID.descriptions[languageCode].ResultsWithX = "(Results with {1})" EID.descriptions[languageCode].ResultsWithX = "(Results with {1})"
-- Conditional descriptions
-- Strings will be appended to the original description
-- Tables with one entry will completely replace the original description
-- Tables with two or more entries are find-replace pairs
local repConditions={ local repConditions={
["5.100.161"] = "{{Player25}} Tainted ??? simply revives", -- Ankh ["Tainted Revive"] = "{1} simply revives",
["5.350.28"] = "{{Player25}} Tainted ??? simply revives", -- Broken Ankh
["5.100.311"] = "{{Player24}} Tainted Judas simply revives", -- Judas' Shadow
["5.100.332"] = "{{Player29}} Tainted Lazarus simply revives", -- Lazarus' Rags
["5.350.23 (Tainted Lost)"] = "{{Player31}} Tainted Lost simply revives", -- Missing Poster
["5.100.676"] = "No effect for characters that can't have Red Hearts", -- Empty Heart
["5.300.15 (Tarot)"] = "{{DemonBeggar}} Spawns {{ColorShinyPurple}}2{{CR}} Devil Beggars", -- Temperance (Greed Mode + Tarot Cloth effect)
["5.350.1"] = "{{Player14}} Spawns 0-1 coin as Keeper", -- Swallowed Penny
["5.100.135 (Hard Mode)"] = {"1-2 coins", "1 coin", "2-3 coins", "2 coins"}, -- IV Bag Hard Mode (modify the PHD text too) ["5.100.135 (Hard Mode)"] = {"1-2 coins", "1 coin", "2-3 coins", "2 coins"}, -- IV Bag Hard Mode (modify the PHD text too)
["5.100.642"] = "Single use for {1}", -- Magic Skin
["5.100.240"] = "{1} keeps the stat changes when he drops it", -- Experimental Treatment
["5.100.644"] = "{1} keeps the stat increase when he drops it", -- Consolation Prize
["5.100.549"] = "{1} simply gets ↑ {{Tears}} +0.4 Fire rate on pickup", -- Brittle Bones (Keeper+Lost)
["5.100.694"] = "Works for {1}, letting him survive 4 hits", -- Heartbreak
["5.100.201"] = "Refills {1}'s charge on pickup", --Iron Bar
["5.350.172"] = "{1} removes the teleportation effect", -- Cursed Penny
["5.100.188"] = "Deals 7.5 damage as {1}", -- Cain + Abel
["5.100.360"] = "Deals 100% damage as {1}", -- Lilith + Incubus
["5.100.501 (Deep Pockets)"] = "+1 Heart container for every 100 coins past 99", -- Greed's Gullet + Deep Pockets
["5.350.156"] = "+1 Coin container for {1}", -- Mother's Kiss
["5.100.230 (Keeper)"] = "{1} is left with 1 coin container", -- Abaddon
["5.100.230 (Bethany)"] = "{1} is left with half a heart", -- Abaddon
["5.100.230 (Tainted Bethany)"] = "{1} doesn't lose her blood charges", -- Abaddon
["5.100.245"] = "Removes the fire rate penalty of {1}", -- 20/20 + Mutant Spider, The Inner Eye, Polyphemus
["5.100.245 (Keeper)"] = "Fire rate up and decreased tear spread for {1}", -- 20/20 + Keeper
["20/20"] = "No fire rate penalty with {1}", -- 20/20 + Mutant Spider, The Inner Eye, Polyphemus
["5.100.705"] = "Temporary +1 damage up for each bullet/enemy", -- Dark Arts + Dark/Tainted Judas
} }
EID:updateDescriptionsViaTable(repConditions, EID.descriptions[languageCode].ConditionalDescs) EID:updateDescriptionsViaTable(repConditions, EID.descriptions[languageCode].ConditionalDescs)
@@ -1221,6 +1237,40 @@ local repBFFSSynergies = {
} }
EID:updateDescriptionsViaTable(repBFFSSynergies, EID.descriptions[languageCode].BFFSSynergies) EID:updateDescriptionsViaTable(repBFFSSynergies, EID.descriptions[languageCode].BFFSSynergies)
-- TODO: make these more consistent with other descs, add icons, and is there any traits of the characters missing?
local repCharacterInfo = {
[4] = {"???", "Can't have Red Hearts#Devil deals that would cost 1 or 2 Red Hearts will cost 1 or 2 Soul Hearts instead#Destroying poop spawns 1 blue fly"},
[8] = {"Lazarus", "Once per floor, when you die:#Resurrect as Lazarus Risen#Lose 1 Red Heart container#↑ {{Damage}} 0.5 Damage up"},
[11] = {"Lazarus Risen", "Increased stats and 1.4x damage multiplier#When entering a new floor, turn back into Lazarus"},
[12] = {"Dark Judas", "Can't have Red Hearts#Health ups grant Black Hearts#2x Damage multiplier"},
[14] = {"Keeper", "Heal by picking up coins#Heart pickups are turned into Blue Flies#Devil deals cost 15 or 30 coins"},
[18] = {"Bethany", "Use Soul Hearts to charge your active item#Can't use Soul Hearts as health#The first Devil room is guaranteed to be an Angel room instead"},
[19] = {"Jacob", "Control Jacob and Esau at the same time#Both characters drop a bomb when one is used#Esau stays in place while holding {{ButtonRT}}#When there's a choice between items, Jacob and Esau can grab two simultaneously"},
[20] = {"Esau", ""},
[21] = {"Tainted Isaac", "Item pedestals cycle between 2 options#You can only carry 8 passive items#Cycle which item will be dropped for a 9th item with {{ButtonRT}}"},
[22] = {"Tainted Magdalene", "Health above 2 Red Hearts will slowly drain#On contact, do a melee swing#Chance for enemies to drop Half Red Hearts that disappear in 2 seconds#Drop is guaranteed on melee kill#Heal twice as much from non-pickup sources#Damage taken to draining hearts doesn't affect Devil Deal chance"},
[23] = {"Tainted Cain", "Touching an item pedestal turns it into a variety of pickups#Gain collectibles by crafting 8 pickups together in the Bag of Crafting#The Bag's contents can be shifted with {{ButtonRT}} to replace specific pickups when full"},
[24] = {"Tainted Judas", "Can't have Red Hearts#Health ups grant Black Hearts"},
[25] = {"Tainted ???", "Bombs are replaced with Poop Spells#Doing damage spawns poop pickups#The HUD has a preview of your upcoming poop spells#You can store the next spell for later by using Hold#Can't have Red Hearts"},
[26] = {"Tainted Eve", "Holding Fire will convert your hearts into Clot familiars#Different Heart types spawn Clots with more health and tear effects#Clots lose health over time#Using Sumptorium will absorb the Clots back into your health, if possible#Clots stay in place while holding {{ButtonRT}}"},
[27] = {"Tainted Samson", "Dealing or taking damage builds up Berserk mode#{{Timer}} When you go berserk, receive for 5 seconds:#↑ {{Speed}} +0.4 Speed#↓ {{Tears}} x0.5 Fire rate multiplier#↑ {{Tears}} +2 Fire rate#↑ {{Damage}} +3 Damage#Restricts attacks to a melee that reflects shots#{{Timer}} Each kill increases the duration by 1 second and grants brief invincibility"},
[28] = {"Tainted Azazel", "When you start charging, you sneeze blood#Hitting an enemy with the sneeze halves your charge time#The sneeze deals 1.5x Azazel's damage#{{BrimstoneCurse}} Affected enemies take extra damage from Brimstone beams#On death, cursed enemies explode and pass on the curse to nearby enemies"},
[29] = {"Tainted Lazarus", "Lazarus has two states, each with their own items and health#Whenever you clear a room/wave or use Flip, you're switched to the other state"},
[30] = {"Tainted Eden", "When you take damage, reroll your stats, items, trinket, and consumables#Items reroll into an item from the same item pool#Self-damage doesn't reroll"},
[31] = {"Tainted Lost", "Cards that spawn have a 10% chance to be Holy Card#Quality {{Quality2}} or less items have a 20% chance to be rerolled#Only \"offensive\" items can spawn"},
[32] = {"Tainted Lilith", "Pressing Fire launches a short-range fetus melee attack that does 3x damage#Holding Fire keeps the fetus out shooting tears"},
[33] = {"Tainted Keeper", "Enemies drop coins that disappear in 2 seconds#Most item pedestals cost 15 coins#Devil deals and Angel items cost 15 or 30 coins#Shops don't require a key and have increased stock"},
[34] = {"Tainted Apollyon", ""},
[35] = {"Tainted Forgotten", "The Forgotten is an immobile bone pile that is picked up and thrown by The Soul for 3x damage#Only The Soul can take damage#Bombs are placed at Forgotten's location#Can't have Red Hearts"},
[36] = {"Tainted Bethany", "Use Red Hearts to charge your active item#Can't have Red Hearts"},
[37] = {"Tainted Jacob", "Dark Esau chases you, charging towards you when close#Anima Sola will chain Dark Esau down briefly, charging at you after 5(?) seconds or on using Anima Sola again#Dark Esau's charge does a lot of damage to enemies and ignores Boss Armor#If he hits you, you turn into a ghost that dies in one hit for the rest of the floor#While a ghost, one devil deal per room can be taken for free"},
[38] = {"Dead Tainted Lazarus", "Lazarus has two states, each with their own items and health#Whenever you clear a room/wave or use Flip, you're switched to the other state"},
[39] = {"Tainted Jacob 2", ""},
[40] = {"Tainted Forgotten Soul", "The Forgotten is an immobile bone pile that is picked up and thrown by The Soul for 3x damage#Only The Soul can take damage#Bombs are placed at Forgotten's location#Can't have Red Hearts"},
}
EID:updateDescriptionsViaTable(repCharacterInfo, EID.descriptions[languageCode].characterInfo)
-- If Debug enabled, add overwrite tables to the languagepack in order for the language completion script to be able to compare them -- If Debug enabled, add overwrite tables to the languagepack in order for the language completion script to be able to compare them
if EID.enableDebug then if EID.enableDebug then
EID.descriptions[languageCode].repCollectibles = repCollectibles EID.descriptions[languageCode].repCollectibles = repCollectibles
+1 -4
View File
@@ -1315,10 +1315,7 @@ EID.descriptions[languageCode].CraftingPreviewKey = "Prévisualiser:"
EID.descriptions[languageCode].CraftingResults = "(Défiler: maintenir {{CONFIG_BoC_Toggle}} + {{ButtonY}} {{ButtonA}},#Verrouiller: {{ButtonX}}, Rafraîchir: {{ButtonB}})" EID.descriptions[languageCode].CraftingResults = "(Défiler: maintenir {{CONFIG_BoC_Toggle}} + {{ButtonY}} {{ButtonA}},#Verrouiller: {{ButtonX}}, Rafraîchir: {{ButtonB}})"
EID.descriptions[languageCode].BlankCardCharge = "Temps de charge avec {{ColorYellow}}Carte Blanche{{ColorWhite}} :" EID.descriptions[languageCode].VariableCharge = "Temps de charge avec {{ColorYellow}}{1}{{ColorWhite}} :"
EID.descriptions[languageCode].BlankCardQCard = "Téléporte Isaac dans la salle d'erreur#La {{ColorYellow}}Carte Blanche{{ColorWhite}} et la {{ColorYellow}}Carte ?{{ColorWhite}} seront détruites"
EID.descriptions[languageCode].ClearRuneCharge = "Temps de charge avec {{ColorYellow}}Rune de Cristal{{ColorWhite}} :"
EID.descriptions[languageCode].PlaceboCharge = "Temps de charge avec {{ColorYellow}}Placebo{{ColorWhite}} :"
EID.descriptions[languageCode].FlipItemToggleInfo = "( {{ButtonSelect}} : description)" EID.descriptions[languageCode].FlipItemToggleInfo = "( {{ButtonSelect}} : description)"
EID.descriptions[languageCode].GlowingHourglassTransformed = "Redeviendra le Sablier Luisant au prochain étage" EID.descriptions[languageCode].GlowingHourglassTransformed = "Redeviendra le Sablier Luisant au prochain étage"
+1 -4
View File
@@ -1188,11 +1188,8 @@ EID.descriptions[languageCode].CraftingPreviewKey = "アイテムの確認:"
EID.descriptions[languageCode].CraftingResults = "レシピ操作:マップ表示中、#{{Blank}}  {{ButtonY}} {{ButtonA}} でスクロール#{{Blank}}  {{ButtonX}} でレシピ固定#{{Blank}}  {{ButtonB}} でレシピ更新" EID.descriptions[languageCode].CraftingResults = "レシピ操作:マップ表示中、#{{Blank}}  {{ButtonY}} {{ButtonA}} でスクロール#{{Blank}}  {{ButtonX}} でレシピ固定#{{Blank}}  {{ButtonB}} でレシピ更新"
EID.descriptions[languageCode].BlankCardCharge = "白紙のカードチャージ:" EID.descriptions[languageCode].VariableCharge = "{1}チャージ:"
EID.descriptions[languageCode].BlankCardEffect = "白紙のカードで使用時:" EID.descriptions[languageCode].BlankCardEffect = "白紙のカードで使用時:"
EID.descriptions[languageCode].BlankCardQCard = "I AM ERRORにテレポート#白紙のカードと?カード 両方が消失する"
EID.descriptions[languageCode].ClearRuneCharge = "クリアルーンチャージ:"
EID.descriptions[languageCode].PlaceboCharge = "プラシーボチャージ:"
EID.descriptions[languageCode].FlipItemToggleInfo = "(マップボタンで確認)" EID.descriptions[languageCode].FlipItemToggleInfo = "(マップボタンで確認)"
-1
View File
@@ -1286,7 +1286,6 @@ EID.descriptions[languageCode].CraftingResults = "목록 스크롤: {{CONFIG_BoC
EID.descriptions[languageCode].BlankCardCharge = "Blank Card 충전량:" EID.descriptions[languageCode].BlankCardCharge = "Blank Card 충전량:"
EID.descriptions[languageCode].BlankCardEffect = "Blank Card로 사용 시:" EID.descriptions[languageCode].BlankCardEffect = "Blank Card로 사용 시:"
EID.descriptions[languageCode].BlankCardQCard = "오류방으로 순간이동합니다.#Blank Card와 ? 카드가 제거됩니다."
EID.descriptions[languageCode].ClearRuneCharge = "Clear Rune 충전량:" EID.descriptions[languageCode].ClearRuneCharge = "Clear Rune 충전량:"
EID.descriptions[languageCode].PlaceboCharge = "Placebo 충전량:" EID.descriptions[languageCode].PlaceboCharge = "Placebo 충전량:"
EID.descriptions[languageCode].FlipItemToggleInfo = "( {{CONFIG_BoC_Toggle}} (맵 펼치기) 버튼을 꾹 눌러 설명 보기)" EID.descriptions[languageCode].FlipItemToggleInfo = "( {{CONFIG_BoC_Toggle}} (맵 펼치기) 버튼을 꾹 눌러 설명 보기)"
-1
View File
@@ -1083,7 +1083,6 @@ EID.descriptions[languageCode].CraftingPreviewKey = "Visualizar:"
EID.descriptions[languageCode].CraftingResults = "(Rolar: Segurar {{CONFIG_BoC_Toggle}} + {{ButtonY}} {{ButtonA}}, Travar: {{ButtonX}}, Atualizar: {{ButtonB}}, Redefinir a Bolsa: Hold {{ButtonRB}})" EID.descriptions[languageCode].CraftingResults = "(Rolar: Segurar {{CONFIG_BoC_Toggle}} + {{ButtonY}} {{ButtonA}}, Travar: {{ButtonX}}, Atualizar: {{ButtonB}}, Redefinir a Bolsa: Hold {{ButtonRB}})"
EID.descriptions[languageCode].BlankCardCharge = "Carga do Blank Card:" EID.descriptions[languageCode].BlankCardCharge = "Carga do Blank Card:"
EID.descriptions[languageCode].BlankCardQCard = "Teleporta para a Sala I AM Error#Blank Card e ?-Carta serão destruídas"
EID.descriptions[languageCode].ClearRuneCharge = "Limpar carga da Runa:" EID.descriptions[languageCode].ClearRuneCharge = "Limpar carga da Runa:"
EID.descriptions[languageCode].PlaceboCharge = "Carga do Placebo:" EID.descriptions[languageCode].PlaceboCharge = "Carga do Placebo:"
EID.descriptions[languageCode].FlipItemToggleInfo = "(Segure {{CONFIG_BoC_Toggle}} para mostrar a descrição)" EID.descriptions[languageCode].FlipItemToggleInfo = "(Segure {{CONFIG_BoC_Toggle}} para mostrar a descrição)"
-1
View File
@@ -1070,7 +1070,6 @@ EID.descriptions[languageCode].CraftingPreviewKey = "Показать:"
EID.descriptions[languageCode].CraftingResults = "(Листать: зажать {{CONFIG_BoC_Toggle}} + {{ButtonY}} {{ButtonA}},#Заблокировать: {{ButtonX}}, Обновить: {{ButtonB}})" EID.descriptions[languageCode].CraftingResults = "(Листать: зажать {{CONFIG_BoC_Toggle}} + {{ButtonY}} {{ButtonA}},#Заблокировать: {{ButtonX}}, Обновить: {{ButtonB}})"
EID.descriptions[languageCode].BlankCardCharge = "Заряд Пустой карты:" EID.descriptions[languageCode].BlankCardCharge = "Заряд Пустой карты:"
EID.descriptions[languageCode].BlankCardQCard = "Телепортирует в комнату Я-ОШИБКА#Пустая карта и ?-карта будут уничтожены"
EID.descriptions[languageCode].ClearRuneCharge = "Заряд Чистой руны:" EID.descriptions[languageCode].ClearRuneCharge = "Заряд Чистой руны:"
EID.descriptions[languageCode].PlaceboCharge = "Заряд Плацебо:" EID.descriptions[languageCode].PlaceboCharge = "Заряд Плацебо:"
EID.descriptions[languageCode].FlipItemToggleInfo = "(Зажми {{ButtonSelect}} чтобы показать описание)" EID.descriptions[languageCode].FlipItemToggleInfo = "(Зажми {{ButtonSelect}} чтобы показать описание)"
-1
View File
@@ -1130,7 +1130,6 @@ EID.descriptions[languageCode].CraftingResults = "(Desplazar: mantén {{CONFIG_B
-- Mimic items charges -- Mimic items charges
EID.descriptions[languageCode].BlankCardCharge = "Cargas de Carta en Blanco:" EID.descriptions[languageCode].BlankCardCharge = "Cargas de Carta en Blanco:"
EID.descriptions[languageCode].BlankCardQCard = "Te teletransporta a la habitación de I Am Error#Tanto Carta en blanco como la ¿? carta se destruirán"
EID.descriptions[languageCode].ClearRuneCharge = "Cargas de Runa limpia:" EID.descriptions[languageCode].ClearRuneCharge = "Cargas de Runa limpia:"
EID.descriptions[languageCode].PlaceboCharge = "Cargas de Placebo:" EID.descriptions[languageCode].PlaceboCharge = "Cargas de Placebo:"
-- Mimic items charges end -- Mimic items charges end
-1
View File
@@ -1193,7 +1193,6 @@ EID.descriptions[languageCode].CraftingPreviewKey = "Показати:"
EID.descriptions[languageCode].CraftingResults = "(Гортати: Утримуйте {{CONFIG_BoC_Toggle}} + {{ButtonY}} {{ButtonA}}, Закріпити: {{ButtonX}}, Оновити: {{ButtonB}}, Скинути: Утримуйте {{ButtonRB}})" EID.descriptions[languageCode].CraftingResults = "(Гортати: Утримуйте {{CONFIG_BoC_Toggle}} + {{ButtonY}} {{ButtonA}}, Закріпити: {{ButtonX}}, Оновити: {{ButtonB}}, Скинути: Утримуйте {{ButtonRB}})"
EID.descriptions[languageCode].BlankCardCharge = "Заряд Пустої карти:" EID.descriptions[languageCode].BlankCardCharge = "Заряд Пустої карти:"
EID.descriptions[languageCode].BlankCardQCard = "Телепортує до кімнати Я - ПОМИЛКА#Пуста Карта та ?-Карта будуть знищені"
EID.descriptions[languageCode].ClearRuneCharge = "Заряд Чистої руни:" EID.descriptions[languageCode].ClearRuneCharge = "Заряд Чистої руни:"
EID.descriptions[languageCode].PlaceboCharge = "Заряд Плацебо:" EID.descriptions[languageCode].PlaceboCharge = "Заряд Плацебо:"
EID.descriptions[languageCode].FlipItemToggleInfo = "(Утримуйте {{ButtonSelect}} щоб побачити опис)" EID.descriptions[languageCode].FlipItemToggleInfo = "(Утримуйте {{ButtonSelect}} щоб побачити опис)"
+1 -4
View File
@@ -1097,10 +1097,7 @@ EID.descriptions[languageCode].itemPoolFor = "所属道具池:"
EID.descriptions[languageCode].itemPoolNames = { EID.descriptions[languageCode].itemPoolNames = {
[0] = "宝箱房", "商店", "头目房", "恶魔房", "天使房", "隐藏房", "图书馆", "赌博乞丐", "金箱子", "红箱子", "乞丐", "恶魔乞丐", "诅咒房", "钥匙乞丐", "电池乞丐", "妈妈的箱子", "贪婪模式宝箱房", "贪婪模式头目房", "贪婪模式商店", "贪婪模式恶魔房", "贪婪模式天使房", "贪婪模式诅咒房", "贪婪模式隐藏房", "抓娃娃机", "究极隐藏房", "炸弹乞丐", "星象房", "旧箱子", "宝宝商店", "木箱子", "腐烂乞丐", [0] = "宝箱房", "商店", "头目房", "恶魔房", "天使房", "隐藏房", "图书馆", "赌博乞丐", "金箱子", "红箱子", "乞丐", "恶魔乞丐", "诅咒房", "钥匙乞丐", "电池乞丐", "妈妈的箱子", "贪婪模式宝箱房", "贪婪模式头目房", "贪婪模式商店", "贪婪模式恶魔房", "贪婪模式天使房", "贪婪模式诅咒房", "贪婪模式隐藏房", "抓娃娃机", "究极隐藏房", "炸弹乞丐", "星象房", "旧箱子", "宝宝商店", "木箱子", "腐烂乞丐",
} }
EID.descriptions[languageCode].BlankCardCharge = "空白卡牌充能:" EID.descriptions[languageCode].VariableCharge = "{1}充能:"
EID.descriptions[languageCode].BlankCardQCard = "传送至错误房#空白卡牌和?卡牌会被摧毁"
EID.descriptions[languageCode].ClearRuneCharge = "透明符文充能:"
EID.descriptions[languageCode].PlaceboCharge = "安慰剂充能:"
EID.descriptions[languageCode].FlipItemToggleInfo = "(按住 {{ButtonSelect}}(地图)来显示其描述)" EID.descriptions[languageCode].FlipItemToggleInfo = "(按住 {{ButtonSelect}}(地图)来显示其描述)"
EID.descriptions[languageCode].FalsePHDHeart = "生成1黑心" EID.descriptions[languageCode].FalsePHDHeart = "生成1黑心"
+1 -1
View File
@@ -6,7 +6,7 @@ EID.UserConfig = {
-- Chinese = "zh_cn" SPECIAL THANKS TO Xheepey87, frto027 -- Chinese = "zh_cn" SPECIAL THANKS TO Xheepey87, frto027
-- Czech = "cs_cz" SPECIAL THANKS TO domcizzz -- Czech = "cs_cz" SPECIAL THANKS TO domcizzz
-- Dutch = "nl_nl" SPECIAL THANKS TO SomethingMax -- Dutch = "nl_nl" SPECIAL THANKS TO SomethingMax
-- English = "en_us", "en_us_detailed" (More detailed descriptions) -- English = "en_us" SPECIAL THANKS TO everyone!
-- French = "fr" SPECIAL THANKS TO biobak -- French = "fr" SPECIAL THANKS TO biobak
-- German = "de" SPECIAL THANKS TO Jake -- German = "de" SPECIAL THANKS TO Jake
-- Greek = "el_gr" SPECIAL THANKS TO vanillarat -- Greek = "el_gr" SPECIAL THANKS TO vanillarat
+22 -7
View File
@@ -617,6 +617,12 @@ function EID:getObjectName(Type, Variant, SubType)
return Type.."."..Variant.."."..SubType return Type.."."..Variant.."."..SubType
end end
function EID:getPlayerName(id)
local playerInfo = EID:getDescriptionEntry("characterInfo")[id]
local birthrightInfo = EID.isRepentance and EID:getDescriptionEntry("birthright")[id+1]
return (playerInfo and playerInfo[1]) or (birthrightInfo and birthrightInfo[1]) or "???"
end
-- returns the name of a pill based on the pilleffect id -- returns the name of a pill based on the pilleffect id
function EID:getPillName(pillID, isHorsepill) function EID:getPillName(pillID, isHorsepill)
local moddedDesc = EID:getDescriptionEntry("custom", "5.70."..pillID) local moddedDesc = EID:getDescriptionEntry("custom", "5.70."..pillID)
@@ -713,6 +719,12 @@ end
function EID:replaceNameMarkupStrings(text) function EID:replaceNameMarkupStrings(text)
for word in string.gmatch(text, "{{Name.-}}") do for word in string.gmatch(text, "{{Name.-}}") do
local strTrimmed = string.gsub(word, "{{Name(.-)}}", function(a) return a end) local strTrimmed = string.gsub(word, "{{Name(.-)}}", function(a) return a end)
local showIcon = true
-- If the markup is {{NameOnlyX###}}, do not print an icon before the name
if string.find(text, "NameOnly") then
strTrimmed = string.gsub(word, "{{NameOnly(.-)}}", function(a) return a end)
showIcon = false
end
local indicator = string.sub(strTrimmed, 1, 1) local indicator = string.sub(strTrimmed, 1, 1)
local id = tonumber(string.sub(strTrimmed, 2, -1)) local id = tonumber(string.sub(strTrimmed, 2, -1))
local name = "" local name = ""
@@ -723,15 +735,17 @@ function EID:replaceNameMarkupStrings(text)
end end
name = EID:getObjectName(entityID[1], entityID[2], entityID[3]) name = EID:getObjectName(entityID[1], entityID[2], entityID[3])
elseif indicator == "C" then -- Collectible elseif indicator == "C" then -- Collectible
name = "{{Collectible"..id.."}}"..EID:getObjectName(5, 100, id) name = (showIcon and "{{Collectible"..id.."}} " or "")..EID:getObjectName(5, 100, id)
elseif indicator == "T" then -- Trinket elseif indicator == "T" then -- Trinket
name = "{{Trinket"..id.."}}"..EID:getObjectName(5, 350, id) name = (showIcon and "{{Trinket"..id.."}} " or "")..EID:getObjectName(5, 350, id)
elseif indicator == "P" then -- Pills elseif indicator == "P" then -- Pills
name = "{{Pill"..id.."}}"..EID:getPillName(id, false) name = (showIcon and "{{Pill"..id.."}} " or "")..EID:getPillName(id, false)
elseif indicator == "K" then -- Card elseif indicator == "K" then -- Card
name = "{{Card"..id.."}}"..EID:getObjectName(5, 300, id) name = (showIcon and "{{Card"..id.."}} " or "")..EID:getObjectName(5, 300, id)
elseif indicator == "I" then -- Player (I for Isaac)
name = (showIcon and "{{Player"..id.."}} " or "")..EID:getPlayerName(id)
end end
text = string.gsub(text, word, "{{ColorYellow}}"..name.."{{CR}}", 1) text = string.gsub(text, word, name, 1)
end end
return text return text
end end
@@ -1179,7 +1193,7 @@ function EID:PlayersHaveCharacter(playerType, includeTainted)
if player:GetPlayerType() == playerType then if player:GetPlayerType() == playerType then
return true, player return true, player
end end
if includeTainted and REPENTANCE and Isaac.GetPlayerTypeByName(player:GetName()) == playerType then if includeTainted and EID.isRepentance and Isaac.GetPlayerTypeByName(player:GetName()) == playerType then
return true, player return true, player
end end
end end
@@ -1586,7 +1600,7 @@ function EID:getLanguage()
end end
function EID:AddToCollectiblesToCheckList(itemID) function EID:AddToCollectiblesToCheckList(itemID)
table.insert(EID.collectiblesToCheck, itemID) EID.collectiblesToCheck[itemID] = true
end end
-- Add a specific entity to be ignored by EID. Set entitySubType to -1 in order to ignore all entities with this type+variant combi -- Add a specific entity to be ignored by EID. Set entitySubType to -1 in order to ignore all entities with this type+variant combi
@@ -2057,5 +2071,6 @@ end
-- Replaces Variable placeholders in string with a given value -- Replaces Variable placeholders in string with a given value
-- Example: "My {1} message" --> "My test message" -- Example: "My {1} message" --> "My test message"
function EID:ReplaceVariableStr(str, varID, newString) function EID:ReplaceVariableStr(str, varID, newString)
if type(str) ~= "string" or newString == nil then return str end
return str:gsub("{"..varID.."}", newString) return str:gsub("{"..varID.."}", newString)
end end
+270 -87
View File
@@ -1,27 +1,220 @@
local game = Game() local game = Game()
--[[ Descs that need a variant: EID.DescriptionConditions = {}
respawn items that respawn you as the tainted version of yourself -- table of collectible IDs to periodically check if the players own. used by eid_modifiers.lua
tainted isaac Consolation Prize, Experimental Treatment EID.collectiblesToCheck = {}
things that apply only to Lost/Tainted Lost (broken heart card, magic skin)
spoilers descs --[[
lachyphragy in co-op? tech zero in co-op? yum heart and such obviously Argument 1: The item ID
black candle + cursed penny / cursed eye For convenience, numbers are assumed to be a collectible ID; strings in Type.Var.Sub format can be used as well
healing stuff for keeper? If you're adding a condition that applies to many items, you can pass in a table of IDs
iron bar + notched axe If you're adding a condition that applies to an entire type of item, pass in a string in Type.Var format
IV bag in hard mode
IV bag for keeper (hmm, two different modifiers needed!) Argument 2: The function that will apply the condition if it returns true
swallowed penny keeper
experimental pill phd / false phd / phd + falsephd prints nothing Argument 3 (optional): Additional text for finding the string in the localization file
iv bag also has interaction with PHD... For example, if you put "Overridden" here, modifying Tech X, it will look for ConditionalDescs["5.100.395 (Overridden)"] AND ConditionalDescs["Overridden"]
Items that have synergies with other specific items
Argument 4 (optional): Table with any additional options, usually not needed:
variableText: If there's a {1} in the desc, it will be replaced with this; can be a function for more dynamic text results, it will get descObj passed into it
variableText2: If there's a {2} in the desc, it will be replaced with this; can be a function
locTable: Specify a different table to look for the localization string in, rather than ConditionalDescs
noTable: Set to true to look in the base localizations only (requires modText) (not used yet...)
lineColor: Appended lines will be highlighted with this color
replaceColor: Find/replace text will be highlighted with this color
bulletpoint: Appended lines will begin with this bulletpoint
noFallback: Don't fallback to English if this isn't localized; by default, conditionals don't fallback, to avoid printing English text in unupdated languages
Argument 5 (very optional): The position in the table to insert this new condition, in case mods want to insert modifiers before our base ones
]]
function EID:AddConditional(IDs, funcText, modText, extraTable, insertPoint)
if type(IDs) ~= "table" then IDs = {IDs} end
if modText == "" then modText = nil end
extraTable = extraTable or {}
-- make a shallow copy of the passed-in table
local newTable = {}; for k,v in pairs(extraTable) do newTable[k] = v end
newTable.func = funcText;
newTable.modifierText = modText;
if newTable.noFallback == nil then newTable.noFallback = true end
for _, id in ipairs(IDs) do
if type(id) ~= "string" then id = "5.100." .. id end
-- Check for only one period in the id string to mark it as being a general condition
local _, count = string.gsub(id, "%.", "")
if count == 1 then newTable.general = true end
EID.DescriptionConditions[id] = EID.DescriptionConditions[id] or {}
if insertPoint then table.insert(EID.DescriptionConditions[id], insertPoint, newTable)
else table.insert(EID.DescriptionConditions[id], newTable) end
end
end
-- Easy to use functions for conditionals that rely on having a specific collectible/character
-- By default, they'll have a bulletpoint for the coll/char, and {1} becomes the coll/char's name
-- checkInReminder is for if a synergy is no longer relevant once the item isn't obtainable (e.g. Abyss locusts) (true by default)
function EID:AddCollectibleConditional(IDs, ownedIDs, modText, extraTable, checkInReminder)
if type(ownedIDs) ~= "table" then ownedIDs = {ownedIDs} end
if checkInReminder == nil then checkInReminder = true end
extraTable = extraTable or {}
for _, ownedID in ipairs(ownedIDs) do
EID.collectiblesToCheck[ownedID] = true
if extraTable.variableText == nil then extraTable.variableText = "{{NameOnlyC" .. ownedID .. "}}" end
if extraTable.bulletpoint == nil then extraTable.bulletpoint = "Collectible" .. ownedID end
EID:AddConditional(IDs, function() return EID:ConditionalCollCheck(ownedID,checkInReminder) end, modText, extraTable)
end
end
-- For adding pairs of abilities to collectibles; you can define a different modifier text for each of them
-- example: EID:AddSynergyConditional({list of IDs overridden by Brimstone}, Brimstone, "Overridden", "Overrides")
function EID:AddSynergyConditional(IDs, ownedIDs, modText1, modText2, extraTable1, extraTable2, checkInReminder)
EID:AddCollectibleConditional(IDs, ownedIDs, modText1, extraTable1, checkInReminder)
EID:AddCollectibleConditional(ownedIDs, IDs, modText2 or modText1, extraTable2 or extraTable1, checkInReminder)
end
-- includeTainted is for if you want to check the normal and tainted version of a character (true by default)
function EID:AddPlayerConditional(IDs, charIDs, modText, extraTable, includeTainted)
if type(charIDs) ~= "table" then charIDs = {charIDs} end
if includeTainted == nil then includeTainted = true end
extraTable = extraTable or {}
for _, charID in ipairs(charIDs) do
if extraTable.variableText == nil then extraTable.variableText = "{{NameOnlyI" .. charID .. "}}" end
if extraTable.bulletpoint == nil then extraTable.bulletpoint = "Player" .. charID end
EID:AddConditional(IDs, function() return EID:ConditionalCharCheck(charID,includeTainted) end, modText, extraTable)
end
end
-- Adding our conditionals (should this be its own file away from the functions that add/print conditionals?)
--[[
TODO STUFF:
new config options for spoiler-heavy descriptions if we make any (chaos card and plan C?)
CO-OP BENEFIT ITEMS! tech zero / extension cord in co-op? yum heart and such
Items that override other items (brimstone, mom's knife, epic fetus stuff) Items that override other items (brimstone, mom's knife, epic fetus stuff)
BFFs / the fly booster + Tainted Apollyon, Tainted Eve; melody trinket + Tainted Eve; these are insane synergies that deserve attention
TODO: Make some of these coll/char IDs be from the enum for readability? or just keep it to comments
TODO: A find/replace pair for some Keeper descriptions that talk about Red hearts but work for him, Red -> Coin or Red/Coin; Could be good for Dead Cat
TODO: AB+ tarot cloth buffs table?
-- hey what if all these Luck addons that I kinda don't like instead showed an accurate percentage of what they do at your current luck (although this is Modifier territory, with a per character display)
-- todo: TrinketConditional, use it for the crystal key + pandora's box or whichever key it is, and Black Feather items maybe
-- todo: Vibrant/Dim Bulb + doesn't work with pocket consumables. could be conditional actually if we have a list of char IDs with pocket actives
-- todo: idk about the BFFs synergy stuff but I noticed that Brown Nugget is incorrectly dealt with, it gained double damage in rep
-- hive mind and BFFs synergy has a lot of overlap also
-- brown nugget + sacrificial altar in AB+?!
-- ? Card + single use actives in Repentance? Alabaster Box
-- unrelated to conditionals: Glyph of Balance prediction in Item Reminder?
-- meta todo: Put a 100% save file for AB+ and for Rep on my flash drive
TODO: new config options for spoiler descs, and for hiding the "needed for collection" stuff
]] ]]
-- silly function but I don't want to mess with Game() colon functions in the conditions table -- General conditions
-- Tarot Cloth (AB+ and Rep) (fallback to English because most are just find+replace)
EID:AddCollectibleConditional("5.300", 451, nil, {locTable = "tarotClothBuffsAB", replaceColor = "ColorShinyPurple", noFallback = false})
if EID.isRepentance then EID:AddCollectibleConditional("5.300", 451, nil, {locTable = "tarotClothBuffs", replaceColor = "ColorShinyPurple", noFallback = false}) end
EID:AddCollectibleConditional("5.100", 356, nil, {locTable = "carBattery", replaceColor = "BlinkYellowGreen"}) -- Car Battery
-- IV Bag conditions (need to be applied in a specific order)
EID:AddCollectibleConditional(135, 75, "PHD") -- PHD improves IV Bag
EID:AddPlayerConditional(135, 14, "Keeper 0-1") -- Keeper gets 0-1 coins
if EID.isRepentance then EID:AddConditional(135, function() return EID:IsHardMode() end, "Hard Mode") end -- Hard Mode pays out less
-- Greed Mode
EID:AddConditional({241, "5.300.15"}, function() return game:IsGreedMode() end) -- Contract From Below, Temperance
EID:AddConditional("5.300.15", function() return game:IsGreedMode() and EID:PlayersHaveCollectible(451) end, "Tarot") -- Temperance + Greed + Tarot
-- Different effect for No Red Health players
-- TODO: separate this into a Rep-only part, and figure out what they do exactly with Keeper/Forgotten
EID:AddConditional({442, 676}, function() return EID:CheckForNoRedHealthPlayer() end, "No Red") -- Dark Prince's Crown, Empty Heart
EID:AddConditional(81, function() return EID:CheckForNoRedHealthPlayer() end) -- Dead Cat
--TODO: Keeper/Forgotten DON'T benefit from Empty Heart but DO benefit from Dark Prince's Crown? Nothing's consistent... does the Soul benefit while Forgotten does
-- Achievement checks (these always return true without REPENTOGON)
EID:AddConditional("5.350.23", function() return EID:HaveNotUnlockedAchievement(82) end) -- Sacrifice Poster unlocks The Lost
-- Specific character synergies/changes
EID:AddPlayerConditional(549, {10,14})-- Keeper/Lost + Brittle Bones
EID:AddPlayerConditional(108, 14, "No Effect") -- Keeper + The Wafer
EID:AddPlayerConditional(227, 14, "Keeper 0-1") -- Keeper + Piggy Bank
EID:AddPlayerConditional(501, 14) -- Keeper + Greed's Gullet
EID:AddPlayerConditional(230, 14, "Keeper") -- Keeper + Abaddon
-- Item Synergies
EID:AddSynergyConditional(7, 34); EID:AddCollectibleConditional("5.300.16", 7) -- Martyr + Book of Belial/The Devil
EID:AddSynergyConditional(316, 260) -- Black Candle + Cursed Eye
EID:AddCollectibleConditional("5.300.48", 286, nil, {lineColor = "ColorSilver"}) -- Blank Card + ? Card
-- Overridden by Brimstone
-- Haven't done it yet but I'm sure preparing the system for it
-- Remember most of these will be AB+ only (not EID.isRepentance)
if EID.isRepentance then
-- General conditions
EID:AddCollectibleConditional("5.100", 706, nil, {locTable = "abyssSynergies", lineColor = "ColorRed"}, false) -- Abyss (no item reminder)
EID:AddCollectibleConditional("5.100", 59, nil, {locTable = "bookOfBelialBuffs"}) -- Belial Birthright
EID:AddCollectibleConditional("5.100", 664, nil, {locTable = "bingeEaterBuffs"}) -- Binge Eater
-- Co-op friendly items
-- todo (yum heart, extension cord)
-- Tainted characters reviving as themselves
EID:AddPlayerConditional({161, "5.350.28"}, 25, "Tainted Revive") -- Ankh, Broken Ankh
EID:AddPlayerConditional(311, 24, "Tainted Revive") -- Judas's Shadow
EID:AddPlayerConditional(332, {29, 38}, "Tainted Revive") -- Lazarus's Rags
EID:AddPlayerConditional("5.350.23", 31, "Tainted Revive") -- Sacrifice Poster
-- Specific character synergies/changes
EID:AddPlayerConditional("5.350.1", 14, "Keeper 0-1") -- Keeper + Swallowed Penny
EID:AddPlayerConditional(188, 2) -- Cain + Abel
EID:AddPlayerConditional(360, 13) -- Incubus + Lilith
EID:AddPlayerConditional({240, 644}, 21) -- Tainted Isaac + Experimental Treatment, Consolation Prize
EID:AddPlayerConditional({642, 694}, 10) -- Lost + Magic Skin, Heartbreak
EID:AddPlayerConditional("5.350.156", 14) -- Keeper + Mother's Kiss
EID:AddPlayerConditional(230, 18, "Bethany", nil, false) -- Bethany + Abaddon
EID:AddPlayerConditional(230, 36, "Tainted Bethany") -- Tainted Bethany + Abaddon
EID:AddPlayerConditional(245, 14, "Keeper") -- 20/20 + Keeper
EID:AddPlayerConditional(705, {12, 24}) -- Dark Arts + Dark/Tainted Judas
-- Item Synergies
EID:AddCollectibleConditional(201, 147) -- Iron Bar refills Notched Axe
EID:AddCollectibleConditional("5.350.172", 260) -- Black Candle + Cursed Penny
EID:AddCollectibleConditional(501, 416) -- Greed's Gullet + Deep Pockets
EID:AddSynergyConditional(245, {2, 153, 169}, nil, "20/20") -- 20/20 + Mutant Spider, The Inner Eye, Polyphemus
EID:AddSynergyConditional(330, 561, "Overridden", "Overrides") -- Soy+Almond Milk
end
----- Evaluation Functions -----
function EID:ConditionalCharCheck(playerType, includeTainted)
-- We don't want to display irrelevant item info inside the Item Reminder
if EID.InsideItemReminder then
local player = EID:ItemReminderGetAllPlayers()[EID.ItemReminderSelectedPlayer + 1] or EID.player
if player:GetPlayerType() == playerType then return true
elseif includeTainted and EID.isRepentance and Isaac.GetPlayerTypeByName(player:GetName()) == playerType then return true
else return false end
else
return EID:PlayersHaveCharacter(playerType, includeTainted)
end
end
function EID:ConditionalCollCheck(collectibleID, checkInReminder)
-- We don't want to display irrelevant item info inside the Item Reminder
if EID.InsideItemReminder then
if not checkInReminder then return false end
local player = EID:ItemReminderGetAllPlayers()[EID.ItemReminderSelectedPlayer + 1] or EID.player
if player:HasCollectible(collectibleID) then return true end
-- Check for the item being inside the Item Reminder player's Void (not sure if this is ever relevant...)
if player:HasCollectible(477) then
local playerID = EID:getPlayerID(player)
if EID.absorbedItems[tostring(playerID)] and EID.absorbedItems[tostring(playerID)][tostring(collectibleID)] then
return true
end
end
else
return EID.collectiblesOwned[collectibleID] or EID.collectiblesAbsorbed[collectibleID]
end
return false
end
function EID:IsGreedMode() function EID:IsGreedMode()
return game:IsGreedMode() return game:IsGreedMode()
end end
@@ -32,12 +225,17 @@ end
-- Check if we have any characters that can't have Red Health, to print additions to descs like Dead Cat -- Check if we have any characters that can't have Red Health, to print additions to descs like Dead Cat
function EID:CheckForNoRedHealthPlayer() function EID:CheckForNoRedHealthPlayer()
if EID.InsideItemReminder then
local player = EID:ItemReminderGetAllPlayers()[EID.ItemReminderSelectedPlayer + 1] or EID.player
return EID.NoRedHeartsPlayerIDs[player:GetPlayerType()]
else
for i = 0, game:GetNumPlayers() - 1 do for i = 0, game:GetNumPlayers() - 1 do
local player = Isaac.GetPlayer(i) local player = Isaac.GetPlayer(i)
if EID.NoRedHeartsPlayerIDs[player:GetPlayerType()] then if EID.NoRedHeartsPlayerIDs[player:GetPlayerType()] then
return true return true
end end
end end
end
return false return false
end end
@@ -66,53 +264,8 @@ function EID:HaveNotUnlockedAchievement(achID)
return not EID:HaveUnlockedAchievement(achID) return not EID:HaveUnlockedAchievement(achID)
end end
--EID:PlayersHaveCharacter is already in the api to use for things like Swallowed Penny
----- Apply Conditionals -----
--[[ (The conditions table has to be down here so that the functions exist)
func: The function that will be called to check if the condition is true
vars: A table of values that will be passed into func
type: A string denoting what kind of description change this is
"append": Add new lines to the end of the description (default)
"replaceAll": The entire description is replaced with a new one
"findReplace": Find a phrase and replace it with a new one (the text in the localization file will be a table)
repOnly: Don't check this on Afterbirth+ (not always necessary, because AB+ won't have the text anyway)
abpOnly: Don't check this on Repentance
modifierText: Text to add to find a specific string in the localization file (for items with multiple modifiers)
Due to co-op, it's best for replacing text in descriptions to only be used for things like Greed/Hard Mode
Otherwise, appending is better so that players not affected by the change can still see what it will be for them
]]
EID.DescriptionConditions = {
-- No Red HP
["5.100.81"] = {func = EID.CheckForNoRedHealthPlayer}, -- Dead Cat
["5.100.442"] = {func = EID.CheckForNoRedHealthPlayer}, -- Dark Prince's Crown
["5.100.676"] = {func = EID.CheckForNoRedHealthPlayer}, -- Empty Heart
-- Keeper
["5.100.135"] = { -- IV Bag is complicated
{func = EID.PlayersHaveCollectible, vars = {75}, modifierText = "PHD"},
{func = EID.PlayersHaveCharacter, vars = {14, true}, modifierText = "Keeper"},
{func = EID.IsHardMode, type = "findReplace", modifierText = "Hard Mode"}, },
["5.350.1"] = {func = EID.PlayersHaveCharacter, vars = {14, true}}, -- Swallowed Penny
-- Revives
["5.100.161"] = {func = EID.PlayersHaveCharacter, vars = {25}}, -- Ankh
["5.350.28"] = {func = EID.PlayersHaveCharacter, vars = {25}}, -- Broken Ankh
["5.100.311"] = {func = EID.PlayersHaveCharacter, vars = {24}}, -- Judas's Shadow
["5.100.332"] = {func = EID.PlayersHaveCharacter, vars = {29}}, -- Lazarus's Rags
["5.350.23"] = { -- Missing Poster (revive, plus Unlock The Lost text if he's not unlocked)
{func = EID.PlayersHaveCharacter, vars = {31}, modifierText = "Tainted Lost"},
{func = EID.HaveNotUnlockedAchievement, vars = {82} } },
-- Greed Mode
["5.100.241"] = {func = EID.IsGreedMode}, -- Contract From Below
["5.300.15"] = {func = EID.IsGreedMode, type = "replaceAll"}, -- Temperance: spawns beggar in greed mode
["5.300.15 (Tarot)"] = {func = EID.IsGreedMode, type = "replaceAll"}, -- Temperance + Tarot Cloth + Greed Mode
}
-- thing to fix find/replace pairs with hyphens (like "1-2") breaking because hyphen is a special char -- thing to fix find/replace pairs with hyphens (like "1-2") breaking because hyphen is a special char
-- https://stackoverflow.com/questions/29072601/lua-string-gsub-with-a-hyphen -- https://stackoverflow.com/questions/29072601/lua-string-gsub-with-a-hyphen
@@ -121,36 +274,67 @@ local function replace(str, what, with, count)
with = string.gsub(with, "[%%]", "%%%%") -- escape replacement with = string.gsub(with, "[%%]", "%%%%") -- escape replacement
return string.gsub(str, what, with, count) return string.gsub(str, what, with, count)
end end
-- super simple table concatenation: https://www.tutorialspoint.com/concatenation-of-tables-in-lua-programming
local function TableConcat(t1,t2)
for i=1,#t2 do
t1[#t1+1] = t2[i]
end
return t1
end
function EID:applyConditionals(descObj, modifierText) function EID:applyConditionals(descObj)
local typeVarSub = descObj.ObjType.."."..descObj.ObjVariant.."."..descObj.ObjSubType EID:CheckPlayersCollectibles()
if modifierText then typeVarSub = typeVarSub .. " (" .. modifierText .. ")" end
local conds = EID.DescriptionConditions[typeVarSub] local typeVar = descObj.ObjType.."."..descObj.ObjVariant -- for general conditions (Tarot Cloth, Book of Virtues)
if not conds then return descObj end local typeVarSub = descObj.fullItemString -- for specific conditions
-- Combine general+specific conditions into one table
-- Check every condition we need to check for this item (usually 1) local conds = {}
if #conds == 0 then conds = { conds } end if EID.DescriptionConditions[typeVar] then TableConcat(conds, EID.DescriptionConditions[typeVar]) end
if EID.DescriptionConditions[typeVarSub] then TableConcat(conds, EID.DescriptionConditions[typeVarSub]) end
-- Check every condition we need to check for this item
for _, cond in ipairs(conds) do for _, cond in ipairs(conds) do
local tvs = typeVarSub -- Search for the localization string; "S" (for generals) or "T.V.S" or "T.V.S (Modifier)" or "Modifier"
if cond.modifierText then tvs = tvs .. " (" .. cond.modifierText .. ")" end local locTable = cond.locTable or "ConditionalDescs"
-- Don't fall back to English if the current language doesn't have the entry local text = nil
local text = EID:getDescriptionEntry("ConditionalDescs", tvs, true)
if (text ~= nil) and (not repOnly or REPENTANCE) and (not abpOnly or not REPENTANCE) then if cond.noTable then
-- is there a way to pass all a table's values into a function aside from this? it's fine for now... text = EID:getDescriptionEntry(cond.modifierText, nil, cond.noFallback)
cond.vars = cond.vars or {} elseif cond.general then
if cond.func(EID, cond.vars[1], cond.vars[2], cond.vars[3], cond.vars[4]) then text = EID:getDescriptionEntry(locTable, descObj.ObjSubType, cond.noFallback)
if (cond.type == "append" or cond.type == nil) then elseif cond.modifierText then
descObj.Description = descObj.Description .. "#" .. text text = EID:getDescriptionEntry(locTable, typeVarSub .. " (" .. cond.modifierText .. ")", cond.noFallback)
elseif (cond.type == "replaceAll") then if text == nil then text = EID:getDescriptionEntry(locTable, cond.modifierText, cond.noFallback) end
descObj.Description = text else
elseif (cond.type == "findReplace") then text = EID:getDescriptionEntry(locTable, typeVarSub, cond.noFallback)
end
-- If we find the localization string for this condition, and it passes the test, modify the description text
if text ~= nil and cond.func() then
local variableText = type(cond.variableText) == "function" and cond.variableText(descObj) or cond.variableText
local variableText2 = type(cond.variableText2) == "function" and cond.variableText2(descObj) or cond.variableText2
-- String = append
if type(text) == "string" then
text = EID:ReplaceVariableStr(text, 1, variableText)
text = EID:ReplaceVariableStr(text, 2, variableText2)
local iconStr = "#"
if cond.bulletpoint then iconStr = iconStr .. "{{" .. cond.bulletpoint .. "}} " end
if cond.lineColor then iconStr = iconStr .. "{{" .. cond.lineColor .. "}}" end
EID:appendToDescription(descObj, iconStr..text:gsub("#",iconStr))
-- Table with 1 entry = replace
elseif #text == 1 then
descObj.Description = EID:ReplaceVariableStr(EID:ReplaceVariableStr(text[1], 1, variableText), 2, variableText2)
-- Table with 2+ entries = find and replace pairs
-- Entry 1 is replaced with entry 2, entry 3 is replaced with entry 4, etc. -- Entry 1 is replaced with entry 2, entry 3 is replaced with entry 4, etc.
else
local pos = 1 local pos = 1
while pos < #text do while pos < #text do
local toFind = text[pos] local toFind = text[pos]
local replaceWith = text[pos+1] local replaceWith = EID:ReplaceVariableStr(text[pos+1], 1, variableText)
replaceWith = EID:ReplaceVariableStr(replaceWith, 2, variableText2)
if cond.replaceColor then replaceWith = "{{" .. cond.replaceColor .. "}}" .. replaceWith .. "{{CR}}" end
--"%d*%.?%d+" will grab every number group (1, 10, 0.5), this will allow us to not replace the "1" in "10" erroneously --"%d*%.?%d+" will grab every number group (1, 10, 0.5), this will allow us to not replace the "1" in "10" erroneously
if (type(toFind) == "number") then if (type(toFind) == "number") then
local count = 0 local count = 0
@@ -169,7 +353,6 @@ function EID:applyConditionals(descObj, modifierText)
end end
end end
end end
end
return descObj return descObj
+12 -6
View File
@@ -918,6 +918,14 @@ EID.LocalModePositionOffset = {
-- Items that dont have an effect with BFFS! item -- Items that dont have an effect with BFFS! item
EID.BFFSNoSynergy = {[11] = true, [81] = true, [238] = true, [239] = true, [243] = true, [265] = true, [268] = true, [269] = true, [278] = true, [280] = true, [281] = true, [387] = true, [404] = true, [405] = true, [431] = true, [436] = true, [469] = true, [472] = true, [492] = true, [516] = true, [528] = true, [542] = true, [543] = true } EID.BFFSNoSynergy = {[11] = true, [81] = true, [238] = true, [239] = true, [243] = true, [265] = true, [268] = true, [269] = true, [278] = true, [280] = true, [281] = true, [387] = true, [404] = true, [405] = true, [431] = true, [436] = true, [469] = true, [472] = true, [492] = true, [516] = true, [528] = true, [542] = true, [543] = true }
-- todo: this table is wrong, for instance brown nugget didnt have one and then got one
if REPENTANCE then
EID.BFFSNoSynergy[504] = true -- Brown Nugget
EID.BFFSNoSynergy[567] = true -- Paschal Candle
EID.BFFSNoSynergy[651] = true -- Star of Bethlehem
EID.BFFSNoSynergy[697] = true -- Vanishing Twin
end
-- Character IDs that aren't allowed to have Red Health: ???, The Lost, The Soul -- Character IDs that aren't allowed to have Red Health: ???, The Lost, The Soul
EID.NoRedHeartsPlayerIDs = { [4] = true, [10] = true, [17] = true } EID.NoRedHeartsPlayerIDs = { [4] = true, [10] = true, [17] = true }
if REPENTANCE then if REPENTANCE then
@@ -925,12 +933,10 @@ if REPENTANCE then
EID.NoRedHeartsPlayerIDs = { [4] = true, [10] = true, [12] = true, [17] = true, [24] = true, [25] = true, [31] = true, [35] = true, [36] = true, [40] = true } EID.NoRedHeartsPlayerIDs = { [4] = true, [10] = true, [12] = true, [17] = true, [24] = true, [25] = true, [31] = true, [35] = true, [36] = true, [40] = true }
end end
if REPENTANCE then -- Cards that don't work with Blank Card in Repentance (Note: ? Card is blacklisted here, don't use this for determining what is a card)
EID.BFFSNoSynergy[504] = true -- Brown Nugget EID.blankCardHidden = {[32]=true,[33]=true,[34]=true,[35]=true,[36]=true,[37]=true,[38]=true,[39]=true,[40]=true,[41]=true,[48]=true,[49]=true,[50]=true,[55]=true,[78]=true,[81]=true,[82]=true,[83]=true,[84]=true,[85]=true,[86]=true,[87]=true,[88]=true,[89]=true,[90]=true,[91]=true,[92]=true,[93]=true,[94]=true,[95]=true,[96]=true,[97]=true,}
EID.BFFSNoSynergy[567] = true -- Paschal Candle -- Cards that are treated as runes
EID.BFFSNoSynergy[651] = true -- Star of Bethlehem EID.runeIDs = {[32]=true,[33]=true,[34]=true,[35]=true,[36]=true,[37]=true,[38]=true,[39]=true,[40]=true,[41]=true,[55]=true,[81]=true,[82]=true,[83]=true,[84]=true,[85]=true,[86]=true,[87]=true,[88]=true,[89]=true,[90]=true,[91]=true,[92]=true,[93]=true,[94]=true,[95]=true,[96]=true,[97]=true,}
EID.BFFSNoSynergy[697] = true -- Vanishing Twin
end
+3 -3
View File
@@ -28,11 +28,11 @@ for _,lang in ipairs(languageFilesToCheck) do
if not table2[k] then if not table2[k] then
print(" Table '" .. prevKey .. "' does not contain key: " .. k) print(" Table '" .. prevKey .. "' does not contain key: " .. k)
progress[2] = progress[2] + 1 progress[2] = progress[2] + 1
elseif type(table2[k]) == "table" then elseif type(table2[k]) ~= type(table1[k]) then
if type(table1[k]) ~= "table" then
print("Type mismatch in table '" .. prevKey .. "', key: " .. k) print("Type mismatch in table '" .. prevKey .. "', key: " .. k)
progress[2] = progress[2] + 1 progress[2] = progress[2] + 1
else EID:compareTables(table1[k], table2[k], k, progress) end elseif type(table2[k]) == "table" then
EID:compareTables(table1[k], table2[k], k, progress) end
else else
-- check for broken markup stuff -- check for broken markup stuff
local filteredText = EID:replaceShortMarkupStrings(table2[k]) local filteredText = EID:replaceShortMarkupStrings(table2[k])
+6 -4
View File
@@ -170,9 +170,9 @@ function EID:Teleport1Prediction(rng)
end end
-- Teleport 2 Destination Prediction -- -- Teleport 2 Destination Prediction --
local teleport2Order = { 1,5,8,2,4,13,21,12,10,6,11,18,19,9,20,24,7,1025,666,3 } local teleport2Order = { 1,1024,5,8,2,4,13,21,12,10,6,11,18,19,9,20,24,7,1025,666,3 }
local teleport2GreedOrder = { 1,5,2,4,10,23,8,666,3 } local teleport2GreedOrder = { 1,5,2,4,10,23,8,666,3 }
local teleport2Icons = { [1025] = "{{RedRoom}}", [666] = "{{AngelDevilChance}}" } local teleport2Icons = { [1024] = "{{RedRoom}}", [1025] = "{{RedRoom}}", [666] = "{{AngelDevilChance}}" }
function EID:Teleport2Prediction() function EID:Teleport2Prediction()
local level = game:GetLevel() local level = game:GetLevel()
@@ -186,8 +186,10 @@ function EID:Teleport2Prediction()
local gridIndex = room.SafeGridIndex local gridIndex = room.SafeGridIndex
local roomDesc = level:GetRoomByIdx(gridIndex, curDimension) local roomDesc = level:GetRoomByIdx(gridIndex, curDimension)
if roomDesc.ListIndex == i and not room.Clear then if roomDesc.ListIndex == i and not room.Clear then
-- Check for Special Red Rooms, which get ordered differently than their non-red version -- Check for Red Rooms and Special Red Rooms, which get ordered differently than their non-red version
if EID.isRepentance and room.Data.Type ~= 1 and room.Flags & 1024 == 1024 then unclearedTypes[1025] = true if EID.isRepentance and room.Flags & 1024 == 1024 then
if room.Data.Type ~= 1 then unclearedTypes[1025] = true
else unclearedTypes[1024] = true end
else unclearedTypes[room.Data.Type] = true end else unclearedTypes[room.Data.Type] = true end
end end
end end
+28 -154
View File
@@ -7,38 +7,37 @@ EID.inModifierPreview = false
EID.TabDescThisFrame = false EID.TabDescThisFrame = false
-- List of collectible IDs for us to check if a player owns them; feel free to add to this in mods that add description modifiers! -- List of collectible IDs for us to check if a player owns them; feel free to add to this in mods that add description modifiers!
EID.collectiblesToCheck = { CollectibleType.COLLECTIBLE_VOID, CollectibleType.COLLECTIBLE_CAR_BATTERY, CollectibleType.COLLECTIBLE_BFFS } EID.collectiblesToCheck[CollectibleType.COLLECTIBLE_VOID] = true
EID.collectiblesToCheck[CollectibleType.COLLECTIBLE_BFFS] = true
local maxSlot = 1 local maxSlot = 1
-- Repentance modifiers -- Repentance modifiers
if EID.isRepentance then if EID.isRepentance then
maxSlot = 3 maxSlot = 3
--include the AB+ collectiblesToCheck in this table! (wish there was an easy way to merge two tables) EID.collectiblesToCheck[CollectibleType.COLLECTIBLE_BOOK_OF_VIRTUES] = true
EID.collectiblesToCheck = { CollectibleType.COLLECTIBLE_VOID, EID.collectiblesToCheck[CollectibleType.COLLECTIBLE_SPINDOWN_DICE] = true
CollectibleType.COLLECTIBLE_BINGE_EATER, CollectibleType.COLLECTIBLE_BOOK_OF_VIRTUES, CollectibleType.COLLECTIBLE_SPINDOWN_DICE, EID.collectiblesToCheck[CollectibleType.COLLECTIBLE_MOMS_BOX] = true
CollectibleType.COLLECTIBLE_TAROT_CLOTH, CollectibleType.COLLECTIBLE_MOMS_BOX, 59, --Birthright Belial EID.collectiblesToCheck[CollectibleType.COLLECTIBLE_BLANK_CARD] = true
CollectibleType.COLLECTIBLE_BLANK_CARD, CollectibleType.COLLECTIBLE_CLEAR_RUNE, CollectibleType.COLLECTIBLE_PLACEBO, EID.collectiblesToCheck[CollectibleType.COLLECTIBLE_CLEAR_RUNE] = true
CollectibleType.COLLECTIBLE_FALSE_PHD, CollectibleType.COLLECTIBLE_ABYSS, CollectibleType.COLLECTIBLE_FLIP, CollectibleType.COLLECTIBLE_CAR_BATTERY, EID.collectiblesToCheck[CollectibleType.COLLECTIBLE_PLACEBO] = true
CollectibleType.COLLECTIBLE_GLOWING_HOUR_GLASS, CollectibleType.COLLECTIBLE_BFFS EID.collectiblesToCheck[CollectibleType.COLLECTIBLE_FALSE_PHD] = true
} EID.collectiblesToCheck[CollectibleType.COLLECTIBLE_FLIP] = true
EID.collectiblesToCheck[CollectibleType.COLLECTIBLE_GLOWING_HOUR_GLASS] = true
end end
EID.collectiblesOwned = {} EID.collectiblesOwned = {}
EID.collectiblesAbsorbed = {} EID.collectiblesAbsorbed = {}
EID.blackRuneOwned = false EID.blackRuneOwned = false
EID.blankCardHidden = {[32]=true,[33]=true,[34]=true,[35]=true,[36]=true,[37]=true,[38]=true,[39]=true,[40]=true,[41]=true,[49]=true,[50]=true,[55]=true,[78]=true,[81]=true,[82]=true,[83]=true,[84]=true,[85]=true,[86]=true,[87]=true,[88]=true,[89]=true,[90]=true,[91]=true,[92]=true,[93]=true,[94]=true,[95]=true,[96]=true,[97]=true,}
EID.runeIDs = {[32]=true,[33]=true,[34]=true,[35]=true,[36]=true,[37]=true,[38]=true,[39]=true,[40]=true,[41]=true,[55]=true,[81]=true,[82]=true,[83]=true,[84]=true,[85]=true,[86]=true,[87]=true,[88]=true,[89]=true,[90]=true,[91]=true,[92]=true,[93]=true,[94]=true,[95]=true,[96]=true,[97]=true,}
EID.blackFeatherItems = {[215]=true,[216]=true,[230]=true,[260]=true,[262]=true,[339]=true,[344]=true,[654]=true,} EID.blackFeatherItems = {[215]=true,[216]=true,[230]=true,[260]=true,[262]=true,[339]=true,[344]=true,[654]=true,}
EID.blackFeatherTrinkets = {[17]=true,[22]=true} EID.blackFeatherTrinkets = {[17]=true,[22]=true}
local lastCheck = 0 EID.LastCollectibleCheck = 0
function EID:CheckPlayersCollectibles() function EID:CheckPlayersCollectibles()
-- recheck the players' owned collectibles periodically, not every frame -- recheck the players' owned collectibles periodically, not every frame
-- (has to be checked regularly due to mechanics like D4 / Tainted Eden) -- (has to be checked regularly due to mechanics like D4 / Tainted Eden)
if EID.GameUpdateCount >= lastCheck + 15 then if EID.GameUpdateCount >= EID.LastCollectibleCheck + 15 then
lastCheck = EID.GameUpdateCount EID.LastCollectibleCheck = EID.GameUpdateCount
local numPlayers = game:GetNumPlayers() local numPlayers = game:GetNumPlayers()
local players = {}; for i = 0, numPlayers - 1 do players[i] = Isaac.GetPlayer(i) end local players = {}; for i = 0, numPlayers - 1 do players[i] = Isaac.GetPlayer(i) end
for _,v in ipairs(EID.collectiblesToCheck) do for v,_ in pairs(EID.collectiblesToCheck) do
EID.collectiblesOwned[v] = false EID.collectiblesOwned[v] = false
EID.collectiblesAbsorbed[v] = false EID.collectiblesAbsorbed[v] = false
for i = 0, numPlayers - 1 do for i = 0, numPlayers - 1 do
@@ -230,45 +229,6 @@ local function SacrificeRoomCallback(descObj)
return descObj return descObj
end end
-- Handle Car Battery description addition
local function CarBatteryCallback(descObj)
local carBatteryBuff = EID:getDescriptionEntry("carBattery", descObj.ObjSubType)
if carBatteryBuff ~= nil then
-- String = append
if type(carBatteryBuff) == "string" then
local iconStr = "#{{Collectible356}} "
EID:appendToDescription(descObj, iconStr..carBatteryBuff:gsub("#",iconStr))
-- Table with 1 entry = replace
elseif #carBatteryBuff == 1 then
descObj.Description = carBatteryBuff[1]
-- Table with 2+ entries = find and replace
-- Entry 1 is replaced with entry 2, entry 3 is replaced with entry 4, etc.
else
local pos = 1
while pos < #carBatteryBuff do
local toFind = carBatteryBuff[pos]
local replaceWith = carBatteryBuff[pos+1]
--"%d*%.?%d+" will grab every number group (1, 10, 0.5), this will allow us to not replace the "1" in "10" erroneously
if (type(toFind) == "number") then
local count = 0
descObj.Description = string.gsub(descObj.Description, "%d*%.?%d+", function(s)
if (s == tostring(toFind) and count == 0) then
count = count + 1
return "{{BlinkYellowGreen}}" .. replaceWith .. "{{CR}}"
end
end)
-- Basic find+replace for non-numbers
else
descObj.Description = string.gsub(descObj.Description, tostring(toFind), "{{BlinkYellowGreen}}" .. replaceWith .. "{{CR}}", 1)
end
pos = pos + 2
end
end
end
return descObj
end
local function BlackFeatherCallback(descObj) local function BlackFeatherCallback(descObj)
local itemCounter = 0 local itemCounter = 0
for itemID, _ in pairs(EID.blackFeatherItems) do for itemID, _ in pairs(EID.blackFeatherItems) do
@@ -339,27 +299,6 @@ if EID.isRepentance then
return descObj return descObj
end end
-- Handle Bingeeater description addition
local function BingeEaterCallback(descObj)
local bingeBuff = EID:getDescriptionEntry("bingeEaterBuffs", descObj.ObjSubType)
if bingeBuff ~= nil then
local iconStr = "#{{Collectible664}} "
EID:appendToDescription(descObj, iconStr..bingeBuff:gsub("#",iconStr))
end
return descObj
end
-- Handle Book of Belial description for Judas' Birthright addition
local function BookOfBelialCallback(descObj)
local belialBuff = EID:getDescriptionEntry("bookOfBelialBuffs", descObj.ObjSubType)
if belialBuff ~= nil then
local iconStr = "#{{Collectible34}} "
EID:appendToDescription(descObj, iconStr..belialBuff:gsub("#",iconStr))
end
return descObj
end
-- Handle Book of Virtues description addition -- Handle Book of Virtues description addition
local function BookOfVirtuesCallback(descObj) local function BookOfVirtuesCallback(descObj)
-- Display players' current active item's wisp effect when looking at a Book of Virtues pedestal -- Display players' current active item's wisp effect when looking at a Book of Virtues pedestal
@@ -515,45 +454,6 @@ if EID.isRepentance then
return descObj return descObj
end end
-- Handle Tarot Cloth description addition
local function TarotClothCallback(descObj)
local clothBuff = EID:getDescriptionEntry("tarotClothBuffs", descObj.ObjSubType)
if clothBuff ~= nil then
-- String = append
if type(clothBuff) == "string" then
local iconStr = "#{{Collectible451}} "
EID:appendToDescription(descObj, iconStr..clothBuff:gsub("#",iconStr))
-- Table with 1 entry = replace
elseif #clothBuff == 1 then
descObj.Description = clothBuff[1]
-- Table with 2+ entries = find and replace
-- Entry 1 is replaced with entry 2, entry 3 is replaced with entry 4, etc.
else
local pos = 1
while pos < #clothBuff do
local toFind = clothBuff[pos]
local replaceWith = clothBuff[pos+1]
--"%d*%.?%d+" will grab every number group (1, 10, 0.5), this will allow us to not replace the "1" in "10" erroneously
if (type(toFind) == "number") then
local count = 0
descObj.Description = string.gsub(descObj.Description, "%d*%.?%d+", function(s)
if (s == tostring(toFind) and count == 0) then
count = count + 1
return "{{ColorShinyPurple}}" .. replaceWith .. "{{CR}}"
end
end)
-- Basic find+replace for non-numbers
else
descObj.Description = string.gsub(descObj.Description, tostring(toFind), "{{ColorShinyPurple}}" .. replaceWith .. "{{CR}}", 1)
end
pos = pos + 2
end
end
end
return EID:applyConditionals(descObj,"Tarot")
end
local hasBox = false local hasBox = false
local isGolden = false local isGolden = false
@@ -640,48 +540,37 @@ if EID.isRepentance then
local hasTarot = false local hasTarot = false
local function VariableCharge(descObj, metadata, collID, chargeText)
local text = EID:getDescriptionEntry(chargeText or "VariableCharge")
if text ~= nil and metadata ~= nil and metadata.mimiccharge and metadata.mimiccharge ~= -1 then
text = EID:ReplaceVariableStr(text, 1, "{{NameOnlyC" .. collID .. "}}")
EID:appendToDescription(descObj, "#{{ColorSilver}}{{Collectible" .. collID .. "}} " .. text .. " {{"..metadata.mimiccharge.."}}{{Battery}}")
end
end
-- Handle Blank Card description addition -- Handle Blank Card description addition
local function BlankCardCallback(descObj) local function BlankCardCallback(descObj)
local text = EID:getDescriptionEntry("BlankCardCharge") VariableCharge(descObj, EID.cardMetadata[descObj.ObjSubType], 286, "BlankCardCharge")
local charge = EID.cardMetadata[descObj.ObjSubType]
local iconStr = "#{{Collectible286}} {{ColorSilver}}"
if text ~= nil and charge ~= nil and charge.mimiccharge and charge.mimiccharge ~= -1 then
if descObj.ObjSubType == 48 then -- ? card
text = EID:getDescriptionEntry("BlankCardQCard")
EID:appendToDescription(descObj, iconStr..text:gsub("#",iconStr))
else
EID:appendToDescription(descObj, iconStr..text.." {{"..charge.mimiccharge.."}}{{Battery}}")
end
end
-- If the player has Tarot Cloth and Blank Card, display additional text -- If the player has Tarot Cloth and Blank Card, display additional text
if hasTarot then if hasTarot then
text = EID:getDescriptionEntry("BlankCardEffect") text = EID:getDescriptionEntry("BlankCardEffect")
local buffText = EID:getDescriptionEntry("tarotClothBlankCardBuffs", descObj.ObjSubType) local buffText = EID:getDescriptionEntry("tarotClothBlankCardBuffs", descObj.ObjSubType)
if buffText then EID:appendToDescription(descObj, iconStr .. text .. " " .. buffText) end if buffText then EID:appendToDescription(descObj, "#{{ColorSilver}}{{Collectible286}} " .. text .. " " .. buffText) end
end end
return descObj return descObj
end end
-- Handle Clear Rune description addition -- Handle Clear Rune description addition
local function ClearRuneCallback(descObj) local function ClearRuneCallback(descObj)
local text = EID:getDescriptionEntry("ClearRuneCharge") VariableCharge(descObj, EID.cardMetadata[descObj.ObjSubType], 263, "ClearRuneCharge")
local charge = EID.cardMetadata[descObj.ObjSubType]
if text ~= nil and charge ~= nil and charge.mimiccharge and charge.mimiccharge ~= -1 then
local iconStr = "#{{Collectible263}} {{ColorSilver}}"
EID:appendToDescription(descObj, iconStr..text.." {{"..charge.mimiccharge.."}}{{Battery}}")
end
return descObj return descObj
end end
-- Handle Placebo description addition -- Handle Placebo description addition
local function PlaceboCallback(descObj) local function PlaceboCallback(descObj)
local text = EID:getDescriptionEntry("PlaceboCharge")
local adjustedID = EID:getAdjustedSubtype(descObj.ObjType, descObj.ObjVariant, descObj.ObjSubType) local adjustedID = EID:getAdjustedSubtype(descObj.ObjType, descObj.ObjVariant, descObj.ObjSubType)
local charge = EID.pillMetadata[adjustedID-1] VariableCharge(descObj, EID.pillMetadata[adjustedID-1], 348, "PlaceboCharge")
if text ~= nil and charge ~= nil and charge.mimiccharge and charge.mimiccharge ~= -1 then
local iconStr = "#{{Collectible348}} {{ColorSilver}}"
EID:appendToDescription(descObj, iconStr..text.." {{"..charge.mimiccharge.."}}{{Battery}}")
end
return descObj return descObj
end end
@@ -811,16 +700,6 @@ if EID.isRepentance then
return descObj return descObj
end end
-- Handle Abyss description addition
local function AbyssCallback(descObj)
local text = EID:getDescriptionEntry("abyssSynergies", descObj.ObjSubType)
if text ~= nil then
local iconStr = "#{{Collectible706}} {{ColorRed}}"
EID:appendToDescription(descObj, iconStr..text)
end
return descObj
end
-- Handle Flip description addition -- Handle Flip description addition
local function FlipCallback(descObj) local function FlipCallback(descObj)
local flipItemID = EID:getEntityData(descObj.Entity, "EID_FlipItemID") local flipItemID = EID:getEntityData(descObj.Entity, "EID_FlipItemID")
@@ -866,10 +745,7 @@ if EID.isRepentance then
if REPENTOGON and descObj.ObjSubType == 422 then table.insert(callbacks, GlowingHourglassCallback) end if REPENTOGON and descObj.ObjSubType == 422 then table.insert(callbacks, GlowingHourglassCallback) end
if descObj.ObjSubType == 644 then table.insert(callbacks, ConsolationPrizeCallback) end if descObj.ObjSubType == 644 then table.insert(callbacks, ConsolationPrizeCallback) end
if EID.collectiblesOwned[664] then table.insert(callbacks, BingeEaterCallback) end
if EID.collectiblesOwned[59] then table.insert(callbacks, BookOfBelialCallback) end
if EID.collectiblesOwned[584] or descObj.ObjSubType == 584 then table.insert(callbacks, BookOfVirtuesCallback) end if EID.collectiblesOwned[584] or descObj.ObjSubType == 584 then table.insert(callbacks, BookOfVirtuesCallback) end
if EID.collectiblesOwned[706] or EID.collectiblesAbsorbed[706] then table.insert(callbacks, AbyssCallback) end
if EID.collectiblesOwned[711] and EID:getEntityData(descObj.Entity, "EID_FlipItemID") then table.insert(callbacks, FlipCallback) end if EID.collectiblesOwned[711] and EID:getEntityData(descObj.Entity, "EID_FlipItemID") then table.insert(callbacks, FlipCallback) end
if EID.Config["SpindownDiceResults"] > 0 and (EID.collectiblesOwned[723] or EID.collectiblesAbsorbed[723]) and descObj.ObjSubType ~= 668 then table.insert(callbacks, SpindownDiceCallback) end if EID.Config["SpindownDiceResults"] > 0 and (EID.collectiblesOwned[723] or EID.collectiblesAbsorbed[723]) and descObj.ObjSubType ~= 668 then table.insert(callbacks, SpindownDiceCallback) end
@@ -877,7 +753,6 @@ if EID.isRepentance then
-- Card / Rune Callbacks -- Card / Rune Callbacks
elseif descObj.ObjVariant == PickupVariant.PICKUP_TAROTCARD then elseif descObj.ObjVariant == PickupVariant.PICKUP_TAROTCARD then
hasTarot = EID.collectiblesOwned[451] hasTarot = EID.collectiblesOwned[451]
if hasTarot then table.insert(callbacks, TarotClothCallback) end
if EID.collectiblesOwned[286] and not EID.blankCardHidden[descObj.ObjSubType] and EID.cardMetadata[descObj.ObjSubType] then table.insert(callbacks, BlankCardCallback) end if EID.collectiblesOwned[286] and not EID.blankCardHidden[descObj.ObjSubType] and EID.cardMetadata[descObj.ObjSubType] then table.insert(callbacks, BlankCardCallback) end
if EID.collectiblesOwned[263] and EID.runeIDs[descObj.ObjSubType] and EID.cardMetadata[descObj.ObjSubType] then table.insert(callbacks, ClearRuneCallback) end if EID.collectiblesOwned[263] and EID.runeIDs[descObj.ObjSubType] and EID.cardMetadata[descObj.ObjSubType] then table.insert(callbacks, ClearRuneCallback) end
@@ -926,7 +801,6 @@ local function EIDConditionsAB(descObj)
if EID.collectiblesOwned[477] then table.insert(callbacks, VoidCallback) end if EID.collectiblesOwned[477] then table.insert(callbacks, VoidCallback) end
if EID.blackRuneOwned then table.insert(callbacks, BlackRuneCallback) end if EID.blackRuneOwned then table.insert(callbacks, BlackRuneCallback) end
end end
if EID.collectiblesOwned[356] then table.insert(callbacks, CarBatteryCallback) end
-- BFF Synergy check -- BFF Synergy check
if EID.collectiblesOwned[247] then if EID.collectiblesOwned[247] then
+1 -1
View File
@@ -1682,7 +1682,7 @@ local json = require("json")
local configIgnoreList = { local configIgnoreList = {
["BagContent"] = true, ["BagContent"] = true,
["BagFloorContent"] = true, ["BagFloorContent"] = true,
["LearnedRecipes"] = true, ["BagLearnedRecipes"] = true,
["CraneItemType"] = true, ["CraneItemType"] = true,
["FlipItemPositions"] = true, ["FlipItemPositions"] = true,
["AbsorbedItems"] = true, ["AbsorbedItems"] = true,