design: 五层收集体系 — 冰箱贴/邮票/猫猫/动物/洲地图

5 层收集品和导航层级一一对应:
- 关卡→冰箱贴, 城市→邮票, 地区→猫猫(不同品种),
  国家→代表动物, 大洲→洲地图
- 城市主题礼物区含 5 个收集册(Tab 切换)
- playerState 新增 collectedRegionCats/collectedAnimals/collectedMaps
- 14 国代表动物 + 8 地区猫猫品种 + 6 洲地图风格定义

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
manpengan
2026-03-28 23:58:18 +08:00
parent 3c5943212d
commit 86a7b32b8f

View File

@@ -252,112 +252,192 @@ Framework Ready: 全量 6 洲 48 国 127 城市的 catalog 已搭好,扩城市
## 4. 收集系统 — 城市主题礼物区 ## 4. 收集系统 — 城市主题礼物区
玩家通过通关获得两种收藏品,存放在"城市主题礼物区"。 5 层收集体系,和导航层级一一对应,存放在"城市主题礼物区"。
### 4.1 收藏品类型 ### 4.1 五层收集品总览
| 收藏品 | 获取方式 | 每城数量 | 说明 | | 层级 | 收藏品 | 获取条件 | 数量 | 收集册 |
|--------|---------|---------|------| |------|--------|---------|------|--------|
| 城市冰箱贴 | 通关城市内每个小关卡(关 1-6 | 6 个 | 每关奖励 1 个该城市特色冰箱贴 | | 关卡 | 城市冰箱贴 | 通关每个小关卡 | 每城 6 个 | 冰箱贴收集册 |
| 城市邮票贴 | 通关城市全部 6 关 | 1 个 | 集齐 6 个冰箱贴后自动获得城市邮票 | | 城市 | 城市邮票贴 | 通关城市全部 6 关 | 每城 1 个 | 邮票贴收集册 |
| 城市猫猫 | 通关城市 Boss 关(关 6 | 1 | 同时获得邮票和猫猫 | | 地区 | 地区猫猫头像贴 | 通关地区内全部城市 | 每地区 1 | 猫猫收集册 |
| 国家 | 国家动物形象贴 | 通关国家内全部城市/地区 | 每国 1 个 | 动物收集册 |
| 大洲 | 洲地图 | 通关洲内全部国家 | 每洲 1 张 | 地图收集册 |
### 4.2 冰箱贴系统 ```
通关关卡 → 冰箱贴
└→ 集齐 6 关 → 城市邮票
└→ 集齐地区全城市 → 地区猫猫(不同品种)
└→ 集齐国家全地区 → 国家代表动物
└→ 集齐洲全国家 → 洲地图
```
**获取规则:** ### 4.2 冰箱贴(关卡级)
- 每通关 1 个小关卡,奖励该城市 1 个特色冰箱贴
- 冰箱贴内容对应该关使用的城市特色元素(如北京关 1 → 糖葫芦冰箱贴)
- 通关动画结束后,冰箱贴从画面飞入收集册
**冰箱贴收集册:** - 通关每个小关卡奖励 1 个该城市特色冰箱贴
- 入口在"城市主题礼物区" - 冰箱贴对应该关的代表元素(如北京关 1 → 天安门冰箱贴)
- 按城市分页展示,每页最多 6 个冰箱贴(对应 6 关) - 通关动画后冰箱贴飞入收集册
- 已收集:彩色冰箱贴 + 关卡编号
- 未收集:灰色占位 + 锁图标
- 全城市集齐 6 个时,页面顶部显示"已完成 ✅"
**冰箱贴数据:**
```javascript ```javascript
// 冰箱贴和城市元素绑定,每关指定 1 个代表元素
{ {
id: 'magnet_beijing_1', id: 'magnet_beijing_1',
cityId: 'beijing', cityId: 'beijing',
levelId: 1, levelId: 1,
elementId: 'beijing_03', // 天安门 — 该关的代表元素 elementId: 'beijing_03',
name: '天安门冰箱贴', name: '天安门冰箱贴',
image: 'images/magnets/beijing/magnet_beijing_1.png', image: 'images/magnets/beijing/magnet_beijing_1.png',
} }
``` ```
### 4.3 邮票贴系统 ### 4.3 邮票贴(城市级)
**获取规则:** - 通关城市全部 6 关后自动获得
- 通关城市全部 6 关后自动获得该城市邮票贴 - 获得时播放"盖章"动画(邮戳落下 + 印章音效)
- 邮票贴和城市猫猫同时发放Boss 关通关奖励) - 每张邮票:城市名 + 标志图案 + 获得日期
- 获得邮票时播放"盖章"动画(邮戳落下 + 印章音效)
**邮票贴收集册:**
- 入口在"城市主题礼物区"
- 按洲分页展示
- 每个邮票:城市名 + 城市标志图案 + 获得日期
- 已收集:彩色邮票
- 未收集:灰色虚线框 + 城市名
- 集齐一个洲的全部邮票后,解锁"洲际旅行家"成就
**邮票贴数据:**
```javascript ```javascript
{ {
id: 'stamp_beijing', id: 'stamp_beijing',
cityId: 'beijing', cityId: 'beijing',
name: '北京邮票', name: '北京邮票',
image: 'images/stamps/stamp_beijing.png', image: 'images/stamps/stamp_beijing.png',
acquiredDate: null, // 获得后写入日期
} }
``` ```
### 4.4 城市主题礼物区 ### 4.4 猫猫头像贴(地区级)
- 通关地区内全部城市后获得该地区专属猫猫
- **每个地区的猫猫品种不同**,体现地域特色
| 地区 | 猫猫品种 | 设计方向 |
|------|---------|---------|
| 华北 | 中华狸花猫 | 虎斑花纹 + 红围巾 |
| 东北 | 临清狮猫 | 白色长毛 + 雪花耳饰 |
| 华东 | 三花猫 | 三色 + 丝绸蝴蝶结 |
| 华中 | 橘猫 | 胖橘 + 辣椒项链 |
| 华南 | 奶牛猫 | 黑白 + 木棉花簪 |
| 西南 | 玄猫 | 全黑 + 银饰耳坠 |
| 西北 | 黄狸猫 | 沙色 + 敦煌丝带 |
| 港澳台 | 玳瑁猫 | 棕黑花色 + 珍珠耳环 |
> 非中国国家不设地区层级,跳过此奖励,直接从城市邮票到国家动物。
```javascript
{
id: 'cat_region_north_china',
regionId: 'north_china',
breed: '中华狸花猫',
name: '小狸',
image: 'images/cats/region/cat_north_china.png',
}
```
### 4.5 国家动物形象贴(国家级)
- 通关国家内全部城市后获得该国代表动物
- 动物选最具国家辨识度的标志性物种
| 国家 | 代表动物 | 设计方向 |
|------|---------|---------|
| 中国 | 大熊猫 | 竹子 + 国旗配色 |
| 日本 | 柴犬 | 和风围巾 |
| 韩国 | 珍岛犬 | 韩服小帽 |
| 泰国 | 大象 | 泰式花环 |
| 新加坡 | 鱼尾狮 | 金沙造型 |
| 土耳其 | 安哥拉猫 | 蓝眼异瞳 |
| 法国 | 高卢鸡 | 贝雷帽 |
| 英国 | 柯基犬 | 皇冠 |
| 意大利 | 意大利狼 | 罗马斗篷 |
| 美国 | 白头鹰 | 星条旗翅膀 |
| 澳大利亚 | 袋鼠 | 拳击手套 |
| 巴西 | 金刚鹦鹉 | 桑巴羽冠 |
| 埃及 | 法老猎犬 | 法老头饰 |
| 印度 | 孟加拉虎 | 莲花 |
> 更多国家动物随城市扩展逐步添加。扁平冰箱贴风格,和城市元素视觉统一。
```javascript
{
id: 'animal_china',
countryId: 'china',
animal: '大熊猫',
name: '团团',
image: 'images/animals/animal_china.png',
}
```
### 4.6 洲地图(大洲级)
- 通关洲内全部国家后获得该洲完整地图
- 地图上标注所有已通关城市的位置
- 获得时播放地图展开动画(卷轴铺开 + 城市点亮)
| 洲 | 地图风格 | 设计方向 |
|----|---------|---------|
| 亚洲 | 丝绸之路风 | 暖色调 + 古地图纹理 |
| 欧洲 | 航海图风 | 羊皮纸 + 罗盘 |
| 北美洲 | 公路旅行风 | 66 号公路 + 路标 |
| 南美洲 | 探险地图风 | 丛林 + 河流 |
| 非洲 | 大草原风 | 日落 + 金合欢树 |
| 大洋洲 | 珊瑚礁风 | 海洋蓝 + 珊瑚 |
```javascript
{
id: 'map_asia',
continentId: 'asia',
name: '亚洲地图',
image: 'images/maps/map_asia.png',
}
```
### 4.7 城市主题礼物区
**入口位置:** 主页底部 Tab 或城市页右上角礼物图标 **入口位置:** 主页底部 Tab 或城市页右上角礼物图标
**包含 3子页面** **包含 5收集册Tab 切换)**
| 子页面 | 内容 | 进度展示 | | 收集册 | 内容 | 分页方式 | 进度 |
|--------|------|---------| |--------|------|---------|------|
| 冰箱贴收集册 | 按城市分页的冰箱贴网格 | X/总数 | | 🧲 冰箱贴册 | 每关获得的城市冰箱贴 | 按城市分页,每页 6 格 | X/总数 |
| 邮票贴收集册 | 按洲分页的邮票网格 | X/Y 城市已集齐 | | 📮 邮票册 | 每城获得的城市邮票 | 按洲分页 | X/Y 城市 |
| 猫猫图鉴 | 按洲分类的猫猫陈列 | X/Y 只已收集 | | 🐱 猫猫册 | 每地区获得的猫猫头像 | 按国家分页 | X/Y 地区 |
| 🐾 动物册 | 每国获得的代表动物 | 按洲分页 | X/Y 国家 |
| 🗺️ 地图册 | 每洲获得的洲地图 | 一页展示全部 | X/6 洲 |
**总览信息栏(礼物区顶部):** **总览信息栏(礼物区顶部):**
- 冰箱贴:已收集 X / 总 Y 个 - 🧲 冰箱贴 X/Y · 📮 邮票 X/Y · 🐱 猫猫 X/Y · 🐾 动物 X/Y · 🗺️ 地图 X/6
- 邮票:已收集 X / 总 Y 个
- 猫猫:已收集 X / 总 Y 只
### 4.5 分享触发 ### 4.8 分享触发
| 触发点 | 分享内容 | | 触发点 | 分享内容 |
|--------|---------| |--------|---------|
| 获得冰箱贴 | "我收集了XX冰箱贴" + 冰箱贴图片 | | 获得冰箱贴 | "我收集了XX冰箱贴" + 冰箱贴图片 |
| 获得城市邮票 | "XX城市邮票到手" + 邮票图片 + 护照进度 | | 获得城市邮票 | "XX城市邮票到手" + 邮票图片 |
| 集齐一个城市全部冰箱贴 | "XX城市冰箱贴全收集" | | 获得地区猫猫 | "华北狸花猫收入囊中!" + 猫猫图片 |
| 集齐一个洲全部邮票 | "亚洲旅行家达成!" + 全部邮票合照 | | 获得国家动物 | "中国大熊猫 GET" + 动物图片 |
| 获得洲地图 | "亚洲地图集齐!" + 地图全景 |
| 五册全满里程碑 | "世界旅行家达成!" + 五册合照 |
### 4.6 与 playerState 的关系 ### 4.9 与 playerState 的关系
```javascript ```javascript
// playerState 新增字段 // playerState 收集字段
{ {
// 冰箱贴收集
collectedMagnets: [ collectedMagnets: [
// { magnetId: 'magnet_beijing_1', cityId: 'beijing', levelId: 1, acquiredDate: '2026-03-28' } // { magnetId, cityId, levelId, acquiredDate }
], ],
// 邮票收集
collectedStamps: [ collectedStamps: [
// { stampId: 'stamp_beijing', cityId: 'beijing', acquiredDate: '2026-03-28' } // { stampId, cityId, acquiredDate }
],
collectedRegionCats: [
// { catId, regionId, acquiredDate }
],
collectedAnimals: [
// { animalId, countryId, acquiredDate }
],
collectedMaps: [
// { mapId, continentId, acquiredDate }
], ],
// 猫猫收集(已有,不变)
collectedCats: ['beijing'],
} }
--- ---