Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Not showing Full Dps in item and skill comparison . #8245

Open
2 tasks done
ParanoiaIsGreat opened this issue Aug 24, 2024 · 9 comments · May be fixed by #8247
Open
2 tasks done

Not showing Full Dps in item and skill comparison . #8245

ParanoiaIsGreat opened this issue Aug 24, 2024 · 9 comments · May be fixed by #8247
Labels
bug Something isn't working

Comments

@ParanoiaIsGreat
Copy link

Check version

  • I'm running the latest version of Path of Building and I've verified this by checking the changelog

Check for duplicates

  • I've checked for duplicate open and closed issues by using the search function of the issue tracker

What platform are you running Path of Building on?

Windows

How is Path of Building expected to behave?

When check "include in Full Dps" box, it should be showing full dps changes during item and skill comparison

How does Path of Building behave?

When check "include in Full Dps" box, it not showing full dps changes during item and skill comparison

How to reproduce the issue

Import this: https://pobb.in/JYyFVa5G6zmA

Character build code

https://pobb.in/JYyFVa5G6zmA

Screenshots

Uploading image.png…
Uploading image.png…

@ParanoiaIsGreat ParanoiaIsGreat added the bug Something isn't working label Aug 24, 2024
@ParanoiaIsGreat
Copy link
Author

Screenshots: https://imgur.com/a/Jt2qR7l

@Paliak
Copy link
Contributor

Paliak commented Aug 24, 2024

diff --git a/src/Classes/ItemDBControl.lua b/src/Classes/ItemDBControl.lua
index e0a4a3528..4425b81df 100644
--- a/src/Classes/ItemDBControl.lua
+++ b/src/Classes/ItemDBControl.lua
@@ -226,7 +226,6 @@ function ItemDBClass:ListBuilder()
        if self.sortDetail and self.sortDetail.stat then -- stat-based
                local start = GetTime()
                local calcFunc, calcBase = self.itemsTab.build.calcsTab:GetMiscCalculator(self.build)
-               local storedGlobalCacheDPSView = GlobalCache.useFullDPS
                GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
                for itemIndex, item in ipairs(list) do
                        item.measuredPower = 0
@@ -247,7 +246,6 @@ function ItemDBClass:ListBuilder()
                                start = now
                        end
                end
-               GlobalCache.useFullDPS = storedGlobalCacheDPSView
        end
 
        table.sort(list, function(a, b)
diff --git a/src/Classes/ItemsTab.lua b/src/Classes/ItemsTab.lua
index fdc24f540..bd42710c7 100644
--- a/src/Classes/ItemsTab.lua
+++ b/src/Classes/ItemsTab.lua
@@ -1852,11 +1852,9 @@ function ItemsTabClass:AddModComparisonTooltip(tooltip, mod)
        newItem:BuildAndParseRaw()
 
        local calcFunc = self.build.calcsTab:GetMiscCalculator()
-       local storedGlobalCacheDPSView = GlobalCache.useFullDPS
        GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
        local outputBase = calcFunc({ repSlotName = slotName, repItem = self.displayItem }, {})
        local outputNew = calcFunc({ repSlotName = slotName, repItem = newItem }, {})
-       GlobalCache.useFullDPS = storedGlobalCacheDPSView
        self.build:AddStatComparesToTooltip(tooltip, outputBase, outputNew, "\nAdding this mod will give: ")
 end
 
@@ -2281,11 +2279,9 @@ function ItemsTabClass:AppendAnointTooltip(tooltip, node, actionText)
                header = "^7"..actionText.." nothing will give you: "
        end
        local calcFunc = self.build.calcsTab:GetMiscCalculator()
-       local storedGlobalCacheDPSView = GlobalCache.useFullDPS
        GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
        local outputBase = calcFunc({ repSlotName = "Amulet", repItem = self.displayItem }, {})
        local outputNew = calcFunc({ repSlotName = "Amulet", repItem = self:anointItem(node) }, {})
-       GlobalCache.useFullDPS = storedGlobalCacheDPSView
        local numChanges = self.build:AddStatComparesToTooltip(tooltip, outputBase, outputNew, header)
        if node and numChanges == 0 then
                tooltip:AddLine(14, "^7"..actionText.." "..node.dn.." changes nothing.")
@@ -2296,11 +2292,9 @@ end
 ---@param tooltip table @The tooltip to append into
 ---@param node table @The passive tree node that will be added
 function ItemsTabClass:AppendAddedNotableTooltip(tooltip, node)
-       local storedGlobalCacheDPSView = GlobalCache.useFullDPS
        GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
        local calcFunc, calcBase = self.build.calcsTab:GetMiscCalculator()
        local outputNew = calcFunc({ addNodes = { [node] = true } }, { requirementsItems = true, requirementsGems = true, skills = true })
-       GlobalCache.useFullDPS = storedGlobalCacheDPSView
        local numChanges = self.build:AddStatComparesToTooltip(tooltip, calcBase, outputNew, "^7Allocating "..node.dn.." will give you: ")
        if numChanges == 0 then
                tooltip:AddLine(14, "^7Allocating "..node.dn.." changes nothing.")
@@ -3627,10 +3621,8 @@ function ItemsTabClass:AddItemTooltip(tooltip, item, slot, dbMode)
                                tooltip:AddLine(14, stat)
                        end
                end
-               local storedGlobalCacheDPSView = GlobalCache.useFullDPS
                GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
                local output = calcFunc({ toggleFlask = item }, {})
-               GlobalCache.useFullDPS = storedGlobalCacheDPSView
                local header
                if self.build.calcsTab.mainEnv.flasks[item] then
                        header = "^7Deactivating this flask will give you:"
@@ -3666,10 +3658,8 @@ function ItemsTabClass:AddItemTooltip(tooltip, item, slot, dbMode)
                                tooltip:AddLine(14, stat)
                        end
                end
-               local storedGlobalCacheDPSView = GlobalCache.useFullDPS
                GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
                local output = calcFunc({ toggleTincture = item }, {})
-               GlobalCache.useFullDPS = storedGlobalCacheDPSView
                local header
                if self.build.calcsTab.mainEnv.tinctures[item] then
                        header = "^7Deactivating this tincture will give you:"
@@ -3716,10 +3706,8 @@ function ItemsTabClass:AddItemTooltip(tooltip, item, slot, dbMode)
                for _, compareSlot in pairs(compareSlots) do
                        if not main.slotOnlyTooltips or (slot and (slot.nodeId == compareSlot.nodeId or slot.slotName == compareSlot.slotName)) or not slot or slot == compareSlot then
                                local selItem = self.items[compareSlot.selItemId]
-                               local storedGlobalCacheDPSView = GlobalCache.useFullDPS
                                GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
                                local output = calcFunc({ repSlotName = compareSlot.slotName, repItem = item ~= selItem and item or nil}, {})
-                               GlobalCache.useFullDPS = storedGlobalCacheDPSView
                                local header
                                if item == selItem then
                                        header = "^7Removing this item from "..compareSlot.label.." will give you:"
diff --git a/src/Classes/NotableDBControl.lua b/src/Classes/NotableDBControl.lua
index 62253adff..074ebcef8 100644
--- a/src/Classes/NotableDBControl.lua
+++ b/src/Classes/NotableDBControl.lua
@@ -138,7 +138,6 @@ function NotableDBClass:ListBuilder()
                local start = GetTime()
                local calcFunc = self.itemsTab.build.calcsTab:GetMiscCalculator()
                local itemType = self.itemsTab.displayItem.base.type
-               local storedGlobalCacheDPSView = GlobalCache.useFullDPS
                GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
                local calcBase = calcFunc({ repSlotName = itemType, repItem = self.itemsTab:anointItem(nil) }, {})
                self.sortMaxPower = 0
@@ -160,7 +159,6 @@ function NotableDBClass:ListBuilder()
                                start = now
                        end
                end
-               GlobalCache.useFullDPS = storedGlobalCacheDPSView
 
                if #infinites > 0 then
                        self.sortMaxPower = self.sortMaxPower * 2
diff --git a/src/Classes/SkillsTab.lua b/src/Classes/SkillsTab.lua
index 62909a4e3..d36273e92 100644
--- a/src/Classes/SkillsTab.lua
+++ b/src/Classes/SkillsTab.lua
@@ -792,10 +792,8 @@ function SkillsTabClass:CreateGemSlot(index)
                                local tempQual = self.displayGroup.gemList[index].qualityId
                                self.displayGroup.gemList[index].qualityId = hoveredQuality.type
                                self:ProcessSocketGroup(self.displayGroup)
-                               local storedGlobalCacheDPSView = GlobalCache.useFullDPS
                                GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
                                local output = calcFunc({}, {})
-                               GlobalCache.useFullDPS = storedGlobalCacheDPSView
                                self.displayGroup.gemList[index].qualityId = tempQual
                                tooltip:AddSeparator(10)
                                self.build:AddStatComparesToTooltip(tooltip, calcBase, output, "^7Switching to this quality variant will give you:")
@@ -827,10 +825,8 @@ function SkillsTabClass:CreateGemSlot(index)
                                if calcFunc then
                                        local storedQuality = self.displayGroup.gemList[index].quality
                                        self.displayGroup.gemList[index].quality = 20
-                                       local storedGlobalCacheDPSView = GlobalCache.useFullDPS
                                        GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
                                        local output = calcFunc({}, {})
-                                       GlobalCache.useFullDPS = storedGlobalCacheDPSView
                                        self.displayGroup.gemList[index].quality = storedQuality
                                        self.build:AddStatComparesToTooltip(tooltip, calcBase, output, "^7Setting to 20 quality will give you:")
                                end
@@ -872,10 +868,8 @@ function SkillsTabClass:CreateGemSlot(index)
                                local calcFunc, calcBase = self.build.calcsTab:GetMiscCalculator(self.build)
                                if calcFunc then
                                        self.displayGroup.gemList[index].enabled = not self.displayGroup.gemList[index].enabled
-                                       local storedGlobalCacheDPSView = GlobalCache.useFullDPS
                                        GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
                                        local output = calcFunc({}, {})
-                                       GlobalCache.useFullDPS = storedGlobalCacheDPSView
                                        self.displayGroup.gemList[index].enabled = not self.displayGroup.gemList[index].enabled
                                        self.build:AddStatComparesToTooltip(tooltip, calcBase, output, self.displayGroup.gemList[index].enabled and "^7Disabling this gem will give you:" or "^7Enabling this gem will give you:")
                                end
diff --git a/src/Classes/TradeQuery.lua b/src/Classes/TradeQuery.lua
index e76d1fdd1..8ba521518 100644
--- a/src/Classes/TradeQuery.lua
+++ b/src/Classes/TradeQuery.lua
@@ -53,7 +53,6 @@ local TradeQueryClass = newClass("TradeQuery", function(self, itemsTab)
        end
 
        -- set
-       self.storedGlobalCacheDPSView = GlobalCache.useFullDPS
        GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
        self.hostName = "https://www.pathofexile.com/"
 end)
@@ -505,7 +504,6 @@ Highest Weight - Displays the order retrieved from trade]]
        self.controls.fullPrice = new("LabelControl", {"BOTTOM", nil, "BOTTOM"}, 0, -row_height - pane_margins_vertical - row_vertical_padding, pane_width - 2 * pane_margins_horizontal, row_height, "")
        GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
        self.controls.close = new("ButtonControl", {"BOTTOM", nil, "BOTTOM"}, 0, -pane_margins_vertical, 90, row_height, "Done", function()
-               GlobalCache.useFullDPS = self.storedGlobalCacheDPSView
                main:ClosePopup()
                -- there's a case where if you have a socket(s) allocated, open TradeQuery, close it, dealloc, then open TradeQuery again
                -- the deallocated socket controls were still showing, so this will remove all dynamically created controls from items

Most likely caused by these lines. It seems those were added in an attempt to fix what #8087 has fixed. Will need to test all the cases work correctly though.

@Paliak
Copy link
Contributor

Paliak commented Aug 24, 2024

Likely related: #8163

@nofate121
Copy link
Contributor

Not sure if related, but i am having a similar issues.

https://pobb.in/8eINEmkZKPwM

tested on dev

  1. Combined DPS not shown on Gems
  • goto skills tab
  • make sure 6L raise spectre is active skill
  • make sure sort gems by dps is on and set to combined
  • try to add a 7th link to the 6L Spectre
  • conc effect is shown at the top (probably correct), but it doesn't show how much more dmg it gives
  • goto 4L spectre and untick convocation
  • go back to 6L spectre and try to add 7th link
  • conc effect now shows a dmg increase, but it is highly inflated (hit dps 317 %)
  • goto 4L spectre and untick raise spectre
  • go back to 6L spectre and try to add 7th link
  • now the correct number of hit dps 39% is shown

Using Sort gems by Full DPS seems to be working fine though, except then it only shows full dps but not hit dps anymore (i think it did at some point, not sure).

  1. Full DPS not shown on items on fresh import
  • make new build and import pob
  • goto items tab
  • double click the wand
  • replacing the shield with wand should give about 20% full dps but it is not shown
  • click cancel
  • save build
  • back out
  • load it again
  • double click wand
  • full dps now correctly shows 20% full dps when replacing the shield with wand
  1. Combined DPS not shown on Items
  • make new build and import pob
  • goto items tab
  • double click the wand
  • replacing the shield with wand should also show minion dps/stats
  • similar to nr 1, it only shows up when convocation is unticked

@Paliak Paliak linked a pull request Aug 24, 2024 that will close this issue
@Paliak
Copy link
Contributor

Paliak commented Aug 24, 2024

@nofate121 Came up with this #8247 if you'd like to help test.

@ParanoiaIsGreat
Copy link
Author

@Paliak Hi, excuse me, i don't konw how this works, but how long i can expect this to be fixed?

@Paliak
Copy link
Contributor

Paliak commented Aug 27, 2024

@ParanoiaIsGreat First the solution i proposed needs to be tested some more (You can help by downloading my branch). Then the pr has to reviewed and merged by a maintainer. After that it will probably be first available on the beta branch as that is automatically created from dev branch. Releases are manually created by maintainers at their discretion.

@nbrugger-tgm
Copy link

I have the same (or related) issue: https://pobb.in/u/NitonFx/xtG3yNBm-18D

When annointing my amulet the sort by full dps works and seems accurate but when hovering over the annoint in the list it tells me "This annoint changes nothing". When the item is annointed it tells me that saving it (replacing the unnamointed ammulet) wont change anything but as soon as i save/replace it the DPS jumps up. You can try it by removing the annoint

@Paliak
Copy link
Contributor

Paliak commented Sep 15, 2024

@nbrugger-tgm Thanks for providing another test case!

Seems to work correctly when using #8247

obraz

obraz

obraz

The sorting seems slightly faster too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants