User:Vergir/AbilityInteraction: Difference between revisions

Vergir (talk | contribs)
Update interaction header colors (with help from vergir-bot LLM)
Vergir (talk | contribs)
Rewrite as thin wrapper calling Module:Vergir/InteractionTypes — single config source of truth (with help from vergir-bot LLM)
Line 1: Line 1:
<includeonly><!--
<includeonly>{{#invoke:Vergir/InteractionTypes|render|type={{{type|}}}|text={{{text|}}}}}</includeonly><noinclude>
  AbilityInteraction: renders one styled interaction row.
  Parameters:
    type - interaction type key (see valid values in doc)
    text - (optional) freeform wikitext description. Only movement_restriction
          and charges have a default; all other types require explicit text.
 
  Color is determined automatically by type:
    vitality (#3d5632) : unstoppable, counterspell, debuff_resist, dispel_magic, bullet_effect
    spirit  (#624877) : movement_restriction, ability_range, ability_duration, charges
    default  (#6a6a6a) : unknown types
-->
{{#if: {{{type|}}} |
<div class="ability-interaction" style="margin-bottom:4px; border-radius:4px; overflow:hidden; font-family:'Open Sans','PT Serif',serif;">
  <div style="background:{{#switch:{{{type|}}}
    | unstoppable          = #3d5632
    | counterspell        = #3d5632
    | debuff_resist        = #3d5632
    | dispel_magic        = #3d5632
    | bullet_effect        = #3d5632
    | movement_restriction = #624877
    | ability_range        = #624877
    | ability_duration    = #624877
    | charges              = #624877
    | #default            = #6a6a6a
  }}; padding:4px 8px; font-weight:bold; font-size:0.85rem; display:flex; align-items:center; gap:6px; color:#FFEFD7;">[[File:{{#switch:{{{type|}}}
    | unstoppable          = Unstoppable.png
    | counterspell        = Counterspell.png
    | debuff_resist        = Debuff_Reducer.png
    | dispel_magic        = Dispel_Magic.png
    | bullet_effect        = Plated_Armor.png
    | movement_restriction = Slowing_Hex.png
    | ability_range        = Greater_Expansion.png
    | ability_duration    = Duration_Extender.png
    | charges              = Rapid_Recharge.png
    | #default            = GenericProperty.png
  }}|20px|link=]] {{#switch:{{{type|}}}
    | unstoppable          = [[Unstoppable]]
    | counterspell        = [[Counterspell]]
    | debuff_resist        = [[Debuff Resist]]
    | dispel_magic        = [[Dispel Magic]]
    | bullet_effect        = [[Plated Armor|Bullet Effect]]
    | movement_restriction = [[Slowing Hex|Movement Restriction]]
    | ability_range        = [[Ability Range]]
    | ability_duration    = [[Ability Duration]]
    | charges              = [[Charges]]
    | #default            = <span style="color:red;">Unknown type: <code>{{{type}}}</code></span>
  }}</div>
  <div style="background:#1e1a22; padding:6px 10px; font-size:0.85rem; color:#FFEFD7;">{{#if:{{{text|}}}|{{{text}}}|{{#switch:{{{type|}}}
    | movement_restriction = This ability's cast is categorized as a movement action and will be prevented by effects that restrict movement abilities, such as [[Slowing Hex]].
    | charges              = This is a charged ability and interacts with items that affect [[Charges]].
    | #default            =
  }}}}</div>
</div>
}}</includeonly><noinclude>
== Overview ==
== Overview ==
Renders a single styled interaction row for use inside the <code>interactions=</code> parameter of [[User:Vergir/AbilitySection]].
Renders a single styled interaction row for use inside the <code>interactions=</code> parameter of [[User:Vergir/AbilitySection]].
All type definitions (label, icon, color, default text) live in [[Module:Vergir/InteractionTypes]]. Adding a new interaction type only requires editing that module.


=== Parameters ===
=== Parameters ===
Line 61: Line 9:
! Parameter !! Description !! Required
! Parameter !! Description !! Required
|-
|-
| <code>type</code> || Interaction type key. Must be one of the valid values below. || Yes
| <code>type</code> || Interaction type key. Must match an entry in [[Module:Vergir/InteractionTypes]]. || Yes
|-
|-
| <code>text</code> || Description of the interaction. <code>movement_restriction</code> and <code>charges</code> have a built-in default; all other types require explicit text. || No (for movement_restriction/charges), Yes (for all others)
| <code>text</code> || Custom description. If omitted, a default description is shown in grey italics. || No
|}
|}
Color is determined automatically by type — editors do not set it.


=== Valid type values ===
=== Valid type values ===
Adding a new type requires updating the four <code>#switch</code> blocks in this template (color, icon, label, default text).
See [[Module:Vergir/InteractionTypes]] for the full list. Current types:


; Vitality (dark green, #3d5632)
; Vitality (dark green)
* <code>unstoppable</code> — [[Unstoppable]]
* <code>unstoppable</code>, <code>counterspell</code>, <code>debuff_resist</code>, <code>dispel_magic</code>, <code>bullet_effect</code>
* <code>counterspell</code> — [[Counterspell]]
* <code>debuff_resist</code> — [[Debuff Resist]]
* <code>dispel_magic</code> — [[Dispel Magic]]
* <code>bullet_effect</code> — [[Plated Armor|Bullet Effect]]


; Spirit (dark purple, #624877)
; Spirit (dark purple)
* <code>movement_restriction</code> — [[Slowing Hex|Movement Restriction]] (has default text)
* <code>movement_restriction</code>, <code>ability_range</code>, <code>ability_duration</code>, <code>charges</code>
* <code>ability_range</code> — [[Ability Range]]
* <code>ability_duration</code> — [[Ability Duration]]
* <code>charges</code> — [[Charges]] (has default text)


=== Example ===
=== Example ===
<pre>
<pre>
<!-- With custom text -->
{{User:Vergir/AbilityInteraction
{{User:Vergir/AbilityInteraction
| type = counterspell
| type = counterspell
| text = [[Counterspell]] blocks the slow and accuracy debuff, but not the damage.
| text = Counterspell blocks the slow and accuracy debuff, but not the damage.
}}
}}


<!-- Using default text -->
{{User:Vergir/AbilityInteraction
{{User:Vergir/AbilityInteraction
| type = charges
| type = charges