Merge remote-tracking branch 'Nostrademous/CastOnDeath' into dev
This commit is contained in:
@@ -835,6 +835,7 @@ skills["SupportCastOnDeath"] = {
|
||||
},
|
||||
},
|
||||
baseMods = {
|
||||
skill("triggeredOnDeath", true),
|
||||
},
|
||||
qualityStats = {
|
||||
Default = {
|
||||
|
||||
@@ -109,6 +109,7 @@ local skills, mod, flag, skill = ...
|
||||
mod("Duration", "INC", nil),
|
||||
},
|
||||
},
|
||||
#baseMod skill("triggeredOnDeath", true)
|
||||
#mods
|
||||
|
||||
#skill SupportChain
|
||||
|
||||
@@ -1179,9 +1179,15 @@ function calcs.offence(env, actor, activeSkill)
|
||||
output.Time = activeSkill.activeEffect.grantedEffect.castTime
|
||||
output.Speed = 1 / output.Time
|
||||
elseif skillData.triggerTime and skillData.triggered then
|
||||
output.Time = skillData.triggerTime / (1 + skillModList:Sum("INC", cfg, "CooldownRecovery") / 100) * (skillModList:Sum("BASE", cfg, "CastWhileChannellingSpellsLinked") or 1)
|
||||
local cwcLinkedSpells = skillModList:Sum("BASE", cfg, "CastWhileChannellingSpellsLinked")
|
||||
if cwcLinkedSpells > 0 then
|
||||
output.Time = skillData.triggerTime / (1 + skillModList:Sum("INC", cfg, "CooldownRecovery") / 100) * cwcLinkedSpells
|
||||
else
|
||||
output.Time = skillData.triggerTime / (1 + skillModList:Sum("INC", cfg, "CooldownRecovery") / 100)
|
||||
end
|
||||
output.TriggerTime = output.Time
|
||||
output.Speed = 1 / output.Time
|
||||
skillData.showAverage = false
|
||||
elseif skillData.triggeredByBrand and skillData.triggered then
|
||||
output.Time = 1 / (1 + skillModList:Sum("INC", cfg, "Speed", "BrandActivationFrequency") / 100) / skillModList:More(cfg, "BrandActivationFrequency") * (skillModList:Sum("BASE", cfg, "ArcanistSpellsLinked") or 1)
|
||||
output.TriggerTime = output.Time
|
||||
@@ -1235,7 +1241,7 @@ function calcs.offence(env, actor, activeSkill)
|
||||
})
|
||||
end
|
||||
end
|
||||
if skillData.hitTimeOverride then
|
||||
if skillData.hitTimeOverride and not skillData.triggeredOnDeath then
|
||||
output.HitTime = skillData.hitTimeOverride
|
||||
output.HitSpeed = 1 / output.HitTime
|
||||
--Brands always have hitTimeOverride
|
||||
|
||||
@@ -911,6 +911,17 @@ function calcs.perform(env)
|
||||
activeSkill.skillModList:NewMod("CastWhileChannellingSpellsLinked", "BASE", spellCount, "Skill")
|
||||
activeSkill.skillData.triggerTime = trigTime
|
||||
end
|
||||
if activeSkill.skillData.triggeredOnDeath and not activeSkill.skillFlags.minion then
|
||||
activeSkill.skillData.triggered = true
|
||||
for _, value in ipairs(activeSkill.skillModList:Tabulate("INC", env.player.mainSkill.skillCfg, "TriggeredDamage")) do
|
||||
activeSkill.skillModList:NewMod("Damage", "INC", value.mod.value, value.mod.source, value.mod.flags, value.mod.keywordFlags, unpack(value.mod))
|
||||
end
|
||||
for _, value in ipairs(activeSkill.skillModList:Tabulate("MORE", env.player.mainSkill.skillCfg, "TriggeredDamage")) do
|
||||
activeSkill.skillModList:NewMod("Damage", "MORE", value.mod.value, value.mod.source, value.mod.flags, value.mod.keywordFlags, unpack(value.mod))
|
||||
end
|
||||
-- Set trigger time to 1 min in ms ( == 6000 ). Technically any large value would do.
|
||||
activeSkill.skillData.triggerTime = 60 * 1000
|
||||
end
|
||||
end
|
||||
|
||||
local breakdown
|
||||
|
||||
Reference in New Issue
Block a user