Abyss timeless jewels: two-line passives with the same roll range show one roll on both lines

Abierto
#10,432 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 8 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
68/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
lua

Línea de trabajo

Start in src/Classes/PassiveSpec.lua around the Abyss branch at lines 1284–1288 and compare it with the Glorious Vanity handling around line 1313. Check how changedNode.sd, changedNode.sortedStats, and stat indices align, especially for kalguur_notable_22, then inspect the related tree conquest path. Done when each passive line uses its own roll in both the displayed text and calculation; the issue includes reproduction steps and expected values.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

What happens

For Abyss timeless jewels (Destructive Aspiration, Reclaimed Malevolence, etc.), a conquered passive with two lines that share the same roll range shows the same rolled value on both lines, even when the jewel rolled them differently. Which of the two rolls is shown depends on Lua table iteration order, so it can differ between PoB sessions.

Affected legion entries at current dev:

  • abyss_ghastly_small_attribute35 and abyss_special_small_attribute35: "Minions have (2-3)% increased Attack Speed" / "Minions have (2-3)% increased Cast Speed"
  • vaal_notable_dodge_1: "(8-10)% chance to Avoid Elemental Ailments" / "(8-10)% chance to Avoid being Stunned"
  • kalguur_notable_22: "20% faster Restoration of Ward" / "20% faster start of Energy Shield Recharge" (fixed text, replaced through the min ~= value branch)

Steps:

  1. Socket Destructive Aspiration with a seed and socket where a small passive becomes the Minion Attack/Cast Speed node, with different rolls for the two stats (e.g. 2% and 3%). The Timeless Jewel search window shows the two rolls separately.
  2. Hover the passive on the tree.

Expected: "Minions have 2% increased Attack Speed" and "Minions have 3% increased Cast Speed" (each line uses its own roll).
Actual: both lines show the same value (2% and 2%, or 3% and 3%), and the calculation uses that value for both.

Cause

For each output line, the code loops over all stats of the node with pairs() and applies each one's substitution to the line:

replaceHelperFunc replaces the literal "(min-max)" text (or the fixed value):

When both stats have the same range text, whichever stat pairs() visits first fills the placeholder on every line, and the other roll is never used. The Glorious Vanity branch already picks one stat per line via sortedStats[i] (PassiveSpec.lua#L1313), and the Timeless Jewel search reads rolls by stat index with data.getAbyssJewelComponentRoll (TreeTab.lua#L2594-L2595). Only the tree conquest path has this problem.

Possible fix

In the Abyss branch, substitute only the stat that belongs to the line instead of looping over all stats:

for statIndex, statLine in ipairs(changedNode.sd) do
	local statKey = changedNode.sortedStats[statIndex]
	local statMod = changedNode.stats[statKey]
	statLine = replaceHelperFunc(statLine, statKey, statMod, component.rolls[statMod.index])
	...

(Check that sd and sortedStats are aligned for these entries. For kalguur_notable_22, index is the reverse of line order.) The additions loop at PassiveSpec.lua#L1351 uses the same pairs(addition.stats) pattern. It is harmless for single-stat additions.

Lenguaje dominante
Lua
Estrellas
5.5k
Forks
2.4k
Merge medio
6 d 14 h
PR fusionados (30 d)
13

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de PathOfBuildingCommunity/PathOfBuilding

Todos los issues de PathOfBuildingCommunity/PathOfBuilding

Issues similares

Más issues de Lua

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.