Skip to content

Commit ad7d1b8

Browse files
author
LocalIdentity
committed
Move function to cals + fix dropdowns
The dropdowns in the sidebar, calcs tab and compare tab also have an issue where they don't use the current minion name
1 parent 9663b35 commit ad7d1b8

5 files changed

Lines changed: 37 additions & 13 deletions

File tree

spec/System/TestSkills_spec.lua

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,27 @@ describe("TestSkills", function()
377377
end
378378
end)
379379

380+
it("uses selected companion names in skill displays", function()
381+
build.skillsTab:PasteSocketGroup("Companion: Lightless Abomination 20/0 1")
382+
build.skillsTab:PasteSocketGroup("Companion: Lightless Moray 20/0 1")
383+
build.skillsTab.socketGroupList[1].includeInFullDPS = true
384+
build.skillsTab.socketGroupList[2].includeInFullDPS = true
385+
runCallback("OnFrame")
386+
387+
local skillNames = { }
388+
for _, skill in ipairs(build.calcsTab.mainOutput.SkillDPS) do
389+
skillNames[skill.name] = true
390+
end
391+
assert.is_true(skillNames["Companion: Lightless Abomination"])
392+
assert.is_true(skillNames["Companion: Lightless Moray"])
393+
394+
build:RefreshSkillSelectControls(build.controls, 1, "")
395+
assert.are.equals("Companion: Lightless Abomination", build.controls.mainSkill.list[1].label)
396+
397+
build:RefreshSkillSelectControls(build.controls, 2, "")
398+
assert.are.equals("Companion: Lightless Moray", build.controls.mainSkill.list[1].label)
399+
end)
400+
380401
it("Inspiring Ally only mirrors companion damage, not generic minion damage", function()
381402
build.itemsTab:CreateDisplayItemFromRaw([[
382403
New Item

src/Classes/CompareEntry.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ function CompareEntryClass:RefreshSkillSelectControls(controls, mainGroup, suffi
326326
local explodeSource = activeSkill.activeEffect.srcInstance.explodeSource
327327
local explodeSourceName = explodeSource and (explodeSource.name or explodeSource.dn)
328328
local colourCoded = explodeSourceName and ("From "..colorCodes[explodeSource.rarity or "NORMAL"]..explodeSourceName)
329-
t_insert(controls.mainSkill.list, { val = i, label = colourCoded or activeSkill.activeEffect.grantedEffect.name })
329+
t_insert(controls.mainSkill.list, { val = i, label = colourCoded or self.calcsTab.calcs.getActiveSkillDisplayName(activeSkill) })
330330
end
331331
controls.mainSkill.enabled = #displaySkillList > 1
332332
controls.mainSkill.selIndex = mainActiveSkill

src/Modules/Build.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1955,7 +1955,7 @@ function buildMode:RefreshSkillSelectControls(controls, mainGroup, suffix)
19551955
local explodeSource = activeSkill.activeEffect.srcInstance.explodeSource
19561956
local explodeSourceName = explodeSource and (explodeSource.name or explodeSource.dn)
19571957
local colourCoded = explodeSourceName and ("From "..colorCodes[explodeSource.rarity or "NORMAL"]..explodeSourceName)
1958-
t_insert(controls.mainSkill.list, { val = i, label = colourCoded or activeSkill.activeEffect.grantedEffect.name })
1958+
t_insert(controls.mainSkill.list, { val = i, label = colourCoded or self.calcsTab.calcs.getActiveSkillDisplayName(activeSkill) })
19591959
end
19601960
controls.mainSkill.enabled = #displaySkillList > 1
19611961
controls.mainSkill.selIndex = mainActiveSkill

src/Modules/CalcActiveSkill.lua

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,19 @@ function calcs.createActiveSkill(activeEffect, supportList, env, actor, socketGr
230230
return activeSkill
231231
end
232232

233+
function calcs.getActiveSkillDisplayName(activeSkill)
234+
local skillName = activeSkill.activeEffect.grantedEffect.name
235+
local skillMinion = activeSkill.minion
236+
if skillMinion and skillMinion.minionData then
237+
if skillName:match("^Companion:") then
238+
return "Companion: "..skillMinion.minionData.name
239+
elseif skillName:match("^Spectre:") then
240+
return "Spectre: "..skillMinion.minionData.name
241+
end
242+
end
243+
return skillName
244+
end
245+
233246
-- Copy an Active Skill
234247
function calcs.copyActiveSkill(env, mode, skill)
235248
local activeEffect = {

src/Modules/Calcs.lua

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -183,17 +183,7 @@ function calcs.calcFullDPS(build, mode, override, specEnv)
183183
fullEnv.player.mainSkill = activeSkill
184184
calcs.perform(fullEnv, true)
185185
usedEnv = fullEnv
186-
-- Companion/Spectre gems all share a single granted effect ("Companion: {0}"/"Spectre: {0}"),
187-
-- whose name is mutated globally for display, so derive the entry name from this skill's own minion
188-
local skillName = activeSkill.activeEffect.grantedEffect.name
189-
local skillMinion = activeSkill.minion or usedEnv.minion
190-
if skillMinion and skillMinion.minionData then
191-
if skillName:match("^Companion:") then
192-
skillName = "Companion: "..skillMinion.minionData.name
193-
elseif skillName:match("^Spectre:") then
194-
skillName = "Spectre: "..skillMinion.minionData.name
195-
end
196-
end
186+
local skillName = calcs.getActiveSkillDisplayName(activeSkill)
197187
local minionName = nil
198188
if activeSkill.minion or usedEnv.minion then
199189
if usedEnv.minion.output.TotalDPS and usedEnv.minion.output.TotalDPS > 0 then

0 commit comments

Comments
 (0)