Skip to content
This repository was archived by the owner on Oct 21, 2025. It is now read-only.

Commit ec05bd2

Browse files
committed
Merge branch 'dev' into FixQuiverBonuses
2 parents 28d548d + fd80fa3 commit ec05bd2

File tree

12 files changed

+31
-41
lines changed

12 files changed

+31
-41
lines changed

src/Classes/CalcBreakdownControl.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,7 @@ function CalcBreakdownClass:AddModSection(sectionData, modList)
405405
local nodeId = row.mod.source:match("Tree:(%d+)")
406406
if nodeId then
407407
local nodeIdNumber = tonumber(nodeId)
408-
local node = build.spec.nodes[nodeIdNumber] or build.spec.tree.nodes[nodeIdNumber]
408+
local node = build.spec.nodes[nodeIdNumber] or build.spec.switchableNodes[nodeIdNumber] or build.spec.tree.nodes[nodeIdNumber]
409409
row.sourceName = node.dn
410410
row.sourceNameNode = node
411411
end

src/Classes/Item.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -885,6 +885,9 @@ function ItemClass:ParseRaw(raw, rarity, highQuality)
885885
if deferJewelRadiusIndexAssignment then
886886
self.jewelRadiusIndex = self.jewelData.radiusIndex
887887
end
888+
if self.jewelData and self.jewelData.timeLostJewelRadiusOverride then
889+
self.jewelRadiusIndex = self.jewelData.timeLostJewelRadiusOverride
890+
end
888891
end
889892

890893
function ItemClass:NormaliseQuality()

src/Classes/ItemsTab.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1908,6 +1908,9 @@ function ItemsTabClass:CraftItem()
19081908
implicitIndex = implicitIndex + 1
19091909
end
19101910
end
1911+
if base.base.type == "Jewel" and base.base.subType == "Radius" then
1912+
item.jewelRadiusLabel = "Small"
1913+
end
19111914
item:NormaliseQuality()
19121915
item:BuildAndParseRaw()
19131916
return item

src/Classes/ModStore.lua

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -486,22 +486,6 @@ function ModStoreClass:EvalMod(mod, cfg)
486486
end
487487
end
488488
end
489-
-- Syntax: { type = "MeleeProximity", ramp = {MaxBonusPct,MinBonusPct} }
490-
-- Both MaxBonusPct and MinBonusPct are percent in decimal form (1.0 = 100%)
491-
-- Example: { type = "MeleeProximity", ramp = {1,0} } ## Duelist-Slayer: Impact
492-
elseif tag.type == "MeleeProximity" then
493-
if not cfg or not cfg.skillDist then
494-
return
495-
end
496-
-- Max potency is 0-15 units of distance
497-
if cfg.skillDist <= 15 then
498-
value = value * tag.ramp[1]
499-
-- Reduced potency (linear) until 40 units
500-
elseif cfg.skillDist >= 16 and cfg.skillDist <= 39 then
501-
value = value * (tag.ramp[1] - ((tag.ramp[1] / 25) * (cfg.skillDist - 15)))
502-
elseif cfg.skillDist >= 40 then
503-
value = 0
504-
end
505489
elseif tag.type == "Limit" then
506490
value = m_min(value, tag.limit or self:GetMultiplier(tag.limitVar, cfg))
507491
elseif tag.type == "Condition" then
@@ -809,4 +793,4 @@ function ModStoreClass:EvalMod(mod, cfg)
809793
end
810794
end
811795
return value
812-
end
796+
end

src/Classes/PassiveSpec.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -958,6 +958,7 @@ function PassiveSpecClass:BuildAllDependsAndPaths()
958958
local visited = { }
959959
local attributes = { "Dexterity", "Intelligence", "Strength" }
960960
-- Check all nodes for other nodes which depend on them (i.e. are only connected to the tree through that node)
961+
self.switchableNodes = { }
961962
for id, node in pairs(self.nodes) do
962963
node.depends = wipeTable(node.depends)
963964
node.intuitiveLeapLikesAffecting = { }
@@ -968,6 +969,7 @@ function PassiveSpecClass:BuildAllDependsAndPaths()
968969
local nodeToReplace = self.tree.nodes[id]
969970
if self.tree.nodes[id].isSwitchable and self.tree.nodes[id].options[self.curClassName] then
970971
nodeToReplace = self.tree.nodes[id].options[self.curClassName]
972+
self.switchableNodes[nodeToReplace.id] = node
971973
end
972974
self:ReplaceNode(node, nodeToReplace)
973975
end

src/Classes/PassiveTreeView.lua

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ function PassiveTreeViewClass:Draw(build, viewPort, inputEvents)
247247
end
248248
end
249249

250-
-- switchAttribute true -> allocating an attribute node, possibly with attribute in path -or- hotswap allocated attribute
250+
-- switchAttribute true -> allocating an attribute node, possibly with attribute in path -or- hot-swap allocated attribute
251251
-- switchAttribute false -> allocating a non-attribute node, possibly with attribute in path
252252
-- we always want to keep track of last used attribute
253253
local function processAttributeHotkeys(switchAttribute)
@@ -313,7 +313,7 @@ function PassiveTreeViewClass:Draw(build, viewPort, inputEvents)
313313
else
314314
-- a way for us to bypass the popup when allocating attribute nodes, last used hotkey + RMB
315315
-- RMB + non attribute node logic
316-
-- RMB hotswap logic
316+
-- RMB hot-swap logic
317317
if hotkeyPressed then
318318
processAttributeHotkeys(hoverNode.isAttribute)
319319
elseif hoverNode.isAttribute then
@@ -544,9 +544,9 @@ function PassiveTreeViewClass:Draw(build, viewPort, inputEvents)
544544
local dist = math.sqrt(dx * dx + dy * dy) * (connection.orbit > 0 and 1 or -1)
545545

546546
if dist < r * 2 then
547-
local perp = math.sqrt(r * r - (dist * dist) / 4) * (r > 0 and 1 or -1)
548-
local cx = node1.x + dx / 2 + perp * (dy / dist)
549-
local cy = node1.y + dy / 2 - perp * (dx / dist)
547+
local perpendicular = math.sqrt(r * r - (dist * dist) / 4) * (r > 0 and 1 or -1)
548+
local cx = node1.x + dx / 2 + perpendicular * (dy / dist)
549+
local cy = node1.y + dy / 2 - perpendicular * (dx / dist)
550550
local scx, scy = treeToScreen(cx, cy)
551551

552552
local innerSize = r * scale
@@ -1123,7 +1123,7 @@ function PassiveTreeViewClass:AddNodeTooltip(tooltip, node, build)
11231123
tooltip:AddLine(16, string.format("AllocMode: %d", node.allocMode or 0))
11241124
tooltip:AddSeparator(14)
11251125

1126-
-- add conection info for debugging
1126+
-- add connection info for debugging
11271127
for _, connection in ipairs(node.connections) do
11281128
tooltip:AddLine(16, string.format("^7Connection: %d, Orbit: %d", connection.id, connection.orbit))
11291129
end

src/Data/ModCache.lua

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2501,7 +2501,7 @@ c["Gain 30% of Maximum Life as Extra Maximum Energy Shield"]={{[1]={flags=0,keyw
25012501
c["Gain 30% of Maximum Mana as Extra Maximum Energy Shield"]={{[1]={flags=0,keywordFlags=0,name="ManaGainAsEnergyShield",type="BASE",value=30}},nil}
25022502
c["Gain 35 Mana per Enemy Killed"]={{[1]={flags=0,keywordFlags=0,name="ManaOnKill",type="BASE",value=35}},nil}
25032503
c["Gain 35% of Damage as Extra Chaos Damage"]={{[1]={flags=0,keywordFlags=0,name="DamageGainAsChaos",type="BASE",value=35}},nil}
2504-
c["Gain 40% Base Chance to Block from Equipped Shield instead of the Shield's value"]={{[1]={[1]={slotName="Weapon 2",type="SlotName"},flags=0,keywordFlags=0,name="BlockChance",type="BASE",value=40}},"% Base instead of the Shield's value "}
2504+
c["Gain 40% Base Chance to Block from Equipped Shield instead of the Shield's value"]={{[1]={[1]={type="Condition",var="UsingShield"},flags=0,keywordFlags=0,name="ReplaceShieldBlock",type="OVERRIDE",value=40}},nil}
25052505
c["Gain 40% of Damage as Extra Chaos Damage"]={{[1]={flags=0,keywordFlags=0,name="DamageGainAsChaos",type="BASE",value=40}},nil}
25062506
c["Gain 5 Life per Enemy Killed"]={{[1]={flags=0,keywordFlags=0,name="LifeOnKill",type="BASE",value=5}},nil}
25072507
c["Gain 5 Mana per Enemy Killed"]={{[1]={flags=0,keywordFlags=0,name="ManaOnKill",type="BASE",value=5}},nil}
@@ -2935,8 +2935,7 @@ c["Share Charges with Allies in your Presence"]={nil,"Share Charges with Allies
29352935
c["Shocking Hits have a 50% chance to also Shock enemies in a 1.5 metre radius"]={nil,"Shocking Hits have a 50% chance to also Shock enemies in a 1.5 metre radius "}
29362936
c["Shocks you when you reach maximum Power Charges"]={nil,"Shocks you when you reach maximum Power Charges "}
29372937
c["Skill Gems have 30% more Attribute Requirements"]={{[1]={flags=0,keywordFlags=0,name="GlobalGemAttributeRequirements",type="MORE",value=30}},nil}
2938-
c["Skill Mana Costs Converted to Life Costs"]={nil,"Skill Mana Costs Converted to Life Costs "}
2939-
c["Skill Mana Costs Converted to Life Costs Skills gain 1% of Damage as Chaos Damage per 3 Life Cost"]={nil,"Skill Mana Costs Converted to Life Costs Skills gain 1% of Damage as Chaos Damage per 3 Life Cost "}
2938+
c["Skill Mana Costs Converted to Life Costs"]={{[1]={flags=0,keywordFlags=0,name="CostLifeInsteadOfMana",type="FLAG",value=true}},nil}
29402939
c["Skills Supported by Unleash have 10% increased Seal gain frequency"]={{[1]={flags=0,keywordFlags=0,name="SealGainFrequency",type="INC",value=10}},nil}
29412940
c["Skills Supported by Unleash have 25% increased Seal gain frequency"]={{[1]={flags=0,keywordFlags=0,name="SealGainFrequency",type="INC",value=25}},nil}
29422941
c["Skills fire an additional Projectile"]={{[1]={flags=0,keywordFlags=0,name="ProjectileCount",type="BASE",value=1}},nil}

src/Data/SkillStatMap.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -599,7 +599,7 @@ return {
599599
flag("NeverCrit"),
600600
},
601601
["base_critical_strike_multiplier_+"] = {
602-
mod("CritMultiplier", "BASE", nil),
602+
mod("CritMultiplier", "INC", nil),
603603
},
604604
["critical_strike_chance_+%_vs_shocked_enemies"] = {
605605
mod("CritChance", "INC", nil, 0, 0, { type = "ActorCondition", actor = "enemy", var = "Shocked" }),

src/Modules/CalcActiveSkill.lua

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -445,12 +445,8 @@ function calcs.buildActiveSkillModList(env, activeSkill)
445445
end
446446
end
447447

448-
-- Calculate Distance for meleeDistance or projectileDistance (for melee proximity, e.g. Impact)
449-
if skillFlags.melee then
450-
effectiveRange = env.configInput.meleeDistance
451-
else
452-
effectiveRange = env.configInput.projectileDistance
453-
end
448+
-- Calculate distance from enemy
449+
effectiveRange = env.configInput.enemyDistance
454450

455451
-- Build config structure for modifier searches
456452
activeSkill.skillCfg = {

src/Modules/CalcSetup.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -730,6 +730,9 @@ function calcs.initEnv(build, mode, override, specEnv)
730730
modDB:NewMod("Multiplier:AllocatedLifeMastery", "BASE", allocatedMasteryTypes["Life Mastery"])
731731
end
732732

733+
-- add Conditional WeaponnSet# base on weapon set from item
734+
modDB:NewMod("Condition:WeaponSet" .. (build.itemsTab.activeItemSet.useSecondWeaponSet and 2 or 1) , "FLAG", true, "Weapon Set")
735+
733736
-- Build and merge item modifiers, and create list of radius jewels
734737
if not accelerate.requirementsItems then
735738
local items = {}

0 commit comments

Comments
 (0)