Add spell data helper and organize screenshots

This commit is contained in:
2026-07-22 11:22:09 -07:00
parent 356a637385
commit 696b0b777f
15 changed files with 805 additions and 125 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

Before

Width:  |  Height:  |  Size: 340 KiB

After

Width:  |  Height:  |  Size: 340 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 403 KiB

+59
View File
@@ -0,0 +1,59 @@
# EverQuest Legends spell data
`scripts/eql-spells` creates a local SQLite search index from the EQL client
files. The client installation remains the source of truth: neither the raw
files nor the generated database are tracked in this repository.
## Sources and cache
The command reads these files from the EQL game directory:
* `spells_us.txt` — spell ID, name, and client numeric fields.
* `spells_us_str.txt` — caster, target, and fade messages.
* `dbstr_us.txt` — spell descriptions (`type` `6`).
It resolves that directory in this order:
1. `--game-path PATH`
2. `EQL_GAME_PATH`
3. `/home/pleb/Games/EverQuestLegends`
The default generated index is
`$XDG_CACHE_HOME/eqclient-conf/eql-spells.sqlite`, or
`~/.cache/eqclient-conf/eql-spells.sqlite` when `XDG_CACHE_HOME` is unset.
Use `--db PATH` to use a different index, such as one for a test fixture.
Each query compares the client files' paths, sizes, nanosecond modification
times, and `:crc` sidecars (when supplied) with index metadata. It rebuilds
automatically after an EQL update. `build` always forces a rebuild.
## Commands
```bash
# Force an index build.
scripts/eql-spells build
# Exact lookup by numeric spell ID or case-insensitive exact name.
scripts/eql-spells get 4
scripts/eql-spells get 'Summon Waterstone'
# Include the complete original caret-delimited row and its fields.
scripts/eql-spells get 4 --raw
# Name substring lookup and full-text name/description search.
scripts/eql-spells find water --limit 10
scripts/eql-spells search 'underwater breathing'
# Use a different EQL installation or cache location.
scripts/eql-spells --game-path /path/to/EverQuestLegends --db /tmp/spells.sqlite search fire
```
Successful commands emit JSON on stdout. `get` returns `spell`; `find` and
`search` return `results`. All include source fingerprint metadata. Add
`--text` to query commands for compact human-readable output.
The first version intentionally exposes only reliably joined fields: ID, name,
description, cast messages, and (with `--raw`) the complete original row. The
numeric columns in `spells_us.txt` have no embedded schema, so class, level,
mana, and effect filters should be added only after their mapping has been
verified for this particular client build.