Skip to main content

AbilityDuration tooltips

TL;DR: AbilityDuration is a fairly useless keyvalue because whoever coded it forgot to make an automatic tooltip like with AbilityDamage. Use a "duration" AbilitySpecial and connect it with lua instead.

Imagine you want to have an ability apply a modifier for some seconds, duration changing with levels.

You can fall for the trap and do this:

"AbilityDuration" "3 2 2"

And then have your modifier refer to %AbilityDuration in the "Duration" modifier key. All fine for now.

But when when you want to indicate that your ability lasts for said duration, this AbilityDuration doesn't generate a "DURATION:" tooltip by itself, so you have 3 options:

Option 1. Write "Last 3 seconds at level 1 and then 2 at level 2 and 3" in the _Description.

This is bad for the reasons explained before.

Option 2*. Have a "duration" AbilitySpecial in addition to the "AbilityDuration" and keep both values syncronized.

Suboptimal but decent solution, as it allows you to use ability:GetAbilityDuration() which takes takes its value from AbilityDuration.

Option 3. Remove AbilityDuration, only keep the AbilitySpecial. Best way as far as I can tell.

"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"duration" "3 2 2"
}
}

And then do this in a Lua Script if needed.

function HowToTooltip(event)
local ability = event.ability
local duration = ability:GetLevelSpecialValueFor("duration", (ability:GetLevel() - 1))
local damage = ability:GetAbilityDamage()
end

Has the same results and works for every scenario.