feat: 收敛玩法运行时配置并加入故障恢复

This commit is contained in:
2026-04-01 13:04:26 +08:00
parent 1635a11780
commit 3ef841ecc7
73 changed files with 8820 additions and 2122 deletions

View File

@@ -1,324 +1,22 @@
{
"schemaVersion": "1",
"version": "2026.03.25",
"version": "2026.04.01",
"app": {
"id": "sample-score-o-001",
"title": "积分赛示例",
"locale": "zh-CN"
"title": "积分赛示例"
},
"map": {
"tiles": "../map/lxcb-001/tiles/",
"mapmeta": "../map/lxcb-001/tiles/meta.json",
"declination": 6.91,
"initialView": {
"zoom": 17
}
"mapmeta": "../map/lxcb-001/tiles/meta.json"
},
"playfield": {
"kind": "control-set",
"source": {
"type": "kml",
"url": "../kml/lxcb-001/10/c01.kml"
},
"CPRadius": 6,
"controlOverrides": {
"start-1": {
"template": "focus",
"title": "比赛开始",
"body": "从这里触发,先熟悉地图方向。原生内容卡会先弹出,再可进入 H5 详情。",
"autoPopup": true,
"once": true,
"priority": 1,
"contentExperience": {
"type": "h5",
"url": "https://oss-mbh5.colormaprun.com/gotomars/h5/content-h5-test-template.html",
"bridge": "content-v1",
"presentation": "dialog"
},
"clickTitle": "积分赛起点",
"clickBody": "点击起点可查看自由打点规则与终点说明。",
"clickExperience": {
"type": "h5",
"url": "https://oss-mbh5.colormaprun.com/gotomars/h5/content-h5-test-template.html",
"bridge": "content-v1",
"presentation": "dialog"
}
},
"control-1": {
"template": "minimal",
"score": 10,
"clickTitle": "1号点",
"clickBody": "这是一个基础积分点,适合作为开局热身。",
"clickExperience": {
"type": "h5",
"url": "https://oss-mbh5.colormaprun.com/gotomars/h5/content-h5-test-template.html",
"bridge": "content-v1",
"presentation": "dialog"
}
},
"control-2": {
"template": "minimal",
"score": 20,
"title": "2号点",
"body": "这个点配置成手动查看。点击“查看内容”后先出原生卡,再可进入 H5。",
"autoPopup": false,
"once": true,
"priority": 1,
"ctas": [
{
"type": "quiz",
"label": "答题加分",
"bonusScore": 8,
"countdownSeconds": 12,
"minValue": 20,
"maxValue": 199,
"allowSubtraction": true
}
],
"clickTitle": "2号点",
"clickBody": "这个点配置成点击查看,经过时不会自动弹。",
"clickExperience": {
"type": "h5",
"url": "https://oss-mbh5.colormaprun.com/gotomars/h5/content-h5-test-template.html",
"bridge": "content-v1",
"presentation": "dialog"
}
},
"control-3": {
"template": "story",
"score": 30,
"title": "湖边步道",
"body": "这里适合短暂停留观察周边地形。自动弹原生内容卡,并提供 H5 详情入口。",
"autoPopup": true,
"once": false,
"priority": 1,
"ctas": [
{
"type": "photo",
"label": "拍照打卡"
},
{
"type": "detail",
"label": "查看详情"
}
],
"clickTitle": "湖边步道",
"clickBody": "点击可查看这一区域的补充说明。",
"contentExperience": {
"type": "h5",
"url": "https://oss-mbh5.colormaprun.com/gotomars/h5/content-h5-test-template.html",
"bridge": "content-v1",
"presentation": "dialog"
}
},
"control-4": {
"score": 40
},
"control-5": {
"score": 50
},
"control-6": {
"template": "focus",
"score": 60,
"pointStyle": "pulse-core",
"pointColorHex": "#ff4d6d",
"pointSizeScale": 1.18,
"pointAccentRingScale": 1.36,
"pointGlowStrength": 1,
"pointLabelScale": 1.12,
"pointLabelColorHex": "#fff9fb",
"title": "悬崖边",
"body": "这里很危险啊。",
"autoPopup": true,
"once": true,
"priority": 2,
"clickTitle": "悬崖边",
"clickBody": "点击查看地形风险提示。"
},
"control-7": {
"score": 70
},
"control-8": {
"score": 80
},
"finish-1": {
"template": "focus",
"title": "比赛结束",
"body": "恭喜完成本次路线,准备查看结果。这里也保留 H5 详情入口用于测试。",
"autoPopup": true,
"once": true,
"priority": 2,
"ctas": [
{
"type": "audio",
"label": "语音留言"
}
],
"clickTitle": "终点说明",
"clickBody": "点击终点可再次查看结束与结算提示。",
"clickExperience": {
"type": "h5",
"url": "https://oss-mbh5.colormaprun.com/gotomars/h5/content-h5-test-template.html",
"bridge": "content-v1",
"presentation": "dialog"
}
}
},
"metadata": {
"title": "积分赛控制点示例2 起终点 + 8 积分点)",
"code": "score-o-001"
}
},
"game": {
"mode": "score-o",
"rulesVersion": "1",
"session": {
"startManually": true,
"requiresStartPunch": true,
"requiresFinishPunch": false,
"autoFinishOnLastControl": false,
"maxDurationSec": 5400
},
"punch": {
"policy": "enter-confirm",
"radiusMeters": 5,
"requiresFocusSelection": false
},
"scoring": {
"type": "score",
"defaultControlScore": 10
},
"guidance": {
"showLegs": false,
"legAnimation": false,
"allowFocusSelection": true
},
"presentation": {
"track": {
"mode": "tail",
"style": "neon",
"tailLength": "long",
"colorPreset": "cyan",
"tailMeters": 60,
"tailMaxSeconds": 30,
"fadeOutWhenStill": true,
"stillSpeedKmh": 0.6,
"fadeOutDurationMs": 3000,
"colorHex": "#149a86",
"headColorHex": "#62fff0",
"widthPx": 3.8,
"headWidthPx": 6.8,
"glowStrength": 0.32
},
"gpsMarker": {
"visible": true,
"style": "beacon",
"size": "medium",
"colorPreset": "cyan",
"showHeadingIndicator": true,
"logoUrl": "https://oss-mbh5.colormaprun.com/gotomars/test/me.jpg",
"logoMode": "center-badge"
},
"scoreO": {
"controls": {
"default": {
"style": "badge",
"colorHex": "#cc006b",
"sizeScale": 0.96,
"accentRingScale": 1.1,
"labelScale": 1.02
},
"focused": {
"style": "pulse-core",
"colorHex": "#fff0fa",
"sizeScale": 1.12,
"accentRingScale": 1.36,
"glowStrength": 1,
"labelScale": 1.14,
"labelColorHex": "#fffafc"
},
"collected": {
"style": "solid-dot",
"colorHex": "#d6dae0",
"sizeScale": 0.82,
"labelScale": 0.92
},
"start": {
"style": "double-ring",
"colorHex": "#2f80ed",
"sizeScale": 1.02,
"accentRingScale": 1.24,
"labelScale": 1.02
},
"finish": {
"style": "double-ring",
"colorHex": "#f2994a",
"sizeScale": 1.06,
"accentRingScale": 1.28,
"glowStrength": 0.26,
"labelScale": 1.04,
"labelColorHex": "#fff4de"
},
"scoreBands": [
{
"min": 0,
"max": 19,
"style": "badge",
"colorHex": "#56ccf2",
"sizeScale": 0.88,
"accentRingScale": 1.06,
"labelScale": 0.92
},
{
"min": 20,
"max": 49,
"style": "badge",
"colorHex": "#f2c94c",
"sizeScale": 1.02,
"accentRingScale": 1.18,
"labelScale": 1.02
},
{
"min": 50,
"max": 999999,
"style": "badge",
"colorHex": "#eb5757",
"sizeScale": 1.14,
"accentRingScale": 1.32,
"glowStrength": 0.72,
"labelScale": 1.1
}
]
}
}
},
"visibility": {
"revealFullPlayfieldAfterStartPunch": true
},
"finish": {
"finishControlAlwaysSelectable": true
},
"telemetry": {
"heartRate": {
"age": 30,
"restingHeartRateBpm": 62,
"userWeightKg": 65
}
},
"feedback": {
"audioProfile": "default",
"hapticsProfile": "default",
"uiEffectsProfile": "default"
}
},
"resources": {
"audioProfile": "default",
"contentProfile": "default",
"themeProfile": "default-race"
},
"debug": {
"allowModeSwitch": false,
"allowMockInput": false,
"allowSimulator": false
"mode": "score-o"
}
}