From 1b84a9878b4d831e19683eab861ad42ae7fc899c Mon Sep 17 00:00:00 2001 From: lyy26299 <2629900951@qq.com> Date: Sun, 1 Nov 2026 19:59:27 +0800 Subject: [PATCH] Fix quality on skills granted by items --- spec/System/TestSkills_spec.lua | 12 ++++++++++++ src/Modules/CalcSetup.lua | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/spec/System/TestSkills_spec.lua b/spec/System/TestSkills_spec.lua index 1fd42e662e..81a64a801e 100644 --- a/spec/System/TestSkills_spec.lua +++ b/spec/System/TestSkills_spec.lua @@ -1676,6 +1676,18 @@ describe("TestSkills", function() assert.are.equals(3, grantedGroup.displaySkillList[1].activeEffect.level) end) + it("applies item quality to skills granted by items", function() + local item = new("Item"):Item("New Item\nShrine Sceptre (Purity of Cold)\nQuality: 20\nImplicits: 1\nGrants Skill: Level 1 Purity of Ice") + build.itemsTab:AddItem(item, true) + build.itemsTab.slots["Weapon 1"]:SetSelItemId(item.id) + recalculate() + + local grantedGroup = findGrantedGroup("sourceItem", item) + assert.is_not_nil(grantedGroup) + assert.are.equals("Purity of Ice", grantedGroup.gemList[1].nameSpec) + assert.are.equals(20, grantedGroup.gemList[1].quality) + end) + it("keeps both sets' default attacks and treats a quiver as unarmed", function() local bow = new("Item"):Item("New Item\nCrude Bow") local quiver = new("Item"):Item("New Item\nBroadhead Quiver") diff --git a/src/Modules/CalcSetup.lua b/src/Modules/CalcSetup.lua index 95b78f6bc9..34132e460b 100644 --- a/src/Modules/CalcSetup.lua +++ b/src/Modules/CalcSetup.lua @@ -1950,7 +1950,7 @@ function calcs.initEnv(build, mode, override, specEnv) activeGemInstance.skillId = grantedSkill.skillId activeGemInstance.gemId = nil activeGemInstance.level = grantedSkill.level - activeGemInstance.quality = 0 + activeGemInstance.quality = grantedSkill.sourceItem and grantedSkill.sourceItem.quality or 0 activeGemInstance.enabled = true activeGemInstance.count = 1 activeGemInstance.corrupted = false