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
|
{"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
|
{"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
|
{"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
|
{"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
|
{"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
|
{"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.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.316"] = "{1} removes the teleportation effect", -- Cursed Eye
|
||||||
["5.100.260"] = "Removes the teleportation effect of {1}", -- Black Candle
|
["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
|
["? 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
|
["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
|
["? + 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!"},
|
{"Fart", "Push nearby enemies and bullets back, and spawn a toxic cloud#{{Warning}} The cloud explodes if it touches fire!"},
|
||||||
{"Bomb", "Normal throwable bomb"},
|
{"Bomb", "Normal throwable bomb"},
|
||||||
{"Explosive Diarrhea", "Isaac quickly spawns 5 lit bombs"},
|
{"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:"
|
EID.descriptions[languageCode].itemPoolFor = "Pool for Item:"
|
||||||
|
|||||||
@@ -1087,18 +1087,20 @@ EID.descriptions[languageCode].GlitchedItemText = {
|
|||||||
|
|
||||||
---------- Misc. Text ----------
|
---------- Misc. Text ----------
|
||||||
-- Poop spells
|
-- 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"},
|
{"Popó", "Popó normal, puede generar recolectables"},
|
||||||
{"Mazorqueada", "Genera moscas azules al estar intacta"},
|
{"Mazorqueada", "Genera moscas azules al estar intacta"},
|
||||||
{"¡ESTO ARDE!", "Inflige daño por contacto al estar intacta#{{Burning}} Genera fuego al ser destruida"},
|
{"¡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"},
|
{"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!"},
|
{"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"},
|
{"¡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"},
|
{"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!"},
|
{"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"},
|
{"Bomba", "Normal throwable bomb"},
|
||||||
{"Diarrea explosiva", "Genera 5 bombas encendidas a tu paso"},
|
{"Diarrea explosiva", "Genera 5 bombas encendidas a tu paso"},
|
||||||
|
|
||||||
|
["Unknown"] = {"{{PoopSpell1}}", "Popó Desconocida", "Los efectos de la popó son desconocidos"}
|
||||||
}
|
}
|
||||||
-- Poop spells end
|
-- Poop spells end
|
||||||
|
|
||||||
|
|||||||
@@ -509,6 +509,10 @@ EID.UserConfig = {
|
|||||||
-- REPENTANCE ONLY!!!
|
-- REPENTANCE ONLY!!!
|
||||||
-- Default = false
|
-- Default = false
|
||||||
["SpindownDiceSkipLocked"] = 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
|
-- Error message displayed when an error occurs
|
||||||
-- Default = [Effect not defined]
|
-- Default = [Effect not defined]
|
||||||
@@ -651,6 +655,7 @@ EID.DefaultConfig = {
|
|||||||
["SpindownDiceDisplayID"] = false,
|
["SpindownDiceDisplayID"] = false,
|
||||||
["SpindownDiceDisplayName"] = false,
|
["SpindownDiceDisplayName"] = false,
|
||||||
["SpindownDiceSkipLocked"] = false,
|
["SpindownDiceSkipLocked"] = false,
|
||||||
|
["GlitchedCrownSummary"] = true,
|
||||||
["SaveGameNumber"] = 0,
|
["SaveGameNumber"] = 0,
|
||||||
["HideUncollectedItemDescriptions"] = false,
|
["HideUncollectedItemDescriptions"] = false,
|
||||||
["ItemCollectionIndicator"] = true,
|
["ItemCollectionIndicator"] = true,
|
||||||
|
|||||||
+45
-4
@@ -279,6 +279,17 @@ function EID:addIcon(shortcut, animationName, animationFrame, width, height, lef
|
|||||||
EID.InlineIcons[shortcut] = {animationName, animationFrame, width, height, leftOffset, topOffset, spriteObject}
|
EID.InlineIcons[shortcut] = {animationName, animationFrame, width, height, leftOffset, topOffset, spriteObject}
|
||||||
end
|
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)
|
-- 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
|
-- 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
|
-- 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.
|
-- 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
|
-- 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 = {}
|
local spriteTable = {}
|
||||||
for word in string.gmatch(text, "{{.-}}") do
|
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
|
local callback = EID._NextIconModifier
|
||||||
EID._NextIconModifier = nil
|
EID._NextIconModifier = nil
|
||||||
@@ -916,6 +927,12 @@ function EID:filterIconMarkup(text)
|
|||||||
local lookup = EID:getIcon(word)
|
local lookup = EID:getIcon(word)
|
||||||
local preceedingTextWidth = EID:getStrWidth(string.sub(text, 0, textposition - 1)) * EID.Scale
|
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})
|
table.insert(spriteTable, {lookup, preceedingTextWidth, callback})
|
||||||
text = string.gsub(text, word, EID:generatePlaceholderString(lookup[3]), 1)
|
text = string.gsub(text, word, EID:generatePlaceholderString(lookup[3]), 1)
|
||||||
end
|
end
|
||||||
@@ -1166,12 +1183,12 @@ end
|
|||||||
-- needs to be called in a render Callback
|
-- needs to be called in a render Callback
|
||||||
-- args: string, Vector(int, int), Vector(float,float), KColor obj, bool
|
-- args: string, Vector(int, int), Vector(float,float), KColor obj, bool
|
||||||
-- Returns the last used KColor
|
-- Returns the last used KColor
|
||||||
function EID:renderString(str, position, scale, kcolor)
|
function EID:renderString(str, position, scale, kcolor, renderBulletPointIcon)
|
||||||
str = EID:replaceShortMarkupStrings(str)
|
str = EID:replaceShortMarkupStrings(str)
|
||||||
local textPartsTable = EID:filterColorMarkup(str, kcolor)
|
local textPartsTable = EID:filterColorMarkup(str, kcolor)
|
||||||
local offsetX = 0
|
local offsetX = 0
|
||||||
for _, textPart in ipairs(textPartsTable) do
|
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)
|
EID:renderInlineIcons(spriteTable, position.X + offsetX, position.Y)
|
||||||
if strFiltered then -- prevent possible crash when strFiltered is nil
|
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)
|
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
|
end
|
||||||
return EID:createItemIconObject("Pill" .. descObj.ObjSubType)
|
return EID:createItemIconObject("Pill" .. descObj.ObjSubType)
|
||||||
end
|
end
|
||||||
|
-- Handle Dice Room Floor
|
||||||
|
elseif descObj.ObjType == 1000 and descObj.ObjVariant == 76 then
|
||||||
|
return EID.InlineIcons["DiceFace" .. descObj.ObjSubType]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -2390,7 +2410,27 @@ end
|
|||||||
EID.GlitchedCrownCheck = {}
|
EID.GlitchedCrownCheck = {}
|
||||||
-- Watch pedestals for being a Glitched Crown style pedestal that flips between items too quickly to display descriptions for
|
-- Watch pedestals for being a Glitched Crown style pedestal that flips between items too quickly to display descriptions for
|
||||||
function EID:WatchForGlitchedCrown()
|
function EID:WatchForGlitchedCrown()
|
||||||
|
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
|
if not EID.collectiblesOwned[689] then return end
|
||||||
|
|
||||||
local curRoomIndex = game:GetLevel():GetCurrentRoomDesc().ListIndex
|
local curRoomIndex = game:GetLevel():GetCurrentRoomDesc().ListIndex
|
||||||
EID.GlitchedCrownCheck[curRoomIndex] = EID.GlitchedCrownCheck[curRoomIndex] or {}
|
EID.GlitchedCrownCheck[curRoomIndex] = EID.GlitchedCrownCheck[curRoomIndex] or {}
|
||||||
|
|
||||||
@@ -2403,6 +2443,7 @@ function EID:WatchForGlitchedCrown()
|
|||||||
-- update the last frame seen for the pedestal's current collectible ID
|
-- update the last frame seen for the pedestal's current collectible ID
|
||||||
EID.GlitchedCrownCheck[curRoomIndex][entity.InitSeed..entity.Index][entity.SubType][2] = EID.GameUpdateCount
|
EID.GlitchedCrownCheck[curRoomIndex][entity.InitSeed..entity.Index][entity.SubType][2] = EID.GameUpdateCount
|
||||||
end
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Replaces Variable placeholders in string with a given value
|
-- Replaces Variable placeholders in string with a given value
|
||||||
|
|||||||
@@ -47,20 +47,20 @@ end
|
|||||||
function EID:BoCSGetSearchValue()
|
function EID:BoCSGetSearchValue()
|
||||||
local s = searchValue
|
local s = searchValue
|
||||||
for _, callbackData in pairs(Isaac.GetCallbacks("EIDCallbacks.SEARCH_NAME_CONVERSION")) do
|
for _, callbackData in pairs(Isaac.GetCallbacks("EIDCallbacks.SEARCH_NAME_CONVERSION")) do
|
||||||
if callbackData.Param == EID:getLanguage() then
|
local newString = callbackData.Function(callbackData.Mod, s)
|
||||||
local newString = callbackData.Function(callbackData.Mod, callbackData.Param, s)
|
if type(newString) == "string" then
|
||||||
if newString and type(newString) == "string" then
|
|
||||||
s = newString
|
s = newString
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
return s
|
return s
|
||||||
end
|
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)
|
-- TODO : make english search inside ko_kr language setting (priotity low though)
|
||||||
return EID.engKeystrokeToKor(string)
|
if EID:getLanguage() == "ko_kr" then
|
||||||
end, "ko_kr")
|
return EID.engKeystrokeToKor(searchString)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
function EID:BoCSGetLocked()
|
function EID:BoCSGetLocked()
|
||||||
return locked
|
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: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(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
|
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
|
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
|
-- 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
|
-- 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)")
|
-- 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"
|
language = language or "en_us"
|
||||||
if replaceText then text = {text, replaceText} end
|
if replaceText then text = {text, replaceText} end
|
||||||
local modifierText = newModdedCondition(text, language)
|
local modifierText = newModdedCondition(text, language)
|
||||||
EID:AddPlayerConditional(ID, playerID, modifierText, extraTable)
|
EID:AddPlayerConditional(ID, playerID, modifierText, extraTable, includeTainted)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Shortcut function for tarotClothBuffs, tarotClothBuffsAB, carBattery, abyssSynergies, bookOfBelialBuffs, bingeEaterBuffs
|
-- Shortcut function for tarotClothBuffs, tarotClothBuffsAB, carBattery, abyssSynergies, bookOfBelialBuffs, bingeEaterBuffs
|
||||||
|
|||||||
@@ -635,6 +635,14 @@ EID.InlineIcons = {
|
|||||||
["MiddleWisp"] = {"Wisps", 1, 10, 9, 0, 2},
|
["MiddleWisp"] = {"Wisps", 1, 10, 9, 0, 2},
|
||||||
["OuterWisp"] = {"Wisps", 2, 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
|
-- 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},
|
||||||
|
|||||||
@@ -345,7 +345,7 @@ EID.ItemReminderDescriptionModifier = {
|
|||||||
},
|
},
|
||||||
["5.350.32"] = { -- Liberty Cap
|
["5.350.32"] = { -- Liberty Cap
|
||||||
isHiddenInfo = true,
|
isHiddenInfo = true,
|
||||||
modifierFunction = function(descObj, _)
|
modifierFunction = function(descObj, player)
|
||||||
local result = EID:LibertyCapPrediction(player)
|
local result = EID:LibertyCapPrediction(player)
|
||||||
if result then
|
if result then
|
||||||
descObj = EID:ItemReminderReplaceWithResult(descObj, result)
|
descObj = EID:ItemReminderReplaceWithResult(descObj, result)
|
||||||
@@ -365,7 +365,7 @@ EID.ItemReminderDescriptionModifier = {
|
|||||||
},
|
},
|
||||||
["5.350.75"] = { -- 404 Error
|
["5.350.75"] = { -- 404 Error
|
||||||
isHiddenInfo = true,
|
isHiddenInfo = true,
|
||||||
modifierFunction = function(descObj, player)
|
modifierFunction = function(descObj, _)
|
||||||
local seed = game:GetLevel():GetCurrentRoom():GetSpawnSeed()
|
local seed = game:GetLevel():GetCurrentRoom():GetSpawnSeed()
|
||||||
local result = EID:RNGNext(seed, 2, 7, 25) % (EID.isRepentance and 189 or 128) + 1
|
local result = EID:RNGNext(seed, 2, 7, 25) % (EID.isRepentance and 189 or 128) + 1
|
||||||
descObj = EID:ItemReminderReplaceWithResult(descObj, result, 350)
|
descObj = EID:ItemReminderReplaceWithResult(descObj, result, 350)
|
||||||
@@ -374,7 +374,7 @@ EID.ItemReminderDescriptionModifier = {
|
|||||||
},
|
},
|
||||||
["5.350.132"] = { -- Broken Syringe
|
["5.350.132"] = { -- Broken Syringe
|
||||||
isHiddenInfo = true,
|
isHiddenInfo = true,
|
||||||
modifierFunction = function(descObj, _)
|
modifierFunction = function(descObj, player)
|
||||||
local result = EID:BrokenSyringePrediction(player)
|
local result = EID:BrokenSyringePrediction(player)
|
||||||
if result then
|
if result then
|
||||||
descObj = EID:ItemReminderReplaceWithResult(descObj, result)
|
descObj = EID:ItemReminderReplaceWithResult(descObj, result)
|
||||||
@@ -384,7 +384,7 @@ EID.ItemReminderDescriptionModifier = {
|
|||||||
},
|
},
|
||||||
["5.350.153"] = { -- Mom's Lock
|
["5.350.153"] = { -- Mom's Lock
|
||||||
isHiddenInfo = true,
|
isHiddenInfo = true,
|
||||||
modifierFunction = function(descObj, _)
|
modifierFunction = function(descObj, player)
|
||||||
local result = EID:MomsLockPrediction(player)
|
local result = EID:MomsLockPrediction(player)
|
||||||
if result then
|
if result then
|
||||||
descObj = EID:ItemReminderReplaceWithResult(descObj, result)
|
descObj = EID:ItemReminderReplaceWithResult(descObj, result)
|
||||||
@@ -600,6 +600,39 @@ function EID:ItemReminderHandlePoopSpells(player)
|
|||||||
local descsAvailableToRender = numAvailableDescriptionSlots
|
local descsAvailableToRender = numAvailableDescriptionSlots
|
||||||
for i = 0, 5 do -- max 6 poop spell slots
|
for i = 0, 5 do -- max 6 poop spell slots
|
||||||
local nextPoop = player:GetPoopSpell(i)
|
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
|
if not displayedPoopTypes[nextPoop] then
|
||||||
EID:ItemReminderAddTempDescriptionEntry("{{PoopSpell" .. nextPoop .. "}}", poopInfo[nextPoop][1],
|
EID:ItemReminderAddTempDescriptionEntry("{{PoopSpell" .. nextPoop .. "}}", poopInfo[nextPoop][1],
|
||||||
poopInfo[nextPoop][2])
|
poopInfo[nextPoop][2])
|
||||||
@@ -911,13 +944,18 @@ function EID:ItemReminderGetDescription()
|
|||||||
|
|
||||||
-- Default: put all descriptions into one long description
|
-- Default: put all descriptions into one long description
|
||||||
for _, entry in ipairs(EID.ItemReminderTempDescriptions) do
|
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] .. "#"
|
local description = entry[3] .. "#"
|
||||||
|
|
||||||
if tryTrim then
|
if tryTrim then
|
||||||
description = EID:ItemReminderTrimBulletPoints(description)
|
description = EID:ItemReminderTrimBulletPoints(description)
|
||||||
end
|
end
|
||||||
|
finalHoldMapDesc = finalHoldMapDesc .. "#" .. description
|
||||||
finalHoldMapDesc = finalHoldMapDesc .. entry[1] .. " {{ColorEIDObjName}}" .. entry[2] .. "#" .. description
|
|
||||||
end
|
end
|
||||||
|
|
||||||
EID.InsideItemReminder = false
|
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}
|
local momItems = {[0] = 29, 30, 31, 55, 110, 114, 199, 200, 217, 228, 355, 508, 732}
|
||||||
|
|
||||||
function EID:TemporaryEffectPrediction(player, rng, itemTable)
|
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
|
if player:GetEffects():HasCollectibleEffect(tempItem) then return tempItem else return false end
|
||||||
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"})
|
{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",
|
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"})
|
{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---------
|
--------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
|
-- 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 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
|
-- Glowing Hourglass overwrites the description when used three times
|
||||||
if REPENTOGON and descObj.ObjSubType == 422 then table.insert(callbacks, GlowingHourglassCallback) end
|
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")
|
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.82
|
EID.ModVersion = 4.83
|
||||||
EID.ModVersionCommit = "a697585"
|
EID.ModVersionCommit = "c467bb0"
|
||||||
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
|
||||||
@@ -728,7 +728,7 @@ function EID:printBulletPoints(description, renderPos)
|
|||||||
local bpIcon, rejectedIcon = EID:handleBulletpointIcon(lineToPrint)
|
local bpIcon, rejectedIcon = EID:handleBulletpointIcon(lineToPrint)
|
||||||
if EID:getIcon(bpIcon) ~= EID.InlineIcons["ERROR"] then
|
if EID:getIcon(bpIcon) ~= EID.InlineIcons["ERROR"] then
|
||||||
lineToPrint = string.gsub(lineToPrint, bpIcon .. " ", "", 1)
|
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
|
else
|
||||||
if rejectedIcon then lineToPrint = string.gsub(lineToPrint, rejectedIcon .. " ", "", 1) end
|
if rejectedIcon then lineToPrint = string.gsub(lineToPrint, rejectedIcon .. " ", "", 1) end
|
||||||
textColor = EID:renderString(bpIcon, renderPos, textScale , textColor)
|
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]
|
[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.82</version>
|
<version>4.83</version>
|
||||||
<visibility>Public</visibility>
|
<visibility>Public</visibility>
|
||||||
<tag id="Lua"/>
|
<tag id="Lua"/>
|
||||||
<tag id="Items"/>
|
<tag id="Items"/>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<AnimatedActor>
|
<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>
|
<Content>
|
||||||
<Spritesheets>
|
<Spritesheets>
|
||||||
<Spritesheet Path="eid_inline_icons.png" Id="0"/>
|
<Spritesheet Path="eid_inline_icons.png" Id="0"/>
|
||||||
@@ -739,5 +739,23 @@
|
|||||||
<NullAnimations/>
|
<NullAnimations/>
|
||||||
<Triggers/>
|
<Triggers/>
|
||||||
</Animation>
|
</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>
|
</Animations>
|
||||||
</AnimatedActor>
|
</AnimatedActor>
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 48 KiB |
Reference in new issue
Block a user