Skip to content

Map rules: lvLimit closes portals below it; Training Centers send level 20+ home - #715

Merged
neeerp merged 2 commits into
masterfrom
v83/map-level-rules
Oct 22, 2026
Merged

neeerp merged 2 commits into
masterfrom
v83/map-level-rules

Conversation

@neeerp

@neeerp neeerp commented Oct 22, 2026

Copy link
Copy Markdown
Owner

LEDGER row 196. The v83 client reads neither info/lvLimit nor info/lvForceMove (reports/a055-map-rules.md), and Cosmic enforces neither. This ships the recommended defaults recorded in v83ref/lanes/QUESTIONS.md (row 196, 2026-10-22).

  • Map data: game-data reads both keys into FieldTemplate::level_limit and level_force_move.
  • lvLimit (net::map_rules::may_walk_in): a portal walk into a map above the player's level gets BLOCKED_MAP 2, "You cannot go to that place.", for example Leafre's west00 (15).
    • GMs pass.
    • NPC, script, rock and map-id warps are not gated.
  • lvForceMove (net::map_rules::moved_out_to): only the five Training Centers (25 maps, value 20), matching their NPCs' "under level 20". Entering at level 20 or higher sends the player to returnMap portal 0 straight away, through a map timer that is already due.
    • GMs pass.
    • Kerning Square (51) and Mushroom Castle (39) are left alone.
  • Tests:
    • Unit tests in game-data and net::map_rules.
    • New harness test map_level_rules.
    • Harness runs green: map_level_rules, map_time_limit, fourth_job, boss_hp_bar, statues_and_time_gate.
  • Review: one Sonnet review (a057) found no logic bugs. I fixed its fragile-test finding: the character now leaves the centre before relogging. I also added the "every entry" note to the docs.

@neeerp
neeerp merged commit ef7f7f1 into master Oct 22, 2026
1 check passed
@neeerp
neeerp deleted the v83/map-level-rules branch October 22, 2026 07:18
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.

1 participant