diff --git a/docs/02-game-design.md b/docs/02-game-design.md index f790bb5..7505ce6 100644 --- a/docs/02-game-design.md +++ b/docs/02-game-design.md @@ -226,24 +226,115 @@ Framework Ready: 全量 6 洲 48 国 127 城市的 catalog 已搭好,扩城市 --- -## 4. 图鉴系统 +## 4. 收集系统 — 城市主题礼物区 -### 4.1 城市图鉴 +玩家通过通关获得两种收藏品,存放在"城市主题礼物区"。 -- 记录每个城市的通关状态、星级、特色元素收集进度 -- 展示该城市文化小知识(1-2 句话) +### 4.1 收藏品类型 -### 4.2 猫猫图鉴 +| 收藏品 | 获取方式 | 每城数量 | 说明 | +|--------|---------|---------|------| +| 城市冰箱贴 | 通关城市内每个小关卡(关 1-6) | 6 个 | 每关奖励 1 个该城市特色冰箱贴 | +| 城市邮票贴 | 通关城市全部 6 关 | 1 个 | 集齐 6 个冰箱贴后自动获得城市邮票 | +| 城市猫猫 | 通关城市 Boss 关(关 6) | 1 只 | 同时获得邮票和猫猫 | -- 已收集猫猫陈列(按洲分类) -- 每只猫猫有名字 + 1 句话介绍 -- 收集进度:X/Y 只 +### 4.2 冰箱贴系统 -### 4.3 护照系统 +**获取规则:** +- 每通关 1 个小关卡,奖励该城市 1 个特色冰箱贴 +- 冰箱贴内容对应该关使用的城市特色元素(如北京关 1 → 糖葫芦冰箱贴) +- 通关动画结束后,冰箱贴从画面飞入收集册 -- 每通关一个城市,护照盖一个章 -- 护照页面可分享为"明信片" -- 护照进度是核心成就展示 +**冰箱贴收集册:** +- 入口在"城市主题礼物区" +- 按城市分页展示,每页最多 6 个冰箱贴(对应 6 关) +- 已收集:彩色冰箱贴 + 关卡编号 +- 未收集:灰色占位 + 锁图标 +- 全城市集齐 6 个时,页面顶部显示"已完成 ✅" + +**冰箱贴数据:** +```javascript +// 冰箱贴和城市元素绑定,每关指定 1 个代表元素 +{ + id: 'magnet_beijing_1', + cityId: 'beijing', + levelId: 1, + elementId: 'beijing_03', // 天安门 — 该关的代表元素 + name: '天安门冰箱贴', + image: 'images/magnets/beijing/magnet_beijing_1.png', +} +``` + +### 4.3 邮票贴系统 + +**获取规则:** +- 通关城市全部 6 关后自动获得该城市邮票贴 +- 邮票贴和城市猫猫同时发放(Boss 关通关奖励) +- 获得邮票时播放"盖章"动画(邮戳落下 + 印章音效) + +**邮票贴收集册:** +- 入口在"城市主题礼物区" +- 按洲分页展示 +- 每个邮票:城市名 + 城市标志图案 + 获得日期 +- 已收集:彩色邮票 +- 未收集:灰色虚线框 + 城市名 +- 集齐一个洲的全部邮票后,解锁"洲际旅行家"成就 + +**邮票贴数据:** +```javascript +{ + id: 'stamp_beijing', + cityId: 'beijing', + name: '北京邮票', + image: 'images/stamps/stamp_beijing.png', + acquiredDate: null, // 获得后写入日期 +} +``` + +### 4.4 城市主题礼物区 + +**入口位置:** 主页底部 Tab 或城市页右上角礼物图标 + +**包含 3 个子页面:** + +| 子页面 | 内容 | 进度展示 | +|--------|------|---------| +| 冰箱贴收集册 | 按城市分页的冰箱贴网格 | X/总数 | +| 邮票贴收集册 | 按洲分页的邮票网格 | X/Y 城市已集齐 | +| 猫猫图鉴 | 按洲分类的猫猫陈列 | X/Y 只已收集 | + +**总览信息栏(礼物区顶部):** +- 冰箱贴:已收集 X / 总 Y 个 +- 邮票:已收集 X / 总 Y 个 +- 猫猫:已收集 X / 总 Y 只 + +### 4.5 分享触发 + +| 触发点 | 分享内容 | +|--------|---------| +| 获得冰箱贴 | "我收集了XX冰箱贴!" + 冰箱贴图片 | +| 获得城市邮票 | "XX城市邮票到手!" + 邮票图片 + 护照进度 | +| 集齐一个城市全部冰箱贴 | "XX城市冰箱贴全收集!" | +| 集齐一个洲全部邮票 | "亚洲旅行家达成!" + 全部邮票合照 | + +### 4.6 与 playerState 的关系 + +```javascript +// playerState 新增字段 +{ + // 冰箱贴收集 + collectedMagnets: [ + // { magnetId: 'magnet_beijing_1', cityId: 'beijing', levelId: 1, acquiredDate: '2026-03-28' } + ], + + // 邮票收集 + collectedStamps: [ + // { stampId: 'stamp_beijing', cityId: 'beijing', acquiredDate: '2026-03-28' } + ], + + // 猫猫收集(已有,不变) + collectedCats: ['beijing'], +} --- @@ -276,10 +367,12 @@ Framework Ready: 全量 6 洲 48 国 127 城市的 catalog 已搭好,扩城市 | 触发点 | 分享内容 | 奖励 | |--------|---------|------| -| 通关城市 | 城市猫猫卡片 + "我解锁了XX猫!" | 道具补给(Undo ×1) | -| 护照盖章 | 护照截图 + 收集进度 | 道具补给(Shuffle ×1) | +| 通关小关卡 | "我收集了XX冰箱贴!" + 冰箱贴图片 | 道具补给(Undo ×1) | +| 通关城市 | "XX城市邮票到手!" + 邮票 + 猫猫 | 道具补给(Shuffle ×1) | +| 集齐城市冰箱贴 | "XX城市冰箱贴全收集!" | 特殊明信片 | +| 集齐洲邮票 | "亚洲旅行家达成!" + 全部邮票合照 | 特殊明信片 | | 每日挑战通关 | 挑战结果卡片 | 道具补给(Undo ×2) | -| 图鉴里程碑 | "已收集X只猫猫" | 特殊明信片 | +| 猫猫图鉴里程碑 | "已收集X只猫猫" | 特殊明信片 | 分享卡片设计:猫猫形象 + 城市背景色 + 进度信息 + 小程序入口按钮。