feat(rust): eight more minor map labels start hidden (D213)

Read from the Carbon rig regenerated at world 6000, seed 981448696, whose map
carries every built-in label: the three that were unverified (Oxum's Gas
Station, Mining Outpost, Ranch) are spelled as written. Adds Canyon B/C,
Lake A, Oasis A/C, Mountain, Train Tunnel Link and Abandoned Cabins, and a
test over that map's 51 real labels.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
2026-09-29 18:12:08 -05:00
parent 0da8f44b55
commit b4f71c05cc
2 changed files with 32 additions and 3 deletions

View File

@@ -75,9 +75,10 @@ const MARKER_PREFIX = 'map.marker.'
const MARKER_KEY_MAX = 64 - MARKER_PREFIX.length
/**
* The labels off unless an admin turns them on. All but the last three are as
* the rigs' map (world 3000, seed 1234) labels them; the gas station, mining
* outpost and ranch are not on that map, and are Rust's display names for them.
* The labels off unless an admin turns them on, spelled as the game labels
* them: all were read from the Carbon rig's 6000 map, seed 981448696, which has
* every one (2026-09-29). The game writes "Jungle ruin" there and "Jungle Ruin"
* on a 3000 map; the key is lower case, so both match.
*/
const MINOR_LABELS = Object.freeze([
'Substation',
@@ -94,6 +95,15 @@ const MINOR_LABELS = Object.freeze([
"Oxum's Gas Station",
'Mining Outpost',
'Ranch',
// D213: found on the 6000 map, hidden at the org lead's word.
'Canyon B',
'Canyon C',
'Lake A',
'Oasis A',
'Oasis C',
'Mountain',
'Train Tunnel Link',
'Abandoned Cabins',
])
/** A label as its switch's key: trimmed, single-spaced, lower case. */

View File

@@ -247,6 +247,25 @@ test('D196: a fresh install hides the minor labels and shows everything else, a
assert.equal(map.markerShown({}, 'JUNGLE Swamp'), false, 'labels match case- and space-insensitively')
})
test('D196/D213: the Carbon rig’s 6000 map (seed 981448696) draws its 29 places and hides its 22 minor labels', () => {
// Every label that map carries, as the game spelled them on 2026-09-29.
const minor = [
'Abandoned Cabins', 'Abandoned Supermarket', 'Canyon B', 'Canyon C', 'Fishing Village', 'Ice Lake', 'Jungle ruin',
'jungle swamp', 'Lake A', 'Large Barn', 'Mining Outpost', 'Mountain', 'Oasis A', 'Oasis C', "Oxum's Gas Station",
'Ranch', 'Substation', 'Train Tunnel', 'Train Tunnel Link', 'Underground Cave', 'Water Well', 'Wild Swamp',
]
const places = [
'Abandoned Military Base', 'Airfield', 'Apartment Complex', 'Arctic Research Base', 'Bandit Camp', 'Ferry Terminal',
'Giant Excavator Pit', 'Harbor', 'HQM Quarry', 'Jungle Ziggurat', 'Junkyard', 'Large Fishing Village', 'Large Oil Rig',
'Launch Site', 'Lighthouse', 'Military Tunnel', 'Missile Silo', 'Oil Rig', 'Outpost', 'Power Plant', 'Radtown',
'Satellite Dish', 'Sewer Branch', 'Stone Quarry', 'Sulfur Quarry', 'The Dome', 'Train Yard', 'Underwater Lab',
'Water Treatment Plant',
]
const all = [...minor, ...places].map((label, i) => ({ kind: `k${i}`, label, x: i, z: i }))
assert.deepStrictEqual(labelsOf(map.filterMonuments(all, {})).sort(), [...places].sort())
assert.equal(map.MINOR_LABELS.length, minor.length, 'every built-in label is on that map')
})
test('D196: the fleet turns a minor label on, and a server turns it off again for itself only', async (t) => {
settings(t, {
stored: { 'map.marker.substation': 'on', 'map.marker.power plant': 'off', 'map.marker.jungle swamp': 'maybe' },