Skip to content

Commit

Permalink
Implement Sacrifice, Frigid Bond, Guardian's Blessing, Controlled Blaze
Browse files Browse the repository at this point in the history
  • Loading branch information
LocalIdentity committed Aug 23, 2023
1 parent 356ed8b commit 8d2f3ee
Show file tree
Hide file tree
Showing 6 changed files with 79 additions and 1 deletion.
18 changes: 18 additions & 0 deletions src/Data/Skills/sup_int.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2600,6 +2600,14 @@ skills["SupportFrigidBond"] = {
addSkillTypes = { SkillType.DamageOverTime, SkillType.DegenOnlySpellDamage, SkillType.NonHitChill, SkillType.Duration, },
excludeSkillTypes = { },
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["support_damaging_links_base_duration_ms"] = {
mod("SecondaryDuration", "BASE", nil),
div = 1000,
},
["support_damaging_links_base_duration_is_gem"] = {
},
},
qualityStats = {
Default = {
{ "chill_effect_+%", 0.5 },
Expand Down Expand Up @@ -5032,6 +5040,16 @@ skills["SupportSacrifice"] = {
excludeSkillTypes = { SkillType.HasReservation, SkillType.Vaal, SkillType.Channel, SkillType.Trapped, SkillType.RemoteMined, SkillType.Orb, SkillType.Brand, },
ignoreMinionTypes = true,
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["support_sacrifice_sacrifice_%_of_current_life"] = {
mod("Multiplier:SacrificePercent", "BASE", nil, 0, 0, { type = "PercentStat", stat = "LifeUnreserved", percent = 1, actor = "parent" }),
},
["support_sacrifice_gain_%_of_sacrificed_life_as_added_chaos_damage"] = {
mod("ChaosMin", "BASE", nil, 0, 0, { type = "Multiplier", var = "SacrificePercent" }),
mod("ChaosMax", "BASE", nil, 0, 0, { type = "Multiplier", var = "SacrificePercent" }),
div = 100,
},
},
qualityStats = {
Default = {
{ "chaos_damage_+%", 0.5 },
Expand Down
20 changes: 20 additions & 0 deletions src/Data/Skills/sup_str.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1161,6 +1161,17 @@ skills["SupportControlledBlaze"] = {
addSkillTypes = { },
excludeSkillTypes = { },
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["support_recent_ignites_ignite_damage_per_recent_ignite_+%_final"] = {
mod("Damage", "MORE", nil, 0, KeywordFlag.Ignite, { type = "Multiplier", var = "IgniteAppliedRecently", limitVar = "ControlledBlazeRecentIgniteLimit" }),
},
["support_recent_ignites_damage_per_recent_ignite_+%_final"] = {
mod("Damage", "MORE", nil, 0, 0, { type = "Multiplier", var = "IgniteAppliedRecently", limitVar = "ControlledBlazeRecentIgniteLimit"}),
},
["support_recent_ignites_max_recent_ignites_tracked"] = {
mod("Multiplier:ControlledBlazeRecentIgniteLimit", "BASE", nil),
},
},
qualityStats = {
Default = {
{ "base_chance_to_ignite_%", 0.5 },
Expand Down Expand Up @@ -2564,6 +2575,8 @@ skills["SupportGuardiansBlessing"] = {
statMap = {
["aura_skill_no_reservation"] = {
},
["support_guardians_blessing_minion_physical_damage_%_of_maximum_life_and_ES_taken_per_minute"] = {
},
},
baseMods = {
skill("manaReservationFlat", 0, { type = "SkillType", skillType = SkillType.Aura }),
Expand Down Expand Up @@ -2640,6 +2653,13 @@ skills["SupportGuardiansBlessingMinion"] = {
addSkillTypes = { },
excludeSkillTypes = { SkillType.MinionsAreUndamageable, SkillType.Triggered, },
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["support_guardians_blessing_minion_physical_damage_%_of_maximum_life_and_ES_taken_per_minute"] = {
mod("MinionModifier", "LIST", { mod = mod("PhysicalDegen", "BASE", nil, 0, 0, { type = "PercentStat", stat = "Life", percent = 1 }) }),
mod("MinionModifier", "LIST", { mod = mod("PhysicalDegen", "BASE", nil, 0, 0, { type = "PercentStat", stat = "EnergyShield", percent = 1 }) }),
div = 60,
},
},
qualityStats = {
Default = {
{ "dummy_stat_display_nothing", 0.25 },
Expand Down
18 changes: 18 additions & 0 deletions src/Export/Skills/sup_int.txt
Original file line number Diff line number Diff line change
Expand Up @@ -349,6 +349,14 @@ local skills, mod, flag, skill = ...
#mods

#skill SupportFrigidBond
statMap = {
["support_damaging_links_base_duration_ms"] = {
mod("SecondaryDuration", "BASE", nil),
div = 1000,
},
["support_damaging_links_base_duration_is_gem"] = {
},
},
#mods

#skill SupportHexBloom
Expand Down Expand Up @@ -683,6 +691,16 @@ local skills, mod, flag, skill = ...
#mods

#skill SupportSacrifice
statMap = {
["support_sacrifice_sacrifice_%_of_current_life"] = {
mod("Multiplier:SacrificePercent", "BASE", nil, 0, 0, { type = "PercentStat", stat = "LifeUnreserved", percent = 1, actor = "parent" }),
},
["support_sacrifice_gain_%_of_sacrificed_life_as_added_chaos_damage"] = {
mod("ChaosMin", "BASE", nil, 0, 0, { type = "Multiplier", var = "SacrificePercent" }),
mod("ChaosMax", "BASE", nil, 0, 0, { type = "Multiplier", var = "SacrificePercent" }),
div = 100,
},
},
#mods

#skill SupportSpellblade
Expand Down
20 changes: 20 additions & 0 deletions src/Export/Skills/sup_str.txt
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,17 @@ local skills, mod, flag, skill = ...
#mods

#skill SupportControlledBlaze
statMap = {
["support_recent_ignites_ignite_damage_per_recent_ignite_+%_final"] = {
mod("Damage", "MORE", nil, 0, KeywordFlag.Ignite, { type = "Multiplier", var = "IgniteAppliedRecently", limitVar = "ControlledBlazeRecentIgniteLimit" }),
},
["support_recent_ignites_damage_per_recent_ignite_+%_final"] = {
mod("Damage", "MORE", nil, 0, 0, { type = "Multiplier", var = "IgniteAppliedRecently", limitVar = "ControlledBlazeRecentIgniteLimit"}),
},
["support_recent_ignites_max_recent_ignites_tracked"] = {
mod("Multiplier:ControlledBlazeRecentIgniteLimit", "BASE", nil),
},
},
#mods

#skill SupportCorruptingCry
Expand Down Expand Up @@ -312,6 +323,8 @@ local skills, mod, flag, skill = ...
statMap = {
["aura_skill_no_reservation"] = {
},
["support_guardians_blessing_minion_physical_damage_%_of_maximum_life_and_ES_taken_per_minute"] = {
},
},
#baseMod skill("manaReservationFlat", 0, { type = "SkillType", skillType = SkillType.Aura })
#baseMod skill("lifeReservationFlat", 0, { type = "SkillType", skillType = SkillType.Aura })
Expand All @@ -320,6 +333,13 @@ local skills, mod, flag, skill = ...
#mods

#skill SupportGuardiansBlessingMinion
statMap = {
["support_guardians_blessing_minion_physical_damage_%_of_maximum_life_and_ES_taken_per_minute"] = {
mod("MinionModifier", "LIST", { mod = mod("PhysicalDegen", "BASE", nil, 0, 0, { type = "PercentStat", stat = "Life", percent = 1 }) }),
mod("MinionModifier", "LIST", { mod = mod("PhysicalDegen", "BASE", nil, 0, 0, { type = "PercentStat", stat = "EnergyShield", percent = 1 }) }),
div = 60,
},
},
#mods

#skill SupportIncreasedDuration
Expand Down
3 changes: 3 additions & 0 deletions src/Modules/ConfigOptions.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1061,6 +1061,9 @@ Huge sets the radius to 11.
{ var = "conditionIgnitedEnemyRecently", type = "check", label = "Have you ^xB97123Ignited ^7an enemy Recently?", ifCond = "IgnitedEnemyRecently", apply = function(val, modList, enemyModList)
modList:NewMod("Condition:IgnitedEnemyRecently", "FLAG", true, "Config", { type = "Condition", var = "Combat" })
end },
{ var = "multiplierIgniteAppliedRecently", type = "count", label = "# of ^xB97123Ignites ^7applied Recently:", ifMult = "IgniteAppliedRecently", apply = function(val, modList, enemyModList)
modList:NewMod("Multiplier:IgniteAppliedRecently", "BASE", val, "Config", { type = "Condition", var = "Combat" })
end },
{ var = "conditionShockedEnemyRecently", type = "check", label = "Have you ^xADAA47Shocked ^7an enemy Recently?", ifCond = "ShockedEnemyRecently", apply = function(val, modList, enemyModList)
modList:NewMod("Condition:ShockedEnemyRecently", "FLAG", true, "Config", { type = "Condition", var = "Combat" })
end },
Expand Down
1 change: 0 additions & 1 deletion src/Modules/ModParser.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2398,7 +2398,6 @@ local specialModList = {
["grants armour equal to (%d+)%% of your reserved life to you and nearby allies"] = function(num) return { mod("GrantReservedLifeAsAura", "LIST", { mod = mod("Armour", "BASE", num / 100) }) } end,
["grants armour equal to (%d+)%% of your reserved mana to you and nearby allies"] = function(num) return { mod("GrantReservedManaAsAura", "LIST", { mod = mod("Armour", "BASE", num / 100) }) } end,
["grants maximum energy shield equal to (%d+)%% of your reserved mana to you and nearby allies"] = function(num) return { mod("GrantReservedManaAsAura", "LIST", { mod = mod("EnergyShield", "BASE", num / 100) }) } end,
["grants armour equal to (%d+)%% of your reserved mana to you and nearby allies"] = function(num) return { mod("GrantReservedManaAsAura", "LIST", { mod = mod("Armour", "BASE", num / 100) }) } end,
["warcries cost no mana"] = { mod("ManaCost", "MORE", -100, nil, 0, KeywordFlag.Warcry) },
["%+(%d+)%% chance to block attack damage for %d seconds? every %d seconds"] = function(num) return { mod("BlockChance", "BASE", num, { type = "Condition", var = "BastionOfHopeActive" }) } end,
["if you've blocked in the past %d+ seconds, you and nearby allies cannot be stunned"] = { mod("ExtraAura", "LIST", { mod = flag("StunImmune")}, { type = "Condition", var = "BlockedRecently" }, { type = "GlobalEffect", effectType = "Global", unscalable = true }) },
Expand Down

0 comments on commit 8d2f3ee

Please sign in to comment.