@@ -4083,12 +4083,34 @@ local skills, mod, flag, skill = ...
40834083#flags spell area duration brand
40844084 preDamageFunc = function(activeSkill, output)
40854085 activeSkill.skillData.hitTimeOverride = activeSkill.skillData.repeatFrequency / (1 + activeSkill.skillModList:Sum("INC", activeSkill.skillCfg, "Speed", "BrandActivationFrequency") / 100) / activeSkill.skillModList:More(activeSkill.skillCfg, "BrandActivationFrequency")
4086+ if activeSkill.skillPart == 2 then
4087+ local skillMaxStages = activeSkill.skillModList:Sum("BASE", activeSkill.skillCfg, "Multiplier:WintertideBrandMaxStages")
4088+ local duration = calcSkillDuration(activeSkill.skillModList, activeSkill.skillCfg, activeSkill.skillData, {})
4089+ local maxStages = math.min(duration / activeSkill.skillData.hitTimeOverride + 1, skillMaxStages)
4090+ local timeToReachMaxStages = (maxStages - 1) * activeSkill.skillData.hitTimeOverride
4091+ local timeAtMaxStages = duration - timeToReachMaxStages
4092+ local damagePerStage = activeSkill.skillModList:Sum("BASE", activeSkill.skillCfg, "Multiplier:WintertideBrandDamagePerStage")
4093+ -- Get the average damage before reaching max stages and then damage at max stages
4094+ local dpsMultiplier = ((2 + damagePerStage + maxStages * damagePerStage)/2*timeToReachMaxStages+timeAtMaxStages*(1+maxStages*damagePerStage))/duration
4095+ activeSkill.skillModList:NewMod("Damage", "MORE", dpsMultiplier, "Wintertide Brand Average Multiplier")
4096+ end
40864097 end,
4098+ parts = {
4099+ {
4100+ name = "Manual Stages",
4101+ stages = true
4102+ },
4103+ {
4104+ name = "Average Damage",
4105+ }
4106+ },
40874107 statMap = {
40884108 ["base_skill_show_average_damage_instead_of_dps"] = {
40894109 },
40904110 ["immolation_brand_burn_damage_+%_final_per_stage"] = {
4091- mod("Damage", "MORE", nil, 0, 0, { type = "Multiplier", var = "WintertideBrandStage", limitVar = "WintertideBrandMaxStages" }),
4111+ -- Only apply to Manual Stages part
4112+ mod("Damage", "MORE", nil, 0, 0, { type = "Multiplier", var = "WintertideBrandStage", limitVar = "WintertideBrandMaxStages" }, { type = "SkillPart", skillPart = 1 }),
4113+ mod("Multiplier:WintertideBrandDamagePerStage", "BASE", nil),
40924114 },
40934115 ["winter_brand_max_number_of_stages"] = {
40944116 mod("Multiplier:WintertideBrandMaxStages", "BASE", nil),
@@ -4148,4 +4170,4 @@ local skills, mod, flag, skill = ...
41484170 },
41494171 },
41504172#baseMod skill("radius", 40)
4151- #mods
4173+ #mods
0 commit comments