Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/Data/ModCache.lua
Original file line number Diff line number Diff line change
Expand Up @@ -8668,7 +8668,7 @@ c["Exposure you inflict applies at least -18% to the affected Resistance"]={{[1]
c["Extra Gore"]={{},nil}
c["Extra gore"]={{},nil}
c["Far Shot"]={{[1]={flags=0,keywordFlags=0,name="FarShot",type="FLAG",value=true}},nil}
c["Final Repeat of Attack Skills deals 60% more Damage"]={{[1]={flags=1,keywordFlags=0,name="RepeatFinalDamage",type="MORE",value=60}},nil}
c["Final Repeat of Attack Skills deals 60% more Damage"]={{[1]={[1]={neg=true,skillTypeList={[1]=90},type="SkillType"},flags=1,keywordFlags=0,name="RepeatFinalDamage",type="MORE",value=60}},nil}
c["Final Repeat of Spells has 40% increased Area of Effect"]={{[1]={[1]={neg=true,type="Condition",var="CastOnFrostbolt"},[2]={type="Condition",varList={[1]="averageRepeat",[2]="alwaysFinalRepeat"}},flags=2,keywordFlags=0,name="RepeatFinalAreaOfEffect",type="INC",value=40}},nil}
c["Fire Exposure you inflict applies an extra -5% to Fire Resistance"]={{[1]={flags=0,keywordFlags=0,name="ExtraFireExposure",type="BASE",value=-5}},nil}
c["Fire Resistance is 75%"]={{[1]={flags=0,keywordFlags=0,name="FireResist",type="OVERRIDE",value=75}},nil}
Expand Down Expand Up @@ -10337,7 +10337,7 @@ c["Non-Damaging Elemental Ailments you inflict have 100% more Effect"]={{[1]={fl
c["Non-Damaging Elemental Ailments you inflict spread to nearby enemies within 2 metres"]={nil,"Non-Damaging Elemental Ailments you inflict spread to nearby enemies within 2 metres "}
c["Non-Damaging Elemental Ailments you inflict spread to nearby enemies within 2 metres Non-Damaging Elemental Ailments you inflict have 100% more Effect"]={nil,"Non-Damaging Elemental Ailments you inflict spread to nearby enemies within 2 metres Non-Damaging Elemental Ailments you inflict have 100% more Effect "}
c["Non-Exerted Attacks deal no Damage"]={nil,"Non-Exerted Attacks deal no Damage "}
c["Non-Travel Attack Skills Repeat an additional Time"]={{[1]={[1]={type="Condition",varList={[1]="averageRepeat",[2]="alwaysFinalRepeat"}},flags=1,keywordFlags=0,name="RepeatCount",type="BASE",value=1}},nil}
c["Non-Travel Attack Skills Repeat an additional Time"]={{[1]={[1]={neg=true,skillTypeList={[1]=90},type="SkillType"},[2]={type="Condition",varList={[1]="averageRepeat",[2]="alwaysFinalRepeat"}},flags=1,keywordFlags=0,name="RepeatCount",type="BASE",value=1}},nil}
c["Non-Unique Jewels cause Small and Notable Passive Skills in a Large Radius to"]={nil,"Non-Unique Jewels cause Small and Notable Passive Skills in a Large Radius to "}
c["Non-Unique Utility Flasks you Use apply to Linked Targets"]={{[1]={flags=0,keywordFlags=0,name="ExtraLinkEffect",type="LIST",value={mod={[1]={effectType="Global",type="GlobalEffect",unscalable=true},flags=0,keywordFlags=0,name="ParentNonUniqueFlasksAppliedToYou",type="FLAG",value=true}}}},nil}
c["Non-Vaal Strike Skills target 1 additional nearby Enemy"]={{[1]={[1]={skillType=25,type="SkillType"},[2]={neg=true,skillType=42,type="SkillType"},flags=0,keywordFlags=0,name="AdditionalStrikeTarget",type="BASE",value=1}},nil}
Expand Down
25 changes: 23 additions & 2 deletions src/Modules/CalcOffence.lua
Original file line number Diff line number Diff line change
Expand Up @@ -759,7 +759,22 @@ function calcs.offence(env, actor, activeSkill)
-- Applies DPS multiplier based on projectile count
skillData.dpsMultiplier = skillModList:Sum("BASE", skillCfg, "ProjectileCount")
end
output.Repeats = 1 + (skillModList:Sum("BASE", skillCfg, "RepeatCount") or 0)

-- attack that are traps and mines can repeat with Fatal Flourish and deal 160% more damage
local fatalFlourishAttackTrapOrMine = activeSkill.skillTypes[SkillType.Attack] and (activeSkill.skillTypes[SkillType.Trapped] or activeSkill.skillTypes[SkillType.RemoteMined])
local function repeatSkillTypesCheck(activeSkillTypes)
if fatalFlourishAttackTrapOrMine or (activeSkillTypes[SkillType.RangedAttack] and (activeSkillTypes[SkillType.Trappable] or activeSkillTypes[SkillType.Mineable])) then
return true
end
local excludeSkillTypes = { SkillType.SummonsTotem, SkillType.HasReservation, SkillType.Instant, SkillType.NonRepeatable, SkillType.CreatesMinion }
for _, type in ipairs(excludeSkillTypes) do
if activeSkillTypes[type] then
return false
end
end
return (activeSkillTypes[SkillType.Multicastable] or activeSkillTypes[SkillType.Multistrikeable])
end
output.Repeats = 1 + (repeatSkillTypesCheck(activeSkill.skillTypes) and (skillModList:Sum("BASE", skillCfg, "RepeatCount") or 0) or 0)
if output.Repeats > 1 then
output.RepeatCount = output.Repeats
-- handle all the multipliers from Repeats
Expand Down Expand Up @@ -795,7 +810,9 @@ function calcs.offence(env, actor, activeSkill)
local modValue = mod.value
DamageFinalMoreValueTotal = DamageFinalMoreValueTotal * (1 + modValue / 100)
DamageMoreValueTotal = DamageMoreValueTotal + modValue
if env.configInput.repeatMode == "AVERAGE" and not skillModList:Flag(nil, "OnlyFinalRepeat") then
if fatalFlourishAttackTrapOrMine then
modValue = 100 + modValue
elseif env.configInput.repeatMode == "AVERAGE" and not skillModList:Flag(nil, "OnlyFinalRepeat") then
modValue = modValue / output.Repeats
end
skillModList:NewMod("Damage", "MORE", modValue, mod.source, mod.flags, mod.keywordFlags, unpack(mod))
Expand Down Expand Up @@ -5624,6 +5641,10 @@ function calcs.offence(env, actor, activeSkill)
local useSpeed = 1
local timeType
if skillFlags.trap or skillFlags.mine then
-- the repeat from Fatal Flourish does not increase the cost of traps or mines
if fatalFlourishAttackTrapOrMine and repeats > 1 then
repeats = repeats - 1
end
local preSpeed = output.TrapThrowingSpeed or output.MineLayingSpeed
local cooldown = output.TrapCooldown or output.Cooldown
useSpeed = (cooldown and cooldown > 0 and 1 / cooldown or preSpeed) / repeats
Expand Down
9 changes: 7 additions & 2 deletions src/Modules/ModParser.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2399,8 +2399,13 @@ local specialModList = {
["exerted attacks deal (%d+)%% increased damage"] = function(num) return { mod("ExertIncrease", "INC", num, nil, ModFlag.Attack, 0) } end,
["exerted attacks have (%d+)%% chance to deal double damage"] = function(num) return { mod("ExertDoubleDamageChance", "BASE", num, nil, ModFlag.Attack, 0) } end,
-- Duelist (Fatal flourish)
["final repeat of attack skills deals (%d+)%% more damage"] = function(num) return { mod("RepeatFinalDamage", "MORE", num, nil, ModFlag.Attack, 0) } end,
["non%-travel attack skills repeat an additional time"] = { mod("RepeatCount", "BASE", 1, nil, ModFlag.Attack, 0, { type = "Condition", varList = {"averageRepeat", "alwaysFinalRepeat"} }) },
["final repeat of attack skills deals (%d+)%% more damage"] = function(num) return { mod("RepeatFinalDamage", "MORE", num, nil, ModFlag.Attack, 0,
{ type = "SkillType", skillTypeList = { SkillType.Travel }, neg = true }),
} end,
["non%-travel attack skills repeat an additional time"] = { mod("RepeatCount", "BASE", 1, nil, ModFlag.Attack, 0,
{ type = "SkillType", skillTypeList = { SkillType.Travel }, neg = true },
{ type = "Condition", varList = {"averageRepeat", "alwaysFinalRepeat"} })
},
-- Ascendant
["grants (%d+) passive skill points?"] = function(num) return { mod("ExtraPoints", "BASE", num) } end,
["can allocate passives from the %a+'s starting point"] = { },
Expand Down
Loading