Tree hover preview uses the stale Split Personality distance to class start
Maintainer thường phản hồi trong vòng 8 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 55/100
Hướng nghiên cứu
Start with src/Modules/CalcSetup.lua around the jewel scaling and hover preview code, then read src/Classes/PassiveSpec.lua for how distanceToClassStart is built. Trace how override.addNodes and removeNodes affect env.allocNodes, and compare the preview with the result after allocation. Done when the preview uses the hypothetical path distance and matches the post-allocation Split Personality bonus.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
What happens
The passive tree hover preview ("allocating this node will give you...") for a node that changes a Split Personality socket's distance to the class start uses the current distance, not the distance after the allocation. The preview then disagrees with the result after clicking.
The easiest case to reproduce (derived from the code):
- Allocate a jewel socket some way from your class start and socket Split Personality in it. Note the jewel's bonus (e.g. "+N to Strength", scaled by 25% per passive between the socket and the class start).
- Deallocate only the socket node (keep the path to it), so the jewel stays assigned to the now-unallocated socket.
- Hover the socket node.
Expected: the preview shows the Split Personality bonus at the scaled value you get after allocating the socket.
Actual: the preview shows the jewel at its unscaled base value (distance 0). After clicking, the stats are higher than the preview said.
The same happens when you hover a node that gives an allocated Split Personality socket a shorter (or longer) allocated path to the class start: the preview uses the old distance.
Cause
The jewel scale is read from the node's cached distanceToClassStart:
distanceToClassStart is only written by PassiveSpec:BuildAllDependsAndPaths from the live allocation. It is reset to 0 for every socket and then set only for allocated sockets, walking only allocated nodes:
- https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/a69391d6daaaea1aaf8054668a094aad88dd7eaa/src/Classes/PassiveSpec.lua#L1655
- https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/a69391d6daaaea1aaf8054668a094aad88dd7eaa/src/Classes/PassiveSpec.lua#L1712-L1716
- https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/a69391d6daaaea1aaf8054668a094aad88dd7eaa/src/Classes/PassiveSpec.lua#L949-L953
The hover preview runs CALCULATOR mode with override.addNodes/removeNodes (CalcSetup.lua#L726-L729). That changes env.allocNodes (so the jewel in the not-yet-allocated socket applies, #L860), but the distance is never worked out again for the hypothetical allocation.
Possible fix
When override.addNodes/removeNodes is present, work out the distance for sockets holding a jewelIncEffectFromClassStart jewel against env.allocNodes (same breadth-first search as SetNodeDistanceToClassStart), instead of reading the cached node field.
- Ngôn ngữ chính
- Lua
- Star
- 5.5k
- Fork
- 2.4k
- Merge trung bình
- 6 ngày 14 giờ
- Pull request đã merge (30 ngày)
- 13
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của PathOfBuildingCommunity/PathOfBuilding
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
PathOfBuildingCommunity/PathOfBuilding#10431 ·
Maintainer thường phản hồi trong vòng 8 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 79/100
PathOfBuildingCommunity/PathOfBuilding#10428 ·
Maintainer thường phản hồi trong vòng 8 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 60/100
PathOfBuildingCommunity/PathOfBuilding#10420 ·
Maintainer thường phản hồi trong vòng 8 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
PathOfBuildingCommunity/PathOfBuilding#10395 ·
Maintainer thường phản hồi trong vòng 8 ngày
-
bug: accuracy
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
PathOfBuildingCommunity/PathOfBuilding#9911 ·
Maintainer thường phản hồi trong vòng 8 ngày
Tất cả issue của PathOfBuildingCommunity/PathOfBuilding
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 5 ngày
-
enhancement priority::low upstream
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug reviewed-by-AI
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
olimorris/codecompanion.nvim#3508 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
The Balanced badge stays on a card after it changes to an enhancement that isn't rebalancedCó thể đã có người làm @Jr-JoshS đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 71/100
Balatro-Multiplayer/BalatroMultiplayerPvP#640 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Babies count as citizens for housing and the lost-fort check, though a baby uses no bed or seatĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Layr-Labs/arena-fortress#141 ·
Maintainer thường phản hồi trong vòng 1 ngày