You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Implement Seismic Trap DPS
Added the basic seismic trap mechanics and also added some average shotgunning against configurable enemy size.
* Expand seismic trap logic quite a bit
and copy pasted most of its logic to lightning spire trap and a bit to flamethrower trap
* Seismic breakdown improvements
Expanded, reworded and shuffled information to make it more readable (hopefully) + some small fixes
* Widen skill part dropdown control
* Fix other speed mods applying to seismic/spire
* Fix wave speed errors and breakdown
* Fix formatting and skill list for one box
Co-authored-by: LocalIdentity <localidentity2@gmail.com>
local moreFrequency = skillModList:More(skillCfg, "TrapThrowingSpeed", "SeismicPulseFrequency")
7459
+
local wavePulseRate = incFrequency * moreFrequency / baseInterval
7460
+
skillData.hitTimeOverride = 1 / wavePulseRate
7461
+
output.WavePulseRate = wavePulseRate
7462
+
local moreDuration = skillModList:More(skillCfg, "Duration")
7463
+
local duration = output.Duration
7464
+
local pulses = math.floor(duration * wavePulseRate)
7465
+
output.PulsesPerTrap = pulses
7466
+
local effectiveDuration = pulses / wavePulseRate
7467
+
local cooldown = output.TrapCooldown
7468
+
local averageActiveTraps = effectiveDuration / cooldown
7469
+
output.AverageActiveTraps = averageActiveTraps
7470
+
local function hitChance(enemyRadius, areaDamageRadius, areaSpreadRadius) -- not to be confused with attack hit chance
7471
+
local damagingAreaRadius = areaDamageRadius + enemyRadius - 1 -- radius where area damage can land to hit the enemy;
7472
+
-- -1 because of two assumptions: PoE coordinates are integers and damage is not registered if the two areas only share a point or vertex. If either is not correct, then -1 is not needed.
-- seemingly the only mechanical difference with seismic trap - this one does not scale it's total radius with AoE modifiers
6454
+
output.AreaOfEffectRadius = skillData.radius
6455
+
if breakdown then
6456
+
breakdown.AreaOfEffectRadius = {"Targeting area of this skill is not affected by Area of Effect modifiers."}
6457
+
end
6458
+
6459
+
local baseInterval = skillData.repeatInterval
6460
+
local incFrequency = (1 + skillModList:Sum("INC", skillCfg, "TrapThrowingSpeed") / 100)
6461
+
local moreFrequency = skillModList:More(skillCfg, "TrapThrowingSpeed")
6462
+
local wavePulseRate = incFrequency * moreFrequency / baseInterval
6463
+
skillData.hitTimeOverride = 1 / wavePulseRate
6464
+
output.WavePulseRate = wavePulseRate
6465
+
local moreDuration = skillModList:More(skillCfg, "Duration")
6466
+
local duration = output.Duration
6467
+
local pulses = math.floor(duration * wavePulseRate)
6468
+
output.PulsesPerTrap = pulses
6469
+
local effectiveDuration = pulses / wavePulseRate
6470
+
local cooldown = output.TrapCooldown
6471
+
local averageActiveTraps = effectiveDuration / cooldown
6472
+
output.AverageActiveTraps = averageActiveTraps
6473
+
local function hitChance(enemyRadius, areaDamageRadius, areaSpreadRadius) -- not to be confused with attack hit chance
6474
+
local damagingAreaRadius = areaDamageRadius + enemyRadius - 1 -- radius where area damage can land to hit the enemy;
6475
+
-- -1 because of two assumptions: PoE coordinates are integers and damage is not registered if the two areas only share a point or vertex. If either is not correct, then -1 is not needed.
0 commit comments