Skip to content

Commit 20d2a3b

Browse files
PaliakWires77
andauthored
Seperate skill cooldown from trigger cooldown and fix multiple related issues. (#4599)
* FIX: Change the Kitava's Thirst trigger mod description to one that is used in game and add parsing for it. * FIX/FEAT: Correct trigger calculations for Kitava's thirst and Craft trigger. Improve handling of skill cooldown overrride. Add handing for multipler triggers supporting one skill * FIX: Readd a commit lost during rebase that fixes cooldown override. * FIX: Handling of Focus triggers. Triggers assume perfect focus reuse as self casting the focus skill is the only way to obtain focus currently. * FIX: Fix cooldown recovery not applying when using cooldownoverride. * FIX: Fix crashing due to incorrect handling of minion trigger rate calculations. * FIX: Correct calculations for cwdt. Account for possible issues resulting from skillData.cooldown working differently. * FIX: Correct potentially wrong values for "SummonRigwaldsPack" * FEAT: Improve source skill selection for Craft trigger * FIX: Fixing typos and formatting * FIX: Specific handling for Cast When Damage Taken * FIX: Fix max duration not being displayed properly for cwdt * FIX: Handle Cast on Melee kill * FEAT: Add basic support for global triggers * FEAT: Add basic support for spellslinger * FEAT: Add support for Mark on hit * FIX: Improve trigger source selection requirements for a variety of trigger skills * FEAT: Add basic handling for counter attack skills with internal triggers * FEAT: Add breakdown for arcanist brand casts per second calcualtion. Simplify arcanist brand related math. Remove redundant s_format calls * FEAT: Some minor refactoring * FEAT: Refactoring and add support for more unique triggers * FIX: Change skill stat for cwdt * FIX/FEAT: Add support for more uniques and hextouch. Minor refactoring. Fix crash when uniqueTriggerName is nil. * FEAT: Add support for Tawhoa's_Chosen * FIX: minor cleanup * FEAT/FIX: Small improvements to error messages and breakdowns. Fix edge cases with in Tawhoa's Chosen implementation that caused crashes. * FEAT/FIX: Implement Replica Maloney's mechanism. Add extra checks for minion trigger source selection. * FIX: Cleanup and refactoring * FIX: Restrict Tawhoa's Chosen to attack slams not just any slams * FIX: fix trigger source location finding not working for global triggers * FEAT: Add parsing for chance to trigger. Minor cleanup. Skill re export. * FIX: fix multistrike crash caused by bad export * FIX/FEAT: Add recently merged to dev handling for a new flag. Fix some uniques not working due to last skills export. * FEAT: Improve breakdowns when SpellCastTimeAddedToCooldownIfTriggered is set * FEAT: More improvements to breakdowns * FIX: if cast time is added to trigger cooldown it should account for cast time modifiers * FIX: disable unseen strike when not phasing * FEAT: Add proper support for CWC and make it work with lightning conduit * FIX/FEAT: Add better support for addsCastTime to other triggers. Minor cleanup * FIX: more consistent variable names. * FIX: minor cleanup * FIX: fix crash fix arakali's fang using old var * FIX: fix unleash trigger source handling * FIX: remove some redundant code. * FIX: arcanist brand used cooldown for speed. * FIX: arcanist brand breakdown * FIX: Apply QuickStick's arcanist brand formula. * FIX: handling of arcanist brand Now should correctly calculate the impact of multiple linked skills * FIX: minor breakdown formatting fix * FIX: stop tawoah's chosen from using totems * FIX: Use the modlist of the actual brand gem. Arcanist brand has a hidden support gem that supports linked gems and causes them to trigger but most the of important stats are in the mod list of the actual main gem os use that instead. * FIX: better support TriggerDamage mod. Should properly handle TriggerDamage mods such as the ones on arcanist brand. Also fixed arcanist brand config option requiring hit flag. * FIX: trigger damage mods not working for cwc * FIX: fix missing trigger name for holy relic * WIP: major renaming.Changed order of operations. * WIP: more work on reordering application of mods * WIP: Minor fixes for self triggers * WIP: fixes to Tawhoa's Chosen * FIX: prevent the saviour from using totem skills * FIX: icdr not being considered for alignment * FIX: update Cwc/Focus to new format * FIX: misspelled word * FIX: fix kitava's thirst calcs * FIX: add src rate is effective switch Used for Atziri's rule * FIX: breakdown ordering issue * FIX: remove dead code * FIX: self trigger calcs * FIX: hextouch support * FIX: minor fixes to unique various triggers * FIX: spelling issues * FIX: arcanist brand improvements * WIP: implement faster skill rotation simulator Based on: #5428 * WIP: remove unnecessary for loop * FIX: lower sim resolution, implement ceil func with base * FIX: fix Tawhoa's Chosen * FIX: off by one error due to different indexing * FIX: fixed to new simulator * FIX: minor formatting. Comments. * FIX: remove helper func. Minor tweaks. * FIX: spelling issues. * FIX: change func name.Awaiting Dict update. * FIX: adapt Cwc to work with new simulation. * FIX: breakdown clarity. icdr fixes. * FIX: use ceil_b and floor_b. * FIX: crash due to no socketGroup * FIX: hexes applied with hextouch have no mana cost * FIX: hextouch should have no cost * FIX: code formatting * FEAT: implement vixens trigger.Minor fixes * FIX:no sim for self triggers.Smarter breakdowns * WIP: implement Impending doom. Based on #5530 * FIX: fixes to impeding doom breakdown * FIX: Tawhoa's Chosen simulation arguments * FIX: triggered minion skills not using icdr. If minions skills such as summon skeletons were triggered they would not use player icdr mods due to using the wrong actor. Additionally renamed some variables. * WIP: initial work on CWDT loops support * FIX: spelling * FIX: global trigger not working as sources. Use actor variable more often to improve minion skill support * FIX: cd overrides should override trigger cd too. * FIX: ignore dualwield impact if source is global * FIX: limiting scope to self damage only. CWDT loops while a really cool feature are hard to support correctly in POB. Due the amount of assumptions the involved code has to make regarding the state of the loop, the numbers aren't always accurate. Staring with this commit the scope is being limited to only add support for self hit damage as i think it'd be a waste to throw all that code away and that part should work perfectly fine. * FIX: arcanist brand being affected by tickrate * FIX: uuid collision and remove confusing breakdown * DOCS: add coomment. * WIP: mixed group setups and two part skills fix Currently there's an issue with two part skills (active and support) such as Arcanist Brand where the support part will not be applied to skills socketed into the same item but in different groups. An example would be to two groups both socketed into Weapon 1. One having the Arcane Brand skill gem and the other any other skill. The other skill will not be supported by Arcane Surge even though they are socketed into the same item and should be considered as linked. * FIX: spelling * FIX: add handling for shotgunning skills * FIX: null skillpart and copy skill limit recursion * FIX: hide trigger supports if not compatible * FEAT: impl Battlemage's cry trigger * FEAT: impl trigger rate for Combust * FIX: skills from items not counting as sources * FIX: remove unused flag * FIX: unique triggers broken by wrong condition * FEAT: basic support for skills with charges * Add support for Prismatic Burst * FEAT: hook up prismatic burst to trigger logic * FIX: rename kitava's trigger and add threshold * FEAT: comparer func + documenting comments * FIX: spelling * FEAT: hook up shockwave to trigger logic * FIX: avoid scoping wierdness and remove debug log * WIP: manaforged support * FEAT: finish implementaion of manaforged * FIX: red text on imepending doom * FIX: merge issue * FIX: minor issues with spellslinger * FIX: mirager archer crash caused by merge * FIX: small cleanup * FIX:remove remenants of old handling for self trig * FEAT: impl triggerbots * FIX: better tooltip * FIX: cleanup kitava's thirst cond * FIX: spelling * FIX: remove non trigger related changes * WIP: inital work on moving trigger code * WIP: fix arcanist brand crash The defualt trigger handler still needs to be modified to work with the new config format * FIX: variety of new config compatibility issues * FIX: trigger info issues * FIX: variable names, refactoring * FIX: missing variables * FIX: mark mirage archer as a trigger * FIX: missing actor variable * FIX: CWC and added cast time breakdowns * FIX: remove redundant limited processing check * FIX: tweaks to Queen's Demand * FIX: better feedback for COMK * FIX: assumingEveryHitKills is not in config * FIX: Awakened triggers not finding configs * FIX: mark as not a triger when no config found * FIX: ignoresTickRate being overwritten * FIX: self trigger display name crash * FIX/FEAT:impl vengance, use cap rate for self trig * FIX: prevent battlemeage's cry self trigger * FIX: hextouch shoulnd not be a global trigger * FIX: misc fixes --------- Co-authored-by: Wires77 <Wires77@users.noreply.github.com>
1 parent 4b7aa93 commit 20d2a3b

29 files changed

+2222
-1470
lines changed

src/Classes/Item.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1571,6 +1571,7 @@ function ItemClass:BuildModList()
15711571
noSupports = skill.noSupports,
15721572
source = self.modSource,
15731573
triggered = skill.triggered,
1574+
triggerChance = skill.triggerChance
15741575
})
15751576
end
15761577
end

src/Data/SkillStatMap.lua

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,10 @@ return {
185185
skill("triggeredByCraft", nil, { type = "SkillType", skillType = SkillType.Triggerable }, { type = "SkillType", skillType = SkillType.Spell }),
186186
},
187187
["support_cast_on_mana_spent"] = {
188-
skill("triggeredByManaSpent", true, { type = "SkillType", skillType = SkillType.Triggerable }, { type = "SkillType", skillType = SkillType.Spell }),
188+
skill("triggeredByKitavaThirst", true, { type = "SkillType", skillType = SkillType.Triggerable }, { type = "SkillType", skillType = SkillType.Spell }),
189+
},
190+
["cast_when_cast_curse_%"] = {
191+
skill("triggeredByCurseOnCurse", true, { type = "SkillType", skillType = SkillType.Triggerable }, { type = "SkillType", skillType = SkillType.Hex }),
189192
},
190193
["display_mirage_warriors_no_spirit_strikes"] = {
191194
skill("triggeredBySaviour", true, { type = "SkillType", skillType = SkillType.Attack } ),
@@ -197,7 +200,7 @@ return {
197200
skill("chanceToTriggerOnCrit", nil, { type = "SkillType", skillType = SkillType.Attack }),
198201
},
199202
["cast_spell_on_linked_melee_kill"] = {
200-
skill("triggeredByMeleeKill", true, { type = "SkillType", skillType = SkillType.Triggerable }, { type = "SkillType", skillType = SkillType.Spell }),
203+
skill("triggeredByMeleeKill", true, { type = "SkillType", skillType = SkillType.Triggerable }, { type = "SkillType", skillType = SkillType.Spell }, { type = "Condition", var = "KilledRecently" }),
201204
},
202205
["cast_linked_spells_on_melee_kill_%"] = {
203206
skill("chanceToTriggerOnMeleeKill", nil , { type = "SkillType", skillType = SkillType.Attack }, { type = "SkillType", skillType = SkillType.Melee })
@@ -211,6 +214,21 @@ return {
211214
["triggered_by_spiritual_cry"] = {
212215
skill("triggeredByGeneralsCry", true, { type = "SkillType", skillType = SkillType.Melee }, { type = "SkillType", skillType = SkillType.Attack }),
213216
},
217+
["cast_on_damage_taken_threshold"] = {
218+
skill("triggeredByDamageTaken", nil, { type = "SkillType", skillType = SkillType.Triggerable }, { type = "SkillType", skillType = SkillType.Spell }),
219+
},
220+
["cast_on_stunned_%"] = {
221+
skill("triggeredByStunned", nil, { type = "SkillType", skillType = SkillType.Triggerable }, { type = "SkillType", skillType = SkillType.Spell }),
222+
},
223+
["trigger_on_attack_hit_against_rare_or_unique"] = {
224+
skill("triggerMarkOnRareOrUnique", true, { type = "SkillType", skillType = SkillType.Triggerable }, { type = "SkillType", skillType = SkillType.Mark }),
225+
},
226+
["melee_counterattack_trigger_on_block_%"] = {
227+
skill("triggerCounterAttack", nil, { type = "SkillType", skillType = SkillType.Attack }, { type = "SkillType", skillType = SkillType.Triggerable }),
228+
},
229+
["melee_counterattack_trigger_on_hit_%"] = {
230+
skill("triggerCounterAttack", nil, { type = "SkillType", skillType = SkillType.Attack }, { type = "SkillType", skillType = SkillType.Triggerable }),
231+
},
214232
["holy_relic_trigger_on_parent_attack_%"] = {
215233
skill("triggeredByParentAttack", true, { type = "SkillType", skillType = SkillType.Triggerable }),
216234
},
@@ -1640,9 +1658,8 @@ return {
16401658
mod("MaxDoom", "BASE", nil),
16411659
},
16421660
["triggered_vicious_hex_explosion"] = {
1643-
skill("triggeredWhenHexEnds", true, { type = "SkillType", skillType = SkillType.Triggerable }, { type = "SkillType", skillType = SkillType.Spell }),
1661+
skill("triggeredWhenHexEnds", nil, { type = "SkillType", skillType = SkillType.Triggerable }, { type = "SkillType", skillType = SkillType.Spell }),
16441662
},
1645-
16461663
-- Aura
16471664
["non_curse_aura_effect_+%"] = {
16481665
mod("AuraEffect", "INC", nil, 0, 0, { type = "SkillType", skillType = SkillType.AppliesCurse, neg = true }),

src/Data/Skills/act_dex.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10882,6 +10882,7 @@ skills["ChannelledSnipeSupport"] = {
1088210882
requireSkillTypes = { SkillType.RangedAttack, SkillType.ThresholdJewelRangedAttack, SkillType.OR, SkillType.Triggerable, SkillType.AND, },
1088310883
addSkillTypes = { SkillType.Triggered, SkillType.Cooldown, },
1088410884
excludeSkillTypes = { SkillType.SummonsTotem, SkillType.Trapped, SkillType.RemoteMined, SkillType.HasReservation, SkillType.Vaal, SkillType.Instant, SkillType.Channel, },
10885+
isTrigger = true,
1088510886
ignoreMinionTypes = true,
1088610887
weaponTypes = {
1088710888
["Bow"] = true,

src/Data/Skills/act_int.lua

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -914,6 +914,7 @@ skills["SupportDarkRitual"] = {
914914
requireSkillTypes = { SkillType.AppliesCurse, SkillType.Hex, SkillType.AND, },
915915
addSkillTypes = { SkillType.Triggered, },
916916
excludeSkillTypes = { SkillType.Trapped, SkillType.RemoteMined, SkillType.SummonsTotem, SkillType.AuraAffectsEnemies, SkillType.InbuiltTrigger, },
917+
isTrigger = true,
917918
statDescriptionScope = "gem_stat_descriptions",
918919
statMap = {
919920
["apply_linked_curses_with_dark_ritual"] = {
@@ -4475,9 +4476,10 @@ skills["ForbiddenRite"] = {
44754476
if activeSkill.skillPart == 2 then
44764477
activeSkill.skillData.dpsMultiplier = (activeSkill.skillData.dpsMultiplier or 1) * (output.ProjectileCount + 1)
44774478
end
4479+
output.FRDamageTaken = SelfDamageTakenLife + SelfDamageTakenES + chaosFlat
44784480
if breakdown then
44794481
local FRDamageTaken = {}
4480-
t_insert(FRDamageTaken, "Damage Taken per Cast")
4482+
t_insert(FRDamageTaken, s_format("Damage Taken per cast from Forbidden Rite: %d", output.FRDamageTaken))
44814483
t_insert(FRDamageTaken, s_format("^8=^7 %d^8 (Life) *^7 %d%%^8 (of Life taken as Chaos Damage)", life, activeSkill.skillData.SelfDamageTakenLife * 100))
44824484
if energyShield ~= 0 then
44834485
t_insert(FRDamageTaken, s_format("^8+^7 %d^8 (ES) *^7 %d%%^8 (of ES taken as Chaos Damage)", energyShield, activeSkill.skillData.SelfDamageTakenES * 100))
@@ -4489,10 +4491,8 @@ skills["ForbiddenRite"] = {
44894491
if chaosDamageTaken ~= 1 then
44904492
t_insert(FRDamageTaken, s_format("^8 *^7 %.2f^8 (Damage taken Multiplier)", chaosDamageTaken))
44914493
end
4492-
t_insert(FRDamageTaken, s_format("^8=^7 %d^8 (Damage taken)", SelfDamageTakenLife + SelfDamageTakenES + chaosFlat))
44934494
breakdown.FRDamageTaken = FRDamageTaken
44944495
end
4495-
output.FRDamageTaken = SelfDamageTakenLife + SelfDamageTakenES + chaosFlat
44964496
end,
44974497
statMap = {
44984498
["skill_base_chaos_damage_%_maximum_life"] = {
@@ -9520,6 +9520,7 @@ skills["SupportSpellslinger"] = {
95209520
requireSkillTypes = { SkillType.Triggerable, SkillType.Spell, SkillType.AND, },
95219521
addSkillTypes = { SkillType.Triggered, SkillType.HasReservation, SkillType.Cooldown, },
95229522
excludeSkillTypes = { SkillType.Trapped, SkillType.RemoteMined, SkillType.SummonsTotem, SkillType.HasReservation, SkillType.Triggered, SkillType.NOT, SkillType.AND, SkillType.InbuiltTrigger, },
9523+
isTrigger = true,
95239524
supportGemsOnly = true,
95249525
ignoreMinionTypes = true,
95259526
statDescriptionScope = "gem_stat_descriptions",
@@ -9531,6 +9532,7 @@ skills["SupportSpellslinger"] = {
95319532
mod("Damage", "MORE", nil, 0, bit.bor(KeywordFlag.Hit, KeywordFlag.Ailment)),
95329533
},
95339534
["spellslinger_trigger_on_wand_attack_%"] = {
9535+
skill("triggeredBySpellSlinger", nil, { type = "SkillType", skillType = SkillType.Triggerable }, { type = "SkillType", skillType = SkillType.Spell }),
95349536
},
95359537
},
95369538
baseMods = {
@@ -9690,6 +9692,7 @@ skills["SupportBrandSupport"] = {
96909692
requireSkillTypes = { SkillType.Triggerable, SkillType.Spell, SkillType.AND, },
96919693
addSkillTypes = { SkillType.Triggered, },
96929694
excludeSkillTypes = { SkillType.Trapped, SkillType.RemoteMined, SkillType.SummonsTotem, SkillType.HasReservation, SkillType.InbuiltTrigger, },
9695+
isTrigger = true,
96939696
ignoreMinionTypes = true,
96949697
statDescriptionScope = "gem_stat_descriptions",
96959698
addFlags = {
@@ -9703,7 +9706,7 @@ skills["SupportBrandSupport"] = {
97039706
mod("AreaOfEffect", "MORE", nil),
97049707
},
97059708
["trigger_brand_support_hit_damage_+%_final_vs_branded_enemy"] = {
9706-
mod("TriggeredDamage", "MORE", nil, ModFlag.Hit, 0, { type = "Condition", var = "TargetingBrandedEnemy"}),
9709+
mod("TriggeredDamage", "MORE", nil, 0, 0, { type = "Condition", var = "TargetingBrandedEnemy"}),
97079710
},
97089711
},
97099712
addSkillTypes = { SkillType.Brand, },
@@ -11480,6 +11483,7 @@ skills["TempestShield"] = {
1148011483
chaining = true,
1148111484
},
1148211485
baseMods = {
11486+
skill("triggerCounterAttack", 100, { type = "SkillType", skillType = SkillType.Spell }),
1148311487
mod("AvoidShock", "BASE", 100, 0, 0, { type = "GlobalEffect", effectType = "Buff", unscalable = true }),
1148411488
},
1148511489
qualityStats = {

src/Data/Skills/act_str.lua

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,9 @@ skills["AbyssalCry"] = {
206206
["infernal_cry_covered_in_ash_fire_damage_taken_%_per_5_monster_power"] = {
207207
mod("InfernalFireTakenPer5MP", "BASE", nil),
208208
},
209+
["infernal_cry_empowered_attacks_trigger_combust_display"] = {
210+
-- Display only
211+
},
209212
},
210213
baseFlags = {
211214
warcry = true,
@@ -309,6 +312,11 @@ skills["InfernalCryOnHitExplosion"] = {
309312
},
310313
statDescriptionScope = "skill_stat_descriptions",
311314
castTime = 1,
315+
statMap = {
316+
["triggered_by_infernal_cry"] = {
317+
-- Display only
318+
},
319+
},
312320
baseFlags = {
313321
attack = true,
314322
melee = true,
@@ -1024,6 +1032,9 @@ skills["BattlemagesCry"] = {
10241032
["divine_cry_critical_strike_chance_+%_per_5_power_up_to_cap%"] = {
10251033
mod("BattlemageCritChancePer5MP", "BASE", nil),
10261034
},
1035+
["display_battlemage_cry_exerted_attacks_trigger_supported_spell"] ={
1036+
-- Display only
1037+
},
10271038
},
10281039
baseFlags = {
10291040
area = true,
@@ -1108,8 +1119,17 @@ skills["BattlemagesCrySupport"] = {
11081119
requireSkillTypes = { SkillType.Spell, SkillType.Triggerable, SkillType.AND, },
11091120
addSkillTypes = { SkillType.Triggered, },
11101121
excludeSkillTypes = { SkillType.Trapped, SkillType.RemoteMined, SkillType.SummonsTotem, SkillType.HasReservation, SkillType.InbuiltTrigger, },
1122+
isTrigger = true,
11111123
ignoreMinionTypes = true,
11121124
statDescriptionScope = "gem_stat_descriptions",
1125+
statMap = {
1126+
["support_divine_cry_damage_+%_final"] = {
1127+
mod("Damage", "MORE", nil),
1128+
},
1129+
["triggered_by_divine_cry"] = {
1130+
skill("triggeredByBattleMageCry", true),
1131+
},
1132+
},
11131133
qualityStats = {
11141134
Default = {
11151135
{ "dummy_stat_display_nothing", 0 },
@@ -1569,7 +1589,7 @@ skills["Boneshatter"] = {
15691589
end
15701590

15711591
if breakdown then
1572-
t_insert(BSDamageTaken, "Total damage taken: "..round(totalDamageTaken))
1592+
t_insert(BSDamageTaken, s_format("Total damage taken from Boneshatter per attack: %d", totalDamageTaken))
15731593
breakdown.BSDamageTaken = BSDamageTaken
15741594
output.BSDamageTaken = totalDamageTaken
15751595
end

src/Data/Skills/other.lua

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ skills["SupportTriggerSpellOnBowAttack"] = {
119119
requireSkillTypes = { SkillType.Spell, SkillType.Triggerable, SkillType.AND, },
120120
addSkillTypes = { SkillType.Triggered, SkillType.Cooldown, },
121121
excludeSkillTypes = { SkillType.Trapped, SkillType.RemoteMined, SkillType.SummonsTotem, SkillType.Aura, SkillType.InbuiltTrigger, },
122+
isTrigger = true,
122123
statDescriptionScope = "gem_stat_descriptions",
123124
fromItem = true,
124125
stats = {
@@ -646,6 +647,7 @@ skills["SupportUniqueCosprisMaliceColdSpellsCastOnMeleeCriticalStrike"] = {
646647
requireSkillTypes = { SkillType.Spell, SkillType.Cold, SkillType.Triggerable, SkillType.AND, SkillType.AND, },
647648
addSkillTypes = { SkillType.Triggered, SkillType.Cooldown, },
648649
excludeSkillTypes = { SkillType.Trapped, SkillType.RemoteMined, SkillType.SummonsTotem, SkillType.Aura, SkillType.InbuiltTrigger, },
650+
isTrigger = true,
649651
statDescriptionScope = "gem_stat_descriptions",
650652
fromItem = true,
651653
stats = {
@@ -1391,6 +1393,7 @@ skills["SupportTriggerSpellFromHelmet"] = {
13911393
requireSkillTypes = { SkillType.Spell, SkillType.Triggerable, SkillType.AND, },
13921394
addSkillTypes = { SkillType.Triggered, SkillType.Cooldown, },
13931395
excludeSkillTypes = { SkillType.Trapped, SkillType.RemoteMined, SkillType.SummonsTotem, SkillType.Aura, SkillType.InbuiltTrigger, },
1396+
isTrigger = true,
13941397
statDescriptionScope = "gem_stat_descriptions",
13951398
fromItem = true,
13961399
constantStats = {
@@ -1474,9 +1477,6 @@ skills["GoreShockwave"] = {
14741477
statDescriptionScope = "skill_stat_descriptions",
14751478
castTime = 1,
14761479
fromItem = true,
1477-
preDamageFunc = function(activeSkill, output)
1478-
activeSkill.skillData.timeOverride = output.Cooldown
1479-
end,
14801480
baseFlags = {
14811481
attack = true,
14821482
area = true,
@@ -1673,6 +1673,7 @@ skills["SupportCastOnManaSpent"] = {
16731673
requireSkillTypes = { SkillType.Spell, SkillType.Triggerable, SkillType.AND, },
16741674
addSkillTypes = { SkillType.Triggered, SkillType.Cooldown, },
16751675
excludeSkillTypes = { SkillType.Trapped, SkillType.RemoteMined, SkillType.SummonsTotem, SkillType.Aura, SkillType.InbuiltTrigger, },
1676+
isTrigger = true,
16761677
statDescriptionScope = "gem_stat_descriptions",
16771678
fromItem = true,
16781679
stats = {
@@ -1782,6 +1783,7 @@ skills["SupportTriggerBowSkillOnBowAttack"] = {
17821783
requireSkillTypes = { SkillType.RangedAttack, SkillType.Triggerable, SkillType.AND, },
17831784
addSkillTypes = { SkillType.Triggered, SkillType.Cooldown, },
17841785
excludeSkillTypes = { SkillType.SummonsTotem, SkillType.Trapped, SkillType.RemoteMined, SkillType.Vaal, SkillType.InbuiltTrigger, },
1786+
isTrigger = true,
17851787
statDescriptionScope = "gem_stat_descriptions",
17861788
fromItem = true,
17871789
stats = {
@@ -1846,6 +1848,7 @@ skills["SupportUniqueMjolnerLightningSpellsCastOnHit"] = {
18461848
requireSkillTypes = { SkillType.Spell, SkillType.Lightning, SkillType.Triggerable, SkillType.AND, SkillType.AND, },
18471849
addSkillTypes = { SkillType.Triggered, SkillType.Cooldown, },
18481850
excludeSkillTypes = { SkillType.Trapped, SkillType.RemoteMined, SkillType.SummonsTotem, SkillType.Aura, SkillType.InbuiltTrigger, },
1851+
isTrigger = true,
18491852
statDescriptionScope = "gem_stat_descriptions",
18501853
fromItem = true,
18511854
stats = {
@@ -1925,6 +1928,7 @@ skills["SupportTriggerSpellOnAttack"] = {
19251928
requireSkillTypes = { SkillType.Spell, SkillType.Triggerable, SkillType.AND, },
19261929
addSkillTypes = { SkillType.Triggered, SkillType.Cooldown, },
19271930
excludeSkillTypes = { SkillType.Trapped, SkillType.RemoteMined, SkillType.SummonsTotem, SkillType.Aura, SkillType.InbuiltTrigger, },
1931+
isTrigger = true,
19281932
statDescriptionScope = "gem_stat_descriptions",
19291933
fromItem = true,
19301934
stats = {
@@ -3078,6 +3082,11 @@ skills["SummonMirageChieftain"] = {
30783082
statDescriptionScope = "skill_stat_descriptions",
30793083
castTime = 0,
30803084
fromTree = true,
3085+
statMap = {
3086+
["skill_used_by_mirage_chieftain_damage_+%_final"] = {
3087+
mod("ChieftainMirageChieftainMoreDamage", "BASE", nil),
3088+
},
3089+
},
30813090
baseFlags = {
30823091
spell = true,
30833092
duration = true,
@@ -3162,6 +3171,7 @@ skills["SupportTriggerSpellOnSkillUse"] = {
31623171
requireSkillTypes = { SkillType.Spell, SkillType.Triggerable, SkillType.AND, },
31633172
addSkillTypes = { SkillType.Triggered, SkillType.Cooldown, },
31643173
excludeSkillTypes = { SkillType.Trapped, SkillType.RemoteMined, SkillType.SummonsTotem, SkillType.Aura, SkillType.InbuiltTrigger, },
3174+
isTrigger = true,
31653175
statDescriptionScope = "gem_stat_descriptions",
31663176
fromItem = true,
31673177
constantStats = {
@@ -3356,6 +3366,27 @@ skills["VoidShot"] = {
33563366
[20] = { damageEffectiveness = 0.65, PvPDamageMultiplier = -80, baseMultiplier = 0.65, levelRequirement = 70, },
33573367
},
33583368
}
3369+
skills["SupportUniqueCastCurseOnCurse"] = {
3370+
name = "Vixen's Entrapment",
3371+
hidden = true,
3372+
color = 4,
3373+
support = true,
3374+
requireSkillTypes = { SkillType.AppliesCurse, },
3375+
addSkillTypes = { SkillType.Triggered, SkillType.Cooldown, },
3376+
excludeSkillTypes = { SkillType.Trapped, SkillType.RemoteMined, SkillType.SummonsTotem, SkillType.AuraAffectsEnemies, SkillType.InbuiltTrigger, },
3377+
isTrigger = true,
3378+
statDescriptionScope = "gem_stat_descriptions",
3379+
fromItem = true,
3380+
constantStats = {
3381+
{ "cast_when_cast_curse_%", 100 },
3382+
},
3383+
stats = {
3384+
"cannot_cast_curses",
3385+
},
3386+
levels = {
3387+
[1] = { storedUses = 1, levelRequirement = 0, cooldown = 0.25, },
3388+
},
3389+
}
33593390
skills["EnemyExplode"] = {
33603391
name = "On Kill Monster Explosion",
33613392
hidden = true,

src/Data/Skills/sup_dex.lua

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -654,6 +654,7 @@ skills["SupportCastOnCritTriggered"] = {
654654
requireSkillTypes = { SkillType.Spell, SkillType.Triggerable, SkillType.AND, },
655655
addSkillTypes = { SkillType.Triggered, SkillType.Cooldown, },
656656
excludeSkillTypes = { SkillType.Trapped, SkillType.RemoteMined, SkillType.SummonsTotem, SkillType.HasReservation, SkillType.InbuiltTrigger, },
657+
isTrigger = true,
657658
ignoreMinionTypes = true,
658659
statDescriptionScope = "gem_stat_descriptions",
659660
statMap = {
@@ -777,6 +778,7 @@ skills["SupportCastOnCritTriggeredPlus"] = {
777778
requireSkillTypes = { SkillType.Spell, SkillType.Triggerable, SkillType.AND, },
778779
addSkillTypes = { SkillType.Triggered, SkillType.Cooldown, },
779780
excludeSkillTypes = { SkillType.Trapped, SkillType.RemoteMined, SkillType.SummonsTotem, SkillType.HasReservation, SkillType.InbuiltTrigger, },
781+
isTrigger = true,
780782
ignoreMinionTypes = true,
781783
plusVersionOf = "SupportCastOnCritTriggered",
782784
statDescriptionScope = "gem_stat_descriptions",
@@ -828,6 +830,7 @@ skills["SupportCastOnDeath"] = {
828830
requireSkillTypes = { SkillType.Spell, SkillType.Triggerable, SkillType.AND, },
829831
addSkillTypes = { SkillType.Triggered, },
830832
excludeSkillTypes = { SkillType.Minion, SkillType.Trapped, SkillType.RemoteMined, SkillType.SummonsTotem, SkillType.Aura, SkillType.InbuiltTrigger, },
833+
isTrigger = true,
831834
statDescriptionScope = "gem_stat_descriptions",
832835
statMap = {
833836
["area_of_effect_+%_while_dead"] = {
@@ -2751,6 +2754,7 @@ skills["SupportMarkOnHit"] = {
27512754
requireSkillTypes = { SkillType.AppliesCurse, SkillType.Mark, SkillType.AND, SkillType.Triggerable, SkillType.AND, },
27522755
addSkillTypes = { SkillType.Triggered, SkillType.Cooldown, },
27532756
excludeSkillTypes = { SkillType.Trapped, SkillType.RemoteMined, SkillType.SummonsTotem, SkillType.HasReservation, SkillType.InbuiltTrigger, },
2757+
isTrigger = true,
27542758
statDescriptionScope = "gem_stat_descriptions",
27552759
statMap = {
27562760
["mark_skills_curse_effect_+%"] = {
@@ -2828,6 +2832,7 @@ skills["SupportGemMirageArcher"] = {
28282832
excludeSkillTypes = { SkillType.Vaal, SkillType.SummonsTotem, SkillType.Trapped, SkillType.RemoteMined, SkillType.Minion, },
28292833
ignoreMinionTypes = true,
28302834
statDescriptionScope = "gem_stat_descriptions",
2835+
isTrigger = true,
28312836
statMap = {
28322837
["support_mirage_archer_base_duration"] = {
28332838
mod("MirageArcherDuration", "BASE", nil),
@@ -4374,6 +4379,7 @@ skills["SupportManaforgedArrows"] = {
43744379
requireSkillTypes = { SkillType.Triggerable, SkillType.Attack, SkillType.AND, },
43754380
addSkillTypes = { SkillType.Triggered, SkillType.Cooldown, },
43764381
excludeSkillTypes = { SkillType.Trapped, SkillType.RemoteMined, SkillType.SummonsTotem, SkillType.HasReservation, },
4382+
isTrigger = true,
43774383
ignoreMinionTypes = true,
43784384
weaponTypes = {
43794385
["Bow"] = true,
@@ -4387,8 +4393,8 @@ skills["SupportManaforgedArrows"] = {
43874393
mod("Damage", "MORE", nil, 0, 0, { type = "PerStat", stat = "ManaCost" }),
43884394
},
43894395
["support_manaforged_arrows_mana_cost_%_threshold"] = {
4390-
skill("triggeredByManaPercentSpent", true, { type = "SkillType", skillType = SkillType.Triggerable }),
4391-
skill("TriggerSkillManaSpentMultiRequirement", nil),
4396+
skill("triggeredByManaforged", true, { type = "SkillType", skillType = SkillType.Triggerable }),
4397+
skill("ManaForgedArrowsPercentThreshold", nil),
43924398
div = 100,
43934399
},
43944400
},

0 commit comments

Comments
 (0)