Skip to content

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

Closed

Description

@ParanoiaIsGreat

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…

Activity

  1. ParanoiaIsGreat commented on Aug 24, 2024

    @ParanoiaIsGreat
    Author
  2. Paliak commented on Aug 24, 2024

    @Paliak
    Contributor
    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.

  3. Paliak commented on Aug 24, 2024

    @Paliak
    Contributor

    Likely related: #8163

  4. nofate121 commented on Aug 24, 2024

    @nofate121
    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
  5. Paliak commented on Aug 24, 2024

    @Paliak
    Contributor

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

  6. ParanoiaIsGreat commented on Aug 27, 2024

    @ParanoiaIsGreat
    Author

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

  7. Paliak commented on Aug 27, 2024

    @Paliak
    Contributor

    @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.

  8. nbrugger-tgm commented on Sep 15, 2024

    @nbrugger-tgm

    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

  9. Paliak commented on Sep 15, 2024

    @Paliak
    Contributor

    @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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions