Skip to content

Commit 7ecb437

Browse files
PJacekLocalIdentity
andauthored
Add support for some intelligence supports (#152)
* Add support for some intelligence supports * Fix stats --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
1 parent 033e66a commit 7ecb437

File tree

4 files changed

+94
-8
lines changed

4 files changed

+94
-8
lines changed

src/Data/SkillStatMap.lua

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,9 @@ return {
578578
mod("CritChance", "OVERRIDE", nil),
579579
value = 100,
580580
},
581+
["global_cannot_crit"] = {
582+
flag("NeverCrit"),
583+
},
581584
["base_critical_strike_multiplier_+"] = {
582585
mod("CritMultiplier", "BASE", nil),
583586
},
@@ -2300,4 +2303,7 @@ return {
23002303
["retaliation_base_use_window_duration_ms"] = {
23012304
-- Display only
23022305
},
2306+
["nova_skills_cast_at_target_location"] = {
2307+
-- Display only
2308+
}
23032309
}

src/Data/Skills/sup_int.lua

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,11 @@ skills["SupportFasterCastPlayer"] = {
113113
baseEffectiveness = 0,
114114
incrementalEffectiveness = 0.092720001935959,
115115
statDescriptionScope = "gem_stat_descriptions",
116+
statMap = {
117+
["support_faster_casting_cast_speed_+%_final"] = {
118+
mod("Speed", "MORE", nil, ModFlag.Cast),
119+
},
120+
},
116121
baseFlags = {
117122
},
118123
constantStats = {
@@ -143,6 +148,11 @@ skills["SupportAstralProjectionPlayer"] = {
143148
label = "Astral Projection",
144149
incrementalEffectiveness = 0.054999999701977,
145150
statDescriptionScope = "gem_stat_descriptions",
151+
statMap = {
152+
["support_astral_projection_aoe_+%_final"] = {
153+
mod("AreaOfEffect", "MORE", nil),
154+
},
155+
},
146156
baseFlags = {
147157
},
148158
constantStats = {
@@ -202,6 +212,11 @@ skills["SupportBitingFrostPlayer"] = {
202212
label = "Biting Frost",
203213
incrementalEffectiveness = 0.054999999701977,
204214
statDescriptionScope = "gem_stat_descriptions",
215+
statMap = {
216+
["support_active_skill_consume_enemy_freeze_to_gain_damage_+%_final"] = {
217+
mod("Damage", "MORE", nil, 0, 0, { type = "ActorCondition", actor = "enemy", var = "Frozen" }),
218+
},
219+
},
205220
baseFlags = {
206221
},
207222
constantStats = {
@@ -297,7 +312,18 @@ skills["SupportBurningRunesPlayer"] = {
297312
label = "Burning Inscription",
298313
incrementalEffectiveness = 0.054999999701977,
299314
statDescriptionScope = "skill_stat_descriptions",
315+
statMap = {
316+
["support_burning_runes_base_fire_damage_equal_to_%_maximum_mana"] = {
317+
mod("IgniteFireHitDamage", "OVERRIDE", nil, 0, 0, { type = "PercentStat", stat = "Mana", percent = 1 }),
318+
},
319+
},
300320
baseFlags = {
321+
duration = true,
322+
},
323+
baseMods = {
324+
mod("EnemyIgniteChance", "BASE", 100),
325+
mod("IgniteStacks", "OVERRIDE", 1),
326+
flag("NeverCrit"),
301327
},
302328
constantStats = {
303329
{ "triggered_by_burning_runes_support_%", 100 },
@@ -731,6 +757,14 @@ skills["SupportConsideredCastingPlayer"] = {
731757
label = "Considered Casting",
732758
incrementalEffectiveness = 0.054999999701977,
733759
statDescriptionScope = "gem_stat_descriptions",
760+
statMap = {
761+
["support_slow_cast_cast_speed_+%_final"] = {
762+
mod("Speed", "MORE", nil, ModFlag.Cast),
763+
},
764+
["support_slow_cast_spell_damage_+%_final"] = {
765+
mod("Damage", "MORE", nil, bor(ModFlag.Hit, ModFlag.Spell)),
766+
},
767+
},
734768
baseFlags = {
735769
},
736770
constantStats = {
@@ -908,6 +942,12 @@ skills["SupportDecayingHexPlayer"] = {
908942
label = "Decaying Hex",
909943
incrementalEffectiveness = 0.054999999701977,
910944
statDescriptionScope = "gem_stat_descriptions",
945+
statMap = {
946+
["support_decaying_hex_base_chaos_damage_per_minute_as_%_of_intelligence_for_8_seconds"] = {
947+
skill("decay", nil, { type = "PercentStat", stat = "Int", percent = 1 }),
948+
div = 60,
949+
},
950+
},
911951
baseFlags = {
912952
},
913953
constantStats = {

src/Export/Skills/sup_int.txt

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,22 @@ local skills, mod, flag, skill = ...
2626
#skill SupportFasterCastPlayer
2727
#startSets
2828
#set SupportFasterCastPlayer
29+
statMap = {
30+
["support_faster_casting_cast_speed_+%_final"] = {
31+
mod("Speed", "MORE", nil, ModFlag.Cast),
32+
},
33+
},
2934
#mods
3035
#skillEnd
3136

3237
#skill SupportAstralProjectionPlayer
3338
#startSets
3439
#set SupportAstralProjectionPlayer
40+
statMap = {
41+
["support_astral_projection_aoe_+%_final"] = {
42+
mod("AreaOfEffect", "MORE", nil),
43+
},
44+
},
3545
#mods
3646
#skillEnd
3747

@@ -44,6 +54,11 @@ local skills, mod, flag, skill = ...
4454
#skill SupportBitingFrostPlayer
4555
#startSets
4656
#set SupportBitingFrostPlayer
57+
statMap = {
58+
["support_active_skill_consume_enemy_freeze_to_gain_damage_+%_final"] = {
59+
mod("Damage", "MORE", nil, 0, 0, { type = "ActorCondition", actor = "enemy", var = "Frozen" }),
60+
},
61+
},
4762
#mods
4863
#skillEnd
4964

@@ -55,6 +70,15 @@ local skills, mod, flag, skill = ...
5570
#skill TriggeredBurningRunesPlayer
5671
#startSets
5772
#set TriggeredBurningRunesPlayer
73+
statMap = {
74+
["support_burning_runes_base_fire_damage_equal_to_%_maximum_mana"] = {
75+
mod("IgniteFireHitDamage", "OVERRIDE", nil, 0, 0, { type = "PercentStat", stat = "Mana", percent = 1 }),
76+
},
77+
},
78+
#flags duration
79+
#baseMod mod("EnemyIgniteChance", "BASE", 100)
80+
#baseMod mod("IgniteStacks", "OVERRIDE", 1)
81+
#baseMod flag("NeverCrit")
5882
#mods
5983
#skillEnd
6084

@@ -148,6 +172,14 @@ statMap = {
148172
#skill SupportConsideredCastingPlayer
149173
#startSets
150174
#set SupportConsideredCastingPlayer
175+
statMap = {
176+
["support_slow_cast_cast_speed_+%_final"] = {
177+
mod("Speed", "MORE", nil, ModFlag.Cast),
178+
},
179+
["support_slow_cast_spell_damage_+%_final"] = {
180+
mod("Damage", "MORE", nil, bor(ModFlag.Hit, ModFlag.Spell)),
181+
},
182+
},
151183
#mods
152184
#skillEnd
153185

@@ -184,6 +216,12 @@ statMap = {
184216
#skill SupportDecayingHexPlayer
185217
#startSets
186218
#set SupportDecayingHexPlayer
219+
statMap = {
220+
["support_decaying_hex_base_chaos_damage_per_minute_as_%_of_intelligence_for_8_seconds"] = {
221+
skill("decay", nil, { type = "PercentStat", stat = "Int", percent = 1 }),
222+
div = 60,
223+
},
224+
},
187225
#mods
188226
#skillEnd
189227

src/Modules/CalcOffence.lua

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3891,13 +3891,15 @@ function calcs.offence(env, actor, activeSkill)
38913891
local critMin, critMax = 0, 0, 0
38923892
for _, damageType in ipairs(dmgTypeList) do
38933893
if canDoAilment(ailment, damageType, defaultDamageTypes) then
3894-
hitMin = hitMin + output[damageType.."StoredHitMin"]
3895-
hitMax = hitMax + output[damageType.."StoredHitMax"]
3896-
output[ailment .. damageType .. "Min"] = output[damageType.."StoredHitMin"]
3897-
output[ailment .. damageType .. "Max"] = output[damageType.."StoredHitMax"]
3894+
local override = skillModList:Override(cfg, ailment .. damageType .. "HitDamage")
3895+
hitMin = hitMin + (override or output[damageType.."StoredHitMin"])
3896+
hitMax = hitMax + (override or output[damageType.."StoredHitMax"])
3897+
output[ailment .. damageType .. "Min"] = (override or output[damageType.."StoredHitMin"])
3898+
output[ailment .. damageType .. "Max"] = (override or output[damageType.."StoredHitMin"])
38983899
if canCrit then
3899-
critMin = critMin + output[damageType.."StoredCritMin"]
3900-
critMax = critMax + output[damageType.."StoredCritMax"]
3900+
local override = skillModList:Override(cfg, ailment .. damageType .. "CritDamage")
3901+
critMin = critMin + (override or output[damageType.."StoredCritMin"])
3902+
critMax = critMax + (override or output[damageType.."StoredCritMax"])
39013903
end
39023904
end
39033905
end
@@ -4619,8 +4621,8 @@ function calcs.offence(env, actor, activeSkill)
46194621
combineStat("ImpaleModifier", "CHANCE", "ImpaleChance")
46204622
end
46214623

4622-
if skillFlags.hit and skillData.decay and canDeal.Chaos then
4623-
-- Calculate DPS for Essence of Delirium's Decay effect
4624+
if skillData.decay and canDeal.Chaos then
4625+
-- Calculate DPS for Decay effect
46244626
skillFlags.decay = true
46254627
activeSkill.decayCfg = {
46264628
skillName = skillCfg.skillName,

0 commit comments

Comments
 (0)