StS2's ascension ladder looks smaller — ten levels against twenty — but the first five replay StS1's design beats one-for-one, in the same order.
The ladder
StS1 runs A1–A20; StS2 ships A1–A10 with named levels (SwarmingElites, WearyTraveler, Poverty, TightBelt, AscendersBane, Inflation, Scarcity, ToughEnemies, DeadlyEnemies, DoubleBoss). Both ladders are cumulative: a higher run includes every lower effect.
The same spine, ten years apart
| Beat | StS1 | StS2 |
|---|---|---|
| More elites | A1: elite count ×1.6 | A1: 5 → 8 elite nodes |
| Weaker healing | A5: post-boss heal reduced | A2: ancient heal = 80% of missing HP |
| Less gold | A13: boss gold ×0.75 | A3: gold ×0.75 |
| Fewer potions | A11: slots 3 → 2 | A4: max potions −1 |
| Starting curse | A10: AscendersBane on top of deck | A5: same card, added on floor 1 |
| Pricier shops | A16: prices ×1.1 | A6: removal 75/+25 → 100/+50 |
| Double boss | A20: two boss entries | A10: second boss rolled |
Even the shared card name survives: AscendersBane.
How scaling reaches the monsters
This is where the games genuinely diverge:
- StS1 compiles ascension into per-monster literal constants in the
class files —
ascensionLevel >= N ? scaled : basebranches with no global multiplier, because there isn't one. - StS2 stores per-monster value pairs: each monster row carries its
normal min/max HP beside Ascension-8/9 values, and an
ascensionValueslist keyed by the named level (ToughEnemies: 18 → 19). Moves do the same for damage under DeadlyEnemies. A8/A9 don't scale numbers — they flip which column of the table the game reads.
Both games serve these numbers as data on every bestiary page — before/after columns rendered straight from the extraction.
Probability reshaping, not just numbers
StS2's A7 rewrites reward distributions rather than stats: regular rare chance 0.03 → 0.0149 while common rises 0.60 → 0.615. StS1's analogue, A12, halves upgrade chances by act tier (0.25→0.125, 0.5→0.25). Both attack the reward curve, not the combat sim.