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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user