Template:AbilityInteraction/doc: Difference between revisions

Vergir (talk | contribs)
Rewrite for the interaction registry: three parameters, self-generating registry table, and a pointer to IconBox for custom boxes (with help from vergir-bot LLM)
Vergir (talk | contribs)
m update doc
Line 1: Line 1:
== Usage ==
== Usage ==


{{tl|AbilityInteraction}} displays a boxed note describing how an ability interacts with an item or mechanic. It is meant for the {{code|1=interactions}} parameter of {{tl|AbilitySection}}.
{{tl|AbilityInteraction}} displays a boxed note describing how an ability interacts with an item or mechanic. Under the hood it is a fancy wrapper around {{tl|IconBox}}.


The interaction is chosen by name from a registry in [[Module:AbilityInteraction]], which supplies the header text, color, icon, and link. Call sites supply only the body text and, where relevant, a state.
To use this template, look at the list of possible Interactions and examples of usage below.
 
Nothing else is customizable, and that is deliberate: it keeps a given mechanic looking identical everywhere it appears. A box that needs custom presentation should use {{tl|IconBox}} directly rather than adding parameters here.
 
Setting {{code|1=state{{=}}disabled}} always produces a neutral (blue) header, whatever type the registry entry declares. A disabled box means the interaction does not apply, so it carries no positive or negative meaning.


== Parameters ==
== Parameters ==
Line 13: Line 9:
<templatedata>
<templatedata>
{
{
"description": "A boxed note describing how an ability interacts with an item or mechanic. Presentation comes from a registry in Module:AbilityInteraction.",
"description": "",
"params": {
"params": {
"interaction": {
"interaction": {
Line 20: Line 16:
"required": true,
"required": true,
"example": "debuff resist",
"example": "debuff resist",
"suggestedvalues": [ "debuff resist", "dispel", "indomitable", "slowing hex", "unstoppable" ]
"suggestedvalues": [ "(see full list below)" ]
},
},
"text": {
"text": {
Line 37: Line 33:
}
}
</templatedata>
</templatedata>
An unrecognized {{code|1=interaction}} renders a visible error in place of the box. An unrecognized {{code|1=state}} does not — it renders as though no state were given.
== Interactions ==
This table is generated from the registry, so it always matches what the template accepts.
{{#invoke:AbilityInteraction|list}}
== Adding an interaction ==
Add an entry to the {{code|REGISTRY}} table at the top of [[Module:AbilityInteraction]]. Each entry sets {{code|aliases}}, {{code|title}}, {{code|type}}, {{code|iconfile}}, and {{code|link}}. The table above and the parameter suggestions update on their own.
The registry key and its aliases are matched in lower case. Aliases are assumed not to collide with each other.


== Examples ==
== Examples ==
Line 102: Line 84:
| text = This ability is '''not''' interrupted by [[Slowing Hex]].
| text = This ability is '''not''' interrupted by [[Slowing Hex]].
}}
}}
== Interactions ==
This table is generated from the registry, so it always matches what the template accepts.
{{#invoke:AbilityInteraction|list}}
=== Adding an interaction ===
Add an entry to the {{code|REGISTRY}} table at the top of [[Module:AbilityInteraction]]. An entry should contain {{code|title}}, {{code|type}}, {{code|iconfile}}, and {{code|link}}, which pass down to the underlying {{tl|IconBox}}. The {{code|aliases}} just specifies different ways to write an interaction.


<noinclude>[[Category:Template documentation]]</noinclude>
<noinclude>[[Category:Template documentation]]</noinclude>