You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: implement Way of the Stonefist ascendancy mechanics
Implements the three core mechanics of the Stonefist ascendancy node:
- GloveBaseTypeTransform: overwrites equipped glove armour/evasion/ES values
with the Fists of Stone base stats and injects the three per-level implicit
mods (+2 Evasion, +1 ES, +1 Ward per player level) into modDB each calc pass.
Item state is restored after each pass via env.stonefistRestore.
- IgnoreAttributeRequirementsForGloves: scoped flag that skips attribute
requirement checks only for glove-slot items, without zeroing global
attribute requirements.
- GloveExplicitModTransform stub: flag parsed and ready for the mod-equivalency
lookup phase (Data/ModEquivalencies.lua export script included).
Also adds the Fists of Stone base type to Data/Bases/gloves.lua (armour 44,
evasion 40, ES 15, quality 20), ModParser patterns for all three ascendancy
mod strings, and a full Busted test suite in spec/System/TestStonefist_spec.lua.
Copy file name to clipboardExpand all lines: src/Data/ModCache.lua
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -4478,9 +4478,9 @@ c["Glorifying the defilement of 8000 souls in tribute to Kulemak"]={{[1]={flags=
4478
4478
c["Glorifying the defilement of 8000 souls in tribute to Kurgal"]={{[1]={flags=0,keywordFlags=0,name="JewelData",type="LIST",value={key="conqueredBy",value={conqueror={id=3,type="abyss"},id=8000}}}},nil}
4479
4479
c["Glorifying the defilement of 8000 souls in tribute to Tecrod"]={{[1]={flags=0,keywordFlags=0,name="JewelData",type="LIST",value={key="conqueredBy",value={conqueror={id=4,type="abyss"},id=8000}}}},nil}
4480
4480
c["Glorifying the defilement of 8000 souls in tribute to Ulaman"]={{[1]={flags=0,keywordFlags=0,name="JewelData",type="LIST",value={key="conqueredBy",value={conqueror={id=5,type="abyss"},id=8000}}}},nil}
4481
-
c["Gloves you equip have their Base Type transformed to Fists of Stone while equipped, and"]={nil,"Gloves you equip have their Base Type transformed to Fists of Stone while equipped, and "}
4482
-
c["Gloves you equip have their Base Type transformed to Fists of Stone while equipped, and their Explicit Modifiers are transformed into more powerful related Modifiers"]={nil,"Gloves you equip have their Base Type transformed to Fists of Stone while equipped, and their Explicit Modifiers are transformed into more powerful related Modifiers "}
4483
-
c["Gloves you equip have their Base Type transformed to Fists of Stone while equipped, and their Explicit Modifiers are transformed into more powerful related Modifiers Ignore Attribute Requirements to equip Gloves"]={nil,"Gloves you equip have their Base Type transformed to Fists of Stone while equipped, and their Explicit Modifiers are transformed into more powerful related Modifiers Ignore Attribute Requirements to equip Gloves "}
4481
+
c["Gloves you equip have their Base Type transformed to Fists of Stone while equipped, and"]={{[1]={flags=0,keywordFlags=0,name="GloveBaseTypeTransform",type="FLAG",value=true}},nil}
4482
+
c["Gloves you equip have their Base Type transformed to Fists of Stone while equipped, and their Explicit Modifiers are transformed into more powerful related Modifiers"]={{[1]={flags=0,keywordFlags=0,name="GloveBaseTypeTransform",type="FLAG",value=true},[2]={flags=0,keywordFlags=0,name="GloveExplicitModTransform",type="FLAG",value=true}},nil}
4483
+
c["Gloves you equip have their Base Type transformed to Fists of Stone while equipped, and their Explicit Modifiers are transformed into more powerful related Modifiers Ignore Attribute Requirements to equip Gloves"]={{[1]={flags=0,keywordFlags=0,name="GloveBaseTypeTransform",type="FLAG",value=true},[2]={flags=0,keywordFlags=0,name="GloveExplicitModTransform",type="FLAG",value=true},[3]={flags=0,keywordFlags=0,name="IgnoreAttributeRequirementsForGloves",type="FLAG",value=true}},nil}
["^critical hits deal "] = { tag = { type = "Condition", var = "CriticalStrike" } },
1204
1207
["^poisons you inflict with critical hits have "] = { keywordFlags = bor(KeywordFlag.Poison, KeywordFlag.MatchAll), tag = { type = "Condition", var = "CriticalStrike" } },
@@ -1456,6 +1459,7 @@ local modTagList = {
1456
1459
["per mana burn, up to a maximum of (%d+)%%"] = function(num) return { tag = { type = "Multiplier", var = "ManaBurnStacks", limit = tonumber(num), limitTotal = true } } end,
1457
1460
["per level"] = { tag = { type = "Multiplier", var = "Level" } },
1458
1461
["per (%d+) player levels"] = function(num) return { tag = { type = "Multiplier", var = "Level", div = num } } end,
1462
+
["per player level"] = { tag = { type = "Multiplier", var = "Level" } },
1459
1463
["per defiance"] = { tag = { type = "Multiplier", var = "Defiance" } },
1460
1464
["per (%d+)%% (%a+) effect on enemy"] = function(num, _, effectName) return { tag = { type = "Multiplier", var = firstToUpper(effectName) .. "Effect", div = num, actor = "enemy" } } end,
1461
1465
["per socketed rune or soul core"] = { tag = { type = "Multiplier", var = "RunesSocketedIn{SlotName}" } },
0 commit comments