map-generation: drop fictional "-1 rest site on A6" claim#401
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #236.
The report
Verification against decompiled C#
StandardActMapconstructs its room counts viaactModel.GetMapPointTypes(mapRng), which isabstractonActModeland overridden per act. Pulled each override fromsts2.dll:NextGaussianInt(7, 1, 6, 7)NextGaussianInt(7, 1, 6, 7)NextGaussianInt(6, 1, 6, 7)NextInt(5, 7)NextIntis[min, max))None of them call
AscensionHelper.HasAscension(...)for rest count. Compare toMapPointTypeCounts.NumOfElites, which does explicitly checkAscensionLevel.SwarmingElitesand scales 5 -> 8 starting at A1. If a rest-site reduction existed it would be wired the same way.AscensionLevelenum in current code:A6 =
Inflation(gold prices). Nothing named likeFewerRestSitesexists.The
-1 on A6claim 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:A1+cells changed from-1 on A6/ em-dash to(no change).User-visible:
/mechanics/map-generationno 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.pyto walk eachActModel.GetMapPointTypesoverride and write per-act room-distribution constants tomechanics_constants.json, and re-shape this page to pull the numbers from that. Out of scope here. Happy to file a separate issue.