Template:ArtifactDef

From Heroes of Might and Magic: Olden Era Official Wiki
Revision as of 20:47, 14 May 2026 by Ketura (talk | contribs) (obelisk-bot: Pushing translation table rework)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This template defines and stores rows for the Artifact Cargo table. One row per artifact / equipment item. 304 rows in the 2026-05-03 corpus, across 13 source slot files (armor, head, ring, boots, back, belt, right_hand, left_hand, item_slot, unic_slot, magic_scroll, enchante_magic_scroll, mythic_scroll_box).

The source folder is DB/items/items/ — using the JSON's "item" spelling. The wiki side uses artifact per the in-game player-facing label.

The bot emits each artifact at Data:Artifact/<id> carrying:

  1. {{ArtifactDef | id=… | slot=… | rarity=… | …}} — main structural row.
  2. N × {{TranslationDef | type=artifact | target_id=<id> | language=… | name=… | description=… }} — name + description, one row per language.
  3. N × {{TranslationDef | type=artifact_upgrade | target_id=<id> | language=… | description=… }} — upgrade text (in the description column), one row per language, when an upgrade_description_sid exists.
  4. N × {{TranslationDef | type=artifact_narrative | target_id=<id> | language=… | description=… }} — narrative/lore text (in the description column), one row per language, when a narrative_description_sid exists.
  5. N × {{BonusDef | parent_type=artifact | parent_id=<id> | …}} — bonuses, in the unified Bonus table.

The artifact's three translatable text fields each get their own type discriminator rather than extra columns on the shared Translation table — the same approach Hero uses for its motto.

Schema

This template defines the table "Artifact". View table.

Related tables

  • ItemSet — joined on Artifact.artifact_set_id = ItemSet.id.
  • Bonus — joined on Artifact.id = Bonus.parent_id, filtered by Bonus.parent_type='artifact'.
  • Translation — display text in every language (English included), joined on Artifact.id = Translation.target_id with Translation.type IN ('artifact', 'artifact_upgrade', 'artifact_narrative') and the desired language filter.