diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index 16b7ca9381..339092f44c 100755 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -2403,7 +2403,7 @@ c["Enemies in your Presence are Blinded Enemies in your Presence gain Critical W c["Enemies in your Presence are Ignited as though dealt 100 Base Fire Damage"]={nil,"Enemies in your Presence are Ignited as though dealt 100 Base Fire Damage "} c["Enemies in your Presence are Intimidated"]={nil,"Enemies in your Presence are Intimidated "} c["Enemies in your Presence are Slowed by 20%"]={nil,"Enemies in your Presence are Slowed by 20% "} -c["Enemies in your Presence gain Critical Weakness every second"]={nil,"Enemies in your Presence gain Critical Weakness every second "} +c["Enemies in your Presence gain Critical Weakness every second"]={{[1]={flags=0,keywordFlags=0,name="ApplyCriticalWeakness",type="FLAG",value=true}},nil} c["Enemies in your Presence have 10% reduced Cooldown Recovery Rate"]={nil,"Enemies in your Presence have 10% reduced Cooldown Recovery Rate "} c["Enemies in your Presence have Fire Exposure"]={nil,"Enemies in your Presence have Fire Exposure "} c["Enemies in your Presence have Lightning Resistance equal to yours"]={nil,"Enemies in your Presence have Lightning Resistance equal to yours "} diff --git a/src/Data/Skills/act_int.lua b/src/Data/Skills/act_int.lua index 35dc91cd3b..3045b6a3cc 100644 --- a/src/Data/Skills/act_int.lua +++ b/src/Data/Skills/act_int.lua @@ -5880,6 +5880,11 @@ skills["EyeOfWinterPlayer"] = { incrementalEffectiveness = 0.14000000059605, damageIncrementalEffectiveness = 0.0065000001341105, statDescriptionScope = "eye_of_winter_new", + statMap = { + ["eye_of_winter_number_of_brittle_stacks_to_apply"] = { + flag("ApplyCriticalWeakness"), + }, + }, baseFlags = { spell = true, projectile = true, @@ -11297,6 +11302,11 @@ skills["MalicePlayer"] = { label = "Malice", incrementalEffectiveness = 0.054999999701977, statDescriptionScope = "aura_crit_against_enemy", + statMap = { + ["critical_chance_against_aura_apply_brittle_every_x_ms"] = { + flag("ApplyCriticalWeakness"), + }, + }, baseFlags = { area = true, }, diff --git a/src/Export/Skills/act_int.txt b/src/Export/Skills/act_int.txt index 466935e4ae..68cd3712ab 100644 --- a/src/Export/Skills/act_int.txt +++ b/src/Export/Skills/act_int.txt @@ -398,6 +398,11 @@ statMap = { #startSets #set EyeOfWinterPlayer #flags spell projectile +statMap = { + ["eye_of_winter_number_of_brittle_stacks_to_apply"] = { + flag("ApplyCriticalWeakness"), + }, +}, #mods #skillEnd @@ -735,6 +740,11 @@ end, #startSets #set MalicePlayer #flags area +statMap = { + ["critical_chance_against_aura_apply_brittle_every_x_ms"] = { + flag("ApplyCriticalWeakness"), + }, +}, #mods #skillEnd diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index 8e381a8f6a..715ee3e233 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -2014,6 +2014,9 @@ function calcs.perform(env, skipEHP) local effect = activeSkill.minion and 5 or m_floor(5 * (1 + modDB:Sum("INC", nil, "WitherEffect") / 100)) modDB:NewMod("WitherEffectStack", "MAX", effect) end + if activeSkill.skillModList:Flag(nil, "ApplyCriticalWeakness") then + modDB:NewMod("ApplyCriticalWeakness", "FLAG", true) + end --Handle combustion if enemyDB:Flag(nil, "Condition:Ignited") and (activeSkill.skillTypes[SkillType.Damage] or activeSkill.skillTypes[SkillType.Attack]) and not appliedCombustion then for _, support in ipairs(activeSkill.supportList) do diff --git a/src/Modules/ConfigOptions.lua b/src/Modules/ConfigOptions.lua index 33cc52ddc9..e62532b2ed 100644 --- a/src/Modules/ConfigOptions.lua +++ b/src/Modules/ConfigOptions.lua @@ -1605,6 +1605,12 @@ Huge sets the radius to 11. { var = "conditionEnemyUnnerved", type = "check", label = "Is the enemy Unnerved?", tooltip = "Unnerved enemies take 10% increased Spell Damage.", apply = function(val, modList, enemyModList) enemyModList:NewMod("Condition:Unnerved", "FLAG", true, "Config", { type = "Condition", var = "Effective" }) end }, + { var = "conditionEnemyCriticalWeakness", type = "check", label = "Is the enemy Critically Weak", ifFlag = "ApplyCriticalWeakness", tooltip = "Hits against Critically Weak enemies have up to +10% Critical Strike Chance.\nThis option will also allow you to input the effect of Critical Weakness.", apply = function(val, modList, enemyModList) + enemyModList:NewMod("Condition:ApplyCriticalWeakness", "FLAG", val, "Config", { type = "Condition", var = "Effective" }) + end }, + { var = "enemyCriticalWeaknessStacks", type = "count", label = "Critical weakness stacks:", ifOption = "conditionEnemyCriticalWeakness", tooltip = "Each stack of critical weakness applies +0.5% to critical strike chance against the affected target", defaultPlaceholderState = 20, apply = function(val, modList, enemyModList) + enemyModList:NewMod("SelfCritChance", "BASE", m_max(m_min(val or 20, 20), 0) / 2, "Critical Weakness", { type = "Condition", var = "ApplyCriticalWeakness" }) + end }, { var = "conditionEnemyCoveredInAsh", type = "check", label = "Is the enemy covered in Ash?", tooltip = "Covered in Ash applies the following to the enemy:\n\t20% increased ^xB97123Fire ^7Damage taken\n\t20% less Movement Speed", apply = function(val, modList, enemyModList) modList:NewMod("CoveredInAshEffect", "BASE", 20, "Covered in Ash") end }, diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 675e943ba1..be7c36886d 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -3767,6 +3767,9 @@ local specialModList = { ["cold exposure you inflict applies an extra (%-?%d+)%% to cold resistance"] = function(num) return { mod("ExtraColdExposure", "BASE", num) } end, ["lightning exposure you inflict applies an extra (%-?%d+)%% to lightning resistance"] = function(num) return { mod("ExtraLightningExposure", "BASE", num) } end, ["exposure you inflict applies at least (%-%d+)%% to the affected resistance"] = function(num) return { mod("ExposureMin", "OVERRIDE", num) } end, + ["enemies in your presence gain critical weakness every second"] = { flag("ApplyCriticalWeakness") }, + ["applies critical weakness to enemies every ([%d%.]+) seconds?"] = { flag("ApplyCriticalWeakness") }, + ["inflicts critical weakness on hit"] = { flag("ApplyCriticalWeakness") }, ["modifiers to minimum endurance charges instead apply to minimum brutal charges"] = { flag("MinimumEnduranceChargesEqualsMinimumBrutalCharges") }, ["modifiers to minimum frenzy charges instead apply to minimum affliction charges"] = { flag("MinimumFrenzyChargesEqualsMinimumAfflictionCharges") }, ["modifiers to minimum power charges instead apply to minimum absorption charges"] = { flag("MinimumPowerChargesEqualsMinimumAbsorptionCharges") },