nav: 统一 NavNode schema + runtime/roadmap 分离 + 城市补父级

- navigation/nav-schema.js: 统一 NavNode schema 定义
- navigation/runtime-nav.js: MVP runtime(仅 6 城市 active)
- navigation/future-catalog.js: 路线图数据(不进 runtime)
- 旧索引文件标注 @deprecated,重定向到新路径
- 6 城市补 countryId/regionId
- game-design 明确 MVP vs V1.1+ 导航边界

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
manpengan
2026-03-28 23:31:52 +08:00
parent 18cd4d8409
commit 212b12ab6b
15 changed files with 470 additions and 439 deletions

View File

@@ -1,9 +1,13 @@
module.exports = {
import { createLevelPresets } from '../shared/level-presets.js'
export const singapore = {
id: 'singapore',
contentVersion: 1,
continentId: 'asia',
countryId: 'singapore_country',
regionId: null,
sortOrder: 5,
unlockAfterCityId: 'seoul',
unlockAfterCityId: 'istanbul',
bundle: {
packId: 'asia-rest',
preload: 'on-city-page',
@@ -11,54 +15,45 @@ module.exports = {
display: {
name: '新加坡',
nameEn: 'Singapore',
bgColor: '#2ECC71',
tagline: '鱼尾狮旁撸猫猫',
funFact: '新加坡是全球绿化覆盖率最高的城市之一',
bgColor: '#00A896',
tagline: '海湾花园看猫猫',
funFact: '新加坡是花园城市国家',
},
cover: {
catImage: 'images/cats/cat_singapore.png',
catThumb: 'images/cats/cat_singapore_thumb.png',
shareAccent: '#F28C28',
shareAccent: '#02C39A',
},
cat: {
id: 'cat_singapore',
name: '狮',
intro: '戴小狮子鬃毛的花猫,骄傲地守护鱼尾狮',
baseColor: '#FFFFFF',
name: '狮',
baseColor: '#F2C078',
pattern: 'calico',
patternColor: '#F28C28',
accessory: '小狮子鬃毛',
expression: 'proud',
accessory: '小狮鬃',
},
passport: {
stampId: 'stamp_singapore',
stampLabel: '新加坡',
},
elements: [
{ id: 'singapore_01', name: '鱼尾狮', category: 'landmark', rarity: 'core', image: 'images/elements/singapore/singapore_01.png', tags: ['statue', 'water', 'iconic'] },
{ id: 'singapore_02', name: '辣椒螃蟹', category: 'food', rarity: 'core', image: 'images/elements/singapore/singapore_02.png', tags: ['seafood', 'spicy', 'red'] },
{ id: 'singapore_03', name: '榴莲建筑', category: 'landmark', rarity: 'core', image: 'images/elements/singapore/singapore_03.png', tags: ['theater', 'spiky', 'modern'] },
{ id: 'singapore_04', name: '叻沙', category: 'food', rarity: 'core', image: 'images/elements/singapore/singapore_04.png', tags: ['noodle', 'coconut', 'spicy'] },
{ id: 'singapore_05', name: '金沙酒店', category: 'landmark', rarity: 'core', image: 'images/elements/singapore/singapore_05.png', tags: ['hotel', 'pool', 'skyline'] },
{ id: 'singapore_06', name: '兰花', category: 'nature', rarity: 'core', image: 'images/elements/singapore/singapore_06.png', tags: ['flower', 'purple', 'national'] },
{ id: 'singapore_07', name: '肉骨茶', category: 'food', rarity: 'core', image: 'images/elements/singapore/singapore_07.png', tags: ['soup', 'herbal', 'pork'] },
{ id: 'singapore_08', name: '冰激凌三明治', category: 'food', rarity: 'core', image: 'images/elements/singapore/singapore_08.png', tags: ['dessert', 'cold', 'colorful'] },
{ id: 'singapore_09', name: '组屋', category: 'culture', rarity: 'core', image: 'images/elements/singapore/singapore_09.png', tags: ['housing', 'colorful', 'block'] },
{ id: 'singapore_10', name: '咖椰吐司', category: 'food', rarity: 'core', image: 'images/elements/singapore/singapore_10.png', tags: ['toast', 'jam', 'breakfast'] },
{ id: 'singapore_11', name: '摩天轮', category: 'item', rarity: 'core', image: 'images/elements/singapore/singapore_11.png', tags: ['wheel', 'night', 'view'] },
{ id: 'singapore_12', name: '热带雨林', category: 'nature', rarity: 'core', image: 'images/elements/singapore/singapore_12.png', tags: ['forest', 'green', 'tropical'] },
{ id: 'singapore_13', name: '娘惹瓷砖', category: 'culture', rarity: 'core', image: 'images/elements/singapore/singapore_13.png', tags: ['tile', 'pattern', 'peranakan'] },
],
levelPresets: [
{ id: 1, difficultyTier: 'intro', seedBase: 15001, elementCount: 6, piecesPerElement: 3, layers: 2, density: 'low', targetPassRate: 0.95, targetDurationSec: [60, 120] },
{ id: 2, difficultyTier: 'easy', seedBase: 15002, elementCount: 7, piecesPerElement: 3, layers: 2, density: 'low', targetPassRate: 0.90, targetDurationSec: [60, 120] },
{ id: 3, difficultyTier: 'normal', seedBase: 15003, elementCount: 8, piecesPerElement: 3, layers: 3, density: 'medium', targetPassRate: 0.80, targetDurationSec: [90, 150] },
{ id: 4, difficultyTier: 'normal', seedBase: 15004, elementCount: 9, piecesPerElement: 3, layers: 3, density: 'medium', targetPassRate: 0.70, targetDurationSec: [90, 150] },
{ id: 5, difficultyTier: 'hard', seedBase: 15005, elementCount: 10, piecesPerElement: 3, layers: 4, density: 'medium_high', targetPassRate: 0.60, targetDurationSec: [120, 180] },
{ id: 6, difficultyTier: 'boss', seedBase: 15006, elementCount: 10, piecesPerElement: [3,3,3,3,3,6,3,3,3,3], layers: 4, density: 'high', targetPassRate: 0.55, targetDurationSec: [120, 240] },
{ id: 'singapore_01', name: '鱼尾狮', category: 'landmark', rarity: 'core', image: 'images/elements/singapore/singapore_01.png', tags: ['statue'] },
{ id: 'singapore_02', name: '金沙酒店', category: 'landmark', rarity: 'core', image: 'images/elements/singapore/singapore_02.png', tags: ['hotel'] },
{ id: 'singapore_03', name: '叻沙', category: 'food', rarity: 'core', image: 'images/elements/singapore/singapore_03.png', tags: ['noodle'] },
{ id: 'singapore_04', name: '辣椒螃蟹', category: 'food', rarity: 'core', image: 'images/elements/singapore/singapore_04.png', tags: ['crab'] },
{ id: 'singapore_05', name: '咖椰吐司', category: 'food', rarity: 'core', image: 'images/elements/singapore/singapore_05.png', tags: ['toast'] },
{ id: 'singapore_06', name: '娘惹花砖', category: 'culture', rarity: 'core', image: 'images/elements/singapore/singapore_06.png', tags: ['tile'] },
{ id: 'singapore_07', name: '小红点贴纸', category: 'culture', rarity: 'core', image: 'images/elements/singapore/singapore_07.png', tags: ['badge'] },
{ id: 'singapore_08', name: '冰淇淋三明治', category: 'item', rarity: 'core', image: 'images/elements/singapore/singapore_08.png', tags: ['cart'] },
{ id: 'singapore_09', name: '组屋钥匙', category: 'item', rarity: 'core', image: 'images/elements/singapore/singapore_09.png', tags: ['key'] },
{ id: 'singapore_10', name: '兰花', category: 'nature', rarity: 'core', image: 'images/elements/singapore/singapore_10.png', tags: ['flower'] },
{ id: 'singapore_11', name: '榴莲', category: 'nature', rarity: 'core', image: 'images/elements/singapore/singapore_11.png', tags: ['fruit'] },
{ id: 'singapore_12', name: '雨树', category: 'nature', rarity: 'core', image: 'images/elements/singapore/singapore_12.png', tags: ['tree'] },
],
levelPresets: createLevelPresets(15000),
shareCard: {
titleUnlocked: '我解锁了新加坡猫!',
titlePassport: '新加坡护照盖章完成',
},
}
export default singapore