Skip to content

Commit eefe1fd

Browse files
authored
Implement trigger config matching and FieryImpactHeistMaceImplicit, TriggeredMoltenStrike skills (#9953)
* FEAT: impl config search by skillid and support for FieryImpactHeistMaceImplicit and TriggeredMoltenStrike Signed-off-by: Paliak <91493239+Paliak@users.noreply.github.com> * TEST: add basic test for config matching by skillId Signed-off-by: Paliak <91493239+Paliak@users.noreply.github.com> * FIX: spell check Signed-off-by: Paliak <91493239+Paliak@users.noreply.github.com> --------- Signed-off-by: Paliak <91493239+Paliak@users.noreply.github.com>
1 parent 11b5f9b commit eefe1fd

3 files changed

Lines changed: 42 additions & 1 deletion

File tree

spec/System/TestTriggers_spec.lua

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1409,4 +1409,36 @@ describe("TestTriggers", function()
14091409
runCallback("OnFrame")
14101410
assert.are.not_equals(math.floor(build.calcsTab.mainOutput.SkillTriggerRate * 100), math.floor(baseRate * 100))
14111411
end)
1412+
1413+
it("skillId config search", function()
1414+
build.itemsTab:CreateDisplayItemFromRaw([[Rarity: RARE
1415+
Physical 1H Mace
1416+
Boom Mace
1417+
Crafted: true
1418+
Prefix: {range:0.5}LocalIncreasedPhysicalDamagePercent5
1419+
Prefix: {range:0.5}LocalIncreasedPhysicalDamagePercentAndAccuracyRating5
1420+
Prefix: {range:0.5}LocalAddedPhysicalDamage6
1421+
Suffix: {range:0.5}LocalIncreasedAttackSpeed3
1422+
Suffix: {range:0.5}LocalCriticalStrikeChance3
1423+
Suffix: {range:0.5}LocalCriticalMultiplier4
1424+
Quality: 20
1425+
Sockets: R-R-R
1426+
LevelReq: 70
1427+
Implicits: 1
1428+
Trigger Level 20 Fiery Impact on Melee Hit with this Weapon
1429+
172% increased Physical Damage
1430+
Adds 16 to 29 Physical Damage
1431+
12% increased Attack Speed
1432+
22% increased Critical Strike Chance
1433+
+27% to Global Critical Strike Multiplier
1434+
+111 to Accuracy Rating]])
1435+
build.itemsTab:AddDisplayItem()
1436+
runCallback("OnFrame")
1437+
1438+
build.skillsTab:PasteSocketGroup("Smite 20/0 1\n")
1439+
runCallback("OnFrame")
1440+
1441+
local baseRate = build.calcsTab.mainOutput.SkillTriggerRate
1442+
assert.True(build.calcsTab.mainOutput.SkillTriggerRate ~= nil)
1443+
end)
14121444
end)

src/Modules/CalcTriggers.lua

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1540,6 +1540,12 @@ local configTable = {
15401540
return {source = env.player.mainSkill}
15411541
end
15421542
end,
1543+
["TriggeredMoltenStrike"] = function(env)
1544+
return {triggerSkillCond = function(env, skill) return (skill.skillTypes[SkillType.Melee] or skill.skillTypes[SkillType.Attack]) end}
1545+
end,
1546+
["FieryImpactHeistMaceImplicit"] = function(env)
1547+
return {triggerSkillCond = function(env, skill) return (skill.skillTypes[SkillType.Melee] or skill.skillTypes[SkillType.Attack]) end}
1548+
end,
15431549
}
15441550

15451551
-- Find unique item trigger name
@@ -1569,7 +1575,9 @@ function calcs.triggers(env, actor)
15691575
local triggerNameLower = triggerName and triggerName:lower()
15701576
local awakenedTriggerNameLower = triggerNameLower and triggerNameLower:gsub("^awakened ", "")
15711577
local uniqueNameLower = uniqueName and uniqueName:lower()
1572-
local config = skillNameLower and configTable[skillNameLower] and configTable[skillNameLower](env)
1578+
local skillId = actor.mainSkill.activeEffect.grantedEffect.id
1579+
local config = skillId and configTable[skillId] and configTable[skillId](env)
1580+
config = config or skillNameLower and configTable[skillNameLower] and configTable[skillNameLower](env)
15731581
config = config or triggerNameLower and configTable[triggerNameLower] and configTable[triggerNameLower](env)
15741582
config = config or awakenedTriggerNameLower and configTable[awakenedTriggerNameLower] and configTable[awakenedTriggerNameLower](env)
15751583
config = config or uniqueNameLower and configTable[uniqueNameLower] and configTable[uniqueNameLower](env)

src/Modules/ModParser.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3201,6 +3201,7 @@ local specialModList = {
32013201
["trigger level (%d+) (.+) when you lose cat's stealth"] = function(num, _, skill) return triggerExtraSkill(skill, num) end,
32023202
["trigger level (%d+) (.+) when your trap is triggered"] = function(num, _, skill) return triggerExtraSkill(skill, num) end,
32033203
["trigger level (%d+) (.+) on hit with this weapon"] = function(num, _, skill) return triggerExtraSkill(skill, num) end,
3204+
["trigger level (%d+) (.+) on melee hit"] = function(num, _, skill) return triggerExtraSkill(skill, num) end,
32043205
["trigger level (%d+) (.+) on melee hit while cursed"] = function(num, _, skill) return triggerExtraSkill(skill, num) end,
32053206
["trigger level (%d+) (.+) on melee hit with this weapon"] = function(num, _, skill) return triggerExtraSkill(skill, num) end,
32063207
["trigger level (%d+) (.+) every [%d%.]+ seconds while phasing"] = function(num, _, skill) return triggerExtraSkill(skill, num) end,

0 commit comments

Comments
 (0)