Compare commits

...
14 Commits
Author SHA1 Message Date
github-actions[bot] e08b19cb16 chore: release 4.57 2023-05-25 22:03:11 +00:00
Wofsauge 646dd79acb Fixed markup errors in Ukrainian languagepack 2023-05-26 00:01:20 +02:00
x3xto 32ea090de7 [uk_ua] Fully translated descs into Ukrainian (#565)
* Translated names of items, trinkets, etc.

The names of everything were translated to Ukrainian. Only descriptions remain to be translated

* Changed translation of Dim Bulb

* Lil fixes in Ukrainian translation

Fixed translation mistakes and description of Host Hat (wiki says 25%)

* Wiggle Worm description fix

* Added Luck note to Apple!

* [uk] lil fixes in item names

* [uk] Translated pills description

* [uk] Translated Sacrifice Room into Ukrainian

* [uk] Translated Dice Room into Ukrainian

* [uk] a lot of lil fixes in Ukrainian translation

* [uk] Cards descriptions translated into Ukrainian

* [uk] Translated trinkets into Ukrainian

* Fixed markup for Orphan Socks (also needs to be fixed in en_us version)

* fixed markup for Orphan Socks (also needs to be fixed in en_us version) + another stupid mistakes fixes.

* [uk_ua] ~50% of items desc's translated

* all items translated in Ukrainian/

* last fixes
2023-05-25 23:45:26 +02:00
kittenchilly 81918e0e81 More accurate magic numbers for consolation prize calculation (#562)
From disassembly. It probably doesn't matter but I think its good to have them just in case?
2023-05-18 21:47:17 +02:00
github-actions[bot] c9fbf5d587 chore: release 4.56 2023-05-07 20:57:36 +00:00
wakaba (aka. 미카) da9338ef54 Add support for collectible's item pool (#561)
* getlastpool test

* update icons and config

* Don't show pool for quest items

* Fix modded recipes breaking game's last pool

* fix icon misalign

* Added text for Last Item Pool indicator
2023-05-07 16:58:43 +02:00
Buurazu 51d0ef2e1b Test for pill color to detect Golden 2023-05-06 19:09:44 -04:00
Buurazu 99bd3c7379 Test for pill color to determine Golden 2023-05-06 19:09:26 -04:00
Buurazu 9102104be8 improving pill usage tracking 2023-05-06 19:02:42 -04:00
Buurazu 33121b3d84 Improve Echo Chamber hold map desc 2023-05-06 18:58:51 -04:00
Buurazu c62d814da4 Don't allow Golden Pills to be seen by Vurp! 2023-05-06 18:58:23 -04:00
Buurazu 55b38e2c74 Improve pickup history tracking 2023-05-06 18:57:45 -04:00
Buurazu 61b5aaa3c7 Fix AB+ Halo of Flies / duplicate trans progress 2023-05-05 18:29:48 -04:00
wakaba (aka. 미카) 5894fc8232 Support Lemegeton Wisp for Item Reminder (#558)
* Support Lemegeton Wisp for Item Reminder

* only check once per use
2023-05-01 23:54:26 +02:00
15 changed files with 816 additions and 613 deletions

No files matched your search

+584 -584
View File
File diff suppressed because it is too large. Load diff
+5
View File
@@ -1088,6 +1088,11 @@ EID.descriptions[languageCode].poopSpells = {
{"Explosive Diarrhea", "Isaac quickly spawns 5 lit bombs"}, {"Explosive Diarrhea", "Isaac quickly spawns 5 lit bombs"},
} }
EID.descriptions[languageCode].itemPoolFor = "Pool for Item:"
EID.descriptions[languageCode].itemPoolNames = {
[0] = "Treasure", "Shop", "Boss", "Devil", "Angel", "Secret", "Library", "Shell Game", "Golden Chest", "Red Chest", "Beggar", "Demon Beggar", "Curse", "Key Master", "Battery Bum", "Mom's Chest", "Greed Treasure", "Greed Boss", "Greed Shop", "Greed Devil", "Greed Angel", "Greed Curse", "Greed Secret", "Crane Game", "Ultra Secret", "Bomb Bum", "Planetarium", "Old Chest", "Baby Shop", "Wooden Chest", "Rotten Beggar",
}
EID.descriptions[languageCode].VoidShopText = "If absorbed right after pickup, gain:" EID.descriptions[languageCode].VoidShopText = "If absorbed right after pickup, gain:"
EID.descriptions[languageCode].VoidOptionText = " will be absorbed instead" EID.descriptions[languageCode].VoidOptionText = " will be absorbed instead"
EID.descriptions[languageCode].VoidNames[2] = "{1} Fire Rate up" EID.descriptions[languageCode].VoidNames[2] = "{1} Fire Rate up"
+5
View File
@@ -1163,6 +1163,11 @@ EID.descriptions[languageCode].poopSpells = {
{"폭탄 설사", "캐릭터의 위치에 점화된 폭탄 5개를 생성합니다."}, {"폭탄 설사", "캐릭터의 위치에 점화된 폭탄 5개를 생성합니다."},
} }
EID.descriptions[languageCode].itemPoolFor = "획득 시 배열:"
EID.descriptions[languageCode].itemPoolNames = {
[0] = "보물방", "상점", "보스방", "악마방", "천사방", "비밀방", "책방", "야바위꾼", "황금상자", "빨간상자", "거지", "악마거지", "저주방", "열쇠거지", "배터리거지", "엄마상자", "그리드-보물방", "그리드-보스방", "그리드-상점", "그리드-악마방", "그리드-천사방", "그리드-저주방", "그리드-비밀방", "크레인 게임", "특급비밀방", "폭탄거지", "천체관", "낡은상자", "패밀리어 상점", "나무상자", "썩은거지",
}
EID.descriptions[languageCode].VoidShopText = "아이템을 드는 도중 흡수 시 이하 능력치 증가:" EID.descriptions[languageCode].VoidShopText = "아이템을 드는 도중 흡수 시 이하 능력치 증가:"
EID.descriptions[languageCode].VoidOptionText = " 아이템이 대신 흡수됨" EID.descriptions[languageCode].VoidOptionText = " 아이템이 대신 흡수됨"
EID.descriptions[languageCode].VoidNames[2] = "연사(상한) {1}" EID.descriptions[languageCode].VoidNames[2] = "연사(상한) {1}"
+5 -5
View File
@@ -2,13 +2,13 @@
----- Ukrainian descriptions ----- ----- Ukrainian descriptions -----
--------------------------------------- ---------------------------------------
-- Last збільшеноdate: 11.11.2021 -- Last Update: 4.4.2023
-- FORMAT: Item ID | Name| Description -- FORMAT: Item ID | Name| Description
-- '#' = starts new line of text -- '#' = starts new line of text
-- Special character markup: -- Special character markup:
-- ↑ = збільшено Arrow | ↓ = Down Arrow | ! = Warning -- ↑ = Up Arrow | ↓ = Down Arrow | ! = Warning
local languageCode = "uk_ua" local languageCode = "uk_ua"
local repCollectibles={ local repCollectibles={
@@ -241,7 +241,7 @@ local repCollectibles={
[568] = {"568", "Божественне втручання", "Натисніть на кнопки стрільби двічі, щоб створити щит#Щит існує 1 секунду, відштовхує ворогів і відбиває ворожі снаряди і лазери"}, -- Divine Intervention [568] = {"568", "Божественне втручання", "Натисніть на кнопки стрільби двічі, щоб створити щит#Щит існує 1 секунду, відштовхує ворогів і відбиває ворожі снаряди і лазери"}, -- Divine Intervention
[569] = {"569", "Присяга на крові", "Б'є персонажа ножем на початку кожного поверху, забираючи червоні серця (залишає 0.5 червоного серця)#Збільшує характеристики на весь поверх:#↑ {{Damage}} Шкода + 0.15 * ВтраченіСерця^2#↑ {{Speed}} Швидкість + 0.05*ВтраченіСерця"}, -- Blood Oath [569] = {"569", "Присяга на крові", "Б'є персонажа ножем на початку кожного поверху, забираючи червоні серця (залишає 0.5 червоного серця)#Збільшує характеристики на весь поверх:#↑ {{Damage}} Шкода + 0.15 * ВтраченіСерця^2#↑ {{Speed}} Швидкість + 0.05*ВтраченіСерця"}, -- Blood Oath
[570] = {"570", "Пластилінове печиво", "Кольорові сльози з різними ефектами"}, -- Playdough Cookie [570] = {"570", "Пластилінове печиво", "Кольорові сльози з різними ефектами"}, -- Playdough Cookie
[571] = {"571", "Сирітські шкарпетки", "Шипи і рідина на підлозі не завдають персонажу шкоди#↑ {{Speed}} +0.3 Швидкість збільшено#↑ {{SoulHeart}} +2 серця Душі"}, -- Orphan Socks [571] = {"571", "Сирітські шкарпетки", "Шипи і рідина на підлозі не завдають персонажу шкоди#{{Speed}} +0.3 Швидкість збільшено#{{SoulHeart}} +2 серця Душі"}, -- Orphan Socks
[572] = {"572", "Окультне око", "Контрольовані сльози#↑ {{Damage}} +1 Шкоду збільшено#↑ {{Range}} +2 Дальнiсть збільшено#↓ {{Shotspeed}} -0.16 Швидкість стрільби зменшено"}, -- Eye of the Occult [572] = {"572", "Окультне око", "Контрольовані сльози#↑ {{Damage}} +1 Шкоду збільшено#↑ {{Range}} +2 Дальнiсть збільшено#↓ {{Shotspeed}} -0.16 Швидкість стрільби зменшено"}, -- Eye of the Occult
[573] = {"573", "Бездоганне серце", "↑ {{Heart}} +1 Контейнер з червоним серцем#{{Heart}} Повне здоров'я#↑ {{Damage}} +20% Шкоду збільшено#20% шанс вистрелити додатковими орбітальними спектральними слізьми"}, -- Immaculate Heart [573] = {"573", "Бездоганне серце", "↑ {{Heart}} +1 Контейнер з червоним серцем#{{Heart}} Повне здоров'я#↑ {{Damage}} +20% Шкоду збільшено#20% шанс вистрелити додатковими орбітальними спектральними слізьми"}, -- Immaculate Heart
[574] = {"574", "Дароносиця", "Дві кругові аури довкола персонажа, які завдають ворогам шкоди#Внутрішня аура наносить більше шкоди"}, -- Monstrance [574] = {"574", "Дароносиця", "Дві кругові аури довкола персонажа, які завдають ворогам шкоди#Внутрішня аура наносить більше шкоди"}, -- Monstrance
@@ -413,7 +413,7 @@ EID:updateDescriptionsViaTable(repCollectibles, EID.descriptions[languageCode].c
EID.descriptions[languageCode].birthright ={ EID.descriptions[languageCode].birthright ={
{"Ісаак", "", "Предмети на п'єдесталах змінюються щосекунди між 2 варіантами"}, {"Ісаак", "", "Предмети на п'єдесталах змінюються щосекунди між 2 варіантами"},
{"Магдалена", "", "↑ {{Heart}} +1 Контейнер з червоним серцем#{{Heart}} Ліміт сердець збільшено до 18"}, {"Магдалена", "", "↑ {{Heart}} +1 Контейнер з червоним серцем#{{Heart}} Ліміт сердець збільшено до 18"},
{"Каїн", "", "↑ {{Luck}} +1 Вдачу збільшено#{{Arcade}} На усіх поверхах з'являтиметься покращена Ігрова Кімната, окрім \"Темної Кімнати\" та \"Скрині\"#Сильно підвищує шанс на виграш {{Collectible46}} Щасливої Ніжки"}, {"Каїн", "", "↑ {{Luck}} +1 Вдачу збільшено#{{ArcadeRoom}} На усіх поверхах з'являтиметься покращена Ігрова Кімната, окрім \"Темної Кімнати\" та \"Скрині\"#Сильно підвищує шанс на виграш {{Collectible46}} Щасливої Ніжки"},
{"Юда", "", "{{Collectible34}} Книга Беліала стає пасивним предметом, аналогічно до {{Collectible584}} Книги Чеснот#{{Collectible34}} Дає Книгу Беліала, якщо її у вас ще не було#↑ {{Damage}} Бонус до шкоди, отриманий від неї, залежить від кількості зарядів активного предмета#Додаткові ефекти для кожного активного предмета"}, {"Юда", "", "{{Collectible34}} Книга Беліала стає пасивним предметом, аналогічно до {{Collectible584}} Книги Чеснот#{{Collectible34}} Дає Книгу Беліала, якщо її у вас ще не було#↑ {{Damage}} Бонус до шкоди, отриманий від неї, залежить від кількості зарядів активного предмета#Додаткові ефекти для кожного активного предмета"},
{"???", "", "Серця Душі, отримані від ефекту збільшення здоров'я, подвоюються"}, {"???", "", "Серця Душі, отримані від ефекту збільшення здоров'я, подвоюються"},
{"Єва", "", "Ефект Вавилонської Повії та Мертва Пташка завжди активні"}, {"Єва", "", "Ефект Вавилонської Повії та Мертва Пташка завжди активні"},
@@ -960,7 +960,7 @@ EID.descriptions[languageCode].horsepills={
{"18", "Підвищена Удача", "↑ {{Luck}} +2 Вдачу збільшено"}, -- Luck збільшено {"18", "Підвищена Удача", "↑ {{Luck}} +2 Вдачу збільшено"}, -- Luck збільшено
{"19", "Теле-пігулки", "Телепортує у випадкову кімнату"}, -- Telepills {"19", "Теле-пігулки", "Телепортує у випадкову кімнату"}, -- Telepills
{"20", "48 годин енергії!", "Повністю заряджає ваш активний предмет#{{Battery}} Дає 3-4 батарейки"}, -- 48 Hour Energy! {"20", "48 годин енергії!", "Повністю заряджає ваш активний предмет#{{Battery}} Дає 3-4 батарейки"}, -- 48 Hour Energy!
{"21", "Гематемезис", "Спустошує всі контейнери червоних сердець, окрім одного#{PHeart}} Створює 4-7 червоних сердець"}, -- Hematemesis {"21", "Гематемезис", "Спустошує всі контейнери червоних сердець, окрім одного#{{Heart}} Створює 4-7 червоних сердець"}, -- Hematemesis
{"22", "Параліч", "Ви не можете рухатися 4 секунди"}, -- Paralysis {"22", "Параліч", "Ви не можете рухатися 4 секунди"}, -- Paralysis
{"23", "Я бачу Вічність!", "{{SecretRoom}} Відкриває проходи в усі Секретні Кімнати на поверсі#Дає повну карту поверху"}, -- I can see forever! {"23", "Я бачу Вічність!", "{{SecretRoom}} Відкриває проходи в усі Секретні Кімнати на поверсі#Дає повну карту поверху"}, -- I can see forever!
{"24", "Феромони", "{{Charm}} Усі вороги у кімнаті - ваші друзі"}, -- Pheromones {"24", "Феромони", "{{Charm}} Усі вороги у кімнаті - ваші друзі"}, -- Pheromones
+24 -8
View File
@@ -1714,6 +1714,7 @@ function EID:evaluateTransformationProgress(transformation)
local eType, eVariant, eSubType = entityString:match("([^.]+).([^.]+).([^.]+)") local eType, eVariant, eSubType = entityString:match("([^.]+).([^.]+).([^.]+)")
if tonumber(eType) == EntityType.ENTITY_PICKUP then if tonumber(eType) == EntityType.ENTITY_PICKUP then
if tonumber(eVariant) == PickupVariant.PICKUP_COLLECTIBLE then if tonumber(eVariant) == PickupVariant.PICKUP_COLLECTIBLE then
local currentCount = EID.TransformationProgress[i][transformation]
if activesTable[tostring(eSubType)] then if activesTable[tostring(eSubType)] then
EID.TransformationProgress[i][transformation] = EID.TransformationProgress[i][transformation] + activesTable[tostring(eSubType)] EID.TransformationProgress[i][transformation] = EID.TransformationProgress[i][transformation] + activesTable[tostring(eSubType)]
else else
@@ -1728,6 +1729,10 @@ function EID:evaluateTransformationProgress(transformation)
EID.TransformationProgress[i][transformation] = EID.TransformationProgress[i][transformation] - 1 EID.TransformationProgress[i][transformation] = EID.TransformationProgress[i][transformation] - 1
end end
end end
-- In AB+, only one copy of a given collectible is counted for trans
if not EID.isRepentance and EID.TransformationProgress[i][transformation] > currentCount + 1 then
EID.TransformationProgress[i][transformation] = currentCount + 1
end
elseif tonumber(eVariant) == PickupVariant.PICKUP_TRINKET and player:HasTrinket(eSubType) then elseif tonumber(eVariant) == PickupVariant.PICKUP_TRINKET and player:HasTrinket(eSubType) then
EID.TransformationProgress[i][transformation] = EID.TransformationProgress[i][transformation] + player:GetTrinketMultiplier(eSubType) EID.TransformationProgress[i][transformation] = EID.TransformationProgress[i][transformation] + player:GetTrinketMultiplier(eSubType)
elseif tonumber(eVariant) == PickupVariant.PICKUP_PILL then elseif tonumber(eVariant) == PickupVariant.PICKUP_PILL then
@@ -1787,14 +1792,14 @@ function EID:evaluateQueuedItems()
if not player.QueuedItem.Touched and player.QueuedItem.Item then if not player.QueuedItem.Touched and player.QueuedItem.Item then
EID.PlayerItemInteractions[i].LastTouch = game:GetFrameCount() EID.PlayerItemInteractions[i].LastTouch = game:GetFrameCount()
local itemIDStr = tostring(player.QueuedItem.Item.ID)
-- Add touched active items to our transformation progress table
if player.QueuedItem.Item.Type == ItemType.ITEM_ACTIVE then if player.QueuedItem.Item.Type == ItemType.ITEM_ACTIVE then
local itemID = tostring(player.QueuedItem.Item.ID)
-- A new active item was touched; initiate its touch count to 0 for all players -- A new active item was touched; initiate its touch count to 0 for all players
-- (Fixes co-op bugs, compared to only initiating it for the toucher) -- (Fixes co-op bugs, compared to only initiating it for the toucher)
for j = 0, game:GetNumPlayers() - 1 do for j = 0, game:GetNumPlayers() - 1 do
EID.PlayerItemInteractions[j].actives[itemID] = EID.PlayerItemInteractions[j].actives[itemID] or 0 EID.PlayerItemInteractions[j].actives[itemIDStr] = EID.PlayerItemInteractions[j].actives[itemIDStr] or 0
EID.PlayerItemInteractions[j].altActives[itemID] = EID.PlayerItemInteractions[j].altActives[itemID] or 0 EID.PlayerItemInteractions[j].altActives[itemIDStr] = EID.PlayerItemInteractions[j].altActives[itemIDStr] or 0
end end
-- Dead Tainted Lazarus exceptions -- Dead Tainted Lazarus exceptions
@@ -1803,8 +1808,12 @@ function EID:evaluateQueuedItems()
activesTable = EID.PlayerItemInteractions[i].altActives or activesTable activesTable = EID.PlayerItemInteractions[i].altActives or activesTable
end end
EID.ForceRefreshCache = true EID.ForceRefreshCache = true
activesTable[itemID] = activesTable[itemID] + 1 activesTable[itemIDStr] = activesTable[itemIDStr] + 1
elseif player.QueuedItem.Item.Type ~= ItemType.ITEM_TRINKET then elseif player.QueuedItem.Item.Type ~= ItemType.ITEM_TRINKET then
-- In AB+, Halo of Flies is counted as an active item due to inaccuracy with GetCollectibleNum
if (not EID.isRepentance and itemIDStr == "10") then
EID.PlayerItemInteractions[i].actives[itemIDStr] = EID.PlayerItemInteractions[i].actives[itemIDStr] + 1
end
-- Put non-active item pickups into the recent item list, for printing in the Item Reminder -- Put non-active item pickups into the recent item list, for printing in the Item Reminder
table.insert(EID.RecentlyTouchedItems[i], player.QueuedItem.Item.ID) table.insert(EID.RecentlyTouchedItems[i], player.QueuedItem.Item.ID)
if (#EID.RecentlyTouchedItems[i] > 8) then table.remove(EID.RecentlyTouchedItems[i], 1) end if (#EID.RecentlyTouchedItems[i] > 8) then table.remove(EID.RecentlyTouchedItems[i], 1) end
@@ -1819,6 +1828,10 @@ function EID:InitItemInteractionIfAbsent(playerID)
if not EID.PlayerItemInteractions[playerID] then if not EID.PlayerItemInteractions[playerID] then
EID.PlayerItemInteractions[playerID] = { LastTouch = 0, actives = {}, altActives = {}, EID.PlayerItemInteractions[playerID] = { LastTouch = 0, actives = {}, altActives = {},
pickupHistory = {}, altPickupHistory = {}, rerollItems = {} } pickupHistory = {}, altPickupHistory = {}, rerollItems = {} }
-- in AB+, initiate Halo of Flies as an active item (collectible ID 10 is used for ALL Pretty Flies)
if not EID.isRepentance then
EID.PlayerItemInteractions[playerID].actives["10"] = 0
end
end end
EID.RecentlyTouchedItems[playerID] = EID.RecentlyTouchedItems[playerID] or {} EID.RecentlyTouchedItems[playerID] = EID.RecentlyTouchedItems[playerID] or {}
end end
@@ -1867,8 +1880,11 @@ end
-- Add pickup usage to history of pickups used by the player -- Add pickup usage to history of pickups used by the player
function EID:AddPickupToHistory(pickupType, effectID, player, useFlags, pillColorID) function EID:AddPickupToHistory(pickupType, effectID, player, useFlags, pillColorID)
-- don't add mimiced or noannouncer cards/pills to history -- don't add mimiced or noannouncer cards/pills to Echo Chamber history
if EID.isRepentance and (useFlags & UseFlag.USE_MIMIC == UseFlag.USE_MIMIC or useFlags & UseFlag.USE_NOANNOUNCER == UseFlag.USE_NOANNOUNCER) then return end local allowEchoChamber = true
if EID.isRepentance and (useFlags & UseFlag.USE_MIMIC == UseFlag.USE_MIMIC or useFlags & UseFlag.USE_NOANNOUNCER == UseFlag.USE_NOANNOUNCER) then
allowEchoChamber = false
end
local playerID = EID:getPlayerID(player) local playerID = EID:getPlayerID(player)
EID:InitItemInteractionIfAbsent(playerID) EID:InitItemInteractionIfAbsent(playerID)
@@ -1879,7 +1895,7 @@ function EID:AddPickupToHistory(pickupType, effectID, player, useFlags, pillColo
end end
-- pickupType = ["pill","card"], pillColorID, effectID, hadEchoChamberWhenUsed -- pickupType = ["pill","card"], pillColorID, effectID, hadEchoChamberWhenUsed
table.insert(historyTable, 1, {pickupType, pillColorID, effectID, EID.isRepentance and player:HasCollectible(700)}) table.insert(historyTable, 1, {pickupType, pillColorID, effectID, EID.isRepentance and player:HasCollectible(700) and allowEchoChamber})
end end
-- Render a sprite of an entity -- Render a sprite of an entity
+6 -1
View File
@@ -530,6 +530,9 @@ local function GameStartCrafting()
-- Check for modded items past the known max item ID on game start (can also support game updates) -- 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 -- 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 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 -- Items past max ID detected
CraftingMaxItemID = EID.XMLMaxItemID -- XMLMaxItemID is never modified CraftingMaxItemID = EID.XMLMaxItemID -- XMLMaxItemID is never modified
-- Add new item qualities -- Add new item qualities
@@ -540,7 +543,6 @@ local function GameStartCrafting()
CraftingItemAllowed[coll.ID] = true CraftingItemAllowed[coll.ID] = true
coll = EID.itemConfig:GetCollectible(CraftingMaxItemID+1) coll = EID.itemConfig:GetCollectible(CraftingMaxItemID+1)
end end
local itemPool = game:GetItemPool()
-- Add new items to the crafting item pools, assuming Weight 1.0 -- Add new items to the crafting item pools, assuming Weight 1.0
for poolNum,_ in pairs(poolToIcon) do for poolNum,_ in pairs(poolToIcon) do
for i=1,EID.XMLMaxItemID do itemPool:AddRoomBlacklist(i) end for i=1,EID.XMLMaxItemID do itemPool:AddRoomBlacklist(i) end
@@ -554,6 +556,9 @@ local function GameStartCrafting()
collID = itemPool:GetCollectible(poolNum, false, 1, 25) collID = itemPool:GetCollectible(poolNum, false, 1, 25)
end end
-- Do getCollectible again to revert last pool
itemPool:GetCollectible(lastPool, false, 1, 25)
itemPool:ResetRoomBlacklist() itemPool:ResetRoomBlacklist()
end end
moddedCrafting = true moddedCrafting = true
+14
View File
@@ -186,6 +186,17 @@ EID.UserConfig = {
-- REPENTANCE ONLY!!! -- REPENTANCE ONLY!!!
-- Default = true -- Default = true
["ShowQuality"] = true, ["ShowQuality"] = true,
-- Enables or disables collectible's item pool when collected after item name
-- REPENTANCE ONLY!!!
-- Default = false
["ShowItemPoolIcon"] = false,
-- Enables or disables collectible's item pool name when collected below item name
-- REPENTANCE ONLY!!!
-- Default = false
["ShowItemPoolText"] = false,
-- Set the item pool for collectible text color
-- Default = "ColorSilver"
["ItemPoolTextColor"] = "ColorSilver",
-- Set the mod indicator display -- Set the mod indicator display
-- Default = "Both" -- Default = "Both"
["ModIndicatorDisplay"] = "None", ["ModIndicatorDisplay"] = "None",
@@ -514,6 +525,9 @@ EID.DefaultConfig = {
["DisplayTrinketInfo"] = true, ["DisplayTrinketInfo"] = true,
["ItemNameColor"] = "ColorEIDObjName", ["ItemNameColor"] = "ColorEIDObjName",
["ShowQuality"] = true, ["ShowQuality"] = true,
["ShowItemPoolIcon"] = false,
["ShowItemPoolText"] = false,
["ItemPoolTextColor"] = "ColorSilver",
["ModIndicatorDisplay"] = "None", ["ModIndicatorDisplay"] = "None",
["ModIndicatorTextColor"] = "ColorLightOrange", ["ModIndicatorTextColor"] = "ColorLightOrange",
["ShowObjectID"] = false, ["ShowObjectID"] = false,
+34
View File
@@ -571,6 +571,39 @@ EID.InlineIcons = {
["SatanSmall"] = {"Boss", 18, 12, 9, 0, 1}, ["SatanSmall"] = {"Boss", 18, 12, 9, 0, 1},
["HushSmall"] = {"Boss", 19, 11, 9, 0, 1}, ["HushSmall"] = {"Boss", 19, 11, 9, 0, 1},
-- ItemPoolTypes
["ItemPoolTreasure"] = {"ItemPools", 0, 11, 11, 0, 0},
["ItemPoolShop"] = {"ItemPools", 1, 11, 11, 0, 0},
["ItemPoolBoss"] = {"ItemPools", 2, 11, 11, 0, 0},
["ItemPoolDevil"] = {"ItemPools", 3, 11, 11, 0, 0},
["ItemPoolAngel"] = {"ItemPools", 4, 11, 11, 0, 0},
["ItemPoolSecret"] = {"ItemPools", 5, 11, 11, 0, 0},
["ItemPoolLibrary"] = {"ItemPools", 6, 11, 11, 0, 0},
["ItemPoolShellGame"] = {"ItemPools", 7, 11, 11, 0, 0},
["ItemPoolGoldenChest"] = {"ItemPools", 8, 11, 11, 0, 0},
["ItemPoolRedChest"] = {"ItemPools", 9, 11, 11, 0, 0},
["ItemPoolBeggar"] = {"ItemPools", 10, 11, 11, 0, 0},
["ItemPoolDemonBeggar"] = {"ItemPools", 11, 11, 11, 0, 0},
["ItemPoolCurse"] = {"ItemPools", 12, 11, 11, 0, 0},
["ItemPoolKeyMaster"] = {"ItemPools", 13, 11, 11, 0, 0},
["ItemPoolBombBum"] = {"ItemPools", 14, 11, 11, 0, 0},
["ItemPoolMomsChest"] = {"ItemPools", 15, 11, 11, 0, 0},
["ItemPoolGreedTreasure"] = {"ItemPools", 16, 11, 11, 0, 0},
["ItemPoolGreedShop"] = {"ItemPools", 17, 11, 11, 0, 0},
["ItemPoolGreedBoss"] = {"ItemPools", 18, 11, 11, 0, 0},
["ItemPoolGreedDevil"] = {"ItemPools", 19, 11, 11, 0, 0},
["ItemPoolGreedAngel"] = {"ItemPools", 20, 11, 11, 0, 0},
["ItemPoolGreedCurse"] = {"ItemPools", 21, 11, 11, 0, 0},
["ItemPoolGreedSecret"] = {"ItemPools", 22, 11, 11, 0, 0},
["ItemPoolCraneGame"] = {"ItemPools", 23, 11, 11, 0, 0},
["ItemPoolUltraSecret"] = {"ItemPools", 24, 11, 11, 0, 0},
["ItemPoolBatteryBum"] = {"ItemPools", 25, 11, 11, 0, 0},
["ItemPoolPlanetarium"] = {"ItemPools", 26, 11, 11, 0, 0},
["ItemPoolOldChest"] = {"ItemPools", 27, 11, 11, 0, 0},
["ItemPoolBabyShop"] = {"ItemPools", 28, 11, 11, 0, 0},
["ItemPoolWoodenChest"] = {"ItemPools", 29, 11, 11, 0, 0},
["ItemPoolRottenBeggar"] = {"ItemPools", 30, 11, 11, 0, 0},
-- Misc -- Misc
["HardMode"] = {"Misc", 0, 16, 12, 0, -2}, ["HardMode"] = {"Misc", 0, 16, 12, 0, -2},
["GreedMode"] = {"Misc", 1, 16, 12, 0, -2}, ["GreedMode"] = {"Misc", 1, 16, 12, 0, -2},
@@ -847,3 +880,4 @@ EID.TransformationData = {
EID.RoomShapeToMarkup = { "{{Room}}", "{{RoomSmallHorizontal}}", "{{RoomSmallVertical}}", "{{RoomLongVertical}}", "{{RoomLongThinVertical}}","{{RoomLongHorizontal}}", "{{RoomLongThinHorizontal}}", "{{RoomXL}}", "{{RoomLTopLeft}}", "{{RoomL}}", "{{RoomLBottomLeft}}", "{{RoomLBottomRight}}" } 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.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}}"}
+7 -2
View File
@@ -84,15 +84,20 @@ function EID:getHoldMapDescription(player, checkingTwin)
end end
if pickupHistory then if pickupHistory then
local pickupNames = "" local pickupNames = ""
for i = 1, math.min(3, #pickupHistory) do local pickupsToPrint = 3
if pickupHistory[i][4] then -- Echo chamber was owned before this card/pill was used for i = 1, #pickupHistory do
if pickupHistory[i][4] then -- Echo chamber was owned before this card/pill was used and it's not a mimic usage
if pickupHistory[i][1] == "pill" then if pickupHistory[i][1] == "pill" then
local name = EID:getPillName(pickupHistory[i][3], false) local name = EID:getPillName(pickupHistory[i][3], false)
if (pickupHistory[i][2] == 14) then name = EID:getPillName(9999, false) end
pickupNames = pickupNames .. "{{Pill" .. pickupHistory[i][2] .. "}} " .. name .. "#" pickupNames = pickupNames .. "{{Pill" .. pickupHistory[i][2] .. "}} " .. name .. "#"
pickupsToPrint = pickupsToPrint - 1
else else
local name = EID:getObjectName(5, 300, pickupHistory[i][3]) local name = EID:getObjectName(5, 300, pickupHistory[i][3])
pickupNames = pickupNames .. "{{Card" .. pickupHistory[i][3] .. "}} " .. name .. "#" pickupNames = pickupNames .. "{{Card" .. pickupHistory[i][3] .. "}} " .. name .. "#"
pickupsToPrint = pickupsToPrint - 1
end end
if (pickupsToPrint == 0) then break end
end end
end end
if pickupNames ~= "" then if pickupNames ~= "" then
+29 -1
View File
@@ -558,6 +558,8 @@ if MCMLoaded then
EID:AddBooleanSetting("Visuals", "TransformationIcons", "Display Transformation Icon") EID:AddBooleanSetting("Visuals", "TransformationIcons", "Display Transformation Icon")
EID:AddBooleanSetting("Visuals", "TransformationProgress", "Display Transformation Progress") EID:AddBooleanSetting("Visuals", "TransformationProgress", "Display Transformation Progress")
EID:AddBooleanSetting("Visuals", "ShowQuality", "Display Quality Info", {repOnly = true}) EID:AddBooleanSetting("Visuals", "ShowQuality", "Display Quality Info", {repOnly = true})
EID:AddBooleanSetting("Visuals", "ShowItemPoolIcon", "Display Item Pool Icon", {repOnly = true, infoText = "Displays collectible's item pool icon that is expected for full reroll effects."})
EID:AddBooleanSetting("Visuals", "ShowItemPoolText", "Display Item Pool Name", {repOnly = true, infoText = "Displays collectible's item pool name that is expected for full reroll effects."})
EID:AddBooleanSetting("Visuals", "ShowObjectID", "Display Object ID") EID:AddBooleanSetting("Visuals", "ShowObjectID", "Display Object ID")
-------Mod indicator for modded items--------- -------Mod indicator for modded items---------
@@ -929,7 +931,7 @@ if MCMLoaded then
Minimum = 0, Minimum = 0,
Maximum = 1000, Maximum = 1000,
Display = function() Display = function()
if EID.Config["ModIndicatorTextColor"] == nil then EID.Config["TextColor"] = EID.DefaultConfig["ModIndicatorTextColor"] end if EID.Config["ModIndicatorTextColor"] == nil then EID.Config["ModIndicatorTextColor"] = EID.DefaultConfig["ModIndicatorTextColor"] end
return "Mod Indicator: " .. string.gsub(EID.Config["ModIndicatorTextColor"], "Color", "").. " ("..AnIndexOf(colorNameArray, EID.Config["ModIndicatorTextColor"]).."/"..#colorNameArray..")" return "Mod Indicator: " .. string.gsub(EID.Config["ModIndicatorTextColor"], "Color", "").. " ("..AnIndexOf(colorNameArray, EID.Config["ModIndicatorTextColor"]).."/"..#colorNameArray..")"
end, end,
OnChange = function(currentNum) OnChange = function(currentNum)
@@ -941,6 +943,32 @@ if MCMLoaded then
Info = {"Changes the color of mod indicator texts (as long as they are enabled)."} Info = {"Changes the color of mod indicator texts (as long as they are enabled)."}
} }
) )
-- Last Pool indicator Color (REPENTANCE ONLY)
if EID.isRepentance then
MCM.AddSetting(
"EID",
"Colors",
{
Type = ModConfigMenu.OptionType.NUMBER,
CurrentSetting = function()
return AnIndexOf(colorNameArray, EID.Config["ItemPoolTextColor"])
end,
Minimum = 0,
Maximum = 1000,
Display = function()
if EID.Config["ItemPoolTextColor"] == nil then EID.Config["ItemPoolTextColor"] = EID.DefaultConfig["ItemPoolTextColor"] end
return "Mod Indicator: " .. string.gsub(EID.Config["ItemPoolTextColor"], "Color", "").. " ("..AnIndexOf(colorNameArray, EID.Config["ItemPoolTextColor"]).."/"..#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["ItemPoolTextColor"] = colorNameArray[currentNum]
end,
Info = {"Changes the color of last item pool indicator texts (as long as they are enabled)."}
}
)
end
if MCM.i18n == "Chinese" then if MCM.i18n == "Chinese" then
require("eid_mcm_cn") require("eid_mcm_cn")
+18 -3
View File
@@ -229,6 +229,19 @@ end
if EID.isRepentance then if EID.isRepentance then
-- Handle Last Pool
local function LastPoolCallback(descObj)
local itemConfig = EID.itemConfig:GetCollectible(descObj.ObjSubType)
if itemConfig:IsCollectible() and not itemConfig:HasTags(ItemConfig.TAG_QUEST) then
local lastPool = game:GetItemPool():GetLastPool()
local poolName = ""
local poolDescPrepend = EID:getDescriptionEntry("itemPoolFor")
local poolDescTable = EID:getDescriptionEntry("itemPoolNames")
poolName = "{{"..EID.Config["ItemPoolTextColor"].."}}"..poolDescPrepend..""..(EID.ItemPoolTypeToMarkup[lastPool] or "{{ItemPoolTreasure}}")..poolDescTable[lastPool] .. "{{CR}}#"
descObj.Description = poolName .. descObj.Description
end
return descObj
end
-- Handle Birthright -- Handle Birthright
local function BirthrightCallback(descObj) local function BirthrightCallback(descObj)
descObj.Description = "" descObj.Description = ""
@@ -298,8 +311,8 @@ if EID.isRepentance then
local playerStats = {} local playerStats = {}
playerStats[1] = SimpleRound((player.MoveSpeed * 4.5) - 2) playerStats[1] = SimpleRound((player.MoveSpeed * 4.5) - 2)
playerStats[2] = SimpleRound((((30/(player.MaxFireDelay + 1))^0.75) * 2.12) - 2) playerStats[2] = SimpleRound((((30/(player.MaxFireDelay + 1))^0.75) * 2.120391) - 2)
playerStats[3] = SimpleRound(((player.Damage^0.56)*2.23) - 2) playerStats[3] = SimpleRound(((player.Damage^0.56)*2.231179) - 2)
playerStats[4] = SimpleRound(((player.TearRange - 230) / 60) + 2) playerStats[4] = SimpleRound(((player.TearRange - 230) / 60) + 2)
local playerPickups = {} local playerPickups = {}
@@ -561,7 +574,8 @@ if EID.isRepentance then
local j = 1 local j = 1
while (j <= #pickupHistory) do while (j <= #pickupHistory) do
local entry = pickupHistory[j] local entry = pickupHistory[j]
if entry[1] == "pill" then -- ignore the pill if the pill color is Golden
if entry[1] == "pill" and entry[2] ~= 14 then
lastUsedPill = entry[3] lastUsedPill = entry[3]
break break
end end
@@ -675,6 +689,7 @@ if EID.isRepentance then
-- Using magic numbers here in case it's slightly faster, and because the callback names give context -- 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 -- Check Birthright first because it overwrites the description instead of appending to it
if descObj.ObjSubType == 619 then table.insert(callbacks, BirthrightCallback) end if descObj.ObjSubType == 619 then table.insert(callbacks, BirthrightCallback) end
if not EID.InsideItemReminder and EID.Config["ShowItemPoolText"] then table.insert(callbacks, LastPoolCallback) end
if descObj.ObjSubType == 644 then table.insert(callbacks, ConsolationPrizeCallback) end if descObj.ObjSubType == 644 then table.insert(callbacks, ConsolationPrizeCallback) end
if EID.collectiblesOwned[664] then table.insert(callbacks, BingeEaterCallback) end if EID.collectiblesOwned[664] then table.insert(callbacks, BingeEaterCallback) end
+40 -7
View File
@@ -10,8 +10,8 @@ EID.isRepentance = REPENTANCE -- REPENTANCE variable can be altered by any mod,
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.55 EID.ModVersion = 4.57
EID.ModVersionCommit = "7a74260" EID.ModVersionCommit = "646dd79"
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
@@ -622,6 +622,16 @@ function EID:printDescription(desc, cachedID)
if EID.Config["ShowQuality"] and desc.Quality then if EID.Config["ShowQuality"] and desc.Quality then
curName = curName.." - {{Quality"..desc.Quality.."}}" curName = curName.." - {{Quality"..desc.Quality.."}}"
end end
-- Display Last Pool for Collectible for full reroll effects
if EID.isRepentance and EID.Config["ShowItemPoolIcon"] and (desc.ObjType == 5 and desc.ObjVariant == 100) then
local itemConfig = EID.itemConfig:GetCollectible(desc.ObjSubType)
if itemConfig:IsCollectible() and not itemConfig:HasTags(ItemConfig.TAG_QUEST) then
if not EID.Config["ShowQuality"] then
curName = curName.." - "
end
curName = curName..""..(EID.ItemPoolTypeToMarkup[game:GetItemPool():GetLastPool()] or "{{ItemPoolTreasure}}")
end
end
-- Display the mod this item is from -- Display the mod this item is from
if desc.ModName then if desc.ModName then
curName = curName .. EID:getModNameString(desc) curName = curName .. EID:getModNameString(desc)
@@ -982,6 +992,7 @@ end
local collSpawned = false local collSpawned = false
EID.RecheckVoid = false EID.RecheckVoid = false
EID.ShouldCheckWisp = false
function EID:onGameUpdate() function EID:onGameUpdate()
EID.GameUpdateCount = EID.GameUpdateCount + 1 EID.GameUpdateCount = EID.GameUpdateCount + 1
@@ -1008,8 +1019,23 @@ function EID:onGameUpdate()
EID.RecheckVoid = true EID.RecheckVoid = true
end end
-- Remove Crane Game item data if it's giving the prize out
if EID.isRepentance and EID.GameUpdateCount % 10 == 0 then if EID.isRepentance and EID.GameUpdateCount % 10 == 0 then
-- Check wisp for adding reminder when using lemegeton
if EID.ShouldCheckWisp then
for _, wisp in ipairs(Isaac.FindByType(3, 237, -1, true, false)) do
if wisp.FrameCount < 10 then
local player = wisp:ToFamiliar() and wisp:ToFamiliar().Player
if player then
local playerID = EID:getPlayerID(player)
EID:InitItemInteractionIfAbsent(playerID)
table.insert(EID.RecentlyTouchedItems[playerID], wisp.SubType)
if (#EID.RecentlyTouchedItems[playerID] > 8) then table.remove(EID.RecentlyTouchedItems[playerID], 1) end
end
end
end
EID.ShouldCheckWisp = false
end
-- Remove Crane Game item data if it's giving the prize out
for _, crane in ipairs(Isaac.FindByType(6, 16, -1, true, false)) do for _, crane in ipairs(Isaac.FindByType(6, 16, -1, true, false)) do
if EID.CraneItemType[tostring(crane.InitSeed)] then if EID.CraneItemType[tostring(crane.InitSeed)] then
if crane:GetSprite():IsPlaying("Prize") then if crane:GetSprite():IsPlaying("Prize") then
@@ -1573,19 +1599,26 @@ if EID.isRepentance then
CheckAllActiveItemProgress() CheckAllActiveItemProgress()
end end
EID:AddCallback(ModCallbacks.MC_USE_ITEM, OnUseGenesis, CollectibleType.COLLECTIBLE_GENESIS) EID:AddCallback(ModCallbacks.MC_USE_ITEM, OnUseGenesis, CollectibleType.COLLECTIBLE_GENESIS)
local function OnUseLemegeton(_, _, player, _, _, _)
EID.ShouldCheckWisp = true
end
EID:AddCallback(ModCallbacks.MC_PRE_USE_ITEM, OnUseLemegeton, CollectibleType.COLLECTIBLE_LEMEGETON)
end end
function EID:OnUsePill(pillEffectID, player, useFlags) 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!
-- get the pill color by checking the player's pocket (not accurate for Temperance? and such, but useFlags will help us ignore those) -- get the pill color by checking the player's pocket
local pillColor = EID.PlayerHeldPill[EID:getPlayerID(player)] local pillColor = EID.PlayerHeldPill[EID:getPlayerID(player)]
if pillColor == 0 then return end -- ignore if no pill found in pocket -- add the pill used to our history for Echo Chamber / Vurp! / transformation progress
EID:AddPickupToHistory("pill", pillEffectID+1, player, useFlags, pillColor) -- Echo Chamber tracking EID:AddPickupToHistory("pill", pillEffectID+1, player, useFlags, pillColor)
EID.ForceRefreshCache = true -- for transformation progress update
-- for tracking used pills, ignore gold pills and noannouncer flag pills -- for tracking used pills, ignore gold pills and noannouncer flag pills
-- (not using a bitmask, because Placebo is mimic+noannouncer, and we want to count those) -- (not using a bitmask, because Placebo is mimic+noannouncer, and we want to count those)
if EID.isRepentance and (pillColor % PillColor.PILL_GIANT_FLAG == PillColor.PILL_GOLD or useFlags == UseFlag.USE_NOANNOUNCER) then return end if EID.isRepentance and (pillColor % PillColor.PILL_GIANT_FLAG == PillColor.PILL_GOLD or useFlags == UseFlag.USE_NOANNOUNCER) then return end
EID.UsedPillColors[tostring(pillColor)] = true EID.UsedPillColors[tostring(pillColor)] = true
end end
EID:AddCallback(ModCallbacks.MC_USE_PILL, EID.OnUsePill) EID:AddCallback(ModCallbacks.MC_USE_PILL, EID.OnUsePill)
+1 -1
View File
@@ -50,7 +50,7 @@ You are currently looking at the version for Afterbirth+ and Repentance.
[img]https://i.imgur.com/jrdGbna.png[/img] [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] [url=https://github.com/wofsauge/External-Item-Descriptions/blob/master/CREDITS.md]Check out the credits here[/url]
</description> </description>
<version>4.55</version> <version>4.57</version>
<visibility>Public</visibility> <visibility>Public</visibility>
<tag id="Lua"/> <tag id="Lua"/>
<tag id="Items"/> <tag id="Items"/>
+44 -1
View File
@@ -1,5 +1,5 @@
<AnimatedActor> <AnimatedActor>
<Info CreatedBy="Unknown" CreatedOn="6/5/2022 1:39:49 AM" Version="187" Fps="30"/> <Info CreatedBy="Unknown" CreatedOn="2023-03-22 23:21:04" Version="188" Fps="30"/>
<Content> <Content>
<Spritesheets> <Spritesheets>
<Spritesheet Path="eid_inline_icons.png" Id="0"/> <Spritesheet Path="eid_inline_icons.png" Id="0"/>
@@ -643,5 +643,48 @@
<NullAnimations/> <NullAnimations/>
<Triggers/> <Triggers/>
</Animation> </Animation>
<Animation Name="ItemPools" FrameNum="31" Loop="true">
<RootAnimation>
<Frame XPosition="0" YPosition="0" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
</RootAnimation>
<LayerAnimations>
<LayerAnimation LayerId="0" Visible="true">
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="165" YCrop="286" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="176" YCrop="286" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="187" YCrop="286" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="198" YCrop="286" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="209" YCrop="286" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="220" YCrop="286" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="231" YCrop="286" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="242" YCrop="286" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="165" YCrop="297" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="176" YCrop="297" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="187" YCrop="297" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="198" YCrop="297" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="209" YCrop="297" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="220" YCrop="297" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="231" YCrop="297" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="242" YCrop="297" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="165" YCrop="308" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="176" YCrop="308" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="187" YCrop="308" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="198" YCrop="308" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="209" YCrop="308" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="220" YCrop="308" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="231" YCrop="308" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="242" YCrop="308" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="165" YCrop="319" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="176" YCrop="319" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="187" YCrop="319" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="198" YCrop="319" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="209" YCrop="319" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="220" YCrop="319" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="231" YCrop="319" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
</LayerAnimation>
<LayerAnimation LayerId="1" Visible="true"/>
</LayerAnimations>
<NullAnimations/>
<Triggers/>
</Animation>
</Animations> </Animations>
</AnimatedActor> </AnimatedActor>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 36 KiB