Template:ArtifactDef: Difference between revisions
obelisk-bot: uploading initial Cargo templates |
obelisk-bot: Pushing translation table rework |
||
| Line 6: | Line 6: | ||
The bot emits each artifact at <code>Data:Artifact/<id></code> carrying: | The bot emits each artifact at <code>Data:Artifact/<id></code> carrying: | ||
# <code><nowiki>{{ArtifactDef | id=… | name=… | description=… | | # <code><nowiki>{{ArtifactDef | id=… | slot=… | rarity=… | …}}</nowiki></code> — main structural row. | ||
# <code><nowiki>{{TranslationDef | type= | # N × <code><nowiki>{{TranslationDef | type=artifact | target_id=<id> | language=… | name=… | description=… }}</nowiki></code> — name + description, one row per language. | ||
# N × <code><nowiki>{{TranslationDef | type=artifact_upgrade | target_id=<id> | language=… | description=… }}</nowiki></code> — upgrade text (in the <code>description</code> column), one row per language, when an <code>upgrade_description_sid</code> exists. | |||
# N × <code><nowiki>{{TranslationDef | type=artifact_narrative | target_id=<id> | language=… | description=… }}</nowiki></code> — narrative/lore text (in the <code>description</code> column), one row per language, when a <code>narrative_description_sid</code> exists. | |||
# N × <code><nowiki>{{BonusDef | parent_type=artifact | parent_id=<id> | …}}</nowiki></code> — bonuses, in the unified Bonus table. | # N × <code><nowiki>{{BonusDef | parent_type=artifact | parent_id=<id> | …}}</nowiki></code> — bonuses, in the unified Bonus table. | ||
The artifact's three translatable text fields each get their own <code>type</code> discriminator rather than extra columns on the shared Translation table — the same approach Hero uses for its motto. | |||
== Schema == | == Schema == | ||
{{#cargo_declare:_table=Artifact | {{#cargo_declare:_table=Artifact | ||
| id = String | | id = String | ||
| name_sid = String | | name_sid = String | ||
| description_sid = String | | description_sid = String | ||
| upgrade_description_sid = String | | upgrade_description_sid = String | ||
| narrative_description_sid = String | | narrative_description_sid = String | ||
| icon = String | | icon = String | ||
| slot = String | | slot = String | ||
| Line 40: | Line 40: | ||
* [[Template:ItemSetDef|ItemSet]] — joined on <code>Artifact.artifact_set_id = ItemSet.id</code>. | * [[Template:ItemSetDef|ItemSet]] — joined on <code>Artifact.artifact_set_id = ItemSet.id</code>. | ||
* [[Template:BonusDef|Bonus]] — joined on <code>Artifact.id = Bonus.parent_id</code>, filtered by <code>Bonus.parent_type='artifact'</code>. | * [[Template:BonusDef|Bonus]] — joined on <code>Artifact.id = Bonus.parent_id</code>, filtered by <code>Bonus.parent_type='artifact'</code>. | ||
* [[Template:TranslationDef|Translation]] — | * [[Template:TranslationDef|Translation]] — display text in every language (English included), joined on <code>Artifact.id = Translation.target_id</code> with <code>Translation.type IN ('artifact', 'artifact_upgrade', 'artifact_narrative')</code> and the desired <code>language</code> filter. | ||
[[Category:Cargo Definitions]] | [[Category:Cargo Definitions]] | ||
</noinclude><includeonly>{{#cargo_store:_table=Artifact | </noinclude><includeonly>{{#cargo_store:_table=Artifact | ||
| id = {{{id|}}} | | id = {{{id|}}} | ||
| name_sid = {{{name_sid|}}} | | name_sid = {{{name_sid|}}} | ||
| description_sid = {{{description_sid|}}} | | description_sid = {{{description_sid|}}} | ||
| upgrade_description_sid = {{{upgrade_description_sid|}}} | | upgrade_description_sid = {{{upgrade_description_sid|}}} | ||
| narrative_description_sid = {{{narrative_description_sid|}}} | | narrative_description_sid = {{{narrative_description_sid|}}} | ||
| icon = {{{icon|}}} | | icon = {{{icon|}}} | ||
| slot = {{{slot|}}} | | slot = {{{slot|}}} | ||
Latest revision as of 20:47, 14 May 2026
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:
{{ArtifactDef | id=… | slot=… | rarity=… | …}}— main structural row.- N ×
{{TranslationDef | type=artifact | target_id=<id> | language=… | name=… | description=… }}— name + description, one row per language. - N ×
{{TranslationDef | type=artifact_upgrade | target_id=<id> | language=… | description=… }}— upgrade text (in thedescriptioncolumn), one row per language, when anupgrade_description_sidexists. - N ×
{{TranslationDef | type=artifact_narrative | target_id=<id> | language=… | description=… }}— narrative/lore text (in thedescriptioncolumn), one row per language, when anarrative_description_sidexists. - 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 byBonus.parent_type='artifact'. - Translation — display text in every language (English included), joined on
Artifact.id = Translation.target_idwithTranslation.type IN ('artifact', 'artifact_upgrade', 'artifact_narrative')and the desiredlanguagefilter.


