diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index 0e2ba6a078..92c49ba358 100755 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -3467,7 +3467,7 @@ c["Banner Skills have 20% increased Area of Effect"]={{[1]={[1]={skillType=88,ty c["Banner Skills have 20% increased Duration"]={{[1]={[1]={skillType=88,type="SkillType"},flags=0,keywordFlags=0,name="Duration",type="INC",value=20}},nil} c["Banners also grant +5% to all Elemental Resistances to you and Allies"]={{[1]={[1]={skillType=88,type="SkillType"},flags=0,keywordFlags=0,name="ExtraAuraEffect",type="LIST",value={mod={flags=0,keywordFlags=0,name="ElementalResist",type="BASE",value=5}}}},nil} c["Banners always have maximum Valour"]={nil,"Banners always have maximum Valour "} -c["Base Bleeding Duration is 1 second"]={{[1]={flags=0,keywordFlags=0,name="EnemyBleedDuration",type="OVERRIDE",value=1}},"Base second "} +c["Base Bleeding Duration is 1 second"]={{[1]={flags=0,keywordFlags=0,name="BleedDurationBase",type="OVERRIDE",value="1"}},nil} c["Base Critical Hit Chance for Attacks with Weapons is 7%"]={{[1]={flags=0,keywordFlags=0,name="WeaponBaseCritChance",type="OVERRIDE",value=7}},nil} c["Base Critical Hit Chance for Attacks with Weapons is 8%"]={{[1]={flags=0,keywordFlags=0,name="WeaponBaseCritChance",type="OVERRIDE",value=8}},nil} c["Base Critical Hit Chance for Spells is 15%"]={{[1]={[1]={skillType=2,type="SkillType"},flags=0,keywordFlags=0,name="CritChanceBase",type="OVERRIDE",value=15}},nil} @@ -3475,8 +3475,7 @@ c["Base Maximum Darkness is 100"]={{[1]={flags=0,keywordFlags=0,name="PlayerHasD c["Become Ignited when you deal a Critical Hit, taking 15% of your maximum Life and Energy Shield as Fire Damage per second"]={nil,"Become Ignited when you deal a Critical Hit, taking 15% of your maximum Life and Energy Shield as Fire Damage per second "} c["Become Ignited when you deal a Critical Hit, taking 15% of your maximum Life and Energy Shield as Fire Damage per second 50% more Critical Damage Bonus"]={nil,"Become Ignited when you deal a Critical Hit, taking 15% of your maximum Life and Energy Shield as Fire Damage per second 50% more Critical Damage Bonus "} c["Bleeding you inflict deals Damage 10% faster"]={{[1]={flags=0,keywordFlags=0,name="BleedFaster",type="INC",value=10}},nil} -c["Bleeding you inflict is Aggravated"]={nil,"Bleeding you inflict is Aggravated "} -c["Bleeding you inflict is Aggravated Base Bleeding Duration is 1 second"]={{[1]={flags=0,keywordFlags=0,name="EnemyBleedDuration",type="OVERRIDE",value=1}},"Bleeding you inflict is Aggravated Base second "} +c["Bleeding you inflict is Aggravated"]={{[1]={flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="Condition:BleedAggravated",type="FLAG",value=true}}}},nil} c["Bleeding you inflict on Cursed targets is Aggravated"]={{[1]={flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={[1]={type="Condition",var="Cursed"},flags=0,keywordFlags=0,name="Condition:BleedAggravated",type="FLAG",value=true}}}},nil} c["Blind Chilled enemies on Hit"]={nil,"Blind Chilled enemies on Hit "} c["Blind Enemies when they Stun you"]={nil,"Blind Enemies when they Stun you "} diff --git a/src/Modules/CalcOffence.lua b/src/Modules/CalcOffence.lua index 16492f6e74..e3dedd2e25 100644 --- a/src/Modules/CalcOffence.lua +++ b/src/Modules/CalcOffence.lua @@ -4341,7 +4341,7 @@ function calcs.offence(env, actor, activeSkill) ailmentTypeMod = ailmentDamageType end local rateMod = (calcLib.mod(skillModList, cfg, ailment .. "Faster") + enemyDB:Sum("INC", nil, "Self" .. ailment .. "Faster") / 100) / calcLib.mod(skillModList, cfg, ailment .. "Slower") - local durationBase = data.misc[ailment .. "DurationBase"] + local durationBase = env.modDB:Override(nil, ailment .. "DurationBase") or data.misc[ailment .. "DurationBase"] local durationMod = m_max(calcLib.mod(skillModList, dotCfg, "Enemy" .. ailment .. "Duration", "EnemyAilmentDuration", "Enemy" .. ailmentTypeMod .. "AilmentDuration", "SkillAndDamagingAilmentDuration") * calcLib.mod(enemyDB, nil, "Self" .. ailment .. "Duration", "SelfAilmentDuration", "Self" .. ailmentTypeMod .. "AilmentDuration"), 0) durationMod = m_max(durationMod, 0) globalOutput[ailment .. "Duration"] = durationBase * durationMod / rateMod * debuffDurationMult @@ -4588,7 +4588,7 @@ function calcs.offence(env, actor, activeSkill) t_insert(breakdown[ailment .. "Damage"], s_format("x %.2fs ^8(ailment duration)", globalOutput[ailment .. "Duration"])) t_insert(breakdown[ailment .. "Damage"], s_format("= %.1f ^8total damage of all stacks", output[ailment .. "Damage"])) end - if globalOutput[ailment .. "Duration"] ~= data.misc[ailment .. "DurationBase"] then + if globalOutput[ailment .. "Duration"] ~= durationBase then globalBreakdown[ailment .. "Duration"] = { s_format("%.2fs ^8(base duration)", durationBase) } diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 33bce848b0..92d9827606 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -2231,6 +2231,10 @@ local specialModList = { mod("BleedStacksMax", "OVERRIDE", num), flag("Condition:HaveCrimsonDance"), } end, + ["base (%a+) duration is (%d+) seconds?"] = function(_, ailment, num) return {-- Crimson Assault (but also supports poison & ignite variants with same wording) + mod(firstToUpper(ailment:gsub("ing","")) .. "DurationBase", "OVERRIDE", num) + } end, + ["bleeding you inflict is aggravated"] = { mod("EnemyModifier", "LIST", { mod = flag("Condition:BleedAggravated") }) }, ["your minions spread caustic ground on death, dealing 20%% of their maximum life as chaos damage per second"] = { mod("ExtraMinionSkill", "LIST", { skillId = "SiegebreakerCausticGround" }) }, ["your minions spread burning ground on death, dealing 20%% of their maximum life as fire damage per second"] = { mod("ExtraMinionSkill", "LIST", { skillId = "ReplicaSiegebreakerBurningGround" }) }, ["you can have an additional brand attached to an enemy"] = { mod("BrandsAttachedLimit", "BASE", 1) }, @@ -2515,9 +2519,7 @@ local specialModList = { ["gain additional maximum life equal to (%d+)%% of the energy shield on equipped body armour"] = function(num) return { mod("Life", "BASE", 1, { type = "PercentStat", stat = "EnergyShieldOnBody Armour", percent = num }), } end, - ["bleeding you inflict on cursed targets is aggravated"] = function(num) return { - mod("EnemyModifier", "LIST", { mod = flag("Condition:BleedAggravated", { type = "Condition", var = "Cursed" }) }), - } end, + ["bleeding you inflict on cursed targets is aggravated"] = { mod("EnemyModifier", "LIST", { mod = flag("Condition:BleedAggravated", { type = "Condition", var = "Cursed" }) }) }, ["critical hits ignore monster armour"] = { flag("IgnoreEnemyArmour", { type = "Condition", var = "CriticalStrike" }) }, ["(%d+)%% of life loss from hits is prevented, then that much life is lost over 4 seconds instead"] = function(num) return { mod("LifeLossPrevented", "BASE", num) } end, -- Champion