feat: 收敛玩法运行时配置并加入故障恢复
This commit is contained in:
232
doc/games/顺序打点/最小配置模板.md
Normal file
232
doc/games/顺序打点/最小配置模板.md
Normal file
@@ -0,0 +1,232 @@
|
||||
# 顺序打点最小配置模板
|
||||
|
||||
本文档提供一份 **顺序赛(`classic-sequential`)最小可跑配置模板**。
|
||||
|
||||
目标:
|
||||
|
||||
- 只保留顺序赛跑通所需的最少字段
|
||||
- 让测试尽量回到程序默认规则本身
|
||||
- 避免历史内容卡、H5 页面、样式覆盖继续干扰联调
|
||||
|
||||
如果你关心“最小模板下系统到底默认怎么跑”,请优先配合阅读:
|
||||
|
||||
- [顺序打点规则说明文档](D:/dev/cmr-mini/doc/games/顺序打点/规则说明文档.md)
|
||||
- [程序默认规则基线](D:/dev/cmr-mini/doc/gameplay/程序默认规则基线.md)
|
||||
|
||||
---
|
||||
|
||||
## 1. 最小模板
|
||||
|
||||
```json
|
||||
{
|
||||
"schemaVersion": "1",
|
||||
"version": "2026.03.31",
|
||||
"app": {
|
||||
"id": "sample-classic-001",
|
||||
"title": "顺序赛示例",
|
||||
"locale": "zh-CN"
|
||||
},
|
||||
"map": {
|
||||
"tiles": "../map/lxcb-001/tiles/",
|
||||
"mapmeta": "../map/lxcb-001/tiles/meta.json",
|
||||
"declination": 6.91,
|
||||
"initialView": {
|
||||
"zoom": 17
|
||||
}
|
||||
},
|
||||
"playfield": {
|
||||
"kind": "course",
|
||||
"source": {
|
||||
"type": "kml",
|
||||
"url": "../kml/lxcb-001/10/c01.kml"
|
||||
},
|
||||
"CPRadius": 6,
|
||||
"metadata": {
|
||||
"title": "顺序赛路线示例",
|
||||
"code": "classic-001"
|
||||
}
|
||||
},
|
||||
"game": {
|
||||
"mode": "classic-sequential"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 字段说明
|
||||
|
||||
### `schemaVersion`
|
||||
|
||||
- 类型:`string`
|
||||
- 必填:是
|
||||
- 说明:配置结构版本
|
||||
- 当前建议值:`"1"`
|
||||
|
||||
### `version`
|
||||
|
||||
- 类型:`string`
|
||||
- 必填:是
|
||||
- 说明:配置版本号
|
||||
|
||||
### `app.id`
|
||||
|
||||
- 类型:`string`
|
||||
- 必填:是
|
||||
- 说明:活动配置实例 ID
|
||||
|
||||
### `app.title`
|
||||
|
||||
- 类型:`string`
|
||||
- 必填:是
|
||||
- 说明:活动标题 / 比赛名称
|
||||
|
||||
### `app.locale`
|
||||
|
||||
- 类型:`string`
|
||||
- 必填:否
|
||||
- 说明:语言区域
|
||||
|
||||
### `map.tiles`
|
||||
|
||||
- 类型:`string`
|
||||
- 必填:是
|
||||
- 说明:地图瓦片根路径
|
||||
|
||||
### `map.mapmeta`
|
||||
|
||||
- 类型:`string`
|
||||
- 必填:是
|
||||
- 说明:地图 meta 文件路径
|
||||
|
||||
### `map.declination`
|
||||
|
||||
- 类型:`number`
|
||||
- 必填:否
|
||||
- 说明:磁偏角,未填写时按程序默认值处理
|
||||
|
||||
### `map.initialView.zoom`
|
||||
|
||||
- 类型:`number`
|
||||
- 必填:否
|
||||
- 说明:初始缩放级别,未填写时按程序默认视口逻辑处理
|
||||
|
||||
### `playfield.kind`
|
||||
|
||||
- 类型:`string`
|
||||
- 必填:是
|
||||
- 说明:空间对象类型
|
||||
- 顺序赛固定使用:`course`
|
||||
|
||||
### `playfield.source.type`
|
||||
|
||||
- 类型:`string`
|
||||
- 必填:是
|
||||
- 说明:空间底稿来源类型
|
||||
- 当前推荐值:`kml`
|
||||
|
||||
### `playfield.source.url`
|
||||
|
||||
- 类型:`string`
|
||||
- 必填:是
|
||||
- 说明:KML 文件路径
|
||||
|
||||
### `playfield.CPRadius`
|
||||
|
||||
- 类型:`number`
|
||||
- 必填:否
|
||||
- 说明:点位触发半径,未填写时按程序默认值处理
|
||||
|
||||
### `playfield.metadata.title`
|
||||
|
||||
- 类型:`string`
|
||||
- 必填:否
|
||||
- 说明:路线名称
|
||||
|
||||
### `playfield.metadata.code`
|
||||
|
||||
- 类型:`string`
|
||||
- 必填:否
|
||||
- 说明:路线编码
|
||||
|
||||
### `game.mode`
|
||||
|
||||
- 类型:`string`
|
||||
- 必填:是
|
||||
- 说明:玩法模式
|
||||
- 顺序赛固定值:`classic-sequential`
|
||||
|
||||
### `game.*`
|
||||
|
||||
- 类型:`object`
|
||||
- 必填:否
|
||||
- 说明:最小样例默认不依赖额外玩法覆盖字段
|
||||
- 备注:如需覆盖程序默认值,再补 `punch`、`sequence`、`guidance`、`finish` 等子块
|
||||
|
||||
---
|
||||
|
||||
## 3. 当前默认逻辑
|
||||
|
||||
如果你只写本页最小模板,顺序赛会按程序默认规则运行。
|
||||
|
||||
### 3.1 默认局流程
|
||||
|
||||
- 进入游戏后默认只显示开始点
|
||||
- 系统默认提示玩家:需要先打开始点才正式开始比赛
|
||||
- 未打开始点前,普通控制点和终点不生效
|
||||
- 首次成功打开始点后:
|
||||
- 正式开始比赛
|
||||
- 初始化本局数据
|
||||
- 开始计时
|
||||
- 显示全部普通控制点、终点和腿线
|
||||
- 默认只给出“比赛开始”短反馈,并同步更新引导提示和 HUD
|
||||
- 最小模板下默认不弹开始白色内容卡
|
||||
- 最小模板下,点击检查点默认不弹详情卡
|
||||
- 普通控制点默认允许跳点
|
||||
- 普通控制点成功打点后默认:
|
||||
- 先得 `1` 分基础分
|
||||
- 默认不弹题
|
||||
- 如需答题卡,需显式配置对应点位的 `quiz` CTA
|
||||
- 开始点和结束点默认不弹题,只弹提示信息
|
||||
- 成功打结束点后:
|
||||
- 停止计时
|
||||
- 给出完成短反馈
|
||||
- 直接进入默认成绩结算页
|
||||
- 默认不再额外叠加终点白色内容卡
|
||||
- 白色内容卡默认改为显式配置启用;只有某个点位明确配置 `autoPopup = true` 时,完成该点后才会先弹白卡
|
||||
|
||||
### 3.2 默认规则参数
|
||||
|
||||
- `map.declination`
|
||||
- 没配时默认按 `0`
|
||||
- `map.initialView.zoom`
|
||||
- 没配时由客户端初始视口逻辑接管
|
||||
- `playfield.CPRadius`
|
||||
- 没配时按客户端内置值处理
|
||||
- `game.session.*`
|
||||
- 默认非手动开始
|
||||
- 默认要求起点打卡
|
||||
- 默认要求终点打卡
|
||||
- 默认不在最后一个普通点自动结束
|
||||
- `game.sequence.skip.*`
|
||||
- 默认启用跳点
|
||||
- 默认跳点半径 = 打点半径的 2 倍
|
||||
- 默认不需要二次确认
|
||||
- `game.guidance.*`
|
||||
- 默认显示路线腿线
|
||||
- 默认显示腿线动效
|
||||
- 默认不允许手动聚焦选点
|
||||
- `game.visibility.revealFullPlayfieldAfterStartPunch`
|
||||
- 默认按 `true` 处理
|
||||
- `game.finish.finishControlAlwaysSelectable`
|
||||
- 默认按 `false` 处理
|
||||
|
||||
---
|
||||
|
||||
## 4. 当前样例说明
|
||||
|
||||
当前仓库中的 [classic-sequential.json](D:/dev/cmr-mini/event/classic-sequential.json) 已按这套最小测试口径收敛,只保留地图、场地和玩法标识,不再附带历史测试内容卡、H5 页面和样式覆盖。
|
||||
|
||||
如果要查看公共完整字段,请继续参考:
|
||||
|
||||
- [当前最全配置模板](D:/dev/cmr-mini/doc/config/当前最全配置模板.md)
|
||||
Reference in New Issue
Block a user