Add golden trinket additive modifier
This commit is contained in:
1 parent
46f9790ef4
commit
acdcdcdd08
2 files changed
+33
-1
No files matched your search
@@ -93,6 +93,7 @@ local dynamicSpriteCache = {} -- used to store sprite objects of collectible ico
|
||||
---@field findReplace boolean? @If true, the text is replaced
|
||||
---@field fullReplace boolean? @If true, description is fully replaced
|
||||
---@field goldenOnly boolean? @If true, the description is modified only when the trinket is golden
|
||||
---@field additions number? @Add a value to the number in the text, similar to multiplier. Expects a table of 3 values, 1: double, 2: triple, 3: quadruple effect
|
||||
|
||||
---@class EID_Icon
|
||||
---@field [1] string @Animation name
|
||||
@@ -209,6 +210,31 @@ function EID:addGoldenTrinketMetadata(id, appendText, numbersToMultiply, maxMult
|
||||
EID.descriptions[language].goldenTrinketEffects[id] = { appendText[1], appendText[1], appendText[2] or appendText[1] }
|
||||
end
|
||||
end
|
||||
---Adds information about appending text and adding to numbers in a modded trinket's Golden/Mom's Box description. All three variables are optional, set to ""/0 or nil to not include them
|
||||
---@param appendText? string | string[] @Text to be appended onto the description. Can be one string, or a table of two strings; one for doubling and one for tripling
|
||||
---@param numbersToChange? number | number[] @The number inside the text that gets added towards. can be one number, or a table of numbers
|
||||
---@param additiveValues? number @Table of values that should be added to the number, if its doubled, tripled, or quadrupled
|
||||
-- Example: My modded trinket gives +5 range and when tripled, adds homing instead of tripling the range boost:
|
||||
--- ```lua
|
||||
--- EID:addGoldenTrinketMetadataAdditive(Isaac.GetTrinketIdByName("Cool Trinket"), {"", "Homing tears"}, 5, {1,2,3})
|
||||
--- ```
|
||||
|
||||
function EID:addGoldenTrinketMetadataAdditive(id, appendText, numbersToChange, additiveValues, language)
|
||||
language = language or "en_us"
|
||||
|
||||
if appendText == "" then appendText = nil
|
||||
elseif type(appendText) == "string" then appendText = {appendText} end
|
||||
|
||||
if numbersToChange == 0 then numbersToChange = nil
|
||||
elseif type(numbersToChange) == "number" then numbersToChange = {numbersToChange} end
|
||||
|
||||
additiveValues = type(additiveValues) == "number" and {additiveValues, additiveValues, additiveValues} or additiveValues or {1, 2, 3}
|
||||
EID.GoldenTrinketData[id] = {t = numbersToChange, additions = additiveValues, mults = {1,1,1}, append = appendText and true}
|
||||
if appendText then
|
||||
EID:CreateDescriptionTableIfMissing("goldenTrinketEffects", language)
|
||||
EID.descriptions[language].goldenTrinketEffects[id] = { appendText[1], appendText[1], appendText[2] or appendText[1] }
|
||||
end
|
||||
end
|
||||
|
||||
---@see EID_GoldenTrinketData
|
||||
---Add a fully custom data table to the table of Golden Trinket effects.
|
||||
|
||||
@@ -580,6 +580,12 @@ if EID.isRepentance then
|
||||
else multiplier = data.mults[1] end
|
||||
elseif data.mult and ((isGolden and hasBox) or data.mult < 2) then multiplier = data.mult end
|
||||
|
||||
--custom additions table (manually defined)
|
||||
local addition = 0
|
||||
if data.additions then
|
||||
addition = data.additions[textChoice]
|
||||
end
|
||||
|
||||
--replacing numeric text based on our multiplier
|
||||
if (data.t) then
|
||||
for _,v in ipairs(data.t) do
|
||||
@@ -592,7 +598,7 @@ if EID.isRepentance then
|
||||
if multiplier == 2 then v = 16.5
|
||||
elseif multiplier == 3 then v = (1/6)*100 end -- convert 17% to 33% or 50%
|
||||
elseif v == 33 and (multiplier == 1.5 or multiplier == 3) then v = (1/3)*100 end -- convert 33% to 50% or 100%
|
||||
return "{{ColorGold}}" .. string.format("%.4g",v*multiplier) .. "{{CR}}"
|
||||
return "{{ColorGold}}" .. string.format("%.4g",v * multiplier + addition) .. "{{CR}}"
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
Reference in new issue
Block a user