funcs to handle generic item markup + reorganize loc tables + misc (#681)

* RIP tear delay multiplier, and reorganizing

* moving things around and adding things

* Move black feather items table

* Improve Black Feather, change Black Rune's detection

* Fix bugs with cheat/rep only modifiers

* New generic PlayersHaveItem function stuff

* Change Collectible checks to generic Item checks

* Update eid_conditionals.lua

* Tear multiplier -> Tears multiplier

* Tear -> Tears multiplier

* BFFs overhaul

* BFFs overhaul

* NoEffect changed

* NoEffect changed

* Add SelfConditional, BFFs check, find+replace can also append

* Remove BFFs modifier

* BFFs + started work on self-noeffects

* Added blinkpink, working on BFFs/hivemind

* repentance flies

* some rep familiars checked
This commit is contained in:
Buurazu authored and GitHub committed 2024-06-20 15:10:57 +02:00
1 parent 7e2959a891
commit a023ec2fff
10 files changed
+639 -374

No files matched your search

+161 -82
View File
@@ -151,7 +151,7 @@ EID.descriptions[languageCode].collectibles={
{"128", "Forever Alone", "Long range fly orbital#Deals 30 contact damage per second"}, -- Forever Alone
{"129", "Bucket of Lard", "↑ {{EmptyHeart}} +2 Empty heart containers#↓ {{Speed}} -0.2 Speed#{{HalfHeart}} Heals half a heart"}, -- Bucket of Lard
{"130", "A Pony", "While held:#{{Speed}} Sets your Speed to at least 1.5#Flight#Upon use, dashes in the direction of Isaac's movement"}, -- A Pony
{"131", "Bomb Bag", "{{Bomb}} Spawns 1 bomb pickup every 2-3 rooms"}, -- Bomb Bag
{"131", "Bomb Bag", "{{Bomb}} Spawns 1 bomb pickup every 3 rooms"}, -- Bomb Bag
{"132", "A Lump of Coal", "{{Damage}} Tears deal more damage the further they travel"}, -- A Lump of Coal
{"133", "Guppy's Paw", "{{SoulHeart}} Converts 1 heart container into 3 Soul Hearts"}, -- Guppy's Paw
{"134", "Guppy's Tail", "{{Chest}} 33% chance to replace the room clear reward with a chest#33% chance to spawn no room clear reward"}, -- Guppy's Tail
@@ -164,7 +164,7 @@ EID.descriptions[languageCode].collectibles={
{"141", "Pageant Boy", "{{Coin}} Spawns 7 random coins"}, -- Pageant Boy
{"142", "Scapular", "{{SoulHeart}} Isaac gains 1 Soul Heart when damaged down to half a heart#Can only happen once per room#Exiting and re-entering the room allows the effect to trigger again"}, -- Scapular
{"143", "Speed Ball", "↑ {{Speed}} +0.3 Speed#↑ {{Shotspeed}} +0.2 Shot speed"}, -- Speed Ball
{"144", "Bum Friend", "{{Coin}} Picks up nearby coins#Spawns random pickups in return"}, -- Bum Friend
{"144", "Bum Friend", "{{Coin}} Picks up nearby coins#Spawns random pickups every 3-4 coins"}, -- Bum Friend
{"145", "Guppy's Head", "Spawns 2-4 blue flies"}, -- Guppy's Head
{"146", "Prayer Card", "{{EternalHeart}} +1 Eternal Heart"}, -- Prayer Card
{"147", "Notched Axe", "{{Timer}} For the room, Isaac can break rocks and Secret Room walls by walking into them"}, -- Notched Axe
@@ -175,7 +175,7 @@ EID.descriptions[languageCode].collectibles={
{"152", "Technology 2", "↓ {{Tears}} x0.5 Tears multiplier#↓ {{Damage}} x0.65 Damage multiplier#Replaces Isaac's right eye tears with a continuous laser#{{Damage}} The laser deals 3x Isaac's damage per second"}, -- Technology 2
{"153", "Mutant Spider", "↓ {{Tears}} x0.48 Tears multiplier#↓ {{Tears}} +3 Tear delay#Isaac shoots 4 tears at once"}, -- Mutant Spider
{"154", "Chemical Peel", "↑ {{Damage}} +2 Damage for the left eye"}, -- Chemical Peel
{"155", "The Peeper", "Floats around the room#Deals 17.1 contact damage per second"}, -- The Peeper
{"155", "The Peeper", "Floats around the room#Deals 17 contact damage per second"}, -- The Peeper
{"156", "Habit", "{{Battery}} Taking damage adds 1 charge to the active item"}, -- Habit
{"157", "Bloody Lust", "↑ {{Damage}} Taking damage grants a damage up#Applies up to 6 times per floor#Lasts for the whole floor"}, -- Bloody Lust
{"158", "Crystal Ball", "Spawns a {{SoulHeart}} Soul Heart, {{Rune}} rune or {{Card}} card#{{Timer}} Full mapping effect for the floor (except {{SuperSecretRoom}} Super Secret Room)"}, -- Crystal Ball
@@ -291,7 +291,7 @@ EID.descriptions[languageCode].collectibles={
{"268", "Rotten Baby", "Spawns blue flies when Isaac shoots"}, -- Rotten Baby
{"269", "Headless Baby", "Leaves creep which deals 6 damage per second"}, -- Headless Baby
{"270", "Leech", "Chases enemies#{{HalfHeart}} Heals Isaac for half a heart when it kills an enemy#Deals 3.2 damage per second"}, -- Leech
{"271", "Mystery Sack", "Spawns a random pickup every few rooms"}, -- Mystery Sack
{"271", "Mystery Sack", "Spawns a random pickup every 5-6 rooms"}, -- Mystery Sack
{"272", "BBF", "Friendly exploding fly#The explosion deals 60 damage#{{Warning}} The explosion can hurt Isaac"}, -- BBF
{"273", "Bob's Brain", "Dashes in the direction Isaac is shooting#Explodes when it hits an enemy#{{Poison}} The explosion deals 60 damage and poisons enemies#{{Warning}} The explosion can hurt Isaac"}, -- Bob's Brain
{"274", "Best Bud", "Taking damage spawns one midrange orbital for the room#The orbital deals 75 damage per second"}, -- Best Bud
@@ -341,10 +341,10 @@ EID.descriptions[languageCode].collectibles={
{"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
{"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#Low accuracy tears that deal Isaac's damage"}, -- Cain's Other Eye
{"320", "???'s Only Friend", "Controllable fly#Deals 37.5 contact damage per second"}, -- ???'s Only Friend
{"321", "Samson's Chains", "Draggable ball that can destroy rocks#Deals 10.7 contact damage per second"}, -- Samson's Chains
{"322", "Mongo Baby", "Mimics one of your familiars tears#Cycles through which familiar to mimic every shot"}, -- Mongo Baby
{"322", "Mongo Baby", "Mimics your baby familiars' tears#If you have none, shoots normal 3.5 damage tears"}, -- Mongo Baby
{"323", "Isaac's Tears", "Shoots 8 tears in all directions#The tears copy Isaac's tear effects#Recharges by shooting tears"}, -- Isaac's Tears
{"324", "Undefined", "Teleports Isaac to the {{TreasureRoom}} Treasure, {{SecretRoom}} Secret, {{SuperSecretRoom}} Super Secret or {{ErrorRoom}} I AM ERROR Room"}, -- Undefined
{"325", "Scissors", "{{Timer}} Isaac's head turns into a stationary familiar for the room#The body is controlled separately"}, -- Scissors
@@ -384,7 +384,7 @@ EID.descriptions[languageCode].collectibles={
{"359", "8 Inch Nails", "↑ {{Damage}} +1.5 Damage#Increases knockback"}, -- 8 Inch Nails
{"360", "Incubus", "Shoots tears with the same tear rate, damage and effects as Isaac"}, -- Incubus
{"361", "Fate's Reward", "Shoots tears with the same damage and effects as Isaac#Shoots at half the rate of other familiars"}, -- Fate's Reward
{"362", "Lil Chest", "Spawns a random pickup every few rooms"}, -- Lil Chest
{"362", "Lil Chest", "35% chance to spawn a pickup every room"}, -- Lil Chest
{"363", "Sworn Protector", "Orbital#Deals 105 contact damage per second#Blocks and attracts enemy shots#{{EternalHeart}} Blocking 10 shots in one room spawns an Eternal Heart"}, -- Sworn Protector
{"364", "Friend Zone", "Midrange fly orbital#Deals 45 contact damage per second"}, -- Friend Zone
{"365", "Lost Fly", "Moves along walls/obstacles#Deals 105 contact damage per second"}, -- Lost Fly
@@ -492,7 +492,7 @@ EID.descriptions[languageCode].collectibles={
{"467", "Finger!", "{{Damage}} Constantly deals 10% of Isaac's damage in the direction it points"}, -- Finger!
{"468", "Shade", "Follows Isaac's movement on a 1 second delay#Deals 30 contact damage per second#After it deals 600 damage, it is absorbed by Isaac, increasing his contact damage"}, -- Shade
{"469", "Depression", "Leaves a trail of creep#The creep deals 6 damage per second#Enemies that touch the cloud can be hit by a holy light beam"}, -- Depression
{"470", "Hushy", "Bounces around the room#Deals contact damage#Stops moving when Isaac shoots#Blocks projectiles when stopped"}, -- Hushy
{"470", "Hushy", "Bounces around the room#Deals 30 contact damage per second#Stops moving when Isaac shoots#Blocks projectiles when stopped"}, -- Hushy
{"471", "Lil Monstro", "{{Chargeable}} Charges a shotgun attack similar to {{Collectible229}} Monstro's Lung#Each tear deals 3.5 damage"}, -- Lil Monstro
{"472", "King Baby", "Other familiars follow it#Stops moving when Isaac shoots#Teleports back to Isaac when he stops shooting"}, -- King Baby
{"473", "Big Chubby", "Very slowly charges forwards#Blocks shots#Deals 40.5 contact damage per second"}, -- Big Chubby
@@ -546,8 +546,8 @@ EID.descriptions[languageCode].collectibles={
{"521", "Coupon", "Makes one random item in the {{Shop}} Shop or {{DevilRoom}} Devil Room free#Holding the item guarantees one Shop item is on sale"}, -- Coupon
{"522", "Telekinesis", "Stops all enemy projectiles that come close to Isaac for 3 seconds and throws them away from him afterwards"}, -- Telekinesis
{"523", "Moving Box", "Stores all pickups and items from the current room#Using the item again drops everything back on the floor#Allows Isaac to move things between rooms"}, -- Moving Box
{"524", "Technology Zero", "Isaac's tears are connected with beams of electricity#The beams deal the same damage as Isaac"}, -- Technology Zero
{"525", "Leprosy", "Taking damage spawns a projectile blocking orbital#Caps at 3 orbitals#Orbitals are destroyed if they take too much damage"}, -- Leprosy
{"524", "Technology Zero", "Isaac's tears are connected with beams of electricity#The beams deal Isaac's damage"}, -- Technology Zero
{"525", "Leprosy", "Taking damage spawns a projectile blocking orbital#Caps at 3 orbitals#They deal 35 contact damage per second#Orbitals are destroyed if they take too much damage"}, -- Leprosy
{"526", "7 Seals", "Spawns a small horseman familiar that spawns locusts#The horseman and its locust changes every 10 seconds"}, -- 7 Seals
{"527", "Mr. ME!", "Displays a movable cursor for a few seconds, then summons a ghost that will, depending on the cursor position:#Open doors or chests#Fetch an item#50% chance to steal from the Shop / Devil#Attack an enemy until it dies#Explode walls, rocks, shopkeepers, angel statues, machines, beggars"}, -- Mr. ME!
{"528", "Angelic Prism", "Orbital prism#Friendly tears hitting it split into 4"}, -- Angelic Prism
@@ -644,6 +644,88 @@ EID.descriptions[languageCode].carBattery = {
[550] = "Stops stomps for two rooms (or Boss Rush waves)", -- Broken Shovel
}
-- Effect of BFFS! on Familiars
EID.descriptions[languageCode].BFFSSynergies = {
["No Effect"] = "No effect",
["5.100.8"] = {3.5, 7}, -- Brother Bobby
["5.100.57"] = {75, 150}, -- Distant Admiration
["5.100.67"] = {3.5, 7}, -- Sister Maggy
["5.100.73"] = "Damage doubled", -- Cube of Meat
["5.100.88"] = {52.5, 105}, -- Little Chubby
["5.100.94"] = {"2", "1-2"}, -- Sack of Pennies
["5.100.95"] = {3.5, 7}, -- Robo-Baby
["5.100.96"] = {"3", "2-3"}, -- Little C.H.A.D.
["5.100.98"] = {"5-6", "4-5"}, -- The Relic
["5.100.99"] = {3.5, 7}, -- Little Gish
["5.100.99"] = {3.5, 7}, -- Little Steven
["5.100.112"] = {105, 210}, -- Guardian Angel
["5.100.113"] = {3, 6}, -- Demon Baby
["5.100.128"] = {30, 60}, -- Forever Alone
["5.100.131"] = {"3", "2-3"}, -- Bomb Bag
["5.100.144"] = {"3-4", "3"}, -- Bum Friend
["5.100.155"] = {17, 34}, -- The Peeper
["5.100.163"] = {3.5, 7}, -- Ghost Baby
["5.100.167"] = {4, 8}, -- Harlequin Baby
["5.100.170"] = {40, 80}, -- Daddy Longlegs
["5.100.172"] = {225, 450}, -- Sacrificial Dagger
["5.100.174"] = {"3-5", "6-10"}, -- Rainbow Baby
["5.100.187"] = "Damage doubled", -- Guppy's Hairball
["5.100.188"] = {3.5, 7, 7.5, 15}, -- Abel (includes Cain's Rep synergy)
["5.100.206"] = {105, 210}, -- Guillotine
["5.100.207"] = "Damage doubled", -- Ball of Bandages
["5.100.264"] = {22.5, 45}, -- Smart Fly
["5.100.266"] = "Spawns an extra Blue Spider", -- Juicy Sack
["5.100.267"] = {3.5, 7}, -- Robo-Baby 2.0
["5.100.270"] = {3.2, 6.4}, -- Leech
["5.100.271"] = {"5-6", "4-5"}, -- Mystery Sack
["5.100.272"] = {60, 85}, -- BBF
["5.100.273"] = {60, 85}, -- Bob's Brain
["5.100.274"] = {75, 150}, -- Best Bud
["5.100.275"] = {31.5, 63}, -- Lil Brimstone
["5.100.277"] = {4, 8}, -- Lil Haunt
["5.100.279"] = {30, 60}, -- Big Fan
["5.100.318"] = {6, 12}, -- Gemini
["5.100.319"] = {"Isaac's damage", "double {{CR}}Isaac's damage"}, -- Cain's Other Eye
["5.100.320"] = {37.5, 75}, -- ???'s Only Friend
["5.100.321"] = {10.7, 21.4}, -- Samson's Chains
["5.100.322"] = {3.5, 7}, -- Mongo Baby
["5.100.360"] = "Damage doubled", -- Incubus
["5.100.361"] = "Damage doubled", -- Fate's Reward
["5.100.362"] = {35, 44}, -- Lil Chest
["5.100.363"] = {105, 210}, -- Sworn Protector
["5.100.364"] = {45, 90}, -- Friend Zone
["5.100.365"] = {105, 210}, -- Lost Fly
["5.100.372"] = "Higher chance to spawn batteries", -- Charged Baby
["5.100.384"] = {"5-90", "10-180"}, -- Lil Gurdy
["5.100.385"] = "Damage doubled", -- Bumbo
["5.100.388"] = "Spawns chests more often", -- Key Bum
["5.100.389"] = {"5-6", "4-5"}, -- Rune Bag
["5.100.390"] = {10, 20}, -- Seraphim
["5.100.403"] = "Higher chance to spawn batteries", -- Spider Mod
["5.100.405"] = {120, 240}, -- GB Bug
["5.100.417"] = "The damaging aura gets bigger, but the damage up aura doesn't", -- Succubus
["5.100.426"] = {30, 60}, -- Obsessed Fan
["5.100.430"] = {"Isaac's damage", "double {{CR}}Isaac's damage"}, -- Papa Fly
["5.100.435"] = {3.5, 7}, -- Lil Loki
["5.100.468"] = {30, 60}, -- Shade
["5.100.470"] = {30, 60}, -- Hushy
["5.100.471"] = {3.5, 7}, -- Lil Monstro
["5.100.473"] = {40.5, 81}, -- Big Chubby
["5.100.491"] = {"3", "2-3"}, -- Acid Baby
["5.100.500"] = {"5-6", "4-5"}, -- Sack of Sacks
["5.100.508"] = {3, 6}, -- Mom's Razor
["5.100.509"] = {3.5, 7, 30, 60}, -- Bloodshot Eye
["5.100.511"] = {30, 60}, -- Angry Fly
["5.100.518"] = "Damage doubled", -- Buddy in a Box
["5.100.519"] = "Damage doubled", -- Lil Delirium
["5.100.525"] = {35, 70}, -- Leprosy
["5.100.526"] = "Horseman contact damage is doubled", -- 7 Seals
["5.100.537"] = "Increases creep size, but not damage", -- Lil Spewer
["5.100.539"] = "Spawns a champion variant of the enemy", -- Mystery Egg
["5.100.544"] = {6, 12}, -- Pointy Rib
["5.100.548"] = {7, 14}, -- Jaw Bone
}
---------- Trinkets ----------
EID.descriptions[languageCode].trinkets={
@@ -836,6 +918,39 @@ EID.descriptions[languageCode].cards={
{"54", "Era Walk", "{{Timer}} Receive for the room:#↑ {{Speed}} +0.5 Speed#↓ {{Shotspeed}} -1 Shot speed#{{Slow}} Slow down enemies"}, -- Era Walk
}
--[[ 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] = {" a ", " 2 ", "Machine", "{{CR}}Machines", "Machine", "{{CR}}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] = {" a ", " 2 ", "Machine", "{{CR}}Machines", "Devil Beggar", "{{CR}}Devil Beggars"}, -- XIV - Temperance (+ Greed version)
[17] = {6, 12}, -- XVI - The Tower
[20] = {100, 200}, -- XIX - The Sun
[21] = {" a ", " 2 ", "Beggar", "{{CR}}Beggars", "Devil Beggar", "{{CR}}Devil Beggars"}, -- 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
}
---------- Pills ----------
EID.descriptions[languageCode].unidentifiedPill = "Unidentified Pill"
@@ -890,6 +1005,32 @@ EID.descriptions[languageCode].pills={
{"46", "Vurp!", "Spawns the last pill used before Vurp!"}, -- Vurp!
}
---------- Character Info ----------
-- 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
-- The numbers are provided to make this a quick reference for Player IDs
EID.descriptions[languageCode].CharacterInfo = {
[0] = {"Isaac", ""},
[1] = {"Magdalene", ""},
[2] = {"Cain", ""},
[3] = {"Judas", ""},
[4] = {"???", "Can't have Red Hearts"},
[5] = {"Eve", "Eve's Whore of Babylon triggers at 1 Red Heart or less"}, --this could just be desc modifier?
[6] = {"Samson", ""},
[7] = {"Azazel", "Flight#Short range Brimstone instead of tears"},
[8] = {"Lazarus", "When you die, resurrect as Lazarus Risen with 1 Red Heart container"},
[9] = {"Eden", "Start with random stats and items each run"},
[10] = {"The Lost", "Flight#Spectral tears#No health#One devil deal per room can be taken for free"},
[11] = {"Lazarus Risen", "Increased stats and x1.2 damage multiplier"},
[12] = {"Dark Judas", "x2 Damage multiplier"},
[13] = {"Lilith", "Cannot shoot tears"},
[14] = {"Keeper", "Heal by picking up coins#Heart pickups are turned into Blue Flies"},
[15] = {"Apollyon", ""},
[16] = {"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"},
[17] = {"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"},
}
---------- Sacrifice Room ----------
EID.descriptions[languageCode].sacrificeHeader = "[Next Sacrifice Room payout]"
@@ -969,7 +1110,8 @@ EID.descriptions[languageCode].ItemReminder = {
Actives = "Held active items",
Pockets = "Held pocket items",
Trinkets = "Held Trinkets",
Passives = "Held passive items"
Passives = "Held passive items",
Character = "Character Info"
}
}
@@ -1010,40 +1152,7 @@ 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] = {" a ", " 2 ", "Machine", "{{CR}}Machines", "Machine", "{{CR}}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] = {" a ", " 2 ", "Machine", "{{CR}}Machines", "Devil Beggar", "{{CR}}Devil Beggars"}, -- XIV - Temperance (+ Greed version)
[17] = {6, 12}, -- XVI - The Tower
[20] = {100, 200}, -- XIX - The Sun
[21] = {" a ", " 2 ", "Beggar", "{{CR}}Beggars", "Devil Beggar", "{{CR}}Devil Beggars"}, -- 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
-- Conditional descriptions - DO NOT TRANSLATE THE FIRST PART IN ["BRACKETS"]
-- 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
@@ -1051,15 +1160,17 @@ EID.descriptions[languageCode].tarotClothBuffsAB = {
EID.descriptions[languageCode].ConditionalDescs = {
["Overridden"] = "Overridden by {1}",
["Overrides"] = "Overrides {1}",
["Almost No Effect"] = "Little to no effect for {1}",
["No Effect"] = "No effect for {1}",
["Can't Charge"] = "Can't charge {1}",
["Can't Be Charged"] = "Can't be charged by {1}",
["No Effect (Greed)"] = "{{GreedMode}} No effect in Greed Mode",
["No Effect (Copies)"] = "No additional effect from multiple copies", -- Having the item already, or having Diplopia while looking at a pedestal
["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.7"] = "x1.5 Damage multiplier while \"The Book of Belial\" or \"XV - The Devil\" effect is active", -- Blood of the Martyr
["5.100.7"] = "x1.5 Damage multiplier while {1} effect is active", -- Blood of the Martyr
["5.100.34"] = "x1.5 Damage multiplier", -- Book of Belial
["5.300.16"] = "x1.5 Damage multiplier", -- XV - The Devil
@@ -1088,42 +1199,10 @@ EID.descriptions[languageCode].ConditionalDescs = {
["1 Room"] = "15 Second recharge while in an uncleared room", -- Actives + 9 Volt
["Timed"] = "Charge starts half full after use", -- Actives + 9 Volt
["5.100.208"] = {20, 35, 5, 20}, -- Champion Belt + Hard Mode
["Suicide 1"] = "{1} can't prevent the death", -- Plan C, Damocles, Suicide King
["Suicide 2"] = "Does not prevent death by {1}", -- Plan C, Damocles, Suicide King
}
EID.descriptions[languageCode].BFFSSynergies = {
["NoEffect"] = "No effect",
["DoubleDamage"] = "Damage doubled",
["5.100.94"] = "Drops coins in a repeating pattern of 1, 2, 2 then 2 rooms", -- Sack of Pennies
["5.100.131"] = "Drops bombs in a repeating pattern of 2, 2 then 3 rooms", -- Bomb Bag
["5.100.273"] = "Doubles impact damage and increases explosive damage by 25", -- Bob's Brain
["5.100.266"] = "Spawns an extra Blue Spider", -- Juicy Sack
["5.100.360"] = "Shoots tears that deal 200% of your damage", -- Incubus
["5.100.417"] = "Increases radius, but not damage", -- Succubus
["5.100.537"] = "Increases pool size, but not damage", -- Lil Spewer
["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
-- The numbers are provided to make this a quick reference for Player IDs
EID.descriptions[languageCode].CharacterInfo = {
[0] = {"Isaac", ""},
[1] = {"Magdalene", ""},
[2] = {"Cain", ""},
[3] = {"Judas", ""},
[4] = {"???", "Can't have Red Hearts"},
[5] = {"Eve", "Eve's Whore of Babylon triggers at 1 Red Heart or less"}, --this could just be desc modifier?
[6] = {"Samson", ""},
[7] = {"Azazel", "Flight#Short range Brimstone instead of tears"},
[8] = {"Lazarus", "When you die, resurrect as Lazarus Risen with 1 Red Heart container"},
[9] = {"Eden", "Start with random stats and items each run"},
[10] = {"The Lost", "Flight#Spectral tears#No health#One devil deal per room can be taken for free"},
[11] = {"Lazarus Risen", "Increased stats and x1.2 damage multiplier"},
[12] = {"Dark Judas", "x2 Damage multiplier"},
[13] = {"Lilith", "Cannot shoot tears"},
[14] = {"Keeper", "Heal by picking up coins#Heart pickups are turned into Blue Flies"},
[15] = {"Apollyon", ""},
[16] = {"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"},
[17] = {"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"},
}
+2 -2
View File
@@ -1014,7 +1014,7 @@ EID.descriptions[languageCode].ConditionalDescs = {
}
EID.descriptions[languageCode].BFFSSynergies = {
["NoEffect"] = "Aucun effet",
["No Effect"] = "Aucun effet",
["DoubleDamage"] = "Double les dégâts infligés",
["5.100.273"] = "Augmente les dégâts de contact et de l'explosion", -- Bob's Brain
["5.100.266"] = "Invoque une araignée bleue supplémentaire", -- Juicy Sack
@@ -1022,4 +1022,4 @@ EID.descriptions[languageCode].BFFSSynergies = {
["5.100.417"] = "Augmente la taille de l'aura mais pas ses dégâts", -- Succubus
["5.100.537"] = "Augmente la taille de la flaque mais pas ses dégâts", -- Lil Spewer
["5.100.539"] = "L'ennemi invoqué est un ennemi d'élite", -- Mystery Egg
}
}
+2 -2
View File
@@ -1107,7 +1107,7 @@ EID.descriptions[languageCode].ConditionalDescs = {
}
EID.descriptions[languageCode].BFFSSynergies = {
["NoEffect"] = "(효과 없음)",
["No Effect"] = "(효과 없음)",
["DoubleDamage"] = "피해량 x2",
["5.100.94"] = "요구되는 방 클리어 수 감소 (1 > 2 > 2 > 2 순환)", -- Sack of Pennies
["5.100.96"] = "요구되는 방 클리어 수 감소 (2 > 2 > 3 순환)", -- Little C.H.A.D.
@@ -1146,4 +1146,4 @@ EID.descriptions[languageCode].CharacterInfo = {
[15] = {"Apollyon", ""},
[16] = {"The Forgotten", "{{Chargeable}} 공격 키로 뼈를 휘두르며 충전 시 충전 거리만큼 뼈다귀를 부메랑처럼 던질 수 있습니다.#{{BoneHeart}} 최대 체력 = 뼈하트의 보정을 받으며 6칸의 상한을 가집니다.#{{ButtonRT}} (Ctrl)키로 영혼과 교체할 수 있으며 영혼은 지형 관통 눈물을 발사합니다.{{SoulHeart}} 최대 체력 = 소울하트의 보정을 받으며 6칸의 상한을 가집니다.#영혼은 날아다닐 수 있으나 본체로부터 멀리 떨어질 수 없습니다."},
[17] = {"The Forgotten Soul", "{{Chargeable}} 공격 키로 뼈를 휘두르며 충전 시 충전 거리만큼 뼈다귀를 부메랑처럼 던질 수 있습니다.#{{BoneHeart}} 최대 체력 = 뼈하트의 보정을 받으며 6칸의 상한을 가집니다.#{{ButtonRT}} (Ctrl)키로 영혼과 교체할 수 있으며 영혼은 지형 관통 눈물을 발사합니다.{{SoulHeart}} 최대 체력 = 소울하트의 보정을 받으며 6칸의 상한을 가집니다.#영혼은 날아다닐 수 있으나 본체로부터 멀리 떨어질 수 없습니다."},
}
}
+186 -150
View File
@@ -33,7 +33,7 @@ local repCollectibles={
[41] = {"41", "Mom's Pad", "{{Fear}} Fears all enemies in the room for 5 seconds#Spawns a blue fly"}, -- Mom's Pad
[42] = {"42", "Bob's Rotten Head", "Using the item and firing in a direction throws the head#{{Poison}} The head explodes where it lands and creates a poison cloud#Deals Isaac's damage + 185"}, -- Bob's Rotten Head
[46] = {"46", "Lucky Foot", "↑ {{Luck}} +1 Luck#Better chance to win while gambling#Increases room clearing drop chance#Turns bad pills into good ones"}, -- Lucky Foot
[49] = {"49", "Shoop da Whoop!", "The next shot is replaced with a beam#{{Damage}} It deals 24x Isaac's damage over 0.83 seconds"}, -- Shoop da Whoop!
[49] = {"49", "Shoop da Whoop!", "The next shot is replaced with a beam#It deals 24x Isaac's damage over 0.83 seconds"}, -- Shoop da Whoop!
[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
[55] = {"55", "Mom's Eye", "50% chance to shoot an extra tear backwards#{{Luck}} 100% chance at 5 luck"}, -- Mom's Eye
@@ -84,7 +84,6 @@ 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
[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
[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
[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!
@@ -92,7 +91,7 @@ local repCollectibles={
[197] = {"197", "Jesus Juice", "↑ {{Damage}} +0.5 Damage#↑ {{Range}} +1.5 Range"}, -- Jesus Juice
[203] = {"203", "Humbleing Bundle", "Pickups have a 50% chance to be doubled"}, -- Humbleing Bundle
[205] = {"205", "Sharp Plug", "{{Battery}} Using an uncharged active item fully recharges it at the cost of half a heart per missing charge#{{Heart}} Removes Red Hearts first"}, -- Sharp Plug
[206] = {"206", "Guillotine", "↑ {{Tears}} +0.5 Fire rate#↑ {{Damage}} +1 Damage#Isaac's head becomes an orbital that shoots, doesn't take damage and deals 65 contact damage per second"}, -- Guillotine
[206] = {"206", "Guillotine", "↑ {{Tears}} +0.5 Fire rate#↑ {{Damage}} +1 Damage#Isaac's head becomes an orbital that shoots, doesn't take damage and deals 56 contact damage per second"}, -- Guillotine
[211] = {"211", "Spiderbaby", "Taking damage spawns 3-5 blue spiders"}, -- Spiderbaby
[214] = {"214", "Anemic", "↑ {{Range}} +1.5 Range#{{Timer}} When taking damage Isaac leaves a trail of blood creep for the room"}, -- Anemic
[218] = {"218", "Placenta", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart#{{HalfHeart}} 50% chance to heal half a heart every minute"}, -- Placenta
@@ -115,9 +114,10 @@ local repCollectibles={
[262] = {"262", "Missing Page 2", "{{BlackHeart}} +1 Black Heart#Taking damage down to 1 heart damages all enemies in the room#{{Collectible35}} Black Hearts and Necronomicon-like effects deal double damage"}, -- Missing Page 2
[263] = {"263", "Clear Rune", "{{Rune}} Spawns 1 rune on pickup#{{Rune}} Triggers the effect of the rune Isaac holds without using it"}, -- Clear Rune (Repentance item)
[264] = {"264", "Smart Fly", "Orbital#Attacks enemies when Isaac takes damage#Deals 6.5 damage per second"}, -- Smart Fly
[272] = {"272", "BBF", "Friendly exploding fly#The explosion deals 100 damage#{{Warning}} The explosion can hurt Isaac"}, -- BBF
[273] = {"273", "Bob's Brain", "Dashes in the direction Isaac is shooting#Explodes when it hits an enemy#{{Poison}} The explosion deals 100 damage, ignores boss armor and poisons enemies#{{Warning}} The explosion can hurt Isaac"}, -- Bob's Brain
[274] = {"274", "Best Bud", "Taking damage spawns one midrange orbital for the room#The orbital deals 150 damage per second"}, -- Best Bud
[275] = {"275", "Lil Brimstone", "{{Chargeable}} Familiar that charges and shoots a {{Collectible118}} blood beam#Deals 3 damage per tick, for a total of 24 damage"}, -- Lil Brimstone
[275] = {"275", "Lil Brimstone", "{{Chargeable}} Familiar that charges and shoots a {{Collectible118}} blood beam#It deals 24 damage over 0.63 seconds"}, -- Lil Brimstone
[276] = {"276", "Isaac's Heart", "Isaac becomes invincible#Spawns a heart familiar that follows Isaac#The heart charges up when Isaac fires and releases a burst of tears when he stops#{{Warning}} If the heart familiar gets hit, Isaac takes damage"}, -- Isaac's Heart
[278] = {"278", "Dark Bum", "{{Heart}} Picks up nearby Red Hearts#Spawns a Black Heart, rune, card, pill, or spider for every 1.5 hearts picked up"}, -- Dark Bum
[280] = {"280", "Sissy Longlegs", "Randomly spawns blue spiders in hostile rooms#{{Charm}} Charms enemies it comes in contact with"}, -- Sissy Longlegs
@@ -140,7 +140,7 @@ local repCollectibles={
[307] = {"307", "Capricorn", "↑ {{Heart}} +1 Health#↑ {{Speed}} +0.1 Speed#↑ {{Tears}} +0.5 Fire rate#↑ {{Damage}} +0.5 Damage#↑ {{Range}} +0.75 Range#+1 {{Coin}} coin, {{Bomb}} bomb and {{Key}} key"}, -- Capricorn
[308] = {"308", "Aquarius", "Isaac leaves a trail of creep#{{Damage}} The creep deals 66% of Isaac's damage per second and inherits his tear effects"}, -- Aquarius
[309] = {"309", "Pisces", "↑ {{Tears}} +0.5 Fire rate#↑ {{Tearsize}} +0.12 Tear size#Increases tear knockback"}, -- Pisces
[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 Tears 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
[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"}, -- Cursed Eye
@@ -165,7 +165,7 @@ local repCollectibles={
[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
[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
[368] = {"368", "Epiphora", "↑ {{Tears}} Shooting in one direction gradually increases fire rate up to 200%"}, -- Epiphora
[368] = {"368", "Epiphora", "↑ {{Tears}} Shooting in one direction gradually increases fire rate up to 200% and decreases accuracy"}, -- Epiphora
[369] = {"369", "Continuum", "↑ {{Range}} +3 Range#Spectral tears#Tears can travel through one side of the screen and come out the other side"}, -- Continuum
[370] = {"370", "Mr. Dolly", "↑ {{Tears}} +0.7 Tears#↑ {{Range}} +2.5 Range#{{UnknownHeart}} Spawns 3 random hearts"}, -- Mr. Dolly
[374] = {"374", "Holy Light", "10% chance to shoot holy tears, which spawn a beam of light on hit#{{Luck}} 50% chance at 9 luck#{{Damage}} The beams deals 3x Isaac's damage"}, -- Holy Light
@@ -173,7 +173,7 @@ local repCollectibles={
[376] = {"376", "Restock", "Buying an item from a Shop restocks it instantly#Restocked items increase in price each time"}, -- Restock
[380] = {"380", "Pay To Play", "{{Coin}} +5 Coins#Locked blocks, doors and chests must be opened with coins instead of keys"}, -- Pay To Play
[382] = {"382", "Friendly Ball", "Can be thrown at enemies to capture them#Using the item after capturing an enemy spawns the capture as a friendly companion#Walking over the ball after a capture instantly recharges the item"}, -- Friendly Ball
[384] = {"384", "Lil Gurdy", "{{Chargeable}} Launches and bounces around the room with speed based on charge amount#Deals 5-25 contact damage per hit depending on speed"}, -- Lil Gurdy
[384] = {"384", "Lil Gurdy", "{{Chargeable}} Launches and bounces around the room with speed based on charge amount#Deals 5-20 contact damage per hit depending on speed"}, -- Lil Gurdy
[386] = {"386", "D12", "Rerolls any obstacle into another random obstacle (e.g. poop, pots, TNT, red poop, stone blocks etc.)#Small chance to reroll obstacles into buttons, killswitches, crawlspaces or trapdoors"}, -- D12
[389] = {"389", "Rune Bag", "{{Rune}} Spawns a random rune or Soul Stone every 7-8 rooms"}, -- Rune Bag
[391] = {"391", "Betrayal", "Enemies can hit each other with their projectiles, and start infighting"}, -- Betrayal
@@ -181,12 +181,12 @@ local repCollectibles={
[394] = {"394", "Marked", "↑ {{Tears}} +0.7 Tears#↑ {{Range}} +3 Range#Isaac automatically shoots tears at a movable red target on the ground#Familiars shoot towards the target too#You can stop shooting and reset the target's location by pressing the drop button ({{ButtonRT}})"}, -- Marked
[395] = {"395", "Tech X", "Isaac's tears are replaced by a chargeable laser ring#Ring size and damage increases up to 100% with charge time"}, -- Tech X
[397] = {"397", "Tractor Beam", "↑ {{Tears}} +1 Fire rate#↑ {{Range}} +2.5 Range#↑ {{Shotspeed}} +0.16 Shot speed#Isaac's tears always travel along a beam of light in front of him"}, -- Tractor Beam
[399] = {"399", "Maw of the Void", "{{Chargeable}} Firing tears for 2.35 seconds and releasing the fire button creates a black brimstone ring around Isaac"}, -- Maw of the Void
[399] = {"399", "Maw of the Void", "{{Chargeable}} Firing tears for 2.35 seconds and releasing the fire button creates a black brimstone ring around Isaac#It deals 30x Isaac's damage over 2 seconds"}, -- Maw of the Void
[401] = {"401", "Explosivo", "25% chance to shoot sticky tears#Sticky tears grow and explode after a few seconds, dealing Isaac's damage +60"}, -- Explosivo
[404] = {"404", "Farting Baby", "Blocks projectiles#When hit, 10% chance to fart and {{Charm}} charm, {{Poison}} poison or knockback enemies#The farts deal 5-6 damage"}, -- Farting Baby
[405] = {"405", "GB Bug", "{{Throwable}} Throwable (double-tap shoot)#Rerolls enemies and pickups it comes in contact with"}, -- GB Bug
[407] = {"407", "Purity", "↑ Boosts one of Isaac's stats depending on the color of the aura#Taking damage removes the effect, and grants a new effect in the next room#{{ColorYellow}}Yellow{{CR}} = ↑ {{Speed}} +0.5 Speed#{{ColorBlue}}Blue{{CR}} = ↑ {{Tears}} +2 Fire rate#{{ColorRed}}Red{{CR}} = ↑ {{Damage}} +4 Damage#{{ColorOrange}}Orange{{CR}} = ↑ {{Range}} +3 Range"}, -- Purity
[408] = {"408", "Athame", "25% chance for a black brimstone ring to spawn around killed enemies#{{Luck}} +2.5% chance per luck"}, -- Athame
[408] = {"408", "Athame", "25% chance for a black brimstone ring to spawn around killed enemies#It deals 30x Isaac's damage over 2 seconds#{{Luck}} +2.5% chance per luck"}, -- Athame
[415] = {"415", "Crown Of Light", "{{SoulHeart}} +2 Soul Hearts#If Isaac has no damaged heart containers:#↑ {{Damage}} x2 Damage multiplier#↓ {{Shotspeed}} -0.3 Shot speed#Taking any damage removes the effect for the room"}, -- Crown Of Light
[416] = {"416", "Deep Pockets", "{{Coin}} If clearing a room would yield no reward, spawns 1-3 coins#{{Coin}} Increases the coin cap to 999"}, -- Deep Pockets
[417] = {"417", "Succubus", "Bounces around the room surrounded by a damaging aura that deals 7.5-10 damage per second#↑ {{Damage}} x1.5 Damage multiplier while standing in the aura"}, -- Succubus
@@ -211,7 +211,7 @@ local repCollectibles={
[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
[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 0.66 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
[474] = {"474", "Broken Glass Cannon", "Using the item turns it back into Glass Cannon"}, -- Broken Glass Cannon
[476] = {"476", "D1", "Duplicates a random pickup in the room#Duplicated pickups may not be identical to the original"}, -- D1
@@ -224,6 +224,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
[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
[500] = {"500", "Sack of Sacks", "Spawns a sack every 7-8 rooms"}, -- Sack of Sacks
[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
[504] = {"504", "Brown Nugget", "Spawns a fly that shoots at enemies#Each shot deals 3.5 damage"}, -- Brown Nugget
@@ -262,9 +263,9 @@ local repCollectibles={
[572] = {"572", "Eye of the Occult", "↑ {{Damage}} +1 Damage#↑ {{Range}} +2 Range#↓ {{Shotspeed}} -0.16 Shot speed#Isaac's tears can be controlled in mid-air"}, -- Eye of the Occult
[573] = {"573", "Immaculate Heart", "↑ {{Heart}} +1 Health#↑ {{Damage}} x1.2 Damage multiplier#{{Heart}} Full health#20% chance to shoot an extra orbiting spectral tear"}, -- Immaculate Heart
[574] = {"574", "Monstrance", "Isaac is surrounded by a damaging aura#The closer enemies are to Isaac, the more damage the aura deals to them"}, -- Monstrance
[575] = {"575", "The Intruder", "{{Slow}} Buries itself in Isaac's head and shoots 4 extra slowing tears#Taking damage can make the spider exit the head and chase enemies"}, -- The Intruder
[575] = {"575", "The Intruder", "{{Slow}} Buries itself in Isaac's head and shoots 4 extra slowing tears that deal 1.5 damage#Taking damage can make the spider exit the head and chase enemies"}, -- The Intruder
[576] = {"576", "Dirty Mind", "All Dip (small poop) enemies are friendly#Destroying poop spawns 1-4 Dips#Dip type depends on the poop type#Rocks may be replaced with poop"}, -- Dirty Mind
[577] = {"577", "Damocles", "{{Warning}} SINGLE USE {{Warning}}#Hangs a sword above Isaac's head, which doubles all pedestal items#Does not double items that have a price or come from chests#{{Warning}} After taking any damage, the sword has an extremely low chance to instantly kill Isaac every frame"}, -- Damocles
[577] = {"577", "Damocles", "{{Warning}} SINGLE USE {{Warning}}#Hangs a sword above Isaac's head, which doubles all pedestal items#Does not double items that have a price or come from chests#{{Warning}} After taking any damage, the sword has an extremely low chance to instantly kill Isaac every frame#Invincibility effects can prevent the death"}, -- Damocles
[578] = {"578", "Free Lemonade", "Creates a large pool of yellow creep#The creep deals 24 damage per second"}, -- Free Lemonade
[579] = {"579", "Spirit Sword", "Instead of shooting tears, Isaac swings a sword#{{Damage}} The sword deals 3x Isaac's damage +3.5 and swings as fast as the fire button is tapped#{{Chargeable}} Charging does a spin attack + projectile shot#Shoots projectiles with normal swings at full health#{{Tears}} Tears effect the charge time and how often a projectile is shot at full health"}, -- Spirit Sword
[580] = {"580", "Red Key", "Creates a red room adjacent to a regular room, indicated by a door outline#Red Rooms can be special rooms#{{ErrorRoom}} Entering a room outside the 13x13 floor map teleports Isaac to the I AM ERROR room"}, -- Red Key
@@ -292,12 +293,12 @@ local repCollectibles={
[602] = {"602", "Member Card", "{{Shop}} Opens a trapdoor in every Shop#The trapdoor leads to an underground shop that sells trinkets, runes, cards, special hearts and items from any pool"}, -- Member Card
[603] = {"603", "Battery Pack", "{{Battery}} Spawns 2-4 batteries#{{Battery}} Fully recharges the active item"}, -- Battery Pack
[604] = {"604", "Mom's Bracelet", "Allows Isaac to pick up and throw rocks, TNT, poops, friendly Dips, Hosts and other obstacles#Allows carrying them between rooms"}, -- Mom's Bracelet
[605] = {"605", "The Scooper", "↑ {{Damage}} x1.35 Damage multiplier for the right eye#{{Timer}} Summons a Peeper familiar for the room, which leaves a trail of red creep"}, -- The Scooper
[605] = {"605", "The Scooper", "↑ {{Damage}} x1.35 Damage multiplier for the right eye#{{Timer}} Summons a Peeper familiar for the room, which leaves a trail of red creep and deals 36 contact damage per second"}, -- The Scooper
[606] = {"606", "Ocular Rift", "5% chance to shoot tears that create rifts where they land#{{Luck}} 20% chance at 15 luck#Rifts do 3x Isaac's damage per second and pull in nearby enemies, pickups, and projectiles"}, -- Ocular Rift
[607] = {"607", "Boiled Baby", "Shoots chaotic bursts of tears in all directions#Deals 3.5 or 5.3 damage per tear"}, -- Boiled Baby
[608] = {"608", "Freezer Baby", "Shoots petrifying tears#{{Freezing}} Freezes enemies upon killing them"}, -- Freezer Baby
[607] = {"607", "Boiled Baby", "Shoots chaotic bursts of tears in all directions#Deals 3.5 or 5.25 damage per tear"}, -- Boiled Baby
[608] = {"608", "Freezer Baby", "Shoots petrifying tears that deal 3.5 damage#{{Freezing}} Freezes enemies upon killing them"}, -- Freezer Baby
[609] = {"609", "Eternal D6", "Rerolls all pedestal items in the room#Has a 25% chance to delete items instead of rerolling them"}, -- Eternal D6
[610] = {"610", "Bird Cage", "Leaps on the enemy that deals the first damage to Isaac in a room#Deals 45 damage and releases a rock wave#Chases enemies afterwards"}, -- Bird Cage
[610] = {"610", "Bird Cage", "Leaps on the enemy that deals the first damage to Isaac in a room#Deals 45 damage and releases a rock wave#Chases enemies afterwards for 6.5 contact damage per second"}, -- Bird Cage
[611] = {"611", "Larynx", "Isaac screams, damages and knocks back nearby enemies#The scream gets stronger the more charges the item has"}, -- Larynx
[612] = {"612", "Lost Soul", "Dies in one hit and respawns at the start of the next floor#If it is brought alive to the next floor, it can spawn:#{{SoulHeart}} 3 Soul Hearts#{{EternalHeart}} 2 Eternal Hearts#{{TreasureRoom}} A Treasure Room item#{{AngelRoom}} An Angel Room item"}, -- Lost Soul
[613] = {"613", "", "<Item does not exist>"},
@@ -313,10 +314,10 @@ local repCollectibles={
[623] = {"623", "Sharp Key", "{{Key}} +5 Keys#Throws one of Isaac's keys in the direction he shoots#Thrown keys deal damage, destroy obstacles, and open doors#Enemies killed with keys can spawn the contents of a chest, including items"}, -- Sharp Key
[624] = {"624", "Booster Pack", "{{Card}} Spawns 5 random cards"}, -- Booster Pack
[625] = {"625", "Mega Mush", "Gigantifies Isaac and grants:#↑ {{Damage}} x4 Damage multiplier#↑ {{Range}} +2 Range#↓ {{Tears}} -1.9 Tears#Invincibility#Ability to crush enemies and obstacles#{{Timer}} Lasts for 30 seconds and persists between rooms and floors"}, -- Mega Mush
[626] = {"626", "Knife Piece 1", "Turns into a throwable knife when combined with {{Collectible627}} Knife Piece 2#The knife can open a door made of flesh"}, -- Knife Piece 1
[627] = {"627", "Knife Piece 2", "Turns into a throwable knife when combined with {{Collectible626}} Knife Piece 1#The knife can open a door made of flesh"}, -- Knife Piece 2
[626] = {"626", "Knife Piece 1", "Turns into a throwable knife that deals 25 damage when combined with {{Collectible627}} Knife Piece 2#The knife can open a door made of flesh"}, -- Knife Piece 1
[627] = {"627", "Knife Piece 2", "Turns into a throwable knife that deals 25 damage when combined with {{Collectible626}} Knife Piece 1#The knife can open a door made of flesh"}, -- Knife Piece 2
[628] = {"628", "Death Certificate", "{{Warning}} SINGLE USE {{Warning}}#Teleports Isaac to a floor that contains every item in the game#Choosing an item from this floor teleports Isaac back to the room he came from"}, -- Death Certificate
[629] = {"629", "Bot Fly", "Shoots shielded tears to destroy enemy projectiles"}, -- Bot Fly
[629] = {"629", "Bot Fly", "Shoots shielded tears to destroy enemy projectiles#Deals 3 contact damage per second"}, -- Bot Fly
[630] = {"630", "", "<Item does not exist>"},
[631] = {"631", "Meat Cleaver", "Splits all enemies in the room into 2 smaller versions with 40% health#Enemies that naturally split (like Envy) take enough damage to split instead#Deals 25 damage to enemies that can't be split"}, -- Meat Cleaver
[632] = {"632", "Evil Charm", "↑ {{Luck}} +2 Luck#Immune to {{Burning}} burn, {{Confusion}} confusion, {{Fear}} fear, and {{Poison}} poison effects"}, -- Evil Charm
@@ -338,12 +339,12 @@ local repCollectibles={
[648] = {"648", "", "<Item does not exist>"},
[649] = {"649", "Fruity Plum", "Propels herself diagonally around the room, firing tears in her path that deal 3 damage#Deals 6 contact damage per second"}, -- Fruity Plum
[650] = {"650", "Plum Flute", "{{Timer}} Summons a friendly Baby Plum in the room for 10 seconds"}, -- Plum Flute
[651] = {"651", "Star of Bethlehem", "Slowly travels from the first room of the floor to the {{BossRoom}} Boss Room#Moves faster if you're ahead of it, and slower if you're behind it#Standing in its aura grants:#↑ {{Tears}} x2.5 Tear multiplier#↑ {{Damage}} x1.8 Damage multiplier#Homing tears#50% chance to ignore damage"}, -- Star of Bethlehem
[651] = {"651", "Star of Bethlehem", "Slowly travels from the first room of the floor to the {{BossRoom}} Boss Room#Moves faster if you're ahead of it, and slower if you're behind it#Standing in its aura grants:#↑ {{Tears}} x2.5 Tears multiplier#↑ {{Damage}} x1.8 Damage multiplier#Homing tears#50% chance to ignore damage"}, -- Star of Bethlehem
[652] = {"652", "Cube Baby", "Can be kicked around by walking into it#{{Freezing}} Afflicts slowness, deals contact damage, and freezes enemies it kills"}, -- Cube Baby
[653] = {"653", "Vade Retro", "Holding the item causes non-ghost enemies to spawn small red ghosts on death#Using the item causes the ghosts to explode#Using the item also kills any ghost enemies (including bosses) that have less than 50% HP left"}, -- Vade Retro
[654] = {"654", "False PHD", "{{BlackHeart}} +1 Black Heart#{{Pill}} Identifies all pills#Converts all good pills into bad pills#↑ {{Damage}} Eating a stat down pill grants +0.6 damage#{{BlackHeart}} Eating other bad pills spawns a Black Heart"}, -- False PHD
[655] = {"655", "Spin to Win", "Passively grants an orbital that blocks enemy shots and deals 10.5 contact damage per second#Using the item grants:#↑ {{Speed}} +0.5 Speed#Greatly increases the rotation speed of orbitals"}, -- Spin to Win
[656] = {"656", "Damocles", "Hangs a sword above Isaac's head, which doubles all pedestal items#Does not double items that have a price or come from chests#{{Warning}} After taking any damage, the sword has an extremely low chance to instantly kill Isaac every frame"}, -- Damocles (hidden passive version)
[656] = {"656", "Damocles", "Hangs a sword above Isaac's head, which doubles all pedestal items#Does not double items that have a price or come from chests#{{Warning}} After taking any damage, the sword has an extremely low chance to instantly kill Isaac every frame#Invincibility effects can prevent the death"}, -- Damocles (hidden passive version)
[657] = {"657", "Vasculitis", "Enemies explode into tears upon death, which inherit the effects of Isaac's tears"}, -- Vasculitis
[658] = {"658", "Giant Cell", "Taking damage spawns a Minisaac#Minisaacs chase and shoot at nearby enemies"}, -- Giant Cell
[659] = {"659", "Tropicamide", "↑ {{Range}} +2.5 Range#↑ {{Tearsize}} +0.22 Tear size"}, -- Tropicamide
@@ -366,7 +367,7 @@ local repCollectibles={
[676] = {"676", "Empty Heart", "{{EmptyHeart}} +1 Empty heart container when at 1 Red Heart or less at the start of a new floor"}, -- Empty Heart
[677] = {"677", "Astral Projection", "{{Timer}} Taking damage in an uncleared room grants for the fight:#Spectral tears#Flight#Negates the next damage taken#Stops time for 2 seconds#Greatly increases speed and fire rate for 2 seconds"}, -- Astral Projection
[678] = {"678", "C Section", "{{Chargeable}} Replaces Isaac's tears with a charge attack that shoots homing, spectral fetus tears#{{Damage}} Fetus tears deal about 2.8x Isaac's damage per second"}, -- C Section
[679] = {"679", "Lil Abaddon", "{{Collectible399}} Familiar that charges and unleashes a Maw of the Void circle"}, -- Lil Abaddon
[679] = {"679", "Lil Abaddon", "{{Collectible399}} Familiar that charges and unleashes a Maw of the Void circle#It deals 52 damage over 1 second"}, -- Lil Abaddon
[680] = {"680", "Montezuma's Revenge", "{{Chargeable}} Firing charges up a short-ranged high damage backwards beam#Does not replace Isaac's tears"}, -- Montezuma's Revenge
[681] = {"681", "Lil Portal", "Deals contact damage and flies forward#Consumes pickups in its path#Each pickup consumed increases its size, damage, and spawns a blue fly#Consuming four pickups spawns a portal to an unexplored room"}, -- Lil Portal
[682] = {"682", "Worm Friend", "Sometimes bursts out of the ground and grabs an enemy#Grabbed enemies take damage, are slowed and cannot move"}, -- Worm Friend
@@ -393,7 +394,7 @@ local repCollectibles={
[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 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
[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 a locust familiar for each one#Locusts deal Isaac's damage 2-3 times an attack#Some items spawn a special locust when consumed"}, -- Abyss
[707] = {"707", "Supper", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart"}, -- Supper
[708] = {"708", "Stapler", "↑ {{Damage}} +1 Damage#All of Isaac's tears are shot from the right eye"}, -- Stapler
[709] = {"709", "Suplex!", "Isaac dashes in the direction he moves#Dashing into an enemy or boss picks it up and slams it into the ground#Slam deals damage and spawns rock waves based on Isaac's size#You're invincible during the dash and slam"}, -- Suplex!
@@ -425,50 +426,6 @@ EID:updateDescriptionsViaTable(repCollectibles, EID.descriptions[languageCode].c
---------- Modifiers ----------
EID.descriptions[languageCode].birthright ={
{"Isaac", "", "All item pedestals cycle between two options"},
{"Magdalene", "", "↑ {{Heart}} +1 Health#The max amount of heart containers is raised to 18"},
{"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"},
{"???", "", "{{SoulHeart}} Soul Hearts gained from health upgrades are doubled"},
{"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"},
{"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"},
{"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, 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"},
{"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"},
{"Keeper", "", "↑ {{CoinHeart}} +1 Health#The max amount of Coin Heart containers is raised to 4"},
{"Apollyon", "", "{{Collectible477}} Using Void has a chance to spawn an item that was previously voided#Does not remove the stat bonuses#The more items voided, the higher the chance for an item to spawn upon use"},
{"The Forgotten", "", "Removes the chain binding The Soul to The Forgotten"},
{"The Forgotten Soul", "", "Removes the chain binding The Soul to The Forgotten"},
{"Bethany", "", "{{Battery}} Activating an item using soul charges is sometimes free"},
{"Jacob", "", "The character who picks up the item gains copies of three of the other character's passive items"},
{"Esau", "", "The character who picks up the item gains copies of three of the other character's passive items"},
{"Tainted Isaac", "", "Adds 4 passive item slots#Does not consume a slot itself"},
{"Tainted Magdalene", "", "{{Heart}} Adds 1 heart container that doesn't drain"},
{"Tainted Cain", "", "Doubles the amount of pickups dropped from collecting an item"},
{"Tainted Judas", "", "{{Collectible705}} Increases the range in which Dark Arts hits enemies and tears"},
{"Tainted ???", "", "{{PoopPickup}} Increases the maximum number of poops that can be carried to 29"},
{"Tainted Eve", "", "{{HalfHeart}} Red Heart clots spawn half Red Hearts on death that disappear after 2 seconds"},
{"Tainted Samson", "", "{{Collectible704}} Killing an enemy adds 3 seconds to the Berserk! timer instead of 1"},
{"Tainted Azazel", "", "{{Collectible726}} Doubles the size of Tainted Azazel's Hemoptysis sneeze attack"},
{"Tainted Lazarus", "", "The non-active form of Tainted Lazarus appears as a ghostly second character#He is invincible and deals 25% damage#Both forms receive the Birthright item"},
{"Tainted Eden", "", "Any items obtained before Birthright can no longer be rerolled#Active items can be rerolled again if they are dropped and picked back up"},
{"Tainted Lost", "", "Grants an extra life that revives Tainted Lost in the same room and deals 200 damage to nearby enemies"},
{"Tainted Lilith", "", "{{Collectible728}} Familiars that normally follow Tainted Lilith follow her Gello instead#The melee attack gains +3 damage per familiar"},
{"Tainted Keeper", "", "{{Coin}} Strongly attracts the coins dropped by defeating enemies#No effect on other coins"},
{"Tainted Apollyon", "", "Locusts continuously damage enemies without returning while the fire button is held"},
{"Tainted Forgotten", "", "{{Collectible714}} Tainted Soul gains the Recall ability to retrieve Tainted Forgotten from a distance#The Soul is invincible while the Forgotten is returning"},
{"Tainted Bethany", "", "Spawns four random item wisps of Quality {{Quality3}} and {{Quality4}} with significantly higher HP than normal"},
{"Tainted Jacob", "", "Dark Esau splits into two, creating a shadowy clone of itself#Both Esaus always charge at the same time#{{Collectible722}} Using Anima Sola chains both Esaus"},
{"Dead Tainted Lazarus", "", "The non-active form of Tainted Lazarus appears as a ghostly second character#He is invincible and deals 25% damage#Both forms receive the Birthright item"},
{"Tainted Jacob 2", "", "Dark Esau splits into two, creating a shadowy clone of itself#Both Esaus always charge at the same time#{{Collectible722}} Using Anima Sola chains both Esaus"},
{"Tainted Forgotten Soul", "", "{{Collectible714}} Tainted Soul gains the Recall ability to retrieve Tainted Forgotten from a distance#The Soul is invincible while the Forgotten is returning"},
}
-- Buffs caused by Binge Eater
-- Note: "#" will be replaced with "#{{Collectible664}} " automatically, in order to add Binge eater icon in front of each buff-bulletpoint
EID.descriptions[languageCode].bingeEaterBuffs = {
@@ -705,8 +662,8 @@ EID.descriptions[languageCode].abyssSynergies = {
[257] = "Orange, burning locust that sets enemies on fire", -- Fire Mind
[305] = "Green locust that poisons enemies", -- Scorpio
[374] = "Cyan, glowing locust that can spawn beams of light that deal deal 3x Isaac's damage", -- Holy Light
[494] = "Light blue locust with arcs of electricity that deal 0.1 damage per tick", -- Jacob's Ladder
[559] = "Light blue locust with arcs of electricity that deal 0.1 damage per tick", -- 120 Volt
[494] = "Light blue locust with arcs of electricity that deal 0.1 damage per arc", -- Jacob's Ladder
[559] = "Light blue locust with arcs of electricity that deal 0.1 damage per arc", -- 120 Volt
}
-- Effect of Car battery on Active Items
@@ -750,6 +707,52 @@ local repCarBattery = {
}
EID:updateDescriptionsViaTable(repCarBattery, EID.descriptions[languageCode].carBattery)
-- Effect of BFFS!/Hive Mind on Familiars
local repBFFSSynergies = {
["5.100.67"] = {6, 12}, -- Sister Maggy
["5.100.98"] = {"7-8", "6"}, -- The Relic
["5.100.172"] = {112.5, 225}, -- Sacrificial Dagger
["5.100.178"] = {7, 14, "Spawns a blue flame at point of impact"}, -- Holy Water
["5.100.206"] = {56, 112}, -- Guillotine
["5.100.264"] = {6.5, 13}, -- Smart Fly
["5.100.272"] = {100, 125}, -- BBF
["5.100.273"] = {100, 125}, -- Bob's Brain
["5.100.274"] = {150, 300}, -- Best Bud
["5.100.275"] = {24, 48}, -- Lil Brimstone
["5.100.276"] = "Fires additional shots in random directions and leaves a larger puddle of creep", -- Isaac's Heart
["5.100.319"] = {75, 150}, -- Cain's Other Eye
["5.100.320"] = {15, 30}, -- ???'s Only Friend
["5.100.365"] = {30, 60}, -- Lost Fly
["5.100.360"] = {75, 150, 100, 200}, -- Incubus (+ Lilith exception)
["5.100.384"] = {"5-20", "10-40"}, -- Lil Gurdy
["5.100.389"] = {"7-8", "6"}, -- Rune Bag
["5.100.467"] = {10, 20}, -- Finger!
["5.100.468"] = {75, 150}, -- Shade
["5.100.491"] = {"7", "6"}, -- Acid Baby
["5.100.500"] = {"7-8", "6"}, -- Sack of Sacks
["5.100.504"] = {3.5, 7}, -- Brown Nugget
["5.100.508"] = {1.5, 3}, -- Mom's Razor
["5.100.509"] = {3.5, 7, 20, 40}, -- Bloodshot Eye
["5.100.565"] = "Double damage while friendly", -- Blood Puppy
["5.100.569"] = "If triggered, grants additional damage and speed", -- Blood Oath
["5.100.575"] = {1.5, 3}, -- The Intruder
["5.100.581"] = {15, 30}, -- Psy Fly
["5.100.584"] = "Doubles wisp tear and contact damage", -- Book of Virtues
["5.100.605"] = {36, 72}, -- The Scooper
["5.100.607"] = {3.5, 7, 5.25, 10.5}, -- Boiled Baby
["5.100.608"] = {3.5, 7}, -- Freezer Baby
["5.100.610"] = {45, 90, "a rock wave", "4 {{CR}}rock waves", 6.5, 13}, -- Bird Cage
["5.100.612"] = "Gives the Lost Soul a Holy Mantle effect", -- Lost Soul
["5.100.626"] = {25, 50}, -- Knife Piece 1
["5.100.627"] = {25, 50}, -- Knife Piece 2
["5.100.629"] = {3, 6}, -- Bot Fly
["5.100.635"] = "On use, shoots 8 tears from the player's position", -- Stitches
--TODO: check familiars 645, 649, 651, 652, 656, 667, 679, 681, 682, 697, 698; work on hive mind support
}
EID:updateDescriptionsViaTable(repBFFSSynergies, EID.descriptions[languageCode].BFFSSynergies)
---------- Trinkets ----------
local repTrinkets={
@@ -830,7 +833,7 @@ local repTrinkets={
[175] = {"175", "Strange Key", "Opens the door to the Hush floor regardless of the timer#Using {{Collectible297}} Pandora's Box consumes the key and spawns 6 items from random pools"}, -- Strange Key
[176] = {"176", "Lil Clot", "Spawns a blood clot that mimics Isaac's movement#Copies Isaac's stats, tear effects and 35% of his damage#Respawns each room"}, -- Lil Clot
[177] = {"177", "Temporary Tattoo", "{{Chest}} Clearing a {{ChallengeRoom}} Challenge Room spawns a chest#Clearing a {{BossRushRoom}} Boss Challenge Room spawns an item"}, -- Temporary Tattoo
[178] = {"178", "Swallowed M80", "Taking damage has a 50% chance for Isaac to explode"}, -- Swallowed M80
[178] = {"178", "Swallowed M80", "Taking damage has a 50% chance for Isaac to explode#Doesn't destroy Blood Donation Machines or Confessionals, while spawning pickups as if it did"}, -- Swallowed M80
[179] = {"179", "RC Remote", "Familiars mimic Isaac's movement#Hold the drop button ({{ButtonRT}}) to keep the familiars in place"}, -- RC Remote
[180] = {"180", "Found Soul", "Follows Isaac's movement and shoots spectral tears#Copies Isaac's stats, tear effects and 50% of his damage#Dies in one hit#Respawns each floor"}, -- Found Soul
[181] = {"181", "Expansion Pack", "Using an active item triggers the effect of an additional 1-2 charge active item"}, -- Expansion Pack
@@ -1085,6 +1088,85 @@ EID.descriptions[languageCode].horsepills={
[9999] = {"", "Golden Pill", "Random horse pill effect#Has a chance to destroy itself with each use"}, -- Golden Pill
}
---------- Character Info ----------
-- 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)
EID.descriptions[languageCode].birthright ={
{"Isaac", "", "All item pedestals cycle between two options"},
{"Magdalene", "", "↑ {{Heart}} +1 Health#The max amount of heart containers is raised to 18"},
{"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"},
{"???", "", "{{SoulHeart}} Soul Hearts gained from health upgrades are doubled"},
{"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"},
{"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"},
{"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, 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"},
{"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"},
{"Keeper", "", "↑ {{CoinHeart}} +1 Health#The max amount of Coin Heart containers is raised to 4"},
{"Apollyon", "", "{{Collectible477}} Using Void has a chance to spawn an item that was previously voided#Does not remove the stat bonuses#The more items voided, the higher the chance for an item to spawn upon use"},
{"The Forgotten", "", "Removes the chain binding The Soul to The Forgotten"},
{"The Forgotten Soul", "", "Removes the chain binding The Soul to The Forgotten"},
{"Bethany", "", "{{Battery}} Activating an item using soul charges is sometimes free"},
{"Jacob", "", "The character who picks up the item gains copies of three of the other character's passive items"},
{"Esau", "", "The character who picks up the item gains copies of three of the other character's passive items"},
{"Tainted Isaac", "", "Adds 4 passive item slots#Does not consume a slot itself"},
{"Tainted Magdalene", "", "{{Heart}} Adds 1 heart container that doesn't drain"},
{"Tainted Cain", "", "Doubles the amount of pickups dropped from collecting an item"},
{"Tainted Judas", "", "{{Collectible705}} Increases the range in which Dark Arts hits enemies and tears"},
{"Tainted ???", "", "{{PoopPickup}} Increases the maximum number of poops that can be carried to 29"},
{"Tainted Eve", "", "{{HalfHeart}} Red Heart clots spawn half Red Hearts on death that disappear after 2 seconds"},
{"Tainted Samson", "", "{{Collectible704}} Killing an enemy adds 3 seconds to the Berserk! timer instead of 1"},
{"Tainted Azazel", "", "{{Collectible726}} Doubles the size of Tainted Azazel's Hemoptysis sneeze attack"},
{"Tainted Lazarus", "", "The non-active form of Tainted Lazarus appears as a ghostly second character#He is invincible and deals 25% damage#Both forms receive the Birthright item"},
{"Tainted Eden", "", "Any items obtained before Birthright can no longer be rerolled#Active items can be rerolled again if they are dropped and picked back up"},
{"Tainted Lost", "", "Grants an extra life that revives Tainted Lost in the same room and deals 200 damage to nearby enemies"},
{"Tainted Lilith", "", "{{Collectible728}} Familiars that normally follow Tainted Lilith follow her Gello instead#The melee attack gains +3 damage per familiar"},
{"Tainted Keeper", "", "{{Coin}} Strongly attracts the coins dropped by defeating enemies#No effect on other coins"},
{"Tainted Apollyon", "", "Locusts continuously damage enemies without returning while the fire button is held"},
{"Tainted Forgotten", "", "{{Collectible714}} Tainted Soul gains the Recall ability to retrieve Tainted Forgotten from a distance#The Soul is invincible while the Forgotten is returning"},
{"Tainted Bethany", "", "Spawns four random item wisps of Quality {{Quality3}} and {{Quality4}} with significantly higher HP than normal"},
{"Tainted Jacob", "", "Dark Esau splits into two, creating a shadowy clone of itself#Both Esaus always charge at the same time#{{Collectible722}} Anima Sola's cooldown is reduced to 10 seconds#Using Anima Sola chains both Esaus for 6.67 seconds"},
{"Dead Tainted Lazarus", "", "The non-active form of Tainted Lazarus appears as a ghostly second character#He is invincible and deals 25% damage#Both forms receive the Birthright item"},
{"Tainted Jacob 2", "", ""},
{"Tainted Forgotten Soul", "", "{{Collectible714}} Tainted Soul gains the Recall ability to retrieve Tainted Forgotten from a distance#The Soul is invincible while the Forgotten is returning"},
}
---------- Glitched Item Descriptions ----------
EID.descriptions[languageCode].GlitchedItemText = {
@@ -1143,8 +1225,30 @@ EID.descriptions[languageCode].GlitchedItemText = {
grants = "Grants ",
}
---------- Bag of Crafting Text ----------
EID.descriptions[languageCode].CraftingBagContent = "Bag:"
EID.descriptions[languageCode].CraftingRoomContent = "Room:"
EID.descriptions[languageCode].CraftingFloorContent = "Floor:"
EID.descriptions[languageCode].CraftingSearch = "Search:"
EID.descriptions[languageCode].CraftingBagQuality = "Bag Quality:"
EID.descriptions[languageCode].CraftingBestQuality = "Best Quality:"
EID.descriptions[languageCode].CraftingHideKey = "Hide:"
EID.descriptions[languageCode].CraftingPreviewKey = "Preview:"
-- {1} will be converted to the number of recipes
EID.descriptions[languageCode].CraftingMore = "...+{1} more"
-- {1} will be converted into the number of available items
EID.descriptions[languageCode].CraftingNumAvailableItems = "{1} of 8 items available"
EID.descriptions[languageCode].CraftingWarningAvailableItems = "Needs at least 8 to show crafting recipes!"
-- {1} will be converted into the name of the key that toggles the BoC visibility
EID.descriptions[languageCode].CraftingIsHidden = "Currently Hidden (Unhide with {1})"
-- {1} will be converted into the name of the key that toggles the BoC Search
EID.descriptions[languageCode].CraftingResults = "(Scroll: Hold {{CONFIG_BoC_Toggle}} + {{ButtonY}} {{ButtonA}}, Lock: {{ButtonX}}, Refresh: {{ButtonB}}, Reset Bag: Hold {{ButtonRB}}, Search: {1})"
---------- Misc. Text ----------
EID.descriptions[languageCode].ResultsWithX = "(Results with {1})"
EID.descriptions[languageCode].VariableCharge = "{1} charge:"
EID.descriptions[languageCode].poopSpells = {
{"Poop", "Normal poop that can drop pickups"},
{"Corny Poop", "Spawns blue flies while intact"},
@@ -1170,29 +1274,7 @@ EID.descriptions[languageCode].VoidNames[2] = "{1} Fire rate"
EID.descriptions[languageCode].spindownError = "Item disappears"
EID.descriptions[languageCode].CraftingBagContent = "Bag:"
EID.descriptions[languageCode].CraftingRoomContent = "Room:"
EID.descriptions[languageCode].CraftingFloorContent = "Floor:"
EID.descriptions[languageCode].CraftingSearch = "Search:"
EID.descriptions[languageCode].CraftingBagQuality = "Bag Quality:"
EID.descriptions[languageCode].CraftingBestQuality = "Best Quality:"
EID.descriptions[languageCode].CraftingHideKey = "Hide:"
EID.descriptions[languageCode].CraftingPreviewKey = "Preview:"
-- {1} will be converted to the number of recipes
EID.descriptions[languageCode].CraftingMore = "...+{1} more"
-- {1} will be converted into the number of available items
EID.descriptions[languageCode].CraftingNumAvailableItems = "{1} of 8 items available"
EID.descriptions[languageCode].CraftingWarningAvailableItems = "Needs at least 8 to show crafting recipes!"
-- {1} will be converted into the name of the key that toggles the BoC visibility
EID.descriptions[languageCode].CraftingIsHidden = "Currently Hidden (Unhide with {1})"
-- {1} will be converted into the name of the key that toggles the BoC Search
EID.descriptions[languageCode].CraftingResults = "(Scroll: Hold {{CONFIG_BoC_Toggle}} + {{ButtonY}} {{ButtonA}}, Lock: {{ButtonX}}, Refresh: {{ButtonB}}, Reset Bag: Hold {{ButtonRB}}, Search: {1})"
EID.descriptions[languageCode].BlankCardEffect = "Blank Card effect:"
EID.descriptions[languageCode].VariableCharge = "{1} charge:"
EID.descriptions[languageCode].FlipItemToggleInfo = "(Hold {{CONFIG_BoC_Toggle}} to show description)"
@@ -1209,33 +1291,33 @@ EID.descriptions[languageCode].PandorasBoxStrangeKeyEffect = "Instead, consumes
EID.descriptions[languageCode].AchievementWarningTitle = "{{ColorYellow}}{{Warning}} WARNING {{Warning}}"
EID.descriptions[languageCode].AchievementWarningText = "Achievements are disabled!#In order to enable progression and achievements, you first need to kill Mom (Depths II) without any mods enabled.#(If you've defeated Mom, this message is a bug and can be ignored)#(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 improved modded recipe support#(This warning can be disabled in the config)"
EID.descriptions[languageCode].ResultsWithX = "(Results with {1})"
-- Conditional descriptions
-- Conditional descriptions - DO NOT TRANSLATE THE FIRST PART IN ["BRACKETS"]
-- 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 = {
["Tainted Revive"] = "{1} simply revives",
["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.642"] = "Single use for {1}", -- Magic Skin + Lost
["5.100.240"] = "{1} keeps the stat changes when he drops it", -- Experimental Treatment + Tainted Isaac
["5.100.644"] = "{1} keeps the stat increase when he drops it", -- Consolation Prize + Tainted Isaac
["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.694"] = "Works for {1}, letting him survive 4 hits", -- Heartbreak + Losts
["5.100.694 (Keeper)"] = "{1} gains 1 Broken Heart, fatal hits grant 1 Broken Heart, and he dies at 3 Broken Hearts", -- Heartbreak + Normal Keeper
["5.100.694 (Tainted Keeper)"] = "{1} gains 1 Broken Heart and dies at 2 Broken Hearts#{{Warning}} {1} will die in one hit after taking this item", -- Heartbreak + Tainted Keeper
["5.100.201"] = "Refills {1}'s charge on pickup", --Iron Bar
["5.350.172"] = "{1} removes the teleportation effect", -- Cursed Penny
["5.100.201"] = "Refills {1}'s charge on pickup", -- Iron Bar + Notched Axe
["5.350.172"] = "{1} removes the teleportation effect", -- Cursed Penny + Black Candle
["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.100.501"] = "{1} can gain additional coin containers#Health up items can grant an extra container per 25 coins", -- Greed's Gullet (Health up bug)
["5.100.501 (Deep Pockets)"] = "+1 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
@@ -1255,52 +1337,6 @@ local repConditions={
}
EID:updateDescriptionsViaTable(repConditions, EID.descriptions[languageCode].ConditionalDescs)
local repBFFSSynergies = {
["5.100.178"] = "Double water damage and spawns a blue flame at point of impact", -- Holy Water
["5.100.276"] = "Fires additional shots in random directions and leaves a larger puddle of creep", -- Isaac's Heart
["5.100.360"] = "Shoots tears that deal 150% of your damage. 200% for Lilith", -- Incubus
["5.100.569"] = "+2 full hearts when health is drained", -- Blood Oath
["5.100.610"] = "Spawns 4 rock waves in an x pattern. Doubles bird damage. Damage of waves unaffected.", -- Bird Cage
["5.100.612"] = "Gives the Lost Soul a Holy Mantle effect", -- Lost Soul
["5.100.635"] = "On use, fires 8 tears from the players position that have the same effects as his tears", -- Stitches
}
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)
+128 -6
View File
@@ -301,6 +301,7 @@ function EID:getTableName(Type, Variant, SubType)
end
elseif idString == "-999.-1" then return "sacrifice"
elseif idString == "1000.76" then return "dice"
elseif idString == "1.0" then return "players"
else return "custom"
end
end
@@ -610,6 +611,8 @@ function EID:getObjectName(Type, Variant, SubType)
return EID:getDescriptionEntry("sacrificeHeader").." ("..SubType.."/"..#EID.descriptions["en_us"].sacrifice..")"
elseif tableName == "dice" then
return EID:getDescriptionEntry("diceHeader").." ("..SubType..")"
elseif tableName == "players" then
return EID:getPlayerName(SubType)
elseif tableName == "custom" then
local xmlName = EID:GetEntityXMLName(Type, Variant, SubType)
return name or xmlName or Type.."."..Variant.."."..SubType
@@ -733,7 +736,12 @@ function EID:replaceNameMarkupStrings(text)
for e in string.gmatch(strTrimmed, "([^.]*)") do
table.insert(entityID, tonumber(e))
end
name = EID:getObjectName(entityID[1], entityID[2], entityID[3])
local iconText = ""
if showIcon then
if entityID[1] == 1 then iconText = "{{Player" .. entityID[3] .. "}} "
else iconText = "{{" .. EID:GetIconNameByVariant(entityID[2]) .. entityID[3] .. "}} " end
end
name = iconText .. EID:getObjectName(entityID[1], entityID[2], entityID[3])
elseif indicator == "C" then -- Collectible
name = (showIcon and "{{Collectible"..id.."}} " or "")..EID:getObjectName(5, 100, id)
elseif indicator == "T" then -- Trinket
@@ -780,9 +788,24 @@ end
-- Tries to read special markup used to generate icons for all Collectibles/Trinkets and the default Cards/Pills
-- Returns an inlineIcon Object or nil if no parsing was possible
function EID:createItemIconObject(str)
local collID,numReplace = string.gsub(str, "Collectible", "")
local item = nil
local subTypeIdentifier = 0
-- Check for {{Item#.##.###}} markup; easiest way to handle it is to just call this function again
local itemID,numReplaceGeneric = string.gsub(str, "Item", "")
if numReplaceGeneric > 0 and itemID ~= "" then
local Type, Var, Sub = EID:SplitTVS(itemID)
if Type == 1 then return EID:getIcon("Player" .. Sub)
elseif Type == 5 then
if Var == 100 then return EID:createItemIconObject("Collectible" .. Sub)
elseif Var == 350 then return EID:createItemIconObject("Trinket" .. Sub)
elseif Var == 300 then return EID:createItemIconObject("Card" .. Sub)
elseif Var == 70 then return EID:createItemIconObject("Pill" .. Sub)
end
end
end
local collID,numReplace = string.gsub(str, "Collectible", "")
if numReplace > 0 and collID ~= "" and tonumber(collID) ~= nil then
item = EID.itemConfig:GetCollectible(tonumber(collID))
subTypeIdentifier = tonumber(collID)
@@ -1163,38 +1186,137 @@ function EID:updateDescriptionsViaTable(changeTable, tableToUpdate)
end
end
-- Converts e.g. "5.100.69" format strings into 5, 100, and 69; returns 0 for any not included
function EID:SplitTVS(tvsString)
local Type, Var, Sub = 0, 0, 0
local tvsTable = {}
for i in string.gmatch(tvsString, "[^.]+") do table.insert(tvsTable, tonumber(i)) end
Type = tvsTable[1] or Type; Var = tvsTable[2] or Var; Sub = tvsTable[3] or Sub;
return Type, Var, Sub
end
-- Checks if any player has a given item ID (or anyone is a given player ID)
function EID:PlayersHaveItem(Type, Var, Sub)
-- convert "5.100.69" format strings into type, var, sub
if type(Type) == "string" then
Type, Var, Sub = EID:SplitTVS(Type)
-- assume collectible if only Type was given
elseif Var == nil then Sub = Type; Type = 5; Var = 100 end
if Type == 1 then return EID:PlayersHaveCharacter(Sub)
elseif Type == 5 then
if Var == 100 then return EID:PlayersHaveCollectible(Sub)
elseif Var == 350 then return EID:PlayersHaveTrinket(Sub)
elseif Var == 300 then return EID:PlayersHaveCard(Sub)
elseif Var == 70 then return EID:PlayersHavePill(Sub)
end
end
return false
end
-- Checks if the given player has the given item ID (or is the given player ID)
function EID:PlayerHasItem(player, Type, Var, Sub)
-- convert "5.100.69" format strings into type, var, sub
if type(Type) == "string" then
Type, Var, Sub = EID:SplitTVS(Type)
-- assume collectible if only Type was given
elseif Var == nil then Sub = Type; Type = 5; Var = 100 end
if Type == 1 then return player:GetPlayerType() == Sub
elseif Type == 5 then
if Var == 100 then return player:HasCollectible(Sub)
elseif Var == 350 then return player:HasTrinket(Sub)
elseif Var == 300 then return EID:PlayerHasCard(player, Sub)
elseif Var == 70 then return EID:PlayerHasPill(player, Sub)
end
end
return false
end
-- Checks if any player has a given collectible ID, for modifiers
function EID:PlayersHaveCollectible(collectibleID)
for i = 0, game:GetNumPlayers() - 1 do
local player = Isaac.GetPlayer(i)
if player:HasCollectible(collectibleID) then
return true, player
return true, player, i
end
end
return false
end
function EID:PlayersVoidedCollectible(collectibleID)
for i = 0, game:GetNumPlayers() - 1 do
local player = Isaac.GetPlayer(i)
if player:HasCollectible(477) and EID.absorbedItems[tostring(i)] and EID.absorbedItems[tostring(i)][tostring(collectibleID)] then
return true, player, i
end
end
return false
end
function EID:PlayerVoidedCollectible(player, collectibleID)
local i = EID:getPlayerID(player)
if player:HasCollectible(477) and EID.absorbedItems[tostring(i)] and EID.absorbedItems[tostring(i)][tostring(collectibleID)] then
return true
end
end
-- Checks if any player has a given trinket ID, for modifiers
function EID:PlayersHaveTrinket(trinketID)
for i = 0, game:GetNumPlayers() - 1 do
local player = Isaac.GetPlayer(i)
if player:HasTrinket(trinketID) then
return true, player
return true, player, i
end
end
return false
end
function EID:PlayersHaveCard(cardID)
for i = 0, game:GetNumPlayers() - 1 do
local player = Isaac.GetPlayer(i)
for j = 0, (EID.isRepentance and 3 or 1) do
if player:GetCard(j) == cardID then
return true, player, i
end
end
end
return false
end
function EID:PlayerHasCard(player, cardID)
for j = 0, (EID.isRepentance and 3 or 1) do
if player:GetCard(j) == cardID then
return true
end
end
end
function EID:PlayersHavePill(pillID)
for i = 0, game:GetNumPlayers() - 1 do
local player = Isaac.GetPlayer(i)
for j = 0, (EID.isRepentance and 3 or 1) do
if player:GetPill(j) == pillID then
return true, player, i
end
end
end
return false
end
function EID:PlayerHasPill(player, pillID)
for j = 0, (EID.isRepentance and 3 or 1) do
if player:GetPill(j) == pillID then
return true
end
end
end
-- Checks if someone is playing as a certain character, for modifiers
-- includeTainted means we don't care if the player is Tainted or not (for things that, say, apply to Lost/Tainted Lost)
function EID:PlayersHaveCharacter(playerType, includeTainted)
for i = 0, game:GetNumPlayers() - 1 do
local player = Isaac.GetPlayer(i)
if player:GetPlayerType() == playerType then
return true, player
return true, player, i
end
if includeTainted and EID.isRepentance and EID.TaintedToRegularID[player:GetPlayerType()] == playerType then
return true, player
return true, player, i
end
end
return false
+40 -20
View File
@@ -19,12 +19,13 @@ Argument 4: Optional table that can define a variety of different settings
-- General conditions
-- Tarot Cloth (AB+ and Rep) (fallback to English because most are just find+replace)
if not EID.isRepentance then
EID:AddCollectibleConditional("5.300", 451, nil, {locTable = "tarotClothBuffsAB", replaceColor = "ColorShinyPurple", noFallback = false})
else EID:AddCollectibleConditional("5.300", 451, nil, {locTable = "tarotClothBuffs", replaceColor = "ColorShinyPurple", noFallback = false}) end
EID:AddCollectibleConditional("5.100", 356, EID.CheckForCarBattery, {locTable = "carBattery", replaceColor = "BlinkYellowGreen", noFallback = false}) -- Car Battery
EID:AddItemConditional("5.300", 451, nil, {locTable = "tarotClothBuffsAB", replaceColor = "ColorShinyPurple", noFallback = false})
else EID:AddItemConditional("5.300", 451, nil, {locTable = "tarotClothBuffs", replaceColor = "ColorShinyPurple", noFallback = false}) end
EID:AddItemConditional("5.100", 356, EID.CheckForCarBattery, {locTable = "carBattery", replaceColor = "BlinkYellowGreen", noFallback = false}) -- Car Battery
EID:AddItemConditional("5.100", 247, EID.CheckForBFFS, {locTable = "BFFSSynergies", replaceColor = "BlinkPink", noFallback = false}) -- BFFS!
-- IV Bag conditions (need to be applied in a specific order)
EID:AddCollectibleConditional(135, 75, "PHD") -- PHD improves IV Bag
EID:AddItemConditional(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, EID.IsHardMode, "Hard Mode") end -- Hard Mode pays out less
@@ -55,10 +56,13 @@ EID:AddPlayerConditional(501, 14) -- Keeper + Greed's Gullet
EID:AddPlayerConditional(230, 14, "Keeper") -- Keeper + Abaddon
-- Item Synergies
EID:AddSynergyConditional(7, 34) -- Martyr + Book of Belial/The Devil
EID:AddCollectibleConditional("5.300.16", 7) -- Martyr + Book of Belial/The Devil
EID:AddSynergyConditional(7, {34, "5.300.16"}) -- 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
EID:AddItemConditional("5.300.48", 286, nil, { lineColor = "ColorSilver" }) -- Blank Card + ? Card
EID:AddSynergyConditional({475, "5.300.46"}, {210}, "Suicide 1", "Suicide 2") -- Plan C + Gnawed Leaf
EID:AddSynergyConditional({475, "5.300.46"}, {276, 313}, "Suicide 1", "Suicide 2") -- Plan C, Suicide King + Isaac's Heart, Holy Mantle
EID:AddSynergyConditional(368, {69, 118, 316, 229, 395, 114, 329}, "Almost No Effect") -- Epiphora + Charge Shots / Ludovico
-- 9 Volt + 1 Room/Timed Charges
-- This got a bit complicated, since it looks at a trait of every collectible + you having another, but hey, it's compact
@@ -67,24 +71,37 @@ EID:AddConditional(116, function() return EID:CheckPlayersForActiveChargeType(ni
EID:AddConditional("5.100", function(descObj) return EID:PlayersHaveCollectible(116) and EID:CheckActiveChargeType(descObj.ObjSubType, 1) end, "1 Room", { bulletpoint = "Collectible116" })
EID:AddConditional("5.100", function(descObj) return EID:PlayersHaveCollectible(116) and EID:CheckActiveChargeType(descObj.ObjSubType, nil, 1) end, "Timed", { bulletpoint = "Collectible116" })
-- Overridden by Brimstone
-- Items that have no effect from multiple copies (AddSelfConditional adds it when holding Diplopia automatically)
-- 3 Dollar Bill,
EID:AddSelfConditional({191}, "No Effect (Copies)")
if not EID.isRepentance then
-- Anti-Gravity,
EID:AddSelfConditional({222}, "No Effect (Copies)")
end
if EID.isRepentance then
-- 2Spooky,
EID:AddSelfConditional({554}, "No Effect (Copies)")
end
-- Overridden / Overrides by Epic Fetus, Brimstone, Mom's Knife
-- 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)
-- Remember some of these will be AB+ only (not EID.isRepentance)
-- AB+ only conditionals
if not EID.isRepentance then
EID:AddCollectibleConditional(205, {116, 276}, "No Effect") -- Sharp Plug + 9 Volt, Isaac's Heart
EID:AddCollectibleConditional(205, 108, "Wafer") -- Sharp Plug + The Wafer
EID:AddItemConditional(205, {116, 276}, "No Effect") -- Sharp Plug + 9 Volt, Isaac's Heart
EID:AddItemConditional(205, 108, "Wafer") -- Sharp Plug + The Wafer
EID:AddSynergyConditional(205, 441, "Can't Charge", "Can't Be Charged") -- Sharp Plug + Mega Blast
EID:AddConditional(208, function() return EID:IsHardMode() end) -- Champion Belt
end
-- Rep only conditionals
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
EID:AddItemConditional("5.100", 706, nil, { locTable = "abyssSynergies", lineColor = "ColorRed" }, false) -- Abyss (no item reminder)
EID:AddItemConditional("5.100", 59, nil, { locTable = "bookOfBelialBuffs" }) -- Belial Birthright
EID:AddItemConditional("5.100", 664, nil, { locTable = "bingeEaterBuffs" }) -- Binge Eater
-- Co-op friendly items
-- todo: which? (extension cord)
@@ -107,6 +124,8 @@ if EID.isRepentance then
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(694, 14, "Keeper", nil, false) -- Keeper + Heartbreak
EID:AddPlayerConditional(694, 33, "Tainted Keeper") -- Tainted Keeper + 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
@@ -115,15 +134,16 @@ if EID.isRepentance then
EID:AddPlayerConditional(205, 22, "Tainted Magdalene")-- Tainted Magdalene + Sharp Plug
-- 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:AddItemConditional(201, 147) -- Iron Bar refills Notched Axe
EID:AddItemConditional("5.350.172", 260) -- Black Candle + Cursed Penny
EID:AddItemConditional(501, 416) -- Greed's Gullet + Deep Pockets
EID:AddSynergyConditional(245, { 2, 153, 169 }, nil, "20/20") -- 20/20 + The Inner Eye, Mutant Spider, Polyphemus
EID:AddSynergyConditional(330, 561, "Overridden", "Overrides") -- Soy Milk + Almond Milk
--TODO: SYNERGY CONDITIONAL DOESN'T WORK WITH TRINKETS YET, nothing I have works with trinkets yet really. need to detect trinket strings and handle them properly, and make a ConditionalTrinketCheck or something
--EID:AddSynergyConditional(596, {"5.350.118", 704, 62, "5.350.60", 520, 411, 621, "5.350.58", "5.350.189", 657}, "Ice Tears") -- Uranus + On Kill Effects
EID:AddSynergyConditional(596, {704, 62, 520, 411, 621, 657}, "Ice Tears") -- Uranus + On Kill Effects
EID:AddSynergyConditional({577, 656}, {276, 313}, "Suicide 1", "Suicide 2") -- Damocles + Isaac's Heart, Holy Mantle
EID:AddSynergyConditional({577, 656, 475, "5.300.46"}, {674, 694}, "Suicide 1", "Suicide 2") -- Damocles, Plan C, Suicide King + Spirit Shackles, Heartbreak
EID:AddSynergyConditional(596, {"5.350.118", 704, 62, "5.350.60", 520, 411, 621, "5.350.58", "5.350.189", 657}, "Ice Tears") -- Uranus + On Kill Effects
EID:AddPlayerConditional(596, 27, "Ice Tears") -- Uranus + Tainted Samson
-- 9 Volt, Sharp Plug + Special Charge Actives
+72 -45
View File
@@ -44,28 +44,41 @@ function EID:AddConditional(IDs, funcText, modText, extraTable, insertPoint)
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
-- Easy to use functions for conditionals that rely on having a specific item/character
-- By default, they'll have a bulletpoint for the item/char, and {1} becomes the item/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)
function EID:AddItemConditional(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
local newTable = {}; for k, v in pairs(extraTable) do newTable[k] = v end
if newTable.variableText == nil then newTable.variableText = "{{NameOnlyC" .. ownedID .. "}}" end
if newTable.bulletpoint == nil then newTable.bulletpoint = "Collectible" .. ownedID end
EID:AddConditional(IDs, function() return EID:ConditionalCollCheck(ownedID, checkInReminder) end, modText, newTable)
local tvs = ownedID; if type(ownedID) == "number" then tvs = "5.100." .. ownedID end
if newTable.variableText == nil then newTable.variableText = "{{NameOnly" .. tvs .. "}}" end
if newTable.bulletpoint == nil then newTable.bulletpoint = "Item" .. tvs end
EID:AddConditional(IDs, function() return EID:ConditionalItemCheck(ownedID, checkInReminder) end, modText, newTable)
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)
EID:AddItemConditional(IDs, ownedIDs, modText1, extraTable1, checkInReminder)
EID:AddItemConditional(ownedIDs, IDs, modText2 or modText1, extraTable2 or extraTable1, checkInReminder)
end
-- For adding a conditional that looks at owning itself; item reminder is of course disabled
-- Holding Diplopia should probably also trigger this type of conditional, so it's included by default
function EID:AddSelfConditional(ownedIDs, modText, extraTable, includeDiplopia)
if type(ownedIDs) ~= "table" then ownedIDs = { ownedIDs } end
if includeDiplopia == nil then includeDiplopia = true end
for _, ownedID in ipairs(ownedIDs) do
if includeDiplopia then EID:AddItemConditional(ownedID, {ownedID, 347}, modText, extraTable, false)
else EID:AddItemConditional(ownedID, ownedID, modText, extraTable, false) end
end
end
-- includeTainted is for if you want to check the normal and tainted version of a character (true by default)
@@ -84,47 +97,36 @@ end
----- Evaluation Functions -----
function EID:ConditionalItemCheck(itemID, checkInReminder)
if EID.InsideItemReminder then
if not checkInReminder then return false end
local player = EID.ItemReminderPlayerEntity
if EID:PlayerHasItem(player, itemID) or EID:PlayerVoidedCollectible(player, itemID) then return true end
else
return EID.collectiblesOwned[itemID] or EID.collectiblesAbsorbed[itemID]
end
end
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
local player = EID.ItemReminderPlayerEntity
if player:GetPlayerType() == playerType then
return true
elseif includeTainted and EID.isRepentance and EID.TaintedToRegularID[player:GetPlayerType()] == 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()
return game:IsGreedMode()
end
function EID:IsGreedModePlusTarot()
return game:IsGreedMode() and EID:ConditionalCollCheck(451, true)
return game:IsGreedMode() and EID:ConditionalItemCheck(451, true)
end
function EID:IsHardMode()
@@ -156,6 +158,22 @@ function EID:CheckForCarBattery(descObj)
else return descObj.ObjSubType end
end
function EID:CheckForBFFS(descObj)
local config = EID.itemConfig:GetCollectible(descObj.ObjSubType)
-- Check for no effect, then the table of synergies (will we end up not doing the defualt "double damage" text?)
if EID.BFFSNoSynergy[descObj.ObjSubType] then return "No Effect" end
if config ~= nil and config.Type == ItemType.ITEM_FAMILIAR then
return descObj.fullItemString
end
return "N/A"
end
function EID:CheckForHiveMind(descObj)
if EID.HiveMindFamiliars[descObj.ObjSubType] then return descObj.fullItemString end
return "N/A"
end
-- Check for a player having an active item with a specific quantity of charges, or charge type
-- 0 = normal, 1 = timed, 2 = special
function EID:CheckPlayersForActiveChargeType(maxCharge, chargeType)
@@ -236,7 +254,7 @@ function EID:applyConditionals(descObj)
local typeVar = descObj.ObjType.."."..descObj.ObjVariant -- for general conditions (Tarot Cloth, Book of Virtues)
local typeVarSub = descObj.fullItemString -- for specific conditions
-- Combine general+specific conditions into one table
-- Combine specific+generic conditions into one table (in that order)
local conds = {}
if EID.DescriptionConditions[typeVarSub] then TableConcat(conds, EID.DescriptionConditions[typeVarSub]) end
if EID.DescriptionConditions[typeVar] then TableConcat(conds, EID.DescriptionConditions[typeVar]) end
@@ -286,24 +304,33 @@ function EID:applyConditionals(descObj)
-- Table with 2+ entries = find and replace pairs
-- Entry 1 is replaced with entry 2, entry 3 is replaced with entry 4, etc.
-- If there's an odd number of entries, the last one is appended
else
local pos = 1
while pos < #text do
local toFind = text[pos]
local replaceWith = EID:ReplaceVariableStr(text[pos + 1], 1, variableText)
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
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 replaceWith
end
end)
-- Basic find+replace for non-numbers
if text[pos + 1] then
local replaceWith = EID:ReplaceVariableStr(text[pos + 1], 1, variableText)
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
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 replaceWith
end
end)
-- Basic find+replace for non-numbers
else
descObj.Description = replace(descObj.Description, tostring(toFind), replaceWith, 1)
end
else
descObj.Description = replace(descObj.Description, tostring(toFind), replaceWith, 1)
toFind = EID:ReplaceVariableStr(toFind, 1, variableText)
local iconStr = "#"
if bulletpoint then iconStr = iconStr .. "{{" .. bulletpoint .. "}} " end
if cond.lineColor then iconStr = iconStr .. "{{" .. cond.lineColor .. "}}" end
EID:appendToDescription(descObj, iconStr .. toFind:gsub("#", iconStr))
end
pos = pos + 2
end
+18 -5
View File
@@ -731,6 +731,11 @@ EID.InlineColors = {
local c = EID.InlineColors
return SwagColors({c["ColorYellow"], c["ColorRed"]})
end,
-- Pink for BFFs <3, the two shades come from Nancy Bombs and Eraser
["BlinkPink"] = function(_)
local c = EID.InlineColors
return SwagColors({KColor(1, 0.698, 0.886, 1), KColor(1, 0.5, 1, 1)})
end,
-- Shiny purple color effect
["ColorShinyPurple"] = function(_)
return SwagColors({KColor(0.812, 0.627, 1, 1), KColor(0.62, 0.251, 1, 1)}, 40)
@@ -940,17 +945,21 @@ if EID.isRepentance then
end
-- Familiars that have no effect from BFFS!
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
EID.BFFSNoSynergy = { [10] = true, [11] = true, [81] = true, [178] = true, [238] = true, [239] = true, [243] = true, [265] = true, [268] = true, [269] = true, [276] = true, [278] = true, [280] = true, [281] = true, [387] = true, [404] = true, [431] = true, [433] = true, [436] = true, [467] = true, [469] = true, [472] = true, [492] = true, [504] = true, [516] = true, [528] = true, [542] = true, [543] = true }
if EID.isRepentance then
EID.BFFSNoSynergy[504] = true -- Brown Nugget
EID.BFFSNoSynergy[178] = false -- Holy Water
EID.BFFSNoSynergy[276] = false -- Isaac's Heart
EID.BFFSNoSynergy[405] = true -- GB Bug
EID.BFFSNoSynergy[467] = false -- Finger!
EID.BFFSNoSynergy[504] = false -- Brown Nugget
EID.BFFSNoSynergy[567] = true -- Paschal Candle
EID.BFFSNoSynergy[615] = true -- Lil Dumpy (I couldn't notice any change anyway)
EID.BFFSNoSynergy[651] = true -- Star of Bethlehem
EID.BFFSNoSynergy[697] = true -- Vanishing Twin
end
-- Familiars that have a BFFS! effect from Hive Mind
EID.HiveMindFamiliars = {}
-- Familiars that count for Hive Mind in Repentance (although it could give them No Effect if it just increases size)
EID.HiveMindFamiliars = { [10] = true, [57] = true, [128] = true, [170] = true, [264] = true, [272] = true, [274] = true, [279] = true, [320] = true, [364] = true, [365] = true, [403] = true, [426] = true, [430] = true, [504] = true, [511] = true, [575] = true, [581] = true, [629] = true, }
-- Tainted character's respective normal version ID, for conditionals that apply to both versions of the character
-- To help with other character pairs, Esau = Jacob, Dead Tainted Lazarus = Tainted Lazarus, Tainted Soul = Tainted Forgotten
@@ -971,6 +980,10 @@ EID.blankCardHidden = {[32]=true,[33]=true,[34]=true,[35]=true,[36]=true,[37]=tr
-- Cards that are treated as runes
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,}
-- "Evil" item IDs for Black Feather
EID.blackFeatherItems = {[215]=true,[216]=true,[230]=true,[260]=true,[262]=true,[339]=true,[344]=true}
if EID.isRepentance then EID.blackFeatherItems[654] = true end
EID.blackFeatherTrinkets = {[17]=true,[22]=true}
---------------- BAG OF CRAFTING DATA ------------------
+11 -9
View File
@@ -12,6 +12,7 @@ EID.ItemReminderSelectedCategory = 0 -- Currently selected category
EID.ItemReminderSelectedPlayer = 0 -- Currently selected player
EID.ItemReminderSelectedItem = 0 -- Currently selected Item
EID.InsideItemReminder = false -- Disable some modifiers, when building the Item Reminder description
EID.ItemReminderPlayerEntity = nil -- for description modifiers to reference
-- TODO:
-- crooked penny cheats. 404/liberty cap/broken syringe/etc. "what item is it"
@@ -72,7 +73,6 @@ EID.ItemReminderDescriptionModifier = {
---------------- Passive Items ----------------
["5.100.392"] = { -- Zodiac
isHiddenInfo = true,
isRepentance = true,
modifierFunction = function(descObj, player)
local zodiacItem = player:GetZodiacEffect()
if zodiacItem > 0 then
@@ -121,11 +121,10 @@ EID.ItemReminderDescriptionModifier = {
["5.100.44"] = { -- Teleport! location
isCheat = true,
isRepentance = true,
-- The result preview changes as soon as we activate Teleport, which looks awkward, so try to not display the result while mid-teleport.
-- Doesn't work perfectly and only in Rep
modifierFunction = function(descObj, player)
if player:GetSprite():GetAnimation() ~= "TeleportUp" then
-- The result preview changes as soon as we activate Teleport, which looks awkward, so try to not display the result while mid-teleport.
-- Doesn't work perfectly and only in Rep
if not EID.isRepentance or player:GetSprite():GetAnimation() ~= "TeleportUp" then
EID:ItemReminderAddResultHeaderSuffix(descObj)
descObj.Description = EID:Teleport1Prediction(EID:GetItemSeed(player, 44))
end
@@ -310,10 +309,12 @@ function EID:ItemReminderAddDescription(player, entityType, variant, subType, ex
local specialDesc = EID.ItemReminderDescriptionModifier[objectID]
if specialDesc and type(specialDesc.modifierFunction) == "function" then
-- dont add, if description modifier is a cheat and cheats are disabled
local evalShowCheat = not (specialDesc.isCheat and not EID.Config["ItemReminderShowRNGCheats"])
local evalShowHidden = not (specialDesc.isHidden and not EID.Config["ItemReminderShowHiddenInfo"])
if evalShowCheat or evalShowHidden then
-- don't add, if description modifier is a cheat and cheats are disabled
local evaluateFunction = true
if (specialDesc.isCheat and not EID.Config["ItemReminderShowRNGCheats"]) then evaluateFunction = false end
if (specialDesc.isHiddenInfo and not EID.Config["ItemReminderShowHiddenInfo"]) then evaluateFunction = false end
if (specialDesc.isRepentance and not EID.isRepentance) then evaluateFunction = false end
if evaluateFunction then
specialDesc.modifierFunction(descObj, player)
end
end
@@ -598,6 +599,7 @@ function EID:ItemReminderGetDescription()
for key, _ in pairs(EID.ItemReminderBlacklist) do currentBlacklist[key] = true end
local player = EID:ItemReminderGetAllPlayers()[EID.ItemReminderSelectedPlayer + 1] or EID.player -- use main player as fallback
EID.ItemReminderPlayerEntity = player -- for description modifiers to reference
if EID.ItemReminderSelectedCategory == 0 or EID.Config["ItemReminderDisplayMode"] == "Classic" then
-- execute all functions defined per category
+19 -53
View File
@@ -3,12 +3,12 @@ local game = Game()
EID.TabPreviewID = 0
-- Modifiers switching the previewed description can cause infinite loops or undesired text, use this to help prevent it
EID.inModifierPreview = false
-- The "Hold Map Helper" needs to know if it shouldn't display because we're in a Hold Tab desc
-- The "Item Reminder" needs to know if it shouldn't display because we're in a Hold Tab desc
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!
EID.collectiblesToCheck[CollectibleType.COLLECTIBLE_VOID] = true
EID.collectiblesToCheck[CollectibleType.COLLECTIBLE_BFFS] = true
EID.collectiblesToCheck["5.300.41"] = true -- Black Rune
local maxSlot = 1
-- Repentance modifiers
if EID.isRepentance then
@@ -25,9 +25,6 @@ if EID.isRepentance then
end
EID.collectiblesOwned = {}
EID.collectiblesAbsorbed = {}
EID.blackRuneOwned = false
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.LastCollectibleCheck = 0
function EID:CheckPlayersCollectibles()
@@ -35,30 +32,17 @@ function EID:CheckPlayersCollectibles()
-- (has to be checked regularly due to mechanics like D4 / Tainted Eden)
if EID.GameUpdateCount >= EID.LastCollectibleCheck + 15 then
EID.LastCollectibleCheck = EID.GameUpdateCount
local numPlayers = game:GetNumPlayers()
local players = {}; for i = 0, numPlayers - 1 do players[i] = Isaac.GetPlayer(i) end
for v,_ in pairs(EID.collectiblesToCheck) do
EID.collectiblesOwned[v] = false
EID.collectiblesAbsorbed[v] = false
for i = 0, numPlayers - 1 do
if players[i]:HasCollectible(v) then
EID.collectiblesOwned[v] = i
break
-- Check for the item being inside this player's Void
-- note: currently Absorb checks are only done as a backup, will always be false if it's owned legitimately
elseif EID.absorbedItems[tostring(i)] and EID.absorbedItems[tostring(i)][tostring(v)] and players[i]:HasCollectible(477) then
EID.collectiblesAbsorbed[v] = i
end
end
end
-- other Card in inventory checks could be done in this loop here if ever desired
EID.blackRuneOwned = false
for i = 0, numPlayers - 1 do
for j = 0, maxSlot do
if players[i]:GetCard(j) == Card.RUNE_BLACK then
EID.blackRuneOwned = i
break
end
-- Check for any player having the item, set collectiblesOwned to that player's ID
local result, player, playerNum = EID:PlayersHaveItem(v)
if result then EID.collectiblesOwned[v] = playerNum
-- Check for the item being inside a player's Void if it's a collectible
-- note: currently Absorb checks are only done as a backup, will always be false if it's owned legitimately
elseif type(v) == "number" then
result, player, playerNum = EID:PlayersVoidedCollectible(v)
if result then EID.collectiblesAbsorbed[v] = playerNum end
end
end
end
@@ -93,7 +77,7 @@ local function VoidCallback(descObj, isRune)
if EID.GameUpdateCount >= lastVoidCheck + 30 or EID.RecheckVoid then
EID:VoidRoomCheck()
if EID.collectiblesOwned[477] then EID:VoidRNGCheck(Isaac.GetPlayer(EID.collectiblesOwned[477]), false) end
if EID.blackRuneOwned then EID:VoidRNGCheck(Isaac.GetPlayer(EID.blackRuneOwned), true) end
if EID.collectiblesOwned["5.300.41"] then EID:VoidRNGCheck(Isaac.GetPlayer(EID.collectiblesOwned["5.300.41"]), true) end
lastVoidCheck = EID.GameUpdateCount
EID.RecheckVoid = false
end
@@ -229,24 +213,25 @@ local function SacrificeRoomCallback(descObj)
return descObj
end
-- Handle Black Feather dynamic damage up text
-- TODO: Make this co-op friendly, add conditionals to the black feather items
local function BlackFeatherCallback(descObj)
local itemCounter = 0
for itemID, _ in pairs(EID.blackFeatherItems) do
itemCounter = itemCounter + EID.player:GetCollectibleNum(itemID)
end
for trinketID, _ in pairs(EID.blackFeatherTrinkets) do
-- in AB+, GetTrinketMultiplier doesn't take an ID, it's just 1 (or 2 with Mom's Box)
if EID.isRepentance then
itemCounter = itemCounter + EID.player:GetTrinketMultiplier(trinketID)
else
if EID.player:GetTrinket(0) == trinketID then itemCounter = itemCounter + EID.player:GetTrinketMultiplier() end
if EID.player:GetTrinket(1) == trinketID then itemCounter = itemCounter + EID.player:GetTrinketMultiplier() end
if EID.player:HasTrinket(trinketID) then itemCounter = itemCounter + 1 end
end
end
local hasBox = EID.collectiblesOwned[439]
local hasBox = EID.player:HasCollectible(439)
local isGolden = EID.isRepentance and ((descObj.ObjSubType & TrinketType.TRINKET_GOLDEN_FLAG) == TrinketType.TRINKET_GOLDEN_FLAG)
local damageMultiplied = 0.5 * itemCounter * (hasBox and 2 or 1) * (isGolden and 2 or 1)
local base = EID.isRepentance and 0.5 or 0.2
local damageMultiplied = base * itemCounter * (hasBox and 2 or 1) * (isGolden and 2 or 1)
local dmgColor = (hasBox or isGolden) and "ColorGold" or "ColorLime"
local description = EID:getDescriptionEntry("BlackFeatherInformation")
@@ -257,18 +242,6 @@ local function BlackFeatherCallback(descObj)
return descObj
end
local function BFFSSynergiesCallback(descObj)
local description = EID:getDescriptionEntry("BFFSSynergies", descObj.fullItemString, true)
if EID.BFFSNoSynergy[descObj.ObjSubType] then
description = EID:getDescriptionEntry("BFFSSynergies", "NoEffect")
elseif description == nil then
description = EID:getDescriptionEntry("BFFSSynergies", "DoubleDamage")
end
EID:appendToDescription(descObj, "#{{Collectible247}} {{ColorOrange}}" .. description .. "{{CR}}")
return descObj
end
if EID.isRepentance then
-- Handle Birthright
local function BirthrightCallback(descObj)
@@ -804,16 +777,9 @@ local function EIDConditionsAB(descObj)
if EID.Config["DisplayVoidStatInfo"] then
if EID.collectiblesOwned[477] then table.insert(callbacks, VoidCallback) end
if EID.blackRuneOwned then table.insert(callbacks, BlackRuneCallback) end
end
-- BFF Synergy check
if EID.collectiblesOwned[247] then
local config = EID.itemConfig:GetCollectible(descObj.ObjSubType)
if config ~= nil and config.Type == ItemType.ITEM_FAMILIAR then
table.insert(callbacks, BFFSSynergiesCallback)
end
if EID.collectiblesOwned["5.300.41"] then table.insert(callbacks, BlackRuneCallback) end
end
elseif descObj.ObjVariant == PickupVariant.PICKUP_TRINKET then
if descObj.ObjSubType == 80 then table.insert(callbacks, BlackFeatherCallback) end
end