Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 18 additions & 13 deletions src/Classes/Item.lua
Original file line number Diff line number Diff line change
Expand Up @@ -777,21 +777,25 @@ function ItemClass:ParseRaw(raw, rarity, highQuality)
-- this will need more advanced logic for jewel sockets in items to work properly but could just be removed as items like this was only introduced during development.
if self.base then
if self.base.weapon or self.base.armour then
if #self.runes == 0 then
for i, modLine in ipairs(self.runeModLines) do
local value
local strippedModeLine = modLine.line:gsub("(%d%.?%d*)", function(val)
value = val
local shouldFixRunesOnItem = #self.runes == 0

for i, modLine in ipairs(self.runeModLines) do
local value
local strippedModeLine = modLine.line:gsub("(%d%.?%d*)", function(val)
value = val
return "#"
end)
for name, runeMods in pairs(data.itemMods.Runes) do
local runeValue
local runeStrippedModeLine = (self.base.weapon and runeMods.weapon or runeMods.armour)[1]:gsub("(%d%.?%d*)", function(val)
runeValue = val
return "#"
end)
for name, runeMods in pairs(data.itemMods.Runes) do
local runeValue
local runeStrippedModeLine = (self.base.weapon and runeMods.weapon or runeMods.armour)[1]:gsub("(%d%.?%d*)", function(val)
runeValue = val
return "#"
end)
if strippedModeLine == runeStrippedModeLine then
for i = 1, round(value/runeValue) do
if strippedModeLine == runeStrippedModeLine then
modLine.soulcore = name:match("Soul Core") ~= nil
modLine.runeCount = round(value/runeValue)
if shouldFixRunesOnItem then
for i = 1, modLine.runeCount do
t_insert(self.runes, name)
end
end
Expand Down Expand Up @@ -1617,4 +1621,5 @@ function ItemClass:BuildModList()
else
self.modList = self:BuildModListForSlotNum(baseList)
end
self.socketedSoulCoreEffectModifier = calcLocal(baseList, "SocketedSoulCoreEffect", "INC", 0) / 100
end
3 changes: 2 additions & 1 deletion src/Data/ModCache.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1888,6 +1888,7 @@ c["50% reduced effect of Ignite on you 50% reduced effect of Shock on you"]={{[1
c["50% reduced effect of Shock on you"]={{[1]={flags=0,keywordFlags=0,name="SelfShockEffect",type="INC",value=-50}},nil}
c["500% increased Armour"]={{[1]={flags=0,keywordFlags=0,name="Armour",type="INC",value=500}},nil}
c["500% increased Armour and Energy Shield"]={{[1]={flags=0,keywordFlags=0,name="ArmourAndEnergyShield",type="INC",value=500}},nil}
c["500% increased effect of Socketed Soul Cores"]={{[1]={flags=0,keywordFlags=0,name="SocketedSoulCoreEffect",type="INC",value=500}},nil}
c["53% increased Chaos Damage"]={{[1]={flags=0,keywordFlags=0,name="ChaosDamage",type="INC",value=53}},nil}
c["6 Life Regeneration per second"]={{[1]={flags=0,keywordFlags=0,name="LifeRegen",type="BASE",value=6}},nil}
c["6 Life gained when you Block"]={{[1]={flags=0,keywordFlags=0,name="LifeOnBlock",type="BASE",value=6}},nil}
Expand Down Expand Up @@ -1958,7 +1959,7 @@ c["65% increased Energy Shield"]={{[1]={flags=0,keywordFlags=0,name="EnergyShiel
c["65% increased Evasion Rating"]={{[1]={flags=0,keywordFlags=0,name="Evasion",type="INC",value=65}},nil}
c["65% increased Evasion and Energy Shield"]={{[1]={flags=0,keywordFlags=0,name="EvasionAndEnergyShield",type="INC",value=65}},nil}
c["666% increased Armour and Energy Shield"]={{[1]={flags=0,keywordFlags=0,name="ArmourAndEnergyShield",type="INC",value=666}},nil}
c["666% increased effect of Socketed Soul Cores"]={{[1]={flags=0,keywordFlags=0,name="LocalEffect",type="INC",value=666}}," of Socketed Soul Cores "}
c["666% increased effect of Socketed Soul Cores"]={{[1]={flags=0,keywordFlags=0,name="SocketedSoulCoreEffect",type="INC",value=666}},nil}
c["7% chance to Gain 100% of Damage with Hits as Extra Chaos Damage"]={{[1]={flags=4,keywordFlags=0,name="DamageGainAsChaos",type="BASE",value=7}},nil}
c["7% increased Attributes"]={{[1]={flags=0,keywordFlags=0,name="Str",type="INC",value=7},[2]={flags=0,keywordFlags=0,name="Dex",type="INC",value=7},[3]={flags=0,keywordFlags=0,name="Int",type="INC",value=7},[4]={flags=0,keywordFlags=0,name="All",type="INC",value=7}},nil}
c["7% increased Chaos Damage"]={{[1]={flags=0,keywordFlags=0,name="ChaosDamage",type="INC",value=7}},nil}
Expand Down
15 changes: 15 additions & 0 deletions src/Modules/CalcSetup.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1038,6 +1038,21 @@ function calcs.initEnv(build, mode, override, specEnv)
end
end
env.itemModDB.multipliers["RunesSocketedIn"..slotName] = socketed

if item.socketedSoulCoreEffectModifier ~= 0 then
for _, modLine in ipairs(item.runeModLines) do
if modLine.soulcore then
for _, mod in ipairs(modLine.modList) do
local modCopy = copyTable(mod)
modCopy.value = round(modCopy.value / modLine.runeCount)
for i = 1, modLine.runeCount do
env.itemModDB:ScaleAddMod(modCopy, item.socketedSoulCoreEffectModifier)
end
end
end
end
end

if item.type == "Jewel" and item.base.subType == "Abyss" then
-- Update Abyss Jewel conditions/multipliers
local cond = "Have"..item.baseName:gsub(" ","")
Expand Down
1 change: 1 addition & 0 deletions src/Modules/ModParser.lua
Original file line number Diff line number Diff line change
Expand Up @@ -776,6 +776,7 @@ local modNameList = {
["attribute requirements"] = { "StrRequirement", "DexRequirement", "IntRequirement" },
["effect of socketed jewels"] = "SocketedJewelEffect",
["effect of socketed abyss jewels"] = "SocketedJewelEffect",
["effect of socketed soul cores"] = "SocketedSoulCoreEffect",
["to inflict fire exposure on hit"] = "FireExposureChance",
["to apply fire exposure on hit"] = "FireExposureChance",
["to inflict cold exposure on hit"] = "ColdExposureChance",
Expand Down
Loading