Compare commits

...
2 Commits
Author SHA1 Message Date
lzrdblzzrd 74fcf726a4 feat: synergy notes for owned items (RU, prebuilt from dead-god.ru)
Check Localization / Check Localization process (push) Canceled after 0s
2026-09-21 19:11:49 +03:00
lzrdblzzrd 88d2ba6154 feat: personal fork section 1 - slim fonts, Russian MCM labels, render fault containment 2026-09-21 17:38:29 +03:00
8 changed files with 2994 additions and 506733 deletions

No files matched your search

+6
View File
@@ -324,6 +324,11 @@ EID.UserConfig = {
-- Default = true -- Default = true
["DisplayFlipItemDescriptions"] = true, ["DisplayFlipItemDescriptions"] = true,
---------- Synergy Notes (personal fork) ----------
-- If enabled, displays synergy notes for owned items under the description (Russian language only)
-- Default = true
["DisplaySynergies"] = true,
---------- Item Reminder Description ------------ ---------- Item Reminder Description ------------
-- Enable/Disable item reminder feature. -- Enable/Disable item reminder feature.
-- Hold Map (or the button action chosen below) to show a description of your active item's effect, recently picked up items, and things like Teleport 2.0's destination and Void's absorbed items -- Hold Map (or the button action chosen below) to show a description of your active item's effect, recently picked up items, and things like Teleport 2.0's destination and Void's absorbed items
@@ -625,6 +630,7 @@ EID.DefaultConfig = {
["DisplayCraneInfo"] = true, ["DisplayCraneInfo"] = true,
["DisplayVoidStatInfo"] = false, ["DisplayVoidStatInfo"] = false,
["DisplayFlipItemDescriptions"] = true, ["DisplayFlipItemDescriptions"] = true,
["DisplaySynergies"] = true,
["BagOfCraftingResults"] = 7, ["BagOfCraftingResults"] = 7,
["BagOfCraftingCombinationMax"] = 12, ["BagOfCraftingCombinationMax"] = 12,
["BagOfCraftingRandomResults"] = 400, ["BagOfCraftingRandomResults"] = 400,
+253 -115
View File
@@ -141,9 +141,142 @@ function EID:buildColorArray()
table.sort(colorNameArray) table.sort(colorNameArray)
end end
-- Personal fork: Russian MCM labels. Option names are translated lazily
-- (when the menu is opened), category names once at menu registration.
-- Anything missing from the dictionary falls back to English.
EID.MCM_RU_Labels = {
-- Categories
["General"] = "Общее",
["Display"] = "Отображение",
["Visuals"] = "Внешний вид",
["Colors"] = "Цвета",
["Crafting"] = "Крафт",
["Reminder"] = "Напоминания",
["Mouse"] = "Мышь",
["Save Game"] = "Сохранения",
["Info"] = "Информация",
-- Booleans
["True"] = "Вкл",
["False"] = "Выкл",
-- Display options
["Multiple descriptions"] = "Несколько описаний",
["Max Descriptions"] = "Максимум описаний",
["Max Distance"] = "Макс. дистанция",
["Show Item Info"] = "Информация об артефактах",
["Show Trinket Info"] = "Информация о брелоках",
["Show Card Info"] = "Информация о картах",
["Show Pill Info"] = "Информация о пилюлях",
["Show Unreachable Card Info"] = "Инфо о недоступных картах",
["Show Unreachable Pill Info"] = "Инфо о недоступных пилюлях",
["Show Unreachable Soulstone Info"] = "Инфо о недоступных камнях душ",
["Show Crane Game Info"] = "Инфо о кран-автомате",
["Show Dice Room Info"] = "Инфо о комнатах кубика",
["Show Flip Item Descriptions"] = "Описания второго артефакта Flip",
["Show Glitched Item Info"] = "Инфо о глитч-артефактах",
["Show Glitched Crown Summary"] = "Сводка Глитч-короны",
["Show Sacrifice Room Info"] = "Инфо о комнате жертвоприношений",
["Show Synergies"] = "Показывать синергии",
["Show Sanguine Bond Info"] = "Инфо о Кровавых узах",
["Show Void Stat Increases"] = "Прирост статов от Бездны",
["Show Tainted Cain Salvage Results"] = "Результаты разбора Порченого Каина",
["Show pill effect after one use"] = "Эффект пилюли после 1 использования",
["Show Unidentified Pill Effects"] = "Эффекты неопознанных пилюль",
["Show Hidden Alt-Path Item"] = "Скрытый артефакт альт-пути",
["Show on April Fools Challenge"] = "Показ в челлендже «День дурака»",
["Show Hidden Information"] = "Показывать скрытую информацию",
["Show Item Names"] = "Показывать названия артефактов",
["Show Controls"] = "Показывать управление",
["Show Recipes/Best Bag as"] = "Рецепты/лучшая сумка в виде",
["Show Display"] = "Показывать дисплей",
["Show RNG Predictions"] = "Показывать RNG-предсказания",
["Start of Run Warnings"] = "Предупреждения в начале забега",
["Co-op Player Descriptions"] = "Описания для коопа",
["Paired Player Descriptions"] = "Описания парных игроков",
["Predict Sanguine Bond Result"] = "Предсказание Кровавых уз",
["Always show with flight"] = "Всегда показывать при полёте",
["Hide in Battle"] = "Скрывать в бою",
["Is Initially Hidden"] = "Скрыто изначально",
["Hide uncollected items"] = "Скрывать несобранные артефакты",
["Highlight uncollected items"] = "Подсвечивать несобранные артефакты",
["Show descriptions on collection page"] = "Описания на странице коллекции",
["Donation machine progress"] = "Прогресс автомата пожертвований",
["Display IDs"] = "Показывать ID",
["Display Names"] = "Показывать названия",
["Skip Locked Items"] = "Пропускать закрытые артефакты",
["Preview rerolls"] = "Предпросмотр рероллов",
["Display ID"] = "Показывать ID",
["Display Name"] = "Показывать название",
["Display Description"] = "Показывать описание",
["Display Icon"] = "Показывать иконку",
["Display Type"] = "Показывать тип",
["Display Quality"] = "Показывать качество",
["Display Transformation Icon"] = "Иконка трансформации",
["Display Transformation Progress"] = "Прогресс трансформации",
["Display Transformation Name"] = "Название трансформации",
["Dynamic Health Up Text"] = "Динамический текст о здоровье",
["Item Pool Info"] = "Информация о пуле",
["Current Item Pool Icon"] = "Иконка текущего пула",
["Current Item Pool Name"] = "Название текущего пула",
["Stat Change Icons"] = "Иконки изменения статов",
["Stat/Pickup Bulletpoint Icons"] = "Маркеры статов/подбираемых предметов",
["Local Mode Centered"] = "Локальный режим по центру",
["Purchaseable Card Info"] = "Инфо о картах в продаже",
["Purchaseable Pill Info"] = "Инфо о пилюлях в продаже",
["Purchaseable Soulstone Info"] = "Инфо о камнях душ в продаже",
["'Options?' Card Info"] = "Инфо о картах для «Options?»",
["'Options?' Pill Info"] = "Инфо о пилюлях для «Options?»",
["Item Reminder"] = "Напоминание об артефактах",
["Disable Player Inputs"] = "Отключить управление игроком",
["Max Entries"] = "Максимум записей",
["Overview crop after X rows"] = "Обрезка обзора после X строк",
["Navigate Up"] = "Навигация вверх",
["Navigate Down"] = "Навигация вниз",
["Navigate Left"] = "Навигация влево",
["Navigate Right"] = "Навигация вправо",
["Hold to Show"] = "Удерживать для показа",
-- Numbers / scroll / hotkeys
["Display Mode"] = "Режим отображения",
["Indicator"] = "Индикатор",
["Line Height"] = "Высота строк",
["Text Size"] = "Размер текста",
["Text Size (Local Mode)"] = "Размер текста (локальный режим)",
["Markup Icon Size"] = "Размер иконок разметки",
["Textbox Width"] = "Ширина текстового окна",
["Opacity"] = "Прозрачность",
["Position X"] = "Позиция X",
["Position Y"] = "Позиция Y",
["Display Mod Indicator"] = "Индикатор мода",
["Description Refresh Rate"] = "Частота обновления описаний",
["Name Language"] = "Язык названий",
["Toggle (Keyboard)"] = "Переключение (клавиатура)",
["Toggle (Controller)"] = "Переключение (геймпад)",
["Colorblind Mode"] = "Режим дальтонизма",
["Thorough Calculations"] = "Тщательные расчёты",
["Random Calculations"] = "Случайные расчёты",
["Recipes to Display"] = "Рецептов на экране",
["Sort Recipes by"] = "Сортировка рецептов",
-- Custom labels
["Font Type"] = "Тип шрифта",
["Language"] = "Язык",
["Highlight color"] = "Цвет подсветки",
["Collection Page Highlight color"] = "Цвет подсветки страницы коллекции",
["Current Save Game"] = "Текущее сохранение",
["Recipe List Options"] = "Опции списка рецептов",
}
---@param text string English label
---@return string label in Russian when EID language is Russian, English otherwise
function EID.MCMTr(text)
if EID:getLanguage() == "ru" and EID.MCM_RU_Labels[text] ~= nil then
return EID.MCM_RU_Labels[text]
end
return text
end
function EID:AddBooleanSetting(category, optionName, displayText, params) function EID:AddBooleanSetting(category, optionName, displayText, params)
if type(params) ~= "table" then params = {} end if type(params) ~= "table" then params = {} end
if params.repOnly and not EID.isRepentance then return end if params.repOnly and not EID.isRepentance then return end
category = EID.MCMTr(category)
MCM.AddSetting( MCM.AddSetting(
"EID", category, "EID", category,
{ {
@@ -153,11 +286,11 @@ function EID:AddBooleanSetting(category, optionName, displayText, params)
end, end,
Display = params.displayFunc or function() Display = params.displayFunc or function()
if params.displayingTab then EID.MCMCompat_isDisplayingEIDTab = params.displayingTab end if params.displayingTab then EID.MCMCompat_isDisplayingEIDTab = params.displayingTab end
local onOff = params.offText or "False" local onOff = params.offText or EID.MCMTr("False")
if EID.Config[optionName] then if EID.Config[optionName] then
onOff = params.onText or "True" onOff = params.onText or EID.MCMTr("True")
end end
return displayText .. ": " .. onOff return EID.MCMTr(displayText) .. ": " .. onOff
end, end,
OnChange = params.onChangeFunc or function(currentBool) OnChange = params.onChangeFunc or function(currentBool)
EID.Config[optionName] = currentBool EID.Config[optionName] = currentBool
@@ -171,6 +304,7 @@ end
function EID:AddNumberSetting(category, optionName, displayText, minimum, maximum, params) function EID:AddNumberSetting(category, optionName, displayText, minimum, maximum, params)
if type(params) ~= "table" then params = {} end if type(params) ~= "table" then params = {} end
if params.repOnly and not EID.isRepentance then return end if params.repOnly and not EID.isRepentance then return end
category = EID.MCMTr(category)
MCM.AddSetting( MCM.AddSetting(
"EID", category, "EID", category,
{ {
@@ -183,7 +317,7 @@ function EID:AddNumberSetting(category, optionName, displayText, minimum, maximu
ModifyBy = params.modifyBy or 1, ModifyBy = params.modifyBy or 1,
Display = params.displayFunc or function() Display = params.displayFunc or function()
if params.displayingTab then EID.MCMCompat_isDisplayingEIDTab = params.displayingTab end if params.displayingTab then EID.MCMCompat_isDisplayingEIDTab = params.displayingTab end
return displayText .. ": " .. ((params.displayTable and params.displayTable[EID.Config[optionName]]) or EID.Config[optionName]) return EID.MCMTr(displayText) .. ": " .. ((params.displayTable and params.displayTable[EID.Config[optionName]]) or EID.Config[optionName])
end, end,
OnChange = params.onChangeFunc or function(currentNum) OnChange = params.onChangeFunc or function(currentNum)
EID.Config[optionName] = (params.indexOf and params.indexOf[currentNum]) or currentNum EID.Config[optionName] = (params.indexOf and params.indexOf[currentNum]) or currentNum
@@ -197,6 +331,7 @@ end
function EID:AddScrollSetting(category, optionName, displayText, scrollTable, params) function EID:AddScrollSetting(category, optionName, displayText, scrollTable, params)
if type(params) ~= "table" then params = {} end if type(params) ~= "table" then params = {} end
if params.repOnly and not EID.isRepentance then return end if params.repOnly and not EID.isRepentance then return end
category = EID.MCMTr(category)
MCM.AddSetting( MCM.AddSetting(
"EID", category, "EID", category,
{ {
@@ -206,7 +341,7 @@ function EID:AddScrollSetting(category, optionName, displayText, scrollTable, pa
end, end,
Display = params.displayFunc or function() Display = params.displayFunc or function()
if params.displayingTab then EID.MCMCompat_isDisplayingEIDTab = params.displayingTab end if params.displayingTab then EID.MCMCompat_isDisplayingEIDTab = params.displayingTab end
return displayText .. ": $scroll" .. (AnIndexOf(scrollTable, EID.Config[optionName]) - 1) .. " " .. return EID.MCMTr(displayText) .. ": $scroll" .. (AnIndexOf(scrollTable, EID.Config[optionName]) - 1) .. " " ..
EID.Config[optionName] .. (params.label or "") EID.Config[optionName] .. (params.label or "")
end, end,
OnChange = params.onChangeFunc or function(currentNum) OnChange = params.onChangeFunc or function(currentNum)
@@ -220,6 +355,7 @@ end
function EID:AddHotkeySetting(category, optionName, displayText, infoText, isController) function EID:AddHotkeySetting(category, optionName, displayText, infoText, isController)
if (type(infoText) == "string") then infoText = {infoText} end if (type(infoText) == "string") then infoText = {infoText} end
category = EID.MCMTr(category)
local optionType = ModConfigMenu.OptionType.KEYBIND_KEYBOARD local optionType = ModConfigMenu.OptionType.KEYBIND_KEYBOARD
local hotkeyToString = InputHelper.KeyboardToString local hotkeyToString = InputHelper.KeyboardToString
local deviceString = "keyboard" local deviceString = "keyboard"
@@ -241,7 +377,7 @@ function EID:AddHotkeySetting(category, optionName, displayText, infoText, isCon
Display = function() Display = function()
local key = "None" local key = "None"
if (hotkeyToString[EID.Config[optionName]]) then key = hotkeyToString[EID.Config[optionName]] end if (hotkeyToString[EID.Config[optionName]]) then key = hotkeyToString[EID.Config[optionName]] end
return displayText .. ": " .. key return EID.MCMTr(displayText) .. ": " .. key
end, end,
OnChange = function(currentNum) OnChange = function(currentNum)
EID.Config[optionName] = currentNum or -1 EID.Config[optionName] = currentNum or -1
@@ -277,16 +413,16 @@ if MCMLoaded then
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
-----------------------------------Info------------------------------------ -----------------------------------Info------------------------------------
MCM.AddSpace("EID", "Info") MCM.AddSpace("EID", EID.MCMTr("Info"))
MCM.AddText("EID", "Info", function() return "External Item Descriptions" end) MCM.AddText("EID", EID.MCMTr("Info"), function() return "External Item Descriptions" end)
MCM.AddSpace("EID", "Info") MCM.AddSpace("EID", EID.MCMTr("Info"))
MCM.AddText("EID", "Info", function() return "Version "..string.format("%.2f", EID.ModVersion) .."_"..EID.ModVersionCommit.." ("..EID.GameVersion..")" end) MCM.AddText("EID", EID.MCMTr("Info"), function() return "Version "..string.format("%.2f", EID.ModVersion) .."_"..EID.ModVersionCommit.." ("..EID.GameVersion..")" end)
MCM.AddSpace("EID", "Info") MCM.AddSpace("EID", EID.MCMTr("Info"))
MCM.AddText("EID", "Info", function() return "by Wofsauge" end) MCM.AddText("EID", EID.MCMTr("Info"), function() return "by Wofsauge" end)
MCM.AddSpace("EID", "Info") MCM.AddSpace("EID", EID.MCMTr("Info"))
MCM.AddText("EID", "Info", function() return EID.isHidden and"~~~~~~~~~~~~~~~~~~~~~~~~~~~" or "" end) MCM.AddText("EID", EID.MCMTr("Info"), function() return EID.isHidden and"~~~~~~~~~~~~~~~~~~~~~~~~~~~" or "" end)
MCM.AddText("EID", "Info", function() return EID.isHidden and"~~~~~ CURRENTLY HIDDEN! ~~~~~" or "" end) MCM.AddText("EID", EID.MCMTr("Info"), function() return EID.isHidden and"~~~~~ CURRENTLY HIDDEN! ~~~~~" or "" end)
MCM.AddText("EID", "Info", function() MCM.AddText("EID", EID.MCMTr("Info"), function()
EID.MCMCompat_isDisplayingEIDTab = "" EID.MCMCompat_isDisplayingEIDTab = ""
if EID.Config["HideKey"] ~= -1 or EID.Config["HideButton"] ~= -1 then if EID.Config["HideKey"] ~= -1 or EID.Config["HideButton"] ~= -1 then
local hotkeyString = InputHelper.KeyboardToString[EID.Config["HideKey"]] or InputHelper.ControllerToString[EID.Config["HideButton"]] local hotkeyString = InputHelper.KeyboardToString[EID.Config["HideKey"]] or InputHelper.ControllerToString[EID.Config["HideButton"]]
@@ -299,10 +435,10 @@ if MCMLoaded then
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
---------------------------------General----------------------------------- ---------------------------------General-----------------------------------
-- Language -- Language
MCM.AddText("EID", "General", "Language") MCM.AddText("EID", EID.MCMTr("General"), "Language")
MCM.AddSetting( MCM.AddSetting(
"EID", "EID",
"General", EID.MCMTr("General"),
{ {
Type = ModConfigMenu.OptionType.NUMBER, Type = ModConfigMenu.OptionType.NUMBER,
CurrentSetting = function() CurrentSetting = function()
@@ -317,9 +453,9 @@ if MCMLoaded then
Display = function() Display = function()
EID.MCMCompat_isDisplayingEIDTab = "General" EID.MCMCompat_isDisplayingEIDTab = "General"
if EID.Config["Language"] == "auto" then if EID.Config["Language"] == "auto" then
return "Language: Auto (" .. displayLanguage[AnIndexOf(EID.Languages, EID:getLanguage())] .. ")" return EID.MCMTr("Language") .. ": Auto (" .. displayLanguage[AnIndexOf(EID.Languages, EID:getLanguage())] .. ")"
else else
return "Language: " .. displayLanguage[AnIndexOf(EID.Languages, EID.Config["Language"])] return EID.MCMTr("Language") .. ": " .. displayLanguage[AnIndexOf(EID.Languages, EID.Config["Language"])]
end end
end, end,
OnChange = function(currentNum) OnChange = function(currentNum)
@@ -344,8 +480,8 @@ if MCMLoaded then
EID:AddNumberSetting("General", "TranslateItemName", "Name Language", 1, 3, {displayTable = translateStates, EID:AddNumberSetting("General", "TranslateItemName", "Name Language", 1, 3, {displayTable = translateStates,
infoText = {"Displays item, trinket and character names in a different language than descriptions."}}) infoText = {"Displays item, trinket and character names in a different language than descriptions."}})
MCM.AddSpace("EID", "General") MCM.AddSpace("EID", EID.MCMTr("General"))
MCM.AddText("EID", "General", "Keybinds") MCM.AddText("EID", EID.MCMTr("General"), "Keybinds")
-- Hide Keys -- Hide Keys
EID:AddHotkeySetting("General", "HideKey", "Toggle (Keyboard)", EID:AddHotkeySetting("General", "HideKey", "Toggle (Keyboard)",
@@ -353,8 +489,8 @@ if MCMLoaded then
EID:AddHotkeySetting("General", "HideButton", "Toggle (Controller)", EID:AddHotkeySetting("General", "HideButton", "Toggle (Controller)",
"Press this button to toggle the description display (Left Stick or Right Stick recommended; most other buttons will not work).", true) "Press this button to toggle the description display (Left Stick or Right Stick recommended; most other buttons will not work).", true)
MCM.AddSpace("EID", "General") MCM.AddSpace("EID", EID.MCMTr("General"))
MCM.AddText("EID", "General", "Advanced") MCM.AddText("EID", EID.MCMTr("General"), "Advanced")
local refreshRateSteps = {1, 2, 3, 4, 6, 10, 12, 15, 20, 30, 60} local refreshRateSteps = {1, 2, 3, 4, 6, 10, 12, 15, 20, 30, 60}
EID:AddScrollSetting("General", "RefreshRate", "Description Refresh Rate", refreshRateSteps, EID:AddScrollSetting("General", "RefreshRate", "Description Refresh Rate", refreshRateSteps,
@@ -362,11 +498,11 @@ if MCMLoaded then
--------Reset to default --------Reset to default
MCM.AddSpace("EID", "General") MCM.AddSpace("EID", EID.MCMTr("General"))
MCM.AddSetting( MCM.AddSetting(
"EID", "EID",
"General", EID.MCMTr("General"),
{ {
Type = ModConfigMenu.OptionType.BOOLEAN, Type = ModConfigMenu.OptionType.BOOLEAN,
CurrentSetting = function() return true end, CurrentSetting = function() return true end,
@@ -391,13 +527,13 @@ if MCMLoaded then
EID:AddBooleanSetting("Display", "DisableStartOfRunWarnings", "Start of Run Warnings", {offText = "Enabled", onText = "Disabled", EID:AddBooleanSetting("Display", "DisableStartOfRunWarnings", "Start of Run Warnings", {offText = "Enabled", onText = "Disabled",
repOnly = true, infoText = "Toggles warnings for achievements being disabled, the game being outdated, and modded crafting recipes."}) repOnly = true, infoText = "Toggles warnings for achievements being disabled, the game being outdated, and modded crafting recipes."})
if EID.isRepentance then MCM.AddSpace("EID", "Display") end if EID.isRepentance then MCM.AddSpace("EID", EID.MCMTr("Display")) end
MCM.AddText("EID", "Display", "Gameplay") MCM.AddText("EID", EID.MCMTr("Display"), "Gameplay")
EID:AddBooleanSetting("Display", "HideInBattle", "Hide in Battle", {displayingTab = "", infoText = "Hides descriptions when enemies are present."}) EID:AddBooleanSetting("Display", "HideInBattle", "Hide in Battle", {displayingTab = "", infoText = "Hides descriptions when enemies are present."})
EID:AddBooleanSetting("Display", "InitiallyHidden", "Is Initially Hidden", {infoText = "Hides descriptions by default. Press the Toggle key to show them again."}) EID:AddBooleanSetting("Display", "InitiallyHidden", "Is Initially Hidden", {infoText = "Hides descriptions by default. Press the Toggle key to show them again."})
MCM.AddSpace("EID", "Display") MCM.AddSpace("EID", EID.MCMTr("Display"))
-- maxDistance -- maxDistance
local distances = {1, 1.5, 2, 3, 4, 5, 6, 7, 8, 9, 10} local distances = {1, 1.5, 2, 3, 4, 5, 6, 7, 8, 9, 10}
@@ -409,23 +545,23 @@ if MCMLoaded then
EID:AddScrollSetting("Display", "MaxDescriptionsToDisplay", "Max Descriptions", descsToDisplaySteps, EID:AddScrollSetting("Display", "MaxDescriptionsToDisplay", "Max Descriptions", descsToDisplaySteps,
{infoText = "Maximum number of descriptions to display at once."}) {infoText = "Maximum number of descriptions to display at once."})
MCM.AddSpace("EID", "Display") MCM.AddSpace("EID", EID.MCMTr("Display"))
MCM.AddText("EID", "Display", "Description visibility") MCM.AddText("EID", EID.MCMTr("Display"), "Description visibility")
EID:AddBooleanSetting("Display", "DisplayItemInfo", "Show Item Info") EID:AddBooleanSetting("Display", "DisplayItemInfo", "Show Item Info")
EID:AddBooleanSetting("Display", "DisplayTrinketInfo", "Show Trinket Info") EID:AddBooleanSetting("Display", "DisplayTrinketInfo", "Show Trinket Info")
EID:AddBooleanSetting("Display", "DisplayCardInfo", "Show Card Info") EID:AddBooleanSetting("Display", "DisplayCardInfo", "Show Card Info")
EID:AddBooleanSetting("Display", "DisplayPillInfo", "Show Pill Info") EID:AddBooleanSetting("Display", "DisplayPillInfo", "Show Pill Info")
MCM.AddSpace("EID", "Display") MCM.AddSpace("EID", EID.MCMTr("Display"))
MCM.AddText("EID", "Display", "Special rooms") MCM.AddText("EID", EID.MCMTr("Display"), "Special rooms")
EID:AddBooleanSetting("Display", "DisplaySacrificeInfo", "Show Sacrifice Room Info", {infoText = "Displays reward chances for the next sacrifice in sacrifice rooms."}) EID:AddBooleanSetting("Display", "DisplaySacrificeInfo", "Show Sacrifice Room Info", {infoText = "Displays reward chances for the next sacrifice in sacrifice rooms."})
EID:AddBooleanSetting("Display", "DisplayDiceInfo", "Show Dice Room Info", {infoText = "Displays the effect of the big dice in dice rooms."}) EID:AddBooleanSetting("Display", "DisplayDiceInfo", "Show Dice Room Info", {infoText = "Displays the effect of the big dice in dice rooms."})
EID:AddBooleanSetting("Display", "DisplaySanguineInfo", "Show Sanguine Bond Info", {repOnly = true, infoText = "Displays possible Sanguine Bond rewards while in a Devil Room."}) EID:AddBooleanSetting("Display", "DisplaySanguineInfo", "Show Sanguine Bond Info", {repOnly = true, infoText = "Displays possible Sanguine Bond rewards while in a Devil Room."})
EID:AddBooleanSetting("Display", "PredictionSanguineBond", "Predict Sanguine Bond Result", {repOnly = true, infoText = "Highlights the next Sanguine Bond reward in the description."}) EID:AddBooleanSetting("Display", "PredictionSanguineBond", "Predict Sanguine Bond Result", {repOnly = true, infoText = "Highlights the next Sanguine Bond reward in the description."})
MCM.AddSpace("EID", "Display") MCM.AddSpace("EID", EID.MCMTr("Display"))
MCM.AddText("EID", "Display", "Items and Machines") MCM.AddText("EID", EID.MCMTr("Display"), "Items and Machines")
EID:AddBooleanSetting("Display", "DisplayCraneInfo", "Show Crane Game Info", {repOnly = true, infoText = "Displays the description of items in Crane Games."}) EID:AddBooleanSetting("Display", "DisplayCraneInfo", "Show Crane Game Info", {repOnly = true, infoText = "Displays the description of items in Crane Games."})
EID:AddBooleanSetting("Display", "DisplayVoidStatInfo", "Show Void Stat Increases", {infoText = "Displays the stats that would be gained by consuming a passive item."}) EID:AddBooleanSetting("Display", "DisplayVoidStatInfo", "Show Void Stat Increases", {infoText = "Displays the stats that would be gained by consuming a passive item."})
@@ -433,17 +569,19 @@ if MCMLoaded then
infoText = "Note: Installing REPENTOGON is required for more detailed glitched item descriptions!"}) infoText = "Note: Installing REPENTOGON is required for more detailed glitched item descriptions!"})
EID:AddBooleanSetting("Display", "DisplayFlipItemDescriptions", "Show Flip Item Descriptions", {repOnly = true, EID:AddBooleanSetting("Display", "DisplayFlipItemDescriptions", "Show Flip Item Descriptions", {repOnly = true,
infoText = "Display the effect of ghostly items, when player has the Flip item (T-Lazarus)"}) infoText = "Display the effect of ghostly items, when player has the Flip item (T-Lazarus)"})
EID:AddBooleanSetting("Display", "DisplaySynergies", "Show Synergies",
{infoText = "Display synergy notes for owned items under the description (Russian language only)."})
MCM.AddSpace("EID", "Display") MCM.AddSpace("EID", EID.MCMTr("Display"))
MCM.AddText("EID", "Display", "Hidden items") MCM.AddText("EID", EID.MCMTr("Display"), "Hidden items")
EID:AddBooleanSetting("Display", "DisableOnCurse", 'Show on "Curse of the Blind"', {offText = "True", onText = "False"}) EID:AddBooleanSetting("Display", "DisableOnCurse", 'Show on "Curse of the Blind"', {offText = "True", onText = "False"})
EID:AddBooleanSetting("Display", "DisableOnAprilFoolsChallenge", "Show on April Fools Challenge", {offText = "True", onText = "False"}) EID:AddBooleanSetting("Display", "DisableOnAprilFoolsChallenge", "Show on April Fools Challenge", {offText = "True", onText = "False"})
EID:AddBooleanSetting("Display", "DisableOnAltPath", "Show Hidden Alt-Path Item", {offText = "True", onText = "False", EID:AddBooleanSetting("Display", "DisableOnAltPath", "Show Hidden Alt-Path Item", {offText = "True", onText = "False",
repOnly = true, infoText = "Shows the description for the blind item in alt path floors."}) repOnly = true, infoText = "Shows the description for the blind item in alt path floors."})
MCM.AddSpace("EID", "Display") MCM.AddSpace("EID", EID.MCMTr("Display"))
MCM.AddText("EID", "Display", "Co-op") MCM.AddText("EID", EID.MCMTr("Display"), "Co-op")
EID:AddBooleanSetting("Display", "CoopDescriptions", "Co-op Player Descriptions", EID:AddBooleanSetting("Display", "CoopDescriptions", "Co-op Player Descriptions",
{infoText = "Allows Players 2, 3, and 4 to display descriptions in co-op."}) {infoText = "Allows Players 2, 3, and 4 to display descriptions in co-op."})
@@ -453,8 +591,8 @@ if MCMLoaded then
local diceSteps = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} local diceSteps = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
-- Spindown Dice Settings -- Spindown Dice Settings
if EID.isRepentance then if EID.isRepentance then
MCM.AddSpace("EID", "Display") MCM.AddSpace("EID", EID.MCMTr("Display"))
MCM.AddText("EID", "Display", "Spindown Dice") MCM.AddText("EID", EID.MCMTr("Display"), "Spindown Dice")
end end
EID:AddScrollSetting("Display", "SpindownDiceResults", "Preview rerolls", diceSteps, {repOnly = true, label = " Items", EID:AddScrollSetting("Display", "SpindownDiceResults", "Preview rerolls", diceSteps, {repOnly = true, label = " Items",
@@ -470,8 +608,8 @@ if MCMLoaded then
EID:AddBooleanSetting("Display", "SpindownDiceSkipLocked", "Skip Locked Items", EID:AddBooleanSetting("Display", "SpindownDiceSkipLocked", "Skip Locked Items",
{repOnly = true, infoText = {"The preview skips locked items, like the dice does.", "(The unlock status check is not perfect and may be wrong)"}}) {repOnly = true, infoText = {"The preview skips locked items, like the dice does.", "(The unlock status check is not perfect and may be wrong)"}})
MCM.AddSpace("EID", "Display") MCM.AddSpace("EID", EID.MCMTr("Display"))
MCM.AddText("EID", "Display", "Dynamic Descriptions") MCM.AddText("EID", EID.MCMTr("Display"), "Dynamic Descriptions")
EID:AddBooleanSetting("Display", "DynamicHealthUps", "Dynamic Health Up Text", EID:AddBooleanSetting("Display", "DynamicHealthUps", "Dynamic Health Up Text",
{infoText = "Changes Health Ups and removes healing effect text when playing as a character that can't have red health"}) {infoText = "Changes Health Ups and removes healing effect text when playing as a character that can't have red health"})
@@ -482,23 +620,23 @@ if MCMLoaded then
--------Obstruction--------- --------Obstruction---------
MCM.AddSpace("EID", "Display") MCM.AddSpace("EID", EID.MCMTr("Display"))
MCM.AddText("EID", "Display", "Unreachable items") MCM.AddText("EID", EID.MCMTr("Display"), "Unreachable items")
EID:AddBooleanSetting("Display", "DisplayObstructedCardInfo", "Show Unreachable Card Info", {infoText = "Hides the description of cards that can't be reached without breaking or flying over obstacles."}) EID:AddBooleanSetting("Display", "DisplayObstructedCardInfo", "Show Unreachable Card Info", {infoText = "Hides the description of cards that can't be reached without breaking or flying over obstacles."})
EID:AddBooleanSetting("Display", "DisplayObstructedPillInfo", "Show Unreachable Pill Info", {infoText = "Hides the description of pills that can't be reached without breaking or flying over obstacles."}) EID:AddBooleanSetting("Display", "DisplayObstructedPillInfo", "Show Unreachable Pill Info", {infoText = "Hides the description of pills that can't be reached without breaking or flying over obstacles."})
EID:AddBooleanSetting("Display", "DisplayObstructedSoulstoneInfo", "Show Unreachable Soulstone Info", {repOnly = true, infoText = "Hides the description of soul stones that can't be reached without breaking or flying over obstacles."}) EID:AddBooleanSetting("Display", "DisplayObstructedSoulstoneInfo", "Show Unreachable Soulstone Info", {repOnly = true, infoText = "Hides the description of soul stones that can't be reached without breaking or flying over obstacles."})
EID:AddBooleanSetting("Display", "DisableObstructionOnFlight", "Always show with flight", {infoText = "When Isaac has flight, considers all resources reachable and displays their descriptions"}) EID:AddBooleanSetting("Display", "DisableObstructionOnFlight", "Always show with flight", {infoText = "When Isaac has flight, considers all resources reachable and displays their descriptions"})
MCM.AddSpace("EID", "Display") MCM.AddSpace("EID", EID.MCMTr("Display"))
MCM.AddText("EID", "Display", "Pills") MCM.AddText("EID", EID.MCMTr("Display"), "Pills")
EID:AddBooleanSetting("Display", "OnlyShowPillWhenUsedAtLeastOnce", "Show pill effect after one use", {infoText = "Keeps pills unidentified until Isaac has used them at least once in the run. PHD and False PHD identify pills regardless of this setting."}) EID:AddBooleanSetting("Display", "OnlyShowPillWhenUsedAtLeastOnce", "Show pill effect after one use", {infoText = "Keeps pills unidentified until Isaac has used them at least once in the run. PHD and False PHD identify pills regardless of this setting."})
EID:AddBooleanSetting("Display", "ShowUnidentifiedPillDescriptions", "Show Unidentified Pill Effects") EID:AddBooleanSetting("Display", "ShowUnidentifiedPillDescriptions", "Show Unidentified Pill Effects")
-------Shop Spoilers------- -------Shop Spoilers-------
MCM.AddSpace("EID", "Display") MCM.AddSpace("EID", EID.MCMTr("Display"))
MCM.AddText("EID", "Display", "Consumables for Sale") MCM.AddText("EID", EID.MCMTr("Display"), "Consumables for Sale")
EID:AddBooleanSetting("Display", "DisplayCardInfoShop", "Purchaseable Card Info") EID:AddBooleanSetting("Display", "DisplayCardInfoShop", "Purchaseable Card Info")
EID:AddBooleanSetting("Display", "DisplayPillInfoShop", "Purchaseable Pill Info") EID:AddBooleanSetting("Display", "DisplayPillInfoShop", "Purchaseable Pill Info")
@@ -506,8 +644,8 @@ if MCMLoaded then
----"Options?" Spoilers---- ----"Options?" Spoilers----
if EID.isRepentance then if EID.isRepentance then
MCM.AddSpace("EID", "Display") MCM.AddSpace("EID", EID.MCMTr("Display"))
MCM.AddText("EID", "Display", "Interaction with 'Options?'") MCM.AddText("EID", EID.MCMTr("Display"), "Interaction with 'Options?'")
end end
EID:AddBooleanSetting("Display", "DisplayCardInfoOptions?", "'Options?' Card Info", {repOnly = true}) EID:AddBooleanSetting("Display", "DisplayCardInfoOptions?", "'Options?' Card Info", {repOnly = true})
@@ -520,12 +658,12 @@ if MCMLoaded then
local transparencies = {0.1, 0.175, 0.25, 0.3, 0.4, 0.5, 0.6, 0.75, 0.8, 0.9, 1} local transparencies = {0.1, 0.175, 0.25, 0.3, 0.4, 0.5, 0.6, 0.75, 0.8, 0.9, 1}
EID:AddScrollSetting("Visuals", "Transparency", "Opacity", transparencies) EID:AddScrollSetting("Visuals", "Transparency", "Opacity", transparencies)
MCM.AddSpace("EID", "Visuals") MCM.AddSpace("EID", EID.MCMTr("Visuals"))
-- Font Type -- Font Type
MCM.AddSetting( MCM.AddSetting(
"EID", "EID",
"Visuals", EID.MCMTr("Visuals"),
{ {
Type = ModConfigMenu.OptionType.NUMBER, Type = ModConfigMenu.OptionType.NUMBER,
CurrentSetting = function() CurrentSetting = function()
@@ -535,7 +673,7 @@ if MCMLoaded then
Maximum = #fontNames, Maximum = #fontNames,
Display = function() Display = function()
EID.MCMCompat_isDisplayingEIDTab = "Visuals"; EID.MCMCompat_isDisplayingEIDTab = "Visuals";
return "Font Type: " .. EID.Config["FontType"] return EID.MCMTr("Font Type") .. ": " .. EID.Config["FontType"]
end, end,
OnChange = function(currentNum) OnChange = function(currentNum)
if EID:canUseFontType(fontNames[currentNum]) then if EID:canUseFontType(fontNames[currentNum]) then
@@ -561,8 +699,8 @@ if MCMLoaded then
EID:AddNumberSetting("Visuals", "Indicator", "Indicator", 1, 5, {indexOf = indicators, EID:AddNumberSetting("Visuals", "Indicator", "Indicator", 1, 5, {indexOf = indicators,
infoText = {"Changes how the item being described is marked."}}) infoText = {"Changes how the item being described is marked."}})
MCM.AddSpace("EID", "Visuals") MCM.AddSpace("EID", EID.MCMTr("Visuals"))
MCM.AddText("EID", "Visuals", "Position") MCM.AddText("EID", EID.MCMTr("Visuals"), "Position")
-- Position / Textbox Size -- Position / Textbox Size
EID:AddNumberSetting("Visuals", "XPosition", "Position X", 0, 500, {modifyBy = 5, infoText = "Default = 60"}) EID:AddNumberSetting("Visuals", "XPosition", "Position X", 0, 500, {modifyBy = 5, infoText = "Default = 60"})
@@ -570,8 +708,8 @@ if MCMLoaded then
EID:AddNumberSetting("Visuals", "LineHeight", "Line Height", 1, 30, {infoText = "Default = 11 (varies per language)"}) EID:AddNumberSetting("Visuals", "LineHeight", "Line Height", 1, 30, {infoText = "Default = 11 (varies per language)"})
EID:AddNumberSetting("Visuals", "TextboxWidth", "Textbox Width", 1, 500, {modifyBy = 5, infoText = "Default = 130 (varies per language)"}) EID:AddNumberSetting("Visuals", "TextboxWidth", "Textbox Width", 1, 500, {modifyBy = 5, infoText = "Default = 130 (varies per language)"})
MCM.AddSpace("EID", "Visuals") MCM.AddSpace("EID", EID.MCMTr("Visuals"))
MCM.AddText("EID", "Visuals", "Size") MCM.AddText("EID", EID.MCMTr("Visuals"), "Size")
-- Scale/Size -- Scale/Size
EID:AddNumberSetting("Visuals", "Size", "Text Size", 0.5, 2, {modifyBy = 0.25, onChangeFunc = EID:AddNumberSetting("Visuals", "Size", "Text Size", 0.5, 2, {modifyBy = 0.25, onChangeFunc =
@@ -591,8 +729,8 @@ if MCMLoaded then
"SizeHotkey", "Toggle Size (Keyboard)", "SizeHotkey", "Toggle Size (Keyboard)",
{"Press this key to change the text size.", "Hold this key to smoothly change the text size."}, false) {"Press this key to change the text size.", "Hold this key to smoothly change the text size."}, false)
MCM.AddSpace("EID", "Visuals") MCM.AddSpace("EID", EID.MCMTr("Visuals"))
MCM.AddText("EID", "Visuals", "Icons") MCM.AddText("EID", EID.MCMTr("Visuals"), "Icons")
-------Markup icon Sizes--------- -------Markup icon Sizes---------
local markupSizes = {"default", "big", "small"} local markupSizes = {"default", "big", "small"}
@@ -601,8 +739,8 @@ if MCMLoaded then
EID:AddBooleanSetting("Visuals", "StatAndPickupBulletpoints", "Stat/Pickup Bulletpoint Icons") EID:AddBooleanSetting("Visuals", "StatAndPickupBulletpoints", "Stat/Pickup Bulletpoint Icons")
MCM.AddSpace("EID", "Visuals") MCM.AddSpace("EID", EID.MCMTr("Visuals"))
MCM.AddText("EID", "Visuals", "Description elements") MCM.AddText("EID", EID.MCMTr("Visuals"), "Description elements")
-- Simple toggles of what is shown in the title and transformation lines of a description -- Simple toggles of what is shown in the title and transformation lines of a description
EID:AddBooleanSetting("Visuals", "ShowItemName", "Display Name") EID:AddBooleanSetting("Visuals", "ShowItemName", "Display Name")
@@ -629,8 +767,8 @@ if MCMLoaded then
EID:AddBooleanSetting("Reminder", "ItemReminderEnabled", "Item Reminder", {displayingTab = "",offText = "Disabled", onText = "Enabled", infoText = "Allows you to see your active item's effect, recently picked up items, and much more from anywhere"}) EID:AddBooleanSetting("Reminder", "ItemReminderEnabled", "Item Reminder", {displayingTab = "",offText = "Disabled", onText = "Enabled", infoText = "Allows you to see your active item's effect, recently picked up items, and much more from anywhere"})
MCM.AddSpace("EID", "Reminder") MCM.AddSpace("EID", EID.MCMTr("Reminder"))
MCM.AddText("EID", "Reminder", "Controls") MCM.AddText("EID", EID.MCMTr("Reminder"), "Controls")
local actionToName = { [0] = "Move Left", "Move Right", "Move Up", "Move Down", "Shoot Left", "Shoot Right", "Shoot Up", "Shoot Down", "Bomb", "Item", "Pill/Card", "Drop", "Pause", "Map" } local actionToName = { [0] = "Move Left", "Move Right", "Move Up", "Move Down", "Shoot Left", "Shoot Right", "Shoot Up", "Shoot Down", "Bomb", "Item", "Pill/Card", "Drop", "Pause", "Map" }
EID:AddNumberSetting("Reminder", "BagOfCraftingToggleKey", "Hold to Show", 8, 13, {displayTable = actionToName, EID:AddNumberSetting("Reminder", "BagOfCraftingToggleKey", "Hold to Show", 8, 13, {displayTable = actionToName,
@@ -650,8 +788,8 @@ if MCMLoaded then
local itemReminderModes = {"All", "NoOverview", "Classic"} local itemReminderModes = {"All", "NoOverview", "Classic"}
MCM.AddSpace("EID", "Reminder") MCM.AddSpace("EID", EID.MCMTr("Reminder"))
MCM.AddText("EID", "Reminder", "Options") MCM.AddText("EID", EID.MCMTr("Reminder"), "Options")
EID:AddNumberSetting("Reminder", "ItemReminderDisplayMode", "Display Mode", 1, #itemReminderModes, {indexOf = itemReminderModes, infoText = "Changes the display mode. All = Overview + categories. NoOverview = Categories only. Classic = Overview only.", onChangeFunc = EID:AddNumberSetting("Reminder", "ItemReminderDisplayMode", "Display Mode", 1, #itemReminderModes, {indexOf = itemReminderModes, infoText = "Changes the display mode. All = Overview + categories. NoOverview = Categories only. Classic = Overview only.", onChangeFunc =
function(currentNum) function(currentNum)
EID.MCM_OptionChanged = true EID.MCM_OptionChanged = true
@@ -665,8 +803,8 @@ if MCMLoaded then
MCM.AddSpace("EID", "Reminder") MCM.AddSpace("EID", EID.MCMTr("Reminder"))
MCM.AddText("EID", "Reminder", "Item Descriptions") MCM.AddText("EID", EID.MCMTr("Reminder"), "Item Descriptions")
EID:AddNumberSetting("Reminder", "ItemReminderMaxEntriesCount", "Max Entries", 0, 10, {infoText = {"Number of descriptions that can be displayed at once in the Item Reminder."}}) EID:AddNumberSetting("Reminder", "ItemReminderMaxEntriesCount", "Max Entries", 0, 10, {infoText = {"Number of descriptions that can be displayed at once in the Item Reminder."}})
EID:AddNumberSetting("Reminder", "ItemReminderOverviewHideAfterRows", "Overview crop after X rows", 1, 20, {infoText = {"Reduces the length of descriptions that are too long in the overview category."}}) EID:AddNumberSetting("Reminder", "ItemReminderOverviewHideAfterRows", "Overview crop after X rows", 1, 20, {infoText = {"Reduces the length of descriptions that are too long in the overview category."}})
@@ -689,8 +827,8 @@ if MCMLoaded then
EID:AddBooleanSetting("Crafting", "BagOfCraftingHideInBattle", "Hide in Battle", {onText = "Yes", offText = "No", EID:AddBooleanSetting("Crafting", "BagOfCraftingHideInBattle", "Hide in Battle", {onText = "Yes", offText = "No",
infoText = "Hides the Bag of Crafting Helper when enemies are present."}) infoText = "Hides the Bag of Crafting Helper when enemies are present."})
MCM.AddSpace("EID", "Crafting") MCM.AddSpace("EID", EID.MCMTr("Crafting"))
MCM.AddText("EID", "Crafting", function() return "Recipe List Options" end) MCM.AddText("EID", EID.MCMTr("Crafting"), function() return EID.MCMTr("Recipe List Options") end)
-- Bag of Crafting item names -- Bag of Crafting item names
local bagSortTypes = {"Quality", "Name"} local bagSortTypes = {"Quality", "Name"}
@@ -715,8 +853,8 @@ if MCMLoaded then
EID:AddBooleanSetting("Crafting", "BagOfCraftingDisplayIcons", "Show Recipes/Best Bag as", {onText = "8 Icons", offText = "Groups", EID:AddBooleanSetting("Crafting", "BagOfCraftingDisplayIcons", "Show Recipes/Best Bag as", {onText = "8 Icons", offText = "Groups",
infoText = "Toggles whether recipes are shown as grouped ingredients or always 8 icons."}) infoText = "Toggles whether recipes are shown as grouped ingredients or always 8 icons."})
MCM.AddSpace("EID", "Crafting") MCM.AddSpace("EID", EID.MCMTr("Crafting"))
MCM.AddText("EID", "Crafting", "Controls") MCM.AddText("EID", EID.MCMTr("Crafting"), "Controls")
-- Bag of Crafting Show Controls -- Bag of Crafting Show Controls
EID:AddBooleanSetting("Crafting", "BagOfCraftingShowControls", "Show Controls", {onText = "Yes", offText = "No", EID:AddBooleanSetting("Crafting", "BagOfCraftingShowControls", "Show Controls", {onText = "Yes", offText = "No",
@@ -737,8 +875,8 @@ if MCMLoaded then
"CraftingSearchKey", "Search (Keyboard only)", "CraftingSearchKey", "Search (Keyboard only)",
"Press this key to start searching the recipe list.", false) "Press this key to start searching the recipe list.", false)
MCM.AddSpace("EID", "Crafting") MCM.AddSpace("EID", EID.MCMTr("Crafting"))
MCM.AddText("EID", "Crafting", "Advanced") MCM.AddText("EID", EID.MCMTr("Crafting"), "Advanced")
-- Bag of Crafting thorough recipe checks -- Bag of Crafting thorough recipe checks
local combSteps = {8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18} local combSteps = {8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18}
@@ -749,12 +887,12 @@ if MCMLoaded then
EID:AddScrollSetting("Crafting", "BagOfCraftingRandomResults", "Random Calculations", calcSteps, EID:AddScrollSetting("Crafting", "BagOfCraftingRandomResults", "Random Calculations", calcSteps,
{ infoText = "Checks an additional X randomly chosen recipes on each pickup spawn/despawn/refresh."}) { infoText = "Checks an additional X randomly chosen recipes on each pickup spawn/despawn/refresh."})
MCM.AddSpace("EID", "Crafting") MCM.AddSpace("EID", EID.MCMTr("Crafting"))
--------Clear bag--------- --------Clear bag---------
MCM.AddSetting( MCM.AddSetting(
"EID", "EID",
"Crafting", EID.MCMTr("Crafting"),
{ {
Type = ModConfigMenu.OptionType.BOOLEAN, Type = ModConfigMenu.OptionType.BOOLEAN,
CurrentSetting = function() return true end, CurrentSetting = function() return true end,
@@ -768,7 +906,7 @@ if MCMLoaded then
--------Clear Floor--------- --------Clear Floor---------
MCM.AddSetting( MCM.AddSetting(
"EID", "EID",
"Crafting", EID.MCMTr("Crafting"),
{ {
Type = ModConfigMenu.OptionType.BOOLEAN, Type = ModConfigMenu.OptionType.BOOLEAN,
CurrentSetting = function() return true end, CurrentSetting = function() return true end,
@@ -788,18 +926,18 @@ if MCMLoaded then
if EID.isRepentance then if EID.isRepentance then
if not REPENTOGON then if not REPENTOGON then
-- show disclaimer, but also show available features -- show disclaimer, but also show available features
MCM.AddText("EID", "Repentogon", function() EID.MCMCompat_isDisplayingEIDTab = ""; return "You need to install REPENTOGON" end) MCM.AddText("EID", EID.MCMTr("Repentogon"), function() EID.MCMCompat_isDisplayingEIDTab = ""; return "You need to install REPENTOGON" end)
MCM.AddText("EID", "Repentogon", "to use the following features:") MCM.AddText("EID", EID.MCMTr("Repentogon"), "to use the following features:")
MCM.AddSpace("EID", "Repentogon") MCM.AddSpace("EID", EID.MCMTr("Repentogon"))
end end
MCM.AddText("EID", "Repentogon", "Uncollected Items") MCM.AddText("EID", EID.MCMTr("Repentogon"), "Uncollected Items")
EID:AddBooleanSetting("Repentogon", "HideUncollectedItemDescriptions", "Hide uncollected items", {displayingTab = "", infoText = "Hide descriptions of items that are not yet on the collection page."}) EID:AddBooleanSetting("Repentogon", "HideUncollectedItemDescriptions", "Hide uncollected items", {displayingTab = "", infoText = "Hide descriptions of items that are not yet on the collection page."})
EID:AddBooleanSetting("Repentogon", "ItemCollectionIndicator", "Highlight uncollected items", { infoText = "Highlights items that are not yet on the collection page."}) EID:AddBooleanSetting("Repentogon", "ItemCollectionIndicator", "Highlight uncollected items", { infoText = "Highlights items that are not yet on the collection page."})
-- Needs collection Color -- Needs collection Color
MCM.AddSetting( MCM.AddSetting(
"EID", "EID",
"Repentogon", EID.MCMTr("Repentogon"),
{ {
Type = ModConfigMenu.OptionType.NUMBER, Type = ModConfigMenu.OptionType.NUMBER,
CurrentSetting = function() CurrentSetting = function()
@@ -809,7 +947,7 @@ if MCMLoaded then
Maximum = 1000, Maximum = 1000,
Display = function() Display = function()
if EID.Config["ItemCollectionColor"] == nil then EID.Config["ItemCollectionColor"] = EID.DefaultConfig["ItemCollectionColor"] end if EID.Config["ItemCollectionColor"] == nil then EID.Config["ItemCollectionColor"] = EID.DefaultConfig["ItemCollectionColor"] end
return "Highlight color: " .. string.gsub(EID.Config["ItemCollectionColor"], "Color", "").. " ("..AnIndexOf(colorNameArray, EID.Config["ItemCollectionColor"]).."/"..#colorNameArray..")" return EID.MCMTr("Highlight color") .. ": " .. string.gsub(EID.Config["ItemCollectionColor"], "Color", "").. " ("..AnIndexOf(colorNameArray, EID.Config["ItemCollectionColor"]).."/"..#colorNameArray..")"
end, end,
OnChange = function(currentNum) OnChange = function(currentNum)
EID.MCM_OptionChanged = true EID.MCM_OptionChanged = true
@@ -820,26 +958,26 @@ if MCMLoaded then
Info = {"Highlight color for the names of items that need to be picked up for the collection page."} Info = {"Highlight color for the names of items that need to be picked up for the collection page."}
} }
) )
MCM.AddSpace("EID", "Repentogon") MCM.AddSpace("EID", EID.MCMTr("Repentogon"))
EID:AddBooleanSetting("Repentogon", "RGON_ShowOnCollectionPage", "Show descriptions on collection page", { infoText = "Displays item effects when navigating the collection page in the main menu."}) EID:AddBooleanSetting("Repentogon", "RGON_ShowOnCollectionPage", "Show descriptions on collection page", { infoText = "Displays item effects when navigating the collection page in the main menu."})
-- Achievement tracking section -- Achievement tracking section
MCM.AddSpace("EID", "Repentogon") MCM.AddSpace("EID", EID.MCMTr("Repentogon"))
MCM.AddText("EID", "Repentogon", "Achievement tracking") MCM.AddText("EID", EID.MCMTr("Repentogon"), "Achievement tracking")
EID:AddBooleanSetting("Repentogon", "RGON_DonationMachineDescriptions", "Donation machine progress", { infoText = "Displays the number of coins until the next donation machine achievement."}) EID:AddBooleanSetting("Repentogon", "RGON_DonationMachineDescriptions", "Donation machine progress", { infoText = "Displays the number of coins until the next donation machine achievement."})
end end
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
----------------------------Savegame Config-------------------------------- ----------------------------Savegame Config--------------------------------
if not REPENTOGON then if not REPENTOGON then
if EID.SaveGame then if EID.SaveGame then
MCM.AddText("EID", "Save Game", function() EID.MCMCompat_isDisplayingEIDTab = ""; return "Loaded savegame data:" end) MCM.AddText("EID", EID.MCMTr("Save Game"), function() EID.MCMCompat_isDisplayingEIDTab = ""; return "Loaded savegame data:" end)
MCM.AddText("EID", "Save Game", function() return EID.SaveGame.Platform .." User: "..EID.SaveGame.UserName.." ("..EID.SaveGame.UserID..")" end) MCM.AddText("EID", EID.MCMTr("Save Game"), function() return EID.SaveGame.Platform .." User: "..EID.SaveGame.UserName.." ("..EID.SaveGame.UserID..")" end)
MCM.AddSpace("EID", "Save Game") MCM.AddSpace("EID", EID.MCMTr("Save Game"))
-- Show Item needs Collection -- Show Item needs Collection
MCM.AddSetting( MCM.AddSetting(
"EID", "EID",
"Save Game", EID.MCMTr("Save Game"),
{ {
Type = ModConfigMenu.OptionType.NUMBER, Type = ModConfigMenu.OptionType.NUMBER,
CurrentSetting = function() CurrentSetting = function()
@@ -849,9 +987,9 @@ if MCMLoaded then
Maximum = 3, Maximum = 3,
Display = function() Display = function()
if EID.Config["SaveGameNumber"] == 0 then if EID.Config["SaveGameNumber"] == 0 then
return "Current Save Game: 0 (Deactivated)" return EID.MCMTr("Current Save Game") .. ": 0 (Deactivated)"
end end
return "Current Save Game: " .. EID.Config["SaveGameNumber"] return EID.MCMTr("Current Save Game") .. ": " .. EID.Config["SaveGameNumber"]
end, end,
OnChange = function(currentNum) OnChange = function(currentNum)
EID.MCM_OptionChanged = true EID.MCM_OptionChanged = true
@@ -860,21 +998,21 @@ if MCMLoaded then
Info = {"Save game you are currently on. This info needs to be set to get the correct lookup tables."} Info = {"Save game you are currently on. This info needs to be set to get the correct lookup tables."}
} }
) )
MCM.AddText("EID", "Save Game", function() MCM.AddText("EID", EID.MCMTr("Save Game"), function()
if EID.Config["SaveGameNumber"] == 0 then return "" end if EID.Config["SaveGameNumber"] == 0 then return "" end
local count = 0 local count = 0
for k, v in pairs(EID.SaveGame[EID.Config["SaveGameNumber"]].ItemNeedsPickup) do for k, v in pairs(EID.SaveGame[EID.Config["SaveGameNumber"]].ItemNeedsPickup) do
count = count + 1 count = count + 1
end end
return "Collection page items missing: "..count end) return "Collection page items missing: "..count end)
MCM.AddSpace("EID", "Save Game") MCM.AddSpace("EID", EID.MCMTr("Save Game"))
EID:AddBooleanSetting("Save Game", "HideUncollectedItemDescriptions", "Hide uncollected items", { infoText = "Hide descriptions of items that are not yet on the collection page."}) EID:AddBooleanSetting("Save Game", "HideUncollectedItemDescriptions", "Hide uncollected items", { infoText = "Hide descriptions of items that are not yet on the collection page."})
EID:AddBooleanSetting("Save Game", "ItemCollectionIndicator", "Highlight uncollected items") EID:AddBooleanSetting("Save Game", "ItemCollectionIndicator", "Highlight uncollected items")
-- Needs collection Color -- Needs collection Color
MCM.AddSetting( MCM.AddSetting(
"EID", "EID",
"Save Game", EID.MCMTr("Save Game"),
{ {
Type = ModConfigMenu.OptionType.NUMBER, Type = ModConfigMenu.OptionType.NUMBER,
CurrentSetting = function() CurrentSetting = function()
@@ -884,7 +1022,7 @@ if MCMLoaded then
Maximum = 1000, Maximum = 1000,
Display = function() Display = function()
if EID.Config["ItemCollectionColor"] == nil then EID.Config["ItemCollectionColor"] = EID.DefaultConfig["ItemCollectionColor"] end if EID.Config["ItemCollectionColor"] == nil then EID.Config["ItemCollectionColor"] = EID.DefaultConfig["ItemCollectionColor"] end
return "Collection Page Highlight color: " .. string.gsub(EID.Config["ItemCollectionColor"], "Color", "").. " ("..AnIndexOf(colorNameArray, EID.Config["ItemCollectionColor"]).."/"..#colorNameArray..")" return EID.MCMTr("Collection Page Highlight color") .. ": " .. string.gsub(EID.Config["ItemCollectionColor"], "Color", "").. " ("..AnIndexOf(colorNameArray, EID.Config["ItemCollectionColor"]).."/"..#colorNameArray..")"
end, end,
OnChange = function(currentNum) OnChange = function(currentNum)
EID.MCM_OptionChanged = true EID.MCM_OptionChanged = true
@@ -896,26 +1034,26 @@ if MCMLoaded then
} }
) )
else else
MCM.AddSpace("EID", "Save Game") MCM.AddSpace("EID", EID.MCMTr("Save Game"))
MCM.AddSpace("EID", "Save Game") MCM.AddSpace("EID", EID.MCMTr("Save Game"))
MCM.AddText("EID", "Save Game", function() EID.MCMCompat_isDisplayingEIDTab = ""; return "To enable savegame related features," end) MCM.AddText("EID", EID.MCMTr("Save Game"), function() EID.MCMCompat_isDisplayingEIDTab = ""; return "To enable savegame related features," end)
MCM.AddText("EID", "Save Game", "please run \"scripts\\savegame_reader.exe\"") MCM.AddText("EID", EID.MCMTr("Save Game"), "please run \"scripts\\savegame_reader.exe\"")
MCM.AddText("EID", "Save Game", "found in the EID mod folder.") MCM.AddText("EID", EID.MCMTr("Save Game"), "found in the EID mod folder.")
end end
end -- if not repentogon end -- if not repentogon
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
-----------------------------Mouse Controls-------------------------------- -----------------------------Mouse Controls--------------------------------
MCM.AddText("EID", "Mouse", function() EID.MCMCompat_isDisplayingEIDTab = "Mouse"; return "! THIS FEATURE IS IN EARLY DEVELOPMENT !" end ) MCM.AddText("EID", EID.MCMTr("Mouse"), function() EID.MCMCompat_isDisplayingEIDTab = "Mouse"; return "! THIS FEATURE IS IN EARLY DEVELOPMENT !" end )
MCM.AddSpace("EID", "Mouse") MCM.AddSpace("EID", EID.MCMTr("Mouse"))
MCM.AddText("EID", "Mouse", "MCM -> General -> Hud Offset") MCM.AddText("EID", EID.MCMTr("Mouse"), "MCM -> General -> Hud Offset")
MCM.AddText("EID", "Mouse", "to adjust Hud Offset") MCM.AddText("EID", EID.MCMTr("Mouse"), "to adjust Hud Offset")
MCM.AddSpace("EID", "Mouse") MCM.AddSpace("EID", EID.MCMTr("Mouse"))
-- Enable mouse controls -- Enable mouse controls
MCM.AddSetting( MCM.AddSetting(
"EID", "EID",
"Mouse", EID.MCMTr("Mouse"),
{ {
Type = ModConfigMenu.OptionType.BOOLEAN, Type = ModConfigMenu.OptionType.BOOLEAN,
CurrentSetting = function() CurrentSetting = function()
@@ -937,7 +1075,7 @@ if MCMLoaded then
-- Enable mouse controls -- Enable mouse controls
MCM.AddSetting( MCM.AddSetting(
"EID", "EID",
"Mouse", EID.MCMTr("Mouse"),
{ {
Type = ModConfigMenu.OptionType.BOOLEAN, Type = ModConfigMenu.OptionType.BOOLEAN,
CurrentSetting = function() CurrentSetting = function()
@@ -962,7 +1100,7 @@ if MCMLoaded then
-- Text Color -- Text Color
MCM.AddSetting( MCM.AddSetting(
"EID", "EID",
"Colors", EID.MCMTr("Colors"),
{ {
Type = ModConfigMenu.OptionType.NUMBER, Type = ModConfigMenu.OptionType.NUMBER,
CurrentSetting = function() CurrentSetting = function()
@@ -987,7 +1125,7 @@ if MCMLoaded then
-- Name Color -- Name Color
MCM.AddSetting( MCM.AddSetting(
"EID", "EID",
"Colors", EID.MCMTr("Colors"),
{ {
Type = ModConfigMenu.OptionType.NUMBER, Type = ModConfigMenu.OptionType.NUMBER,
CurrentSetting = function() CurrentSetting = function()
@@ -1011,7 +1149,7 @@ if MCMLoaded then
-- Transform Color -- Transform Color
MCM.AddSetting( MCM.AddSetting(
"EID", "EID",
"Colors", EID.MCMTr("Colors"),
{ {
Type = ModConfigMenu.OptionType.NUMBER, Type = ModConfigMenu.OptionType.NUMBER,
CurrentSetting = function() CurrentSetting = function()
@@ -1035,7 +1173,7 @@ if MCMLoaded then
-- Error Color -- Error Color
MCM.AddSetting( MCM.AddSetting(
"EID", "EID",
"Colors", EID.MCMTr("Colors"),
{ {
Type = ModConfigMenu.OptionType.NUMBER, Type = ModConfigMenu.OptionType.NUMBER,
CurrentSetting = function() CurrentSetting = function()
@@ -1059,7 +1197,7 @@ if MCMLoaded then
-- Mod indicator Color -- Mod indicator Color
MCM.AddSetting( MCM.AddSetting(
"EID", "EID",
"Colors", EID.MCMTr("Colors"),
{ {
Type = ModConfigMenu.OptionType.NUMBER, Type = ModConfigMenu.OptionType.NUMBER,
CurrentSetting = function() CurrentSetting = function()
@@ -1084,7 +1222,7 @@ if MCMLoaded then
if EID.isRepentance then if EID.isRepentance then
MCM.AddSetting( MCM.AddSetting(
"EID", "EID",
"Colors", EID.MCMTr("Colors"),
{ {
Type = ModConfigMenu.OptionType.NUMBER, Type = ModConfigMenu.OptionType.NUMBER,
CurrentSetting = function() CurrentSetting = function()
@@ -1107,7 +1245,7 @@ if MCMLoaded then
) )
end end
MCM.AddSpace("EID", "Colors") MCM.AddSpace("EID", EID.MCMTr("Colors"))
-- Color blind -- Color blind
local colorBlindModes = {[0] = "Off", "Protanopia (red weak)", "Deuteranopia (green weak)", "Tritanopia (blue weak)"} local colorBlindModes = {[0] = "Off", "Protanopia (red weak)", "Deuteranopia (green weak)", "Tritanopia (blue weak)"}
EID:AddNumberSetting("Colors", "ColorblindMode", "Colorblind Mode", 0, #colorBlindModes, {displayTable = colorBlindModes, infoText = "Changes some colors to make the mod more colorblind-friendly."}) EID:AddNumberSetting("Colors", "ColorblindMode", "Colorblind Mode", 0, #colorBlindModes, {displayTable = colorBlindModes, infoText = "Changes some colors to make the mod more colorblind-friendly."})
+68
View File
@@ -0,0 +1,68 @@
-- Personal fork: synergy notes for owned items (Russian).
-- Data comes prebuilt from dead_god_items.json, see
-- EID-localization-audit/build_synergy_table.py and features/eid_synergy_data.lua.
-- When the player owns item A and looks at item B that synergizes with A,
-- the relevant note is appended to B's description.
local MAX_SYNERGY_LINES = 3
local function synergyTableFor(desc)
if EID.SynergyDataRU == nil then return nil end
if desc.ObjType ~= EntityType.ENTITY_PICKUP then return nil end
if desc.ObjVariant == PickupVariant.PICKUP_COLLECTIBLE then
return EID.SynergyDataRU.coll[desc.ObjSubType]
elseif desc.ObjVariant == PickupVariant.PICKUP_TRINKET then
return EID.SynergyDataRU.trink[desc.ObjSubType]
end
return nil
end
local function anyPartnerOwned(entry)
for _, partner in ipairs(entry.partners) do
if EID:PlayersHaveCollectible(partner) then
return true
end
end
return false
end
local function synergyCondition(desc)
if EID:getLanguage() ~= "ru" then return false end
if EID.Config["DisplaySynergies"] == false then return false end
local list = synergyTableFor(desc)
if not list then return false end
for _, entry in ipairs(list) do
if anyPartnerOwned(entry) then
return true
end
end
return false
end
local function synergyCallback(desc)
local list = synergyTableFor(desc)
if not list then return desc end
-- collect (partner, text) pairs for owned partners only
local lines = {}
for _, entry in ipairs(list) do
for _, partner in ipairs(entry.partners) do
if EID:PlayersHaveCollectible(partner) then
lines[#lines + 1] = { partner = partner, text = entry.text }
break
end
end
end
if #lines == 0 then return desc end
desc.Description = desc.Description .. "{{CR}}#Синергии:"
for i = 1, math.min(#lines, MAX_SYNERGY_LINES) do
-- NOTE: {{CollectibleID}} already renders the item's icon AND its name,
-- so no explicit name is added here
desc.Description = desc.Description .. "#{{Collectible" .. lines[i].partner .. "}}: " .. lines[i].text
end
if #lines > MAX_SYNERGY_LINES then
desc.Description = desc.Description .. "#…и ещё синергий: " .. (#lines - MAX_SYNERGY_LINES)
end
return desc
end
EID:addDescriptionModifier("EID Personal Synergy Notes", synergyCondition, synergyCallback)
File diff suppressed because it is too large. Load diff
+31 -1
View File
@@ -126,6 +126,8 @@ else
end end
require("features.eid_conditionals") require("features.eid_conditionals")
require("features.eid_modifiers") require("features.eid_modifiers")
require("features.eid_synergy_data")
require("features.eid_synergies")
require("features.eid_holdmapdesc") require("features.eid_holdmapdesc")
require("features.eid_itemprediction") require("features.eid_itemprediction")
@@ -1296,7 +1298,14 @@ EID.OptionChanged = false
EID.bagPlayer = nil EID.bagPlayer = nil
--- Render function that runs every frame and handles the main EID rendering logic. --- Render function that runs every frame and handles the main EID rendering logic.
function EID:OnRender() -- Personal fork: render fault containment. The original OnRender body lives in
-- OnRender_Inner; the wrapper below converts a crash into an on-screen notice
-- instead of silently killing all EID output for the rest of the session.
EID.RenderErrorCount = 0
EID.RenderDisabled = false
EID.RenderErrorMsg = nil
function EID:OnRender_Inner()
-- Increases by 60 per second, ignores pauses -- Increases by 60 per second, ignores pauses
EID.GameRenderCount = EID.GameRenderCount + 1 EID.GameRenderCount = EID.GameRenderCount + 1
EID.OptionChanged = EID.MCM_OptionChanged EID.OptionChanged = EID.MCM_OptionChanged
@@ -1669,6 +1678,27 @@ function EID:OnRender()
EID:printDescriptions() EID:printDescriptions()
end end
function EID:OnRender(...)
if EID.RenderDisabled then
pcall(Isaac.RenderText, "EID disabled after repeated render errors; restart the run", 60, 60, 1, 0, 0, 1)
return
end
local ok, err = pcall(EID.OnRender_Inner, ...)
if ok then
EID.RenderErrorCount = 0
EID.RenderErrorMsg = nil
else
EID.RenderErrorCount = EID.RenderErrorCount + 1
EID.RenderErrorMsg = tostring(err)
EID:WriteErrorMsg("Render error #" .. EID.RenderErrorCount .. ": " .. EID.RenderErrorMsg)
pcall(Isaac.RenderText, "EID render error (see log): " .. string.sub(EID.RenderErrorMsg, 1, 90), 60, 60, 1, 0, 0, 1)
if EID.RenderErrorCount >= 5 then
EID.RenderDisabled = true
EID:WriteErrorMsg("EID rendering disabled after 5 consecutive errors")
end
end
end
EID:AddCallback(ModCallbacks.MC_POST_RENDER, EID.OnRender) EID:AddCallback(ModCallbacks.MC_POST_RENDER, EID.OnRender)
--- Add active item progress to the player's transformation progress. --- Add active item progress to the player's transformation progress.
-28
View File
@@ -1,28 +0,0 @@
Changing a character:
1. open "PixelMplus10-Regular.sfd" in FontForge
2. edit the chars to your liking
3. Create .ttf file
4. install created .ttf file
5. open BMFont
6. set the settings / enable new characters
7. Export as .fnt file
-----Font Settings:
Font: PixelMplus10
Charset: unicode
Size: 10px
Height: 100%
Match char height: ON
Outline thickness: 1
Everything else: OFF
-----Export Options:
Spacing: A= 1 ; B = 1
Equalize the cell heights: ON
Width: 1024
Height: 1024
Bit depth: 32
Chnl A: Outline
Chnl RGB: Glyph
Font descriptor: Binary
Compression: Deflate
File diff suppressed because it is too large. Load diff
Binary file not shown.