Ability
Ability describes the effects that occur while the trinket is equipped. Such the healing the player, harvesting a crop, attacking an enemy, and so on.
An ability is primarily defined by AbilityClass
(what it does) and Proc
(when does it activate). Following the successful proc of an ability, a number of proc effects can happen.
Structure
Property | Type | Default | Notes |
---|---|---|---|
Id |
string | same as AbilityClass |
The Id of this ability, used for ProcSyncId and content patcher EditData. |
AbilityClass |
string | "Nop" |
Type name of the motion class to use, can use short name like "Buff" . Refer to docs under "Ability Classes" in the table of contents for details. |
Description |
string | null | String of the ability, will be used to substitute "{1}" in a trinket's description. |
Proc |
ProcOn | Footstep | Make ability activate (proc) when something happens. |
ProcTimer |
double | -1 | After an ability proc, prevent further activations for this amount of time. |
ProcSyncId |
string | null | For use with Proc.Sync, makes this ability proc after another ability in the same level, by their Id. If set, this field takes precedence over ProcSyncIndex . |
ProcSyncIndex |
int | 0 | For use with Proc.Sync, makes this ability proc after another ability in the same level, by their order in the list of abilities. |
ProcSyncDelay |
int | 0 | For use for other abilities with Proc.Sync, add a delay between the proc of this ability and any sync ability listening to this one. |
ProcSound |
string | null | Play a sound cue when ability procs (details) |
ProcTAS |
List<string> | null | String Ids of temporary animated sprites to show when the ability activates. For most abilities, this TAS is drawn shown relative to the farmer. For Hitscan/Projectile, this TAS is shown on the targeted monster instead. |
ProcOneshotAnim |
string | null | Play the matching anim clip on proc, return to normal animation after 1 cycle. |
ProcSpeechBubble |
string | null | Show the matching speech bubble on proc. |
ProcAltVariant |
string | null | Switch the companion to the matching alt variant on proc. Use "RECHECK" to switch |
ProcChatterKey |
string | null | On the next activation of a Chatter ability, use this key instead of the normal conditional key. |
Condition |
string | null | A game state query that must pass before proc. |
DamageThreshold |
int | -1 | Must receive or deal this much damage before proc. For ReceiveDamage & DamageMonster |
IsBomb |
bool? | null | Must deal damage with(true)/not with(false) a bomb. For DamageMonster & SlayMonster |
IsCriticalHit |
bool? | null | Must (true)/must not(false) deal a critical hit. For DamageMonster & SlayMonster |
InCombat |
bool? | null | Must (true)/must not(false) be in combat. "In combat" is defined as monsters in the same location, and having dealt or taken damage in the last 10 seconds. |
Args |
Dictionary | varies | Arguments specific to an ability class, see respective page for details. |
Ability Descriptions
Abilities are internally 0-indexed, but the displayed minimum ability can be changed in TinkerData
Then there are multiple abilities per level and a description for each, they will be joined with new line before passed to description template.
It's not neccesary to provide descriptions to all abilities in a level, often it is sufficient to describe the entire ability in 1 description on the first ability, while leaving the others blank.
Example of a description template for a trinket with 2 ability levels:
// Trinket
"Description": "My trinket {0}:\n====\n{1}"
// Tinker
"MinLevel": 2
// Tinker Abilities
[
[ // rest of ability omitted
{"Description": "first ability A", ...},
{"Description": "second ability B", ...},
],
[ // rest of ability omitted
{"Description": "first ability C", ...},
{"Description": "second ability D", ...}
]
]
Description when trinket has internal level 0:
My trinket 2:
====
first ability A
second ability B
Description when trinket has internal level 1:
My trinket 3:
====
first ability C
second ability D