Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
518f9fe
refactor(items): the wings', capes' and pets' tooltip values come fro…
ezequielzacca Oct 21, 2026
6e3d937
refactor(items): the tooltip's texts by item level come from the data
ezequielzacca Oct 21, 2026
fbd27bf
refactor(items): the second item chain's tooltip texts come from the …
ezequielzacca Oct 21, 2026
d0a805a
Merge branch 'merge/feat/item-description-placeholders' into merge/fe…
ezequielzacca Oct 22, 2026
350a6d5
Merge branch 'merge/feat/item-tooltip-values-to-data' into merge/feat…
ezequielzacca Oct 22, 2026
7da4325
Merge branch 'merge/feat/item-description-levels' into merge/feat/ite…
ezequielzacca Oct 22, 2026
05369cd
Merge branch 'merge/feat/item-description-placeholders' into merge/fe…
ezequielzacca Oct 22, 2026
ff3cdaa
Merge branch 'merge/feat/item-tooltip-values-to-data' into merge/feat…
ezequielzacca Oct 22, 2026
27603a1
Merge branch 'merge/feat/item-description-levels' into merge/feat/ite…
ezequielzacca Oct 22, 2026
9e0ec51
Merge branch 'merge/feat/item-description-placeholders' into merge/fe…
ezequielzacca Oct 22, 2026
7005f0e
Merge branch 'merge/feat/item-tooltip-values-to-data' into merge/feat…
ezequielzacca Oct 22, 2026
a05521f
Merge branch 'merge/feat/item-description-levels' into merge/feat/ite…
ezequielzacca Oct 22, 2026
642a2ef
Merge branch 'merge/feat/item-description-placeholders' into merge/fe…
ezequielzacca Oct 22, 2026
4749110
Merge branch 'merge/feat/item-tooltip-values-to-data' into merge/feat…
ezequielzacca Oct 22, 2026
3e887eb
Merge branch 'merge/feat/item-description-levels' into merge/feat/ite…
ezequielzacca Oct 22, 2026
7fc6960
Merge branch 'merge/feat/item-description-placeholders' into merge/fe…
ezequielzacca Oct 23, 2026
e7940fb
Merge branch 'merge/feat/item-tooltip-values-to-data' into merge/feat…
ezequielzacca Oct 23, 2026
fc2bf43
Merge branch 'merge/feat/item-description-levels' into merge/feat/ite…
ezequielzacca Oct 23, 2026
5020d5b
Merge branch 'merge/feat/item-description-placeholders' into merge/fe…
ezequielzacca Oct 23, 2026
739f9f0
feat(items): the wings', capes' and pets' descriptions name their tab…
ezequielzacca Oct 23, 2026
a7f7eb2
Merge branch 'merge/feat/item-tooltip-values-to-data' into merge/feat…
ezequielzacca Oct 23, 2026
bef45a8
Merge branch 'merge/feat/item-description-levels' into merge/feat/ite…
ezequielzacca Oct 23, 2026
675bfe7
Merge remote-tracking branch 'origin/main' into merge/feat/item-toolt…
ezequielzacca Oct 23, 2026
bdb0235
feat(items): the stat file's table uses are checked apart, and a wing…
ezequielzacca Oct 23, 2026
52fd730
fix(items): the wings' Polish speed text and the Imp's Portuguese tex…
ezequielzacca Oct 23, 2026
16f01bf
test(items): the wings' lines are compared with the old formulas in e…
ezequielzacca Oct 23, 2026
737e35d
fix(items): the table check keeps each scan alive for its loop, and t…
ezequielzacca Oct 23, 2026
4da79a3
Merge branch 'merge/feat/item-tooltip-values-to-data' into merge/feat…
ezequielzacca Oct 23, 2026
6dddb27
Merge branch 'merge/feat/item-description-levels' into merge/feat/ite…
ezequielzacca Oct 23, 2026
9980fdb
test(items): the wings' comparison test switches the language with it…
Mosch0512 Oct 23, 2026
b706374
feat(items): the wing check compares whole lines, names no culprit in…
ezequielzacca Oct 23, 2026
da3c3bb
Merge branch 'merge/feat/item-tooltip-values-to-data' into merge/feat…
ezequielzacca Oct 23, 2026
046d182
Merge branch 'merge/feat/item-description-levels' into merge/feat/ite…
ezequielzacca Oct 23, 2026
f9a4709
fix(items): wings without lines never set the lines of their tier
Mosch0512 Oct 23, 2026
a16c57f
fix(items): a description line's levels outside int's range are an error
ezequielzacca Oct 23, 2026
7596e3e
Merge branch 'merge/feat/item-tooltip-values-to-data' into merge/feat…
ezequielzacca Oct 23, 2026
8f97dbe
Merge branch 'merge/feat/item-description-levels' into merge/feat/ite…
ezequielzacca Oct 23, 2026
2f63608
Merge branch 'merge/feat/item-description-levels' into merge/feat/ite…
ezequielzacca Oct 23, 2026
971b194
style(items): format the levels check
ezequielzacca Oct 23, 2026
f221017
test(items): the second chain's fixed texts keep the translations the…
ezequielzacca Oct 23, 2026
31d7303
fix(items): four Polish texts of the second chain as the old code sho…
ezequielzacca Oct 23, 2026
1bf39dc
test(items): a %s value in the old texts translated, as the old code …
ezequielzacca Oct 23, 2026
b2c0df3
test(items): the translation test checks all 1050 recorded translations
ezequielzacca Oct 23, 2026
9bf3db2
fix(items): the Fruits' Polish texts as the game prints them; tests f…
ezequielzacca Oct 24, 2026
1894085
Merge branch 'merge/feat/item-description-levels' into merge/feat/ite…
ezequielzacca Oct 24, 2026
843d363
fix(items): close the chain lines test again after the merge
ezequielzacca Oct 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 34 additions & 7 deletions docs/item-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ Jewel of Bless's:
]
```

Each line is `{"text": ..., "color": ...}`:
Each line is `{"text": ..., "color": ..., "levels": [first, last]}`:

- **`text`** is written like `name`: a plain English text, or the texts by
language. It is checked like a name too: the English text is required, a
Expand All @@ -216,14 +216,19 @@ Each line is `{"text": ..., "color": ...}`:
- **`color`** is one of the tooltip colors: `white` (left out), `blue`,
`red`, `yellow`, `green`, `darkRed`, `purple`, `darkBlue`, `darkYellow`,
`greenBlue`, `gray`, `redPurple`, `violet`, `orange`.
- **`levels`** shows the line only at those item levels, both included (`[1,
8]`; left out: every level): a list of two levels from 0 to 15, the first
not above the last. Most items that use it today are level variants (the
Fruits, Contract Summon, Life Stone, Rena, …), which the items design makes
items of their own later: their lines then move into those items and lose
their `levels`.

In the tooltip:

- **Place:** after the item's damage, defense and speed lines, and before
its durability, requirements and options. The lines the tooltip code
computes from the item (the wings' damage and absorption, the Guardian
Angel and the Imp, the Town Portal scroll's delay) come after the
description.
its durability, requirements and options. A few lines that read the hero
or other tables (the Armor of Guardsman's Chaos Castle table, the Lost
Map) are still written by the tooltip code, after the description.
- **Language:** the UI's language, also when the item names stay English
("Translate item names" off).
- **Size:** at most 32 rows. The description has them to itself, so a long
Expand All @@ -244,6 +249,10 @@ placeholder is one of:
as `table:` and its name: the table's value at the item's + level
(`{table:damageIncreaseWeapons}` is 3 at +1 and 66 at +15, the damage a
weapon gains). A new table is a new placeholder.
The wings, capes and pets show their damage increase and absorption this
way: `"Increase {table:wingDamageIncrease1st}% of Damage"` over the table
`wingDamageIncrease1st` (`{"values": 12, "perLevel": 2}`, 12 + 2 per level).
Such tables are only for descriptions: no stat profile names them.

The tables are written apart from the built-in values, so a table may have
any name, also one a later version gives a built-in value: `{level}` and
Expand All @@ -260,6 +269,23 @@ bmd):
{table:damgeIncreaseWeapons}; did you mean {table:damageIncreaseWeapons}?`.
A table written without `table:` gets the same hint.

**Warnings:**

- a table of the stat file that neither a stat nor a description names;
- a wing (an item with a `wingTier`) whose description lines are not those of
most of the other wings of its tier, `cape` tag and group: the tooltip code
chose the wings' lines by the tier, so a new wing without them, or one moved
to another tier that keeps its old tier's tables, is pointed out
(`its wing lines are not those of the other third-tier wings of group 12:
it has 1 line naming no table, they have 3 lines naming …`). A wing alone
there is compared with the wings of its tier and `cape` tag in the other
groups that have more than one; Cape of Fighter (12) and Cape of Lord (13),
each alone and written apart by the old code, are not compared with each
other. Wings of a group that split evenly get one warning that they don't
agree, without blaming either side. Wings without lines never set the
lines the others are compared with, so new wings imported without them are
pointed out, also when they are more than the wings with lines.

The shipped data is checked by the tests, so a wrong placeholder fails the
build's tests.

Expand Down Expand Up @@ -464,8 +490,9 @@ the file does not have (other than `"default"`); a condition the format does
not have; and a condition that is not a list of one or more values, or a
value that is not one of its names (for `group`, a whole number from 0 to
15).
**Warnings:** unknown fields, a table no stat uses, and a caption without
English. An item whose `statProfile` the file does not have is an error, and
**Warnings:** unknown fields, a table that neither a stat nor a
[description placeholder](#description-placeholders) uses (see there for the
wings' tables too), and a caption without English. An item whose `statProfile` the file does not have is an error, and
a profile no item names is a warning.

---
Expand Down
Loading
Loading