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
20 changes: 11 additions & 9 deletions src/Classes/ItemsTab.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2885,24 +2885,26 @@ function ItemsTabClass:AddItemTooltip(tooltip, item, slot, dbMode)
for _, modLine in ipairs(modList) do
if item:CheckModLineVariant(modLine) then
if scale ~= 1 then
local codyModLine = copyTable(modLine)
local copyModLine = copyTable(modLine)
local modsList = copyTable(modLine.modList)
local scaledList = new("ModList")
-- some passive node mods are only Condition/Flag and have no value to scale by default, grab number from line
if modsList[1] and modsList[1].type == "FLAG" then
modsList[1].value = tonumber(codyModLine.line:match("%d+"))
end
scaledList:ScaleAddList(modsList, scale)
for j, mod in ipairs(scaledList) do
local newValue = 0
local newValue
if type(mod.value) == "number" then
newValue = mod.value
elseif type(mod.value) == "table" then
newValue = mod.value.mod.value
if mod.value.mod then
newValue = mod.value.mod.value
else
newValue = mod.value.value
end
end
if type(newValue) == "number" then
copyModLine.line = copyModLine.line:gsub("%d*%.?%d+", math.abs(newValue), 1) -- Only scale first number in line
end
codyModLine.line = codyModLine.line:gsub("%d*%.?%d+", math.abs(newValue))
end
tooltip:AddLine(16, itemLib.formatModLine(codyModLine, dbMode))
tooltip:AddLine(16, itemLib.formatModLine(copyModLine, dbMode))
else
tooltip:AddLine(16, itemLib.formatModLine(modLine, dbMode))
end
Expand Down
18 changes: 10 additions & 8 deletions src/Classes/PassiveTreeView.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1243,23 +1243,25 @@ function PassiveTreeViewClass:AddNodeTooltip(tooltip, node, build, incSmallPassi
end

-- Apply Inc Node scaling from Hulking Form + Radius Jewels only visually
if ((incSmallPassiveSkillEffect + localIncEffect) > 0 and node.type == "Normal") or (localIncEffect > 0 and node.type == "Notable") and not node.isAttribute and not node.ascendancyName and node.mods[i].list then
if (((incSmallPassiveSkillEffect + localIncEffect) > 0 and node.type == "Normal") or (localIncEffect > 0 and node.type == "Notable")) and not node.isAttribute and not node.ascendancyName and node.mods[i].list then
local scale = 1 + (node.type == "Normal" and incSmallPassiveSkillEffect or 0 + localIncEffect) / 100
local modsList = copyTable(node.mods[i].list)
local scaledList = new("ModList")
-- some passive node mods are only Condition/Flag and have no value to scale by default, grab number from line
if modsList[1] and modsList[1].type == "FLAG" then
modsList[1].value = tonumber(line:match("%d+"))
end
scaledList:ScaleAddList(modsList, scale)
for j, mod in ipairs(scaledList) do
local newValue = 0
local newValue
if type(mod.value) == "number" then
newValue = mod.value
elseif type(mod.value) == "table" then
newValue = mod.value.mod.value
if mod.value.mod then
newValue = mod.value.mod.value
else
newValue = mod.value.value
end
end
if type(newValue) == "number" then
line = line:gsub("%d*%.?%d+", math.abs(newValue), 1) -- Only scale first number in line
end
line = line:gsub("%d*%.?%d+", math.abs(newValue), 1) -- Only scale first number in line
end
-- line = line .. " ^8(Effect increased by "..incSmallPassiveSkillEffect.."%)"
end
Expand Down
18 changes: 9 additions & 9 deletions src/Data/ModCache.lua
Original file line number Diff line number Diff line change
Expand Up @@ -966,7 +966,7 @@ c["10 Life gained when you Block"]={{[1]={flags=0,keywordFlags=0,name="LifeOnBlo
c["10% Chance to build an additional Combo on Hit"]={{}," to build an additional Combo "}
c["10% chance for Attack Hits to apply ten Incision"]={{[1]={flags=0,keywordFlags=0,name="Condition:CanInflictIncision",type="FLAG",value=true}},nil}
c["10% chance for Enemies you Kill to Explode, dealing 100%"]={{}," for Enemies you Kill to Explode, dealing 100% "}
c["10% chance for Enemies you Kill to Explode, dealing 100% of their maximum Life as Physical Damage"]={{[1]={flags=0,keywordFlags=0,name="ExplodeMod",type="LIST",value={amount=100,chance=0.1,keyOfScaledMod="chance",type="Physical"}},[2]={flags=0,keywordFlags=0,name="CanExplode",type="FLAG",value=true}},nil}
c["10% chance for Enemies you Kill to Explode, dealing 100% of their maximum Life as Physical Damage"]={{[1]={flags=0,keywordFlags=0,name="ExplodeMod",type="LIST",value={amount=100,keyOfScaledMod="chance",type="Physical",value=10}},[2]={flags=0,keywordFlags=0,name="CanExplode",type="FLAG",value=true}},nil}
c["10% chance for Flasks you use to not consume Charges"]={{[1]={flags=0,keywordFlags=0,name="FlaskChanceNotConsumeCharges",type="BASE",value=10}},nil}
c["10% chance for Mace Slam Skills you use yourself to cause Aftershocks"]={{}," for Mace Slam Skills you use yourself to cause Aftershocks "}
c["10% chance for Mace Slam Skills you use yourself to cause Aftershocks 10% chance for Mace Strike Skills you use yourself to cause Aftershocks, dealing"]={{}," for Mace Slam Skills you use yourself to cause Aftershocks 10% chance forSkills you use yourself to cause Aftershocks, dealing "}
Expand Down Expand Up @@ -4218,7 +4218,7 @@ c["Breaks Armour equal to 40% of damage from Hits with this weapon"]={nil,"Break
c["Breaks Armour equal to 40% of damage from Hits with this weapon Fully Armour Broken enemies you kill with Hits Shatter"]={nil,"Breaks Armour equal to 40% of damage from Hits with this weapon Fully Armour Broken enemies you kill with Hits Shatter "}
c["Buffs on you expire 10% slower"]={{[1]={[1]={skillType=5,type="SkillType"},flags=0,keywordFlags=0,name="Duration",type="INC",value=10}},nil}
c["Burning Enemies you kill have a 5% chance to Explode, dealing a"]={nil,"Burning Enemies you kill have a 5% chance to Explode, dealing a "}
c["Burning Enemies you kill have a 5% chance to Explode, dealing a tenth of their maximum Life as Fire Damage"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Burning"},flags=0,keywordFlags=0,name="ExplodeMod",type="LIST",value={amount=10,chance=0.05,keyOfScaledMod="chance",type="Fire"}},[2]={flags=0,keywordFlags=0,name="CanExplode",type="FLAG",value=true}},nil}
c["Burning Enemies you kill have a 5% chance to Explode, dealing a tenth of their maximum Life as Fire Damage"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Burning"},flags=0,keywordFlags=0,name="ExplodeMod",type="LIST",value={amount=10,keyOfScaledMod="chance",type="Fire",value=5}},[2]={flags=0,keywordFlags=0,name="CanExplode",type="FLAG",value=true}},nil}
c["Can Attack as though using a Quarterstaff while both of your hand slots are empty"]={nil,"Can Attack as though using a Quarterstaff while both of your hand slots are empty "}
c["Can Attack as though using a Quarterstaff while both of your hand slots are empty Unarmed Attacks that would use your Quarterstaff's damage gain:"]={nil,"Can Attack as though using a Quarterstaff while both of your hand slots are empty Unarmed Attacks that would use your Quarterstaff's damage gain: "}
c["Can Attack as though using a Quarterstaff while both of your hand slots are empty Unarmed Attacks that would use your Quarterstaff's damage gain: Physical damage based on their Skill Level"]={nil,"Can Attack as though using a Quarterstaff while both of your hand slots are empty Unarmed Attacks that would use your Quarterstaff's damage gain: Physical damage based on their Skill Level "}
Expand Down Expand Up @@ -4272,7 +4272,7 @@ c["Causes 60% increased Stun Buildup"]={nil,"Causes 60% increased Stun Buildup "
c["Causes 60% increased Stun Buildup Heavy Stuns Enemies that are on Full Life"]={nil,"Causes 60% increased Stun Buildup Heavy Stuns Enemies that are on Full Life "}
c["Causes Bleeding on Hit"]={{[1]={[1]={type="Condition",var="{Hand}Attack"},flags=0,keywordFlags=0,name="BleedChance",type="BASE",value=100}},nil}
c["Causes Double Stun Buildup"]={{}," Stun Buildup "}
c["Causes Enemies to Explode on Critical kill, for 10% of their Life as Physical Damage"]={{[1]={flags=0,keywordFlags=0,name="ExplodeMod",type="LIST",value={amount=10,chance=1,keyOfScaledMod="chance",type="Physical"}},[2]={flags=0,keywordFlags=0,name="CanExplode",type="FLAG",value=true}},nil}
c["Causes Enemies to Explode on Critical kill, for 10% of their Life as Physical Damage"]={{[1]={flags=0,keywordFlags=0,name="ExplodeMod",type="LIST",value={amount=10,keyOfScaledMod="chance",type="Physical",value=100}},[2]={flags=0,keywordFlags=0,name="CanExplode",type="FLAG",value=true}},nil}
c["Chain an additional time"]={nil,"Chain an additional time "}
c["Chain an additional time Chain from Terrain an additional time"]={nil,"Chain an additional time Chain from Terrain an additional time "}
c["Chain an additional time Chain from Terrain an additional time Cannot collide with targets"]={nil,"Chain an additional time Chain from Terrain an additional time Cannot collide with targets "}
Expand Down Expand Up @@ -4343,8 +4343,8 @@ c["Curse Skills have 15% increased Cast Speed"]={{[1]={flags=16,keywordFlags=2,n
c["Curse Skills have 20% increased Cast Speed"]={{[1]={flags=16,keywordFlags=2,name="Speed",type="INC",value=20}},nil}
c["Curse Skills have 20% increased Skill Effect Duration"]={{[1]={flags=0,keywordFlags=2,name="Duration",type="INC",value=20}},nil}
c["Curse zones erupt after 10% reduced delay"]={nil,"Curse zones erupt after 10% reduced delay "}
c["Cursed Enemies Killed by you, or by Allies in your Presence, have a 33% chance to Explode, dealing a quarter of their maximum Life as Chaos Damage"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Cursed"},flags=0,keywordFlags=0,name="ExplodeMod",type="LIST",value={amount=25,chance=0.33,keyOfScaledMod="chance",type="Chaos"}},[2]={flags=0,keywordFlags=0,name="CanExplode",type="FLAG",value=true}},nil}
c["Cursed Enemies Killed by you, or by Allies in your Presence, have a 33% chance to Explode, dealing a quarter of their maximum Life as Physical Damage"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Cursed"},flags=0,keywordFlags=0,name="ExplodeMod",type="LIST",value={amount=25,chance=0.33,keyOfScaledMod="chance",type="Physical"}},[2]={flags=0,keywordFlags=0,name="CanExplode",type="FLAG",value=true}},nil}
c["Cursed Enemies Killed by you, or by Allies in your Presence, have a 33% chance to Explode, dealing a quarter of their maximum Life as Chaos Damage"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Cursed"},flags=0,keywordFlags=0,name="ExplodeMod",type="LIST",value={amount=25,keyOfScaledMod="chance",type="Chaos",value=33}},[2]={flags=0,keywordFlags=0,name="CanExplode",type="FLAG",value=true}},nil}
c["Cursed Enemies Killed by you, or by Allies in your Presence, have a 33% chance to Explode, dealing a quarter of their maximum Life as Physical Damage"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Cursed"},flags=0,keywordFlags=0,name="ExplodeMod",type="LIST",value={amount=25,keyOfScaledMod="chance",type="Physical",value=33}},[2]={flags=0,keywordFlags=0,name="CanExplode",type="FLAG",value=true}},nil}
c["Curses have no Activation Delay"]={{[1]={flags=0,keywordFlags=0,name="CurseDelay",type="MORE",value=-100}},nil}
c["Curses you inflict are reflected back to you"]={nil,"Curses you inflict are reflected back to you "}
c["Curses you inflict have infinite Duration"]={nil,"Curses you inflict have infinite Duration "}
Expand Down Expand Up @@ -4521,13 +4521,13 @@ c["Enemies you Electrocute have 20% increased Damage taken"]={{[1]={flags=0,keyw
c["Enemies you Fully Armour Break are Maimed"]={nil,"Enemies you Fully Armour Break are Maimed "}
c["Enemies you Fully Armour Break cannot Regenerate Life"]={nil,"Enemies you Fully Armour Break cannot Regenerate Life "}
c["Enemies you Fully Armour Break cannot Regenerate Life Enemies you Fully Armour Break are Maimed"]={nil,"Enemies you Fully Armour Break cannot Regenerate Life Enemies you Fully Armour Break are Maimed "}
c["Enemies you Kill have a 10% chance to Explode, dealing a quarter of their maximum Life as Chaos Damage"]={{[1]={flags=0,keywordFlags=0,name="ExplodeMod",type="LIST",value={amount=25,chance=0.1,keyOfScaledMod="chance",type="Chaos"}},[2]={flags=0,keywordFlags=0,name="CanExplode",type="FLAG",value=true}},nil}
c["Enemies you Kill have a 10% chance to Explode, dealing a quarter of their maximum Life as Chaos Damage"]={{[1]={flags=0,keywordFlags=0,name="ExplodeMod",type="LIST",value={amount=25,keyOfScaledMod="chance",type="Chaos",value=10}},[2]={flags=0,keywordFlags=0,name="CanExplode",type="FLAG",value=true}},nil}
c["Enemies you Mark cannot deal Critical Hits"]={{[1]={flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={[1]={type="Condition",var="Marked"},flags=0,keywordFlags=0,name="NeverCrit",type="FLAG",value=true}}},[2]={flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={[1]={type="Condition",var="Marked"},flags=0,keywordFlags=0,name="Condition:NeverCrit",type="FLAG",value=true}}}},nil}
c["Enemies you Mark have 10% reduced Accuracy Rating"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Marked"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="Accuracy",type="INC",value=-10}}}},nil}
c["Enemies you Mark take 10% increased Damage"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Marked"},flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="DamageTaken",type="INC",value=10}}}},nil}
c["Enemies you apply Incision to take 2% increased Physical Damage per Incision"]={{[1]={flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={[1]={type="Multiplier",var="IncisionStack"},flags=0,keywordFlags=0,name="PhysicalDamageTaken",type="INC",value=2}}}},nil}
c["Enemies you inflict Bleeding on cannot Regenerate Life"]={nil,"Enemies you inflict Bleeding on cannot Regenerate Life "}
c["Enemies you kill with Empowered Attacks have a 10% chance to Explode, dealing a tenth of their maximum Life as Fire Damage"]={{[1]={flags=0,keywordFlags=0,name="ExplodeMod",type="LIST",value={amount=10,chance=0.1,keyOfScaledMod="chance",type="Fire"}},[2]={flags=0,keywordFlags=0,name="CanExplode",type="FLAG",value=true}},nil}
c["Enemies you kill with Empowered Attacks have a 10% chance to Explode, dealing a tenth of their maximum Life as Fire Damage"]={{[1]={flags=0,keywordFlags=0,name="ExplodeMod",type="LIST",value={amount=10,keyOfScaledMod="chance",type="Fire",value=10}},[2]={flags=0,keywordFlags=0,name="CanExplode",type="FLAG",value=true}},nil}
c["Enemies' Damage with Critical Hits against you is Lucky"]={nil,"Enemies' Damage with Critical Hits is Lucky "}
c["Energy Generation is doubled"]={{},"Energy Generation "}
c["Energy Shield Recharge is not interrupted by Damage if Recharge began Recently"]={nil,"Energy Shield Recharge is not interrupted by Damage if Recharge began Recently "}
Expand Down Expand Up @@ -5651,8 +5651,8 @@ c["Used when you take Lightning damage from a Hit 40% increased Charges gained"]
c["Volatile Power also grants 1% increased Critical Hit chance per Volatility exploded"]={nil,"Volatile Power also grants 1% increased Critical Hit chance per Volatility exploded "}
c["Warcries Debilitate Enemies"]={{[1]={flags=0,keywordFlags=0,name="DebilitateChance",type="BASE",value=100}},nil}
c["Warcries Empower an additional Attack"]={nil,"Warcries Empower an additional Attack "}
c["Warcries Explode Corpses dealing 10% of their Life as Physical Damage"]={{[1]={flags=0,keywordFlags=0,name="ExplodeMod",type="LIST",value={amount=10,chance=1,keyOfScaledMod="chance",type="Physical"}},[2]={flags=0,keywordFlags=0,name="CanExplode",type="FLAG",value=true}},nil}
c["Warcries Explode Corpses dealing 25% of their Life as Physical Damage"]={{[1]={flags=0,keywordFlags=0,name="ExplodeMod",type="LIST",value={amount=25,chance=1,keyOfScaledMod="chance",type="Physical"}},[2]={flags=0,keywordFlags=0,name="CanExplode",type="FLAG",value=true}},nil}
c["Warcries Explode Corpses dealing 10% of their Life as Physical Damage"]={{[1]={flags=0,keywordFlags=0,name="ExplodeMod",type="LIST",value={amount=10,keyOfScaledMod="chance",type="Physical",value=100}},[2]={flags=0,keywordFlags=0,name="CanExplode",type="FLAG",value=true}},nil}
c["Warcries Explode Corpses dealing 25% of their Life as Physical Damage"]={{[1]={flags=0,keywordFlags=0,name="ExplodeMod",type="LIST",value={amount=25,keyOfScaledMod="chance",type="Physical",value=100}},[2]={flags=0,keywordFlags=0,name="CanExplode",type="FLAG",value=true}},nil}
c["Warcries have 15% chance to Empower 3 additional Attacks"]={nil,"Warcries have 15% chance to Empower 3 additional Attacks "}
c["Warcries have a minimum of 10 Power"]={{[1]={flags=0,keywordFlags=0,name="MinimumWarcryPower",type="BASE",value=10}},nil}
c["Warcry Skills have 25% increased Area of Effect"]={{[1]={[1]={skillType=63,type="SkillType"},flags=0,keywordFlags=0,name="AreaOfEffect",type="INC",value=25}},nil}
Expand Down
4 changes: 2 additions & 2 deletions src/Data/Skills/other.lua
Original file line number Diff line number Diff line change
Expand Up @@ -6739,15 +6739,15 @@ skills["VoidIllusionSpawnPlayer"] = {
else
activeSkill.skillData[explodeMod.type.."EffectiveExplodePercentage"] = explodeMod.amount
end
output.ExplodeChance = statSet.index == 2 and 1 or explodeMod.chance
output.ExplodeChance = statSet.index == 2 and 1 or explodeMod.value / 100
end
end
else
local typeAmountChances = { }
local explodeModList = activeSkill.skillModList:List(activeSkill.skillCfg, "ExplodeMod")
for _, explodeMod in ipairs(explodeModList) do
local amountChance = typeAmountChances[explodeMod.type] or { }
amountChance[explodeMod.amount] = (amountChance[explodeMod.amount] or 0) + explodeMod.chance
amountChance[explodeMod.amount] = (amountChance[explodeMod.amount] or 0) + explodeMod.value / 100
typeAmountChances[explodeMod.type] = amountChance
end
for type, amountChance in pairs(typeAmountChances) do
Expand Down
4 changes: 2 additions & 2 deletions src/Export/Skills/other.txt
Original file line number Diff line number Diff line change
Expand Up @@ -526,15 +526,15 @@ skills["EnemyExplode"] = {
else
activeSkill.skillData[explodeMod.type.."EffectiveExplodePercentage"] = explodeMod.amount
end
output.ExplodeChance = statSet.index == 2 and 1 or explodeMod.chance
output.ExplodeChance = statSet.index == 2 and 1 or explodeMod.value / 100
end
end
else
local typeAmountChances = { }
local explodeModList = activeSkill.skillModList:List(activeSkill.skillCfg, "ExplodeMod")
for _, explodeMod in ipairs(explodeModList) do
local amountChance = typeAmountChances[explodeMod.type] or { }
amountChance[explodeMod.amount] = (amountChance[explodeMod.amount] or 0) + explodeMod.chance
amountChance[explodeMod.amount] = (amountChance[explodeMod.amount] or 0) + explodeMod.value / 100
typeAmountChances[explodeMod.type] = amountChance
end
for type, amountChance in pairs(typeAmountChances) do
Expand Down
2 changes: 1 addition & 1 deletion src/Modules/ModParser.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2149,7 +2149,7 @@ local explodeFunc = function(chance, amount, type, ...)
local amounts = {}
amounts[type] = amountNumber
return {
mod("ExplodeMod", "LIST", { type = firstToUpper(type), chance = chance / 100, amount = amountNumber, keyOfScaledMod = "chance" }, ...),
mod("ExplodeMod", "LIST", { type = firstToUpper(type), value = chance, amount = amountNumber, keyOfScaledMod = "chance" }, ...),
flag("CanExplode")
}
end
Expand Down