Module:HeroData/doc: Difference between revisions
No edit summary |
mNo edit summary |
||
| (One intermediate revision by the same user not shown) | |||
| Line 1: | Line 1: | ||
This module allows for the dynamic extraction of all hero data parameters, asset references, and translated profiles stored within the wiki's Cargo database (specifically from the <code>Hero</code> and <code>Translation</code> tables). It automatically handles localized fallback to English if a translation in the requested language is missing. | This module allows for the dynamic extraction of all hero data parameters, asset references, and translated profiles stored within the wiki's Cargo database (specifically from the <code>Hero</code> and <code>Translation</code> tables). It automatically handles localized fallback to English if a translation in the requested language is missing. | ||
| Line 34: | Line 33: | ||
|- | |- | ||
| <code>start_skill_2</code> || Returns the technical ID of the hero's secondary starting skill. || Returns an empty string (<code>""</code>) if the hero only has one starting skill. | | <code>start_skill_2</code> || Returns the technical ID of the hero's secondary starting skill. || Returns an empty string (<code>""</code>) if the hero only has one starting skill. | ||
|- | |||
| <code>start_magic_1</code> || Returns the technical ID of the hero's primary starting spell/magic. || Returns an empty string (<code>""</code>) if the hero has no starting magic. | |||
|- | |||
| <code>start_magic_2</code> || Returns the technical ID of the hero's secondary starting spell/magic. || Returns an empty string (<code>""</code>) if the hero has fewer than two spells. | |||
|} | |} | ||
| Line 51: | Line 54: | ||
| <code>specialization_id</code> || Points to the unique combat skill perk assigned to this specific hero unit. || <code>dungeon_hero_3_specialization</code> | | <code>specialization_id</code> || Points to the unique combat skill perk assigned to this specific hero unit. || <code>dungeon_hero_3_specialization</code> | ||
|- | |- | ||
| <code>source_path</code> || The file path location of the original repository data dump JSON. || <code>DB/heroes/dungeon/ | | <code>source_path</code> || The file path location of the original repository data dump JSON. || <code>DB/heroes/dungeon/dungeon_hero_3.json</code> | ||
|- | |||
| <code>start_skills</code> || Raw comma-separated list of all starting skill IDs. || <code>skill_faction_dungeon,skill_battle_artistry</code> | |||
|- | |||
| <code>start_magics</code> || Raw comma-separated list of all starting spell or magic IDs. || <code>day_16_magic_arinas_chosen_special</code> | |||
|} | |||
== Practical Examples == | |||
=== Example 1: Rendering Hero Portrait Images Dynamically === | |||
To render a hero portrait using their explicit database-defined icon file: | |||
<pre> | |||
[[File:{{#invoke:HeroData|get|dungeon_hero_3|icon}}.png|64px]] | |||
</pre> | |||
=== Example 2: Parsing Layout Blocks Conditionals via Virtual Fields === | |||
You can use the native MediaWiki <code>{{#if:}}</code> parser to change your layouts depending on whether a hero has a secondary starting skill or any starting magic: | |||
<pre> | |||
{{#if:{{#invoke:HeroData|get|dungeon_hero_3|start_skill_2}} | |||
| This hero starts with two skills. Secondary skill ID: {{#invoke:HeroData|get|dungeon_hero_3|start_skill_2}} | |||
| This hero starts with a single skill only! | |||
}} | |||
{{#if:{{#invoke:HeroData|get|dungeon_hero_3|start_magic_1}} | |||
| This hero has a starting spell: {{#invoke:HeroData|get|dungeon_hero_3|start_magic_1}} | |||
| This hero does not know any magic at the start. | |||
}} | |||
</pre> | |||
=== Example 3: Cross-Module Integration Chaining === | |||
Pass the technical ID returned by this module directly into your skill formatting templates or modules to fetch human-readable information automatically: | |||
<pre> | |||
The primary starting skill name is: {{#invoke:SkillData|get|{{#invoke:HeroData|get|dungeon_hero_3|start_skill_1}}|name|fr}} | |||
</pre> | |||
[[Category:Module Documentation]] | |||
Latest revision as of 20:28, 25 May 2026
This module allows for the dynamic extraction of all hero data parameters, asset references, and translated profiles stored within the wiki's Cargo database (specifically from the Hero and Translation tables). It automatically handles localized fallback to English if a translation in the requested language is missing.
Basic Syntax
To fetch a data field, use the following syntax:
{{#invoke:HeroData|get|HERO_ID|VARIABLE|LANGUAGE_CODE}}
HERO_ID: The technical identifier of the hero (e.g.,dungeon_hero_3).VARIABLE: The keyword for the specific data field you want to display (see the full index below).LANGUAGE_CODE: (Optional) The localization code (e.g.,en,fr,pl). Defaults to English (en).
---
Technical Reference Index
📝 Text & Translations (Language-Dependent)
These fields query the Translation table. They dynamically adapt to the requested language code and fallback to English seamlessly if missing.
| Variable | Description | Database Filter Relation |
|---|---|---|
name |
The localized name of the hero. | type="hero"
|
description |
The localized official biography or lore text of the hero. | type="hero"
|
motto |
The hero's localized specific quote or battle motto. | type="hero_motto"
|
⚔️ Split Starting Skills (Virtual Fields)
Instead of returning a raw comma-separated string from the database, the module automatically slices the data array into distinct outputs for clean wiki markup nesting:
| Variable | Description | Fallback Behavior |
|---|---|---|
start_skill_1 |
Returns the technical ID of the hero's primary starting skill. | Always returns the first value found. |
start_skill_2 |
Returns the technical ID of the hero's secondary starting skill. | Returns an empty string ("") if the hero only has one starting skill.
|
start_magic_1 |
Returns the technical ID of the hero's primary starting spell/magic. | Returns an empty string ("") if the hero has no starting magic.
|
start_magic_2 |
Returns the technical ID of the hero's secondary starting spell/magic. | Returns an empty string ("") if the hero has fewer than two spells.
|
⚙️ Core Technical Properties
Standard database values extracted directly from the primary Hero table records.
| Variable | Description | Example Value |
|---|---|---|
class_id |
Technical ID linking to the hero's mechanical class archetype. | might_dungeon
|
faction |
The alignment group or city archetype the hero is drafted under. | dungeon
|
class_type |
Archetype category profiling orientation. | might or magic
|
icon |
The filename token assigned to the hero portrait graphic asset. | hero_dungeon_3_Stinger
|
specialization_id |
Points to the unique combat skill perk assigned to this specific hero unit. | dungeon_hero_3_specialization
|
source_path |
The file path location of the original repository data dump JSON. | DB/heroes/dungeon/dungeon_hero_3.json
|
start_skills |
Raw comma-separated list of all starting skill IDs. | skill_faction_dungeon,skill_battle_artistry
|
start_magics |
Raw comma-separated list of all starting spell or magic IDs. | day_16_magic_arinas_chosen_special
|
Practical Examples
Example 1: Rendering Hero Portrait Images Dynamically
To render a hero portrait using their explicit database-defined icon file:
[[File:{{#invoke:HeroData|get|dungeon_hero_3|icon}}.png|64px]]
Example 2: Parsing Layout Blocks Conditionals via Virtual Fields
You can use the native MediaWiki parser to change your layouts depending on whether a hero has a secondary starting skill or any starting magic:
{{#if:{{#invoke:HeroData|get|dungeon_hero_3|start_skill_2}}
| This hero starts with two skills. Secondary skill ID: {{#invoke:HeroData|get|dungeon_hero_3|start_skill_2}}
| This hero starts with a single skill only!
}}
{{#if:{{#invoke:HeroData|get|dungeon_hero_3|start_magic_1}}
| This hero has a starting spell: {{#invoke:HeroData|get|dungeon_hero_3|start_magic_1}}
| This hero does not know any magic at the start.
}}
Example 3: Cross-Module Integration Chaining
Pass the technical ID returned by this module directly into your skill formatting templates or modules to fetch human-readable information automatically:
The primary starting skill name is: {{#invoke:SkillData|get|{{#invoke:HeroData|get|dungeon_hero_3|start_skill_1}}|name|fr}}


