Compare commits

..
30 Commits
Author SHA1 Message Date
Wofsauge e8ad909891 Added feature to hide pilleffects till they are used at least once 2022-09-03 01:18:42 +02:00
Wofsauge 71b19d9f75 Fixed huge data-inconsistency issues when using legacy EID API features 2022-09-03 00:33:18 +02:00
Wofsauge d2ecc50c56 Added GridEntity Description feature; Reworked sacrifice spike descriptions 2022-09-01 20:20:51 +02:00
Wofsauge 81efabf913 Updated Workshop mod 2022-09-01 00:13:20 +02:00
Wofsauge ceba87a2dc Added Item Reminder for Void (absorbed active items) 2022-08-31 23:59:22 +02:00
Wofsauge 47acc42f6f EID:getObjectName() now can get entity names; Added coloring and icons to Name markup 2022-08-31 23:28:15 +02:00
Wofsauge b60439bddc Added Name-Markup. Example: {{NameC3}} -> Spoon Bender 2022-08-31 22:55:13 +02:00
Wofsauge 01706097d9 Added autodetection of tag-based transformations on modded items 2022-08-31 22:03:29 +02:00
wofsauge 786aae892c Merge pull request #505 from presaac/patch-7
ja_jp : sync with en_us & some fixes
2022-08-31 21:11:39 +02:00
wofsauge 2b1daa3533 Merge pull request #504 from presaac/patch-6
ja_jp : some fixes
2022-08-31 21:11:15 +02:00
Wofsauge 44e11223e1 Echo Chamber Reminder now supports Cards, Runes and pills 2022-08-31 21:06:53 +02:00
prefab 0479419e21 ja_jp : sync with en_us & some fixes 2022-08-31 11:20:12 +09:00
prefab 8857822788 ja_jp : some fixes 2022-08-31 11:19:37 +09:00
Wofsauge f8de2683ab Add last used pill effect info for VURP;
Added Echo Chamber itemreminder feature
2022-08-31 00:43:44 +02:00
Wofsauge 3b8e2b770e Updated Czech Translationpack (Polyphemus, Powerpill) 2022-08-23 13:30:22 +02:00
Buurazu e901db7002 revert BoC display to Recipe List by default
due to overwhelming user demand/confusion
2022-08-21 22:16:17 -04:00
Buurazu 71664c739c Merge pull request #501 from biobak64/en-fixes
en_us big rewrite
2022-08-21 05:56:54 -04:00
Buurazu 3370676b45 Merge branch 'master' into en-fixes 2022-08-21 05:56:09 -04:00
Buurazu 6c63b6c694 final check 2022-08-21 05:54:55 -04:00
Buurazu b9186d6194 oops i was wrong 2022-08-20 14:17:40 -04:00
Buurazu 6523621de8 up to book of belial buffs 2022-08-20 05:42:59 -04:00
Buurazu e9b3d51468 up to 715 2022-08-20 05:29:15 -04:00
Buurazu f0ea6bccbf lil brimstone icon 2022-08-20 05:16:26 -04:00
Buurazu f6eb4936df i like the single use !s 2022-08-20 04:17:56 -04:00
Buurazu 3921b096d8 sync wording with rep 2022-08-17 06:08:45 -04:00
Buurazu 8067072a2b up to 555 2022-08-17 06:08:18 -04:00
Buurazu 4f36033b2c done checking ab+ 2022-08-17 04:36:21 -04:00
Buurazu 20b2603ae7 checked through to trinkets 2022-08-17 01:48:24 -04:00
Buurazu e117360e4b checked up to 391 2022-08-16 06:28:22 -04:00
biobak 550b3e9878 en_us big rewrite
massive rewrite for consistency

standardized all tense usage so that descriptions are in the present tense unless the action happens in the future

standardized references to the character ("you", "the character", "the player", etc.) so that all descriptions say "Isaac" unless the description is specifically talking about characters, in which cases it becomes "the player"

Standardized "gain", "adds", "gives", etc. to "grants"

Standardized formulations to make clearer sentences ("when taking damage, gives +1 damage up" -> "taking damage grants +1 damage up")

Removed superfluous info, overly complex formulas and purely cosmetic descriptions

Made some descriptions clearer ("bomb tears" -> "isaac shoots bombs instead of tears")

Removed the word familiar from familiar descriptions ("familiar that shoots spectral tears" -> "shoots spectral tears")

Made verbs third person ("Heal a red heart" -> "Heals a red heart")

Changed Sacrifice Room and Sanguine Bond descriptions to make them easier to read

Probably a lot more too but i've been on it for a while and i forgot

might be errors in there i haven't run it  through spellcheck
2022-08-15 19:31:12 +02:00
15 changed files with 1399 additions and 1201 deletions

No files matched your search

+2 -2
View File
@@ -188,7 +188,7 @@ EID.descriptions[languageCode].collectibles={
{"166", "D20", "Zamíchá pickupy"}, {"166", "D20", "Zamíchá pickupy"},
{"167", "Harlekýnské Dítě", "Vystřelí dvě slzy ve tvaru písmene V#Uděluje 4 poškození za střelu"}, {"167", "Harlekýnské Dítě", "Vystřelí dvě slzy ve tvaru písmene V#Uděluje 4 poškození za střelu"},
{"168", "Epický Zárodek", "Kontrolovatelný nálet místo slz#Uděluje 20násobek tvého poškození"}, {"168", "Epický Zárodek", "Kontrolovatelný nálet místo slz#Uděluje 20násobek tvého poškození"},
{"169", "Polyfémos", "↑ {{Damage}} +100% Větší Poškození#↑ {{Damage}} +4 dodatečné Větší Poškození#↓ {{Tears}} Méně Slz#Slzy pokračují i po zabití nepřítele"}, {"169", "Polyfémos", "↑ {{Damage}} +100% Větší Poškození#↑ {{Damage}} +4 dodatečné Větší Poškození#↓ {{Tears}} Méně Slz#Slzy pokračují i ​​po zabití nepřítele"},
{"170", "Taťka Dlouhonožka", "Dupe na nepřátele#Uděluje 40 poškození za sekundu"}, {"170", "Taťka Dlouhonožka", "Dupe na nepřátele#Uděluje 40 poškození za sekundu"},
{"171", "Pavoučí Prdel", "Zpomalí nepřátele na 4 sekundy#10 poškození všem nepřátelům"}, {"171", "Pavoučí Prdel", "Zpomalí nepřátele na 4 sekundy#10 poškození všem nepřátelům"},
{"172", "Obětní Dýka", "Orbitální dýka#Blokuje nepřátelské střely#Uděluje 225 poškození za sekundu"}, {"172", "Obětní Dýka", "Orbitální dýka#Blokuje nepřátelské střely#Uděluje 225 poškození za sekundu"},
@@ -804,7 +804,7 @@ EID.descriptions[languageCode].pills={
{"33", "Jedna Tě Zmenší", "Zmenšení#Tvůj hitbox je menší"}, {"33", "Jedna Tě Zmenší", "Zmenšení#Tvůj hitbox je menší"},
{"34", "Zamoření!", "Vytvoří 1 modrého pavouka za každé hovno v místnosti"}, {"34", "Zamoření!", "Vytvoří 1 modrého pavouka za každé hovno v místnosti"},
{"35", "Zamoření?", "Vytvoří 1 modrého pavouka za každého nepřítele v místnosti#Vytvoří 1-3 modré pavouky, když se v místnosti žádný nepřítel nenachází"}, {"35", "Zamoření?", "Vytvoří 1 modrého pavouka za každého nepřítele v místnosti#Vytvoří 1-3 modré pavouky, když se v místnosti žádný nepřítel nenachází"},
{"36", "Power Pilulka!", "Krátká nesmrtelnost#Udělujete kontaktní poškození"}, {"36", "Power Pilulka!", "Krátká nesmrtelnost#Uděluješ kontaktní poškození"},
{"37", "Retro Vize", "Rozpixeluje obrazovku po dobu 30 sekund"}, {"37", "Retro Vize", "Rozpixeluje obrazovku po dobu 30 sekund"},
{"38", "Přátelé až do Konce!", "Vytvoří 3 modré mouchy"}, {"38", "Přátelé až do Konce!", "Vytvoří 3 modré mouchy"},
{"39", "X-Lax", "Vytvoří za tebou klouzavou hovnovou kaluž"}, {"39", "X-Lax", "Vytvoří za tebou klouzavou hovnovou kaluž"},
+530 -530
View File
File diff suppressed because it is too large. Load diff
+5 -5
View File
@@ -271,7 +271,7 @@ EID.descriptions[languageCode].collectibles={
{"249", "There's Options", "ボスアイテムを2つの 候補から選択できる"}, {"249", "There's Options", "ボスアイテムを2つの 候補から選択できる"},
{"250", "Bogo Bombs", "全ての爆弾がダブル バージョンに置き換わる"}, {"250", "Bogo Bombs", "全ての爆弾がダブル バージョンに置き換わる"},
{"251", "Starter Deck", "カードを2枚まで 保持可能になる#全てのピルをカードに 置き変える#取得時、ランダムな カードを1枚スポーン"}, {"251", "Starter Deck", "カードを2枚まで 保持可能になる#全てのピルをカードに 置き変える#取得時、ランダムな カードを1枚スポーン"},
{"252", "Little Baggy", "ピルを2枚まで 保持可能になる#全てのカードをピルに 置き変える#取得時、ランダムな ピルを1個スポーン"}, {"252", "Little Baggy", "ピルを2個まで 保持可能になる#全てのカードをピルに 置き変える#取得時、ランダムな ピルを1個スポーン"},
{"253", "Magic Scab", "↑ 運    +1#↑ 最大体力 +1"}, {"253", "Magic Scab", "↑ 運    +1#↑ 最大体力 +1"},
{"254", "Blood Clot", "左目のみに適用:#↑ 攻撃力 +1#↑ 射程  +5"}, {"254", "Blood Clot", "左目のみに適用:#↑ 攻撃力 +1#↑ 射程  +5"},
{"255", "Screw", "↑ 連射速度 +0.5#↑ 弾速   +0.2"}, {"255", "Screw", "↑ 連射速度 +0.5#↑ 弾速   +0.2"},
@@ -393,7 +393,7 @@ EID.descriptions[languageCode].collectibles={
{"369", "Continuum", "↑ 射程   +2.25#↑ 涙の高さ +1.5#涙に透過効果を付与#涙が画面の端と端で ループするようになる"}, {"369", "Continuum", "↑ 射程   +2.25#↑ 涙の高さ +1.5#涙に透過効果を付与#涙が画面の端と端で ループするようになる"},
{"370", "Mr. Dolly", "↑ 連射速度 +0.7#↑ 射程   +5.25#↑ 涙の高さ +0.5#取得時、ランダムな ハートを3個スポーン"}, {"370", "Mr. Dolly", "↑ 連射速度 +0.7#↑ 射程   +5.25#↑ 涙の高さ +0.5#取得時、ランダムな ハートを3個スポーン"},
{"371", "Curse of the Tower", "ダメージを受けるたび 6個のトロル爆弾がスポーン#この効果で生成された トロル爆弾は爆弾強化 アイテムの特殊効果を 引き継ぐ"}, {"371", "Curse of the Tower", "ダメージを受けるたび 6個のトロル爆弾がスポーン#この効果で生成された トロル爆弾は爆弾強化 アイテムの特殊効果を 引き継ぐ"},
{"372", "Charged Baby", "バトル中、30秒おきに、#{{Blank}} \7 電池のスポーン#{{Blank}} \7 チャージの追加#{{Blank}} \7 敵を1.5秒間石化#{{Blank}} のいずれかを行う使い魔"}, {"372", "Charged Baby", "バトル中、30秒おきに、#{{Blank}} \7 電池のスポーン#{{Blank}} \7 チャージの追加#{{Blank}} \7 敵を1.5秒間石化#{{Blank}} のいずれかを行う使い魔#電池とチャージ効果は 一部屋2回まで有効"},
{"373", "Dead Eye", "↑ 涙が敵に当たるたび 攻撃力 +25%(最大100%)#涙が外れると一定確率で 攻撃力がリセットされる"}, {"373", "Dead Eye", "↑ 涙が敵に当たるたび 攻撃力 +25%(最大100%)#涙が外れると一定確率で 攻撃力がリセットされる"},
{"374", "Holy Light", "一定確率で聖なる涙が 発射され、衝突すると 近くの敵に光線が降り注ぐ#光線は攻撃力x4の ダメージを与える#確率:運0=9%、9=50%"}, {"374", "Holy Light", "一定確率で聖なる涙が 発射され、衝突すると 近くの敵に光線が降り注ぐ#光線は攻撃力x4の ダメージを与える#確率:運0=9%、9=50%"},
{"375", "Host Hat", "爆発耐性を付与#敵の弾を25%の確率で ブロックし、跳ね返す"}, {"375", "Host Hat", "爆発耐性を付与#敵の弾を25%の確率で ブロックし、跳ね返す"},
@@ -556,7 +556,7 @@ EID.descriptions[languageCode].collectibles={
{"532", "Lachryphagy", "涙が徐々に減速しながら 飛ぶようになり、停止か 衝突すると破裂して涙を 拡散する#涙が他の涙を吸収し、 サイズとダメージを 増加させるようになる#涙が5つ吸収されると、 即座に破裂する"}, {"532", "Lachryphagy", "涙が徐々に減速しながら 飛ぶようになり、停止か 衝突すると破裂して涙を 拡散する#涙が他の涙を吸収し、 サイズとダメージを 増加させるようになる#涙が5つ吸収されると、 即座に破裂する"},
{"533", "Trisagion", "涙が貫通効果を持つ 短い光線に置き換わる#光線は攻撃力x0.33の ダメージを複数回与える"}, {"533", "Trisagion", "涙が貫通効果を持つ 短い光線に置き換わる#光線は攻撃力x0.33の ダメージを複数回与える"},
{"534", "Schoolbag", "アクティブアイテムを 2つ保持可能になる#ドロップボタンで切替え"}, {"534", "Schoolbag", "アクティブアイテムを 2つ保持可能になる#ドロップボタンで切替え"},
{"535", "Blanket", "青ハート +1#体力を1回復#ボス部屋に入った時、 一度だけダメージを 無効化するシールド を付与  "}, {"535", "Blanket", "青ハート +1#体力を1回復#ボス部屋に入った時、 一度だけダメージを 無効化するシールドを付与"},
{"536", "Sacrificial Altar", "!!! 使い切りアイテム !!!#使い魔をランダムに最大 2体生贄に捧げ、等しい 数の悪魔部屋アイテムを スポーンする#所有する青ハエ/クモが コインに変換される"}, {"536", "Sacrificial Altar", "!!! 使い切りアイテム !!!#使い魔をランダムに最大 2体生贄に捧げ、等しい 数の悪魔部屋アイテムを スポーンする#所有する青ハエ/クモが コインに変換される"},
{"537", "Lil Spewer", "アイザックの攻撃に連動 してチャージを溜め、 解放時に有害な液体を 床に吐き出す使い魔#ピルを使用するたびに 液体の効果がランダムに 変化する#取得時、ランダムな ピルを1個スポーン"}, {"537", "Lil Spewer", "アイザックの攻撃に連動 してチャージを溜め、 解放時に有害な液体を 床に吐き出す使い魔#ピルを使用するたびに 液体の効果がランダムに 変化する#取得時、ランダムな ピルを1個スポーン"},
{"538", "Marbles", "取得時、ランダムな トリンケットを3つ スポーンする#ダメージを受けた時、 5%の確率で保持中の トリンケットが吸収 され、効果が永続化する"}, {"538", "Marbles", "取得時、ランダムな トリンケットを3つ スポーンする#ダメージを受けた時、 5%の確率で保持中の トリンケットが吸収 され、効果が永続化する"},
@@ -775,7 +775,7 @@ EID.descriptions[languageCode].pills={
{"2", "Balls of Steel", "青ハート +2"}, {"2", "Balls of Steel", "青ハート +2"},
{"3", "Bombs are Key", "爆弾と鍵の所持数を 入れ替える"}, {"3", "Bombs are Key", "爆弾と鍵の所持数を 入れ替える"},
{"4", "Explosive Diarrhea", "アイザックの尻から 点火済みの爆弾が 5連続スポーンする"}, {"4", "Explosive Diarrhea", "アイザックの尻から 点火済みの爆弾が 5連続スポーンする"},
{"5", "体力全回復", "体力全回復"}, {"5", "Full Health", "体力全回復"},
{"6", "Health Down", "↓ 最大体力 -1#最大体力が1以下の 場合、HPアップに変化"}, {"6", "Health Down", "↓ 最大体力 -1#最大体力が1以下の 場合、HPアップに変化"},
{"7", "Health Up", "↑ 最大体力 +1"}, {"7", "Health Up", "↑ 最大体力 +1"},
{"8", "I Found Pills", "効果なし"}, {"8", "I Found Pills", "効果なし"},
@@ -881,7 +881,7 @@ EID.descriptions[languageCode].CollectionPageInfo = "コレクションページ
EID.descriptions[languageCode].MCM = { EID.descriptions[languageCode].MCM = {
DemoObjectName = "Demo Object Name", DemoObjectName = "Demo Object Name",
DemoObjectTransformation = "Demo Transformation", DemoObjectTransformation = "Demo Transformation",
DemoObjectText = "日本語の表示サンプル#↑ 行間 +0.5#↓ 文字のサイズ +0.25#説明文は、単語間の半角 スペースで自動的に改行 されます#!!! 日本語はスペースを使用 しないので、改行位置に 半角スペースを決め打ち しています 表示幅をデフォルトから 変更すると表示が崩れる 可能性があります#デフォルトの表示幅:130 全角13文字が一行の限界#最終更新日:2022-08-04", DemoObjectText = "日本語の表示サンプル#↑ 行間 +0.5#↓ 文字のサイズ +0.25#説明文は、単語間の半角 スペースで自動的に改行 されます#!!! 日本語はスペースを使用 しないので、改行位置に 半角スペースを決め打ち しています 表示幅をデフォルトから 変更すると表示が崩れる 可能性があります#デフォルトの表示幅:130 全角13文字が一行の限界",
} }
EID.descriptions[languageCode].HoldMapTitle = "アイテムリマインダー" EID.descriptions[languageCode].HoldMapTitle = "アイテムリマインダー"
+1 -1
View File
@@ -74,7 +74,7 @@ local repCollectibles={
[155] = {"155", "Kukadlo", "Poletuje po místnosti#Uděluje 17.1 kontaktního poškození za sekundu#↑ {{Damage}} Slzy vystřelené z Izákova levého oka způsobí o 34 % větší poškození"}, -- The Peeper [155] = {"155", "Kukadlo", "Poletuje po místnosti#Uděluje 17.1 kontaktního poškození za sekundu#↑ {{Damage}} Slzy vystřelené z Izákova levého oka způsobí o 34 % větší poškození"}, -- The Peeper
[158] = {"158", "Křišťálová Koule", "Odhalí celou mapu#{{SoulHeart}} Vytvoří duševní srdce#{{Card}} náhodnou kartu#{{Rune}} či runu#Při držení :#{{PlanetariumChance}} +15% šance na Planetárium#100% šance pokud {{TreasureRoom}} Pokladnice byla přeskočena"}, -- Crystal Ball [158] = {"158", "Křišťálová Koule", "Odhalí celou mapu#{{SoulHeart}} Vytvoří duševní srdce#{{Card}} náhodnou kartu#{{Rune}} či runu#Při držení :#{{PlanetariumChance}} +15% šance na Planetárium#100% šance pokud {{TreasureRoom}} Pokladnice byla přeskočena"}, -- Crystal Ball
[161] = {"161", "Ankh", "{{Player4}} Znovuzrodiš se jako ??? (Blue Baby) po smrti#{{Player25}} Poskvrněný ??? se sám oživí"}, -- Ankh [161] = {"161", "Ankh", "{{Player4}} Znovuzrodiš se jako ??? (Blue Baby) po smrti#{{Player25}} Poskvrněný ??? se sám oživí"}, -- Ankh
[169] = {"169", "Polyfémos", "↑ {{Damage}} +100% Větší Poškození#↑ {{Damage}} +4 dodatečné Větší Poškození#↓ {{Tears}} -58% Méně Slz#Slzy pokračují i po zabití nepřítele"}, [169] = {"169", "Polyfémos", "↑ {{Damage}} +100% Větší Poškození#↑ {{Damage}} +4 dodatečné Větší Poškození#↓ {{Tears}} -58% Méně Slz#Slzy pokračují i ​​po zabití nepřítele"},
[171] = {"171", "Pavoučí Prdel", "{{Slow}} Zpomalí nepřátele na 4 sekundy#10 poškození všem nepřátelům#Zabití nepřátelé vytvoří modré pavouky"}, -- Spider Butt [171] = {"171", "Pavoučí Prdel", "{{Slow}} Zpomalí nepřátele na 4 sekundy#10 poškození všem nepřátelům#Zabití nepřátelé vytvoří modré pavouky"}, -- Spider Butt
[172] = {"172", "Obětní Dýka", "Orbitální nůž#Blokuje nepřátelské střely#Udává 112.5 poškození za sekundu"}, -- Sacrificial Dagger [172] = {"172", "Obětní Dýka", "Orbitální nůž#Blokuje nepřátelské střely#Udává 112.5 poškození za sekundu"}, -- Sacrificial Dagger
[176] = {"176", "Kmenové Buňky", "↑ {{Heart}} +1 Zvýšení Zdraví#↑ {{Shotspeed}} +0.16 Vyšší Rychlost Střel#{{Heart}} Vyléčí 1 červené srdce"}, -- Stem Cells [176] = {"176", "Kmenové Buňky", "↑ {{Heart}} +1 Zvýšení Zdraví#↑ {{Shotspeed}} +0.16 Vyšší Rychlost Střel#{{Heart}} Vyléčí 1 červené srdce"}, -- Stem Cells
+530 -540
View File
File diff suppressed because it is too large. Load diff
+10 -18
View File
@@ -2,7 +2,7 @@
----- Basic Japanese descriptions ----- ----- Basic Japanese descriptions -----
--------------------------------------- ---------------------------------------
-- Last Update: 2022-08-11 -- Last Update: 2022-08-31
-- FORMAT: Item ID | Name| Description -- FORMAT: Item ID | Name| Description
-- '#' = starts new line of text -- '#' = starts new line of text
@@ -128,6 +128,8 @@ local repCollectibles={
[294] = {"294", "Butter Bean", "おならで近くの敵と弾を ノックバックさせる#この効果で壁や障害物に 衝突した敵はダメージを 受ける "}, -- Butter Bean [294] = {"294", "Butter Bean", "おならで近くの敵と弾を ノックバックさせる#この効果で壁や障害物に 衝突した敵はダメージを 受ける "}, -- Butter Bean
[295] = {"295", "Magic Fingers", "1コイン消費し、部屋の 全ての敵に攻撃力x2+10の ダメージを与える"}, -- Magic Fingers [295] = {"295", "Magic Fingers", "1コイン消費し、部屋の 全ての敵に攻撃力x2+10の ダメージを与える"}, -- Magic Fingers
[296] = {"296", "Converter", "青/黒ハートを1個消費し、 最大体力を1個増やす"}, -- Converter [296] = {"296", "Converter", "青/黒ハートを1個消費し、 最大体力を1個増やす"}, -- 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", "Pandora's Box", "{{Warning}} 使い切りアイテム#使用フロアで効果が変化:#B1:青ハート 2個#B2:爆弾と鍵 各2個#C1:ボスアイテム 1個#C2:B1+C1#D1:青ハート 4個#D2:コイン 20枚#W1:ボスアイテム 2個#W2:{{Collectible33}} 聖書#???/Void:なし#Sheol:悪魔部屋アイテム1個    黒ハート 1個#Cat:天使部屋アイテム 1個   白ハート 1個#DarkRoom:{{Collectible523}}お引越し用の箱       をアンロック#Chest:コイン 1枚#Home:{{Collectible580}}レッドキー"}, -- Pandora's Box [297] = {"297", "Pandora's Box", "{{Warning}} 使い切りアイテム#使用フロアで効果が変化:#B1:青ハート 2個#B2:爆弾と鍵 各2個#C1:ボスアイテム 1個#C2:B1+C1#D1:青ハート 4個#D2:コイン 20枚#W1:ボスアイテム 2個#W2:{{Collectible33}} 聖書#???/Void:なし#Sheol:悪魔部屋アイテム1個    黒ハート 1個#Cat:天使部屋アイテム 1個   白ハート 1個#DarkRoom:{{Collectible523}}お引越し用の箱       をアンロック#Chest:コイン 1枚#Home:{{Collectible580}}レッドキー"}, -- Pandora's Box
[300] = {"300", "Aries", "↑ 移動速度 +0.25#素早く敵に衝突すると、 敵に25のダメージを与える#この時、アイザックは ダメージを受けない"}, -- Aries [300] = {"300", "Aries", "↑ 移動速度 +0.25#素早く敵に衝突すると、 敵に25のダメージを与える#この時、アイザックは ダメージを受けない"}, -- Aries
[307] = {"307", "Capricorn", "↑ 最大体力 +1#↑ 攻撃力  +0.5#↑ 移動速度 +0.1#↑ 射程   +0.75#↑ 連射速度 +0.5#コイン・爆弾・鍵 +1"}, -- Capricorn [307] = {"307", "Capricorn", "↑ 最大体力 +1#↑ 攻撃力  +0.5#↑ 移動速度 +0.1#↑ 射程   +0.75#↑ 連射速度 +0.5#コイン・爆弾・鍵 +1"}, -- Capricorn
@@ -154,12 +156,11 @@ local repCollectibles={
[354] = {"354", "Crack Jacks", "↑ 最大体力 +1#取得時、トリンケットを ランダムに1個スポーン#体力を1回復"}, -- Crack Jacks [354] = {"354", "Crack Jacks", "↑ 最大体力 +1#取得時、トリンケットを ランダムに1個スポーン#体力を1回復"}, -- Crack Jacks
[355] = {"355", "Mom's Pearls", "↑ 射程 +0.38#↑ 運  +1#青ハート +1"}, -- Mom's Pearls [355] = {"355", "Mom's Pearls", "↑ 射程 +0.38#↑ 運  +1#青ハート +1"}, -- Mom's Pearls
[360] = {"360", "Incubus", "アイザックの涙をコピー して攻撃する使い魔#リリス以外のキャラで 使う場合、ダメージが 25%減少する"}, -- Incubus [360] = {"360", "Incubus", "アイザックの涙をコピー して攻撃する使い魔#リリス以外のキャラで 使う場合、ダメージが 25%減少する"}, -- Incubus
[365] = {"365", "Lost Fly", "壁や障害物に沿って 移動する使い魔#毎秒56の接触ダメージ#近くの敵を追尾攻撃する"}, -- Lost Fly [365] = {"365", "Lost Fly", "壁や障害物に沿って 移動する使い魔#毎秒56の接触ダメージ#近くの敵を引き付け、 アイザックの代わりに 攻撃対象となる"}, -- Lost Fly
[366] = {"366", "Scatter Bombs", "爆弾 +5#爆弾から4~5個の小さな 爆弾が分裂する"}, -- Scatter Bombs [366] = {"366", "Scatter Bombs", "爆弾 +5#爆弾から4~5個の小さな 爆弾が分裂する"}, -- Scatter Bombs
[368] = {"368", "Epiphora", "同一方向に攻撃し続けると 連射速度が上昇していき、 最大200%アップする#攻撃の停止・方向変更で 連射速度がリセットされる"}, -- Epiphora [368] = {"368", "Epiphora", "同一方向に攻撃し続けると 連射速度が上昇していき、 最大200%アップする#攻撃の停止・方向変更で 連射速度がリセットされる"}, -- Epiphora
[369] = {"369", "Continuum", "↑ 射程 +3#涙に透過効果を付与#涙が画面の端と端で ループするようになる"}, -- Continuum [369] = {"369", "Continuum", "↑ 射程 +3#涙に透過効果を付与#涙が画面の端と端で ループするようになる"}, -- Continuum
[370] = {"370", "Mr. Dolly", "↑ 連射速度 +0.7#↑ 射程   +1.5#取得時、ランダムな ハートを3個スポーン"}, -- Mr. Dolly [370] = {"370", "Mr. Dolly", "↑ 連射速度 +0.7#↑ 射程   +1.5#取得時、ランダムな ハートを3個スポーン"}, -- Mr. Dolly
[372] = {"372", "Charged Baby", "バトル中、30秒おきに、#{{Blank}} \7 電池のスポーン#{{Blank}} \7 チャージの追加#{{Blank}} \7 敵を1.5秒間石化#{{Blank}} のいずれかを行う使い魔"}, -- Charged Baby
[374] = {"374", "Holy Light", "一定確率で聖なる涙が 発射され、衝突すると 近くの敵に光線が降り注ぐ#光線は攻撃力x3の ダメージを与える#確率:運0=9%、9=50%"}, -- Holy Light [374] = {"374", "Holy Light", "一定確率で聖なる涙が 発射され、衝突すると 近くの敵に光線が降り注ぐ#光線は攻撃力x3の ダメージを与える#確率:運0=9%、9=50%"}, -- Holy Light
[375] = {"375", "Host Hat", "爆発耐性を付与#敵の弾を25%の確率で ブロックし、跳ね返す#頭上に落下してくる弾を ブロックする"}, -- Host hat [375] = {"375", "Host Hat", "爆発耐性を付与#敵の弾を25%の確率で ブロックし、跳ね返す#頭上に落下してくる弾を ブロックする"}, -- Host hat
[376] = {"376", "Restock", "お店で商品を購入すると 新しい商品が補充される#補充されるたびに商品が 値上がりする"}, -- Restock [376] = {"376", "Restock", "お店で商品を購入すると 新しい商品が補充される#補充されるたびに商品が 値上がりする"}, -- Restock
@@ -224,7 +225,6 @@ local repCollectibles={
[523] = {"523", "Moving Box", "部屋のピックアップと アイテムを、10個まで 保存して運べる#保存した状態で再使用 すると、中身をそこに 展開する"}, -- Moving Box [523] = {"523", "Moving Box", "部屋のピックアップと アイテムを、10個まで 保存して運べる#保存した状態で再使用 すると、中身をそこに 展開する"}, -- Moving Box
[524] = {"524", "Technology Zero", "涙同士が電気ビームで つながり、触れた敵に 攻撃力x0.3のダメージ を秒間15回与える"}, -- Technology Zero [524] = {"524", "Technology Zero", "涙同士が電気ビームで つながり、触れた敵に 攻撃力x0.3のダメージ を秒間15回与える"}, -- Technology Zero
[531] = {"531", "Haemolacria", "涙が弧を描いて飛び、 衝突すると破裂して 小さな涙が拡散する#↑ 攻撃力  +50%#↑ 攻撃力  +1#↓ 連射速度 -67%#↓ 射程   -20%"}, -- Haemolacria [531] = {"531", "Haemolacria", "涙が弧を描いて飛び、 衝突すると破裂して 小さな涙が拡散する#↑ 攻撃力  +50%#↑ 攻撃力  +1#↓ 連射速度 -67%#↓ 射程   -20%"}, -- Haemolacria
[535] = {"535", "Blanket", "青ハート +1#体力を1回復#{{HolyMantle}} ボス部屋に入った時、 一度だけダメージを 無効化するシールドを付与"},
[543] = {"543", "Hallowed Ground", "ダメージを受けると 白いうんちがスポーン#うんちオーラの範囲内:#↑ 攻撃力  +20%#↑ 連射速度 +150%#涙にホーミング効果を付与#一定確率でダメージ無効化"}, -- Hallowed Ground [543] = {"543", "Hallowed Ground", "ダメージを受けると 白いうんちがスポーン#うんちオーラの範囲内:#↑ 攻撃力  +20%#↑ 連射速度 +150%#涙にホーミング効果を付与#一定確率でダメージ無効化"}, -- Hallowed Ground
[549] = {"549", "Brittle Bones", "最大体力を0にし、6個の 骨ハートに置き換える#骨ハートを失うと:#8方向に骨が飛び散る#↑ 連射速度 +0.4(永続)"}, -- Brittle Bones [549] = {"549", "Brittle Bones", "最大体力を0にし、6個の 骨ハートに置き換える#骨ハートを失うと:#8方向に骨が飛び散る#↑ 連射速度 +0.4(永続)"}, -- Brittle Bones
[552] = {"552", "Mom's Shovel", "次のフロアにつながる トラップドアを生成#装飾のある床の上で 使用するとクロール スペースを生成する (草やゴミがある床)#!!! ある場所で使うと…?"}, -- Mom's Shovel [552] = {"552", "Mom's Shovel", "次のフロアにつながる トラップドアを生成#装飾のある床の上で 使用するとクロール スペースを生成する (草やゴミがある床)#!!! ある場所で使うと…?"}, -- Mom's Shovel
@@ -252,7 +252,7 @@ local repCollectibles={
[574] = {"574", "Monstrance", "アイザックがオーラを 放ち、範囲内の敵に ダメージを与える#オーラの中心に近付く ほどダメージ量が増加"}, -- Monstrance [574] = {"574", "Monstrance", "アイザックがオーラを 放ち、範囲内の敵に ダメージを与える#オーラの中心に近付く ほどダメージ量が増加"}, -- Monstrance
[575] = {"575", "The Intruder", "クモが頭に寄生し、スロー 効果付き涙で敵を攻撃する#ダメージを受けた時、 一定確率で頭から飛び出す"}, -- The Intruder [575] = {"575", "The Intruder", "クモが頭に寄生し、スロー 効果付き涙で敵を攻撃する#ダメージを受けた時、 一定確率で頭から飛び出す"}, -- The Intruder
[576] = {"576", "Dirty Mind", "敵のうんちが味方になる#うんちを壊すと1~4匹の うんち使い魔がスポーン#特殊なうんちは特殊な うんち使い魔をスポーン#一定確率で岩がうんちに 置き換わる"}, -- Dirty Mind [576] = {"576", "Dirty Mind", "敵のうんちが味方になる#うんちを壊すと1~4匹の うんち使い魔がスポーン#特殊なうんちは特殊な うんち使い魔をスポーン#一定確率で岩がうんちに 置き換わる"}, -- Dirty Mind
[577] = {"577", "Damocles", "{{Warning}} 使い切りアイテム {{Warning}}#頭上に吊るされた剣が 一定の確率で落下し、 アイザックが即死する#剣が吊るされている間、 アイテムは倍になって スポーンする#お店、宝箱、悪魔取引の アイテムは倍にならない#即死効果は無敵状態で 回避できる#落下確率は15分で50%"}, -- Damocles [577] = {"577", "Damocles", "{{Warning}} 使い切りアイテム {{Warning}}#使うと、アイザックの 頭上に剣が吊るされ、 以降、アイテムが倍に なってスポーンする#お店、宝箱、悪魔取引の アイテムは倍にならない#{{Warning}} ダメージを受けた後、 剣が一定確率で落下し、 アイザックが即死する#即死効果は無敵状態で 回避できる#落下確率は15分で50%"}, -- Damocles
[578] = {"578", "Free Lemonade", "床にレモネードが広がり、 敵に毎秒24のダメージを 与える"}, -- Free Lemonade [578] = {"578", "Free Lemonade", "床にレモネードが広がり、 敵に毎秒24のダメージを 与える"}, -- Free Lemonade
[579] = {"579", "Spirit Sword", "涙を剣による近接攻撃に 置き換える#剣は攻撃力x3のダメージを 与え、総体力が十分な時、 ビームを放つ#フルチャージするとスピン アタックとビームを放つ"}, -- Spirit Sword [579] = {"579", "Spirit Sword", "涙を剣による近接攻撃に 置き換える#剣は攻撃力x3のダメージを 与え、総体力が十分な時、 ビームを放つ#フルチャージするとスピン アタックとビームを放つ"}, -- Spirit Sword
[580] = {"580", "Red Key", "赤いドアの輪郭が表示 された壁に対して使用 すると、新しい部屋を 生成できる#10%の確率で特殊部屋が 生成される#13x13の範囲外に生成   すると、I AM ERRORに つながる  "}, -- Red Key [580] = {"580", "Red Key", "赤いドアの輪郭が表示 された壁に対して使用 すると、新しい部屋を 生成できる#10%の確率で特殊部屋が 生成される#13x13の範囲外に生成   すると、I AM ERRORに つながる  "}, -- Red Key
@@ -328,10 +328,10 @@ local repCollectibles={
[650] = {"650", "Plum Flute", "ベビープラムが召喚され、 10秒間敵と戦う"}, -- Plum Flute [650] = {"650", "Plum Flute", "ベビープラムが召喚され、 10秒間敵と戦う"}, -- Plum Flute
[651] = {"651", "Star of Bethlehem", "ボス部屋に向かって自律 移動し、到達すると停止 する使い魔#使い魔の範囲内:#↑ 攻撃力 +1#↑ 攻撃力 +20%#↑ 連射速度アップ#涙にホーミング効果を付与#一定確率でダメージ無効"}, -- Star of Bethlehem [651] = {"651", "Star of Bethlehem", "ボス部屋に向かって自律 移動し、到達すると停止 する使い魔#使い魔の範囲内:#↑ 攻撃力 +1#↑ 攻撃力 +20%#↑ 連射速度アップ#涙にホーミング効果を付与#一定確率でダメージ無効"}, -- Star of Bethlehem
[652] = {"652", "Cube Baby", "接触した敵にダメージと スロー効果を与え、敵を 倒した場合は凍結させる 使い魔  #自ら動けず、アイザック との接触や、敵の弾の ブロックでスライドする"}, -- Cube Baby [652] = {"652", "Cube Baby", "接触した敵にダメージと スロー効果を与え、敵を 倒した場合は凍結させる 使い魔  #自ら動けず、アイザック との接触や、敵の弾の ブロックでスライドする"}, -- Cube Baby
[653] = {"653", "Vade Retro", "保持中、倒された敵が 赤い幽霊を残す#アイテムを使用すると 赤い幽霊が爆発し、 敵にダメージを与える"}, -- Vade Retro [653] = {"653", "Vade Retro", "保持中、倒された敵が 赤い幽霊を残す#アイテムを使用すると 赤い幽霊が爆発し、 敵にダメージを与える#残り体力が50%以下の、 幽霊タイプの敵を即死 させる(ボスを含む)"}, -- Vade Retro
[654] = {"654", "False PHD", "黒ハート +1#全てのピルが識別される#良性のピルを悪性に変換#ステータスを下げるピルを 飲むと攻撃力が0.6増加し、 それ以外の場合黒ハートを スポーンする"}, -- False PHD [654] = {"654", "False PHD", "黒ハート +1#全てのピルが識別される#良性のピルを悪性に変換#ステータスを下げるピルを 飲むと攻撃力が0.6増加し、 それ以外の場合黒ハートを スポーンする"}, -- False PHD
[655] = {"655", "Spin to Win", "コマがアイザックを周回 し、敵に接触ダメージを 与え、弾をブロックする#毎秒10.5の接触ダメージ#使用すると、コマと他の 使い魔が高速で周回し、 接触ダメージが強化され、 移動速度が0.5アップする"}, -- Spin to Win [655] = {"655", "Spin to Win", "コマがアイザックを周回 し、敵に接触ダメージを 与え、弾をブロックする#毎秒10.5の接触ダメージ#使用すると、コマと他の 使い魔が高速で周回し、 接触ダメージが強化され、 移動速度が0.5アップする"}, -- Spin to Win
[656] = {"656", "Damocles", "頭上に吊るされた剣が 一定の確率で落下し、 アイザックが即死する#剣が吊るされている間、 アイテムは倍になって スポーンする#お店、宝箱、悪魔取引の アイテムは倍にならない#即死効果は無敵状態で 回避できる#落下確率は15分で50%"}, -- Damocles [656] = {"656", "Damocles", "使うと、アイザックの 頭上に剣が吊るされ、 以降、アイテムが倍に なってスポーンする#お店、宝箱、悪魔取引の アイテムは倍にならない#{{Warning}} ダメージを受けた後、 剣が一定確率で落下し、 アイザックが即死する#即死効果は無敵状態で 回避できる#落下確率は15分で50%"}, -- Damocles
[657] = {"657", "Vasculitis", "倒された敵が涙を拡散する#拡散する涙はアイザックの 持つ特殊効果を引き継ぐ"}, -- Vasculitis [657] = {"657", "Vasculitis", "倒された敵が涙を拡散する#拡散する涙はアイザックの 持つ特殊効果を引き継ぐ"}, -- Vasculitis
[658] = {"658", "Giant Cell", "ダメージを受けるたびに マイクロ・アイザックが スポーンし、近くの敵を 追いかけ攻撃する"}, -- Giant Cell [658] = {"658", "Giant Cell", "ダメージを受けるたびに マイクロ・アイザックが スポーンし、近くの敵を 追いかけ攻撃する"}, -- Giant Cell
[659] = {"659", "Tropicamide", "↑ 射程 +1.5#↑ 涙のサイズ"}, -- Tropicamide [659] = {"659", "Tropicamide", "↑ 射程 +1.5#↑ 涙のサイズ"}, -- Tropicamide
@@ -524,7 +524,7 @@ EID.descriptions[languageCode].bookOfVirtuesWisps = {
[42] = "7.5%の確率で{{Collectible149}}吐き気薬", -- Bob's Rotten Head [42] = "7.5%の確率で{{Collectible149}}吐き気薬", -- Bob's Rotten Head
[44] = "涙が10%の確率で敵を テレポートさせる#5秒おきに姿を消す", -- Teleport! [44] = "涙が10%の確率で敵を テレポートさせる#5秒おきに姿を消す", -- Teleport!
[45] = "倒した敵が20%の確率で 赤ハートを落とす", -- Yum Heart [45] = "倒した敵が20%の確率で 赤ハートを落とす", -- Yum Heart
[47] = "0.5倍ダメージ#使用時、照準地点に 2発の爆発涙を発射する", -- Doctor's Remote [47] = "0.5倍ダメージ#使用時、照準地点に 3発の爆発涙を発射する", -- Doctor's Remote
[49] = "涙攻撃なし#使用時、同時にレーザー 攻撃を放つ", -- Shoop da Whoop! [49] = "涙攻撃なし#使用時、同時にレーザー 攻撃を放つ", -- Shoop da Whoop!
[56] = "短射程・高速連射の涙#レモン汁を床に垂らし、 敵にダメージを与える", -- Lemon Mishap [56] = "短射程・高速連射の涙#レモン汁を床に垂らし、 敵にダメージを与える", -- Lemon Mishap
[58] = "敵の弾で破壊されない", -- Book of Shadows [58] = "敵の弾で破壊されない", -- Book of Shadows
@@ -826,7 +826,6 @@ EID.descriptions[languageCode].goldenTrinketEffects = {
local repCards={ local repCards={
[2] = {"2", "I - The Magician", "その部屋に居る間、涙に ホーミング効果を付与#↑ 射程 +3"}, -- I - The Magician [2] = {"2", "I - The Magician", "その部屋に居る間、涙に ホーミング効果を付与#↑ 射程 +3"}, -- I - The Magician
[4] = {"4", "III - The Empress", "その部屋に居る間:#↑ 攻撃力  +2.35#↑ 移動速度 +0.3"},
[12] = {"12", "XI - Strength", "その部屋に居る間:#↑ 最大体力 +1#↑ 攻撃力  +0.3#↑ 攻撃力  +50%#↑ 射程   +1.5#↑ 移動速度 +0.3"}, -- XI - Strength [12] = {"12", "XI - Strength", "その部屋に居る間:#↑ 最大体力 +1#↑ 攻撃力  +0.3#↑ 攻撃力  +50%#↑ 射程   +1.5#↑ 移動速度 +0.3"}, -- XI - Strength
[16] = {"16", "XV - The Devil", "その部屋に居る間:#↑ 攻撃力 +2"}, [16] = {"16", "XV - The Devil", "その部屋に居る間:#↑ 攻撃力 +2"},
[18] = {"18", "XVII - The Stars", "{{TreasureRoom}} トレジャールームに テレポート#{{Planetarium}} プラネタリウムがある場合、 そちらにテレポート"}, [18] = {"18", "XVII - The Stars", "{{TreasureRoom}} トレジャールームに テレポート#{{Planetarium}} プラネタリウムがある場合、 そちらにテレポート"},
@@ -839,7 +838,6 @@ local repCards={
[42] = {"42", "Chaos Card", "移動方向にカードを投げ、 触れた敵を即死させる#デリリウムとビーストは 即死無効"}, -- Chaos Card [42] = {"42", "Chaos Card", "移動方向にカードを投げ、 触れた敵を即死させる#デリリウムとビーストは 即死無効"}, -- Chaos Card
[51] = {"51", "Holy Card", "一度だけダメージを 無効化するシールドを 付与する   #効果は次のダメージを 受けるまで持続"}, -- Holy Card [51] = {"51", "Holy Card", "一度だけダメージを 無効化するシールドを 付与する   #効果は次のダメージを 受けるまで持続"}, -- Holy Card
[52] = {"52", "Huge Growth", "その部屋に居る間:#↑ 攻撃力 +7#↑ 射程  +3#障害物破壊能力を付与#アイザックのサイズ拡大"}, -- Huge Growth [52] = {"52", "Huge Growth", "その部屋に居る間:#↑ 攻撃力 +7#↑ 射程  +3#障害物破壊能力を付与#アイザックのサイズ拡大"}, -- Huge Growth
[54] = {"54", "Era Walk", "その部屋に居る間:#全ての敵をスロー状態に#↑ 移動速度 +0.5#↓ 弾速   -1"},
[55] = {"55", "Rune Shard", "ランダムなルーンの 効果を発動する#通常のルーンよりも 効果は弱体化される"}, -- Rune Shard [55] = {"55", "Rune Shard", "ランダムなルーンの 効果を発動する#通常のルーンよりも 効果は弱体化される"}, -- Rune Shard
[56] = {"56", "0 - The Fool?", "所持するピックアップと ハートを全て床に落とし、 残り体力を半ハートにする#一定数以上のコインと 爆弾は、{{Collectible74}}クォーターか {{Collectible19}}ドカーン!に変化して 落とされる"}, -- 0 - The Fool? [56] = {"56", "0 - The Fool?", "所持するピックアップと ハートを全て床に落とし、 残り体力を半ハートにする#一定数以上のコインと 爆弾は、{{Collectible74}}クォーターか {{Collectible19}}ドカーン!に変化して 落とされる"}, -- 0 - The Fool?
[57] = {"57", "I - The Magician?", "敵と弾を跳ね返すオーラを 1分間付与する"}, -- I - The Magician? [57] = {"57", "I - The Magician?", "敵と弾を跳ね返すオーラを 1分間付与する"}, -- I - The Magician?
@@ -927,12 +925,6 @@ local repPills={
[4] = {"3", "Bombs are Key", "爆弾と鍵の所持数を 入れ替える#金爆弾/金鍵の場合、 金効果も入れ替わる"}, -- Bombs are Key [4] = {"3", "Bombs are Key", "爆弾と鍵の所持数を 入れ替える#金爆弾/金鍵の場合、 金効果も入れ替わる"}, -- Bombs are Key
[12] = {"11", "Range Down", "↓ 射程 -0.6"}, -- Range Down [12] = {"11", "Range Down", "↓ 射程 -0.6"}, -- Range Down
[13] = {"12", "Range Up", "↑ 射程 +0.75"}, -- Range Up [13] = {"12", "Range Up", "↑ 射程 +0.75"}, -- Range Up
[14] = {"13", "Speed Down", "↓ 移動速度 -0.12"},
[15] = {"14", "Speed Up", "↑ 移動速度 +0.15"},
[16] = {"15", "Tears Down", "↓ 連射速度 -0.28"},
[17] = {"16", "Tears Up", "↑ 連射速度 +0.35"},
[18] = {"17", "Luck Down", "↓ 運 -1"},
[19] = {"18", "Luck Up", "↑ 運 +1"},
[38] = {"37", "Retro Vision", "ゲーム画面が30秒間 ピクセル加工される"}, [38] = {"37", "Retro Vision", "ゲーム画面が30秒間 ピクセル加工される"},
[42] = {"41", "I'm Drowsy...", "部屋の全ての敵と アイザックを スロー状態にする"}, -- I'm Drowsy... [42] = {"41", "I'm Drowsy...", "部屋の全ての敵と アイザックを スロー状態にする"}, -- I'm Drowsy...
[43] = {"42", "I'm Excited!!!", "部屋の全ての敵と アイザックを 加速状態にする#30秒後と60秒後にも 効果が発動する"}, -- I'm Excited!!! [43] = {"42", "I'm Excited!!!", "部屋の全ての敵と アイザックを 加速状態にする#30秒後と60秒後にも 効果が発動する"}, -- I'm Excited!!!
@@ -1083,10 +1075,10 @@ EID.descriptions[languageCode].CraftingBagQuality = "バッグ品質:"
EID.descriptions[languageCode].CraftingBestQuality = "最高品質:" EID.descriptions[languageCode].CraftingBestQuality = "最高品質:"
EID.descriptions[languageCode].CraftingHideKey = "非表示:" EID.descriptions[languageCode].CraftingHideKey = "非表示:"
EID.descriptions[languageCode].CraftingPreviewKey = "プレビュー" EID.descriptions[languageCode].CraftingPreviewKey = "プレビュー:"
EID.descriptions[languageCode].CraftingPreviewBackup = "!!! アンロックされていない場合" EID.descriptions[languageCode].CraftingPreviewBackup = "!!! アンロックされていない場合"
EID.descriptions[languageCode].CraftingResults = "スクロール:#{{Blank}} {{CONFIG_BoC_Toggle}} 押下中に {{ButtonY}} or {{ButtonA}}#固定: {{ButtonX}} 更新: {{ButtonB}}#バッグリセット:{{ButtonRB}} 長押し" EID.descriptions[languageCode].CraftingResults = "レシピのスクロール:#{{Blank}} マップ表示ボタン押下中#{{Blank}} {{ButtonY}} or {{ButtonA}}#レシピの固定: {{ButtonX}}#レシピの更新: {{ButtonB}}#バッグリセット:{{ButtonRB}} 長押し"
EID.descriptions[languageCode].BlankCardCharge = "白紙のカードチャージ:" EID.descriptions[languageCode].BlankCardCharge = "白紙のカードチャージ:"
EID.descriptions[languageCode].BlankCardQCard = "I AM ERRORにテレポート#白紙のカードと?カード 両方が消失する" EID.descriptions[languageCode].BlankCardQCard = "I AM ERRORにテレポート#白紙のカードと?カード 両方が消失する"
+153 -14
View File
@@ -2,22 +2,39 @@
if not __eidItemDescriptions then if not __eidItemDescriptions then
__eidItemDescriptions = {} __eidItemDescriptions = {}
end end
setmetatable(__eidItemDescriptions,
{ __newindex = function(_, k, v) EID:addCollectible(k, v) end })
if not __eidTrinketDescriptions then if not __eidTrinketDescriptions then
__eidTrinketDescriptions = {} __eidTrinketDescriptions = {}
end end
setmetatable(__eidTrinketDescriptions,
{ __newindex = function(_, k, v) EID:addTrinket(k, v) end })
if not __eidCardDescriptions then if not __eidCardDescriptions then
__eidCardDescriptions = {} __eidCardDescriptions = {}
end end
setmetatable(__eidCardDescriptions,
{ __newindex = function(_, k, v) EID:addCard(k, v) end })
if not __eidPillDescriptions then if not __eidPillDescriptions then
__eidPillDescriptions = {} __eidPillDescriptions = {}
end end
setmetatable(__eidPillDescriptions,
{ __newindex = function(_, k, v) EID:addPill(k, v) end })
if not __eidItemTransformations then if not __eidItemTransformations then
__eidItemTransformations = {} __eidItemTransformations = {}
end end
setmetatable(__eidItemTransformations,
{ __newindex = function(_, k, v) EID:assignTransformation("collectible", k, v) end })
if not __eidEntityDescriptions then if not __eidEntityDescriptions then
__eidEntityDescriptions = {} __eidEntityDescriptions = {}
end end
setmetatable(__eidEntityDescriptions,
{ __newindex = function(_, k, v)
local entityID = {}
for id in string.gmatch(k, "([^.]+)") do
table.insert(entityID, id)
end
EID:addEntity(entityID[1], entityID[2], entityID[3], v[1], v[2])
end })
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
-------------------------Handle API Functions ----------------------------- -------------------------Handle API Functions -----------------------------
local nullVector = Vector(0,0) local nullVector = Vector(0,0)
@@ -146,6 +163,29 @@ function EID:assignTransformation(targetType, targetIdentifier, transformationSt
EID:removeEntryFromString(EID.CustomTransformRemovals, entryID, transformationString) EID:removeEntryFromString(EID.CustomTransformRemovals, entryID, transformationString)
end end
-- Try to automatically assign vanilla transformations to the entity
function EID:tryAutodetectTransformationsCollectible(collectibleID)
if not REPENTANCE then return end
local config = EID.itemConfig:GetCollectible(collectibleID)
local transformations = {}
transformations[EID.TRANSFORMATION.ANGEL] = config:HasTags(ItemConfig.TAG_ANGEL) or nil
transformations[EID.TRANSFORMATION.BOB] = config:HasTags(ItemConfig.TAG_BOB) or nil
transformations[EID.TRANSFORMATION.BOOKWORM] = config:HasTags(ItemConfig.TAG_BOOK) or nil
transformations[EID.TRANSFORMATION.CONJOINED] = config:HasTags(ItemConfig.TAG_BABY) or nil
transformations[EID.TRANSFORMATION.GUPPY] = config:HasTags(ItemConfig.TAG_GUPPY) or nil
transformations[EID.TRANSFORMATION.LEVIATHAN] = config:HasTags(ItemConfig.TAG_DEVIL) or nil
transformations[EID.TRANSFORMATION.LORD_OF_THE_FLIES] = config:HasTags(ItemConfig.TAG_FLY) or nil
transformations[EID.TRANSFORMATION.MOM] = config:HasTags(ItemConfig.TAG_MOM) or nil
transformations[EID.TRANSFORMATION.MUSHROOM] = config:HasTags(ItemConfig.TAG_MUSHROOM) or nil
transformations[EID.TRANSFORMATION.POOP] = config:HasTags(ItemConfig.TAG_POOP) or nil
transformations[EID.TRANSFORMATION.SPIDERBABY] = config:HasTags(ItemConfig.TAG_SPIDER) or nil
transformations[EID.TRANSFORMATION.SPUN] = config:HasTags(ItemConfig.TAG_SYRINGE) or nil
-- these dont have a tag : ADULT, STOMPY, SUPERBUM
for k, _ in pairs(transformations) do
EID:assignTransformation("collectible", collectibleID, k)
end
end
-- Removes a transformation of an entity -- Removes a transformation of an entity
-- valid target types: [collectible, trinket, card, pill, entity] -- valid target types: [collectible, trinket, card, pill, entity]
-- when type = entity, targetIdentifier must be in the format "ID.Variant.subtype". for any other type, it can just be the id -- when type = entity, targetIdentifier must be in the format "ID.Variant.subtype". for any other type, it can just be the id
@@ -427,6 +467,8 @@ function EID:getAdjustedSubtype(Type, Variant, SubType)
if SubType > 32768 then if SubType > 32768 then
return SubType - 32768 return SubType - 32768
end end
elseif tableName == "sacrifice" then
return math.min(#EID.descriptions["en_us"].sacrifice, SubType)
elseif tableName == "pills" or tableName == "horsepills" then elseif tableName == "pills" or tableName == "horsepills" then
-- The effect of a pill varies depending on what player is looking at it in co-op -- The effect of a pill varies depending on what player is looking at it in co-op
-- EID.pillPlayer is a way to recheck a pill for what different players will turn it into -- EID.pillPlayer is a way to recheck a pill for what different players will turn it into
@@ -510,24 +552,37 @@ function EID:getObjectName(Type, Variant, SubType)
return name or (not string.find(vanillaName, "^#") and vanillaName) or EID.descriptions["en_us"][tableName][SubType][2] or vanillaName return name or (not string.find(vanillaName, "^#") and vanillaName) or EID.descriptions["en_us"][tableName][SubType][2] or vanillaName
elseif tableName == "pills" or tableName == "horsepills" then elseif tableName == "pills" or tableName == "horsepills" then
local adjustedSubtype = EID:getAdjustedSubtype(Type, Variant, SubType) local adjustedSubtype = EID:getAdjustedSubtype(Type, Variant, SubType)
local vanillaName = "" return EID:getPillName(adjustedSubtype, tableName == "horsepills")
if adjustedSubtype == 9999 then
vanillaName = "Golden Pill" -- only used for languages that haven't defined a Golden Pill name
else
vanillaName = EID.itemConfig:GetPillEffect(adjustedSubtype - 1).Name
end
name = name or (not string.find(vanillaName, "^#") and vanillaName) or EID.descriptions["en_us"][tableName][adjustedSubtype][2] or vanillaName
return string.gsub(name,"I'm Excited!!!","I'm Excited!!") -- prevent markup trigger
elseif tableName == "sacrifice" then elseif tableName == "sacrifice" then
return EID:getDescriptionEntry("sacrificeHeader") return EID:getDescriptionEntry("sacrificeHeader").." ("..SubType.."/"..#EID.descriptions["en_us"].sacrifice..")"
elseif tableName == "dice" then elseif tableName == "dice" then
return EID:getDescriptionEntry("diceHeader").." ("..SubType..")" return EID:getDescriptionEntry("diceHeader").." ("..SubType..")"
elseif tableName == "custom" then elseif tableName == "custom" then
return name or Type.."."..Variant.."."..SubType local xmlName = EID.XMLEntityNames[Type.."."..Variant] or EID.XMLEntityNames[Type.."."..Variant.."."..SubType]
return name or xmlName or Type.."."..Variant.."."..SubType
end end
return Type.."."..Variant.."."..SubType return Type.."."..Variant.."."..SubType
end end
-- returns the name of a pill based on the pilleffect id
function EID:getPillName(pillID, isHorsepill)
local moddedDesc = EID:getDescriptionEntry("custom", "5.70."..pillID)
local legacyModdedDescription = EID:getLegacyModDescription(5, 70, pillID)
local tableName = isHorsepill and "horsepills" or "pills"
local defaultDesc = EID:getDescriptionEntry(tableName, pillID)
local name = moddedDesc or legacyModdedDescription or defaultDesc
local vanillaName = ""
if pillID == 9999 then
vanillaName = "Golden Pill" -- only used for languages that haven't defined a Golden Pill name
else
vanillaName = EID.itemConfig:GetPillEffect(pillID - 1).Name
end
name = name and name[2] or (not string.find(vanillaName, "^#") and vanillaName) or EID.descriptions["en_us"][tableName][pillID][2] or vanillaName
return string.gsub(name,"I'm Excited!!!","I'm Excited!!") -- prevent markup trigger
end
-- tries to get the ingame description of an object, based on their description in the XML files -- tries to get the ingame description of an object, based on their description in the XML files
function EID:getXMLDescription(Type, Variant, SubType) function EID:getXMLDescription(Type, Variant, SubType)
local tableName = EID:getTableName(Type, Variant, SubType) local tableName = EID:getTableName(Type, Variant, SubType)
@@ -545,6 +600,16 @@ end
-- check if an entity is part of the describable entities -- check if an entity is part of the describable entities
function EID:hasDescription(entity) function EID:hasDescription(entity)
if entity and EID:IsGridEntity(entity) then
if entity and EID.GridEntityWhitelist[entity:GetType()] then
for _, func in ipairs(EID.GridEntityWhitelist[entity:GetType()]) do
if func(entity) then
return true
end
end
end
return false
end
local isAllowed = false local isAllowed = false
local entityString = entity.Type .. "." .. entity.Variant .. "." .. entity.SubType local entityString = entity.Type .. "." .. entity.Variant .. "." .. entity.SubType
@@ -584,6 +649,33 @@ function EID:replaceShortMarkupStrings(text)
return text return text
end end
-- Replaces name markup objects with the actual name
function EID:replaceNameMarkupStrings(text)
for word in string.gmatch(text, "{{Name.-}}") do
local strTrimmed = string.gsub(word, "{{Name(.-)}}", function(a) return a end)
local indicator = string.sub(strTrimmed, 1, 1)
local id = tonumber(string.sub(strTrimmed, 2, -1))
local name = ""
if tonumber(indicator) then
local entityID = {}
for e in string.gmatch(strTrimmed, "([^.]*)") do
table.insert(entityID, tonumber(e))
end
name = EID:getObjectName(entityID[1], entityID[2], entityID[3])
elseif indicator == "C" then -- Collectible
name = "{{Collectible"..id.."}}"..EID:getObjectName(5, 100, id)
elseif indicator == "T" then -- Trinket
name = "{{Trinket"..id.."}}"..EID:getObjectName(5, 350, id)
elseif indicator == "P" then -- Pills
name = "{{Pill"..id.."}}"..EID:getPillName(id, false)
elseif indicator == "K" then -- Card
name = "{{Card"..id.."}}"..EID:getObjectName(5, 300, id)
end
text = string.gsub(text, word, "{{ColorYellow}}"..name.."{{CR}}", 1)
end
return text
end
-- Generates a string with the defined pixel-length using a custom 1px wide character -- Generates a string with the defined pixel-length using a custom 1px wide character
-- This will only work for this specific custom font -- This will only work for this specific custom font
function EID:generatePlaceholderString(length) function EID:generatePlaceholderString(length)
@@ -1284,7 +1376,7 @@ function EID:getScreenSize()
end end
function EID:getEntityData(entity, str) function EID:getEntityData(entity, str)
if entity ~= nil and entity:GetData() ~= nil then if entity ~= nil and not EID:IsGridEntity(entity) and entity:GetData() ~= nil then
return entity:GetData()[str] return entity:GetData()[str]
end end
return nil return nil
@@ -1561,9 +1653,8 @@ local hadQueuedItem = {}
function EID:evaluateQueuedItems() function EID:evaluateQueuedItems()
--initialize the interactions table for all players if it isn't already --initialize the interactions table for all players if it isn't already
for i = 0, game:GetNumPlayers() - 1 do for i = 0, game:GetNumPlayers() - 1 do
local player = Isaac.GetPlayer(i)
if not EID.PlayerItemInteractions[i] then if not EID.PlayerItemInteractions[i] then
EID.PlayerItemInteractions[i] = {LastTouch = 0, actives = {}, pills = {}, altActives = {}, altPills = {}} EID.PlayerItemInteractions[i] = {LastTouch = 0, actives = {}, pills = {}, altActives = {}, altPills = {}, pickupHistory = {}}
end end
EID.RecentlyTouchedItems[i] = EID.RecentlyTouchedItems[i] or {} EID.RecentlyTouchedItems[i] = EID.RecentlyTouchedItems[i] or {}
end end
@@ -1651,3 +1742,51 @@ end
function EID:SetPillEffectUnidentifyable(pillEffectID, isUnidentifyable) function EID:SetPillEffectUnidentifyable(pillEffectID, isUnidentifyable)
EID.UnidentifyablePillEffects[pillEffectID + 1] = isUnidentifyable or nil EID.UnidentifyablePillEffects[pillEffectID + 1] = isUnidentifyable or nil
end end
-- Add pickup usage to history of pickups used by the player
function EID:AddPickupToHistory(pickupType, effectID, player, useFlags)
if REPENTANCE and useFlags & UseFlag.USE_MIMIC == UseFlag.USE_MIMIC then return end -- dont add mimic pills to history
local playerID = EID:getPlayerID(player)
if not EID.PlayerItemInteractions[playerID].pickupHistory then
EID.PlayerItemInteractions[playerID].pickupHistory = {}
end
local historyTable = EID.PlayerItemInteractions[playerID].pickupHistory
-- pickupType = ["pill","card"], playerTypeID, effectID, hadEchoChamberWhenUsed
table.insert(historyTable, 1, {pickupType, player:GetPlayerType(), effectID, REPENTANCE and player:HasCollectible(700)})
end
-- Render a sprite of an entity
function EID:RenderEntity(entity, sprite, position)
if entity.Type == 5 and entity.Variant == 100 then
sprite:RenderLayer(1, position, nullVector, nullVector)
elseif entity.Type == 6 and entity.Variant == 16 then -- Crane Game
sprite:RenderLayer(2, position, nullVector, nullVector)
else
sprite:Render(position, nullVector, nullVector)
end
end
-- Tries to get the Vanilla transformations of modded items based on Tags
function EID:GetTransformationsOfModdedItems()
if not REPENTANCE then return end
local numCollectibles = EID:GetMaxCollectibleID()
for i = 733, numCollectibles, 1 do
EID:tryAutodetectTransformationsCollectible(i)
end
end
-- Returns true if a given entity is a grid entity
function EID:IsGridEntity(entity)
return entity.Type == nil
end
-- returns true if the given pilleffect id was used at least once by the current player
function EID:WasPillUsed(pillEffectID)
local playerID = EID:getPlayerID(EID.player)
local pillsTable = EID.PlayerItemInteractions[playerID].pills
if EID.player:GetPlayerType() == 38 then
pillsTable = EID.PlayerItemInteractions[playerID].altPills or pillsTable
end
return pillsTable[tostring(pillEffectID)] ~= nil
end
+8 -3
View File
@@ -245,6 +245,10 @@ EID.UserConfig = {
-- REPENTANCE ONLY!!! -- REPENTANCE ONLY!!!
-- Default = true -- Default = true
["DisplayPillInfoOptions?"] = true, ["DisplayPillInfoOptions?"] = true,
-- Keeps pilleffect descriptions unidentified, until the player has used the pill at least once in the run.
-- This ignores effects caused by PHD and False PHD
-- Default = false
["OnlyShowPillWhenUsedAtLeastOnce"] = false,
-- Toggle display of description for Pills that haven't been identified yet -- Toggle display of description for Pills that haven't been identified yet
-- Default = false -- Default = false
["ShowUnidentifiedPillDescriptions"] = false, ["ShowUnidentifiedPillDescriptions"] = false,
@@ -341,8 +345,8 @@ EID.UserConfig = {
-- No Recipes shows percentages of what item you might get from your bag / best option on the floor, for a more intended experience -- No Recipes 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 -- Pickups Only just shows the room/floor pickup count
-- (No Recipes is recommended if you have modded items) -- (No Recipes is recommended if you have modded items)
-- Default = "No Recipes" -- Default = "Recipe List"
["BagOfCraftingDisplayMode"] = "No Recipes", ["BagOfCraftingDisplayMode"] = "Recipe List",
-- Hide the recipe list when in battle -- Hide the recipe list when in battle
-- Default = true -- Default = true
["BagOfCraftingHideInBattle"] = true, ["BagOfCraftingHideInBattle"] = true,
@@ -521,6 +525,7 @@ EID.DefaultConfig = {
["DisplayPillInfoShop"] = true, ["DisplayPillInfoShop"] = true,
["DisplayPillInfoOptions?"] = true, ["DisplayPillInfoOptions?"] = true,
["DisplayObstructedPillInfo"] = false, ["DisplayObstructedPillInfo"] = false,
["OnlyShowPillWhenUsedAtLeastOnce"] = false,
["ShowUnidentifiedPillDescriptions"] = false, ["ShowUnidentifiedPillDescriptions"] = false,
["DisplayGlitchedItemInfo"] = debug and true or false, ["DisplayGlitchedItemInfo"] = debug and true or false,
["DisplaySacrificeInfo"] = true, ["DisplaySacrificeInfo"] = true,
@@ -536,7 +541,7 @@ EID.DefaultConfig = {
["BagOfCraftingDisplayNames"] = false, ["BagOfCraftingDisplayNames"] = false,
["BagOfCraftingDisplayIcons"] = false, ["BagOfCraftingDisplayIcons"] = false,
["BagOfCraftingHideInBattle"] = true, ["BagOfCraftingHideInBattle"] = true,
["BagOfCraftingDisplayMode"] = "No Recipes", ["BagOfCraftingDisplayMode"] = "Recipe List",
["BagOfCraftingModdedRecipes"] = true, ["BagOfCraftingModdedRecipes"] = true,
["CraftingHideKey"] = Keyboard.KEY_F3, ["CraftingHideKey"] = Keyboard.KEY_F3,
["CraftingHideButton"] = -1, ["CraftingHideButton"] = -1,
+16
View File
@@ -21,6 +21,22 @@ EID.effectList = {
["161"] = true, ["161"] = true,
} }
-- Grid entity types to be detected by EID
-- Add functions to the list to further filter the entries
EID.GridEntityWhitelist = {
[GridEntityType.GRID_SPIKES] = {
function(gridEntity)
return Game():GetRoom():GetType() == RoomType.ROOM_SACRIFICE and
EID.Config["DisplaySacrificeInfo"]
end,
function(gridEntity)
return REPENTANCE and EID.Config["DisplaySanguineInfo"] and
Game():GetRoom():GetType() == RoomType.ROOM_DEVIL and
EID:PlayersHaveCollectible(CollectibleType.COLLECTIBLE_SANGUINE_BOND)
end,
},
}
--maps the Player transformation from the enum PlayerForm to the internal transformation table --maps the Player transformation from the enum PlayerForm to the internal transformation table
-- Possible usages: EID.TRANSFORMATION[ PlayerForm.PLAYERFORM_MUSHROOM ] -- Possible usages: EID.TRANSFORMATION[ PlayerForm.PLAYERFORM_MUSHROOM ]
-- EID.TRANSFORMATION.MUSHROOM -- EID.TRANSFORMATION.MUSHROOM
+1 -1
View File
@@ -161,7 +161,7 @@ EID.InlineIcons["Test"] = {"pickups", -1, 9, 9, -1, 0, dummySprite3}
__eidItemDescriptions[3] = "{{Bomb}} Emote {{Key}} Test {{Test}}{{TestIcon}} {{ColorBlackBlink}}description {{SomeInvalidInnerStuff}} cool" -- 5.100.2 = Inner Eye __eidItemDescriptions[3] = "{{Bomb}} Emote {{Key}} Test {{Test}}{{TestIcon}} {{ColorBlackBlink}}description {{SomeInvalidInnerStuff}} cool" -- 5.100.2 = Inner Eye
__eidItemDescriptions[6] = "This item as Inline Icon {{Collectible6}}#And here are others {{Collectible69}} {{Collectible16}} {{Collectible323}} {{Collectible345}} {{Collectible223}}#And some trinket sprites {{Trinket12}} {{Trinket22}} {{Trinket1}} {{Trinket55}} {{Trinket100}} {{Trinket123}}" -- 5.100.2 = Inner Eye __eidItemDescriptions[6] = "This item as Inline Icon {{Collectible6}}#And here are others {{Collectible69}} {{Collectible16}} {{Collectible323}} {{Collectible345}} {{Collectible223}}#And some trinket sprites {{Trinket12}} {{Trinket22}} {{Trinket1}} {{Trinket55}} {{Trinket100}} {{Trinket123}}#And some names {{NameC3}},{{NameT23}} test {{Name3.54.0}}" -- 5.100.2 = Inner Eye
EID:addIgnoredEntity(5,100,10) -- Ignore "Halo of flies" collectible entity EID:addIgnoredEntity(5,100,10) -- Ignore "Halo of flies" collectible entity
+45
View File
@@ -40,6 +40,7 @@ local rainbowWormEffects = { [0] = 9, 11, 65, 27, 10, 12, 26, 66, 96, 144 }
-- Mysterious Paper does not play well with displaying Error 404's effect -- Mysterious Paper does not play well with displaying Error 404's effect
local mysteriousPaperBlacklist = { [23] = true, [48] = true } local mysteriousPaperBlacklist = { [23] = true, [48] = true }
function EID:getHoldMapDescription(player, checkingTwin) function EID:getHoldMapDescription(player, checkingTwin)
EID.InsideItemReminder = true EID.InsideItemReminder = true
-- Starting Blacklist: Recall, Hold -- Starting Blacklist: Recall, Hold
@@ -66,6 +67,29 @@ function EID:getHoldMapDescription(player, checkingTwin)
end end
end end
-- Echo Chamber Description
if REPENTANCE and player:HasCollectible(700) then
local playerID = player:GetPlayerType()
local pickupHistory = EID.PlayerItemInteractions[playerID].pickupHistory
if pickupHistory then
local pickupNames = ""
for i = 1, math.min(3, #pickupHistory) do
if pickupHistory[i][2] == playerID and pickupHistory[i][4] then -- Echo chamber is owned
if pickupHistory[i][1] == "pill" then
local name = EID:getPillName(pickupHistory[i][3], false)
pickupNames = pickupNames .. "{{Pill}} " .. name .. "#"
else
local name = EID:getObjectName(5, 300, pickupHistory[i][3])
pickupNames = pickupNames .. "{{Card" .. pickupHistory[i][3] .. "}} " .. name .. "#"
end
end
end
if pickupNames ~= "" then
append("{{Collectible700}}", EID:getObjectName(5, 100, 700), pickupNames)
end
end
end
-- Recently Acquired Item Descriptions -- Recently Acquired Item Descriptions
if EID.Config["ItemReminderShowRecentItem"] > 0 then if EID.Config["ItemReminderShowRecentItem"] > 0 then
local printedItems = 0 local printedItems = 0
@@ -101,12 +125,33 @@ function EID:getHoldMapDescription(player, checkingTwin)
elseif heldActive == 419 and not EID.isMirrorRoom then elseif heldActive == 419 and not EID.isMirrorRoom then
blacklist["5.100.419"] = true blacklist["5.100.419"] = true
append("{{Collectible419}}", EID:getObjectName(5,100,419) .. EID:getDescriptionEntry("HoldMapHeader"), EID:Teleport2Prediction()) append("{{Collectible419}}", EID:getObjectName(5,100,419) .. EID:getDescriptionEntry("HoldMapHeader"), EID:Teleport2Prediction())
-- D Infinity
elseif heldActive == 489 then elseif heldActive == 489 then
blacklist["5.100.489"] = true blacklist["5.100.489"] = true
addObjectDesc(5, 100, EID:CurrentDInfinity(getSeed(489), currentPlayer), "{{Collectible489}}") addObjectDesc(5, 100, EID:CurrentDInfinity(getSeed(489), currentPlayer), "{{Collectible489}}")
-- D1
elseif heldActive == 476 and EID.Config["ItemReminderShowRNGCheats"] then elseif heldActive == 476 and EID.Config["ItemReminderShowRNGCheats"] then
blacklist["5.100.476"] = true blacklist["5.100.476"] = true
append("{{Collectible476}}", EID:getObjectName(5,100,476) .. EID:getDescriptionEntry("HoldMapHeader"), EID:D1Prediction(getSeed(476))) append("{{Collectible476}}", EID:getObjectName(5,100,476) .. EID:getDescriptionEntry("HoldMapHeader"), EID:D1Prediction(getSeed(476)))
-- Void
elseif heldActive == 477 then
blacklist["5.100.477"] = true
local absorbedActives = ""
local absorbedItems = EID.absorbedItems[tostring(EID:getPlayerID(player))]
local countItems = 0
for _, _ in pairs(absorbedItems) do
countItems = countItems + 1
end
if countItems > 5 then
absorbedActives = "{{Blank}} "
end
for k, _ in pairs(absorbedItems) do
absorbedActives = absorbedActives .. "{{Collectible" .. k .. "}} "
if countItems <= 5 then
absorbedActives = absorbedActives .. " " .. EID:getObjectName(5, 100, tonumber(k)) .. "#"
end
end
append("{{Collectible477}}", EID:getObjectName(5, 100, 477), absorbedActives)
else else
addObjectDesc(5, 100, heldActive) addObjectDesc(5, 100, heldActive)
end end
+1
View File
@@ -361,6 +361,7 @@ if MCMLoaded then
EID:AddBooleanSetting("General", "DisableOnAltPath", "Show Hidden Alt-Path Item", {offText = "True", onText = "False", EID:AddBooleanSetting("General", "DisableOnAltPath", "Show Hidden Alt-Path Item", {offText = "True", onText = "False",
repOnly = true, infoText = "Show the description for the blind item in Downpour/Mines/etc."}) repOnly = true, infoText = "Show the description for the blind item in Downpour/Mines/etc."})
EID:AddBooleanSetting("General", "OnlyShowPillWhenUsedAtLeastOnce", "Show pill effect after one use", {infoText = "Keeps pilleffect descriptions unidentified, until the player has used the pill at least once in the run. This ignores effects caused by PHD and False PHD"})
EID:AddBooleanSetting("General", "ShowUnidentifiedPillDescriptions", "Show Unidentified Pill Effects") EID:AddBooleanSetting("General", "ShowUnidentifiedPillDescriptions", "Show Unidentified Pill Effects")
EID:AddBooleanSetting("General", "HideInBattle", "Hide in Battle", {infoText = "Hides the descriptions when in a fight"}) EID:AddBooleanSetting("General", "HideInBattle", "Hide in Battle", {infoText = "Hides the descriptions when in a fight"})
+31 -1
View File
@@ -217,8 +217,8 @@ end
-- Handle Sacrifice room payout -- Handle Sacrifice room payout
local function SacrificeRoomCallback(descObj) local function SacrificeRoomCallback(descObj)
local curCounter = descObj.ObjSubType or 1 local curCounter = descObj.ObjSubType or 1
descObj.Name = descObj.Name.." ("..curCounter.."/12)"
if curCounter <= 2 then if curCounter <= 2 then
--Remove B1 Bomb drop info when not on B1
if game:GetLevel():GetAbsoluteStage() > 1 then if game:GetLevel():GetAbsoluteStage() > 1 then
local splitPoint = string.find(descObj.Description, '#', 1) local splitPoint = string.find(descObj.Description, '#', 1)
descObj.Description = descObj.Description:sub(1,splitPoint-1) descObj.Description = descObj.Description:sub(1,splitPoint-1)
@@ -462,6 +462,35 @@ if REPENTANCE then
return descObj return descObj
end end
-- Handle VURP description addition
local function VurpCallback(descObj)
local adjustedID = EID:getAdjustedSubtype(descObj.ObjType, descObj.ObjVariant, descObj.ObjSubType)
if adjustedID - 1 ~= PillEffect.PILLEFFECT_VURP then return descObj end
local playerID = EID.player:GetPlayerType()
local pickupHistory = EID.PlayerItemInteractions[playerID].pickupHistory
if pickupHistory then
local lastUsedPill = nil
local i = 1
while (i <= #pickupHistory) do
local entry = pickupHistory[i]
if entry[1] == "pill" and entry[2] == playerID and entry[3] ~= PillEffect.PILLEFFECT_VURP + 1 then
lastUsedPill = entry[3]
break
end
i = i + 1
end
if lastUsedPill then
local tableName = EID:getTableName(descObj.ObjType, descObj.ObjVariant, descObj.ObjSubType)
local name = EID:getPillName(lastUsedPill, tableName == "horsepills")
EID:appendToDescription(descObj, "#{{Pill}} {{ColorSilver}}" .. name)
end
end
return descObj
end
-- Handle False PHD description addition -- Handle False PHD description addition
local function FalsePHDCallback(descObj) local function FalsePHDCallback(descObj)
local adjustedID = EID:getAdjustedSubtype(descObj.ObjType, descObj.ObjVariant, descObj.ObjSubType) local adjustedID = EID:getAdjustedSubtype(descObj.ObjType, descObj.ObjVariant, descObj.ObjSubType)
@@ -578,6 +607,7 @@ if REPENTANCE then
elseif descObj.ObjVariant == PickupVariant.PICKUP_PILL then elseif descObj.ObjVariant == PickupVariant.PICKUP_PILL then
if EID.collectiblesOwned[654] then table.insert(callbacks, FalsePHDCallback) end if EID.collectiblesOwned[654] then table.insert(callbacks, FalsePHDCallback) end
if EID.collectiblesOwned[348] then table.insert(callbacks, PlaceboCallback) end if EID.collectiblesOwned[348] then table.insert(callbacks, PlaceboCallback) end
table.insert(callbacks, VurpCallback)
if EID.pillPlayer == nil and #EID.coopAllPlayers > 1 then if EID.pillPlayer == nil and #EID.coopAllPlayers > 1 then
table.insert(callbacks, CoopPillCallback) table.insert(callbacks, CoopPillCallback)
+65 -85
View File
@@ -9,7 +9,7 @@ local game = Game()
require("eid_config") require("eid_config")
EID.Config = EID.UserConfig EID.Config = EID.UserConfig
EID.Config.Version = "3.2" -- note: changing this will reset everyone's settings to default! EID.Config.Version = "3.2" -- note: changing this will reset everyone's settings to default!
EID.ModVersion = "4.36" EID.ModVersion = "4.37"
EID.DefaultConfig.Version = EID.Config.Version EID.DefaultConfig.Version = EID.Config.Version
EID.isHidden = false EID.isHidden = false
EID.player = nil -- The primary Player Entity of Player 1 EID.player = nil -- The primary Player Entity of Player 1
@@ -29,20 +29,18 @@ EID.isDisplayingPermanent = false
EID.permanentDisplayTextObj = nil EID.permanentDisplayTextObj = nil
EID.lastDescriptionEntity = nil EID.lastDescriptionEntity = nil
EID.lineHeight = 11 EID.lineHeight = 11
EID.sacrificeCounter = {}
local spikePos = Vector(320, 280)
EID.itemConfig = Isaac.GetItemConfig() EID.itemConfig = Isaac.GetItemConfig()
EID.itemUnlockStates = {} EID.itemUnlockStates = {}
EID.CraneItemType = {} EID.CraneItemType = {}
EID.absorbedItems = {} EID.absorbedItems = {}
EID.CollectedItems = {} EID.CollectedItems = {}
EID.IgnoredEntities = {} EID.IgnoredEntities = {}
EID.CurrentRoomGridEntities = {}
EID.UnidentifyablePillEffects = {} -- List of pilleffects that are always unidentifyable EID.UnidentifyablePillEffects = {} -- List of pilleffects that are always unidentifyable
local pathsChecked = {} local pathsChecked = {}
local altPathItemChecked = {} local altPathItemChecked = {}
local alwaysUseLocalMode = false -- set to true after drawing a non-local mode description this frame local alwaysUseLocalMode = false -- set to true after drawing a non-local mode description this frame
EID.ForceRefreshCache = false -- set to true to force-refresh descriptions, currently used for potential transformation text changes EID.ForceRefreshCache = false -- set to true to force-refresh descriptions, currently used for potential transformation text changes
local preHourglassStatus = {}
EID.holdTabPlayer = 0 EID.holdTabPlayer = 0
EID.holdTabCounter = 0 EID.holdTabCounter = 0
EID.DInfinityState = {} EID.DInfinityState = {}
@@ -174,10 +172,9 @@ if not success then
end end
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
-------------Handle Sacrifice Room & Resetting Floor Trackers-------------- -------------Handle Resetting Floor Trackers--------------
function EID:onNewFloor() function EID:onNewFloor()
pathsChecked = {} pathsChecked = {}
EID.sacrificeCounter = {}
if REPENTANCE then if REPENTANCE then
EID.BoC.RoomQueries = {} EID.BoC.RoomQueries = {}
EID.BoC.FloorQuery = {} EID.BoC.FloorQuery = {}
@@ -188,19 +185,6 @@ function EID:onNewFloor()
end end
EID:AddCallback(ModCallbacks.MC_POST_NEW_LEVEL, EID.onNewFloor) EID:AddCallback(ModCallbacks.MC_POST_NEW_LEVEL, EID.onNewFloor)
function EID:onSacrificeDamage(_, _, flags, source)
if EID.Config["DisplaySacrificeInfo"] and game:GetRoom():GetType() == RoomType.ROOM_SACRIFICE and source.Type == 0 and flags & DamageFlag.DAMAGE_SPIKES == DamageFlag.DAMAGE_SPIKES then
local curRoomIndex = game:GetLevel():GetCurrentRoomDesc().ListIndex
if EID.sacrificeCounter[curRoomIndex] == nil then
EID.sacrificeCounter[curRoomIndex] = 1
end
if EID.sacrificeCounter[curRoomIndex] < 12 then
EID.sacrificeCounter[curRoomIndex] = EID.sacrificeCounter[curRoomIndex] + 1
end
end
end
EID:AddCallback(ModCallbacks.MC_ENTITY_TAKE_DMG, EID.onSacrificeDamage, EntityType.ENTITY_PLAYER)
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
------------------------Handle ALT FLOOR CHOICE---------------------------- ------------------------Handle ALT FLOOR CHOICE----------------------------
@@ -711,6 +695,7 @@ end
function EID:printBulletPoints(description, renderPos) function EID:printBulletPoints(description, renderPos)
local textboxWidth = tonumber(EID.Config["TextboxWidth"]) local textboxWidth = tonumber(EID.Config["TextboxWidth"])
local textScale = Vector(EID.Scale, EID.Scale) local textScale = Vector(EID.Scale, EID.Scale)
description = EID:replaceNameMarkupStrings(description)
description = EID:replaceShortMarkupStrings(description) description = EID:replaceShortMarkupStrings(description)
description = EID:replaceMarkupSize(description) description = EID:replaceMarkupSize(description)
for line in string.gmatch(description, "([^#]+)") do for line in string.gmatch(description, "([^#]+)") do
@@ -770,18 +755,16 @@ end
function EID:onNewRoom() function EID:onNewRoom()
EID.RecentlyTouchedItems = {} EID.RecentlyTouchedItems = {}
local curRoomIndex = game:GetLevel():GetCurrentRoomDesc().ListIndex EID.CurrentRoomGridEntities = {}
preHourglassStatus = {} local room = game:GetRoom()
for i = 1, room:GetGridSize(), 1 do
preHourglassStatus.SacrificeCounter = EID.sacrificeCounter[curRoomIndex] local gridEntity = room:GetGridEntity(i)
if gridEntity and EID:hasDescription(gridEntity) then
EID.CurrentRoomGridEntities[i] = gridEntity
end
end
end end
EID:AddCallback(ModCallbacks.MC_POST_NEW_ROOM, EID.onNewRoom) EID:AddCallback(ModCallbacks.MC_POST_NEW_ROOM, EID.onNewRoom)
function EID:WatchForGlowingHourglass()
local curRoomIndex = game:GetLevel():GetCurrentRoomDesc().ListIndex
EID.sacrificeCounter[curRoomIndex] = preHourglassStatus.SacrificeCounter
end
EID:AddCallback(ModCallbacks.MC_PRE_USE_ITEM, EID.WatchForGlowingHourglass, CollectibleType.COLLECTIBLE_GLOWING_HOUR_GLASS)
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
---------------------------Handle Rendering-------------------------------- ---------------------------Handle Rendering--------------------------------
@@ -838,11 +821,11 @@ function EID:renderIndicator(entity, playerNum)
ArrowOffset = Vector(0, -62) ArrowOffset = Vector(0, -62)
end end
local arrowPos = Isaac.WorldToScreen(entity.Position + ArrowOffset) local arrowPos = Isaac.WorldToScreen(entity.Position + ArrowOffset)
if entity:GetData() and entity:GetData()["EID_RenderOffset"] then if not EID:IsGridEntity(entity) and entity:GetData() and entity:GetData()["EID_RenderOffset"] then
entityPos = entityPos + entity:GetData()["EID_RenderOffset"] entityPos = entityPos + entity:GetData()["EID_RenderOffset"]
end end
-- Move highlights a bit to fit onto the alt Item layout of Flip / Tainted Laz -- Move highlights a bit to fit onto the alt Item layout of Flip / Tainted Laz
if REPENTANCE then if REPENTANCE and not EID:IsGridEntity(entity) then
if entity.Variant == 100 and EID.player:HasCollectible(CollectibleType.COLLECTIBLE_FLIP) and EID:getEntityData(entity, "EID_FlipItemID") then if entity.Variant == 100 and EID.player:HasCollectible(CollectibleType.COLLECTIBLE_FLIP) and EID:getEntityData(entity, "EID_FlipItemID") then
entityPos = entityPos + Vector(2.5,2.5) entityPos = entityPos + Vector(2.5,2.5)
elseif entity.Type == 6 and entity.Variant == 16 then elseif entity.Type == 6 and entity.Variant == 16 then
@@ -865,16 +848,17 @@ function EID:renderIndicator(entity, playerNum)
ArrowSprite:RenderLayer(playerNum-1, arrowPos, nullVector, nullVector) ArrowSprite:RenderLayer(playerNum-1, arrowPos, nullVector, nullVector)
else else
local colorMult = {1,1,1} local colorMult = {1,1,1}
local framecount = entity.FrameCount or game:GetFrameCount()
if EID.isMultiplayer then colorMult = playerRGB[playerNum] end if EID.isMultiplayer then colorMult = playerRGB[playerNum] end
if EID.Config["Indicator"] == "blink" then if EID.Config["Indicator"] == "blink" then
local c = 255 - math.floor(255 * ((entity.FrameCount % 40) / 40)) local c = 255 - math.floor(255 * ((framecount % 40) / 40))
local r, g, b = math.floor(c*colorMult[1]), math.floor(c*colorMult[2]), math.floor(c*colorMult[3]) local r, g, b = math.floor(c*colorMult[1]), math.floor(c*colorMult[2]), math.floor(c*colorMult[3])
sprite.Color = Color(1, 1, 1, 1, r/repDiv, g/repDiv, b/repDiv) sprite.Color = Color(1, 1, 1, 1, r/repDiv, g/repDiv, b/repDiv)
EID:renderEntity(entity, sprite, entityPos) EID:RenderEntity(entity, sprite, entityPos)
sprite.Color = Color(1, 1, 1, 1, 0, 0, 0) sprite.Color = Color(1, 1, 1, 1, 0, 0, 0)
else else
if EID.Config["Indicator"] == "highlight" then if EID.Config["Indicator"] == "highlight" then
local c = 255 - math.floor(255 * ((entity.FrameCount % 40) / 40)) local c = 255 - math.floor(255 * ((framecount % 40) / 40))
local r, g, b = math.floor(c*colorMult[1]), math.floor(c*colorMult[2]), math.floor(c*colorMult[3]) local r, g, b = math.floor(c*colorMult[1]), math.floor(c*colorMult[2]), math.floor(c*colorMult[3])
sprite.Color = Color(1, 1, 1, 1, r/repDiv, g/repDiv, b/repDiv) sprite.Color = Color(1, 1, 1, 1, r/repDiv, g/repDiv, b/repDiv)
elseif EID.Config["Indicator"] == "border" then elseif EID.Config["Indicator"] == "border" then
@@ -882,12 +866,12 @@ function EID:renderIndicator(entity, playerNum)
local r, g, b = math.floor(c*colorMult[1]), math.floor(c*colorMult[2]), math.floor(c*colorMult[3]) local r, g, b = math.floor(c*colorMult[1]), math.floor(c*colorMult[2]), math.floor(c*colorMult[3])
sprite.Color = Color(1, 1, 1, 1, r/repDiv, g/repDiv, b/repDiv) sprite.Color = Color(1, 1, 1, 1, r/repDiv, g/repDiv, b/repDiv)
end end
EID:renderEntity(entity, sprite, entityPos + Vector(0, 1)) EID:RenderEntity(entity, sprite, entityPos + Vector(0, 1))
EID:renderEntity(entity, sprite, entityPos + Vector(0, -1)) EID:RenderEntity(entity, sprite, entityPos + Vector(0, -1))
EID:renderEntity(entity, sprite, entityPos + Vector(1, 0)) EID:RenderEntity(entity, sprite, entityPos + Vector(1, 0))
EID:renderEntity(entity, sprite, entityPos + Vector(-1, 0)) EID:RenderEntity(entity, sprite, entityPos + Vector(-1, 0))
sprite.Color = Color(1, 1, 1, 1, 0, 0, 0) sprite.Color = Color(1, 1, 1, 1, 0, 0, 0)
EID:renderEntity(entity, sprite, entityPos) EID:RenderEntity(entity, sprite, entityPos)
end end
end end
if EID.isMirrorRoom then if EID.isMirrorRoom then
@@ -908,9 +892,6 @@ function EID:PositionLocalMode(entity)
local screenCenter = EID:getScreenSize()/2 local screenCenter = EID:getScreenSize()/2
EID.UsedPosition.X = EID.UsedPosition.X - (EID.UsedPosition-screenCenter).X * 2 EID.UsedPosition.X = EID.UsedPosition.X - (EID.UsedPosition-screenCenter).X * 2
end end
if entity:ToPickup() and entity:ToPickup():IsShopItem() then
EID:alterTextPos(Isaac.WorldToScreen(entity.Position + textPosOffset))
end
else else
EID.Scale = EID.Config["Size"] EID.Scale = EID.Config["Size"]
EID.CurrentScaleType = "Size" EID.CurrentScaleType = "Size"
@@ -918,17 +899,6 @@ function EID:PositionLocalMode(entity)
end end
end end
function EID:renderEntity(entity, sprite, position)
if entity.Type == 5 and entity.Variant == 100 then
sprite:RenderLayer(1, position, nullVector, nullVector)
elseif entity.Type == 6 and entity.Variant == 16 then -- Crane Game
sprite:RenderLayer(2, position, nullVector, nullVector)
else
sprite:Render(position, nullVector, nullVector)
end
end
function EID:renderHUDLocationIndicators() function EID:renderHUDLocationIndicators()
local mousePos = Isaac.WorldToRenderPosition(Input.GetMousePosition(true)) * 2 local mousePos = Isaac.WorldToRenderPosition(Input.GetMousePosition(true)) * 2
Isaac.RenderScaledText("Mouse pos X:"..mousePos.X.." Y:"..mousePos.Y, 100, 10, 0.5, 0.5, 1 ,1 ,1 ,1 ) Isaac.RenderScaledText("Mouse pos X:"..mousePos.X.." Y:"..mousePos.Y, 100, 10, 0.5, 0.5, 1 ,1 ,1 ,1 )
@@ -1314,10 +1284,8 @@ local function onRender(t)
playerSearch = EID.players playerSearch = EID.players
end end
local playerNearSacrificeSpikes = false
-- Check for descriptions to print per player -- Check for descriptions to print per player
for i,player in ipairs(playerSearch) do for _,player in ipairs(playerSearch) do
local displayedDesc = false local displayedDesc = false
-- Check if this player has the Bag of Crafting -- Check if this player has the Bag of Crafting
@@ -1344,7 +1312,7 @@ local function onRender(t)
end end
for _, entitySearch in ipairs(searchGroups) do for _, entitySearch in ipairs(searchGroups) do
for i, entity in ipairs(entitySearch) do for _, entity in ipairs(entitySearch) do
if EID:hasDescription(entity) and entity.FrameCount > 0 and not EID.entitiesToPrint[GetPtrHash(entity)] then if EID:hasDescription(entity) and entity.FrameCount > 0 and not EID.entitiesToPrint[GetPtrHash(entity)] then
table.insert(inRangeEntities, entity) table.insert(inRangeEntities, entity)
local diff = entity.Position:__sub(sourcePos) local diff = entity.Position:__sub(sourcePos)
@@ -1359,11 +1327,16 @@ local function onRender(t)
end end
end end
end end
-- Test if the player is closer to the center of the room (Sacrifice/Sanguine Spikes) than any other entity
-- If there's more Grid Positions we want to check in the future, this could for example be generalized to a gridPosToCheck table which sets closeToGridPos flags for _, gridEntity in pairs(EID.CurrentRoomGridEntities) do
local spikeDiff = spikePos:__sub(sourcePos) if EID:hasDescription(gridEntity) then
if EID.lastDist ~= 10000 and spikeDiff:Length() < EID.lastDist then table.insert(inRangeEntities, gridEntity)
playerNearSacrificeSpikes = true local diff = gridEntity.Position:__sub(sourcePos)
if diff:Length() < EID.lastDist then
EID.lastDescriptionEntity = gridEntity
EID.lastDist = diff:Length()
end
end
end end
if EID.Config["DisplayAllNearby"] then if EID.Config["DisplayAllNearby"] then
@@ -1380,7 +1353,7 @@ local function onRender(t)
end end
for _,closest in ipairs(inRangeEntities) do for _,closest in ipairs(inRangeEntities) do
if not EID:IsGridEntity(closest) then
--Handle GetData Entities (specific) --Handle GetData Entities (specific)
if EID.Config["EnableEntityDescriptions"] and EID:getEntityData(closest, "EID_Description") then if EID.Config["EnableEntityDescriptions"] and EID:getEntityData(closest, "EID_Description") then
local desc = EID:getEntityData(closest, "EID_Description") local desc = EID:getEntityData(closest, "EID_Description")
@@ -1464,10 +1437,6 @@ local function onRender(t)
elseif closest.Variant == PickupVariant.PICKUP_TAROTCARD then elseif closest.Variant == PickupVariant.PICKUP_TAROTCARD then
--Handle Cards & Runes --Handle Cards & Runes
if (not EID.Config["DisplayObstructedCardInfo"] or not EID.Config["DisplayObstructedSoulstoneInfo"]) and closest.FrameCount < 3 then
-- small delay when having obstruction enabled & entering the room to prevent spoilers
--return
end
if EID:getEntityData(closest, "EID_DontHide") ~= true then if EID:getEntityData(closest, "EID_DontHide") ~= true then
local isSoulstone = closest.SubType >= 81 and closest.SubType <= 97 local isSoulstone = closest.SubType >= 81 and closest.SubType <= 97
local hideinShop = closest:ToPickup():IsShopItem() and ((not isSoulstone and not EID.Config["DisplayCardInfoShop"]) or (isSoulstone and not EID.Config["DisplaySoulstoneInfoShop"])) local hideinShop = closest:ToPickup():IsShopItem() and ((not isSoulstone and not EID.Config["DisplayCardInfoShop"]) or (isSoulstone and not EID.Config["DisplaySoulstoneInfoShop"]))
@@ -1496,11 +1465,12 @@ local function onRender(t)
local pillColor = closest.SubType local pillColor = closest.SubType
local pool = game:GetItemPool() local pool = game:GetItemPool()
local identified = pool:IsPillIdentified(pillColor) local identified = pool:IsPillIdentified(pillColor) and not EID.Config["OnlyShowPillWhenUsedAtLeastOnce"]
if REPENTANCE and pillColor % PillColor.PILL_GIANT_FLAG == PillColor.PILL_GOLD then identified = true end if REPENTANCE and pillColor % PillColor.PILL_GIANT_FLAG == PillColor.PILL_GOLD then identified = true end
local pillEffectID = EID:getAdjustedSubtype(closest.Type, closest.Variant, pillColor) local pillEffectID = EID:getAdjustedSubtype(closest.Type, closest.Variant, pillColor)
local wasUsed = EID:WasPillUsed(pillEffectID)
if (identified or EID.Config["ShowUnidentifiedPillDescriptions"]) and not EID.UnidentifyablePillEffects[pillEffectID] then if (identified or wasUsed or EID.Config["ShowUnidentifiedPillDescriptions"]) and not EID.UnidentifyablePillEffects[pillEffectID] then
local descEntry = EID:getDescriptionObj(closest.Type, closest.Variant, pillColor, closest) local descEntry = EID:getDescriptionObj(closest.Type, closest.Variant, pillColor, closest)
EID:addDescriptionToPrint(descEntry) EID:addDescriptionToPrint(descEntry)
else else
@@ -1509,26 +1479,27 @@ local function onRender(t)
elseif EID.Config["EnableEntityDescriptions"] then elseif EID.Config["EnableEntityDescriptions"] then
--Handle Entities (omni) --Handle Entities (omni)
local descriptionEntry = EID:getDescriptionObjByEntity(closest) local descriptionEntry = EID:getDescriptionObjByEntity(closest)
if descriptionEntry~=nil then if descriptionEntry ~= nil then
EID:addDescriptionToPrint(descriptionEntry) EID:addDescriptionToPrint(descriptionEntry)
end end
end end
else -- Grid entities
local room = game:GetRoom()
if closest:GetType() == GridEntityType.GRID_SPIKES then
if room:GetType() == RoomType.ROOM_SACRIFICE and EID.Config["DisplaySacrificeInfo"] then
local desc = EID:getDescriptionObj(-999, -1, closest.VarData + 1, closest)
EID:addDescriptionToPrint(desc)
elseif REPENTANCE and EID.Config["DisplaySanguineInfo"] and room:GetType() == RoomType.ROOM_DEVIL and
EID:PlayersHaveCollectible(CollectibleType.COLLECTIBLE_SANGUINE_BOND) then
local desc = EID:getDescriptionObj(5, 100, 692, closest, false)
desc.Description = EID:trimSanguineDesc(desc)
if desc.Description ~= "" then
EID:addDescriptionToPrint(desc)
end
end
end end
end end
end end
-- if no entities to display, or we're close to the spikes, display Sacrifice Room information
-- it will be last priority for the main spot if DisplayAllNearby is on and we aren't near them
if (#EID.descriptionsToPrint == 0 or playerNearSacrificeSpikes) or EID.Config["DisplayAllNearby"] then
if game:GetRoom():GetType() == RoomType.ROOM_SACRIFICE and EID.Config["DisplaySacrificeInfo"] then
local curRoomIndex = game:GetLevel():GetCurrentRoomDesc().ListIndex
local curCounter = EID.sacrificeCounter[curRoomIndex] or 1
local sacrificeDesc = EID:getDescriptionObj(-999, -1, curCounter)
EID:addDescriptionToPrint(sacrificeDesc, playerNearSacrificeSpikes and 1 or nil)
elseif REPENTANCE and EID.Config["DisplaySanguineInfo"] and game:GetRoom():GetType() == RoomType.ROOM_DEVIL and EID:PlayersHaveCollectible(CollectibleType.COLLECTIBLE_SANGUINE_BOND) then
local sanguineDesc = EID:getDescriptionObj(5, 100, 692, nil, false)
sanguineDesc.Description = EID:trimSanguineDesc(sanguineDesc)
if sanguineDesc.Description ~= "" then EID:addDescriptionToPrint(sanguineDesc, playerNearSacrificeSpikes and 1 or nil) end
end end
end end
@@ -1551,7 +1522,7 @@ local function AddActiveItemProgress(player, isD4)
EID.ForceRefreshCache = true EID.ForceRefreshCache = true
local playerID = EID:getPlayerID(player) local playerID = EID:getPlayerID(player)
if not EID.PlayerItemInteractions[playerID] then if not EID.PlayerItemInteractions[playerID] then
EID.PlayerItemInteractions[playerID] = {LastTouch = 0, actives = {}, pills = {}, altActives = {}, altPills = {}} EID.PlayerItemInteractions[playerID] = {LastTouch = 0, actives = {}, pills = {}, altActives = {}, altPills = {}, pickupHistory = {}}
end end
-- Dead Tainted Lazarus exceptions -- Dead Tainted Lazarus exceptions
local activesTable = EID.PlayerItemInteractions[playerID].actives local activesTable = EID.PlayerItemInteractions[playerID].actives
@@ -1580,6 +1551,7 @@ local function CheckAllActiveItemProgress()
end end
local function OnGameStartGeneral(_,isSave) local function OnGameStartGeneral(_,isSave)
EID:GetTransformationsOfModdedItems()
EID:buildTransformationTables() EID:buildTransformationTables()
if not isSave then if not isSave then
EID.PlayerItemInteractions = {} EID.PlayerItemInteractions = {}
@@ -1604,11 +1576,12 @@ if REPENTANCE then
EID:AddCallback(ModCallbacks.MC_USE_ITEM, OnUseGenesis, CollectibleType.COLLECTIBLE_GENESIS) EID:AddCallback(ModCallbacks.MC_USE_ITEM, OnUseGenesis, CollectibleType.COLLECTIBLE_GENESIS)
end end
function EID:OnUsePill(pillEffectID, player) function EID:OnUsePill(pillEffectID, player, useFlags)
player = player or EID.player --AB+ doesn't receive player in callback arguments! player = player or EID.player --AB+ doesn't receive player in callback arguments!
local playerID = EID:getPlayerID(player) local playerID = EID:getPlayerID(player)
-- Dead Tainted Lazarus exceptions -- Dead Tainted Lazarus exceptions
local pillsTable = EID.PlayerItemInteractions[playerID].pills local pillsTable = EID.PlayerItemInteractions[playerID].pills
if player:GetPlayerType() == 38 then if player:GetPlayerType() == 38 then
pillsTable = EID.PlayerItemInteractions[playerID].altPills or pillsTable pillsTable = EID.PlayerItemInteractions[playerID].altPills or pillsTable
end end
@@ -1617,9 +1590,16 @@ function EID:OnUsePill(pillEffectID, player)
pillsTable[effectID] = 0 pillsTable[effectID] = 0
end end
pillsTable[effectID] = pillsTable[effectID] + 1 pillsTable[effectID] = pillsTable[effectID] + 1
EID:AddPickupToHistory("pill", pillEffectID+1, player, useFlags)
end end
EID:AddCallback(ModCallbacks.MC_USE_PILL, EID.OnUsePill) EID:AddCallback(ModCallbacks.MC_USE_PILL, EID.OnUsePill)
function EID:OnUseCard(cardID, player, useFlags)
player = player or EID.player --AB+ doesn't receive player in callback arguments!
EID:AddPickupToHistory("card", cardID, player, useFlags)
end
EID:AddCallback(ModCallbacks.MC_USE_CARD, EID.OnUseCard)
-- only save and load configs when using MCM. Otherwise Config file changes arent valid -- only save and load configs when using MCM. Otherwise Config file changes arent valid
if EID.MCMLoaded or REPENTANCE then if EID.MCMLoaded or REPENTANCE then
+1 -1
View File
@@ -114,7 +114,7 @@ https://moddingofisaac.com/mod/1079/external-item-descriptions
- prefab for the incredible [b]Japanese[/b] language pack - prefab for the incredible [b]Japanese[/b] language pack
- David Kapitančik. Picus and domcizzz for the cool [b]Czech[/b] language pack - David Kapitančik. Picus and domcizzz for the cool [b]Czech[/b] language pack
- [url=https://steamcommunity.com/id/whytefang/]adc[/url] for creating an awesome new Languagepack and providing ideas for new functionalities</description> - [url=https://steamcommunity.com/id/whytefang/]adc[/url] for creating an awesome new Languagepack and providing ideas for new functionalities</description>
<version>4.36</version> <version>4.37</version>
<visibility>Public</visibility> <visibility>Public</visibility>
<tag id="Lua"/> <tag id="Lua"/>
<tag id="Items"/> <tag id="Items"/>