diff --git a/descriptions/ab+/en_us.lua b/descriptions/ab+/en_us.lua index dfd3695a..ffd81570 100644 --- a/descriptions/ab+/en_us.lua +++ b/descriptions/ab+/en_us.lua @@ -20,7 +20,7 @@ EID.descriptions["en_us"].collectibles={ {"5", "My Reflection", "Gives tears a boomerang effect#↑ +1.5 Range up#↑ +0.6 Shot Speed up#↑ +1 Tear Height"}, {"6", "Number One", "↑ +1.5 Tears up#↓ -17.62 Range down#↑ +0.76 Tear Height"}, {"7", "Blood of the Martyr", "↑ +1 Damage up#↑ +50% if you have Book of Belial or Devil Card effect active"}, - {"8", "Brother Bobby", "Normal tear familiar#Deals 3.5 Damage per tear"}, + {"8", "Brother Bobby", "Normal tear familiar#Deals 3.5 damage per tear"}, {"9", "Skatole", "All fly enemies are friendly"}, {"10", "Halo of Flies", "+2 fly orbitals#Blocks enemy projectiles"}, {"11", "1up!", "↑ +1 life#Respawn with full health"}, @@ -30,7 +30,7 @@ EID.descriptions["en_us"].collectibles={ {"15", "<3", "↑ +1 Health up#Full health"}, {"16", "Raw Liver", "↑ +2 Health up#Full health"}, {"17", "Skeleton Key", "+99 Keys"}, - {"18", "A Dollar", "+99 Coins"}, + {"18", "A Dollar", "+99 coins"}, {"19", "Boom!", "+10 Bombs"}, {"20", "Transcendence", "Flight!"}, {"21", "The Compass", "Reveals all icons on the map#Does not show the layout of the map"}, @@ -68,26 +68,26 @@ EID.descriptions["en_us"].collectibles={ {"53", "Magneto", "Magnetic attraction for pickups"}, {"54", "Treasure Map", "Reveals the floor-layout"}, {"55", "Mom's Eye", "Chance to shoot a tear backwards#Chance is 100% at 2 Luck"}, - {"56", "Lemon Mishap", "Drop a pool of lemonade#Deals 66 contact Damage per second"}, - {"57", "Distant Admiration", "Mid-range fly orbital#Deals 75 contact Damage per second"}, + {"56", "Lemon Mishap", "Drop a pool of lemonade#Deals 66 contact damage per second"}, + {"57", "Distant Admiration", "Mid-range fly orbital#Deals 75 contact damage per second"}, {"58", "Book of Shadows", "Invincibility for 10 secs"}, {"59", "", ""}, {"60", "The Ladder", "Walk over small gaps"}, {"61", "", ""}, {"62", "Charm of the Vampire", "Heals half a heart every 13 enemies killed"}, - {"63", "The Battery", "Spacebar items can now be charged up twice"}, + {"63", "The Battery", "Active items can now be charged up twice"}, {"64", "Steam Sale", "-50% on shop items#Getting this item two times will make everything free"}, {"65", "Anarchist Cookbook", "Spawn 6 troll bombs near the center of the room"}, {"66", "The Hourglass", "Slow down enemies for 8 secs"}, - {"67", "Sister Maggy", "Normal tear familiar#Deals 3.5 Damage per tear"}, + {"67", "Sister Maggy", "Normal tear familiar#Deals 3.5 damage per tear"}, {"68", "Technology", "Tears are now lasers"}, - {"69", "Chocolate Milk", "Chargeable tears#↑ up to 400% Damage#↓ Tears down"}, + {"69", "Chocolate Milk", "Chargeable tears#↑ Up to 400% Damage#↓ Tears down"}, {"70", "Growth Hormones", "↑ +1 Damage up#↑ +0.4 Speed up"}, {"71", "Mini Mush", "↑ +0.3 Speed up#↓ -4.25 Range down*#↑ +1.5 Tear Height*#(*both add up to a slight Range up)#↑ Size down"}, {"72", "Rosary", "+3 Soul Hearts#{{Collectible33}} The Bible is added to all item pools"}, {"73", "Cube of Meat", "LVL1: Orbital#LVL2: Shooting orbital#LVL3: Meat Boy LVL1#LVL4: Meat Boy LVL2"}, {"74", "A Quarter", "+25 coins"}, - {"75", "PHD", "Better pills# +1 pill#Heals 2 hearts#More money from Blood Donation Machines"}, + {"75", "PHD", "Better pills#Spawns 1 pill on pickup#Heals 2 Red Hearts#More money from Blood Donation Machines"}, {"76", "X-Ray Vision", "Reveals secret rooms entrances"}, {"77", "My Little Unicorn", "Invincibility#40 contact damage"}, {"78", "Book of Revelations", "+1 Soul Heart#Higher horsemen chance if used#↑ +17.5% Devil/Angel Room chance"}, @@ -104,7 +104,7 @@ EID.descriptions["en_us"].collectibles={ {"89", "Spider Bite", "Chance to shoot slowing tears"}, {"90", "The Small Rock", "↑ +1 Damage up#↑ +0.2 Tears up#↓ -0.2 Speed down"}, {"91", "Spelunker Hat", "Reveals the room type of adjacent rooms#Can also reveal Secret Rooms, Super Secret Rooms, and Mini-Boss Rooms"}, - {"92", "Super Bandage", "↑ +1 Health up#+2 Soul Hearts#Heals one Red Heart"}, + {"92", "Super Bandage", "↑ +1 Health up#+2 Soul Hearts#Heals 1 Red Heart"}, {"93", "The Gamekid", "Short invincibility#Fears all enemies#Deal 40 contact damage#Two eaten enemies replenish half a heart"}, {"94", "Sack of Pennies", "Drops a random coin every 2 rooms"}, {"95", "Robo-Baby", "Laser tears#Deals 3.5 damage per shot"}, @@ -128,7 +128,7 @@ EID.descriptions["en_us"].collectibles={ {"113", "Demon Baby", "Auto-firing turret#Deals 3 damage per shot"}, {"114", "Mom's Knife", "Controllable knife attack#The knife deals 2x Isaac's damage while held and 6x damage at the furthest possible distance"}, {"115", "Ouija Board", "Spectral tears"}, - {"116", "9 Volt", "-1 Charge for active items#Fully charges current item"}, + {"116", "9 Volt", "-1 charge needed for active items#Fully charges current item"}, {"117", "Dead Bird", "Spawns a bird when you get hit#Bird deals 4 contact damage per second"}, {"118", "Brimstone", "Charge a blood laser that deals constant damage"}, {"119", "Blood Bag", "↑ +1 Health up#↑ +0.3 Speed up#Heals 4 Hearts"}, @@ -147,7 +147,7 @@ EID.descriptions["en_us"].collectibles={ {"132", "A Lump of Coal", "More Damage based on traveled distance of the tear"}, {"133", "Guppy's Paw", "!!! Convert:#1 heart container to 3 Soul Hearts"}, {"134", "Guppy's Tail", "More chests appear"}, - {"135", "IV Bag", "Portable blood bank#Half a heart = 1-3 Coin"}, + {"135", "IV Bag", "Portable blood bank#Half a heart = 1-3 coins"}, {"136", "Best Friend", "Exploding Decoy#Attracts enemies"}, {"137", "Remote Detonator", "Detonate bombs on demand#+5 bombs"}, {"138", "Stigmata", "↑ +1 Health up#↑ +0.3 Damage up"}, @@ -156,7 +156,7 @@ EID.descriptions["en_us"].collectibles={ {"141", "Pageant Boy", "Spawns 7 random coins"}, {"142", "Scapular", "When damaged down to half a heart, you gain 1 Soul Heart#(Once per room)"}, {"143", "Speed Ball", "↑ +0.3 Speed up#↑ +0.2 Shot Speed up"}, - {"144", "Bum Friend", "Converts Coins into pickups"}, + {"144", "Bum Friend", "Converts coins into pickups"}, {"145", "Guppy's Head", "Spawns 2-4 blue flies"}, {"146", "Prayer Card", "+1 Eternal Heart"}, {"147", "Notched Axe", "Break rocks in current room on touch"}, @@ -168,7 +168,7 @@ EID.descriptions["en_us"].collectibles={ {"153", "Mutant Spider", "Quad Shot!#↓ Tears down"}, {"154", "Chemical Peel", "↑ +2 Damage up for left eye"}, {"155", "The Peeper", "Floats around the room#Deals 17.1 contact damage per second"}, - {"156", "Habit", "+1 Charge when you get hit"}, + {"156", "Habit", "+1 charge when you get hit"}, {"157", "Bloody Lust", "↑ Damage up every time you get hit#Applies up to 6 times per floor#Lasts for whole floor"}, {"158", "Crystal Ball", "Reveal full map#Drops random Card or Soul Heart"}, {"159", "Spirit of the Night", "Flight#Spectral tears"}, @@ -181,13 +181,13 @@ EID.descriptions["en_us"].collectibles={ {"166", "D20", "Reroll pickups"}, {"167", "Harlequin Baby", "Shoots two tears in a V-shaped pattern#Deals 4 damage per shot"}, {"168", "Epic Fetus", "Controllable airstrike instead of tears#Deals 20 times your damage"}, - {"169", "Polyphemus", "↑ +100% Damage up#↑ +4 Additional Damage up#↓ Tears down"}, + {"169", "Polyphemus", "↑ +100% Damage up#↑ +4 additional Damage up#↓ Tears down"}, {"170", "Daddy Longlegs", "Stomps on enemies#Deals 40 damage per second"}, - {"171", "Spider Butt", "Slows down enemies for 4 seconds#10 Damage to all enemies"}, + {"171", "Spider Butt", "Slows down enemies for 4 seconds#10 damage to all enemies"}, {"172", "Sacrificial Dagger", "Orbital knife#Blocks enemy shots#Deals 225 damage per second"}, {"173", "Mitre", "Higher chance to find Soul Hearts"}, {"174", "Rainbow Baby", "Shoots random tears#Deals 3-5 damage per shot"}, - {"175", "Dad's Key", "Opens all doors in the current room, including secret rooms"}, + {"175", "Dad's Key", "Opens all doors in the room, including {{SecretRoom}}{{SuperSecretRoom}}Secret Rooms, {{ChallengeRoom}}{{BossRushRoom}}Challenge Rooms, and the Mega Satan door"}, {"176", "Stem Cells", "↑ +1 Health up#↑ +0.16 Shot Speed up"}, {"177", "Portable Slot", "Portable slot machine"}, {"178", "Holy Water", "Leaves pool of creep when you get hit#Deals 24 damage per second"}, @@ -198,7 +198,7 @@ EID.descriptions["en_us"].collectibles={ {"183", "Tooth Picks", "↑ +0.7 Tears up.#↑ +0.16 Shot Speed up"}, {"184", "Holy Grail", "Grants flight#↑ +1 Health up"}, {"185", "Dead Dove", "Flight#Spectral tears"}, - {"186", "Blood Rights", "↑ Deal 40 Damage to every enemy#↓ Deals 1 heart of damage to you#Prioritizes Red Hearts"}, + {"186", "Blood Rights", "↑ Deal 40 damage to every enemy#↓ Deals 1 heart of damage to you#Prioritizes Red Hearts"}, {"187", "Guppy's Hairball", "Growing hairball#Swings around you#Grows when it kills an enemy#Bigger ball deals more damage"}, {"188", "Abel", "Mirrors your movement#Shoots towards the player#Deals 3.5 damage per shot"}, {"189", "SMB Super Fan", "↑ +1 Health up#↑ +0.3 Damage up#↑ +0.2 Tears up#↑ +0.5 Range up#↑ +0.2 Speed up#↑ +1 Tear Height#Full health"}, @@ -229,8 +229,8 @@ EID.descriptions["en_us"].collectibles={ {"214", "Anemic", "↑ +5 Range up#Leave creep on floor when getting hit"}, {"215", "Goat Head", "↑ 100% chance for {{DevilRoom}}Devil/{{AngelRoom}}Angel Rooms"}, {"216", "Ceremonial Robes", "↑ +1 Damage up#+3 Black Hearts"}, - {"217", "Mom's Wig", "Random chance to spawn blue spider when shooting tears#Heals one Red Heart"}, - {"218", "Placenta", "↑ +1 Health up#Regenerate health slowly"}, + {"217", "Mom's Wig", "Random chance to spawn blue spider when shooting tears#Heals 1 Red Heart"}, + {"218", "Placenta", "↑ +1 Health up#Chance to heal half a heart every minute"}, {"219", "Old Bandage", "↑ +1 Empty heart container#Random chance to drop Red Hearts when getting hit"}, {"220", "Sad Bombs", "Tear explosion!#+5 Bombs"}, {"221", "Rubber Cement", "Bouncing tears"}, @@ -239,7 +239,7 @@ EID.descriptions["en_us"].collectibles={ {"224", "Cricket's Body", "↑ +1 Tears up#↓ -10 Range down#Tears split up in 4 on hit#Splitted tears deal half damage"}, {"225", "Gimpy", "Chance to spawn a Soul Heart when taking damage#Monsters have a chance to drop a Half Red Heart on death"}, {"226", "Black Lotus", "↑ +1 Health up#+1 Soul Heart#+1 Black Heart"}, - {"227", "Piggy Bank", "+3 Coins#Spawns 1-2 coins when getting hit#Spawns 0-1 for Keeper"}, + {"227", "Piggy Bank", "+3 coins#Spawns 1-2 coins when getting hit#0-1 coin as Keeper"}, {"228", "Mom's Perfume", "Chance to shoot fearing tears#↑ +1 Tears up"}, {"229", "Monstro's Lung", "Tears can now be charged and released in a shotgun style attack#↓ 4.3x Tear Delay up"}, {"230", "Abaddon", "↑ +1.5 Damage up#↑ +0.2 Speed up#Fear tears#↓ Removes all heart containers#+6 Black Hearts"}, @@ -263,8 +263,8 @@ EID.descriptions["en_us"].collectibles={ {"248", "Hive Mind", "Blue Spiders/flies deal double damage"}, {"249", "There's Options", "2 Boss items spawn instead of 1#!!! Only one can be taken"}, {"250", "Bogo Bombs", "All bomb drops become double bombs"}, - {"251", "Starter Deck", "You can carry 2 Cards#Turns all Pills into Cards#Spawns 1 random card on pickup"}, - {"252", "Little Baggy", "You can carry 2 Pills#Turns all Cards into Pills#Spawns 1 random pill on pickup"}, + {"251", "Starter Deck", "You can carry 2 Cards#Turns all Pills into Cards#Spawns 1 card on pickup"}, + {"252", "Little Baggy", "You can carry 2 Pills#Turns all Cards into Pills#Spawns 1 pill on pickup"}, {"253", "Magic Scab", "↑ +1 Luck up#↑ +1 Health up"}, {"254", "Blood Clot", "↑ +1 Damage up#↑ +5 Range up#!!! Applies only for the left eye"}, {"255", "Screw", "↑ +0.5 Tears up#↑ +0.2 Shot Speed up"}, @@ -309,7 +309,7 @@ EID.descriptions["en_us"].collectibles={ {"294", "Butter Bean", "Knocks back nearby enemies and projectiles#10% chance to turn into the stronger \"Wait What?\" when swapping it with a different active item and picking it up again"}, {"295", "Magic Fingers", "Damages the whole room with 2x the player damage#Price: 1 coin"}, {"296", "Converter", "!!! Convert:#2 Soul/Black Hearts into 1 Red Heart Container"}, - {"297", "Pandora's Box", "!!! SINGLE USE, spawns items based on floor:#B1: 2 Soul Hearts#B2: 2 bombs and 2 keys#C1: 1 Boss item#C2: B1+C1#D1: 4 Soul Hearts#D2: 20 Coins#W1: 2 Boss items#W2: {{Collectible33}}The Bible#???/Void: Nothing#Sheol: 1 Devil item + 1 Black Heart#Dark Room: Unlocks {{Collectible523}}Moving Box#Cat: 1 Angel item + 1 Eternal Heart#Chest: 1 Coin"}, + {"297", "Pandora's Box", "!!! SINGLE USE, spawns items based on floor:#B1: 2 Soul Hearts#B2: 2 bombs and 2 keys#C1: 1 Boss item#C2: B1+C1#D1: 4 Soul Hearts#D2: 20 coins#W1: 2 Boss items#W2: {{Collectible33}}The Bible#???/Void: Nothing#Sheol: 1 Devil item + 1 Black Heart#Dark Room: Unlocks {{Collectible523}}Moving Box#Cat: 1 Angel item + 1 Eternal Heart#Chest: 1 coin"}, {"298", "Unicorn Stump", "Invincibility and +0.28 speed up for 6 seconds"}, {"299", "Taurus", "Get faster in hostile rooms!#Invincibility when fast enough#↓ -0.3 Speed down"}, {"300", "Aries", "↑ +0.25 Speed up#Touching enemies hurts them"}, @@ -324,7 +324,7 @@ EID.descriptions["en_us"].collectibles={ {"309", "Pisces", "↑ -1 Tear Delay#Increases tear knockback"}, {"310", "Eve's Mascara", "↑ +100% Damage up#↓ -50% Tears down#↓ -0.5 Shot speed down"}, {"311", "Judas' Shadow", "When dead, respawn as Black Judas#↑ (Damage x 2)"}, - {"312", "Maggy's Bow", "↑ +1 Health up#Heals one Red Heart#All Red Hearts now heal double their value"}, + {"312", "Maggy's Bow", "↑ +1 Health up#Heals 1 Red Heart#All Red Hearts now heal double their value"}, {"313", "Holy Mantle", "Ignore the first hit in every room"}, {"314", "Thunder Thighs", "↑ +1 Health up#↓ -0.4 Speed down#Destroy rocks when walking over them"}, {"315", "Strange Attractor", "Magnetic tears#Affects enemies, pickups and trinkets"}, @@ -368,7 +368,7 @@ EID.descriptions["en_us"].collectibles={ {"353", "Bomber Boy", "+5 bombs#Bombs will now explode in a cross-shaped pattern"}, {"354", "Crack Jacks", "↑ +1 Health up#Spawns random trinket on the floor"}, {"355", "Mom's Pearls", "↑ +1.25 Range up#↑ +1 Luck up#↑ +0.5 Tear Height"}, - {"356", "Car Battery", "Causes your spacebar item to activate twice when used"}, + {"356", "Car Battery", "Causes your active item to activate twice when used"}, {"357", "Box of Friends", "Duplicate your familiars for the current room#If you have no familiars, {{Collectible113}} Demon Baby will spawn for the current room"}, {"358", "The Wiz", "Fire 2 tears at once diagonally, similar to R U A WIZARD#Spectral tears"}, {"359", "8 Inch Nails", "↑ +1.5 Damage up#Increases knockback"}, @@ -384,7 +384,7 @@ EID.descriptions["en_us"].collectibles={ {"369", "Continuum", "↑ +2.25 Range up#↑ +1.5 Tear Height#Tears travel through walls and appear out of the opposite wall"}, {"370", "Mr. Dolly", "↑ +0.7 Tears up#↑ +5.25 Range up#↑ +0.5 Tear Height#Spawns 3 random hearts when picked up"}, {"371", "Curse of the Tower", "Spawn 6 troll bombs every time you get hit#These are affected by bomb items"}, - {"372", "Charged Baby", "Random chance to drop a battery or freeze all enemies in the room#Chance to add one charge to your spacebar item"}, + {"372", "Charged Baby", "Random chance to drop a battery or freeze all enemies in the room#Chance to add one charge to your active item"}, {"373", "Dead Eye", "↑ +12.5% damage up for every tear that successfully hits an enemy(max. +100%)"}, {"374", "Holy Light", "Random chance to fire a Holy tear, which will spawn a beam of light on hit#The beam deals 4x your damage"}, {"375", "Host Hat", "Grants explosion immunity and immunity from Mom's and Satan's foot stomps#20% chance to block tears"}, @@ -466,7 +466,7 @@ EID.descriptions["en_us"].collectibles={ {"451", "Tarot Cloth", "Drops a random card or rune on pickup#Doubles the effect of any card used"}, {"452", "Varicose Veins", "When taking damage, fire 10 tears in a circle around you#The tears deal 125% your damage"}, {"453", "Compound Fracture", "Bone tears#Tears shatter into 1-3 smaller bone shards upon hitting anything#↑ +1.5 Range up#↑ +1 Tear Height"}, - {"454", "Polydactyly", "You can carry two cards, runes or pills#Spawns a random card, pill or rune on pickup"}, + {"454", "Polydactyly", "You can carry two cards, runes or pills#Spawns a card, pill or rune on pickup"}, {"455", "Dad's Lost Coin", "↑ +1.5 Range up#Spawns a lucky penny"}, {"456", "Moldy Bread", "↑ +1 Health up"}, {"457", "Cone Head", "+1 Soul Heart#20% Chance to ignore damage"}, @@ -483,7 +483,7 @@ EID.descriptions["en_us"].collectibles={ {"468", "Shade", "Follows your movement delayed by 1 seconds#Deals 30 contact damage per second"}, {"469", "Depression", "Leaves trail of creep#Creep deals 6 damage per second#Enemies touching the cloud can spawn a holy light beam"}, {"470", "Hushy", "Bounces around the room#Deals contact damage#Will stop moving when you are shooting#When stopped, it can block projectiles"}, - {"471", "Lil Monstro", "Chargable Shotgun attack#(Similar to monstros lung)#Each tear deals 3.5 damage"}, + {"471", "Lil Monstro", "Chargable shotgun attack similar to {{Collectible229}}Monstro's Lung#Each tear deals 3.5 damage"}, {"472", "King Baby", "Other familiars follow it#Stops moving when you are shooting#Will teleport back to you when you stop shooting"}, {"473", "Big Chubby", "Charges forwards very slow#Deals 40.5 contact damage per second"}, {"474", "Tonsil", "Blocks enemy projectiles"}, @@ -513,7 +513,7 @@ EID.descriptions["en_us"].collectibles={ {"498", "Duality", "Spawns {{DevilRoom}}Devil AND {{AngelRoom}}Angel Room doors#When entering one, the other disappears"}, {"499", "Eucharist", "100% chance to find an {{AngelRoom}}Angel Room"}, {"500", "Sack of Sacks", "Spawns a sack every 5-6 rooms"}, - {"501", "Greed's Gullet", "Gives you 1 heart container for every 25 coins#The Keeper will gain additional Coin-Hearts"}, + {"501", "Greed's Gullet", "Gives you 1 heart container for every 25 coins#The Keeper will gain additional Coin Hearts"}, {"502", "Large Zit", "Chance to fire a Creep leaving tear that deals double damage"}, {"503", "Little Horn", "Chance to fire tears that instantly kill enemies#Running into enemies will deal 3.5 damage to them"}, {"504", "Brown Nugget", "Spawns a fly turret that shoots at enemies#Each shot deals 2 damage"}, @@ -571,7 +571,7 @@ EID.descriptions["en_us"].collectibles={ EID.descriptions["en_us"].trinkets={ {"1", "Swallowed Penny", "Spawns 1 coin when you get hit"}, {"2", "Petrified Poop", "50% more drops from poop"}, - {"3", "AAA Battery", "-1 charge needed for spacebar items"}, + {"3", "AAA Battery", "-1 charge needed for active items"}, {"4", "Broken Remote", "Randomly teleports you, when using an item"}, {"5", "Purple Heart", "Doubles the chance for champion enemies"}, {"6", "Broken Magnet", "Coin magnet"}, @@ -621,7 +621,7 @@ EID.descriptions["en_us"].trinkets={ {"50", "Burnt Penny", "50% chance to drop a bomb when picking up coins"}, {"51", "Flat Penny", "50% chance to drop a key when picking up coins"}, {"52", "Counterfeit Penny", "50% chance to get +1 coin when picking up coins"}, - {"53", "Tick", "-15% boss health#Heals 1 red heart when entering a {{BossRoom}}Boss Room#!!! Once picked up, it can't be removed#Only removeable with {{Trinket41}}Match Stick or gulping"}, + {"53", "Tick", "-15% boss health#Heals 1 Red Heart when entering a {{BossRoom}}Boss Room#!!! Once picked up, it can't be removed#Only removeable with {{Trinket41}}Match Stick or gulping"}, {"54", "Isaac's Head", "Familiar with piercing tears#Deals 3.5 damage per tear"}, {"55", "Maggy's Faith", "Get one Eternal Heart at the start of every floor"}, {"56", "Judas' Tongue", "Reduces Devil deal prices from 2 heart containers to 1"}, @@ -634,7 +634,7 @@ EID.descriptions["en_us"].trinkets={ {"63", "Safety Scissors", "Turns troll bombs into bomb pickups"}, {"64", "Rainbow Worm", "Random worm effect every 3 seconds"}, {"65", "Tape Worm", "↑ Doubles your Range#-50% Tear Height"}, - {"66", "Lazy Worm", "↓ -0.4 Shot Speed down#↑ +4 Range up"}, + {"66", "Lazy Worm", "↓ -0.4 Shot Speed down#↑ +4 Range up#↑ +2 Tear Height"}, {"67", "Cracked Dice", "Chance to trigger a random dice effect when getting hit"}, {"68", "Super Magnet", "Magnet for pickups and enemies"}, {"69", "Faded Polaroid", "Camouflages the player randomly#Confuses enemies"}, @@ -653,7 +653,7 @@ EID.descriptions["en_us"].trinkets={ {"82", "Golden Horse Shoe", "+15% chance for {{TreasureRoom}}Treasure Rooms to have two items on future floors#You can only choose one"}, {"83", "Store Key", "Open {{Shop}}Shops for free"}, {"84", "Rib of Greed", "Greed/Super Greed no longer appear in {{Shop}}Shops#More coins appear"}, - {"85", "Karma", "Using a Donation Machine can heal you or spawn a beggar"}, + {"85", "Karma", "Using a Donation Machine can heal you or spawn a Beggar"}, {"86", "Lil Larva", "Destroying poop spawns a blue fly"}, {"87", "Mom's Locket", "Heal half a heart when using keys#Turns half hearts into full hearts"}, {"88", "NO!", "Prevents active items from being generated in all item pools"}, @@ -670,8 +670,8 @@ EID.descriptions["en_us"].trinkets={ {"99", "Super Ball", "Chance to shoot bouncy tears"}, {"100", "Vibrant Bulb", "!!! While holding a fully charged active item:#↑ +0.5 Damage#↑ +0.25 Speed#↑ +0.75 Range#↑ +0.2 Tears#↑ +0.1 Shot speed#↑ +1 Luck"}, {"101", "Dim Bulb", "!!! While holding a completely uncharged active item:#↑ +1.5 Damage#↑ +0.5 Speed#↑ +1.5 Range#↑ +0.4 Tears#↑ +0.3 Shot Speed#↑ +2 Luck"}, - {"102", "Fragmented Card", "+1 extra secret room per floor while held"}, - {"103", "Equality!", "!!! When coin, key and bomb-count are equal:#Turns half consumables into double consumables"}, + {"102", "Fragmented Card", "+1 extra {{SecretRoom}}Secret Room per floor while held"}, + {"103", "Equality!", "!!! When coin, key and bomb count are equal:#Turns single consumables into double consumables"}, {"104", "Wish Bone", "Chance to spawn a pedestal item when hit#Gets destroyed afterwards"}, {"105", "Bag Lunch", "Chance to spawn {{Collectible22}}Lunch when hit#Gets destroyed afterwards"}, {"106", "Lost Cork", "Increases the radius of any creep you produce"}, @@ -711,17 +711,17 @@ EID.descriptions["en_us"].cards={ {"8", "VII - The Chariot", "Invincibility + contact damage for 6 seconds"}, {"9", "VIII - Justice", "Spawns 1 bomb, 1 key, 1 coin, 1 heart"}, {"10", "IX - The Hermit", "Teleports you to the {{Shop}}Shop"}, - {"11", "X - Wheel of Fortune", "Spawns a Slot- or Fortune Machine"}, + {"11", "X - Wheel of Fortune", "Spawns a Slot or Fortune Machine"}, {"12", "XI - Strength", "↑ +1 Health up#↑ +0.3 Damage up#↑ +50% Damage#↑ +5.25 Range up#↑ +0.3 Speed up#For current room"}, {"13", "XII - The Hanged Man", "Grants flight for current room"}, {"14", "XIII - Death", "Deals 40 damage to all enemies in the room"}, - {"15", "XIV - Temperance", "Spawns a Blood Donation Machine"}, + {"15", "XIV - Temperance", "Spawns a Blood Donation Machine#Spawns a Devil Beggar in Greed Mode"}, {"16", "XV - The Devil", "↑ +2 Damage up for current room"}, {"17", "XVI - The Tower", "Spawns 6 troll bombs"}, {"18", "XVII - The Stars", "Teleports you to the {{TreasureRoom}}Treasure Room"}, {"19", "XVIII - The Moon", "Teleports you to the {{SecretRoom}}Secret Room"}, {"20", "XIX - The Sun", "Deals 100 damage to all enemies#Full health#Reveals entire map"}, - {"21", "XX - Judgement", "Spawns a beggar"}, + {"21", "XX - Judgement", "Spawns a Beggar or Devil Beggar"}, {"22", "XXI - The World", "Reveals the entire map and shows all roomtypes"}, {"23", "2 of Clubs", "Duplicate your bombs"}, {"24", "2 of Diamonds", "Duplicate your money"}, @@ -748,7 +748,7 @@ EID.descriptions["en_us"].cards={ {"45", "A Card Against Humanity", "Fills the whole room with poop"}, {"46", "Suicide King", "Instantly kills you and spawns 10 pickup / Collectibles on the floor"}, {"47", "Get Out Of Jail Free Card", "Open all doors in the current room"}, - {"48", "? Card", "Activates your spacebar item for free"}, + {"48", "? Card", "Activates your active item for free"}, {"49", "Dice Shard", "Rerolls pedestals and pickups in current room"}, {"50", "Emergency Contact", "Two of Mom's Hands come down and grab an enemy"}, {"51", "Holy Card", "Grants the Holy Mantle effect for one room#(Prevents damage once)#25% chance to spawn another Holy Card"}, @@ -816,11 +816,11 @@ EID.descriptions["en_us"].pills={ EID.descriptions["en_us"].sacrificeHeader = "[Next Sacrifice Room payout]" EID.descriptions["en_us"].sacrifice={ - {"1", "", "50% chance for 1 Coin#100% chance for 1 Bomb, when on B1 and killed the Boss under 1 minute"}, - {"2", "", "50% chance for 1 Coin#100% chance for 1 Bomb, when on B1 and killed the Boss under 1 minute"}, + {"1", "", "50% chance for 1 coin#100% chance for 1 Bomb, when on B1 and killed the Boss under 1 minute"}, + {"2", "", "50% chance for 1 coin#100% chance for 1 Bomb, when on B1 and killed the Boss under 1 minute"}, {"3", "", "67% chance for increased {{AngelRoom}}Angel Room chance"}, {"4", "", "50% chance for 1 random chest"}, - {"5", "", "33% chance for 3 Coins#67% chance for increased {{AngelRoom}}Angel Room chance"}, + {"5", "", "33% chance for 3 coins#67% chance for increased {{AngelRoom}}Angel Room chance"}, {"6", "", "33% chance for a teleport to the {{AngelRoom}}Angel Room#Teleports to the {{DevilRoom}}Devil Room instead if its door was spawned on the current floor#67% chance for random chest"}, {"7", "", "33% chance for 1 random {{AngelRoom}}Angel Room item#67% chance for 1 Soul Heart"}, {"8", "", "100% chance for 7 troll bombs"}, @@ -847,10 +847,10 @@ EID.descriptions["en_us"].transformations = { "", -- 0 = none "Guppy", -- 1 "Fun Guy", -- 2 - "Lord of the Flies", -- 3 + "Beelzebub", -- 3 "Conjoined", -- 4 "Spun", -- 5 - "Mom", -- 6 + "Yes Mother?", -- 6 "Oh Crap", -- 7 "Bob", -- 8 "Leviathan", -- 9 diff --git a/descriptions/rep/en_us.lua b/descriptions/rep/en_us.lua index 03280524..bea45f85 100644 --- a/descriptions/rep/en_us.lua +++ b/descriptions/rep/en_us.lua @@ -17,19 +17,19 @@ local repCollectibles={ [12] = {"12", "Magic Mushroom", "↑ +1 Health up#↑ +0.3 Damage up#↑ +50% Damage Multiplier#↑ +1.5 Range up#↑ +0.3 Speed up#↑ +0.5 Tear Height#Full health!"}, [13] = {"13", "The Virus", "Poison touch#↑ +0.2 Speed up"}, -- The Virus [14] = {"14", "Roid Rage", "↑ +0.3 Speed up#↑ +1.5 Range up#↑ +0.5 Tear Height"}, -- Roid Rage - [18] = {"18", "A Dollar", "+100 Coins"}, -- A Dollar - [22] = {"22", "Lunch", "↑ +1 Health up#Heals one Red Heart"}, -- Lunch - [23] = {"23", "Dinner", "↑ +1 Health up#Heals one Red Heart"}, -- Dinner - [24] = {"24", "Dessert", "↑ +1 Health up#Heals one Red Heart"}, -- Dessert - [25] = {"25", "Breakfast", "↑ +1 Health up#Heals one Red Heart"}, -- Breakfast - [26] = {"26", "Rotten Meat", "↑ +1 Health up#Heals one Red Heart"}, -- Rotten Meat + [18] = {"18", "A Dollar", "+100 coins"}, -- A Dollar + [22] = {"22", "Lunch", "↑ +1 Health up#Heals 1 Red Heart"}, -- Lunch + [23] = {"23", "Dinner", "↑ +1 Health up#Heals 1 Red Heart"}, -- Dinner + [24] = {"24", "Dessert", "↑ +1 Health up#Heals 1 Red Heart"}, -- Dessert + [25] = {"25", "Breakfast", "↑ +1 Health up#Heals 1 Red Heart"}, -- Breakfast + [26] = {"26", "Rotten Meat", "↑ +1 Health up#Heals 1 Red Heart"}, -- Rotten Meat [29] = {"29", "Mom's Underwear", "↑ +1.5 Range up#↑ +0.5 Tear Height#Spawns 3-6 Blue Flies"}, -- Mom's Underwear [30] = {"30", "Mom's Heels", "↑ +1.5 Range up#↑ +0.5 Tear Height#Touched enemies take 12 damage"}, -- Mom's Heels [31] = {"31", "Mom's Lipstick", "↑ +2.25 Range up#↑ +0.5 Tear Height#Spawns 1 random heart"}, -- Mom's Lipstick [40] = {"40", "Kamikaze!", "Causes a big explosion at the player's location#Deals 185 damage"}, -- Kamikaze! [42] = {"42", "Bob's Rotten Head", "Throwable poison bomb#Deals 185 + your damage#Creates poison cloud"}, -- Bob's Rotten Head [44] = {"44", "Teleport", "Teleports Isaac into a random room except I AM ERROR rooms#Influence direction a bit by moving in desired direction"}, -- Teleport - [45] = {"45", "Yum Heart", "Heal 1 red heart#Also heals other players for half a heart"}, -- Yum Heart + [45] = {"45", "Yum Heart", "Heal 1 Red Heart#Also heals other players for half a heart"}, -- Yum Heart [46] = {"46", "Lucky Foot", "↑ +1 Luck up#Better chance to win while gambling#Increases room clearing drop chance#Turns some bad pills into good ones"}, -- Lucky Foot [52] = {"52", "Dr. Fetus", "Bomb tears#Each bomb deals 10x your damage#If that results in over 60 damage, it instead deals 5x your damage + 30#↓ -60% Tears down"}, --Dr. Fetus [53] = {"53", "Magneto", "Magnetic attraction for pickups#Opens chests remotely, ignoring damage of spike chests"}, -- Magneto @@ -44,18 +44,18 @@ local repCollectibles={ [78] = {"78", "Book of Revelations", "+1 Soul Heart#A Horseman replaces the current floor's boss if used#↑ +17.5% Devil or Angel Room chance"}, -- Book of Revelations [79] = {"79", "The Mark", "↑ +1 Damage up#↑ +0.2 Speed up#+1 Black Heart"}, -- The Mark [80] = {"80", "The Pact", "↑ +0.5 Damage up#↑ +0.7 Tears up#+2 Black Hearts"}, -- The Pact - [83] = {"83", "The Nail", "+ Half Black Heart#↑ +2 Damage up#↓ -0.18 Speed down#Deal contact Damage#Crush rocks"}, -- The Nail + [83] = {"83", "The Nail", "+ Half Black Heart#↑ +2 Damage up#↓ -0.18 Speed down#Deal contact damage#Crush rocks"}, -- The Nail [91] = {"91", "Spelunker Hat", "Reveals the room type of up to 2 adjacent rooms#Can also reveal Secret Rooms, Super Secret Rooms and Mini-Boss Rooms#Blocks projectiles falling from above"}, -- Spelunker Hat [98] = {"98", "The Relic", "Spawns 1 Soul Heart every 7-8 rooms"}, -- The Relic - [101] = {"101", "The Halo", "↑ +1 Health up#↑ +0.3 Damage up#↑ +0.2 Tears up#↑ +0.38 Range up#↑ +0.3 Speed up#↑ +0.5 Tear Height#Heals one Red Heart"}, -- The Halo + [101] = {"101", "The Halo", "↑ +1 Health up#↑ +0.3 Damage up#↑ +0.2 Tears up#↑ +0.38 Range up#↑ +0.3 Speed up#↑ +0.5 Tear Height#Heals 1 Red Heart"}, -- The Halo [106] = {"106", "Mr. Mega", "↑ Bomb damage x1.85#+5 Bombs"}, -- Mr. Mega [110] = {"110", "Mom's Contacts", "Chance to shoot Freezing Tears#↑ +0.38 Range up#↑ +0.5 Tear Height"}, -- Mom's Contacts [118] = {"118", "Brimstone", "Charge a blood laser that deals constant damage#↓ -67% Fire Rate down"}, -- Brimstone [121] = {"121", "Odd Mushroom (Large)", "↑ +1 Health up#↑ +1 Damage up#↑ +0.38 Range up#↓ -0.2 Speed down"}, -- Odd Mushroom (Large) [123] = {"123", "Monster Manual", "Spawns a random familiar#Lasts for current floor"}, -- Monster Manual [129] = {"129", "Bucket of Lard", "↑ +2 full red heart container#↓ -0.2 Speed down"}, -- Bucket of Lard - [135] = {"135", "IV Bag", "Portable blood bank#Half a heart = 1-2 Coins#1 coin on Hard Mode#0-1 coin as Keeper"}, --IV Bag - [138] = {"138", "Stigmata", "↑ +1 Health up#↑ +0.3 Damage up#Heals 1 red heart"}, -- Stigmata + [135] = {"135", "IV Bag", "Portable blood bank#Half a heart = 1-2 coins#1 coin on Hard Mode#0-1 coin as Keeper"}, --IV Bag + [138] = {"138", "Stigmata", "↑ +1 Health up#↑ +0.3 Damage up#Heals 1 Red Heart"}, -- Stigmata [139] = {"139", "Mom's Purse", "You can now hold 2 trinkets#Spawns 1 random trinket"}, -- Mom's Purse [140] = {"140", "Bob's Curse", "Poison bombs#+5 bombs#Bombs leave a poison cloud"}, -- Bob's Curse [147] = {"147", "Notched Axe", "Break rocks and damage enemies on swing#Hitting with the axe reduces its charge#Charge refills on stage transition"}, -- Notched Axe @@ -64,25 +64,25 @@ local repCollectibles={ [152] = {"152", "Technology 2", "Replaces the right eye tears with an unlimited range piercing laser which fires continuously#Laser deals 13% of your damage#↓ -33% Fire Rate down"}, -- Technology 2 [153] = {"153", "Mutant Spider", "Quad shot!#↓ -58% Fire Rate down"}, -- Mutant Spider [155] = {"155", "The Peeper", "Floats around the room#Deals 17.1 contact damage per second#↑ Tears shot from Isaac's left eye deal 34% more damage"}, -- The Peeper - [158] = {"158", "Crystal Ball", "Reveals the full map#Drops a Soul Heart or a random card or rune#While held:#↑ +15% Planetarium chance#100% if a Treasure Room was skipped"}, -- Crystal Ball - [169] = {"169", "Polyphemus", "↑ +100% Damage up#↑ +4 Additional Damage up#↓ -58% Fire Rate down"}, - [171] = {"171", "Spider Butt", "Slows down enemies for 4 seconds#10 Damage to all enemies#Enemies killed with it spawn blue spiders"}, -- Spider Butt + [158] = {"158", "Crystal Ball", "Reveals the full map#Drops a Soul Heart or a random card or rune#While held:#↑ +15% {{Planetarium}}Planetarium chance#100% if a Treasure Room was skipped"}, -- Crystal Ball + [169] = {"169", "Polyphemus", "↑ +100% Damage up#↑ +4 additional Damage up#↓ -58% Fire Rate down"}, + [171] = {"171", "Spider Butt", "Slows down enemies for 4 seconds#10 damage to all enemies#Enemies killed with it spawn blue spiders"}, -- Spider Butt [172] = {"172", "Sacrificial Dagger", "Orbital knife#Blocks enemy shots#Deals 112.5 damage per second"}, -- Sacrificial Dagger - [176] = {"176", "Stem Cells", "↑ +1 Health up#↑ +0.16 Shot Speed up#Heals 1 red heart"}, -- Stem Cells + [176] = {"176", "Stem Cells", "↑ +1 Health up#↑ +0.16 Shot Speed up#Heals 1 Red Heart"}, -- Stem Cells [178] = {"178", "Holy Water", "{{Throwable}} {{ColorOrange}}Throwable{{CR}}#Launches itself in the direction Isaac shoots#Breaks and deals 7 damage when touching an enemy#Leaves a pool of damaging creep that petrifies enemies"}, -- Holy Water [182] = {"182", "Sacred Heart", "↑ +1 Health up#↑ 230% + 1 Damage up#↓ -0.4 Tears down#↓ -0.25 Shot Speed down#Homing tears#Full Health"}, -- Sacred Heart - [184] = {"184", "Holy Grail", "Grants flight#↑ +1 Health up#Heals 1 red heart"}, -- Holy Grail - [188] = {"188", "Abel", "Mirrors your movement#Shoots towards the player#Deals 3.5 damage per shot#7.5 Damage if you play Cain"}, -- Abel + [184] = {"184", "Holy Grail", "Grants flight#↑ +1 Health up#Heals 1 Red Heart"}, -- Holy Grail + [188] = {"188", "Abel", "Mirrors your movement#Shoots towards the player#Deals 3.5 damage per shot#7.5 damage as Cain"}, -- Abel [192] = {"192", "Telepathy for Dummies", "Homing tears for current room#↑ +3 Range up"}, -- Telepathy for Dummies - [193] = {"193", "MEAT!", "↑ +1 Health up#↑ +0.3 Damage up#Heals 1 red heart"}, -- MEAT! - [194] = {"194", "Magic 8 Ball", "↑ +0.16 Shot Speed up#+1 card#+15% Planetarium chance"}, -- Magic 8 Ball + [193] = {"193", "MEAT!", "↑ +1 Health up#↑ +0.3 Damage up#Heals 1 Red Heart"}, -- MEAT! + [194] = {"194", "Magic 8 Ball", "↑ +0.16 Shot Speed up#+1 card#+15% {{Planetarium}}Planetarium chance"}, -- Magic 8 Ball [197] = {"197", "Jesus Juice", "↑ +0.5 Damage up#↑ +0.38 Range up.#↑ +0.5 Tear Height"}, -- Jesus Juice [203] = {"203", "Humbling Bundle", "Chance to spawn the double version of pickups"}, -- Humbling Bundle [205] = {"205", "Sharp Plug", "- half Heart = Charges one slot of your active item when pressing space"}, -- Sharp Plug [206] = {"206", "Guillotine", "↑ +1 Damage up#↑ +0.5 Fire Rate up#Your head is now an orbital which doesn't take damage and deals 105 contact damage#You will still shoot from the head"}, -- Guillotine [211] = {"211", "Spiderbaby", "Spawn 3-5 Blue Spiders upon taking damage"}, -- Spiderbaby [214] = {"214", "Anemic", "↑ +1.5 Range up#Leave a trail of damaging creep upon taking damage"}, -- Anemic - [218] = {"218", "Placenta", "↑ +1 Health up#Heals 1 red heart#Regenerate health slowly"}, -- Placenta + [218] = {"218", "Placenta", "↑ +1 Health up#Heals 1 Red Heart#Chance to heal half a heart every minute"}, -- Placenta [222] = {"222", "Anti-Gravity", "Holding the fire buttons causes tears to hover in midair#When released, they will all shoot in the direction they were fired#↑ +2 Fire Rate up"}, -- Anti-Gravity [224] = {"224", "Cricket's Body", "Tears split in 4 on hit#Split tears deal half your damage#↑ +0.5 Fire Rate up#↓ -20% Range down"}, -- Cricket's Body [228] = {"228", "Mom's Perfume", "Chance to shoot fearing tears#↑ +0.5 Fire Rate up"}, -- Mom's Perfume @@ -91,7 +91,7 @@ local repCollectibles={ [240] = {"240", "Experimental Treatment", "↑ Randomly increases 4 stats#↓ Randomly decreases 2 stats"}, -- Experimental Treatment [245] = {"245", "20/20", "Doubles all your shots#↓ -25% Damage"}, -- 20/20 [248] = {"248", "Hive Mind", "Blue Spiders/flies deal double damage#Spider/fly based familiars become stronger"}, -- Hive Mind - [253] = {"253", "Magic Scab", "↑ +1 Health up#↑ +1 Luck up#Heals 1 red heart"}, -- Magic Scab + [253] = {"253", "Magic Scab", "↑ +1 Health up#↑ +1 Luck up#Heals 1 Red Heart"}, -- Magic Scab [254] = {"254", "Blood Clot", "!!! Applies only for the left eye#↑ +1 Damage up#↑ +1.5 Range up"}, -- Blood Clot [256] = {"256", "Hot Bombs", "Burning bombs#+5 Bombs#You can no longer take fire damage#Bombs deal contact damage"}, -- Hot Bombs [261] = {"261", "Proptosis", "↑ +0.5 Damage up#↓ Dealt damage decreases the longer the tear stays airborne#300% Damage at point blank range"}, -- Proptosis @@ -114,13 +114,13 @@ local repCollectibles={ [295] = {"295", "Magic Fingers", "Damages the whole room with 2x the player damage + 10 #Price: 1 coin"}, -- Magic Fingers [296] = {"296", "Converter", "Converts 1 Soul or Black Heart into 1 Red Heart Container"}, -- Converter --the SINGLE USE line isn't the standard format in order to save a line break - [297] = {"297", "Pandora's Box", "{{Warning}} SINGLE USE, spawns items based on floor:#B1: 2 Soul Hearts#B2: 2 bombs and 2 keys#C1: 1 Boss item#C2: B1+C1#D1: 4 Soul Hearts#D2: 20 Coins#W1: 2 Boss items#W2: {{Collectible33}}The Bible#???/Void: Nothing#Sheol: 1 Devil item + 1 Black Heart#Dark Room: Unlocks {{Collectible523}}Moving Box#Cat: 1 Angel item + 1 Eternal Heart#Chest: 1 Coin#Home: {{Collectible580}}Red Key"}, -- Pandora's box + [297] = {"297", "Pandora's Box", "{{Warning}} SINGLE USE, spawns items based on floor:#B1: 2 Soul Hearts#B2: 2 bombs and 2 keys#C1: 1 Boss item#C2: B1+C1#D1: 4 Soul Hearts#D2: 20 coins#W1: 2 Boss items#W2: {{Collectible33}}The Bible#???/Void: Nothing#Sheol: 1 Devil item + 1 Black Heart#Dark Room: Unlocks {{Collectible523}}Moving Box#Cat: 1 Angel item + 1 Eternal Heart#Chest: 1 coin#Home: {{Collectible580}}Red Key"}, -- Pandora's Box [300] = {"300", "Aries", "↑ +0.25 Speed up#Touching enemies hurts them#Running fast enough will prevent contact damage"}, -- Aries [307] = {"307", "Capricorn", "↑ +1 Health up#↑ +0.5 Damage up#↑ +0.1 Speed up#↑ +0.75 Range up#↑ +0.5 Fire Rate up#Gives one bomb, coin and key"}, -- Capricorn [308] = {"308", "Aquarius", "Leave a trail of creep#Creep deals 66% your damage per second#Creep synergizes with tear effects"}, -- Aquarius [309] = {"309", "Pisces", "↑ +0.5 Fire Rate up#Increases tear knockback"}, [310] = {"310", "Eve's Mascara", "↑ 200% Damage up#↓ -33% Tears down#↓ -0.5 Shot Speed down"}, - [314] = {"314", "Thunder Thighs", "↑ +1 Health up#↓ -0.4 Speed down#Heals 1 red heart#Destroy rocks when walking over them"}, -- Thunder Thighs + [314] = {"314", "Thunder Thighs", "↑ +1 Health up#↓ -0.4 Speed down#Heals 1 Red Heart#Destroy rocks when walking over them"}, -- Thunder Thighs [315] = {"315", "Strange Attractor", "Magnetic tears#Affects enemies, pickups and trinkets#Items will be attracted to where the tear lands"}, -- Strange Attractor [320] = {"320", "???'s Only Friend", "Controllable Fly#Deals 3.5 contact damage per tick"}, -- ???'s Only Friend [326] = {"326", "Breath of Life", "Hold down space till chargebar is empty for invincibility#Beams of light will strike enemies that touch you when invincible#!!! Don't hold it for too long!"}, -- Breath of Life @@ -129,13 +129,13 @@ local repCollectibles={ [331] = {"331", "Godhead", "↑ +0.5 Damage up#↓ -0.3 Tears down#↓ -0.3 Shot Speed down#↑ +0.8 Tear Height#Tears gain a damaging aura which deals 2 damage per tick#Homing tears"}, -- Godhead [336] = {"336", "Dead Onion", "Piercing and spectral tears#↓ -1.5 Range down#↓ -0.4 Shot Speed down#↓ -0.5 Tear Height down#↑ +50% Tear size"}, -- Dead Onion [339] = {"339", "Safety Pin", "↑ +1.5 Range up#↑ +0.16 Shot Speed up#+1 Black Heart#↑ +0.5 Tear Height"}, -- Safety Pin - [342] = {"342", "Blue Cap", "↑ +1 Health up#↑ +0.7 Tears up#↓ -16% Shot Speed down#Heals 1 red heart"}, -- Blue Cap + [342] = {"342", "Blue Cap", "↑ +1 Health up#↑ +0.7 Tears up#↓ -16% Shot Speed down#Heals 1 Red Heart"}, -- Blue Cap [344] = {"344", "Match Book", "+1 Black Heart#Spawns 2-3 Bomb pickups and the {{Trinket41}}Match Stick"}, -- Match Book [345] = {"345", "Synthoil", "↑ +1 Damage up#↑ +1.5 Range up#↑ +0.5 Tear Height"}, -- Synthoil - [346] = {"346", "A Snack", "↑ +1 Health up#Heals 1 red heart"}, -- A Snack + [346] = {"346", "A Snack", "↑ +1 Health up#Heals 1 Red Heart"}, -- A Snack [350] = {"350", "Toxic Shock", "At the start of every room every enemy gets a poison effect#Killed enemies leave puddle of creep#Grants immunity for toxic clouds"}, -- Toxic Shock [352] = {"352", "Glass Cannon", "Fires one large piercing spectral tear ((DMG x 10) + 10)#!!! When you take damage:#↓ You will lose an extra 2 hearts of health#↑ + 1.5 Range up#Self-damage does not count"}, -- Glass Cannon - [354] = {"354", "Crack Jacks", "↑ +1 Health up#Spawns random trinket on the floor#Heals one Red Heart"}, -- Crack Jacks + [354] = {"354", "Crack Jacks", "↑ +1 Health up#Spawns random trinket on the floor#Heals 1 Red Heart"}, -- Crack Jacks [355] = {"355", "Mom's Pearl", "↑ +0.38 Range up#↑ +1 Luck up#+1 Soul Heart#↑ +0.5 Tear Height"}, -- Mom's Pearl [360] = {"360", "Incubus", "Gain a demonic familiar that shoots the same tears as Isaac#Deals 75% of your damage unless playing as Lilith"}, -- Incubus [366] = {"366", "Scatter Bombs", "+5 bombs#Causes your bombs to explode into 4-5 tiny bombs"}, -- Scatter Bombs @@ -173,7 +173,7 @@ local repCollectibles={ [451] = {"451", "Tarot Cloth", "Drops a random card or rune on pickup#Some cards gain an extra or doubled effect"}, -- Tarot Cloth [453] = {"453", "Compound Fracture", "Bone tears#Tears shatter into 1-3 smaller bone shards upon hitting anything#↑ +0.38 Range up#↑ +1 Tear Height"}, -- Compound Fracture [455] = {"455", "Dad's Lost Coin", "↑ +0.38 Range up#Spawns a lucky penny"}, -- Dad's Lost Coin - [456] = {"456", "Midnight Snack", "↑ +1 Health up#Heals 1 red heart"}, -- Midnight Snack + [456] = {"456", "Midnight Snack", "↑ +1 Health up#Heals 1 Red Heart"}, -- Midnight Snack [464] = {"464", "Glyph of Balance", "+2 Soul Hearts#Champion enemies and room drops appear more frequently#Priority of spawned pickups depends on what the player is missing most of"}, -- Glyph of Balance [472] = {"472", "King Baby", "Other familiars follow it and shoot automatically at enemies#Stops moving when you are shooting#Will teleport back to you when you stop shooting"}, -- King Baby [474] = {"474", "Broken Glass Cannon", "Turns into Glass Cannon when used"}, -- Broken Glass Cannon @@ -228,7 +228,7 @@ local repCollectibles={ [588] = {"588", "Sol", "Reveals the location of the {{BossRoom}}Boss Room#Upon defeating a boss, activates XIX - The Sun {{Card20}}#Also fully recharges active item, and +3 damage and +1 luck for the rest of the floor"}, -- Sol [589] = {"589", "Luna", "Adds an extra {{SecretRoom}}Secret Room and {{SuperSecretRoom}}Super Secret Room to each floor#Secret Rooms contain a beam of light that give tears up for the current floor and give half a Soul Heart"}, -- Luna [590] = {"590", "Mercurius", "↑ +0.4 Speed up#Doors stay open after entering a room"}, -- Mercurius - [591] = {"591", "Venus", "+1 Health up#Heals one Red Heart#Close enemies become charmed"}, -- Venus + [591] = {"591", "Venus", "+1 Health up#Heals 1 Red Heart#Close enemies become charmed"}, -- Venus [592] = {"592", "Terra", "↑ +1 Damage up#Replaces tears with rocks#They deal variable damage#Can destroy obstacles#Increased knockback"}, -- Terra [593] = {"593", "Mars", "Dash by double-tapping a movement key, becoming invincible and dealing 4x your damage#3 seconds cooldown"}, -- Mars [594] = {"594", "Jupiter", "+2 Health up#Heals half a red heart#↓ -0.3 Speed down#Build up Speed while standing still for up to +0.5 Speed#Release a poison gas cloud when moving again"}, -- Jupiter @@ -302,7 +302,7 @@ local repCollectibles={ [662] = {"662", "Pacifist (Cut item)", ""}, -- Pacifist (Cut item) [663] = {"663", "Tooth and Nail", "Turn invincible every 6 seconds for 1 second#Flashes right before transition"}, -- Tooth and Nail [664] = {"664", "Binge Eater", "+1 Health up#Full health#Item pedestals periodically switch between food items and the item they would hold otherwise#Picking up a food item grants temporary +3.6 damage boost, 2 small permanent stat ups and a permanent -0.03 speed down#Food items heal 3 Red Hearts"}, -- Binge Eater - [665] = {"665", "Guppy's Eye", "Shows the contents of Chests, Sacks, and Fire Places before they're opened"}, -- Guppy's Eye + [665] = {"665", "Guppy's Eye", "Shows the contents of Chests, Sacks, Shopkeepers, and Fire Places before they're opened"}, -- Guppy's Eye [666] = {"666", "", ""}, [667] = {"667", "Strawman", "Spawns Keeper as a second character#If he dies, he spawns blue spiders#Item gets removed afterwards"}, -- Strawman [668] = {"668", "Dad's Note", "Begins the sequence to access the Home floor#Trinkets left in previous {{TreasureRoom}}Treasure or {{BossRoom}}Boss Rooms turn into {{Card78}}Cracked Key"}, -- Dad's Note @@ -310,9 +310,9 @@ local repCollectibles={ [670] = {"670", "Options?", "If a room grants a clear reward, there will be two different rewards to chose from#Taking one causes the other to disappear"}, -- Options? [671] = {"671", "Candy Heart", "Gives random permanent stat boost when healing with Red Heart pickups"}, -- Candy Heart [672] = {"672", "A Pound of Flesh", "Devil deals now cost coins#Shop items now cost health#Consumables in shops are free but surrounded by spikes"}, -- A Pound of Flesh - [673] = {"673", "Redemption", "Grants 1 Soul Heart and +1 damage when entering a {{DevilRoom}}Devil Room and not taking any item/pickup"}, -- Redemption + [673] = {"673", "Redemption", "Grants 1 Soul Heart and +1 Damage when entering a {{DevilRoom}}Devil Room and not taking any item/pickup"}, -- Redemption [674] = {"674", "Spirit Shackles", "On death, Isaac's ghost is chained to his dead body and he can continue to fight with half a heart#Return to life after 10 seconds#Must be recharged by picking up a Soul Heart"}, -- Spirit Shackles - [675] = {"675", "Cracked Orb", "When taking damage, reveals random room on floor#Also unlocks doors that require keys#Can open Mega Satan door#Can reveal Ultra Secret Room"}, -- Cracked Orb + [675] = {"675", "Cracked Orb", "When you take damage:#Unlocks locked doors in the current room#Reveals a random room#Destroys all tinted and crawlspace rocks#Can open story doors#Can reveal the {{UltraSecretRoom}}Ultra Secret Room"}, -- Cracked Orb [676] = {"676", "Empty Heart", "When having an empty heart container at the start of a new floor, grants another one#Bone Hearts don't count"}, -- Empty Heart [677] = {"677", "Astral Projection", "When getting hit, stops time for 3 seconds#Isaac becomes a ghost and leaves his body#In ghost form gain flight, spectral tears and also negate next hit taken"}, -- Astral Projection [678] = {"678", "C Section", "Gain a short delay charge attack that fires homing, spectral fetus tears"}, -- C Section @@ -329,9 +329,9 @@ local repCollectibles={ [689] = {"689", "Glitched Crown", "Item pedestals quickly cycle between 5 random items"}, -- Glitched Crown [690] = {"690", "Belly Jelly", "Causes enemies to bounce off of Isaac#Bouncing them against obstacles deals damage#50% chance that Isaac ignores contact damage#50% chance to deflect enemy projectiles"}, -- Belly Jelly [691] = {"691", "Sacred Orb", "Prevents low-quality (0-1) items from spawning#Greatly increases the quality of spawned items"}, -- Sacred Orb - [692] = {"692", "Sanguine Bond", "Spawns a set of spikes in the {{DevilRoom}}Devil Room#Taking damage from the spikes can grant a reward:#35%: 6 pennies#15%: +0.5 Damage up#5%: 2 Black Hearts#2%: Random item#1%: Leviathan transformation"}, -- Sanguine Bond //TBD: Someone on the wiki said the percentages were changed and that's mentioned in the changelog. Would like if someone could check those. + [692] = {"692", "Sanguine Bond", "Spawns a set of spikes in the {{DevilRoom}}Devil Room#Taking damage from the spikes can grant a reward:#35%: Nothing#33%: +0.5 Damage up#15%: 6 pennies#10%: 2 Black Hearts#5%: Random Devil item#2%: Leviathan transformation"}, -- Sanguine Bond //PERCENTAGES NOT CONFIRMED, updated in patch, taken from Wiki [693] = {"693", "The Swarm", "Grants 9 orbital flies which turn into Blue Flies after they block a shot#Spawns a new fly every room cleared"}, -- The Swarm - [694] = {"694", "Heartbreak", "Grants 3 broken hearts#↑ +0.25 damage for every broken heart#Every fatal hit will add 2 more broken hearts#You die at 12 broken hearts"}, -- Heartbreak + [694] = {"694", "Heartbreak", "Grants 3 broken hearts#↑ +0.25 Damage for every broken heart#Every fatal hit will add 2 more broken hearts#You die at 12 broken hearts"}, -- Heartbreak [695] = {"695", "Bloody Gust", "When taking damage, gain speed and tears up for the current floor#Up to +1.02 Speed and +3 Fire Rate possible"}, -- Bloody Gust [696] = {"696", "Salvation", "Grants halo that spawns beams of light on enemies inside it#The halo grows larger the more damage you've taken this floor"}, -- Salvation [697] = {"697", "Vanishing Twin", "Familiar that becomes a clone of the boss when entering the boss room#Defeating it drops an extra item#Clone is slower and has 75% of the original boss health"}, -- Vanishing Twin @@ -342,9 +342,9 @@ local repCollectibles={ [702] = {"702", "Vengeful Spirit", "After taking damage, spawns an orbital wisp that lasts for the entire floor#Maximum of 6#They fire tears but do not block shots"}, -- Vengeful Spirit [703] = {"703", "Esau Jr.", "Swaps between the current character and Esau Jr., who has 3 Black Hearts, +2 damage and flight#Characters have independent items and health#{{Warning}} Dying as either character ends the run"}, -- Esau Jr. [704] = {"704", "Berserk!", "Berserk mode for 5 seconds:#↑ +0.4 Speed up#↑ Tears up#↑ +3 Damage up#Restricts attacks to a melee weapon"}, -- Berserk! - [705] = {"705", "Dark Arts", "When used, gain ↑ +1 speed and ability to walk through enemies/bullets for 1 second#Shortly increases damage by 1 for each enemy touched#Damages touched enemies with 3x your damage"}, -- Dark Arts + [705] = {"705", "Dark Arts", "When used, gain ↑ +1 Speed and ability to walk through enemies/bullets for 1 second#Shortly increases damage by 1 for each enemy touched#Damages touched enemies with 3x your damage"}, -- Dark Arts [706] = {"706", "Abyss", "Destroys all items in the room and spawns an attack fly familiar for each#Effects of fly depends on the items"}, -- Abyss - [707] = {"707", "Supper", "↑ +1 Health up#Heals one Red Heart"}, -- Supper + [707] = {"707", "Supper", "↑ +1 Health up#Heals 1 Red Heart"}, -- Supper [708] = {"708", "Stapler", "↑ +1 Damage up#Prevents Isaac from firing tears from one eye"}, -- Stapler [709] = {"709", "Suplex!", "Allows you to dash into and pick up enemies or bosses, then slam them into the ground#Slam can be controlled#Slam deals 50 damage and spawns rock waves#Scales in damage and area of effect with the player's size"}, -- Suplex! [710] = {"710", "Bag of Crafting", "Collects and holds up to 8 pickups which cannot be dropped#Once 8 pickups are in the bag, using it will craft an item#Quality of the item is dependent on the quality of the pickups"}, -- Bag of Crafting @@ -357,7 +357,7 @@ local repCollectibles={ [717] = {"717", "Keeper's Kin", "Rocks and props spawn 2 blue spiders when destroyed#Rocks can occasionally spawn blue spiders when in a hostile room"}, -- Keeper's Kin [718] = {"718", "Keeper's Robe (Cut item)", ""}, -- Keepers Robe (Cut item) [719] = {"719", "Keeper's Box", "Spawns a random shop item/pickup"}, -- Keeper's Box - [720] = {"720", "Everything Jar", "Spawns certain pickups based on how many charges it has#If fully charged, it has a strong random effect#Charge Rewards:#{{Blank}} 1:{{Collectible36}} 2:{{Coin}} 3:{{Bomb}} 4:{{Key}}#{{Blank}} 5:{{Heart}} 6:{{Pill}} 7:{{Card}} 8:{{SoulHeart}}#{{Blank}} 9:{{GoldenHeart}} 10:{{GoldenKey}} 11:{{GoldenBomb}}"}, -- Everything Jar + [720] = {"720", "Everything Jar", "Spawns certain pickups based on how many charges it has#If fully charged, it has a strong random effect#Charge Rewards:#{{Blank}} 1:{{PoopPickup}} 2:{{Coin}} 3:{{Bomb}} 4:{{Key}}#{{Blank}} 5:{{Heart}} 6:{{Pill}} 7:{{Card}} 8:{{SoulHeart}}#{{Blank}} 9:{{GoldenHeart}} 10:{{GoldenKey}} 11:{{GoldenBomb}}"}, -- Everything Jar [721] = {"721", "TMTRAINER", "Causes all future items to be 'glitched'#Grants them completely random effects"}, -- TMTRAINER [722] = {"722", "Anima Sola", "Chains down the nearest enemy for 5 seconds, preventing them from acting"}, -- Anima Sola [723] = {"723", "Spindown Dice", "Transforms all items in the room by decreasing their internal ID number by one"}, -- Spindown Dice @@ -488,7 +488,7 @@ local repTrinkets={ [50] = {"50", "Burnt Penny", "25% chance to drop a bomb when picking up coins"}, -- Burnt Penny [51] = {"51", "Flat Penny", "25% chance to drop a key when picking up coins"}, -- Flat Penny [65] = {"65", "Tape Worm", "↑ +3 Range up"}, -- Tape Worm - [66] = {"66", "Lazy Worm", "↓ -0.5 Shot Speed down#↑ +2 Tear Height"}, -- Lazy Worm + [66] = {"66", "Lazy Worm", "↓ -0.4 Shot Speed down"}, -- Lazy Worm [69] = {"69", "Faded Polaroid", "Camouflages the player randomly#Confuses enemies#Can be used to open the door to the \"Home\" floor"}, -- Faded Polaroid [80] = {"80", "Black Feather", "↑ +0.5 Damage up for each evil item held"}, -- Black Feather [92] = {"92", "Cracked Crown", "↑ Stat increases of your items are 20% more effective"}, -- Cracked Crown @@ -522,7 +522,7 @@ local repTrinkets={ [149] = {"149", "Panic Button", "Activates your active item upon taking damage"}, -- Panic Button [150] = {"150", "Blue Key", "Entering a room that requires a key brings you in a room resembling the Hush stage#Room acts as an in-between of the two rooms"}, -- Blue Key [151] = {"151", "Flat File", "Causes spikes to retract, making them harmless#Also affects {{CursedRoom}}Curse Room doors, mimics and any spike obstacle"}, -- Flat File - [152] = {"152", "Telescope Lens", "Increases the default chance for a Planetarium to spawn to 15%#Adds another 10% chance#More than one Planetarium can spawn#Planetariums can now spawn in the Womb and Corpse"}, -- Telescope Lens + [152] = {"152", "Telescope Lens", "+24% {{Planetarium}}Planetarium chance if none have spawned#+9% if a Planetarium has already spawned#Planetariums can now spawn in the Womb and Corpse"}, -- Telescope Lens [153] = {"153", "Mom's Lock", "Has a chance to grant the effects of a random Mom item each room"}, -- Mom's Lock [154] = {"154", "Dice Bag", "When entering a new room, grants a temporary Dice consumable item#The Dice disappears when leaving#Grants ability to hold two consumables"}, -- Dice Bag [155] = {"155", "Holy Crown", "Spawns a {{TreasureRoom}}Treasure Room and {{Shop}}Shop in Cathedral"}, -- Holy Crown @@ -552,7 +552,7 @@ local repTrinkets={ [179] = {"179", "RC Remote", "Familiars movement will be controlled by the same inputs as the player"}, -- RC Remote [180] = {"180", "Found Soul", "Familiar that follows Isaac's exact movements and shoots spectral tears#Has same damage and tear effects as the player"}, -- Found Soul [181] = {"181", "Expansion Pack", "Triggers a separate random active item when using an active item"}, -- Expansion Pack - [182] = {"182", "Beth's Essence", "Spawns 5 wisps upon entering an Angel Room#Creates a wisp when giving money to beggars"}, -- Beth's Essence + [182] = {"182", "Beth's Essence", "Spawns 5 wisps upon entering an {{AngelRoom}}Angel Room#Chance to spawn a wisp when donating to Beggars"}, -- Beth's Essence [183] = {"183", "The Twins", "50% chance to duplicate a familiar each room#Grants{{Collectible8}}Brother Bobby or{{Collectible67}}Sister Maggy if you have no familiars"}, -- The Twins [184] = {"184", "Adoption Papers", "Shops can sell familiars#Familiars will always be on discount"}, -- Adoption Papers [185] = {"185", "Cricket Leg", "Chance to spawn a random locust when killing an enemy"}, -- Cricket Leg @@ -584,7 +584,7 @@ EID.descriptions["en_us"].tarotClothBuffs = { [16] = {"16", "", "Damage increase doubled"}, -- XV - The Devil [17] = {"17", "", "Spawns 12 troll bombs"}, -- XVI - The Tower [18] = {"18", "", "If the Treasure Room wasn't entered before, it will have two items to choose from"}, -- XVII - The Stars - [21] = {"21", "", "Spawns 2 beggars"}, -- XX - Judgement + [21] = {"21", "", "Spawns 2 Beggars"}, -- XX - Judgement [56] = {"56", "", "Drops all items alongside pickups, including Tarot Cloth"}, -- 0 - The Fool? [59] = {"59", "", "↑ +3 Health up"}, -- III - The Empress? [61] = {"61", "", "Spawns 3 Bone Hearts"}, -- V - The Hierophant? @@ -796,7 +796,7 @@ local repCards={ [71] = {"71", "XV - The Devil?", "Invokes {{Collectible33}}The Bible effect#Grants {{Collectible390}}Seraphim and flight for 30 seconds"}, -- XV - The Devil? [72] = {"72", "XVI - The Tower?", "Spawns 6 clusters of random rocks and obstacles#Clusters will often contain Tinted Rocks"}, -- XVI - The Tower? [73] = {"73", "XVII - The Stars?", "Removes oldest passive item (ignoring starting items)#Spawns 2 random items from current room's item pool"}, -- XVII - The Stars? - [74] = {"74", "XVIII - The Moon?", "Teleports you to Ultra Secret Room#Pathway back will be made of red rooms"}, -- XVIII - The Moon? + [74] = {"74", "XVIII - The Moon?", "Teleports you to the {{UltraSecretRoom}}Ultra Secret Room#Pathway back will be made of red rooms"}, -- XVIII - The Moon? [75] = {"75", "XIX - The Sun?", "For the current floor:#↑ Gain {{Collectible159}}Spirit of the Night#↑ +1.5 Damage up#Turns your Red Hearts into Bone Hearts#Applies Curse of Darkness"}, -- XIX - The Sun? [76] = {"76", "XX - Judgement?", "Spawns a Restock Machine"}, -- XX - Judgement? [77] = {"77", "XXI - The World?", "Spawns a trap door to a crawl space"}, -- XXI - The World? @@ -815,8 +815,8 @@ local repCards={ [90] = {"90", "Soul of Eden", "Rerolls pedestals and pickups in current room#The rerolled items use random pools"}, -- Soul of Eden [91] = {"91", "Soul of the Lost", "Die and turn into The Lost for current room#You can take one {{DevilRoom}}Devil Room item for free, the rest will disappear#You can enter the Mausoleum or Gehenna door for free"}, -- Soul of the Lost [92] = {"92", "Soul of Lilith", "Adds 1 random familiar"}, -- Soul of Lilith - [93] = {"93", "Soul of the Keeper", "Spawns 3-25 random coins"}, -- Soul of the Keeper - [94] = {"94", "Soul of Apollyon", "Spawn 15 random locust flies"}, -- oul of Apollyon + [93] = {"93", "Soul of the Keeper", "Spawns 1-25 random coins"}, -- Soul of the Keeper + [94] = {"94", "Soul of Apollyon", "Spawn 15 random locust flies"}, -- Soul of Apollyon [95] = {"95", "Soul of the Forgotten", "Spawns The Forgotten as a temporary secondary character for current room"}, -- Soul of the Forgotten [96] = {"96", "Soul of Bethany", "Spawns 6 {{Collectible584}}Book of Virtues wisps with random properties"}, -- Soul of Bethany [97] = {"97", "Soul of Jacob and Esau", "Spawns Esau as a temporary secondary character for current room"}, -- Soul of Jacob and Esau @@ -896,7 +896,12 @@ EID.descriptions["en_us"].horsepills={ EID.descriptions["en_us"].CraftingBagContent = "Bag:" EID.descriptions["en_us"].CraftingRoomContent = "Room:" EID.descriptions["en_us"].CraftingFloorContent = "Floor:" + +EID.descriptions["en_us"].CraftingBagQuality = "Bag Quality:" +EID.descriptions["en_us"].CraftingBestQuality = "Best Quality:" + EID.descriptions["en_us"].CraftingResults = "(Scroll: hold {{CONFIG_BoC_Toggle}} + {{ButtonY}} {{ButtonA}},#Lock: {{ButtonX}}, Refresh: {{ButtonB}})" EID.descriptions["en_us"].CraftingBagModError = "!!! {{ColorRed}}ERROR:#{{ColorRed}}The \"Crafting result calculation\" feature currently does not work when item mods are installed!#{{ColorRed}}Please uninstall the item mods or deactivate the Bag of Crafting descriptions in the config" EID.descriptions["en_us"].AchievementWarningTitle = "{{ColorYellow}}!!! WARNING !!!" EID.descriptions["en_us"].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)" +EID.descriptions["en_us"].OutdatedModWarningText = "An outdated mod is reducing your number of items! This could cause crashes, especially on entering the Knife Piece 2 area!#Please uninstall mods with an outdated resources/items.xml file" diff --git a/eid_api.lua b/eid_api.lua index 4734f6f7..8e6ecd32 100644 --- a/eid_api.lua +++ b/eid_api.lua @@ -764,7 +764,8 @@ function EID:getSpindownResult(collectibleID) end function EID:GetMaxCollectibleID() - local id = CollectibleType.NUM_COLLECTIBLES-1 + --start a little lower than NUM_COLLECTIBLES, due to mods with outdated items.xmls that are missing newer items + local id = CollectibleType.NUM_COLLECTIBLES-17 local step = 16 while step > 0 do if EID.itemConfig:GetCollectible(id+step) ~= nil then @@ -799,6 +800,8 @@ function EID:isCollectibleUnlocked(collectibleID, itemPoolOfItem) end function EID:isCollectibleUnlockedAnyPool(collectibleID) + --THIS FUNCTION IS FOR REPENTANCE ONLY due to using Repentance XML data; currently used by the Achievement Check, Spindown Dice, and Bag of Crafting + if not REPENTANCE then return true end local item = EID.itemConfig:GetCollectible(collectibleID) if EID.itemUnlockStates[collectibleID] == nil then --whitelist all quest items and items with no associated achievement @@ -828,10 +831,11 @@ end -- Converts a given table into a string containing the crafting icons of the table -- Example input: {1,2,3,4,5,6,7,8} --- Result: "{{Crafting8}}{{Crafting7}}{{Crafting6}}{{Crafting5}}{{Crafting4}}{{Crafting3}}{{Crafting2}}{{Crafting1}}" -function EID:tableToCraftingIconsFull(craftTable) +-- Result: "{{Crafting1}}{{Crafting2}}{{Crafting3}}{{Crafting4}}{{Crafting5}}{{Crafting6}}{{Crafting7}}{{Crafting8}}" +function EID:tableToCraftingIconsFull(craftTable, sortTable) + if (sortTable == nil) then sortTable = true end local sortedList = {table.unpack(craftTable)} - table.sort(sortedList, function(a, b) return a > b end) + if (sortTable) then table.sort(sortedList, function(a, b) return a < b end) end local iconString = "" for _,nr in ipairs(sortedList) do iconString = iconString.."{{Crafting"..nr.."}}" @@ -841,12 +845,11 @@ end -- Converts a given table into a string containing the crafting icons of the table, which are also grouped to reduce render lag -- Example input: {1,1,1,2,2,3,3,3} --- Result: "3{{Crafting3}}2{{Crafting2}}3{{Crafting1}}" +-- Result: "3{{Crafting1}}2{{Crafting2}}3{{Crafting3}}" local emptyPickupTable = {} for i=1,29 do emptyPickupTable[i] = 0 end function EID:tableToCraftingIconsMerged(craftTable) local sortedList = {table.unpack(craftTable)} - table.sort(sortedList, function(a, b) return a > b end) local filteredList = {table.unpack(emptyPickupTable)} for _,nr in ipairs(sortedList) do filteredList[nr] = filteredList[nr] +1 diff --git a/eid_bagofcrafting.lua b/eid_bagofcrafting.lua index f42bfff3..f92de2ce 100644 --- a/eid_bagofcrafting.lua +++ b/eid_bagofcrafting.lua @@ -49,7 +49,7 @@ local pickupIDLookup = { ["10.7"] = {5}, -- gold heart ["10.8"] = {2}, -- half soul heart ["10.9"] = {1}, -- scared red heart - ["10.10"] = {1, 2}, -- blended heart + ["10.10"] = {2, 1}, -- blended heart ["10.11"] = {6}, -- Bone heart ["10.12"] = {7}, -- Rotten heart ["20.1"] = {8}, -- Penny @@ -184,13 +184,16 @@ for i = 1, EID.XMLMaxItemID do end end -table.sort(sortedIDs, function(a, b) - if EID.XMLItemQualities[a] == EID.XMLItemQualities[b] then - return (EID:getObjectName(5, 100, a) < EID:getObjectName(5, 100, b)) - else - return (EID.XMLItemQualities[a] > EID.XMLItemQualities[b]) - end -end) +--don't sort if there's a collectible ID discrepancy +if EID:GetMaxCollectibleID() == EID.XMLMaxItemID then + table.sort(sortedIDs, function(a, b) + if EID.XMLItemQualities[a] == EID.XMLItemQualities[b] then + return (EID:getObjectName(5, 100, a) < EID:getObjectName(5, 100, b)) + else + return (EID.XMLItemQualities[a] > EID.XMLItemQualities[b]) + end + end) +end local customRNGSeed = 0x77777770 local customRNGShift = {0,0,0} @@ -225,6 +228,108 @@ function EID:getBagOfCraftingID(Variant, SubType) return nil end +local poolToIcon = { [0]="{{TreasureRoom}}",[1]="{{Shop}}",[2]="{{BossRoom}}",[3]="{{DevilRoom}}",[4]="{{AngelRoom}}", +[5]="{{SecretRoom}}",[7]="{{PoopRoomIcon}}",[8]="{{GoldenChestRoomIcon}}",[9]="{{RedChestRoomIcon}}",[12]="{{CursedRoom}}",[26]="{{Planetarium}}" } + +function EID:simulateBagOfCrafting(componentsTable) + local components = componentsTable + local compTotalWeight = 0 + local compCounts = {} + for i = 1, #componentShifts do + compCounts[i] = 0 + end + for _, compId in ipairs(components) do + if (_ > 8) then break end + compCounts[compId + 1] = compCounts[compId + 1] + 1 + compTotalWeight = compTotalWeight + pickupValues[compId + 1] + end + + local poolWeights = { + {idx = 0, weight = 1}, + {idx = 1, weight = 2}, + {idx = 2, weight = 2}, + {idx = 3, weight = compCounts[4] * 10}, + {idx = 4, weight = compCounts[5] * 10}, + {idx = 5, weight = compCounts[7] * 5}, + {idx = 7, weight = compCounts[30] * 10}, + {idx = 8, weight = compCounts[6] * 10}, + {idx = 9, weight = compCounts[26] * 10}, + {idx = 12, weight = compCounts[8] * 10}, + } + if compCounts[9] + compCounts[2] + compCounts[13] + compCounts[16] == 0 then + table.insert(poolWeights, {idx = 26, weight = compCounts[24] * 10}) + end + + for k,v in ipairs(poolWeights) do + v.totalWeight = 0 + end + local totalWeight = 0 + + local qualityWeights = {[0]=0, 0, 0, 0, 0} + + for _, poolWeight in ipairs(poolWeights) do + if poolWeight.weight > 0 then + local qualityMin = 0 + local qualityMax = 1 + local n = compTotalWeight + if (poolWeight.idx >= 3) and (poolWeight.idx <= 5) then + n = n - 5 + end + if n > 34 then + qualityMin = 4 + qualityMax = 4 + elseif n > 26 then + qualityMin = 3 + qualityMax = 4 + elseif n > 22 then + qualityMin = 2 + qualityMax = 4 + elseif n > 18 then + qualityMin = 2 + qualityMax = 3 + elseif n > 14 then + qualityMin = 1 + qualityMax = 2 + elseif n > 8 then + qualityMin = 0 + qualityMax = 2 + end + local pool = EID.XMLItemPools[poolWeight.idx + 1] + + for _, item in ipairs(pool) do + local quality = EID.XMLItemQualities[item[1]] + if quality >= qualityMin and quality <= qualityMax then + local w = item[2] * poolWeight.weight + poolWeight.totalWeight = poolWeight.totalWeight + w + qualityWeights[quality] = qualityWeights[quality] + w + totalWeight = totalWeight + w + end + end + end + end + + local poolString = "" + local firstAfterBoss = false + for k,v in ipairs(poolWeights) do + if (v.totalWeight > 0) then + --line break after boss pool + if (firstAfterBoss) then poolString = poolString .. " " end + poolString = poolString .. poolToIcon[v.idx] .. ":" .. math.floor(v.totalWeight/totalWeight*100+0.5) .. "%," + if (k == 3) then firstAfterBoss = true else firstAfterBoss = false end + end + end + poolString = string.sub(poolString,1,-2) .. "#" + for i=0,4 do + local v = qualityWeights[i] + if (v > 0) then + poolString = poolString .. "{{Quality" .. i .. "}}:" .. math.floor(v/totalWeight*100+0.5) .. "%," + end + end + poolString = string.sub(poolString,1,-2) + + return compTotalWeight, poolString +end + function EID:calculateBagOfCrafting(componentsTable) local components = {table.unpack(componentsTable)} if components == nil or #components ~= 8 then @@ -294,9 +399,6 @@ function EID:calculateBagOfCrafting(componentsTable) if n > 34 then qualityMin = 4 qualityMax = 4 - elseif n > 30 then - qualityMin = 3 - qualityMax = 4 elseif n > 26 then qualityMin = 3 qualityMax = 4 @@ -334,7 +436,7 @@ function EID:calculateBagOfCrafting(componentsTable) while true do local t = nextFloat() local target = t * totalWeight - for k,v in pairs(itemWeights) do + for k,v in ipairs(itemWeights) do target = target - v if target < 0 then if firstOption then @@ -458,7 +560,7 @@ local function shiftBagContent() EID.BagItems = newContent end --- only Tainted Cain's consumable slot bag can have its ingredients shifted... probably? +-- only Tainted Cain's consumable slot bag can have its ingredients shifted local function detectBagContentShift() if Input.IsActionTriggered(ButtonAction.ACTION_DROP, EID.player.ControllerIndex) and IsTaintedCain() then shiftBagContent() @@ -489,6 +591,9 @@ EID.bagOfCraftingRefreshes = 0 EID.downHeld = 0 EID.upHeld = 0 +EID.craftingIsHidden = false +EID.showCraftingResult = false + local maxItemID = nil local function detectModdedItems() @@ -496,9 +601,6 @@ local function detectModdedItems() maxItemID = EID:GetMaxCollectibleID() end if maxItemID > EID.XMLMaxItemID then - local customDescObj = EID:getDescriptionObj(5, 100, 710) - customDescObj.Description = EID.descriptions["en_us"].CraftingBagModError - EID:printDescription(customDescObj) return true end return false @@ -513,12 +615,36 @@ local function calcFloorItems() end end +--code from InputHelper in MCM +local HotkeyToString = {} +for key,num in pairs(Keyboard) do + local keyString = key + local keyStart, keyEnd = string.find(keyString, "KEY_") + keyString = string.sub(keyString, keyEnd+1, string.len(keyString)) + keyString = string.gsub(keyString, "_", " ") + HotkeyToString[num] = keyString +end + function EID:handleBagOfCraftingRendering() trackBagHolding() trackBagActivated() detectBagContentShift() - if EID.isHidden then + local tableToCraftingIcons = EID.tableToCraftingIconsMerged + if EID.Config["BagOfCraftingDisplayIcons"] then tableToCraftingIcons = EID.tableToCraftingIconsFull end + + --prevent our hotkeys from triggering as they're set + if not ModConfigMenu or not ModConfigMenu.IsVisible then + if Input.IsButtonTriggered(EID.Config["CraftingHideKey"], 0) or Input.IsButtonTriggered(EID.Config["CraftingHideButton"], EID.player.ControllerIndex) then + EID.craftingIsHidden = not EID.craftingIsHidden + end + + if Input.IsButtonTriggered(EID.Config["CraftingResultKey"], 0) or Input.IsButtonTriggered(EID.Config["CraftingResultButton"], EID.player.ControllerIndex) then + EID.showCraftingResult = not EID.showCraftingResult + end + end + + if EID.isHidden or EID.craftingIsHidden then return elseif EID.Config["BagOfCraftingHideInBattle"] then if Isaac.CountBosses() > 0 or Isaac.CountEnemies() > 0 then @@ -532,10 +658,22 @@ function EID:handleBagOfCraftingRendering() if EID.Config["DisplayBagOfCrafting"] == "hold" and not string.find(EID.player:GetSprite():GetAnimation(), "PickupWalk") then return false end - if detectModdedItems() or Game():GetRoom():GetFrameCount ()<2 then + if Game():GetRoom():GetFrameCount ()<2 then return false end + if EID.showCraftingResult and #EID.BagItems >= 8 then + local craftingResult, backupResult = EID:calculateBagOfCrafting(EID.BagItems) + local descriptionObj = EID:getDescriptionObj(5, 100, craftingResult) + local backupObj = EID:getDescriptionObj(5, 100, backupResult) + if (backupResult ~= craftingResult) then + EID:appendToDescription(descriptionObj,"#!!! If this item's locked, it will turn into#{{Collectible" .. backupResult .. "}} " .. + EID:getObjectName(5, 100, backupResult) .. "#" .. backupObj.Description) + end + EID:printDescription(descriptionObj) + return true + end + local curSeed = Game():GetSeeds():GetStartSeed() --reset our calculated recipes when the game seed changes if (curSeed ~= lastSeedUsed) then @@ -604,6 +742,57 @@ function EID:handleBagOfCraftingRendering() --sort by ingredient quality table.sort(itemQuery, qualitySort) + --Simplified Mode display + if (EID.Config["BagOfCraftingSimplifiedMode"] or detectModdedItems()) then + local customDescObj = EID:getDescriptionObj(5, 100, 710) + customDescObj.Description = "" + + local hotkeyString = "" + if HotkeyToString[EID.Config["CraftingHideKey"]] then + hotkeyString = "Hide: " .. HotkeyToString[EID.Config["CraftingHideKey"]] + end + if #EID.BagItems >= 8 and HotkeyToString[EID.Config["CraftingResultKey"]] then + if hotkeyString ~= "" then hotkeyString = hotkeyString .. ", " end + hotkeyString = hotkeyString .. "Preview: " .. HotkeyToString[EID.Config["CraftingResultKey"]] + end + if hotkeyString ~= "" then + EID:appendToDescription(customDescObj, "!!! " .. hotkeyString .. "#") + end + + if #EID.BagItems >0 then + if #EID.BagItems >= 8 then + local recipe = EID:calculateBagOfCrafting(EID.BagItems) + EID:appendToDescription(customDescObj, "{{Collectible"..recipe.."}} ") + end + local bagDesc = EID:getDescriptionEntry("CraftingBagContent").."(Beta)" + EID:appendToDescription(customDescObj, bagDesc..EID:tableToCraftingIconsMerged(EID.BagItems).."#") + end + if #roomItems >0 then + local roomDesc = EID:getDescriptionEntry("CraftingRoomContent") + EID:appendToDescription(customDescObj, roomDesc..EID:tableToCraftingIconsMerged(roomItems).."#") + end + if #EID.bagOfCraftingFloorQuery >0 and #roomItems ~= #EID.bagOfCraftingFloorQuery then + local floorDesc = EID:getDescriptionEntry("CraftingFloorContent") + EID:appendToDescription(customDescObj, floorDesc..EID:tableToCraftingIconsMerged(EID.bagOfCraftingFloorQuery).."#") + end + + local mostValuableSimp = {} + for i=1,8 do + mostValuableSimp[i] = itemQuery[i] + end + + local bagQuality, bagResult = EID:simulateBagOfCrafting(EID.BagItems) + local bestQuality, bestResult = EID:simulateBagOfCrafting(mostValuableSimp) + local bagQualityDesc = EID:getDescriptionEntry("CraftingBagQuality") + local bestQualityDesc = EID:getDescriptionEntry("CraftingBestQuality") + + if (#EID.BagItems > 0) then EID:appendToDescription(customDescObj, bagQualityDesc .. " " .. bagQuality .. "#" .. bagResult .. "#") end + if (bestQuality > bagQuality) then EID:appendToDescription(customDescObj, bestQualityDesc .. " " .. bestQuality .. "#{{Blank}} " .. tableToCraftingIcons(self,mostValuableSimp) .. "#" .. bestResult .. "#") end + + EID:printDescription(customDescObj) + return true + end + local queryString = table.concat(itemQuery,",") if EID.lockedResults ~= nil then results = calcResultCache[EID.lockedResults] @@ -723,6 +912,18 @@ function EID:handleBagOfCraftingRendering() local customDescObj = EID:getDescriptionObj(5, 100, 710) customDescObj.Description = "" + local hotkeyString = "" + if HotkeyToString[EID.Config["CraftingHideKey"]] then + hotkeyString = "Hide: " .. HotkeyToString[EID.Config["CraftingHideKey"]] + end + if #EID.BagItems >= 8 and HotkeyToString[EID.Config["CraftingResultKey"]] then + if hotkeyString ~= "" then hotkeyString = hotkeyString .. ", " end + hotkeyString = hotkeyString .. "Preview: " .. HotkeyToString[EID.Config["CraftingResultKey"]] + end + if hotkeyString ~= "" then + EID:appendToDescription(customDescObj, "!!! " .. hotkeyString .. "#") + end + if #EID.BagItems >0 then if #EID.BagItems >= 8 then local recipe = EID:calculateBagOfCrafting(EID.BagItems) @@ -730,6 +931,8 @@ function EID:handleBagOfCraftingRendering() end local bagDesc = EID:getDescriptionEntry("CraftingBagContent").."(Beta)" EID:appendToDescription(customDescObj, bagDesc..EID:tableToCraftingIconsMerged(EID.BagItems).."#") + --debug the bag order + --EID:appendToDescription(customDescObj, EID:tableToCraftingIconsFull(EID.BagItems, false).."#") end if #roomItems >0 then if #roomItems == 8 then @@ -822,7 +1025,7 @@ function EID:handleBagOfCraftingRendering() if v[3] then customDescObj.Description = customDescObj.Description.." {{Collectible" .. v[3] .. "}} " end end - customDescObj.Description = customDescObj.Description..EID:tableToCraftingIconsMerged(v[1]) + customDescObj.Description = customDescObj.Description..tableToCraftingIcons(self,v[1]) prevItem = v[2] end end diff --git a/eid_config.lua b/eid_config.lua index c1134a97..02cb757d 100644 --- a/eid_config.lua +++ b/eid_config.lua @@ -1,3 +1,21 @@ +local Controller = Controller or {} +Controller.DPAD_LEFT = 0 +Controller.DPAD_RIGHT = 1 +Controller.DPAD_UP = 2 +Controller.DPAD_DOWN = 3 +Controller.BUTTON_A = 4 +Controller.BUTTON_B = 5 +Controller.BUTTON_X = 6 +Controller.BUTTON_Y = 7 +Controller.BUMPER_LEFT = 8 +Controller.TRIGGER_LEFT = 9 +Controller.STICK_LEFT = 10 +Controller.BUMPER_RIGHT = 11 +Controller.TRIGGER_RIGHT = 12 +Controller.STICK_RIGHT = 13 +Controller.BUTTON_BACK = 14 +Controller.BUTTON_START = 15 + EID.UserConfig = { -------GENERAL--------- -- Change language of the mod. @@ -51,9 +69,13 @@ EID.UserConfig = { ["Indicator"] = "none", -- Set the keybinding to toggle the descriptions -- look into the AB+ or Repentance documentation for the key names here: https://wofsauge.github.io/IsaacDocs/rep/enums/Keyboard.html - -- if you want to map it onto a controller button, you need to use the "ButtonAction" enum instead of the Keyboard enum https://wofsauge.github.io/IsaacDocs/rep/enums/ButtonAction.html -- Default = Keyboard.KEY_F2 ["HideKey"] = Keyboard.KEY_F2, + -- Set the controller binding to toggle the descriptions + -- Use the Controller enum at the top of this file, or a number + -- Of note are Controller.STICK_LEFT and Controller.STICK_RIGHT, which aren't used in-game with default controls + -- Default = none (-1) + ["HideButton"] = -1, -- Initial displaystate. Can be used to change the toggle behavior of the "Hide Key" event -- Default = false ["InitiallyHidden"] = false, @@ -170,6 +192,12 @@ EID.UserConfig = { -- "always" = Always show Results, "hold" = Show when holding up bag, "never" = Never show results -- Default = "always" ["DisplayBagOfCrafting"] = "always", + -- Hide the recipe list when in battle + -- Default = true + ["BagOfCraftingHideInBattle"] = true, + -- Simplified / No Recipes Mode shows quality and item pool percentages instead of exact recipes, for a more intended experience + -- Default = false + ["BagOfCraftingSimplifiedMode"] = false, -- Changes the number of Results shown in the Bag of crafting description -- Higher numbers can cause more lag! -- Default = 7 @@ -189,9 +217,27 @@ EID.UserConfig = { -- Display craftable item names, moving the recipe to a new line -- Default = false ["BagOfCraftingDisplayNames"] = false, - -- Hide the recipe list when in battle - -- Default = true - ["BagOfCraftingHideInBattle"] = true, + -- Display recipes as 8 icons instead of grouped ingredients + -- Default = false + ["BagOfCraftingDisplayIcons"] = false, + -- Set the keybinding to toggle the crafting display, so you can see descriptions of items/pickups on the floor + -- look into the AB+ or Repentance documentation for the key names here: https://wofsauge.github.io/IsaacDocs/rep/enums/Keyboard.html + -- Default = Keyboard.KEY_F3 + ["CraftingHideKey"] = Keyboard.KEY_F3, + -- Set the controller binding to toggle the crafting display, so you can see descriptions of items/pickups on the floor + -- Use the Controller enum at the top of this file, or a number + -- Of note are Controller.STICK_LEFT and Controller.STICK_RIGHT, which aren't used in-game with default controls + -- Default = none (-1) + ["CraftingHideButton"] = -1, + -- Set the keybinding to toggle viewing the description of the item ready to be crafted in the bag + -- look into the AB+ or Repentance documentation for the key names here: https://wofsauge.github.io/IsaacDocs/rep/enums/Keyboard.html + -- Default = Keyboard.KEY_F3 + ["CraftingResultKey"] = Keyboard.KEY_F4, + -- Set the controller binding to toggle viewing the description of the item ready to be crafted in the bag + -- Use the Controller enum at the top of this file, or a number + -- Of note are Controller.STICK_LEFT and Controller.STICK_RIGHT, which aren't used in-game with default controls + -- Default = none (-1) + ["CraftingResultButton"] = -1, ---------Mouse Controls----------- @@ -262,6 +308,7 @@ EID.DefaultConfig = { ["MaxDistance"] = 5, ["Indicator"] = "none", ["HideKey"] = Keyboard.KEY_F2, + ["HideButton"] = -1, ["InitiallyHidden"] = false, ["HideInBattle"] = false, ["DisableObstructionOnFlight"] = true, @@ -297,7 +344,13 @@ EID.DefaultConfig = { ["BagOfCraftingRandomResults"] = 400, ["BagOfCraftingToggleKey"] = ButtonAction.ACTION_MAP, ["BagOfCraftingDisplayNames"] = false, + ["BagOfCraftingDisplayIcons"] = false, ["BagOfCraftingHideInBattle"] = true, + ["BagOfCraftingSimplifiedMode"] = false, + ["CraftingHideKey"] = Keyboard.KEY_F3, + ["CraftingHideButton"] = -1, + ["CraftingResultKey"] = Keyboard.KEY_F4, + ["CraftingResultButton"] = -1, ["SpindownDiceResults"] = 3, ["SpindownDiceSkipLocked"] = false, ["EnableMouseControls"] = false, diff --git a/eid_data.lua b/eid_data.lua index 3085fd76..bd61f09c 100644 --- a/eid_data.lua +++ b/eid_data.lua @@ -144,6 +144,7 @@ EID.InlineIcons = { ----- Modded Pill-Colors need to be added manually! (Example in Wiki) ["Battery"] = {"pickups", 9, 8, 9}, ["Timer"] = {"pickups", 10, 8, 9}, + ["PoopPickup"] = {"pickups", 11, 8, 9}, ["Collectible"] = {"Collectible", 0, 7, 7}, ----- Use Markup "Collectible"+ ITEMID to render collectible sprites (example: {{Collectible1}} = Sad Onion) ----- Modded Collectible-icons are automatically generated. No code needed! @@ -173,6 +174,12 @@ EID.InlineIcons = { ["ChestRoom"] = {"roomicons", 16, 8, 9, 0, 2}, ["IsaacsRoom"] = {"roomicons", 17, 8, 9, 0, 2}, ["BarrenRoom"] = {"roomicons", 18, 8, 9, 0, 2}, + ["UltraSecretRoom"] = {"roomicons", 19, 8, 9, 0, 2}, + ["Planetarium"] = {"roomicons", 20, 8, 9, 0, 2}, + ["PoopRoomIcon"] = {"roomicons", 21, 8, 9, 0, 2}, + ["RedChestRoomIcon"] = {"roomicons", 22, 8, 9, 0, 2}, + ["GoldenChestRoomIcon"] = {"roomicons", 23, 8, 9, 0, 2}, + -- Roomshape Icons ["Room"] = {"roomshape", 0, 9, 9, 0, 2}, ["RoomSmallHorizontal"] = {"roomshape", 1, 9, 9}, @@ -191,9 +198,11 @@ EID.InlineIcons = { ["Guppy"] = {"Transformation1", 0, 16, 16, 0, -1, EID.IconSprite}, ["FunGuy"] = {"Transformation2", 0, 16, 16, 0, -1, EID.IconSprite}, ["LordoftheFlies"] = {"Transformation3", 0, 16, 16, 0, -1, EID.IconSprite}, + ["Beelzebub"] = {"Transformation3", 0, 16, 16, 0, -1, EID.IconSprite}, ["Conjoined"] = {"Transformation4", 0, 16, 16, 0, -1, EID.IconSprite}, ["Spun"] = {"Transformation5", 0, 16, 16, 0, -1, EID.IconSprite}, ["Mom"] = {"Transformation6", 0, 16, 16, 0, -1, EID.IconSprite}, + ["YesMother?"] = {"Transformation6", 0, 16, 16, 0, -1, EID.IconSprite}, ["OhCrap"] = {"Transformation7", 0, 16, 16, 0, -1, EID.IconSprite}, ["Bob"] = {"Transformation8", 0, 16, 16, 0, -1, EID.IconSprite}, ["Leviathan"] = {"Transformation9", 0, 16, 16, 0, -1, EID.IconSprite}, diff --git a/main.lua b/main.lua index 0cf72fa3..b6e6c490 100644 --- a/main.lua +++ b/main.lua @@ -88,36 +88,25 @@ local nullVector = Vector(0,0) --------------------------------------------------------------------------- ------------------------------- Load Font --------------------------------- -local isluadebug, os = pcall(require,"os") local modfolder ='external item descriptions_836319872' --release mod folder name - if isluadebug then - local userPath = os.tmpname() - userPath = string.gsub(userPath, "\\", "/") - local newPath = "" - if not string.find(userPath, "AppData") then - -- Linux - EID.modPath = os.getenv("HOME") .. "/.local/share/binding of isaac afterbirth+ mods/"..modfolder.."/" - else - for str in string.gmatch(userPath, "([^/]+)") do - if str ~="AppData" then - newPath = newPath..str.."/" - else - break - end - end - EID.modPath = newPath.."Documents/My Games/Binding of Isaac Afterbirth+ Mods/"..modfolder.."/" - end - else - --use some very hacky trickery to get the path to this mod - local _, err = pcall(require, "") - local _, basePathStart = string.find(err, "no file '", 1) - local _, modPathStart = string.find(err, "no file '", basePathStart) - local modPathEnd, _ = string.find(err, ".lua'", modPathStart) - EID.modPath = string.sub(err, modPathStart + 1, modPathEnd - 1) - end - EID.modPath = string.gsub(EID.modPath, "\\", "/") - EID.modPath = string.gsub(EID.modPath, "//", "/") - EID.modPath = string.gsub(EID.modPath, ":/", ":\\") + +local function GetCurrentModPath() + if debug then + return string.sub(debug.getinfo(GetCurrentModPath).source,2) .. "/../" + end + --use some very hacky trickery to get the path to this mod + local _, err = pcall(require, "") + local _, basePathStart = string.find(err, "no file '", 1) + local _, modPathStart = string.find(err, "no file '", basePathStart) + local modPathEnd, _ = string.find(err, ".lua'", modPathStart) + local modPath = string.sub(err, modPathStart+1, modPathEnd-1) + modPath = string.gsub(modPath, "\\", "/") + modPath = string.gsub(modPath, "//", "/") + modPath = string.gsub(modPath, ":/", ":\\") + + return modPath +end +EID.modPath = GetCurrentModPath() EID.font = Font() -- init font object local fontFile = EID.Config["FontType"] or "default" @@ -374,19 +363,10 @@ function EID:printBulletPoints(description, renderPos) end --------------------------------------------------------------------------- ---------------------------Handle New Room-------------------------------- -local function IsMirror() - local level = game:GetLevel() - local id = level:GetCurrentRoomIndex() - - return id >=0 and GetPtrHash(level:GetRoomByIdx(id)) == GetPtrHash(level:GetRoomByIdx(id, 1)) -end - local isMirrorRoom = false function EID:onNewRoom() - if game:GetLevel():GetAbsoluteStage() == LevelStage.STAGE1_2 then - isMirrorRoom = IsMirror() - else - isMirrorRoom = false + if REPENTANCE then + isMirrorRoom = game:GetLevel():GetCurrentRoom():IsMirrorWorld() end end EID:AddCallback(ModCallbacks.MC_POST_NEW_ROOM, EID.onNewRoom) @@ -405,6 +385,11 @@ function EID:renderIndicator(entity) end local repDiv = 1 local entityPos = Isaac.WorldToScreen(entity.Position) + local ArrowOffset = Vector(0, -35) + if entity.Variant == 100 and not entity:ToPickup():IsShopItem() then + ArrowOffset = Vector(0, -62) + end + local arrowPos = Isaac.WorldToScreen(entity.Position + ArrowOffset) if entity:GetData() and entity:GetData()["EID_RenderOffset"] then entityPos = entityPos + entity:GetData()["EID_RenderOffset"] end @@ -414,6 +399,7 @@ function EID:renderIndicator(entity) if isMirrorRoom then local screenCenter = EID:getScreenSize()/2 entityPos.X = entityPos.X - (entityPos-screenCenter).X * 2 + arrowPos.X = arrowPos.X - (arrowPos-screenCenter).X * 2 sprite.FlipX = true end end @@ -424,11 +410,7 @@ function EID:renderIndicator(entity) sprite.Color = Color(1, 1, 1, 1, 0, 0, 0) elseif EID.Config["Indicator"] == "arrow" then ArrowSprite:Update() - local ArrowOffset = Vector(0, -35) - if entity.Variant == 100 and not entity:ToPickup():IsShopItem() then - ArrowOffset = Vector(0, -62) - end - ArrowSprite:Render(Isaac.WorldToScreen(entity.Position + ArrowOffset), nullVector, nullVector) + ArrowSprite:Render(arrowPos, nullVector, nullVector) else if EID.Config["Indicator"] == "border" then local c = 255 - math.floor(255 * ((entity.FrameCount % 40) / 40)) @@ -437,7 +419,7 @@ function EID:renderIndicator(entity) sprite.Color = Color(1, 1, 1, 1, 255/repDiv, 255/repDiv, 255/repDiv) end EID:renderEntity(entity, sprite, entityPos + Vector(0, 1)) - EID:renderEntity(entity, sprite, entityPos +Vector(0, -1)) + EID:renderEntity(entity, sprite, entityPos + Vector(0, -1)) EID:renderEntity(entity, sprite, entityPos + Vector(1, 0)) EID:renderEntity(entity, sprite, entityPos + Vector(-1, 0)) sprite.Color = Color(1, 1, 1, 1, 0, 0, 0) @@ -567,20 +549,29 @@ end EID:AddCallback(ModCallbacks.MC_POST_UPDATE, EID.onGameUpdate) local hasShownAchievementWarning = false + local function renderAchievementInfo() - if REPENTANCE and not EID.Config.DisableAchievementCheck and game:GetFrameCount() < 10*30 and game.Challenge == 0 then - local characterID = Game():GetPlayer(0):GetPlayerType() - --ID 21 = Tainted Isaac. Tainted characters have definitely beaten Mom! (Fixes Tainted Lost's item pools ruining this check) - if (characterID < 21) then - local hasBookOfRevelationsUnlocked = EID:isCollectibleUnlockedAnyPool(CollectibleType.COLLECTIBLE_BOOK_OF_REVELATIONS or CollectibleType.COLLECTIBLE_BOOK_REVELATIONS) - if not hasBookOfRevelationsUnlocked then - local hasCubeOfMeatUnlocked = EID:isCollectibleUnlockedAnyPool(CollectibleType.COLLECTIBLE_CUBE_OF_MEAT) - if not hasCubeOfMeatUnlocked then - local demoDescObj = EID:getDescriptionObj(-999, -1, 1) - demoDescObj.Name = EID:getDescriptionEntry("AchievementWarningTitle") or "" - demoDescObj.Description = EID:getDescriptionEntry("AchievementWarningText") or "" - EID:displayPermanentText(demoDescObj) - hasShownAchievementWarning = true + if REPENTANCE and not EID.Config.DisableAchievementCheck and game:GetFrameCount() < 10*30 then + if EID:GetMaxCollectibleID() < EID.XMLMaxItemID then + local demoDescObj = EID:getDescriptionObj(-999, -1, 1) + demoDescObj.Name = EID:getDescriptionEntry("AchievementWarningTitle") or "" + demoDescObj.Description = EID:getDescriptionEntry("OutdatedModWarningText") or "" + EID:displayPermanentText(demoDescObj) + hasShownAchievementWarning = true + else + local characterID = Game():GetPlayer(0):GetPlayerType() + --ID 21 = Tainted Isaac. Tainted characters have definitely beaten Mom! (Fixes Tainted Lost's item pools ruining this check) + if characterID < 21 and game.Challenge == 0 then + local hasBookOfRevelationsUnlocked = EID:isCollectibleUnlockedAnyPool(CollectibleType.COLLECTIBLE_BOOK_OF_REVELATIONS or CollectibleType.COLLECTIBLE_BOOK_REVELATIONS) + if not hasBookOfRevelationsUnlocked then + local hasCubeOfMeatUnlocked = EID:isCollectibleUnlockedAnyPool(CollectibleType.COLLECTIBLE_CUBE_OF_MEAT) + if not hasCubeOfMeatUnlocked then + local demoDescObj = EID:getDescriptionObj(-999, -1, 1) + demoDescObj.Name = EID:getDescriptionEntry("AchievementWarningTitle") or "" + demoDescObj.Description = EID:getDescriptionEntry("AchievementWarningText") or "" + EID:displayPermanentText(demoDescObj) + hasShownAchievementWarning = true + end end end end @@ -598,18 +589,18 @@ local function onRender(t) EID.isDisplaying = false EID:setPlayer() - --Controller hide keys are 0 through 26, keyboard hide keys are 32+ - local hidekeyType = 0 - if EID.Config["HideKey"] < 32 then hidekeyType = EID.player.ControllerIndex end - if Input.IsButtonTriggered(EID.Config["HideKey"], hidekeyType) then + --Keyboard hide keys are 32+, controller hide keys have their own option now so don't allow controller inputs in it + if EID.Config["HideKey"] < 32 then EID.Config["HideKey"] = -1 end + if Input.IsButtonTriggered(EID.Config["HideKey"], 0) or Input.IsButtonTriggered(EID.Config["HideButton"], EID.player.ControllerIndex) then EID.isHidden = not EID.isHidden end + if ModConfigMenu and ModConfigMenu.IsVisible and ModConfigMenu.Config["Mod Config Menu"].HideHudInMenu and EID.MCMCompat_isDisplayingEIDTab ~= "Visuals" then --if if the mod config menu exists, is opened and Hide Hud is enabled, and ModConfigMenu is currently in the "Visuals" tab of EID return end EID:renderMCMDummyDescription() - + renderAchievementInfo() if EID.GameVersion == "ab+" then @@ -624,7 +615,6 @@ local function onRender(t) else EID:removeTextPosModifier("Tained HUD") end - -- Disabling Bag of Crafting for now, since it doesnt work after patch if EID.player:HasCollectible(710) then local success = EID:handleBagOfCraftingRendering() if success then @@ -677,6 +667,7 @@ local function onRender(t) end end + local closest = EID.lastDescriptionEntity if EID.lastDist / 40 > tonumber(EID.Config["MaxDistance"]) then diff --git a/mod_config_menu.lua b/mod_config_menu.lua index 777c0f8e..df6b5e00 100644 --- a/mod_config_menu.lua +++ b/mod_config_menu.lua @@ -56,6 +56,7 @@ end function EID:buildColorArray() + if (colorNameArray[1] ~= nil) then return end colorNameArray = {} for k,v in pairs(EID.InlineColors) do if k~="ColorText" and k~="ColorTransform" and k~="ColorError" and k~="ColorObjName" and k~="ColorReset" then @@ -65,8 +66,79 @@ function EID:buildColorArray() table.sort(colorNameArray) end +function EID:AddBooleanSetting(category, optionName, displayText, onText, offText, infoText) + if (type(infoText) == "string") then infoText = {infoText} end + MCM.AddSetting( + "EID", + category, + { + Type = ModConfigMenu.OptionType.BOOLEAN, + CurrentSetting = function() + return EID.Config[optionName] + end, + Display = function() + local onOff = offText + if EID.Config[optionName] then + onOff = onText + end + return displayText .. ": " .. onOff + end, + OnChange = function(currentBool) + EID.Config[optionName] = currentBool + end, + Info = infoText + } + ) +end + +function EID:AddHotkeySetting(category, optionName, displayText, infoText, isController) + if (type(infoText) == "string") then infoText = {infoText} end + local optionType = ModConfigMenu.OptionType.KEYBIND_KEYBOARD + local hotkeyToString = InputHelper.KeyboardToString + local deviceString = "keyboard" + local backString = "ESCAPE" + if isController then + optionType = ModConfigMenu.OptionType.KEYBIND_CONTROLLER + hotkeyToString = InputHelper.ControllerToString + deviceString = "controller" + backString = "BACK" + end + MCM.AddSetting( + "EID", + category, + { + Type = optionType, + CurrentSetting = function() + return EID.Config[optionName] + end, + Display = function() + local key = "None" + if (hotkeyToString[EID.Config[optionName]]) then key = hotkeyToString[EID.Config[optionName]] end + return displayText .. ": " .. key + end, + OnChange = function(currentNum) + EID.Config[optionName] = currentNum or -1 + end, + PopupGfx = ModConfigMenu.PopupGfx.WIDE_SMALL, + PopupWidth = 280, + Popup = function() + local currentValue = EID.Config[optionName] + local keepSettingString = "" + if currentValue > -1 then + local currentSettingString = hotkeyToString[currentValue] + keepSettingString = "This setting is currently set to \"" .. currentSettingString .. "\".$newlinePress this button to keep it unchanged.$newline$newline" + end + return "Press a button on your "..deviceString.." to change this setting.$newline$newline" .. keepSettingString .. "Press "..backString.." to go back and clear this setting." + end, + Info = infoText + } + ) +end + if MCMLoaded then function AnIndexOf(t, val) + --check for 0th term, to help with how OptionType.SCROLL works (returns value between 0 and 10) + if t[0] and t[0] == val then return 0 end for k, v in ipairs(t) do if v == val then return k @@ -133,7 +205,15 @@ if MCMLoaded then Info = {"If translated names are available,","this changes how item names are displayed."} } ) - + + -- Hide Key + EID:AddHotkeySetting("General", + "HideKey", "Toggle (Keyboard)", + "Press this key to toggle the description display", false) + EID:AddHotkeySetting("General", + "HideButton", "Toggle (Controller)", + "Press this button to toggle the description display (Left Stick or Right Stick recommended; most other buttons will not work)", true) + MCM.AddSpace("EID", "General") -- Position X @@ -517,6 +597,8 @@ if MCMLoaded then } ) + MCM.AddSpace("EID", "Display") + -- Spindown Dice results local diceSteps = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} MCM.AddSetting( @@ -532,7 +614,7 @@ if MCMLoaded then AnIndexOf(diceSteps, EID.Config["SpindownDiceResults"]) - 1 .. " " .. EID.Config["SpindownDiceResults"] .. " Items" end, OnChange = function(currentNum) - EID.Config["SpindownDiceResults"] = diceSteps[currentNum%#diceSteps + 1] + EID.Config["SpindownDiceResults"] = diceSteps[currentNum + 1] end, Info = {"Preview of Items resulting when using the Spindown dice X times"} } @@ -994,15 +1076,33 @@ if MCMLoaded then Minimum = 1, Maximum = 3, Display = function() - return "Display mode: " .. EID.Config["DisplayBagOfCrafting"] + return "Display Mode: " .. EID.Config["DisplayBagOfCrafting"] end, OnChange = function(currentNum) EID.Config["DisplayBagOfCrafting"] = bagDisplays[currentNum] end, - Info = {"always = Always show Results, hold = Show when holding up bag, never = Never show results"} + Info = {"Always = Always show Results, Hold = Show when holding up bag, Never = Never show results"} } ) - -- Bag of Crafting results + -- Bag of Crafting Hide in Battle + EID:AddBooleanSetting("Crafting", + "BagOfCraftingHideInBattle", + "Hide in Battle", "Yes", "No", + "Hides the recipe list when in a fight") + -- Bag of Crafting No Recipes Mode + EID:AddBooleanSetting("Crafting", + "BagOfCraftingSimplifiedMode", + "No Recipes Mode", "On", "Off", + "No Recipes Mode shows quality and item pool percentages instead of exact recipes, for a more intended experience") + -- Bag of Crafting 8 icons toggle + EID:AddBooleanSetting("Crafting", + "BagOfCraftingDisplayIcons", + "Show Recipes/Best Bag as", "8 Icons", "Groups", + "Choose if you want recipes (and the Best Quality bag in No Recipes Mode) shown as 8 icons, or as grouped ingredients") + + MCM.AddSpace("EID", "Crafting") + + -- Bag of Crafting results per page MCM.AddSetting( "EID", "Crafting", @@ -1083,30 +1183,36 @@ if MCMLoaded then Info = {"If on, each result takes two lines; lower your displayed results accordingly"} } ) - -- Bag of Crafting Hide in Battle + + MCM.AddSpace("EID", "Crafting") + + EID:AddHotkeySetting("Crafting", + "CraftingHideKey", "Toggle (Keyboard)", + "Press this key to toggle the crafting display, allowing you to check descriptions of items/pickups on the floor", false) + EID:AddHotkeySetting("Crafting", + "CraftingHideButton", "Toggle (Controller)", + "Press this button to toggle the crafting display (Left Stick or Right Stick recommended; most other buttons will not work)", true) + + EID:AddHotkeySetting("Crafting", + "CraftingResultKey", "Result Toggle (Keyboard)", + "Press this key to toggle the description of the item ready to be crafted", false) + EID:AddHotkeySetting("Crafting", + "CraftingResultButton", "Result Toggle (Controller)", + "Press this button to toggle the description of the item ready to be crafted (Left Stick or Right Stick recommended; most other buttons will not work)", true) + + MCM.AddSpace("EID", "Crafting") + --------Clear bag--------- MCM.AddSetting( "EID", "Crafting", { Type = ModConfigMenu.OptionType.BOOLEAN, - CurrentSetting = function() - return EID.Config["BagOfCraftingHideInBattle"] - end, - Display = function() - local onOff = "False" - if EID.Config["BagOfCraftingHideInBattle"] then - onOff = "True" - end - return "Hide in Battle: " .. onOff - end, - OnChange = function(currentBool) - EID.Config["BagOfCraftingHideInBattle"] = currentBool - end, - Info = {"Hides the recipe list when in a fight"} + CurrentSetting = function() return true end, + Display = function() return "<---- Clear Bag Content ---->" end, + OnChange = function(currentBool) EID.BagItems = {} end, + Info = {"Press this to clear all currently detected items on the bag"} } ) - - MCM.AddSpace("EID", "Crafting") --------Clear Floor--------- MCM.AddSetting( "EID", @@ -1120,21 +1226,10 @@ if MCMLoaded then EID.bagOfCraftingFloorQuery = {} EID.bagOfCraftingCurPickupCount = -1 end, - Info = {"Press SPACE to clear all currently detected Items on the stage"} - } - ) - --------Clear bag--------- - MCM.AddSetting( - "EID", - "Crafting", - { - Type = ModConfigMenu.OptionType.BOOLEAN, - CurrentSetting = function() return true end, - Display = function() return "<---- Clear Bag Content ---->" end, - OnChange = function(currentBool) EID.BagItems = {} end, - Info = {"Press SPACE to clear all currently detected Items on the bag"} + Info = {"Press this to clear all currently detected items on the floor"} } ) + --------------------------------------------------------------------------- -----------------------------Mouse Controls-------------------------------- MCM.AddText("EID", "Mouse", function() return "! THIS FEATURE IS IN EARLY DEVELOPMENT !" end) @@ -1202,6 +1297,7 @@ if MCMLoaded then Minimum = 0, Maximum = 1000, Display = function() + if EID.Config["TextColor"] == nil then EID.Config["TextColor"] = EID.DefaultConfig["TextColor"] end EID.MCMCompat_isDisplayingEIDTab = "Visuals"; return "Descriptions: " .. string.gsub(EID.Config["TextColor"], "Color", "").. " ("..AnIndexOf(colorNameArray, EID.Config["TextColor"]).."/"..#colorNameArray..")" end, @@ -1225,6 +1321,7 @@ if MCMLoaded then Minimum = 0, Maximum = 1000, Display = function() + if EID.Config["ItemNameColor"] == nil then EID.Config["ItemNameColor"] = EID.DefaultConfig["ItemNameColor"] end return "Names: " .. string.gsub(EID.Config["ItemNameColor"], "Color", "").. " ("..AnIndexOf(colorNameArray, EID.Config["ItemNameColor"]).."/"..#colorNameArray..")" end, OnChange = function(currentNum) @@ -1247,6 +1344,7 @@ if MCMLoaded then Minimum = 0, Maximum = 1000, Display = function() + if EID.Config["TransformationColor"] == nil then EID.Config["TransformationColor"] = EID.DefaultConfig["TransformationColor"] end return "Transformations: " .. string.gsub(EID.Config["TransformationColor"], "Color", "").. " ("..AnIndexOf(colorNameArray, EID.Config["TransformationColor"]).."/"..#colorNameArray..")" end, OnChange = function(currentNum) @@ -1269,6 +1367,7 @@ if MCMLoaded then Minimum = 0, Maximum = 1000, Display = function() + if EID.Config["ErrorColor"] == nil then EID.Config["ErrorColor"] = EID.DefaultConfig["ErrorColor"] end return "Errors: " .. string.gsub(EID.Config["ErrorColor"], "Color", "").. " ("..AnIndexOf(colorNameArray, EID.Config["ErrorColor"]).."/"..#colorNameArray..")" end, OnChange = function(currentNum) diff --git a/resources/gfx/eid_inline_icons.anm2 b/resources/gfx/eid_inline_icons.anm2 index 0a1a1c79..27d97522 100644 --- a/resources/gfx/eid_inline_icons.anm2 +++ b/resources/gfx/eid_inline_icons.anm2 @@ -1,5 +1,5 @@ - + @@ -137,6 +137,7 @@ + @@ -168,6 +169,11 @@ + + + + + diff --git a/resources/gfx/eid_inline_icons.png b/resources/gfx/eid_inline_icons.png index b30a0e21..2b9dc449 100644 Binary files a/resources/gfx/eid_inline_icons.png and b/resources/gfx/eid_inline_icons.png differ