Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
92c4e4a382 | ||
|
|
fd0dc6f57e | ||
|
|
62fce35691 | ||
|
|
2d7560c9da | ||
|
|
22878c9244 | ||
|
|
dd757d4995 | ||
|
|
232e601ba8 | ||
|
|
a719f198e2 | ||
|
|
5798a9eb52 | ||
|
|
440e13fdb4 | ||
|
|
f70d4074a8 | ||
|
|
68615370f6 | ||
|
|
7627162db8 | ||
|
|
f22d1973b4 | ||
|
|
bd192c3ee4 | ||
|
|
f31b5dfa7a | ||
|
|
078c9b8b5c | ||
|
|
da9cf9ddef | ||
|
|
4e12773d62 | ||
|
|
20538d0434 | ||
|
|
ee43fe6127 | ||
|
|
4400ac7271 | ||
|
|
91f88f160f | ||
|
|
f3871a1d1c | ||
|
|
c8fd32cce6 | ||
|
|
00116ae93d | ||
|
|
9f3660ad1a | ||
|
|
09e84c34c7 | ||
|
|
1ca60623c0 | ||
|
|
87641f1d29 | ||
|
|
ca5d4d13ae | ||
|
|
08b8b07b1a | ||
|
|
df10be8fcf | ||
|
|
5588246013 | ||
|
|
e70356825d |
No files matched your search
@@ -10,6 +10,7 @@ This version is designed to be used with the Afterbirth+ and Repentance DLCs.
|
||||
- Displays information for all collectibles, trinkets, cards, runes, pills, horsepills and some rooms
|
||||
- Displays **additional information** like item type, charges, transformations, Spindown Dice results, Bag of Crafting recipes, TMTRAINER item effects (Detailed informations require --luadebug flag!), and much much more!
|
||||
- Mod support for nearly all mods!
|
||||
- Extended features available with [Repentogon](https://repentogon.com/)
|
||||
- Easy to use API ([Documentation here](https://github.com/wofsauge/External-Item-Descriptions/wiki))
|
||||
- A huge amount of custom options like:
|
||||
- Indicators
|
||||
|
||||
+21
-11
@@ -101,7 +101,7 @@ EID.descriptions[languageCode].collectibles={
|
||||
{"78", "Book of Revelations", "{{SoulHeart}} +1 Soul Heart#{{AngelDevilChance}} +17.5% Devil/Angel Room chance while held#Higher horseman boss chance if used"},
|
||||
{"79", "The Mark", "↑ {{Speed}} +0.2 Speed#↑ {{Damage}} +1 Damage#{{SoulHeart}} +1 Soul Heart"},
|
||||
{"80", "The Pact", "↑ {{Tears}} +0.7 Tears#↑ {{Damage}} +0.5 Damage#{{SoulHeart}} +2 Soul Hearts"},
|
||||
{"81", "Dead Cat", "↑ +9 Lives#Isaac respawns with 1 heart container on death#{{Warning}} Sets Isaac's heart containers to 1 when picked up#Characters that can't have Red Hearts get set to 1 Soul/Black Heart"},
|
||||
{"81", "Dead Cat", "↑ +9 Lives#Isaac respawns with 1 heart container on death#{{Warning}} Sets Isaac's heart containers to 1 when picked up"},
|
||||
{"82", "Lord of the Pit", "↑ {{Speed}} +0.3 Speed#Flight"},
|
||||
{"83", "The Nail", "{{SoulHeart}} +1 Soul Heart#{{Timer}} Receive for the room:#↑ {{Damage}} +0.7 Damage#↓ {{Speed}} -0.18 Speed#Isaac deals 40 contact damage per second#Allows Isaac to destroy rocks by walking into them"},
|
||||
{"84", "We Need To Go Deeper!", "Opens a trapdoor to the next floor#{{LadderRoom}} 10% chance to open a crawlspace trapdoor"},
|
||||
@@ -155,12 +155,12 @@ EID.descriptions[languageCode].collectibles={
|
||||
{"132", "A Lump of Coal", "{{Damage}} Tears deal more damage the further they travel"},
|
||||
{"133", "Guppy's Paw", "{{SoulHeart}} Converts 1 heart container into 3 Soul Hearts"},
|
||||
{"134", "Guppy's Tail", "{{Chest}} 33% chance to replace the room clear reward with a chest#33% chance to spawn no room clear reward"},
|
||||
{"135", "IV Bag", "{{Coin}} Hurts Isaac for half a heart and spawns 1-3 coins#{{Player14}} Spawns 0-1 coin as Keeper"},
|
||||
{"135", "IV Bag", "{{Coin}} Hurts Isaac for half a heart and spawns 1-2 coins"},
|
||||
{"136", "Best Friend", "Spawns a decoy Isaac that attracts enemies and explodes after 5 seconds"},
|
||||
{"137", "Remote Detonator", "{{Bomb}} +5 bombs#Isaac's bombs no longer explode automatically#Using the item detonates all of Isaac's bombs at once"},
|
||||
{"137", "Remote Detonator", "{{Bomb}} +5 Bombs#Isaac's bombs no longer explode automatically#Using the item detonates all of Isaac's bombs at once"},
|
||||
{"138", "Stigmata", "↑ {{Heart}} +1 Health#↑ {{Damage}} +0.3 Damage"},
|
||||
{"139", "Mom's Purse", "{{Trinket}} Isaac can hold 2 trinkets"},
|
||||
{"140", "Bob's Curse", "{{Bomb}} +5 bombs#{{Poison}} Isaac's bombs poison enemies caught in the blast"},
|
||||
{"140", "Bob's Curse", "{{Bomb}} +5 Bombs#{{Poison}} Isaac's bombs poison enemies caught in the blast"},
|
||||
{"141", "Pageant Boy", "{{Coin}} Spawns 7 random coins"},
|
||||
{"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"},
|
||||
{"143", "Speed Ball", "↑ {{Speed}} +0.3 Speed#↑ {{Shotspeed}} +0.2 Shot speed"},
|
||||
@@ -261,7 +261,7 @@ EID.descriptions[languageCode].collectibles={
|
||||
{"238", "Key Piece 1", "{{Warning}} Getting both parts of the key opens a big golden door#{{AngelChance}} +25% Angel Room chance#{{EternalHeart}} +2% chance for Eternal Hearts"},
|
||||
{"239", "Key Piece 2", "{{Warning}} Getting both parts of the key opens a big golden door#{{AngelChance}} +25% Angel Room chance#{{EternalHeart}} +2% chance for Eternal Hearts"},
|
||||
{"240", "Experimental Treatment", "↑ Increases 4 random stats#↓ Decreases 2 random stats"},
|
||||
{"241", "Contract from Below", "Doubles all room clear rewards#33% chance for no room clear reward#{{GreedMode}} Doesn't affect Greed Mode"},
|
||||
{"241", "Contract from Below", "Doubles all room clear rewards#33% chance for no room clear reward"},
|
||||
{"242", "Infamy", "50% chance to block enemy shots"},
|
||||
{"243", "Trinity Shield", "Blocks enemy shots coming from the direction Isaac is shooting"},
|
||||
{"244", "Tech.5", "Occasionally shoot lasers in addition to Isaac's tears"},
|
||||
@@ -464,7 +464,7 @@ EID.descriptions[languageCode].collectibles={
|
||||
{"439", "Mom's Box", "{{Trinket}} Spawns a random trinket#While held:#↑ {{Luck}} +1 Luck#{{Trinket}} Doubles trinket effects"},
|
||||
{"440", "Kidney Stone", "↑ +2 Tear height#↓ {{Speed}} -0.2 Speed#↓ {{Range}} -17 Range#Isaac occasionally stops firing and charges an attack that releases a burst of tears and a kidney stone"},
|
||||
{"441", "Mega Blast", "{{Timer}} Fires a huge Mega Satan blood beam for 15 seconds#The beam persists between rooms and floors"},
|
||||
{"442", "Dark Prince's Crown", "While at 1 full Red Heart:#↑ {{Tears}} +0.75 Tears#↑ {{Range}} +1.5 Range#↑ +1 Tear height#↑ {{Shotspeed}} +0.2 Shot speed#Does not work on characters without Red Hearts"}, -- Dark Princes Crown (apostrophe added to the name in Repentance)
|
||||
{"442", "Dark Prince's Crown", "While at 1 full Red Heart:#↑ {{Tears}} +0.75 Tears#↑ {{Range}} +1.5 Range#↑ +1 Tear height#↑ {{Shotspeed}} +0.2 Shot speed"}, -- Dark Princes Crown (apostrophe added to the name in Repentance)
|
||||
{"443", "Apple!", "↑ {{Tears}} +0.3 Tears#{{Damage}} 6.66% chance to shoot razor blades that deal 4x Isaac's damage#{{Luck}} 100% chance at 14 luck"},
|
||||
{"444", "Lead Pencil", "Isaac shoots a cluster of tears every 15 tears#Tears in the cluster deal double damage"},
|
||||
{"445", "Dog Tooth", "↑ {{Speed}} +0.1 Speed#↑ {{Damage}} +0.3 Damage#{{SecretRoom}}{{SuperSecretRoom}} A wolf howls in rooms adjacent to a Secret/Super Secret Room#{{LadderRoom}} A dog barks in rooms with a crawlspace under a rock"},
|
||||
@@ -631,7 +631,7 @@ EID.descriptions[languageCode].trinkets={
|
||||
{"20", "Monkey Paw", "{{BlackHeart}} Spawns 1 Black Heart when Isaac's health is reduced to half a heart#{{Warning}} Disappears after spawning 3 Black Hearts"},
|
||||
{"21", "Mysterious Paper", "Randomly grants the effect of: #{{Collectible327}} The Polaroid#{{Collectible328}} The Negative#{{Trinket48}} A Missing Page#{{Trinket23}} Missing Poster"},
|
||||
{"22", "Daemon's Tail", "{{Heart}} Decreases spawn rate of hearts to 20%#{{BlackHeart}} All Heart pickups turn into Black Hearts#{{Key}} Increases the drop chance of keys"},
|
||||
{"23", "Missing Poster", "{{Player10}} Respawn as The Lost on death#{{Warning}} Dying in a {{SacrificeRoom}} Sacrifice Room while holding this trinket unlocks The Lost"},
|
||||
{"23", "Missing Poster", "{{Player10}} Respawn as The Lost on death"},
|
||||
{"24", "Butt Penny", "{{Coin}} 20% higher chance for coins to spawn from poop#Picking up coins makes Isaac fart"},
|
||||
{"25", "Mysterious Candy", "Isaac farts or spawns poop every 30 seconds"},
|
||||
{"26", "Hook Worm", "↑ {{Range}} +10 Range#Isaac's tears move in angular patterns"},
|
||||
@@ -711,7 +711,7 @@ EID.descriptions[languageCode].trinkets={
|
||||
{"100", "Vibrant Bulb", "Holding a fully charged active item grants:#↑ {{Speed}} +0.25 Speed#↑ {{Tears}} +0.2 Tears#↑ {{Damage}} +0.5 Damage#↑ {{Range}} +0.75 Range#↑ {{Shotspeed}} +0.1 Shot speed#↑ {{Luck}} +1 Luck"},
|
||||
{"101", "Dim Bulb", "Holding a completely uncharged active item grants:#↑ {{Speed}} +0.5 Speed#↑ {{Tears}} +0.4 Tears#↑ {{Damage}} +1.5 Damage#↑ {{Range}} +1.5 Range#↑ {{Shotspeed}} +0.3 Shot speed#↑ {{Luck}} +2 Luck"},
|
||||
{"102", "Fragmented Card", "{{SecretRoom}} +1 extra Secret Room per floor while held"},
|
||||
{"103", "Equality!", "Turns single consumables into double consumables when Isaac's {{Coin}} coin, {{Bomb}} bomb and {{Key}} key counts are equal"},
|
||||
{"103", "Equality!", "Turns single pickups into double pickups when Isaac's {{Coin}} coin, {{Bomb}} bomb and {{Key}} key counts are equal"},
|
||||
{"104", "Wish Bone", "2% chance to get destroyed and spawn a pedestal item when hit"},
|
||||
{"105", "Bag Lunch", "{{Collectible22}} 2% chance to get destroyed and spawn Lunch when hit"},
|
||||
{"106", "Lost Cork", "Increases the radius of friendly creep"},
|
||||
@@ -755,7 +755,7 @@ EID.descriptions[languageCode].cards={
|
||||
{"12", "XI - Strength", "{{Timer}} Receive for the room:#↑ {{Heart}} +1 Health#↑ {{Speed}} +0.3 Speed#↑ {{Damage}} +0.3 Damage#↑ {{Damage}} x1.5 Damage multiplier#↑ {{Range}} +5.25 Range#↑ +0.5 Tear height"},
|
||||
{"13", "XII - The Hanged Man", "{{Timer}} Flight for the room"},
|
||||
{"14", "XIII - Death", "Deals 40 damage to all enemies in the room"},
|
||||
{"15", "XIV - Temperance", "{{DonationMachine}} Spawns a Blood Donation Machine#{{GreedMode}} Spawns a Devil Beggar in Greed Mode"},
|
||||
{"15", "XIV - Temperance", "{{DonationMachine}} Spawns a Blood Donation Machine"},
|
||||
{"16", "XV - The Devil", "{{Timer}} Receive for the room:#↑ {{Damage}} +2 Damage"},
|
||||
{"17", "XVI - The Tower", "Spawns 6 Troll Bombs"},
|
||||
{"18", "XVII - The Stars", "{{TreasureRoom}} Teleports Isaac to the Treasure Room"},
|
||||
@@ -854,8 +854,8 @@ EID.descriptions[languageCode].pills={
|
||||
EID.descriptions[languageCode].sacrificeHeader = "[Next Sacrifice Room payout]"
|
||||
|
||||
EID.descriptions[languageCode].sacrifice={
|
||||
{"1", "", "{{Coin}} 50% chance for 1 coin#{{Bomb}} 100% chance for 1 Bomb, when on B1 and killed the Boss under 1 minute"},
|
||||
{"2", "", "{{Coin}} 50% chance for 1 coin#{{Bomb}} 100% chance for 1 Bomb, when on B1 and killed the Boss under 1 minute"},
|
||||
{"1", "", "{{Coin}} 50% chance for 1 coin#{{Bomb}} 100% chance for 1 bomb, when on B1 and killed the boss under 1 minute"},
|
||||
{"2", "", "{{Coin}} 50% chance for 1 coin#{{Bomb}} 100% chance for 1 bomb, when on B1 and killed the boss under 1 minute"},
|
||||
{"3", "", "{{AngelChance}} 67% chance for increased Angel Room chance"},
|
||||
{"4", "", "{{Chest}} 50% chance for 1 random chest"},
|
||||
{"5", "", "{{Coin}} 33% chance for 3 coins#{{AngelChance}} 67% chance for increased Angel Room chance"},
|
||||
@@ -955,3 +955,13 @@ EID.descriptions[languageCode].PickupNames = {
|
||||
["5.350"] = "{{Trinket}} Trinket",
|
||||
|
||||
}
|
||||
|
||||
EID.descriptions[languageCode].ConditionalDescs = {
|
||||
["5.100.81"] = "Characters that can't have Red Hearts get set to 1 Soul/Black Heart", -- Dead Cat
|
||||
["5.100.241"] = "{{GreedMode}} Doesn't affect Greed Mode", -- Contract From Below
|
||||
["5.100.135 (Keeper)"] = "{{Player14}} Spawns 0-1 coin as Keeper", -- IV Bag Keeper
|
||||
["5.100.135 (PHD)"] = "{{Collectible75}} Spawns 2-3 coins if you have PHD", -- IV Bag PHD
|
||||
["5.100.442"] = "No effect for characters that can't have Red Hearts", -- Dark Prince's Crown
|
||||
["5.300.15"] = "{{DemonBeggar}} Spawns a Devil Beggar", -- Temperance (Greed Mode effect)
|
||||
["5.350.23"] = "{{Warning}} Dying in a {{SacrificeRoom}} Sacrifice Room while holding this trinket unlocks The Lost", -- Missing Poster (Unlock The Lost)
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
----- Basic Chinese descriptions ---
|
||||
--------------------------------------
|
||||
|
||||
-- Last Update: 2023.12.20
|
||||
-- Last Update: 2023.12.25
|
||||
|
||||
-- FORMAT: Item ID | Name | Description
|
||||
|
||||
@@ -114,7 +114,7 @@ EID.descriptions[languageCode].collectibles={
|
||||
{"90", "小石头", "↑ {{Damage}} +1.0伤害#↑ {{Tears}} +0.2射速#↓ {{Speed}} -0.2移速"},
|
||||
{"91", "探窟帽", "揭示相邻房间的类型#也可以揭示{{SecretRoom}}隐藏房,超级隐藏房和小Boss房"},
|
||||
{"92", "超级绷带", "↑ +1心之容器#{{SoulHeart}} +2魂心#{{Heart}} 治疗1红心"},
|
||||
{"93", "游戏掌机", "在6秒内获得:#无敌#{{Fear}} 恐惧所有敌人#无法发射眼泪#造成每秒40点接触伤害#{{HalfHeart}} 吃掉两个敌人回复半个红心"},
|
||||
{"93", "游戏掌机", "在6.5秒内获得:#无敌#{{Fear}} 恐惧所有敌人#无法发射眼泪#造成每秒40点接触伤害#{{HalfHeart}} 吃掉两个敌人回复半个红心"},
|
||||
{"94", "硬币袋", "{{Coin}} 每2个房间随机生成1硬币"},
|
||||
{"95", "机器宝宝", "激光眼泪跟班#每次射击造成3.5点伤害"},
|
||||
{"96", "查德宝宝", "{{HalfHeart}} 每3个房间生成1半红心"},
|
||||
@@ -576,6 +576,35 @@ EID.descriptions[languageCode].collectibles={
|
||||
{"552", "妈妈的铲子", "生成通往下一层的活板门#!!! 在\"暗室\"的土丘上使用铲子#!!! 解锁某个很酷的东西"},
|
||||
}
|
||||
|
||||
---------- Modifiers ----------
|
||||
|
||||
-- Effect of Car battery on Active Items
|
||||
-- these all need way more consistency with the original effect text and spellchecking
|
||||
EID.descriptions[languageCode].carBattery = {
|
||||
[58] = "持续20秒", -- Book of Shadows
|
||||
[66] = "持续16秒", -- The Hourglass
|
||||
[77] = "持续12秒", -- My Little Unicorn
|
||||
[93] = "持续13秒", -- The Gamekid
|
||||
[111] = "造成两倍伤害", -- The Bean
|
||||
[124] = "触发两次效果", -- Dead Sea Scrolls
|
||||
[145] = "生成4~8个蓝苍蝇", -- Guppy's Head
|
||||
[171] = "造成10点额外伤害", -- Spider Butt
|
||||
[293] = "激光柱的伤害加倍", -- Head of Krampus
|
||||
[298] = "持续12秒", -- Unicorn Stump
|
||||
[351] = "造成两倍伤害", -- Mega Bean
|
||||
[383] = "一次分裂成36颗泪弹", -- Tear Detonator
|
||||
[421] = "造成两倍伤害", -- Kidney Bean
|
||||
[427] = "生成两个炸药包", -- Mine Crafter
|
||||
[477] = "每个被吸收的主动道具会触发两次", -- Void
|
||||
[482] = "更换角色两次并移除两个道具", -- Clicker
|
||||
[485] = "25%概率四倍道具和掉落物, 75%概率移除它们", -- Crooked Penny
|
||||
[486] = "触发受伤相关道具效果两次", -- Dull Razor
|
||||
[488] = "获得两个道具效果", -- Metronome
|
||||
[489] = "触发两次骰子效果,第二个骰子效果无法预测", -- D Infinity
|
||||
[523] = "将盒子内容物与房间掉落物交换", -- Moving Box
|
||||
[550] = "在挑战房和头目车轮战中防止两轮妈妈的脚的踩踏 {{ChallengeRoom}} {{BossRushRoom}}", -- Broken Shovel
|
||||
}
|
||||
|
||||
---------- Trinkets ----------
|
||||
EID.descriptions[languageCode].trinkets={
|
||||
{"1", "被吞下的硬币", "受伤时生成1硬币"},
|
||||
|
||||
+10
-10
@@ -122,7 +122,7 @@ local repCollectibles={
|
||||
[280] = {"280", "Sissy Langbein", "Erzeugt zufällig blaue Spinnen in feindlichen Räumen#{{Charm}} Verzaubert Feinde, mit denen es in Kontakt kommt"}, -- Sissy Longlegs
|
||||
[283] = {"283", "D100", "Dupliziert 1 Aufsammelobjekt im Raum#Würfelt Isaacs Geschwindigkeit, Tränen, Schaden, Reichweite und passive Objekte neu#Würfelt alle Sockelobjekte, Aufsammelobjekte und Felsen im Raum neu#Startet den Raum neu, lässt alle Feinde respawnen und würfelt sie neu"}, -- D100
|
||||
[285] = {"285", "D10", "Verwandelt alle Feinde im Raum zurück#Zum Beispiel werden alle roten Fliegen zu schwarzen Fliegen"}, -- D10
|
||||
[286] = {"286", "Leere Karte", "Löst den Effekt der Karte aus, die Isaac hält, ohne sie zu verwenden"}, -- Blank Card
|
||||
[286] = {"286", "Blanko-Karte", "Löst den Effekt der Karte aus, die Isaac hält, ohne sie zu verwenden"}, -- Blank Card
|
||||
[287] = {"287", "Buch der Geheimnisse", "Markiert getönte und Kellerfelsen im Raum#{{Timer}} Erhalte einen dieser Effekte für den Raum:#{{Collectible54}} Schatzkarte#{{Collectible21}} Kompass#{{Collectible246}} Blaue Karte#Gewährt nur Effekte, die noch nicht aktiv sind#{{Collectible76}} Wenn alle Effekte aktiv sind, gewährt Röntgensicht"}, -- Book of Secrets
|
||||
[288] = {"288", "Spinnenbox", "Erzeugt 4-8 blaue Spinnen"}, -- Box of Spiders
|
||||
[289] = {"289", "Rote Kerze", "Wirft eine rote Flamme#Die Flamme verschwindet, wenn sie Schaden verursacht hat oder 5 Schüsse blockiert hat oder nach 10 Sekunden"}, -- Red Candle
|
||||
@@ -133,12 +133,12 @@ local repCollectibles={
|
||||
[296] = {"296", "Konverter", "{{Heart}} Wandelt 1 Seelen- oder Schwarzes Herz in 1 Herzcontainer um"}, -- Converter
|
||||
--NOTE FOR LOCALIZERS: There is code to highlight the text of your current floor
|
||||
--For it to work, only use line breaks or semicolons to separate floor details, and use the same order as English
|
||||
[297] = {"297", "Pandoras Schachtel", "{{Warning}} EINMALIGE VERWENDUNG {{Warning}} Erzeugt Belohnungen basierend auf der Ebene:#B1: 2{{SoulHeart}}; B2: 2{{Bomb}} + 2{{Key}}#C1: Boss-Gegenstand; C2: B1+C1#D1: 4{{SoulHeart}}; D2: 20{{Coin}}#W1: 2 Boss-Gegenstände#W2: {{Collectible33}} Die Bibel#???/Leere: Nichts#Sheol: Teufelsgegenstand + 1{{BlackHeart}}#Kathedrale: Engelsgenstand + 1{{EternalHeart}}#Dunkler Raum: Schaltet {{Collectible523}} Die Umzugskiste frei; Truhe: 1{{Coin}}#Zuhause: {{Collectible580}} Roter Schlüssel"}, -- Pandora's Box
|
||||
[297] = {"297", "Pandoras Box", "{{Warning}} EINMALIGE VERWENDUNG {{Warning}} Erzeugt Belohnungen basierend auf der Ebene:#B1: 2{{SoulHeart}}; B2: 2{{Bomb}} + 2{{Key}}#C1: Boss-Gegenstand; C2: B1+C1#D1: 4{{SoulHeart}}; D2: 20{{Coin}}#W1: 2 Boss-Gegenstände#W2: {{Collectible33}} Die Bibel#???/Leere: Nichts#Sheol: Teufelsgegenstand + 1{{BlackHeart}}#Kathedrale: Engelsgenstand + 1{{EternalHeart}}#Dunkler Raum: Schaltet {{Collectible523}} Die Umzugskiste frei; Truhe: 1{{Coin}}#Zuhause: {{Collectible580}} Roter Schlüssel"}, -- Pandora's Box
|
||||
[300] = {"300", "Widder", "↑ {{Speed}} +0.25 Geschwindigkeit#Bewegung über 0,85 Geschwindigkeit macht Isaac immun gegen Berührungsschaden und fügt Feinden 25 Schaden zu"}, -- Aries
|
||||
[307] = {"307", "Steinbock", "↑ {{Heart}} +1 Gesundheit#↑ {{Speed}} +0.1 Geschwindigkeit#↑ {{Tears}} +0.5 Feuerrate#↑ {{Damage}} +0.5 Schaden#↑ {{Range}} +0.75 Reichweite#+1 {{Coin}} Münze, {{Bomb}} Bombe und {{Key}} Schlüssel"}, -- Capricorn
|
||||
[308] = {"308", "Wassermann", "Isaac hinterlässt eine Spur aus Klecksen#{{Damage}} Der Klecks fügt 66% des Schadens von Isaac pro Sekunde zu und übernimmt seine Träreffekte"}, -- Aquarius
|
||||
[309] = {"309", "Fische", "↑ {{Tears}} +0.5 Feuerrate#↑ {{Tearsize}} +0.12 Tränengröße#Erhöht den Rückstoß der Tränen"}, -- Pisces
|
||||
[310] = {"310", "Evas Mascara", "↑ {{Damage}} x2 Schadensmultiplikator#↓ {{Tears}} x0.66 Tränenmultiplikator#↓ {{Shotspeed}} -0.5 Schussschnelligkeit"},
|
||||
[310] = {"310", "Evas Mascara", "↑ {{Damage}} x2 Schadensmultiplikator#↓ {{Tears}} x0.66 Tränenmultiplikator#↓ {{Shotspeed}} -0.5 Schussgeschwindigkeit"},
|
||||
[311] = {"311", "Judas' Schatten", "{{Player12}} Beim Tod wiederbeleben als Dunkler Judas mit einem 2x Schadensmultiplikator#{{Player24}} Befleckter Judas wird einfach wiederbelebt"}, -- Judas' Shadow
|
||||
[314] = {"314", "Donner-Oberschenkel", "↑ {{Heart}} +1 Gesundheit#↓ {{Speed}} -0.4 Geschwindigkeit#{{Heart}} Heilt 1 Herz#Isaac kann Felsen zerstören, indem er darüber läuft"}, -- Thunder Thighs
|
||||
[315] = {"315", "Seltsamer Anzieher", "Isaacs Tränen ziehen Feinde, Aufsammelobjekte und Trinkets an#Der Anziehungseffekt ist am Ende des Tränenweges viel stärker"}, -- Strange Attractor
|
||||
@@ -149,11 +149,11 @@ local repCollectibles={
|
||||
[326] = {"326", "Atem Des Lebens", "Das Halten der BENUTZEN-Taste leert die Ladeleiste#Isaac ist vorübergehend unverwundbar, wenn die Ladeleiste leer ist#Isaac ruft Lichtstrahlen hervor, wenn er Feinde berührt, während er unverwundbar ist#Wenn Schaden mit perfektem Timing blockiert wird, schießt ein 4-Wege-Heiligkeitsstrahl und gewinnt einen kurzen Schild#{{Warning}} Das Halten für zu lange fügt Isaac Schaden zu"}, -- Breath of Life
|
||||
[328] = {"328", "Das Negative", "↑ {{Damage}} +1 Schaden#Wenn er bei einem halben roten Herz oder gar keinem Schaden nimmt, erleiden alle Feinde im Raum Schaden"}, -- The Negative
|
||||
[330] = {"330", "Sojamilch", "↑ {{Tears}} x5.5 Feuerratenmultiplikator#↓ {{Damage}} x0.2 Schadensmultiplikator#↓ {{Tearsize}} -0.3 Tränengröße#Reduziert den Rückstoß drastisch"}, -- Soy Milk
|
||||
[331] = {"331", "Götterkopf", "↑ {{Damage}} +0.5 Schaden#↓ {{Tears}} -0.3 Tränen#↓ {{Shotspeed}} -0.3 Schussschnelligkeit#Heilige Tränen#Tränen erhalten eine Aura, die pro Sekunde 60 Schaden verursacht"}, -- Godhead
|
||||
[331] = {"331", "Götterkopf", "↑ {{Damage}} +0.5 Schaden#↓ {{Tears}} -0.3 Tränen#↓ {{Shotspeed}} -0.3 Schussgeschwindigkeit#Heilige Tränen#Tränen erhalten eine Aura, die pro Sekunde 60 Schaden verursacht"}, -- Godhead
|
||||
[332] = {"332", "Lazarus Lappen", "{{Player11}} Beim Tod wiederbeleben als Lazarus (Auferstanden)#{{Player29}} Befleckter Lazarus wird einfach wiederbelebt"},
|
||||
[336] = {"336", "Tote Zwiebel", "↑ {{Tearsize}} +0.22 Tränengröße#↓ {{Range}} -1.5 Reichweite#↓ {{Shotspeed}} -0.4 Schussschnelligkeit#Durchdringende + spektrale Tränen"}, -- Dead Onion
|
||||
[339] = {"339", "Sicherheitsnadel", "↑ {{Range}} +2.5 Reichweite#↑ {{Shotspeed}} +0.16 Schussschnelligkeit#{{BlackHeart}} +1 Schwarzes Herz"}, -- Safety Pin
|
||||
[342] = {"342", "Blaue Mütze", "↑ {{Heart}} +1 Gesundheit#↑ {{Tears}} +0.7 Tränen#↓ {{Shotspeed}} -0.16 Schussschnelligkeit#{{Heart}} Heilt 1 Herz"}, -- Blue Cap
|
||||
[336] = {"336", "Tote Zwiebel", "↑ {{Tearsize}} +0.22 Tränengröße#↓ {{Range}} -1.5 Reichweite#↓ {{Shotspeed}} -0.4 Schussgeschwindigkeit#Durchdringende + spektrale Tränen"}, -- Dead Onion
|
||||
[339] = {"339", "Sicherheitsnadel", "↑ {{Range}} +2.5 Reichweite#↑ {{Shotspeed}} +0.16 Schussgeschwindigkeit#{{BlackHeart}} +1 Schwarzes Herz"}, -- Safety Pin
|
||||
[342] = {"342", "Blaue Mütze", "↑ {{Heart}} +1 Gesundheit#↑ {{Tears}} +0.7 Tränen#↓ {{Shotspeed}} -0.16 Schussgeschwindigkeit#{{Heart}} Heilt 1 Herz"}, -- Blue Cap
|
||||
[344] = {"344", "Streichholzschachtel", "{{BlackHeart}} +1 Schwarzes Herz#{{Bomb}} Erzeugt 3 Bomben#{{Trinket41}} Erzeugt den Streichholztrinket"}, -- Match Book
|
||||
[345] = {"345", "Synthöl", "↑ {{Damage}} +1 Schaden#↑ {{Range}} +2.5 Reichweite"}, -- Synthoil
|
||||
[346] = {"346", "Ein Snack", "↑ {{Heart}} +1 Gesundheit#{{Heart}} Heilt 1 Herz"}, -- A Snack
|
||||
@@ -305,7 +305,7 @@ local repCollectibles={
|
||||
[618] = {"618", "Verfaulte Tomate", "{{Bait}} 17% Chance, Tränen zu schießen, die Feinde markieren#{{Luck}} 100% Chance bei 5 Glück#Markierte Feinde werden von anderen Feinden angegriffen"}, -- Rotten Tomato
|
||||
[619] = {"619", "Geburtsrecht", "Hat für jeden Charakter eine andere Wirkung"}, -- Birthright
|
||||
[620] = {"620", "", "<Gegenstand existiert nicht>"}, --
|
||||
[621] = {"621", "Rotes Eintopf", "↑ {{Damage}} +21.6 Schadensmultiplikator#{{Heart}} Vollgesundheit#Der Schadensbonus lässt in 3 Minuten nach#Töten von Feinden während des aktiven Effekts verlängert diesen"}, -- Red Stew
|
||||
[621] = {"621", "Roter Eintopf", "↑ {{Damage}} +21.6 Schadensmultiplikator#{{Heart}} Vollgesundheit#Der Schadensbonus lässt in 3 Minuten nach#Töten von Feinden während des aktiven Effekts verlängert diesen"}, -- Red Stew
|
||||
[622] = {"622", "Genesis", "{{Warning}} EINMAL VERWENDEN {{Warning}}#Entfernt alle von Isaac's Gegenständen und Aufsammlungen#Teleportiert Isaac zu einem Schlafzimmer mit Aufsammlungen und Truhen#Für jeden entfernten Gegenstand kann Isaac zwischen 3 Gegenständen aus demselben Pool wählen#Verlassen des Schlafzimmers teleportiert Isaac zum nächsten Stock"}, -- Genesis
|
||||
[623] = {"623", "Scharfer Schlüssel", "{{Key}} +5 Schlüssel#Wirft einen von Isaacs Schlüsseln in die Richtung, in die er schießt#Die geworfenen Schlüssel verursachen Schaden, zerstören Hindernisse und öffnen Türen#Feinde, die mit Schlüsseln getötet werden, können den Inhalt einer Truhe, einschließlich Gegenständen, fallen lassen"}, -- Sharp Key
|
||||
[624] = {"624", "Booster-Pack", "{{Card}} Spawnt 5 zufällige Karten"}, -- Booster Pack
|
||||
@@ -329,7 +329,7 @@ local repCollectibles={
|
||||
[642] = {"642", "Zauberhaut", "Beschwört einen Gegenstand aus dem aktuellen Gegenstands-Pool des Raums#{{BrokenHeart}} Verwandelt 1 Herzcontainer oder 1 Knochenherz oder 2 Seelenherzen in ein Gebrochenes Herz#{{Warning}} Ersetzt zukünftige Gegenstände, wenn Isaac ihn nicht hält {{ColorSilver}}(33% nach 1 Verwendung, 50% nach 2, 100% nach 3)#Geringere Chance, wenn die Magic Skin auf einem Podest im aktuellen Stockwerk liegt#{{Player10}} Einmalige Verwendung für The Lost"}, -- Magic Skin
|
||||
[643] = {"643", "Offenbarung", "{{SoulHeart}} +2 Seelenherzen#Flug#{{Chargeable}} Aufladbare hochschädliche heilige Strahlen#Ersetzt nicht die Tränen von Isaac"}, -- Revelation
|
||||
[644] = {"644", "Trostpreis", "↑ Erhöht die niedrigste Statistik von Isaac aus Geschwindigkeit, Schussrate, Schaden und Reichweite#Spawnt entweder 3 {{Coin}} Münzen, 1 {{Bomb}} Bombe oder 1 {{Key}} Schlüssel, abhängig davon, von welchem Isaac am wenigsten hat"}, -- Consolation Prize
|
||||
[645] = {"645", "Winz-Toma", "Großes Orbital, das Schüsse blockiert#Verursacht 3,5 Kontakt-Schaden pro Sekunde#Teilt sich in kleinere Versionen auf, nachdem es 3 Treffer genommen hat#Die kleineren Versionen brechen in blaue Spinnen auf#Respawnt 5 Sekunden nach dem vollständigen Verschwinden"}, -- Tinytoma
|
||||
[645] = {"645", "Tinytoma", "Großes Orbital, das Schüsse blockiert#Verursacht 3,5 Kontakt-Schaden pro Sekunde#Teilt sich in kleinere Versionen auf, nachdem es 3 Treffer genommen hat#Die kleineren Versionen brechen in blaue Spinnen auf#Respawnt 5 Sekunden nach dem vollständigen Verschwinden"}, -- Tinytoma
|
||||
[646] = {"646", "Schwefelbomben", "{{Bomb}} +5 Bomben#{{Collectible118}} Isaacs Bomben geben einen 4-Wege-Blutstrahl ab#Die Strahlen verletzen Isaac nicht"}, -- Brimstone Bombs
|
||||
[647] = {"647", "4.5 Volt", "Das Abschließen von Räumen lädt active Items nicht mehr auf#Schaden an Feinden füllt langsam die Ladeleiste#Der für jede Ladung benötigte Schaden steigt auf jedem Stockwerk"}, -- 4.5 Volt
|
||||
[648] = {"648", "", "<Gegenstand existiert nicht>"}, --
|
||||
@@ -353,7 +353,7 @@ local repCollectibles={
|
||||
[666] = {"666", "", "<Gegenstand existiert nicht>"}, --
|
||||
[667] = {"667", "Strohmann", "{{Bomb}} +1 Bombe#{{Player14}} Beschwört Keeper als zweiten Charakter herbei#Wenn er stirbt, beschwört er blaue Spinnen herbei und entfernt dauerhaft Strohmann und jeden Gegenstand, den er aufgenommen hat, aus dem Inventar#{{DevilRoom}} Teufelsraumgegenstände kosten Münzen, solange Strohmann lebt#{{Warning}} Strohmann kann Story-Gegenstände aufnehmen"}, -- Strawman
|
||||
[668] = {"668", "Papas Notiz", "Beginnt den Aufstieg#In vorherigen {{TreasureRoom}} Schatz- oder {{BossRoom}} Bossräumen zurückgelassene Glückspillen werden zu {{Card78}} Rissigen Schlüsseln"}, -- Dad's Note
|
||||
[669] = {"669", "Wurst", "↑ {{Heart}} +1 Gesundheit#↑ {{Speed}} +0,2 Geschwindigkeit#↑ {{Tears}} +0,5 Tränen#↑ {{Damage}} +0,5 Schaden#↑ {{Range}} +2,5 Reichweite#↑ {{Shotspeed}} +0,16 Schussschnelligkeit#↑ {{Luck}} +1 Glück#{{Heart}} Volle Gesundheit#↑ {{AngelDevilChance}} +6,9% Teufels-/Engelsraum-Chance#↑ {{PlanetariumChance}} +6,9% Planetarium-Chance"}, -- Sausage
|
||||
[669] = {"669", "Wurst", "↑ {{Heart}} +1 Gesundheit#↑ {{Speed}} +0,2 Geschwindigkeit#↑ {{Tears}} +0,5 Tränen#↑ {{Damage}} +0,5 Schaden#↑ {{Range}} +2,5 Reichweite#↑ {{Shotspeed}} +0,16 Schussgeschwindigkeit#↑ {{Luck}} +1 Glück#{{Heart}} Volle Gesundheit#↑ {{AngelDevilChance}} +6,9% Teufels-/Engelsraum-Chance#↑ {{PlanetariumChance}} +6,9% Planetarium-Chance"}, -- Sausage
|
||||
[670] = {"670", "Optionen?", "Ermöglicht es Isaac, zwischen zwei verschiedenen Belohnungen für das Leeren eines Raumes zu wählen"}, -- Options?
|
||||
[671] = {"671", "Bonbonherz", "↑ Aufsammeln von {{Heart}} Rote Herzen gewährt zufällige dauerhafte Statistikverbesserungen#{{Heart}} Spawnt ein Rotes Herz"}, -- Candy Heart
|
||||
[672] = {"672", "Ein Pfund Fleisch", "{{DevilRoom}} Teufelsraumgegenstände kosten Münzen#{{Shop}} Ladenobjekte kosten Herzen#Verbrauchsmaterialien in Läden sind von Stacheln umgeben"}, -- A Pound of Flesh
|
||||
|
||||
+45
-24
@@ -61,10 +61,9 @@ 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
|
||||
[135] = {"135", "IV Bag", "{{Coin}} Hurts Isaac for half a heart and spawns 1-2 coins#{{HardMode}} Spawns 1 coin on Hard Mode#{{Player14}} Spawns 0-1 coin as Keeper"}, -- IV Bag
|
||||
[138] = {"138", "Stigmata", "↑ {{Heart}} +1 Health#↑ {{Damage}} +0.3 Damage#{{Heart}} 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
|
||||
[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
|
||||
[147] = {"147", "Notched Axe", "Using the item makes Isaac hold the axe#Holding the axe allows Isaac to break rocks, secret room entrances and damage enemies#Landing a hit with the axe reduces its charge#Entering a new floor fully recharges the axe"}, -- Notched Axe
|
||||
[148] = {"148", "Infestation", "Taking damage spawns 2-6 blue flies"}, -- Infestation
|
||||
@@ -73,14 +72,13 @@ local repCollectibles={
|
||||
[153] = {"153", "Mutant Spider", "↓ {{Tears}} x0.42 Fire rate multiplier#Isaac shoots 4 tears at once"}, -- Mutant Spider
|
||||
[155] = {"155", "The Peeper", "↑ {{Damage}} x1.35 Damage multiplier for the left eye#Floats around the room#Deals 17.1 contact damage per second"}, -- The Peeper
|
||||
[158] = {"158", "Crystal Ball", "Spawns a {{SoulHeart}} Soul Heart, {{Rune}} rune or {{Card}} card#{{Timer}} Full mapping effect for the floor (except {{SuperSecretRoom}} Super Secret Room)#While held:#{{PlanetariumChance}} +15% Planetarium chance#{{PlanetariumChance}} +100% if a {{TreasureRoom}} Treasure Room was skipped"}, -- Crystal Ball
|
||||
[161] = {"161", "Ankh", "{{Player4}} Respawn as ??? (Blue Baby) on death#{{Player25}} Tainted ??? simply revives"},
|
||||
[169] = {"169", "Polyphemus", "↑ {{Damage}} +4 Damage#↑ {{Damage}} x2 Damage multiplier#↓ {{Tears}} x0.42 Fire rate multiplier#Tears pierce killed enemies if there is leftover damage"}, --Polyphemus
|
||||
[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 damage per second"}, -- Sacrificial Dagger
|
||||
[176] = {"176", "Stem Cells", "↑ {{Heart}} +1 Health#↑ {{Shotspeed}} +0.16 Shot speed#{{Heart}} 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
|
||||
[182] = {"182", "Sacred Heart", "↑ {{Heart}} +1 Health#↑ {{Damage}} x2.3 Damage multiplier#↑ {{Damage}} +1 Damage#↓ {{Tears}} -0.4 Tears#↓ {{Shotspeed}} -0.25 Shot speed#{{Heart}} Full health#Homing tears"}, -- Sacred Heart
|
||||
[184] = {"184", "Holy Grail", "↑ {{Heart}} +1 Health#{{Heart}} Heals 1 heart#Flight"}, -- Holy Grail
|
||||
[186] = {"186", "Blood Rights", "Deals 40 damage to every enemy#{{Warning}} Deals 1 heart of damage to Isaac#After the first use in a room, deals half a heart instead#{{Heart}} Removes Red Hearts first"},
|
||||
[188] = {"188", "Abel", "Mirrors Isaac's movement#Shoots towards Isaac#Deals 3.5 damage per tear#{{Player2}} Deals 7.5 damage as Cain"}, -- Abel
|
||||
@@ -139,7 +137,6 @@ local repCollectibles={
|
||||
[308] = {"308", "Aquarius", "Isaac leaves a trail of creep#{{Damage}} The creep deals 66% of Isaac's damage per second and inherits his tear effects"}, -- Aquarius
|
||||
[309] = {"309", "Pisces", "↑ {{Tears}} +0.5 Fire rate#↑ {{Tearsize}} +0.12 Tear size#Increases tear knockback"}, --Pisces
|
||||
[310] = {"310", "Eve's Mascara", "↑ {{Damage}} x2 Damage multiplier#↓ {{Tears}} x0.66 Tear multiplier#↓ {{Shotspeed}} -0.5 Shot speed"},
|
||||
[311] = {"311", "Judas' Shadow", "{{Player12}} When dead, respawn as Dark Judas with a 2x damage multiplier#{{Player24}} Tainted Judas simply revives"}, --Judas' Shadow
|
||||
[314] = {"314", "Thunder Thighs", "↑ {{Heart}} +1 Health#↓ {{Speed}} -0.4 Speed#{{Heart}} Heals 1 heart#Isaac can destroy rocks by walking into them"}, -- Thunder Thighs
|
||||
[315] = {"315", "Strange Attractor", "Isaac's tears attract enemies, pickups and trinkets#The attraction effect is much stronger at the end of the tears' path"}, -- Strange Attractor
|
||||
[316] = {"316", "Cursed Eye", "Charged wave of 5 tears#{{Warning}} Taking damage while partially charged teleports Isaac to a random room#{{Collectible260}} Black Candle removes the teleportation effect"}, -- Cursed Eye
|
||||
@@ -150,7 +147,6 @@ local repCollectibles={
|
||||
[328] = {"328", "The Negative", "↑ {{Damage}} +1 Damage#Taking damage at half a Red Heart or none damages all enemies in the room"}, -- The Negative
|
||||
[330] = {"330", "Soy Milk", "↑ {{Tears}} x5.5 Fire rate multiplier#↓ {{Damage}} x0.2 Damage multiplier#↓ {{Tearsize}} -0.3 Tear size#Drastically reduces knockback"}, -- Soy Milk
|
||||
[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
|
||||
[332] = {"332", "Lazarus' Rags", "{{Player11}} When dead, revive as Lazarus (Risen)#{{Player29}} Tainted Lazarus simply revives"},
|
||||
[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
|
||||
@@ -355,12 +351,12 @@ local repCollectibles={
|
||||
[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
|
||||
[670] = {"670", "Options?", "Allows Isaac to choose from two different room clear rewards"}, -- Options?
|
||||
[671] = {"671", "Candy Heart", "↑ Picking up {{Heart}} Red Hearts grants random permanent stat ups#{{Heart}} Spawns a Red Heart"}, -- Candy Heart
|
||||
[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
|
||||
[673] = {"673", "Redemption", "{{DevilRoom}} Entering a new floor after visiting a Devil Room and not taking any item/pickup grants:#↑ {{Damage}} +1 Damage#{{SoulHeart}} +1 Soul Heart"}, -- Redemption
|
||||
[674] = {"674", "Spirit Shackles", "Taking fatal damage transforms Isaac into a ghost chained to his dead body and allows him to continue to fight with half a heart#If the ghost survives, Isaac revives after 10 seconds#Must be recharged by picking up a Soul Heart"}, -- Spirit Shackles
|
||||
[675] = {"675", "Cracked Orb", "Taking damage:#Unlocks all locked doors in the room#Reveals a random room on the map#Destroys all tinted and crawlspace rocks"}, -- Cracked Orb
|
||||
[676] = {"676", "Empty Heart", "{{EmptyHeart}} +1 Empty heart container when at 1 Red Heart or less at the start of a new floor#No effect for characters that can't have Red Hearts"}, -- Empty Heart
|
||||
[676] = {"676", "Empty Heart", "{{EmptyHeart}} +1 Empty heart container when at 1 Red Heart or less at the start of a new floor"}, -- Empty Heart
|
||||
[677] = {"677", "Astral Projection", "{{Timer}} Taking damage in an uncleared room grants for the fight:#Spectral tears#Flight#Negates the next damage taken#Stops time for 2 seconds#Greatly increases speed and fire rate for 2 seconds"}, -- Astral Projection
|
||||
[678] = {"678", "C Section", "{{Chargeable}} Replaces Isaac's tears with a charge attack that shoots homing, spectral fetus tears#{{Damage}} Fetus tears deal about 2.8x Isaac's damage per second"}, -- C Section
|
||||
[679] = {"679", "Lil Abaddon", "{{Collectible399}} Familiar that charges and unleashes a Maw of the Void circle"}, -- Lil Abaddon
|
||||
@@ -563,7 +559,7 @@ EID.descriptions[languageCode].bookOfVirtuesWisps = {
|
||||
[137] = "Inner ring wisp#+1 Wisp per bomb detonated#Wisp's tears can also be remote detonated", -- Remote Detonator
|
||||
[145] = "Outer ring wisp#Wisps are spawned instead of flies#Spawns a blue fly when destroyed", -- Guppy's Head
|
||||
[146] = "Inner ring wisp#Homing tears", -- Prayer Card
|
||||
[147] = "Chance to spawn dip wisps form poop and 1 of 5 mineral wisps from rocks:#{{Collectible132}} Coal, {{Collectible201}} Iron, {{Collectible202}} Gold, {{Collectible68}} Redstone, {{Collectible415}} Diamond", -- Notched Axe
|
||||
[147] = "Chance to spawn dip wisps from poop and 1 of 5 mineral wisps from rocks:#{{Collectible132}} Coal, {{Collectible201}} Iron, {{Collectible202}} Gold, {{Collectible68}} Redstone, {{Collectible415}} Diamond", -- Notched Axe
|
||||
[158] = "Middle ring wisp#High HP wisp that shoots at nearby enemies", -- Crystal Ball
|
||||
[160] = "Middle ring wisp#Summon a beam of light on contact", -- Crack the Sky
|
||||
[164] = "Middle ring wisp#Single room wisp", -- The Candle
|
||||
@@ -732,12 +728,10 @@ EID:updateDescriptionsViaTable(repCarBattery, EID.descriptions[languageCode].car
|
||||
---------- Trinkets ----------
|
||||
|
||||
local repTrinkets={
|
||||
[1] = {"1", "Swallowed Penny", "{{Coin}} Taking damage spawns 1 coin#{{Player14}} 0-1 as Keeper"}, -- Swallowed Penny
|
||||
[10] = {"10", "Wiggle Worm", "↑ {{Tears}} +0.4 Tears#Spectral tears#Isaac's tears move in waves"}, -- Wiggle Worm
|
||||
[11] = {"11", "Ring Worm", "↑ {{Tears}} +0.47 Tears#Spectral tears#Isaac's tears move in spirals with high speed"}, -- Ring Worm
|
||||
[15] = {"15", "Lucky Rock", "{{Coin}} Destroying rocks has a 33% chance to spawn a coin"},-- Lucky Rock
|
||||
[16] = {"16", "Mom's Toenail", "Mom's Foot stomps a random spot in the room every 20 seconds"}, -- Mom's Toenail
|
||||
[23] = {"23", "Missing Poster", "{{Player10}} Respawn as The Lost on death#{{Player31}} Tainted Lost simply revives#{{Warning}} Dying in a {{SacrificeRoom}} Sacrifice Room while holding this trinket unlocks The Lost"}, -- Missing Poster
|
||||
[24] = {"24", "Butt Penny", "{{Coin}} 20% higher chance for coins to spawn from poop#{{Poison}} Picking up coins makes Isaac fart, which poisons and knocks back enemies and projectiles"}, -- Butt Penny
|
||||
[26] = {"26", "Hook Worm", "↑ {{Tears}} +0.4 Tears#↑ {{Range}} +1.5 Range#Spectral tears#Isaac's tears move in angular patterns"}, -- Hook Worm
|
||||
[32] = {"32", "Liberty Cap", "25% chance for a random mushroom effect per room"}, -- Liberty Cap
|
||||
@@ -782,10 +776,10 @@ local repTrinkets={
|
||||
[146] = {"146", "Devil's Crown", "{{RedTreasureRoom}} Treasure Room items are replaced with devil deals"}, -- Devil's Crown
|
||||
[147] = {"147", "Charged Penny", "{{Battery}} Picking up a coin has a 17% chance to add 1 charge to the active item"}, -- Charged Penny
|
||||
[148] = {"148", "Friendship Necklace", "All familiars orbit around Isaac"}, -- Friendship Necklace
|
||||
[149] = {"149", "Panic Button", "Taking damage uses the active item if it is charged"}, -- Panic Button
|
||||
[149] = {"149", "Panic Button", "Right before taking damage, uses the active item if it is charged"}, -- Panic Button
|
||||
[150] = {"150", "Blue Key", "Locked doors can be opened for free, but Isaac has to clear a room from the Hush floor before accessing the room behind them"}, -- Blue Key
|
||||
[151] = {"151", "Flat File", "Retracts most spikes, rendering them harmless#Also affects {{CursedRoom}} Curse Room doors, mimics and any spike obstacle"}, -- Flat File
|
||||
[152] = {"152", "Telescope Lens", "{{PlanetariumChance}} +24% Planetarium chance if none have spawned#+9% if a Planetarium has already spawned#Planetariums can spawn in the Womb and Corpse"}, -- Telescope Lens
|
||||
[152] = {"152", "Telescope Lens", "{{PlanetariumChance}} +9% Planetarium chance#Additional +15% chance if a Planetarium hasn't been entered yet#Planetariums can spawn in the Womb and Corpse"}, -- Telescope Lens
|
||||
[153] = {"153", "Mom's Lock", "25% chance for a random Mom item effect each room"}, -- Mom's Lock
|
||||
[154] = {"154", "Dice Bag", "50% chance per new room to grant a single use die consumable item#The die disappears when leaving#The die does not take up a pill/card slot"}, -- Dice Bag
|
||||
[155] = {"155", "Holy Crown", "Spawns a {{TreasureRoom}} Treasure Room and {{Shop}} Shop in Cathedral"}, -- Holy Crown
|
||||
@@ -807,7 +801,7 @@ local repTrinkets={
|
||||
[171] = {"171", "Keeper's Bargain", "{{DevilRoom}} 50% chance for devil deals to cost coins instead of hearts"}, -- Keeper's Bargain
|
||||
[172] = {"172", "Cursed Penny", "Picking up a coin teleports Isaac to a random room#Can teleport to secret rooms"}, -- Cursed Penny
|
||||
[173] = {"173", "Your Soul", "{{DevilRoom}} Allows Isaac to take 1 Devil Room item for free#{{Warning}} The free Devil deal still affects Angel Room chance"}, -- Your Soul
|
||||
[174] = {"174", "Number Magnet", "{{DevilChance}} +10% Devil Room chance#Prevents Krampus from appearing in Devil Rooms#Devil Rooms are special variants with more deals, Black Hearts and enemies"}, -- Number Magnet
|
||||
[174] = {"174", "Number Magnet", "{{DevilChance}} +10% Devil/Angel Room chance#Prevents Krampus from appearing in Devil Rooms#Devil Rooms are special variants with more deals, Black Hearts and enemies"}, -- Number Magnet
|
||||
[175] = {"175", "Strange Key", "Opens the door to the Hush floor regardless of the timer#Using {{Collectible297}} Pandora's Box consumes the key and spawns 6 items from random pools"}, -- Strange Key
|
||||
[176] = {"176", "Lil Clot", "Spawns a blood clot that mimics Isaac's movement#Copies Isaac's stats, tear effects and 35% of his damage#Respawns each room"}, -- Lil Clot
|
||||
[177] = {"177", "Temporary Tattoo", "{{Chest}} Clearing a {{ChallengeRoom}} Challenge Room spawns a chest#Clearing a {{BossRushRoom}} Boss Challenge Room spawns an item"}, -- Temporary Tattoo
|
||||
@@ -956,7 +950,7 @@ EID.descriptions[languageCode].tarotClothBuffs = {
|
||||
[11] = {"Spawns {{ColorShinyPurple}}2{{CR}} {{Slotmachine}} Slot Machines or {{FortuneTeller}} Fortune Machines"}, -- X - Wheel of Fortune
|
||||
[12] = {1, 2, 0.3, 0.6, 0.3, 0.6, 2.5, 5}, -- XI - Strength
|
||||
[14] = {40, 80}, -- XIII - Death
|
||||
[15] = {"{{DonationMachine}} Spawns {{ColorShinyPurple}}2{{CR}} Blood Donation Machines#{{GreedMode}} Spawns {{ColorShinyPurple}}2{{CR}} Devil Beggars in Greed Mode"}, -- XIV - Temperance
|
||||
[15] = {"{{DonationMachine}} Spawns {{ColorShinyPurple}}2{{CR}} Blood Donation Machines"}, -- XIV - Temperance
|
||||
[16] = {2, 4}, -- XV - The Devil
|
||||
[17] = {6, 12}, -- XVI - The Tower
|
||||
[18] = "If the Treasure Room hasn't been entered yet, it will have two items to choose from", -- XVII - The Stars
|
||||
@@ -1008,7 +1002,7 @@ local repPills={
|
||||
[43] = {"42", "I'm Excited!!", "{{Timer}} Speeds up Isaac and all enemies in the room#Triggers again after 30 and 60 seconds"}, -- I'm Excited!!
|
||||
[48] = {"47", "Shot speed Down", "↓ {{Shotspeed}} -0.15 Shot speed"}, -- Shot speed Down
|
||||
[49] = {"48", "Shot speed Up", "↑ {{Shotspeed}} +0.15 Shot speed"}, -- Shot speed Up
|
||||
[50] = {"49", "Experimental Pill", "↑ Increases 1 random stat#↓ Decreases 1 random stat#No stat decrease with {{Collectible75}}PHD, {{Collectible46}}Lucky Foot or {{Collectible303}}Virgo#No stat increase with {{Collectible654}}False PHD"}, -- Experimental Pill
|
||||
[50] = {"49", "Experimental Pill", "↑ Increases 1 random stat#↓ Decreases 1 random stat"}, -- Experimental Pill
|
||||
[9999] = {"", "Golden Pill", "Random pill effect#Has a chance to destroy itself with each use"}, -- golden Pill
|
||||
}
|
||||
EID:updateDescriptionsViaTable(repPills, EID.descriptions[languageCode].pills)
|
||||
@@ -1063,7 +1057,7 @@ EID.descriptions[languageCode].horsepills={
|
||||
{"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
|
||||
{"49", "Experimental Pill", "↑ Increases 1 random stat twice#↓ Decreases 1 random stat twice#No stat decrease with {{Collectible75}} PHD, {{Collectible46}} Lucky Foot or {{Collectible303}} Virgo#No stat increase with {{Collectible654}} False PHD"}, -- Experimental Pill
|
||||
{"49", "Experimental Pill", "↑ Increases 1 random stat twice#↓ Decreases 1 random stat twice"}, -- Experimental Pill
|
||||
[9999] = {"", "Golden Pill", "Random horse pill effect#Has a chance to destroy itself with each use"}, -- Golden Pill
|
||||
}
|
||||
|
||||
@@ -1077,7 +1071,7 @@ EID.descriptions[languageCode].GlitchedItemText = {
|
||||
AddBlackHearts = "{{BlackHeart}} {1} Black Heart",
|
||||
AddBombs = "{{Bomb}} {1} Bomb",
|
||||
AddCoins = "{{Coin}} {1} Coin",
|
||||
AddHearts = "Heals {{Heart}} {1} heart",
|
||||
AddHearts = "{{Heart}} Heals {1} heart",
|
||||
AddKeys = "{{Key}} {1} Key",
|
||||
AddMaxHearts = "{{EmptyHeart}} {1} Heart container",
|
||||
AddSoulHearts = "{{SoulHeart}} {1} Soul Heart",
|
||||
@@ -1089,21 +1083,21 @@ EID.descriptions[languageCode].GlitchedItemText = {
|
||||
-- Attribute triggers
|
||||
active = "On use:#",
|
||||
pickup_collected = "On collecting a pickup:#",
|
||||
enemy_kill = "Killing an enemy might:#",
|
||||
enemy_kill = "Killing an enemy has a 20% chance to:#",
|
||||
damage_taken = "Upon taking damage:#",
|
||||
entity_spawned = "When a {T1} is spawned:#",
|
||||
tear_fire = "Firing a tear might:#",
|
||||
enemy_hit = "Hitting an enemy might:#",
|
||||
tear_fire = "Firing a tear has a 5% chance to:#",
|
||||
enemy_hit = "Hitting an enemy has a 5% chance to:#",
|
||||
room_clear = "On clearing a room:#",
|
||||
chain = "Then:{{CR}} ",
|
||||
|
||||
-- Attribute effects
|
||||
area_damage = "Deal {1} damage in an area around Isaac",
|
||||
area_damage = "Deal {1} damage in {2} tiles around Isaac",
|
||||
add_temporary_effect = "Grant {1} for the room",
|
||||
convert_entities = "Convert all {1} in the room to {2}",
|
||||
use_active_item = "Use {1}",
|
||||
spawn_entity = "Spawn a {1}",
|
||||
fart = "Fart with size {1}",
|
||||
fart = "Fart on {1} tiles around Isaac",
|
||||
|
||||
-- Generic entity names not obtained from entities2.xml
|
||||
-- This could also be a place to localize entity names; this table is read from before EID.XMLEntityNames
|
||||
@@ -1121,6 +1115,9 @@ EID.descriptions[languageCode].GlitchedItemText = {
|
||||
["999.-1"] = "grid object",
|
||||
["1000.0"] = "effect",
|
||||
|
||||
-- Text for the base item that is granted
|
||||
grants = "Grants ",
|
||||
|
||||
}
|
||||
|
||||
---------- Misc. Text ----------
|
||||
@@ -1170,11 +1167,15 @@ EID.descriptions[languageCode].ClearRuneCharge = "Clear Rune charge:"
|
||||
EID.descriptions[languageCode].PlaceboCharge = "Placebo charge:"
|
||||
EID.descriptions[languageCode].FlipItemToggleInfo = "(Hold {{CONFIG_BoC_Toggle}} to show description)"
|
||||
|
||||
EID.descriptions[languageCode].GlowingHourglassTransformed = "Will change back to Glowing Hourglass next floor"
|
||||
|
||||
EID.descriptions[languageCode].FalsePHDHeart = "Spawns 1 {{BlackHeart}} Black Heart"
|
||||
EID.descriptions[languageCode].FalsePHDDamage = "↑ {{Damage}} +0.6 Damage"
|
||||
EID.descriptions[languageCode].FalsePHDHorseDamage = "↑ {{Damage}} +1.2 Damage"
|
||||
|
||||
EID.descriptions[languageCode].ExperimentalPillPHD = "No stat decrease"
|
||||
EID.descriptions[languageCode].ExperimentalPillFalsePHD = "No random stat increase"
|
||||
|
||||
EID.descriptions[languageCode].PandorasBoxStrangeKeyEffect = "Instead, consumes the key and spawns 6 items from random pools"
|
||||
|
||||
EID.descriptions[languageCode].AchievementWarningTitle = "{{ColorYellow}}{{Warning}} WARNING {{Warning}}"
|
||||
@@ -1182,10 +1183,25 @@ EID.descriptions[languageCode].AchievementWarningText = "Achievements are disabl
|
||||
|
||||
EID.descriptions[languageCode].OldGameVersionWarningText = "EID is updated for the newest Steam version#Your game version is not officially supported, so some descriptions and features will be inaccurate#(This warning can be disabled in the config)"
|
||||
|
||||
EID.descriptions[languageCode].ModdedRecipesWarningText = "Modded items could make the crafting recipe calculation inaccurate!#Use the Item Probability display mode or turn off the Bag of Crafting display if your recipes are incorrect#(This warning can be disabled in the config)"
|
||||
EID.descriptions[languageCode].ModdedRecipesWarningText = "Modded items could make the crafting recipe calculation inaccurate!#Install REPENTOGON for modded recipe support#(This warning can be disabled in the config)"
|
||||
|
||||
EID.descriptions[languageCode].ResultsWithX = "(Results with {1})"
|
||||
|
||||
|
||||
local repConditions={
|
||||
["5.100.161"] = "{{Player25}} Tainted ??? simply revives", -- Ankh
|
||||
["5.350.28"] = "{{Player25}} Tainted ??? simply revives", -- Broken Ankh
|
||||
["5.100.311"] = "{{Player24}} Tainted Judas simply revives", -- Judas's Shadow
|
||||
["5.100.332"] = "{{Player29}} Tainted Lazarus simply revives", -- Lazarus's Rags
|
||||
["5.350.23 (Tainted Lost)"] = "{{Player31}} Tainted Lost simply revives", -- Missing Poster
|
||||
["5.100.676"] = "No effect for characters that can't have Red Hearts", -- Empty Heart
|
||||
["5.300.15 (Tarot)"] = "{{DemonBeggar}} Spawns {{ColorShinyPurple}}2{{CR}} Devil Beggars", -- Temperance (Greed Mode + Tarot Cloth effect)
|
||||
["5.350.1"] = "{{Player14}} Spawns 0-1 coin as Keeper", -- Swallowed Penny
|
||||
["5.100.135 (Hard Mode)"] = {"1-2 coins", "1 coin", "2-3 coins", "2 coins"}, -- IV Bag Hard Mode (modify the PHD text too)
|
||||
}
|
||||
EID:updateDescriptionsViaTable(repConditions, EID.descriptions[languageCode].ConditionalDescs)
|
||||
|
||||
|
||||
-- If Debug enabled, add overwrite tables to the languagepack in order for the language completion script to be able to compare them
|
||||
if EID.enableDebug then
|
||||
EID.descriptions[languageCode].repCollectibles = repCollectibles
|
||||
@@ -1193,3 +1209,8 @@ if EID.enableDebug then
|
||||
EID.descriptions[languageCode].repCards = repCards
|
||||
EID.descriptions[languageCode].repPills = repPills
|
||||
end
|
||||
|
||||
if REPENTOGON then
|
||||
EID.descriptions[languageCode].custom["6.8.0"] = {"0", "Donation Machine", "Next achievement at {1} coins, {2} coins remaining#{{Luck}} 2% chance for +1 Luck when donating#{{AngelRoom}} Donating 10 coins increases Angel Room chance"}
|
||||
EID.descriptions[languageCode].custom["6.11.0"] = {"0", "Greed Donation Machine", "Next achievement at {1} coins, {2} coins remaining"}
|
||||
end
|
||||
+13
-11
@@ -791,11 +791,11 @@ local repCarBattery = {
|
||||
[635] = "!!! {{BlinkYellowGreen}}더 이상 인형의 위치와 맞바꿀 수 없으나{{CR}} 두 위치 모두 주변의 적에게 피해를 줍니다.", -- Stitches
|
||||
[639] = {"+1", "+2"}, -- Yuck Heart
|
||||
[642] = {"하나", "2개", "소지 불가능 체력 1칸", "{{CR}}소지 불가능 체력 {{BlinkYellowRed}}2칸", "1칸 또는 {{SoulHeart}}2칸", "2칸 또는 {{SoulHeart}}4칸"}, -- Magic Skin
|
||||
[605] = {"소환합니다", "2마리{{CR}} 소환합니다"}, -- Plum Flute
|
||||
[650] = {"소환합니다", "2마리{{CR}} 소환합니다"}, -- Plum Flute
|
||||
[687] = {"소환합니다", "2마리{{CR}} 소환합니다"}, -- Friend Finder
|
||||
[705] = {"1초", "2초"}, -- Dark Arts
|
||||
[712] = {"소환합니다", "2마리{{CR}} 소환합니다"}, -- Lemegeton
|
||||
[712] = {"소환합니다", "2개{{CR}} 소환합니다"}, -- Keeper's Box
|
||||
[719] = {"소환합니다", "2개{{CR}} 소환합니다"}, -- Keeper's Box
|
||||
[720] = "똥을 추가로 쌉니다.", -- Everything Jar
|
||||
[722] = {"가장 가까운 적을", "가장 가까운 적 2마리를"}, --Anima Sola
|
||||
[723] = {"앞번호", "앞 2개 번호"}, -- Spindown Dice
|
||||
@@ -1199,23 +1199,23 @@ EID.descriptions[languageCode].GlitchedItemText = {
|
||||
[0] = "{{DamageSmall}}공격력", "{{TearsSmall}}연사(+상한)", "{{ShotspeedSmall}}탄속", "{{RangeSmall}}사거리", "{{SpeedSmall}}이동속도", "눈물효과", "눈물색깔", "비행", "공격 유형", "패밀리어", "{{LuckSmall}}행운", "캐릭터의 크기", "캐릭터의 색깔", "상자 내용물", [16] = "모든 능력치",
|
||||
|
||||
-- Attribute triggers
|
||||
chain = "그 다음:{{CR}} ",
|
||||
chain = "체인:{{CR}} ",
|
||||
active = "아이템 사용 시:#",
|
||||
pickup_collected = "픽업을 주울 시:#",
|
||||
enemy_kill = "적을 죽일 시 확률적으로 발동:#",
|
||||
enemy_kill = "적을 죽일 시 20%의 확률로:#",
|
||||
damage_taken = "캐릭터가 피격 시:#",
|
||||
entity_spawned = "{T1}이/가 소환될 시:#",
|
||||
tear_fire = "눈물 발사 시 확률적으로 발동:#",
|
||||
enemy_hit = "적들이 피격 시 확률적으로 발동:#",
|
||||
tear_fire = "눈물 발사 시 5%의 확률로:#",
|
||||
enemy_hit = "적 명중 시 5%의 확률로:#",
|
||||
room_clear = "방 클리어 시:#",
|
||||
|
||||
-- Attribute effects
|
||||
area_damage = "캐릭터 주변의 적에게 {1}의 피해를 줍니다.",
|
||||
add_temporary_effect = "현재 방에서 {1} 아이템의 효과를 얻습니다.",
|
||||
convert_entities = "방 안의 {1}을/를 {2}(으)로 바꿉니다.",
|
||||
area_damage = "캐릭터 주변 {2} 범위 적에게 {1}의 피해를 줍니다.",
|
||||
add_temporary_effect = "그 방에서 {1} 아이템의 효과를 얻습니다.",
|
||||
convert_entities = "그 방의 {1}을/를 {2}(으)로 바꿉니다.",
|
||||
use_active_item = "{1}을/를 사용합니다.",
|
||||
spawn_entity = "{1}을/를 소환합니다.",
|
||||
fart = "{1}의 크기만큼 방귀를 뀝니다.",
|
||||
fart = "{1}칸의 크기만큼 방귀를 뀝니다.",
|
||||
|
||||
-- Generic entity names not obtained from entities2.xml
|
||||
-- This could also be a place to localize entity names; this table is read from before EID.XMLEntityNames
|
||||
@@ -1233,6 +1233,8 @@ EID.descriptions[languageCode].GlitchedItemText = {
|
||||
["999.-1"] = "장애물",
|
||||
["1000.0"] = "효과",
|
||||
|
||||
grants = "아이템 적용:#",
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1304,7 +1306,7 @@ EID.descriptions[languageCode].AchievementWarningText = "{{ColorRed}}지금 모
|
||||
|
||||
EID.descriptions[languageCode].OldGameVersionWarningText = "리펜턴스가 최신 버전이 아닙니다!#최신 버전이 아닐 경우 모드 오류가 발생할 수 있습니다(1.7.9b).#(config 설정을 수정하여 메세지를 비활성화 할 수 있습니다.)"
|
||||
|
||||
EID.descriptions[languageCode].ModdedRecipesWarningText = "아이템 추가 모드나 아이템 배열 변경 모드가 적용되어 있을 경우 조합법이 일치하지 않을 수 있습니다.#조합법 설명을 숨기거나 BagOfCraftingDisplayRecipesMode를 Itempool percentage로 설정해 주세요.#(config 설정을 수정하여 해당 메세지를 비활성화 할 수 있습니다.)"
|
||||
EID.descriptions[languageCode].ModdedRecipesWarningText = "아이템 추가 모드나 아이템 배열 변경 모드가 적용되어 있을 경우 조합법이 일치하지 않을 수 있습니다.#조합법 설명을 숨기거나 REPENTOGON 모드를 설치해 주세요.#(config 설정을 수정하여 해당 메세지를 비활성화 할 수 있습니다.)"
|
||||
|
||||
|
||||
|
||||
|
||||
+13
-11
@@ -2,7 +2,7 @@
|
||||
----- Basic Chinese descriptions ---
|
||||
--------------------------------------
|
||||
|
||||
-- Last Update: 2023.12.20
|
||||
-- Last Update: 2023.12.25
|
||||
-- FORMAT: Item ID | Name | Description
|
||||
|
||||
-- Special character markup:
|
||||
@@ -399,7 +399,7 @@ local repCollectibles={
|
||||
[720] = {"720", "百宝罐", "使用时生成掉落物,使用时的充能不同,效果不同#满充能时具有强力随机效果#充能:1:便便 2:{{Coin}} 3:{{Bomb}} 4:{{Key}} 5:{{Heart}} 6:{{Pill}} 7:{{Card}} 8:{{SoulHeart}} 9:{{GoldenHeart}} 10:{{GoldenKey}} 11:{{GoldenBomb}}"}, -- Everything Jar
|
||||
[721] = {"721", "错误技", "使未来获得的所有物品混乱#其效果完全随机"}, -- TMTRAINER
|
||||
[722] = {"722", "孤魂铁索", "禁锢离角色最近的敌人5秒"}, -- Anima Sola
|
||||
[723] = {"723", "计数二十面骰", "将房间内所有道具转变为内部ID减1的道具"}, -- Spindown Dice
|
||||
[723] = {"723", "计数二十面骰", "将房间内所有道具重置为内部ID减1的道具"}, -- Spindown Dice
|
||||
[724] = {"724", "高凝血", "{{Heart}} 受伤时生成半红心或整红心#产生的红心在1.5秒后消失"}, -- Hypercoagulation
|
||||
[725] = {"725", "大肠激躁症", "造成足够伤害后,停止攻击并触发随机{{Player25}}堕化???的效果:#投掷随机便便#生成增益水迹#放有毒的屁#放置5个激活的炸弹"}, -- IBS
|
||||
[726] = {"726", "咯血症", "双击发射键咯血#{{Damage}} 对前方的敌人造成150%角色伤害#1秒冷却时间#{{BrimstoneCurse}} 被击中的敌人会受到硫磺火束的额外伤害"}, -- Hemoptysis
|
||||
@@ -418,10 +418,10 @@ EID:updateDescriptionsViaTable(repCollectibles, EID.descriptions[languageCode].c
|
||||
EID.descriptions[languageCode].birthright ={
|
||||
{"以撒", "", "所有道具在2个选择间切换"},
|
||||
{"抹大拉", "", "↑ +1心之容器#心上限提高到18"},
|
||||
{"该隐", "", "↑ {{Luck}} +1运气#除暗室和宝箱层外,所有层都含有一个升级的赌博房#极大增强{{Collectible46}}幸运脚的获胜几率提高的效果"},
|
||||
{"该隐", "", "↑ {{Luck}} +1运气#除暗室、玩具箱、???、虚空,家层外,所有层都含有一个升级的赌博房#极大增强{{Collectible46}}幸运脚的获胜几率提高的效果"},
|
||||
{"犹大", "", "{{Collectible34}}彼列之书变成类似于{{Collectible584}}美德之书的被动道具#如果未持有{{Collectible34}}彼列之书则获得彼列之书#获得的伤害加成与在其上的主动道具充能量成比例#对特定的主动道具会获得特殊效果"},
|
||||
{"???", "", "生命提升获得的魂心翻倍"},
|
||||
{"夏娃", "", "无论血量如何,巴比伦娼妇始终激活#不受伤死鸟也会激活"},
|
||||
{"夏娃", "", "巴比伦大淫妇和死鸟始终激活"},
|
||||
{"参孙", "", "嗜血获得额外4次伤害加成,新的上限为+14伤害"},
|
||||
{"阿撒泻勒", "", "阿撒泻勒的硫磺火变得更宽,就像超级喷射一样#对伤害无影响"},
|
||||
{"拉撒路", "", "无特殊效果,除非死亡并以复活的拉撒路重生#{{Damage}} 复活的拉撒路+7.2额外伤害#额外伤害在接下来的一分钟内逐渐衰退#击杀敌人可以延长获得额外伤害的时间"},
|
||||
@@ -431,20 +431,20 @@ EID.descriptions[languageCode].birthright ={
|
||||
{"黑暗犹大", "", "{{Collectible34}}彼列之书变成类似于{{Collectible584}}美德之书的被动道具#如果未持有{{Collectible34}}彼列之书则获得彼列之书#获得的伤害加成与在其上的主动道具充能量成比例"},
|
||||
{"莉莉丝", "", "跟班在莉莉丝面前位置"},
|
||||
{"店主", "", "↑ +1心之容器"},
|
||||
{"亚玻伦", "", "使用{{Collectible477}}虚空时有几率生成之前被虚空化的道具#属性加成保留#使用的次数越多,生成道具的几率越高"},
|
||||
{"亚玻伦", "", "使用{{Collectible477}}虚空时有几率生成之前被虚空吸收的道具#属性加成保留#使用的次数越多,生成道具的几率越高"},
|
||||
{"遗骸", "", "灵魂不再受锁,可自由移动"},
|
||||
{"遗骸之魂", "", "灵魂不再受锁,可自由移动"},
|
||||
{"伯大尼", "", "使用魂心充能主动道具时几率不消耗魂心"},
|
||||
{"雅各", "", "拿起这个道具的角色获得另1个角色3个被动道具的复制"},
|
||||
{"以扫", "", "拿起这个道具的角色获得另1个角色3个被动道具的复制"},
|
||||
{"堕化以撒", "", "增加4个额外被动道具槽位#本身不占用槽位"},
|
||||
{"堕化抹大拉", "", "增加1不流失的红心"},
|
||||
{"堕化该隐", "", "道具生成的掉落物数量翻倍"},
|
||||
{"堕化抹大拉", "", "↑ 增加1不流失的红心#恢复1红心"},
|
||||
{"堕化该隐", "", "道具分解生成的掉落物数量翻倍"},
|
||||
{"堕化犹大", "", "{{Collectible705}}暗仪刺刀击中敌人和弹幕的范围变大"},
|
||||
{"堕化???", "", "增加便便最大携带量为29"},
|
||||
{"堕化夏娃", "", "死亡的红心血凝块生成红心,2秒后消失"},
|
||||
{"堕化参孙", "", "堕化参孙杀死敌人时狂暴计时器增加3秒而不是1秒"},
|
||||
{"堕化阿撒泻勒", "", "堕化阿撒泻勒的{{Collectible726}}咯血症攻击大小加倍"},
|
||||
{"堕化阿撒泻勒", "", "堕化阿撒泻勒的{{Collectible726}}咯血症攻击范围加倍"},
|
||||
{"堕化拉撒路", "", "生成另一种状态的角色的幻影作为副角色#幻影免疫伤害,可以发射眼泪,造成25%的伤害#主角色对首领的伤害降低20%#两个角色都有长子名分的效果"},
|
||||
{"堕化伊甸", "", "在长子权之前拿到的被动和主动道具不再因为受伤而重置"},
|
||||
{"堕化游魂", "", "获得1额外生命#复活的游魂在相同房间中重生并对附近敌人造成200点伤害"},
|
||||
@@ -700,7 +700,7 @@ EID.descriptions[languageCode].abyssSynergies = {
|
||||
}
|
||||
|
||||
-- Effect of Car battery on Active Items
|
||||
EID.descriptions[languageCode].carBattery = {
|
||||
local repCarBattery = {
|
||||
[323] = "泪弹造成两次伤害", -- Isaac's Tears
|
||||
[421] = "", -- Kidney Bean, 双倍放屁伤害于忏悔移除
|
||||
[489] = "触发两次当前所选择骰子的效果", -- D Infinity
|
||||
@@ -708,12 +708,14 @@ EID.descriptions[languageCode].carBattery = {
|
||||
[556] = "获得两次硫磺火,给予额外伤害", -- Sulfur
|
||||
[584] = "双倍魂火", -- Book of Virtues
|
||||
[605] = "生成两个窥眼跟班,不给予额外伤害", -- The Scooper
|
||||
[609] = "道具消失的几率提高", -- Eternal D6
|
||||
[609] = "道具消失的概率提高", -- Eternal D6
|
||||
[625] = "效果持续60秒", -- Mega Mush
|
||||
[705] = "暗影效果持续2秒", -- Dark Arts
|
||||
[720] = "随掉落物一起生成一个大便", -- Everything Jar
|
||||
[723] = "转变为内部ID减2的道具", -- Spindown Dice
|
||||
[723] = "重置为内部ID减2的道具", -- Spindown Dice
|
||||
}
|
||||
--EID.descriptions[languageCode].carBattery[284] = nil -- D4
|
||||
EID:updateDescriptionsViaTable(repCarBattery, EID.descriptions[languageCode].carBattery)
|
||||
|
||||
---------- Trinkets ----------
|
||||
|
||||
|
||||
+19
-44
@@ -395,6 +395,7 @@ function EID:getDescriptionObj(Type, Variant, SubType, entity, checkModifiers)
|
||||
EID:getObjectItemTypeAndCharge(description)
|
||||
|
||||
if checkModifiers ~= false then
|
||||
description = EID:applyConditionals(description)
|
||||
description = EID:applyDescriptionModifier(description, SubType)
|
||||
end
|
||||
return description
|
||||
@@ -482,7 +483,8 @@ end
|
||||
-- falls back to english if it doesnt exist, unless specified otherwise
|
||||
function EID:getDescriptionEntry(objTable, objID, noFallback)
|
||||
if not objID then
|
||||
return EID.descriptions[EID:getLanguage()][objTable] or EID.descriptions["en_us"][objTable]
|
||||
if noFallback then return EID.descriptions[EID:getLanguage()][objTable]
|
||||
else return EID.descriptions[EID:getLanguage()][objTable] or EID.descriptions["en_us"][objTable] end
|
||||
else
|
||||
local translatedTable = EID.descriptions[EID:getLanguage()][objTable]
|
||||
if noFallback then return translatedTable and translatedTable[objID]
|
||||
@@ -608,7 +610,7 @@ function EID:getObjectName(Type, Variant, SubType)
|
||||
elseif tableName == "dice" then
|
||||
return EID:getDescriptionEntry("diceHeader").." ("..SubType..")"
|
||||
elseif tableName == "custom" then
|
||||
local xmlName = EID.XMLEntityNames[Type.."."..Variant] or EID.XMLEntityNames[Type.."."..Variant.."."..SubType]
|
||||
local xmlName = EID:GetEntityXMLName(Type, Variant, SubType)
|
||||
return name or xmlName or Type.."."..Variant.."."..SubType
|
||||
end
|
||||
return Type.."."..Variant.."."..SubType
|
||||
@@ -1156,54 +1158,19 @@ function EID:PlayersHaveTrinket(trinketID)
|
||||
return false
|
||||
end
|
||||
|
||||
-- Checks if someone playing as certain character, for modifiers
|
||||
function EID:PlayersHaveCharacter(playerType)
|
||||
-- Checks if someone is playing as a certain character, for modifiers
|
||||
-- includeTainted means we don't care if the player is Tainted or not (for things that, say, apply to Lost/Tainted Lost)
|
||||
function EID:PlayersHaveCharacter(playerType, includeTainted)
|
||||
for i = 0, game:GetNumPlayers() - 1 do
|
||||
local player = Isaac.GetPlayer(i)
|
||||
if player:GetPlayerType() == playerType then
|
||||
return true, player
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
-- Obtains information about glitched items from the ItemConfig (hearts added on pickup, cacheflags affected), returns string of info
|
||||
local itemConfigItemAttributes = { "AddMaxHearts", "AddHearts", "AddSoulHearts", "AddBlackHearts", "AddBombs", "AddCoins", "AddKeys", "CacheFlags" }
|
||||
function EID:CheckGlitchedItemConfig(id)
|
||||
local localizedNames = EID:getDescriptionEntry("GlitchedItemText")
|
||||
local item = EID.itemConfig:GetCollectible(id)
|
||||
if not item then return "" end
|
||||
local attributes = "#"
|
||||
for _,v in ipairs(itemConfigItemAttributes) do
|
||||
local val = item[v]
|
||||
if val ~= 0 then
|
||||
if (v == "CacheFlags") then
|
||||
local flagString = localizedNames["cacheFlagStart"]
|
||||
if val == CacheFlag.CACHE_ALL then
|
||||
flagString = flagString .. localizedNames[16]
|
||||
else
|
||||
for i=0, 13 do
|
||||
if 2^i & val ~= 0 then
|
||||
flagString = flagString .. localizedNames[i] .. ", "
|
||||
end
|
||||
end
|
||||
flagString = string.sub(flagString, 0, -3) -- remove final comma
|
||||
end
|
||||
attributes = attributes .. flagString .. "#"
|
||||
else
|
||||
-- the Add Heart attributes count half a heart as 1, so divide the value in half
|
||||
if string.find(v, "Hearts") then val = val / 2 end
|
||||
-- the g flag removes .0 in numbers like 1.0 (caused by the hearts division)
|
||||
local s = string.format("%.4g",val)
|
||||
local prefix = "↑ "
|
||||
if val > 0 then s = "+" .. s else prefix = "↓ " end
|
||||
attributes = attributes .. prefix .. string.gsub(localizedNames[v], "{1}", s)
|
||||
if val ~= 1 and val ~= -1 then attributes = attributes .. localizedNames["pluralize"] end
|
||||
attributes = attributes .. "#"
|
||||
end
|
||||
if includeTainted and REPENTANCE and Isaac.GetPlayerTypeByName(player:GetName()) == playerType then
|
||||
return true, player
|
||||
end
|
||||
end
|
||||
return attributes
|
||||
return false
|
||||
end
|
||||
|
||||
-- Converts a given CollectibleID into the respective Spindown dice result
|
||||
@@ -1702,7 +1669,10 @@ function EID:evaluateTransformationProgress(transformation)
|
||||
|
||||
if not EID.TransformationLookup[transformation] then return end
|
||||
|
||||
if transformData and transformData.VanillaForm and player:HasPlayerForm(transformData.VanillaForm) then
|
||||
if REPENTOGON and transformData and transformData.VanillaForm then
|
||||
-- REPENTOGON lets us ignore everything else for vanilla transformation progress
|
||||
EID.TransformationProgress[i][transformation] = player:GetPlayerFormCounter(transformData.VanillaForm)
|
||||
elseif transformData and transformData.VanillaForm and player:HasPlayerForm(transformData.VanillaForm) then
|
||||
EID.TransformationProgress[i][transformation] = transformData.NumNeeded or 3
|
||||
else
|
||||
local pickupHistory = EID.PlayerItemInteractions[i].pickupHistory
|
||||
@@ -1958,3 +1928,8 @@ end
|
||||
function EID:WasPillUsed(pillColor)
|
||||
return EID.UsedPillColors[tostring(pillColor)] ~= nil
|
||||
end
|
||||
|
||||
-- returns the name of the given entity
|
||||
function EID:GetEntityXMLName(Type, Variant, SubType)
|
||||
return EID.XMLEntityNames[Type.."."..Variant] or EID.XMLEntityNames[Type.."."..Variant.."."..SubType]
|
||||
end
|
||||
+33
-44
@@ -526,45 +526,28 @@ local function GameStartCrafting()
|
||||
CraftingItemAllowed[item.ID] = EID:isCollectibleAllowed(item.ID)
|
||||
end
|
||||
end
|
||||
if not EID:PlayersHaveCollectible(CollectibleType.COLLECTIBLE_TMTRAINER) then
|
||||
-- Check for modded items past the known max item ID on game start (can also support game updates)
|
||||
-- Only works if the new items are at Weight 1.0 in their item pools, but better than nothing
|
||||
if EID.Config["BagOfCraftingModdedRecipes"] and EID.itemConfig:GetCollectible(EID.XMLMaxItemID+1) ~= nil and not moddedCrafting then
|
||||
-- Save last pool
|
||||
local itemPool = game:GetItemPool()
|
||||
local lastPool = itemPool:GetLastPool()
|
||||
-- Items past max ID detected
|
||||
CraftingMaxItemID = EID.XMLMaxItemID -- XMLMaxItemID is never modified
|
||||
-- Add new item qualities
|
||||
local coll = EID.itemConfig:GetCollectible(CraftingMaxItemID+1)
|
||||
while coll ~= nil do
|
||||
CraftingMaxItemID = CraftingMaxItemID + 1
|
||||
CraftingItemQualities[coll.ID] = coll.CraftingQuality or coll.Quality
|
||||
CraftingItemAllowed[coll.ID] = true
|
||||
coll = EID.itemConfig:GetCollectible(CraftingMaxItemID+1)
|
||||
-- Use REPENTOGON to support modded items / updating the XML item pools
|
||||
if REPENTOGON and not moddedCrafting then
|
||||
-- Add modded items
|
||||
CraftingMaxItemID = EID.XMLMaxItemID
|
||||
local coll = EID.itemConfig:GetCollectible(CraftingMaxItemID+1)
|
||||
while coll ~= nil do
|
||||
CraftingMaxItemID = CraftingMaxItemID + 1
|
||||
CraftingItemQualities[coll.ID] = coll.CraftingQuality or coll.Quality
|
||||
CraftingItemAllowed[coll.ID] = true
|
||||
coll = EID.itemConfig:GetCollectible(CraftingMaxItemID+1)
|
||||
end
|
||||
-- Redo the entire item pool table, not just add modded items, in case of mods messing the vanilla ones up
|
||||
local itemPool = game:GetItemPool()
|
||||
for poolNum,_ in pairs(poolToIcon) do
|
||||
CraftingItemPools[poolNum+1] = {}
|
||||
local thePool = itemPool:GetCollectiblesFromPool(poolNum)
|
||||
for _,collTable in pairs(thePool) do
|
||||
table.insert(CraftingItemPools[poolNum+1], {collTable.itemID, collTable.weight})
|
||||
end
|
||||
-- Add new items to the crafting item pools, assuming Weight 1.0
|
||||
for poolNum,_ in pairs(poolToIcon) do
|
||||
for i=1,EID.XMLMaxItemID do itemPool:AddRoomBlacklist(i) end
|
||||
|
||||
local collID = itemPool:GetCollectible(poolNum, false, 1, 25)
|
||||
local attempts = CraftingMaxItemID
|
||||
while collID ~= 25 and collID ~= 642 and collID > 0 and attempts > 0 do
|
||||
attempts = attempts - 1
|
||||
table.insert(CraftingItemPools[poolNum+1], {collID, 1.0})
|
||||
itemPool:AddRoomBlacklist(collID)
|
||||
collID = itemPool:GetCollectible(poolNum, false, 1, 25)
|
||||
end
|
||||
|
||||
-- Do getCollectible again to revert last pool
|
||||
itemPool:GetCollectible(lastPool, false, 1, 25)
|
||||
|
||||
itemPool:ResetRoomBlacklist()
|
||||
end
|
||||
moddedCrafting = true
|
||||
end
|
||||
|
||||
sortNeeded = true
|
||||
moddedCrafting = true
|
||||
end
|
||||
end
|
||||
EID:AddCallback(ModCallbacks.MC_POST_GAME_STARTED, GameStartCrafting)
|
||||
@@ -586,7 +569,7 @@ EID:AddCallback(ModCallbacks.MC_PRE_PICKUP_COLLISION, function(_, pickup,collide
|
||||
end)
|
||||
|
||||
-- Formerly a MC_POST_PICKUP_UPDATE, but moved to this so that it's only called when we own a bag
|
||||
local function checkForPickups()
|
||||
function EID:BoCCheckForPickups()
|
||||
for _,pickup in ipairs(Isaac.FindByType(EntityType.ENTITY_PICKUP, -1, -1, false, false)) do
|
||||
if pickup:GetSprite():GetAnimation() == "Collect" and not pickupsCollected[pickup.Index] then
|
||||
pickupsCollected[pickup.Index] = true
|
||||
@@ -623,7 +606,7 @@ end)
|
||||
--Tainted Cain "hold to craft" check
|
||||
local holdCounter = 0
|
||||
local icount = 0
|
||||
local function trackBagHolding()
|
||||
function EID:BoCTrackBagHolding()
|
||||
if not IsTaintedCain() then return end
|
||||
local isCardHold = Input.IsActionPressed(ButtonAction.ACTION_PILLCARD, EID.bagPlayer.ControllerIndex)
|
||||
local animationName = EID.bagPlayer:GetSprite():GetAnimation()
|
||||
@@ -656,7 +639,7 @@ local function shiftBagContent()
|
||||
EID.BoC.BagItems = newContent
|
||||
end
|
||||
-- only Tainted Cain's consumable slot bag can have its ingredients shifted
|
||||
local function detectBagContentShift()
|
||||
function EID:BoCDetectBagContentShift()
|
||||
if Input.IsActionTriggered(ButtonAction.ACTION_DROP, EID.bagPlayer.ControllerIndex) and IsTaintedCain() then
|
||||
shiftBagContent()
|
||||
end
|
||||
@@ -766,7 +749,7 @@ local function getFloorItemsString(showPreviews, roomItems)
|
||||
local bagItems = EID.BoC.BagItemsOverride or EID.BoC.BagItems
|
||||
if #bagItems >0 then
|
||||
if showPreviews and #bagItems == 8 then
|
||||
local recipe = EID:calculateBagOfCrafting(bagItems)
|
||||
local recipe = REPENTOGON and EID.bagPlayer:GetBagOfCraftingOutput() or EID:calculateBagOfCrafting(bagItems)
|
||||
floorString = floorString .. "{{Collectible"..recipe.."}} "
|
||||
end
|
||||
local bagDesc = EID:getDescriptionEntry("CraftingBagContent")
|
||||
@@ -931,9 +914,9 @@ function EID:handleBagOfCraftingUpdating()
|
||||
lastSeedUsed = curSeed
|
||||
|
||||
-- watch for holding the Craft button, and pressing the ingredient shift button
|
||||
trackBagHolding()
|
||||
detectBagContentShift()
|
||||
if EID.GameRenderCount % 2 == 0 then checkForPickups() end
|
||||
EID:BoCTrackBagHolding()
|
||||
EID:BoCDetectBagContentShift()
|
||||
if EID.GameRenderCount % 2 == 0 then EID:BoCCheckForPickups() end
|
||||
|
||||
-- Check for Hide/Preview hotkeys; prevent them from triggering while in MCM
|
||||
if not ModConfigMenu or not ModConfigMenu.IsVisible then
|
||||
@@ -1010,6 +993,12 @@ function EID:handleBagOfCraftingRendering(ignoreRefreshRate)
|
||||
return false
|
||||
end
|
||||
|
||||
if REPENTOGON then
|
||||
EID.BoC.BagItems = EID.bagPlayer:GetBagOfCraftingContent()
|
||||
for i=1,8 do
|
||||
if EID.BoC.BagItems[i] == 0 then EID.BoC.BagItems[i] = nil end
|
||||
end
|
||||
end
|
||||
local bagItems = EID.BoC.BagItemsOverride or EID.BoC.BagItems
|
||||
-- Display the result of the 8 items in our bag if applicable
|
||||
if (EID.ShowCraftingResult or EID.Config["BagOfCraftingDisplayRecipesMode"] == "Preview Only") and #bagItems == 8 then
|
||||
@@ -1017,7 +1006,7 @@ function EID:handleBagOfCraftingRendering(ignoreRefreshRate)
|
||||
EID.ShowCraftingResult = false
|
||||
return false
|
||||
end
|
||||
local craftingResult = EID:calculateBagOfCrafting(bagItems)
|
||||
local craftingResult = REPENTOGON and EID.bagPlayer:GetBagOfCraftingOutput() or EID:calculateBagOfCrafting(bagItems)
|
||||
local descriptionObj = EID:getDescriptionObj(5, 100, craftingResult)
|
||||
-- prepend the Hide/Preview hotkeys to the description
|
||||
descriptionObj.Description = getHotkeyString() .. descriptionObj.Description
|
||||
|
||||
@@ -0,0 +1,175 @@
|
||||
local game = Game()
|
||||
|
||||
--[[ Descs that need a variant:
|
||||
respawn items that respawn you as the tainted version of yourself
|
||||
tainted isaac Consolation Prize, Experimental Treatment
|
||||
things that apply only to Lost/Tainted Lost (broken heart card, magic skin)
|
||||
spoilers descs
|
||||
lachyphragy in co-op? tech zero in co-op? yum heart and such obviously
|
||||
black candle + cursed penny / cursed eye
|
||||
healing stuff for keeper?
|
||||
iron bar + notched axe
|
||||
IV bag in hard mode
|
||||
IV bag for keeper (hmm, two different modifiers needed!)
|
||||
swallowed penny keeper
|
||||
experimental pill phd / false phd / phd + falsephd prints nothing
|
||||
iv bag also has interaction with PHD...
|
||||
Items that have synergies with other specific items
|
||||
Items that override other items (brimstone, mom's knife, epic fetus stuff)
|
||||
|
||||
|
||||
TODO: new config options for spoiler descs, and for hiding the "needed for collection" stuff
|
||||
]]
|
||||
|
||||
-- silly function but I don't want to mess with Game() colon functions in the conditions table
|
||||
function EID:IsGreedMode()
|
||||
return game:IsGreedMode()
|
||||
end
|
||||
function EID:IsHardMode()
|
||||
if game.Difficulty == 1 or game.Difficulty == 3 then return true
|
||||
else return false end
|
||||
end
|
||||
|
||||
-- Check if we have any characters that can't have Red Health, to print additions to descs like Dead Cat
|
||||
function EID:CheckForNoRedHealthPlayer()
|
||||
for i = 0, game:GetNumPlayers() - 1 do
|
||||
local player = Isaac.GetPlayer(i)
|
||||
if EID.NoRedHeartsPlayerIDs[player:GetPlayerType()] then
|
||||
return true
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
-- Check for multiple players existing for items like Yum Heart and Extension Cord, includes J&E
|
||||
function EID:MultiplePlayerCharacters()
|
||||
return #EID.coopAllPlayers > 1
|
||||
end
|
||||
|
||||
-- Check the bestiary/character list if we have REPENTOGON, to help avoid spoilers. Otherwise just return true
|
||||
function EID:HaveEncountered(monsterType, monsterVariant)
|
||||
if not REPENTOGON then return true end
|
||||
return Isaac.GetPersistentGameData():GetBestiaryEncounterCount(monsterType, monsterVariant) > 0
|
||||
end
|
||||
function EID:HaveNotEncountered(monsterType, monsterVariant)
|
||||
if not REPENTOGON then return true end
|
||||
return not EID:HaveEncountered(monsterType, monsterVariant)
|
||||
end
|
||||
|
||||
function EID:HaveUnlockedAchievement(achID)
|
||||
if not REPENTOGON then return true end
|
||||
return Isaac.GetPersistentGameData():Unlocked(achID)
|
||||
end
|
||||
|
||||
function EID:HaveNotUnlockedAchievement(achID)
|
||||
if not REPENTOGON then return true end
|
||||
return not EID:HaveUnlockedAchievement(achID)
|
||||
end
|
||||
|
||||
--EID:PlayersHaveCharacter is already in the api to use for things like Swallowed Penny
|
||||
|
||||
|
||||
|
||||
--[[ (The conditions table has to be down here so that the functions exist)
|
||||
|
||||
func: The function that will be called to check if the condition is true
|
||||
vars: A table of values that will be passed into func
|
||||
type: A string denoting what kind of description change this is
|
||||
"append": Add new lines to the end of the description (default)
|
||||
"replaceAll": The entire description is replaced with a new one
|
||||
"findReplace": Find a phrase and replace it with a new one (the text in the localization file will be a table)
|
||||
repOnly: Don't check this on Afterbirth+ (not always necessary, because AB+ won't have the text anyway)
|
||||
abpOnly: Don't check this on Repentance
|
||||
modifierText: Text to add to find a specific string in the localization file (for items with multiple modifiers)
|
||||
|
||||
Due to co-op, it's best for replacing text in descriptions to only be used for things like Greed/Hard Mode
|
||||
Otherwise, appending is better so that players not affected by the change can still see what it will be for them
|
||||
]]
|
||||
EID.DescriptionConditions = {
|
||||
-- No Red HP
|
||||
["5.100.81"] = {func = EID.CheckForNoRedHealthPlayer}, -- Dead Cat
|
||||
["5.100.442"] = {func = EID.CheckForNoRedHealthPlayer}, -- Dark Prince's Crown
|
||||
["5.100.676"] = {func = EID.CheckForNoRedHealthPlayer}, -- Empty Heart
|
||||
|
||||
-- Keeper
|
||||
["5.100.135"] = { -- IV Bag is complicated
|
||||
{func = EID.PlayersHaveCollectible, vars = {75}, modifierText = "PHD"},
|
||||
{func = EID.PlayersHaveCharacter, vars = {14, true}, modifierText = "Keeper"},
|
||||
{func = EID.IsHardMode, type = "findReplace", modifierText = "Hard Mode"}, },
|
||||
["5.350.1"] = {func = EID.PlayersHaveCharacter, vars = {14, true}}, -- Swallowed Penny
|
||||
|
||||
-- Revives
|
||||
["5.100.161"] = {func = EID.PlayersHaveCharacter, vars = {25}}, -- Ankh
|
||||
["5.350.28"] = {func = EID.PlayersHaveCharacter, vars = {25}}, -- Broken Ankh
|
||||
["5.100.311"] = {func = EID.PlayersHaveCharacter, vars = {24}}, -- Judas's Shadow
|
||||
["5.100.332"] = {func = EID.PlayersHaveCharacter, vars = {29}}, -- Lazarus's Rags
|
||||
["5.350.23"] = { -- Missing Poster (revive, plus Unlock The Lost text)
|
||||
{func = EID.PlayersHaveCharacter, vars = {31}, modifierText = "Tainted Lost"},
|
||||
{func = EID.HaveNotUnlockedAchievement, vars = {REPENTOGON and Achievement.THE_LOST or 82} } },
|
||||
|
||||
-- Greed Mode
|
||||
["5.100.241"] = {func = EID.IsGreedMode}, -- Contract From Below
|
||||
["5.300.15"] = {func = EID.IsGreedMode, type = "replaceAll"}, -- Temperance: spawns beggar in greed mode
|
||||
["5.300.15 (Tarot)"] = {func = EID.IsGreedMode, type = "replaceAll"}, -- Temperance + Tarot Cloth + Greed Mode
|
||||
|
||||
}
|
||||
|
||||
-- thing to fix find/replace pairs with hyphens (like "1-2") breaking because hyphen is a special char
|
||||
-- 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
|
||||
|
||||
function EID:applyConditionals(descObj, modifierText)
|
||||
local typeVarSub = descObj.ObjType.."."..descObj.ObjVariant.."."..descObj.ObjSubType
|
||||
if modifierText then typeVarSub = typeVarSub .. " (" .. modifierText .. ")" end
|
||||
|
||||
local conds = EID.DescriptionConditions[typeVarSub]
|
||||
if not conds then return descObj end
|
||||
|
||||
-- Check every condition we need to check for this item (usually 1)
|
||||
if #conds == 0 then conds = { conds } end
|
||||
for _, cond in ipairs(conds) do
|
||||
local tvs = typeVarSub
|
||||
if cond.modifierText then tvs = tvs .. " (" .. cond.modifierText .. ")" end
|
||||
local text = EID:getDescriptionEntry("ConditionalDescs", tvs)
|
||||
if (text ~= nil) and (not repOnly or REPENTANCE) and (not abpOnly or not REPENTANCE) then
|
||||
-- is there a way to pass all a table's values into a function aside from this? it's fine for now...
|
||||
cond.vars = cond.vars or {}
|
||||
if cond.func(EID, cond.vars[1], cond.vars[2], cond.vars[3], cond.vars[4]) then
|
||||
if (cond.type == "append" or cond.type == nil) then
|
||||
descObj.Description = descObj.Description .. "#" .. text
|
||||
elseif (cond.type == "replaceAll") then
|
||||
descObj.Description = text
|
||||
elseif (cond.type == "findReplace") then
|
||||
-- Entry 1 is replaced with entry 2, entry 3 is replaced with entry 4, etc.
|
||||
local pos = 1
|
||||
while pos < #text do
|
||||
local toFind = text[pos]
|
||||
local replaceWith = text[pos+1]
|
||||
|
||||
--"%d*%.?%d+" will grab every number group (1, 10, 0.5), this will allow us to not replace the "1" in "10" erroneously
|
||||
if (type(toFind) == "number") then
|
||||
local count = 0
|
||||
descObj.Description = string.gsub(descObj.Description, "%d*%.?%d+", function(s)
|
||||
if (s == tostring(toFind) and count == 0) then
|
||||
count = count + 1
|
||||
return replaceWith
|
||||
end
|
||||
end)
|
||||
-- Basic find+replace for non-numbers
|
||||
else
|
||||
descObj.Description = replace(descObj.Description, tostring(toFind), replaceWith, 1)
|
||||
end
|
||||
pos = pos + 2
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
return descObj
|
||||
end
|
||||
+28
-13
@@ -274,11 +274,10 @@ EID.UserConfig = {
|
||||
---------- Glitched Items ---------
|
||||
|
||||
-- Toggle Display of Glitched Item (TMTRAINER) descriptions
|
||||
-- Note: The --luadebug launch option is required for more detailed glitched item descriptions
|
||||
-- This option allows mods to have access to your files, breaks some mods, and should be turned on at your own risk!
|
||||
-- Without --luadebug, you still can see the effect the item will have on your Hearts, and what stats it might modify
|
||||
-- Default = false, unless luadebug is on
|
||||
["DisplayGlitchedItemInfo"] = debug and true or false,
|
||||
-- Note: Installing REPENTOGON is required for more detailed glitched item descriptions
|
||||
-- Without REPENTOGON, you still can see the effect the item will have on your Hearts, and what stats it might modify
|
||||
-- Default = false
|
||||
["DisplayGlitchedItemInfo"] = false,
|
||||
|
||||
---------- Sacrifice Room ----------
|
||||
|
||||
@@ -362,7 +361,6 @@ EID.UserConfig = {
|
||||
-- "Preview Only" shows the description of the item you can currently craft in your bag
|
||||
-- "Item Probability" shows percentages of what item you might get from your bag / best option on the floor, for a more intended experience
|
||||
-- "Pickups Only" just shows the room/floor pickup count
|
||||
-- ("Item Probability" is recommended if you have modded items)
|
||||
-- Default = "Recipe List"
|
||||
["BagOfCraftingDisplayRecipesMode"] = "Recipe List",
|
||||
-- Hide the recipe list when in battle
|
||||
@@ -389,11 +387,6 @@ EID.UserConfig = {
|
||||
-- Display recipes as 8 icons instead of grouped ingredients
|
||||
-- Default = false
|
||||
["BagOfCraftingDisplayIcons"] = false,
|
||||
-- Enable or disable basic modded item support
|
||||
-- Only modded items with a weight of 1.0 in their item pools are supported, as we can't determine modded item pool weight
|
||||
-- If you have a lot of modded items, it will slow down game launch
|
||||
-- Default = true
|
||||
["BagOfCraftingModdedRecipes"] = true,
|
||||
-- Set the keybinding to toggle the crafting display, so you can see descriptions of items/pickups on the floor
|
||||
-- Look into the AB+ or Repentance documentation for the key names here: https://wofsauge.github.io/IsaacDocs/rep/enums/Keyboard.html
|
||||
-- Default = Keyboard.KEY_F3
|
||||
@@ -421,6 +414,10 @@ EID.UserConfig = {
|
||||
-- Default: 0 (Deactivate all Savegame features)
|
||||
["SaveGameNumber"] = 0,
|
||||
|
||||
-- Highlight items, if they need to be collected for the collection page
|
||||
-- Default: true
|
||||
["ItemCollectionIndicator"] = true,
|
||||
|
||||
-- Color in which the name of an item should be highlighted, which needs to be collected for the collection page
|
||||
-- Color names are defined in "eid_data.lua" (line 365)
|
||||
-- Default: "ColorFade"
|
||||
@@ -436,6 +433,20 @@ EID.UserConfig = {
|
||||
-- Default = false
|
||||
["ShowCursor"] = false,
|
||||
|
||||
|
||||
---------- Repentogon ----------
|
||||
-- The following options only affect features that require the API extention "Repentogon" to be installed.
|
||||
-- Website: https://repentogon.com/index.html
|
||||
|
||||
-- Toggles descriptions to be visible, when using the item collection page in the main menu.
|
||||
-- Default = true
|
||||
["RGON_ShowOnCollectionPage"] = true,
|
||||
|
||||
-- Toggles achievement progress descriptions for donation machines
|
||||
-- Default = true
|
||||
["RGON_DonationMachineDescriptions"] = true,
|
||||
|
||||
|
||||
---------- Misc ----------
|
||||
|
||||
-- Changes the number of results shown for the additional Spindown Dice description
|
||||
@@ -552,7 +563,7 @@ EID.DefaultConfig = {
|
||||
["DisplayObstructedPillInfo"] = false,
|
||||
["OnlyShowPillWhenUsedAtLeastOnce"] = false,
|
||||
["ShowUnidentifiedPillDescriptions"] = false,
|
||||
["DisplayGlitchedItemInfo"] = debug and true or false,
|
||||
["DisplayGlitchedItemInfo"] = false,
|
||||
["DisplaySacrificeInfo"] = true,
|
||||
["DisplaySanguineInfo"] = true,
|
||||
["PredictionSanguineBond"] = false,
|
||||
@@ -568,7 +579,6 @@ EID.DefaultConfig = {
|
||||
["BagOfCraftingHideInBattle"] = true,
|
||||
["BagOfCraftingShowControls"] = true,
|
||||
["BagOfCraftingDisplayRecipesMode"] = "Recipe List",
|
||||
["BagOfCraftingModdedRecipes"] = true,
|
||||
["CraftingHideKey"] = Keyboard.KEY_F3,
|
||||
["CraftingHideButton"] = -1,
|
||||
["CraftingResultKey"] = Keyboard.KEY_F4,
|
||||
@@ -589,9 +599,14 @@ EID.DefaultConfig = {
|
||||
["SpindownDiceDisplayName"] = false,
|
||||
["SpindownDiceSkipLocked"] = false,
|
||||
["SaveGameNumber"] = 0,
|
||||
["ItemCollectionIndicator"] = true,
|
||||
["ItemCollectionColor"] = "ColorFade",
|
||||
["EnableMouseControls"] = false,
|
||||
["ShowCursor"] = false,
|
||||
|
||||
["RGON_ShowOnCollectionPage"] = true,
|
||||
["RGON_DonationMachineDescriptions"] = true,
|
||||
|
||||
["ErrorMessage"] = "[Effect not defined]",
|
||||
["TextColor"] = "ColorEIDText",
|
||||
["ErrorColor"] = "ColorEIDError",
|
||||
|
||||
@@ -894,3 +894,17 @@ EID.TransformationData = {
|
||||
EID.RoomShapeToMarkup = { "{{Room}}", "{{RoomSmallHorizontal}}", "{{RoomSmallVertical}}", "{{RoomLongVertical}}", "{{RoomLongThinVertical}}","{{RoomLongHorizontal}}", "{{RoomLongThinHorizontal}}", "{{RoomXL}}", "{{RoomLTopLeft}}", "{{RoomL}}", "{{RoomLBottomLeft}}", "{{RoomLBottomRight}}" }
|
||||
EID.RoomTypeToMarkup = { "{{Room}}", "{{Shop}}", "{{ErrorRoom}}", "{{TreasureRoom}}", "{{BossRoom}}", "{{MiniBoss}}", "{{SecretRoom}}", "{{SuperSecretRoom}}", "{{ArcadeRoom}}", "{{CursedRoom}}", "{{ChallengeRoom}}", "{{Library}}", "{{SacrificeRoom}}", "{{DevilRoom}}", "{{AngelRoom}}", "{{LadderRoom}}", "{{Room}}" --[[boss rush]], "{{IsaacsRoom}}", "{{BarrenRoom}}", "{{ChestRoom}}", "{{DiceRoom}}", "{{Shop}}", "{{Room}}", --[[Black Market / Greed Exit]] "{{Planetarium}}", "{{Teleporter}}","{{Teleporter}}", "{{Room}}", "{{Room}}" --[[Blue Key rooms]], "{{UltraSecretRoom}}" }
|
||||
EID.ItemPoolTypeToMarkup = { [0] = "{{ItemPoolTreasure}}", "{{ItemPoolShop}}", "{{ItemPoolBoss}}", "{{ItemPoolDevil}}", "{{ItemPoolAngel}}", "{{ItemPoolSecret}}", "{{ItemPoolLibrary}}", "{{ItemPoolShellGame}}", "{{ItemPoolGoldenChest}}", "{{ItemPoolRedChest}}", "{{ItemPoolBeggar}}", "{{ItemPoolDemonBeggar}}", "{{ItemPoolCurse}}", "{{ItemPoolKeyMaster}}", "{{ItemPoolBombBum}}", "{{ItemPoolMomsChest}}", "{{ItemPoolGreedTreasure}}", "{{ItemPoolGreedShop}}", "{{ItemPoolGreedBoss}}", "{{ItemPoolGreedDevil}}", "{{ItemPoolGreedAngel}}", "{{ItemPoolGreedCurse}}", "{{ItemPoolGreedSecret}}", "{{ItemPoolCraneGame}}", "{{ItemPoolUltraSecret}}", "{{ItemPoolBatteryBum}}", "{{ItemPoolPlanetarium}}", "{{ItemPoolOldChest}}", "{{ItemPoolBabyShop}}", "{{ItemPoolWoodenChest}}", "{{ItemPoolRottenBeggar}}"}
|
||||
|
||||
-- additional offset of the textbox to the entity position. Only applies in local description mode.
|
||||
-- If a function returns a value, it will be used as the offset
|
||||
EID.LocalModePositionOffset = {
|
||||
Default = Vector(0, 20),
|
||||
Shop = function(entity) if entity and not EID:IsGridEntity(entity) and entity:ToPickup() and entity:ToPickup():IsShopItem() then return Vector(0, 35) end end,
|
||||
}
|
||||
|
||||
-- Character IDs that aren't allowed to have Red Health: ???, The Lost, The Soul
|
||||
EID.NoRedHeartsPlayerIDs = { [4] = true, [10] = true, [17] = true }
|
||||
if REPENTANCE 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 }
|
||||
end
|
||||
+2
-2
@@ -259,10 +259,10 @@ function EID:getHoldMapDescription(player, checkingTwin)
|
||||
addObjectDesc(5, 100, modelingClayItem, "{{Trinket166}}")
|
||||
blacklist["5.350.166"] = true
|
||||
else
|
||||
addObjectDesc(5, 350, heldTrinket)
|
||||
addObjectDesc(5, 350, heldTrinketTrue) -- currently no effect applied
|
||||
end
|
||||
else
|
||||
addObjectDesc(5, 350, heldTrinket)
|
||||
addObjectDesc(5, 350, heldTrinketTrue)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -324,5 +324,5 @@ function EID:D1Prediction(rng)
|
||||
end
|
||||
|
||||
local pickupNames = EID:getDescriptionEntry("PickupNames") or {}
|
||||
return pickupNames[fullID] or EID.XMLEntityNames[fullID] or fullID
|
||||
return pickupNames[fullID] or EID:GetEntityXMLNameByString(fullID) or fullID
|
||||
end
|
||||
+92
-50
@@ -426,7 +426,7 @@ if MCMLoaded then
|
||||
EID:AddBooleanSetting("Display", "DisplayCardInfo", "Card Infos")
|
||||
EID:AddBooleanSetting("Display", "DisplayPillInfo", "Pill Infos")
|
||||
EID:AddBooleanSetting("Display", "DisplayGlitchedItemInfo", "Glitched Item Infos", {repOnly = true,
|
||||
infoText = "Note: The --luadebug launch option is required for more detailed glitched item descriptions; this can be dangerous!"})
|
||||
infoText = "Note: Installing REPENTOGON is required for more detailed glitched item descriptions!"})
|
||||
EID:AddBooleanSetting("Display", "DisplaySacrificeInfo", "Sacrifice Room Infos")
|
||||
EID:AddBooleanSetting("Display", "DisplayDiceInfo", "Dice Room Infos")
|
||||
EID:AddBooleanSetting("Display", "DisplayCraneInfo", "Crane Game Infos", {repOnly = true})
|
||||
@@ -621,9 +621,6 @@ if MCMLoaded then
|
||||
-- Bag of Crafting 8 icons toggle
|
||||
EID:AddBooleanSetting("Crafting", "BagOfCraftingDisplayIcons", "Show Recipes/Best Bag as", {onText = "8 Icons", offText = "Groups",
|
||||
infoText = "Choose if you want recipes (and the Best Quality bag in Item Probability Mode) shown as 8 icons, or as grouped ingredients"})
|
||||
-- Modded Recipes toggle
|
||||
EID:AddBooleanSetting("Crafting", "BagOfCraftingModdedRecipes", "Load Modded Item Recipes (WIP)", {
|
||||
infoText = {"Enable or disable basic modded item support", "If you have a lot of modded items, it will slow down game launch"}})
|
||||
|
||||
MCM.AddSpace("EID", "Crafting")
|
||||
MCM.AddText("EID", "Crafting", function() return "Recipe List Options" end)
|
||||
@@ -697,49 +694,19 @@ if MCMLoaded then
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
----------------------------Savegame Config--------------------------------
|
||||
if EID.SaveGame then
|
||||
MCM.AddText("EID", "Save Game", function() EID.MCMCompat_isDisplayingEIDTab = ""; return "Loaded savegame data:" end)
|
||||
MCM.AddText("EID", "Save Game", function() return EID.SaveGame.Platform .." User: "..EID.SaveGame.UserName.." ("..EID.SaveGame.UserID..")" end)
|
||||
MCM.AddSpace("EID", "Save Game")
|
||||
|
||||
-- Show Item needs Collection
|
||||
MCM.AddSetting(
|
||||
"EID",
|
||||
"Save Game",
|
||||
{
|
||||
Type = ModConfigMenu.OptionType.NUMBER,
|
||||
CurrentSetting = function()
|
||||
return EID.Config["SaveGameNumber"]
|
||||
end,
|
||||
Minimum = 0,
|
||||
Maximum = 3,
|
||||
Display = function()
|
||||
if EID.Config["SaveGameNumber"] == 0 then
|
||||
return "Current Save Game: 0 (Deactivated)"
|
||||
end
|
||||
return "Current Save Game: " .. EID.Config["SaveGameNumber"]
|
||||
end,
|
||||
OnChange = function(currentNum)
|
||||
EID.MCM_OptionChanged = true
|
||||
EID.Config["SaveGameNumber"] = currentNum
|
||||
end,
|
||||
Info = {"Save game you are currently on. This info needs to be set to get the correct lookup tables"}
|
||||
}
|
||||
)
|
||||
MCM.AddText("EID", "Save Game", function()
|
||||
if EID.Config["SaveGameNumber"] == 0 then return "" end
|
||||
local count = 0
|
||||
for k, v in pairs(EID.SaveGame[EID.Config["SaveGameNumber"]].ItemNeedsPickup) do
|
||||
count = count + 1
|
||||
end
|
||||
return "Collection page items missing: "..count end)
|
||||
MCM.AddSpace("EID", "Save Game")
|
||||
|
||||
-------------------------------REPENTOGON----------------------------------
|
||||
if EID.isRepentance then
|
||||
if not REPENTOGON then
|
||||
-- show disclaimer, but also show available features
|
||||
MCM.AddText("EID", "Repentogon", "You need to install REPENTOGON to use the following features:")
|
||||
MCM.AddSpace("EID", "Repentogon")
|
||||
end
|
||||
|
||||
EID:AddBooleanSetting("Repentogon", "ItemCollectionIndicator", "Highlight uncollected items",{ infoText = "Highlight items, if they need to be collected for the collection page"})
|
||||
-- Needs collection Color
|
||||
MCM.AddSetting(
|
||||
"EID",
|
||||
"Save Game",
|
||||
"Repentogon",
|
||||
{
|
||||
Type = ModConfigMenu.OptionType.NUMBER,
|
||||
CurrentSetting = function()
|
||||
@@ -761,13 +728,88 @@ if MCMLoaded then
|
||||
Info = {"Color in which item names are colored to highlight that this item needs to be collected for the collection page"}
|
||||
}
|
||||
)
|
||||
else
|
||||
MCM.AddSpace("EID", "Save Game")
|
||||
MCM.AddSpace("EID", "Save Game")
|
||||
MCM.AddText("EID", "Save Game", function() EID.MCMCompat_isDisplayingEIDTab = ""; return "To enable savegame related features," end)
|
||||
MCM.AddText("EID", "Save Game", "please run \"scripts\\savegame_reader.exe\"")
|
||||
MCM.AddText("EID", "Save Game", "found in the EID mod folder")
|
||||
EID:AddBooleanSetting("Repentogon", "RGON_ShowOnCollectionPage", "Show descriptions on collection page", { infoText = "Displays item effects when navigating the collection page in the main menu."})
|
||||
|
||||
-- Achievement tracking section
|
||||
MCM.AddSpace("EID", "Repentogon")
|
||||
MCM.AddText("EID", "Repentogon", "Achievement tracking")
|
||||
EID:AddBooleanSetting("Repentogon", "RGON_DonationMachineDescriptions", "Donation machine progress", { infoText = "Displays the number of coins required to gain the next achievement from donation machines"})
|
||||
end
|
||||
---------------------------------------------------------------------------
|
||||
----------------------------Savegame Config--------------------------------
|
||||
if not REPENTOGON then
|
||||
if EID.SaveGame then
|
||||
MCM.AddText("EID", "Save Game", function() EID.MCMCompat_isDisplayingEIDTab = ""; return "Loaded savegame data:" end)
|
||||
MCM.AddText("EID", "Save Game", function() return EID.SaveGame.Platform .." User: "..EID.SaveGame.UserName.." ("..EID.SaveGame.UserID..")" end)
|
||||
MCM.AddSpace("EID", "Save Game")
|
||||
|
||||
-- Show Item needs Collection
|
||||
MCM.AddSetting(
|
||||
"EID",
|
||||
"Save Game",
|
||||
{
|
||||
Type = ModConfigMenu.OptionType.NUMBER,
|
||||
CurrentSetting = function()
|
||||
return EID.Config["SaveGameNumber"]
|
||||
end,
|
||||
Minimum = 0,
|
||||
Maximum = 3,
|
||||
Display = function()
|
||||
if EID.Config["SaveGameNumber"] == 0 then
|
||||
return "Current Save Game: 0 (Deactivated)"
|
||||
end
|
||||
return "Current Save Game: " .. EID.Config["SaveGameNumber"]
|
||||
end,
|
||||
OnChange = function(currentNum)
|
||||
EID.MCM_OptionChanged = true
|
||||
EID.Config["SaveGameNumber"] = currentNum
|
||||
end,
|
||||
Info = {"Save game you are currently on. This info needs to be set to get the correct lookup tables"}
|
||||
}
|
||||
)
|
||||
MCM.AddText("EID", "Save Game", function()
|
||||
if EID.Config["SaveGameNumber"] == 0 then return "" end
|
||||
local count = 0
|
||||
for k, v in pairs(EID.SaveGame[EID.Config["SaveGameNumber"]].ItemNeedsPickup) do
|
||||
count = count + 1
|
||||
end
|
||||
return "Collection page items missing: "..count end)
|
||||
MCM.AddSpace("EID", "Save Game")
|
||||
|
||||
EID:AddBooleanSetting("Repentogon", "ItemCollectionIndicator", "Highlight uncollected items")
|
||||
-- Needs collection Color
|
||||
MCM.AddSetting(
|
||||
"EID",
|
||||
"Save Game",
|
||||
{
|
||||
Type = ModConfigMenu.OptionType.NUMBER,
|
||||
CurrentSetting = function()
|
||||
return AnIndexOf(colorNameArray, EID.Config["ItemCollectionColor"])
|
||||
end,
|
||||
Minimum = 0,
|
||||
Maximum = 1000,
|
||||
Display = function()
|
||||
if EID.Config["ItemCollectionColor"] == nil then EID.Config["ItemCollectionColor"] = EID.DefaultConfig["ItemCollectionColor"] end
|
||||
EID.MCMCompat_isDisplayingEIDTab = "Visuals";
|
||||
return "Collection Page Highlight color: " .. string.gsub(EID.Config["ItemCollectionColor"], "Color", "").. " ("..AnIndexOf(colorNameArray, EID.Config["ItemCollectionColor"]).."/"..#colorNameArray..")"
|
||||
end,
|
||||
OnChange = function(currentNum)
|
||||
EID.MCM_OptionChanged = true
|
||||
if currentNum == 0 then currentNum = #colorNameArray end
|
||||
if currentNum > #colorNameArray then currentNum = 1 end
|
||||
EID.Config["ItemCollectionColor"] = colorNameArray[currentNum]
|
||||
end,
|
||||
Info = {"Color in which item names are colored to highlight that this item needs to be collected for the collection page"}
|
||||
}
|
||||
)
|
||||
else
|
||||
MCM.AddSpace("EID", "Save Game")
|
||||
MCM.AddSpace("EID", "Save Game")
|
||||
MCM.AddText("EID", "Save Game", function() EID.MCMCompat_isDisplayingEIDTab = ""; return "To enable savegame related features," end)
|
||||
MCM.AddText("EID", "Save Game", "please run \"scripts\\savegame_reader.exe\"")
|
||||
MCM.AddText("EID", "Save Game", "found in the EID mod folder")
|
||||
end
|
||||
end -- if not repentogon
|
||||
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
+61
-6
@@ -243,6 +243,65 @@ if MCMLoaded and MCM and MCM.i18n == "Chinese" then
|
||||
{"%<---- Clear Floor item list ----%>","<---- 清空房间中列表 ---->"},
|
||||
{"%<---- Clear Bag Content ----%>","<---- 清空袋中列表 ---->"}
|
||||
})
|
||||
|
||||
MCM.SetSubcategoryNameTranslate("EID","Repentogon","Repentogon")
|
||||
MCM.TranslateOptionsDisplayWithTable("EID","Repentogon",{
|
||||
{"Highlight uncollected items","未收集的道具高亮显示"},
|
||||
{"Collection Page Highlight color","道具页面高亮色"},
|
||||
{"Show descriptions on collection page","道具页面显示描述"},
|
||||
{"Donation machine progress","捐款机进度"},
|
||||
{"False","否"},
|
||||
{"True","是"},
|
||||
{"BlinkYellowGreen","黄绿闪烁"},
|
||||
{"BlinkYellowRed","黄红闪烁"},
|
||||
{"BagComplete","袋满"},
|
||||
{"BagOverfill","袋溢出"},
|
||||
{"Black","黑色"},
|
||||
{"Blink","闪烁"},
|
||||
{"Blue","蓝色"},
|
||||
{"Cyan","青色"},
|
||||
{"EIDError","EID错误"},
|
||||
{"EIDObjName","EID对象名"},
|
||||
{"EIDText","EID文本"},
|
||||
{"EIDTransform","EID套装"},
|
||||
{"Fade","渐隐"},
|
||||
{"Gold","金色"},
|
||||
{"Gray","灰色"},
|
||||
{"Green","绿色"},
|
||||
{"Lavender","淡紫色"},
|
||||
{"LightOrange","淡橙色"},
|
||||
{"LightYellow","淡黄色"},
|
||||
{"Lime","绿黄色"},
|
||||
{"Maroon","红褐色"},
|
||||
{"Navy","深蓝色"},
|
||||
{"Olive","黄褐色"},
|
||||
{"Orange","橙色"},
|
||||
{"Pastel","淡"},
|
||||
{"Pink","粉色"},
|
||||
{"Purple","紫色"},
|
||||
{"Rainbow","彩虹色"},
|
||||
{"Red","红色"},
|
||||
{"Shiny","闪光的"},
|
||||
{"Silver","银色"},
|
||||
{"Teal","蓝绿色"},
|
||||
{"White","白色"},
|
||||
{"Yellow","黄色"},
|
||||
})
|
||||
MCM.TranslateOptionsDisplayTextWithTable("EID","Repentogon",{
|
||||
["You need to install REPENTOGON to use the following features:"] = "你需要安装REPENTOGON以使用以下功能:",
|
||||
["Achievement tracking"] = "成就追踪",
|
||||
})
|
||||
MCM.TranslateOptionsInfoTextWithTable("EID","Repentogon",{
|
||||
["Highlight items, if they need to be collected for the collection page"]
|
||||
= "如果道具页面中此道具未拾取过时则高亮显示",
|
||||
["Color in which item names are colored to highlight that this item needs to be collected for the collection page"]
|
||||
= "道具页面中此道具未拾取过时高亮的颜色",
|
||||
["Displays item effects when navigating the collection page in the main menu."]
|
||||
= "在主菜单的道具页面显示道具效果",
|
||||
["Displays the number of coins required to gain the next achievement from donation machines"]
|
||||
= "显示下一个捐款机成就所需的硬币",
|
||||
})
|
||||
|
||||
MCM.SetSubcategoryNameTranslate("EID","Save Game","游戏存档")
|
||||
MCM.TranslateOptionsDisplayWithTable("EID","Save Game",{
|
||||
{"To enable savegame related features,","如需启用游戏存档相关的特性"},
|
||||
@@ -384,8 +443,8 @@ if MCMLoaded and MCM and MCM.i18n == "Chinese" then
|
||||
["Allow Players 2, 3, and 4 to display descriptions in Co-op"] = "在多人游戏中使玩家2、3、4显示描述信息",
|
||||
["Allow paired characters like Esau and Tainted Forgotten's bone pile to display descriptions"]
|
||||
= "让同伴角色(比如以扫和堕化遗骸的骨头)显示描述",
|
||||
["Note: The --luadebug launch option is required for more detailed glitched item descriptions; this can be dangerous!"]
|
||||
= "注意: 需要添加--luadebug启动选项来获得详细信息; 此操作存在风险!",
|
||||
["Note: Installing REPENTOGON is required for more detailed glitched item descriptions!"]
|
||||
= "注意: 需要安装REPENTOGON来获得详细的错误道具描述!",
|
||||
["The next reward from Sanguine Bond can be predicted and highlighted in the description"]
|
||||
= "预测血色羁绊的下一次奖励, 并高亮显示",
|
||||
["Number of item previews when holding Spindown Dice"] = "计数二十面骰的预览道具数量",
|
||||
@@ -421,8 +480,6 @@ if MCMLoaded and MCM and MCM.i18n == "Chinese" then
|
||||
= "切换显示配方列表,袋满时的道具预览,道具池/品质信息,或地面上的掉落物",
|
||||
["Hides the Bag of Crafting info when in a fight"] = "在战斗中隐藏合成宝袋信息",
|
||||
["Show the text for the Hide/Preview and Recipe List hotkeys"] = "显示切换隐藏/预览和配方列表的热键",
|
||||
["Choose if you want recipes (and the Best Quality bag in Item Probability Mode) shown as 8 icons, or as grouped ingredients"]
|
||||
= "切换配方显示模式(或无配方模式下的最佳品质)为8个图标, 或者分组显示",
|
||||
["Enable or disable basic modded item support"] = "开关基础的模组道具支持",
|
||||
["If you have a lot of modded items, it will slow down game launch"] = "如果模组道具太多,游戏会变卡",
|
||||
["(12 = 500 combinations, 14 = 3,000, 16 = 13,000)"] = "(12=500组合,14=3000,16=13000)",
|
||||
@@ -434,8 +491,6 @@ if MCMLoaded and MCM and MCM.i18n == "Chinese" then
|
||||
= "额外检查此值数量的随机组合 在掉落物生成/消失或刷新时变化",
|
||||
["If on, each recipe result takes two lines, one for the item name, one for the recipe"]
|
||||
= "如果开启,每个配方会显示两行,第一行是名字,第二行是配方",
|
||||
["Press this to clear all currently detected items on the floor"] = "按此键清除所有当前房间中已检测的物品",
|
||||
["Press this to clear all currently detected items on the bag"] = "按此键清除所有当前袋中已检测的物品",
|
||||
["Choose if you want recipes (and the Best Quality bag in Item Probability Mode) shown as 8 icons, or as grouped ingredients"]
|
||||
= "选择使用八个图标还是分组 显示配方(或无配方模式的最佳组合)",
|
||||
["Press this key to toggle the crafting display, allowing you to check descriptions of items/pickups on the floor"]
|
||||
|
||||
+67
-4
@@ -287,6 +287,23 @@ if EID.isRepentance then
|
||||
return descObj
|
||||
end
|
||||
|
||||
-- Handle Glowing Hourglass description
|
||||
local function GlowingHourglassCallback(descObj)
|
||||
if REPENTOGON then
|
||||
local transformedText = EID:getDescriptionEntry("GlowingHourglassTransformed")
|
||||
local numUses = Isaac.GetPlayer():GetActiveItemDesc().VarData
|
||||
if numUses == 3 then
|
||||
-- Replace with the description of The Hourglass
|
||||
descObj.Description = EID:getDescriptionObj(5, 100, 66).Description
|
||||
if transformedText ~= nil then
|
||||
EID:appendToDescription(descObj, "#{{Warning}} "..transformedText)
|
||||
end
|
||||
end
|
||||
end
|
||||
return descObj
|
||||
end
|
||||
|
||||
|
||||
-- Handle Bingeeater description addition
|
||||
local function BingeEaterCallback(descObj)
|
||||
local bingeBuff = EID:getDescriptionEntry("bingeEaterBuffs", descObj.ObjSubType)
|
||||
@@ -318,7 +335,7 @@ if EID.isRepentance then
|
||||
end
|
||||
|
||||
--simple decimal rounding
|
||||
function SimpleRound(num, dp)
|
||||
local function SimpleRound(num, dp)
|
||||
dp = dp or 2
|
||||
local mult = 10^dp
|
||||
return math.floor(num * mult + 0.5)/mult
|
||||
@@ -484,7 +501,7 @@ if EID.isRepentance then
|
||||
end
|
||||
end
|
||||
end
|
||||
return descObj
|
||||
return EID:applyConditionals(descObj,"Tarot")
|
||||
end
|
||||
|
||||
|
||||
@@ -653,6 +670,49 @@ if EID.isRepentance then
|
||||
end
|
||||
return descObj
|
||||
end
|
||||
|
||||
-- Handle Experimental Pill description addition
|
||||
local function ExperimentalPillCallback(descObj)
|
||||
local adjustedID = EID:getAdjustedSubtype(descObj.ObjType, descObj.ObjVariant, descObj.ObjSubType)
|
||||
if adjustedID - 1 ~= PillEffect.PILLEFFECT_EXPERIMENTAL then return descObj end
|
||||
local horse = descObj.ObjSubType > 2048
|
||||
|
||||
for i = 1,#EID.coopAllPlayers do
|
||||
local player = EID.coopAllPlayers[i]
|
||||
local playerID = EID:getPlayerID(player)
|
||||
local playerType = player:GetPlayerType()
|
||||
local pillModifierID = 0
|
||||
local goodAndBad = false
|
||||
|
||||
-- Check for PHD, Lucky Foot, Virgo, and False PHD
|
||||
if player:HasCollectible(75) then pillModifierID = 75
|
||||
elseif player:HasCollectible(46) then pillModifierID = 46
|
||||
elseif player:HasCollectible(303) then pillModifierID = 303
|
||||
end
|
||||
-- Check for False PHD, and if we have good AND bad pills, just print the damage up text
|
||||
if player:HasCollectible(654) then
|
||||
if pillModifierID ~= 0 then goodAndBad = true end
|
||||
pillModifierID = 654
|
||||
end
|
||||
if pillModifierID ~= 0 then
|
||||
local expPillString = ""
|
||||
if pillModifierID == 654 then
|
||||
local damageUpString = ""
|
||||
if horse then damageUpString = EID:getDescriptionEntry("FalsePHDHorseDamage")
|
||||
else damageUpString = EID:getDescriptionEntry("FalsePHDDamage") end
|
||||
if goodAndBad then
|
||||
expPillString = damageUpString
|
||||
else
|
||||
expPillString = EID:getDescriptionEntry("ExperimentalPillFalsePHD") .. "#{{Collectible654}} " .. damageUpString
|
||||
end
|
||||
else expPillString = EID:getDescriptionEntry("ExperimentalPillPHD") end
|
||||
EID:appendToDescription(descObj, "#")
|
||||
if #EID.coopAllPlayers > 1 then EID:appendToDescription(descObj, (EID:getIcon("Player"..playerType) ~= EID.InlineIcons["ERROR"] and "{{Player"..playerType.."}} " or ("P" .. i .. ": "))) end
|
||||
EID:appendToDescription(descObj, "{{Collectible" .. pillModifierID .. "}} " .. expPillString)
|
||||
end
|
||||
end
|
||||
return descObj
|
||||
end
|
||||
|
||||
-- Handle False PHD description addition
|
||||
local function FalsePHDCallback(descObj)
|
||||
@@ -660,7 +720,7 @@ if EID.isRepentance then
|
||||
local horse = descObj.ObjSubType > 2048
|
||||
local data = EID.pillMetadata[adjustedID-1]
|
||||
if data ~= nil then
|
||||
local damageUp = string.find(data.class,"3") and (string.find(data.class,"-") or adjustedID-1 == PillEffect.PILLEFFECT_EXPERIMENTAL)
|
||||
local damageUp = string.find(data.class,"3") and string.find(data.class,"-")
|
||||
if adjustedID-1 == PillEffect.PILLEFFECT_SHOT_SPEED_DOWN then damageUp = true end
|
||||
-- why doesn't I'm Excited have a - in the xml data yet spawn a black heart...
|
||||
local blackHeart = (string.find(data.class,"2") or string.find(data.class,"1")) and (string.find(data.class,"-") or adjustedID-1 == PillEffect.PILLEFFECT_IM_EXCITED)
|
||||
@@ -752,6 +812,8 @@ if EID.isRepentance then
|
||||
-- Using magic numbers here in case it's slightly faster, and because the callback names give context
|
||||
-- Check Birthright first because it overwrites the description instead of appending to it
|
||||
if descObj.ObjSubType == 619 then table.insert(callbacks, BirthrightCallback) end
|
||||
-- Glowing Hourglass overwrites the description when used three times
|
||||
if REPENTOGON and descObj.ObjSubType == 422 then table.insert(callbacks, GlowingHourglassCallback) end
|
||||
if descObj.ObjSubType == 644 then table.insert(callbacks, ConsolationPrizeCallback) end
|
||||
|
||||
if EID.collectiblesOwned[664] then table.insert(callbacks, BingeEaterCallback) end
|
||||
@@ -774,6 +836,7 @@ if EID.isRepentance then
|
||||
if EID.collectiblesOwned[654] then table.insert(callbacks, FalsePHDCallback) end
|
||||
if EID.collectiblesOwned[348] then table.insert(callbacks, PlaceboCallback) end
|
||||
table.insert(callbacks, VurpCallback)
|
||||
table.insert(callbacks, ExperimentalPillCallback)
|
||||
|
||||
if EID.pillPlayer == nil and #EID.coopAllPlayers > 1 then
|
||||
table.insert(callbacks, CoopPillCallback)
|
||||
@@ -805,7 +868,7 @@ local function EIDConditionsAB(descObj)
|
||||
|
||||
-- Collectible Pedestal Callbacks
|
||||
if descObj.ObjVariant == PickupVariant.PICKUP_COLLECTIBLE then
|
||||
if EID:requiredForCollectionPage(descObj.ObjSubType) then table.insert(callbacks, ItemCollectionPageCallback) end
|
||||
if EID.Config["ItemCollectionIndicator"] and EID:requiredForCollectionPage(descObj.ObjSubType) then table.insert(callbacks, ItemCollectionPageCallback) end
|
||||
|
||||
if descObj.ObjSubType == 297 then table.insert(callbacks, PandorasBoxCallback) end
|
||||
|
||||
|
||||
@@ -0,0 +1,178 @@
|
||||
if not REPENTOGON then
|
||||
return
|
||||
end
|
||||
---@diagnostic disable: duplicate-set-field
|
||||
local game = Game()
|
||||
local maxVanillaItemID = CollectibleType.NUM_COLLECTIBLES -- sanity backup
|
||||
|
||||
-- REPENTOGON: Use PersistentGameData to determine item collection status
|
||||
-- Returns true if an item needs to be collected for the collection page
|
||||
function EID:requiredForCollectionPage(itemID)
|
||||
if itemID >= maxVanillaItemID or game:GetVictoryLap() > 0 or game:GetSeeds():IsCustomRun() then return false end
|
||||
return not Isaac.GetPersistentGameData():IsItemInCollection(itemID)
|
||||
end
|
||||
|
||||
-- REPENTOGON: Function is no longer used since we can directly read the collection state from the game
|
||||
function EID:checkPlayersForMissingItems() end
|
||||
|
||||
-- REPENTOGON: Function is no longer used since repentogon always has progress enabled.
|
||||
function EID:AreAchievementsAllowed() return true end
|
||||
|
||||
-- REPENTOGON: Entity names can now be directly read from XML
|
||||
-- returns the name of the given entity
|
||||
function EID:GetEntityXMLName(Type, Variant, SubType)
|
||||
local xmlEntry = XMLData.GetEntityByTypeVarSub(Type, Variant, SubType)
|
||||
return xmlEntry and xmlEntry.name or EID.XMLEntityNames[Type .. "." .. Variant] or
|
||||
EID.XMLEntityNames[Type .. "." .. Variant .. "." .. SubType]
|
||||
end
|
||||
|
||||
-- takes a string like "5.100.69"
|
||||
function EID:GetEntityXMLNameByString(str)
|
||||
local sep = {}
|
||||
for i in string.gmatch(str, "([^.]+)") do
|
||||
table.insert(sep, i)
|
||||
end
|
||||
return EID:GetEntityXMLName(sep[1], sep[2], sep[3])
|
||||
end
|
||||
|
||||
-- Render EID above hud, if REPENTOGON is installed
|
||||
EID:RemoveCallback(ModCallbacks.MC_POST_RENDER, EID.OnRender)
|
||||
EID:AddCallback(ModCallbacks.MC_HUD_RENDER, EID.OnRender)
|
||||
|
||||
|
||||
-- render descriptions for items on the collection page
|
||||
|
||||
local oldPosInitFunc = EID.PositionLocalMode
|
||||
function EID:PositionLocalMode(entity)
|
||||
oldPosInitFunc(_, entity)
|
||||
-- custom description position when describing collectionpage entries
|
||||
if not Isaac.IsInGame() and MenuManager:GetActiveMenu() == MainMenuType.COLLECTION then
|
||||
EID.CurrentScaleType = "MainMenu"
|
||||
EID.UsedPosition = Vector(10, 10)
|
||||
end
|
||||
end
|
||||
|
||||
local skipItemIDs = {}
|
||||
function EID:OnMenuRender()
|
||||
if EID.Config["RGON_ShowOnCollectionPage"] and MenuManager:GetActiveMenu() == MainMenuType.COLLECTION then
|
||||
if #skipItemIDs == 0 then -- build list of items not listed in the collectionpage
|
||||
local itemConfig = Isaac.GetItemConfig()
|
||||
for i = 1, EID:GetMaxCollectibleID(), 1 do
|
||||
if itemConfig:GetCollectible(i) == nil or itemConfig:GetCollectible(i).Hidden then
|
||||
table.insert(skipItemIDs, i)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local selectedPage = CollectionMenu.GetSelectedPage()
|
||||
local CollectibleId = selectedPage * (20 * 6) + CollectionMenu.GetSelectedElement() + 1
|
||||
for _, id in ipairs(skipItemIDs) do -- some items dont exist, so we need to "skip" those when counting
|
||||
if id <= CollectibleId then
|
||||
CollectibleId = CollectibleId + 1
|
||||
end
|
||||
end
|
||||
local demoDescObj = EID:getDescriptionObj(5, 100, CollectibleId, nil, false)
|
||||
if CollectibleId < maxVanillaItemID and not Isaac.GetPersistentGameData():IsItemInCollection(CollectibleId) then
|
||||
EID:renderQuestionMark(nil)
|
||||
return
|
||||
end
|
||||
|
||||
EID:printDescription(demoDescObj, nil)
|
||||
end
|
||||
end
|
||||
|
||||
EID:AddCallback(ModCallbacks.MC_MAIN_MENU_RENDER, EID.OnMenuRender)
|
||||
|
||||
|
||||
---------------------------BAG OF CRAFTING-------------------------------
|
||||
-- Directly read bag of crafting content
|
||||
function EID:BoCCheckForPickups()
|
||||
EID.BoC.BagItems = {}
|
||||
for key, value in pairs(EID.bagPlayer:GetBagOfCraftingContent()) do
|
||||
if value <= 0 then return end -- no more items in the bag
|
||||
EID.BoC.BagItems[key] = value
|
||||
end
|
||||
end
|
||||
|
||||
-- Deactivate manual tracking code
|
||||
function EID:BoCTrackBagHolding() end
|
||||
|
||||
function EID:BoCDetectBagContentShift() end
|
||||
|
||||
-----------------------Descriptions & Modifiers --------------------------
|
||||
local oldHasDescription = EID.hasDescription
|
||||
function EID:hasDescription(entity)
|
||||
local oldReturnVal = oldHasDescription(_,entity)
|
||||
-- repentogon related checks
|
||||
|
||||
-- check if donation machines should have a description
|
||||
if entity.Type == 6 and (entity.Variant == 8 or entity.Variant == 11) and entity.SubType == 0 then
|
||||
local isGreed = entity.Variant == 11
|
||||
local eventCounter = isGreed and EventCounter.GREED_DONATION_MACHINE_COUNTER or
|
||||
EventCounter.DONATION_MACHINE_COUNTER
|
||||
local totalDonations = Isaac.GetPersistentGameData():GetEventCounter(eventCounter)
|
||||
|
||||
return EID.Config["RGON_DonationMachineDescriptions"] and totalDonations < 1000
|
||||
end
|
||||
return oldReturnVal
|
||||
end
|
||||
|
||||
|
||||
local requirementsDonationMachine = {
|
||||
{ 10, Achievement.BLUE_MAP },
|
||||
{ 20, Achievement.STORE_UPGRADE_LV1 },
|
||||
{ 50, Achievement.THERES_OPTIONS },
|
||||
{ 100, Achievement.STORE_UPGRADE_LV2 },
|
||||
{ 150, Achievement.BLACK_CANDLE },
|
||||
{ 200, Achievement.STORE_UPGRADE_LV3 },
|
||||
{ 400, Achievement.RED_CANDLE },
|
||||
{ 600, Achievement.STORE_UPGRADE_LV4 },
|
||||
{ 900, Achievement.BLUE_CANDLE },
|
||||
{ 999, Achievement.STOP_WATCH }
|
||||
}
|
||||
|
||||
local requirementsGreedDonationMachine = {
|
||||
{ 2, Achievement.LUCKY_PENNIES },
|
||||
{ 14, Achievement.SPECIAL_HANGING_SHOPKEEPERS },
|
||||
{ 33, Achievement.WOODEN_NICKEL },
|
||||
{ 68, Achievement.CAIN_HOLDS_PAPERCLIP },
|
||||
{ 111, Achievement.EVERYTHING_IS_TERRIBLE_2 },
|
||||
{ 234, Achievement.SPECIAL_SHOPKEEPERS },
|
||||
{ 439, Achievement.EVE_HOLDS_RAZOR_BLADE },
|
||||
{ 500, Achievement.GREEDIER },
|
||||
{ 666, Achievement.STORE_KEY },
|
||||
{ 879, Achievement.THE_LOST_HOLDS_HOLY_MANTLE },
|
||||
{ 999, Achievement.GENEROSITY },
|
||||
{ 1000, Achievement.KEEPER }
|
||||
}
|
||||
|
||||
local function DonationMachineCallback(descObj)
|
||||
local isGreed = descObj.ObjVariant == 11
|
||||
local eventCounter = isGreed and EventCounter.GREED_DONATION_MACHINE_COUNTER or
|
||||
EventCounter.DONATION_MACHINE_COUNTER
|
||||
local rewardsTable = isGreed and requirementsGreedDonationMachine or requirementsDonationMachine
|
||||
local totalDonations = Isaac.GetPersistentGameData():GetEventCounter(eventCounter)
|
||||
|
||||
local coinsNeeded = 0
|
||||
for _, value in ipairs(rewardsTable) do
|
||||
if totalDonations < value[1] and not Isaac.GetPersistentGameData():Unlocked(value[2]) then
|
||||
coinsNeeded = value[1]
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
descObj.Description = string.gsub(descObj.Description, "{1}", coinsNeeded)
|
||||
descObj.Description = string.gsub(descObj.Description, "{2}", coinsNeeded - totalDonations)
|
||||
descObj.Icon = EID.InlineIcons["DonationMachine"]
|
||||
return descObj
|
||||
end
|
||||
|
||||
local function RepentogonModifierConditions(descObj)
|
||||
-- Donation machine and Greed donation machine description
|
||||
if descObj.ObjType == 6 and (descObj.ObjVariant == 8 or descObj.ObjVariant == 11) then
|
||||
return { DonationMachineCallback }
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
EID:addDescriptionModifier("EID Repentogon", RepentogonModifierConditions, nil)
|
||||
+160
-141
@@ -1,24 +1,10 @@
|
||||
--[[
|
||||
|
||||
This file is only loaded when the game is launched with the "--luadebug" launch option.
|
||||
This allows mods to have access to your computer's files, which is necessary to read glitched item info that's printed to the game's log file.
|
||||
|
||||
Having --luadebug on would allow malicious mods to delete your files, execute command prompt commands, and probably much more. It also makes certain Lua functions behave differently, which breaks some other mods.
|
||||
USE AT YOUR OWN RISK.
|
||||
|
||||
]]
|
||||
|
||||
local game = Game()
|
||||
-- This file handles creating glitched item descriptions.
|
||||
-- It requires installing REPENTOGON to give fully accurate descriptions.
|
||||
-- https://repentogon.com/install.html
|
||||
|
||||
-- glitched items start at 4294967295
|
||||
local maxNumber = 4294967296
|
||||
local spawnedItems = 0
|
||||
local lastEffectTrigger = "chain"
|
||||
local descOne = ""
|
||||
|
||||
local logLocation = os.getenv("USERPROFILE") .. "/Documents/My Games/Binding of Isaac Repentance/log.txt"
|
||||
local logFound = false
|
||||
local logCursor = 0
|
||||
|
||||
local triggerColors = {
|
||||
chain = "{{ColorSilver}}",
|
||||
@@ -32,12 +18,26 @@ local triggerColors = {
|
||||
room_clear = "{{ColorOrange}}",
|
||||
}
|
||||
|
||||
local function entityToName(e, plural)
|
||||
local localizedNames = EID:getDescriptionEntry("GlitchedItemText")
|
||||
-- -1 is often used as an "any of this type", even if there's only one of that type, so converting it to 0 can help find names
|
||||
local eWithZero = string.gsub(e, "-1", "0")
|
||||
-- Convert REPENTOGON's action/trigger enums to the text used in EID's localization files
|
||||
local actions = { [0] = "use_active_item", "add_temporary_effect", "convert_entities", "area_damage", "spawn_entity", "fart" }
|
||||
local triggers = { [0] = "active", "tear_fire", "enemy_hit", "enemy_kill", "damage_taken", "room_clear", "entity_spawned", "pickup_collected", "chain" }
|
||||
|
||||
--simple decimal rounding
|
||||
local function SimpleRound(num, dp)
|
||||
dp = dp or 2
|
||||
local mult = 10^dp
|
||||
return math.floor(num * mult + 0.5)/mult
|
||||
end
|
||||
|
||||
local function entityToName(Type, Variant, plural)
|
||||
plural = plural or false
|
||||
local name = localizedNames[e] or EID.XMLEntityNames[e] or localizedNames[eWithZero] or EID.XMLEntityNames[eWithZero] or e
|
||||
-- -1 is often used as an "any of this type", even if there's only one of that type, so converting it to 0 can help find names
|
||||
-- the string.format is in case this receives the type/variant as a Lua float
|
||||
local e = string.format("%d",Type) .. "." .. string.format("%d",Variant)
|
||||
local eWithZero = string.gsub(e, "-1", "0")
|
||||
|
||||
local localizedNames = EID:getDescriptionEntry("GlitchedItemText")
|
||||
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)")
|
||||
@@ -46,137 +46,156 @@ local function entityToName(e, plural)
|
||||
return name
|
||||
end
|
||||
|
||||
local function parseEffectLine(raw)
|
||||
local words = {}
|
||||
for w in string.gmatch(raw,"%S+") do table.insert(words, w) end
|
||||
|
||||
local triggerReplacements = {}
|
||||
local replacements = {}
|
||||
local printEffect = true
|
||||
|
||||
-- words[1] = "[INFO]", words[2] = "-"
|
||||
local effectTrigger = words[3]
|
||||
-- the effects list is rarely interrupted by music loading log entries, just ignore it and have a slightly inaccurate desc
|
||||
if effectTrigger == "Queued" then return "" end
|
||||
if (string.find(effectTrigger, "entity_spawned")) then
|
||||
effectTrigger = "entity_spawned"
|
||||
triggerReplacements[1] = "{{ColorEIDObjName}}" .. entityToName(string.sub(words[3], 16, -2)) .. "{{CR}}"
|
||||
end
|
||||
-- words[4] = "->"
|
||||
local effectType = words[5]
|
||||
local fullEffect = ""
|
||||
for i=5,#words do fullEffect = fullEffect .. words[i] .. " " end
|
||||
|
||||
if effectType == "add_temporary_effect" or effectType == "use_active_item" then
|
||||
-- remainder of line = collectible name that's granted for the room
|
||||
local name = ""
|
||||
for i=6,#words do
|
||||
name = name .. words[i]
|
||||
if (i ~= #words) then name = name .. " " end
|
||||
end
|
||||
|
||||
replacements[1] = name
|
||||
if (Isaac.GetItemIdByName(name) > 0) then
|
||||
replacements[1] = "{{Collectible" .. Isaac.GetItemIdByName(name) .. "}} " .. name
|
||||
end
|
||||
elseif effectType == "convert_entities" then
|
||||
replacements[1] = "{{ColorGray}}" .. entityToName(words[6], true) .. "{{CR}}"
|
||||
replacements[2] = "{{ColorGray}}" .. entityToName(words[8])
|
||||
elseif effectType == "spawn_entity" then
|
||||
replacements[1] = "{{ColorGray}}" .. entityToName(words[6])
|
||||
elseif effectType == "fart" then
|
||||
replacements[1] = words[6]
|
||||
elseif effectType == "area_damage" then
|
||||
replacements[1] = words[6]
|
||||
-- display area_damage 0's because they still need to be done to chain to the next thing
|
||||
--if words[6] == "0" then printEffect = false end
|
||||
end
|
||||
-- attributes we need to check on the glitched item's ItemConfig
|
||||
local itemConfigItemAttributes = { "AddMaxHearts", "AddHearts", "AddSoulHearts", "AddBlackHearts", "AddBombs", "AddCoins", "AddKeys", "CacheFlags" }
|
||||
-- REPENTOGON's ProceduralItem functions, in the same order as en_us's VoidNames text we'll be using
|
||||
local getFunctions = { "GetSpeed", "GetFireDelay", "GetDamage", "GetRange", "GetShotSpeed", "GetLuck" }
|
||||
-- The items have a value between 0 and 1, and multiplied by these before being added to the player's stats
|
||||
local statMult = { 0.2, 1, 1, 1.5, 0.2, 1 }
|
||||
|
||||
-- Obtains information about glitched items from the ItemConfig (hearts added on pickup, cacheflags affected), returns string of info
|
||||
function EID:CheckGlitchedItemConfig(id)
|
||||
local itemConfig = EID.itemConfig:GetCollectible(id)
|
||||
if not itemConfig then return "" end
|
||||
|
||||
local localizedNames = EID:getDescriptionEntry("GlitchedItemText")
|
||||
local eidString = ""
|
||||
if effectTrigger ~= lastEffectTrigger then eidString = eidString .. triggerColors[effectTrigger] .. (localizedNames[effectTrigger] or (effectTrigger .. "#")) end
|
||||
if printEffect then eidString = eidString .. (localizedNames[effectType] or fullEffect) .. "#" end
|
||||
for k,v in ipairs(triggerReplacements) do eidString = string.gsub(eidString, "{T" .. k .. "}", v) end
|
||||
for k,v in ipairs(replacements) do eidString = string.gsub(eidString, "{" .. k .. "}", v) end
|
||||
|
||||
if effectTrigger ~= "chain" then lastEffectTrigger = effectTrigger end
|
||||
return eidString
|
||||
end
|
||||
|
||||
local function CheckLogForItems(_)
|
||||
-- Check log.txt every 5 frames if there's a collectible we haven't read the data for yet
|
||||
-- (Should work well for Corrupted Data)
|
||||
if game:GetFrameCount() % 5 ~= 0 or not EID.Config["DisplayGlitchedItemInfo"] or not logFound or
|
||||
EID.itemConfig:GetCollectible(maxNumber - spawnedItems - 1) == nil then return end
|
||||
|
||||
local numEffects = 0
|
||||
local eidDesc = ""
|
||||
|
||||
local theLog = io.open(logLocation, "r")
|
||||
if theLog == nil then return end
|
||||
theLog:seek("set", logCursor)
|
||||
|
||||
local line = theLog:read()
|
||||
while line ~= nil do
|
||||
if string.find(line, "initialized with") then
|
||||
spawnedItems = spawnedItems + 1
|
||||
lastEffectTrigger = "chain"
|
||||
eidDesc = ""
|
||||
-- find the number of effects to watch for
|
||||
for s in string.gmatch(line, "%d*%.?%d+") do
|
||||
numEffects = tonumber(s)
|
||||
break
|
||||
local localizedNamesEnglish = EID:getDescriptionEntryEnglish("GlitchedItemText")
|
||||
local attributes = "#"
|
||||
|
||||
-- Check the base item config for the Hearts/Bombs/Coins/Keys this item adds,
|
||||
-- as well as what cache flags it affects if we're not using REPENTOGON
|
||||
for _,v in ipairs(itemConfigItemAttributes) do
|
||||
local val = itemConfig[v]
|
||||
if val ~= 0 then
|
||||
if v == "CacheFlags" then
|
||||
if not REPENTOGON then -- we don't need to check these if we have REPENTOGON
|
||||
local flagString = localizedNames["cacheFlagStart"] or localizedNamesEnglish["cacheFlagStart"]
|
||||
if val == CacheFlag.CACHE_ALL then
|
||||
flagString = flagString .. localizedNames[16] or localizedNamesEnglish[16]
|
||||
else
|
||||
for i=0, 13 do
|
||||
if 2^i & val ~= 0 then
|
||||
flagString = flagString .. localizedNames[i] or localizedNamesEnglish[i] .. ", "
|
||||
end
|
||||
end
|
||||
flagString = string.sub(flagString, 0, -3) -- remove final comma
|
||||
end
|
||||
attributes = attributes .. flagString .. "#"
|
||||
end
|
||||
else
|
||||
-- the Add Heart attributes count half a heart as 1, so divide the value in half
|
||||
if string.find(v, "Hearts") then val = val / 2 end
|
||||
-- the g flag removes .0 in numbers like 1.0 (caused by the hearts division)
|
||||
local s = string.format("%.4g",val)
|
||||
local prefix = "↑ "
|
||||
if val > 0 then s = "+" .. s else prefix = "↓ " end
|
||||
attributes = attributes .. prefix .. string.gsub(localizedNames[v] or localizedNamesEnglish[v], "{1}", s)
|
||||
if val ~= 1 and val ~= -1 then attributes = attributes .. localizedNames["pluralize"] or localizedNamesEnglish["pluralize"] end
|
||||
attributes = attributes .. "#"
|
||||
end
|
||||
elseif numEffects > 0 then
|
||||
numEffects = numEffects - 1
|
||||
eidDesc = eidDesc .. parseEffectLine(line)
|
||||
if numEffects == 0 then
|
||||
eidDesc = EID:CheckGlitchedItemConfig(maxNumber - spawnedItems) .. eidDesc
|
||||
-- Glowing Hour Glass type effects cause the game to reload all items, check if our desc is equal to the first one
|
||||
if (descOne == eidDesc) then spawnedItems = 1 end
|
||||
|
||||
EID:addCollectible(maxNumber - spawnedItems, eidDesc)
|
||||
if spawnedItems == 1 then descOne = eidDesc end
|
||||
end
|
||||
elseif string.find(line, "Game ended;") then
|
||||
spawnedItems = 0
|
||||
lastEffectTrigger = "chain"
|
||||
eidDesc = ""
|
||||
end
|
||||
|
||||
line = theLog:read()
|
||||
end
|
||||
|
||||
if REPENTOGON then
|
||||
-- Use REPENTOGON to print what base item this glitched item gives, and its stat increases
|
||||
local item = ProceduralItemManager.GetProceduralItem(maxNumber - 1 - id)
|
||||
if item:GetTargetItem() then
|
||||
-- Glitched items grant a random collectible/trinket
|
||||
-- It can be a bit weird though (granting A Quarter doesn't give you 25 coins, cause that's an on pickup thing)
|
||||
local innerItem = item:GetTargetItem()
|
||||
local itemText = "{{Collectible"
|
||||
local itemType = 100
|
||||
if innerItem:IsTrinket() then
|
||||
itemText = "{{Trinket"
|
||||
itemType = 350
|
||||
end
|
||||
local grantsStr = localizedNames["grants"] or localizedNamesEnglish["grants"]
|
||||
attributes = attributes .. grantsStr .. itemText .. innerItem.ID .. "}} " .. EID:getObjectName(5, itemType, innerItem.ID) .. "#"
|
||||
end
|
||||
-- If it's an active, these are given to you upon using the item, so let's print an "On use:" first
|
||||
if itemConfig.Type == ItemType.ITEM_ACTIVE then
|
||||
lastEffectTrigger = "active"
|
||||
local activeStr = localizedNames["active"] or localizedNamesEnglish["active"]
|
||||
attributes = attributes .. "{{Blank}} " .. triggerColors["active"] .. activeStr
|
||||
end
|
||||
local voidNames = EID:getDescriptionEntry("VoidNames")
|
||||
for i,func in ipairs(getFunctions) do
|
||||
local val = item[func](item) * statMult[i]
|
||||
if val ~= 0 then
|
||||
if (i == 4) then print("range!") end
|
||||
local s = string.format("%.2g",SimpleRound(val))
|
||||
local prefix = "↑ "
|
||||
if val > 0 then s = "+" .. s else prefix = "↓ " end
|
||||
attributes = attributes .. prefix .. string.gsub(voidNames[i], "{1}", s) .. "#"
|
||||
end
|
||||
end
|
||||
|
||||
-- Use REPENTOGON to print out the glitched effects this item has
|
||||
local triggerReplacements = {}
|
||||
local replacements = {}
|
||||
|
||||
-- cheeck the effects
|
||||
local count = item:GetEffectCount()
|
||||
for i=0,count-1 do
|
||||
local effect = item:GetEffect(i)
|
||||
|
||||
local effectTrigger = triggers[effect:GetConditionType()]
|
||||
local effectTriggerProp = effect:GetConditionProperty()
|
||||
if effectTrigger == "entity_spawned" then
|
||||
triggerReplacements[1] = "{{ColorEIDObjName}}" .. entityToName(effectTriggerProp.type, effectTriggerProp.variant) .. "{{CR}}"
|
||||
end
|
||||
|
||||
local effectType = actions[effect:GetActionType()]
|
||||
local effectProp = effect:GetActionProperty()
|
||||
if effectType == "add_temporary_effect" or effectType == "use_active_item" then
|
||||
replacements[1] = "{{Collectible" .. effectProp.id .. "}} " .. EID:getObjectName(5, 100, effectProp.id)
|
||||
elseif effectType == "convert_entities" then
|
||||
replacements[1] = "{{ColorGray}}" .. entityToName(effectProp.fromType, effectProp.fromVariant, true) .. "{{CR}}"
|
||||
replacements[2] = "{{ColorGray}}" .. entityToName(effectProp.toType, effectProp.toVariant) .. "{{CR}}"
|
||||
elseif effectType == "spawn_entity" then
|
||||
replacements[1] = "{{ColorGray}}" .. entityToName(effectProp.type, effectProp.variant) .. "{{CR}}"
|
||||
elseif effectType == "fart" then
|
||||
--I think the fart scale is strictly visual and therefore useless
|
||||
--replacements[1] = SimpleRound(effectProp.scale)
|
||||
replacements[1] = string.format("%.4g",SimpleRound(effectProp.radius))
|
||||
elseif effectType == "area_damage" then
|
||||
replacements[1] = string.format("%.4g",SimpleRound(effectProp.damage))
|
||||
--Fart scales are all small numbers and seem to be tiles; area damage is huge numbers, but still tiles?
|
||||
--so area damage is almost always the entire room
|
||||
replacements[2] = string.format("%.4g",SimpleRound(effectProp.radius))
|
||||
end
|
||||
|
||||
if effectTrigger ~= lastEffectTrigger then
|
||||
if effectTrigger ~= "chain" then attributes = attributes .. "{{Blank}} " end
|
||||
local effectTriggerStr = localizedNames[effectTrigger] or localizedNamesEnglish[effectTrigger]
|
||||
attributes = attributes .. triggerColors[effectTrigger] .. effectTriggerStr
|
||||
end
|
||||
attributes = attributes .. localizedNames[effectType] or localizedNamesEnglish[effectType] .. "#"
|
||||
for k,v in ipairs(triggerReplacements) do attributes = string.gsub(attributes, "{T" .. k .. "}", v) end
|
||||
for k,v in ipairs(replacements) do attributes = string.gsub(attributes, "{" .. k .. "}", v) end
|
||||
|
||||
logCursor = theLog:seek()
|
||||
theLog:close()
|
||||
end
|
||||
EID:AddCallback(ModCallbacks.MC_POST_UPDATE, CheckLogForItems)
|
||||
|
||||
local function GameStartTMTRAINER(_,isSave)
|
||||
local theLog = io.open(logLocation, "r")
|
||||
if (theLog == nil) then
|
||||
print("[EID] Could not find the log file at " .. logLocation .. "; glitched item descriptions won't work!")
|
||||
Isaac.DebugString("[EID] Could not find the log file at " .. logLocation .. "; glitched item descriptions won't work!")
|
||||
logFound = false
|
||||
return
|
||||
else
|
||||
logFound = true
|
||||
if effectTrigger ~= "chain" then lastEffectTrigger = effectTrigger end
|
||||
end
|
||||
end
|
||||
|
||||
-- luckily, when the game reloads, it also reloads all glitched items, so resuming works perfectly as long as we start at the beginning
|
||||
spawnedItems = 0
|
||||
|
||||
-- print the glitchy part of the description at the end if it's not "complete"
|
||||
if not REPENTOGON then
|
||||
attributes = attributes .. itemConfig.Description
|
||||
end
|
||||
lastEffectTrigger = "chain"
|
||||
|
||||
return attributes
|
||||
|
||||
end
|
||||
EID:AddCallback(ModCallbacks.MC_POST_GAME_STARTED, GameStartTMTRAINER)
|
||||
|
||||
local function GameEndTMTRAINER()
|
||||
-- Our cursor spot in the log gets wiped if mods are reloaded; can't think of a better way than this
|
||||
Isaac.DebugString("[EID] Game ended; ignore previous glitched items in the log!")
|
||||
end
|
||||
EID:AddCallback(ModCallbacks.MC_PRE_GAME_EXIT, GameEndTMTRAINER)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- shh. it's a non-obtrusive april fools joke for the 1% of people with luadebug
|
||||
-- this made more sense when this file was only executed when --luadebug was present
|
||||
-- https://www.youtube.com/watch?v=msDuNZyYAIQ
|
||||
if (os.date("%m/%d") == "04/01") then
|
||||
if (debug and os.date("%m/%d") == "04/01") then
|
||||
EID.descriptions["en_us"].sacrifice[1][3] = "{{Coin}} 50% chance of winning 1 coin at Sacrifice#75% chance if you're a genetic freak#!!! If you add Kurt Angle to the mix, your chances of winning drastically go down"
|
||||
end
|
||||
@@ -10,8 +10,8 @@ EID.isRepentance = REPENTANCE -- REPENTANCE variable can be altered by any mod,
|
||||
require("eid_config")
|
||||
EID.Config = EID.UserConfig
|
||||
EID.Config.Version = "3.2" -- note: changing this will reset everyone's settings to default!
|
||||
EID.ModVersion = 4.65
|
||||
EID.ModVersionCommit = "fbcd637"
|
||||
EID.ModVersion = 4.69
|
||||
EID.ModVersionCommit = "2d7560c"
|
||||
EID.DefaultConfig.Version = EID.Config.Version
|
||||
EID.isHidden = false
|
||||
EID.player = nil -- The primary Player Entity of Player 1
|
||||
@@ -112,6 +112,7 @@ require("eid_mcm")
|
||||
require("eid_data")
|
||||
require("eid_xmldata")
|
||||
require("eid_api")
|
||||
require("eid_conditionals")
|
||||
require("eid_modifiers")
|
||||
require("eid_holdmapdesc")
|
||||
require("eid_itemprediction")
|
||||
@@ -127,6 +128,7 @@ if EID.isRepentance then
|
||||
end
|
||||
local wasSuccessful, _ = pcall(require,"descriptions."..EID.GameVersion..".transformations")
|
||||
require("eid_bagofcrafting")
|
||||
require("eid_tmtrainer")
|
||||
end
|
||||
|
||||
EID.LastRenderCallColor = EID:getTextColor()
|
||||
@@ -138,7 +140,6 @@ local modfolder ='external item descriptions_836319872' --release mod folder nam
|
||||
|
||||
function EID:GetCurrentModPath()
|
||||
if debug then
|
||||
if EID.isRepentance then require("eid_tmtrainer") end
|
||||
return string.sub(debug.getinfo(EID.GetCurrentModPath).source,2) .. "/../"
|
||||
end
|
||||
--use some very hacky trickery to get the path to this mod
|
||||
@@ -698,7 +699,6 @@ function EID:printDescription(desc, cachedID)
|
||||
local itemConfig = EID.itemConfig:GetCollectible(desc.ObjSubType)
|
||||
if itemConfig:IsCollectible() and not itemConfig:HasTags(ItemConfig.TAG_QUEST) then
|
||||
local lastPool = game:GetItemPool():GetLastPool()
|
||||
local itemPoolLineHeight = EID.lineHeight
|
||||
|
||||
local poolName = ""
|
||||
local poolDescPrepend = EID:getDescriptionEntry("itemPoolFor")
|
||||
@@ -919,7 +919,17 @@ function EID:PositionLocalMode(entity)
|
||||
EID.Scale = EID.Config["LocalModeSize"]
|
||||
EID.CurrentScaleType = "LocalModeSize"
|
||||
local textBoxWidth = EID.Config["LocalModeCentered"] and tonumber(EID.Config["TextboxWidth"])/2 * EID.Scale or -30
|
||||
local textPosOffset = Vector(-textBoxWidth, 20)
|
||||
local textPosOffset = Vector(-textBoxWidth, 0)
|
||||
|
||||
local additiveOffset = EID.LocalModePositionOffset.Default
|
||||
for _, offsetFunc in pairs(EID.LocalModePositionOffset) do
|
||||
if type(offsetFunc) == "function" then
|
||||
additiveOffset = offsetFunc(entity) or additiveOffset
|
||||
break
|
||||
end
|
||||
end
|
||||
textPosOffset = textPosOffset + additiveOffset
|
||||
|
||||
EID:alterTextPos(Isaac.WorldToScreen(entity.Position + textPosOffset))
|
||||
if EID.isMirrorRoom then
|
||||
EID:alterTextPos(Isaac.WorldToScreen(entity.Position + textPosOffset * Vector(-1,0)))
|
||||
@@ -1127,7 +1137,7 @@ function EID:CheckStartOfRunWarnings()
|
||||
EID:displayPermanentText(demoDescObj, "AchievementWarningTitle")
|
||||
hasShownStartWarning = true
|
||||
-- Bag of Crafting modded items check
|
||||
elseif EID:PlayersHaveCollectible(710) and EID:DetectModdedItems() and EID.Config.DisplayBagOfCrafting ~= "never" and
|
||||
elseif not REPENTOGON and EID:PlayersHaveCollectible(710) and EID:DetectModdedItems() and EID.Config.DisplayBagOfCrafting ~= "never" and
|
||||
(EID.Config.BagOfCraftingDisplayRecipesMode == "Recipe List" or EID.Config.BagOfCraftingDisplayRecipesMode == "Preview Only") then
|
||||
local demoDescObj = EID:getDescriptionObj(-999, -1, 1)
|
||||
demoDescObj.Name = EID:getDescriptionEntry("AchievementWarningTitle") or ""
|
||||
@@ -1429,14 +1439,15 @@ function EID:OnRender()
|
||||
end
|
||||
|
||||
local glitchedObj = EID:getDescriptionObj(closest.Type, closest.Variant, closest.SubType, closest)
|
||||
local glitchedName = EID.itemConfig:GetCollectible(closest.SubType).Name
|
||||
local glitchedDesc = EID:getXMLDescription(closest.Type, closest.Variant, closest.SubType)
|
||||
|
||||
-- force the default glitchy description if option is off
|
||||
if not EID.Config["DisplayGlitchedItemInfo"] then
|
||||
glitchedObj.Description = glitchedDesc
|
||||
-- grab the Item Config info if eid_tmtrainer.lua hasn't taken care of it, and it hasn't been done before
|
||||
elseif not debug and glitchedObj.Description == glitchedDesc then
|
||||
EID:addCollectible(closest.SubType, EID:CheckGlitchedItemConfig(closest.SubType) .. glitchedDesc)
|
||||
-- grab the Item Config info if we haven't created a desc for it before, or its name has changed since we did (different game session)
|
||||
elseif glitchedObj.Description == glitchedDesc or glitchedObj.Name ~= glitchedName then
|
||||
EID:addCollectible(closest.SubType, EID:CheckGlitchedItemConfig(closest.SubType), glitchedName)
|
||||
glitchedObj = EID:getDescriptionObj(closest.Type, closest.Variant, closest.SubType, closest)
|
||||
end
|
||||
|
||||
@@ -1803,4 +1814,11 @@ if EID.enableDebug then
|
||||
require("eid_debugging")
|
||||
end
|
||||
|
||||
-- load repentogon stuff last to allow overrides of functions
|
||||
require("eid_repentogon")
|
||||
|
||||
Isaac.DebugString("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
|
||||
Isaac.DebugString("External Item Descriptions v"..EID.ModVersion.."_"..EID.ModVersionCommit.." loaded.")
|
||||
Isaac.DebugString("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
|
||||
|
||||
print("External Item Descriptions v"..EID.ModVersion.."_"..EID.ModVersionCommit.." loaded.")
|
||||
+3
-2
@@ -11,10 +11,11 @@ This mod displays detailed information about all items, trinkets, cards, runes a
|
||||
|
||||
[img]https://i.imgur.com/QmqdAmr.png[/img]
|
||||
[list]
|
||||
[*] [b]Compatible with Afterbirth+ and Repentance[/b]
|
||||
[*] [b]Compatible with Afterbirth+, Repentance and Repentogon[/b]
|
||||
[*] Displays information for all collectibles, trinkets, cards, runes, pills, horsepills and some rooms
|
||||
[*] Displays [b]additional information[/b] like item type, charges, transformations, Spindown Dice results, Bag of Crafting recipes, TMTRAINER item effects (Detailed informations require --luadebug flag!), and much much more!
|
||||
[*] Mod support for nearly all mods!
|
||||
[*] Extended features available with [url=https://repentogon.com/]Repentogon[/url]
|
||||
[*] Easy to use API ([url=https://github.com/wofsauge/External-Item-Descriptions/wiki]Documentation here[/url])
|
||||
[*] A huge amount of custom options like:
|
||||
[list]
|
||||
@@ -50,7 +51,7 @@ You are currently looking at the version for Afterbirth+ and Repentance.
|
||||
[img]https://i.imgur.com/jrdGbna.png[/img]
|
||||
[url=https://github.com/wofsauge/External-Item-Descriptions/blob/master/CREDITS.md]Check out the credits here[/url]
|
||||
</description>
|
||||
<version>4.65</version>
|
||||
<version>4.69</version>
|
||||
<visibility>Public</visibility>
|
||||
<tag id="Lua"/>
|
||||
<tag id="Items"/>
|
||||
|
||||
Reference in new issue
Block a user