Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e864c137c5 | ||
|
|
c647bb03ca | ||
|
|
3b45af3a10 | ||
|
|
a0ef98b7ce | ||
|
|
38dd07e082 | ||
|
|
dccdcc15dd | ||
|
|
c2dc476169 | ||
|
|
bb94e101a3 | ||
|
|
0cf767bc51 | ||
|
|
b11db096bf | ||
|
|
a3aecf1bed | ||
|
|
e7f0b215e7 | ||
|
|
c33fd329a7 | ||
|
|
dc3d7c944a | ||
|
|
5e7b3d92c1 | ||
|
|
59a71e0cc3 |
No files matched your search
@@ -831,7 +831,7 @@ EID.descriptions[languageCode].trinkets={
|
||||
{"92", "Cracked Crown", "↑ {{Tears}} x0.8 Tear delay#↑ x1.33 Stat multiplier for the stats that are above 1 {{Speed}} speed, 3.5 {{Damage}} damage, 23.75 {{Range}} range, 1 {{Shotspeed}} shot speed"}, -- Cracked Crown
|
||||
{"93", "Used Diaper", "15% chance per room for all fly enemies to become friendly"}, -- Used Diaper
|
||||
{"94", "Fish Tail", "Doubles all blue fly / spider spawns"}, -- Fish Tail
|
||||
{"95", "Black Tooth", "{{Poison}} 3% chance to shoot poison tooth tears"}, -- Black Tooth
|
||||
{"95", "Black Tooth", "{{Poison}} 3% chance to shoot poison tooth tears#The tooth deals 2x Isaac's damage"}, -- Black Tooth
|
||||
{"96", "Ouroboros Worm", "↑ {{Range}} +4 Range#↑ +2 Tear height#Spectral tears#Chance for homing tears#{{Luck}} 100% chance at 9 luck#Isaac's tears move quickly in a spiral pattern"}, -- Ouroboros Worm
|
||||
{"97", "Tonsil", "Taking damage 12-20 times spawns a projectile blocking familiar#Caps at 2 familiars"}, -- Tonsil
|
||||
{"98", "Nose Goblin", "10% chance to shoot homing sticky tears#{{Damage}} Boogers deal Isaac's damage once per second#Boogers stick for 60 seconds"}, -- Nose Goblin
|
||||
@@ -1293,6 +1293,7 @@ EID.descriptions[languageCode].ConditionalDescs = {
|
||||
["5.100.81"] = "Characters that can't have Red Hearts get set to 1 Soul/Black Heart", -- Dead Cat
|
||||
["5.100.316"] = "{1} removes the teleportation effect", -- Cursed Eye
|
||||
["5.100.260"] = "Removes the teleportation effect of {1}", -- Black Candle
|
||||
["Void Single Use"] = "Single use items are only activated once", -- Single Use Actives + Void
|
||||
["? Card Single Use"] = "Single use items will disappear after using ? Card", -- Single Use Actives + ? Card
|
||||
["5.300.48"] = "Teleport to I AM ERROR Room#Blank Card and ? Card will be destroyed", -- Blank Card + ? Card
|
||||
["? + Blank Pedestal"] = "Using ? Card with Blank Card teleports you to the I AM ERROR room and destroys both cards", -- Looking at Blank Card with ? Card
|
||||
|
||||
@@ -1292,6 +1292,10 @@ EID.descriptions[languageCode].poopSpells = {
|
||||
{"Fart", "Push nearby enemies and bullets back, and spawn a toxic cloud#{{Warning}} The cloud explodes if it touches fire!"},
|
||||
{"Bomb", "Normal throwable bomb"},
|
||||
{"Explosive Diarrhea", "Isaac quickly spawns 5 lit bombs"},
|
||||
|
||||
--Undetected poop, for Poop API
|
||||
--[Poop name in code] = {Icon, Name, Description}
|
||||
["Unknown"] = {"{{PoopSpell1}}", "Unknown Poop", "The effects of the poop are Unknown"}
|
||||
}
|
||||
|
||||
EID.descriptions[languageCode].itemPoolFor = "Pool for Item:"
|
||||
|
||||
@@ -1087,18 +1087,20 @@ EID.descriptions[languageCode].GlitchedItemText = {
|
||||
|
||||
---------- Misc. Text ----------
|
||||
-- Poop spells
|
||||
EID.descriptions[languageCode].poopSpells = {
|
||||
EID.descriptions[languageCode].poopSpells = { --¿Deberíamos cambiar "Popó" a "Caca"? (Y de paso poner nombres normales para los hechizos)
|
||||
{"Popó", "Popó normal, puede generar recolectables"},
|
||||
{"Mazorqueada", "Genera moscas azules al estar intacta"},
|
||||
{"¡ESTO ARDE!", "Inflige daño por contacto al estar intacta#{{Burning}} Genera fuego al ser destruida"},
|
||||
{"Hice caca seca", "Can deal damage 3 times when thrown#Takes a lot of hits to destroy"},
|
||||
{"Esto está podrido...", "{{Poison}} Genera nubes tóxicas#!!! ¡La nube explotará si entra en contacto con fuego!"},
|
||||
{"", "{{Slow}} Genera creep ralentizante#{{Confusion}} Inflige 10 de daño y confunde a los enemigos"},
|
||||
{"Popó Negra", "{{Slow}} Genera creep ralentizante#{{Confusion}} Inflige 10 de daño y confunde a los enemigos"},
|
||||
{"¡Santa cagada!", "{{Collectible543}} Lanzas una popó blanca con un aura#Al estar dentro del aura, recibes:#↑ {{Damage}} Daño +20%#↑ {{Tears}} Lágrimas +150% #Lágrimas teledirigidas#Posibilidad de bloquear daño"},
|
||||
{"Diarrea", "Dejas un camino de creep#Pararte sobre el creep otorga: #↑ {{Tears}} Más lágrimas#↑ {{Damage}} Más daño#Si el creep toca una popó con efecto especial, adquirirá sus propiedades"},
|
||||
{"Un pedo", "Empuja enemigos y disparos#{{Poison}} Genera una bomba tóxico#!!! ¡La nube explotará si entra en contacto con fuego!"},
|
||||
{"Bomba", "Normal throwable bomb"},
|
||||
{"Diarrea explosiva", "Genera 5 bombas encendidas a tu paso"},
|
||||
|
||||
["Unknown"] = {"{{PoopSpell1}}", "Popó Desconocida", "Los efectos de la popó son desconocidos"}
|
||||
}
|
||||
-- Poop spells end
|
||||
|
||||
|
||||
@@ -509,6 +509,10 @@ EID.UserConfig = {
|
||||
-- REPENTANCE ONLY!!!
|
||||
-- Default = false
|
||||
["SpindownDiceSkipLocked"] = false,
|
||||
-- Show summary list for Glitched Crown, 5 item names are shown first, and press tap to cycle descriptions
|
||||
-- REPENTANCE ONLY!!!
|
||||
-- Default = true
|
||||
["GlitchedCrownSummary"] = true,
|
||||
|
||||
-- Error message displayed when an error occurs
|
||||
-- Default = [Effect not defined]
|
||||
@@ -651,6 +655,7 @@ EID.DefaultConfig = {
|
||||
["SpindownDiceDisplayID"] = false,
|
||||
["SpindownDiceDisplayName"] = false,
|
||||
["SpindownDiceSkipLocked"] = false,
|
||||
["GlitchedCrownSummary"] = true,
|
||||
["SaveGameNumber"] = 0,
|
||||
["HideUncollectedItemDescriptions"] = false,
|
||||
["ItemCollectionIndicator"] = true,
|
||||
|
||||
+57
-16
@@ -279,6 +279,17 @@ function EID:addIcon(shortcut, animationName, animationFrame, width, height, lef
|
||||
EID.InlineIcons[shortcut] = {animationName, animationFrame, width, height, leftOffset, topOffset, spriteObject}
|
||||
end
|
||||
|
||||
-- Adds a custom poop spell to T???'s poop descriptions. This spell should be added with the "Custom Poop API" library to actually appear in-game.
|
||||
-- Token is the name of the spell in the Custom Poop API code. Examples: "CORNY", "BURNING", "BOMB".
|
||||
-- Name is the actual name you want to display. Examples: "Corny Poop", "Burning Poop", "Bomb".
|
||||
-- Icon is the displayed poop icon. Should be a markup.
|
||||
-- Description is the actual description showed to the player. Examples: "Spawns blue flies while intact", "Deals contact damage while intact#Leaves a fire behind when destroyed", "Normal throwable bomb".
|
||||
-- Language is the language you want to add it to. Examples: "en_us", "spa", "ru".
|
||||
-- EXAMPLE: EID:addCustomPoopSpell("MYPOOP", "I Made This Poop", "{{PoopSpell1}}", "Can be throwed to deal damage", "en_us")
|
||||
function EID:addCustomPoopSpell(token, name, icon, description, language)
|
||||
EID.descriptions[language]["poopSpells"][token] = {icon, name, description, EID._currentMod}
|
||||
end
|
||||
|
||||
-- Adds a new color object with the shortcut defined in the "shortcut" variable (e.g. "{{shortcut}}" = your color)
|
||||
-- Shortcuts are case Sensitive! Shortcuts can be overriden with this function to allow for full control over everything
|
||||
-- Define a callback to let it be called when interpreting the color-markup. define a kColor otherwise for a simple color change
|
||||
@@ -905,10 +916,10 @@ end
|
||||
|
||||
-- Searches thru the given string and replaces Iconplaceholders with icons.
|
||||
-- Returns 2 values. the string without the placeholders but with an accurate space between lines. and a table of all Inline Sprites
|
||||
function EID:filterIconMarkup(text)
|
||||
function EID:filterIconMarkup(text, renderBulletPointIcon)
|
||||
local spriteTable = {}
|
||||
for word in string.gmatch(text, "{{.-}}") do
|
||||
local textposition = string.find(text, word)
|
||||
local textposition = string.find(text, word) or 1
|
||||
|
||||
local callback = EID._NextIconModifier
|
||||
EID._NextIconModifier = nil
|
||||
@@ -916,6 +927,12 @@ function EID:filterIconMarkup(text)
|
||||
local lookup = EID:getIcon(word)
|
||||
local preceedingTextWidth = EID:getStrWidth(string.sub(text, 0, textposition - 1)) * EID.Scale
|
||||
|
||||
-- Center the small bullet point icons by adding an extra left offset to them.
|
||||
-- If the icon has a positive left offset, that means the offset is already included in the icon itself and we should not add it again
|
||||
if renderBulletPointIcon and lookup[3] < 11 and (#lookup < 5 or lookup[5] <= 0) then
|
||||
preceedingTextWidth = preceedingTextWidth + math.floor((12 - lookup[3]) / 2) * EID.Scale
|
||||
end
|
||||
|
||||
table.insert(spriteTable, {lookup, preceedingTextWidth, callback})
|
||||
text = string.gsub(text, word, EID:generatePlaceholderString(lookup[3]), 1)
|
||||
end
|
||||
@@ -1166,12 +1183,12 @@ end
|
||||
-- needs to be called in a render Callback
|
||||
-- args: string, Vector(int, int), Vector(float,float), KColor obj, bool
|
||||
-- Returns the last used KColor
|
||||
function EID:renderString(str, position, scale, kcolor)
|
||||
function EID:renderString(str, position, scale, kcolor, renderBulletPointIcon)
|
||||
str = EID:replaceShortMarkupStrings(str)
|
||||
local textPartsTable = EID:filterColorMarkup(str, kcolor)
|
||||
local offsetX = 0
|
||||
for _, textPart in ipairs(textPartsTable) do
|
||||
local strFiltered, spriteTable = EID:filterIconMarkup(textPart[1])
|
||||
local strFiltered, spriteTable = EID:filterIconMarkup(textPart[1], renderBulletPointIcon)
|
||||
EID:renderInlineIcons(spriteTable, position.X + offsetX, position.Y)
|
||||
if strFiltered then -- prevent possible crash when strFiltered is nil
|
||||
EID.font:DrawStringScaledUTF8(strFiltered, position.X + offsetX, position.Y, scale.X, scale.Y, textPart[2], 0, false)
|
||||
@@ -2107,6 +2124,9 @@ function EID:getObjectIcon(descObj)
|
||||
end
|
||||
return EID:createItemIconObject("Pill" .. descObj.ObjSubType)
|
||||
end
|
||||
-- Handle Dice Room Floor
|
||||
elseif descObj.ObjType == 1000 and descObj.ObjVariant == 76 then
|
||||
return EID.InlineIcons["DiceFace" .. descObj.ObjSubType]
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2390,18 +2410,39 @@ end
|
||||
EID.GlitchedCrownCheck = {}
|
||||
-- Watch pedestals for being a Glitched Crown style pedestal that flips between items too quickly to display descriptions for
|
||||
function EID:WatchForGlitchedCrown()
|
||||
if not EID.collectiblesOwned[689] then return end
|
||||
local curRoomIndex = game:GetLevel():GetCurrentRoomDesc().ListIndex
|
||||
EID.GlitchedCrownCheck[curRoomIndex] = EID.GlitchedCrownCheck[curRoomIndex] or {}
|
||||
|
||||
for _, entity in ipairs(Isaac.FindByType(5, 100, -1, true, false)) do
|
||||
-- Use InitSeed and Index to prevent any Diplopia weirdness
|
||||
EID.GlitchedCrownCheck[curRoomIndex][entity.InitSeed..entity.Index] = EID.GlitchedCrownCheck[curRoomIndex][entity.InitSeed..entity.Index] or {}
|
||||
-- Initialize the data about this pedestal showing its current item ID, if necessary
|
||||
-- in order to sort the items displayed, while also trashing items that haven't shown up in a while, keep both "initial frame seen" and "last frame seen"
|
||||
EID.GlitchedCrownCheck[curRoomIndex][entity.InitSeed..entity.Index][entity.SubType] = EID.GlitchedCrownCheck[curRoomIndex][entity.InitSeed..entity.Index][entity.SubType] or {EID.GameUpdateCount, EID.GameUpdateCount}
|
||||
-- update the last frame seen for the pedestal's current collectible ID
|
||||
EID.GlitchedCrownCheck[curRoomIndex][entity.InitSeed..entity.Index][entity.SubType][2] = EID.GameUpdateCount
|
||||
if REPENTOGON then
|
||||
-- In REPENTOGON, always check even without Glitched Crown, allowing to check 5+ Soul of Isaac usage, or Everything Jar
|
||||
local curRoomIndex = game:GetLevel():GetCurrentRoomDesc().ListIndex
|
||||
EID.GlitchedCrownCheck[curRoomIndex] = EID.GlitchedCrownCheck[curRoomIndex] or {}
|
||||
|
||||
for _, entity in ipairs(Isaac.FindByType(5, 100, -1, true, false)) do
|
||||
-- Use InitSeed and Index to prevent any Diplopia weirdness
|
||||
EID.GlitchedCrownCheck[curRoomIndex][entity.InitSeed..entity.Index] = EID.GlitchedCrownCheck[curRoomIndex][entity.InitSeed..entity.Index] or {}
|
||||
local pickup = entity:ToPickup()
|
||||
local cycle = pickup:GetCollectibleCycle()
|
||||
if #cycle > 1 then
|
||||
for i, subType in ipairs(cycle) do
|
||||
EID.GlitchedCrownCheck[curRoomIndex][entity.InitSeed..entity.Index][subType] = EID.GlitchedCrownCheck[curRoomIndex][entity.InitSeed..entity.Index][subType] or {EID.GameUpdateCount + i, EID.GameUpdateCount + i}
|
||||
-- update the last frame seen for the pedestal's current collectible ID
|
||||
EID.GlitchedCrownCheck[curRoomIndex][entity.InitSeed..entity.Index][subType][2] = EID.GameUpdateCount + i
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
if not EID.collectiblesOwned[689] then return end
|
||||
|
||||
local curRoomIndex = game:GetLevel():GetCurrentRoomDesc().ListIndex
|
||||
EID.GlitchedCrownCheck[curRoomIndex] = EID.GlitchedCrownCheck[curRoomIndex] or {}
|
||||
|
||||
for _, entity in ipairs(Isaac.FindByType(5, 100, -1, true, false)) do
|
||||
-- Use InitSeed and Index to prevent any Diplopia weirdness
|
||||
EID.GlitchedCrownCheck[curRoomIndex][entity.InitSeed..entity.Index] = EID.GlitchedCrownCheck[curRoomIndex][entity.InitSeed..entity.Index] or {}
|
||||
-- Initialize the data about this pedestal showing its current item ID, if necessary
|
||||
-- in order to sort the items displayed, while also trashing items that haven't shown up in a while, keep both "initial frame seen" and "last frame seen"
|
||||
EID.GlitchedCrownCheck[curRoomIndex][entity.InitSeed..entity.Index][entity.SubType] = EID.GlitchedCrownCheck[curRoomIndex][entity.InitSeed..entity.Index][entity.SubType] or {EID.GameUpdateCount, EID.GameUpdateCount}
|
||||
-- update the last frame seen for the pedestal's current collectible ID
|
||||
EID.GlitchedCrownCheck[curRoomIndex][entity.InitSeed..entity.Index][entity.SubType][2] = EID.GameUpdateCount
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -47,20 +47,20 @@ end
|
||||
function EID:BoCSGetSearchValue()
|
||||
local s = searchValue
|
||||
for _, callbackData in pairs(Isaac.GetCallbacks("EIDCallbacks.SEARCH_NAME_CONVERSION")) do
|
||||
if callbackData.Param == EID:getLanguage() then
|
||||
local newString = callbackData.Function(callbackData.Mod, callbackData.Param, s)
|
||||
if newString and type(newString) == "string" then
|
||||
s = newString
|
||||
end
|
||||
local newString = callbackData.Function(callbackData.Mod, s)
|
||||
if type(newString) == "string" then
|
||||
s = newString
|
||||
end
|
||||
end
|
||||
return s
|
||||
end
|
||||
|
||||
EID:AddCallback("EIDCallbacks.SEARCH_NAME_CONVERSION", function (_, lang, string)
|
||||
EID:AddCallback("EIDCallbacks.SEARCH_NAME_CONVERSION", function(_, searchString)
|
||||
-- TODO : make english search inside ko_kr language setting (priotity low though)
|
||||
return EID.engKeystrokeToKor(string)
|
||||
end, "ko_kr")
|
||||
if EID:getLanguage() == "ko_kr" then
|
||||
return EID.engKeystrokeToKor(searchString)
|
||||
end
|
||||
end)
|
||||
|
||||
function EID:BoCSGetLocked()
|
||||
return locked
|
||||
|
||||
@@ -327,6 +327,8 @@ EID:AddItemConditional("5.300.48", 286, nil, { lineColor = "ColorSilver" })
|
||||
EID:AddItemConditional(286, "5.300.48", "? + Blank Pedestal") -- ? Card + Blank Card
|
||||
EID:AddSynergyConditional(368, {69, 118, 316, 229, 395, 114, 329}, "Almost No Effect") -- Epiphora + Charge Shots / Ludovico
|
||||
|
||||
EID:AddSynergyConditional({127, 297, 347, 490, 483, 515, 475}, 477, "Void Single Use") -- Void + Single Use Actives
|
||||
if EID.isRepentance then EID:AddSynergyConditional({536, 585, 577, 628, 636}, 477, "Void Single Use") end -- Void + Single Use Actives
|
||||
EID:AddSynergyConditional({127, 297, 347, 490, 483, 515, 475, 536}, "5.300.48", "? Card Single Use") -- ? Card + Single Use Actives
|
||||
if EID.isRepentance then EID:AddSynergyConditional({585, 577, 628, 636}, "5.300.48", "? Card Single Use") end -- ? Card + Single Use Actives
|
||||
|
||||
|
||||
@@ -45,13 +45,14 @@ end
|
||||
|
||||
-- Function for adding text to a pedestal's description when you're playing a specific character
|
||||
-- The character's head icon will be at the start of appended lines
|
||||
-- Optional parameters: replaceText, language, extraTable
|
||||
-- By default, adding a conditional to a base character will also add it to the Tainted version of the character
|
||||
-- Optional parameters: replaceText, language, extraTable, includeTainted
|
||||
-- Example usage: EID:addPlayerCondition(myAngstyItemID, PlayerType.PLAYER_EVE, "Gives Eve extra mascara (2x Damage multiplier)")
|
||||
function EID:addPlayerCondition(ID, playerID, text, replaceText, language, extraTable)
|
||||
function EID:addPlayerCondition(ID, playerID, text, replaceText, language, extraTable, includeTainted)
|
||||
language = language or "en_us"
|
||||
if replaceText then text = {text, replaceText} end
|
||||
local modifierText = newModdedCondition(text, language)
|
||||
EID:AddPlayerConditional(ID, playerID, modifierText, extraTable)
|
||||
EID:AddPlayerConditional(ID, playerID, modifierText, extraTable, includeTainted)
|
||||
end
|
||||
|
||||
-- Shortcut function for tarotClothBuffs, tarotClothBuffsAB, carBattery, abyssSynergies, bookOfBelialBuffs, bingeEaterBuffs
|
||||
|
||||
@@ -635,6 +635,14 @@ EID.InlineIcons = {
|
||||
["MiddleWisp"] = {"Wisps", 1, 10, 9, 0, 2},
|
||||
["OuterWisp"] = {"Wisps", 2, 10, 9, 0, 2},
|
||||
|
||||
-- Dice Faces
|
||||
["DiceFace1"] = {"DiceFaces", 0, 14, 14, 0, -1},
|
||||
["DiceFace2"] = {"DiceFaces", 1, 14, 14, 0, -1},
|
||||
["DiceFace3"] = {"DiceFaces", 2, 14, 14, 0, -1},
|
||||
["DiceFace4"] = {"DiceFaces", 3, 14, 14, 0, -1},
|
||||
["DiceFace5"] = {"DiceFaces", 4, 14, 14, 0, -1},
|
||||
["DiceFace6"] = {"DiceFaces", 5, 14, 14, 0, -1},
|
||||
|
||||
-- Misc
|
||||
["HardMode"] = {"Misc", 0, 16, 12, 0, -2},
|
||||
["GreedMode"] = {"Misc", 1, 16, 12, 0, -2},
|
||||
|
||||
@@ -345,7 +345,7 @@ EID.ItemReminderDescriptionModifier = {
|
||||
},
|
||||
["5.350.32"] = { -- Liberty Cap
|
||||
isHiddenInfo = true,
|
||||
modifierFunction = function(descObj, _)
|
||||
modifierFunction = function(descObj, player)
|
||||
local result = EID:LibertyCapPrediction(player)
|
||||
if result then
|
||||
descObj = EID:ItemReminderReplaceWithResult(descObj, result)
|
||||
@@ -365,7 +365,7 @@ EID.ItemReminderDescriptionModifier = {
|
||||
},
|
||||
["5.350.75"] = { -- 404 Error
|
||||
isHiddenInfo = true,
|
||||
modifierFunction = function(descObj, player)
|
||||
modifierFunction = function(descObj, _)
|
||||
local seed = game:GetLevel():GetCurrentRoom():GetSpawnSeed()
|
||||
local result = EID:RNGNext(seed, 2, 7, 25) % (EID.isRepentance and 189 or 128) + 1
|
||||
descObj = EID:ItemReminderReplaceWithResult(descObj, result, 350)
|
||||
@@ -374,7 +374,7 @@ EID.ItemReminderDescriptionModifier = {
|
||||
},
|
||||
["5.350.132"] = { -- Broken Syringe
|
||||
isHiddenInfo = true,
|
||||
modifierFunction = function(descObj, _)
|
||||
modifierFunction = function(descObj, player)
|
||||
local result = EID:BrokenSyringePrediction(player)
|
||||
if result then
|
||||
descObj = EID:ItemReminderReplaceWithResult(descObj, result)
|
||||
@@ -384,7 +384,7 @@ EID.ItemReminderDescriptionModifier = {
|
||||
},
|
||||
["5.350.153"] = { -- Mom's Lock
|
||||
isHiddenInfo = true,
|
||||
modifierFunction = function(descObj, _)
|
||||
modifierFunction = function(descObj, player)
|
||||
local result = EID:MomsLockPrediction(player)
|
||||
if result then
|
||||
descObj = EID:ItemReminderReplaceWithResult(descObj, result)
|
||||
@@ -600,6 +600,39 @@ function EID:ItemReminderHandlePoopSpells(player)
|
||||
local descsAvailableToRender = numAvailableDescriptionSlots
|
||||
for i = 0, 5 do -- max 6 poop spell slots
|
||||
local nextPoop = player:GetPoopSpell(i)
|
||||
|
||||
--Custom Poop support
|
||||
if CustomPoopAPI then
|
||||
local poopSaveData = CustomPoopAPI.GetPersistentPlayerData(player)
|
||||
local poopKey = poopSaveData.Poops[i + 1]
|
||||
if poopKey == "DIARREAH" then poopKey = "DIARRHEA" end --Typo from Custom Poop API's side
|
||||
|
||||
nextPoop = PoopSpellType["SPELL_"..poopKey] --Yes, this works LOL
|
||||
|
||||
if nextPoop == nil then
|
||||
nextPoop = PoopSpellType.SPELL_NONE --Prevent from rendering normally
|
||||
local customPoop = EID:getDescriptionEntry("poopSpells")[poopKey]
|
||||
|
||||
local ignoreExisting = false
|
||||
if customPoop == nil then --If the poop still doesn't exist, use the unkown one instead
|
||||
customPoop = EID:getDescriptionEntry("poopSpells")["Unknown"] or EID.descriptions["en_us"]["poopSpells"]["Unknown"]
|
||||
ignoreExisting = true
|
||||
end
|
||||
|
||||
if ignoreExisting or not displayedPoopTypes[customPoop] then
|
||||
local poopName = customPoop[2]
|
||||
if customPoop[4] then
|
||||
poopName = poopName .. EID:getModNameString({ ["ModName"] = customPoop[4] })
|
||||
end
|
||||
EID:ItemReminderAddTempDescriptionEntry(customPoop[1], poopName, customPoop[3])
|
||||
|
||||
displayedPoopTypes[customPoop] = true
|
||||
descsAvailableToRender = descsAvailableToRender - 1
|
||||
end
|
||||
end
|
||||
end
|
||||
--End of custom poop support
|
||||
|
||||
if not displayedPoopTypes[nextPoop] then
|
||||
EID:ItemReminderAddTempDescriptionEntry("{{PoopSpell" .. nextPoop .. "}}", poopInfo[nextPoop][1],
|
||||
poopInfo[nextPoop][2])
|
||||
@@ -911,13 +944,18 @@ function EID:ItemReminderGetDescription()
|
||||
|
||||
-- Default: put all descriptions into one long description
|
||||
for _, entry in ipairs(EID.ItemReminderTempDescriptions) do
|
||||
if EID.Config["ShowItemIcon"] then
|
||||
finalHoldMapDesc = finalHoldMapDesc .. entry[1] .. " "
|
||||
end
|
||||
if EID.Config["ShowItemName"] then
|
||||
finalHoldMapDesc = finalHoldMapDesc .. "{{ColorEIDObjName}}" .. entry[2]
|
||||
end
|
||||
local description = entry[3] .. "#"
|
||||
|
||||
if tryTrim then
|
||||
description = EID:ItemReminderTrimBulletPoints(description)
|
||||
end
|
||||
|
||||
finalHoldMapDesc = finalHoldMapDesc .. entry[1] .. " {{ColorEIDObjName}}" .. entry[2] .. "#" .. description
|
||||
finalHoldMapDesc = finalHoldMapDesc .. "#" .. description
|
||||
end
|
||||
|
||||
EID.InsideItemReminder = false
|
||||
|
||||
@@ -447,7 +447,7 @@ local syringeItems = {[0] = 13, 14, 240, 70, 143, 345, 493, 496}
|
||||
local momItems = {[0] = 29, 30, 31, 55, 110, 114, 199, 200, 217, 228, 355, 508, 732}
|
||||
|
||||
function EID:TemporaryEffectPrediction(player, rng, itemTable)
|
||||
local tempItem = itemTable[rng % #itemTable]
|
||||
local tempItem = itemTable[rng % (1 + #itemTable)] -- # operator doesnt account for values assigned to keys (e.g. "[0]=" entries)
|
||||
if player:GetEffects():HasCollectibleEffect(tempItem) then return tempItem else return false end
|
||||
end
|
||||
|
||||
|
||||
@@ -477,6 +477,8 @@ if MCMLoaded then
|
||||
{infoText = "Changes Health Ups and removes healing effect text when playing as a character that can't have red health"})
|
||||
EID:AddBooleanSetting("Display", "DisplayTCainSalvageResults", "Show Tainted Cain Salvage Results",
|
||||
{repOnly = true, infoText = "As Tainted Cain, replaces pedestal descriptions with what they will turn into on touch"})
|
||||
EID:AddBooleanSetting("Display", "GlitchedCrownSummary", "Show Glitched Crown Summary",
|
||||
{repOnly = true, infoText = "With Glitched Crown, show summary list for cycling pedestals"})
|
||||
|
||||
|
||||
--------Obstruction---------
|
||||
|
||||
@@ -989,7 +989,7 @@ if EID.isRepentance then
|
||||
-- Using magic numbers here in case it's slightly faster, and because the callback names give context
|
||||
-- Check Birthright first because it overwrites the description instead of appending to it
|
||||
if descObj.ObjSubType == 619 then table.insert(callbacks, BirthrightCallback) end
|
||||
if EID.collectiblesOwned[689] then table.insert(callbacks, GlitchedCrownCallback) end
|
||||
if (REPENTOGON or EID.collectiblesOwned[689]) and EID.Config["GlitchedCrownSummary"] then table.insert(callbacks, GlitchedCrownCallback) end
|
||||
|
||||
-- Glowing Hourglass overwrites the description when used three times
|
||||
if REPENTOGON and descObj.ObjSubType == 422 then table.insert(callbacks, GlowingHourglassCallback) end
|
||||
|
||||
@@ -10,8 +10,8 @@ EID.isRepentance = REPENTANCE -- REPENTANCE variable can be altered by any mod,
|
||||
require("eid_config")
|
||||
EID.Config = EID.UserConfig
|
||||
EID.Config.Version = "3.2" -- note: changing this will reset everyone's settings to default!
|
||||
EID.ModVersion = 4.82
|
||||
EID.ModVersionCommit = "a697585"
|
||||
EID.ModVersion = 4.83
|
||||
EID.ModVersionCommit = "c467bb0"
|
||||
EID.DefaultConfig.Version = EID.Config.Version
|
||||
EID.isHidden = false
|
||||
EID.player = nil -- The primary Player Entity of Player 1
|
||||
@@ -728,7 +728,7 @@ function EID:printBulletPoints(description, renderPos)
|
||||
local bpIcon, rejectedIcon = EID:handleBulletpointIcon(lineToPrint)
|
||||
if EID:getIcon(bpIcon) ~= EID.InlineIcons["ERROR"] then
|
||||
lineToPrint = string.gsub(lineToPrint, bpIcon .. " ", "", 1)
|
||||
textColor = EID:renderString(bpIcon, renderPos + Vector(-3 * EID.Scale, 0), textScale , textColor)
|
||||
textColor = EID:renderString(bpIcon, renderPos + Vector(-3 * EID.Scale, 0), textScale , textColor, true)
|
||||
else
|
||||
if rejectedIcon then lineToPrint = string.gsub(lineToPrint, rejectedIcon .. " ", "", 1) end
|
||||
textColor = EID:renderString(bpIcon, renderPos, textScale , textColor)
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ You are currently looking at the version for Afterbirth+ and Repentance.
|
||||
[img]https://i.imgur.com/jrdGbna.png[/img]
|
||||
[url=https://github.com/wofsauge/External-Item-Descriptions/blob/master/CREDITS.md]Check out the credits here[/url]
|
||||
</description>
|
||||
<version>4.82</version>
|
||||
<version>4.83</version>
|
||||
<visibility>Public</visibility>
|
||||
<tag id="Lua"/>
|
||||
<tag id="Items"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<AnimatedActor>
|
||||
<Info CreatedBy="Unknown" CreatedOn="18-Aug-24 00:34:46" Version="203" Fps="30"/>
|
||||
<Info CreatedBy="Unknown" CreatedOn="01.11.2024 20:46:37" Version="204" Fps="30"/>
|
||||
<Content>
|
||||
<Spritesheets>
|
||||
<Spritesheet Path="eid_inline_icons.png" Id="0"/>
|
||||
@@ -739,5 +739,23 @@
|
||||
<NullAnimations/>
|
||||
<Triggers/>
|
||||
</Animation>
|
||||
<Animation Name="DiceFaces" FrameNum="6" Loop="false">
|
||||
<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="0" YCrop="318" Width="14" Height="14" 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="14" YCrop="318" Width="14" Height="14" 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="28" YCrop="318" Width="14" Height="14" 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="42" YCrop="318" Width="14" Height="14" 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="56" YCrop="318" Width="14" Height="14" 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="70" YCrop="318" Width="14" Height="14" 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>
|
||||
</AnimatedActor>
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 48 KiB |
Reference in new issue
Block a user