SL2 Analyzer
Read a FromSoftware .sl2 save and report what is in it
Loading...
Searching...
No Matches
sl2.totals Namespace Reference

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.
 

Detailed Description

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.

Function Documentation

◆ boss_roster()

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().

Here is the caller graph for this function:

◆ covenant_roster()

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().

Here is the caller graph for this function:

◆ 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.

Parameters
base_dirRepo root holding the db_* folders.

Definition at line 76 of file totals.py.

References sl2.totals.boss_roster(), and sl2.totals.covenant_roster().

Here is the call graph for this function: