From e271302f692d827892eb19d24be5576c6cf04b56 Mon Sep 17 00:00:00 2001 From: Buurazu Date: Mon, 19 Aug 2024 13:52:56 -0400 Subject: [PATCH] Health Up modifier for non-red characters + misc (#710) * Health up / different effect modifiers * ClosestPlayerTo, move utility functions * ClosestPlayer adds to DifferentEffectPlayers table * More data tables for Health Ups * useless Lost items, comment the health mod atm * HealingRed, RedToX * HealingRed added * Moving Pluralize * oops * Move Pluralize * Move Pluralize * allow choosing the position of modifiers in the table * default layer to 0 * Changes to no red char conditions * Support healing items in the modifier * tweaks to health up data * Support {1} in Result Header * {1} in ResultHeader * Tweak binge eater wording * reword comment --- descriptions/ab+/cs_cz.lua | 2 + descriptions/ab+/de.lua | 2 + descriptions/ab+/en_us.lua | 113 +++++++++++++++------------- descriptions/ab+/fr.lua | 2 + descriptions/ab+/ja_jp.lua | 2 + descriptions/ab+/ko_kr.lua | 3 + descriptions/ab+/pt_br.lua | 2 + descriptions/ab+/ru.lua | 2 + descriptions/ab+/spa.lua | 3 + descriptions/ab+/uk_ua.lua | 3 + descriptions/ab+/zh_cn.lua | 3 + descriptions/rep/cs_cz.lua | 3 - descriptions/rep/de.lua | 3 - descriptions/rep/en_us.lua | 113 ++++++++++++++-------------- descriptions/rep/fr.lua | 3 - descriptions/rep/ja_jp.lua | 3 - descriptions/rep/ko_kr.lua | 3 - descriptions/rep/pt_br.lua | 3 - descriptions/rep/ru.lua | 3 - descriptions/rep/spa.lua | 3 - descriptions/rep/uk_ua.lua | 3 - descriptions/rep/zh_cn.lua | 3 - features/eid_api.lua | 41 +++++++++- features/eid_conditionals.lua | 45 ++++++----- features/eid_conditionals_funcs.lua | 86 ++++++++++----------- features/eid_data.lua | 37 +++++---- features/eid_holdmapdesc.lua | 10 ++- features/eid_modifiers.lua | 80 +++++++++++++++++++- features/eid_tmtrainer.lua | 6 +- 29 files changed, 355 insertions(+), 230 deletions(-) diff --git a/descriptions/ab+/cs_cz.lua b/descriptions/ab+/cs_cz.lua index 72d10414..61cffc6d 100644 --- a/descriptions/ab+/cs_cz.lua +++ b/descriptions/ab+/cs_cz.lua @@ -869,6 +869,8 @@ EID.descriptions[languageCode].transformations = { ---------- MISC ---------- +-- This string will be appended to certain words (like pickup names in glitched item descriptions) to pluralize them, make it "" to not pluralize +EID.descriptions[languageCode].Pluralize = "s" EID.descriptions[languageCode].VoidText = "Pokud absorbuješ, získáš:" EID.descriptions[languageCode].VoidNames = {"Rychlost", "Slzy", "Poškození", "Dostřel", "Rychlost Střel", "Štěstí"} diff --git a/descriptions/ab+/de.lua b/descriptions/ab+/de.lua index b98904be..cadc5a90 100644 --- a/descriptions/ab+/de.lua +++ b/descriptions/ab+/de.lua @@ -634,6 +634,8 @@ EID.descriptions[languageCode].transformations = { } ---------- MISC ---------- +-- This string will be appended to certain words (like pickup names in glitched item descriptions) to pluralize them, make it "" to not pluralize +EID.descriptions[languageCode].Pluralize = "" EID.descriptions[languageCode].VoidText = "Wenn absorbiert, erhalte:" -- {1} will become the number text (like "{1} Tränen" -> "+0.5 Tränen") diff --git a/descriptions/ab+/en_us.lua b/descriptions/ab+/en_us.lua index 05c0729a..7a31a327 100644 --- a/descriptions/ab+/en_us.lua +++ b/descriptions/ab+/en_us.lua @@ -32,11 +32,11 @@ EID.descriptions[languageCode].collectibles={ {"9", "Skatole", "All fly enemies are friendly"}, -- Skatole {"10", "Halo of Flies", "+2 Fly orbitals#Blocks enemy projectiles"}, -- Halo of Flies {"11", "1up!", "↑ +1 Life#Isaac respawns with full health on death"}, -- 1up! - {"12", "Magic Mushroom", "↑ {{Heart}} +1 Health#↑ {{Speed}} +0.3 Speed#↑ {{Damage}} +0.3 Damage#↑ {{Damage}} x1.5 Damage multiplier#↑ {{Range}} +5.25 Range#↑ +0.5 Tear height#Size up#{{Heart}} Full health"}, -- Magic Mushroom + {"12", "Magic Mushroom", "↑ {{Heart}} +1 Health#↑ {{Speed}} +0.3 Speed#↑ {{Damage}} +0.3 Damage#↑ {{Damage}} x1.5 Damage multiplier#↑ {{Range}} +5.25 Range#↑ +0.5 Tear height#Size up#{{HealingRed}} Full health"}, -- Magic Mushroom {"13", "The Virus", "↓ {{Speed}} -0.1 Speed#{{Poison}} Touching enemies poisons them#{{BlackHeart}} Poisoned enemies can drop Black Hearts"}, -- The Virus {"14", "Roid Rage", "↑ {{Speed}} +0.6 Speed#↑ {{Range}} +5.25 Range#↑ +0.5 Tear height"}, -- Roid Rage - {"15", "<3", "↑ {{Heart}} +1 Health#{{Heart}} Full health"}, -- <3 - {"16", "Raw Liver", "↑ {{Heart}} +2 Health#{{Heart}} Full health"}, -- Raw Liver + {"15", "<3", "↑ {{Heart}} +1 Health#{{HealingRed}} Full health"}, -- <3 + {"16", "Raw Liver", "↑ {{Heart}} +2 Health#{{HealingRed}} Full health"}, -- Raw Liver {"17", "Skeleton Key", "{{Key}} +99 Keys"}, -- Skeleton Key {"18", "A Dollar", "{{Coin}} +99 Coins"}, -- A Dollar {"19", "Boom!", "{{Bomb}} +10 Bombs"}, -- Boom! @@ -65,7 +65,7 @@ EID.descriptions[languageCode].collectibles={ {"42", "Bob's Rotten Head", "Using the item and firing in a direction throws the head#{{Poison}} The head explodes on impact and poisons enemies"}, -- Bob's Rotten Head {"43", "", ""}, {"44", "Teleport!", "Teleports Isaac into a random room, except I AM ERROR rooms"}, -- Teleport! - {"45", "Yum Heart", "{{Heart}} Heals 1 heart"}, -- Yum Heart + {"45", "Yum Heart", "{{HealingRed}} Heals 1 heart"}, -- Yum Heart {"46", "Lucky Foot", "↑ {{Luck}} +1 Luck#+8% room clear reward chance#Better chance to win while gambling"}, -- Lucky Foot {"47", "Doctor's Remote", "{{Collectible168}} On use, start aiming a crosshair#A missile lands on the crosshair after 1.5 seconds#It deals 20x Isaac's damage"}, -- Doctor's Remote {"48", "Cupid's Arrow", "Piercing tears"}, -- Cupid's Arrow @@ -82,7 +82,7 @@ EID.descriptions[languageCode].collectibles={ {"59", "", ""}, {"60", "The Ladder", "Allows Isaac to cross 1-tile gaps"}, -- The Ladder {"61", "", ""}, - {"62", "Charm of the Vampire", "{{HalfHeart}} Killing 13 enemies heals half a heart"}, -- Charm of the Vampire + {"62", "Charm of the Vampire", "{{HealingRed}} Killing 13 enemies heals half a heart"}, -- Charm of the Vampire {"63", "The Battery", "{{Battery}} Active items can be overcharged to two full charges"}, -- The Battery {"64", "Steam Sale", "{{Shop}} Shop items cost 50% less"}, -- Steam Sale {"65", "Anarchist Cookbook", "Spawns 6 Troll Bombs near the center of the room"}, -- Anarchist Cookbook @@ -95,7 +95,7 @@ EID.descriptions[languageCode].collectibles={ {"72", "Rosary", "{{SoulHeart}} +3 Soul Hearts#{{Collectible33}} The Bible is added to all item pools"}, -- Rosary {"73", "Cube of Meat", "Lv1: Orbital#Lv2: Shooting orbital#Lv3: Meat Boy#Lv4: Super Meat Boy"}, -- Cube of Meat {"74", "A Quarter", "{{Coin}} +25 Coins"}, -- A Quarter - {"75", "PHD", "{{Heart}} Heals 2 hearts#{{Pill}} Spawns 1 pill#{{Pill}} Changes bad pills into good pills#{{BloodDonationMachine}} Blood Donation Machines give more {{Coin}} coins"}, -- PHD + {"75", "PHD", "{{HealingRed}} Heals 2 hearts#{{Pill}} Spawns 1 pill#{{Pill}} Changes bad pills into good pills#{{BloodDonationMachine}} Blood Donation Machines give more {{Coin}} coins"}, -- PHD {"76", "X-Ray Vision", "{{SecretRoom}} Opens all secret room entrances"}, -- X-Ray Vision {"77", "My Little Unicorn", "{{Timer}} Receive for 6 seconds:#↑ {{Speed}} +0.28 Speed#Invincibility#Isaac can't shoot but deals 40 contact damage per second"}, -- My Little Unicorn {"78", "Book of Revelations", "{{SoulHeart}} +1 Soul Heart#{{AngelDevilChance}} +17.5% Devil/Angel Room chance while held#Using the item has a high chance to replace the floor's boss with a horseman"}, -- Book of Revelations @@ -112,8 +112,8 @@ EID.descriptions[languageCode].collectibles={ {"89", "Spider Bite", "{{Slow}} 25% chance to shoot slowing tears#{{Luck}} 100% chance at 15 luck"}, -- Spider Bite {"90", "The Small Rock", "↑ {{Tears}} +0.2 Tears#↑ {{Damage}} +1 Damage#↓ {{Speed}} -0.2 Speed"}, -- The Small Rock {"91", "Spelunker Hat", "Reveals the room type of adjacent rooms#{{SecretRoom}} Can reveal Secret and Super Secret Rooms"}, -- Spelunker Hat - {"92", "Super Bandage", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart#{{SoulHeart}} +2 Soul Hearts"}, -- Super Bandage - {"93", "The Gamekid", "{{Timer}} Receive for 6.5 seconds:#Invincibility#Isaac can't shoot but deals 40 contact damage per second#{{HalfHeart}} Killing 2 enemies heals half a heart#{{Fear}} Fears all enemies in the room"}, -- The Gamekid + {"92", "Super Bandage", "↑ {{Heart}} +1 Health#{{HealingRed}} Heals 1 heart#{{SoulHeart}} +2 Soul Hearts"}, -- Super Bandage + {"93", "The Gamekid", "{{Timer}} Receive for 6.5 seconds:#Invincibility#Isaac can't shoot but deals 40 contact damage per second#{{HealingRed}} Killing 2 enemies heals half a heart#{{Fear}} Fears all enemies in the room"}, -- The Gamekid {"94", "Sack of Pennies", "{{Coin}} Spawns a random coin every 2 rooms"}, -- Sack of Pennies {"95", "Robo-Baby", "Shoots lasers#Deals 3.5 damage per shot"}, -- Robo-Baby {"96", "Little C.H.A.D.", "{{HalfHeart}} Spawns a half Red Heart every 3 rooms"}, -- Little C.H.A.D. @@ -139,7 +139,7 @@ EID.descriptions[languageCode].collectibles={ {"116", "9 Volt", "{{Battery}} Automatically charges the first bar of active items#{{Battery}} Fully recharges the active item on pickup"}, -- 9 Volt {"117", "Dead Bird", "Taking damage spawns a bird that attacks enemies#The bird deals 4.3 contact damage per second"}, -- Dead Bird {"118", "Brimstone", "↓ {{Tears}} x0.33 Tears multiplier#{{Chargeable}} Isaac's tears are replaced by a chargeable blood beam#{{Damage}} It deals 13x Isaac's damage over 0.9 seconds"}, -- Brimstone - {"119", "Blood Bag", "↑ {{Heart}} +1 Health#↑ {{Speed}} +0.3 Speed#{{Heart}} Heals 4 hearts"}, -- Blood Bag + {"119", "Blood Bag", "↑ {{Heart}} +1 Health#↑ {{Speed}} +0.3 Speed#{{HealingRed}} Heals 4 hearts"}, -- Blood Bag {"120", "Odd Mushroom (Thin)", "↑ {{Speed}} +0.3 Speed#↑ {{Tears}} +1.7 Tears#↓ {{Damage}} x0.9 Damage multiplier#↓ {{Damage}} -0.4 Damage"}, -- Odd Mushroom (Thin) {"121", "Odd Mushroom (Large)", "↑ {{EmptyHeart}} +1 Empty heart container#↑ {{Damage}} +0.3 Damage#↑ {{Range}} +0.25 Range#↑ +0.5 Tear height#↓ {{Speed}} -0.1 Speed"}, -- Odd Mushroom (Large) {"122", "Whore of Babylon", "When on half a Red Heart or less:#↑ {{Speed}} +0.3 Speed#↑ {{Damage}} +1.5 Damage"}, -- Whore of Babylon @@ -149,7 +149,7 @@ EID.descriptions[languageCode].collectibles={ {"126", "Razor Blade", "↑ {{Damage}} +1.2 Damage for the room#{{Warning}} Deals 1 heart of damage to Isaac#{{Heart}} Removes Red Hearts first"}, -- Razor Blade {"127", "Forget Me Now", "{{Warning}} SINGLE USE {{Warning}}#Rerolls and restarts the entire floor"}, -- Forget Me Now {"128", "Forever Alone", "Long range fly orbital#Deals 30 contact damage per second"}, -- Forever Alone - {"129", "Bucket of Lard", "↑ {{EmptyHeart}} +2 Empty heart containers#↓ {{Speed}} -0.2 Speed#{{HalfHeart}} Heals half a heart"}, -- Bucket of Lard + {"129", "Bucket of Lard", "↑ {{EmptyHeart}} +2 Empty heart containers#↓ {{Speed}} -0.2 Speed#{{HealingRed}} Heals half a heart"}, -- Bucket of Lard {"130", "A Pony", "While held:#{{Speed}} Sets your Speed to at least 1.5#Flight#Upon use, dashes in the direction of Isaac's movement"}, -- A Pony {"131", "Bomb Bag", "{{Bomb}} Spawns 1 bomb pickup every 3 rooms"}, -- Bomb Bag {"132", "A Lump of Coal", "{{Damage}} Tears deal more damage the further they travel"}, -- A Lump of Coal @@ -202,14 +202,14 @@ EID.descriptions[languageCode].collectibles={ {"179", "Fate", "{{EternalHeart}} +1 Eternal Heart#Flight"}, -- Fate {"180", "The Black Bean", "Isaac farts when damaged#{{Poison}} The fart poisons enemies"}, -- The Black Bean {"181", "White Pony", "{{Speed}} Sets your Speed to at least 1.5#Flight while held#Using the item dashes in the direction of Isaac's movement, leaving behind beams of light"}, -- White Pony - {"182", "Sacred Heart", "↑ {{Heart}} +1 Health#↑ {{Damage}} x2.3 Damage multiplier#↑ {{Damage}} +1 Damage#↑ {{Range}} +0.38 Range#↑ +0.75 Tear height#↓ {{Tears}} -0.4 Tears#↓ {{Shotspeed}} -0.25 Shot speed#{{Heart}} Full health#Homing tears"}, -- Sacred Heart + {"182", "Sacred Heart", "↑ {{Heart}} +1 Health#↑ {{Damage}} x2.3 Damage multiplier#↑ {{Damage}} +1 Damage#↑ {{Range}} +0.38 Range#↑ +0.75 Tear height#↓ {{Tears}} -0.4 Tears#↓ {{Shotspeed}} -0.25 Shot speed#{{HealingRed}} Full health#Homing tears"}, -- Sacred Heart {"183", "Tooth Picks", "↑ {{Tears}} +0.7 Tears#↑ {{Shotspeed}} +0.16 Shot speed"}, -- Tooth Picks {"184", "Holy Grail", "↑ {{Heart}} +1 Health#Flight"}, -- Holy Grail {"185", "Dead Dove", "Spectral tears#Flight"}, -- Dead Dove {"186", "Blood Rights", "Deals 40 damage to every enemy#{{Warning}} Deals 1 heart of damage to Isaac#{{Heart}} Removes Red Hearts first"}, -- Blood Rights {"187", "Guppy's Hairball", "Moving swings the hairball around#The ball grows when it kills an enemy#It deals more damage the bigger it is"}, -- Guppy's Hairball {"188", "Abel", "Mirrors Isaac's movement#Shoots towards Isaac#Deals 3.5 damage per tear"}, -- Abel - {"189", "SMB Super Fan", "↑ {{Heart}} +1 Health#↑ {{Speed}} +0.2 Speed#↑ {{Tears}} +0.2 Tears#↑ {{Damage}} +0.3 Damage#↑ {{Range}} +0.5 Range#↑ +1 Tear height#{{Heart}} Full health"}, -- SMB Super Fan + {"189", "SMB Super Fan", "↑ {{Heart}} +1 Health#↑ {{Speed}} +0.2 Speed#↑ {{Tears}} +0.2 Tears#↑ {{Damage}} +0.3 Damage#↑ {{Range}} +0.5 Range#↑ +1 Tear height#{{HealingRed}} Full health"}, -- SMB Super Fan {"190", "Pyro", "{{Bomb}} +99 Bombs"}, -- Pyro {"191", "3 Dollar Bill", "Isaac's tears get random effects every 2-3 seconds"}, -- 3 Dollar Bill {"192", "Telepathy For Dummies", "{{Timer}} Homing tears for the room"}, -- Telepathy For Dummies @@ -237,13 +237,13 @@ EID.descriptions[languageCode].collectibles={ {"214", "Anemic", "↑ {{Range}} +5 Range#{{Timer}} When taking damage Isaac leaves a trail of blood creep for the room#The creep deals 6 damage per second"}, -- Anemic {"215", "Goat Head", "{{AngelDevilChance}} 100% Devil/Angel Room chance"}, -- Goat Head {"216", "Ceremonial Robes", "↑ {{Damage}} +1 Damage#{{BlackHeart}} +3 Black Hearts"}, -- Ceremonial Robes - {"217", "Mom's Wig", "{{Heart}} Heals 1 heart#5% chance to spawn a blue spider when shooting tears#{{Luck}} 100% chance at 10 luck"}, -- Mom's Wig - {"218", "Placenta", "↑ {{Heart}} +1 Health#{{HalfHeart}} 50% chance to heal half a heart every minute"}, -- Placenta + {"217", "Mom's Wig", "{{HealingRed}} Heals 1 heart#5% chance to spawn a blue spider when shooting tears#{{Luck}} 100% chance at 10 luck"}, -- Mom's Wig + {"218", "Placenta", "↑ {{Heart}} +1 Health#{{HealingRed}} 50% chance to heal half a heart every minute"}, -- Placenta {"219", "Old Bandage", "↑ {{EmptyHeart}} +1 Empty heart container#{{Heart}} Taking damage has a 10% chance to spawn a Red Heart"}, -- Old Bandage {"220", "Sad Bombs", "{{Bomb}} +5 Bombs#Isaac's bombs shoot 10 tears in a circle when they explode"}, -- Sad Bombs {"221", "Rubber Cement", "Isaac's tears bounce off enemies and obstacles"}, -- Rubber Cement {"222", "Anti-Gravity", "↑ {{Tears}} -2 Tear delay#Holding the fire buttons causes tears to hover in midair#Releasing the fire buttons shoots them in the direction they were fired"}, -- Anti-Gravity - {"223", "Pyromaniac", "{{Bomb}} +5 Bombs#{{Heart}} Getting hit by explosions heals 1 heart instead of damaging Isaac#Immune to rock wave attacks and Mom and Satan's stomp attacks"}, -- Pyromaniac + {"223", "Pyromaniac", "{{Bomb}} +5 Bombs#{{HealingRed}} Getting hit by explosions heals 1 heart instead of damaging Isaac#Immune to rock wave attacks and Mom and Satan's stomp attacks"}, -- Pyromaniac {"224", "Cricket's Body", "↑ {{Tears}} -1 Tear delay#↑ {{Tearsize}} x1.2 Tear size#↓ {{Range}} -10 Range#Tears split up in 4 on hit#Split tears deal half damage"}, -- Cricket's Body {"225", "Gimpy", "{{SoulHeart}} Taking damage has a chance to spawn a Soul Heart#{{HalfHeart}} Enemies have a chance to drop a half Red Heart on death"}, -- Gimpy {"226", "Black Lotus", "↑ {{Heart}} +1 Health#{{SoulHeart}} +1 Soul Heart#{{BlackHeart}} +1 Black Heart"}, -- Black Lotus @@ -290,7 +290,7 @@ EID.descriptions[languageCode].collectibles={ {"267", "Robo-Baby 2.0", "Shoots lasers#Deals 3.5 damage per shot#Moves in the direction Isaac is shooting"}, -- Robo-Baby 2.0 {"268", "Rotten Baby", "Spawns blue flies when Isaac shoots"}, -- Rotten Baby {"269", "Headless Baby", "Leaves creep which deals 6 damage per second"}, -- Headless Baby - {"270", "Leech", "Chases enemies#{{HalfHeart}} Heals Isaac for half a heart when it kills an enemy#Deals 3.2 damage per second"}, -- Leech + {"270", "Leech", "Chases enemies#{{HealingRed}} Heals Isaac for half a heart when it kills an enemy#Deals 3.2 damage per second"}, -- Leech {"271", "Mystery Sack", "Spawns a random pickup every 5-6 rooms"}, -- Mystery Sack {"272", "BBF", "Friendly exploding fly#The explosion deals 60 damage#{{Warning}} The explosion can hurt Isaac"}, -- BBF {"273", "Bob's Brain", "Dashes in the direction Isaac is shooting#Explodes when it hits an enemy#{{Poison}} The explosion deals 60 damage and poisons enemies#{{Warning}} The explosion can hurt Isaac"}, -- Bob's Brain @@ -334,7 +334,7 @@ EID.descriptions[languageCode].collectibles={ {"309", "Pisces", "↑ {{Tears}} -1 Tear delay#↑ {{Tearsize}} x1.25 Tear size#Increases tear knockback"}, -- Pisces {"310", "Eve's Mascara", "↑ {{Damage}} x2 Damage multiplier#↓ {{Tears}} x0.5 Tears multiplier#↓ {{Shotspeed}} -0.5 Shot speed"}, -- Eve's Mascara {"311", "Judas' Shadow", "{{Player12}} When dead, respawn as Dark Judas with a x2 damage multiplier"}, -- Judas' Shadow - {"312", "Maggy's Bow", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart#All Red Hearts heal double their value"}, -- Maggy's Bow + {"312", "Maggy's Bow", "↑ {{Heart}} +1 Health#{{HealingRed}} Heals 1 heart#All Red Hearts heal double their value"}, -- Maggy's Bow {"313", "Holy Mantle", "Negates the first hit taken once per room"}, -- Holy Mantle {"314", "Thunder Thighs", "↑ {{Heart}} +1 Health#↓ {{Speed}} -0.4 Speed#Isaac can destroy rocks by walking into them"}, -- Thunder Thighs {"315", "Strange Attractor", "Isaac's tears attract enemies, pickups and trinkets"}, -- Strange Attractor @@ -450,7 +450,7 @@ EID.descriptions[languageCode].collectibles={ {"425", "Night Light", "{{Slow}} Spawns a slowing cone of light in front of Isaac"}, -- Night Light {"426", "Obsessed Fan", "Mimics Isaac's exact movement on a 3 second delay#Deals 30 contact damage per second"}, -- Obsessed Fan {"427", "Mine Crafter", "Spawns a pushable TNT barrel#Using the item a second time in the same room remotely detonates the barrel"}, -- Mine Crafter - {"428", "PJs", "{{Heart}} Full health#{{SoulHeart}} +4 Soul Hearts"}, -- PJs + {"428", "PJs", "{{HealingRed}} Full health#{{SoulHeart}} +4 Soul Hearts"}, -- PJs {"429", "Head of the Keeper", "{{Coin}} Hitting an enemy with a tear has a 5% chance to spawn a Penny"}, -- Head of the Keeper {"430", "Papa Fly", "Mimics Isaac's movement on a 1 second delay#Shoots tears at nearby enemies that deal Isaac's damage"}, -- Papa Fly {"431", "Multidimensional Baby", "Mimics Isaac's movement on a 2 second delay#Tears that pass through it are doubled and gain a range + shot speed boost"}, -- Multidimensional Baby @@ -744,7 +744,7 @@ EID.descriptions[languageCode].trinkets={ {"5", "Purple Heart", "2x chance for champion enemies"}, -- Purple Heart {"6", "Broken Magnet", "{{Coin}} Attracts coins to Isaac"}, -- Broken Magnet {"7", "Rosary Bead", "{{AngelChance}} 50% higher Angel Room chance#{{Collectible33}} Higher chance to find The Bible in {{Shop}} Shops and {{Library}} Libraries"}, -- Rosary Bead - {"8", "Cartridge", "{{Timer}} 5% chance upon taking damage to receive for 6.5 seconds:#Invincibility#Isaac can't shoot but deals 40 contact damage per second#{{HalfHeart}} Killing 2 enemies heals half a heart#{{Fear}} Fears all enemies in the room"}, -- Cartridge + {"8", "Cartridge", "{{Timer}} 5% chance upon taking damage to receive for 6.5 seconds:#Invincibility#Isaac can't shoot but deals 40 contact damage per second#{{HealingRed}} Killing 2 enemies heals half a heart#{{Fear}} Fears all enemies in the room"}, -- Cartridge {"9", "Pulse Worm", "Isaac's tears pulsate#Affects tear hitbox"}, -- Pulse Worm {"10", "Wiggle Worm", "↑ {{Tears}} +0.3 Tears#Isaac's tears move in waves"}, -- Wiggle Worm {"11", "Ring Worm", "Isaac's tears move in spirals with high speed"}, -- Ring Worm @@ -782,14 +782,14 @@ EID.descriptions[languageCode].trinkets={ {"43", "Cursed Skull", "When damaged down to half a heart or less, Isaac is teleported to a random room"}, -- Cursed Skull {"44", "Safety Cap", "{{Pill}} 10% chance for the room clear reward to be a pill#{{Pill}} Chance for a bonus pill from chests, tinted rocks and destroyed machines"}, -- Safety Cap {"45", "Ace of Spades", "{{Card}} 10% chance for the room clear reward to be a card#{{Card}} Chance for a bonus card from chests, tinted rocks and destroyed machines"}, -- Ace of Spades - {"46", "Isaac's Fork", "{{HalfHeart}} Clearing a room has a 10% chance to heal half a heart#{{Luck}} 100% chance at 18 luck"}, -- Isaac's Fork + {"46", "Isaac's Fork", "{{HealingRed}} Clearing a room has a 10% chance to heal half a heart#{{Luck}} 100% chance at 18 luck"}, -- Isaac's Fork {"47", "", ""}, {"48", "A Missing Page", "Taking damage has a 5% chance to deal 40 damage to all enemies in the room"}, -- A Missing Page {"49", "Bloody Penny", "{{HalfHeart}} Picking up a coin has a 50% chance to spawn a half Red Heart"}, -- Bloody Penny {"50", "Burnt Penny", "{{Bomb}} Picking up a coin has a 50% chance to spawn a bomb"}, -- Burnt Penny {"51", "Flat Penny", "{{Key}} Picking up a coin has a 50% chance to spawn a key"}, -- Flat Penny {"52", "Counterfeit Penny", "{{Coin}} Picking up a coin has a 50% chance to add another coin to the counter"}, -- Counterfeit Penny - {"53", "Tick", "{{Heart}} Heals 1 heart when entering a {{BossRoom}} Boss Room#-15% boss health#{{Warning}} Once picked up, it can't be removed#Only removeable with {{Trinket41}} Match Stick or gulping"}, -- Tick + {"53", "Tick", "{{HealingRed}} Heals 1 heart when entering a {{BossRoom}} Boss Room#-15% boss health#{{Warning}} Once picked up, it can't be removed#Only removeable with {{Trinket41}} Match Stick or gulping"}, -- Tick {"54", "Isaac's Head", "Familiar with piercing tears#Deals 3.5 damage per tear"}, -- Isaac's Head {"55", "Maggy's Faith", "{{EternalHeart}} Entering a new floor grants +1 Eternal Heart"}, -- Maggy's Faith {"56", "Judas' Tongue", "{{DevilRoom}} Reduces all devil deal prices to 1 heart container#Doesn't reduce 3 Soul Heart prices"}, -- Judas' Tongue @@ -821,9 +821,9 @@ EID.descriptions[languageCode].trinkets={ {"82", "Golden Horse Shoe", "{{TreasureRoom}} Future Treasure Rooms have +15% chance to let Isaac choose between two items"}, -- Golden Horse Shoe {"83", "Store Key", "{{Shop}} Lets Isaac open Shops for free"}, -- Store Key {"84", "Rib of Greed", "{{Coin}} 5% more coins and fewer hearts from room clear rewards#Greed and Super Greed no longer appear in {{Shop}} Shops or {{SecretRoom}} Secret Rooms"}, -- Rib of Greed - {"85", "Karma", "{{DonationMachine}} Using a Donation Machine has a 33% chance to:#{{Heart}} Heal 1 heart (40%)#{{Coin}} Give 1 coin (40%)#{{Luck}} Grant +1 luck (15%)#{{Beggar}} Spawn a Beggar (5%)"}, -- Karma + {"85", "Karma", "{{DonationMachine}} Using a Donation Machine has a 33% chance to:#{{HealingRed}} Heal 1 heart (40%)#{{Coin}} Give 1 coin (40%)#{{Luck}} Grant +1 luck (15%)#{{Beggar}} Spawn a Beggar (5%)"}, -- Karma {"86", "Lil Larva", "Destroying poop spawns 1 blue fly"}, -- Lil Larva - {"87", "Mom's Locket", "{{HalfHeart}} Using a key heals half a heart#{{Heart}} Turns half hearts into full hearts"}, -- Mom's Locket + {"87", "Mom's Locket", "{{HealingRed}} Using a key heals half a heart#{{Heart}} Turns half hearts into full hearts"}, -- Mom's Locket {"88", "NO!", "Prevents active items from spawning"}, -- NO! {"89", "Child Leash", "Familiars stay closer to Isaac"}, -- Child Leash {"90", "Brown Cap", "Poop explodes for 100 damage when destroyed"}, -- Brown Cap @@ -855,7 +855,7 @@ EID.descriptions[languageCode].trinkets={ {"116", "Locust of Death", "Entering a hostile room spawns an attack fly#The fly deals 4x Isaac's damage"}, -- Locust of Death {"117", "Locust of Conquest", "Entering a hostile room spawns 1-4 attack flies#Each fly deals 2x Isaac's damage"}, -- Locust of Conquest {"118", "Bat Wing", "{{Timer}} Killing an enemy has a 5% chance to grant flight for the room"}, -- Bat Wing - {"119", "Stem Cell", "{{HalfHeart}} Entering a new floor heals half a heart"}, -- Stem Cell + {"119", "Stem Cell", "{{HealingRed}} Entering a new floor heals half a heart"}, -- Stem Cell {"120", "Hairpin", "{{Battery}} Entering an uncleared boss room fully recharges active items"}, -- Hairpin {"121", "Wooden Cross", "{{Collectible313}} Negates the first damage taken on the floor"}, -- Wooden Cross {"122", "Butter!", "Using an active item drops it on a pedestal on the ground#Taking damage has a 2% chance to drop one of Isaac's passive items"}, -- Butter! @@ -889,13 +889,13 @@ EID.descriptions[languageCode].cards={ {"17", "XVI - The Tower", "Spawns 6 Troll Bombs"}, -- XVI - The Tower {"18", "XVII - The Stars", "{{TreasureRoom}} Teleports Isaac to the Treasure Room"}, -- XVII - The Stars {"19", "XVIII - The Moon", "{{SecretRoom}} Teleports Isaac to the Secret Room"}, -- XVIII - The Moon - {"20", "XIX - The Sun", "{{Heart}} Full health#Deals 100 damage to all enemies#{{Timer}} Full mapping effect for the floor (except {{SuperSecretRoom}} Super Secret Room)"}, -- XIX - The Sun + {"20", "XIX - The Sun", "{{HealingRed}} Full health#Deals 100 damage to all enemies#{{Timer}} Full mapping effect for the floor (except {{SuperSecretRoom}} Super Secret Room)"}, -- XIX - The Sun {"21", "XX - Judgement", "Spawns a Beggar or Devil Beggar#2% chance to spawn a special Beggar"}, -- XX - Judgement {"22", "XXI - The World", "{{Timer}} Full mapping effect for the floor (except {{SuperSecretRoom}} Super Secret Room)"}, -- XXI - The World {"23", "2 of Clubs", "{{Bomb}} Doubles Isaac's number of bombs"}, -- 2 of Clubs {"24", "2 of Diamonds", "{{Coin}} Doubles Isaac's number of coins"}, -- 2 of Diamonds {"25", "2 of Spades", "{{Key}} Doubles Isaac's number of keys"}, -- 2 of Spades - {"26", "2 of Hearts", "{{Heart}} Doubles Isaac's number of Red Hearts#Only has a healing effect"}, -- 2 of Hearts + {"26", "2 of Hearts", "{{HealingRed}} Doubles Isaac's number of Red Hearts {{ColorSilver}}(not containers){{CR}}"}, -- 2 of Hearts {"27", "Ace of Clubs", "{{Bomb}} Turns all pickups into random bombs"}, -- Ace of Clubs {"28", "Ace of Diamonds", "{{Coin}} Turns all pickups into random coins"}, -- Ace of Diamonds {"29", "Ace of Spades", "{{Key}} Turns all pickups into random keys"}, -- Ace of Spades @@ -965,12 +965,12 @@ EID.descriptions[languageCode].unidentifiedPill = "Unidentified Pill" EID.descriptions[languageCode].pills={ {"0", "Bad Gas", "{{Poison}} Isaac farts and poisons nearby enemies"}, -- Bad Gas - {"1", "Bad Trip", "{{Heart}} Deals 1 heart of damage to Isaac#{{Heart}} Becomes a Full Health pill at 1 heart or less"}, -- Bad Trip + {"1", "Bad Trip", "{{Warning}} Deals 1 heart of damage to Isaac#Becomes a Full Health pill at 1 heart or less"}, -- Bad Trip {"2", "Balls of Steel", "{{SoulHeart}} +2 Soul Hearts"}, -- Balls of Steel {"3", "Bombs are Key", "Swaps Isaac's number of {{Bomb}} bombs and {{Key}} keys"}, -- Bombs are Key {"4", "Explosive Diarrhea", "Isaac quickly spawns 5 lit bombs"}, -- Explosive Diarrhea - {"5", "Full Health", "{{Heart}} Fully heals all heart containers"}, -- Full Health - {"6", "Health Down", "↓ {{EmptyHeart}} -1 Health#{{Heart}} Becomes a Health Up pill at 0 or 1 heart containers"}, -- Health Down + {"5", "Full Health", "{{HealingRed}} Fully heals all heart containers"}, -- Full Health + {"6", "Health Down", "↓ {{EmptyHeart}} -1 Health#Becomes a Health Up pill at 0 or 1 heart containers"}, -- Health Down {"7", "Health Up", "↑ {{EmptyHeart}} +1 Empty heart container"}, -- Health Up {"8", "I Found Pills", "No effect"}, -- I Found Pills {"9", "Puberty", "No effect#Eating 3 grants the Adult transformation:#↑ {{Heart}} +1 Health"}, -- Puberty @@ -1000,7 +1000,7 @@ EID.descriptions[languageCode].pills={ {"33", "One makes you small", "Decreases Isaac's size#Also decreases his hitbox"}, -- One makes you small {"34", "Infested!", "Spawns 1 blue spider for each poop in the room"}, -- Infested! {"35", "Infested?", "Spawn 1 blue spider for each enemy in the room#Spawns 1-3 blue spiders if there are no enemies in the room"}, -- Infested? - {"36", "Power Pill!", "{{Timer}} Receive for 6.5 seconds:#Invincibility#Isaac can't shoot but deals 40 contact damage per second#{{HalfHeart}} Killing 2 enemies heals half a heart#{{Fear}} Fears all enemies in the room"}, -- Power Pill! + {"36", "Power Pill!", "{{Timer}} Receive for 6.5 seconds:#Invincibility#Isaac can't shoot but deals 40 contact damage per second#{{HealingRed}} Killing 2 enemies heals half a heart#{{Fear}} Fears all enemies in the room"}, -- Power Pill! {"37", "Retro Vision", "{{Timer}} Pixelates the screen 3 times over 30 second"}, -- Retro Vision {"38", "Friends Till The End!", "Spawns 3 blue flies"}, -- Friends Till The End! {"39", "X-Lax", "Spawns a pool of slippery creep"}, -- X-Lax @@ -1014,8 +1014,7 @@ EID.descriptions[languageCode].pills={ } ---------- Character Info ---------- --- TODO: make these more consistent with other descs, add icons, and is there any traits of the characters missing? --- Soon, these descriptions, along with their starting item descriptions, will be in a tab in the Item Reminder +-- These descriptions are shown in the Item Reminder -- The character names here are also used in getPlayerName to provide localized character names -- The numbers are provided to make this a quick reference for Player IDs EID.descriptions[languageCode].CharacterInfo = { @@ -1094,6 +1093,9 @@ EID.descriptions[languageCode].transformations={ ---------- MISC ---------- +-- This string will be appended to certain words (like pickup names in glitched item descriptions) to pluralize them, make it "" to not pluralize +EID.descriptions[languageCode].Pluralize = "s" + EID.descriptions[languageCode].VoidText = "If absorbed, gain:" -- {1} will become the number text (like "{1} Tears" -> "+0.5 Tears") EID.descriptions[languageCode].VoidNames = {"{1} Speed", "{1} Tears", "{1} Damage", "{1} Range", "{1} Shot speed", "{1} Luck"} @@ -1109,6 +1111,27 @@ EID.descriptions[languageCode].CollectionPageInfo = "This item needs to be picke EID.descriptions[languageCode].BlackFeatherInformation = "{{ColorLime}}{1}{{CR}} items currently held (+{2} Damage)" +-- Find/replace pairs for changing "+1 Health" to "+1 Soul Heart" for soul health characters, or nothing at all for The Lost +-- {1} = number of hearts, {2} = plural character +-- If having a simple plural character doesn't work for your language, you could just include an extra string pair to catch plural lines +EID.descriptions[languageCode].RedToX = { + -- These change "+1 Health" to just "+1 Soul Heart" and etc. + ["Red to Soul"] = {"↑ {{Heart}} +{1} Health", "{{SoulHeart}} +{1} Soul Heart{2}", + "↑ {{EmptyHeart}} +{1} Empty heart container{2}", "{{SoulHeart}} +{1} Soul Heart{2}"}, + + ["Red to Black"] = {"↑ {{Heart}} +{1} Health", "{{BlackHeart}} +{1} Black Heart{2}", + "↑ {{EmptyHeart}} +{1} Empty heart container{2}", "{{BlackHeart}} +{1} Black Heart{2}"}, + + ["Red to Bone"] = {"↑ {{Heart}} +{1} Health", "{{BoneHeart}} +{1} Bone Heart{2}", + "↑ {{EmptyHeart}} +{1} Empty heart container{2}", "{{EmptyBoneHeart}} +{1} Empty Bone Heart{2}", "{{HealingRed}}", "{{HealingBone}}"}, -- Red HP to Bone Hearts + + ["Red to Coin"] = {"↑ {{Heart}} +{1} Health", "{{CoinHeart}} +{1} Coin Heart{2}", + "↑ {{EmptyHeart}} +{1} Empty heart container{2}", "{{EmptyCoinHeart}} +{1} Empty Coin Heart{2}", + "{{HealingRed}} Heals {1} heart{2}", "{{HealingCoin}} Heals {1} coin{2}", "{{HealingRed}} Heals half a heart", "{{HealingCoin}} Heals 1 coin", "{{HealingRed}}", "{{HealingCoin}}"}, + + ["Red to None"] = {"↑ {{Heart}} +{1} Health", "", "↑ {{EmptyHeart}} +{1} Empty heart container{2}", ""}, -- Red HP to None (The Lost) +} + EID.descriptions[languageCode].MCM = { DemoObjectName = "Demo Object Name", DemoObjectTransformation = "Demo Transformation", @@ -1117,7 +1140,7 @@ EID.descriptions[languageCode].MCM = { -- the ItemReminder description will predict the abilities of items with a header like "Item Name Result" EID.descriptions[languageCode].ItemReminder = { - ResultHeader = " Result", + ResultHeader = "{1} Result", InventoryEmpty = "(Player has no items)", CategoryNames = { Overview = "Inventory Overview", @@ -1181,6 +1204,7 @@ EID.descriptions[languageCode].ConditionalDescs = { ["Overrides"] = "Overrides {1}", ["Almost No Effect"] = "Little to no effect for {1}", ["No Effect"] = "No effect for {1}", + ["No Effect Replace"] = {"No effect for {1}"}, ["No Effect From"] = "No effect from {1}", ["Can't Charge"] = "Can't charge {1}", ["Can't Be Charged"] = "Can't be charged by {1}", @@ -1189,7 +1213,7 @@ EID.descriptions[languageCode].ConditionalDescs = { ["No Effect (Copies)"] = "No additional effect from multiple copies", -- Having the item already, or having Diplopia while looking at a pedestal ["No Effect (Familiars)"] = "No additional effect on familiars", -- probably just for Hive Mind + BFFS! ["No Red"] = "No effect for characters that can't have Red Hearts", - ["Different Effect"] = "Different effect for {1}", + ["Different Effect"] = "{{ColorSilver}}Different effect for {1}{{CR}}", ------ GREED MODE ------ @@ -1197,7 +1221,7 @@ EID.descriptions[languageCode].ConditionalDescs = { ["No Champion Drops"] = "!!! Champions don't drop pickups in Greed Mode!", -- Champion Belt / Purple Heart ["5.300.15"] = {"{{DemonBeggar}} Spawns a Devil Beggar"}, -- Temperance (Greed) ["5.300.19"] = {"Teleports Isaac to the first room of the floor"}, -- The Moon (Greed) - ["5.300.20"] = {"{{Heart}} Full health#Deals 100 damage to all enemies"}, -- XIX - The Sun (Greed) + ["5.300.20"] = {"{{HealingRed}} Full health#Deals 100 damage to all enemies"}, -- XIX - The Sun (Greed) ["5.100.483 (Greed)"] = "{{GreedMode}} Doesn't trigger once per wave, just once per room", -- Mama Mega (Greed) ["5.100.535"] = "{{GreedMode}} No shield on Boss Waves, only on Ultra Greed", -- Blanket (Greed) ["5.350.120"] = "{{GreedMode}} No charge on Boss Waves, only on Ultra Greed", -- Hairpin (Greed) @@ -1220,25 +1244,6 @@ EID.descriptions[languageCode].ConditionalDescs = { ------ SPECIFIC CHARACTER SYNERGIES/CHANGES ------ -- NO RED HEALTH CHARS - -- These change "+1 Health, Full health" to just "+1 Soul Heart" and etc. - ["Red to Soul"] = {"↑ {{Heart}} +1 Health", "{{SoulHeart}} +1 Soul Heart", "↑ {{Heart}} +2 Health", "{{SoulHeart}} +2 Soul Hearts", "↑ {{Heart}} +3 Health", "{{SoulHeart}} +3 Soul Hearts", - "↑ {{EmptyHeart}} +1 Empty heart container", "{{SoulHeart}} +1 Soul Heart", "↑ {{EmptyHeart}} +2 Empty heart containers", "{{SoulHeart}} +2 Soul Hearts", - "{{Heart}} Full health", "", "{{Heart}} Heals 1 heart", "", "{{HalfHeart}} Heals half a heart", "", "{{Heart}} Heals 2 hearts", ""}, -- Red HP to Soul Hearts, removes heals - - ["Red to Black"] = {"↑ {{Heart}} +1 Health", "{{BlackHeart}} +1 Black Heart", "↑ {{Heart}} +2 Health", "{{BlackHeart}} +2 Black Hearts", "↑ {{Heart}} +3 Health", "{{BlackHeart}} +3 Black Hearts", - "↑ {{EmptyHeart}} +1 Empty heart container", "{{BlackHeart}} +1 Black Heart", "↑ {{EmptyHeart}} +2 Empty heart containers", "{{BlackHeart}} +2 Black Hearts", - "{{Heart}} Full health", "", "{{Heart}} Heals 1 heart", "", "{{HalfHeart}} Heals half a heart", "", "{{Heart}} Heals 2 hearts", ""}, -- Red HP to Black Hearts, removes heals - - ["Red to Bone"] = {"↑ {{Heart}} +1 Health", "{{BoneHeart}} +1 Bone Heart", "↑ {{Heart}} +2 Health", "{{BoneHeart}} +2 Bone Hearts", "↑ {{Heart}} +3 Health", "{{BoneHeart}} +3 Bone Hearts", - "↑ {{EmptyHeart}} +1 Empty heart container", "{{EmptyBoneHeart}} +1 Empty Bone Heart", "↑ {{EmptyHeart}} +2 Empty heart containers", "{{EmptyBoneHeart}} +2 Empty Bone Hearts"}, -- Red HP to Bone Hearts - - ["Red to Coin"] = {"{{Heart}} +","{{CoinHeart}} +", "{{EmptyHeart}} +","{{EmptyCoinHeart}} +", - "{{Heart}} Full health", "{{CoinHeart}} Full health", "{{Heart}} Heals 1 heart", "{{CoinHeart}} Heals 1 coin", "{{HalfHeart}} Heals half a heart", "{{CoinHeart}} Heals 1 coin", "{{Heart}} Heals 2 hearts", "{{CoinHeart}} Heals 2 coins"}, -- Red HP to Coin Hearts - - ["Red to None"] = {"↑ {{Heart}} +1 Health", "", "↑ {{Heart}} +2 Health", "", "↑ {{Heart}} +3 Health", "", - "↑ {{EmptyHeart}} +1 Empty heart container", "", "↑ {{EmptyHeart}} +2 Empty heart containers", "", - "{{Heart}} Full health", "", "{{Heart}} Heals 1 heart", "", "{{HalfHeart}} Heals half a heart", "", "{{Heart}} Heals 2 hearts", ""}, -- Red HP to None (The Lost) - ["Super Bandage Soul"] = {"{{SoulHeart}} +3 Soul Hearts"}, -- for Soul Heart chars ["Super Bandage Black"] = {"{{SoulHeart}} +2 Soul Heart#{{BlackHeart}} +1 Black Heart"}, -- for Black Heart chars ["Black Lotus Soul"] = {"{{SoulHeart}} +2 Soul Hearts#{{BlackHeart}} +1 Black Heart"}, -- for Soul Heart chars diff --git a/descriptions/ab+/fr.lua b/descriptions/ab+/fr.lua index 5fc798bd..0de592ed 100644 --- a/descriptions/ab+/fr.lua +++ b/descriptions/ab+/fr.lua @@ -937,6 +937,8 @@ EID.descriptions[languageCode].transformations={ ---------- MISC ---------- +-- This string will be appended to certain words (like pickup names in glitched item descriptions) to pluralize them, make it "" to not pluralize +EID.descriptions[languageCode].Pluralize = "" EID.descriptions[languageCode].VoidText = "Si absorbé :" EID.descriptions[languageCode].VoidNames = {"Vitesse {{ColorLime}}{1}", "Débit {{ColorLime}}{1}", "Dégâts {{ColorLime}}{1}", "Portée {{ColorLime}}{1}", "Vitesse des tirs {{ColorLime}}{1}", "Chance {{ColorLime}}{1}"} diff --git a/descriptions/ab+/ja_jp.lua b/descriptions/ab+/ja_jp.lua index b7b5cc47..6a3613e8 100644 --- a/descriptions/ab+/ja_jp.lua +++ b/descriptions/ab+/ja_jp.lua @@ -935,6 +935,8 @@ EID.descriptions[languageCode].transformations={ ---------- MISC ---------- +-- This string will be appended to certain words (like pickup names in glitched item descriptions) to pluralize them, make it "" to not pluralize +EID.descriptions[languageCode].Pluralize = "" EID.descriptions[languageCode].VoidText = "吸収した時:" -- {1} will become the number text (like "{1} Tears up" -> "+0.5 Tears up") diff --git a/descriptions/ab+/ko_kr.lua b/descriptions/ab+/ko_kr.lua index 7218265b..32864e28 100644 --- a/descriptions/ab+/ko_kr.lua +++ b/descriptions/ab+/ko_kr.lua @@ -965,6 +965,9 @@ EID.descriptions[languageCode].transformations={ } ---------- Misc ---------- +-- This string will be appended to certain words (like pickup names in glitched item descriptions) to pluralize them, make it "" to not pluralize +EID.descriptions[languageCode].Pluralize = "" + EID.descriptions[languageCode].VoidText = "흡수 시 이하 능력치 증가:" EID.descriptions[languageCode].VoidNames = {"이동속도 {1}", "연사 {1}", "공격력 {1}", "사거리 {1}", "탄속 {1}", "행운 {1}"} EID.descriptions[languageCode].PurityBoosts = {[0] = "↑ {{DamageSmall}}공격력 +4", "↑ {{TearsSmall}}공격 딜레이 -4", "↑ {{SpeedSmall}}이동속도 +0.5", "↑ {{RangeSmall}}사거리 +7.5#↑ 눈물높이 +1"} diff --git a/descriptions/ab+/pt_br.lua b/descriptions/ab+/pt_br.lua index 6de70c9e..72bbcd39 100644 --- a/descriptions/ab+/pt_br.lua +++ b/descriptions/ab+/pt_br.lua @@ -872,6 +872,8 @@ EID.descriptions[languageCode].transformations={ } ---------- MISC ---------- +-- This string will be appended to certain words (like pickup names in glitched item descriptions) to pluralize them, make it "" to not pluralize +EID.descriptions[languageCode].Pluralize = "" EID.descriptions[languageCode].VoidText = "Se absorvido, ganha:" EID.descriptions[languageCode].VoidNames = {"Velocidade", "Lágrimas", "Dano", "Alcance", "Velocidade de Disparo", "Sorte"} diff --git a/descriptions/ab+/ru.lua b/descriptions/ab+/ru.lua index 3fa24719..0c15b311 100644 --- a/descriptions/ab+/ru.lua +++ b/descriptions/ab+/ru.lua @@ -871,6 +871,8 @@ EID.descriptions[languageCode].transformations={ ---------- MISC ---------- +-- This string will be appended to certain words (like pickup names in glitched item descriptions) to pluralize them, make it "" to not pluralize +EID.descriptions[languageCode].Pluralize = "" EID.descriptions[languageCode].VoidText = "Если поглощён, даёт:" EID.descriptions[languageCode].VoidNames = {"Скорость", "Скорострельность", "Урон", "Дальность", "Скорость снаряда", "Удача"} diff --git a/descriptions/ab+/spa.lua b/descriptions/ab+/spa.lua index 134b8229..fc8192a5 100644 --- a/descriptions/ab+/spa.lua +++ b/descriptions/ab+/spa.lua @@ -868,6 +868,9 @@ EID.descriptions[languageCode].transformations={ } ---------- Misc. text ---------- +-- This string will be appended to certain words (like pickup names in glitched item descriptions) to pluralize them, make it "" to not pluralize +EID.descriptions[languageCode].Pluralize = "" + EID.descriptions[languageCode].VoidText = "Si lo absorbes, ganarás:" EID.descriptions[languageCode].VoidNames = {"de Velocidad {{Speed}}", "de Lágrimas {{Tears}}", "de Daño {{Damage}}", "de Alcance {{Range}}", "de Vel. de tiro {{Shotspeed}}", "de Suerte {{Luck}}"} diff --git a/descriptions/ab+/uk_ua.lua b/descriptions/ab+/uk_ua.lua index 6bc7fa7b..72931abc 100644 --- a/descriptions/ab+/uk_ua.lua +++ b/descriptions/ab+/uk_ua.lua @@ -902,6 +902,9 @@ EID.descriptions[languageCode].transformations={ ---------- MISC ---------- +-- This string will be appended to certain words (like pickup names in glitched item descriptions) to pluralize them, make it "" to not pluralize +EID.descriptions[languageCode].Pluralize = "" + EID.descriptions[languageCode].VoidText = "При поглинанні дає:" -- {1} will become the number text (like "{1} Tears up" -> "+0.5 Tears up") EID.descriptions[languageCode].VoidNames = {"{1} Швидкість збільшено", "{1} Темп Стрільби збільшено", "{1} Шкоду збільшено", "{1} Дальність збільшено", "{1} Швидкість Стрільби збільшено", "{1} Удачу збільшено"} diff --git a/descriptions/ab+/zh_cn.lua b/descriptions/ab+/zh_cn.lua index 3fc519cb..4470be02 100644 --- a/descriptions/ab+/zh_cn.lua +++ b/descriptions/ab+/zh_cn.lua @@ -903,6 +903,9 @@ EID.descriptions[languageCode].transformations={ ---------- MISC ---------- +-- This string will be appended to certain words (like pickup names in glitched item descriptions) to pluralize them, make it "" to not pluralize +EID.descriptions[languageCode].Pluralize = "" + EID.descriptions[languageCode].VoidText = "若吸收,获得:" -- {1} will become the number text (like "{1} Tears up" -> "+0.5 Tears up") EID.descriptions[languageCode].VoidNames = {"{1} 移速", "{1} 射速", "{1} 伤害", "{1} 射程", "{1} 弹速", "{1} 运气"} diff --git a/descriptions/rep/cs_cz.lua b/descriptions/rep/cs_cz.lua index b7aa457f..81ec46b2 100644 --- a/descriptions/rep/cs_cz.lua +++ b/descriptions/rep/cs_cz.lua @@ -1032,9 +1032,6 @@ EID.descriptions[languageCode].horsepills={ ---------- Popisy Glitchnutých předmětů ---------- EID.descriptions[languageCode].GlitchedItemText = { - -- This will be appended to words to pluralize them, make it "" to not pluralize - pluralize = "s", - -- Item Config info AddBlackHearts = "{{BlackHeart}} {1} Černé Srdce", AddBombs = "{{Bomb}} {1} Bomba", diff --git a/descriptions/rep/de.lua b/descriptions/rep/de.lua index 27c47003..75a4be6c 100644 --- a/descriptions/rep/de.lua +++ b/descriptions/rep/de.lua @@ -1088,9 +1088,6 @@ EID.descriptions[languageCode].horsepills={ ---------- Glitched Item Descriptions ---------- EID.descriptions[languageCode].GlitchedItemText = { - -- This will be appended to words to pluralize them, make it "" to not pluralize - pluralize = "", - -- Item Config info AddBlackHearts = "{{BlackHeart}} {1} Schwarzes Herz", AddBombs = "{{Bomb}} {1} Bombe", diff --git a/descriptions/rep/en_us.lua b/descriptions/rep/en_us.lua index a34cf82f..24625348 100644 --- a/descriptions/rep/en_us.lua +++ b/descriptions/rep/en_us.lua @@ -16,15 +16,15 @@ local repCollectibles={ [2] = {"2", "The Inner Eye", "↓ {{Tears}} x0.51 Fire rate multiplier#Isaac shoots 3 tears at once"}, -- The Inner Eye [5] = {"5", "My Reflection", "↑ {{Damage}} +1.5 Damage#↑ {{Range}} +1.5 Range#↑ {{Range}} x2 Range multiplier#↑ {{Shotspeed}} x1.6 Shot speed multiplier#↓ {{Luck}} -1 Luck#Tears get a boomerang effect"}, -- My Reflection [6] = {"6", "Number One", "↑ {{Tears}} +1.5 Tears#↓ {{Range}} -1.5 Range#↓ {{Range}} x0.8 Range multiplier"}, -- Number One - [12] = {"12", "Magic Mushroom", "↑ {{Heart}} +1 Health#↑ {{Speed}} +0.3 Speed#↑ {{Damage}} +0.3 Damage#↑ {{Damage}} x1.5 Damage multiplier#↑ {{Range}} +2.5 Range#Size up#{{Heart}} Full health"}, -- Magic Mushroom + [12] = {"12", "Magic Mushroom", "↑ {{Heart}} +1 Health#↑ {{Speed}} +0.3 Speed#↑ {{Damage}} +0.3 Damage#↑ {{Damage}} x1.5 Damage multiplier#↑ {{Range}} +2.5 Range#Size up#{{HealingRed}} Full health"}, -- Magic Mushroom [13] = {"13", "The Virus", "↑ {{Speed}} +0.2 Speed#{{Poison}} Touching enemies poisons them#Isaac deals 48 contact damage per second"}, -- The Virus [14] = {"14", "Roid Rage", "↑ {{Speed}} +0.3 Speed#↑ {{Range}} +2.5 Range"}, -- Roid Rage [18] = {"18", "A Dollar", "{{Coin}} +100 Coins"}, -- A Dollar - [22] = {"22", "Lunch", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart"}, -- Lunch - [23] = {"23", "Dinner", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart"}, -- Dinner - [24] = {"24", "Dessert", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart"}, -- Dessert - [25] = {"25", "Breakfast", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart"}, -- Breakfast - [26] = {"26", "Rotten Meat", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart"}, -- Rotten Meat + [22] = {"22", "Lunch", "↑ {{Heart}} +1 Health#{{HealingRed}} Heals 1 heart"}, -- Lunch + [23] = {"23", "Dinner", "↑ {{Heart}} +1 Health#{{HealingRed}} Heals 1 heart"}, -- Dinner + [24] = {"24", "Dessert", "↑ {{Heart}} +1 Health#{{HealingRed}} Heals 1 heart"}, -- Dessert + [25] = {"25", "Breakfast", "↑ {{Heart}} +1 Health#{{HealingRed}} Heals 1 heart"}, -- Breakfast + [26] = {"26", "Rotten Meat", "↑ {{Heart}} +1 Health#{{HealingRed}} Heals 1 heart"}, -- Rotten Meat [29] = {"29", "Mom's Underwear", "↑ {{Range}} +2.5 Range#Spawns 3-6 blue flies"}, -- Mom's Underwear [30] = {"30", "Mom's Heels", "↑ {{Range}} +2.5 Range#Isaac deals 24 contact damage per second"}, -- Mom's Heels [31] = {"31", "Mom's Lipstick", "↑ {{Range}} +3.75 Range#{{UnknownHeart}} Spawns 1 random heart"}, -- Mom's Lipstick @@ -38,7 +38,7 @@ local repCollectibles={ [53] = {"53", "Magneto", "Pickups are attracted to Isaac#Opens chests from 2 tiles away, ignoring damage of Spike Chests"}, -- Magneto [55] = {"55", "Mom's Eye", "50% chance to shoot an extra tear backwards#{{Luck}} 100% chance at 5 luck"}, -- Mom's Eye [59] = {"59", "The Book of Belial", "{{AngelDevilChance}} +12.5% Devil/Angel Room chance while held#{{Timer}} Receive for the room:#↑ {{Damage}} +2 Damage"}, -- The Book of Belial (Judas' Birthright) - [62] = {"62", "Charm of the Vampire", "↑ {{Damage}} +0.3 Damage#{{HalfHeart}} Killing 13 enemies heals half a heart"}, -- Charm of the Vampire + [62] = {"62", "Charm of the Vampire", "↑ {{Damage}} +0.3 Damage#{{HealingRed}} Killing 13 enemies heals half a heart"}, -- Charm of the Vampire [67] = {"67", "Sister Maggy", "Shoots normal tears#Deals 6 damage per tear"}, -- Sister Maggy [69] = {"69", "Chocolate Milk", "{{Chargeable}} Chargeable tears#{{Damage}} Damage scales with charge time, up to 4x"}, -- Chocolate Milk [70] = {"70", "Growth Hormones", "↑ {{Speed}} +0.2 Speed#↑ {{Damage}} +1 Damage"}, -- Growth Hormones @@ -52,7 +52,7 @@ local repCollectibles={ [87] = {"87", "Loki's Horns", "25% chance to shoot in 4 directions#{{Luck}} 100% chance at 15 luck"}, -- Loki's Horns [91] = {"91", "Spelunker Hat", "Rooms on the map are revealed from further away#{{SecretRoom}} Can also reveal Secret and Super Secret Rooms#Prevents damage from falling projectiles"}, -- Spelunker Hat [98] = {"98", "The Relic", "{{SoulHeart}} Spawns 1 Soul Heart every 7-8 rooms"}, -- The Relic - [101] = {"101", "The Halo", "↑ {{Heart}} +1 Health#↑ {{Speed}} +0.3 Speed#↑ {{Tears}} +0.2 Tears#↑ {{Damage}} +0.3 Damage#↑ {{Range}} +1.5 Range#{{Heart}} Heals 1 heart"}, -- The Halo + [101] = {"101", "The Halo", "↑ {{Heart}} +1 Health#↑ {{Speed}} +0.3 Speed#↑ {{Tears}} +0.2 Tears#↑ {{Damage}} +0.3 Damage#↑ {{Range}} +1.5 Range#{{HealingRed}} Heals 1 heart"}, -- The Halo [106] = {"106", "Mr. Mega", "↑ x1.85 Bomb damage#{{Bomb}} +5 Bombs"}, -- Mr. Mega [107] = {"107", "The Pinking Shears", "{{Timer}} Receive for the room:#Flight#Isaac's body separates from his head and attacks enemies with 23.5 contact damage per second"}, -- The Pinking Shears [110] = {"110", "Mom's Contacts", "↑ {{Range}} +1.5 Range#20% chance to shoot petrifying tears#{{Luck}} 50% chance at 20 luck"}, -- Mom's Contacts @@ -63,7 +63,7 @@ local repCollectibles={ [123] = {"123", "Monster Manual", "{{Timer}} Spawns a random familiar for the floor"}, -- Monster Manual [126] = {"126", "Razor Blade", "↑ {{Damage}} +1.2 Damage for the room#{{Warning}} Deals 1 heart of damage to Isaac#After the first use in a room, deals half a heart instead#{{Heart}} Removes Red Hearts first"}, -- Razor Blade [129] = {"129", "Bucket of Lard", "↑ {{Heart}} +2 Health#↓ {{Speed}} -0.2 Speed"}, -- Bucket of Lard - [138] = {"138", "Stigmata", "↑ {{Heart}} +1 Health#↑ {{Damage}} +0.3 Damage#{{Heart}} Heals 1 heart"}, -- Stigmata + [138] = {"138", "Stigmata", "↑ {{Heart}} +1 Health#↑ {{Damage}} +0.3 Damage#{{HealingRed}} Heals 1 heart"}, -- Stigmata [139] = {"139", "Mom's Purse", "{{Trinket}} Spawns 1 random trinket#{{Trinket}} Isaac can hold 2 trinkets"}, -- Mom's Purse [140] = {"140", "Bob's Curse", "{{Bomb}} +5 Bombs#{{Poison}} Isaac's bombs create a cloud of poison#{{Poison}} Poison immunity"}, -- Bob's Curse [142] = {"142", "Scapular", "{{SoulHeart}} Isaac gains 1 Soul Heart when damaged down to half a heart#Can only happen once per room#Exiting and re-entering the room allows the effect to trigger again#{{Warning}} Doesn't trigger from health donations"}, -- Scapular @@ -78,15 +78,15 @@ local repCollectibles={ [171] = {"171", "Spider Butt", "{{Slow}} Slows down enemies for 4 seconds#Deals 10 damage to all enemies#Enemies killed by the item spawn blue spiders"}, -- Spider Butt [172] = {"172", "Sacrificial Dagger", "Orbital#Blocks enemy shots#Deals 112.5 contact damage per second"}, -- Sacrificial Dagger [173] = {"173", "Mitre", "{{SoulHeart}} 33% chance that Red Hearts spawn as Soul Hearts instead"}, -- Mitre - [176] = {"176", "Stem Cells", "↑ {{Heart}} +1 Health#↑ {{Shotspeed}} +0.16 Shot speed#{{Heart}} Heals 1 heart"}, -- Stem Cells + [176] = {"176", "Stem Cells", "↑ {{Heart}} +1 Health#↑ {{Shotspeed}} +0.16 Shot speed#{{HealingRed}} Heals 1 heart"}, -- Stem Cells [178] = {"178", "Holy Water", "{{Throwable}} Launches itself in the direction Isaac shoots#Breaks and deals 7 damage upon hitting an enemy#Leaves a pool of petrifying + damaging creep"}, -- Holy Water [180] = {"180", "The Black Bean", "Isaac farts multiple times when damaged#{{Poison}} The farts leave poison clouds and deflects projectiles"}, -- The Black Bean - [182] = {"182", "Sacred Heart", "↑ {{Heart}} +1 Health#↑ {{Damage}} x2.3 Damage multiplier#↑ {{Damage}} +1 Damage#↓ {{Tears}} -0.4 Tears#↓ {{Shotspeed}} -0.25 Shot speed#{{Heart}} Full health#Homing tears"}, -- Sacred Heart - [184] = {"184", "Holy Grail", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart#Flight"}, -- Holy Grail + [182] = {"182", "Sacred Heart", "↑ {{Heart}} +1 Health#↑ {{Damage}} x2.3 Damage multiplier#↑ {{Damage}} +1 Damage#↓ {{Tears}} -0.4 Tears#↓ {{Shotspeed}} -0.25 Shot speed#{{HealingRed}} Full health#Homing tears"}, -- Sacred Heart + [184] = {"184", "Holy Grail", "↑ {{Heart}} +1 Health#{{HealingRed}} Heals 1 heart#Flight"}, -- Holy Grail [186] = {"186", "Blood Rights", "Deals 40 damage to every enemy#{{Warning}} Deals 1 heart of damage to Isaac#After the first use in a room, deals half a heart instead#{{Heart}} Removes Red Hearts first"}, -- Blood Rights - [189] = {"189", "SMB Super Fan", "↑ {{Heart}} +1 Health#↑ {{Speed}} +0.2 Speed#↑ {{Tears}} +0.2 Tears#↑ {{Damage}} +0.3 Damage#↑ {{Range}} +2.5 Range#{{Heart}} Full health"}, -- SMB Super Fan + [189] = {"189", "SMB Super Fan", "↑ {{Heart}} +1 Health#↑ {{Speed}} +0.2 Speed#↑ {{Tears}} +0.2 Tears#↑ {{Damage}} +0.3 Damage#↑ {{Range}} +2.5 Range#{{HealingRed}} Full health"}, -- SMB Super Fan [192] = {"192", "Telepathy for Dummies", "{{Timer}} Receive for the room:#↑ {{Range}} +3 Range#Homing tears"}, -- Telepathy for Dummies - [193] = {"193", "MEAT!", "↑ {{Heart}} +1 Health#↑ {{Damage}} +0.3 Damage#{{Heart}} Heals 1 heart"}, -- MEAT! + [193] = {"193", "MEAT!", "↑ {{Heart}} +1 Health#↑ {{Damage}} +0.3 Damage#{{HealingRed}} Heals 1 heart"}, -- MEAT! [194] = {"194", "Magic 8 Ball", "↑ {{Shotspeed}} +0.16 Shot speed#{{Card}} Spawns a card#{{PlanetariumChance}} +15% Planetarium chance"}, -- Magic 8 Ball [197] = {"197", "Jesus Juice", "↑ {{Damage}} +0.5 Damage#↑ {{Range}} +1.5 Range"}, -- Jesus Juice [203] = {"203", "Humbleing Bundle", "Pickups have a 50% chance to be doubled"}, -- Humbleing Bundle @@ -94,13 +94,13 @@ local repCollectibles={ [206] = {"206", "Guillotine", "↑ {{Tears}} +0.5 Fire rate#↑ {{Damage}} +1 Damage#Isaac's head becomes an orbital that shoots, doesn't take damage and deals 56 contact damage per second"}, -- Guillotine [211] = {"211", "Spiderbaby", "Taking damage spawns 3-5 blue spiders"}, -- Spiderbaby [214] = {"214", "Anemic", "↑ {{Range}} +1.5 Range#{{Timer}} When taking damage Isaac leaves a trail of blood creep for the room#The creep deals 6 damage per second"}, -- Anemic - [218] = {"218", "Placenta", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart#{{HalfHeart}} 50% chance to heal half a heart every minute"}, -- Placenta + [218] = {"218", "Placenta", "↑ {{Heart}} +1 Health#{{HealingRed}} Heals 1 heart#{{HealingRed}} 50% chance to heal half a heart every minute"}, -- Placenta [219] = {"219", "Old Bandage", "↑ {{EmptyHeart}} +1 Empty heart container#{{Heart}} Taking damage has a 20% chance to spawn a Red Heart"}, -- Old Bandage [222] = {"222", "Anti-Gravity", "↑ {{Tears}} +1 Fire rate#Holding the fire buttons causes tears to hover in mid-air#Releasing the fire buttons shoots them in the direction they were fired"}, -- Anti-Gravity - [223] = {"223", "Pyromaniac", "{{Bomb}} +5 Bombs#{{HalfHeart}} Getting hit by explosions heals half a heart instead of damaging Isaac#{{Burning}} Fire immunity (except projectiles)"}, -- Pyromaniac + [223] = {"223", "Pyromaniac", "{{Bomb}} +5 Bombs#{{HealingRed}} Getting hit by explosions heals half a heart instead of damaging Isaac#{{Burning}} Fire immunity (except projectiles)"}, -- Pyromaniac [224] = {"224", "Cricket's Body", "↑ {{Tears}} +0.5 Fire rate#↓ {{Range}} x0.8 Range multiplier#Tears split in 4 on hit#Split tears deal half damage"}, -- Cricket's Body [225] = {"225", "Gimpy", "{{SoulHeart}} Taking damage has a 8% chance to spawn a Soul Heart#{{Luck}} +2% chance per luck#{{HalfHeart}} Enemies have a chance to drop a half Red Heart on death"}, -- Gimpy - [226] = {"226", "Black Lotus", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart#{{SoulHeart}} +1 Soul Heart#{{BlackHeart}} +1 Black Heart"}, -- Black Lotus + [226] = {"226", "Black Lotus", "↑ {{Heart}} +1 Health#{{HealingRed}} Heals 1 heart#{{SoulHeart}} +1 Soul Heart#{{BlackHeart}} +1 Black Heart"}, -- Black Lotus [228] = {"228", "Mom's Perfume", "↑ {{Tears}} +0.5 Fire rate#{{Fear}} 15% chance to shoot fear tears"}, -- Mom's Perfume [229] = {"229", "Monstro's Lung", "↓ {{Tears}} x0.23 Fire rate multiplier#{{Chargeable}} Tears are charged and released in a shotgun style attack"}, -- Monstro's Lung [230] = {"230", "Abaddon", "↑ {{Speed}} +0.2 Speed#↑ {{Damage}} +1.5 Damage#{{BlackHeart}} Converts all heart containers into Black Hearts#{{BlackHeart}} +2 Black Hearts#{{Fear}} 15% chance to shoot fear tears"}, -- Abaddon @@ -108,7 +108,7 @@ local repCollectibles={ [233] = {"233", "Tiny Planet", "↑ {{Range}} +6.5 Range#Spectral tears#Isaac's tears orbit around him"}, -- Tiny Planet [245] = {"245", "20/20", "↓ {{Damage}} x0.8 Damage multiplier#Isaac shoots 2 tears at once"}, -- 20/20 [248] = {"248", "Hive Mind", "Blue spiders and flies deal double damage#Spider and fly familiars become stronger"}, -- Hive Mind - [253] = {"253", "Magic Scab", "↑ {{Heart}} +1 Health#↑ {{Luck}} +1 Luck#{{Heart}} Heals 1 heart"}, -- Magic Scab + [253] = {"253", "Magic Scab", "↑ {{Heart}} +1 Health#↑ {{Luck}} +1 Luck#{{HealingRed}} Heals 1 heart"}, -- Magic Scab [254] = {"254", "Blood Clot", "↑ {{Damage}} +1 Damage for the left eye#↑ {{Range}} +2.75 Range for the left eye"}, -- Blood Clot [256] = {"256", "Hot Bombs", "{{Bomb}} +5 Bombs#{{Burning}} Isaac's bombs deal contact damage#{{Burning}} Isaac's bombs leave a flame where they explode#{{Burning}} Fire immunity (except projectiles)"}, -- Hot Bombs [261] = {"261", "Proptosis", "↑ {{Damage}} +0.5 Damage#↓ Tears deal less damage the longer they are airborne#Tears deal 3x damage at point blank range and no damage after 0.8 seconds"}, -- Proptosis @@ -138,11 +138,11 @@ local repCollectibles={ -- For it to work, only use line breaks or semicolons to separate floor details, and use the same order as English [297] = {"297", "Pandora's Box", "{{Warning}} SINGLE USE {{Warning}} Spawns rewards based on floor:#B1: 2{{SoulHeart}}; B2: 2{{Bomb}} + 2{{Key}}#{{NoLB}}C1: Boss item; C2: C1 + 2{{SoulHeart}}#D1: 4{{SoulHeart}}; D2: 20{{Coin}}#W1: 2 Boss items#W2: {{Collectible33}} The Bible#???/Void: Nothing#Sheol: Devil item + 1{{BlackHeart}}#Cathe: Angel item + 1{{EternalHeart}}#{{NoLB}}Dark Room: Unlocks {{Collectible523}} Moving Box#Chest: 1{{Coin}}#Home: {{Collectible580}} Red Key"}, -- Pandora's Box [300] = {"300", "Aries", "↑ {{Speed}} +0.25 Speed#Moving above 0.85 Speed makes Isaac immune to contact damage and deals 25 damage to enemies"}, -- Aries - [307] = {"307", "Capricorn", "↑ {{Heart}} +1 Health#↑ {{Speed}} +0.1 Speed#↑ {{Tears}} +0.5 Fire rate#↑ {{Damage}} +0.5 Damage#↑ {{Range}} +0.75 Range#+1 {{Coin}} coin, {{Bomb}} bomb and {{Key}} key#{{Heart}} Heals 1 heart"}, -- Capricorn + [307] = {"307", "Capricorn", "↑ {{Heart}} +1 Health#↑ {{Speed}} +0.1 Speed#↑ {{Tears}} +0.5 Fire rate#↑ {{Damage}} +0.5 Damage#↑ {{Range}} +0.75 Range#+1 {{Coin}} coin, {{Bomb}} bomb and {{Key}} key#{{HealingRed}} Heals 1 heart"}, -- Capricorn [308] = {"308", "Aquarius", "Isaac leaves a trail of creep#{{Damage}} The creep deals 66% of Isaac's damage per second and inherits his tear effects"}, -- Aquarius [309] = {"309", "Pisces", "↑ {{Tears}} +0.5 Fire rate#↑ {{Tearsize}} +0.12 Tear size#Increases tear knockback"}, -- Pisces [310] = {"310", "Eve's Mascara", "↑ {{Damage}} x2 Damage multiplier#↓ {{Tears}} x0.66 Tears multiplier#↓ {{Shotspeed}} -0.5 Shot speed"}, -- Eve's Mascara - [314] = {"314", "Thunder Thighs", "↑ {{Heart}} +1 Health#↓ {{Speed}} -0.4 Speed#{{Heart}} Heals 1 heart#Isaac can destroy rocks by walking into them"}, -- Thunder Thighs + [314] = {"314", "Thunder Thighs", "↑ {{Heart}} +1 Health#↓ {{Speed}} -0.4 Speed#{{HealingRed}} Heals 1 heart#Isaac can destroy rocks by walking into them"}, -- Thunder Thighs [315] = {"315", "Strange Attractor", "Isaac's tears attract enemies, pickups and trinkets#The attraction effect is much stronger at the end of the tears' path"}, -- Strange Attractor [316] = {"316", "Cursed Eye", "Charged wave of 5 tears#{{Warning}} Taking damage while partially charged teleports Isaac to a random room"}, -- Cursed Eye [319] = {"319", "Cain's Other Eye", "Shoots tears in random directions with the same effects as Isaac#{{Damage}} Deals 75% of Isaac's damage"}, -- Cain's Other Eye @@ -155,13 +155,13 @@ local repCollectibles={ [331] = {"331", "Godhead", "↑ {{Damage}} +0.5 Damage#↓ {{Tears}} -0.3 Tears#↓ {{Shotspeed}} -0.3 Shot speed#Homing tears#Tears gain an aura that deals 60 damage per second"}, -- Godhead [336] = {"336", "Dead Onion", "↑ {{Tearsize}} +0.22 Tear size#↓ {{Range}} -1.5 Range#↓ {{Shotspeed}} -0.4 Shot speed#Piercing + spectral tears"}, -- Dead Onion [339] = {"339", "Safety Pin", "↑ {{Range}} +2.5 Range#↑ {{Shotspeed}} +0.16 Shot speed#{{BlackHeart}} +1 Black Heart"}, -- Safety Pin - [342] = {"342", "Blue Cap", "↑ {{Heart}} +1 Health#↑ {{Tears}} +0.7 Tears#↓ {{Shotspeed}} -0.16 Shot speed#{{Heart}} Heals 1 heart"}, -- Blue Cap + [342] = {"342", "Blue Cap", "↑ {{Heart}} +1 Health#↑ {{Tears}} +0.7 Tears#↓ {{Shotspeed}} -0.16 Shot speed#{{HealingRed}} Heals 1 heart"}, -- Blue Cap [344] = {"344", "Match Book", "{{BlackHeart}} +1 Black Heart#{{Bomb}} Spawns 3 bombs#{{Trinket41}} Spawns Match Stick"}, -- Match Book [345] = {"345", "Synthoil", "↑ {{Damage}} +1 Damage#↑ {{Range}} +2.5 Range"}, -- Synthoil - [346] = {"346", "A Snack", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart"}, -- A Snack + [346] = {"346", "A Snack", "↑ {{Heart}} +1 Health#{{HealingRed}} Heals 1 heart"}, -- A Snack [349] = {"349", "Wooden Nickel", "{{Coin}} 59% chance to spawn a random coin"}, -- Wooden Nickel [352] = {"352", "Glass Cannon", "{{Damage}} Shoots a large piercing spectral tear that does 10x Isaac's damage#{{Warning}} While held, taking damage:#↓ Removes an extra 2 hearts of health#↓ Breaks the cannon for a few rooms#↑ {{Range}} +1.5 Range and leaves a blood trail for the room#The extra damage can't kill Isaac#Self-damage does not trigger the effect"}, -- Glass Cannon - [354] = {"354", "Crack Jacks", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart#{{Trinket}} Spawns a trinket"}, -- Crack Jacks + [354] = {"354", "Crack Jacks", "↑ {{Heart}} +1 Health#{{HealingRed}} Heals 1 heart#{{Trinket}} Spawns a trinket"}, -- Crack Jacks [355] = {"355", "Mom's Pearls", "↑ {{Range}} +2.5 Range#↑ {{Luck}} +1 Luck#{{SoulHeart}} +1 Soul Heart"}, -- Mom's Pearls [360] = {"360", "Incubus", "Shoots tears with the same effects as Isaac#{{Damage}} Deals 75% of Isaac's damage"}, -- Incubus [365] = {"365", "Lost Fly", "Moves along walls/obstacles in the room#Deals 30 contact damage per second#Nearby enemies target the fly"}, -- Lost Fly @@ -209,7 +209,7 @@ local repCollectibles={ [451] = {"451", "Tarot Cloth", "{{Card}} Spawns a card#{{Card}} Tarot card effects are doubled or enhanced"}, -- Tarot Cloth [453] = {"453", "Compound Fracture", "↑ {{Range}} +1.5 Range#Tears shatter into 1-3 bone shards upon hitting anything"}, -- Compound Fracture [455] = {"455", "Dad's Lost Coin", "↑ {{Range}} +2.5 Range#{{Luck}} Spawns a Lucky Penny"}, -- Dad's Lost Coin - [456] = {"456", "Midnight Snack", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart"}, -- Midnight Snack + [456] = {"456", "Midnight Snack", "↑ {{Heart}} +1 Health#{{HealingRed}} Heals 1 heart"}, -- Midnight Snack [459] = {"459", "Sinus Infection", "20% chance to shoot a sticky booger#{{Damage}} Boogers deal Isaac's damage once a second and stick for 10 seconds#{{Luck}} Not affected by luck"}, -- Sinus Infection [462] = {"462", "Eye of Belial", "↑ {{Range}} +1.5 Range#Piercing tears#Hitting an enemy makes the tear homing and doubles its damage"}, -- Eye of Belial [464] = {"464", "Glyph of Balance", "{{SoulHeart}} +2 Soul Hearts#Room clear rewards and champion enemy drops become whatever pickup Isaac needs the most"}, -- Glyph of Balance @@ -257,13 +257,13 @@ local repCollectibles={ [564] = {"564", "A Bar of Soap", "↑ {{Tears}} +0.5 Tears#↑ {{Shotspeed}} +0.2 Shot speed"}, -- A Bar of Soap [565] = {"565", "Blood Puppy", "Chases enemies#After killing 15 enemies, it deals more damage, spawns a half Red Heart every 10 kills, but tries to hurt Isaac#After killing 40 enemies, it deals even more damage, spawns full Red Hearts, and can destroy rocks#Dealing enough damage to it returns it to its first phase"}, -- Blood Puppy [566] = {"566", "Dream Catcher", "{{HalfSoulHeart}} +1 half Soul Heart when entering a new floor#The stage transition nightmare reveals the next floor's boss fight and Treasure Room item"}, -- Dream Catcher - [567] = {"567", "Paschal Candle", "↑ {{Tears}} Clearing a room without taking damage grants +0.4 Fire rate#Caps at +2 Fire rate {{ColorSilver}}(5 rooms)"}, -- Paschal Candle + [567] = {"567", "Paschal Candle", "↑ {{Tears}} Clearing a room without taking damage grants +0.4 Fire rate#Caps at +2 Fire rate {{ColorSilver}}(5 rooms){{CR}}"}, -- Paschal Candle [568] = {"568", "Divine Intervention", "Double-tapping a fire key creates a shield#The shield lasts 1 second, pushes enemies away and reflects enemy projectiles and lasers"}, -- Divine Intervention [569] = {"569", "Blood Oath", "{{Warning}} Entering a new floor drains all of Isaac's Red Hearts, but grants speed and damage bonuses for each heart lost#Each half heart lost counts as an individual hit for on-hit effects"}, -- Blood Oath [570] = {"570", "Playdough Cookie", "Each of Isaac's tears have a different color and status effect"}, -- Playdough Cookie [571] = {"571", "Orphan Socks", "↑ {{Speed}} +0.3 Speed#↑ {{SoulHeart}} +2 Soul Hearts#Immune to creep and floor spikes"}, -- Orphan Socks [572] = {"572", "Eye of the Occult", "↑ {{Damage}} +1 Damage#↑ {{Range}} +2 Range#↓ {{Shotspeed}} -0.16 Shot speed#Isaac's tears can be controlled in mid-air"}, -- Eye of the Occult - [573] = {"573", "Immaculate Heart", "↑ {{Heart}} +1 Health#↑ {{Damage}} x1.2 Damage multiplier#{{Heart}} Full health#20% chance to shoot an extra orbiting spectral tear"}, -- Immaculate Heart + [573] = {"573", "Immaculate Heart", "↑ {{Heart}} +1 Health#↑ {{Damage}} x1.2 Damage multiplier#{{HealingRed}} Full health#20% chance to shoot an extra orbiting spectral tear"}, -- Immaculate Heart [574] = {"574", "Monstrance", "Isaac is surrounded by a damaging aura#The closer enemies are to Isaac, the more damage the aura deals to them"}, -- Monstrance [575] = {"575", "The Intruder", "{{Slow}} Buries itself in Isaac's head and shoots 4 extra slowing tears that deal 1.5 damage#Taking damage can make the spider exit the head and chase enemies"}, -- The Intruder [576] = {"576", "Dirty Mind", "All Dip (small poop) enemies are friendly#Destroying poop spawns 1-4 Dips#Dip type depends on the poop type#Rocks may be replaced with poop"}, -- Dirty Mind @@ -281,10 +281,10 @@ local repCollectibles={ [588] = {"588", "Sol", "{{BossRoom}} Reveals the location of the Boss Room#{{Timer}} When the floor boss is defeated, receive for the floor:#↑ {{Damage}} +3 Damage#↑ {{Luck}} +1 Luck#{{Card20}} The Sun effect#{{Battery}} Fully recharges the active item#{{CurseBlind}} Removes any curses"}, -- Sol [589] = {"589", "Luna", "Adds an extra {{SecretRoom}} Secret Room and {{SuperSecretRoom}} Super Secret Room to each floor#Reveals one Secret Room each floor#{{Timer}} Secret Rooms contain a beam of light that grant for the floor:#↑ {{Tears}} +0.5 Fire rate#↑ {{Tears}} Additional +0.5 Fire rate from the first beam per floor#{{HalfSoulHeart}} Half a Soul Heart"}, -- Luna [590] = {"590", "Mercurius", "↑ {{Speed}} +0.4 Speed#Most doors stay permanently open"}, -- Mercurius - [591] = {"591", "Venus", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart#{{Charm}} Charms nearby enemies"}, -- Venus + [591] = {"591", "Venus", "↑ {{Heart}} +1 Health#{{HealingRed}} Heals 1 heart#{{Charm}} Charms nearby enemies"}, -- Venus [592] = {"592", "Terra", "↑ {{Damage}} +1 Damage#Replaces Isaac's tears with rocks#Rocks deal variable damage, can destroy obstacles and have increased knockback"}, -- Terra [593] = {"593", "Mars", "Double-tapping a movement key makes Isaac dash#{{Damage}} During a dash, Isaac is invincible and deals 4x his damage +8#{{Timer}} 3 seconds cooldown"}, -- Mars - [594] = {"594", "Jupiter", "↑ {{EmptyHeart}} +2 Empty heart containers#↓ {{Speed}} -0.3 Speed#{{HalfHeart}} Heals half a heart#{{Speed}} Speed builds up to +0.5 while standing still#{{Poison}} Moving releases poison clouds#{{Poison}} Poison immunity"}, -- Jupiter + [594] = {"594", "Jupiter", "↑ {{EmptyHeart}} +2 Empty heart containers#↓ {{Speed}} -0.3 Speed#{{HealingRed}} Heals half a heart#{{Speed}} Speed builds up to +0.5 while standing still#{{Poison}} Moving releases poison clouds#{{Poison}} Poison immunity"}, -- Jupiter [595] = {"595", "Saturnus", "Entering a room causes 7 tears to orbit Isaac#Those tears last for 13 seconds and deal 1.5x Isaac's damage +5#Enemy projectiles have a chance to orbit Isaac"}, -- Saturnus [596] = {"596", "Uranus", "{{Freezing}} Isaac shoots ice tears that freeze enemies on death#Touching a frozen enemy makes it slide away and explode into 10 ice shards"}, -- Uranus [597] = {"597", "Neptunus", "{{Tears}} Not shooting builds up a tear bonus over 3 seconds#The tear bonus decreases as Isaac shoots"}, -- Neptunus @@ -304,14 +304,14 @@ local repCollectibles={ [611] = {"611", "Larynx", "Isaac screams, damages and knocks back nearby enemies#The scream gets stronger the more charges the item has"}, -- Larynx [612] = {"612", "Lost Soul", "Dies in one hit and respawns at the start of the next floor#If it is brought alive to the next floor, it can spawn:#{{SoulHeart}} 3 Soul Hearts#{{EternalHeart}} 2 Eternal Hearts#{{TreasureRoom}} A Treasure Room item#{{AngelRoom}} An Angel Room item"}, -- Lost Soul [613] = {"613", "", ""}, - [614] = {"614", "Blood Bombs", "↑ {{Heart}} +1 Health#{{Heart}} Heals 4 hearts#{{HalfHeart}} If Isaac has no bombs, one can be placed at the cost of half a heart#Isaac's bombs leave red creep#"}, -- Blood Bombs + [614] = {"614", "Blood Bombs", "↑ {{Heart}} +1 Health#{{HealingRed}} Heals 4 hearts#{{HalfHeart}} If Isaac has no bombs, one can be placed at the cost of half a heart#Isaac's bombs leave red creep#"}, -- Blood Bombs [615] = {"615", "Lil Dumpy", "Deflects an enemy or projectile right before Isaac would take damage from it#Chance to deflect projectiles near it#Needs to be touched after deflecting to be reactivated"}, -- Lil Dumpy [616] = {"616", "Bird's Eye", "8% chance to shoot a red fire that blocks enemy shots and deals contact damage#{{Luck}} 50% chance at 10 luck#Fires disappear after blocking 4 shots, dealing damage 4 times or after 10 seconds"}, -- Bird's Eye [617] = {"617", "Lodestone", "{{Magnetize}} 17% chance to shoot magnetizing tears#{{Luck}} 100% chance at 5 luck#Magnetized enemies attract nearby pickups, projectiles and enemies"}, -- Lodestone [618] = {"618", "Rotten Tomato", "{{Bait}} 17% chance to shoot tears that mark enemies#{{Luck}} 100% chance at 5 luck#Marked enemies are targeted by other enemies"}, -- Rotten Tomato [619] = {"619", "Birthright", "Has a different effect for each character"}, -- Birthright [620] = {"620", "", ""}, - [621] = {"621", "Red Stew", "↑ {{Damage}} +21.6 Damage#{{Heart}} Full health#The damage up wears off over 3 minutes#Killing enemies while the effect is active extends it"}, -- Red Stew + [621] = {"621", "Red Stew", "↑ {{Damage}} +21.6 Damage#{{HealingRed}} Full health#The damage up wears off over 3 minutes#Killing enemies while the effect is active extends it"}, -- Red Stew [622] = {"622", "Genesis", "{{Warning}} SINGLE USE {{Warning}}#Removes all of Isaac's items and pickups#Teleports Isaac to a bedroom with pickups and chests#For every item removed, Isaac can choose between 3 items from the same pool#Leaving the bedroom takes Isaac to the next floor"}, -- Genesis [623] = {"623", "Sharp Key", "{{Key}} +5 Keys#Throws one of Isaac's keys in the direction he shoots#Thrown keys deal damage, destroy obstacles, and open doors#Enemies killed with keys can spawn the contents of a chest, including items"}, -- Sharp Key [624] = {"624", "Booster Pack", "{{Card}} Spawns 5 random cards"}, -- Booster Pack @@ -354,12 +354,12 @@ local repCollectibles={ [661] = {"661", "Quints", "Killing an enemy spawns a stationary familiar in its place#Caps at 5 familiars"}, -- Quints [662] = {"662", "", ""}, [663] = {"663", "Tooth and Nail", "1 second of invincibility every 6 seconds#Isaac flashes right before the effect triggers"}, -- Tooth and Nail - [664] = {"664", "Binge Eater", "↑ {{Heart}} +1 Health#{{Heart}} Full health#Food items heal 2 hearts#Item pedestals cycle between their item and a food item#Picking up a food item grants:#↑ {{Damage}} Temporary +3.6 damage#↑ 2 Permanent stat ups (depending on the food)#↓ {{Speed}} -0.03 speed"}, -- Binge Eater + [664] = {"664", "Binge Eater", "↑ {{Heart}} +1 Health#{{HealingRed}} Full health#Item pedestals cycle between their item and a food item#Picking up a food item grants:#{{HealingRed}} Heal 2 hearts#↑ {{Damage}} Temporary +3.6 damage#↑ 2 permanent stat ups (depending on the food)#↓ {{Speed}} -0.03 speed"}, -- Binge Eater [665] = {"665", "Guppy's Eye", "Reveals the contents of {{Chest}} chests, {{GrabBag}} sacks, shopkeepers, and fireplaces before they're opened or destroyed"}, -- Guppy's Eye [666] = {"666", "", ""}, [667] = {"667", "Strawman", "{{Bomb}} +1 Bomb#{{Player14}} Spawns Keeper as a second character#When he dies, spawns blue spiders and permanently removes Strawman and any item that he has picked up from the inventory#{{DevilRoom}} Devil Room items cost coins while Strawman is alive#{{Warning}} Strawman can pick up story items"}, -- Strawman [668] = {"668", "Dad's Note", "Begins the Ascent#Trinkets left in previous {{TreasureRoom}} Treasure or {{BossRoom}} Boss Rooms turn into {{Card78}} Cracked Keys"}, -- Dad's Note - [669] = {"669", "Sausage", "↑ {{Heart}} +1 Health#↑ {{Speed}} +0.2 Speed#↑ {{Tears}} +0.5 Tears#↑ {{Damage}} +0.5 Damage#↑ {{Range}} +2.5 Range#↑ {{Shotspeed}} +0.16 Shot speed#↑ {{Luck}} +1 Luck#{{Heart}} Full health#↑ {{AngelDevilChance}} +6.9% Devil/Angel Room chance#↑ {{PlanetariumChance}} +6.9% Planetarium chance"}, -- Sausage + [669] = {"669", "Sausage", "↑ {{Heart}} +1 Health#↑ {{Speed}} +0.2 Speed#↑ {{Tears}} +0.5 Tears#↑ {{Damage}} +0.5 Damage#↑ {{Range}} +2.5 Range#↑ {{Shotspeed}} +0.16 Shot speed#↑ {{Luck}} +1 Luck#{{HealingRed}} Full health#↑ {{AngelDevilChance}} +6.9% Devil/Angel Room chance#↑ {{PlanetariumChance}} +6.9% Planetarium chance"}, -- Sausage [670] = {"670", "Options?", "Allows Isaac to choose from two different room clear rewards"}, -- Options? [671] = {"671", "Candy Heart", "↑ Healing with {{Heart}} Red Hearts grants random permanent stat ups#{{Heart}} Spawns a Red Heart"}, -- Candy Heart [672] = {"672", "A Pound of Flesh", "{{DevilRoom}} Devil Room items cost coins#{{Shop}} Shop items cost hearts#Consumables in Shops are surrounded by spikes"}, -- A Pound of Flesh @@ -397,7 +397,7 @@ local repCollectibles={ [704] = {"704", "Berserk!", "{{Battery}} Charges with damage dealt#{{Timer}} Receive for 5 seconds:#↑ {{Speed}} +0.4 Speed#↓ {{Tears}} x0.5 Fire rate multiplier#↑ {{Tears}} +2 Fire rate#↑ {{Damage}} +3 Damage#Restricts attacks to a melee that reflects shots#{{Timer}} Each kill increases the duration by 1 second and grants brief invincibility"}, -- Berserk! [705] = {"705", "Dark Arts", "{{Timer}} Receive for 1 second (or until shooting):↑ {{Speed}} +1 Speed#Isaac can pass through enemies/projectiles and paralyzes them#When the effect ends, damages paralyzed enemies, removes paralyzed projectiles and creates a blast at Isaac's location#The attacks and blast are more powerful the more enemies/projectiles have been hit"}, -- Dark Arts [706] = {"706", "Abyss", "Consumes all item pedestals in the room and spawns a locust familiar for each one#Locusts deal Isaac's damage 2-3 times an attack#Some items spawn a special locust when consumed"}, -- Abyss - [707] = {"707", "Supper", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart"}, -- Supper + [707] = {"707", "Supper", "↑ {{Heart}} +1 Health#{{HealingRed}} Heals 1 heart"}, -- Supper [708] = {"708", "Stapler", "↑ {{Damage}} +1 Damage#All of Isaac's tears are shot from the right eye"}, -- Stapler [709] = {"709", "Suplex!", "Isaac dashes in the direction he moves#Dashing into an enemy or boss picks it up and slams it into the ground#Slam deals damage and spawns rock waves based on Isaac's size#You're invincible during the dash and slam"}, -- Suplex! [710] = {"710", "Bag of Crafting", "Collects up to 8 pickups which cannot be dropped#Using the item with 8 pickups in the bag crafts an item#Item quality is based on the quality of the pickups"}, -- Bag of Crafting @@ -431,14 +431,14 @@ EID:updateDescriptionsViaTable(repCollectibles, EID.descriptions[languageCode].c -- Buffs caused by Binge Eater -- Note: "#" will be replaced with "#{{Collectible664}} " automatically, in order to add Binge eater icon in front of each buff-bulletpoint EID.descriptions[languageCode].bingeEaterBuffs = { - [22] = "↑ {{Tears}} +0.5 Tears#↑ {{Range}} +2.5 Range#↓ {{Speed}} -0.03 Speed", -- Lunch - [23] = "↑ {{Tears}} +0.5 Tears#↑ {{Shotspeed}} +0.2 Shot speed#↓ {{Speed}} -0.03 Speed", -- Dinner - [24] = "↑ {{Damage}} +1 Damage#↑ {{Shotspeed}} +0.2 Shot speed#↓ {{Speed}} -0.03 Speed", -- Dessert - [25] = "↑ {{Range}} +2.5 Range#↑ {{Shotspeed}} +0.2 Shot speed#↓ {{Speed}} -0.03 Speed", -- Breakfast - [26] = "↑ {{Damage}} +1 Damage#↑ {{Range}} +2.5 Range#↓ {{Speed}} -0.03 Speed", -- Rotten Meat - [456] = "↑ {{Damage}} +1 Damage#↑ {{Luck}} +1 Luck#↓ {{Speed}} -0.03 Speed", -- Midnight Snack - [346] = "↑ {{Shotspeed}} +0.2 Shot speed#↑ {{Luck}} +1 Luck#↓ {{Speed}} -0.03 Speed", -- A Snack - [707] = "↑ {{Tears}} +0.5 Tears#↑ {{Luck}} +1 Luck#↓ {{Speed}} -0.03 Speed", -- Supper + [22] = "↑ {{Tears}} +0.5 Tears#↑ {{Range}} +2.5 Range#↑ {{Damage}} Temporary +3.6 damage#↓ {{Speed}} -0.03 Speed", -- Lunch + [23] = "↑ {{Tears}} +0.5 Tears#↑ {{Shotspeed}} +0.2 Shot speed#↑ {{Damage}} Temporary +3.6 damage#↓ {{Speed}} -0.03 Speed", -- Dinner + [24] = "↑ {{Damage}} +1 Damage#↑ {{Shotspeed}} +0.2 Shot speed#↑ {{Damage}} Temporary +3.6 damage#↓ {{Speed}} -0.03 Speed", -- Dessert + [25] = "↑ {{Range}} +2.5 Range#↑ {{Shotspeed}} +0.2 Shot speed#↑ {{Damage}} Temporary +3.6 damage#↓ {{Speed}} -0.03 Speed", -- Breakfast + [26] = "↑ {{Damage}} +1 Damage#↑ {{Range}} +2.5 Range#↑ {{Damage}} Temporary +3.6 damage#↓ {{Speed}} -0.03 Speed", -- Rotten Meat + [346] = "↑ {{Shotspeed}} +0.2 Shot speed#↑ {{Luck}} +1 Luck#↑ {{Damage}} Temporary +3.6 damage#↓ {{Speed}} -0.03 Speed", -- A Snack + [456] = "↑ {{Damage}} +1 Damage#↑ {{Luck}} +1 Luck#↑ {{Damage}} Temporary +3.6 damage#↓ {{Speed}} -0.03 Speed", -- Midnight Snack + [707] = "↑ {{Tears}} +0.5 Tears#↑ {{Luck}} +1 Luck#↑ {{Damage}} Temporary +3.6 damage#↓ {{Speed}} -0.03 Speed", -- Supper } -- Buffs caused by Book of Belial with Judas' Birthright @@ -804,7 +804,7 @@ local repTrinkets={ [107] = {"107", "Crow Heart", "Taking damage depletes Red Hearts before Soul/Black Hearts#{{Warning}} The Red Heart damage can lower your Devil/Angel Room chance"}, -- Crow Heart [110] = {"110", "Silver Dollar", "{{Shop}} Shops appear in the Womb and Corpse"}, -- Silver Dollar [111] = {"111", "Bloody Crown", "{{TreasureRoom}} Treasure Rooms appear in the Womb and Corpse"}, -- Bloody Crown - [119] = {"119", "Stem Cell", "{{Heart}} Entering a new floor heals half of Isaac's empty Red/Bone Hearts#{{HalfHeart}} Heals half a heart minimum"}, -- Stem Cell + [119] = {"119", "Stem Cell", "{{HealingRed}} Entering a new floor heals half of Isaac's empty Red/Bone Hearts#{{HealingRed}} Heals half a heart minimum"}, -- Stem Cell [125] = {"125", "Extension Cord", "Connects all familiars with beams of electricity#The beams deal 6 damage"}, -- Extension Cord [128] = {"128", "Finger Bone", "{{EmptyBoneHeart}} Taking damage has a 4% chance to grant a Bone Heart"}, -- Finger Bone [129] = {"129", "Jawbreaker", "{{Damage}} 10% chance to shoot teeth that deal 3.2x Isaac's damage#{{Luck}} 100% chance at 9 luck"}, -- Jawbreaker @@ -894,9 +894,9 @@ EID.descriptions[languageCode].goldenTrinketEffects = { [46] = { "half a heart", "a heart", "one and a half hearts" }, -- Tick (replace): A full replacement for Golden / Mom's Box / Both, as the Golden version can be removed and only one effect is tripled [53] = { - "Heals {{ColorGold}}2{{CR}} hearts when entering a {{BossRoom}}Boss Room#-{{ColorGold}}30{{CR}}% boss health#{{ColorGold}}Removable!", - "Heals {{ColorGold}}2{{CR}} hearts when entering a {{BossRoom}}Boss Room#-{{ColorGold}}30{{CR}}% boss health#{{Warning}} Once picked up, it can't be removed#Only removeable with {{Trinket41}}Match Stick or gulping", - "Heals {{ColorGold}}3{{CR}} hearts when entering a {{BossRoom}}Boss Room#-{{ColorGold}}30{{CR}}% boss health#{{ColorGold}}Removable!", + "{{HealingRed}} Heals {{ColorGold}}2{{CR}} hearts when entering a {{BossRoom}}Boss Room#-{{ColorGold}}30{{CR}}% boss health#{{ColorGold}}Removable!", + "{{HealingRed}} Heals {{ColorGold}}2{{CR}} hearts when entering a {{BossRoom}}Boss Room#-{{ColorGold}}30{{CR}}% boss health#{{Warning}} Once picked up, it can't be removed#Only removeable with {{Trinket41}}Match Stick or gulping", + "{{HealingRed}} Heals {{ColorGold}}3{{CR}} hearts when entering a {{BossRoom}}Boss Room#-{{ColorGold}}30{{CR}}% boss health#{{ColorGold}}Removable!", }, -- Rainbow Worm (append): With Mom's Box, it gives 2 copies of the temp worm, and doubles 1 of those copies, for triple effect [64] = { "Worm's stat boosts are doubled", "Worm's stat boosts are tripled", "Worm's stat boosts are quadrupled", }, @@ -1059,11 +1059,11 @@ EID:updateDescriptionsViaTable(repPills, EID.descriptions[languageCode].pills) EID.descriptions[languageCode].horsepills={ {"0", "Bad Gas", "{{Poison}} Poisons the entire room"}, -- Bad Gas - {"1", "Bad Trip", "{{Heart}} Deals 2 hearts of damage to Isaac#Becomes a Full Health horse pill (+3 Soul Hearts) at 1 heart or less"}, -- Bad Trip + {"1", "Bad Trip", "{{Warning}} Deals 2 hearts of damage to Isaac#Becomes a Full Health horse pill (+3 Soul Hearts) at 1 heart or less"}, -- Bad Trip {"2", "Balls of Steel", "{{SoulHeart}} +4 Soul Hearts"}, -- Balls of Steel {"3", "Bombs are Key", "Swaps Isaac's number of {{Bomb}} bombs and {{Key}} keys#Increases bomb and key count by 50%#Golden bombs and keys are also swapped"}, -- Bombs are Key {"4", "Explosive Diarrhea", "Spawns a few homing Mega Troll Bombs"}, -- Explosive Diarrhea - {"5", "Full Health", "{{SoulHeart}} +3 Soul Hearts#{{Heart}} Full Health"}, -- Full Health + {"5", "Full Health", "{{SoulHeart}} +3 Soul Hearts#{{HealingRed}} Full health"}, -- Full Health {"6", "Health Down", "↓ {{EmptyHeart}} -2 Health#Becomes a Health Up horse pill at 0 or 1 heart containers"}, -- Health Down {"7", "Health Up", "↑ {{EmptyHeart}} +2 Empty heart containers"}, -- Health Up {"8", "I Found Pills", "No effect"}, -- I Found Pills @@ -1094,7 +1094,7 @@ EID.descriptions[languageCode].horsepills={ {"33", "One makes you small", "Greatly decreases Isaac's size#Also decreases his hitbox's size"}, -- One makes you small {"34", "Infested!", "Spawns 2 blue spiders for each poop in the room"}, -- Infested! {"35", "Infested?", "Spawn 2 blue spiders for each enemy in the room#Spawns 2-6 blue spiders if there are no enemies in the room"}, -- Infested? - {"36", "Power Pill!", "{{Timer}} Receive for the room:#↑ {{Damage}} +7 Damage#↑ {{Range}} +3 Range#{{Timer}} Receive for 6.5 seconds:#Invincibility#Isaac can't shoot but deals 40 contact damage per second#{{HalfHeart}} Eating 2 enemies heals half a heart#{{Fear}} Fears all enemies in the room"}, -- Power Pill! + {"36", "Power Pill!", "{{Timer}} Receive for the room:#↑ {{Damage}} +7 Damage#↑ {{Range}} +3 Range#{{Timer}} Receive for 6.5 seconds:#Invincibility#Isaac can't shoot but deals 40 contact damage per second#{{HealingRed}} Eating 2 enemies heals half a heart#{{Fear}} Fears all enemies in the room"}, -- Power Pill! {"37", "Retro Vision", "Pixelates the screen for 90 seconds"}, -- Retro Vision {"38", "Friends Till The End!", "Spawns 6 blue flies"}, -- Friends Till The End! {"39", "X-Lax", "Spawns a pool of long lasting slippery creep"}, -- X-Lax @@ -1103,7 +1103,7 @@ EID.descriptions[languageCode].horsepills={ {"42", "I'm Excited!!", "Speeds up Isaac and all enemies in the room#Triggers again after 30 and 60 seconds"}, --I'm Excited!! {"43", "Gulp!", "Consumes Isaac's trinket and grants its effects permanently"}, -- Gulp! {"44", "Horf!", "{{Collectible149}} Shoots a cluster of Ipecac tears"}, -- Horf! - {"45", "Feels like I'm walking on sunshine!", "{{Timer}} Receive for 6.5 seconds:#Invincibility#Isaac can't shoot but deals 40 contact damage per second#{{HalfHeart}} Eating 2 enemies heals half a heart#{{Fear}} Fears all enemies in the room"}, -- Feels like I'm walking on sunshine! + {"45", "Feels like I'm walking on sunshine!", "{{Timer}} Receive for 6.5 seconds:#Invincibility#Isaac can't shoot but deals 40 contact damage per second#{{HealingRed}} Eating 2 enemies heals half a heart#{{Fear}} Fears all enemies in the room"}, -- Feels like I'm walking on sunshine! {"46", "Vurp!", "Spawns the last pill Isaac used as a horse pill"}, -- Vurp! {"47", "Shot speed Down", "↓ {{Shotspeed}} -0.3 Shot speed"}, -- Shot speed Down {"48", "Shot speed Up", "↑ {{Shotspeed}} +0.3 Shot speed"}, -- Shot speed Up @@ -1192,14 +1192,11 @@ EID.descriptions[languageCode].birthright ={ ---------- Glitched Item Descriptions ---------- EID.descriptions[languageCode].GlitchedItemText = { - -- This will be appended to words to pluralize them, make it "" to not pluralize - pluralize = "s", - -- Item Config info AddBlackHearts = "{{BlackHeart}} {1} Black Heart", AddBombs = "{{Bomb}} {1} Bomb", AddCoins = "{{Coin}} {1} Coin", - AddHearts = "{{Heart}} Heals {1} heart", + AddHearts = "{{HealingRed}} Heals {1} heart", AddKeys = "{{Key}} {1} Key", AddMaxHearts = "{{EmptyHeart}} {1} Heart container", AddSoulHearts = "{{SoulHeart}} {1} Soul Heart", @@ -1357,7 +1354,6 @@ local repConditions = { ["5.100.188"] = "Deals 7.5 damage as {1}", -- Cain + Abel ["5.100.360"] = "Deals 100% damage as {1}", -- Lilith + Incubus ["5.100.728"] = "Deals 100% damage as {1}", -- Lilith + Gello - ["5.350.156"] = "+1 Coin container for {1}", -- Mother's Kiss ["5.100.230 (Keeper)"] = "{1} is left with 1 coin container", -- Abaddon ["5.100.230 (Bethany)"] = "{1} is left with half a heart", -- Abaddon ["5.100.230 (Tainted Bethany)"] = "{1} doesn't lose her blood charges", -- Abaddon @@ -1370,6 +1366,10 @@ local repConditions = { ["5.100.711"] = {"Entering", "{{Player38}} Flips Lazarus to the other state#Entering"}, -- Tlaz + Flip ["5.100.710"] = {"Upon use, attacking swipes the bag in the chosen direction#Swiping at a pickup puts it in the bag#The Bag's contents can be shifted with {{ButtonRT}} to replace specific pickups when full#Holding the Use key when the bag is full crafts the previewed item#Item quality is based on the quality of the pickups"}, -- Tcain Bag of Crafting + ["Mother's Kiss Soul"] = {"{{SoulHeart}} +1 Soul Heart while held"}, + ["Mother's Kiss Bone"] = {"{{BoneHeart}} +1 Bone Heart while held"}, + ["Mother's Kiss Coin"] = {"{{CoinHeart}} +1 Coin Heart while held#Increases Coin Heart cap by 1"}, + -- Vibrant/Dim Bulb ["5.350.100 (Bethany)"] = "Works with {1}'s soul charges", ["5.350.100 (Tainted Bethany)"] = "Works with {1}'s blood charges", @@ -1401,7 +1401,7 @@ local repConditions = { ["1000.76.0"] = "{{Warning}} Only rerolls the character that activates the dice", -- Dice Room 1 (Co-op) ["1000.76.5"] = "{{Warning}} All characters' items will be rerolled in co-op!", -- Dice Room 6 (Co-op) - ["5.100.45"] = "{{HalfHeart}} Heals other players for half a heart", -- Yum Heart (Co-Op) + ["5.100.45"] = "Heals other players for half a heart", -- Yum Heart (Co-Op) ["5.350.125"] = "Beams also arc between players", -- Extension Cord (Co-Op) ["5.100.245"] = "Removes the fire rate penalty of {1}", -- 20/20 + Mutant Spider, The Inner Eye, Polyphemus @@ -1445,7 +1445,8 @@ local repConditions = { ["White Poop Jar"] = "Spawns White Poop on 1 charge use", ["Golden Poop Jar"] = "Chance to spawn Golden Poop on 1 charge use", - + + ["Binge Eater Healing"] = {"Heals 1 heart", "Heals {{BlinkGreen}}2{{CR}} hearts", "+4 blood charges", "+{{BlinkGreen}}6{{CR}} blood charges"}, } EID:updateDescriptionsViaTable(repConditions, EID.descriptions[languageCode].ConditionalDescs) diff --git a/descriptions/rep/fr.lua b/descriptions/rep/fr.lua index b1658b4a..1edcf282 100644 --- a/descriptions/rep/fr.lua +++ b/descriptions/rep/fr.lua @@ -1241,9 +1241,6 @@ EID.descriptions[languageCode].horsepills={ ---------- Glitched Item Descriptions ---------- EID.descriptions[languageCode].GlitchedItemText = { - -- This will be appended to words to pluralize them, make it "" to not pluralize - pluralize = "", - -- Item Config info AddBlackHearts = "{{BlackHeart}} {1} cœur(s) noir(s)", AddBombs = "{{Bomb}} {1} bombe(s)", diff --git a/descriptions/rep/ja_jp.lua b/descriptions/rep/ja_jp.lua index 6ab0b3ca..29cf2583 100644 --- a/descriptions/rep/ja_jp.lua +++ b/descriptions/rep/ja_jp.lua @@ -1096,9 +1096,6 @@ EID.descriptions[languageCode].horsepills={ ---------- Glitched Item Descriptions ---------- EID.descriptions[languageCode].GlitchedItemText = { - -- This will be appended to words to pluralize them, make it "" to not pluralize - pluralize = "", - -- Item Config info AddBlackHearts = "{1} 黒ハート", AddBombs = "{1} 爆弾", diff --git a/descriptions/rep/ko_kr.lua b/descriptions/rep/ko_kr.lua index 4f82fa8d..608475d3 100644 --- a/descriptions/rep/ko_kr.lua +++ b/descriptions/rep/ko_kr.lua @@ -1189,9 +1189,6 @@ EID.descriptions[languageCode].horsepills={ ---------- Glitched Item Descriptions ---------- EID.descriptions[languageCode].GlitchedItemText = { - -- This will be appended to words to pluralize them, make it "" to not pluralize - pluralize = "", - -- Item Config info AddBlackHearts = "{{BlackHeart}}블랙하트 {1}", AddBombs = "{{Bomb}}폭탄 {1}", diff --git a/descriptions/rep/pt_br.lua b/descriptions/rep/pt_br.lua index 2dc2c776..a8862b1c 100644 --- a/descriptions/rep/pt_br.lua +++ b/descriptions/rep/pt_br.lua @@ -994,9 +994,6 @@ EID.descriptions[languageCode].horsepills={ ---------- Glitched Item Descriptions ---------- EID.descriptions[languageCode].GlitchedItemText = { - -- This will be appended to words to pluralize them, make it "" to not pluralize - pluralize = "", - -- Item Config info AddBlackHearts = "{{BlackHeart}} {1} Coração Negro", AddBombs = "{{Bomb}} {1} Bomba", diff --git a/descriptions/rep/ru.lua b/descriptions/rep/ru.lua index 5695d646..5395a8c9 100644 --- a/descriptions/rep/ru.lua +++ b/descriptions/rep/ru.lua @@ -996,9 +996,6 @@ EID.descriptions[languageCode].horsepills={ ---------- Glitched Item Descriptions ---------- EID.descriptions[languageCode].GlitchedItemText = { - -- This will be appended to words to pluralize them, make it "" to not pluralize - pluralize = "", - -- Item Config info AddBlackHearts = "{{BlackHeart}} {1} чёрных сердец", AddBombs = "{{Bomb}} {1} бомб", diff --git a/descriptions/rep/spa.lua b/descriptions/rep/spa.lua index bc72b075..3398ea69 100644 --- a/descriptions/rep/spa.lua +++ b/descriptions/rep/spa.lua @@ -1038,9 +1038,6 @@ EID.descriptions[languageCode].horsepills={ ---------- Glitched Items Descriptions ---------- EID.descriptions[languageCode].GlitchedItemText = { - -- This will be appended to words to pluralize them, make it "" to not pluralize - pluralize = "", - -- Item Config info AddBlackHearts = "{{BlackHeart}} {1} Corazón/zones negro/s", AddBombs = "{{Bomb}} {1} Bomba/s", diff --git a/descriptions/rep/uk_ua.lua b/descriptions/rep/uk_ua.lua index 08ffe80b..6180d3bb 100644 --- a/descriptions/rep/uk_ua.lua +++ b/descriptions/rep/uk_ua.lua @@ -1099,9 +1099,6 @@ EID.descriptions[languageCode].horsepills={ ---------- Glitched Item Descriptions ---------- EID.descriptions[languageCode].GlitchedItemText = { - -- This will be appended to words to pluralize them, make it "" to not pluralize - pluralize = "", - -- Item Config info AddBlackHearts = "{{BlackHeart}} {1} Чорних сердець", AddBombs = "{{Bomb}} {1} бомб", diff --git a/descriptions/rep/zh_cn.lua b/descriptions/rep/zh_cn.lua index ef046411..e75bf253 100644 --- a/descriptions/rep/zh_cn.lua +++ b/descriptions/rep/zh_cn.lua @@ -1004,9 +1004,6 @@ EID.descriptions[languageCode].horsepills={ ---------- Glitched Item Descriptions ---------- EID.descriptions[languageCode].GlitchedItemText = { - -- This will be appended to words to pluralize them, make it "" to not pluralize - pluralize = "", - -- Item Config info AddBlackHearts = "{1}黑心", AddBombs = "{1}炸弹", diff --git a/features/eid_api.lua b/features/eid_api.lua index 07b2fc26..f7c0928b 100644 --- a/features/eid_api.lua +++ b/features/eid_api.lua @@ -1167,7 +1167,8 @@ end -- Adds Description object modifiers. -- Used for altering descriptions. Example: Spindown dice, Tarot Cloth, ... -function EID:addDescriptionModifier(modifierName, condition, callback) +function EID:addDescriptionModifier(modifierName, condition, callback, position) + position = position or #EID.DescModifiers + 1 for _,v in ipairs(EID.DescModifiers) do if v["name"] == modifierName then v["condition"] = condition @@ -1175,7 +1176,7 @@ function EID:addDescriptionModifier(modifierName, condition, callback) return end end - table.insert(EID.DescModifiers, { + table.insert(EID.DescModifiers, position, { name = modifierName, condition = condition, callback = callback @@ -2411,6 +2412,21 @@ function EID:CopyTable(orig) end return copy end +-- super simple table concatenation: https://www.tutorialspoint.com/concatenation-of-tables-in-lua-programming +function EID:ConcatTables(t1, t2) + for i = 1, #t2 do + t1[#t1 + 1] = t2[i] + end + return t1 +end + +-- thing to fix find/replace pairs with hyphens (like "1-2") or pluses (like +1 Health) breaking because of special characters +-- https://stackoverflow.com/questions/29072601/lua-string-gsub-with-a-hyphen +function EID:SimpleReplace(str, what, with, count) + what = string.gsub(what, "[%(%)%.%+%-%*%?%[%]%^%$%%]", "%%%1") -- escape pattern + with = string.gsub(with, "[%%]", "%%%%") -- escape replacement + return string.gsub(str, what, with, count) +end -- simple decimal rounding, instead of just floor or ceil function EID:SimpleRound(num, dp) @@ -2425,3 +2441,24 @@ function EID:ArrayContains(t, value) end return false end + + +-- Find the closest player to the given entity +function EID:ClosestPlayerTo(entity) + local closestDist = 9999999 + local closestPlayer = EID.player + local numPlayers = game:GetNumPlayers() + if EID.InsideItemReminder then return EID.ItemReminderPlayerEntity end + if entity == nil or numPlayers == 1 then return closestPlayer end + + for i = 1, #EID.coopAllPlayers do + local player = EID.coopAllPlayers[i] + local dist = player.Position:Distance(entity.Position) + if dist < closestDist then + closestDist = dist + closestPlayer = player + end + end + + return closestPlayer +end diff --git a/features/eid_conditionals.lua b/features/eid_conditionals.lua index ae6cd8a3..3b78c427 100644 --- a/features/eid_conditionals.lua +++ b/features/eid_conditionals.lua @@ -1,8 +1,11 @@ local game = Game() EID.DescriptionConditions = {} --- table of collectible IDs to periodically check if the players own. used by eid_modifiers.lua +-- table of collectible IDs to periodically check if the players own. used by eid_modifiers.lua too EID.collectiblesToCheck = {} +-- co-op players that have a substantially different effect than the closest player are tracked in this table, to append "Different effect for X" +-- added to and applied by eid_modifiers.lua +EID.DifferentEffectPlayers = {} require("features.eid_conditionals_funcs") @@ -51,6 +54,7 @@ if EID.isRepentance then EID:AddItemConditional("5.100", 706, nil, { locTable = "abyssSynergies", lineColor = "ColorRed" }, false) -- Abyss (no item reminder) EID:AddItemConditional("5.100", 59, nil, { locTable = "bookOfBelialBuffs" }) -- Belial Birthright EID:AddItemConditional("5.100", 664, nil, { locTable = "bingeEaterBuffs" }) -- Binge Eater + EID:AddItemConditional({22, 23, 24, 25, 26, 346, 456, 707}, 664, "Binge Eater Healing") -- Binge Eater (Heals 2 hearts) end @@ -79,32 +83,30 @@ EID:AddConditional("5.350.23", function() return EID:HaveNotUnlockedAchievement( EID:AddConditional(297, function() return not EID:HaveNotUnlockedAchievement(366) end) -- Pandora's Box unlocking Moving Box +local SoulBlackChars = EID:ConcatTables(EID.SpecialHeartPlayers["Soul"],EID.SpecialHeartPlayers["Black"]) ------ NO RED HEALTH PLAYERS ------ -EID:AddConditional({442, "5.350.107", "5.350.119"}, EID.CheckForNoRedHealthPlayer, "No Red") -- Dark Prince's Crown, Crow Heart, Stem Cell +EID:AddClosestPlayerConditional({442, "5.350.46", "5.350.107", "5.350.119"}, SoulBlackChars, "No Effect Replace", nil, false) -- Dark Prince's Crown, Crow Heart, Stem Cell, Isaac's Fork EID:AddConditional(81, EID.CheckForNoRedHealthPlayer) -- Dead Cat if EID.isRepentance then - EID:AddConditional({569, 671, 676}, EID.CheckForNoRedHealthPlayer, "No Red") -- Blood Oath, Candy Heart, Empty Heart - EID:AddPlayerConditional({671, 676}, 14, "No Effect") -- Candy Heart / Empty Heart + Keeper - EID:AddPlayerConditional(676, 16, "No Effect", nil, false) -- Empty Heart + Forgotten (not Tainted) + EID:AddClosestPlayerConditional({569, 671, 676}, SoulBlackChars, "No Effect Replace", nil, false) -- Blood Oath, Candy Heart, Empty Heart + EID:AddClosestPlayerConditional({671, 676}, 14, "No Effect Replace") -- Candy Heart / Empty Heart + Keeper + EID:AddClosestPlayerConditional(676, 16, "No Effect Replace", nil, false) -- Empty Heart + Forgotten (not Tainted) + + EID:AddClosestPlayerConditional("5.350.156", 14, "Mother's Kiss Coin") -- Mother's Kiss + Keeper + EID:AddClosestPlayerConditional("5.350.156", SoulBlackChars, "Mother's Kiss Soul", nil, false) -- Mother's Kiss + Soul/Black (both give a Soul Heart) + EID:AddClosestPlayerConditional("5.350.156", {16, 17}, "Mother's Kiss Bone", {layer = -1}, false) -- Mother's Kiss + Forgotten (including The Soul) end -for heartName, chars in pairs(EID.SpecialHeartPlayers) do - local c = {} - for charID,_ in pairs(chars) do table.insert(c, charID) end -- convert the lookup table into an array - for itemID, hearts in pairs(EID.HealthUpData) do - if itemID == 92 and (heartName == "Soul" or heartName == "Black") then - EID:AddClosestPlayerConditional(92, c, "Super Bandage " .. heartName, nil, false) - elseif itemID == 226 and (heartName == "Soul" or heartName == "Black") then - EID:AddClosestPlayerConditional(226, c, "Black Lotus " .. heartName, nil, false) - else - EID:AddClosestPlayerConditional(itemID, c, "Red to " .. heartName, nil, false) - end - end -end +EID:AddClosestPlayerConditional(92, EID.SpecialHeartPlayers["Soul"], "Super Bandage Soul", nil, false) +EID:AddClosestPlayerConditional(92, EID.SpecialHeartPlayers["Black"], "Super Bandage Black", nil, false) +EID:AddClosestPlayerConditional(226, EID.SpecialHeartPlayers["Soul"], "Black Lotus Soul", nil, false) +EID:AddClosestPlayerConditional(226, EID.SpecialHeartPlayers["Black"], "Black Lotus Black", nil, false) + if EID.isRepentance then for itemID,charges in pairs(EID.BloodUpData) do EID:AddPlayerConditional(itemID, 36, "Health Up Blood Charges", {variableText = charges}) end + -- todo: some blood ups (cards with tarot cloth) should be increased end @@ -117,6 +119,12 @@ EID:AddPlayerConditional(501, 14) -- Keeper + Greed's Gullet EID:AddPlayerConditional(230, 14, "Keeper") -- Keeper + Abaddon EID:AddPlayerConditional(152, 2, "Technology 2 One Eye") -- Cain + Technology 2 EID:AddPlayerConditional(122, 5, nil, nil, false) -- Eve + Whore of Babylon + +EID:AddClosestPlayerConditional({15, 16, 20, 22, 23, 24, 25, 26, 45, 60, 92, 142, 159, 173, 179, 184, 185, 218, 226, 312, 334, 346, 428, 456, 487, 501, "5.350.14", "5.350.46", "5.350.55", "5.350.56", "5.350.107", "5.350.128"}, 10, "No Effect Replace", {layer = 10000}) -- Useless Lost items +if EID.isRepentance then + EID:AddClosestPlayerConditional({569, 671, 676, 707, "5.350.156", "5.350.168"}, 10, "No Effect Replace", {layer = 10000}) -- Useless Lost items +end + if EID.isRepentance then -- Tainted characters reviving as themselves EID:AddPlayerConditional({ 161, "5.350.28" }, 25, "Tainted Revive") -- Ankh, Broken Ankh @@ -133,7 +141,6 @@ if EID.isRepentance then EID:AddClosestPlayerConditional(642, 10) -- Lost + Magic Skin EID:AddPlayerConditional(694, 14, "Keeper", nil, false) -- Keeper + Heartbreak EID:AddPlayerConditional(694, 33, "Tainted Keeper") -- Tainted Keeper + Heartbreak - EID:AddPlayerConditional("5.350.156", 14) -- Keeper + Mother's Kiss EID:AddPlayerConditional(230, 18, "Bethany", nil, false) -- Bethany + Abaddon EID:AddPlayerConditional(230, 36, "Tainted Bethany") -- Tainted Bethany + Abaddon EID:AddPlayerConditional(245, 14, "Keeper") -- 20/20 + Keeper diff --git a/features/eid_conditionals_funcs.lua b/features/eid_conditionals_funcs.lua index e14aa77e..a01d4ab7 100644 --- a/features/eid_conditionals_funcs.lua +++ b/features/eid_conditionals_funcs.lua @@ -161,7 +161,7 @@ end noFallback: Don't fallback to English if this isn't localized; by default, conditionals don't fallback, to avoid printing English text in unupdated languages usePedestalName: If true, display the pedestal item's name in place of {1} useResult: If true, use the result from the conditional function to find the localization string - layer: A number used in determining the order that conditionals should be checked in, default -1 + layer: A number used in determining the order that conditionals should be checked in, default 0 checkLayers: If true, don't print this condition if a higher layer condition was applied already uniqueID: Only one conditional with the given unique ID will be printed ]] @@ -175,7 +175,7 @@ function EID:AddConditional(IDs, funcText, modText, extraTable) if modText == "" then modText = nil end extraTable = extraTable or {} if extraTable.noFallback == nil then extraTable.noFallback = true end - extraTable.layer = extraTable.layer or -1 + extraTable.layer = extraTable.layer or 0 for _, id in ipairs(IDs) do if type(id) ~= "string" then id = "5.100." .. id end EID.DescriptionConditions[id] = EID.DescriptionConditions[id] or {} @@ -288,25 +288,33 @@ end function EID:ClosestCharCheck(modifierText, playerTypes, includeTainted) if EID.InsideItemReminder or not EID.CurrentConditionalDescObj.Entity then return modifierText end if type(playerTypes) ~= "table" then playerTypes = {playerTypes} end - local closestDist = 9999999 - local closestPlayer = EID.player - for i = 0, game:GetNumPlayers() - 1 do - local player = Isaac.GetPlayer(i) - local dist = player.Position:Distance(EID.CurrentConditionalDescObj.Entity.Position) - if dist < closestDist then - closestDist = dist - closestPlayer = player + local closestPlayer = EID:ClosestPlayerTo(EID.CurrentConditionalDescObj.Entity) + + if EID:ArrayContains(playerTypes, closestPlayer:GetPlayerType()) or (includeTainted and EID:ArrayContains(playerTypes, EID.TaintedToRegularID[closestPlayer:GetPlayerType()])) then + -- The closest player applies the modifier; check for players that don't get this modifier + for i = 1, #EID.coopAllPlayers do + local t = EID.coopAllPlayers[i]:GetPlayerType() + if not (EID:ArrayContains(playerTypes, t) or (includeTainted and EID:ArrayContains(playerTypes, EID.TaintedToRegularID[t]))) then + table.insert(EID.DifferentEffectPlayers, t) + end end + return modifierText end - if EID:ArrayContains(playerTypes, closestPlayer:GetPlayerType()) or (includeTainted and EID:ArrayContains(playerTypes, EID.TaintedToRegularID[closestPlayer:GetPlayerType()])) then return modifierText end - return "Different Effect" + -- The closest player does not apply the modifier; check for players that do get this modifier + for i = 1, #EID.coopAllPlayers do + local t = EID.coopAllPlayers[i]:GetPlayerType() + if EID:ArrayContains(playerTypes, t) or (includeTainted and EID:ArrayContains(playerTypes, EID.TaintedToRegularID[t])) then + table.insert(EID.DifferentEffectPlayers, t) + end + end + return "N/A" end function EID:PlayersHaveGoldenBomb() - for i = 0, game:GetNumPlayers() - 1 do - local player = Isaac.GetPlayer(i) + for i = 1, #EID.coopAllPlayers do + local player = EID.coopAllPlayers[i] if player:HasGoldenBomb() then return true end @@ -349,8 +357,8 @@ function EID:CheckForNoRedHealthPlayer() local player = EID.ItemReminderPlayerEntity return EID.NoRedHeartsPlayerIDs[player:GetPlayerType()] else - for i = 0, game:GetNumPlayers() - 1 do - local player = Isaac.GetPlayer(i) + for i = 1, #EID.coopAllPlayers do + local player = EID.coopAllPlayers[i] if EID.NoRedHeartsPlayerIDs[player:GetPlayerType()] then return true end @@ -364,8 +372,8 @@ function EID:CheckForTaintedPlayer() local player = EID.ItemReminderPlayerEntity return EID.TaintedIDs[player:GetPlayerType()] else - for i = 0, game:GetNumPlayers() - 1 do - local player = Isaac.GetPlayer(i) + for i = 1, #EID.coopAllPlayers do + local player = EID.coopAllPlayers[i] if EID.TaintedIDs[player:GetPlayerType()] then return true end @@ -382,8 +390,8 @@ function EID:CheckForMultipleActives(descObj, onlyChargeablePockets) local id = player:GetPlayerType() if EID.isRepentance and (EID.PocketActivePlayerIDs[id] == 0 or (not onlyChargeablePockets and EID.PocketActivePlayerIDs[id])) then return player:GetActiveItem(2) end else - for i = 0, game:GetNumPlayers() - 1 do - local player = Isaac.GetPlayer(i) + for i = 1, #EID.coopAllPlayers do + local player = EID.coopAllPlayers[i] if player:HasCollectible(534) then return 534 end local id = player:GetPlayerType() if EID.isRepentance and (EID.PocketActivePlayerIDs[id] == 0 or (not onlyChargeablePockets and EID.PocketActivePlayerIDs[id])) then return player:GetActiveItem(2) end @@ -401,8 +409,8 @@ function EID:CheckForPocketActives() local player = EID.ItemReminderPlayerEntity return EID.PocketActivePlayerIDs[player:GetPlayerType()] else - for i = 0, game:GetNumPlayers() - 1 do - local player = Isaac.GetPlayer(i) + for i = 1, #EID.coopAllPlayers do + local player = EID.coopAllPlayers[i] if EID.PocketActivePlayerIDs[player:GetPlayerType()] then return true end end end @@ -473,9 +481,7 @@ function EID:CheckPlayersForActiveChargeType(maxCharge, chargeType, checkPockets if EID.InsideItemReminder then players[1] = EID:ItemReminderGetAllPlayers()[EID.ItemReminderSelectedPlayer + 1] or EID.player else - for i = 0, game:GetNumPlayers() - 1 do - table.insert(players, Isaac.GetPlayer(i)) - end + players = EID.coopAllPlayers end local maxSlot = EID.isRepentance and 1 or 0 if EID.isRepentance and checkPockets then maxSlot = 3 end @@ -506,9 +512,9 @@ function EID:CheckActiveChargeType(itemID, maxCharge, chargeType, requiredCollec return false end --- Check for multiple players existing for items like Yum Heart and Extension Cord, includes J&E (but does it include Forgotten?) +-- Check for multiple players existing for items like Yum Heart and Extension Cord, includes J&E and Strawmen function EID:MultiplePlayerCharacters() - return #EID.coopAllPlayers > 1 + return game:GetNumPlayers() > 1 end -- Check the bestiary/character list if we have REPENTOGON, to help avoid spoilers. Otherwise just return true @@ -535,24 +541,10 @@ end ----- Apply Conditionals ----- --- thing to fix find/replace pairs with hyphens (like "1-2") breaking because hyphen is a special char --- https://stackoverflow.com/questions/29072601/lua-string-gsub-with-a-hyphen -local function replace(str, what, with, count) - what = string.gsub(what, "[%(%)%.%+%-%*%?%[%]%^%$%%]", "%%%1") -- escape pattern - with = string.gsub(with, "[%%]", "%%%%") -- escape replacement - return string.gsub(str, what, with, count) -end -EID.testReplace = replace --- super simple table concatenation: https://www.tutorialspoint.com/concatenation-of-tables-in-lua-programming -local function TableConcat(t1, t2) - for i = 1, #t2 do - t1[#t1 + 1] = t2[i] - end - return t1 -end EID.CurrentConditionalDescObj = nil function EID:applyConditionals(descObj) EID.CurrentConditionalDescObj = descObj + EID.DifferentEffectPlayers = {} EID:CheckPlayersCollectibles() local adjustedSubtype = EID:getAdjustedSubtype(descObj.ObjType, descObj.ObjVariant, descObj.ObjSubType) local typeVar = descObj.ObjType.."."..descObj.ObjVariant -- for general conditions (Tarot Cloth, Book of Virtues) @@ -562,8 +554,8 @@ function EID:applyConditionals(descObj) -- Combine specific+generic conditions into one table (in that order) local conds = {} - if EID.DescriptionConditions[typeVarSub] then TableConcat(conds, EID.DescriptionConditions[typeVarSub]) end - if EID.DescriptionConditions[typeVar] then TableConcat(conds, EID.DescriptionConditions[typeVar]) end + if EID.DescriptionConditions[typeVarSub] then EID:ConcatTables(conds, EID.DescriptionConditions[typeVarSub]) end + if EID.DescriptionConditions[typeVar] then EID:ConcatTables(conds, EID.DescriptionConditions[typeVar]) end table.sort(conds, function(a, b) return a.layer > b.layer end) -- Check every condition we need to check for this item for _, cond in ipairs(conds) do @@ -616,7 +608,7 @@ function EID:applyConditionals(descObj) -- Table with 1 entry = replace elseif #text == 1 then descObj.Description = EID:ReplaceVariableStr(text[1], variableText) - + -- Table with 2+ entries = find and replace pairs -- Entry 1 is replaced with entry 2, entry 3 is replaced with entry 4, etc. -- If there's an odd number of entries, the last one is appended @@ -636,9 +628,9 @@ function EID:applyConditionals(descObj) return replaceWith end end) - -- Basic find+replace for non-numbers + -- Basic find+replace for non-numbers else - descObj.Description = replace(descObj.Description, tostring(toFind), replaceWith, 1) + descObj.Description = EID:SimpleReplace(descObj.Description, tostring(toFind), replaceWith, 1) end else toFind = EID:ReplaceVariableStr(toFind, variableText) diff --git a/features/eid_data.lua b/features/eid_data.lua index 32bba942..caf47654 100644 --- a/features/eid_data.lua +++ b/features/eid_data.lua @@ -1028,18 +1028,25 @@ EID.TaintedIDs = {}; for i = 21, 40 do EID.TaintedIDs[i] = true end EID.NoRedHeartsPlayerIDs = { [4] = true, [10] = true, [17] = true } -- More separated table for more exact data EID.SpecialHeartPlayers = {} -EID.SpecialHeartPlayers["Soul"] = { [4] = true, [17] = true } +EID.SpecialHeartPlayers["Soul"] = { 4, 17 } EID.SpecialHeartPlayers["Black"] = {} -EID.SpecialHeartPlayers["Coin"] = { [14] = true } -EID.SpecialHeartPlayers["Bone"] = { [16] = true } -EID.SpecialHeartPlayers["None"] = { [10] = true } +EID.SpecialHeartPlayers["Coin"] = { 14 } +EID.SpecialHeartPlayers["Bone"] = { 16 } +EID.SpecialHeartPlayers["None"] = { 10 } +-- Lookup table for the type of health each player has +EID.CharacterToHeartType = {}; for i = 0, 17 do EID.CharacterToHeartType[i] = "Red" end +EID.CharacterToHeartType[4] = "Soul"; EID.CharacterToHeartType[10] = "None"; EID.CharacterToHeartType[14] = "Coin"; EID.CharacterToHeartType[16] = "Bone"; EID.CharacterToHeartType[17] = "Soul" + if EID.isRepentance then -- ???, The Lost, Black Judas, The Soul, Tainted Judas, Tainted ???, Tainted Lost, Tainted Forgotten, Tainted Bethany, Tainted Soul EID.NoRedHeartsPlayerIDs = { [4] = true, [10] = true, [12] = true, [17] = true, [24] = true, [25] = true, [31] = true, [35] = true, [36] = true, [40] = true } - EID.SpecialHeartPlayers["Soul"] = { [4] = true, [17] = true, [25] = true, [35] = true, [36] = true, [40] = true } - EID.SpecialHeartPlayers["Black"] = { [12] = true, [24] = true } - EID.SpecialHeartPlayers["Coin"][33] = true - EID.SpecialHeartPlayers["None"][31] = true + EID.SpecialHeartPlayers["Soul"] = { 4, 17, 25, 35, 36, 40 } + EID.SpecialHeartPlayers["Black"] = { 12, 24 } + EID.SpecialHeartPlayers["Coin"] = { 14, 33 } + EID.SpecialHeartPlayers["None"] = { 10, 31 } + + for i = 18, 40 do EID.CharacterToHeartType[i] = "Red" end + EID.CharacterToHeartType[12] = "Black"; EID.CharacterToHeartType[24] = "Black"; EID.CharacterToHeartType[25] = "Soul"; EID.CharacterToHeartType[31] = "None"; EID.CharacterToHeartType[33] = "Coin"; EID.CharacterToHeartType[35] = "Soul"; EID.CharacterToHeartType[36] = "Soul"; EID.CharacterToHeartType[40] = "Soul"; end -- Character IDs that have a pocket active (0 = normal, 1 = timed, 2 = special) @@ -1063,14 +1070,18 @@ if EID.isRepentance then EID.LuckFormulas["5.100.576"] = function(luck) return math.min(luck*0.5 + 6.25, 10) end -- Dirty Mind: Base 6.25%, 10% at 7.5 Luck end --- Number of Soul Hearts a character will get from a Health Up item +-- Number of Health Ups you get from a Health Up item -- (Pill ID is off by 1 because of EID one-indexed pill effects) -EID.HealthUpData = {["5.70.8"] = 1, ["5.70.10"] = 1, [12] = 1, [15] = 1, [16] = 2, [22] = 1, [23] = 1, [24] = 1, [25] = 1, [26] = 1, [92] = 1, [101] = 1, [119] = 1, [121] = 1, [129] = 2, [138] = 1, [176] = 1, [182] = 1, [184] = 1, [189] = 1, [193] = 1, [218] = 1, [219] = 1, [226] = 1, [253] = 1, [307] = 1, [312] = 1, [314] = 1, [334] = 3, [342] = 1, [346] = 1, [354] = 1, [456] = 1 } +EID.HealthUpData = {["5.70.8"] = 1, ["5.70.10"] = 1, ["5.100.12"] = 1, ["5.100.15"] = 1, ["5.100.16"] = 2, ["5.100.22"] = 1, ["5.100.23"] = 1, ["5.100.24"] = 1, ["5.100.25"] = 1, ["5.100.26"] = 1, ["5.100.92"] = 1, ["5.100.101"] = 1, ["5.100.119"] = 1, ["5.100.121"] = 1, ["5.100.129"] = 2, ["5.100.138"] = 1, ["5.100.176"] = 1, ["5.100.182"] = 1, ["5.100.184"] = 1, ["5.100.189"] = 1, ["5.100.193"] = 1, ["5.100.218"] = 1, ["5.100.219"] = 1, ["5.100.226"] = 1, ["5.100.253"] = 1, ["5.100.307"] = 1, ["5.100.312"] = 1, ["5.100.314"] = 1, ["5.100.334"] = 3, ["5.100.342"] = 1, ["5.100.346"] = 1, ["5.100.354"] = 1, ["5.100.456"] = 1, ["5.300.12"] = 1 } +-- Items with a healing effect that can have the healing line removed for non-red HP characters +-- Pyromaniac skipped, its healing line says how it prevents explosion damage +EID.HealingItemData = {["5.100.45"] = true, ["5.100.62"] = true, ["5.100.75"] = true, ["5.100.93"] = true, ["5.100.217"] = true, ["5.100.270"] = true, ["5.100.428"] = true, ["5.350.8"] = true, ["5.350.46"] = true, ["5.350.53"] = true, ["5.350.87"] = true, ["5.350.119"] = true, ["5.300.20"] = true, ["5.300.26"] = true, ["5.70.6"] = true, ["5.70.37"] = true } if EID.isRepentance then - EID.HealthUpData["5.350.156"] = 1; EID.HealthUpData[573] = 1; EID.HealthUpData[591] = 1; EID.HealthUpData[594] = 2 - EID.HealthUpData[614] = 1; EID.HealthUpData[664] = 1; EID.HealthUpData[669] = 1; EID.HealthUpData[707] = 1 + EID.HealthUpData["5.100.573"] = 1; EID.HealthUpData["5.100.591"] = 1; EID.HealthUpData["5.100.594"] = 2; EID.HealthUpData["5.300.59"] = 2 + EID.HealthUpData["5.100.614"] = 1; EID.HealthUpData["5.100.664"] = 1; EID.HealthUpData["5.100.669"] = 1; EID.HealthUpData["5.100.707"] = 1 + EID.HealingItemData["5.100.621"] = true; EID.HealingItemData["5.70.46"] = true; - EID.BloodUpData = {["5.70.10"] = 2, ["5.350.156"] = 2, ["5.300.12"] = 2, ["5.300.59"] = 4, [12] = 12, [15] = 12, [16] = 12, [22] = 4, [23] = 4, [24] = 4, [25] = 4, [26] = 4, [75] = 4, [92] = 4, [101] = 4, [119] = 10, [121] = 2, [129] = 4, [138] = 4, [176] = 4, [182] = 12, [184] = 4, [189] = 12, [193] = 4, [218] = 4, [226] = 4, [253] = 4, [307] = 4, [312] = 4, [314] = 4, [334] = 6, [342] = 4, [346] = 4, [354] = 4, [428] = 12, [456] = 4, [573] = 12, [591] = 4, [594] = 1, [614] = 10, [621] = 12, [664] = 12, [669] = 12, [707] = 4 } + EID.BloodUpData = {["5.70.10"] = 2, ["5.350.156"] = 2, ["5.300.12"] = 2, ["5.300.59"] = 4, [12] = 12, [15] = 12, [16] = 12, [22] = 4, [23] = 4, [24] = 4, [25] = 4, [26] = 4, [75] = 4, [92] = 4, [101] = 4, [119] = 10, [121] = 2, [129] = 4, [138] = 4, [176] = 4, [182] = 12, [184] = 4, [189] = 12, [193] = 4, [217] = 2, [218] = 4, [226] = 4, [253] = 4, [307] = 4, [312] = 4, [314] = 4, [334] = 6, [342] = 4, [346] = 4, [354] = 4, [428] = 12, [456] = 4, [535] = 2, [573] = 12, [591] = 4, [594] = 1, [614] = 10, [621] = 12, [664] = 12, [669] = 12, [707] = 4 } end diff --git a/features/eid_holdmapdesc.lua b/features/eid_holdmapdesc.lua index 78ffe326..ed2d7c15 100644 --- a/features/eid_holdmapdesc.lua +++ b/features/eid_holdmapdesc.lua @@ -424,18 +424,22 @@ end -- Adds a formatted "Result" text to the item name function EID:ItemReminderAddResultHeaderSuffix(descObj, newName) + local resultHeader = EID:getDescriptionEntry("ItemReminder", "ResultHeader") + if not string.find(resultHeader, "{1}") then resultHeader = "{1}" .. resultHeader end if newName then local iconString = EID:GetIconStringByDescriptionObject(descObj) descObj.Name = newName .. - " (" .. iconString .. " " .. descObj.Name .. EID:getDescriptionEntry("ItemReminder", "ResultHeader") .. ")" + " (" .. iconString .. " " .. EID:ReplaceVariableStr(resultHeader, descObj.Name) .. ")" else - descObj.Name = descObj.Name .. EID:getDescriptionEntry("ItemReminder", "ResultHeader") + descObj.Name = descObj.Name .. EID:ReplaceVariableStr(resultHeader, descObj.Name) end end -- Adds a formatted "Result" text appended to the item description function EID:ItemReminderAddResultAppend(descObj, newText) local iconString = EID:GetIconStringByDescriptionObject(descObj) - descObj.Description = descObj.Description .. "#" .. iconString .. " {{ColorObjName}}" .. descObj.Name .. EID:getDescriptionEntry("ItemReminder", "ResultHeader") .. "#" .. newText + local resultHeader = EID:getDescriptionEntry("ItemReminder", "ResultHeader") + if not string.find(resultHeader, "{1}") then resultHeader = "{1}" .. resultHeader end + descObj.Description = descObj.Description .. "#" .. iconString .. " {{ColorObjName}}" .. EID:ReplaceVariableStr(resultHeader, descObj.Name) .. "#" .. newText end -- Helper function for modifiers that want to replace the description in the overview, but append to the description otherwise function EID:ItemReminderAddResult(descObj, newText, inOverview) diff --git a/features/eid_modifiers.lua b/features/eid_modifiers.lua index 1044d05e..3a485b5b 100644 --- a/features/eid_modifiers.lua +++ b/features/eid_modifiers.lua @@ -309,13 +309,65 @@ local function LuckChanceCallback(descObj) return descObj end +-- Handle changing health up text for non-red HP players +local function HealthUpCallback(descObj) + local adjustedSubtype = EID:getAdjustedSubtype(descObj.ObjType, descObj.ObjVariant, descObj.ObjSubType) + local typeVarSub = descObj.ObjType.."."..descObj.ObjVariant.."."..adjustedSubtype + + local closestPlayer = EID:ClosestPlayerTo(descObj.Entity) + local playerType = closestPlayer:GetPlayerType() + local heartType = EID.CharacterToHeartType[playerType] or "Red" + if heartType == "Red" then return descObj end + + -- find/replace Health Up lines + local numHearts = EID.HealthUpData[typeVarSub] or 1 + local text = EID:getDescriptionEntry("RedToX", "Red to " .. heartType) + local plural = ""; if numHearts ~= 1 then plural = EID:getDescriptionEntry("Pluralize") end + + local pos = 1 + while pos <= #text do + -- replace {1} with the number of hearts and {2} with the plural character + local toFind = EID:ReplaceVariableStr(text[pos], {numHearts, plural}) + if text[pos + 1] then + local replaceWith = EID:ReplaceVariableStr(text[pos + 1], {numHearts, plural}) + descObj.Description = EID:SimpleReplace(descObj.Description, tostring(toFind), replaceWith, 1) + end + pos = pos + 2 + end + + -- remove HealingRed lines entirely for Soul/Black/None health chars + descObj.Description = descObj.Description .. "#" -- gsub finds final lines better if the desc ends with a line break + if heartType == "Soul" or heartType == "Black" or heartType == "None" then + -- Find any lines containing {{HealingRed}} or {{HealingHalfRed}} and remove the line + descObj.Description = descObj.Description:gsub("{{HealingRed}}(.-)#", "") + descObj.Description = descObj.Description:gsub("{{HealingHalfRed}}(.-)#", "") + end + + -- check if we just made the description blank + if descObj.Description:gsub("#", "") == "" then + local noEffectStr = EID:getDescriptionEntry("ConditionalDescs", "No Effect") + descObj.Description = "{{Player" .. playerType .. "}} " .. EID:ReplaceVariableStr(noEffectStr, "{{NameOnlyI" .. playerType .. "}}") + end + + -- test the other players for if they have a different effect + -- todo: this simple check could have false positives (i.e. Yum Heart is identical for Soul and Black, but this thinks they'll be different) + for i = 1, #EID.coopAllPlayers do + local t = EID.coopAllPlayers[i]:GetPlayerType() + if EID.CharacterToHeartType[t] ~= heartType then + table.insert(EID.DifferentEffectPlayers, t) + end + end + + return descObj +end + if EID.isRepentance then -- Handle Birthright local function BirthrightCallback(descObj) descObj.Description = "" local describedPlayerTypes = {} - for i = 0,game:GetNumPlayers() - 1 do - local player = Isaac.GetPlayer(i) + for i = 1, #EID.coopAllPlayers do + local player = EID.coopAllPlayers[i] local playerID = player:GetPlayerType() if not player:IsSubPlayer() and player:GetMainTwin( ):GetPlayerType() == playerID and not describedPlayerTypes[playerID] then describedPlayerTypes[playerID] = true @@ -904,6 +956,9 @@ local function EIDConditionsAB(descObj) local callbacks = {} if EID.LuckFormulas[descObj.fullItemString] then table.insert(callbacks, LuckChanceCallback) end + local adjustedSubtype = EID:getAdjustedSubtype(descObj.ObjType, descObj.ObjVariant, descObj.ObjSubType) + local typeVarSub = descObj.ObjType.."."..descObj.ObjVariant.."."..adjustedSubtype + if EID.HealthUpData[typeVarSub] or EID.HealingItemData[typeVarSub] then table.insert(callbacks, HealthUpCallback) end -- Collectible Pedestal Callbacks if descObj.ObjVariant == PickupVariant.PICKUP_COLLECTIBLE then if EID.Config["ItemCollectionIndicator"] and EID:requiredForCollectionPage(descObj.ObjSubType) then table.insert(callbacks, ItemCollectionPageCallback) end @@ -922,7 +977,7 @@ local function EIDConditionsAB(descObj) end return callbacks end -EID:addDescriptionModifier("EID Afterbirth+", EIDConditionsAB, nil) +EID:addDescriptionModifier("EID Afterbirth+", EIDConditionsAB, nil, 1) -- should this be done differently so that mods can add tab previews? (tab conditions is done last, but would be done before callbacks mods add, maybe tab should be checked in EID:getDescriptionObj local function TabConditions(_) @@ -930,5 +985,22 @@ local function TabConditions(_) EID.TabPreviewID = 0 return false end - EID:addDescriptionModifier("EID Tab Previews", TabConditions, TabCallback) + +-- If an item has a radically different effect for 2 players, show the effect for the closest player, then append what chars have a different effect here +-- This is the final change made to the desc, after all other conditionals and modifiers +local function CoopDifferentEffectCallback(descObj) + local displayedChars = {} + local differentEffectText = EID:getDescriptionEntry("ConditionalDescs", "Different Effect") + for _,v in ipairs(EID.DifferentEffectPlayers) do + if not displayedChars[v] then + descObj.Description = descObj.Description .. "#{{Player" .. v .. "}} " .. EID:ReplaceVariableStr(differentEffectText, "{{NameOnlyI" .. v .. "}}") + end + displayedChars[v] = true + end + return descObj +end +local function CoopDifferentEffectConditions(_) + return #EID.DifferentEffectPlayers > 0 +end +EID:addDescriptionModifier("EID Different Effect Players", CoopDifferentEffectConditions, CoopDifferentEffectCallback) diff --git a/features/eid_tmtrainer.lua b/features/eid_tmtrainer.lua index f20f59ed..31d0f03c 100644 --- a/features/eid_tmtrainer.lua +++ b/features/eid_tmtrainer.lua @@ -30,11 +30,12 @@ local function entityToName(Type, Variant, plural) local eWithZero = string.gsub(e, "-1", "0") local localizedNames = EID:getDescriptionEntry("GlitchedItemText") + local pluralize = EID:getDescriptionEntry("Pluralize") local name = localizedNames[e] or localizedNames[eWithZero] or EID:GetEntityXMLName(Type, Variant, 0) or e --print out entities with no name yet if name == e then Isaac.DebugString("No name found for " .. e .. " (could be modded)") - elseif plural then name = name .. localizedNames["pluralize"] end + elseif plural then name = name .. pluralize end return name end @@ -53,6 +54,7 @@ function EID:CheckGlitchedItemConfig(id) local localizedNames = EID:getDescriptionEntry("GlitchedItemText") local localizedNamesEnglish = EID:getDescriptionEntryEnglish("GlitchedItemText") + local pluralize = EID:getDescriptionEntry("Pluralize") local attributes = "#" -- Check the base item config for the Hearts/Bombs/Coins/Keys this item adds, @@ -83,7 +85,7 @@ function EID:CheckGlitchedItemConfig(id) local prefix = "↑ " if val > 0 then s = "+" .. s else prefix = "↓ " end attributes = attributes .. prefix .. EID:ReplaceVariableStr(localizedNames[v] or localizedNamesEnglish[v], 1, s) - if val ~= 1 and val ~= -1 then attributes = attributes .. localizedNames["pluralize"] or localizedNamesEnglish["pluralize"] end + if val ~= 1 and val ~= -1 then attributes = attributes .. pluralize end attributes = attributes .. "#" end end