From 772fa1840b3169b0577f1d9ff5e843a6c2315f86 Mon Sep 17 00:00:00 2001 From: Lilylicious Date: Thu, 10 Aug 2023 09:08:55 +0200 Subject: [PATCH] Implement flamethrower trap DPS --- src/Data/Skills/act_dex.lua | 18 +++++++++++++++++- src/Export/Skills/act_dex.txt | 18 +++++++++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/Data/Skills/act_dex.lua b/src/Data/Skills/act_dex.lua index 09546777bfe..aaba5d71b0c 100644 --- a/src/Data/Skills/act_dex.lua +++ b/src/Data/Skills/act_dex.lua @@ -4275,8 +4275,16 @@ skills["FlamethrowerTrap"] = { skillTypes = { [SkillType.Spell] = true, [SkillType.Duration] = true, [SkillType.Damage] = true, [SkillType.Mineable] = true, [SkillType.Area] = true, [SkillType.Trapped] = true, [SkillType.Fire] = true, [SkillType.AreaSpell] = true, [SkillType.Cooldown] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, + parts = { + { + name = "One trap", + }, + { + name = "Average # traps", + }, + }, preDamageFunc = function(activeSkill, output, breakdown) - -- many unknown stats. can't calculate DPS + -- Unknown stats provided by asking GGG local t_insert = table.insert local s_format = string.format @@ -4284,6 +4292,12 @@ skills["FlamethrowerTrap"] = { local cooldown = output.TrapCooldown local averageActiveTraps = duration / cooldown output.AverageActiveTraps = averageActiveTraps + activeSkill.skillData.hitTimeOverride = 0.1 -- Source: Private message from GGG employee + + if activeSkill.skillPart == 2 then + activeSkill.skillData.dpsMultiplier = averageActiveTraps + end + if breakdown then breakdown.AverageActiveTraps = { } t_insert(breakdown.AverageActiveTraps, "Average active traps, not considering stored cooldown uses:") @@ -4296,6 +4310,8 @@ skills["FlamethrowerTrap"] = { ["flamethrower_trap_damage_+%_final_vs_burning_enemies"] = { mod("Damage", "MORE", nil, bit.band(ModFlag.Hit, ModFlag.Ailment), 0, { type = "ActorCondition", actor = "enemy", var = "Burning" }), }, + ["base_skill_show_average_damage_instead_of_dps"] = { + }, }, baseFlags = { spell = true, diff --git a/src/Export/Skills/act_dex.txt b/src/Export/Skills/act_dex.txt index f5846606a04..216e704e197 100644 --- a/src/Export/Skills/act_dex.txt +++ b/src/Export/Skills/act_dex.txt @@ -880,8 +880,16 @@ local skills, mod, flag, skill = ... #skill FlamethrowerTrap #flags spell trap area duration + parts = { + { + name = "One trap", + }, + { + name = "Average # traps", + }, + }, preDamageFunc = function(activeSkill, output, breakdown) - -- many unknown stats. can't calculate DPS + -- Unknown stats provided by asking GGG local t_insert = table.insert local s_format = string.format @@ -889,6 +897,12 @@ local skills, mod, flag, skill = ... local cooldown = output.TrapCooldown local averageActiveTraps = duration / cooldown output.AverageActiveTraps = averageActiveTraps + activeSkill.skillData.hitTimeOverride = 0.1 -- Source: Private message from GGG employee + + if activeSkill.skillPart == 2 then + activeSkill.skillData.dpsMultiplier = averageActiveTraps + end + if breakdown then breakdown.AverageActiveTraps = { } t_insert(breakdown.AverageActiveTraps, "Average active traps, not considering stored cooldown uses:") @@ -901,6 +915,8 @@ local skills, mod, flag, skill = ... ["flamethrower_trap_damage_+%_final_vs_burning_enemies"] = { mod("Damage", "MORE", nil, bit.band(ModFlag.Hit, ModFlag.Ailment), 0, { type = "ActorCondition", actor = "enemy", var = "Burning" }), }, + ["base_skill_show_average_damage_instead_of_dps"] = { + }, }, #baseMod skill("radius", 32) #mods