Second Historic jewel's conquered passives apply or not depending on edit history
Maintainer antworten meist innerhalb von 8 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 55/100
Rechercherichtung
Read src/Modules/CalcSetup.lua around the jewel-limit handling, then trace how src/Classes/PassiveSpec.lua uses item.jewelData.limitDisabled when rebuilding tree paths; compare that with the build load order described in the issue. Reproduce with two Limited to: 1 Historic jewels and Ignore Jewel Limits off, then allocate and deallocate an unrelated passive. Done means the second jewel's conquests and resulting totals stay consistent before and after the edit.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
What happens
With two "Limited to: 1 Historic" timeless jewels socketed in allocated sockets and Ignore Jewel Limits unticked, the second jewel's conquered passives (the changed notables and the added small-node stats) are applied or not depending on what you did since the build was opened. The same build gives different numbers.
Steps (derived from the code):
- Allocate two jewel sockets and socket a timeless jewel (e.g. two Lethal Pride) in each. Keep Ignore Jewel Limits unticked (the jewel limit warning appears).
- Save and reopen the build. Note the stats and look at the passives in the second jewel's radius.
- Allocate any unrelated passive, then deallocate it again.
Expected: the same numbers before and after step 3. Either the second jewel's conquests never apply (consistent with the limit) or they always do.
Actual: right after opening, the passives in both jewels' radii are shown and counted as conquered. After the allocate/deallocate (or any other edit that rebuilds the tree paths), the second jewel's passives go back to normal and the totals change. Reopening the build brings the first numbers back.
Cause
The jewel limit is applied in CalcSetup, which sets and clears item.jewelData.limitDisabled on the item as a side effect of each calculation:
The tree code decides which jewels conquer or scan their radius by reading that flag. This applies to both Abyss timeless conquests and the radius scan used for Legion conquests:
- https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/a69391d6daaaea1aaf8054668a094aad88dd7eaa/src/Classes/PassiveSpec.lua#L1136-L1150
- https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/a69391d6daaaea1aaf8054668a094aad88dd7eaa/src/Classes/PassiveSpec.lua#L1153-L1162
On load the tree is built after the items (Build.lua#L654-L677) but before the first calculation, so the flag is still nil on every jewel and both jewels conquer. The first calculation then marks the second jewel limitDisabled, but the tree is not rebuilt. The second jewel's conquests stay until the next BuildAllDependsAndPaths, which then drops them. So PassiveSpec reads whatever the previous calculation left behind.
Possible fix
Decide the jewel limit in one place from the build itself (socket order + Ignore Jewel Limits), and have both PassiveSpec:BuildAllDependsAndPaths and CalcSetup use it. Or rebuild the tree paths when a calculation changes any limitDisabled value. Either way the tree no longer depends on the previous calculation.
- Vorherrschende Sprache
- Lua
- Sterne
- 5.5k
- Forks
- 2.4k
- Ø Merge
- 6 T. 14 Std.
- Gemergte PRs (30 T.)
- 13
Entwicklungsumgebung
- Enthält ein Dockerfile oder eine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus PathOfBuildingCommunity/PathOfBuilding
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
PathOfBuildingCommunity/PathOfBuilding#10431 ·
Maintainer antworten meist innerhalb von 8 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 79/100
PathOfBuildingCommunity/PathOfBuilding#10428 ·
Maintainer antworten meist innerhalb von 8 Tagen
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 60/100
PathOfBuildingCommunity/PathOfBuilding#10420 ·
Maintainer antworten meist innerhalb von 8 Tagen
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
PathOfBuildingCommunity/PathOfBuilding#10395 ·
Maintainer antworten meist innerhalb von 8 Tagen
-
bug: accuracy
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
PathOfBuildingCommunity/PathOfBuilding#9911 ·
Maintainer antworten meist innerhalb von 8 Tagen
Alle Issues in PathOfBuildingCommunity/PathOfBuilding
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 5 Tagen
-
enhancement priority::low upstream
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
bug reviewed-by-AI
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
olimorris/codecompanion.nvim#3508 ·
Maintainer antworten meist innerhalb von 1 Tag
-
The Balanced badge stays on a card after it changes to an enhancement that isn't rebalancedEvtl. vergeben @Jr-JoshS hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 71/100
Balatro-Multiplayer/BalatroMultiplayerPvP#640 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Babies count as citizens for housing and the lost-fort check, though a baby uses no bed or seatOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Layr-Labs/arena-fortress#141 ·
Maintainer antworten meist innerhalb von 1 Tag