diff --git a/server/model/map/map.model.js b/server/model/map/map.model.js index e9de55a..6217927 100644 --- a/server/model/map/map.model.js +++ b/server/model/map/map.model.js @@ -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. */ diff --git a/server/test/map.test.js b/server/test/map.test.js index f3f33fd..274c098 100644 --- a/server/test/map.test.js +++ b/server/test/map.test.js @@ -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' },