Skip to content

Commit 847de23

Browse files
authored
Add support for Ice Crystal life (#843)
* Add support for Ice Crystal life * Frozen Locus and breakdown like Perfect Timing
1 parent 96f5f9a commit 847de23

File tree

9 files changed

+54
-2
lines changed

9 files changed

+54
-2
lines changed

src/Data/ModCache.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1368,7 +1368,7 @@ c["200% increased Armour"]={{[1]={flags=0,keywordFlags=0,name="Armour",type="INC
13681368
c["200% increased Armour and Evasion"]={{[1]={flags=0,keywordFlags=0,name="ArmourAndEvasion",type="INC",value=200}},nil}
13691369
c["200% increased Critical Hit Chance"]={{[1]={flags=0,keywordFlags=0,name="CritChance",type="INC",value=200}},nil}
13701370
c["200% increased Evasion and Energy Shield"]={{[1]={flags=0,keywordFlags=0,name="EvasionAndEnergyShield",type="INC",value=200}},nil}
1371-
c["200% increased Ice Crystal Life"]={{[1]={flags=0,keywordFlags=0,name="Life",type="INC",value=200}}," Ice Crystal "}
1371+
c["200% increased Ice Crystal Life"]={{[1]={flags=0,keywordFlags=0,name="IceCrystalLife",type="INC",value=200}},nil}
13721372
c["200% increased Stun Recovery"]={{[1]={flags=0,keywordFlags=0,name="StunRecovery",type="INC",value=200}},nil}
13731373
c["200% increased bonuses gained from Equipped Quiver"]={{[1]={flags=0,keywordFlags=0,name="EffectOfBonusesFromQuiver",type="INC",value=200}},nil}
13741374
c["22.5 Life Regeneration per second"]={{[1]={flags=0,keywordFlags=0,name="LifeRegen",type="BASE",value=22.5}},nil}
@@ -2108,7 +2108,7 @@ c["60% increased Stun Threshold for each time you've been Stunned Recently"]={{[
21082108
c["60% increased bonuses gained from Equipped Rings"]={{[1]={flags=0,keywordFlags=0,name="EffectOfBonusesFromRings",type="INC",value=60}},nil}
21092109
c["60% increased maximum Energy Shield"]={{[1]={[1]={type="Global"},flags=0,keywordFlags=0,name="EnergyShield",type="INC",value=60}},nil}
21102110
c["60% reduced Bleeding Duration on you"]={{[1]={flags=0,keywordFlags=0,name="SelfBleedDuration",type="INC",value=-60}},nil}
2111-
c["60% reduced Ice Crystal Life"]={{[1]={flags=0,keywordFlags=0,name="Life",type="INC",value=-60}}," Ice Crystal "}
2111+
c["60% reduced Ice Crystal Life"]={{[1]={flags=0,keywordFlags=0,name="IceCrystalLife",type="INC",value=-60}},nil}
21122112
c["65% increased Armour"]={{[1]={flags=0,keywordFlags=0,name="Armour",type="INC",value=65}},nil}
21132113
c["65% increased Armour and Evasion"]={{[1]={flags=0,keywordFlags=0,name="ArmourAndEvasion",type="INC",value=65}},nil}
21142114
c["65% increased Energy Shield"]={{[1]={flags=0,keywordFlags=0,name="EnergyShield",type="INC",value=65}},nil}

src/Data/SkillStatMap.lua

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2276,6 +2276,10 @@ return {
22762276
["support_grenade_damage_+%_final"] = {
22772277
mod("Damage", "MORE", nil),
22782278
},
2279+
-- Ice Crystal
2280+
["frost_wall_maximum_life"] = {
2281+
mod("IceCrystalLifeBase", "BASE", nil),
2282+
},
22792283
-- Other
22802284
["triggered_skill_damage_+%"] = {
22812285
mod("TriggeredDamage", "INC", nil, 0, 0, { type = "SkillType", skillType = SkillType.Triggered }),

src/Data/Skills/act_int.lua

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8324,6 +8324,11 @@ skills["FrozenLocusPlayer"] = {
83248324
label = "Crystal",
83258325
incrementalEffectiveness = 0.054999999701977,
83268326
statDescriptionScope = "ice_ambush_statset_0",
8327+
statMap = {
8328+
["frozen_locus_crystal_display_stat"] = {
8329+
-- Display Only
8330+
},
8331+
},
83278332
baseFlags = {
83288333
duration = true,
83298334
},

src/Data/Skills/sup_int.lua

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1739,6 +1739,11 @@ skills["SupportGlacierPlayer"] = {
17391739
label = "Glacier",
17401740
incrementalEffectiveness = 0.054999999701977,
17411741
statDescriptionScope = "gem_stat_descriptions",
1742+
statMap = {
1743+
["support_glacier_ice_crystal_maximum_life_+%_final"] = {
1744+
mod("IceCrystalLife", "MORE", nil),
1745+
},
1746+
},
17421747
baseFlags = {
17431748
},
17441749
constantStats = {
@@ -1930,6 +1935,11 @@ skills["SupportIciclePlayer"] = {
19301935
label = "Icicle",
19311936
incrementalEffectiveness = 0.054999999701977,
19321937
statDescriptionScope = "gem_stat_descriptions",
1938+
statMap = {
1939+
["support_icicle_ice_crystal_maximum_life_+%_final"] = {
1940+
mod("IceCrystalLife", "MORE", nil),
1941+
},
1942+
},
19331943
baseFlags = {
19341944
},
19351945
constantStats = {

src/Export/Skills/act_int.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,11 @@ statMap = {
534534
#skill FrozenLocusPlayer
535535
#set FrozenLocusPlayer
536536
#flags duration
537+
statMap = {
538+
["frozen_locus_crystal_display_stat"] = {
539+
-- Display Only
540+
},
541+
},
537542
#mods
538543
#set FrozenLocusGroundPlayer
539544
#flags area duration

src/Export/Skills/sup_int.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,11 @@ statMap = {
413413

414414
#skill SupportGlacierPlayer
415415
#set SupportGlacierPlayer
416+
statMap = {
417+
["support_glacier_ice_crystal_maximum_life_+%_final"] = {
418+
mod("IceCrystalLife", "MORE", nil),
419+
},
420+
},
416421
#mods
417422
#skillEnd
418423

@@ -457,6 +462,11 @@ statMap = {
457462

458463
#skill SupportIciclePlayer
459464
#set SupportIciclePlayer
465+
statMap = {
466+
["support_icicle_ice_crystal_maximum_life_+%_final"] = {
467+
mod("IceCrystalLife", "MORE", nil),
468+
},
469+
},
460470
#mods
461471
#skillEnd
462472

src/Modules/CalcOffence.lua

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1205,6 +1205,19 @@ function calcs.offence(env, actor, activeSkill)
12051205
breakdown.LinkEffectMod = breakdown.mod(skillModList, skillCfg, "LinkEffect", "BuffEffect")
12061206
end
12071207
end
1208+
if activeSkill.skillTypes[SkillType.IceCrystal] then
1209+
local IceCrystalLifeMod = calcLib.mod(skillModList, skillCfg, "IceCrystalLife")
1210+
local baseIceCrystal = skillModList:Sum("BASE", skillCfg, "IceCrystalLifeBase")
1211+
output.IceCrystalLife = baseIceCrystal * IceCrystalLifeMod
1212+
if breakdown then
1213+
breakdown.IceCrystalLife = {
1214+
s_format("%.f ^8(Base Crystal Life)", baseIceCrystal),
1215+
s_format("x %.2f ^8(effect modifiers)", IceCrystalLifeMod),
1216+
s_format("\n"),
1217+
s_format("= %.f ^8(Ice Crystal Life)", output.IceCrystalLife),
1218+
}
1219+
end
1220+
end
12081221
if (skillFlags.trap or skillFlags.mine) and not (skillData.trapCooldown or skillData.cooldown) then
12091222
skillFlags.notAverage = true
12101223
skillFlags.showAverage = false

src/Modules/CalcSections.lua

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -702,6 +702,10 @@ return {
702702
{ breakdown = "EnemyCurseLimit" },
703703
{ modName = { "CurseLimitIsMaximumPowerCharges", "EnemyCurseLimit" } },
704704
}, },
705+
{ label = "Ice Crystal Life", { format = "{0:output:IceCrystalLife}",
706+
{ breakdown = "IceCrystalLife" },
707+
{ modName = { "IceCrystalLife" }, cfg = "skill" }
708+
},},
705709
{ label = "Mark Effect Mod", haveOutput = "MarkEffectMod", { format = "x {2:output:MarkEffectMod}",
706710
{ breakdown = "MarkEffectMod" },
707711
{ modName = "MarkEffect", cfg = "skill" },

src/Modules/ModParser.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -604,6 +604,7 @@ local modNameList = {
604604
["to deal double damage"] = "DoubleDamageChance",
605605
["to deal triple damage"] = "TripleDamageChance",
606606
["curse activation"] = "CurseFrequency",
607+
["ice crystal life"] = "IceCrystalLife",
607608
-- Effects
608609
["onslaught effect"] = "OnslaughtEffect",
609610
["effect of onslaught on you"] = "OnslaughtEffect",

0 commit comments

Comments
 (0)