|
SL2 Analyzer
Read a FromSoftware .sl2 save and report what is in it
|
Functions | |
| boss_roster (game, base_dir) | |
| Every boss this tool can name for a game — the denominator behind "Bosses Defeated (8 of 26)". | |
| covenant_roster (game, base_dir) | |
| Every covenant a game has, as the denominator for "Covenants Found". | |
| attach_progress_totals (ch, base_dir) | |
| Attach the denominators the progress sections print against: how many bosses and covenants the tool tracks, which of them this save shows nothing for, and (DS3) how many Lords of Cinder are on the throne. | |
Progress denominators: what each section's "of N" is, and which entries are missing. Kept out of progress.py because naming the gap needs every game's own tables, which would otherwise make the two import each other.
| sl2.totals.boss_roster | ( | game, | |
| base_dir | |||
| ) |
Every boss this tool can name for a game — the denominator behind "Bosses Defeated (8 of 26)".
Assembled from the game's own tables (defeat flags + boss-soul map), so it is what the tool TRACKS, not a claim about how many bosses the game ships. That distinction is the point: a name in here that is not in ch["bosses"] is a boss the save shows no evidence for, which is worth printing; a boss no table knows cannot be reported either way and must not inflate the denominator.
Definition at line 33 of file totals.py.
Referenced by sl2.totals.attach_progress_totals().
| sl2.totals.covenant_roster | ( | game, | |
| base_dir | |||
| ) |
Every covenant a game has, as the denominator for "Covenants Found".
These are the in-game rosters (the id→name tables), so the count is the real total.
Definition at line 57 of file totals.py.
Referenced by sl2.totals.attach_progress_totals().
| sl2.totals.attach_progress_totals | ( | ch, | |
| base_dir | |||
| ) |
Attach the denominators the progress sections print against: how many bosses and covenants the tool tracks, which of them this save shows nothing for, and (DS3) how many Lords of Cinder are on the throne.
The Lords count is ARITHMETIC on two reads that are already verified, not a new offset: a lord's cinders are in the inventory from the kill until they are offered, so placed = lords defeated − cinders still held. It matches the mapped throne flag on the one save that has one (the offering differential reads 1 defeated, 0 held, 1 placed; the before-save reads 1 defeated, 1 held, 0 placed). Skipped on NG+, where the thrones reset but the defeat flags do not, so the subtraction would over-report.
| base_dir | Repo root holding the db_* folders. |
Definition at line 76 of file totals.py.
References sl2.totals.boss_roster(), and sl2.totals.covenant_roster().