design: 收集系统 — 冰箱贴 + 邮票贴 + 城市主题礼物区

- 通关每关获 1 个城市冰箱贴,通关全城获 1 个城市邮票
- 冰箱贴收集册(按城市)+ 邮票收集册(按洲)+ 猫猫图鉴
- 城市主题礼物区入口统一展示三种收藏品
- playerState 新增 collectedMagnets/collectedStamps
- 分享入口更新(冰箱贴/邮票/洲际成就)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
manpengan
2026-03-28 23:46:13 +08:00
parent feb7a4ee6f
commit 8e142dbd21

View File

@@ -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只猫猫" | 特殊明信片 |
分享卡片设计猫猫形象 + 城市背景色 + 进度信息 + 小程序入口按钮