Skip to content

map-generation: drop fictional "-1 rest site on A6" claim#401

Merged
ptrlrd merged 1 commit into
mainfrom
fix/map-generation-rest-ascension
Jun 3, 2026
Merged

map-generation: drop fictional "-1 rest site on A6" claim#401
ptrlrd merged 1 commit into
mainfrom
fix/map-generation-rest-ascension

Conversation

@ptrlrd
Copy link
Copy Markdown
Owner

@ptrlrd ptrlrd commented Jun 2, 2026

Fixes #236.

The report

"Ascension levels no longer affect rest site allocation."
/mechanics/map-generation, reported via the feedback form.

Verification against decompiled C#

StandardActMap constructs its room counts via actModel.GetMapPointTypes(mapRng), which is abstract on ActModel and overridden per act. Pulled each override from sts2.dll:

Act Rest count formula Range
Overgrowth NextGaussianInt(7, 1, 6, 7) 6-7
Underdocks NextGaussianInt(7, 1, 6, 7) 6-7
Hive NextGaussianInt(6, 1, 6, 7) 6-7 (lower mean)
Glory NextInt(5, 7) 5-6 (NextInt is [min, max))

None of them call AscensionHelper.HasAscension(...) for rest count. Compare to MapPointTypeCounts.NumOfElites, which does explicitly check AscensionLevel.SwarmingElites and scales 5 -> 8 starting at A1. If a rest-site reduction existed it would be wired the same way.

AscensionLevel enum in current code:

None, SwarmingElites, WearyTraveler, Poverty, TightBelt, AscendersBane,
Inflation, Scarcity, ToughEnemies, DeadlyEnemies, DoubleBoss

A6 = Inflation (gold prices). Nothing named like FewerRestSites exists.

The -1 on A6 claim was likely STS1 carryover (STS1 does subtract a rest site at A6) or written against an early STS2 playtest build.

Fix

data/mechanics_pages/map-generation.md:

  • Table: rest-sites and fights A1+ cells changed from -1 on A6 / em-dash to (no change).
  • Prose: replaced "(each -1 on A6)" with an explicit per-act range and a one-line note that the count is independent of ascension level.

User-visible: /mechanics/map-generation no longer claims ascension affects rest site count. The "5-7 (varies by act)" base claim and the elite ascension-scaling (5 → 8 on A1+) are both correct and stay.

Follow-up worth doing

The mechanics-pages content is hand-written markdown, not parsed from the C#. Same class of drift will happen again on the next major patch. A reasonable follow-up: extend mechanics_constants_parser.py to walk each ActModel.GetMapPointTypes override and write per-act room-distribution constants to mechanics_constants.json, and re-shape this page to pull the numbers from that. Out of scope here. Happy to file a separate issue.

Discord/feedback report (issue #236): "Ascension levels no longer
affect rest site allocation."

Verified against the decompiled C# (sts2.dll on the gaming PC).
Each act overrides ActModel.GetMapPointTypes(Rng) with its own
rest count formula. None of them touch ascension:

  Overgrowth: NextGaussianInt(7, 1, 6, 7)  -> 6 or 7
  Underdocks: NextGaussianInt(7, 1, 6, 7)  -> 6 or 7
  Hive:       NextGaussianInt(6, 1, 6, 7)  -> 6 or 7 (lower mean)
  Glory:      NextInt(5, 7)                -> 5 or 6 (NextInt is [min,max))

Compare to NumOfElites in MapPointTypeCounts, which DOES read
AscensionHelper.HasAscension(AscensionLevel.SwarmingElites) and
scales 5 -> 8 at A1. If a rest-site reduction existed, it would be
wired the same way. AscensionLevel enum's A6 slot is `Inflation`
(gold prices) and there's no level named like FewerRestSites /
FewerSafeRooms anywhere in the enum.

The "-1 on A6" claim was likely carried over from STS1 (which DOES
subtract a rest site at A6) or written against an early playtest
build of STS2 and never revisited.

Fix: drop the A6 column entry in the rest-sites + fights rows of
the Room Distribution table. Reword the prose to spell out each
act's range explicitly (Overgrowth/Underdocks/Hive vs Glory) and
note that the count is independent of ascension level.

The page is hand-written markdown, not auto-generated. A follow-up
to wire mechanics_constants_parser.py to extract per-act room
distribution from the GetMapPointTypes overrides would prevent
this class of drift, but that's bigger scope than this fix.

Fixes #236.
@ptrlrd ptrlrd merged commit 067ae66 into main Jun 3, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] [Page: /mechanics/map-generation]

1 participant