Skip to content

Conversation

@Blitz54
Copy link
Contributor

@Blitz54 Blitz54 commented Jun 28, 2025

Fixes #8720

  • Right clicking on a non-allocated mastery opens the tattoo popup.
  • Right clicking on an already allocated mastery that does not have a runegraft operates as before and gives the mastery list.
  • Mastery images update from the tattoo override. Not sure if this is the best way to go about it.
  • Mastery name and stats are replaced with the runegraft.
  • Unallocating the mastery keeps the tattoo icon. But to allocate it, we go through the mastery mod list again and select an available one which is then overridden immediately. The mod is still removed from the mastery list, so other same masteries cannot use it. Need to check in game how that works, but unlikely an issue for now.
  • Keystones on right click work again.

After screenshot:

image

@Blitz54 Blitz54 marked this pull request as ready for review June 28, 2025 02:46
(node.ks == true and treeNodes[selectedNode.id].type == "Keystone"))
and node.MinimumConnected <= numLinkedNodes
and ((node.legacy == nil or node.legacy == false) or node.legacy == self.showLegacyTattoo)
and (node.ks ~= true or treeNodes[selectedNode.id].type == "Keystone") -- <-- prevent keystones on mastery nodes
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thoughts on fixing this through the exporter? Notice how the Keystone tattoos have the targetType of Mastery.

In my attempt at implementing this i fixed it like so:

diff --git a/src/Export/Scripts/tattooPassives.lua b/src/Export/Scripts/tattooPassives.lua
index fa858f61..caab2321 100644
--- a/src/Export/Scripts/tattooPassives.lua
+++ b/src/Export/Scripts/tattooPassives.lua
@@ -101,6 +101,16 @@ local data = { }
 data.nodes = { }
 data.groups = { }

+local tattooDatRows = {}
+for i=1, passiveSkillTattoosDat.rowCount do
+   local tattooDatRow = {}
+   for j=1, #passiveSkillTattoosDat.cols-1 do
+       local key = passiveSkillTattoosDat.spec[j].name
+       tattooDatRow[key] = passiveSkillTattoosDat:ReadCell(i, j)
+   end
+   tattooDatRows[tattooDatRow.Override.Id] = tattooDatRow
+end
+
 for i=1, passiveSkillOverridesDat.rowCount do
    ---@type table<string, boolean|string|number>
    local datFileRow = {}
@@ -109,11 +119,8 @@ for i=1, passiveSkillOverridesDat.rowCount do
        datFileRow[key] = passiveSkillOverridesDat:ReadCell(i, j)
    end

-   local tattooDatRow = {}
-   for j=1, #passiveSkillTattoosDat.cols-1 do
-       local key = passiveSkillTattoosDat.spec[j].name
-       tattooDatRow[key] = passiveSkillTattoosDat:ReadCell(i <= passiveSkillTattoosDat.rowCount and i or passiveSkillTattoosDat.rowCount, j)
-   end
+   local tattooDatRow = tattooDatRows[datFileRow.Id] or tattooDatRows["DisplayRandomKeystone"]
+
    ---@type table<string, boolean|string|number|table>
    local tattooPassiveNode = {}
    -- id
@@ -128,7 +135,7 @@ for i=1, passiveSkillOverridesDat.rowCount do
    -- is notable
    tattooPassiveNode['not'] = tattooDatRow.NodeTarget.Type == "Notable" and true or false
    -- is mastery wheel
-   tattooPassiveNode.m = false
+   tattooPassiveNode.m = datFileRow.TattooType.Id == "AlternateMastery"

    tattooPassiveNode.targetType = tattooDatRow.NodeTarget.Type
    tattooPassiveNode.targetValue = tattooDatRow.NodeTarget.Value

Main thing the above fixes is the assumption that the DisplayRandomKeystone entry is the last in passiveSkillTattoosDat.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Much thanks. Definitely the better way to do it then. I had just assumed it was a GGG error as the targetType for the Keystones was changed in a 3.26 commit.

@LocalIdentity LocalIdentity merged commit cd067cd into PathOfBuildingCommunity:dev Jun 29, 2025
2 checks passed
@LocalIdentity LocalIdentity added the enhancement New feature, calculation, or mod label Jun 29, 2025
@Blitz54 Blitz54 deleted the runegrafting branch June 29, 2025 06:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature, calculation, or mod

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Miliant Faith Jewel Node Click Crash

3 participants