Merge remote-tracking branch 'Pegoth/master'
This commit is contained in:
@@ -260,6 +260,7 @@ function buildMode:Init(dbFileName, buildName, buildXML, targetVersion)
|
||||
{ stat = "WithImpaleDPS", label = "Damage inc. Impale", fmt = ".1f", compPercent = true, flag = "impale", flag = "showAverage" },
|
||||
{ stat = "ImpaleDPS", label = "Impale DPS", fmt = ".1f", compPercent = true, flag = "impale", flag = "notAverage" },
|
||||
{ stat = "WithImpaleDPS", label = "Total DPS inc. Impale", fmt = ".1f", compPercent = true, flag = "impale", flag = "notAverage" },
|
||||
{ stat = "CombinedDPS", label = "Combined DPS", fmt = ".1f", compPercent = true },
|
||||
{ stat = "Cooldown", label = "Skill Cooldown", fmt = ".2fs", lowerIsBetter = true },
|
||||
{ stat = "AreaOfEffectRadius", label = "AoE Radius", fmt = "d" },
|
||||
{ stat = "ManaCost", label = "Mana Cost", fmt = "d", compPercent = true, lowerIsBetter = true, condFunc = function() return true end },
|
||||
|
||||
@@ -1700,7 +1700,10 @@ function calcs.offence(env, actor, activeSkill)
|
||||
local mult = skillModList:Sum("BASE", dotCfg, "PhysicalDotMultiplier", "BleedMultiplier")
|
||||
local effectMod = calcLib.mod(skillModList, dotCfg, "AilmentEffect")
|
||||
local rateMod = calcLib.mod(skillModList, cfg, "BleedFaster")
|
||||
output.BleedDPS = baseVal * effectMod * rateMod * effMult
|
||||
local maxStacks = skillModList:Override(cfg, "BleedStacksMax") or skillModList:Sum("BASE", cfg, "BleedStacksMax")
|
||||
local configStacks = enemyDB:Sum("BASE", nil, "Multiplier:BleedStacks")
|
||||
local bleedStacks = configStacks > 0 and m_min(configStacks, maxStacks) or maxStacks
|
||||
output.BleedDPS = (baseVal * effectMod * rateMod * effMult) * bleedStacks
|
||||
local durationBase
|
||||
if skillData.bleedDurationIsSkillDuration then
|
||||
durationBase = skillData.duration
|
||||
@@ -1709,6 +1712,8 @@ function calcs.offence(env, actor, activeSkill)
|
||||
end
|
||||
local durationMod = calcLib.mod(skillModList, dotCfg, "EnemyBleedDuration", "SkillAndDamagingAilmentDuration", skillData.bleedIsSkillEffect and "Duration" or nil) * calcLib.mod(enemyDB, nil, "SelfBleedDuration")
|
||||
globalOutput.BleedDuration = durationBase * durationMod / rateMod * debuffDurationMult
|
||||
globalOutput.BleedStacksMax = maxStacks
|
||||
globalOutput.BleedStacks = bleedStacks
|
||||
if breakdown then
|
||||
t_insert(breakdown.BleedDPS, s_format("x %.2f ^8(bleed deals %d%% per second)", basePercent/100, basePercent))
|
||||
if effectMod ~= 1 then
|
||||
|
||||
@@ -526,6 +526,8 @@ return {
|
||||
{ 1, "Bleed", 1, "Bleed", colorCodes.OFFENCE, {
|
||||
extra = "{0:output:BleedChance}% {1:output:BleedDPS} {2:output:BleedDuration}s",
|
||||
flag = "bleed",
|
||||
{ label = "Max Bleed Stacks", { format = "{0:output:BleedStacksMax}", { modName = "BleedStacksMax" } }, },
|
||||
{ label = "Stacks on Enemy", { format = "{0:output:BleedStacks}" }},
|
||||
{ label = "Chance to Bleed", { format = "{0:output:BleedChance}%",
|
||||
{ breakdown = "MainHand.BleedChance" },
|
||||
{ breakdown = "OffHand.BleedChance" },
|
||||
|
||||
@@ -29,6 +29,7 @@ function calcs.initModDB(env, modDB)
|
||||
modDB:NewMod("MaxLifeLeechRate", "BASE", 20, "Base")
|
||||
modDB:NewMod("MaxManaLeechRate", "BASE", 20, "Base")
|
||||
modDB:NewMod("ImpaleStacksMax", "BASE", 5, "Base")
|
||||
modDB:NewMod("BleedStacksMax", "BASE", 1, "Base")
|
||||
if env.build.targetVersion ~= "2_6" then
|
||||
modDB:NewMod("MaxEnergyShieldLeechRate", "BASE", 10, "Base")
|
||||
modDB:NewMod("MaxLifeLeechInstance", "BASE", 10, "Base")
|
||||
|
||||
@@ -708,6 +708,9 @@ return {
|
||||
{ var = "multiplierImpalesOnEnemy", type = "count", label = "# of Impales on Enemy (if not maximum):", ifFlag = "impale", tooltip = "Set number of Impales if using Champions Master of Metal node", apply = function(val, modList, enemyModList)
|
||||
enemyModList:NewMod("Multiplier:ImpaleStacks", "BASE", m_min(val, 9), "Config", { type = "Condition", var = "Combat" })
|
||||
end },
|
||||
{ var = "multiplierBleedsOnEnemy", type = "count", label = "# of Bleeds on Enemy (if not maximum):", ifFlag = "bleed", tooltip = "Set number of Bleeds if using Crimson Dance node", apply = function(val, modList, enemyModList)
|
||||
enemyModList:NewMod("Multiplier:BleedStacks", "BASE", val, "Config", { type = "Condition", var = "Combat" })
|
||||
end },
|
||||
{ var = "conditionKilledUniqueEnemy", type = "check", ifVer = "3_0", label = "Killed Rare or Unique Enemy Recently?", ifNode = 3184, apply = function(val, modList, enemyModList)
|
||||
modList:NewMod("Condition:KilledUniqueEnemy", "FLAG", true, "Config", { type = "Condition", var = "Combat" })
|
||||
end },
|
||||
|
||||
@@ -1087,6 +1087,7 @@ local specialModList = {
|
||||
["energy shield protects mana instead of life"] = { flag("EnergyShieldProtectsMana") },
|
||||
["modifiers to critical strike multiplier also apply to damage over time multiplier for ailments from critical strikes at (%d+)%% of their value"] = function(num) return { mod("CritMultiplierAppliesToDegen", "BASE", num) } end,
|
||||
["your bleeding does not deal extra damage while the enemy is moving"] = { flag("Condition:NoExtraBleedDamageToMovingEnemy") },
|
||||
["you can inflict bleeding on an enemy up to (%d+) times?"] = function(num) return { mod("BleedStacksMax", "OVERRIDE", num) } end,
|
||||
-- Ascendant
|
||||
["grants (%d+) passive skill points?"] = function(num) return { mod("ExtraPoints", "BASE", num) } end,
|
||||
["can allocate passives from the %a+'s starting point"] = { },
|
||||
|
||||
Reference in New Issue
Block a user