Compare commits

...

453 Commits

Author SHA1 Message Date
github-actions[bot]
9df49e5cf0 chore: Auto Update Game Resources - 2026-07-14
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/29343384730

[skip changelog]
2026-07-14 15:01:23 +00:00
Constrat
6e69376dff chore: EN TA navigation 2026-07-14 16:56:44 +02:00
HX3N
327e1543cb chore: KR TA stage navigation 2026-07-14 19:43:03 +09:00
Saratoga-Official
78f092f855 fix: YJ暗改用户中心间距 2026-07-13 20:48:44 +08:00
Zian Wen
7746f07fc4 fix: 修正多作业 H 关 OCR 替换 / correct H-stage OCR replacement (#17326)
## 说明

多作业模式进入 H10-1 关卡详情页后,OCR 可能会把关卡名识别为 `H1O-1`。现有替换规则没有将它还原为 `H10-1`,而是处理成了
`-1`,导致关卡校验失败并重新开始导航。

本 PR 将 `ClickStageName` 和 `ClickedCorrectStage` 中的 `$010` 改为
`${1}0`,明确区分捕获组 1 和后面的字符 `0`。

## 原因

原规则的本意是保留捕获组 1,再补一个 `0`:

```json
["(H\\d+)O(?=-)", "$010"],
["(-\\d+)O", "$010"]
```

OCR 后处理使用 `boost::regex_replace`。这里的 `$010` 会被解析为捕获组 10,而不是捕获组 1 后接
`0`。这两个正则都没有第 10 个捕获组,因此 `H1O-1` 最终被处理成 `-1`。

修改后的规则使用无歧义写法:

```json
["(H\\d+)O(?=-)", "${1}0"],
["(-\\d+)O", "${1}0"]
```

## 验证

- `resource/tasks/tasks.json` 可以正常解析。
- 四处相关替换均已改为 `${1}0`,`git diff --check` 通过。
- 使用 MAA `v6.14.1`、明日方舟 PC 端、2560 × 1440 分辨率测试 H10-1 多作业导航。

修复前:

```text
CharOcr: H1O-1
Proceed: -1
confirm stage name failed after retrying 3 times, stage name: H10-1
```

修复后,同样的 OCR 输入可以正确进入编队流程:

```text
[2026-07-12 14:12:08.499][TRC] CharOcr: H1O-1
[2026-07-12 14:12:08.499][TRC] Proceed: H10-1
[2026-07-12 14:12:09.545][INF] task: BattleStartPre, text: 开始行动
[2026-07-12 14:12:11.670][INF] SubTaskStart: BattleFormationTask
```

本次测试中没有再出现 `confirm stage name failed`。

<details>
<summary>English</summary>

## Summary

In multi-copilot mode, the stage name on the H10-1 detail panel may be
recognized as `H1O-1`. The existing replacement rules turn it into `-1`
instead of restoring `H10-1`, so stage confirmation fails and navigation
starts over.

This PR changes `$010` to `${1}0` in both `ClickStageName` and
`ClickedCorrectStage`, making the boundary between capture group 1 and
the literal `0` explicit.

## Root cause

The original rules were intended to preserve capture group 1 and append
a literal `0`:

```json
["(H\\d+)O(?=-)", "$010"],
["(-\\d+)O", "$010"]
```

OCR post-processing uses `boost::regex_replace`, where `$010` is parsed
as capture group 10 rather than capture group 1 followed by `0`. Since
these expressions do not contain a tenth capture group, `H1O-1` is
reduced to `-1`.

The replacement now uses the unambiguous `${1}0` form.

## Verification

- Parsed `resource/tasks/tasks.json` successfully.
- Confirmed all four affected replacements use `${1}0`; `git diff
--check` passes.
- Tested H10-1 multi-copilot navigation with MAA `v6.14.1` on the
Arknights PC client at 2560 × 1440.
- The same `H1O-1` OCR result was corrected to `H10-1`, after which MAA
clicked `BattleStartPre` and entered `BattleFormationTask`.
- No `confirm stage name failed` entry was produced during the post-fix
attempt.

</details>

Refs #16888
2026-07-12 15:18:15 +08:00
github-actions[bot]
9de02b5988 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/29168490922
[skip changelog]
2026-07-11 21:17:43 +00:00
uye
bad2644893 Release v6.14.1 (#17322)
## Summary by Sourcery

引入对新的 copilot ID 格式的支持,优化 UI 中 copilot
代码的路由逻辑,修复一些小的用户体验问题,刷新游戏资源数据,并添加用于分析 GitHub 发布下载统计并生成 HTML 报告的工具脚本。

New Features:
- 支持新的 `prts://` copilot 任务和任务集代码,同时兼容现有的 `maa://` 格式
- 添加发布下载统计工具,支持 HTML 报告输出以及 Windows 批处理封装

Bug Fixes:
- 确保在手动账号切换的启动流程中正确启用账号切换标记
- 禁止测试链接图片弹出窗口被调整大小

Enhancements:
- 改进 copilot 代码处理逻辑,通过集中解析、区分任务与任务集类型,并据此路由 UI 操作

Documentation:
- 更新本地化和 UI 文案,以反映新的 copilot 代码格式及相关 UI 变化

Chores:
- 更新关卡、肉鸽任务、物品和地块位置等游戏资源数据文件,包含新的活动和记忆地图
- 为发布下载统计工具添加本地 `.gitignore` 配置

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Introduce support for new copilot ID formats, refine copilot code
routing in the UI, fix small UX issues, refresh game resource data, and
add a tooling script to analyze GitHub release download statistics with
an HTML report.

New Features:
- Support new prts:// copilot job and job-set codes alongside existing
maa:// formats
- Add a release download statistics tool with HTML reporting and Windows
batch wrappers

Bug Fixes:
- Ensure manual account switch startup tasks enable account switching
flag
- Prevent test-link image popup window from being resizable

Enhancements:
- Improve copilot code handling by centralizing parsing, distinguishing
job vs job-set types, and routing UI actions accordingly

Documentation:
- Update localizations and UI strings to reflect new copilot code
formats and related UI changes

Chores:
- Update game resource data files for stages, roguelike tasks, items,
and tile positions, including new event and memory maps
- Add local .gitignore for the release download statistics tool

</details>
2026-07-11 16:29:52 +08:00
uye
02f408fe7e docs: changelog 2026-07-11 16:29:24 +08:00
uye
6c205beca6 chore: 减少重复解析 2026-07-11 16:24:42 +08:00
uye
72213def33 feat: 支持 ZOOT 作业站新格式神秘代码 2026-07-11 16:15:11 +08:00
uye
a601e9adb1 chore: 统计小工具增加正式版各版本下载量 2026-07-11 15:04:15 +08:00
uye
e9e4411d6a feat: 新增下载量统计小工具 2026-07-11 15:04:15 +08:00
Saratoga-Official
9cb0ed6803 fix: 因网络原因跳过肉鸽结局剧情出错
fix #17319
2026-07-11 14:55:48 +08:00
Saratoga-Official
3f3a936508 fix: 折桠识别
fix #17317
2026-07-11 12:48:50 +08:00
github-actions[bot]
678b47531d chore: Auto Update Game Resources - 2026-07-10
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/29107560091

[skip changelog]
2026-07-10 16:30:29 +00:00
Constrat
ef8cfcf316 fix: reduce size for template to fix EN 2026-07-10 15:38:49 +02:00
Manicsteiner
2dc7f5f9a5 chore: JP coppers ocr edit 2026-07-10 10:30:25 +08:00
github-actions[bot]
be41539ecb chore: Auto Update Game Resources - 2026-07-09
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/29057418750

[skip changelog]
2026-07-09 23:29:15 +00:00
status102
4dc8837b29 fix: 开始唤醒-手动切换账号运行时无法切换账号 2026-07-09 19:47:20 +08:00
uye
dd643b809d chore: 禁用截图测试的窗口调整大小,避免 handycontrol 窗口在未启用元素时点击崩溃 2026-07-09 00:59:34 +08:00
uye
6147357bd0 Release v6.14.0 (#17291)
## Summary by Sourcery

为 6.14.0 版本发布做准备,提升配置健壮性、调整 Roguelike 任务参数,并在各语言版本中对齐文档与 schema。

Bug Fixes(错误修复):
- 防止新安装被错误标记为配置损坏,仅在从文件加载时对无效配置进行跟踪。
- 通过在列表导航后增加点击前延时,提高 Roguelike 铜币(copper)选择的可靠性。

Enhancements(增强功能):
- 当配置加载失败并初始化新的根配置时,确保会创建默认任务配置条目。
- 收紧任务设置的一般约束条件并微调控制器逻辑,以提升稳定性和可维护性。

Documentation(文档):
- 在所有支持的语言中,对齐回调 schema 和集成协议文档的格式与类型注解。

Chores(日常维护):
- 刷新全局资源数据、Roguelike 任务定义、本地化内容以及版本元数据,以适配新版本发布。
- 在控制器、视觉处理(vision)和 WPF 视图模型代码中进行小幅格式整理和日志消息清理。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare 6.14.0 release with configuration robustness improvements,
roguelike task tuning, and documentation/schema alignment across
locales.

Bug Fixes:
- Prevent new installations from being marked as having broken
configuration by only tracking invalid configurations when loading from
file.
- Improve roguelike copper selection reliability by adding a delay
before clicking after list navigation.

Enhancements:
- Ensure default task configuration entries are created when
configuration load fails and a new root config is initialized.
- Tighten task settings generic constraints and minor controller logic
to improve stability and maintainability.

Documentation:
- Align callback schema and integration protocol documentation
formatting and type annotations across all supported languages.

Chores:
- Refresh global resource data, roguelike task definitions,
localizations, and version metadata for the new release.
- Apply small formatting and logging message cleanups in controller,
vision, and WPF view model code.

</details>

Bug Fixes(错误修复):
- 通过仅在从文件加载当前配置时追踪无效配置,避免在全新安装时将配置标记为损坏。

Enhancements(功能增强):
- 优化配置加载流程,以追踪设置是从主配置文件还是备份文件加载的。

Documentation(文档):
- 整理所有支持语言中的回调模式(callback schema)文档格式。

Chores(杂项):
- 为新版本更新全局资源数据、roguelike 任务定义、本地化字符串以及版本元数据。
- 在控制器和视觉组件中进行少量代码风格和格式清理。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

为 6.14.0 版本发布做准备,提升配置健壮性、调整 Roguelike 任务参数,并在各语言版本中对齐文档与 schema。

Bug Fixes(错误修复):
- 防止新安装被错误标记为配置损坏,仅在从文件加载时对无效配置进行跟踪。
- 通过在列表导航后增加点击前延时,提高 Roguelike 铜币(copper)选择的可靠性。

Enhancements(增强功能):
- 当配置加载失败并初始化新的根配置时,确保会创建默认任务配置条目。
- 收紧任务设置的一般约束条件并微调控制器逻辑,以提升稳定性和可维护性。

Documentation(文档):
- 在所有支持的语言中,对齐回调 schema 和集成协议文档的格式与类型注解。

Chores(日常维护):
- 刷新全局资源数据、Roguelike 任务定义、本地化内容以及版本元数据,以适配新版本发布。
- 在控制器、视觉处理(vision)和 WPF 视图模型代码中进行小幅格式整理和日志消息清理。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare 6.14.0 release with configuration robustness improvements,
roguelike task tuning, and documentation/schema alignment across
locales.

Bug Fixes:
- Prevent new installations from being marked as having broken
configuration by only tracking invalid configurations when loading from
file.
- Improve roguelike copper selection reliability by adding a delay
before clicking after list navigation.

Enhancements:
- Ensure default task configuration entries are created when
configuration load fails and a new root config is initialized.
- Tighten task settings generic constraints and minor controller logic
to improve stability and maintainability.

Documentation:
- Align callback schema and integration protocol documentation
formatting and type annotations across all supported languages.

Chores:
- Refresh global resource data, roguelike task definitions,
localizations, and version metadata for the new release.
- Apply small formatting and logging message cleanups in controller,
vision, and WPF view model code.

</details>

</details>
2026-07-09 00:49:40 +08:00
uye
70540c8037 docs: changelog 2026-07-09 00:49:02 +08:00
Manicsteiner
80909f002c chore: JP roguelike JieGarden StartWithSeed and ocr edits 2026-07-08 19:18:38 +08:00
Constrat
a11d8ca934 i18n: spacing post : 2026-07-08 13:05:28 +02:00
Constrat
b4cdd518af chore: EN IS6 StartWithSeed 2026-07-08 12:48:50 +02:00
Manicsteiner
9782dd36d9 perf: 在通宝页面滑动和选取之间添加延迟 (#17295) 2026-07-08 10:45:35 +02:00
Manicsteiner
100e6c7202 chore: JP roguelike JieGarden DLC2 edits (#17294)
* chore: JP roguelike JieGarden DLC2 edits

* chore: more edits
2026-07-08 10:45:09 +02:00
status102
f3a8a108ce fix: 首次运行时错误弹出目标配置缺失的提示 2026-07-08 14:19:46 +08:00
status102
a16f1ab5ed Revert "fix: 修复第一次启动时错误弹出目标配置缺失的提示"
This reverts commit f5ba5f50b9.
2026-07-08 14:15:12 +08:00
status102
a7f9da2345 perf: TaskConfig类型非空限定 2026-07-08 14:04:52 +08:00
Constrat
ba631144af fix: perhaps vue fix (#17296)
* fix: perhaps fix?

* fix: typo

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fix: forgor

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-07-08 13:19:24 +08:00
uye
e1b50141bc Revert "docs: fix <object> 标签"
This reverts commit 756b7d9ba5.
2026-07-08 13:18:59 +08:00
uye
756b7d9ba5 docs: fix <object> 标签 2026-07-08 13:12:54 +08:00
HX3N
45365520b3 chore: KR roguelike JieGarden StartExploreWithSeed 2026-07-08 13:44:44 +09:00
Constrat
7a1f42ff73 chore: move ancient 2 yro 153 base rotations 2026-07-07 16:38:33 +02:00
Constrat
ce6c255a11 fix: EN IS6 regex tongbao 2026-07-07 16:22:30 +02:00
Constrat
8f20181d10 perf: remove dupes EN 2026-07-07 14:43:56 +02:00
Constrat
62cd390016 chore: EN IS6 DLC2 2026-07-07 14:40:15 +02:00
HX3N
f75b1e84a9 chore: KR roguelike JieGarden DLC2 (#17290)
## Summary by Sourcery

为《JieGarden》肉鸽模式 DLC2 内容新增韩文任务定义,并更新 UI 本地化。

新特性:
- 在肉鸽任务资源文件中为《JieGarden》DLC2 引入韩文任务定义。

改进:
- 更新韩文 UI 本地化字符串,以涵盖新的《JieGarden》肉鸽内容和相关术语。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Add Korean task definitions and UI localization updates for the
JieGarden roguelike DLC2 content.

New Features:
- Introduce Korean task definitions for JieGarden DLC2 in roguelike task
resource files.

Enhancements:
- Update Korean UI localization strings to cover new JieGarden roguelike
content and terminology.

</details>

新增功能:
- 在肉鸽任务资源文件中为《节园(JieGarden)》DLC2 添加韩文任务定义。

增强改进:
- 刷新韩文 UI 本地化文案,以支持新的与肉鸽《节园(JieGarden)》相关的内容和术语。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

为《JieGarden》肉鸽模式 DLC2 内容新增韩文任务定义,并更新 UI 本地化。

新特性:
- 在肉鸽任务资源文件中为《JieGarden》DLC2 引入韩文任务定义。

改进:
- 更新韩文 UI 本地化字符串,以涵盖新的《JieGarden》肉鸽内容和相关术语。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Add Korean task definitions and UI localization updates for the
JieGarden roguelike DLC2 content.

New Features:
- Introduce Korean task definitions for JieGarden DLC2 in roguelike task
resource files.

Enhancements:
- Update Korean UI localization strings to cover new JieGarden roguelike
content and terminology.

</details>

</details>
2026-07-07 18:07:58 +08:00
uye
f5ba5f50b9 fix: 修复第一次启动时错误弹出目标配置缺失的提示 2026-07-07 16:59:38 +08:00
github-actions[bot]
bb4aaa936a chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28824604000
[skip changelog]
2026-07-06 21:31:59 +00:00
github-actions[bot]
dbfb58d0ab chore: Auto Update Game Resources - 2026-07-06
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28812545808

[skip changelog]
2026-07-06 18:04:31 +00:00
uye
06f19aa25d Release v6.14.0-beta.2 (#17288)
## Summary by Sourcery

通过基于模板的关卡导航来处理活动关卡与支线关卡,当没有可用模板时回退到 OCR。

新功能:
- 添加一个辅助工具,用标准化关卡代码解析活动关卡模板路径,并在资源存在时使用模板匹配进行关卡导航。
- 为多协助作战关卡选择和支线复刻关卡选择启用基于模板的导航,以提升关卡识别的稳定性。

改进:
- 在资源加载阶段,按完整相对路径索引所有模板图片文件,以便在 C++ 代码中动态查找关卡导航模板。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Introduce template-based stage navigation for event and side-story
stages, falling back to OCR when no template is available.

New Features:
- Add a helper to resolve event stage template paths from standardized
stage codes and use template matching for stage navigation when
resources exist.
- Enable template-based navigation for multi-copilot stage selection and
side-story reopen stage selection to improve stage recognition
reliability.

Enhancements:
- Index all template image files by full relative path during resource
loading to allow dynamic lookup of stage navigation templates from C++
code.

</details>

新功能:
- 为事件关卡引入基于模板的导航机制,通过从标准化路径解析每个关卡的截图模板,并在可用时优先使用模板而不是 OCR。
- 将基于模板的导航应用于多协助器(multi-copilot)关卡选择以及支线故事重开关卡选择,以在这些流程中提供更稳健的关卡识别支持。

增强:
- 在加载模板资源时按相对路径索引所有模板图片文件,以便可以从 C++ 代码中动态查找关卡导航模板。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

通过基于模板的关卡导航来处理活动关卡与支线关卡,当没有可用模板时回退到 OCR。

新功能:
- 添加一个辅助工具,用标准化关卡代码解析活动关卡模板路径,并在资源存在时使用模板匹配进行关卡导航。
- 为多协助作战关卡选择和支线复刻关卡选择启用基于模板的导航,以提升关卡识别的稳定性。

改进:
- 在资源加载阶段,按完整相对路径索引所有模板图片文件,以便在 C++ 代码中动态查找关卡导航模板。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Introduce template-based stage navigation for event and side-story
stages, falling back to OCR when no template is available.

New Features:
- Add a helper to resolve event stage template paths from standardized
stage codes and use template matching for stage navigation when
resources exist.
- Enable template-based navigation for multi-copilot stage selection and
side-story reopen stage selection to improve stage recognition
reliability.

Enhancements:
- Index all template image files by full relative path during resource
loading to allow dynamic lookup of stage navigation templates from C++
code.

</details>

</details>

## Summary by Sourcery

引入基于模板的活动与支线关卡导航,改进仓库识别与界面行为,并为测试版添加性能遥测与配置迁移支持。

New Features:
- 为活动关卡添加基于模板的导航、多协助器关卡选择,以及支线剧情重开关卡的导航;在无模板可用时自动回退到 OCR。
- 支持从“全部”标签识别基础仓库物品,并整合最新活动内容的关卡模板与资源。
- 添加在启动任务中切换账号的开关选项,并自动迁移现有配置。

Enhancements:
- 将模拟器 FPS 检查改为异步非阻塞,同时确保安全关闭,并通过回调协议上报模拟器刷新率。
- 使用游戏定义的排序 ID 优化仓库识别顺序,并改进与仓库相关的成就追踪与缓存机制。
- 持久化并恢复 Monet 主题的主色,避免启动时的闪烁,并正确释放取色器相关资源。
- 按完整相对路径索引模板图片,以支持从 C++ 代码进行动态查找。
- 调整任务队列序列化逻辑以遵守新的账号切换标志,并改进 UI 对仓库数据变化的响应。
- 将 GitHub 发布准备工作流更新至较新的 checkout 动作版本。

CI:
- 将发布准备相关的 GitHub Actions 工作流更新为使用 `actions/checkout@v7`。

Documentation:
- 在所有支持的语言中记录新的回调消息类型,用于截图性能与模拟器 FPS。
- 扩展内部知识文档,增加关于 PC 客户端 UI 因鼠标位置导致视差问题的说明与指引。

Chores:
- 为最近的内容与界面选项(包括活动关卡与设置标签)添加新的资源与本地化条目。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Introduce template-based event and side-story stage navigation, improve
depot recognition and UI behavior, and add performance telemetry and
configuration migrations for a beta release.

New Features:
- Add template-based navigation for event stages, multi-copilot stage
selection, and side-story reopen stages with automatic fallback to OCR
when no template is available.
- Enable recognition of basic depot items from the "All" tab and
integrate new stage templates/resources for the latest event content.
- Add an option to toggle account switching in startup tasks with
automatic migration of existing configurations.

Enhancements:
- Make emulator FPS checks asynchronous and non-blocking while ensuring
safe shutdown, and report emulator refresh rate via callback schema.
- Refine depot recognition ordering using game-defined sort IDs and
improve depot-related achievement tracking and caching.
- Persist and restore Monet theme primary color to avoid flicker on
startup and dispose color picker resources correctly.
- Index template images by full relative path to support dynamic lookup
from C++ code.
- Adjust task queue serialization to respect the new account switching
flag and improve UI reactions to depot data changes.
- Update GitHub release-preparation workflow to a newer checkout action.

CI:
- Update the release-preparation GitHub Actions workflow to use
actions/checkout@v7.

Documentation:
- Document new callback message types for screenshot performance and
emulator FPS in all supported languages.
- Extend internal knowledge documentation with guidance on PC client UI
parallax issues caused by mouse position.

Chores:
- Add new resource and localization entries for recent content and UI
options, including event stages and settings labels.

</details>
2026-07-07 01:52:20 +08:00
github-actions[bot]
a90bd4a590 docs: Auto Update Changelogs of v6.14.0-beta.2 (#17289)
* docs: Auto Generate Changelog of Release v6.14.0-beta.2

* docs: changelog

* docs: changelog

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-07-07 01:50:42 +08:00
github-actions[bot]
bc081906e8 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28809480048
[skip changelog]
2026-07-06 17:11:53 +00:00
Manicsteiner
1556ecd8f8 chore: JP roguelike JieGarden DLC2 (#17286) 2026-07-07 01:10:38 +08:00
uye
8788c5b4b9 rft: DepotResult 改为 ObservableList 2026-07-07 01:04:40 +08:00
github-actions[bot]
d70cbb592f chore: Auto Update Game Resources - 2026-07-06
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28808868165

[skip changelog]
2026-07-06 17:02:21 +00:00
HY
ffd094a5d3 chore: 繁中服「未許之地」 (#17285) 2026-07-07 00:52:13 +08:00
uye
1dda1ec985 feat: 仓库识别增加五种基础材料(源石、合成玉、龙门币、赤金以及采购凭证)识别支持 (#17287)
* feat: 增加五种基础材料识别支持

fix #17284

* chore: 移除基础物资黑名单

* chore: 注释漏改了
2026-07-07 00:38:45 +08:00
uye
90e97e1b61 perf: 帧率检查改为异步,避免阻塞截图返回 (#17277)
* perf: 帧率检查改为异步,避免阻塞截图返回

* chore: Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* chore: Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* chore: 将 FPS 上报所需的数据封装到异步任务的参数中,而不是依赖 this

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-07-07 00:31:11 +08:00
uye
8a4ffff97b docs: 增加截图相关回调文档 2026-07-07 00:30:53 +08:00
Constrat
3cd3b7355f i18n: EN 2026-07-06 17:32:54 +02:00
Constrat
c99c4c5265 fix: EN varkaris weird accent 2026-07-06 17:24:08 +02:00
github-actions[bot]
8fdc612796 chore: Auto Update Game Resources - 2026-07-06
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28794316170

[skip changelog]
2026-07-06 13:19:05 +00:00
uye
2403a8b5d7 ai: 更新知识库 2026-07-06 21:17:34 +08:00
uye
7e61c2eaba perf: 账号切换增加是否启用勾选框 (#17280)
* perf: 账号切换增加是否启用勾选框

* rft: 改用 OnDeserialized 处理迁移
2026-07-06 21:04:24 +08:00
github-actions[bot]
f859c21d1e chore: Auto Update Game Resources - 2026-07-06
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28783552961

[skip changelog]
2026-07-06 10:02:53 +00:00
uye
89496cbae8 fix: 修复背景填充模式可编辑问题 2026-07-06 17:12:30 +08:00
Manicsteiner
cbc459062e chore: EN & JP roguelike options (#17261)
* chore: JP roguelike options

* chore: edits

* chore: edit 2

* chore: more EN IS6 encounter options

* chore: ocr edit

---------

Co-authored-by: Constrat <56174894+Constrat@users.noreply.github.com>
2026-07-06 11:05:34 +02:00
github-actions[bot]
286fab5895 chore: Auto Update Game Resources - 2026-07-06
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28778443939

[skip changelog]
2026-07-06 08:32:25 +00:00
uye
207a04a11c chore: 优化被注入提示描述 (#17272) 2026-07-05 13:06:04 +08:00
MistEO
4fc2416d5f chore: update MaaUtils (meojson performance) (#17265)
chore: update MaaUtils
2026-07-05 12:39:36 +08:00
uye
b4272f5ef2 fix: 修复使用莫奈取色的吸管工具后二次打开页面崩溃 (#17270)
fix #17264
2026-07-05 12:37:33 +08:00
uye
0a101c6eba perf: 确认招募时更新 UI 日志 Card 图片 (#17268) 2026-07-05 12:18:55 +08:00
github-actions[bot]
f539a7eb22 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28719950132
[skip changelog]
2026-07-04 21:19:47 +00:00
dependabot[bot]
cf570edfc7 ci: bump actions/checkout from 4 to 7 in /.github/workflows in the github-actions group (#17262)
Signed-off-by: dependabot[bot] <support@github.com>
2026-07-04 22:54:42 +08:00
uye
08176f1e72 perf: 持久化储存主题色避免启动时闪烁 (#17263)
* perf: 持久化储存主题色避免启动时闪烁

* perf: 优化深色模式下的勾选框显示效果
2026-07-04 21:35:41 +08:00
github-actions[bot]
2f5b6528cc chore: Auto Templates Optimization
Triggered by a5e468a608

[skip changelog]
2026-07-04 12:02:57 +00:00
uye
a5e468a608 feat: 自动战斗多作业模式支持异体字关卡导航(需更新版本) (#16984)
## Summary by Sourcery

通过基于模板的关卡导航来处理活动关卡与支线关卡,当没有可用模板时回退到 OCR。

新功能:
- 添加一个辅助工具,用标准化关卡代码解析活动关卡模板路径,并在资源存在时使用模板匹配进行关卡导航。
- 为多协助作战关卡选择和支线复刻关卡选择启用基于模板的导航,以提升关卡识别的稳定性。

改进:
- 在资源加载阶段,按完整相对路径索引所有模板图片文件,以便在 C++ 代码中动态查找关卡导航模板。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Introduce template-based stage navigation for event and side-story
stages, falling back to OCR when no template is available.

New Features:
- Add a helper to resolve event stage template paths from standardized
stage codes and use template matching for stage navigation when
resources exist.
- Enable template-based navigation for multi-copilot stage selection and
side-story reopen stage selection to improve stage recognition
reliability.

Enhancements:
- Index all template image files by full relative path during resource
loading to allow dynamic lookup of stage navigation templates from C++
code.

</details>

新功能:
- 为事件关卡引入基于模板的导航机制,通过从标准化路径解析每个关卡的截图模板,并在可用时优先使用模板而不是 OCR。
- 将基于模板的导航应用于多协助器(multi-copilot)关卡选择以及支线故事重开关卡选择,以在这些流程中提供更稳健的关卡识别支持。

增强:
- 在加载模板资源时按相对路径索引所有模板图片文件,以便可以从 C++ 代码中动态查找关卡导航模板。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

通过基于模板的关卡导航来处理活动关卡与支线关卡,当没有可用模板时回退到 OCR。

新功能:
- 添加一个辅助工具,用标准化关卡代码解析活动关卡模板路径,并在资源存在时使用模板匹配进行关卡导航。
- 为多协助作战关卡选择和支线复刻关卡选择启用基于模板的导航,以提升关卡识别的稳定性。

改进:
- 在资源加载阶段,按完整相对路径索引所有模板图片文件,以便在 C++ 代码中动态查找关卡导航模板。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Introduce template-based stage navigation for event and side-story
stages, falling back to OCR when no template is available.

New Features:
- Add a helper to resolve event stage template paths from standardized
stage codes and use template matching for stage navigation when
resources exist.
- Enable template-based navigation for multi-copilot stage selection and
side-story reopen stage selection to improve stage recognition
reliability.

Enhancements:
- Index all template image files by full relative path during resource
loading to allow dynamic lookup of stage navigation templates from C++
code.

</details>

</details>
2026-07-04 20:02:34 +08:00
uye
cf423a4050 Release v6.14.0-beta.1 (#17248)
## Summary by Sourcery

通过增强模拟器处理、增加动态背景主题、将 Avalonia 构建集成到 CI 中,以及收紧 AI/问题处理工具和依赖项,准备
v6.14.0-beta.1。

New Features:
- 引入基于 Monet 的动态背景主题,支持自动颜色提取和可选自定义颜色,并在 WPF GUI 中提供模式选择和本地化。
- 增加周期性模拟器 FPS 检测和面向用户的低/异常帧率警告,同时检查 MuMu 保活状态以及 LDPlayer+maatouch
的使用情况。
- 暴露一个设置,用于隐藏图形化更新器进度窗口,并通过 GUI 配置将该设置传递给外部更新器进程。
- 为新的跨平台 MAAUnified(Avalonia)应用在 Windows、Linux 和 macOS 上提供 CI
任务和打包流程,并消费 MaaCore 运行时制品。

Bug Fixes:
- 改进从 ADB 地址检测 MuMu 和 LDPlayer 实例索引,在核心和 GUI 中更健壮地处理模拟器风格标识符和无效端口。
- 调整 OCR 盒子扩展逻辑,使用基于 polyclipping 的多边形偏移,使小文本的边界框不易被裁剪,并让识别锚点行为更正确。
- 通过在操作系统/主题变更以及重新连接时正确地重新应用或回滚 Monet 调色板,修复潜在的主题不一致问题。
- 确保只有在启用 GUI 通知时才运行 toast 通知,避免在禁用配置下进行不必要的检查。

Enhancements:
- 打磨变更日志生成技能的规范,更好地处理版本来源、折叠规则、测试版到正式版的合并,以及噪音过滤。
- 将 MaaDeps 扩展到 v2.14.0,并更新 GPU 白名单以覆盖更新的 Xe-LPG+ 设备,从而提升硬件兼容性。
- 改进更新器日志记录,包含进度 UI 状态,并在禁用更新器进度窗口时添加更安全的确认流程。
- 在 WPF 辅助类中收紧有关 MuMu 管理器路径发现和端口解析的日志记录与空值处理。

Build:
- 在 CI 中为 Windows、Linux 和 macOS 发布 MaaCore 运行时制品,并在 Avalonia
构建中消费这些制品,而不是在其中重新构建 MaaCore。
- 将专用的 Avalonia CI 工作流简化为快速的 .NET 测试门控,不再编译或打包 MaaCore,并为 PR 运行添加并发限制。
- 调整发布准备/通知工作流,使用可配置的 AI 代理密钥以及更新后的嵌入样式。
- 在 Android 上将 MaaCore 链接到 polyclipping,以支持新的 OCR 多边形扩展逻辑。

CI:
- 添加一个 Avalonia MAAUnified 多平台 CI 任务,为各平台设置有针对性的测试门控,并生成打包构建的制品。
- 更新 AI 问题分析和发布准备工作流,对 AI 代理进行参数化,强制使用基于技能的提示,并清理 Avalonia/MAARuntime
制品的发布资产。

Deployment:
- 确保发布打包脚本在发布前从最终资产包中移除临时性的 MAARuntime 和 MAAUnified 制品。

Documentation:
- 刷新多项 WPF 本地化资源和指南,以反映新的背景 Monet 选项、更新器进度设置、模拟器警告,以及一些措辞上的微调。

Tests:
- 扩展 Avalonia 测试套件,增加基线一致性、覆盖率、渲染同步、对照矩阵、平台能力以及在受支持平台上的原生冒烟测试门控。

Chores:
- 收紧 WPF GUI 中各类 UI 文本、注释和配置默认值,包括成就文案和关卡导航提示。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare v6.14.0-beta.1 by enhancing emulator handling, adding dynamic
background theming, integrating Avalonia builds into CI, and tightening
AI/issue tooling and dependencies.

New Features:
- Introduce Monet-based dynamic background theming with auto color
extraction and optional custom color, including mode selection and
localization in the WPF GUI.
- Add periodic emulator FPS detection and user-facing warnings for low
or abnormal frame rates, plus checks for MuMu keep-alive and
LDPlayer+maatouch usage.
- Expose a setting to hide the graphical updater progress window, wiring
it through GUI configuration to the external updater process.
- Provide CI jobs and packaging for the new cross-platform MAAUnified
(Avalonia) app on Windows, Linux, and macOS, consuming MaaCore runtime
artifacts.

Bug Fixes:
- Improve MuMu and LDPlayer instance index detection from ADB addresses,
handling emulator- style identifiers and invalid ports more robustly in
both core and GUI.
- Adjust OCR box expansion to use polygon offsetting via polyclipping so
small text bounding boxes are less clipped and recognition anchors
behave correctly.
- Fix potential theme inconsistencies by reapplying or reverting Monet
palettes correctly across OS/theme changes and when reconnecting.
- Ensure toast notifications only run when GUI notifications are
enabled, avoiding unnecessary checks in disabled configurations.

Enhancements:
- Refine the changelog generation skill specification to better handle
version sourcing, folding rules, beta-to-stable merging, and noise
filtering.
- Extend MaaDeps to v2.14.0 and update GPU allowlist to cover newer
Xe-LPG+ devices, improving hardware compatibility.
- Improve updater logging to include progress UI state and add safer
confirmation flows when disabling updater progress windows.
- Tighten logging and null-handling around MuMu manager path discovery
and port parsing in the WPF helper classes.

Build:
- Publish MaaCore runtime artifacts for Windows, Linux, and macOS in CI
and consume them from Avalonia builds instead of rebuilding MaaCore
there.
- Simplify the dedicated Avalonia CI workflow to a quick .NET test gate
without MaaCore compilation or packaging, and add concurrency limits for
PR runs.
- Adjust release preparation/notification workflows to use configurable
AI agent secrets and updated embed styling.
- Wire MaaCore to link against polyclipping on Android to support the
new OCR polygon expansion logic.

CI:
- Add an Avalonia MAAUnified multi-platform CI job with targeted test
gates per platform and artifacts for packaged builds.
- Update AI issue analysis and release prep workflows to parameterize
the AI agent, enforce skill-based prompts, and clean up release assets
for Avalonia/MAARuntime artifacts.

Deployment:
- Ensure release packaging scripts drop transient MAARuntime and
MAAUnified artifacts from the final asset bundle before publishing.

Documentation:
- Refresh multiple WPF localization resources and guides to reflect new
background Monet options, updater progress settings, emulator warnings,
and minor wording tweaks.

Tests:
- Extend Avalonia test suites with baseline consistency, coverage,
render sync, parity matrix, platform capability, and native smoke gates
on supported platforms.

Chores:
- Tighten various UI strings, comments, and configuration defaults in
the WPF GUI, including achievements text and stage navigation hints.

</details>

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

通过增强模拟器处理、增加动态背景主题、将 Avalonia 构建集成到 CI 中,以及收紧 AI/问题处理工具和依赖项,准备
v6.14.0-beta.1。

New Features:
- 引入基于 Monet 的动态背景主题,支持自动颜色提取和可选自定义颜色,并在 WPF GUI 中提供模式选择和本地化。
- 增加周期性模拟器 FPS 检测和面向用户的低/异常帧率警告,同时检查 MuMu 保活状态以及 LDPlayer+maatouch
的使用情况。
- 暴露一个设置,用于隐藏图形化更新器进度窗口,并通过 GUI 配置将该设置传递给外部更新器进程。
- 为新的跨平台 MAAUnified(Avalonia)应用在 Windows、Linux 和 macOS 上提供 CI
任务和打包流程,并消费 MaaCore 运行时制品。

Bug Fixes:
- 改进从 ADB 地址检测 MuMu 和 LDPlayer 实例索引,在核心和 GUI 中更健壮地处理模拟器风格标识符和无效端口。
- 调整 OCR 盒子扩展逻辑,使用基于 polyclipping 的多边形偏移,使小文本的边界框不易被裁剪,并让识别锚点行为更正确。
- 通过在操作系统/主题变更以及重新连接时正确地重新应用或回滚 Monet 调色板,修复潜在的主题不一致问题。
- 确保只有在启用 GUI 通知时才运行 toast 通知,避免在禁用配置下进行不必要的检查。

Enhancements:
- 打磨变更日志生成技能的规范,更好地处理版本来源、折叠规则、测试版到正式版的合并,以及噪音过滤。
- 将 MaaDeps 扩展到 v2.14.0,并更新 GPU 白名单以覆盖更新的 Xe-LPG+ 设备,从而提升硬件兼容性。
- 改进更新器日志记录,包含进度 UI 状态,并在禁用更新器进度窗口时添加更安全的确认流程。
- 在 WPF 辅助类中收紧有关 MuMu 管理器路径发现和端口解析的日志记录与空值处理。

Build:
- 在 CI 中为 Windows、Linux 和 macOS 发布 MaaCore 运行时制品,并在 Avalonia
构建中消费这些制品,而不是在其中重新构建 MaaCore。
- 将专用的 Avalonia CI 工作流简化为快速的 .NET 测试门控,不再编译或打包 MaaCore,并为 PR 运行添加并发限制。
- 调整发布准备/通知工作流,使用可配置的 AI 代理密钥以及更新后的嵌入样式。
- 在 Android 上将 MaaCore 链接到 polyclipping,以支持新的 OCR 多边形扩展逻辑。

CI:
- 添加一个 Avalonia MAAUnified 多平台 CI 任务,为各平台设置有针对性的测试门控,并生成打包构建的制品。
- 更新 AI 问题分析和发布准备工作流,对 AI 代理进行参数化,强制使用基于技能的提示,并清理 Avalonia/MAARuntime
制品的发布资产。

Deployment:
- 确保发布打包脚本在发布前从最终资产包中移除临时性的 MAARuntime 和 MAAUnified 制品。

Documentation:
- 刷新多项 WPF 本地化资源和指南,以反映新的背景 Monet 选项、更新器进度设置、模拟器警告,以及一些措辞上的微调。

Tests:
- 扩展 Avalonia 测试套件,增加基线一致性、覆盖率、渲染同步、对照矩阵、平台能力以及在受支持平台上的原生冒烟测试门控。

Chores:
- 收紧 WPF GUI 中各类 UI 文本、注释和配置默认值,包括成就文案和关卡导航提示。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare v6.14.0-beta.1 by enhancing emulator handling, adding dynamic
background theming, integrating Avalonia builds into CI, and tightening
AI/issue tooling and dependencies.

New Features:
- Introduce Monet-based dynamic background theming with auto color
extraction and optional custom color, including mode selection and
localization in the WPF GUI.
- Add periodic emulator FPS detection and user-facing warnings for low
or abnormal frame rates, plus checks for MuMu keep-alive and
LDPlayer+maatouch usage.
- Expose a setting to hide the graphical updater progress window, wiring
it through GUI configuration to the external updater process.
- Provide CI jobs and packaging for the new cross-platform MAAUnified
(Avalonia) app on Windows, Linux, and macOS, consuming MaaCore runtime
artifacts.

Bug Fixes:
- Improve MuMu and LDPlayer instance index detection from ADB addresses,
handling emulator- style identifiers and invalid ports more robustly in
both core and GUI.
- Adjust OCR box expansion to use polygon offsetting via polyclipping so
small text bounding boxes are less clipped and recognition anchors
behave correctly.
- Fix potential theme inconsistencies by reapplying or reverting Monet
palettes correctly across OS/theme changes and when reconnecting.
- Ensure toast notifications only run when GUI notifications are
enabled, avoiding unnecessary checks in disabled configurations.

Enhancements:
- Refine the changelog generation skill specification to better handle
version sourcing, folding rules, beta-to-stable merging, and noise
filtering.
- Extend MaaDeps to v2.14.0 and update GPU allowlist to cover newer
Xe-LPG+ devices, improving hardware compatibility.
- Improve updater logging to include progress UI state and add safer
confirmation flows when disabling updater progress windows.
- Tighten logging and null-handling around MuMu manager path discovery
and port parsing in the WPF helper classes.

Build:
- Publish MaaCore runtime artifacts for Windows, Linux, and macOS in CI
and consume them from Avalonia builds instead of rebuilding MaaCore
there.
- Simplify the dedicated Avalonia CI workflow to a quick .NET test gate
without MaaCore compilation or packaging, and add concurrency limits for
PR runs.
- Adjust release preparation/notification workflows to use configurable
AI agent secrets and updated embed styling.
- Wire MaaCore to link against polyclipping on Android to support the
new OCR polygon expansion logic.

CI:
- Add an Avalonia MAAUnified multi-platform CI job with targeted test
gates per platform and artifacts for packaged builds.
- Update AI issue analysis and release prep workflows to parameterize
the AI agent, enforce skill-based prompts, and clean up release assets
for Avalonia/MAARuntime artifacts.

Deployment:
- Ensure release packaging scripts drop transient MAARuntime and
MAAUnified artifacts from the final asset bundle before publishing.

Documentation:
- Refresh multiple WPF localization resources and guides to reflect new
background Monet options, updater progress settings, emulator warnings,
and minor wording tweaks.

Tests:
- Extend Avalonia test suites with baseline consistency, coverage,
render sync, parity matrix, platform capability, and native smoke gates
on supported platforms.

Chores:
- Tighten various UI strings, comments, and configuration defaults in
the WPF GUI, including achievements text and stage navigation hints.

</details>

</details>

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

通过增强模拟器处理、增加动态背景主题、将 Avalonia 构建集成到 CI 中,以及收紧 AI/问题处理工具和依赖项,准备
v6.14.0-beta.1。

New Features:
- 引入基于 Monet 的动态背景主题,支持自动颜色提取和可选自定义颜色,并在 WPF GUI 中提供模式选择和本地化。
- 增加周期性模拟器 FPS 检测和面向用户的低/异常帧率警告,同时检查 MuMu 保活状态以及 LDPlayer+maatouch
的使用情况。
- 暴露一个设置,用于隐藏图形化更新器进度窗口,并通过 GUI 配置将该设置传递给外部更新器进程。
- 为新的跨平台 MAAUnified(Avalonia)应用在 Windows、Linux 和 macOS 上提供 CI
任务和打包流程,并消费 MaaCore 运行时制品。

Bug Fixes:
- 改进从 ADB 地址检测 MuMu 和 LDPlayer 实例索引,在核心和 GUI 中更健壮地处理模拟器风格标识符和无效端口。
- 调整 OCR 盒子扩展逻辑,使用基于 polyclipping 的多边形偏移,使小文本的边界框不易被裁剪,并让识别锚点行为更正确。
- 通过在操作系统/主题变更以及重新连接时正确地重新应用或回滚 Monet 调色板,修复潜在的主题不一致问题。
- 确保只有在启用 GUI 通知时才运行 toast 通知,避免在禁用配置下进行不必要的检查。

Enhancements:
- 打磨变更日志生成技能的规范,更好地处理版本来源、折叠规则、测试版到正式版的合并,以及噪音过滤。
- 将 MaaDeps 扩展到 v2.14.0,并更新 GPU 白名单以覆盖更新的 Xe-LPG+ 设备,从而提升硬件兼容性。
- 改进更新器日志记录,包含进度 UI 状态,并在禁用更新器进度窗口时添加更安全的确认流程。
- 在 WPF 辅助类中收紧有关 MuMu 管理器路径发现和端口解析的日志记录与空值处理。

Build:
- 在 CI 中为 Windows、Linux 和 macOS 发布 MaaCore 运行时制品,并在 Avalonia
构建中消费这些制品,而不是在其中重新构建 MaaCore。
- 将专用的 Avalonia CI 工作流简化为快速的 .NET 测试门控,不再编译或打包 MaaCore,并为 PR 运行添加并发限制。
- 调整发布准备/通知工作流,使用可配置的 AI 代理密钥以及更新后的嵌入样式。
- 在 Android 上将 MaaCore 链接到 polyclipping,以支持新的 OCR 多边形扩展逻辑。

CI:
- 添加一个 Avalonia MAAUnified 多平台 CI 任务,为各平台设置有针对性的测试门控,并生成打包构建的制品。
- 更新 AI 问题分析和发布准备工作流,对 AI 代理进行参数化,强制使用基于技能的提示,并清理 Avalonia/MAARuntime
制品的发布资产。

Deployment:
- 确保发布打包脚本在发布前从最终资产包中移除临时性的 MAARuntime 和 MAAUnified 制品。

Documentation:
- 刷新多项 WPF 本地化资源和指南,以反映新的背景 Monet 选项、更新器进度设置、模拟器警告,以及一些措辞上的微调。

Tests:
- 扩展 Avalonia 测试套件,增加基线一致性、覆盖率、渲染同步、对照矩阵、平台能力以及在受支持平台上的原生冒烟测试门控。

Chores:
- 收紧 WPF GUI 中各类 UI 文本、注释和配置默认值,包括成就文案和关卡导航提示。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare v6.14.0-beta.1 by enhancing emulator handling, adding dynamic
background theming, integrating Avalonia builds into CI, and tightening
AI/issue tooling and dependencies.

New Features:
- Introduce Monet-based dynamic background theming with auto color
extraction and optional custom color, including mode selection and
localization in the WPF GUI.
- Add periodic emulator FPS detection and user-facing warnings for low
or abnormal frame rates, plus checks for MuMu keep-alive and
LDPlayer+maatouch usage.
- Expose a setting to hide the graphical updater progress window, wiring
it through GUI configuration to the external updater process.
- Provide CI jobs and packaging for the new cross-platform MAAUnified
(Avalonia) app on Windows, Linux, and macOS, consuming MaaCore runtime
artifacts.

Bug Fixes:
- Improve MuMu and LDPlayer instance index detection from ADB addresses,
handling emulator- style identifiers and invalid ports more robustly in
both core and GUI.
- Adjust OCR box expansion to use polygon offsetting via polyclipping so
small text bounding boxes are less clipped and recognition anchors
behave correctly.
- Fix potential theme inconsistencies by reapplying or reverting Monet
palettes correctly across OS/theme changes and when reconnecting.
- Ensure toast notifications only run when GUI notifications are
enabled, avoiding unnecessary checks in disabled configurations.

Enhancements:
- Refine the changelog generation skill specification to better handle
version sourcing, folding rules, beta-to-stable merging, and noise
filtering.
- Extend MaaDeps to v2.14.0 and update GPU allowlist to cover newer
Xe-LPG+ devices, improving hardware compatibility.
- Improve updater logging to include progress UI state and add safer
confirmation flows when disabling updater progress windows.
- Tighten logging and null-handling around MuMu manager path discovery
and port parsing in the WPF helper classes.

Build:
- Publish MaaCore runtime artifacts for Windows, Linux, and macOS in CI
and consume them from Avalonia builds instead of rebuilding MaaCore
there.
- Simplify the dedicated Avalonia CI workflow to a quick .NET test gate
without MaaCore compilation or packaging, and add concurrency limits for
PR runs.
- Adjust release preparation/notification workflows to use configurable
AI agent secrets and updated embed styling.
- Wire MaaCore to link against polyclipping on Android to support the
new OCR polygon expansion logic.

CI:
- Add an Avalonia MAAUnified multi-platform CI job with targeted test
gates per platform and artifacts for packaged builds.
- Update AI issue analysis and release prep workflows to parameterize
the AI agent, enforce skill-based prompts, and clean up release assets
for Avalonia/MAARuntime artifacts.

Deployment:
- Ensure release packaging scripts drop transient MAARuntime and
MAAUnified artifacts from the final asset bundle before publishing.

Documentation:
- Refresh multiple WPF localization resources and guides to reflect new
background Monet options, updater progress settings, emulator warnings,
and minor wording tweaks.

Tests:
- Extend Avalonia test suites with baseline consistency, coverage,
render sync, parity matrix, platform capability, and native smoke gates
on supported platforms.

Chores:
- Tighten various UI strings, comments, and configuration defaults in
the WPF GUI, including achievements text and stage navigation hints.

</details>

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

通过增强模拟器处理、增加动态背景主题、将 Avalonia 构建集成到 CI 中,以及收紧 AI/问题处理工具和依赖项,准备
v6.14.0-beta.1。

New Features:
- 引入基于 Monet 的动态背景主题,支持自动颜色提取和可选自定义颜色,并在 WPF GUI 中提供模式选择和本地化。
- 增加周期性模拟器 FPS 检测和面向用户的低/异常帧率警告,同时检查 MuMu 保活状态以及 LDPlayer+maatouch
的使用情况。
- 暴露一个设置,用于隐藏图形化更新器进度窗口,并通过 GUI 配置将该设置传递给外部更新器进程。
- 为新的跨平台 MAAUnified(Avalonia)应用在 Windows、Linux 和 macOS 上提供 CI
任务和打包流程,并消费 MaaCore 运行时制品。

Bug Fixes:
- 改进从 ADB 地址检测 MuMu 和 LDPlayer 实例索引,在核心和 GUI 中更健壮地处理模拟器风格标识符和无效端口。
- 调整 OCR 盒子扩展逻辑,使用基于 polyclipping 的多边形偏移,使小文本的边界框不易被裁剪,并让识别锚点行为更正确。
- 通过在操作系统/主题变更以及重新连接时正确地重新应用或回滚 Monet 调色板,修复潜在的主题不一致问题。
- 确保只有在启用 GUI 通知时才运行 toast 通知,避免在禁用配置下进行不必要的检查。

Enhancements:
- 打磨变更日志生成技能的规范,更好地处理版本来源、折叠规则、测试版到正式版的合并,以及噪音过滤。
- 将 MaaDeps 扩展到 v2.14.0,并更新 GPU 白名单以覆盖更新的 Xe-LPG+ 设备,从而提升硬件兼容性。
- 改进更新器日志记录,包含进度 UI 状态,并在禁用更新器进度窗口时添加更安全的确认流程。
- 在 WPF 辅助类中收紧有关 MuMu 管理器路径发现和端口解析的日志记录与空值处理。

Build:
- 在 CI 中为 Windows、Linux 和 macOS 发布 MaaCore 运行时制品,并在 Avalonia
构建中消费这些制品,而不是在其中重新构建 MaaCore。
- 将专用的 Avalonia CI 工作流简化为快速的 .NET 测试门控,不再编译或打包 MaaCore,并为 PR 运行添加并发限制。
- 调整发布准备/通知工作流,使用可配置的 AI 代理密钥以及更新后的嵌入样式。
- 在 Android 上将 MaaCore 链接到 polyclipping,以支持新的 OCR 多边形扩展逻辑。

CI:
- 添加一个 Avalonia MAAUnified 多平台 CI 任务,为各平台设置有针对性的测试门控,并生成打包构建的制品。
- 更新 AI 问题分析和发布准备工作流,对 AI 代理进行参数化,强制使用基于技能的提示,并清理 Avalonia/MAARuntime
制品的发布资产。

Deployment:
- 确保发布打包脚本在发布前从最终资产包中移除临时性的 MAARuntime 和 MAAUnified 制品。

Documentation:
- 刷新多项 WPF 本地化资源和指南,以反映新的背景 Monet 选项、更新器进度设置、模拟器警告,以及一些措辞上的微调。

Tests:
- 扩展 Avalonia 测试套件,增加基线一致性、覆盖率、渲染同步、对照矩阵、平台能力以及在受支持平台上的原生冒烟测试门控。

Chores:
- 收紧 WPF GUI 中各类 UI 文本、注释和配置默认值,包括成就文案和关卡导航提示。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare v6.14.0-beta.1 by enhancing emulator handling, adding dynamic
background theming, integrating Avalonia builds into CI, and tightening
AI/issue tooling and dependencies.

New Features:
- Introduce Monet-based dynamic background theming with auto color
extraction and optional custom color, including mode selection and
localization in the WPF GUI.
- Add periodic emulator FPS detection and user-facing warnings for low
or abnormal frame rates, plus checks for MuMu keep-alive and
LDPlayer+maatouch usage.
- Expose a setting to hide the graphical updater progress window, wiring
it through GUI configuration to the external updater process.
- Provide CI jobs and packaging for the new cross-platform MAAUnified
(Avalonia) app on Windows, Linux, and macOS, consuming MaaCore runtime
artifacts.

Bug Fixes:
- Improve MuMu and LDPlayer instance index detection from ADB addresses,
handling emulator- style identifiers and invalid ports more robustly in
both core and GUI.
- Adjust OCR box expansion to use polygon offsetting via polyclipping so
small text bounding boxes are less clipped and recognition anchors
behave correctly.
- Fix potential theme inconsistencies by reapplying or reverting Monet
palettes correctly across OS/theme changes and when reconnecting.
- Ensure toast notifications only run when GUI notifications are
enabled, avoiding unnecessary checks in disabled configurations.

Enhancements:
- Refine the changelog generation skill specification to better handle
version sourcing, folding rules, beta-to-stable merging, and noise
filtering.
- Extend MaaDeps to v2.14.0 and update GPU allowlist to cover newer
Xe-LPG+ devices, improving hardware compatibility.
- Improve updater logging to include progress UI state and add safer
confirmation flows when disabling updater progress windows.
- Tighten logging and null-handling around MuMu manager path discovery
and port parsing in the WPF helper classes.

Build:
- Publish MaaCore runtime artifacts for Windows, Linux, and macOS in CI
and consume them from Avalonia builds instead of rebuilding MaaCore
there.
- Simplify the dedicated Avalonia CI workflow to a quick .NET test gate
without MaaCore compilation or packaging, and add concurrency limits for
PR runs.
- Adjust release preparation/notification workflows to use configurable
AI agent secrets and updated embed styling.
- Wire MaaCore to link against polyclipping on Android to support the
new OCR polygon expansion logic.

CI:
- Add an Avalonia MAAUnified multi-platform CI job with targeted test
gates per platform and artifacts for packaged builds.
- Update AI issue analysis and release prep workflows to parameterize
the AI agent, enforce skill-based prompts, and clean up release assets
for Avalonia/MAARuntime artifacts.

Deployment:
- Ensure release packaging scripts drop transient MAARuntime and
MAAUnified artifacts from the final asset bundle before publishing.

Documentation:
- Refresh multiple WPF localization resources and guides to reflect new
background Monet options, updater progress settings, emulator warnings,
and minor wording tweaks.

Tests:
- Extend Avalonia test suites with baseline consistency, coverage,
render sync, parity matrix, platform capability, and native smoke gates
on supported platforms.

Chores:
- Tighten various UI strings, comments, and configuration defaults in
the WPF GUI, including achievements text and stage navigation hints.

</details>

</details>

</details>

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

通过增强模拟器处理、增加动态背景主题、将 Avalonia 构建集成到 CI 中,以及收紧 AI/问题处理工具和依赖项,准备
v6.14.0-beta.1。

New Features:
- 引入基于 Monet 的动态背景主题,支持自动颜色提取和可选自定义颜色,并在 WPF GUI 中提供模式选择和本地化。
- 增加周期性模拟器 FPS 检测和面向用户的低/异常帧率警告,同时检查 MuMu 保活状态以及 LDPlayer+maatouch
的使用情况。
- 暴露一个设置,用于隐藏图形化更新器进度窗口,并通过 GUI 配置将该设置传递给外部更新器进程。
- 为新的跨平台 MAAUnified(Avalonia)应用在 Windows、Linux 和 macOS 上提供 CI
任务和打包流程,并消费 MaaCore 运行时制品。

Bug Fixes:
- 改进从 ADB 地址检测 MuMu 和 LDPlayer 实例索引,在核心和 GUI 中更健壮地处理模拟器风格标识符和无效端口。
- 调整 OCR 盒子扩展逻辑,使用基于 polyclipping 的多边形偏移,使小文本的边界框不易被裁剪,并让识别锚点行为更正确。
- 通过在操作系统/主题变更以及重新连接时正确地重新应用或回滚 Monet 调色板,修复潜在的主题不一致问题。
- 确保只有在启用 GUI 通知时才运行 toast 通知,避免在禁用配置下进行不必要的检查。

Enhancements:
- 打磨变更日志生成技能的规范,更好地处理版本来源、折叠规则、测试版到正式版的合并,以及噪音过滤。
- 将 MaaDeps 扩展到 v2.14.0,并更新 GPU 白名单以覆盖更新的 Xe-LPG+ 设备,从而提升硬件兼容性。
- 改进更新器日志记录,包含进度 UI 状态,并在禁用更新器进度窗口时添加更安全的确认流程。
- 在 WPF 辅助类中收紧有关 MuMu 管理器路径发现和端口解析的日志记录与空值处理。

Build:
- 在 CI 中为 Windows、Linux 和 macOS 发布 MaaCore 运行时制品,并在 Avalonia
构建中消费这些制品,而不是在其中重新构建 MaaCore。
- 将专用的 Avalonia CI 工作流简化为快速的 .NET 测试门控,不再编译或打包 MaaCore,并为 PR 运行添加并发限制。
- 调整发布准备/通知工作流,使用可配置的 AI 代理密钥以及更新后的嵌入样式。
- 在 Android 上将 MaaCore 链接到 polyclipping,以支持新的 OCR 多边形扩展逻辑。

CI:
- 添加一个 Avalonia MAAUnified 多平台 CI 任务,为各平台设置有针对性的测试门控,并生成打包构建的制品。
- 更新 AI 问题分析和发布准备工作流,对 AI 代理进行参数化,强制使用基于技能的提示,并清理 Avalonia/MAARuntime
制品的发布资产。

Deployment:
- 确保发布打包脚本在发布前从最终资产包中移除临时性的 MAARuntime 和 MAAUnified 制品。

Documentation:
- 刷新多项 WPF 本地化资源和指南,以反映新的背景 Monet 选项、更新器进度设置、模拟器警告,以及一些措辞上的微调。

Tests:
- 扩展 Avalonia 测试套件,增加基线一致性、覆盖率、渲染同步、对照矩阵、平台能力以及在受支持平台上的原生冒烟测试门控。

Chores:
- 收紧 WPF GUI 中各类 UI 文本、注释和配置默认值,包括成就文案和关卡导航提示。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare v6.14.0-beta.1 by enhancing emulator handling, adding dynamic
background theming, integrating Avalonia builds into CI, and tightening
AI/issue tooling and dependencies.

New Features:
- Introduce Monet-based dynamic background theming with auto color
extraction and optional custom color, including mode selection and
localization in the WPF GUI.
- Add periodic emulator FPS detection and user-facing warnings for low
or abnormal frame rates, plus checks for MuMu keep-alive and
LDPlayer+maatouch usage.
- Expose a setting to hide the graphical updater progress window, wiring
it through GUI configuration to the external updater process.
- Provide CI jobs and packaging for the new cross-platform MAAUnified
(Avalonia) app on Windows, Linux, and macOS, consuming MaaCore runtime
artifacts.

Bug Fixes:
- Improve MuMu and LDPlayer instance index detection from ADB addresses,
handling emulator- style identifiers and invalid ports more robustly in
both core and GUI.
- Adjust OCR box expansion to use polygon offsetting via polyclipping so
small text bounding boxes are less clipped and recognition anchors
behave correctly.
- Fix potential theme inconsistencies by reapplying or reverting Monet
palettes correctly across OS/theme changes and when reconnecting.
- Ensure toast notifications only run when GUI notifications are
enabled, avoiding unnecessary checks in disabled configurations.

Enhancements:
- Refine the changelog generation skill specification to better handle
version sourcing, folding rules, beta-to-stable merging, and noise
filtering.
- Extend MaaDeps to v2.14.0 and update GPU allowlist to cover newer
Xe-LPG+ devices, improving hardware compatibility.
- Improve updater logging to include progress UI state and add safer
confirmation flows when disabling updater progress windows.
- Tighten logging and null-handling around MuMu manager path discovery
and port parsing in the WPF helper classes.

Build:
- Publish MaaCore runtime artifacts for Windows, Linux, and macOS in CI
and consume them from Avalonia builds instead of rebuilding MaaCore
there.
- Simplify the dedicated Avalonia CI workflow to a quick .NET test gate
without MaaCore compilation or packaging, and add concurrency limits for
PR runs.
- Adjust release preparation/notification workflows to use configurable
AI agent secrets and updated embed styling.
- Wire MaaCore to link against polyclipping on Android to support the
new OCR polygon expansion logic.

CI:
- Add an Avalonia MAAUnified multi-platform CI job with targeted test
gates per platform and artifacts for packaged builds.
- Update AI issue analysis and release prep workflows to parameterize
the AI agent, enforce skill-based prompts, and clean up release assets
for Avalonia/MAARuntime artifacts.

Deployment:
- Ensure release packaging scripts drop transient MAARuntime and
MAAUnified artifacts from the final asset bundle before publishing.

Documentation:
- Refresh multiple WPF localization resources and guides to reflect new
background Monet options, updater progress settings, emulator warnings,
and minor wording tweaks.

Tests:
- Extend Avalonia test suites with baseline consistency, coverage,
render sync, parity matrix, platform capability, and native smoke gates
on supported platforms.

Chores:
- Tighten various UI strings, comments, and configuration defaults in
the WPF GUI, including achievements text and stage navigation hints.

</details>

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

通过增强模拟器处理、增加动态背景主题、将 Avalonia 构建集成到 CI 中,以及收紧 AI/问题处理工具和依赖项,准备
v6.14.0-beta.1。

New Features:
- 引入基于 Monet 的动态背景主题,支持自动颜色提取和可选自定义颜色,并在 WPF GUI 中提供模式选择和本地化。
- 增加周期性模拟器 FPS 检测和面向用户的低/异常帧率警告,同时检查 MuMu 保活状态以及 LDPlayer+maatouch
的使用情况。
- 暴露一个设置,用于隐藏图形化更新器进度窗口,并通过 GUI 配置将该设置传递给外部更新器进程。
- 为新的跨平台 MAAUnified(Avalonia)应用在 Windows、Linux 和 macOS 上提供 CI
任务和打包流程,并消费 MaaCore 运行时制品。

Bug Fixes:
- 改进从 ADB 地址检测 MuMu 和 LDPlayer 实例索引,在核心和 GUI 中更健壮地处理模拟器风格标识符和无效端口。
- 调整 OCR 盒子扩展逻辑,使用基于 polyclipping 的多边形偏移,使小文本的边界框不易被裁剪,并让识别锚点行为更正确。
- 通过在操作系统/主题变更以及重新连接时正确地重新应用或回滚 Monet 调色板,修复潜在的主题不一致问题。
- 确保只有在启用 GUI 通知时才运行 toast 通知,避免在禁用配置下进行不必要的检查。

Enhancements:
- 打磨变更日志生成技能的规范,更好地处理版本来源、折叠规则、测试版到正式版的合并,以及噪音过滤。
- 将 MaaDeps 扩展到 v2.14.0,并更新 GPU 白名单以覆盖更新的 Xe-LPG+ 设备,从而提升硬件兼容性。
- 改进更新器日志记录,包含进度 UI 状态,并在禁用更新器进度窗口时添加更安全的确认流程。
- 在 WPF 辅助类中收紧有关 MuMu 管理器路径发现和端口解析的日志记录与空值处理。

Build:
- 在 CI 中为 Windows、Linux 和 macOS 发布 MaaCore 运行时制品,并在 Avalonia
构建中消费这些制品,而不是在其中重新构建 MaaCore。
- 将专用的 Avalonia CI 工作流简化为快速的 .NET 测试门控,不再编译或打包 MaaCore,并为 PR 运行添加并发限制。
- 调整发布准备/通知工作流,使用可配置的 AI 代理密钥以及更新后的嵌入样式。
- 在 Android 上将 MaaCore 链接到 polyclipping,以支持新的 OCR 多边形扩展逻辑。

CI:
- 添加一个 Avalonia MAAUnified 多平台 CI 任务,为各平台设置有针对性的测试门控,并生成打包构建的制品。
- 更新 AI 问题分析和发布准备工作流,对 AI 代理进行参数化,强制使用基于技能的提示,并清理 Avalonia/MAARuntime
制品的发布资产。

Deployment:
- 确保发布打包脚本在发布前从最终资产包中移除临时性的 MAARuntime 和 MAAUnified 制品。

Documentation:
- 刷新多项 WPF 本地化资源和指南,以反映新的背景 Monet 选项、更新器进度设置、模拟器警告,以及一些措辞上的微调。

Tests:
- 扩展 Avalonia 测试套件,增加基线一致性、覆盖率、渲染同步、对照矩阵、平台能力以及在受支持平台上的原生冒烟测试门控。

Chores:
- 收紧 WPF GUI 中各类 UI 文本、注释和配置默认值,包括成就文案和关卡导航提示。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare v6.14.0-beta.1 by enhancing emulator handling, adding dynamic
background theming, integrating Avalonia builds into CI, and tightening
AI/issue tooling and dependencies.

New Features:
- Introduce Monet-based dynamic background theming with auto color
extraction and optional custom color, including mode selection and
localization in the WPF GUI.
- Add periodic emulator FPS detection and user-facing warnings for low
or abnormal frame rates, plus checks for MuMu keep-alive and
LDPlayer+maatouch usage.
- Expose a setting to hide the graphical updater progress window, wiring
it through GUI configuration to the external updater process.
- Provide CI jobs and packaging for the new cross-platform MAAUnified
(Avalonia) app on Windows, Linux, and macOS, consuming MaaCore runtime
artifacts.

Bug Fixes:
- Improve MuMu and LDPlayer instance index detection from ADB addresses,
handling emulator- style identifiers and invalid ports more robustly in
both core and GUI.
- Adjust OCR box expansion to use polygon offsetting via polyclipping so
small text bounding boxes are less clipped and recognition anchors
behave correctly.
- Fix potential theme inconsistencies by reapplying or reverting Monet
palettes correctly across OS/theme changes and when reconnecting.
- Ensure toast notifications only run when GUI notifications are
enabled, avoiding unnecessary checks in disabled configurations.

Enhancements:
- Refine the changelog generation skill specification to better handle
version sourcing, folding rules, beta-to-stable merging, and noise
filtering.
- Extend MaaDeps to v2.14.0 and update GPU allowlist to cover newer
Xe-LPG+ devices, improving hardware compatibility.
- Improve updater logging to include progress UI state and add safer
confirmation flows when disabling updater progress windows.
- Tighten logging and null-handling around MuMu manager path discovery
and port parsing in the WPF helper classes.

Build:
- Publish MaaCore runtime artifacts for Windows, Linux, and macOS in CI
and consume them from Avalonia builds instead of rebuilding MaaCore
there.
- Simplify the dedicated Avalonia CI workflow to a quick .NET test gate
without MaaCore compilation or packaging, and add concurrency limits for
PR runs.
- Adjust release preparation/notification workflows to use configurable
AI agent secrets and updated embed styling.
- Wire MaaCore to link against polyclipping on Android to support the
new OCR polygon expansion logic.

CI:
- Add an Avalonia MAAUnified multi-platform CI job with targeted test
gates per platform and artifacts for packaged builds.
- Update AI issue analysis and release prep workflows to parameterize
the AI agent, enforce skill-based prompts, and clean up release assets
for Avalonia/MAARuntime artifacts.

Deployment:
- Ensure release packaging scripts drop transient MAARuntime and
MAAUnified artifacts from the final asset bundle before publishing.

Documentation:
- Refresh multiple WPF localization resources and guides to reflect new
background Monet options, updater progress settings, emulator warnings,
and minor wording tweaks.

Tests:
- Extend Avalonia test suites with baseline consistency, coverage,
render sync, parity matrix, platform capability, and native smoke gates
on supported platforms.

Chores:
- Tighten various UI strings, comments, and configuration defaults in
the WPF GUI, including achievements text and stage navigation hints.

</details>

</details>

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

通过增强模拟器处理、增加动态背景主题、将 Avalonia 构建集成到 CI 中,以及收紧 AI/问题处理工具和依赖项,准备
v6.14.0-beta.1。

New Features:
- 引入基于 Monet 的动态背景主题,支持自动颜色提取和可选自定义颜色,并在 WPF GUI 中提供模式选择和本地化。
- 增加周期性模拟器 FPS 检测和面向用户的低/异常帧率警告,同时检查 MuMu 保活状态以及 LDPlayer+maatouch
的使用情况。
- 暴露一个设置,用于隐藏图形化更新器进度窗口,并通过 GUI 配置将该设置传递给外部更新器进程。
- 为新的跨平台 MAAUnified(Avalonia)应用在 Windows、Linux 和 macOS 上提供 CI
任务和打包流程,并消费 MaaCore 运行时制品。

Bug Fixes:
- 改进从 ADB 地址检测 MuMu 和 LDPlayer 实例索引,在核心和 GUI 中更健壮地处理模拟器风格标识符和无效端口。
- 调整 OCR 盒子扩展逻辑,使用基于 polyclipping 的多边形偏移,使小文本的边界框不易被裁剪,并让识别锚点行为更正确。
- 通过在操作系统/主题变更以及重新连接时正确地重新应用或回滚 Monet 调色板,修复潜在的主题不一致问题。
- 确保只有在启用 GUI 通知时才运行 toast 通知,避免在禁用配置下进行不必要的检查。

Enhancements:
- 打磨变更日志生成技能的规范,更好地处理版本来源、折叠规则、测试版到正式版的合并,以及噪音过滤。
- 将 MaaDeps 扩展到 v2.14.0,并更新 GPU 白名单以覆盖更新的 Xe-LPG+ 设备,从而提升硬件兼容性。
- 改进更新器日志记录,包含进度 UI 状态,并在禁用更新器进度窗口时添加更安全的确认流程。
- 在 WPF 辅助类中收紧有关 MuMu 管理器路径发现和端口解析的日志记录与空值处理。

Build:
- 在 CI 中为 Windows、Linux 和 macOS 发布 MaaCore 运行时制品,并在 Avalonia
构建中消费这些制品,而不是在其中重新构建 MaaCore。
- 将专用的 Avalonia CI 工作流简化为快速的 .NET 测试门控,不再编译或打包 MaaCore,并为 PR 运行添加并发限制。
- 调整发布准备/通知工作流,使用可配置的 AI 代理密钥以及更新后的嵌入样式。
- 在 Android 上将 MaaCore 链接到 polyclipping,以支持新的 OCR 多边形扩展逻辑。

CI:
- 添加一个 Avalonia MAAUnified 多平台 CI 任务,为各平台设置有针对性的测试门控,并生成打包构建的制品。
- 更新 AI 问题分析和发布准备工作流,对 AI 代理进行参数化,强制使用基于技能的提示,并清理 Avalonia/MAARuntime
制品的发布资产。

Deployment:
- 确保发布打包脚本在发布前从最终资产包中移除临时性的 MAARuntime 和 MAAUnified 制品。

Documentation:
- 刷新多项 WPF 本地化资源和指南,以反映新的背景 Monet 选项、更新器进度设置、模拟器警告,以及一些措辞上的微调。

Tests:
- 扩展 Avalonia 测试套件,增加基线一致性、覆盖率、渲染同步、对照矩阵、平台能力以及在受支持平台上的原生冒烟测试门控。

Chores:
- 收紧 WPF GUI 中各类 UI 文本、注释和配置默认值,包括成就文案和关卡导航提示。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare v6.14.0-beta.1 by enhancing emulator handling, adding dynamic
background theming, integrating Avalonia builds into CI, and tightening
AI/issue tooling and dependencies.

New Features:
- Introduce Monet-based dynamic background theming with auto color
extraction and optional custom color, including mode selection and
localization in the WPF GUI.
- Add periodic emulator FPS detection and user-facing warnings for low
or abnormal frame rates, plus checks for MuMu keep-alive and
LDPlayer+maatouch usage.
- Expose a setting to hide the graphical updater progress window, wiring
it through GUI configuration to the external updater process.
- Provide CI jobs and packaging for the new cross-platform MAAUnified
(Avalonia) app on Windows, Linux, and macOS, consuming MaaCore runtime
artifacts.

Bug Fixes:
- Improve MuMu and LDPlayer instance index detection from ADB addresses,
handling emulator- style identifiers and invalid ports more robustly in
both core and GUI.
- Adjust OCR box expansion to use polygon offsetting via polyclipping so
small text bounding boxes are less clipped and recognition anchors
behave correctly.
- Fix potential theme inconsistencies by reapplying or reverting Monet
palettes correctly across OS/theme changes and when reconnecting.
- Ensure toast notifications only run when GUI notifications are
enabled, avoiding unnecessary checks in disabled configurations.

Enhancements:
- Refine the changelog generation skill specification to better handle
version sourcing, folding rules, beta-to-stable merging, and noise
filtering.
- Extend MaaDeps to v2.14.0 and update GPU allowlist to cover newer
Xe-LPG+ devices, improving hardware compatibility.
- Improve updater logging to include progress UI state and add safer
confirmation flows when disabling updater progress windows.
- Tighten logging and null-handling around MuMu manager path discovery
and port parsing in the WPF helper classes.

Build:
- Publish MaaCore runtime artifacts for Windows, Linux, and macOS in CI
and consume them from Avalonia builds instead of rebuilding MaaCore
there.
- Simplify the dedicated Avalonia CI workflow to a quick .NET test gate
without MaaCore compilation or packaging, and add concurrency limits for
PR runs.
- Adjust release preparation/notification workflows to use configurable
AI agent secrets and updated embed styling.
- Wire MaaCore to link against polyclipping on Android to support the
new OCR polygon expansion logic.

CI:
- Add an Avalonia MAAUnified multi-platform CI job with targeted test
gates per platform and artifacts for packaged builds.
- Update AI issue analysis and release prep workflows to parameterize
the AI agent, enforce skill-based prompts, and clean up release assets
for Avalonia/MAARuntime artifacts.

Deployment:
- Ensure release packaging scripts drop transient MAARuntime and
MAAUnified artifacts from the final asset bundle before publishing.

Documentation:
- Refresh multiple WPF localization resources and guides to reflect new
background Monet options, updater progress settings, emulator warnings,
and minor wording tweaks.

Tests:
- Extend Avalonia test suites with baseline consistency, coverage,
render sync, parity matrix, platform capability, and native smoke gates
on supported platforms.

Chores:
- Tighten various UI strings, comments, and configuration defaults in
the WPF GUI, including achievements text and stage navigation hints.

</details>

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

通过增强模拟器处理、增加动态背景主题、将 Avalonia 构建集成到 CI 中,以及收紧 AI/问题处理工具和依赖项,准备
v6.14.0-beta.1。

New Features:
- 引入基于 Monet 的动态背景主题,支持自动颜色提取和可选自定义颜色,并在 WPF GUI 中提供模式选择和本地化。
- 增加周期性模拟器 FPS 检测和面向用户的低/异常帧率警告,同时检查 MuMu 保活状态以及 LDPlayer+maatouch
的使用情况。
- 暴露一个设置,用于隐藏图形化更新器进度窗口,并通过 GUI 配置将该设置传递给外部更新器进程。
- 为新的跨平台 MAAUnified(Avalonia)应用在 Windows、Linux 和 macOS 上提供 CI
任务和打包流程,并消费 MaaCore 运行时制品。

Bug Fixes:
- 改进从 ADB 地址检测 MuMu 和 LDPlayer 实例索引,在核心和 GUI 中更健壮地处理模拟器风格标识符和无效端口。
- 调整 OCR 盒子扩展逻辑,使用基于 polyclipping 的多边形偏移,使小文本的边界框不易被裁剪,并让识别锚点行为更正确。
- 通过在操作系统/主题变更以及重新连接时正确地重新应用或回滚 Monet 调色板,修复潜在的主题不一致问题。
- 确保只有在启用 GUI 通知时才运行 toast 通知,避免在禁用配置下进行不必要的检查。

Enhancements:
- 打磨变更日志生成技能的规范,更好地处理版本来源、折叠规则、测试版到正式版的合并,以及噪音过滤。
- 将 MaaDeps 扩展到 v2.14.0,并更新 GPU 白名单以覆盖更新的 Xe-LPG+ 设备,从而提升硬件兼容性。
- 改进更新器日志记录,包含进度 UI 状态,并在禁用更新器进度窗口时添加更安全的确认流程。
- 在 WPF 辅助类中收紧有关 MuMu 管理器路径发现和端口解析的日志记录与空值处理。

Build:
- 在 CI 中为 Windows、Linux 和 macOS 发布 MaaCore 运行时制品,并在 Avalonia
构建中消费这些制品,而不是在其中重新构建 MaaCore。
- 将专用的 Avalonia CI 工作流简化为快速的 .NET 测试门控,不再编译或打包 MaaCore,并为 PR 运行添加并发限制。
- 调整发布准备/通知工作流,使用可配置的 AI 代理密钥以及更新后的嵌入样式。
- 在 Android 上将 MaaCore 链接到 polyclipping,以支持新的 OCR 多边形扩展逻辑。

CI:
- 添加一个 Avalonia MAAUnified 多平台 CI 任务,为各平台设置有针对性的测试门控,并生成打包构建的制品。
- 更新 AI 问题分析和发布准备工作流,对 AI 代理进行参数化,强制使用基于技能的提示,并清理 Avalonia/MAARuntime
制品的发布资产。

Deployment:
- 确保发布打包脚本在发布前从最终资产包中移除临时性的 MAARuntime 和 MAAUnified 制品。

Documentation:
- 刷新多项 WPF 本地化资源和指南,以反映新的背景 Monet 选项、更新器进度设置、模拟器警告,以及一些措辞上的微调。

Tests:
- 扩展 Avalonia 测试套件,增加基线一致性、覆盖率、渲染同步、对照矩阵、平台能力以及在受支持平台上的原生冒烟测试门控。

Chores:
- 收紧 WPF GUI 中各类 UI 文本、注释和配置默认值,包括成就文案和关卡导航提示。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare v6.14.0-beta.1 by enhancing emulator handling, adding dynamic
background theming, integrating Avalonia builds into CI, and tightening
AI/issue tooling and dependencies.

New Features:
- Introduce Monet-based dynamic background theming with auto color
extraction and optional custom color, including mode selection and
localization in the WPF GUI.
- Add periodic emulator FPS detection and user-facing warnings for low
or abnormal frame rates, plus checks for MuMu keep-alive and
LDPlayer+maatouch usage.
- Expose a setting to hide the graphical updater progress window, wiring
it through GUI configuration to the external updater process.
- Provide CI jobs and packaging for the new cross-platform MAAUnified
(Avalonia) app on Windows, Linux, and macOS, consuming MaaCore runtime
artifacts.

Bug Fixes:
- Improve MuMu and LDPlayer instance index detection from ADB addresses,
handling emulator- style identifiers and invalid ports more robustly in
both core and GUI.
- Adjust OCR box expansion to use polygon offsetting via polyclipping so
small text bounding boxes are less clipped and recognition anchors
behave correctly.
- Fix potential theme inconsistencies by reapplying or reverting Monet
palettes correctly across OS/theme changes and when reconnecting.
- Ensure toast notifications only run when GUI notifications are
enabled, avoiding unnecessary checks in disabled configurations.

Enhancements:
- Refine the changelog generation skill specification to better handle
version sourcing, folding rules, beta-to-stable merging, and noise
filtering.
- Extend MaaDeps to v2.14.0 and update GPU allowlist to cover newer
Xe-LPG+ devices, improving hardware compatibility.
- Improve updater logging to include progress UI state and add safer
confirmation flows when disabling updater progress windows.
- Tighten logging and null-handling around MuMu manager path discovery
and port parsing in the WPF helper classes.

Build:
- Publish MaaCore runtime artifacts for Windows, Linux, and macOS in CI
and consume them from Avalonia builds instead of rebuilding MaaCore
there.
- Simplify the dedicated Avalonia CI workflow to a quick .NET test gate
without MaaCore compilation or packaging, and add concurrency limits for
PR runs.
- Adjust release preparation/notification workflows to use configurable
AI agent secrets and updated embed styling.
- Wire MaaCore to link against polyclipping on Android to support the
new OCR polygon expansion logic.

CI:
- Add an Avalonia MAAUnified multi-platform CI job with targeted test
gates per platform and artifacts for packaged builds.
- Update AI issue analysis and release prep workflows to parameterize
the AI agent, enforce skill-based prompts, and clean up release assets
for Avalonia/MAARuntime artifacts.

Deployment:
- Ensure release packaging scripts drop transient MAARuntime and
MAAUnified artifacts from the final asset bundle before publishing.

Documentation:
- Refresh multiple WPF localization resources and guides to reflect new
background Monet options, updater progress settings, emulator warnings,
and minor wording tweaks.

Tests:
- Extend Avalonia test suites with baseline consistency, coverage,
render sync, parity matrix, platform capability, and native smoke gates
on supported platforms.

Chores:
- Tighten various UI strings, comments, and configuration defaults in
the WPF GUI, including achievements text and stage navigation hints.

</details>

</details>

</details>

</details>

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

通过增强模拟器处理、增加动态背景主题、将 Avalonia 构建集成到 CI 中,以及收紧 AI/问题处理工具和依赖项,准备
v6.14.0-beta.1。

New Features:
- 引入基于 Monet 的动态背景主题,支持自动颜色提取和可选自定义颜色,并在 WPF GUI 中提供模式选择和本地化。
- 增加周期性模拟器 FPS 检测和面向用户的低/异常帧率警告,同时检查 MuMu 保活状态以及 LDPlayer+maatouch
的使用情况。
- 暴露一个设置,用于隐藏图形化更新器进度窗口,并通过 GUI 配置将该设置传递给外部更新器进程。
- 为新的跨平台 MAAUnified(Avalonia)应用在 Windows、Linux 和 macOS 上提供 CI
任务和打包流程,并消费 MaaCore 运行时制品。

Bug Fixes:
- 改进从 ADB 地址检测 MuMu 和 LDPlayer 实例索引,在核心和 GUI 中更健壮地处理模拟器风格标识符和无效端口。
- 调整 OCR 盒子扩展逻辑,使用基于 polyclipping 的多边形偏移,使小文本的边界框不易被裁剪,并让识别锚点行为更正确。
- 通过在操作系统/主题变更以及重新连接时正确地重新应用或回滚 Monet 调色板,修复潜在的主题不一致问题。
- 确保只有在启用 GUI 通知时才运行 toast 通知,避免在禁用配置下进行不必要的检查。

Enhancements:
- 打磨变更日志生成技能的规范,更好地处理版本来源、折叠规则、测试版到正式版的合并,以及噪音过滤。
- 将 MaaDeps 扩展到 v2.14.0,并更新 GPU 白名单以覆盖更新的 Xe-LPG+ 设备,从而提升硬件兼容性。
- 改进更新器日志记录,包含进度 UI 状态,并在禁用更新器进度窗口时添加更安全的确认流程。
- 在 WPF 辅助类中收紧有关 MuMu 管理器路径发现和端口解析的日志记录与空值处理。

Build:
- 在 CI 中为 Windows、Linux 和 macOS 发布 MaaCore 运行时制品,并在 Avalonia
构建中消费这些制品,而不是在其中重新构建 MaaCore。
- 将专用的 Avalonia CI 工作流简化为快速的 .NET 测试门控,不再编译或打包 MaaCore,并为 PR 运行添加并发限制。
- 调整发布准备/通知工作流,使用可配置的 AI 代理密钥以及更新后的嵌入样式。
- 在 Android 上将 MaaCore 链接到 polyclipping,以支持新的 OCR 多边形扩展逻辑。

CI:
- 添加一个 Avalonia MAAUnified 多平台 CI 任务,为各平台设置有针对性的测试门控,并生成打包构建的制品。
- 更新 AI 问题分析和发布准备工作流,对 AI 代理进行参数化,强制使用基于技能的提示,并清理 Avalonia/MAARuntime
制品的发布资产。

Deployment:
- 确保发布打包脚本在发布前从最终资产包中移除临时性的 MAARuntime 和 MAAUnified 制品。

Documentation:
- 刷新多项 WPF 本地化资源和指南,以反映新的背景 Monet 选项、更新器进度设置、模拟器警告,以及一些措辞上的微调。

Tests:
- 扩展 Avalonia 测试套件,增加基线一致性、覆盖率、渲染同步、对照矩阵、平台能力以及在受支持平台上的原生冒烟测试门控。

Chores:
- 收紧 WPF GUI 中各类 UI 文本、注释和配置默认值,包括成就文案和关卡导航提示。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare v6.14.0-beta.1 by enhancing emulator handling, adding dynamic
background theming, integrating Avalonia builds into CI, and tightening
AI/issue tooling and dependencies.

New Features:
- Introduce Monet-based dynamic background theming with auto color
extraction and optional custom color, including mode selection and
localization in the WPF GUI.
- Add periodic emulator FPS detection and user-facing warnings for low
or abnormal frame rates, plus checks for MuMu keep-alive and
LDPlayer+maatouch usage.
- Expose a setting to hide the graphical updater progress window, wiring
it through GUI configuration to the external updater process.
- Provide CI jobs and packaging for the new cross-platform MAAUnified
(Avalonia) app on Windows, Linux, and macOS, consuming MaaCore runtime
artifacts.

Bug Fixes:
- Improve MuMu and LDPlayer instance index detection from ADB addresses,
handling emulator- style identifiers and invalid ports more robustly in
both core and GUI.
- Adjust OCR box expansion to use polygon offsetting via polyclipping so
small text bounding boxes are less clipped and recognition anchors
behave correctly.
- Fix potential theme inconsistencies by reapplying or reverting Monet
palettes correctly across OS/theme changes and when reconnecting.
- Ensure toast notifications only run when GUI notifications are
enabled, avoiding unnecessary checks in disabled configurations.

Enhancements:
- Refine the changelog generation skill specification to better handle
version sourcing, folding rules, beta-to-stable merging, and noise
filtering.
- Extend MaaDeps to v2.14.0 and update GPU allowlist to cover newer
Xe-LPG+ devices, improving hardware compatibility.
- Improve updater logging to include progress UI state and add safer
confirmation flows when disabling updater progress windows.
- Tighten logging and null-handling around MuMu manager path discovery
and port parsing in the WPF helper classes.

Build:
- Publish MaaCore runtime artifacts for Windows, Linux, and macOS in CI
and consume them from Avalonia builds instead of rebuilding MaaCore
there.
- Simplify the dedicated Avalonia CI workflow to a quick .NET test gate
without MaaCore compilation or packaging, and add concurrency limits for
PR runs.
- Adjust release preparation/notification workflows to use configurable
AI agent secrets and updated embed styling.
- Wire MaaCore to link against polyclipping on Android to support the
new OCR polygon expansion logic.

CI:
- Add an Avalonia MAAUnified multi-platform CI job with targeted test
gates per platform and artifacts for packaged builds.
- Update AI issue analysis and release prep workflows to parameterize
the AI agent, enforce skill-based prompts, and clean up release assets
for Avalonia/MAARuntime artifacts.

Deployment:
- Ensure release packaging scripts drop transient MAARuntime and
MAAUnified artifacts from the final asset bundle before publishing.

Documentation:
- Refresh multiple WPF localization resources and guides to reflect new
background Monet options, updater progress settings, emulator warnings,
and minor wording tweaks.

Tests:
- Extend Avalonia test suites with baseline consistency, coverage,
render sync, parity matrix, platform capability, and native smoke gates
on supported platforms.

Chores:
- Tighten various UI strings, comments, and configuration defaults in
the WPF GUI, including achievements text and stage navigation hints.

</details>

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

通过增强模拟器处理、增加动态背景主题、将 Avalonia 构建集成到 CI 中,以及收紧 AI/问题处理工具和依赖项,准备
v6.14.0-beta.1。

New Features:
- 引入基于 Monet 的动态背景主题,支持自动颜色提取和可选自定义颜色,并在 WPF GUI 中提供模式选择和本地化。
- 增加周期性模拟器 FPS 检测和面向用户的低/异常帧率警告,同时检查 MuMu 保活状态以及 LDPlayer+maatouch
的使用情况。
- 暴露一个设置,用于隐藏图形化更新器进度窗口,并通过 GUI 配置将该设置传递给外部更新器进程。
- 为新的跨平台 MAAUnified(Avalonia)应用在 Windows、Linux 和 macOS 上提供 CI
任务和打包流程,并消费 MaaCore 运行时制品。

Bug Fixes:
- 改进从 ADB 地址检测 MuMu 和 LDPlayer 实例索引,在核心和 GUI 中更健壮地处理模拟器风格标识符和无效端口。
- 调整 OCR 盒子扩展逻辑,使用基于 polyclipping 的多边形偏移,使小文本的边界框不易被裁剪,并让识别锚点行为更正确。
- 通过在操作系统/主题变更以及重新连接时正确地重新应用或回滚 Monet 调色板,修复潜在的主题不一致问题。
- 确保只有在启用 GUI 通知时才运行 toast 通知,避免在禁用配置下进行不必要的检查。

Enhancements:
- 打磨变更日志生成技能的规范,更好地处理版本来源、折叠规则、测试版到正式版的合并,以及噪音过滤。
- 将 MaaDeps 扩展到 v2.14.0,并更新 GPU 白名单以覆盖更新的 Xe-LPG+ 设备,从而提升硬件兼容性。
- 改进更新器日志记录,包含进度 UI 状态,并在禁用更新器进度窗口时添加更安全的确认流程。
- 在 WPF 辅助类中收紧有关 MuMu 管理器路径发现和端口解析的日志记录与空值处理。

Build:
- 在 CI 中为 Windows、Linux 和 macOS 发布 MaaCore 运行时制品,并在 Avalonia
构建中消费这些制品,而不是在其中重新构建 MaaCore。
- 将专用的 Avalonia CI 工作流简化为快速的 .NET 测试门控,不再编译或打包 MaaCore,并为 PR 运行添加并发限制。
- 调整发布准备/通知工作流,使用可配置的 AI 代理密钥以及更新后的嵌入样式。
- 在 Android 上将 MaaCore 链接到 polyclipping,以支持新的 OCR 多边形扩展逻辑。

CI:
- 添加一个 Avalonia MAAUnified 多平台 CI 任务,为各平台设置有针对性的测试门控,并生成打包构建的制品。
- 更新 AI 问题分析和发布准备工作流,对 AI 代理进行参数化,强制使用基于技能的提示,并清理 Avalonia/MAARuntime
制品的发布资产。

Deployment:
- 确保发布打包脚本在发布前从最终资产包中移除临时性的 MAARuntime 和 MAAUnified 制品。

Documentation:
- 刷新多项 WPF 本地化资源和指南,以反映新的背景 Monet 选项、更新器进度设置、模拟器警告,以及一些措辞上的微调。

Tests:
- 扩展 Avalonia 测试套件,增加基线一致性、覆盖率、渲染同步、对照矩阵、平台能力以及在受支持平台上的原生冒烟测试门控。

Chores:
- 收紧 WPF GUI 中各类 UI 文本、注释和配置默认值,包括成就文案和关卡导航提示。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare v6.14.0-beta.1 by enhancing emulator handling, adding dynamic
background theming, integrating Avalonia builds into CI, and tightening
AI/issue tooling and dependencies.

New Features:
- Introduce Monet-based dynamic background theming with auto color
extraction and optional custom color, including mode selection and
localization in the WPF GUI.
- Add periodic emulator FPS detection and user-facing warnings for low
or abnormal frame rates, plus checks for MuMu keep-alive and
LDPlayer+maatouch usage.
- Expose a setting to hide the graphical updater progress window, wiring
it through GUI configuration to the external updater process.
- Provide CI jobs and packaging for the new cross-platform MAAUnified
(Avalonia) app on Windows, Linux, and macOS, consuming MaaCore runtime
artifacts.

Bug Fixes:
- Improve MuMu and LDPlayer instance index detection from ADB addresses,
handling emulator- style identifiers and invalid ports more robustly in
both core and GUI.
- Adjust OCR box expansion to use polygon offsetting via polyclipping so
small text bounding boxes are less clipped and recognition anchors
behave correctly.
- Fix potential theme inconsistencies by reapplying or reverting Monet
palettes correctly across OS/theme changes and when reconnecting.
- Ensure toast notifications only run when GUI notifications are
enabled, avoiding unnecessary checks in disabled configurations.

Enhancements:
- Refine the changelog generation skill specification to better handle
version sourcing, folding rules, beta-to-stable merging, and noise
filtering.
- Extend MaaDeps to v2.14.0 and update GPU allowlist to cover newer
Xe-LPG+ devices, improving hardware compatibility.
- Improve updater logging to include progress UI state and add safer
confirmation flows when disabling updater progress windows.
- Tighten logging and null-handling around MuMu manager path discovery
and port parsing in the WPF helper classes.

Build:
- Publish MaaCore runtime artifacts for Windows, Linux, and macOS in CI
and consume them from Avalonia builds instead of rebuilding MaaCore
there.
- Simplify the dedicated Avalonia CI workflow to a quick .NET test gate
without MaaCore compilation or packaging, and add concurrency limits for
PR runs.
- Adjust release preparation/notification workflows to use configurable
AI agent secrets and updated embed styling.
- Wire MaaCore to link against polyclipping on Android to support the
new OCR polygon expansion logic.

CI:
- Add an Avalonia MAAUnified multi-platform CI job with targeted test
gates per platform and artifacts for packaged builds.
- Update AI issue analysis and release prep workflows to parameterize
the AI agent, enforce skill-based prompts, and clean up release assets
for Avalonia/MAARuntime artifacts.

Deployment:
- Ensure release packaging scripts drop transient MAARuntime and
MAAUnified artifacts from the final asset bundle before publishing.

Documentation:
- Refresh multiple WPF localization resources and guides to reflect new
background Monet options, updater progress settings, emulator warnings,
and minor wording tweaks.

Tests:
- Extend Avalonia test suites with baseline consistency, coverage,
render sync, parity matrix, platform capability, and native smoke gates
on supported platforms.

Chores:
- Tighten various UI strings, comments, and configuration defaults in
the WPF GUI, including achievements text and stage navigation hints.

</details>

</details>

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

通过增强模拟器处理、增加动态背景主题、将 Avalonia 构建集成到 CI 中,以及收紧 AI/问题处理工具和依赖项,准备
v6.14.0-beta.1。

New Features:
- 引入基于 Monet 的动态背景主题,支持自动颜色提取和可选自定义颜色,并在 WPF GUI 中提供模式选择和本地化。
- 增加周期性模拟器 FPS 检测和面向用户的低/异常帧率警告,同时检查 MuMu 保活状态以及 LDPlayer+maatouch
的使用情况。
- 暴露一个设置,用于隐藏图形化更新器进度窗口,并通过 GUI 配置将该设置传递给外部更新器进程。
- 为新的跨平台 MAAUnified(Avalonia)应用在 Windows、Linux 和 macOS 上提供 CI
任务和打包流程,并消费 MaaCore 运行时制品。

Bug Fixes:
- 改进从 ADB 地址检测 MuMu 和 LDPlayer 实例索引,在核心和 GUI 中更健壮地处理模拟器风格标识符和无效端口。
- 调整 OCR 盒子扩展逻辑,使用基于 polyclipping 的多边形偏移,使小文本的边界框不易被裁剪,并让识别锚点行为更正确。
- 通过在操作系统/主题变更以及重新连接时正确地重新应用或回滚 Monet 调色板,修复潜在的主题不一致问题。
- 确保只有在启用 GUI 通知时才运行 toast 通知,避免在禁用配置下进行不必要的检查。

Enhancements:
- 打磨变更日志生成技能的规范,更好地处理版本来源、折叠规则、测试版到正式版的合并,以及噪音过滤。
- 将 MaaDeps 扩展到 v2.14.0,并更新 GPU 白名单以覆盖更新的 Xe-LPG+ 设备,从而提升硬件兼容性。
- 改进更新器日志记录,包含进度 UI 状态,并在禁用更新器进度窗口时添加更安全的确认流程。
- 在 WPF 辅助类中收紧有关 MuMu 管理器路径发现和端口解析的日志记录与空值处理。

Build:
- 在 CI 中为 Windows、Linux 和 macOS 发布 MaaCore 运行时制品,并在 Avalonia
构建中消费这些制品,而不是在其中重新构建 MaaCore。
- 将专用的 Avalonia CI 工作流简化为快速的 .NET 测试门控,不再编译或打包 MaaCore,并为 PR 运行添加并发限制。
- 调整发布准备/通知工作流,使用可配置的 AI 代理密钥以及更新后的嵌入样式。
- 在 Android 上将 MaaCore 链接到 polyclipping,以支持新的 OCR 多边形扩展逻辑。

CI:
- 添加一个 Avalonia MAAUnified 多平台 CI 任务,为各平台设置有针对性的测试门控,并生成打包构建的制品。
- 更新 AI 问题分析和发布准备工作流,对 AI 代理进行参数化,强制使用基于技能的提示,并清理 Avalonia/MAARuntime
制品的发布资产。

Deployment:
- 确保发布打包脚本在发布前从最终资产包中移除临时性的 MAARuntime 和 MAAUnified 制品。

Documentation:
- 刷新多项 WPF 本地化资源和指南,以反映新的背景 Monet 选项、更新器进度设置、模拟器警告,以及一些措辞上的微调。

Tests:
- 扩展 Avalonia 测试套件,增加基线一致性、覆盖率、渲染同步、对照矩阵、平台能力以及在受支持平台上的原生冒烟测试门控。

Chores:
- 收紧 WPF GUI 中各类 UI 文本、注释和配置默认值,包括成就文案和关卡导航提示。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare v6.14.0-beta.1 by enhancing emulator handling, adding dynamic
background theming, integrating Avalonia builds into CI, and tightening
AI/issue tooling and dependencies.

New Features:
- Introduce Monet-based dynamic background theming with auto color
extraction and optional custom color, including mode selection and
localization in the WPF GUI.
- Add periodic emulator FPS detection and user-facing warnings for low
or abnormal frame rates, plus checks for MuMu keep-alive and
LDPlayer+maatouch usage.
- Expose a setting to hide the graphical updater progress window, wiring
it through GUI configuration to the external updater process.
- Provide CI jobs and packaging for the new cross-platform MAAUnified
(Avalonia) app on Windows, Linux, and macOS, consuming MaaCore runtime
artifacts.

Bug Fixes:
- Improve MuMu and LDPlayer instance index detection from ADB addresses,
handling emulator- style identifiers and invalid ports more robustly in
both core and GUI.
- Adjust OCR box expansion to use polygon offsetting via polyclipping so
small text bounding boxes are less clipped and recognition anchors
behave correctly.
- Fix potential theme inconsistencies by reapplying or reverting Monet
palettes correctly across OS/theme changes and when reconnecting.
- Ensure toast notifications only run when GUI notifications are
enabled, avoiding unnecessary checks in disabled configurations.

Enhancements:
- Refine the changelog generation skill specification to better handle
version sourcing, folding rules, beta-to-stable merging, and noise
filtering.
- Extend MaaDeps to v2.14.0 and update GPU allowlist to cover newer
Xe-LPG+ devices, improving hardware compatibility.
- Improve updater logging to include progress UI state and add safer
confirmation flows when disabling updater progress windows.
- Tighten logging and null-handling around MuMu manager path discovery
and port parsing in the WPF helper classes.

Build:
- Publish MaaCore runtime artifacts for Windows, Linux, and macOS in CI
and consume them from Avalonia builds instead of rebuilding MaaCore
there.
- Simplify the dedicated Avalonia CI workflow to a quick .NET test gate
without MaaCore compilation or packaging, and add concurrency limits for
PR runs.
- Adjust release preparation/notification workflows to use configurable
AI agent secrets and updated embed styling.
- Wire MaaCore to link against polyclipping on Android to support the
new OCR polygon expansion logic.

CI:
- Add an Avalonia MAAUnified multi-platform CI job with targeted test
gates per platform and artifacts for packaged builds.
- Update AI issue analysis and release prep workflows to parameterize
the AI agent, enforce skill-based prompts, and clean up release assets
for Avalonia/MAARuntime artifacts.

Deployment:
- Ensure release packaging scripts drop transient MAARuntime and
MAAUnified artifacts from the final asset bundle before publishing.

Documentation:
- Refresh multiple WPF localization resources and guides to reflect new
background Monet options, updater progress settings, emulator warnings,
and minor wording tweaks.

Tests:
- Extend Avalonia test suites with baseline consistency, coverage,
render sync, parity matrix, platform capability, and native smoke gates
on supported platforms.

Chores:
- Tighten various UI strings, comments, and configuration defaults in
the WPF GUI, including achievements text and stage navigation hints.

</details>

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

通过增强模拟器处理、增加动态背景主题、将 Avalonia 构建集成到 CI 中,以及收紧 AI/问题处理工具和依赖项,准备
v6.14.0-beta.1。

New Features:
- 引入基于 Monet 的动态背景主题,支持自动颜色提取和可选自定义颜色,并在 WPF GUI 中提供模式选择和本地化。
- 增加周期性模拟器 FPS 检测和面向用户的低/异常帧率警告,同时检查 MuMu 保活状态以及 LDPlayer+maatouch
的使用情况。
- 暴露一个设置,用于隐藏图形化更新器进度窗口,并通过 GUI 配置将该设置传递给外部更新器进程。
- 为新的跨平台 MAAUnified(Avalonia)应用在 Windows、Linux 和 macOS 上提供 CI
任务和打包流程,并消费 MaaCore 运行时制品。

Bug Fixes:
- 改进从 ADB 地址检测 MuMu 和 LDPlayer 实例索引,在核心和 GUI 中更健壮地处理模拟器风格标识符和无效端口。
- 调整 OCR 盒子扩展逻辑,使用基于 polyclipping 的多边形偏移,使小文本的边界框不易被裁剪,并让识别锚点行为更正确。
- 通过在操作系统/主题变更以及重新连接时正确地重新应用或回滚 Monet 调色板,修复潜在的主题不一致问题。
- 确保只有在启用 GUI 通知时才运行 toast 通知,避免在禁用配置下进行不必要的检查。

Enhancements:
- 打磨变更日志生成技能的规范,更好地处理版本来源、折叠规则、测试版到正式版的合并,以及噪音过滤。
- 将 MaaDeps 扩展到 v2.14.0,并更新 GPU 白名单以覆盖更新的 Xe-LPG+ 设备,从而提升硬件兼容性。
- 改进更新器日志记录,包含进度 UI 状态,并在禁用更新器进度窗口时添加更安全的确认流程。
- 在 WPF 辅助类中收紧有关 MuMu 管理器路径发现和端口解析的日志记录与空值处理。

Build:
- 在 CI 中为 Windows、Linux 和 macOS 发布 MaaCore 运行时制品,并在 Avalonia
构建中消费这些制品,而不是在其中重新构建 MaaCore。
- 将专用的 Avalonia CI 工作流简化为快速的 .NET 测试门控,不再编译或打包 MaaCore,并为 PR 运行添加并发限制。
- 调整发布准备/通知工作流,使用可配置的 AI 代理密钥以及更新后的嵌入样式。
- 在 Android 上将 MaaCore 链接到 polyclipping,以支持新的 OCR 多边形扩展逻辑。

CI:
- 添加一个 Avalonia MAAUnified 多平台 CI 任务,为各平台设置有针对性的测试门控,并生成打包构建的制品。
- 更新 AI 问题分析和发布准备工作流,对 AI 代理进行参数化,强制使用基于技能的提示,并清理 Avalonia/MAARuntime
制品的发布资产。

Deployment:
- 确保发布打包脚本在发布前从最终资产包中移除临时性的 MAARuntime 和 MAAUnified 制品。

Documentation:
- 刷新多项 WPF 本地化资源和指南,以反映新的背景 Monet 选项、更新器进度设置、模拟器警告,以及一些措辞上的微调。

Tests:
- 扩展 Avalonia 测试套件,增加基线一致性、覆盖率、渲染同步、对照矩阵、平台能力以及在受支持平台上的原生冒烟测试门控。

Chores:
- 收紧 WPF GUI 中各类 UI 文本、注释和配置默认值,包括成就文案和关卡导航提示。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare v6.14.0-beta.1 by enhancing emulator handling, adding dynamic
background theming, integrating Avalonia builds into CI, and tightening
AI/issue tooling and dependencies.

New Features:
- Introduce Monet-based dynamic background theming with auto color
extraction and optional custom color, including mode selection and
localization in the WPF GUI.
- Add periodic emulator FPS detection and user-facing warnings for low
or abnormal frame rates, plus checks for MuMu keep-alive and
LDPlayer+maatouch usage.
- Expose a setting to hide the graphical updater progress window, wiring
it through GUI configuration to the external updater process.
- Provide CI jobs and packaging for the new cross-platform MAAUnified
(Avalonia) app on Windows, Linux, and macOS, consuming MaaCore runtime
artifacts.

Bug Fixes:
- Improve MuMu and LDPlayer instance index detection from ADB addresses,
handling emulator- style identifiers and invalid ports more robustly in
both core and GUI.
- Adjust OCR box expansion to use polygon offsetting via polyclipping so
small text bounding boxes are less clipped and recognition anchors
behave correctly.
- Fix potential theme inconsistencies by reapplying or reverting Monet
palettes correctly across OS/theme changes and when reconnecting.
- Ensure toast notifications only run when GUI notifications are
enabled, avoiding unnecessary checks in disabled configurations.

Enhancements:
- Refine the changelog generation skill specification to better handle
version sourcing, folding rules, beta-to-stable merging, and noise
filtering.
- Extend MaaDeps to v2.14.0 and update GPU allowlist to cover newer
Xe-LPG+ devices, improving hardware compatibility.
- Improve updater logging to include progress UI state and add safer
confirmation flows when disabling updater progress windows.
- Tighten logging and null-handling around MuMu manager path discovery
and port parsing in the WPF helper classes.

Build:
- Publish MaaCore runtime artifacts for Windows, Linux, and macOS in CI
and consume them from Avalonia builds instead of rebuilding MaaCore
there.
- Simplify the dedicated Avalonia CI workflow to a quick .NET test gate
without MaaCore compilation or packaging, and add concurrency limits for
PR runs.
- Adjust release preparation/notification workflows to use configurable
AI agent secrets and updated embed styling.
- Wire MaaCore to link against polyclipping on Android to support the
new OCR polygon expansion logic.

CI:
- Add an Avalonia MAAUnified multi-platform CI job with targeted test
gates per platform and artifacts for packaged builds.
- Update AI issue analysis and release prep workflows to parameterize
the AI agent, enforce skill-based prompts, and clean up release assets
for Avalonia/MAARuntime artifacts.

Deployment:
- Ensure release packaging scripts drop transient MAARuntime and
MAAUnified artifacts from the final asset bundle before publishing.

Documentation:
- Refresh multiple WPF localization resources and guides to reflect new
background Monet options, updater progress settings, emulator warnings,
and minor wording tweaks.

Tests:
- Extend Avalonia test suites with baseline consistency, coverage,
render sync, parity matrix, platform capability, and native smoke gates
on supported platforms.

Chores:
- Tighten various UI strings, comments, and configuration defaults in
the WPF GUI, including achievements text and stage navigation hints.

</details>

</details>

</details>

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

通过增强模拟器处理、增加动态背景主题、将 Avalonia 构建集成到 CI 中,以及收紧 AI/问题处理工具和依赖项,准备
v6.14.0-beta.1。

New Features:
- 引入基于 Monet 的动态背景主题,支持自动颜色提取和可选自定义颜色,并在 WPF GUI 中提供模式选择和本地化。
- 增加周期性模拟器 FPS 检测和面向用户的低/异常帧率警告,同时检查 MuMu 保活状态以及 LDPlayer+maatouch
的使用情况。
- 暴露一个设置,用于隐藏图形化更新器进度窗口,并通过 GUI 配置将该设置传递给外部更新器进程。
- 为新的跨平台 MAAUnified(Avalonia)应用在 Windows、Linux 和 macOS 上提供 CI
任务和打包流程,并消费 MaaCore 运行时制品。

Bug Fixes:
- 改进从 ADB 地址检测 MuMu 和 LDPlayer 实例索引,在核心和 GUI 中更健壮地处理模拟器风格标识符和无效端口。
- 调整 OCR 盒子扩展逻辑,使用基于 polyclipping 的多边形偏移,使小文本的边界框不易被裁剪,并让识别锚点行为更正确。
- 通过在操作系统/主题变更以及重新连接时正确地重新应用或回滚 Monet 调色板,修复潜在的主题不一致问题。
- 确保只有在启用 GUI 通知时才运行 toast 通知,避免在禁用配置下进行不必要的检查。

Enhancements:
- 打磨变更日志生成技能的规范,更好地处理版本来源、折叠规则、测试版到正式版的合并,以及噪音过滤。
- 将 MaaDeps 扩展到 v2.14.0,并更新 GPU 白名单以覆盖更新的 Xe-LPG+ 设备,从而提升硬件兼容性。
- 改进更新器日志记录,包含进度 UI 状态,并在禁用更新器进度窗口时添加更安全的确认流程。
- 在 WPF 辅助类中收紧有关 MuMu 管理器路径发现和端口解析的日志记录与空值处理。

Build:
- 在 CI 中为 Windows、Linux 和 macOS 发布 MaaCore 运行时制品,并在 Avalonia
构建中消费这些制品,而不是在其中重新构建 MaaCore。
- 将专用的 Avalonia CI 工作流简化为快速的 .NET 测试门控,不再编译或打包 MaaCore,并为 PR 运行添加并发限制。
- 调整发布准备/通知工作流,使用可配置的 AI 代理密钥以及更新后的嵌入样式。
- 在 Android 上将 MaaCore 链接到 polyclipping,以支持新的 OCR 多边形扩展逻辑。

CI:
- 添加一个 Avalonia MAAUnified 多平台 CI 任务,为各平台设置有针对性的测试门控,并生成打包构建的制品。
- 更新 AI 问题分析和发布准备工作流,对 AI 代理进行参数化,强制使用基于技能的提示,并清理 Avalonia/MAARuntime
制品的发布资产。

Deployment:
- 确保发布打包脚本在发布前从最终资产包中移除临时性的 MAARuntime 和 MAAUnified 制品。

Documentation:
- 刷新多项 WPF 本地化资源和指南,以反映新的背景 Monet 选项、更新器进度设置、模拟器警告,以及一些措辞上的微调。

Tests:
- 扩展 Avalonia 测试套件,增加基线一致性、覆盖率、渲染同步、对照矩阵、平台能力以及在受支持平台上的原生冒烟测试门控。

Chores:
- 收紧 WPF GUI 中各类 UI 文本、注释和配置默认值,包括成就文案和关卡导航提示。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare v6.14.0-beta.1 by enhancing emulator handling, adding dynamic
background theming, integrating Avalonia builds into CI, and tightening
AI/issue tooling and dependencies.

New Features:
- Introduce Monet-based dynamic background theming with auto color
extraction and optional custom color, including mode selection and
localization in the WPF GUI.
- Add periodic emulator FPS detection and user-facing warnings for low
or abnormal frame rates, plus checks for MuMu keep-alive and
LDPlayer+maatouch usage.
- Expose a setting to hide the graphical updater progress window, wiring
it through GUI configuration to the external updater process.
- Provide CI jobs and packaging for the new cross-platform MAAUnified
(Avalonia) app on Windows, Linux, and macOS, consuming MaaCore runtime
artifacts.

Bug Fixes:
- Improve MuMu and LDPlayer instance index detection from ADB addresses,
handling emulator- style identifiers and invalid ports more robustly in
both core and GUI.
- Adjust OCR box expansion to use polygon offsetting via polyclipping so
small text bounding boxes are less clipped and recognition anchors
behave correctly.
- Fix potential theme inconsistencies by reapplying or reverting Monet
palettes correctly across OS/theme changes and when reconnecting.
- Ensure toast notifications only run when GUI notifications are
enabled, avoiding unnecessary checks in disabled configurations.

Enhancements:
- Refine the changelog generation skill specification to better handle
version sourcing, folding rules, beta-to-stable merging, and noise
filtering.
- Extend MaaDeps to v2.14.0 and update GPU allowlist to cover newer
Xe-LPG+ devices, improving hardware compatibility.
- Improve updater logging to include progress UI state and add safer
confirmation flows when disabling updater progress windows.
- Tighten logging and null-handling around MuMu manager path discovery
and port parsing in the WPF helper classes.

Build:
- Publish MaaCore runtime artifacts for Windows, Linux, and macOS in CI
and consume them from Avalonia builds instead of rebuilding MaaCore
there.
- Simplify the dedicated Avalonia CI workflow to a quick .NET test gate
without MaaCore compilation or packaging, and add concurrency limits for
PR runs.
- Adjust release preparation/notification workflows to use configurable
AI agent secrets and updated embed styling.
- Wire MaaCore to link against polyclipping on Android to support the
new OCR polygon expansion logic.

CI:
- Add an Avalonia MAAUnified multi-platform CI job with targeted test
gates per platform and artifacts for packaged builds.
- Update AI issue analysis and release prep workflows to parameterize
the AI agent, enforce skill-based prompts, and clean up release assets
for Avalonia/MAARuntime artifacts.

Deployment:
- Ensure release packaging scripts drop transient MAARuntime and
MAAUnified artifacts from the final asset bundle before publishing.

Documentation:
- Refresh multiple WPF localization resources and guides to reflect new
background Monet options, updater progress settings, emulator warnings,
and minor wording tweaks.

Tests:
- Extend Avalonia test suites with baseline consistency, coverage,
render sync, parity matrix, platform capability, and native smoke gates
on supported platforms.

Chores:
- Tighten various UI strings, comments, and configuration defaults in
the WPF GUI, including achievements text and stage navigation hints.

</details>

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

通过增强模拟器处理、增加动态背景主题、将 Avalonia 构建集成到 CI 中,以及收紧 AI/问题处理工具和依赖项,准备
v6.14.0-beta.1。

New Features:
- 引入基于 Monet 的动态背景主题,支持自动颜色提取和可选自定义颜色,并在 WPF GUI 中提供模式选择和本地化。
- 增加周期性模拟器 FPS 检测和面向用户的低/异常帧率警告,同时检查 MuMu 保活状态以及 LDPlayer+maatouch
的使用情况。
- 暴露一个设置,用于隐藏图形化更新器进度窗口,并通过 GUI 配置将该设置传递给外部更新器进程。
- 为新的跨平台 MAAUnified(Avalonia)应用在 Windows、Linux 和 macOS 上提供 CI
任务和打包流程,并消费 MaaCore 运行时制品。

Bug Fixes:
- 改进从 ADB 地址检测 MuMu 和 LDPlayer 实例索引,在核心和 GUI 中更健壮地处理模拟器风格标识符和无效端口。
- 调整 OCR 盒子扩展逻辑,使用基于 polyclipping 的多边形偏移,使小文本的边界框不易被裁剪,并让识别锚点行为更正确。
- 通过在操作系统/主题变更以及重新连接时正确地重新应用或回滚 Monet 调色板,修复潜在的主题不一致问题。
- 确保只有在启用 GUI 通知时才运行 toast 通知,避免在禁用配置下进行不必要的检查。

Enhancements:
- 打磨变更日志生成技能的规范,更好地处理版本来源、折叠规则、测试版到正式版的合并,以及噪音过滤。
- 将 MaaDeps 扩展到 v2.14.0,并更新 GPU 白名单以覆盖更新的 Xe-LPG+ 设备,从而提升硬件兼容性。
- 改进更新器日志记录,包含进度 UI 状态,并在禁用更新器进度窗口时添加更安全的确认流程。
- 在 WPF 辅助类中收紧有关 MuMu 管理器路径发现和端口解析的日志记录与空值处理。

Build:
- 在 CI 中为 Windows、Linux 和 macOS 发布 MaaCore 运行时制品,并在 Avalonia
构建中消费这些制品,而不是在其中重新构建 MaaCore。
- 将专用的 Avalonia CI 工作流简化为快速的 .NET 测试门控,不再编译或打包 MaaCore,并为 PR 运行添加并发限制。
- 调整发布准备/通知工作流,使用可配置的 AI 代理密钥以及更新后的嵌入样式。
- 在 Android 上将 MaaCore 链接到 polyclipping,以支持新的 OCR 多边形扩展逻辑。

CI:
- 添加一个 Avalonia MAAUnified 多平台 CI 任务,为各平台设置有针对性的测试门控,并生成打包构建的制品。
- 更新 AI 问题分析和发布准备工作流,对 AI 代理进行参数化,强制使用基于技能的提示,并清理 Avalonia/MAARuntime
制品的发布资产。

Deployment:
- 确保发布打包脚本在发布前从最终资产包中移除临时性的 MAARuntime 和 MAAUnified 制品。

Documentation:
- 刷新多项 WPF 本地化资源和指南,以反映新的背景 Monet 选项、更新器进度设置、模拟器警告,以及一些措辞上的微调。

Tests:
- 扩展 Avalonia 测试套件,增加基线一致性、覆盖率、渲染同步、对照矩阵、平台能力以及在受支持平台上的原生冒烟测试门控。

Chores:
- 收紧 WPF GUI 中各类 UI 文本、注释和配置默认值,包括成就文案和关卡导航提示。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare v6.14.0-beta.1 by enhancing emulator handling, adding dynamic
background theming, integrating Avalonia builds into CI, and tightening
AI/issue tooling and dependencies.

New Features:
- Introduce Monet-based dynamic background theming with auto color
extraction and optional custom color, including mode selection and
localization in the WPF GUI.
- Add periodic emulator FPS detection and user-facing warnings for low
or abnormal frame rates, plus checks for MuMu keep-alive and
LDPlayer+maatouch usage.
- Expose a setting to hide the graphical updater progress window, wiring
it through GUI configuration to the external updater process.
- Provide CI jobs and packaging for the new cross-platform MAAUnified
(Avalonia) app on Windows, Linux, and macOS, consuming MaaCore runtime
artifacts.

Bug Fixes:
- Improve MuMu and LDPlayer instance index detection from ADB addresses,
handling emulator- style identifiers and invalid ports more robustly in
both core and GUI.
- Adjust OCR box expansion to use polygon offsetting via polyclipping so
small text bounding boxes are less clipped and recognition anchors
behave correctly.
- Fix potential theme inconsistencies by reapplying or reverting Monet
palettes correctly across OS/theme changes and when reconnecting.
- Ensure toast notifications only run when GUI notifications are
enabled, avoiding unnecessary checks in disabled configurations.

Enhancements:
- Refine the changelog generation skill specification to better handle
version sourcing, folding rules, beta-to-stable merging, and noise
filtering.
- Extend MaaDeps to v2.14.0 and update GPU allowlist to cover newer
Xe-LPG+ devices, improving hardware compatibility.
- Improve updater logging to include progress UI state and add safer
confirmation flows when disabling updater progress windows.
- Tighten logging and null-handling around MuMu manager path discovery
and port parsing in the WPF helper classes.

Build:
- Publish MaaCore runtime artifacts for Windows, Linux, and macOS in CI
and consume them from Avalonia builds instead of rebuilding MaaCore
there.
- Simplify the dedicated Avalonia CI workflow to a quick .NET test gate
without MaaCore compilation or packaging, and add concurrency limits for
PR runs.
- Adjust release preparation/notification workflows to use configurable
AI agent secrets and updated embed styling.
- Wire MaaCore to link against polyclipping on Android to support the
new OCR polygon expansion logic.

CI:
- Add an Avalonia MAAUnified multi-platform CI job with targeted test
gates per platform and artifacts for packaged builds.
- Update AI issue analysis and release prep workflows to parameterize
the AI agent, enforce skill-based prompts, and clean up release assets
for Avalonia/MAARuntime artifacts.

Deployment:
- Ensure release packaging scripts drop transient MAARuntime and
MAAUnified artifacts from the final asset bundle before publishing.

Documentation:
- Refresh multiple WPF localization resources and guides to reflect new
background Monet options, updater progress settings, emulator warnings,
and minor wording tweaks.

Tests:
- Extend Avalonia test suites with baseline consistency, coverage,
render sync, parity matrix, platform capability, and native smoke gates
on supported platforms.

Chores:
- Tighten various UI strings, comments, and configuration defaults in
the WPF GUI, including achievements text and stage navigation hints.

</details>

</details>

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

通过增强模拟器处理、增加动态背景主题、将 Avalonia 构建集成到 CI 中,以及收紧 AI/问题处理工具和依赖项,准备
v6.14.0-beta.1。

New Features:
- 引入基于 Monet 的动态背景主题,支持自动颜色提取和可选自定义颜色,并在 WPF GUI 中提供模式选择和本地化。
- 增加周期性模拟器 FPS 检测和面向用户的低/异常帧率警告,同时检查 MuMu 保活状态以及 LDPlayer+maatouch
的使用情况。
- 暴露一个设置,用于隐藏图形化更新器进度窗口,并通过 GUI 配置将该设置传递给外部更新器进程。
- 为新的跨平台 MAAUnified(Avalonia)应用在 Windows、Linux 和 macOS 上提供 CI
任务和打包流程,并消费 MaaCore 运行时制品。

Bug Fixes:
- 改进从 ADB 地址检测 MuMu 和 LDPlayer 实例索引,在核心和 GUI 中更健壮地处理模拟器风格标识符和无效端口。
- 调整 OCR 盒子扩展逻辑,使用基于 polyclipping 的多边形偏移,使小文本的边界框不易被裁剪,并让识别锚点行为更正确。
- 通过在操作系统/主题变更以及重新连接时正确地重新应用或回滚 Monet 调色板,修复潜在的主题不一致问题。
- 确保只有在启用 GUI 通知时才运行 toast 通知,避免在禁用配置下进行不必要的检查。

Enhancements:
- 打磨变更日志生成技能的规范,更好地处理版本来源、折叠规则、测试版到正式版的合并,以及噪音过滤。
- 将 MaaDeps 扩展到 v2.14.0,并更新 GPU 白名单以覆盖更新的 Xe-LPG+ 设备,从而提升硬件兼容性。
- 改进更新器日志记录,包含进度 UI 状态,并在禁用更新器进度窗口时添加更安全的确认流程。
- 在 WPF 辅助类中收紧有关 MuMu 管理器路径发现和端口解析的日志记录与空值处理。

Build:
- 在 CI 中为 Windows、Linux 和 macOS 发布 MaaCore 运行时制品,并在 Avalonia
构建中消费这些制品,而不是在其中重新构建 MaaCore。
- 将专用的 Avalonia CI 工作流简化为快速的 .NET 测试门控,不再编译或打包 MaaCore,并为 PR 运行添加并发限制。
- 调整发布准备/通知工作流,使用可配置的 AI 代理密钥以及更新后的嵌入样式。
- 在 Android 上将 MaaCore 链接到 polyclipping,以支持新的 OCR 多边形扩展逻辑。

CI:
- 添加一个 Avalonia MAAUnified 多平台 CI 任务,为各平台设置有针对性的测试门控,并生成打包构建的制品。
- 更新 AI 问题分析和发布准备工作流,对 AI 代理进行参数化,强制使用基于技能的提示,并清理 Avalonia/MAARuntime
制品的发布资产。

Deployment:
- 确保发布打包脚本在发布前从最终资产包中移除临时性的 MAARuntime 和 MAAUnified 制品。

Documentation:
- 刷新多项 WPF 本地化资源和指南,以反映新的背景 Monet 选项、更新器进度设置、模拟器警告,以及一些措辞上的微调。

Tests:
- 扩展 Avalonia 测试套件,增加基线一致性、覆盖率、渲染同步、对照矩阵、平台能力以及在受支持平台上的原生冒烟测试门控。

Chores:
- 收紧 WPF GUI 中各类 UI 文本、注释和配置默认值,包括成就文案和关卡导航提示。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare v6.14.0-beta.1 by enhancing emulator handling, adding dynamic
background theming, integrating Avalonia builds into CI, and tightening
AI/issue tooling and dependencies.

New Features:
- Introduce Monet-based dynamic background theming with auto color
extraction and optional custom color, including mode selection and
localization in the WPF GUI.
- Add periodic emulator FPS detection and user-facing warnings for low
or abnormal frame rates, plus checks for MuMu keep-alive and
LDPlayer+maatouch usage.
- Expose a setting to hide the graphical updater progress window, wiring
it through GUI configuration to the external updater process.
- Provide CI jobs and packaging for the new cross-platform MAAUnified
(Avalonia) app on Windows, Linux, and macOS, consuming MaaCore runtime
artifacts.

Bug Fixes:
- Improve MuMu and LDPlayer instance index detection from ADB addresses,
handling emulator- style identifiers and invalid ports more robustly in
both core and GUI.
- Adjust OCR box expansion to use polygon offsetting via polyclipping so
small text bounding boxes are less clipped and recognition anchors
behave correctly.
- Fix potential theme inconsistencies by reapplying or reverting Monet
palettes correctly across OS/theme changes and when reconnecting.
- Ensure toast notifications only run when GUI notifications are
enabled, avoiding unnecessary checks in disabled configurations.

Enhancements:
- Refine the changelog generation skill specification to better handle
version sourcing, folding rules, beta-to-stable merging, and noise
filtering.
- Extend MaaDeps to v2.14.0 and update GPU allowlist to cover newer
Xe-LPG+ devices, improving hardware compatibility.
- Improve updater logging to include progress UI state and add safer
confirmation flows when disabling updater progress windows.
- Tighten logging and null-handling around MuMu manager path discovery
and port parsing in the WPF helper classes.

Build:
- Publish MaaCore runtime artifacts for Windows, Linux, and macOS in CI
and consume them from Avalonia builds instead of rebuilding MaaCore
there.
- Simplify the dedicated Avalonia CI workflow to a quick .NET test gate
without MaaCore compilation or packaging, and add concurrency limits for
PR runs.
- Adjust release preparation/notification workflows to use configurable
AI agent secrets and updated embed styling.
- Wire MaaCore to link against polyclipping on Android to support the
new OCR polygon expansion logic.

CI:
- Add an Avalonia MAAUnified multi-platform CI job with targeted test
gates per platform and artifacts for packaged builds.
- Update AI issue analysis and release prep workflows to parameterize
the AI agent, enforce skill-based prompts, and clean up release assets
for Avalonia/MAARuntime artifacts.

Deployment:
- Ensure release packaging scripts drop transient MAARuntime and
MAAUnified artifacts from the final asset bundle before publishing.

Documentation:
- Refresh multiple WPF localization resources and guides to reflect new
background Monet options, updater progress settings, emulator warnings,
and minor wording tweaks.

Tests:
- Extend Avalonia test suites with baseline consistency, coverage,
render sync, parity matrix, platform capability, and native smoke gates
on supported platforms.

Chores:
- Tighten various UI strings, comments, and configuration defaults in
the WPF GUI, including achievements text and stage navigation hints.

</details>

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

通过增强模拟器处理、增加动态背景主题、将 Avalonia 构建集成到 CI 中,以及收紧 AI/问题处理工具和依赖项,准备
v6.14.0-beta.1。

New Features:
- 引入基于 Monet 的动态背景主题,支持自动颜色提取和可选自定义颜色,并在 WPF GUI 中提供模式选择和本地化。
- 增加周期性模拟器 FPS 检测和面向用户的低/异常帧率警告,同时检查 MuMu 保活状态以及 LDPlayer+maatouch
的使用情况。
- 暴露一个设置,用于隐藏图形化更新器进度窗口,并通过 GUI 配置将该设置传递给外部更新器进程。
- 为新的跨平台 MAAUnified(Avalonia)应用在 Windows、Linux 和 macOS 上提供 CI
任务和打包流程,并消费 MaaCore 运行时制品。

Bug Fixes:
- 改进从 ADB 地址检测 MuMu 和 LDPlayer 实例索引,在核心和 GUI 中更健壮地处理模拟器风格标识符和无效端口。
- 调整 OCR 盒子扩展逻辑,使用基于 polyclipping 的多边形偏移,使小文本的边界框不易被裁剪,并让识别锚点行为更正确。
- 通过在操作系统/主题变更以及重新连接时正确地重新应用或回滚 Monet 调色板,修复潜在的主题不一致问题。
- 确保只有在启用 GUI 通知时才运行 toast 通知,避免在禁用配置下进行不必要的检查。

Enhancements:
- 打磨变更日志生成技能的规范,更好地处理版本来源、折叠规则、测试版到正式版的合并,以及噪音过滤。
- 将 MaaDeps 扩展到 v2.14.0,并更新 GPU 白名单以覆盖更新的 Xe-LPG+ 设备,从而提升硬件兼容性。
- 改进更新器日志记录,包含进度 UI 状态,并在禁用更新器进度窗口时添加更安全的确认流程。
- 在 WPF 辅助类中收紧有关 MuMu 管理器路径发现和端口解析的日志记录与空值处理。

Build:
- 在 CI 中为 Windows、Linux 和 macOS 发布 MaaCore 运行时制品,并在 Avalonia
构建中消费这些制品,而不是在其中重新构建 MaaCore。
- 将专用的 Avalonia CI 工作流简化为快速的 .NET 测试门控,不再编译或打包 MaaCore,并为 PR 运行添加并发限制。
- 调整发布准备/通知工作流,使用可配置的 AI 代理密钥以及更新后的嵌入样式。
- 在 Android 上将 MaaCore 链接到 polyclipping,以支持新的 OCR 多边形扩展逻辑。

CI:
- 添加一个 Avalonia MAAUnified 多平台 CI 任务,为各平台设置有针对性的测试门控,并生成打包构建的制品。
- 更新 AI 问题分析和发布准备工作流,对 AI 代理进行参数化,强制使用基于技能的提示,并清理 Avalonia/MAARuntime
制品的发布资产。

Deployment:
- 确保发布打包脚本在发布前从最终资产包中移除临时性的 MAARuntime 和 MAAUnified 制品。

Documentation:
- 刷新多项 WPF 本地化资源和指南,以反映新的背景 Monet 选项、更新器进度设置、模拟器警告,以及一些措辞上的微调。

Tests:
- 扩展 Avalonia 测试套件,增加基线一致性、覆盖率、渲染同步、对照矩阵、平台能力以及在受支持平台上的原生冒烟测试门控。

Chores:
- 收紧 WPF GUI 中各类 UI 文本、注释和配置默认值,包括成就文案和关卡导航提示。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare v6.14.0-beta.1 by enhancing emulator handling, adding dynamic
background theming, integrating Avalonia builds into CI, and tightening
AI/issue tooling and dependencies.

New Features:
- Introduce Monet-based dynamic background theming with auto color
extraction and optional custom color, including mode selection and
localization in the WPF GUI.
- Add periodic emulator FPS detection and user-facing warnings for low
or abnormal frame rates, plus checks for MuMu keep-alive and
LDPlayer+maatouch usage.
- Expose a setting to hide the graphical updater progress window, wiring
it through GUI configuration to the external updater process.
- Provide CI jobs and packaging for the new cross-platform MAAUnified
(Avalonia) app on Windows, Linux, and macOS, consuming MaaCore runtime
artifacts.

Bug Fixes:
- Improve MuMu and LDPlayer instance index detection from ADB addresses,
handling emulator- style identifiers and invalid ports more robustly in
both core and GUI.
- Adjust OCR box expansion to use polygon offsetting via polyclipping so
small text bounding boxes are less clipped and recognition anchors
behave correctly.
- Fix potential theme inconsistencies by reapplying or reverting Monet
palettes correctly across OS/theme changes and when reconnecting.
- Ensure toast notifications only run when GUI notifications are
enabled, avoiding unnecessary checks in disabled configurations.

Enhancements:
- Refine the changelog generation skill specification to better handle
version sourcing, folding rules, beta-to-stable merging, and noise
filtering.
- Extend MaaDeps to v2.14.0 and update GPU allowlist to cover newer
Xe-LPG+ devices, improving hardware compatibility.
- Improve updater logging to include progress UI state and add safer
confirmation flows when disabling updater progress windows.
- Tighten logging and null-handling around MuMu manager path discovery
and port parsing in the WPF helper classes.

Build:
- Publish MaaCore runtime artifacts for Windows, Linux, and macOS in CI
and consume them from Avalonia builds instead of rebuilding MaaCore
there.
- Simplify the dedicated Avalonia CI workflow to a quick .NET test gate
without MaaCore compilation or packaging, and add concurrency limits for
PR runs.
- Adjust release preparation/notification workflows to use configurable
AI agent secrets and updated embed styling.
- Wire MaaCore to link against polyclipping on Android to support the
new OCR polygon expansion logic.

CI:
- Add an Avalonia MAAUnified multi-platform CI job with targeted test
gates per platform and artifacts for packaged builds.
- Update AI issue analysis and release prep workflows to parameterize
the AI agent, enforce skill-based prompts, and clean up release assets
for Avalonia/MAARuntime artifacts.

Deployment:
- Ensure release packaging scripts drop transient MAARuntime and
MAAUnified artifacts from the final asset bundle before publishing.

Documentation:
- Refresh multiple WPF localization resources and guides to reflect new
background Monet options, updater progress settings, emulator warnings,
and minor wording tweaks.

Tests:
- Extend Avalonia test suites with baseline consistency, coverage,
render sync, parity matrix, platform capability, and native smoke gates
on supported platforms.

Chores:
- Tighten various UI strings, comments, and configuration defaults in
the WPF GUI, including achievements text and stage navigation hints.

</details>

</details>

</details>

</details>

</details>
2026-07-04 19:32:31 +08:00
github-actions[bot]
3294aaaa56 docs: Auto Update Changelogs of v6.14.0-beta.1 (#17260)
* docs: Auto Generate Changelog of Release v6.14.0-beta.1

* docs: changelog

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-07-04 19:32:09 +08:00
uye
9d039d41d9 ci: 更新 changelog skill 2026-07-04 19:15:42 +08:00
uye
a1cbcb87df ci: 更新 changelog skill 2026-07-04 19:04:09 +08:00
Constrat
699066f33c fix: EN Sui MissionFailed2 yostar changed template who would have guessed 2026-07-04 12:34:16 +02:00
uye
c558e49ca6 fix: 肉鸽事件/选项 (#17256)
* fix: 全角问号事件/选项

* fix: remove dupes for EN

* fix: 鸭爵主演?工作热情?

* fix: anchor for similars

* chore: remove stale encounters

* chore: 合并重复正则

* chore: remove unused choices from base.json + fix ordering in sui.json

* fix: 多余空格

---------

Co-authored-by: Constrat <56174894+Constrat@users.noreply.github.com>
2026-07-04 18:30:04 +08:00
github-actions[bot]
884375e925 chore: Auto Templates Optimization
Triggered by 9f17325823

[skip changelog]
2026-07-04 08:33:03 +00:00
HY
9f17325823 chore: 繁中服「衛戍協議:盟約」 (#17257) 2026-07-04 16:31:59 +08:00
HX3N
384d0f927d chore: revert KR Roguelike/base.json 2026-07-04 08:59:36 +09:00
github-actions[bot]
fd60168269 chore: Auto Update Game Resources - 2026-07-03
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28685187590

[skip changelog]
2026-07-03 22:02:56 +00:00
Constrat
aec37bc9f2 chore: EN + others MASS choice encounters addition 2026-07-03 23:54:59 +02:00
uye
ec41e33ea8 feat: MuMu 截图增强支持 emulator-5xxx 格式端口 (#17255)
* feat: MuMu 截图增强支持 emulator-5xxx 格式端口

* chore: review
2026-07-04 04:06:48 +08:00
萨拉托加
727905f54a fix: 萨米肉鸽特里蒙旅行社特派团识别错误
fix #17253
2026-07-04 00:09:45 +08:00
uye
f820ccb1ad fix: 修复自定义基建配置列表显示异常 (#17254) 2026-07-03 23:40:11 +08:00
Rin
812e764bfb fix: 基建产物收取时因loading遮挡跳过 (#17232)
* fix: 基建产物收取时因loading遮挡跳过

* fix: 修正通知收取后的 loading 分支

Co-authored-by: Status102 <102887808+status102@users.noreply.github.com>

---------

Co-authored-by: Status102 <102887808+status102@users.noreply.github.com>
2026-07-03 23:09:17 +08:00
Constrat
6be1b429e8 i18n: EN 2026-07-03 14:14:06 +02:00
Constrat
30951d8178 fix: EN typos 2026-07-03 13:28:49 +02:00
github-actions[bot]
60692c05ab feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28652940704
[skip changelog]
2026-07-03 09:55:09 +00:00
uye
43dc23c721 fix: 取消勾选莫奈取色后切换界面主题异常 (#17249)
* fix: 取消勾选莫奈取色后切换界面主题异常

* rft: 统一使用 Execute.OnUIThread 切换线程
2026-07-03 17:54:27 +08:00
uye
4e3d3d55f7 feat: 设置指引与开始唤醒中增加截图增强与截图测试相关选项 (#17247)
* feat: 设置指引与开始唤醒中增加截图增强与截图测试相关选项

* fix: 加多了
2026-07-03 16:57:12 +08:00
uye
a7d61ccfe7 feat: 新增同时使用雷电模拟器 + MaaTouch 组合的警告 (#17238) 2026-07-03 16:42:01 +08:00
github-actions[bot]
f2ddb7ca58 chore: Auto Update Game Resources - 2026-07-03
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28645528896

[skip changelog]
2026-07-03 07:31:09 +00:00
uye
057e8826a7 chore: GPU 推理禁用 Xe-LPG+ Arrow Lake Arc 140T
fix #17246
fix #17245
2026-07-03 14:04:23 +08:00
github-actions[bot]
01d80e9458 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28622519749
[skip changelog]
2026-07-02 21:26:20 +00:00
uye
6d0c3e1661 perf: 优化取色逻辑 (#17243)
* feat: 优化取色逻辑

* chore: review

* perf: 亮度锚点抽取为具名常量,有效背景亮度计算提取为独立方法
2026-07-03 01:55:13 +08:00
Aliothmoon
7897839948 fix: DBNet UnClip 用 MaaDeps polyclipping 替换近似偏移 (#17227)
* fix: ncnn DBNet UnClip 对齐 fastdeploy 多边形偏移

* chore: use maadeps polyclipping

* chore: bump MaaDeps version
2026-07-03 01:09:07 +08:00
github-actions[bot]
6799816529 chore: Auto Update Game Resources - 2026-07-02
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28601750165

[skip changelog]
2026-07-02 15:27:58 +00:00
uye
2f445be837 feat: 莫奈取色 (#17242)
* refactor: 移动关卡配置字段到 FightTask

UseAlternateStage / HideUnavailableStage / CustomStageCode 已迁移至
FightTask.cs,从 GUI 全局配置中移除冗余定义

* feat: 莫奈取色 — 配置与本地化

新增 BackgroundMonetEnabled / BackgroundMonetMode / BackgroundMonetCustomColor
配置字段,以及 MonetModeType 枚举(Auto / Custom)。
添加 zh-cn / zh-tw / en-us / ja-jp / ko-kr 五语本地化字符串

* feat: 莫奈取色 — 调色板生成与应用逻辑

- MonetPaletteHelper: 基于 HSL 线性计算生成主题色板,主色 / 文字 /
  背景角色各自有独立的饱和度与明度策略;明度随背景图不透明度连续
  自适应,保证前景与有效背景之间始终有足够对比度
- ColorExtractorHelper: 从背景图 BitmapSource 提取主色
- ThemeHelper: ApplyMonetPalette / RevertMonetPalette / ReapplyMonet,
  计算放后台线程、资源写入在 UI 线程;修正 AccentColor 覆盖顺序、
  主题切换时清除遮蔽资源以恢复正确主题色

* feat: 莫奈取色 — 设置界面与 ViewModel

- BackgroundSettings.xaml: 新增莫奈取色开关、取色模式选择、自定义颜色
  色块预览与 ColorPicker 按钮
- BackgroundSettingsUserControlModel: UpdateMonet / ScheduleMonetUpdate
  防抖逻辑,不透明度滑块拖动时后台计算 + UI 线程写入
- SettingsViewModel: 主题初始化完成后恢复莫奈调色板

* chore: review

* chore: 调整间距
2026-07-02 22:40:32 +08:00
uye
b65b3d3d16 feat: 新增检测 MuMu 后台保活 (#17241)
* feat: 新增检测 MuMu 后台保活

* chore: review
2026-07-02 22:27:53 +08:00
uye
a49bca5844 feat: 增加当前模拟器设置帧率检测与提示 (#17219) 2026-07-02 14:53:52 +08:00
Drest
252e3aa954 fix: 修复 MuMu 模拟器下第 32 个及以后多开模拟器的编号计算错误 (#17112)
* fix: 修复 MuMu 模拟器下第 32 个及以后多开模拟器的编号计算错误

* perf: 优化编号计算代码

* chore: 修改注释

---------

Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-07-02 14:37:44 +08:00
github-actions[bot]
c3787681a5 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28551322947
[skip changelog]
2026-07-01 22:16:20 +00:00
MistEO
6ceabc3cfc ci: optimize MAAUnified build by reusing MaaCore artifacts (#17233)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 13:31:46 +08:00
MistEO
b1f017dcc9 ci: bot agent use secret 2026-06-30 22:28:56 +08:00
MistEO
b9fa7ca008 ci: bot agent use secrets 2026-06-30 22:28:14 +08:00
github-actions[bot]
d41c370110 chore: Auto Update Game Resources - 2026-06-30
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28439907321

[skip changelog]
2026-06-30 11:10:47 +00:00
uye
7311dab428 fix: 修复未开启系统通知时进行系统通知检查 2026-06-30 12:58:47 +08:00
github-actions[bot]
55668face3 chore: Auto Update Game Resources - 2026-06-29
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28395806977

[skip changelog]
2026-06-29 19:02:38 +00:00
uye
031e99c295 feat: 增加自动下载更新包提示文本 2026-06-29 14:46:42 +08:00
uye
84b560d3cd feat: 新增隐藏更新进度提示框选项 2026-06-29 14:37:02 +08:00
MistEO
ac9dbff483 ci: 强调要读skills 2026-06-29 12:15:19 +08:00
Constrat
b926a838c2 chore: revert discord notification embed color 2026-06-28 16:56:53 +02:00
uye
d9e8ec97ee Release v6.13.0 (#17210)
## Summary by Sourcery

为 v6.13.0 更新发布通知和问题分析工作流。

新特性:
- 在 Discord 发布通知中新增分别针对 Windows x64/ARM 和 Linux x64/ARM 的下载链接。

增强:
- 修订 Discord 发布通知消息文案和嵌入样式。
- 将问题 AI 分析工作流从基于 Codex 的集成切换为基于 Claude 的集成,包括作业命名和输出引用。

CI:
- 更新用于 Discord 发布通知和问题 AI 分析的 GitHub Actions 工作流,以反映新的构建产物和 AI 提供商配置。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Update release notification and issue analysis workflows for v6.13.0.

New Features:
- Add separate Windows x64/ARM and Linux x64/ARM download links to
Discord release notifications.

Enhancements:
- Revise Discord release notification message copy and embed styling.
- Switch the issue AI analysis workflow from Codex-based to Claude-based
integration, including job naming and output references.

CI:
- Update GitHub Actions workflows for Discord release notifications and
issue AI analysis to reflect new artifacts and AI provider
configuration.

</details>
2026-06-28 21:25:15 +08:00
uye
d92fa39e88 docs: update skill and changelog 2026-06-28 21:24:19 +08:00
MistEO
30477505e8 ci: AI changelog generation with auto PR creation (#17214)
* ci: AI changelog generation with auto PR creation

Co-authored-by: Cursor <cursoragent@cursor.com>

* ci: force write CHANGELOG.md from AI output

Co-authored-by: Cursor <cursoragent@cursor.com>

* ci: add warning when changelog has no diff

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 14:42:57 +08:00
MistEO
0fc8263854 chore: switch AI issue analysis to unified main branch
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 13:36:13 +08:00
dependabot[bot]
ff7306775b ci: bump actions/cache from 5 to 6 in /.github/workflows in the github-actions group (#17207)
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-28 13:24:55 +08:00
uye
8af85aa4ec docs: changelog 2026-06-28 10:09:07 +08:00
github-actions[bot]
2bf335d35d feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28303359795
[skip changelog]
2026-06-27 22:12:56 +00:00
MistEO
18d764643a chore: switch AI issue analysis from Codex to Claude
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 00:22:42 +08:00
Constrat
62f456dc5a style: update discord release notification 2026-06-27 12:03:59 +02:00
Constrat
ca19cb1af1 fix: discord release link for linux x86_64 2026-06-27 10:06:59 +02:00
uye
58e3d06b27 Release v6.13.0-beta.3 (#17203)
## 由 Sourcery 总结

改进运行时语言切换、跨实例属性依赖处理和 OCR 可靠性,同时优化任务队列 UI 行为以及多处彩蛋流程。

新功能:
- 支持在多个 ViewModel 间进行跨实例和基于属性的依赖绑定,包括针对语言变化的全局刷新钩子。
- 引入可复用的 `LocalizedObservableList` 帮助类,用于集中管理本地化的选项列表,并在语言改变时自动刷新。
- 新增统一的非阻塞 `EasterEggDialog` 视图和辅助 API,用于在设置页和助理流程中展示脚本化对话框。
- 通过 `LocalizationHelper` 暴露运行时语言重载能力,提供 `LanguageChanged` 事件和
`CurrentCulture`,实现无需重启应用的热语言切换。
- 增强 `OcrPackNcnn` 中的 OCR 行为,以兼容 fastdeploy
的检测与识别流程以及空检测场景;在未检测到任何框时,将整张图片视作一行处理。
- 新增 GPU 选项视图模型封装(`GpuOptionItem`),以支持本地化的 GPU 选择并保持稳定的 `ComboBox` 绑定行为。
- 扩展成就系统,增加发布阶段元数据,包括本地化的工具提示和基于阶段的 UI 提示。

错误修复:
- 通过将 `LanguageChanged` 接入设置、任务队列、工具箱、计时器、关卡和多个设置面板,修复多处与语言相关的陈旧文本问题。
- 在临时 ViewModel 被释放时跟踪并清理跨实例属性依赖,防止内存泄漏和“僵尸”通知。
- 将 DWM 组合被禁用和拖放过程中的 COM 异常视为非致命错误,避免不必要的应用退出,同时仍然弹出错误对话框。
- 调整预处理、候选过滤和多边形评分,使其与 fastdeploy 行为一致,修复小 ROI 场景下的 OCR
误检问题,包括丢弃过于细长的检测框。
- 确保本地化的条目名称和关卡工具提示在语言更改时能够正确回退与重新加载。
- 修正肉鸽难度选择校验逻辑,并在主题特定限制变化时正确更新当前显示的难度。
- 改进对永久关卡阻塞后续关卡的处理,在配置会导致静默跳过后续关卡时对用户进行警告。
- 通过将显示文本与底层 `GpuOption` 值解耦,修复语言切换时的 GPU 选择与 `ComboBox` 刷新问题。

增强优化:
- 重构本地化处理逻辑,让更多设置与任务相关的 ViewModel 订阅集中式的 `LanguageChanged`
事件,并就地刷新缓存的显示字符串,而非依赖重启。
- 优化 Pallas 语言“醉酒/宿醉”彩蛋流程,避免强制重启,使用内部语言切换辅助工具,并在启动与退出时展示非阻塞对话框。
- 将多种对话框控件(文本输入、定时文本以及新的
`EasterEggDialog`)统一到重命名后的视图类下,并更新在任务队列和其他界面中的使用方式。
- 改进 `StageManager` 和 `StageInfo`,同时存储本地化键和值,使关卡名称、提示和小游戏入口在语言变更时可动态刷新。
- 使多个设置列表(连接配置、客户端类型、无人机使用模式、基础设施模式、更新通道、肉鸽主题、收容模式、战斗序列/重置模式等)现代化,统一使用
`LocalizedObservableList`,以实现更简洁、可热插拔的本地化方案。
- 收紧计时器、协作作战、工具箱、托盘图标、后置动作以及根视图在语言变化和启动流程中的行为,包括自动刷新标题与工具提示。
- 添加结构化的成就阶段发布日期映射,以支持更具信息量的成就 UI。
- 对日志作用域和若干 UI 绑定做小规模重构,包括语言切换后的非阻塞关卡/日期刷新以及废弃配置键的清理。

杂务:
- 更新多份游戏资源 JSON 文件(关卡、任务、物品索引、地块位置、版本清单),以适配最新内容与关卡布局,包括新的危机合约 v2
地块位置信息。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Improve runtime language switching, cross-instance property dependency
handling, and OCR robustness, while refining task queue UI behaviors and
various Easter egg flows.

New Features:
- Support cross-instance and attribute-based property dependencies
across ViewModels, including global refresh hooks for language changes.
- Introduce a reusable LocalizedObservableList helper to centralize
localized option lists that automatically refresh on language change.
- Add a unified non-blocking EasterEggDialog view and helper APIs for
showing scripted dialogs from settings and assistant flows.
- Expose runtime language reload via LocalizationHelper with a
LanguageChanged event and CurrentCulture, enabling hot language
switching without app restart.
- Enhance OCR behavior in OcrPackNcnn to handle fastdeploy-compatible
detection, recognition, and empty-detection cases, including treating
the whole image as a line when no boxes are found.
- Add GPU option view-model wrapper (GpuOptionItem) to support localized
GPU selection with stable ComboBox binding behavior.
- Extend achievements with release phase metadata including localized
tooltips and phase-based UI hints.

Bug Fixes:
- Fix multiple language-related stale-text issues by wiring
LanguageChanged into Settings, task queues, toolbox, timers, stages, and
various settings panels.
- Prevent memory leaks and zombie notifications by tracking and cleaning
cross-instance property dependencies when transient ViewModels are
disposed.
- Handle DWM composition disabled and drag-drop COM exceptions as
non-fatal, avoiding unnecessary application exits while still surfacing
error dialogs.
- Address OCR mis-detections on small ROIs by aligning preprocessing,
candidate filtering, and polygon scoring with fastdeploy behavior,
including dropping overly thin boxes.
- Ensure localized item names and stage tooltips fall back gracefully
and reload correctly when the language is changed.
- Correct roguelike difficulty selection validation and update of the
displayed difficulty when theme-specific limits change.
- Improve handling of permanent stages blocking later entries by warning
the user when configuration would silently skip subsequent stages.
- Fix GPU selection and ComboBox refresh issues when language changes by
decoupling display text from the underlying GpuOption value.

Enhancements:
- Rework localization handling so many settings and task-related
ViewModels subscribe to a central LanguageChanged event and refresh
cached display strings in-place instead of requiring restarts.
- Refine Pallas language "drunk/hangover" easter egg flow to avoid
forced restarts, use internal language switching helpers, and show
non-blocking dialogs on start and exit.
- Unify various dialog controls (text input, timed text, and new
EasterEggDialog) under renamed view classes and updated usages in
TaskQueue and other screens.
- Improve StageManager and StageInfo to store localization keys
alongside values, enabling dynamic refresh of stage names, tips, and
mini-game entries on language change.
- Modernize several settings lists (connection configs, client types,
drones usage, infrast modes, update channels, roguelike themes,
reclamation modes, fight series/reset modes, etc.) to use
LocalizedObservableList for cleaner, hot-swappable localization.
- Tighten timer, copilot, toolbox, notify icon, post-action, and root
view behaviors around language changes and startup flows, including
automatic title and tooltip refreshes.
- Add structured release date mapping for achievement phases to support
more informative achievement UI.
- Minor refactors to logging scopes and miscellaneous UI bindings,
including non-blocking stage/date updates after language changes and
cleanup of obsolete configuration keys.

Chores:
- Update multiple game resource JSON files (stages, tasks, item indexes,
tile positions, version manifests) for the latest content and stage
layouts, including new crisis v2 tile position data.

</details>
2026-06-27 13:53:51 +08:00
Aliothmoon
72c68bd1e0 chore: 补点注释 (#17205) 2026-06-27 13:53:32 +08:00
uye
19e6e1d70b fix. 复制任务时保留原任务的启用状态 2026-06-27 13:36:27 +08:00
uye
2cad3baf92 docs: changelog 2026-06-27 13:28:12 +08:00
uye
5d5b66a1ef ai: 优化 changelog skill,changelog 生成改用 ai 生成 2026-06-27 13:28:03 +08:00
uye
cdbf31debb feat: 增加 DWM 被禁用与重复拖动解决方案提示 2026-06-27 12:37:39 +08:00
github-actions[bot]
0239409ef4 chore: Auto Update Game Resources - 2026-06-26
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28232398301

[skip changelog]
2026-06-26 10:29:16 +00:00
github-actions[bot]
8927eb7a15 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28203974590
[skip changelog]
2026-06-25 22:17:06 +00:00
github-actions[bot]
b81e1d49b5 chore: Auto Update Game Resources - 2026-06-25
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28157219377

[skip changelog]
2026-06-25 08:29:20 +00:00
uye
7a92d322d8 refactor: 移动 TextDialogWithTimerUserControl 到 Dialogs 文件夹并统一命名
- 将 TextDialogWithTimerUserControl 从 Views/UserControl/ 移至 Views/Dialogs/,重命名为 TextWithTimerDialogView
- 将 TextDialogUserControl 重命名为 TextDialogView,统一 Dialogs 文件夹内的 *DialogView 命名约定
- 同步更新命名空间、x:Class、copyright 注释及 TaskQueueViewModel 中的引用
2026-06-25 15:43:38 +08:00
uye
a36947a8ec chore: 喝酒堂堂复活 2026-06-25 14:13:38 +08:00
uye
eb318012c4 feat: 无痛喝酒 2026-06-25 14:11:46 +08:00
uye
d17249649e feat: 不重启切换语言 (#17183)
* feat: 不重启切换语言

* feat: 部分文本与列表更新

* feat: 右键图标菜单、关卡提示、牛杂、关卡列表、指定材料

* chore: Stage 刷新

* feat: LocalizedList

* chore: SettingsViewModel

* chore: ConnectSettingsUserControlModel

* chore: GameSettingsUserControlModel

* chore: VersionUpdateSettingsUserControlModel

* chore: InfrastSettingsUserControlModel

* chore: RecruitSettingsUserControlModel

* chore: RoguelikeSettingsUserControlModel

* chore: UserDataUpdateSettingsUserControlModel

* chore: LastSyncTime

* chore: 设置指引重叠

* chore: PerformanceUserControlModel

* chore: GPU 绑定

* chore: FightSettingsUserControlModel

* chore: GuiSettingsUserControlModel

* style: FightSettingsUserControlModel

* chore: ReclamationSettingsUserControlModel

* feat: 干员识别/仓库识别 支持动态切换语言

* feat: 干员名称显示语言

* perf: 优化 IsLocalizationDictionary 判断

* style: 空行

* chore: UnInitializePropertyDependencies / GC.SuppressFinalize(this);

* chore: PropertyDependsOnUtility 增加锁

* chore: 移除未使用 using

* chore: 更新时序

* chore: 在 UI 线程 Reload

* fix: OperNameLanguageModeList 去重

* chore: LocalizedList -> LocalizedObservableList

* fix: 修复 TaskItemViewModel.Name 绕过 _name 字段导致 SetAndNotify 变更检测失效

getter 改为复用 BaseTask.NameOrTaskType(与原构造参数语义一致),
移除已成为死代码的 _name 字段;setter 写配置后显式 NotifyOfPropertyChange,
确保外部重命名后 UI 能收到通知。

* fix: UnInitializePropertyDependencies 清理孤儿外部实例避免处理器累积

当某 externalInstance 的 propMap 完全清空后,移除该键并反订阅其
externalHandler,避免 TaskItemViewModel 反复创建/销毁时 _externalHandlers
外壳持续累积(虽不产生错误通知,但持有空字典浪费内存)。

* rft: 提取 RefreshInverseModeText 消除 InverseMode 自赋值 hack

原 LanguageChanged 回调用 InverseMode = InverseMode 触发 setter 内的
本地化文本刷新,依赖 SetAndNotify 不 early-return 的副作用,语义脆弱。
提取 RefreshInverseModeText() 方法供 setter 和回调共用。

* rft: UseStoneString 改用 SuppressMessage 替代 #pragma

将 #pragma warning disable CA1822 改为 [SuppressMessage],
并补充 Justification 说明必须保持实例成员以支持 PropertyDependsOn 反射触发通知。

* docs: 补充 LanguageChanged 订阅单例约定注释

在 LanguageChanged 事件声明处补充订阅约定(必须是 IoC 单例,
非单例需 Dispose 时清理跨实例依赖);在 ToolboxViewModel(Stylet IoC 单例)
订阅处标注无需取消订阅。

* rft: 删除 TaskItemViewModel 构造函数的 name 参数

Name getter 已改为从配置动态读取 NameOrTaskType,构造时传入的 name
不再有任何作用,删除该参数及三处调用点的实参。

* chore: 简化绑定

* fix: 修复语言切换时 PropertyDependsOn 回调读到旧字典的时序竞态

原先 Language setter 里先 SetAndNotify 再 Reload,导致同步通知链中
PropertyDependsOn(Language) 回调执行时 ResourceDictionary 尚未替换,
LocalizationHelper.GetString 拿到的是旧语言文本。

调整为先 Reload(内部先替换字典再触发 LanguageChanged),再更新
_language 字段并触发 PropertyChanged,确保两条通知链路
(LanguageChanged 订阅者 + PropertyDependsOn 回调)读到的都是新语言。

* refactor: LocalizedObservableList 内部支持增删,消除 Zip 脱节隐患

将 _entries 从 readonly array 改为可变 List,新增 Add/Remove/RemoveAt/
Insert/Clear 方法同步维护 _entries 与 Items,确保两者始终一一对应。

此前 RefreshLocalization 用 Zip 遍历,对运行时动态添加的项(如
OperNameLanguageForce)不会刷新 Display,需调用方手动补偿。现在动态项
也纳入 _entries,RefreshLocalization 改为索引遍历,覆盖全部条目。

同步修正类头 XML 注释:去掉不实的 INotifyPropertyChanged 声明与
'转发 item 属性变更'描述(item 的 PropertyChanged 由 WPF 直接监听)。

调用方 GuiSettingsUserControlModel 改用 Add/Remove API,移除
RefreshLocalization 里的手动补偿逻辑。

* fix: 任务排序/增删后 Index 变化时自动刷新 Name

TaskItemViewModel.Name 的 getter 依赖 Index 从配置读取,但此前只声明了
对 Language 的跨实例依赖,拖拽排序/增删任务导致 Index 变化时 Name 不会被
通知刷新,自定义名任务可能短暂显示错位。

将 PropertyDependsOnAttribute 的 AllowMultiple 改为 true,为 Name 额外声明
[PropertyDependsOn(nameof(Index))],使 Index 变化时自动触发 Name 刷新。
Utility 的 GetCustomAttributes 循环已原生支持多 attribute,无需改动。

* chore: 图标 Unloaded 时取消 LanguageChanged 订阅

* fix: Pormpt1/Pormpt2 小提示刷新
2026-06-25 13:14:55 +08:00
uye
d31ca81e83 feat: 常驻关卡备选提示 2026-06-25 10:56:18 +08:00
github-actions[bot]
5bfbd22215 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28130848588
[skip changelog]
2026-06-24 21:31:18 +00:00
github-actions[bot]
9ab5912a4b chore: Auto Update Game Resources - 2026-06-24
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/28126992299

[skip changelog]
2026-06-24 20:20:15 +00:00
Manicsteiner
382f10a58c chore: JP episide new navigation and JieGarden theme recruit 2026-06-24 23:56:21 +08:00
Constrat
295f2073bd chore: EN preload lone trail + fix JieGarden themes 2026-06-24 14:42:17 +02:00
Constrat
821d5fc425 fix: EnterEpisodeNew-Click EN 2026-06-24 14:00:43 +02:00
HX3N
1676cb7de4 chore: KR remove deprecated EnterEpisodeNew 2026-06-24 20:33:55 +09:00
Aliothmoon
efb3c7a567 fix: 部分设备界园树洞是非境识别错误 (#17181) 2026-06-24 10:58:48 +08:00
Aliothmoon
418a4aa0e0 fix: ncnn 对齐 fastdeploy 的 det 缩放与 rec 预处理 (#17182)
* fix: 对齐 OcrPackNcnn det 缩放算法与 fastdeploy

- 小 ROI 下 ceil 直接就爆了,识别会出现问题

* fix: ncnn 对齐 fastdeploy de1通道序/打分/裁剪

* fix: OcrPackNcnn det 无框兜底走整图 rec,尺寸过滤对齐 fastdeploy
2026-06-24 10:58:22 +08:00
uye
cab1ca8cca chore: dlc 还是放后面,毕竟钥匙扣已经这么做了)
[skip changelog]
2026-06-23 15:52:33 +08:00
Manicsteiner
130164e925 chore: JP ocr edits 2026-06-23 13:24:42 +08:00
uye
85024b6141 rft: 优化成就 DLC 标识显示效果与提示,增加对应 DLC 上线时间提示 2026-06-23 12:24:02 +08:00
github-actions[bot]
aa47abfacb chore: Auto Templates Optimization
Triggered by fa8d0f8344

[skip changelog]
2026-06-23 02:04:54 +00:00
Manicsteiner
fa8d0f8344 chore: JP LoneTrail theme and JieGarden theme update (#17175)
主题预载
界园主题突然大改了一遍,其他几个免费主题好像没问题,付费主题等issue和贴图()
2026-06-23 10:04:32 +08:00
HX3N
95a3fa6236 fix: expanded KR training roi for wrapped names 2026-06-23 10:49:39 +09:00
github-actions[bot]
cf61b5b6e4 chore: Auto Templates Optimization
Triggered by 20056e52b9

[skip changelog]
2026-06-22 23:41:02 +00:00
HX3N
20056e52b9 chore: KR LoneTrail theme 2026-06-23 08:07:32 +09:00
HX3N
746daa27cf chore: KR ocr edits 2026-06-23 08:07:31 +09:00
Constrat
c3dffe9929 fix: future alter operators EN 2026-06-22 18:34:10 +02:00
github-actions[bot]
94e0addc9a chore: Auto Update Game Resources - 2026-06-22
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27953171369

[skip changelog]
2026-06-22 12:38:44 +00:00
github-actions[bot]
1083ee342e chore: Auto Update Game Resources - 2026-06-22
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27933177568

[skip changelog]
2026-06-22 06:11:46 +00:00
uye
f9dbbb36b9 Release v6.13.0-beta.2 (#17170)
## Summary by Sourcery

错误修复:
- 在 `MultiCopilotTaskPlugin` 中遍历导航重试循环时,使用正确的最大重试配置。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Bug Fixes:
- Use the correct maximum retry configuration when iterating the
navigation retry loop in MultiCopilotTaskPlugin.

</details>
2026-06-22 12:36:59 +08:00
uye
1c4aba28fd docs: Bump version to v6.13.0-beta.2 in CHANGELOG
Updated changelog to reflect version bump to v6.13.0-beta.2 and added fix details.
2026-06-22 12:34:42 +08:00
status102
ba47dd16cf fix: 猪猪 2026-06-22 12:24:31 +08:00
uye
db6bb9c4e6 Release v6.13.0-beta.1 (#17131)
## Summary by Sourcery

为 v6.13.0-beta.1 做准备,加入基于 Android NCNN 的 OCR、Webhook 预设模板,以及多项稳定性与 CI
改进。

New Features:
- 为 Android 构建引入基于 NCNN 的 OCR 实现,同时在其他平台继续使用 FastDeploy OCR。
- 在外部通知设置中新增可选择的 Webhook 预设模板,包括 MeoW 预设。
- 支持「仅配置」的 6 星自动公招确认,并固定公招时间为 9:00。

Bug Fixes:
- 确保 Maa API 更新检查能够遵循全局更新代理配置。
- 修复任务停止与 UI 重置逻辑,避免竞争条件,并确保超时能强制恢复 UI。
- 当在连接过程中已发出停止请求时,阻止协助器(copilot)继续启动。
- 当 Windows 无法显示系统 Toast 通知时,避免显示应用内 Toast 日志,而是改用 Growl 作为回退方案。

Enhancements:
- 重构 OCR 包实现,在其背后使用 pimpl 隔离平台相关的后端实现。
- 调整多协助器导航重试逻辑,更好地尊重已配置的重试次数。
- 改进手动停止行为,将 Core 停止处理和任务结束脚本集中到统一逻辑中。
- 在 Toast 通知失败的情况下,始终使用 Growl 显示失败消息,而不是写入任务日志。
- 刷新明日方舟的关卡方块、关卡、肉鸽和任务元数据资源,以支持最新活动。
- 收紧公招时间处理,将 5 星 / 6 星公招时间固定为 9:00,并打通序列化和工具箱相关逻辑。
- 更新 MaaDeps 下载脚本以拉取 v2.13.1,并使依赖安装脚本路径与当前目录结构保持一致。

Build:
- 在 MaaCore 的 CMake 中拆分 OCR 实现选择:桌面端使用 FastDeploy,Android 使用
NCNN,并相应调整链接依赖。
- 将 Avalonia CI 触发条件限制为相关源码与构建文件,并将默认推送分支切换为 dev-v2。

CI:
- 将各工作流中对 actions/checkout 的使用升级到 v7。
- 在资源同步与模板优化工作流中,将 ad-m/github-push-action 固定到 v1.3.0。
- 将 softprops/action-gh-release 升级到 v3.0.1,用于发布 GitHub Release。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare v6.13.0-beta.1 by adding Android NCNN-based OCR, webhook preset
templates, and various stability and CI improvements.

New Features:
- Introduce NCNN-based OCR implementation for Android builds while
keeping FastDeploy OCR for other platforms.
- Add selectable preset webhook templates, including a MeoW preset, in
external notification settings.
- Support configuration-only 6-star auto-recruit confirmation with fixed
9:00 recruit time.

Bug Fixes:
- Ensure Maa API update checks respect the global update proxy
configuration.
- Fix task stopping and UI reset logic to avoid race conditions and
ensure timeouts force UI recovery.
- Prevent copilot start from proceeding if a stop request was issued
during connection.
- Avoid showing in-app toast logs when Windows toast notifications are
unavailable, instead using Growl fallback.

Enhancements:
- Refactor OCR pack implementation behind a pimpl to separate
platform-specific backends.
- Adjust multi-copilot navigation retry logic to better respect
configured retry counts.
- Improve manual stop behavior to centralize Core stop handling and
end-of-task scripts.
- Always use Growl for toast notification failure messages instead of
task log entries.
- Refresh Arknights tile, stage, roguelike, and task metadata resources
for new events.
- Tighten recruit time handling by fixing 5-star/6-star recruit times to
9:00 and wiring them through serialization and toolbox.
- Update MaaDeps downloader script to pull v2.13.1 and align dependency
setup script paths with current layout.

Build:
- Split OCR implementation selection in MaaCore CMake to use FastDeploy
on desktop and NCNN on Android, adjusting link dependencies accordingly.
- Restrict Avalonia CI triggers to relevant source and build files and
switch its default push branch to dev-v2.

CI:
- Upgrade actions/checkout usage across workflows to v7.
- Pin ad-m/github-push-action to v1.3.0 in resource sync and template
optimization workflows.
- Bump softprops/action-gh-release to v3.0.1 for GitHub release
publishing.

</details>

新功能:
- 为外部通知配置引入内置 webhook 预设模板,包括 MeoW 预设。
- 在外部通知设置界面中开放预设 webhook 的选择,并提供本地化显示名称。

错误修复:
- 在通过 Maa API 检查更新时,使用全局更新代理配置。

优化改进:
- 刷新《明日方舟》的地块位置、关卡、肉鸽和任务元数据资源,并提升资源版本以适配新一批活动。

CI:
- 更新 GitHub workflow,使用 `ad-m/github-push-action` v1.3.0 进行自动推送。

日常维护:
- 调整依赖安装批处理脚本的路径/名称,以与当前工具布局保持一致。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

为 v6.13.0-beta.1 做准备,加入基于 Android NCNN 的 OCR、Webhook 预设模板,以及多项稳定性与 CI
改进。

New Features:
- 为 Android 构建引入基于 NCNN 的 OCR 实现,同时在其他平台继续使用 FastDeploy OCR。
- 在外部通知设置中新增可选择的 Webhook 预设模板,包括 MeoW 预设。
- 支持「仅配置」的 6 星自动公招确认,并固定公招时间为 9:00。

Bug Fixes:
- 确保 Maa API 更新检查能够遵循全局更新代理配置。
- 修复任务停止与 UI 重置逻辑,避免竞争条件,并确保超时能强制恢复 UI。
- 当在连接过程中已发出停止请求时,阻止协助器(copilot)继续启动。
- 当 Windows 无法显示系统 Toast 通知时,避免显示应用内 Toast 日志,而是改用 Growl 作为回退方案。

Enhancements:
- 重构 OCR 包实现,在其背后使用 pimpl 隔离平台相关的后端实现。
- 调整多协助器导航重试逻辑,更好地尊重已配置的重试次数。
- 改进手动停止行为,将 Core 停止处理和任务结束脚本集中到统一逻辑中。
- 在 Toast 通知失败的情况下,始终使用 Growl 显示失败消息,而不是写入任务日志。
- 刷新明日方舟的关卡方块、关卡、肉鸽和任务元数据资源,以支持最新活动。
- 收紧公招时间处理,将 5 星 / 6 星公招时间固定为 9:00,并打通序列化和工具箱相关逻辑。
- 更新 MaaDeps 下载脚本以拉取 v2.13.1,并使依赖安装脚本路径与当前目录结构保持一致。

Build:
- 在 MaaCore 的 CMake 中拆分 OCR 实现选择:桌面端使用 FastDeploy,Android 使用
NCNN,并相应调整链接依赖。
- 将 Avalonia CI 触发条件限制为相关源码与构建文件,并将默认推送分支切换为 dev-v2。

CI:
- 将各工作流中对 actions/checkout 的使用升级到 v7。
- 在资源同步与模板优化工作流中,将 ad-m/github-push-action 固定到 v1.3.0。
- 将 softprops/action-gh-release 升级到 v3.0.1,用于发布 GitHub Release。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare v6.13.0-beta.1 by adding Android NCNN-based OCR, webhook preset
templates, and various stability and CI improvements.

New Features:
- Introduce NCNN-based OCR implementation for Android builds while
keeping FastDeploy OCR for other platforms.
- Add selectable preset webhook templates, including a MeoW preset, in
external notification settings.
- Support configuration-only 6-star auto-recruit confirmation with fixed
9:00 recruit time.

Bug Fixes:
- Ensure Maa API update checks respect the global update proxy
configuration.
- Fix task stopping and UI reset logic to avoid race conditions and
ensure timeouts force UI recovery.
- Prevent copilot start from proceeding if a stop request was issued
during connection.
- Avoid showing in-app toast logs when Windows toast notifications are
unavailable, instead using Growl fallback.

Enhancements:
- Refactor OCR pack implementation behind a pimpl to separate
platform-specific backends.
- Adjust multi-copilot navigation retry logic to better respect
configured retry counts.
- Improve manual stop behavior to centralize Core stop handling and
end-of-task scripts.
- Always use Growl for toast notification failure messages instead of
task log entries.
- Refresh Arknights tile, stage, roguelike, and task metadata resources
for new events.
- Tighten recruit time handling by fixing 5-star/6-star recruit times to
9:00 and wiring them through serialization and toolbox.
- Update MaaDeps downloader script to pull v2.13.1 and align dependency
setup script paths with current layout.

Build:
- Split OCR implementation selection in MaaCore CMake to use FastDeploy
on desktop and NCNN on Android, adjusting link dependencies accordingly.
- Restrict Avalonia CI triggers to relevant source and build files and
switch its default push branch to dev-v2.

CI:
- Upgrade actions/checkout usage across workflows to v7.
- Pin ad-m/github-push-action to v1.3.0 in resource sync and template
optimization workflows.
- Bump softprops/action-gh-release to v3.0.1 for GitHub release
publishing.

</details>

</details>
2026-06-21 17:07:07 +08:00
uye
349a0bf730 docs: changelog 2026-06-21 16:47:41 +08:00
uye
e2400684bb chore: 通知不可用时记录日志 2026-06-21 16:46:15 +08:00
uye
6cec1e9ced chore: 移除未使用变量 2026-06-21 16:18:38 +08:00
uye
d821607983 chore: copilot stop 改为 Task 2026-06-21 16:18:37 +08:00
Status102
8f860635aa fix: 错误短路 2026-06-21 16:05:40 +08:00
uye
222c853263 rft: 无法显示系统通知时回退到软件内通知,启动时日志中的通知不可用提示改为 growl 提示 (#17165) 2026-06-21 15:43:34 +08:00
dependabot[bot]
8276849f1a ci:将 /.github/workflows 中的 github-actions 组更新 2 次 (#17163)
Bumps the github-actions group in /.github/workflows with 2 updates: [actions/checkout](https://github.com/actions/checkout) and [softprops/action-gh-release](https://github.com/softprops/action-gh-release).


Updates `actions/checkout` from 6 to 7
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

Updates `softprops/action-gh-release` from 3.0.0 to 3.0.1
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: softprops/action-gh-release
  dependency-version: 3.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-20 23:08:27 +08:00
uye
f24c0e237a feat: 新增可通过手动修改配置文件开启 6 星自动公招,将是否招募和招募时间选项移入常规设置 (#17154) 2026-06-20 16:46:05 +08:00
Halo
e04e656f45 修复MAAUnified CI 选错ref的问题 (#17143)
* ci: checkout PR head for MAAUnified debug builds

* fix(Avalonia): 删除倒反天罡的对主仓CI的相关测试
2026-06-19 17:22:15 +08:00
uye
9104f1a06a chore: 调整日志超时提示 2026-06-19 17:08:36 +08:00
github-actions[bot]
9344e38fec chore: Auto Templates Optimization
Triggered by d2cb0fd435

[skip changelog]
2026-06-19 05:59:02 +00:00
HX3N
d2cb0fd435 chore: YostarKR crop JieGarden@Roguelike@StartAction.png to improve match score 2026-06-19 14:55:29 +09:00
HX3N
645b86babd fix: YostarKR correct ClickChapterNewDefaultProgress roi
Yostar changed the UI layout
2026-06-19 13:57:58 +09:00
github-actions[bot]
70a3a5a6eb feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27723628023
[skip changelog]
2026-06-17 22:24:57 +00:00
github-actions[bot]
6b7ec43006 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27721405857
[skip changelog]
2026-06-17 21:41:25 +00:00
github-actions[bot]
3578c255be chore: Auto Update Game Resources - 2026-06-17
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27710873810

[skip changelog]
2026-06-17 18:29:27 +00:00
status102
0d66797b34 fix: 漏了 2026-06-17 18:21:06 +08:00
Aliothmoon
9097d4e1c1 feat: Android OCR 推理使用 NCNN (#17133) 2026-06-17 16:56:03 +08:00
uye
0f4497da86 rft: 统一停止逻辑 (#17087)
* rft: 统一停止逻辑

* chore: 连接时停止脚本
2026-06-17 15:02:24 +08:00
Manicsteiner
ded0682bcc chore: Yostar SSS#10 极寒 (#17137) 2026-06-17 14:58:52 +08:00
Manicsteiner
8c560b8bc6 ci: 优化Avalonia构建工作流触发条件 (#17139)
- push 触发改为 dev-v2 分支。
 - 不再在仅有 resources 更改时触发。
 - 新增该文件本身和cmake、3rdparty触发条件,不再在仅md文件更改时触发,与 ci.yml 保持一致。

~另外这玩意失败概率有点高啊~

## 由 Sourcery 提供的摘要

调整 Avalonia CI 工作流的触发条件,以更好地匹配相关的源码变更和分支使用情况。

CI:
- 将 Avalonia CI 的 push 触发分支从 `dev` 限制为 `dev-v2`。
- 当仅有 Markdown 或资源文件发生变更时跳过运行;同时确保对工作流文件、CMake、第三方依赖(3rdparty
includes)以及核心源码路径的变更仍会触发构建。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Adjust Avalonia CI workflow triggers to better match relevant source
changes and branch usage.

CI:
- Limit Avalonia CI push triggers to the dev-v2 branch instead of dev.
- Exclude runs when only markdown or resource files change while
ensuring the workflow, CMake, 3rdparty includes, and core source paths
still trigger builds.

</details>
2026-06-17 14:57:42 +08:00
status102
0b281e6ff6 fix: 自动战斗导航retry异常, 跳过作业 2026-06-17 14:24:55 +08:00
github-actions[bot]
9f831564be feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27652374477
[skip changelog]
2026-06-16 22:30:10 +00:00
status102
3b1eb29e20 chore: 怪猎一期复刻 CF-EX-8, CF-S-1 view1参数 2026-06-15 20:11:45 +08:00
status102
41dfee2d92 fix: HandleUpdateFromMaaApi 未能遵循正确的代理设置 2026-06-15 20:09:35 +08:00
uye
a2d1cd93a2 chore: "text": ["苍暮", "山", "地"]
[skip changelog]
2026-06-15 18:27:59 +08:00
github-actions[bot]
7946a61441 chore: Auto Update Game Resources - 2026-06-15
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27536955354

[skip changelog]
2026-06-15 09:30:35 +00:00
SherkeyXD
110baa4fdf fix: 修正落叶落叶逐火入口OCR文本 2026-06-15 17:30:23 +08:00
uye
b99c07b234 chore: 移除依赖库安装的提权操作 2026-06-15 17:13:45 +08:00
SherkeyXD
f3e8070e1d feat: 添加落叶逐火复刻入口任务 2026-06-15 17:01:50 +08:00
Saratoga-Official
4034bc58e4 fix: 肉鸽战斗结束后招募误入StartExplore
fix #17120
2026-06-15 12:38:20 +08:00
github-actions[bot]
0dde389e34 chore: Auto Update Game Resources - 2026-06-15
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27521713212

[skip changelog]
2026-06-15 03:12:52 +00:00
Saratoga-Official
3f18299322 fix: 水月大海的遗产和狗眼婆娑事件名识别错误 2026-06-15 11:07:41 +08:00
Saratoga-Official
e47d6a56a3 fix: GetDrop增加LoadingText等待
fix #17118
2026-06-15 10:59:14 +08:00
Saratoga-Official
d74fa22fb6 fix: 修复CloseEvent和CloseCollection同时出现导致的问题
fix #17121
2026-06-15 10:36:12 +08:00
github-actions[bot]
d0fee36c76 chore: Auto Update Game Resources - 2026-06-14
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27511123959

[skip changelog]
2026-06-14 20:31:01 +00:00
AnnAngela
4af887cd0f ci: Update GitHub push action version comment in workflow (#17124) 2026-06-14 23:08:04 +08:00
dependabot[bot]
043b78e19f ci: bump ad-m/github-push-action from d30dc2d070765d7e509df00c34c5fa2dd636ff74 to 881a6320fdb16eb5318c5054f31c218aec2b324c in /.github/workflows in the github-actions group across 1 directory (#16934)
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-14 23:02:55 +08:00
pboymt
e02f75adea feat: Custom Webhook 新增预置模板功能 (#17081)
* feat: Custom Webhook 新增预置模板功能

为 Custom Webhook 添加预置模板下拉框,内置 MeoW 模板。
选中模板后自动填入 URL/Headers/Body,用户手动替换占位符。

- 新增 WebhookPresetTemplate 模型类及 BuiltInTemplates 静态列表
- 新增预置模板 ComboBox 及 tooltip 提示
- 选中模板时自动填入并持久化 URL/Headers/Body
- 新增 4 条本地化 key(5 种语言)

* fix: 处理 Code Review 反馈

- WebhookPresetTemplate.BuiltInTemplates 改为 IReadOnlyList 防止外部修改
- 切换回自定义时不再清空字段,保留用户已编辑内容

* chore: 移除 MeoW 模板中不需要的 Headers 配置

* feat: 使用尖括号标识用户需替换的占位符,移除多余的 UI 通知

- WebhookPresetTemplate URL 中的 {nickname} 改为 <nickname>,
  以区别于系统自动替换的 {title}/{content}/{time}
- 移除 SelectedPresetTemplateId 中多余的 NotifyOfPropertyChange 调用
  (属性 setter 已通过 SetAndNotify 自动通知 UI 更新)
2026-06-14 20:06:21 +08:00
github-actions[bot]
f6aa5b4797 chore: Auto Update Game Resources - 2026-06-14
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27496235398

[skip changelog]
2026-06-14 10:40:16 +00:00
HY
578d23e6ae chore: 調整繁中服 "CharsNameOcrReplace" 部分內容 (#17113) 2026-06-14 12:37:27 +02:00
uye
ac38ea9e43 Release v6.12.2 (#17109)
## Summary by Sourcery

改进 Windows 更新程序的鲁棒性、实例协调机制以及 CI/发布工作流程,以支持 v6.12.2 版本发布。

New Features:
- 允许 Windows 更新程序接收一个可选的命名互斥量参数,在更新期间阻止新的应用实例启动,并与 WPF 启动器使用的互斥量进行协调。
- 在 Windows 更新应用程序失败时,自动回滚已备份的文件。

Bug Fixes:
- 通过重试、强制删除和原子安装策略加固 Windows 更新程序的文件操作,以更好地处理被锁定或正在使用的文件。
- 确保 POSIX 命令运行器在无法在给定超时时间内建立套接字连接时,会超时并干净地杀死子进程。
- 在应用新更新之前,清理上一次中断更新遗留的待删除文件。

Enhancements:
- 调整备份和回收逻辑,在回收站操作失败时回退到强制删除。
- 改进关于 MuMu 渲染器库加载路径的日志记录,以提升诊断能力。
- 优化 CI 中并发组(concurrency group)的处理,并保护某些工作流不在 fork 的拉取请求上运行。
- 重构 WPF 引导程序中的互斥量/实例键处理逻辑,以便其他组件(如更新程序)复用。
- 将 Windows CI 和打包工作流切换为使用 `windows-2025-vs2026` 运行器镜像。

CI:
- 通过使用显式环境变量、适当引用(quoting),并将执行限制在非 fork PR 上,加固发布准备和 PR 自动打标签工作流。
- 通过环境变量对标签/更新日志生成以及标签合并步骤进行参数化,使 GitHub Actions 脚本更加健壮。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Improve Windows updater robustness, instance coordination, and
CI/release workflows for the v6.12.2 release.

New Features:
- Allow the Windows updater to take an optional named mutex parameter to
block new app instances during updates and coordinate with the WPF
launcher mutex.
- Add automatic rollback of backed-up files when the Windows update
application fails.

Bug Fixes:
- Harden Windows updater file operations with retry, force-delete, and
atomic install strategies to better handle locked or in-use files.
- Ensure the POSIX command runner times out and cleanly kills child
processes if a socket connection cannot be established within the given
timeout.
- Clean up stale pending-delete files from previous interrupted updates
before applying a new update.

Enhancements:
- Adjust backup and recycle logic to fall back to force deletion when
recycle bin operations fail.
- Improve logging around MuMu renderer library loading paths for better
diagnostics.
- Refine concurrency group handling in CI and guard certain workflows
from running on forked pull requests.
- Refactor mutex/instance-key handling in the WPF bootstrapper for reuse
by other components like the updater.
- Switch Windows CI and packaging workflows to the windows-2025-vs2026
runner image.

CI:
- Harden release-preparation and PR auto-tag workflows by using explicit
environment variables, quoting, and restricting execution to non-fork
PRs.
- Parameterize tag/changelog generation and tag merge steps via
environment variables for more robust GitHub Actions scripting.

</details>
2026-06-14 17:27:06 +08:00
uye
5bdf6b9320 docs: changelog 2026-06-14 17:25:25 +08:00
uye
cafc394605 Merge commit from fork
- release-preparation.yml: bind PR_TITLE/PR_URL/TAG_NAME via env instead of inlining expressions in run blocks; add fork guard to both jobs
- pr-auto-tag.yml: bind EVENT_NAME/PR_TITLE/INPUT_TAG/TAG_NAME via env; replace bash inline expression with [ ] test
- ci.yml: bind CONCURRENCY_GROUP via env instead of inlining github.head_ref in run block
2026-06-14 13:05:13 +08:00
Saratoga-Official
0d2e18a476 chore: 更新肉鸽招募干员
fix #17094
2026-06-13 15:58:22 +08:00
Saratoga-Official
1dfac534d0 fix: 界园移时换物放弃探索
fix #17055
2026-06-13 14:14:06 +08:00
github-actions[bot]
f7262208f0 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27446261928
[skip changelog]
2026-06-12 22:18:01 +00:00
status102
99167c3298 fix: 水月肉鸽事件DiceConfirm后事件不处理 2026-06-12 19:57:13 +08:00
status102
c5f51f56fe perf: 初始化期TaskQueue滑动宽限 2026-06-12 19:00:43 +08:00
soundofautumn
38527ffe08 build: use vs2026 in publish (#15806)
* build: publish remove Visual Studio 17 2022

* build: test vs2026

* fix: 不小心删多了

* fix: nightly 应该也要改

* fix: 这个好像也得改?
2026-06-12 15:45:24 +08:00
uye
21a8d170d7 chore: 移除未使用的变量 2026-06-12 14:13:39 +08:00
soundofautumn
208d28d6fa feat: MAA updater 增加文件被占用时增加重试、互斥量协调与回滚机制 (#16703)
* feat: updater和maa本体共享一个mutex锁

* feat: updater和maa本体共享一个mutex锁

* feat: 改进MAA updater

* feat: instance key改成mutex name

* fix: unused function
2026-06-12 13:56:32 +08:00
Halo
a73ce8efeb fix: respect timeout while waiting for macOS socket data (#17027)
fix: respect timeout while waiting for POSIX socket data
2026-06-12 01:35:09 +08:00
uye
562ff75c5a chore: 简化 external_renderer_ipc 加载成功的日志 2026-06-12 00:27:03 +08:00
uye
b318e3698f Release v6.12.1 (#17078)
## Summary by Sourcery

调整多协作助手任务中的阶段导航颜色阈值参数和 OCR 调试输出。

Enhancements:
- 在 `MultiCopilotTaskPlugin` 中,用 `special_params` 代替 `bin_threshold`
来配置阶段颜色阈值。
- 将阶段检测的阶段图像预处理从灰度转换为 HSV 颜色空间。
- 扩展 OCR 调试绘制,在分数旁边同时显示识别到的文本。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Adjust stage navigation color thresholding parameters and OCR debugging
output for multi-copilot tasks.

Enhancements:
- Use special_params instead of bin_threshold for stage color threshold
configuration in MultiCopilotTaskPlugin.
- Switch stage image preprocessing from grayscale to HSV color space for
stage detection.
- Extend OCR debug drawing to include recognized text alongside the
score.

</details>
2026-06-11 22:14:54 +08:00
uye
edb9b268e7 docs: changelog 2026-06-11 22:12:12 +08:00
status102
263a84831d fix: 自动战斗导航选错关卡无法重选 2026-06-11 21:09:30 +08:00
status102
e44ccffe0e perf: 不再使用不必要的子任务 2026-06-11 21:09:29 +08:00
uye
d900c20b65 chore: 加两个提前返回 2026-06-11 21:02:20 +08:00
status102
d373e3a094 fix: 多作业模式关卡名复核失效 2026-06-11 20:41:04 +08:00
github-actions[bot]
cf370818e0 chore: Auto Update Game Resources - 2026-06-11
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27343798086

[skip changelog]
2026-06-11 11:33:56 +00:00
Rin
018e4ba38f fix: 处理界园事件内通宝交换后的事件结束页 (#16936)
* fix: 处理界园事件内通宝交换后的事件结束页

* fix: 优化事件内放弃通宝的#next
2026-06-11 17:12:30 +08:00
status102
9b51d03415 fix: 有小猪 2026-06-11 13:10:41 +08:00
status102
54d00e741d perf(core): OCRer DEBUG下m_image_draw绘制增加结果文本 2026-06-11 13:08:39 +08:00
uye
ff47c11d99 Release v6.12.0 (#17074)
* Revert "fix: Potential fix for pull request finding"

This reverts commit 588bfb3778.

* Revert "chore: 删除多余验证"

This reverts commit e208a2f94e.

* chore: Auto Update Game Resources - 2026-06-09

https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27222080798

[skip changelog]

* fix: build warning

* feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27239478748
[skip changelog]

* chore: 还原牛杂 i18n 实现方式

* chore: 阵地足球开始后增加动画延迟,避免点入编队界面

* chore: 足球需要更多的 325

* chore: 调整部署速度

* chore: Auto Update Game Resources - 2026-06-10

https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27265152626

[skip changelog]

* fix(gui): 释放 StartSettings 中未释放的 Process 对象 (#17060)

StartEmulator / RestartAdb / ReconnectByAdb 中 new 出来的 Process 对象在使用后
未被释放,会泄漏进程相关句柄(CA2000)。改为 using 声明,使其在作用域结束时
释放。释放 Process 托管对象只回收本地句柄,不会终止已启动的进程,因此对仿真器
的 fire-and-forget 启动也是安全的。

不改动 catch 兜底里的静态 Process.Start,以及 GetProcesses() 的查询写法。

* chore: OF1把嵯峨换成银灰避免可能打不过

* fix(gui): 修复 MuMu 12 任务完成后无法关闭模拟器 (#17067)

* fix(gui): 修复 MuMu 12 任务完成后无法关闭模拟器

感谢 @lingwateryang 在 issue 中给出的详细分析。

* fix(gui): MuMu 12 关闭模拟器改用 control 命令

旧的 `api -v {index} shutdown_player` 已失效。按 @ABA2396 的 review 意见,本 PR
仅将关闭命令替换为 `control -v {index} shutdown`;调用 MuMu 的接口之后模拟器是否
真正退出由 MuMu 负责,不在 MAA 的处理范围内,故不再附加进程确认与强杀等逻辑。

* chore: 繁中服「雪山降臨1101」活動導航 & 「喀蘭貿易技術研發部」小遊戲 (#17073)

* chore: 繁中服「雪山降臨1101」活動導航

* chore: 喀蘭貿易技術研發部 小遊戲

* feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27299220997
[skip changelog]

* chore: Auto Update Game Resources - 2026-06-10

https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27300017468

[skip changelog]

* docs: changelog

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Zmjjeff7 <2519416535@qq.com>
Co-authored-by: Saratoga-Official <1819530756@qq.com>
Co-authored-by: HY <45387477+momomochi987@users.noreply.github.com>
2026-06-11 03:42:32 +08:00
uye
ec76f93881 docs: changelog 2026-06-11 03:41:14 +08:00
github-actions[bot]
305b67bbb9 chore: Auto Update Game Resources - 2026-06-10
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27300017468

[skip changelog]
2026-06-10 19:15:44 +00:00
github-actions[bot]
e23d910fd7 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27299220997
[skip changelog]
2026-06-10 19:01:50 +00:00
HY
880a1987b6 chore: 繁中服「雪山降臨1101」活動導航 & 「喀蘭貿易技術研發部」小遊戲 (#17073)
* chore: 繁中服「雪山降臨1101」活動導航

* chore: 喀蘭貿易技術研發部 小遊戲
2026-06-11 01:25:52 +08:00
Zmjjeff7
f64a0af6c3 fix(gui): 修复 MuMu 12 任务完成后无法关闭模拟器 (#17067)
* fix(gui): 修复 MuMu 12 任务完成后无法关闭模拟器

感谢 @lingwateryang 在 issue 中给出的详细分析。

* fix(gui): MuMu 12 关闭模拟器改用 control 命令

旧的 `api -v {index} shutdown_player` 已失效。按 @ABA2396 的 review 意见,本 PR
仅将关闭命令替换为 `control -v {index} shutdown`;调用 MuMu 的接口之后模拟器是否
真正退出由 MuMu 负责,不在 MAA 的处理范围内,故不再附加进程确认与强杀等逻辑。
2026-06-11 01:14:05 +08:00
Saratoga-Official
28b6264a3c chore: OF1把嵯峨换成银灰避免可能打不过 2026-06-10 22:26:25 +08:00
Zmjjeff7
79a8a9bcca fix(gui): 释放 StartSettings 中未释放的 Process 对象 (#17060)
StartEmulator / RestartAdb / ReconnectByAdb 中 new 出来的 Process 对象在使用后
未被释放,会泄漏进程相关句柄(CA2000)。改为 using 声明,使其在作用域结束时
释放。释放 Process 托管对象只回收本地句柄,不会终止已启动的进程,因此对仿真器
的 fire-and-forget 启动也是安全的。

不改动 catch 兜底里的静态 Process.Start,以及 GetProcesses() 的查询写法。
2026-06-10 20:19:39 +08:00
github-actions[bot]
26011dae85 chore: Auto Update Game Resources - 2026-06-10
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27265152626

[skip changelog]
2026-06-10 08:58:55 +00:00
uye
be1087846b chore: 调整部署速度 2026-06-10 12:02:42 +08:00
uye
127fed5318 chore: 足球需要更多的 325 2026-06-10 11:59:35 +08:00
uye
3a9e059299 chore: 阵地足球开始后增加动画延迟,避免点入编队界面 2026-06-10 11:53:58 +08:00
uye
11c8170e7b chore: 还原牛杂 i18n 实现方式 2026-06-10 11:11:42 +08:00
github-actions[bot]
88bc6533fa feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27239478748
[skip changelog]
2026-06-09 22:17:52 +00:00
uye
4b50961a75 fix: build warning 2026-06-10 01:37:28 +08:00
github-actions[bot]
7d5648fe1a chore: Auto Update Game Resources - 2026-06-09
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27222080798

[skip changelog]
2026-06-09 17:09:13 +00:00
uye
4245829444 Revert "chore: 删除多余验证"
This reverts commit e208a2f94e.
2026-06-10 00:56:33 +08:00
uye
127e84462e Revert "fix: Potential fix for pull request finding"
This reverts commit 588bfb3778.
2026-06-10 00:56:33 +08:00
uye
15d1848e8e Release v6.12.0-beta.2 (#17054)
## Summary by Sourcery

改进交易订单处理、配置保存和小游戏元数据,同时新增一个小游戏任务定义。

新功能:
- 为新的 PF 小游戏添加配置和任务定义。

错误修复:
- 在配置保存时使用带有适当异常处理的信号量,以避免竞态条件,并确保在应用程序释放时可靠地进行最终保存。
- 通过重试、验证和失败上报来保护交易订单变更,减少制造状态不一致的情况。
- 调整小游戏显示和提示解析逻辑,优先采用 API 提供的值,防止本地化文本不正确或缺失。

改进:
- 简化 MuMu 外部渲染器加载的日志输出。
- 精简最终配置保存的日志,以清晰表明成功或失败。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Improve trade order handling, configuration saving, and mini‑game
metadata while adding a new mini‑game task definition.

New Features:
- Add configuration and task definitions for a new PF mini‑game.

Bug Fixes:
- Make configuration saving use a semaphore with proper exception
handling to avoid race conditions and ensure reliable final save on
application release.
- Guard trade order changes with retry, verification, and failure
reporting to reduce inconsistent manufacturing state.
- Adjust mini‑game display and tip resolution to prefer API‑provided
values, preventing incorrect or missing localized text.

Enhancements:
- Simplify MuMu external renderer load logging output.
- Streamline final configuration save logging to clearly indicate
success or failure.

</details>

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

改进交易订单处理、配置保存和小游戏元数据,同时新增一个小游戏任务定义。

新功能:
- 为新的 PF 小游戏添加配置和任务定义。

错误修复:
- 在配置保存时使用带有适当异常处理的信号量,以避免竞态条件,并确保在应用程序释放时可靠地进行最终保存。
- 通过重试、验证和失败上报来保护交易订单变更,减少制造状态不一致的情况。
- 调整小游戏显示和提示解析逻辑,优先采用 API 提供的值,防止本地化文本不正确或缺失。

改进:
- 简化 MuMu 外部渲染器加载的日志输出。
- 精简最终配置保存的日志,以清晰表明成功或失败。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Improve trade order handling, configuration saving, and mini‑game
metadata while adding a new mini‑game task definition.

New Features:
- Add configuration and task definitions for a new PF mini‑game.

Bug Fixes:
- Make configuration saving use a semaphore with proper exception
handling to avoid race conditions and ensure reliable final save on
application release.
- Guard trade order changes with retry, verification, and failure
reporting to reduce inconsistent manufacturing state.
- Adjust mini‑game display and tip resolution to prefer API‑provided
values, preventing incorrect or missing localized text.

Enhancements:
- Simplify MuMu external renderer load logging output.
- Streamline final configuration save logging to clearly indicate
success or failure.

</details>

</details>
2026-06-10 00:46:50 +08:00
uye
e2f4762f2c docs: Update CHANGELOG for v6.12.0-beta.2 release 2026-06-10 00:44:23 +08:00
uye
e208a2f94e chore: 删除多余验证 2026-06-10 00:36:35 +08:00
uye
588bfb3778 fix: Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-10 00:35:07 +08:00
uye
614c344def i18n: 小游戏翻译 2026-06-10 00:31:12 +08:00
github-actions[bot]
68f029cf42 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27220085543
[skip changelog]
2026-06-09 16:20:30 +00:00
github-actions[bot]
c7f9646c52 chore: Auto Templates Optimization
Triggered by da7fabd57e

[skip changelog]
2026-06-09 16:16:34 +00:00
uye
da7fabd57e feat: 添加阵地足球锦标赛小游戏 2026-06-10 00:13:27 +08:00
Status102
357823e0d3 fix: ConfigFactory Save锁统一 (#17052)
## 由 Sourcery 提供的总结

使配置保存使用基于异步和信号量的机制,并确保最终保存时采用一致的锁定方式。

错误修复:
- 通过统一使用基于信号量的 `Save` 实现,防止在保存配置文件时可能出现的竞态条件和不一致的锁定问题。

增强内容:
- 重构配置的 `Save` 方法,使其异步化并使用异步文件 I/O,在需要的地方将调用方更新为以同步方式调用该方法。
- 从配置工厂中移除未使用的 WPF 命名空间导入。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

通过切换为基于信号量的保护机制来统一配置保存时的加锁方式,并将其一致地应用于同步保存和发布时(release-time)的保存。

Bug Fixes:
- 通过使用与其他地方相同的信号量来保护同步保存操作,防止配置保存时的竞态条件。

Enhancements:
- 优化配置保存逻辑,在使用信号量时采用 try/catch/finally 结构,并将保存成功或失败的日志记录逻辑集中化。
- 从配置工厂中移除未使用的 WPF 命名空间引用。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Unify configuration save locking by switching to semaphore-based
protection and apply it consistently to synchronous and release-time
saves.

Bug Fixes:
- Prevent configuration save race conditions by guarding synchronous
saves with the same semaphore used elsewhere.

Enhancements:
- Refine configuration save logic to use try/catch/finally around
semaphore usage and centralize logging of save success or failure.
- Remove an unused WPF namespace import from the configuration factory.

</details>

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

通过切换为基于信号量的保护机制来统一配置保存时的加锁方式,并将其一致地应用于同步保存和发布时(release-time)的保存。

Bug Fixes:
- 通过使用与其他地方相同的信号量来保护同步保存操作,防止配置保存时的竞态条件。

Enhancements:
- 优化配置保存逻辑,在使用信号量时采用 try/catch/finally 结构,并将保存成功或失败的日志记录逻辑集中化。
- 从配置工厂中移除未使用的 WPF 命名空间引用。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Unify configuration save locking by switching to semaphore-based
protection and apply it consistently to synchronous and release-time
saves.

Bug Fixes:
- Prevent configuration save race conditions by guarding synchronous
saves with the same semaphore used elsewhere.

Enhancements:
- Refine configuration save logic to use try/catch/finally around
semaphore usage and centralize logging of save success or failure.
- Remove an unused WPF namespace import from the configuration factory.

</details>

</details>

</details>
2026-06-09 23:42:47 +08:00
Rin
0b3f97dea9 fix: 增加贸易站订单切换重试和产物确认逻辑 (#16954) 2026-06-09 11:25:39 +08:00
github-actions[bot]
605b1518b4 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27168308205
[skip changelog]
2026-06-08 21:34:20 +00:00
uye
f3e4313e3a Release v6.12.0-beta.1 (#17029)
## Summary by Sourcery

更新 copilot、paradox 和任务处理逻辑,以跟踪每个 copilot 的独立 ID、改进阶段导航和 OCR
的稳健性,并通过强类型事件将子任务消息接入 WPF UI,同时为更多任务添加截图插件并改进工具和文档。

New Features:
- 在核心任务和 WPF 模型中支持按 copilot 区分的 ID,以更好地跟踪和操作特定的 copilot 条目。
- 在 WPF 层将子任务消息暴露为强类型事件,并在相关的设置视图模型中进行消费。
- 为 copilot 条目新增独立的视频 URL 字段和存在标记,而不是复用 copilot URL 字段。

Bug Fixes:
- 修复在缺少提交作者或使用 web-flow 时的变更日志生成问题,通过在 PR 或提交中解析作者登录名来解决。
- 通过使用双精度累积来提高掩码模板匹配的数值稳定性,以避免灾难性消除。
- 修正模拟器自动启动逻辑,并在测试模拟器路径时增加校验。

Enhancements:
- 重构 copilot 阶段导航,使用图像分析和 OCR 更可靠地定位和确认阶段,包括重试和对图表的处理。
- 在子任务的额外信息消息中包含 copilot ID,使 UI 能将结果与选中的条目进行关联。
- 为奖励、商店、仓库、战斗启动、基建开始和干员仓库进入等任务添加截图采集插件,以获得更好的诊断能力。
- 通过用事件机制替换静态分发器来简化任务子消息的传播。
- 对文档中的 copilot 协议命名进行轻微措辞调整,并更新若干资源和本地化内容。

Documentation:
- 在主 README 和中文 README 中将 copilot 协议描述由「自动抄作业协议」重命名为「自动战斗协议」。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Update copilot, paradox, and task handling to track per-copilot IDs,
improve stage navigation and OCR robustness, and wire subtask messages
into the WPF UI via strongly typed events, while adding screenshot
plugins to more tasks and refining tooling and docs.

New Features:
- Support per-copilot IDs through core tasks and WPF models to better
track and act on specific copilot entries.
- Expose subtask messages as strongly typed events in the WPF layer and
consume them from relevant settings view models.
- Add a dedicated video URL field and presence flag for copilot entries
instead of overloading the copilot URL.

Bug Fixes:
- Fix changelog generation when commit authors are missing or web-flow
by resolving author logins via PRs or commits.
- Improve masked template matching numerical stability by using double
precision accumulation to avoid catastrophic cancellation.
- Correct emulator auto-start logic and add validation around testing
the emulator path.

Enhancements:
- Rework copilot stage navigation to use image analysis and OCR to
locate and confirm stages more reliably, including retries and plot
handling.
- Include copilot IDs in subtask extra info messages so the UI can
correlate results with selected items.
- Add screenshot capture plugins to award, mall, depot, fight startup,
infrastructure begin, and operator box enter tasks for better
diagnostics.
- Simplify task submessage propagation by replacing the static
dispatcher with an event-based mechanism.
- Minor wording updates in documentation for the copilot protocol naming
and various resource and localization updates.

Documentation:
- Rename the copilot protocol description from "自动抄作业协议" to "自动战斗协议" in
the main and Chinese READMEs.

</details>
2026-06-09 02:53:37 +08:00
uye
12f481706e docs: changelog 2026-06-09 02:43:48 +08:00
uye
07c923c894 docs: changelog 2026-06-09 02:32:50 +08:00
uye
204c9498ac fix: 错误隐藏开局分队与开局干员选项 2026-06-09 02:32:50 +08:00
Status102
f3df45bac4 feat: 理智药使用增加使用中的药品信息 (#17034)
- close #17032
@MaaAssistantArknights/i18n-dev 

## Summary by Sourcery

为理智药剂使用添加详细的报告和 UI 处理,包括按药剂的使用信息,并重构处理该子任务消息的位置。

新特性:
- 在理智药剂使用的 `SubTaskExtraInfo` 消息中加入按药剂的使用详情,并在任务队列日志中展示这些信息。

增强:
- 将药剂使用子任务的处理从 `AsstProxy` 移动到
`FightSettingsUserControlModel`,并扩展以展示当前使用的药剂信息,同时保留成就追踪功能。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Add detailed reporting and UI handling for sanity medicine usage,
including per-medicine information, and refactor where this subtask
message is processed.

New Features:
- Include per-medicine usage details in SubTaskExtraInfo messages for
sanity medicine usage and surface them in the task queue logs.

Enhancements:
- Move medicine usage subtask handling from AsstProxy into
FightSettingsUserControlModel and extend it to show currently used
medicine information while preserving achievement tracking.

</details>
2026-06-09 02:05:32 +08:00
uye
80aa69e710 docs: changelog 2026-06-09 02:04:19 +08:00
status102
9b951cbabf perf: 优化部分情况下自动战斗导航OCR结果中会出现误识别的前缀 2026-06-09 01:54:04 +08:00
uye
edeaeeba49 feat: 支持 mumu 6.0 截图增强路径 (#16994)
* feat: 支持 mumu 6.0 截图增强路径

* chore: Update src/MaaCore/Controller/MumuExtras.cpp

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* fix: 示例路径

---------

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2026-06-09 01:52:02 +08:00
status102
5fd74495a2 chore: rename Wpf ProcSubTaskMsg param name 2026-06-09 01:29:52 +08:00
status102
48f98ad413 perf(wpf): DEBUG 环境下Init时TaskQueue状态限制缓解 2026-06-09 01:29:52 +08:00
github-actions[bot]
ee6d2c9867 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27154116231
[skip changelog]
2026-06-08 17:08:54 +00:00
github-actions[bot]
348825ef33 chore: Auto Update Game Resources - 2026-06-08
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27142132661

[skip changelog]
2026-06-08 13:49:39 +00:00
Constrat
0ade8f5c7c chore: revert all changes to remainingcandleflame IS6 EN 2026-06-08 13:44:13 +02:00
MistEO
b18068c846 ci: user MistEO/codex bot (#17040) 2026-06-08 18:16:04 +08:00
Constrat
5ae734461e fix: EN IS6 bosky updated template 2026-06-08 01:06:58 +02:00
status102
e4c6a740c4 perf 2026-06-07 19:55:09 +08:00
Constrat
b281f258cd fix: EN IS6 bosky text size changed 2026-06-07 12:59:39 +02:00
status102
b488aca991 perf: 2026-06-07 18:12:49 +08:00
status102
85ed1fb38b perf: null check 2026-06-07 18:08:35 +08:00
status102
8e3bfe3783 i18n: ai trans 2026-06-07 18:07:41 +08:00
status102
6e1f9e0fce feat: 理智药使用增加使用中的药品信息 2026-06-07 18:03:17 +08:00
HX3N
b461960985 chore: YostarKR winden colorScale for compatibility 2026-06-07 13:38:37 +09:00
github-actions[bot]
2a8c952b24 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27075305432
[skip changelog]
2026-06-06 22:12:57 +00:00
Status102
353c0ec972 fix: 修正特克诺干员名 OCR 误识别 (#17030)
## 问题与修复
issue 日志中,排序重选阶段 OCR 将“特克诺”识别为“持克诺”,导致后续按精确干员名匹配时无法命中。
在全局干员名 OCR 替换表中加入规则,仅将完整识别结果“持克诺”替换为“特克诺”。

```
15912:[2026-06-06 11:07:15.290][TRC][Px20248][Tx37564] asst::WordOcr [{ text: 褐果, rect: [ 0 (80), 0 (1), 40, 19 ], score: 0.999965 }] by OCR Rec , cost 16 ms
15913:[2026-06-06 11:07:15.290][TRC][Px20248][Tx37564] Proceed [{ text: 褐果, rect: [ 80, 1, 40, 19 ], score: 0.999965 }]
15914:[2026-06-06 11:07:15.290][WRN][Px20248][Tx37564] asst::VisionHelper::correct_rect roi is empty, use whole image
15915:[2026-06-06 11:07:15.307][TRC][Px20248][Tx37564] asst::WordOcr [{ text: 持克诺, rect: [ 0 (60), 0 (1), 60, 19 ], score: 0.881702 }] by OCR Rec , cost 16 ms
15916:[2026-06-06 11:07:15.307][TRC][Px20248][Tx37564] Proceed [{ text: 持克诺, rect: [ 60, 1, 60, 19 ], score: 0.881702 }]
15917:[2026-06-06 11:07:15.307][WRN][Px20248][Tx37564] asst::VisionHelper::correct_rect roi is empty, use whole image
15918:[2026-06-06 11:07:15.354][TRC][Px20248][Tx37564] asst::WordOcr [{ text: 凯尔希思衡托, rect: [ 0 (6), 0 (2), 114, 16 ], score: 0.992512 }] by OCR Rec , cost 45 ms
15919:[2026-06-06 11:07:15.354][TRC][Px20248][Tx37564] Proceed [{ text: 凯尔希·思衡托, rect: [ 6, 2, 114, 16 ], score: 0.992512 }]
```

fixes #17018

## Summary by Sourcery

错误修复:
- 通过在全局替换表中将误识别的“持克诺”映射为“特克诺”,纠正对运营商名称的 OCR 识别。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Bug Fixes:
- Correct OCR recognition of the operator name by mapping the misread
form “持克诺” to “特克诺” in the global replacement table.

</details>
2026-06-07 03:26:53 +08:00
ZiyinLin
4e5a234ece fix: 修正特克诺干员名 OCR 误识别 2026-06-07 00:57:00 +08:00
github-actions[bot]
2abb30e373 chore: Auto Update Game Resources - 2026-06-06
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27067590574

[skip changelog]
2026-06-06 16:28:19 +00:00
uye
0a551b95f9 feat: 切换主题时保存当前画面截图 (#16993)
* feat: 切换主题时保存当前画面截图

* chore: SwitchTheme tasks 定义移到子文件夹中
2026-06-07 00:17:54 +08:00
github-actions[bot]
0b6280483c chore: Auto Templates Optimization
Triggered by 1247e9a308

[skip changelog]
2026-06-05 17:36:16 +00:00
status102
1247e9a308 fix: 绿票商店状态回退错误 2026-06-06 01:35:14 +08:00
status102
0ae5fceb87 fix: 绿票商店2阶段check
Co-authored-by: ZiyinLin <xuanbing1464129430@gmail.com>
2026-06-06 01:35:13 +08:00
github-actions[bot]
8bf6cb5033 chore: Auto Update Game Resources - 2026-06-05
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27023843129

[skip changelog]
2026-06-05 15:27:16 +00:00
github-actions[bot]
1fcf16c234 chore: Auto Update Game Resources - 2026-06-05
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27012894478

[skip changelog]
2026-06-05 11:45:03 +00:00
github-actions[bot]
64eb36e9e8 chore: Auto Update Game Resources - 2026-06-05
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/27001805688

[skip changelog]
2026-06-05 07:32:10 +00:00
github-actions[bot]
24ab0f454a chore: Auto Update Game Resources - 2026-06-05
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26997987540

[skip changelog]
2026-06-05 05:50:51 +00:00
github-actions[bot]
4e2ff1eaef feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26982898553
[skip changelog]
2026-06-04 22:17:05 +00:00
github-actions[bot]
84dcbce43e chore: Auto Update Game Resources - 2026-06-04
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26973477754

[skip changelog]
2026-06-04 19:09:08 +00:00
Rbqwow
61d46678c8 docs: README 自动抄作业 --> 自动战斗 2026-06-05 02:28:37 +08:00
uye
b396d0fb8c feat: 统一 SearchBar 样式 2026-06-05 00:30:10 +08:00
Status102
204542620c rft: 肉鸽弹窗类事件处理重构 CloseCollectionClose (#17005)
* rft: 界园 part

* rft: 水月part

修改后未使用: StageEncounterEnter, CloseEvent, DropsFlag; 仅使用了: ChooseOperFlag, Stages
原始
```
"next": [
    "Mizuki@Roguelike@StageEncounterEnter",
    "Mizuki@Roguelike@Stages#next",
    "Mizuki@Roguelike@DropsFlag",
    "Mizuki@Roguelike@CloseEvent",
    "Mizuki@Roguelike@ChooseOperFlag"
]
```

* rft: 萨米part

* rft: 萨卡兹part

* rft: ChooseOper处的CloseCollectionContinue统一调整至上一级的ChooseOperFlag
2026-06-04 18:21:31 +08:00
status102
fa60340ed0 rft: ChooseOper处的CloseCollectionContinue统一调整至上一级的ChooseOperFlag 2026-06-04 17:05:38 +08:00
status102
8971768c33 rft: 萨卡兹part 2026-06-04 16:58:28 +08:00
status102
8610f11890 rft: 萨米part 2026-06-04 16:12:48 +08:00
status102
e4af06ea9c rft: 水月part
修改后未使用: StageEncounterEnter, CloseEvent, DropsFlag; 仅使用了: ChooseOperFlag, Stages
原始
```
"next": [
    "Mizuki@Roguelike@StageEncounterEnter",
    "Mizuki@Roguelike@Stages#next",
    "Mizuki@Roguelike@DropsFlag",
    "Mizuki@Roguelike@CloseEvent",
    "Mizuki@Roguelike@ChooseOperFlag"
]
```
2026-06-04 15:37:10 +08:00
status102
a132f80158 rft: 界园 part 2026-06-04 15:22:49 +08:00
Status102
bba3f3281a rft: 基于灰度阈值预处理的自动战斗导航, 适配H关及怪猎2期 (#16990)
* rft: 基于灰度阈值的自动战斗导航, 适配H关及怪猎2期

* perf: 清理

* fix: replace

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fix: loule

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-04 09:54:16 +08:00
Status102
4843310bec feat: 悖论模拟支持跳过战斗失败的作业, 自动战斗作业增加对应结构 (#16985)
feat: 悖论模拟支持跳过战斗失败的作业
2026-06-04 09:53:56 +08:00
uye
f31ceb55c9 chore: 自动战斗-视频链接 始终显示
fix #5349
2026-06-04 02:15:32 +08:00
uye
fc89014ab5 feat: 启动设置添加模拟器启动测试按钮,便于测试是否配置成功
fix #10627
2026-06-04 02:02:48 +08:00
Aliothmoon
77612daaeb fix: MaskedCcoeffMatcher 稀疏路径累加器改用 CV_64F 防止大数相减精度损失 (#16983) 2026-06-04 00:54:19 +08:00
Luhan Xiao
e25ee6920e fix: 修复 MaaMacGui changelog 贡献者 mention (#16978)
## 变更内容

修复 MaaMacGui 子仓库 changelog 中贡献者 mention 可能错误的问题。

- associated PR 存在时,优先使用 PR 作者的 `user.login`,并保持 PR title / PR link
逻辑不变。
- 无 associated PR 时,使用 GitHub commit API 的 `author.login` 作为贡献者。
- 无法确认 GitHub login 时,不追加作者 mention。
- 不再使用 git author name / display name / commit author name 生成
`@mention`。
- 不写入主仓库 `contributors` 映射,避免污染主仓库贡献者缓存。
- 过滤空 contributors,避免生成无效 mention。

## 验证

- `python3 -m py_compile
tools/ChangelogGenerator/changelog_generator.py`
- `git diff --cached --check`
- 使用 MaaMacGui 真实历史区间验证:
  - `Add localized strings for relaunch case` 输出 `@ABA2396`
  - `RelaunchAnchor` 输出 `@hguandl`
  - 不再输出 `@uye` / `@hao Guan`
  - PR 记录仍正常输出 `@FireflySentinel` / `@ColdSpellhere`

## Summary by Sourcery

基于 GitHub 元数据而非本地 git 作者信息,改进 MaaMacGui 更新日志中的贡献者提及方式。

Bug 修复:
- 防止空的贡献者账号在生成的更新日志中产生无效的 @提及。
- 确保 MaaMacGui 更新日志使用关联的 PR 作者登录名或提交作者登录名作为贡献者提及,避免错误或缺失的映射。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Improve MaaMacGui changelog contributor mentions based on GitHub
metadata instead of local git author information.

Bug Fixes:
- Prevent empty contributor handles from producing invalid @mentions in
generated changelogs.
- Ensure MaaMacGui changelog uses the associated PR author login or
commit author login as the contributor mention, avoiding incorrect or
missing mappings.

</details>
2026-06-04 00:17:15 +08:00
Weiyou Wang
64ec267180 fix: 降低 PlayCover 下肉鸽部分任务的模版匹配分数阈值 (#16968)
群友在 PlayCover + EN 服的双重 Debuff 下,卡住了。
~~我总感觉日志和截图有些匹配不上~~,但是问题大概就是这么个问题。
已获得正确的日志文件
[asst.log](https://github.com/user-attachments/files/28484412/asst.log)
与截图。
<img width="1280" height="720" alt="2026 06 01-10 34 43 869_raw"
src="https://github.com/user-attachments/assets/34505f24-d327-4af0-b509-29ceba0e1308"
/>

```
[2026-06-01 10:34:43.205][TRC][Px27484][Tx52497] asst::PlayToolsController::screencap | enter
[2026-06-01 10:34:43.255][TRC][Px27484][Tx52497] asst::PlayToolsController::screencap | leave, 50 ms
[2026-06-01 10:34:43.280][TRC][Px27484][Tx52497] match_templ | Roguelike@StageTraderInvestCancel.png [opencv] score: 0.789736 rect: [ 580, 484, 89, 20 ] roi: [ 507, 418, 242, 149 ]
[2026-06-01 10:34:43.280][INF][Px27484][Tx52497] {"class":"asst::ProcessTask","cur_task":"JieGarden@Roguelike@StageTraderInvestSystemError","details":{"cur_retry":20,"retry_times":20,"to_be_recognized":["JieGarden@Roguelike@StageTraderInvestCancel"]},"first":["JieGarden@Roguelike@Begin"],"pre_task":"JieGarden@Roguelike@StageTraderInvestConfirm","subtask":"ProcessTask","taskchain":"Roguelike","taskid":40}
[2026-06-01 10:34:43.280][TRC][Px27484][Tx52497] ready to sleep 500
[2026-06-01 10:34:43.783][TRC][Px27484][Tx52497] end of sleep 500
[2026-06-01 10:34:43.783][TRC][Px27484][Tx52497] asst::PlayToolsController::screencap | enter
[2026-06-01 10:34:43.828][TRC][Px27484][Tx52497] asst::PlayToolsController::screencap | leave, 44 ms
[2026-06-01 10:34:43.855][TRC][Px27484][Tx52497] match_templ | Roguelike@StageTraderInvestCancel.png [opencv] score: 0.789736 rect: [ 580, 484, 89, 20 ] roi: [ 507, 418, 242, 149 ]
[2026-06-01 10:34:43.855][INF][Px27484][Tx52497] Assistant::append_callback | SubTaskError {"class":"asst::ProcessTask","details":{},"first":["JieGarden@Roguelike@Begin"],"pre_task":"JieGarden@Roguelike@StageTraderInvestConfirm","subtask":"ProcessTask","taskchain":"Roguelike","taskid":40,"uuid":"com.hypergryph.arknights"}
```

<img width="761" height="378" alt="image"
src="https://github.com/user-attachments/assets/85f7159b-783e-4bbf-b578-4d3133d2ce6a"
/>

---

顺带,对萨卡兹肉鸽快速刷钱所使用的刷新节点任务的模版匹配阈值也进行了调整。(句子好长,好绕口)
[asst.log](https://github.com/user-attachments/files/28531048/asst.log)

···
[2026-06-02 19:50:45.972][TRC][Px65548][Tx4604]
asst::PlayToolsController::screencap | enter
[2026-06-02 19:50:46.015][TRC][Px65548][Tx4604]
asst::PlayToolsController::screencap | leave, 42 ms
[2026-06-02 19:50:46.030][TRC][Px65548][Tx4604] match_templ |
Sarkaz@RoguelikeRouting-RefreshNode.png [opencv] score: 0.741615 rect: [
798, 203, 47, 15 ] roi: [ 796, 130, 50, 170 ]
[2026-06-02 19:50:46.030][INF][Px65548][Tx4604]
{"class":"asst::ProcessTask","cur_task":"","details":{"cur_retry":20,"retry_times":20,"to_be_recognized":["Sarkaz@RoguelikeRouting-RefreshNode"]},"first":["Sarkaz@RoguelikeRouting-RefreshNode"],"pre_task":"","subtask":"ProcessTask","taskchain":"Roguelike","taskid":2}
[2026-06-02 19:50:46.030][TRC][Px65548][Tx4604] ready to sleep 500
[2026-06-02 19:50:46.535][TRC][Px65548][Tx4604] end of sleep 500
[2026-06-02 19:50:46.535][TRC][Px65548][Tx4604]
asst::PlayToolsController::screencap | enter
[2026-06-02 19:50:46.585][TRC][Px65548][Tx4604]
asst::PlayToolsController::screencap | leave, 50 ms
[2026-06-02 19:50:46.599][TRC][Px65548][Tx4604] match_templ |
Sarkaz@RoguelikeRouting-RefreshNode.png [opencv] score: 0.741614 rect: [
798, 203, 47, 15 ] roi: [ 796, 130, 50, 170 ]
[2026-06-02 19:50:46.599][INF][Px65548][Tx4604]
Assistant::append_callback | SubTaskError
{"class":"asst::ProcessTask","details":{},"first":["Sarkaz@RoguelikeRouting-RefreshNode"],"pre_task":"","subtask":"ProcessTask","taskchain":"Roguelike","taskid":2,"uuid":"com.hypergryph.arknights"}
···


## Summary by Sourcery

错误修复:
- 降低 iOS 上特定类 Rogue-like 退出投资任务的模板匹配分数阈值,以防止在 PlayCover 环境和英文客户端条件下任务卡住。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Bug Fixes:
- Lower template matching score thresholds for specific roguelike
exit-investment tasks on iOS to prevent task stalling under PlayCover
and English client conditions.

</details>
2026-06-04 00:10:47 +08:00
github-actions[bot]
842e6e9637 chore: Auto Update Game Resources - 2026-06-03
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26877559937

[skip changelog]
2026-06-03 10:01:11 +00:00
Status102
9d6e41e74a rft: InvokeProcSubTaskMsg 重构 (#16979)
* rft: InvokeProcSubTaskMsg 重构

* perf: try
2026-06-03 13:39:51 +08:00
github-actions[bot]
2f865c8435 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26851913390
[skip changelog]
2026-06-02 22:31:54 +00:00
Saratoga-Official
83d106220f chore: 补充可露希尔基建数值
fix #16977
2026-06-02 11:24:09 +08:00
github-actions[bot]
c5d4ceb7e4 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26784708703
[skip changelog]
2026-06-01 22:03:47 +00:00
晓丶梦丶仁
cd0973cb87 Release v6.11.1 (#16971)
## Summary by Sourcery

为版本 v6.11.1 准备发布元数据,而不引入任何功能性代码更改。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare release metadata for version v6.11.1 without introducing
functional code changes.

</details>
2026-06-02 05:31:11 +08:00
uye
ff2bce837d docs: Update CHANGELOG.md for version 6.11.1
Added details for version 6.11.1 improvements.
2026-06-02 05:30:42 +08:00
github-actions[bot]
46153cfe57 docs: Update CHANGELOG top version to v6.11.1 (#16972)
* docs: Auto Generate Changelog of Release v6.11.1

* Revert "docs: Auto Generate Changelog of Release v6.11.1"

This reverts commit aff4e4d5db.

* docs: bump changelog title to v6.11.1

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-06-02 05:20:15 +08:00
uye
f3a2d90472 chore: 延长 TD-Open 延迟 2026-06-02 04:53:53 +08:00
uye
c533a44a9a chore: TDChapterToTD 添加重试 2026-06-02 04:48:47 +08:00
uye
6037746760 Release v6.11.0 (#16963)
## Sourcery 总结

更新宿舍干员选择、信用商店购买、账号切换和通知行为,并为 v6.11.0 版本新增协议、UI 和资源支持。

新功能(New Features):
- 在账号切换与启动配置中新增对 txwy(繁体中文)客户端的支持。
- 允许为外部 Webhook 通知配置自定义 HTTP 请求头。
- 支持使用基于文件的输入进行悖论模拟助手的批量识别。
- 为助手的“用户附加信息”弹出网格引入动态尺寸和对齐方式。

缺陷修复(Bug Fixes):
- 修复宿舍自动填充逻辑,更好地协调基于心情的选择、信赖刷取以及“未进驻”筛选条件,并增强筛选开关的稳定性。
- 通过使用 OCR 等价处理、保留物品名称以及在点击前校验商品,改进信用商店物品识别与购买流程,避免买错物品。
- 确保任务完成后的检查仅在任务队列由 link-start 启动时才执行。
- 修正信用商店售罄检测与白名单排序逻辑,使其能基于结构化的 TextRect 结果而非裸矩形数据工作。
- 修复悖论模拟助手的识别逻辑,使其正确读取和引用悖论配置文件,而不是干员名称。
- 解决外部通知自定义 Webhook 配置相关问题,通过安全持久化请求头并在请求中正确应用。
- 明确并修正针对更多客户端类型和 OCR 设置的账号切换行为。

增强优化(Enhancements):
- 将宿舍选择状态重构为更清晰的选择阶段,并为信赖阈值和设施标签抽取常量。
- 收紧基建任务中的筛选菜单交互,确保“未进驻”和“全部设施”筛选条件能稳定应用和取消。
- 优化信用商店购买逻辑,更好地遵守“仅折扣”和“信用预留”选项,并具有更清晰的停止条件。
- 打磨外部通知、战斗设置和启动设置的 ViewModel 与 XAML 绑定,实现更清晰的行为与格式。
- 更新变更日志生成器和依赖下载脚本,以改善格式并跟踪最新 MaaDeps 版本。

构建(Build):
- 在下载辅助脚本中将 MaaDeps 依赖版本提升至 v2.11.0。

文档(Documentation):
- 扩展多语言的集成与启动文档,加入对繁体中文(txwy)账号的使用指南以及账号名匹配示例。

杂项维护(Chores):
- 刷新多项游戏数据与任务 JSON 资源,包括最新关卡与记忆关卡的地块坐标定义、物品与关卡索引以及本地化资源。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

准备 v6.11.0 版本发布,本次更新包括:改进宿舍自动填充逻辑、更安全且更精准的信用点商店购买、扩展悖论模拟器批量识别、增强外部
Webhook 通知、支持 txwy(繁体中文)账号、更新工具链,以及刷新游戏数据/资源。

New Features:
- 在账号切换与启动配置中,新增对 txwy(繁体中文)游戏客户端的支持。
- 允许为外部 Webhook 通知配置自定义 HTTP 请求头,并在发送请求时应用这些请求头。
- 支持使用基于文件的输入而非干员名称进行悖论模拟批量识别。
- 为 UI 中 copilot 的“User additional information”弹出网格添加动态尺寸和对齐能力。
- 让 ImageCropper 工具在 ADB 设备之外,额外支持通过 Win32/WGC 捕获 PC 窗口。

Bug Fixes:
- 通过更好地协调基于心情的选择、信赖刷取以及“未进驻”筛选状态,稳定宿舍自动填充行为。
- 改进信用点商店物品检测和购买逻辑,避免购买错误物品,包括更健壮的 OCR 等价处理以及在购买前对单件物品进行校验。
- 确保战斗结束后的任务完成检查仅在通过 link-start 启动任务队列时才会运行。
- 修复信用点商店中已售罄检测和白名单排序,使其基于结构化的 TextRect 结果而非原始矩形进行处理。
- 修正悖论模拟器识别逻辑,改为读取悖论配置文件,而不是直接使用干员名称。
- 修复自定义 Webhook 通知设置的持久化与应用问题,包括请求头的安全存储和正确使用。
- 在更多客户端类型和 OCR 设置(包括 txwy)下,澄清并修正账号切换逻辑。

Enhancements:
- 将宿舍选择流程细化为更清晰的阶段(低心情、信赖自动填充、填满剩余),并强化对“未进驻”筛选和信赖阈值的处理。
- 收紧基建筛选菜单交互,使“未进驻”和“全部设施”筛选能稳定生效与清除。
- 优化信用点商店购买逻辑,更好地遵守“仅折扣”和“保留信用点”选项,并具有更清晰的停止条件。
- 打磨外部通知、战斗设置、启动和 copilot 视图的 ViewModel 与 XAML 绑定,以获得更可预期的行为和布局。
- 改进更新日志生成和依赖下载脚本,包括格式调整以及对最新 MaaDeps 版本的跟踪。

Build:
- 在辅助下载脚本中将 MaaDeps 依赖版本提升至 v2.11.0。
- 将 ImageCropper 的 Python 依赖更新为 MaaFw 5.10 和 OpenCV 4.13。

Documentation:
- 扩展多语言集成与启动文档,增加关于使用 txwy(繁体中文)账号以及登录名匹配的说明与示例。
- 更新 ImageCropper 使用文档,涵盖通过 WGC/Win32 捕获 PC 窗口及相关配置选项。

Chores:
- 刷新多项游戏数据和任务 JSON 资源,包括新关卡、记忆关卡、地块坐标、物品索引、关卡索引、UI
主题任务、肉鸽任务,以及最新内容的本地化资源。
- 更新所有已支持语言的协议与启动文档,说明 txwy 账号格式及相关使用建议。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare the v6.11.0 release with improved dormitory auto-fill logic,
safer and more accurate credit shop purchasing, expanded paradox
simulator batch recognition, enhanced external webhook notifications,
txwy (Traditional Chinese) account support, updated tooling, and
refreshed game data/resources.

New Features:
- Add support for the txwy (Traditional Chinese) game client in account
switching and startup configuration.
- Allow configuring custom HTTP headers for external webhook
notifications and apply them when sending requests.
- Support batch paradox simulation recognition using file-based inputs
instead of operator names.
- Add dynamic sizing and alignment for the copilot "User additional
information" popup grid in the UI.
- Enable the ImageCropper tool to capture PC windows via Win32/WGC in
addition to ADB devices.

Bug Fixes:
- Stabilize dormitory auto-fill behavior by better coordinating
mood-based selection, trust farming, and the "not stationed" filter
state.
- Improve credit shop item detection and purchasing to avoid buying
incorrect items, including more robust OCR equivalence handling and
per-item verification before purchase.
- Ensure post-battle task completion checks only run when the task queue
is started via link-start.
- Fix sold-out detection and whitelist sorting in the credit shop to
operate on structured TextRect results rather than raw rectangles.
- Correct paradox simulator recognition to read paradox configuration
files instead of using operator names directly.
- Fix persistence and application of custom webhook notification
settings, including secure storage and usage of request headers.
- Clarify and correct account switching logic across more client types
and OCR settings, including txwy.

Enhancements:
- Refine dormitory selection into clearer phases (low mood, trust
autofill, fill remaining) and tighten handling of "not stationed"
filtering and trust thresholds.
- Tighten infrastructure filter menu interactions so "not stationed" and
"all facilities" filters apply and clear reliably.
- Optimize credit shop buying logic to better respect discount-only and
credit-reserve options with clearer stopping conditions.
- Polish ViewModel and XAML bindings for external notifications, fight
settings, startup, and copilot views for more predictable behavior and
layout.
- Improve changelog generation and dependency download scripts,
including formatting tweaks and tracking the latest MaaDeps version.

Build:
- Bump MaaDeps dependency version to v2.11.0 in the helper download
script.
- Update ImageCropper Python dependencies to MaaFw 5.10 and OpenCV 4.13.

Documentation:
- Extend multi-language integration and startup documentation with
guidance and examples for using txwy (Traditional Chinese) accounts and
login-name matching.
- Update ImageCropper usage docs to cover PC window capture via
WGC/Win32 and related configuration options.

Chores:
- Refresh multiple game data and task JSON resources, including new
stages, memory stages, tile coordinates, item indices, stage indices, UI
theme tasks, roguelike tasks, and localization resources for the latest
content.
- Update protocol and startup documentation across all supported
languages to describe txwy account formats and recommendations.

</details>

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

准备 v6.11.0 版本发布,本次更新包括:改进宿舍自动填充逻辑、更安全且更精准的信用点商店购买、扩展悖论模拟器批量识别、增强外部
Webhook 通知、支持 txwy(繁体中文)账号、更新工具链,以及刷新游戏数据/资源。

New Features:
- 在账号切换与启动配置中,新增对 txwy(繁体中文)游戏客户端的支持。
- 允许为外部 Webhook 通知配置自定义 HTTP 请求头,并在发送请求时应用这些请求头。
- 支持使用基于文件的输入而非干员名称进行悖论模拟批量识别。
- 为 UI 中 copilot 的“User additional information”弹出网格添加动态尺寸和对齐能力。
- 让 ImageCropper 工具在 ADB 设备之外,额外支持通过 Win32/WGC 捕获 PC 窗口。

Bug Fixes:
- 通过更好地协调基于心情的选择、信赖刷取以及“未进驻”筛选状态,稳定宿舍自动填充行为。
- 改进信用点商店物品检测和购买逻辑,避免购买错误物品,包括更健壮的 OCR 等价处理以及在购买前对单件物品进行校验。
- 确保战斗结束后的任务完成检查仅在通过 link-start 启动任务队列时才会运行。
- 修复信用点商店中已售罄检测和白名单排序,使其基于结构化的 TextRect 结果而非原始矩形进行处理。
- 修正悖论模拟器识别逻辑,改为读取悖论配置文件,而不是直接使用干员名称。
- 修复自定义 Webhook 通知设置的持久化与应用问题,包括请求头的安全存储和正确使用。
- 在更多客户端类型和 OCR 设置(包括 txwy)下,澄清并修正账号切换逻辑。

Enhancements:
- 将宿舍选择流程细化为更清晰的阶段(低心情、信赖自动填充、填满剩余),并强化对“未进驻”筛选和信赖阈值的处理。
- 收紧基建筛选菜单交互,使“未进驻”和“全部设施”筛选能稳定生效与清除。
- 优化信用点商店购买逻辑,更好地遵守“仅折扣”和“保留信用点”选项,并具有更清晰的停止条件。
- 打磨外部通知、战斗设置、启动和 copilot 视图的 ViewModel 与 XAML 绑定,以获得更可预期的行为和布局。
- 改进更新日志生成和依赖下载脚本,包括格式调整以及对最新 MaaDeps 版本的跟踪。

Build:
- 在辅助下载脚本中将 MaaDeps 依赖版本提升至 v2.11.0。
- 将 ImageCropper 的 Python 依赖更新为 MaaFw 5.10 和 OpenCV 4.13。

Documentation:
- 扩展多语言集成与启动文档,增加关于使用 txwy(繁体中文)账号以及登录名匹配的说明与示例。
- 更新 ImageCropper 使用文档,涵盖通过 WGC/Win32 捕获 PC 窗口及相关配置选项。

Chores:
- 刷新多项游戏数据和任务 JSON 资源,包括新关卡、记忆关卡、地块坐标、物品索引、关卡索引、UI
主题任务、肉鸽任务,以及最新内容的本地化资源。
- 更新所有已支持语言的协议与启动文档,说明 txwy 账号格式及相关使用建议。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare the v6.11.0 release with improved dormitory auto-fill logic,
safer and more accurate credit shop purchasing, expanded paradox
simulator batch recognition, enhanced external webhook notifications,
txwy (Traditional Chinese) account support, updated tooling, and
refreshed game data/resources.

New Features:
- Add support for the txwy (Traditional Chinese) game client in account
switching and startup configuration.
- Allow configuring custom HTTP headers for external webhook
notifications and apply them when sending requests.
- Support batch paradox simulation recognition using file-based inputs
instead of operator names.
- Add dynamic sizing and alignment for the copilot "User additional
information" popup grid in the UI.
- Enable the ImageCropper tool to capture PC windows via Win32/WGC in
addition to ADB devices.

Bug Fixes:
- Stabilize dormitory auto-fill behavior by better coordinating
mood-based selection, trust farming, and the "not stationed" filter
state.
- Improve credit shop item detection and purchasing to avoid buying
incorrect items, including more robust OCR equivalence handling and
per-item verification before purchase.
- Ensure post-battle task completion checks only run when the task queue
is started via link-start.
- Fix sold-out detection and whitelist sorting in the credit shop to
operate on structured TextRect results rather than raw rectangles.
- Correct paradox simulator recognition to read paradox configuration
files instead of using operator names directly.
- Fix persistence and application of custom webhook notification
settings, including secure storage and usage of request headers.
- Clarify and correct account switching logic across more client types
and OCR settings, including txwy.

Enhancements:
- Refine dormitory selection into clearer phases (low mood, trust
autofill, fill remaining) and tighten handling of "not stationed"
filtering and trust thresholds.
- Tighten infrastructure filter menu interactions so "not stationed" and
"all facilities" filters apply and clear reliably.
- Optimize credit shop buying logic to better respect discount-only and
credit-reserve options with clearer stopping conditions.
- Polish ViewModel and XAML bindings for external notifications, fight
settings, startup, and copilot views for more predictable behavior and
layout.
- Improve changelog generation and dependency download scripts,
including formatting tweaks and tracking the latest MaaDeps version.

Build:
- Bump MaaDeps dependency version to v2.11.0 in the helper download
script.
- Update ImageCropper Python dependencies to MaaFw 5.10 and OpenCV 4.13.

Documentation:
- Extend multi-language integration and startup documentation with
guidance and examples for using txwy (Traditional Chinese) accounts and
login-name matching.
- Update ImageCropper usage docs to cover PC window capture via
WGC/Win32 and related configuration options.

Chores:
- Refresh multiple game data and task JSON resources, including new
stages, memory stages, tile coordinates, item indices, stage indices, UI
theme tasks, roguelike tasks, and localization resources for the latest
content.
- Update protocol and startup documentation across all supported
languages to describe txwy account formats and recommendations.

</details>

</details>

</details>
2026-06-02 03:07:02 +08:00
github-actions[bot]
02d2180092 docs: Auto Update Changelogs of v6.11.0 (#16965)
* docs: Auto Generate Changelog of Release v6.11.0

* docs: changelog

* docs: mac

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-06-02 03:01:30 +08:00
status102
fbf66862b3 perf(wpf): PostAction清空按钮新增仅一次状态同步 2026-06-02 01:43:59 +08:00
uye
4aa5d0c330 Revert "perf: 仅在LinkStart时执行完成后动作, 避免单次运行时触发"
This reverts commit b3801e64ee.
2026-06-02 00:27:06 +08:00
uye
66f2e9e752 chore: 调整吐司通知禁用说明 2026-06-02 00:26:40 +08:00
DavidWang19
067fdab400 feat: 支持 ImageCropper 截取 PC 窗口 (#16969) 2026-06-01 16:51:55 +01:00
SherkeyXD
c277a69110 feat: 界面主题「出猎」 2026-06-01 22:19:04 +08:00
uye
7bca192a21 fix: roi 2026-06-01 21:22:48 +08:00
github-actions[bot]
b2510df2ed feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26757428388
[skip changelog]
2026-06-01 13:19:48 +00:00
Rin
1d46ff16a1 feat: 增加怪猎联动二期 TD-6/7/8 (#16962)
* feat: 增加怪猎联动二期 TD-6/7/8

* chore: revert stage.json

* chore: 移除多余逻辑

---------

Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-06-01 21:18:32 +08:00
Aliothmoon
c8d6d99010 chore: update MaaDeps version to v2.11.0 (#16961)
see https://github.com/MaaAssistantArknights/MaaDeps/pull/36
2026-06-01 20:42:37 +08:00
github-actions[bot]
3a4e2ebd53 chore: Auto Update Game Resources - 2026-06-01
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26750150948

[skip changelog]
2026-06-01 10:46:42 +00:00
status102
d4ce454114 i18n: 修改描述文本 过期关卡重置为 -> 过期活动关卡重置为 以更加符合当前重置范围 2026-06-01 17:50:04 +08:00
status102
90cd87d7f3 perf(wpf): 临期药下拉框显示24h x n 2026-06-01 17:42:57 +08:00
status102
e7151cdf8d rft: 悖论模拟作业列表变量名与实际不符 2026-06-01 17:40:14 +08:00
github-actions[bot]
d0d492b5b3 chore: Auto Templates Optimization
Triggered by 857742dfdc

[skip changelog]
2026-06-01 09:24:06 +00:00
momomochi987
857742dfdc docs: 帳號切換手冊與整合協議補上繁中服說明
- manual/introduction/startup.md:example 區加入繁中服 Email 帳號範例
- protocol/integration.md:account_name 範例區加入繁中服說明
- ko-kr/manual/introduction/startup.md:移除『不支援全球服 (CN만 가능)』
  字樣,並對齊其他語系的條列範例格式
- zh-tw / zh-cn / en-us / ja-jp / ko-kr 五個語系同步更新
2026-06-01 17:17:17 +08:00
momomochi987
9f16ccd95f docs: 更新帳號切換小提示,加入繁中服 Email 帳號說明
- 將支援客戶端清單從『官服、B服』擴充為『官服、B服、繁中服』
- 新增繁中服 Email 帳號的填寫範例,建議使用不含星號的明文片段
- 將原本『不支援登入帳號』改為更精準的『不支援第三方登入方式』
- zh-tw / zh-cn / en-us / ja-jp / ko-kr 五個語系同步更新
2026-06-01 17:11:28 +08:00
momomochi987
c20c103176 feat: GUI 啟動設定支援繁中服顯示帳號名欄位
- StartUpTaskUserControl.xaml:帳號名 TextBox 與『立即切換』按鈕的 Visibility 條件加入 txwy
- StartUpSettingsUserControlModel.cs:序列化時將 Txwy 視為支援帳號切換的客戶端類型
2026-06-01 17:09:47 +08:00
momomochi987
db665d52a9 feat: 繁中服資源補上帳號切換流程與模板
- tasks.json 新增帳號切換相關 task override:
  - LoginOther 加入 AccountManagerTxwy 為候選入口
  - AccountManagerTxwy 設定 ROI (供 template match 使用)
  - Settings 改成直接接 LogoutOCR/Logout,跳過繁中沒有的 UserCenter/ExitOld 中間層
  - LogoutOCR / LogoutConfirm / AccountCurrentOCR / AccountManagerLoginButton /
    AccountManagerListAccount / AccountManagerTrashButton / AccountManager
    依繁中介面位置調整 ROI 與識別文字
  - AccountManager 改用 OCR detect 偵測「帳號管理」,避開原 template 比 ROI 大的問題
  - LogoutConfirm 直接 reuse 既有的 PopupConfirm.png
- 新增 AccountManagerTxwy.png:繁中服帳號管理頁的 GRYPHLINE 標誌特徵塊
2026-06-01 17:09:18 +08:00
momomochi987
9237dddda4 feat: AccountSwitchTask 支援繁中服客戶端
- 在 _run/select_account 將 txwy 視為與 Official 同類,套用 char model OCR
- navigate_to_start_page 認得 AccountManagerTxwy 作為登入頁入口
- SupportedClientType 將 txwy 從註解移到實際列表
2026-06-01 17:08:26 +08:00
Saratoga-Official
22635a7b60 fix: 御龙装置识别 2026-06-01 14:19:30 +08:00
github-actions[bot]
cae85ce6da chore: Auto Update Game Resources - 2026-05-31
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26727125523

[skip changelog]
2026-05-31 23:08:28 +00:00
github-actions[bot]
b1436cb7c7 chore: Auto Update Game Resources - 2026-05-31
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26723878173

[skip changelog]
2026-05-31 20:41:18 +00:00
Rin
9bd27f7968 Revert "fix: 调整基建干员名 OCR 区域" (#16937)
* Revert "fix: 调整基建干员名 OCR 区域 (#16905)"

This reverts commit 89377eba94.

* revert: EN changes no longer needed

---------

Co-authored-by: Constrat <56174894+Constrat@users.noreply.github.com>
2026-05-31 22:34:18 +08:00
github-actions[bot]
3ebdd1f03f feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26696235621
[skip changelog]
2026-05-30 22:10:57 +00:00
github-actions[bot]
4496d5c9da chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26695211011
[skip changelog]
2026-05-30 21:21:39 +00:00
Rin
137f7764bd fix: 优化追加自定干员弹窗删除时的布局 (#16921)
* fix: 优化追加自定干员弹窗删除时的布局

* refactor: 统一追加自定干员列表高度配置
2026-05-30 23:53:43 +08:00
github-actions[bot]
6c4527e00d chore: Auto Update Game Resources - 2026-05-30
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26682018364

[skip changelog]
2026-05-30 10:55:40 +00:00
Constrat
127ef87f9c fix: revert OCR changes 2026-05-30 12:37:41 +02:00
status102
b3801e64ee perf: 仅在LinkStart时执行完成后动作, 避免单次运行时触发 2026-05-30 17:51:11 +08:00
Status102
7d6ad3b4c1 rft: 水月萨卡兹肉鸽 关闭next弹窗 (#16918)
* rft: 水月肉鸽 关闭next弹窗

* rft: 萨卡兹part

* perf: 简化模板声明
2026-05-30 17:21:21 +08:00
uye
a10391e9d4 perf: 优化信用商店复核逻辑 (#16932)
* perf: 优化信用商店复核逻辑

* chore: 增加对 OCR 结果为空的处理
2026-05-30 17:12:59 +08:00
github-actions[bot]
5f1869ab46 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26663324632
[skip changelog]
2026-05-29 21:35:11 +00:00
Rin
89377eba94 fix: 调整基建干员名 OCR 区域 (#16905)
- 扩大笑脸锚点派生的干员名识别范围
2026-05-30 01:10:32 +08:00
Rin
4b520aaac9 fix: 修复宿舍自定义干员+信赖补位的bug&外服同步修复&提升代码可读性 (#16659)
* fix: 修复宿舍自定义干员+信赖补位的bug

* chore: EN

* fix: 补充宿舍筛选全部按钮的日韩识别文本

补充日服“全て”和韩服“전부”,用于取消宿舍“未进驻”筛选时点击“全部”选项。

* refactor: improve infrast dorm task readability

---------

Co-authored-by: Constrat <56174894+Constrat@users.noreply.github.com>
Co-authored-by: Roland125 <oroland125@outlook.com>
2026-05-30 00:56:57 +08:00
status102
0f25895c6d feat(wpf): CustomWebhook支持自定义Headers 2026-05-30 00:25:48 +08:00
github-actions[bot]
5681d6a37e chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26603778911
[skip changelog]
2026-05-28 21:39:41 +00:00
uye
23ad7fd301 Release v6.11.0-beta.2 (#16919) 2026-05-29 01:46:14 +08:00
uye
ed817cce19 fix: changelog 猪了 2026-05-29 01:45:36 +08:00
uye
854b9ec9b0 Release v6.11.0-beta.2 (#16916)
## Summary by Sourcery

通过将串口配置与命令执行分离,并对共享客户端实例的访问强制使用互斥锁保护,改进 ADB-lite 客户端管理。

改进内容:
- 添加锁定辅助工具,在执行 connect、shell、exec、push 和交互式 shell 命令之前,验证并保护对共享 ADB-lite
客户端的访问。
- 在 PlatformIO/AdbLiteIO 上引入可配置的 ADB
串口,并在客户端(重新)初始化时提供安全机制,同时在客户端创建失败时记录错误日志。
- 调整 ADB 释放逻辑,仅在存在 ADB-lite 客户端时才发出释放命令,从而减少不必要的操作。
- 连接 AdbController,将设备地址向下传递到平台 I/O 层,以在各类命令中实现 ADB-lite 客户端的一致使用。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Improve ADB-lite client management by separating serial configuration
from command execution and enforcing mutex-guarded access to the shared
client instance.

Enhancements:
- Add a locking helper to validate and guard access to the shared
ADB-lite client before executing connect, shell, exec, push, and
interactive shell commands.
- Introduce a configurable ADB serial on PlatformIO/AdbLiteIO with safe
client (re)initialization and error logging when client creation fails.
- Adjust ADB release logic to only issue release commands when an
ADB-lite client is present, reducing unnecessary operations.
- Wire AdbController to propagate the device address into the platform
I/O layer for consistent ADB-lite client usage across commands.

</details>
2026-05-29 01:42:01 +08:00
uye
b3eb6cbbc5 ai: changelog details 增加日期 2026-05-29 01:41:21 +08:00
uye
f4fafde9bf docs: changelog 2026-05-29 01:33:56 +08:00
github-actions[bot]
952c97d9a6 chore: Auto Update Game Resources - 2026-05-28
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26589446911

[skip changelog]
2026-05-28 17:00:23 +00:00
Loong
b2fa9a1c3e fix: 显式声明 adb-lite client 对应的 serial (#16853)
## 概述

- 在 `AdbController::connect` 确定目标 address/serial 后,通过
`PlatformIO::set_adb_serial` 显式声明当前 adb 设备。
- NativeIO 默认忽略该调用;AdbLiteIO 使用该 serial 初始化或切换内部 adb-lite client。
- adb-lite 的 `shell`、`exec-out`、`push` 和交互式 shell 只使用已声明的
client,不再从命令路径里隐式初始化 client。
- AdbLiteIO 内部集中校验 client/serial,并用 mutex 覆盖 `m_adb_client` /
`m_adb_serial` 以及对 adb-lite client 的调用,避免 `call_command` 与
`interactive_shell` 并发访问同一状态。

## 背景

#16850 已修复 `adb connect` 被跳过后 adb-lite client 未初始化的问题,并补充了内部锁保护。这个 PR
是后续调整:把 client 初始化入口从命令执行路径挪到连接生命周期中,让状态声明更明确。

## 修复方式

连接阶段已经知道当前 address/serial,所以在设置 connect/release 命令后调用:

```cpp
m_platform_io->set_adb_serial(address);
```

对 NativeIO 来说这是 no-op;对 AdbLiteIO 来说,这是初始化或切换 `adb::client` 的入口。

后续 adb-lite 命令路径通过 `lock_adb_client(serial)` 统一校验命令中的 `-s <serial>` 与当前
client 对应的 serial 一致,并在同一把锁仍然持有时调用 adb-lite client。这样避免在
`interactive_shell` 中隐式写入 client/serial 状态,也避免把 `m_adb_client` 暴露给无锁调用。

`set_adb_serial` 也改为先创建临时 `adb::client`,创建成功后再提交 `m_adb_serial` /
`m_adb_client` 状态;如果创建失败则记录错误并清空 adb-lite client 状态,避免 serial 已切换但
client 仍指向旧对象的不一致状态。

## 验证

- `git diff --check --cached`
- `cmake --build /private/tmp/maa-build-8599-core --parallel 8`
- `cmake --install /private/tmp/maa-build-8599-core --config
RelWithDebInfo`
- 本机 `maa` CLI + Android 35 arm64 AVD:
  - `maa run connect-only -p adb-lite-test --no-summary -vvv`
  - 日志显示 `Loading MaaCore from: /private/tmp/maa-test-data-8599/lib`
  - 日志显示 `Setting adb lite enabled to true`
  - 日志到达 `Connected`
  - 日志到达 `FastestWayToScreencap Encode`
  - 未出现 `adb client not initialized`
  - 未出现 `failed to create adb-lite client`
  - 未出现 `fallback to NativeIO`
2026-05-29 00:46:30 +08:00
uye
5a4c3fe7b4 fix: 修复开启基建退出提醒时无法退出基建
fix #16913
2026-05-29 00:04:39 +08:00
github-actions[bot]
e8a6d8b063 chore: Auto Update Game Resources - 2026-05-28
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26584047595

[skip changelog]
2026-05-28 15:22:16 +00:00
uye
6ed2275197 fix: 修复快捷切换在遇到 LoadingText 时无法跳出循环
fix #16910
2026-05-28 23:03:18 +08:00
github-actions[bot]
35a92857d1 chore: Auto Update Game Resources - 2026-05-28
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26559057935

[skip changelog]
2026-05-28 06:40:01 +00:00
uye
e6360ac8a8 Release v6.11.0-beta.1 (#16906)
## Summary by Sourcery

在提供的 resource/tasks/tasks.json
差异中看不到任何功能性更改;根据现有信息,此次发布似乎不包含代码、配置或文档方面的修改。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

No functional changes are visible in the provided diff for
resource/tasks/tasks.json; the release appears to contain no code,
config, or documentation modifications based on the available
information.

</details>
2026-05-28 14:07:30 +08:00
uye
046459acee fix: 信用收支卡在商店里 2026-05-28 14:05:56 +08:00
uye
50814459f0 Release v6.11.0-beta.1 (#16895)
## Sourcery 总结


为作战任务新增基于仓库库存的掉落目标模式,重做自动公招标签偏好及保留逻辑,改进任务队列交互体验和通知处理,并增强平台与文件系统工具的健壮性,同时更新配置处理方式和文档。

新功能:
- 为作战任务中指定掉落物新增“按仓库库存为目标”的模式,包括按核心任务的运行时追踪,以及展示当前库存和有效刷取数量的 UI。
- 新增对可配置公招标签(包括机器人)的保留支持,通过开关 UI 和回调实现,取代旧的“1 级干员跳过”行为。
- 允许在任务队列中通过新的复制操作来重复已有任务。
- 暴露通知可用状态,并在启动时以及启用通知时展示 toast 通知健康检查结果。
- 新增可复用的公招标签列表归一化工具,以及用于迁移旧版公招保留标签配置的 JSON 转换器。

缺陷修复:
- 在视觉辅助工具中避免出现无效的零大小 ROI:将全零矩形视为对整张图片的请求,并仅记录真正的空区域日志。
- 修复子进程中的 POSIX shell 命令执行行为,避免在 `exec` 失败后返回并破坏父进程状态。
- 通过使用错误码和受保护的目录遍历,使调试图像维护对权限与文件系统错误更加健壮。
- 确保任务索引在选择变更后保持一致,并在任务队列日志及 UI 绑定中统一使用正确的任务显示名称属性。
- 正确处理仓库识别更新和任务状态变化,使基于库存的掉落目标能正确刷新,同时在任务运行时避免修改配置。
- 在加载与序列化过程中对公招标签进行归一化,避免重复或空标签项。
- 在存在备用基础 URL 时,避免意外退回到使用缓存的 API 响应。

优化改进:
- 优化作战设置的用户体验:提供更清晰的中文 XML 注释,重命名拖拽状态属性,并改进掉落相关绑定的更新逻辑。
- 重做自动公招参数以支持偏好的 3★ 标签和独立的保留标签,调整 toast 行为,并将旧的 `skip_robot`
仅保留在协议层以保证向后兼容。
- 清理重复的布尔配置解析逻辑,在多个设置视图模型和服务中统一使用强类型的 `ConfigurationHelper.GetValue` 调用。
- 改进 tooltip 基础设施,以支持自定义 tooltip 内容、启用状态以及更丰富的绑定。
- 调整内部日志辅助工具和基础设施生产任务日志,使日志信息更清晰、更结构化,并统一日志记录器用法。
- 改善启动行为,将配置恢复和 toast 通知检查拆分为后台任务,并更新高级设置可见性逻辑。
- 收紧 adb-lite shell 封装及其他一些基础设施代码路径,使其更清晰和更健壮。

CI:
- 在多个工作流中将第三方 GitHub Actions(push 和 AI 分析)固定到具体的提交 SHA,以提升 CI 行为的可复现性。

文档:
- 更新所有支持语言的集成协议文档,弃用 `skip_robot`,记录新的 `skip_tags` 参数,并调整公招示例。
- 在所有支持语言中扩展回调模式文档,加入新的 `RecruitPreservedTag` 通知说明。
- 明确自动公招手册内容,描述偏好 3★ 标签、保留标签行为以及更新后的通知触发条件。

<details>
<summary>Original summary in English</summary>

## Sourcery 总结


为战斗任务引入基于仓库库存的目标掉落模式,重构自动公招偏好与保留标签配置,改进任务队列交互体验和通知健康检查,并加强平台、文件系统与配置处理的健壮性。

新特性:
- 为战斗任务新增“基于仓库库存的目标掉落模式”,包括按核心任务进行运行时追踪,以及在 UI 中展示当前库存和有效刷取数量。
- 为自动公招新增“偏好 3★ 标签”和“保留标签”配置,包含新的 UI 控件、核心支持和回调通知。
- 允许在任务队列中通过“复制”操作复用现有任务。
- 暴露 toast 通知的可用性,并向用户展示启动时的健康检查结果。
- 引入可复用的助手工具,用于公招标签列表的规范化处理以及旧版公招配置的迁移。

缺陷修复:
- 在视觉助手中避免出现无效的零尺寸 ROI:将全零矩形视为“全图请求”,只对真正为空的区域进行日志记录。
- 修复子进程中 POSIX Shell 命令执行的问题,确保 exec 失败会正确终止子进程,而不会破坏父进程状态。
- 通过受保护的目录遍历和支持错误码的日志记录,提高调试图像维护在面对文件系统和权限错误时的健壮性。
- 当选择变化时,保持任务队列模型、日志和绑定中的任务索引与显示名称一致。
- 修正仓库识别更新与任务状态变更的处理逻辑,确保基于库存的掉落目标能够正确刷新且不会在运行过程中修改配置。
- 在加载与序列化时规范化公招标签,避免出现重复或空标签项。
- 当为 Maa API 请求配置了备用基础 URL 时,避免回退到缓存的 API 响应。
- 改进基建任务中的产品变更与无人机使用流程,更好地处理产品识别不稳定和产品变更失败的情况,避免阻塞干员上岗。
- 确保肉鸽藏品刷取在退出“最后领奖”流程时正确重置配置标记。

改进与优化:
- 优化战斗设置相关的交互体验:提供更清晰的中文 XML 注释,重命名拖拽状态属性,并改进与运行时状态绑定的掉落绑定刷新逻辑。
- 重构自动公招参数,使其支持“偏好 3★ 标签”和“独立的保留标签”,同时将传统的 `skip_robot` 限制在协议层用于兼容旧版。
- 通过统一使用 `ConfigurationHelper.GetValue`
替代临时的布尔解析逻辑,实现强类型的集中化配置访问,覆盖各项设置与服务代码。
- 扩展工具提示(tooltip)基础设施,以支持自定义内容、启用状态以及更丰富的数据绑定。
- 精简内部日志助手工具,生成更清晰、更结构化的日志并简化日志记录调用方式。
- 调整启动流程,将配置恢复与 toast 通知检查放入后台任务执行,并优化高级设置的显示逻辑。
- 收紧 adb-lite shell 封装及相关平台代码,使执行路径更清晰、更可靠。
- 更新窗口、托盘、睡眠管理及其他 GUI 行为,以更稳定地遵循新的配置默认值。
- 改进基建产物与无人机插件的行为,提供更清晰的日志,并采用更严格的产品识别置信度阈值。

持续集成(CI):
- 将用于 push 和 AI 分析的第三方 GitHub Actions 固定到具体的提交 SHA,以提升 CI 行为的可复现性。

文档:
- 更新所有支持语言的对接协议文档,弃用 `skip_robot`,补充新的 `skip_tags` 参数,并刷新自动公招示例。
- 在所有支持语言中扩展回调协议文档,新增 `RecruitPreservedTag` 通知说明。
- 明确自动公招说明文档,对“偏好 3★ 标签”、保留标签的行为以及更新后的通知触发条件进行详细说明。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Introduce inventory-based target drop mode for fight tasks, rework auto
recruitment preferences and preserved tags, improve task queue UX and
notification health checks, and harden platform, filesystem, and
configuration handling.

New Features:
- Add inventory-based target drop mode for fight tasks, including
runtime tracking per core task and UI display of current inventory and
effective farming quantity.
- Add preferred 3★ tag and preserved tag configuration for auto
recruitment, with new UI controls, core support, and callback
notifications.
- Allow duplicating existing tasks in the task queue via a copy action.
- Expose toast notification availability and surface a startup health
check to users.
- Introduce reusable helpers for recruitment tag list normalization and
migration of legacy recruitment configuration.

Bug Fixes:
- Prevent invalid zero-size ROIs in vision helpers by treating all-zero
rectangles as full-image requests and logging only truly empty regions.
- Fix POSIX shell command execution in child processes so exec failures
terminate the child without corrupting the parent process state.
- Harden debug image maintenance against filesystem and permission
errors through guarded directory traversal and error-code-aware logging.
- Keep task indices and display names consistent across task queue
models, logs, and bindings when the selection changes.
- Correct handling of depot recognition updates and task state changes
so inventory-based drop targets refresh correctly without mutating
configuration during runs.
- Normalize recruitment tags on load and serialization to avoid
duplicate or empty items.
- Avoid falling back to cached API responses when a fallback base URL is
configured for Maa API requests.
- Improve product change and drone-usage workflows in infrastructure
tasks to better handle weak product detection and product-change
failures without blocking staffing.
- Ensure roguelike collectible runs reset configuration flags correctly
when exiting last-reward handling.

Enhancements:
- Refine fight settings UX with clearer Chinese XML comments, renamed
drag state properties, and improved drop-binding refresh logic tied to
runtime state.
- Rework auto recruitment parameters to support preferred 3★ tags and
independent preserved tags while keeping legacy `skip_robot` only at the
protocol layer for backward compatibility.
- Centralize strongly typed configuration access by replacing ad-hoc
boolean parsing with `ConfigurationHelper.GetValue` across settings and
services.
- Extend tooltip infrastructure to support custom content, enabled
state, and richer bindings.
- Streamline internal logging helpers to produce clearer, more
structured logs and simplify logger usage.
- Adjust startup behavior to run config recovery and toast notification
checks in background tasks and refine advanced settings visibility.
- Tighten adb-lite shell wrapping and related platform code for clearer,
more robust execution paths.
- Update window, tray, sleep management, and other GUI behaviors to
respect new configuration defaults more reliably.
- Improve infrastructure production and drone plugins with clearer
logging and stricter product verification confidence thresholds.

CI:
- Pin third-party GitHub Actions used for pushes and AI analysis to
specific commit SHAs for more reproducible CI behavior.

Documentation:
- Update integration protocol docs in all supported languages to
deprecate `skip_robot`, document the new `skip_tags` parameter, and
refresh auto recruit examples.
- Extend callback schema documentation in all supported languages with
the new `RecruitPreservedTag` notification.
- Clarify auto recruitment manuals to describe preferred 3★ tags,
preserved tag behavior, and updated notification triggers.

</details>

</details>
2026-05-28 13:32:02 +08:00
uye
30925621f2 docs: changelog 2026-05-28 12:15:37 +08:00
Luhan Xiao
1bafad61dd feat(changelog): 记录 MaaMacGui 子仓库更新 (#16870)
* feat(changelog): 记录 MaaMacGui 子仓库更新

* fix(changelog): 修复 MaaMacGui 更新记录解析
2026-05-28 12:09:25 +08:00
H2O_MERO
a752f4b193 feat:为设置添加了搜索支持 (#16833)
* fix:修复了问题 只能在#nullable 注释上下文内的代码中使用可为 null 的引用类型的注释

* chore: Apply suggestion from @sourcery-ai[bot]

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* chore: 搜索框放到导航栏上方

* chore: UpdateSourceTrigger

* rft: 通过附加属性实现

* rft: 实时遍历可视树,结束搜索时还原展开状态

* perf: 雷霆边框

* chore: 等待界面更新后再搜索

---------

Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2026-05-28 12:08:07 +08:00
uye
c7f83cc154 chore: 删除多余标题 2026-05-28 08:11:18 +08:00
uye
f311cd9bcc ai: 调整 changelog skill 2026-05-28 08:06:35 +08:00
uye
98445b29e9 chore: 公告也改用 MarkdownDataHelper 2026-05-28 08:03:29 +08:00
uye
a9520e2298 feat: 新增 MarkdownDataHelper 2026-05-28 07:56:40 +08:00
github-actions[bot]
fe961feb75 docs: Auto Update Changelogs of v6.11.0-beta.1 (#16898)
* docs: Auto Generate Changelog of Release v6.11.0-beta.1

* docs: changelog

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-05-28 07:22:03 +08:00
uye
8f8d9bd6b2 i18n: 添加任务复制失败的本地化翻译 2026-05-28 06:56:52 +08:00
uye
1a4512976b docs: 补全 指定天数内的理智药 相关文档 2026-05-28 06:50:20 +08:00
uye
14157a9085 perf: 优化 FightTaskStageResetModeConverter 与 RecruitTaskHoldTagsConverter 嵌套逻辑 2026-05-28 06:41:06 +08:00
uye
1c0f5a985f chore: 调整静态视频路径的绑定 2026-05-28 06:36:07 +08:00
uye
b9cbfaa338 docs: skip_tags -> preserve_tags 2026-05-28 06:30:53 +08:00
uye
3f07db484f chore: 在 OnCustomToolTipChanged 中增加对 PART_Border 为空的防护,以避免在模板应用前出现空引用异常 2026-05-28 06:27:05 +08:00
uye
bf6654eb31 chore: 调整特定平台下的 IsNotificationAvailable 返回 2026-05-28 06:25:44 +08:00
github-actions[bot]
a9025a8c4b feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26541802412
[skip changelog]
2026-05-27 22:12:39 +00:00
github-actions[bot]
3039e41c3f chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26540052175
[skip changelog]
2026-05-27 21:35:27 +00:00
github-actions[bot]
49e660f3ea chore: Auto Update Game Resources - 2026-05-27
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26536825404

[skip changelog]
2026-05-27 20:29:04 +00:00
uye
a5a237f53f chore: 改漏了——
[skip changelog]
2026-05-28 03:41:42 +08:00
uye
fa11d62642 chore: 增加基建小房子切换兜底 2026-05-28 03:39:36 +08:00
uye
f64a353c14 fix: 使用小房子转跳后无法切换基建设施 2026-05-28 03:18:00 +08:00
uye
d763c9b152 chore: 添加主任务右键效果切换提示 2026-05-28 02:56:09 +08:00
uye
676c3bda4a chore: 加回右键菜单和单次运行
fix #16889
2026-05-28 02:44:16 +08:00
HY
92d939b36c chore: 繁中服「天想」主題 (#16893)
chore: 繁中服「孤星」主題
2026-05-28 01:54:33 +08:00
github-actions[bot]
b30112b5b7 chore: Auto Templates Optimization
Triggered by 70cd6d5324

[skip changelog]
2026-05-27 10:45:46 +00:00
HY
70cd6d5324 fix: 嘗試修復繁中服界園肉鴿無法放棄探索 (#16887) 2026-05-27 18:45:24 +08:00
Status102
2f14464a91 perf: NotificationImplWpf当Toast不可用时提示原因 (#16877)
* perf: NotificationImplWpf当Toast不可用时提示原因

* i18n: by uye

Co-authored-by: Status102 <102887808+status102@users.noreply.github.com>

* i18n: JP

* i18n: zh-tw

* i18n: KR

* i18n: machine translate

---------

Co-authored-by: Manicsteiner <Manicsteiner@outlook.com>
Co-authored-by: momomochi987 <45387477+momomochi987@users.noreply.github.com>
Co-authored-by: HX3N <scarlet7518@gmail.com>
2026-05-27 18:44:38 +08:00
status102
93af38fbe4 fix: Roi.height 越界 2026-05-27 16:03:56 +08:00
status102
9c91b666cb fix: 避免多次correct_rect后返回全图rect 2026-05-27 12:58:08 +08:00
status102
7a33b92d58 fix: 避免多次correct_rect后返回全图rect 2026-05-27 12:46:58 +08:00
status102
b48c640119 fix: LogWarn 等宏在 Release 下依旧输出scope导致额外间隔 2026-05-27 12:46:57 +08:00
Saratoga-Official
f50f67177f fix: 界园见钱问柳事件选择逻辑
fix #16879
2026-05-27 09:32:47 +08:00
github-actions[bot]
0c572e9f6c feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26478296389
[skip changelog]
2026-05-26 22:16:59 +00:00
github-actions[bot]
191e7035b6 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26476376564
[skip changelog]
2026-05-26 21:33:41 +00:00
github-actions[bot]
fda1cc3ff3 chore: Auto Update Game Resources - 2026-05-26
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26473080349

[skip changelog]
2026-05-26 20:25:29 +00:00
H2O_MERO
39e01179ce feat: 对一键长草列表进行了交互优化,并添加了复制按钮 (#16733)
* feat: 对一键长草列表进行了交互优化

* feat: 增加了删除和编辑两种矢量图标并使用

* fix:修复了按钮颜色没有及时恢复的问题

* feat:加入了复制按钮

* fix:修复了复制任务后部分任务丢失数据和出现渲染异常的问题

* refactor: 跟进和优化了引导界面的任务设置部分样式

* perf: 任务index设置

* perf:

* revert

* fix: NameDisplay -> NameOrTaskType

* fix: 额外的图标

* fix: GroupName

* rft: 提取通用属性,修复 RadioButton 绑定错误,非 Idle 时不显示对应操作按钮

* chore: 删除左键提示

* fix: 高亮背景色

---------

Co-authored-by: status102 <102887808+status102@users.noreply.github.com>
Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-05-27 02:38:59 +08:00
github-actions[bot]
d5a2e8efb9 chore: Auto Update Game Resources - 2026-05-26
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26464510177

[skip changelog]
2026-05-26 17:34:30 +00:00
uye
0289fa0381 feat: 公招保留指定词条 (#16586)
* feat: 保留指定词条

* chore: wpf 不再传递 skip_robot

* rft: 提取共用方法

* perf: 传参

* rft: 统一使用 PreserveTags

* fix: NameOrTaskType

---------

Co-authored-by: status102 <102887808+status102@users.noreply.github.com>
2026-05-27 00:46:02 +08:00
uye
5efdfa1b5c feat: 理智作战支持设定目标材料最大库存 (#16487)
* feat: 理智作战支持设定目标材料最大库存

* chore: 调整翻译绑定,修改运行时 IsEnable,移除无用属性

* chore: 调整描述

* chore: 调整缩进

* perf: 移除不必要的变更判断

* feat: 任务开始时刷新库存

* rft: rename

* chore: 运行时不刷新仓库数据,仅在进入任务时刷新一次

---------

Co-authored-by: status102 <102887808+status102@users.noreply.github.com>
2026-05-27 00:28:56 +08:00
uye
753547b5dd feat: 支持部分任务间通过导航栏切换 (#16869) 2026-05-27 00:28:22 +08:00
github-actions[bot]
2592b76569 chore: Auto Update Game Resources - 2026-05-26
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26460728688

[skip changelog]
2026-05-26 16:20:47 +00:00
Alex Gu
45aefd30d7 fix: filenum_ctrl SIGABRT (#16233) + PosixIO fork _exit + CI action SHA pin (#16502)
* fix: PosixIO::call_command 中 fork 后 child 缺少 _exit 导致 unwind 进 parent 代码

当 execlp 失败时,child 分支走 `return std::nullopt`,该子进程会从
PosixIO::call_command 一路 unwind 回 AdbController::call_command 及其
caller,跟 parent 同时跑:

- 在 child 地址空间副本中释放 m_callcmd_mutex(caller 处持有的 unique_lock)
- 后续命中 `kill(m_child, SIGTERM)` 时 child 视角 m_child==0
  → POSIX `kill(0, SIG)` 给整个进程组发信号 → 把 parent 一并杀掉
- 析构时双 close 同一 fd 号(kernel 已重用给别处)→ 关掉 parent 的
  socket / log fd → 后续 read/write 错乱

查看 git 历史发现回归引入于 #7748(perf: update PosixIO::call_command, 2023-12)。
当时 perf 重构把 child 分支结尾的 `::exit(exit_ret)` 替换成
`Log.error(...) + return std::nullopt`。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* ci: 将第三方 action 钉到 commit SHA,符合 GitHub 安全建议

https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-third-party-actions

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix: filenum_ctrl 中 std::filesystem 调用缺 error_code 导致 SIGABRT

Windows 上 debug 截图被另一进程占用时,std::filesystem 多个调用会抛 filesystem_error。
异常未被 filenum_ctrl / save_debug_image / AbstractTask::run 任一层
捕获,沿任务栈一路冒到 MaaCore 顶层(issue #16233)。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore: 清理 PosixIO 子分支 execlp 死赋值

按 Sourcery review 清掉死代码。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore: restore release package workflow

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 22:20:33 +08:00
Jin Zhaonian
a5e3176e49 fix: 更新检查失败时优先尝试 api2 再使用缓存 (#16873) 2026-05-26 21:58:20 +08:00
uye
fd9f396f74 chore: MT 入口 2026-05-26 21:57:03 +08:00
uye
a4cb1e716d rft: 统一使用重载的 GetValue 替换 Convert.To (#16866) 2026-05-26 10:21:04 +08:00
uye
fb64c1164e feat: TouchMode ToolTip 添加视频演示 (#16812)
* feat: TouchMode ToolTip 添加视频演示

* style: 空行

* rft: 拓展 TooltipBlock 支持自定义 ToolTip
2026-05-26 10:15:44 +08:00
github-actions[bot]
6b5a021b2e feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26421831573
[skip changelog]
2026-05-25 22:14:07 +00:00
Luhan Xiao
0a7f6e272c fix(macOS): 降低 RA4 和 RA15 二倍速识别阈值 (#16860)
## 变更内容

- 在 macOS平台差异配置中,为 RA4 和 RA15 的二倍速识别节点补充 `templThreshold: 0.7`
- 与此前 macOS的 iOS 差异配置保持一致

## 修改位置

- `resource/platform_diff/iOS/resource/tasks.json`

## 原因

RA4 和 RA15 在 iOS/macOS 触控环境下识别二倍速按钮时也有用户反馈出现模板匹配分数偏低的问题,和此前 RA1 的情况类似。  
因此仅在 iOS 平台差异文件中降低对应节点阈值,避免影响通用任务配置和其他平台。

## 说明

本次未修改通用任务文件 `resource/tasks/RA/Reclamation3.json`。

## Summary by Sourcery

错误修复:
- 在 macOS/iOS 的 platform-diff 任务配置中,降低 RA4 和 RA15 的双倍速度模板匹配阈值,以减少漏检情况。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Bug Fixes:
- Lower the double-speed template matching threshold for RA4 and RA15 in
the macOS/iOS platform-diff task configuration to reduce missed
detections.

</details>
2026-05-26 02:24:24 +08:00
status102
81b71409a8 Revert "fix: 任务匹配进入onErrorNext时, cur_task_ptr错误置空"
This reverts commit c27cefa307.
2026-05-25 18:33:37 +08:00
status102
34d6e682be rft: 界园肉鸽弹窗Next关闭
招募卷关闭
2026-05-25 18:21:17 +08:00
status102
c27cefa307 fix: 任务匹配进入onErrorNext时, cur_task_ptr错误置空 2026-05-25 18:21:17 +08:00
status102
5495615247 perf: TaskQueue CheckBox与添加任务按钮对齐 2026-05-25 14:34:22 +08:00
status102
5a2d0401e4 perf: 优化TaskQueue选中任务时设置按钮表现以突出当前选中的选项 2026-05-25 14:33:25 +08:00
status102
4f39102526 rft: rename
[skip changelog]
2026-05-25 14:17:28 +08:00
Rin
7c628d25a5 fix: 处理界园司岁台分队招募券 NEXT 关闭 (#16806)
* fix: 改为复用原模板

* rft: 重构为JieGarden@Roguelike@CloseCollectionContinue2

* perf: 可读性优化

---------

Co-authored-by: status102 <102887808+status102@users.noreply.github.com>
2026-05-25 11:31:40 +08:00
github-actions[bot]
6a286f05a3 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26373021279
[skip changelog]
2026-05-24 21:19:51 +00:00
uye
23e6245b89 Release v6.10.7 (#16851)
## Summary by Sourcery

更新 AdbLiteIO,以按设备序列号管理 adb 客户端,并改进线程安全的访问与释放行为。

增强点:
- 在 `adb shell`、`exec-out`、`push` 和交互式 shell 命令中,显式匹配并传递设备序列号,从而实现按设备管理
adb 客户端。
- 引入一个助手工具,以设备序列号为键延迟创建并复用 adb 客户端,并通过互斥锁进行保护,以支持 `call_command` 和
`interactive_shell` 的并发访问。
- 调整 adb 释放逻辑,在执行命令时避免持有客户端互斥锁,从而防止潜在的死锁。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Update AdbLiteIO to manage adb clients per device serial and improve
thread-safe access and release behavior.

Enhancements:
- Match and pass device serials explicitly in adb shell, exec-out, push,
and interactive shell commands, allowing per-device adb client
management.
- Introduce a helper to lazily create and reuse adb clients keyed by
device serial, guarded by a mutex to support concurrent access from
call_command and interactive_shell.
- Adjust adb release logic to avoid holding the client mutex while
executing commands, preventing potential deadlocks.

</details>
2026-05-25 04:07:09 +08:00
uye
ab7e4f5a4f fix: Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-25 04:02:24 +08:00
uye
75feed058b docs: changelog
Updated version from 6.10.6 to 6.10.7 with highlights and fixes.
2026-05-25 03:54:39 +08:00
Loong
975981c568 fix: 修复 adb-lite 跳过 adb connect 后未初始化 client (#16850)
## 概述

- 在 adb-lite 处理 `shell`、`exec-out`、`push` 和交互式 shell 命令时,从 `-s <serial>`
参数懒初始化 adb-lite client。
- `adb connect <address>` 路径继续使用同一个 client 获取逻辑。
- 记录当前 adb-lite serial,在切换设备时重新创建 client。

## 问题原因

#15300 之后,`AdbController::connect` 会先检查 `adb devices`。如果目标设备已经在列表中,例如
`emulator-5554 device`,就会跳过 `adb connect <serial>`。

这个行为对普通 adb 路径是合理的,但 adb-lite 之前只在 `adb connect` 分支里初始化
`m_adb_client`。因此当设备已经在线、`adb connect` 被跳过时,后续的 `adb -s emulator-5554
shell ...` 会进入 adb-lite 路径,但此时 client 尚未初始化,日志中会出现:

```text
adb client not initialized
fallback to NativeIO
```

## 修复方式

把 adb-lite client 的初始化从 `adb connect` 分支中解耦出来。只要 adb-lite 收到带有 `-s
<serial>` 的 `shell`、`exec-out`、`push` 或交互式 shell 命令,就根据该 serial 获取或创建对应的
`adb::client`。

这样保留了 #15300 中“设备已在线时跳过 `adb connect`”的行为,同时也保证 adb-lite 不再依赖 `adb
connect` 作为唯一初始化入口。

## 验证

- 使用本机已安装的 maa-cli, MaaCore v6.10.6 和 Android 35 arm64 AVD 复现:
  - `adb devices` 返回 `emulator-5554 device`
  - 日志出现 `adb client not initialized`
  - 随后出现 `fallback to NativeIO`
- 编译并安装修复后的 Core:
  - 日志显示 `Setting adb lite enabled to true`
  - 日志到达 `Connected`
  - 日志到达 `FastestWayToScreencap Encode`
  - 未再出现 `adb client not initialized`
  - 未再出现 `fallback to NativeIO`

## Summary by Sourcery

确保 adb-lite 为每个设备序列号初始化并复用一个客户端,用于 shell、exec-out、push 和交互式 shell 命令,并且与
adb connect 的执行路径无关。

Bug 修复:
- 当已在线设备跳过 adb connect 时,防止 adb-lite 因客户端未初始化而失败。

增强功能:
- 追踪当前的 adb-lite 设备序列号,并在序列号变化时重新创建 adb 客户端,以支持多设备会话。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Ensure adb-lite initializes and reuses a client per device serial for
shell, exec-out, push, and interactive shell commands, independent of
the adb connect path.

Bug Fixes:
- Prevent adb-lite from failing with an uninitialized client when adb
connect is skipped for already-online devices.

Enhancements:
- Track the current adb-lite device serial and recreate the adb client
when the serial changes to support multiple device sessions.

</details>
2026-05-25 03:50:35 +08:00
uye
8ac6c4a593 Release v6.10.6 (#16846)
生息演算应该差不多了,之后发 6.11.0beta 了

## Summary by Sourcery

为 v6.10.6 版本优化生产环境自动化、连接处理、通知机制和文档。

Bug 修复:
- 改进基础设施生产中的产品识别与变更流程,包括重试、校验以及在不阻塞人员调度的前提下进行失败上报。
- 修复无人机使用逻辑,正确区分自定义基础设施配置与基于参数的设置,并确保在不同任务之间正确跟踪状态。
- 修正 RegionOCRer 的 ROI 处理方式,对整幅图像应用掩码,避免错误的坐标偏移。
- 收紧 ADB 连接行为,正确处理仅包含序列号的地址,并确保连接命令既被执行又能正确上报连接成功。
- 规范 Bark 和 Gotify 通知 URL,处理尾随斜杠,并稳健地构造消息端点。
- 确保在 WPF 任务队列视图模型中移除任务条目时,同时释放视图模型以解除事件订阅。
- 调整类 Roguelike 模式的最后奖励逻辑,在每次运行后始终重置可收集模式标志,而不受主题影响。

增强:
- 在基础设施任务中新增带置信度阈值保护的产品检测,并将新的变更流程接入无人机使用决策和 UI 日志。
- 在任务设置视图模型中引入可复用的 UI 刷新作用域辅助工具,并在多个任务队列设置面板中采用,以避免刷新状态不一致。
- 在所有支持的语言和集成协议文档中,更精确地记录 RA-4 回收算法的前置条件和流程。
- 明确并扩展关于 ADB 触控模式使用及建议的内部知识。
- 改进遮罩模板匹配器中的日志输出与缓存管理格式,以便更好地诊断问题。
- 新增对产品变更失败的上报支持,将其记录到 WPF UI 日志中。

CI:
- 使用脚本化的基于 wingetcreate 的流程替换 WinGet 发布 Action,通过 GitHub API
解析发布资源、验证工具哈希,并使用专用 Token 提交更新后的包清单。

文档:
- 更新所有语种的 RA-1/RA-4/RA-15 回收算法手册和集成协议文档,以反映新的 RA-4 策略流程、操作员要求以及建筑移除相关说明。
- 扩展内部问题日志分析知识库,增加关于 ADB 触控模式行为及使用建议的详细指引。

杂项:
- 新增内部 Cursor 技能定义,用于结构化的多模块代码评审报告流水线。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Refine infrastructure production automation, connection handling,
notifications, and documentation for the v6.10.6 release.

Bug Fixes:
- Improve product recognition and change flow in infrastructure
manufacturing, including retries, verification, and failure reporting
without blocking staffing.
- Fix drone usage logic to distinguish between custom infrastructure
configuration and parameter-based settings, and ensure correct state
tracking across tasks.
- Correct RegionOCRer ROI handling by applying the mask over the full
image and avoiding incorrect coordinate offsets.
- Tighten ADB connect behavior to properly handle serial-only addresses
and ensure the connect command both executes and reports a successful
connection.
- Normalize Bark and Gotify notification URLs to handle trailing slashes
and construct message endpoints robustly.
- Ensure task item removal in the WPF task queue view model disposes
view models to release event subscriptions.
- Adjust roguelike last reward logic to always reset collectible mode
flags after runs, regardless of theme.

Enhancements:
- Add confidence-threshold-guarded product detection in infrastructure
tasks and wire new change flows into drone usage decisions and UI
logging.
- Introduce a reusable UI refreshing scope helper in task settings view
models and adopt it across multiple task queue settings panels to avoid
inconsistent refresh state.
- Document RA-4 reclamation algorithm prerequisites and flow more
precisely across all supported languages and integration protocol docs.
- Clarify and expand internal knowledge about ADB touch mode usage and
recommendations.
- Improve logging and cache management formatting in masked template
matcher for better diagnostics.
- Add support for reporting product change failures to the WPF UI log.

CI:
- Replace the WinGet publishing action with a scripted
wingetcreate-based flow that resolves release assets via GitHub API,
verifies the tool hash, and submits updated package manifests using a
dedicated token.

Documentation:
- Update reclamation algorithm RA-1/RA-4/RA-15 manuals and integration
protocol docs in all locales to reflect the new RA-4 strategy flow,
operator requirements, and building removal notes.
- Extend internal issue log analysis knowledge base with detailed
guidance on ADB touch mode behavior and recommendations.

Chores:
- Add an internal Cursor skill definition for a structured, multi-module
code review report pipeline.

</details>

## Summary by Sourcery

完善用于 v6.10.6 版本的基础设施生产自动化、连接处理、通知端点、Roguelike 奖励标志以及回收算法文档。

Bug 修复:
- 通过在整张图像上应用掩码并避免错误的基于 ROI 的坐标偏移,修正 RegionOCRer 的掩码 OCR 处理。
- 收紧 ADB 连接处理,避免仅通过序列号发起的无效连接尝试,并确保 `connect` 命令既能正确执行,又能准确报告连接成功。
- 修复 WPF 任务队列项移除逻辑,以便在移除时释放任务项视图模型并注销事件订阅。
- 确保 Roguelike 可收集模式标志在每次运行后都会重置,而不受主题影响,从而使“烧水模式”能够正确恢复到用户设置。
- 规范 Bark 和 Gotify 通知 URL,以处理尾部斜杠,并稳健地构造消息端点。
- 调整基础设施无人机的使用方式,以区分基于参数的设置与自定义基础设施配置,避免在自定义模式下使用参数无人机。

增强:
- 在基础设施生产任务中引入带置信度阈值保护的产品检测,并将其接入产品变更逻辑和无人机使用决策。
- 改进基础设施产品切换流程,引入验证、重试与失败报告机制,同时在产品切换仍失败的情况下允许人员编排继续进行。
- 优化带掩码模板匹配器的缓存日志和布局,以便诊断信息更清晰。
- 将产品切换失败情况上报到 WPF UI 日志。
- 扩展关于 ADB 触控模式行为及推荐使用模式的内部知识库。

CI:
- 用基于脚本的 `wingetcreate` 流程替换 WinGet 发布 Action,通过 GitHub API
解析发布资源、验证工具哈希,并使用专用令牌提交更新后的包清单。

文档:
- 更新所有本地化版本中的 RA-1/RA-4/RA-15 回收算法手册和集成协议文档,以反映新的 RA-4
策略流程、前置条件、操作员配置和建筑移除说明。

杂项:
- 新增内部 Cursor 技能定义,以支持结构化的、多模块的代码审查报告流水线。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Refine infrastructure production automation, connection handling,
notification endpoints, roguelike reward flags, and reclamation
algorithm documentation for the v6.10.6 release.

Bug Fixes:
- Correct RegionOCRer masked OCR handling by applying masks over the
full image and avoiding incorrect ROI-based coordinate offsets.
- Tighten ADB connection handling to avoid invalid serial-only
connection attempts and ensure connect commands both execute and report
successful connections.
- Fix WPF task queue item removal to dispose task item view models and
release event subscriptions.
- Ensure roguelike collectible mode flags are reset after runs
regardless of theme so burn-water mode correctly reverts to user
settings.
- Normalize Bark and Gotify notification URLs to handle trailing slashes
and construct message endpoints robustly.
- Adjust infrastructure drone usage to distinguish between
parameter-based settings and custom infrastructure config, and avoid
using parameter drones in custom mode.

Enhancements:
- Introduce confidence-threshold-guarded product detection in
infrastructure production tasks and wire it into product change logic
and drone usage decisions.
- Improve infrastructure product change flows with verification, retry,
and failure reporting, while allowing staffing to proceed when product
changes still fail.
- Refine masked template matcher cache logging and layout for clearer
diagnostics.
- Report product change failures to the WPF UI log.
- Extend internal knowledge base on ADB touch mode behavior and
recommended usage patterns.

CI:
- Replace the WinGet publishing action with a scripted
wingetcreate-based flow that resolves release assets via GitHub API,
verifies the tool hash, and submits updated package manifests using a
dedicated token.

Documentation:
- Update RA-1/RA-4/RA-15 reclamation algorithm manuals and integration
protocol docs in all locales to reflect the new RA-4 strategy flow,
prerequisites, operator setup, and building removal notes.

Chores:
- Add an internal Cursor skill definition to support a structured,
multi-module code review report pipeline.

</details>
2026-05-24 22:51:25 +08:00
uye
ca687b3024 docs: changelog 2026-05-24 22:30:07 +08:00
status102
b09c0f0678 Revert "rft: IsRefreshingUI 自动化支持"
This reverts commit 8e239b8bc2.
2026-05-24 22:28:56 +08:00
status102
ae194cf412 fix: TaskItem事件 2026-05-24 22:28:55 +08:00
uye
95c1e7b724 docs: changelog 2026-05-24 22:24:44 +08:00
uye
cc09e5b216 fix: 傀影肉鸽烧水后无法前往指定难度
fix #16843
2026-05-24 20:54:52 +08:00
github-actions[bot]
aef75152fe feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26360469934
[skip changelog]
2026-05-24 11:52:00 +00:00
status102
9c49148d72 fix: RegionOCR use_raw = false时bounding_rect的扩展失效 2026-05-24 16:47:56 +08:00
status102
a0cc100a96 fix: 事件订阅泄露 2026-05-24 15:26:21 +08:00
MistEO
3f9c91efce ai: 全项目代码审查 - only cursor can do (指薅羊毛 2026-05-24 12:23:05 +08:00
Saratoga-Official
c8e3d38529 fix: RA1交付石材有可能识别不到 2026-05-24 12:19:03 +08:00
github-actions[bot]
dd01602870 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26344814115
[skip changelog]
2026-05-23 22:08:42 +00:00
github-actions[bot]
e06dfaacb8 chore: Auto Update Game Resources - 2026-05-23
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26344701306

[skip changelog]
2026-05-23 22:03:24 +00:00
Rin
60104dbd89 fix: 基建制造站切换产物流程稳定性提升 (#16747)
* fix: 基建制造站切换产物流程稳定性提升

* fix: 切换产物失败时向 GUI/Log报错

* refactor: 换产物失败后仍进入换人步骤,不停止任务链

*fix: 拆分自定义/params 无人机使用变量

* fix: 补充缺失产物任务配置的空指针保护。

---------

Co-authored-by: Roland125 <oroland125@outlook.com>
2026-05-24 05:41:11 +08:00
github-actions[bot]
a1f736a763 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26343777856
[skip changelog]
2026-05-23 21:18:46 +00:00
Loong
48424a68c5 fix: refactor ADB connection logic to only connect when needed (#15300)
优化 ADB 连接处理逻辑,避免不必要的连接尝试,并在连接不需要或无效时改进错误报告。
2026-05-23 16:24:49 +01:00
Kaleb Luedtke
c14685311b ci:请使用 wingetcreate 代替 winget-releaser (#16813)
* fix: Use wingetcreate instead of winget-releaser

* fix: Pin to a version and hash

* fix: Specify to use PowerShell

* fix: Use GitHub API for fetching the download URLs

* fix: Don't set GITHUB_TOKEN

* fix: Trim leading character from version

* fix: Anchor regex for safety

* chore: Use newer API version

* fix: Ensure terminating errors terminate
2026-05-23 22:33:14 +08:00
uye
4499a0b9c5 chore: inheritdoc 2026-05-23 22:25:34 +08:00
uye
b6126a7392 fix: 修复 Bark 与 Gotify 无法使用反代路径 2026-05-23 22:23:21 +08:00
github-actions[bot]
f716362e03 chore: Auto Templates Optimization
Triggered by 8d236d83c5

[skip changelog]
2026-05-23 13:47:57 +00:00
萨拉托加
8d236d83c5 fix: RA-4已知问题 (#16821)
## Summary by Sourcery

为 `Reclamation3.json` 更新 RA Reclamation3 任务配置。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Update RA Reclamation3 task configuration for Reclamation3.json.

</details>
2026-05-23 21:47:38 +08:00
HX3N
7949869f2e chore: YostarKR UR ocr edit 2026-05-23 18:08:35 +09:00
status102
8e239b8bc2 rft: IsRefreshingUI 自动化支持 2026-05-23 16:27:09 +08:00
status102
53f1ac9e07 perf: 剿灭关使用代理卷后网络卡顿等待 2026-05-23 15:59:43 +08:00
status102
7f8f4bdfff fix: 自动战斗结束检测bypass 2026-05-23 11:08:59 +08:00
uye
b6dec3a403 ai: Update KNOWLEDGE.md with Connect.TouchMode information
Added details about Connect.TouchMode and its modes.
2026-05-23 06:31:40 +08:00
github-actions[bot]
c56bb31e19 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26312714696
[skip changelog]
2026-05-22 21:26:42 +00:00
573 changed files with 70095 additions and 4421 deletions

View File

@@ -1,219 +1,214 @@
---
name: changelog
description: 根据提交记录、PR、diff、现有 CHANGELOG 与历史 tag 内容,整理符合 MAA 发布规范的 changelog Markdown。用于修正工具自动生成的 changelog、合并同类改动、清理 bot 或 release 噪音,并产出可直接提交的最终版本
description: 依据 git 提交、diff、现有 CHANGELOG 与 tag,生成符合 MAA 规范、可直接写入 CHANGELOG.md 的最终 Markdown
---
# MAA Changelog Skill
## Goal
读取待发布范围内的 commit、diff、现有 CHANGELOG 与 tag输出可直接写入 `CHANGELOG.md` 的最终 Markdown。**只输出最终 Markdown**,不输出分析过程或代码围栏。
- 读取待发布范围内的 commit、PR、diff、现有 CHANGELOG 与对应 tag 内容,输出可直接写入 CHANGELOG.md 的最终 Markdown 片段
- 只输出最终 Markdown不输出分析过程、分类理由、筛选记录、额外说明或 Markdown 代码围栏。
- 以“最终用户看得懂、历史版本不断裂、同类改动不重复”为第一目标,不以保留原始 commit 标题为目标。
**必要输入**:目标版本号、提交范围(由 tag/PR/分支推导)、当前 CHANGELOG 内容
## Scope
> ⚠️ **版本号必须从用户/CI 提供的来源获取,禁止从 git tag 自行推测。** 若获取新版本号失败,必须通过 PR URL如 `https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17248`)直接访问网页提取标题中的版本号,**不得 fallback 到 git tag 推测**。推测版本号会导致版本号全错(如 v6.14.0-beta.1 被错推为 v6.13.1-alpha.1),进而连锁触发折叠块处理错误。
- 适用于正式版、测试版、补丁版的 changelog 整理与重写。
- 正式版的补丁版本不应该修改 Highlights 中的内容,除非确实有用户可感知的重要变化。
- 当工具已经生成初稿时,初稿只可作为原始素材,不能直接信任其分类、版本归属、标题质量、去重结果与排序结果。
- 如果 commit 标题含糊、口语化、玩梗、只写 review、typo、warning、日志顺序、调整坐标等必须查看 diff 后改写为专业、完整、可独立理解的用户向描述。
## 1. 净变更优先
## Required Inputs
- 同一功能/问题的多条相关 commit **合并为单条**,描述最终效果。
- commit 标题含糊/口语化/玩梗时**必须查看 diff 后改写**为专业描述。
- **Revert**:完整撤销则删除;部分保留则合并为一条准确描述最终结果的条目。
- "review""typo""日志顺序""调整坐标""build warning" 等不单独保留,除非 diff 证明修复了用户可感知问题。
- **多服合并**:按**单项改动**拆分(而非 commit/PR 整体),每项再跨服合并。服务器名用 `/` 连接(如 `YostarEN/JP/KR`),多位作者依次排列。
- 示例:某 PR 为 JP 更新主题+新增章节导航EN/KR 只更新主题 → 拆为 `YostarEN/JP/KR 更新主题` + `YostarJP 新增章节导航`
- 目标版本号。
- 待发布的提交范围,或可推导该范围的 PR、tag、分支信息。
- 当前 CHANGELOG 内容。
- 如果目标版本与已有正式版属于同一非 patch 版号,必须先读取对应正式版 tag 下的 changelog 内容,再决定如何合并与追加。
## 2. 分类
## Non-Negotiable Rules
| 模块 | 适用场景 |
|------|----------|
| **新增 \| New** | 新功能、新支持、新入口、新兼容性 |
| **改进 \| Improved** | 能力增强、性能/稳定性/体验/识别优化、重构收益 |
| **修复 \| Fix** | 缺陷修正、兼容性/异常/回归修复 |
| **文档 \| Docs** | 纯文档变更 |
| **其他 \| Other** | 仅内部维护、CI、脚本等不适合省略时 |
| **MaaMacGui** | 子仓库独立区块,放在 `### 其他 \| Other` 之后内部复用相同分类PR 格式 `([#数字](https://github.com/MaaAssistantArknights/MaaMacGui/pull/数字))` |
### 1. 先看净变更,再写条目
仅保留有内容的模块,空模块省略。
- 对同一功能、同一问题或逻辑相关的多条 commit应合并为单条 changelog 项。
- 合并后的描述必须简洁、专业、面向最终用户,避免堆实现细节。
- 若 commit 标题不足以表达改动价值,必须结合 diff 重写标题。
- Revert 不是 changelog 项。遇到 Revert 时,必须结合最终 diff 判断净效果:
- 若原改动被完整撤销,则 Revert 与原始项都删除。
- 若最终仍保留部分语义,则把原始项与 Revert 合并为一条准确描述最终结果的 changelog 项。
- 不要把“review”“日志顺序”“调整坐标”“typo”“build warning”这类缺乏用户语义的提交原样保留为条目除非 diff 证明它确实修复了用户可感知问题。
## 3. 排序与文案
### 2. 分类按用户价值,不按 commit 前缀
- **中文在前,纯英文条目排最后**;按重要性排序:功能/接口变更 > 兼容性/优化 > 次要修复/杂项。
- 列表前缀统一 `*`;中英文与数字间留空格(如"修复 3 个 bug")。
- 术语统一大小写WPF、Json、Markdown、CSV、Info。
- 保留作者与 PR 引用,格式 `([#12345](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/12345)) @author`;多条合并时引用合并括注。
- **作者归属**:从 commit 的 `%an`author字段获取**不要**用 `%cn`committer——squash merge 的 committer 通常是 GitHub 或执行合并的人,而非贡献者。对于多贡献者 PRsquash 后协作者信息丢失),需访问 PR 页面确认发起人与协作者,全部列出(用空格分隔,如 `@author1 @author2`)。
- 改动必须放入正确模块Highlights、新增 | New、改进 | Improved、修复 | Fix、文档 | Docs、其他 | Other。
- 新功能、新支持、新入口、新导出能力、新兼容性,放“新增 | New”。
- 现有能力增强、性能提升、稳定性提升、体验优化、识别优化、重构后带来的用户收益,放“改进 | Improved”。
- 缺陷修正、兼容性修复、异常处理、回归修复,放“修复 | Fix”。
- 纯文档变更放“文档 | Docs”。
- 仅内部维护、CI、脚本、杂项且不适合省略时才放“其他 | Other”。
- 如果自动生成结果分类错误,必须移动到更合适的模块并同步调整描述。
## 4. 版本历史与折叠块
### 3. 模块内排序与文案规范
**版本类型**:不带 `-beta`/`-alpha` 后缀为正式版(含首个 `X.Y.0` 与 patch `X.Y.1+`);带后缀为测试版。
- 中文条目放在前面,纯英文条目排在该模块最后
- 同一模块内按逻辑相关性或重要性排序:功能与接口变更优先,其次是兼容性或实现优化,最后是次要修复或杂项
- 列表统一使用 * 作为项目前缀
- 中英文数字混排时,在英文词与数字之间保留空格,例如:修复 3 个 bug、支持 3D 功能
- 统一常见术语大小写与写法,例如 WPF、Json、Markdown、CSV、Info。
- 保留作者、PR、commit reference例如 (#12345) @author;若多条相关提交被合并,可把相近引用合并到同一项后括注。
- **跨次版本号**(正式版或新次版本的第一个测试版,如 v6.12.x → v6.13.0、v6.13.0 → v6.14.0-beta.1**删除**上一个次版本号的所有历史折叠块
- **同次版本号内**patch、beta 之间):当前版本用 `<details open>`,历史版本各自 `<details>` 收起,紧跟其后
- 当前版本只写增量变化,不得复制更早版本已发布条目
- **发布正式版时**:将所有前置测试版条目按模块合并为正式版单一 `<details open>` 区块,跨测试版去重,只保留最终有效版本。其后不再保留 beta 折叠块(除非有更早正式版)
### 4. 正式版与 patch 版的历史连续性
### 正式版详细内容:合并已有测试版 changelog禁止全量重分析
- 正式版严禁只留下单独的 patch 版本内容。
- 如果目标正式版与已有正式版属于同一非 patch 版号,必须对比对应 tag 下的 changelog并把当前新增改动追加到原有内容之后保持版本历史连续。
- patch 版详细区块只能写“自上一发布版本之后新增的变化”,不能把更早正式版已经出现过的条目整段复制到当前 patch 版本下面。
- 例如生成 v6.10.4 时v6.10.4 区块只能写 v6.10.3 之后的新变化v6.10.0、v6.10.1、v6.10.2、v6.10.3 的既有内容应保留在历史区块,而不是重新抄进 v6.10.4。
- 若非 patch 版本不同,则直接根据现有内容组织该版本及其历史区块。
### 5. patch 版本的 Highlights 复用规则
**禁止**在发布正式版时从 git 历史全量重新分析提交/阅读 diff。正式版详细内容**直接合并已发布各测试版 changelog 的条目**
- patch 版本(例如 v6.10.4 相对于 v6.10.3如果没有用户可感知的重要新功能或重大变化必须直接复用其正式版父版本v6.10.3)的 Highlights 内容,不得自行重写或另起一套
- patch 版本复用 Highlights 时,只改顶部版本号标题(例如 `## v6.10.3``## v6.10.4`Highlights 正文原样保留
- 当 patch 版本确实包含用户可感知的重要新变化时(例如新增了重大功能、改变了核心交互),可以为 Highlights 追加新段落,但必须保留原有 Highlights 内容,新段落追加在末尾
1. 读取同次版本号所有测试版区块beta.1 … beta.N按模块汇总去重——同一条目只保留最新表述被覆盖的保留修正后结果
2. **唯一增量**:「最后一个测试版 tag → HEAD」的小段提交逐一检查后补充有用户可感知效果才补
3. 合并后统一排序、统一文案
### 6. patch 版本编辑的完整结构
## 5. Highlights
- 输出文件的结构必须严格遵循以下层次,不得把 patch 版本的详细内容插入到父版本的 Highlights 与详细内容之间:
1. 顶部:`## vX.Y.Z`patch 版本标题)
2. `### Highlights`(复用父版本内容,或在有必要时追加新段落)
3. `----`
4. 英文 Highlights
5. `----`
6. `以下是详细内容:`
7. `## vX.Y.Z`patch 版本详细内容:改进、修复、文档等)
8. `## vX.Y.Z-1`(上一 patch 版本的详细内容,不包含 Highlights
9. 更早版本的详细内容...
10. `## vX.Y.0`(正式版详细内容,不包含 Highlights
- 父版本及更早 patch 版本的历史区块只保留详细内容(改进、修复等),不重复 Highlights、不重复"以下是详细内容:"引导语,因为这些已经在最顶部出现过
- **中英双语,先中后英**。中文直接展示,英文放入 `<details><summary><b>English</b></summary>` 折叠块。
- **累计性质**同一次版本号X.Y.0)下,顶层 `### Highlights` 是整个次版本号至今的**累计亮点**——应涵盖所有已发布测试版的亮点 + 当前增量,**而非仅当前测试版的增量亮点**。
- **精简原则**:只保留最值得强调的变化(通常 3-4 条),不要机械搬运所有条目。宁可少不可多——同时出现 4 条以上说明没有做好筛选,需要合并同类项或删减次要条目。
- **新次版本的第一个测试版**(如 v6.14.0-beta.1,跨次版本号):前驱版本属于旧次版本号,所有旧历史折叠块已被删除,**Highlights 从零编写**(总结本提交范围内最值得强调的变化)。此时不存在可复用的前驱版本 Highlights。
- **同次版本号后续版本**patch、beta.2+、由测试版晋升的正式版):相对**直接前驱版本**patch 的父正式版 / 测试版的上一测试版 / 正式版晋升时的最后一个测试版):
- 无用户可感知重大变化 → **直接复用前驱版本 Highlights**,仅改顶部版本号标题,不改写内容。
- 有重大新变化 → **以前驱版本 Highlights 为基础,补充新亮点后重新审视、合并或替换**。具体规则:
1. 先完整保留前驱版本的所有段落。
2. 判断新增内容是否值得进入 Highlights值得的在末尾追加新段落。
3. 追加后若总数偏多(通常 >4 条),逐条审视:可合并同类项,也可**将前驱版本中相对凑数/次要的条目直接替换为更重要新亮点**(替换 ≠ 整体丢弃,而是逐条权衡)。
4. **绝对禁止**整体丢弃前驱版本 curation——即不可仅保留当前版本增量亮点、删除全部前驱亮点。但逐条替换凑数条目是允许的。
- **由测试版晋升的正式版**:判定基准是最后一个测试版。若最后一个测试版到正式版之间只有 CI、chore、内部维护等Highlights 一字不改复用,只更新顶部版本号标题
### 5. Highlights 必须中英双语且先中后英
## 6. 噪音过滤
- 输出顶部必须包含当前目标版本,例如 ## vX.Y.Z
- 必须包含 ### Highlights。
- Highlights 必须先完整写中文小结,再使用 ---- 分隔,再完整写英文小结。
- 中文与英文都应按主题分段,标题简洁明确,正文面向最终用户,不是 commit 列表翻译。
- Highlights 只总结本次版本中最值得强调的变化,不要把所有条目机械搬进去。
**删除**bot 自动生成(`Auto Update Game Resources``Auto Templates Optimization`)、`Release vX.Y.Z``Auto Update/Generate Changelog``Update CHANGELOG``Bump version`、带 `[skip changelog]` 标记的提交
### 6. 必须过滤的噪音项
**不过滤**chore、perf 或看似内部的提交——只要有用户可感知效果(启动体验、性能、稳定性等),一律保留。
- 删除或忽略纯 bot 自动生成的 changelog、update、release 条目。
- 删除显式的 Release 发布记录,例如 Release vX.Y.Z。
- 删除或忽略 Generate、Auto Update、Auto Generate、Update CHANGELOG、Bump version 之类自动维护条目。
- 删除“只是在更新 changelog”而没有真实产品变更的提交记录。
- 删除已被历史版本覆盖或重复搬运的旧条目。
## 7. 翻译判断
## Workflow
判断依据是「该条目的目标读者是谁」。
1. 先确定本次发布边界:目标版本、上一版本、对应 tag、待发布 commit 范围
2. 读取现有 CHANGELOG 与目标范围内的 diff不要只根据 commit 标题下结论。
3. 先过滤 bot、release、generate、update changelog、revert、重复历史条目等噪音。
4. 按“净变更”合并同类提交,必要时从 diff 改写标题。
5. 按用户价值重新分类到正确模块,而不是沿用自动生成结果。
6. 在每个模块内完成排序、术语统一与中英文条目整理。
7. 编写中英双语 Highlights先中文后英文中间用 ---- 分隔。
8. 输出完整 Markdown 片段包含顶部版本、Highlights、以下是详细内容、当前版本区块与历史版本区块。
**用中文(默认)**国服CN、繁中服txwy、跨服/全服通用改动、行为描述(`add support for X` → 「新增支持 X」、含糊/玩梗的英文 commit 标题改写
## Common Failure Patterns To Correct
**整条保留英文**——仅针对 YostarEN/JP/KR 等外服且不涉及国服的改动。整条描述(含动词)均保留英文,**不要**只保留专有名词而把描述译成中文。原因:外服条目目标读者是玩该外服的用户,能看懂英文;外服关卡/活动/主题名(如 `lone trail``JieGarden`)在中服可能不存在或译名不同,翻译会误导。
-`YostarEN preload lone trail + fix JieGarden themes`
-`YostarEN/JP/KR 更新落叶逐火与界园主题`(整条译成中文,且「落叶逐火」是中服译名)
- 把旧版本已有条目整段复制到当前 patch 版本
- 把 Revert 原样保留成单独 changelog 项。
- 把 Release vX.Y.Z、Auto Update Changelogs、Update CHANGELOG、Bump version 之类自动提交写进文档或其他模块。
- 把同一功能拆成多条重复表述,例如同一个生息演算功能拆成多个相近新增或改进条目。
- 保留玩梗、口语化、半成品标题,例如不会现在还有人选沙中遗火吧、特意删的 PNS 怎么又给加回来了。
- 机械沿用 commit type 导致分类错误,例如把用户能感知的修复放进其他,把兼容性提升放进新增。
- patch 版本没有用户可感知的重要新变化,却自行重写了独立的 Highlights而非复用父版本内容。
- 把 patch 版本的详细内容插入到父版本的 Highlights 与详细内容之间,破坏了文件结构。
- patch 版本的历史区块中重复保留了 Highlights 和"以下是详细内容:"引导语,这些应只在顶部出现一次。
**混合**:同一 commit/PR 同时含国服与外服改动 → 按 §1 拆为多条,国服用中文,外服保留英文
## Output Requirements
**代码/技术标识始终保留原文**(不分中外服):任务名(`Stage``Roguelike``Depot`)、配置项、接口名、文件名,以及 WPF、Json、Markdown、CSV、onnx、ADB、minitouch 等(大小写见 §3
- 输出完整 Markdown 文件片段。
- 顶部必须包含当前版本标题,例如 ## vX.Y.Z。
- 顶部必须包含 ### Highlights并满足先中文、后英文、用 ---- 分隔的格式。
- Highlights 之后必须接“以下是详细内容:”或等价的历史区块引导语。
- 详细内容中的模块标题统一使用以下格式:
- ### 新增 | New
- ### 改进 | Improved
- ### 修复 | Fix
- ### 文档 | Docs
- ### 其他 | Other
- 列表项统一使用 *。
- 仅保留有内容的模块;空模块省略。
## Output Template
## 8. git 历史编码Windows PowerShell
```powershell
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; git -c core.quotepath=false -c i18n.logoutputencoding=utf-8 -c i18n.commitencoding=utf-8 log --encoding=utf-8 --format="%H %s" RANGE | ForEach-Object { [System.Text.Encoding]::UTF8.GetString([System.Text.Encoding]::Default.GetBytes($_)) }
```
如仍乱码:`| Out-File -Encoding utf8 -FilePath "$env:TEMP\commits.txt"` 后用 read_file 读取。
## 9. Squash PR 作者归属
仓库默认使用 squash mergesquash 后的 commit 会丢失原始分支上的多提交者信息:
- **`%an`author= PR 发起人**,是默认归属依据。**不要**用 `%cn`committersquash 的 committer 通常是 GitHub 或执行合并维护者。
- **多贡献者 PR**:如果 PR 有其他协作者Co-authored-by、分支上有他人 commitsquash 后这些信息可能被压缩或仅保留在 PR 页面的 contributor 列表中。对无法确认的 PR**必须访问 PR 页面**(如 `https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/12345`)核对发起人与 contributor 列表。
- 作者格式:单作者 `@author`;多作者用空格分隔 `@author1 @author2`
## 文件结构(自上而下)
1. `## vX.Y.Z` — 顶部版本标题(**不带日期**
2. `### Highlights`(中文)→ 英文 Highlights `<details>` 折叠块
3. `----` 分隔线 → `以下是详细内容:`
4. `<details open><summary><b>vX.Y.Z (YYYY-MM-DD)</b></summary>` — 当前版本(展开)
5. `<details><summary><b>vX.Y.Z-1 (YYYY-MM-DD)</b></summary>` — 历史版本(收起)
6. 更早版本各自独立折叠块…
折叠块内只保留详细内容,不重复 Highlights、不写 `## vX.Y.Z` 子标题。历史区块不重复 Highlights 和引导语。
## 输出模板
```markdown
## vX.Y.Z
### Highlights
#### 中文小结标题 A
#### 中文标题
中文小结正文。
中文正文。
#### 中文小结标题 B
<details>
<summary><b>English</b></summary>
中文小结正文。
#### English Title
----
English paragraph.
#### English Summary Title A
English summary paragraph.
#### English Summary Title B
English summary paragraph.
</details>
----
以下是详细内容:
## vX.Y.Z
### 改进 | Improved
* 条目 A (#12345) @author
### 修复 | Fix
* 条目 B @author
### 文档 | Docs
* 条目 C @author
## vX.Y.1
### 改进 | Improved
* 历史版本条目 @author
### 修复 | Fix
* 历史版本条目 @author
## vX.Y.0
<details open>
<summary><b>vX.Y.Z (YYYY-MM-DD)</b></summary>
### 新增 | New
* 正式版条目 @author
* 条目 ([#12345](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/12345)) @author
### MaaMacGui
#### 新增 | New
* 子仓库条目 ([#85](https://github.com/MaaAssistantArknights/MaaMacGui/pull/85)) @author
</details>
<details>
<summary><b>vX.Y.Z-1 (YYYY-MM-DD)</b></summary>
### 改进 | Improved
* 正式版条目 @author
* 历史版本条目 @author
### 修复 | Fix
* 正式版条目 @author
</details>
```
## Final Checklist
- **正式版**(跨次版本号 X.Y.0):不保留任何历史折叠块,仅 `<details open>` 单一区块。
- **patch 正式版 / 测试版**:保留历史折叠块,如上所示。
- 是否只保留最终有效的净变更,而不是机械罗列 commit
- 是否已经删除 bot、Release、Generate、Update CHANGELOG、Revert 等噪音项?
- 是否避免把旧版本已发布内容重复抄进当前 patch 版本?
- 是否所有条目都能被最终用户独立理解?
- 是否已经按模块正确分类、排序,并保持中文在前、英文在后?
- 是否已经输出完整 Markdown而不是说明文字或代码块
- 如果是 patch 版本且没有用户可感知的重要新变化,是否复用了父版本的 Highlights 而非自行重写?
- patch 版本的详细内容是否紧跟在"以下是详细内容:"之后,而非插入到父版本的 Highlights 下方?
- 历史版本区块中是否只保留详细内容,没有重复 Highlights 和引导语?
## 工作流程
### patch / 测试版
确定发布边界 → 读 CHANGELOG 与 diff → 过滤噪音 → 合并同类提交(必要时从 diff 改写)→ 分类 → 排序/术语/中英文整理 → 处理 Highlights**新次版本第一个测试版从零编写;后续测试版以前驱版本为基础,无重大变化直接复用、有重大变化补充新亮点后合并精简(禁止丢弃已有 curation 仅保留当前增量)** → 输出完整 Markdown。
### 正式版(由测试版晋升)
不做全量重分析,而是「合并已有测试版 changelog + 补少量增量 + 复用 Highlights」:
1. 读取同次版本号所有测试版区块。
2. 判定「最后一个测试版 tag → HEAD」是否有用户可感知变化一般仅 CI/chore → 增量为空)。
3. **Highlights**:复用最后一个测试版的(仅改版本号标题)。
4. **详细内容**:各测试版条目按模块汇总去重,补入增量,排序。
5. 跨次版本号不保留历史折叠块patch 正式版保留。
## 常见错误
- ❌ 旧版本条目整段复制到当前版本 / Revert 原样保留
- ❌ bot/release/auto generate/update changelog 写入文档
- ❌ 同一功能拆成多条重复 / 保留玩梗或半成品标题 / 机械沿用 commit type
- ❌ 无重大变化却重写 Highlights / 有重大变化时整体丢弃前驱版本 curation 仅保留当前增量 / 正式版全量重分析而非合并测试版
- ❌ 详细内容插入到 Highlights 与历史区块之间,破坏结构 / 历史区块重复 Highlights 或引导语
- ❌ chore/perf 默认当噪音过滤(应判断用户可感知效果)
- ❌ 从 git tag 自行推测版本号(应从 PR 标题/用户输入获取;`gh` 失败时用 URL 访问 PR 页面)
- ❌ 外服专有条目整条译成中文 / git 历史未指定编码导致乱码
- ❌ squash PR 作者取 `%cn`committer/合并者)而非 `%an`author/发起人);多贡献者 PR 未访问 PR 页面核对 contributor
## 最终检查
- [ ] 净变更合并,非机械罗列 commit噪音已删除
- [ ] 未重复旧版本内容?条目用户可独立理解?分类/排序/文案正确?
- [ ] 顶部标题 `## vX.Y.Z` 不带日期,折叠块 summary 带日期?
- [ ] Highlights 处理正确(新次版本第一个测试版从零编写;后续测试版以前驱为基础补充新亮点后合并精简,未丢弃已有 curation总条数通常 3-4 条)?英文 Highlights 在 `<details>` 内?
- [ ] 当前版本 `<details open>`,历史版本收起?历史区块无重复 Highlights/引导语?
- [ ] 正式版合并所有测试版为单一区块,未全量重分析?
- [ ] 跨次版本号已移除旧版本折叠块(含新次版本第一个测试版)?
- [ ] 子仓库 MaaMacGui 放在 `### 其他 | Other` 之后?
- [ ] 版本号从 PR 标题/用户输入获取,未从 git tag 推测?
- [ ] squash PR 作者取 `%an`(发起人),非 `%cn`(合并者)?多贡献者 PR 已核对 contributor 列表?
- [ ] 外服专有条目保留英文原文git 历史已指定编码?

View File

@@ -23,6 +23,7 @@
- 在使用 PC 端的过程中,如遇到影响使用的问题,建议改用 ADB 连接 Android 模拟器或移动设备,获得更稳定的体验。
- 我们也始终欢迎有能力的开发者参与贡献提交 Pull Request共同完善 PC 端支持。
- PC 的鼠标为客户端独立渲染的,鼠标会挡住需要识别的目标,在需要点击相同位置的图标或重试时极有可能导致下一次识别失败。
- PC 版存在根据鼠标位置产生界面偏转的效果类似手机端的陀螺仪视差而模拟器环境中界面通常保持在正中央因此不会受到影响。若鼠标未位于客户端窗口正中央UI 会发生偏转,导致图像识别失败,进而出现无法正常进入界面、循环切换主题等现象。如果使用 PC 客户端运行游戏,请将鼠标移动到游戏窗口正中央附近并保持不动,以避免界面偏转影响识别。
## Reception Clue Analysis
@@ -46,3 +47,13 @@
- MAA 在设计上仅针对单账号使用。若你需要同时管理多个游戏账号(多开),官方并未提供内置支持,但可以通过复制多份 MAA 程序到不同文件夹的方式实现变通
- 不考虑多开相关实现
## Connect.TouchMode: adb
- MAA 触控模式共三种:`minitouch`(默认)、`maatouch`(实验性)和 `adb input`(不推荐使用)。
- `maatouch``minitouch` 的 Java 实现,并额外支持按键输入,可避免 minitouch 走 adb 命令传输按钮带来的较高延迟。
- `adb input` 仅用于兼容部分系统版本过低、无法运行 `minitouch``maatouch` 的实体机设备。
- 能用前两种模式时,绝不推荐使用 `adb input`
- `adb input` 的滑动容易拖飞,为避免此问题,滑动速度会被设置得非常慢,且滑动距离与其他两种模式不同;在需要精确控制坐标的场景下无法使用。
- 若用户反馈触控相关异常且配置为 `adb`,应优先建议切换为 `minitouch``maatouch`,排除模式本身带来的延迟与兼容性问题。

View File

@@ -288,7 +288,7 @@ description: 分析 MaaAssistantArknights 上游仓库公开 Issue`https://gi
- 如果主线已修复,再看修复 commit 是否已进入 tag / release已发版建议升级未发版建议等待 release。
- `gui.new.json``gui.json` 和实际日志不一致时,不要急着判“用户配置写错了”;先看 `gui.new.json.bak``gui.json.old`,尤其是用户复现后又改回开关的场景。
-`ConnectConfig=PC` 的 issue 里,`Win32Controller::click` 正常返回不代表点击真的生效;要看点击后的下一帧中,按钮状态、数量 OCR、场景识别有没有变化。
- `gui.log`已使用 48 小时内过期的理智药这类高层提示,不一定等价于底层逐药 OCR 结论;如果 `asst.log` 明确识别到 `9天``NotExpiring` 等相反证据,应优先相信 `asst.log`
- `gui.log`"已使用即将过期的理智药"这类高层提示,不一定等价于底层逐药 OCR 结论;如果 `asst.log` 明确识别到 `3天``NotExpiring` 等相反证据,应优先相信 `asst.log`注意过期天数阈值现为可配置参数 `medicine_expire_days`,不再是固定 48 小时。
## Correlating With Code

View File

@@ -0,0 +1,262 @@
---
name: code-review-report
description: >-
全项目代码审查流水线,输出结构化审查报告到 Markdown 文件。
按模块拆分 Review Unit派发 subagent 并行审查,汇总发现并分类,
生成完整的问题清单报告,不执行任何修复。
Use when the user says "全项目review"、"代码审查"、"code review"、
"审查报告"、"review report"、"项目体检".
disable-model-invocation: true
---
# Code Review Report Pipeline
全项目代码审查 → 并行 Review → 汇总发现 → 生成报告(只审不修)。
## 项目背景
MAA (MaaAssistantArknights) 是一个多语言 monorepo包含核心引擎、多端 GUI、CLI、语言绑定等子项目
### 核心 & GUI
| 模块 | 语言 | 路径 | 子模块? | 构建 |
|------|------|------|---------|------|
| MaaCore | C++20 | `src/MaaCore/` | 否 | CMake |
| MaaWpfGui | C# / WPF (.NET 10) | `src/MaaWpfGui/` | 否 | MSBuild |
| MaaMacGui | Swift / SwiftUI | `src/MaaMacGui/` | **是** | Xcode |
| MAAUnified | C# / Avalonia (.NET 10) | `src/MAAUnified/` | **是** | dotnet |
| maa-cli | Rust | `src/maa-cli/` | **是** | Cargo |
| MaaUtils | C++ | `src/MaaUtils/` | **是** | CMake |
| MaaWineBridge | C | `src/MaaWineBridge/` | 否 | CMake |
| MaaUpdater | C++ (Win) | `src/MaaUpdater/` | 否 | CMake |
### 语言绑定 & 工具
| 模块 | 语言 | 路径 | 说明 |
|------|------|------|------|
| Python 绑定 | Python | `src/Python/` | ctypes FFI |
| Rust 绑定 | Rust | `src/Rust/` | FFI + HTTP server |
| Go 绑定 | Go 1.23 | `src/Golang/` | Gin HTTP wrapper |
| Java 绑定 | Kotlin/Java | `src/Java/` | JNA + Ktor HTTP/WS |
| Dart 绑定 | Dart | `src/Dart/` | Flutter FFI plugin |
| Woolang 绑定 | Woolang | `src/Woolang/` | C API wrapper |
| C++ 示例 | C++ | `src/Cpp/` | 集成示例 |
| 工具脚本 | Python/C++/Shell | `tools/` | 开发维护工具 |
| 任务资源 | JSON | `resource/` | 任务定义/模板/OCR |
| 文档站 | Markdown/TS | `docs/` | VuePress |
| 公共头文件 | C | `include/` | AsstCaller.h 等 |
### 编码规范执行
| 配置文件 | 作用范围 |
|----------|----------|
| `.clang-format` | C++ (pre-commit 限定 `src/MaaCore/**`) |
| `.editorconfig` (多层) | 全局 + MaaCore/MaaWpfGui/maa-cli/MaaUtils 各有覆盖 |
| `rustfmt.toml` | Rust (maa-cli) |
| `.swift-format` | Swift (MaaMacGui) |
| `stylecop.json` | C# (MaaWpfGui) |
| `.prettierrc` | JSON/YAML |
| `analysis_options.yaml` | Dart |
| `.pre-commit-config.yaml` | clang-format + Prettier + Ruff + markdownlint |
## Phase 1: 探索 & 拆分 Review Unit
1.`explore` subagent 扫描项目,确认当前有哪些模块/子目录有实质改动或需要关注
2.**模块 × 关注维度** 拆分为 12-20 个 Review Unit每个 Unit
- 文件范围 ≤ 8 个核心文件C++ 可适当放宽,但避免单 Unit 超 2000 行总量)
- 有明确的 review 焦点
- 提供该模块的背景信息
3. 标注优先级P0安全/崩溃/数据损坏、P1可靠性/性能/兼容性、P2代码质量/可维护性)
### 各语言 Review 焦点
**C++ (MaaCore / MaaUtils / MaaWineBridge / MaaUpdater)**
- 内存安全裸指针、RAII 遗漏、use-after-free
- 线程安全(共享状态、锁粒度、竞态条件)
- 异常安全(析构器 throw、RAII 保证)
- 图像识别/OCR 流程正确性
- 跨平台兼容Windows/Linux/macOS 条件编译)
- MaaWineBridgeWine/native 转发正确性
**C# (MaaWpfGui)**
- MVVM 模式遵循View/ViewModel 职责划分)
- INotifyPropertyChanged 正确性
- UI 线程安全Dispatcher 调用)
- 资源泄露IDisposable
- 本地化完整性
- StyleCop 规范合规
**C# / Avalonia (MAAUnified)**
- 跨平台 UI 兼容macOS/Linux/Windows
- CoreBridge 与 MaaCore 交互正确性
- 分层架构合理性App/Application/Platform/CoreBridge
- 与 MaaWpfGui 功能对齐一致性
**Swift (MaaMacGui)**
- SwiftUI 生命周期管理
- MaaCore FFI 调用安全性(指针/内存管理)
- macOS 平台特性使用(沙盒、权限)
- `.swift-format` 规范合规
**Rust (maa-cli)**
- 所有权/生命周期正确性
- Error handling`?` 传播链完整性)
- unsafe 代码合理性与安全注释
- Cargo feature 配置正确性
- 参考 `src/maa-cli/AGENTS.md` 的检查项
**语言绑定 (Python/Rust/Go/Java/Dart/Woolang)**
- FFI 调用安全性(指针、回调、生命周期)
- 资源释放Handle/Destroy 配对)
-`include/AsstCaller.h` 公共 API 的一致性
- 错误传播与异常处理
**Python (tools/)**
- 类型注解一致性
- 异常处理(不吞异常)
- 文件路径跨平台处理
**JSON (resource/)**
- Schema 合规性
- 模板匹配参数合理性
- 多语言/多服务器资源一致性
## Phase 2: 并行 Review
按优先级批次启动 subagent
```
第一批P0 Unit3-5 个并行)
第二批P1 Unit5-7 个并行)
第三批P2 Unit剩余全部
```
每个 review subagent 的 prompt 模板:
```
你是 MAA 项目的代码审查员。审查以下文件,找出:
1. Bug逻辑错误、边界条件、竞态、崩溃风险
2. 安全问题(缓冲区溢出、注入、信息泄露、不安全的反序列化)
3. 性能问题不必要的拷贝、内存分配热点、O(n²) 算法)
4. 跨平台兼容性(平台特定代码未条件编译、路径分隔符硬编码)
5. 可维护性(巨型函数、重复代码、缺少错误处理)
项目语言:{language}
文件范围:{files}
背景:{background}
重点关注:{focus_areas}
输出格式:按严重性排序的问题列表(最多 Top 8。每个问题包含
- 严重性Critical / Major / Minor
- 位置:文件名 + 行号范围
- 问题:一句话描述
- 影响:会导致什么后果
- 建议:修复方向(一句话)
- 代码片段:相关代码(可选,简短引用即可)
```
## Phase 3: 汇总 & 生成报告
收集所有 Unit 的发现,按以下步骤生成报告:
1. **去重合并**:同一 bug 在多个 Unit 被发现时,保留最详细的描述
2. **分类归类**
| 分类 | 含义 | 图标 |
|------|------|------|
| 崩溃/安全 | 可导致崩溃或被利用 | 🔴 |
| 可靠性 | 影响功能正确性 | 🟠 |
| 性能 | 影响运行效率 | 🟡 |
| 兼容性 | 跨平台/版本兼容问题 | 🔵 |
| 代码质量 | 可维护性与规范 | ⚪ |
1. **按模块和严重性排序**
2. **生成统计摘要**
### 报告模板
将报告输出到项目根目录的 `code-review-report.md`,使用以下模板:
```markdown
# MAA 代码审查报告
> 审查时间:{date}
> 审查范围:{modules_reviewed}
> Review Unit 数量:{unit_count}
## 摘要
| 严重性 | 数量 |
|--------|------|
| 🔴 Critical | {n} |
| 🟠 Major | {n} |
| 🟡 Minor | {n} |
| 总计 | {total} |
| 模块 | Critical | Major | Minor |
|------|----------|-------|-------|
| MaaCore (C++) | {n} | {n} | {n} |
| MaaWpfGui (C#) | {n} | {n} | {n} |
| MaaMacGui (Swift) | {n} | {n} | {n} |
| MAAUnified (C#/Avalonia) | {n} | {n} | {n} |
| maa-cli (Rust) | {n} | {n} | {n} |
| MaaUtils (C++) | {n} | {n} | {n} |
| MaaWineBridge (C) | {n} | {n} | {n} |
| 语言绑定 | {n} | {n} | {n} |
| tools (Python) | {n} | {n} | {n} |
| resource (JSON) | {n} | {n} | {n} |
## 🔴 Critical 问题
### [{序号}] {问题标题}
- **模块**{module}
- **文件**`{file}:{line_range}`
- **分类**{category}
- **描述**{description}
- **影响**{impact}
- **建议修复方向**{suggestion}
{code_snippet可选}
---
## 🟠 Major 问题
### [{序号}] {问题标题}
...
## 🟡 Minor 问题
### [{序号}] {问题标题}
...
## 审查覆盖范围
| Review Unit | 模块 | 焦点 | 优先级 | 文件数 |
|-------------|------|------|--------|--------|
| {unit_name} | {module} | {focus} | {priority} | {file_count} |
| ... | ... | ... | ... | ... |
## 附注
- 本报告仅列出发现,未执行任何修复
- 建议按 Critical → Major → Minor 顺序处理
- 部分问题可能需要跨模块协同修复
```
## 执行要点
- **只审不修**:本 skill 不修改任何代码,所有发现仅记录到报告
- **报告路径**:默认输出到 `code-review-report.md`,用户可指定其他路径
- **增量 vs 全量**:如用户指定范围(如"只看 MaaCore"),相应缩减 Unit 拆分
- **subagent 并行上限**:每批不超过 7 个,避免上下文竞争
- **代码片段引用**:报告中引用代码时使用 ` ```startLine:endLine:filepath ` 格式

View File

@@ -13,7 +13,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
fetch-depth: 0
persist-credentials: false # Needed to bypass protection rules in Push changes
@@ -41,7 +41,7 @@ jobs:
- name: Push changes
if: ${{ steps.check_changes.outcome == 'failure' }}
uses: ad-m/github-push-action@master
uses: ad-m/github-push-action@881a6320fdb16eb5318c5054f31c218aec2b324c # v1.3.0
with:
branch: ${{ github.ref }}
github_token: ${{ secrets.MAA_RESOURCE_SYNC }}

View File

@@ -1,96 +1,52 @@
name: Build MAAUnified (Avalonia + MaaCore Runtime)
name: MAAUnified Quick Tests
on:
workflow_dispatch:
pull_request:
paths:
- "src/MAAUnified"
- ".github/workflows/ci-avalonia.yml"
- "src/MAAUnified/**"
- "src/MaaCore/**"
- "src/MaaUtils/**"
- "include/**"
- "resource/**"
- "tools/maadeps-download.py"
- "CMakeLists.txt"
- "CMakePresets.json"
- "!**/*.md"
push:
branches:
- dev
- dev-v2
paths:
- "src/MAAUnified"
- ".github/workflows/ci-avalonia.yml"
- "src/MAAUnified/**"
- "src/MaaCore/**"
- "src/MaaUtils/**"
- "include/**"
- "resource/**"
- "tools/maadeps-download.py"
- "CMakeLists.txt"
- "CMakePresets.json"
- "!**/*.md"
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.head.repo.full_name || github.repository }}-${{ github.head_ref || github.ref_name }}
cancel-in-progress: true
jobs:
meta:
name: Resolve version tag
runs-on: ubuntu-latest
outputs:
tag: ${{ steps.out.outputs.tag }}
steps:
- id: out
run: |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then
echo "tag=${GITHUB_REF_NAME}" >> "$GITHUB_OUTPUT"
else
echo "tag=preview-${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
fi
build:
name: Build ${{ matrix.name }}
needs: meta
test:
name: .NET Tests (${{ matrix.name }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: windows-x64
os: windows-latest
rid: win-x64
self_contained: true
cmake_preset: windows-publish-x64
maadeps_triplet: x64-windows
- name: linux-x64
os: ubuntu-latest
rid: linux-x64
self_contained: true
cmake_preset: linux-publish-x64
maadeps_triplet: x64-linux
- name: macos-x64
os: macos-latest
rid: osx-x64
self_contained: true
cmake_preset: macos-publish-x64
maadeps_triplet: x64-osx
- name: windows-x64
os: windows-2025-vs2026
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
with:
show-progress: false
- name: Fetch required submodules
shell: bash
run: bash ./.github/scripts/sync-optional-submodules.sh --init --depth 1 src/MAAUnified src/MaaUtils
run: bash ./.github/scripts/sync-optional-submodules.sh --init --depth 1 src/MAAUnified
- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: "10.0.x"
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: "3.x"
- name: Restore app
run: dotnet restore src/MAAUnified/App/MAAUnified.App.csproj
- name: Restore tests
if: matrix.name != 'macos-x64'
run: dotnet restore src/MAAUnified/Tests/MAAUnified.Tests.csproj
- name: Run Linux baseline consistency gate
@@ -125,65 +81,9 @@ jobs:
--filter "FullyQualifiedName~PlatformWindowsNativeSmokeTests"
- name: Upload test result artifacts on failure
if: failure() && matrix.name != 'macos-x64'
if: failure()
uses: actions/upload-artifact@v7
with:
name: MAAUnified-TestResults-${{ matrix.name }}
path: TestResults/${{ matrix.name }}/*.trx
if-no-files-found: ignore
- name: Bootstrap MaaDeps
run: python tools/maadeps-download.py ${{ matrix.maadeps_triplet }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build MaaCore runtime
run: |
cmake --preset ${{ matrix.cmake_preset }} -DINSTALL_PYTHON=OFF -DMAA_HASH_VERSION='${{ needs.meta.outputs.tag }}'
cmake --build --preset ${{ matrix.cmake_preset }}
cmake --install build --config RelWithDebInfo
- name: Publish MAAUnified app
run: dotnet publish src/MAAUnified/App/MAAUnified.App.csproj -c Release -r ${{ matrix.rid }} --self-contained ${{ matrix.self_contained }} -o publish
- name: Merge MaaCore runtime (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
Copy-Item install\* publish\ -Recurse -Force
if (!(Test-Path "publish\MaaCore.dll")) { throw "MaaCore.dll not found in publish output." }
if (!(Test-Path "publish\resource")) { throw "resource directory not found in publish output." }
- name: Merge MaaCore runtime (Unix)
if: runner.os != 'Windows'
shell: bash
run: |
cp -a install/. publish/
if [[ "$RUNNER_OS" == "Linux" ]]; then
test -f publish/libMaaCore.so
else
test -f publish/libMaaCore.dylib
fi
test -d publish/resource
- name: Package (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
New-Item -ItemType Directory -Path release -Force | Out-Null
$name = "MAAUnified-${{ needs.meta.outputs.tag }}-${{ matrix.name }}"
Compress-Archive -Path publish\* -DestinationPath "release\$name.zip"
- name: Package (Unix)
if: runner.os != 'Windows'
shell: bash
run: |
mkdir -p release
name="MAAUnified-${{ needs.meta.outputs.tag }}-${{ matrix.name }}"
tar -czf "release/${name}.tar.gz" -C publish .
- name: Upload artifact
uses: actions/upload-artifact@v7
with:
name: MAAUnified-${{ matrix.name }}
path: release/*

View File

@@ -42,11 +42,13 @@ jobs:
prerelease: ${{ steps.set_pre.outputs.prerelease }}
steps:
- name: Show concurrency group
env:
CONCURRENCY_GROUP: ${{ github.workflow }}-${{ github.event.pull_request.head.repo.full_name || github.repository }}-${{ github.head_ref || github.ref_name }}${{ github.ref == 'refs/heads/dev-v2' && format('-{0}', github.sha) || '' }}
run: |
echo "Concurrency Group: ${{ github.workflow }}-${{ github.event.pull_request.head.repo.full_name || github.repository }}-${{ github.head_ref || github.ref_name }}${{ github.ref == 'refs/heads/dev-v2' && format('-{0}', github.sha) || '' }}"
echo "Concurrency Group: $CONCURRENCY_GROUP"
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
fetch-depth: 0
show-progress: false
@@ -101,11 +103,11 @@ jobs:
matrix:
arch: [arm64, x64]
fail-fast: false
runs-on: windows-latest
runs-on: windows-2025-vs2026
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
@@ -115,7 +117,7 @@ jobs:
- name: Cache MaaDeps
id: cache-maadeps
uses: actions/cache@v5
uses: actions/cache@v6
continue-on-error: true
with:
path: |
@@ -150,6 +152,16 @@ jobs:
cp MaaFramework-temp/bin/*Win32ControlUnit* install/
cp MaaFramework-temp/bin/*AdbControlUnit* install/
- name: Upload MaaCore runtime for downstream jobs
uses: actions/upload-artifact@v7
with:
name: MAARuntime-win-${{ matrix.arch }}
path: |
install/
!install/*.h
!install/*.pdb
!install/msvc-debug/
- name: Generate global.json
shell: bash
run: |
@@ -162,7 +174,7 @@ jobs:
- name: Cache .nuke/temp, ~/.nuget/packages
id: cache-nuget
uses: actions/cache@v5
uses: actions/cache@v6
continue-on-error: true
with:
path: |
@@ -243,7 +255,7 @@ jobs:
fail-fast: false
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
@@ -253,7 +265,7 @@ jobs:
- name: Cache MaaDeps
id: cache-maadeps
uses: actions/cache@v5
uses: actions/cache@v6
continue-on-error: true
with:
path: ./src/MaaUtils/MaaDeps
@@ -287,6 +299,12 @@ jobs:
run: |
cp MaaFramework-temp/bin/*AdbControlUnit* install/
- name: Upload MaaCore runtime for downstream jobs
uses: actions/upload-artifact@v7
with:
name: MAARuntime-linux-${{ matrix.arch }}
path: install/
- name: Setup cross compile toolchains for CLI
uses: ./src/maa-cli/.github/actions/setup
with:
@@ -363,7 +381,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
@@ -373,7 +391,7 @@ jobs:
- name: Cache MaaDeps
id: cache-maadeps
uses: actions/cache@v5
uses: actions/cache@v6
continue-on-error: true
with:
path: ./src/MaaUtils/MaaDeps
@@ -435,7 +453,7 @@ jobs:
fail-fast: false
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
@@ -450,7 +468,7 @@ jobs:
- name: Cache MaaDeps
id: cache-maadeps
uses: actions/cache@v5
uses: actions/cache@v6
continue-on-error: true
with:
path: ./src/MaaUtils/MaaDeps
@@ -487,13 +505,19 @@ jobs:
name: MAACore-macos-${{ matrix.arch }}
path: "install/*.dylib"
- name: Upload MaaCore runtime for downstream jobs
uses: actions/upload-artifact@v7
with:
name: MAARuntime-macos-${{ matrix.arch }}
path: install/
macOS-GUI:
name: Build GUI for macOS
needs: [meta, macOS-Core]
runs-on: macos-26
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
@@ -649,6 +673,139 @@ jobs:
name: MAA-macos-universal
path: ${{ startsWith(github.ref, 'refs/tags/v') && 'release/MAA*' || 'src/MaaMacGui/MAA.xcarchive/**' }}
avalonia:
name: Build MAAUnified (Avalonia) ${{ matrix.name }}
needs: [meta, windows, ubuntu, macOS-Core]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: win-x64
os: windows-2025-vs2026
rid: win-x64
runtime_artifact: MAARuntime-win-x64
- name: linux-x64
os: ubuntu-latest
rid: linux-x64
runtime_artifact: MAARuntime-linux-x86_64
- name: macos-x64
os: macos-latest
rid: osx-x64
runtime_artifact: MAARuntime-macos-x86_64
steps:
- name: Checkout repository
uses: actions/checkout@v7
with:
show-progress: false
- name: Fetch required submodules
shell: bash
run: bash ./.github/scripts/sync-optional-submodules.sh --init --depth 1 src/MAAUnified
- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: "10.0.x"
- name: Restore app
run: dotnet restore src/MAAUnified/App/MAAUnified.App.csproj
- name: Restore tests
if: matrix.name != 'macos-x64'
run: dotnet restore src/MAAUnified/Tests/MAAUnified.Tests.csproj
- name: Run Linux baseline consistency gate
if: matrix.name == 'linux-x64'
run: >
dotnet test src/MAAUnified/Tests/MAAUnified.Tests.csproj -c Release --no-restore --disable-build-servers -m:1
--results-directory TestResults/${{ matrix.name }}
--logger "trx;LogFileName=baseline-consistency.trx"
--filter "FullyQualifiedName~BaselineContractTests|FullyQualifiedName~BaselineCoverageTests|FullyQualifiedName~BaselineRenderSyncTests|FullyQualifiedName~ParityMatrixSyncTests"
- name: Run Linux full MAAUnified test gate
if: matrix.name == 'linux-x64'
run: >
dotnet test src/MAAUnified/Tests/MAAUnified.Tests.csproj -c Release --no-restore --disable-build-servers -m:1
--results-directory TestResults/${{ matrix.name }}
--logger "trx;LogFileName=full-maaunified-tests.trx"
- name: Run Windows platform capability contract gate
if: matrix.name == 'win-x64'
run: >
dotnet test src/MAAUnified/Tests/MAAUnified.Tests.csproj -c Release --no-restore --disable-build-servers -m:1
--results-directory TestResults/${{ matrix.name }}
--logger "trx;LogFileName=platform-capability-contract.trx"
--filter "FullyQualifiedName~PlatformCapabilityContractTests"
- name: Run Windows native capability smoke gate
if: matrix.name == 'win-x64'
run: >
dotnet test src/MAAUnified/Tests/MAAUnified.Tests.csproj -c Release --no-restore --disable-build-servers -m:1
--results-directory TestResults/${{ matrix.name }}
--logger "trx;LogFileName=platform-windows-native-smoke.trx"
--filter "FullyQualifiedName~PlatformWindowsNativeSmokeTests"
- name: Upload test result artifacts on failure
if: failure() && matrix.name != 'macos-x64'
uses: actions/upload-artifact@v7
with:
name: MAAUnified-TestResults-${{ matrix.name }}
path: TestResults/${{ matrix.name }}/*.trx
if-no-files-found: ignore
- name: Download MaaCore runtime
uses: actions/download-artifact@v8
with:
name: ${{ matrix.runtime_artifact }}
path: install
- name: Publish MAAUnified app
run: dotnet publish src/MAAUnified/App/MAAUnified.App.csproj -c Release -r ${{ matrix.rid }} --self-contained true -o publish
- name: Merge MaaCore runtime (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
Copy-Item install\* publish\ -Recurse -Force
if (!(Test-Path "publish\MaaCore.dll")) { throw "MaaCore.dll not found in publish output." }
if (!(Test-Path "publish\resource")) { throw "resource directory not found in publish output." }
- name: Merge MaaCore runtime (Unix)
if: runner.os != 'Windows'
shell: bash
run: |
cp -a install/. publish/
if [[ "$RUNNER_OS" == "Linux" ]]; then
test -f publish/libMaaCore.so
else
test -f publish/libMaaCore.dylib
fi
test -d publish/resource
- name: Package (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
New-Item -ItemType Directory -Path release -Force | Out-Null
$name = "MAAUnified-${{ needs.meta.outputs.tag }}-${{ matrix.name }}"
Compress-Archive -Path publish\* -DestinationPath "release\$name.zip"
- name: Package (Unix)
if: runner.os != 'Windows'
shell: bash
run: |
mkdir -p release
name="MAAUnified-${{ needs.meta.outputs.tag }}-${{ matrix.name }}"
tar -czf "release/${name}.tar.gz" -C publish .
- name: Upload artifact
uses: actions/upload-artifact@v7
with:
name: MAAUnified-${{ matrix.name }}
path: release/*
release:
name: Publish Release
if: startsWith(github.ref, 'refs/tags/v')
@@ -664,12 +821,14 @@ jobs:
run: |
mv -vf assets/changelog/* .
rm -rf assets/MAACore-macos-*
rm -rf assets/MAARuntime-*
rm -rf assets/MAAUnified-*
cd assets
# find . -type f | xargs mv -fvt .
find . -type f | while read f; do mv -fvt . $f; done
- name: Publish release to GitHub
uses: softprops/action-gh-release@v3.0.0
uses: softprops/action-gh-release@v3.0.1
with:
body_path: CHANGELOG.md
files: |

View File

@@ -42,27 +42,31 @@ jobs:
URL="${{ steps.release.outputs.url }}"
BASE_URL="https://github.com/${{ github.repository }}/releases/download/${TAG}"
WIN_URL="${BASE_URL}/MAA-${TAG}-win-x64.zip"
WIN64_URL="${BASE_URL}/MAA-${TAG}-win-x64.zip"
WINARM_URL="${BASE_URL}/MAA-${TAG}-win-arm64.zip"
MAC_URL="${BASE_URL}/MAA-${TAG}-macos-universal.dmg"
LIN_URL="${BASE_URL}/MAA-${TAG}-linux-amd64.tar.gz"
LIN64_URL="${BASE_URL}/MAA-${TAG}-linux-x86_64.tar.gz"
LINARM_URL="${BASE_URL}/MAA-${TAG}-linux-aarch64.tar.gz"
DESCRIPTION=$(printf 'Read the full release note [here](%s).\n\nOpen or reopen your MAA client to get automatic updates.\nOr, download `MAA %s` for your platform by clicking the buttons below.' "$URL" "$TAG")
DESCRIPTION=$(printf 'Read the full release note [here](%s).\n\nReopen your MAA client to get automatic updates.\nDownload MAA `%s` for your platform below.' "$URL" "$TAG")
PAYLOAD=$(jq -n \
--arg tag "$TAG" \
--arg description "$DESCRIPTION" \
--arg win_url "$WIN_URL" \
--arg win64_url "$WIN64_URL" \
--arg winarm_url "$WINARM_URL" \
--arg mac_url "$MAC_URL" \
--arg lin_url "$LIN_URL" \
--arg lin64_url "$LIN64_URL" \
--arg linarm_url "$LINARM_URL" \
'{
embeds: [{
title: ("🎉 New MAA Release: " + $tag),
description: $description,
color: 10246582,
fields: [
{ name: "Windows (x64)", value: ("[↗ Download](" + $win_url + ")"), inline: true },
{ name: "macOS (Universal, dmg)", value: ("[↗ Download](" + $mac_url + ")"), inline: true },
{ name: "Linux (amd64, tar.gz)", value: ("[↗ Download](" + $lin_url + ")"), inline: true }
{ name: "Windows", value: ("[x64](" + $win64_url + ") ❘ [ARM](" + $winarm_url + ")"), inline: true },
{ name: "macOS", value: ("[Universal](" + $mac_url + ")"), inline: true },
{ name: "Linux", value: ("[x64](" + $lin64_url + ") ❘ [ARM](" + $linarm_url + ")"), inline: true }
]
}]
}')

View File

@@ -13,7 +13,7 @@ on:
type: number
jobs:
copilot-analysis:
ai-analysis:
if: |
(github.event_name == 'issues' && github.event.action == 'opened') ||
github.event_name == 'workflow_dispatch' ||
@@ -22,44 +22,41 @@ jobs:
contains(github.event.comment.body, '@MaaArknightsBot') &&
github.event.comment.user.type != 'Bot')
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
contents: read
issues: write
steps:
# 这个 action 只负责编排,分析质量仍依赖配套的 issue/log analysis skill。
# 分析质量仍依赖配套的 issue/log analysis skill。
# 详细使用文档https://github.com/MistEO/ai-issue-analysis
# 最佳实践参考:
# - https://github.com/MaaEnd/MaaEnd/blob/v2/.claude/skills/maaend-issue-log-analysis/SKILL.md
# - https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/dev-v2/.claude/skills/maa-issue-log-analysis/SKILL.md
- name: Analyze issue with AI
id: analysis
uses: Misteo/ai-issue-analysis@main
continue-on-error: true
uses: MistEO/ai-issue-analysis@main
with:
agent: ${{ secrets.BOT_AI_AGENT }}
api-key: ${{ secrets.BOT_AI_API_KEY }}
api-base-url: ${{ secrets.BOT_AI_API_BASE_URL }}
model: ${{ secrets.BOT_AI_MODEL }}
github-token: ${{ secrets.MAA_BOT_TOKEN }}
copilot-github-token: ${{ secrets.COPILOT_GITHUB_TOKEN }}
bot-name: '@MaaArknightsBot'
initial-comment-body: |
🤖 **MaaBot 正在分析该 Issue...**
感谢您的反馈AI 正在自动分析该问题,预计耗时约 10 分钟。
prompt-template: |
分析 GitHub Issue {{issue_number}}。把最终结论写到 {{copilot_answer_file}}。
严格按照 .claude/skills/maa-issue-log-analysis/SKILL.md 中的规则,分析 GitHub Issue {{issue_number}}。把最终结论写到 {{answer_file}}。
extra-comment-content: |
<!-- Skip all labels -->
- name: 查看完整输入输出
if: always()
env:
ANALYSIS_PROMPT: ${{ steps.analysis.outputs.analysis-prompt }}
ISSUE_NUMBER: ${{ steps.analysis.outputs.issue-number }}
COMMENT_ID: ${{ steps.analysis.outputs.comment-id }}
COMMENT_URL: ${{ steps.analysis.outputs.comment-url }}
COPILOT_OUTPUT: ${{ steps.analysis.outputs.copilot-output }}
FINAL_CONCLUSION: ${{ steps.analysis.outputs.final-conclusion }}
run: |
printf '%s\n' "$ANALYSIS_PROMPT"
echo "issue_number=$ISSUE_NUMBER"
echo "comment_id=$COMMENT_ID"
echo "comment_url=$COMMENT_URL"
printf '%s\n' "$COPILOT_OUTPUT"
printf '%s\n' "$FINAL_CONCLUSION"
echo "(Full agent-output and final-conclusion are available in the uploaded artifacts)"

View File

@@ -31,12 +31,12 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
- name: Cache lychee responses
uses: actions/cache@v5
uses: actions/cache@v6
continue-on-error: true
with:
path: .lycheecache

View File

@@ -44,7 +44,7 @@ jobs:
- name: Checkout repository
if: steps.check_push.outputs.is_pr != 'True'
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
persist-credentials: false
@@ -104,7 +104,7 @@ jobs:
- name: Push changes
if: steps.check_push.outputs.is_pr != 'True' && steps.commit_changes.outputs.have_commits == 'True' && github.repository_owner == 'MaaAssistantArknights'
uses: ad-m/github-push-action@master
uses: ad-m/github-push-action@881a6320fdb16eb5318c5054f31c218aec2b324c # v1.3.0
with:
github_token: ${{ secrets.MAA_RESOURCE_SYNC }}
branch: ${{ github.ref }}

View File

@@ -21,7 +21,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
fetch-depth: 0
token: ${{ secrets.MAARELEASE_RELEASE }}
@@ -33,21 +33,29 @@ jobs:
- name: Determine tag name
id: extract_tag
env:
EVENT_NAME: ${{ github.event_name }}
PR_TITLE: ${{ github.event.pull_request.title }}
INPUT_TAG: ${{ inputs.tag }}
run: |
if ${{ github.event_name != 'workflow_dispatch' }}; then
tag_name=$(echo "${{ github.event.pull_request.title }}" | sed -E 's/(Release|release)//' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
if [ "$EVENT_NAME" != "workflow_dispatch" ]; then
tag_name=$(printf '%s' "$PR_TITLE" | sed -E 's/(Release|release)//' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
echo "tag_name=$tag_name" >> $GITHUB_OUTPUT
else
echo "tag_name=${{ inputs.tag }}" >> $GITHUB_OUTPUT
echo "tag_name=$INPUT_TAG" >> $GITHUB_OUTPUT
fi
- name: Create and push release tag
env:
TAG_NAME: ${{ steps.extract_tag.outputs.tag_name }}
run: |
git tag -a "${{ steps.extract_tag.outputs.tag_name }}" -m "${{ steps.extract_tag.outputs.tag_name }}" -f
git push origin "${{ steps.extract_tag.outputs.tag_name }}"
git tag -a "$TAG_NAME" -m "$TAG_NAME" -f
git push origin "$TAG_NAME"
- name: Merge tag into dev-v2 and push
env:
TAG_NAME: ${{ steps.extract_tag.outputs.tag_name }}
run: |
git switch dev-v2
git merge "${{ steps.extract_tag.outputs.tag_name }}"
git merge "$TAG_NAME"
git push origin dev-v2

View File

@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
fetch-depth: 0
show-progress: false
@@ -25,7 +25,7 @@ jobs:
- name: Commit and push changes
if: steps.pre-commit.outcome == 'failure' && github.repository_owner == 'MaaAssistantArknights'
uses: actions-js/push@master
uses: actions-js/push@5a7cbd780d82c0c937b5977586e641b2fd94acc5 # master as of 2026-05-06
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
message: "chore: Auto update by pre-commit hooks

View File

@@ -28,7 +28,7 @@ jobs:
build-win-nightly:
name: Build Nightly for Windows
if: github.repository_owner == 'MaaAssistantArknights'
runs-on: windows-latest
runs-on: windows-2025-vs2026
strategy:
matrix:
arch: [x64]
@@ -40,7 +40,7 @@ jobs:
changelog: ${{ steps.read_changelog.outputs.content }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
# repository: 'MaaAssistantArknights/MaaAssistantArknights'
#ref: ${{ inputs.ref }}
@@ -170,7 +170,7 @@ jobs:
- name: Cache MaaDeps
id: cache-maadeps
uses: actions/cache@v5
uses: actions/cache@v6
continue-on-error: true
with:
path: |
@@ -218,7 +218,7 @@ jobs:
- name: Cache .nuke/temp, ~/.nuget/packages
id: cache-nuget
uses: actions/cache@v5
uses: actions/cache@v6
continue-on-error: true
with:
path: |
@@ -298,7 +298,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout MaaRelease
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
repository: ${{ format('{0}/{1}', github.repository_owner, 'MaaRelease') }}
fetch-depth: 0
@@ -329,7 +329,7 @@ jobs:
echo ${{ needs.build-win-nightly.outputs.tag }}
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
path: MaaAssistantArknights
token: ${{ secrets.MAARELEASE_RELEASE }}

View File

@@ -26,7 +26,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout MaaRelease
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
repository: ${{ format('{0}/{1}', github.repository_owner, 'MaaRelease') }}
@@ -102,7 +102,7 @@ jobs:
path: ./MaaReleaseConfig
- name: Checkout MaaRelease
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
repository: ${{ format('{0}/{1}', github.repository_owner, 'MaaRelease') }}
@@ -111,7 +111,7 @@ jobs:
token: ${{ secrets.MAARELEASE_RELEASE }}
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
path: MaaAssistantArknights

View File

@@ -113,18 +113,53 @@ jobs:
env:
RELEASE_TAG: ${{ needs.meta.outputs.RELEASE_TAG }}
WINGET_CREATE_GITHUB_TOKEN: ${{ secrets.MAABOT_WINGET_TOKEN }}
WINGET_CREATE_VERSION: 'v1.12.8.0'
WINGET_CREATE_SHA256: '8BD738851B524885410112678E3771B341C5C716DE60FBBECB88AB0A363ED85D'
steps:
- name: Upload MAA to WinGet
uses: vedantmgoyal9/winget-releaser@main
with:
identifier: MaaAssistantArknights.MaaAssistantArknights
version: ""
installers-regex: "-win-"
max-versions-to-keep: 0
release-tag: ${{ env.RELEASE_TAG }}
fork-user: MaaAssistantArknights
token: ${{ secrets.MAABOT_WINGET_TOKEN }}
shell: pwsh
run: |
$ErrorActionPreference = 'Stop'
$RELEASE_TAG = "${{ env.RELEASE_TAG }}"
# Fetch the release assets from GitHub Releases API and resolve actual download URLs
$headers = @{
Accept = "application/vnd.github+json"
"X-GitHub-Api-Version" = "2026-03-10"
}
if ($env:WINGET_CREATE_GITHUB_TOKEN) {
$headers.Authorization = "Bearer $env:WINGET_CREATE_GITHUB_TOKEN"
}
$release = Invoke-RestMethod `
-Uri "https://api.github.com/repos/MaaAssistantArknights/MaaAssistantArknights/releases/tags/$RELEASE_TAG" `
-Headers $headers
$URL_x64 = $release.assets | Where-Object { $_.name -match "-win-x64.zip$" } | Select-Object -First 1 -ExpandProperty browser_download_url
$URL_arm64 = $release.assets | Where-Object { $_.name -match "-win-arm64.zip$" } | Select-Object -First 1 -ExpandProperty browser_download_url
if (-not $URL_x64 -or -not $URL_arm64) {
Write-Error "Failed to resolve release assets from GitHub API for tag '$RELEASE_TAG'."
exit 1
}
# Download winget-create
curl.exe -JLO "https://github.com/microsoft/winget-create/releases/download/$env:WINGET_CREATE_VERSION/wingetcreate.exe"
# Verify the hash of wingetcreate.exe
if ((Get-FileHash wingetcreate.exe).Hash -ne $env:WINGET_CREATE_SHA256) {
Write-Error "wingetcreate.exe hash does not match expected value. Aborting."
exit 1
}
# Update the package using wingetcreate
.\wingetcreate.exe update MaaAssistantArknights.MaaAssistantArknights `
--version $RELEASE_TAG.TrimStart('v') `
--urls "$URL_x64|x64" "$URL_arm64|arm64" `
--submit
maa_cos:
name: Upload to MAA COS

View File

@@ -7,93 +7,127 @@ on:
- reopened
- ready_for_review
workflow_dispatch:
inputs:
pr_number:
description: 'Release PR number for changelog generation'
required: false
type: number
jobs:
generate-changelog:
name: Generate Changelog
# startsWith 表达式不区分大小写
if: github.event.pull_request.draft == false && startsWith(github.event.pull_request.title, 'Release v')
if: |
(github.event_name == 'workflow_dispatch' && github.event.inputs.pr_number != '') ||
(github.event.pull_request.head.repo.full_name == github.repository &&
github.event.pull_request.draft == false &&
startsWith(github.event.pull_request.title, 'Release v'))
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
contents: write
pull-requests: write
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Checkout dev-v2 with full history
uses: actions/checkout@v7
with:
ref: dev-v2
fetch-depth: 0
show-progress: false
- name: Extract release information
id: extract_tag
- name: Extract version from Release PR
id: version
env:
PR_BODY: ${{ format('{0}/{1}', runner.temp, 'output' ) }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR_NUMBER: ${{ github.event.pull_request.number || github.event.inputs.pr_number }}
PR_TITLE: ${{ github.event.pull_request.title }}
run: |
tag_name=$(echo "${{ github.event.pull_request.title }}" | sed -E 's/(Release|release)//' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
echo "tag_name=$tag_name" >> $GITHUB_OUTPUT
title="${PR_TITLE:-$(gh pr view "$PR_NUMBER" --json title -q .title)}"
version=$(echo "$title" | sed -E 's/[Rr]elease\s*//')
echo "version=$version" >> "$GITHUB_OUTPUT"
echo "Release version: $version"
pr_title="docs: Auto Update Changelogs of "$tag_name
echo "pr_title=$pr_title" >> $GITHUB_OUTPUT
- name: Generate changelog with AI
id: analysis
continue-on-error: true
uses: MistEO/ai-issue-analysis@main
with:
agent: ${{ secrets.BOT_AI_AGENT }}
api-key: ${{ secrets.BOT_AI_API_KEY }}
api-base-url: ${{ secrets.BOT_AI_API_BASE_URL }}
model: ${{ secrets.BOT_AI_MODEL }}
github-token: ${{ secrets.MAA_BOT_TOKEN }}
issue-number: ${{ github.event.pull_request.number || github.event.inputs.pr_number }}
checkout-repository: false
initial-comment-body: |
🤖 **AI 正在生成 Changelog...**
latest_stable_tag=$(git tag -l 'v*' | grep -v '-' | sort -V | tail -n 1) # 上一个 stable 版本
newest_tag=$(git describe --tags --match "v*" --abbrev=0) # 最新版本
echo "latest_stable_tag=$latest_stable_tag" >> $GITHUB_OUTPUT
echo "newest_tag=$newest_tag" >> $GITHUB_OUTPUT
正在根据提交记录自动生成 Changelog预计耗时约 10 分钟。
prompt-template: |
你是 MAA 项目的 Changelog 生成专员。
if [[ $tag_name == *-* ]]; then # 判断新版本是否为 beta 版本
latest=$newest_tag # 若是,则将 latest 参数设置为最新版本
else
latest=$latest_stable_tag # 若否,则设置为上一个 stable 版本
当前 Release PR 编号为 #{{issue_number}}(仓库 {{repository}}),请从该 PR 标题中提取目标版本号。
严格按照 .claude/skills/changelog/SKILL.md 中的规则,分析 git 提交记录tag 间的 commit 及其 diff和现有 CHANGELOG.md
生成完整的新版本 Changelog Markdown 并写到 {{answer_file}}。
{{answer_file}} 的内容应当是可以直接替换 CHANGELOG.md 整个文件的完整内容(包含新版本和所有历史版本)。
details-summary: 点击此处展开生成过程
- name: Write CHANGELOG.md from AI output
if: steps.analysis.outcome == 'success'
run: |
if [ ! -f answer.md ] || [ ! -s answer.md ]; then
echo "::error::answer.md not found or empty, cannot update CHANGELOG.md"
exit 1
fi
echo "latest=$latest" >> $GITHUB_OUTPUT
cp answer.md CHANGELOG.md
echo "CHANGELOG.md updated from AI output ($(wc -l < CHANGELOG.md) lines)"
cat $GITHUB_OUTPUT
echo '======='
echo 'Target PR: ${{ github.event.pull_request.html_url }}' >> $PR_BODY
echo '' >> $PR_BODY
echo '<details><summary>Debug information</summary>' >> $PR_BODY
echo '' >> $PR_BODY
echo '```' >> $PR_BODY
sed 's/=/: /1' $GITHUB_OUTPUT >> $PR_BODY
echo '```' >> $PR_BODY
echo '' >> $PR_BODY
echo '</details>' >> $PR_BODY
cat $PR_BODY
- name: Generate changelog
run: |
git switch dev-v2
python3 tools/ChangelogGenerator/changelog_generator.py --tag "${{ steps.extract_tag.outputs.tag_name }}" --latest "${{ steps.extract_tag.outputs.latest }}"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Commit changes
run: |
git status
git config user.name "$GITHUB_ACTOR"
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
git add .
commit_msg="docs: Auto Generate Changelog of Release ""${{ steps.extract_tag.outputs.tag_name }}"
git commit -m "$commit_msg"
if git diff --quiet CHANGELOG.md 2>/dev/null; then
echo "::warning::AI output is identical to existing CHANGELOG.md, no PR will be created"
else
echo "Changes detected:"
git diff --stat CHANGELOG.md
fi
- name: Create changelog PR
if: steps.analysis.outcome == 'success'
uses: peter-evans/create-pull-request@v8
with:
sign-commits: true
token: ${{ secrets.GITHUB_TOKEN }}
title: ${{ steps.extract_tag.outputs.pr_title }}
body-path: ${{ format('{0}/{1}', runner.temp, 'output' ) }}
base: "dev-v2"
branch: "changelog"
commit-message: "docs: Auto Generate Changelog of Release ${{ steps.version.outputs.version }}"
sign-commits: true
title: "docs: Auto Update Changelogs of ${{ steps.version.outputs.version }}"
body: |
Auto-generated changelog for **${{ steps.version.outputs.version }}**.
Target Release PR: #${{ github.event.pull_request.number || github.event.inputs.pr_number }}
base: dev-v2
branch: changelog
delete-branch: true
add-paths: CHANGELOG.md
reviewers: |
AnnAngela
assignees: |
AnnAngela
- name: Show outputs
if: always()
env:
COMMENT_URL: ${{ steps.analysis.outputs.comment-url }}
run: |
echo "comment_url=$COMMENT_URL"
echo "(Full agent-output and final-conclusion are available in the uploaded artifacts)"
assign-release-reviewers:
name: Assign Reviewers to Release PR
if: github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.draft == false && startsWith(github.event.pull_request.title, 'Release v')
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v7
- name: Assign reviewers to release PR
uses: kentaro-m/auto-assign-action@v2.0.2
with:
@@ -101,7 +135,7 @@ jobs:
update-submodules:
name: Update Submodules
if: github.event.pull_request.draft == false && startsWith(github.event.pull_request.title, 'Release v')
if: github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.draft == false && startsWith(github.event.pull_request.title, 'Release v')
runs-on: ubuntu-latest
steps:
- name: Trigger submodule update workflow

View File

@@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Clone ArknightsGameResource for Official
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
repository: yuanyan3060/ArknightsGameResource
@@ -49,7 +49,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Clone ArknightsGameResource_Yostar for Overseas
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
repository: ArknightsAssets/ArknightsGamedata
@@ -92,7 +92,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Clone arknights-toolbox-update for Taiwan
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
repository: arkntools/arknights-data-tw-for-maa
@@ -145,7 +145,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
# TL;DR https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/9872#issuecomment-2251378371
# actions/checkout uses ${{ secrets.GITHUB_TOKEN }} by default, meaning all steps will inherit it
@@ -155,7 +155,7 @@ jobs:
- name: Restore ResourceUpdater from cache
id: resupd-cache
uses: actions/cache/restore@v5
uses: actions/cache/restore@v6
continue-on-error: true
with:
key: ResourceUpdater-${{ runner.os }}-${{ hashFiles('tools/ResourceUpdater/main.cpp') }}
@@ -171,7 +171,7 @@ jobs:
- name: Cache MaaDeps
if: steps.resupd-cache.outputs.cache-hit != 'true'
id: maadeps-cache
uses: actions/cache@v5
uses: actions/cache@v6
continue-on-error: true
with:
path: |
@@ -195,7 +195,7 @@ jobs:
- name: Save ResourceUpdater to cache
if: always() && steps.resupd-cache.outputs.cache-hit != 'true'
uses: actions/cache/save@v5
uses: actions/cache/save@v6
continue-on-error: true
with:
key: ResourceUpdater-${{ runner.os }}-${{ hashFiles('tools/ResourceUpdater/main.cpp') }}
@@ -306,7 +306,7 @@ jobs:
- name: Push changes
if: steps.add_files.outputs.have_commits == 'True'
uses: ad-m/github-push-action@master
uses: ad-m/github-push-action@881a6320fdb16eb5318c5054f31c218aec2b324c # v1.3.0
with:
branch: ${{ github.ref }}
github_token: ${{ secrets.MAA_RESOURCE_SYNC }}

View File

@@ -43,7 +43,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
@@ -56,7 +56,7 @@ jobs:
- name: Restore cache for Smoke Test
if: ${{ steps.cache_key.outputs.key != '' }}
id: smoke-cache
uses: actions/cache/restore@v5
uses: actions/cache/restore@v6
continue-on-error: true
with:
key: ${{ steps.cache_key.outputs.key }}
@@ -76,7 +76,7 @@ jobs:
- name: Cache MaaDeps
if: steps.smoke-cache.outputs.cache-hit != 'true'
id: maadeps-cache
uses: actions/cache@v5
uses: actions/cache@v6
continue-on-error: true
with:
path: ./src/MaaUtils/MaaDeps
@@ -107,7 +107,7 @@ jobs:
- name: Save cache for Smoke Test (only in dev-v2)
if: steps.smoke-cache.outputs.cache-hit != 'true' && github.ref == 'refs/heads/dev-v2'
uses: actions/cache/save@v5
uses: actions/cache/save@v6
continue-on-error: true
with:
key: ${{ steps.cache_key.outputs.key }}

View File

@@ -17,7 +17,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false
@@ -28,7 +28,7 @@ jobs:
git show -s
- name: Checkout MaaResource
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
repository: MaaAssistantArknights/MaaResource
show-progress: false

View File

@@ -28,7 +28,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
fetch-depth: 0
show-progress: false
@@ -105,7 +105,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false

View File

@@ -12,7 +12,7 @@ jobs:
if: github.repository_owner == 'MaaAssistantArknights'
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
submodules: true
@@ -21,7 +21,7 @@ jobs:
run: bash ./.github/scripts/sync-optional-submodules.sh --remote src/MAAUnified src/MaaMacGui src/maa-cli
- name: Commit and push changes
uses: actions-js/push@master
uses: actions-js/push@5a7cbd780d82c0c937b5977586e641b2fd94acc5 # master as of 2026-05-06
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
message: "feat: Update Submodules MAAUnified, MaaMacGui, maa-cli

View File

@@ -35,7 +35,7 @@ jobs:
timeout-minutes: 20
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
show-progress: false

View File

@@ -1,203 +1,112 @@
## v6.10.5
## v6.14.1
### Highlights
生息演算第二期来了!我们适配了重启锚点模式,同时优化了更新流程,让挂机更省心、版本升级更顺畅。
#### 莫奈取色
#### 生息演算:重启锚点
新增背景莫奈取色,可根据背景图自动生成主题色,也支持手动选色。
第二期上线,我们适配了重启锚点模式,支持 RA-1、RA-15 关卡,并提供了无需手动过关即可挂机刷代币与科技点的策略。其中 RA-15 策略尚未经充分完善,运行过程中可能遇到问题,将在后续版本逐步优化。
#### 仓库识别支持更多基础资源
#### Mirror酱 增量包智能等待
仓库识别现已新增对源石、合成玉、龙门币、赤金与采购凭证的识别支持,导出与库存核对更完整;排序现已改为按游戏内顺序排列。
优化了 Mirror酱 更新流程现在新版本发布后若增量包尚未生成MAA 会自动等待其就绪后重试,省去手动下载完整包的麻烦。
#### 截图与模拟器兼容性提示更完整
#### 干员识别与仓库识别升级
在设置指引与开始唤醒中补充截图增强与截图测试入口MuMu 截图增强也已支持 `emulator-5xxx` 格式端口;新增当前模拟器帧率检测与提示,补充 MuMu 后台保活检测,以及雷电模拟器搭配 MaaTouch 时的组合警告,帮助更快定位截图异常、操作异常与性能设置问题。
干员识别和仓库识别新增 Json/Markdown/CSV 导出格式,界面布局统一优化,同时引入虚拟化大幅提高首次加载速度。
<details>
<summary><b>English</b></summary>
#### 小游戏界面重构
#### Monet Theming
小游戏界面全面重构,新增分类支持与日志显示,优化选择逻辑,体验更加直观。
~~以及更名成了评论区中点赞数最多的名称~~
Added background Monet theming with both automatic color extraction and manual color selection.
----
#### More Base Resources Supported in Depot Recognition
The second season of Reclamation Algorithm is here! We've adapted the Relaunch Anchor mode while also improving the update flow for a smoother experience.
Depot recognition now supports Originium, Orundum, LMD, Gold, and Purchase Certificates, making inventory checks and exports more complete. Items are now sorted by in-game order.
#### Reclamation Algorithm: Relaunch Anchor
#### Better Screenshot and Emulator Compatibility Guidance
The second season is live. We've adapted support for the Relaunch Anchor mode covering RA-1 and RA-15 stages, along with strategies that let you farm tokens and tech points without manual stage clears. The RA-15 strategy is still a work in progress and may encounter issues during execution; it will be progressively refined in future releases.
Screenshot enhancement and screenshot test entries are now surfaced in setup guidance and startup wake-up, and MuMu screenshot enhancement now supports `emulator-5xxx` style ports. Added emulator frame rate detection and warnings, MuMu background keep-alive detection, and a warning for the LDPlayer + MaaTouch combination, making screenshot, input, and performance issues easier to diagnose.
#### MirrorChyan OTA Smart Retry
The MirrorChyan update flow has been improved. If the OTA package isn't ready right after a new release, MAA will wait and retry automatically — no need to manually grab the full package.
#### Operator & Depot Recognition Upgrade
Operator and depot recognition now support Json/Markdown/CSV export with a unified layout. Virtualization has been introduced to significantly improve initial load times.
#### Minigame UI Overhaul
The minigame interface has been renamed to Useful Tasks, now featuring category support, improved selection logic, and log display for a more intuitive experience.
</details>
----
以下是详细内容:
## v6.10.5
<details open>
<summary><b>v6.14.1 (2026-07-11)</b></summary>
### 新增 | New
* 生息演算新增 RA-4 相关功能 (#16749) @Saratoga-Official @ABA2396
### 改进 | Improved
* 刷理智关卡选择提示当前任务将执行的关卡 (#16797) @status102 @Constrat @HX3N @Manicsteiner
* RA-1 增加迷迭香部署方向失败重试,增加过场动画过长时等待 @ABA2396
* 支持禁用日志停滞检测,优化数据绑定 @ABA2396
* 移除 dft 路径下的缓存并补充缓存驱逐机制 (#16800) @Aliothmoon
* 自动战斗新增支持 ZOOT 作业站新格式神秘代码(`prts://` 前缀,区分单个作业与作业集),兼容旧 `maa://` 格式 ([#17322](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17322)) @ABA2396
### 修复 | Fix
* 修复干员名称截断时前缀完全匹配导致的误选择 @status102
* 修复未开启线索交流时不计算会客室效率 @ABA2396
* 修复 TooltipBlock 无法使用 Binding 进行绑定 (#16796) @status102
* 临时修复 SS 复刻任务导航超时问题 @status102
* 修复 RA-15 导致无法启动的问题 @ABA2396
* 修复生息演算 RA-15 若干问题 (#16770) @walkerljy
* macOS为 PlayCover 生息演算 RA-1 二倍速识别添加 iOS 模板并降低识别阈值 (#16779) @ColdSpellhere
* 修复 OF-1 战斗失败后错误结束任务 @status102
* 修复因网络原因导致跳过肉鸽结局剧情时出错的问题 @Saratoga-Official
* 修复干员折桠识别错误 @Saratoga-Official
* 修复开始唤醒手动切换账号运行时无法切换账号的问题 @status102
* 修复截图测试窗口可被拖拽调整大小导致崩溃的问题 @ABA2396
* YostarEN: fix `Roguelike@RewardCompleted` template mismatch recognition issue @Constrat
* YostarJP: fix JieGarden DLC2 厉-西廉贞 tongbao OCR recognition issue @Manicsteiner
### 其他 | Other
</details>
* 优化任务超时判断 @ABA2396
* 肉鸽分队新增「代理人分队」不支持说明 @ABA2396
* 移除 FightTask 不再使用的关卡设置 @status102
* 删除(大型)兽栏的描述 @ABA2396
* 优化界面布局 @ABA2396
## v6.10.4
### 改进 | Improved
* 优化配置损坏时的提示与记录逻辑,提升异常处理体验 @ABA2396 @status102
* 生息演算 RA-15 OCR 文本匹配改为词组、增加延迟与重试、优化策略流程 (#16725) @walkerljy
* 生息演算 RA-1 部署基地失败时自动重试 @ABA2396
* 生息演算增加基础设施识别,避免误操作进入错误位置 @ABA2396
* Config 检查到缺失时统一使用当前配置进行赋值 @status102
* Yostar EN/JP UR 关卡导航 (#16723) @Manicsteiner
### 修复 | Fix
* 修复潜在的空配置导致异常 @status102
* 修复重复添加同名配置会删除上一个配置 @ABA2396
* 修复远控 LinkStart-* 子任务失败 (#16740) @ABA2396
* 修复剿灭掉落识别不到合成玉时错误停止任务 (#16726) @Roland125
* 补上繁中服漏掉的「拟态学者分队」(#16731) @momomochi987
### 文档 | Docs
* 自动战斗提示移除需要手动借助战的额外操作说明 @status102
* 补充生息演算与小工具相关文档 @ABA2396
* 设备文档添加 steps/details 容器,修复 bat 代码块格式 (#16712) @wryx166
* 更新基建排班文档中过时的链接 (#16700) @H2O-MERO
## v6.10.3
### 改进 | Improved
* 优化 [Flags] 判断 @ABA2396
* RA mode (#16697) @status102
### 修复 | Fix
* TolerantEnumConverter 支持 Flags @ABA2396
* 遇到无法转换的枚举值转换为带路径信息的 JsonException @ABA2396
## v6.10.2
### 修复 | Fix
* 修复自定义枚举转换器无法处理枚举作为字典键 @ABA2396
## v6.10.1
### 修复 | Fix
* 修复在遇到多个非法配置参数时会直接重置配置 @ABA2396
## v6.10.0
<details>
<summary><b>v6.14.0 (2026-07-09)</b></summary>
### 新增 | New
* 初步支持生息演算:重启锚点 RA1/RA-15 关卡,支持新手刷代币与科技点 @ABA2396 @walkerljy @Daydreamer114 @SherkeyXD @hguandl
* 支持通过 Mirror酱 下载时若新版本无增量包则等待后重试 (#16656) @ABA2396
* 17 章导航 @ABA2396
* 便捷功能提示文本自适应大小 @ABA2396
* 仓库识别支持导出 Markdown/CSV优化导出按钮布局与交互 (#16543) @H2O-MERO @ABA2396
* 生息演算支持不同分辨率 @ABA2396
* 点击成就横幅跳转至成就设置,自动打开成就列表并筛选对应成就 (#16537) @H2O-MERO @ABA2396
* 任务日志输出停滞时发送通知,替换任务超时通知 (#16511) @H2O-MERO
* 为自动公招的输出日志增加已公招次数 (#16651) @H2O-MERO @ABA2396
* 干员识别支持导出 Json/Markdown/CSV优化导出按钮布局与交互 (#16635) @H2O-MERO
* support native android (#16179) @Aliothmoon
* 新增背景莫奈取色,支持根据背景图自动生成主题色,也支持手动选择自定义颜色;优化主题色板生成与对比度表现 ([#17242](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17242), [#17243](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17243), [#17249](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17249)) @ABA2396
* 自动战斗多作业模式新增支持异体字关卡导航;部分活动与支线关卡新增模板导航,在有模板时可优先使用模板识别、无模板时回退 OCR ([#16984](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/16984)) @ABA2396
* 仓库识别新增支持源石、合成玉、龙门币、赤金与采购凭证 ([#17287](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17287)) @ABA2396
* 账号切换新增启用勾选框,可按需关闭账号切换 ([#17280](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17280)) @ABA2396
* 新增当前模拟器帧率检测与提示,可识别过低、非 60 FPS 与异常高帧率设置 ([#17219](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17219)) @ABA2396
* 新增 MuMu 后台保活检测,连接后可提示可能导致截图与操作异常的后台保活设置 ([#17241](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17241)) @ABA2396
* 新增同时使用雷电模拟器 + MaaTouch 组合的警告 ([#17238](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17238)) @ABA2396
* 设置指引与开始唤醒中新增截图增强与截图测试相关选项 ([#17247](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17247)) @ABA2396
* MuMu 截图增强新增支持 `emulator-5xxx` 格式端口 ([#17255](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17255)) @ABA2396
* 新增更新器进度窗口显示开关,并补充自动下载更新包提示文本 @ABA2396
* 繁中服新增「未許之地」关卡导航支持 ([#17285](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17285)) @momomochi987
* 繁中服新增「衛戍協議:盟約」小玩法模板支持 ([#17257](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17257)) @momomochi987
* YostarEN/JP/KR add JieGarden DLC2 roguelike support, including new squad names and a large batch of OCR/recognition mappings ([#17286](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17286), [#17290](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17290), [#17294](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17294)) @Manicsteiner @Constrat @HX3N
### 改进 | Improved
* 优化生息演算木材数量与部署费用识别,支持开局自带木材快速完成任务,提升运行速度与稳定度 @ABA2396 @AnnAngela
* 生息演算策略逻辑重构 (#16680) @ABA2396
* 统一 LocalizationHelper GetStringFormat (#16658) @ABA2396
* 更新基建排班表243 高配三队简化、333 极限 3 队20260518 修订)(#16678) (#16679) @ntgmc
* 干员识别与仓库识别支持虚拟化,大幅提高首次加载速度 (#16486) @ABA2396
* 优化 masked TM_CCOEFF_NORMED 匹配性能 (#16593) @Aliothmoon
* 小游戏界面重构,添加分类并优化选择逻辑,添加日志显示 (#16499) @SherkeyXD @Constrat @momomochi987
* WPF 新配置修改日志记录等级提升至 Info @status102
* 自动战斗拆出导航 @status102
* 调整小工具-便捷任务布局,调整日志输出 @ABA2396
* RunningState 更新 (#16585) @status102
* 干员识别本地化导出表头,添加类型化枚举 @ABA2396
* 统一干员识别与仓库识别界面布局 @ABA2396
* 合并输出 @status102
* OCRer DEBUG 下绘制匹配结果 @status102
* 减少中间状态 @ABA2396
* 优化 CI 工作流:升级 actions/upload-artifact 至 v7设置压缩级别为 0改进 PR 提交检查评论逻辑 (#16671) @AnnAngela @ABA2396
* Reduce unnecessary allocations @status102
* YostarKR UR stage navigation @HX3N
* 持久化保存主题色,减少启动时主题闪烁 ([#17263](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17263)) @ABA2396
* 帧率检查改为异步执行,减少截图返回阻塞 ([#17277](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17277)) @ABA2396
* JieGarden DLC2 在通宝页面滑动与选取之间添加延迟,提升选取稳定性 ([#17295](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17295)) @Manicsteiner
* 优化被注入提示文案,提示信息更清晰 ([#17272](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17272)) @ABA2396
* 确认招募时同步更新 UI 日志 Card 图片,界面展示更及时 ([#17268](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17268)) @ABA2396
* 禁用 Xe-LPG+ Arrow Lake Arc 140T 的 GPU 推理选项,避免相关机型出现识别异常 @ABA2396
* YostarEN/JP improve JieGarden and Sami roguelike event/option recognition; YostarEN additionally improves MASS encounter option mappings ([#17261](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17261)) @Manicsteiner @Constrat
### 修复 | Fix
* 修复生息交付木材 ROI 错误 @Saratoga-Official
* 修复 PNS 配置项被意外恢复的问题 @ABA2396
* 修复 15 章之后的难度切换 @ABA2396
* 繼續調整繁中服部分幹員名稱 OCR (#16600) @momomochi987
* 修复理智药过期天数识别失败取消确认逻辑未生效 @status102
* 修复临期理智药天数缺省值 @status102
* 修复便捷功能列表滚动 @ABA2396
* 修复便捷功能 GroupStyle @ABA2396
* 修复理智药过期参数迁移输出 Warning 中参数名错误 @status102
* 修复 FFT 路径 masked TM_CCOEFF_NORMED 精度损失导致的误匹配 (#16652) @Aliothmoon
* 修复日志输出停滞功能在未开启外部通知时无法生效 @ABA2396
* 修复 build warning @ABA2396
* 修复 typo @ABA2396
* 界园深入探索模板 (#16626) @ZiyinLin @status102
* Various IS encounter Regex @Constrat
* TimesChange event @Constrat
* 修复首次运行时错误弹出目标配置缺失的提示 @status102
* 修复 MuMu 模拟器下第 32 个及以后多开实例的编号计算错误 ([#17112](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17112)) @dikxingmengya @ABA2396
* 修复 DBNet UnClip 多边形偏移实现,提升 NCNN OCR 结果与 fastdeploy 的一致性 ([#17227](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17227)) @Aliothmoon
* 修复基建产物收取时因 loading 遮挡导致跳过的问题 ([#17232](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17232)) @ZiyinLin @status102
* 修复自定义基建配置列表显示异常 ([#17254](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17254)) @ABA2396
* 修复使用莫奈取色吸管工具后二次打开页面时崩溃的问题 ([#17270](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17270)) @ABA2396
* 修复背景填充模式仍可编辑的问题 @ABA2396
* 修复未开启系统通知时仍执行系统通知检查的问题 @ABA2396
* 修复萨米肉鸽「特里蒙旅行社特派团」识别错误 @Saratoga-Official
* 修复肉鸽事件与选项中的问号、空格、重复项及相似项锚定问题,统一多项事件名识别 ([#17256](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17256)) @ABA2396 @Constrat
* 繁中服补充与修正萨米肉鸽大量事件/选项识别 @Constrat
* YostarEN/JP/KR: add and fix a large batch of Sami roguelike event/option recognition; YostarEN additionally adds a set of MASS event option mappings @Constrat
* YostarEN: fix a JieGarden DLC2 tongbao regex recognition issue @Constrat
* YostarEN: fix `MissionFailedFlag2` template mismatch recognition issue @Constrat
* YostarEN: fix a Varkaris text/accent recognition issue @Constrat
### 文档 | Docs
* 修正嵌套容器说明 @Rbqwow
* 新增 DWM 相关问题处理知识文档 @ABA2396
* 补充 PC 客户端、多开与账号管理等知识文档 @ABA2396
* 补充 AddLog 缺失 param 介绍 @ABA2396
* 补充截图相关回调文档 @ABA2396
* 修复多语言协议文档中的 `<object>` 标签问题 ([#17296](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17296)) @Constrat
### 其他 | Other
* 修改 ai-issue-analysis @ABA2396
* 赛博道长 @ABA2396
* 调整图标阴影 @ABA2396
* 采用 System.Windows 的剪贴板 @ABA2396
* 调整输出格式 @ABA2396
* 统一符号 @ABA2396
* 调整干员识别提示换行 @ABA2396
* gitignore for C# dev kit vsc deo @Constrat
* 优化 MAAUnified 构建流程,复用 MaaCore 构建产物 ([#17233](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17233)) @GhostKiller127
</details>

View File

@@ -217,11 +217,6 @@
"cacheVariables": {
"BUILD_WPF_GUI": "ON"
},
"$comment": [
"github actions only support Visual Studio 17 2022",
"see https://github.com/actions/runner-images/issues/13291"
],
"generator": "Visual Studio 17 2022",
"displayName": "Windows x64 Publish"
},
{
@@ -233,11 +228,6 @@
"cacheVariables": {
"BUILD_WPF_GUI": "ON"
},
"$comment": [
"github actions only support Visual Studio 17 2022",
"see https://github.com/actions/runner-images/issues/13291"
],
"generator": "Visual Studio 17 2022",
"displayName": "Windows arm64 Publish"
},
{

View File

@@ -130,7 +130,7 @@ MAA 以中文(简体)为第一语言,翻译词条均以中文(简体)
- [集成文档](https://docs.maa.plus/zh-cn/protocol/integration.html)
- [回调消息协议](https://docs.maa.plus/zh-cn/protocol/callback-schema.html)
- [任务流程协议](https://docs.maa.plus/zh-cn/protocol/task-schema.html)
- [自动抄作业协议](https://docs.maa.plus/zh-cn/protocol/copilot-schema.html)
- [自动战斗协议](https://docs.maa.plus/zh-cn/protocol/copilot-schema.html)
### 外服适配

View File

@@ -201,7 +201,7 @@ strategy = "merge" # or "first" (default)
# use all expiring medicine on Sunday night
[[tasks.variants]]
params = { expiring_medicine = 1000 }
params = { medicine_expire_days = 2 }
[tasks.variants.condition]
type = "And"
conditions = [

View File

@@ -37,10 +37,14 @@ Currently, support for Reclamation Algorithm is still in early stages and unatte
- Reward estimate: ~417 tokens + coordination points per run, ~1 min 40 sec per round
- Operator requirement: Wis'adel (support unit allowed)
- Prerequisite: Clear RA-4 in the main story
- Prerequisite:
1. Advance the main story until RA-4 is cleared.
2. Unlock Strategy Planning Management.
3. If you have your own Wis'adel, manually enter the stage and form a team once, ensuring any 5 operators with lower DP cost than Wis'adel + Wis'adel, and Wis'adel is in the 6th slot (i.e., the last one selected). Then confirm recruitment, abandon the current construction, and start from "Start Construction".
4. If using a support Wis'adel, ensure that Wis'adel is on the front page of sniper support units (consider using a friend). Manually enter the stage and add any 5 operators with lower DP cost than Wis'adel, select support Wis'adel for the 6th slot, then confirm recruitment, abandon the current construction, and start from "Start Construction" (ensure the first five slots have operators and the 6th slot is empty).
- Open RA-4 on the world map, start the task when "Start Construction" appears in the bottom-right corner
- Note: If you have unlocked technologies that grant extra starting items, please remove facilities that cause this (e.g. Food Supply Station, Drink Supply Station, Large Beast Pen, etc.)
- Task flow: Automatically executes planning management, construction, resource delivery, and settlement loop
- Task flow: Use the Gold from Strategy Planning Management to unlock areas, and use Wis'adel to complete the boss elimination mission.
### RA-15

View File

@@ -11,10 +11,14 @@ Auto Recruitment and [Recruitment Recognition](./tools.md#recruitment-recognitio
Supports automatic use of `Expedited Plans`, allows setting maximum recruitment times per task, and can be combined with `Auto use Expedited Plans` to quickly use up all recruitment permits.
Pop-up notifications will appear when 1★, 5★, or 6★ tags are detected.
Pop-up notifications will appear when preserved tags, 5★ tags, or 6★ tags are detected.
Recruitment tag data is automatically uploaded to [Penguin Statistics](https://penguin-stats.io/) and [Yituliu](https://ark.yituliu.cn/) when refreshing recruitment.
## Advanced Settings
`Auto confirm` means MAA automatically selects tags and performs recruitment, while `Manual confirm` means no automatic tag selection or recruitment is performed.
After enabling `Preferred 3★ tags`, you can choose which 3★ tags should be preferred. After enabling `Preserve selected tags`, you can choose which tags should keep the current slot untouched.
When any preserved tag is recognized, MAA skips the current recruitment slot and leaves it unchanged instead of confirming that recruitment.

View File

@@ -18,6 +18,7 @@ Only supports switching to already logged-in accounts, using the login name for
- Examples:
- Official server: `123****8901` can be entered as `123****8901`, `123`, `8901`, or `3****8`
- Bilibili server: `Zhang San` can be entered as `Zhang San`, `Zhang`, or `San`
- Traditional Chinese server: Email-based, e.g. `ab****01@gmail.com`. Entering the plain-text portion without asterisks is recommended, e.g. `01@gmail`
## Connection Settings

View File

@@ -108,6 +108,24 @@ Todo
Screenshot failed (adb/emulator crashed), and retry failed
- `TouchModeNotAvailable`
Unsupported touch mode
- `ResolutionGot`
Resolution retrieved
- `FastestWayToScreencap`
Fastest screenshot method found, `details` structure:
- `method` (string, required): Fastest screenshot method.
- `cost` (number, required): Time cost in milliseconds.
- `alternatives` (array`<object>`, required): All candidate methods and their costs.
- `ScreencapCost`
Screenshot cost statistics (reported every 10 screenshots), `details` structure:
- `min` (number, required): Minimum cost in milliseconds.
- `max` (number, required): Maximum cost in milliseconds.
- `avg` (number, required): Average cost in milliseconds.
- `fault_times` (number): Number of failures (only present when there are failures).
- `EmulatorFPS`
Emulator refresh rate (checked every 1 minute), `details` structure:
- `fps` (number, required): Emulator/system refresh rate (FPS).
- `refresh_period_ns` (number, required): Frame refresh period in nanoseconds.
### AsyncCallInfo
@@ -224,7 +242,7 @@ Todo
- `MedicineConfirm`
Use sanity potion
- `ExpiringMedicineConfirm`
Use sanity potion expiring within 48 hours
Use expiring sanity potion
- `StoneConfirm`
Use Originium Prime
- `RecruitRefreshConfirm`
@@ -355,6 +373,16 @@ Todo
}
```
- `RecruitPreservedTag`
Recruitment preserved tag detected
```json
// Corresponding details field example
{
"tag": "支援机械" // "Robot"
}
```
- `RecruitResult`
Recruitment recognition result

View File

@@ -64,6 +64,8 @@ Only supports switching to already logged-in accounts, using login name for iden
Official server: `123****4567`, can input `123****4567`, `4567`, `123`, or `3****4567`
<br>
Bilibili server: `Zhang San`, can input `Zhang San`, `Zhang`, or `San`
<br>
Traditional Chinese server: Email-based, e.g. `ab****01@gmail.com`. Entering the plain-text portion without asterisks is recommended, e.g. `01@gmail`
:::
::::
@@ -134,8 +136,11 @@ Currently supported stages for navigation include:
::: field name="medicine" type="number" optional default="0"
Maximum number of Sanity Potions used.
:::
::: field name="expiring_medicine" type="number" optional default="0"
Maximum number of Sanity Potions expiring within 48 hours.
::: field name="medicine_expire_days" type="number" optional default="0"
Use Sanity Potions that expire within the specified number of days. `0` means no expiring potions will be used.
:::
::: field name="expiring_medicine" type="number" optional default="0" deprecated
Deprecated since v6.8.0, please use `medicine_expire_days` instead.
:::
::: field name="stone" type="number" optional default="0"
Maximum number of Originite Prime used.
@@ -197,7 +202,7 @@ Currently supported stages for navigation include:
"enable": true,
"stage": "1-7",
"medicine": 1,
"expiring_medicine": 0,
"medicine_expire_days": 2,
"stone": 0,
"times": 10,
"series": 0,
@@ -259,7 +264,14 @@ Whether to use Expedited Plans.
Number of expedites, only effective when `expedite` is true. By default unlimited (until `times` limit is reached).
:::
::: field name="skip_robot" type="boolean" optional default="true"
Whether to skip when robot tag is recognized.
Deprecated and kept only for backward compatibility.
<br>
When `preserve_tags` is absent and this value is `true`, MAA skips on `支援机械` only; `元素` is no longer treated as the legacy 1★ tag.
:::
::: field name="preserve_tags" type="array<string>" optional
List of tag names that should preserve the current recruitment slot and skip this recruitment. Default is empty.
<br>
If any specified tag is recognized, MAA will keep that slot untouched and skip the current recruitment.
:::
::: field name="recruitment_time" type="object" optional
Tag ★ rarity (greater than or equal to 3) and corresponding desired recruitment time limit, in minutes, all default to 540 (i.e. 09:00:00).
@@ -300,7 +312,7 @@ Options: `CN` | `US` | `JP` | `KR`
"set_time": true,
"expedite": false,
"expedite_times": 0,
"skip_robot": true,
"preserve_tags": ["支援机械"],
"recruitment_time": {
"3": 540,
"4": 540
@@ -721,7 +733,7 @@ Whether to enable this task.
::: field name="filename" type="string"
Path to a single job JSON file, mutually exclusive with copilot_list (required, choose one); both relative and absolute paths are supported.
:::
::: field name="copilot_list" type="array<object>"
::: field name="copilot_list" type="array`<object>`"
List of jobs, mutually exclusive with filename (required, choose one); when both filename and copilot_list are present, copilot_list will be ignored; set_params can only be executed once when this parameter is in effect.
<br>
Each object contains:
@@ -747,7 +759,7 @@ Each object contains:
<br>
An integer between 04: 0 means the current formation, 14 refer to the 1st4th formations.
:::
::: field name="user_additional" type="array<object>" optional default="[]"
::: field name="user_additional" type="array`<object>`" optional default="[]"
Custom additional operators list. Only effective when formation is true.
<br>
Each object contains:
@@ -933,9 +945,9 @@ Mode. Supported modes vary by theme:
<br>
`16` (`RA1`) - RA-1, automatically execute intensive farming, construction, resource delivery, and settlement loop.
<br>
`48` (`RA4`) - RA-4, automatically execute planning management, construction, resource delivery, and settlement loop.
<br>
`32` (`RA15`) - RA-15, complete the 60-kill mission with Civilight Eterna.
<br>
`48` (`RA4`) - RA-4, Use the Gold from Strategy Planning Management to unlock areas, and use Wis'adel to complete the boss elimination mission.
:::
::: field name="tools_to_craft" type="array<string>" optional default="[&quot;荧光棒&quot;]"
Automatically crafted items. Suggested to fill in the substring. Only effective for Tales theme.

View File

@@ -199,7 +199,7 @@ strategy = "merge" # 或者 "first" (默认)
# 在周天晚上使用所有的将要过期的理智药
[[tasks.variants]]
params = { expiring_medicine = 1000 }
params = { medicine_expire_days = 2 }
[tasks.variants.condition]
type = "And"

View File

@@ -40,10 +40,14 @@ This page is outdated and maybe still in Simplified Chinese. Translation is need
- 収益目安1周あたり約417トークン + 統括ポイント、1周約1分40秒
- オペレーター要件:ヴィシャデル(サポート可)
- 前提条件:ストーリーでRA-4をクリア済みであること
- 前提条件:
1. メインストーリーを進めてRA-4をクリア済みの状態にする
2. 「計画経営」をアンロックする
3. 自分でヴィシャデルを持っている場合、手動でステージを開いて一度編成を行う。ヴィシャデルよりもコストが低い任意の5人のオペレーターヴィシャデルとし、ヴィシャデルを6番目最後に選択する枠に配置する。その後、勧誘を確定し、今回の建設を中止して「建設開始」から開始する。
4. サポートのヴィシャデルを使用する場合、ヴィシャデルがスナイパーサポートのトップページに表示されていることを確認するフレンドを考慮。手動でステージを開き、ヴィシャデルよりもコストが低い任意の5人のオペレーターを編成し、6番目にサポートのヴィシャデルを選択して勧誘を確定する。その後、今回の建設を中止して「建設開始」から開始する先頭5枠にオペレーターがおり、6番目が空いていることを確認する
- ワールドマップでRA-4を開き、右下に「建設開始」が表示されたらタスクを開始すると自動ループします
- 注意:開始時に追加アイテムを持ち込むテクノロジーを解放している場合、該当施設(食品供給ステーション、飲料供給ステーション、大型獣檻など)を撤去してください
- タスクフロー:経営計画→建設→資源納品→決算を自動ループ
- タスクフロー:「計画経営」で得た赤金を使ってエリアを解放し、ヴィシャデルでボス討伐を完了する
### RA-15

View File

@@ -11,10 +11,14 @@ icon: fluent:people-24-filled
`緊急招集票` の自動使用に対応し、1回のタスクあたりの最大募集回数を設定できます。`緊急招集票を自動的に使用` と併用すれば、一度に募集券を使い切ることができます。
1・5・6★タグを検出した場合は通知を表示します。
保留対象のタグ、5★タグ、6★タグを検出した場合は通知を表示します。
公開求人の更新時には、公開求人のタグデータを [ペンギン急便データ統計処理部門](https://penguin-stats.io/) と [ワンシート攻略](https://ark.yituliu.cn/) に自動アップロードします(**ご注意:「ワンシート攻略」は実質的に簡体字中国語のみのため、翻訳ツールと併用してください**)。
## 高度な設定
`自動的に確認する` は MAA が自動でタグを選択して募集を実行することを意味し、`手動的に確認する` は自動選択および自動募集を行わないことを意味します。
`3★タグ優先` を有効にすると、優先したい 3★タグを選択できます。`指定タグを保留` を有効にすると、保持したいタグを選択できます。
保留対象のタグを1つでも認識した場合、MAA はその公開求人枠を保持したまま今回の募集をスキップし、確認操作は行いません。

View File

@@ -18,6 +18,7 @@ icon: ic:round-rocket-launch
- 例:
- 公式サーバー:`123****8901` の場合、`123****8901``123``8901``3****8` のいずれでも可
- Bilibiliサーバー`张三` の場合、`张三``张``三` のいずれでも可
- 繁体字中国語サーバーEメール形式`ab****01@gmail.com`)。アスタリスクを含まない明文部分(例:`01@gmail`)の入力を推奨
## 接続設定

View File

@@ -111,6 +111,25 @@ Todo
画面取得失敗 (adb/emulator クラッシュ), 再接続失敗
- `TouchModeNotAvailable`
サポートされていないタッチモード
- `ResolutionGot`
解像度を取得しました
- `FastestWayToScreencap`
最速のスクリーンショット方式が見つかりました、`details` 構造:
- `method` (string, required): 最速のスクリーンショット方式。
- `cost` (number, required): 所要時間(ミリ秒)。
- `alternatives` (array`<object>`, required): 全候補方式とその所要時間。
- `ScreencapCost`
スクリーンショット所要時間統計10回ごとに報告、`details` 構造:
- `min` (number, required): 最小所要時間(ミリ秒)。
- `max` (number, required): 最大所要時間(ミリ秒)。
- `avg` (number, required): 平均所要時間(ミリ秒)。
- `fault_times` (number): 失敗回数(失敗がある場合のみ存在)。
- `EmulatorFPS`
エミュレータリフレッシュレート1分ごとに検出、`details` 構造:
- `fps` (number, required): エミュレータ/システムのリフレッシュレートFPS
- `refresh_period_ns` (number, required): フレーム更新周期(ナノ秒)。
### AsyncCallInfo
@@ -227,7 +246,7 @@ Todo
- `MedicineConfirm`
理性回復剤使用確認
- `ExpiringMedicineConfirm`
48時間以内に期限切れ理性回復剤使用確認
期限切れ間近の理性回復剤使用確認
- `StoneConfirm`
純正源石使用確認
- `RecruitRefreshConfirm`
@@ -361,6 +380,16 @@ Todo
}
```
- `RecruitPreservedTag`
保留対象の公開求人タグの検出
```json
// 対応する詳細フィールドの例
{
"tag": "ロボット"
}
```
- `RecruitResult`
公開求人結果

View File

@@ -64,6 +64,8 @@ AsstTaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const cha
Official`123****4567`、入力可能:`123****4567``4567``123``3****4567`
<br>
Bilibili`张三`、入力可能:`张三``张``三`
<br>
繁体字中国語サーバーEメール形式`ab****01@gmail.com`)。アスタリスクを含まない明文部分(例:`01@gmail`)の入力を推奨
:::
::::
@@ -134,8 +136,11 @@ Bilibili`张三`、入力可能:`张三`、`张`、`三`
::: field name="medicine" type="number" optional default="0"
理性回復剤の最大使用数。
:::
::: field name="expiring_medicine" type="number" optional default="0"
48 時間以内に期限切れになる理性回復剤の最大使用数
::: field name="medicine_expire_days" type="number" optional default="0"
指定日数以内に期限切れになる理性回復剤を使用します。`0` は期限切れの理性回復剤を使用しないことを意味します
:::
::: field name="expiring_medicine" type="number" optional default="0" deprecated
v6.8.0 で非推奨になりました。代わりに `medicine_expire_days` を使用してください。
:::
::: field name="stone" type="number" optional default="0"
純正源石の最大使用数。
@@ -197,7 +202,7 @@ Bilibili`张三`、入力可能:`张三`、`张`、`三`
"enable": true,
"stage": "1-7",
"medicine": 1,
"expiring_medicine": 0,
"medicine_expire_days": 2,
"stone": 0,
"times": 10,
"series": 0,
@@ -259,7 +264,14 @@ Bilibili`张三`、入力可能:`张三`、`张`、`三`
緊急招集の回数。`expedite` が true の場合のみ有効です。デフォルトは制限なし(`times` の上限まで)です。
:::
::: field name="skip_robot" type="boolean" optional default="true"
ロボット タグが認識されたときにスキップするかどうか
非推奨です。旧パラメータ互換のためにのみ残されています
<br>
`preserve_tags` が指定されておらず、この値が `true` の場合は `支援机械` を認識したときのみスキップします。`元素` は旧来の 1★ タグとしては扱われません。
:::
::: field name="preserve_tags" type="array<string>" optional
現在の公開求人枠を保持したまま今回の募集をスキップしたい Tag 名の一覧です。デフォルトは空です。
<br>
指定した Tag のいずれかを認識した場合、MAA はその枠を保持して今回の募集をスキップします。
:::
::: field name="recruitment_time" type="object" optional
タグレベル3 以上)と対応する希望採用時間(分単位)。デフォルト値は 540つまり 09:00:00です。
@@ -300,7 +312,7 @@ Bilibili`张三`、入力可能:`张三`、`张`、`三`
"set_time": true,
"expedite": false,
"expedite_times": 0,
"skip_robot": true,
"preserve_tags": ["支援机械"],
"recruitment_time": {
"3": 540,
"4": 540
@@ -721,7 +733,7 @@ Sarkaz テーマ、Investment モード、「破棘成金分隊」または「
::: field name="filename" type="string"
単一作業 JSON ファイルのパス。copilot_list と二択(必須)。相対/絶対パスの両方対応。
:::
::: field name="copilot_list" type="array<object>"
::: field name="copilot_list" type="array`<object>`"
作業リスト。filename と二択必須。filename と copilot_list が同時に存在する場合、copilot_list を無視。このパラメータが有効な場合、set_params は 1 回のみ実行可能。
<br>
各オブジェクトには以下を含みます:
@@ -747,7 +759,7 @@ Sarkaz テーマ、Investment モード、「破棘成金分隊」または「
<br>
04 の整数。0 は現在の編成を意味し、14 は第 1第 4 編成を表します。
:::
::: field name="user_additional" type="array<object>" optional default="[]"
::: field name="user_additional" type="array`<object>`" optional default="[]"
カスタム追加オペレーター リスト。formation が true の場合のみ有効。
<br>
各オブジェクトには以下を含みます:
@@ -932,9 +944,9 @@ Sarkaz テーマ、Investment モード、「破棘成金分隊」または「
<br>
`16` (`RA1`) - RA-1、精耕細作→建設→資源納品→決算を自動ループ。
<br>
`48` (`RA4`) - RA-4、経営計画→建設→資源納品→決算を自動ループ
`32` (`RA15`) - RA-15、シヴィライト・エテルナで60撃破ミッションを達成
<br>
`32` (`RA15`) - RA-15、シヴィライト・エテルナで60撃破ミッションを達成。
`48` (`RA4`) - RA-4、「計画経営」で得た赤金を使ってエリアを解放し、ヴィシャデルでボス討伐を完了する。
:::
::: field name="tools_to_craft" type="array<string>" optional default="[&quot;荧光棒&quot;]"
自動製造品。サブストリング入力推奨。Tales テーマのみ有効。

View File

@@ -196,7 +196,7 @@ strategy = "merge" # 또는 "first" (기본값)
# 일요일 저녁에는 모든 만료 임박한 약물을 사용
[[tasks.variants]]
params = { expiring_medicine = 1000 }
params = { medicine_expire_days = 2 }
[tasks.variants.condition]
type = "And"

View File

@@ -37,10 +37,14 @@ icon: solar:streets-map-point-linear
- 수익 참고: 약 417 토큰 + 통합 포인트, 1회 약 1분 40초
- 오퍼레이터 요구사항: 비샤델 (서포트 사용 가능)
- 조건: 메인 스토리에서 RA-4 클리어 상태
- 전 조건:
1. 메인 스토리를 진행하여 RA-4를 클리어한 상태로 만듭니다.
2. "전략 계획 경영"을 해금합니다.
3. 자신이 비샤델을 보유한 경우, 수동으로 스테이지를 열고 한 번 편성합니다. 비샤델보다 코스트가 낮은 임의의 5명의 오퍼레이터 + 비샤델로 하고, 비샤델을 6번째 슬롯(마지막으로 선택하는 자리)에 배치합니다. 그 후 모집을 확정하고, 이번 건설을 포기한 후 "건설 시작"에서 시작합니다.
4. 서포트 비샤델을 사용하는 경우, 비샤델이 스나이퍼 서포트 첫 페이지에 있는지 확인합니다(친구 고려). 수동으로 스테이지를 열어 비샤델보다 코스트가 낮은 임의의 5명의 오퍼레이터를 편성하고, 6번째 슬롯에 서포트 비샤델을 선택한 후 모집을 확정합니다. 그 후 이번 건설을 포기하고 "건설 시작"에서 시작합니다 (앞의 5개 슬롯에 오퍼레이터가 있고 6번째는 비어 있는지 확인).
- 월드맵에서 RA-4를 열고, 우하단에 "건설 시작"이 나타나면 작업을 시작하면 자동 루프됩니다
- 주의: 시작 시 추가 아이템을 가져가는 기술을 해금한 경우, 해당 시설(식품 공급소, 음료 공급소, 대형 우리 등)을 제거해 주세요
- 작업 흐름: 경영 계획→건설→자원 납품→결산 자동 루프
- 작업 흐름: "경영 계획"으로 얻은 적금을 사용하여 지역을 해금하고, 비샤델로 보스 처치 임무를 완료합니다。
### RA-15

View File

@@ -11,10 +11,14 @@ icon: fluent:people-24-filled
`즉시 완료 허가증` 자동 사용을 지원하며, 1회 실행 시 `최대 모집 횟수`를 설정할 수 있습니다. `즉시 완료 허가증 자동 사용`과 연계하여 모집권을 한 번에 모두 소모할 수도 있습니다.
1★, 5★, 6★ 나오면 알림이 표시됩니다.
보류 대상으로 지정한 태그, 5★ 태그, 6★ 태그가 나오면 알림이 표시됩니다.
공개모집이 될 때마다 공채 태그 데이터가 자동으로 [펭귄 물류](https://penguin-stats.cn/) 및 [Yituliu](https://ark.yituliu.cn/)에 업로드 됩니다.
## 고급 설정
`자동 모집`은 MAA가 태그를 자동으로 선택하고 모집을 진행합니다. `수동 모집`은 자동 선택 및 모집을 하지 않습니다.
`3★ 태그 우선`을 켜면 선호하는 3★ 태그를 추가로 고를 수 있습니다. `선택한 태그 보류`를 켜면 유지하고 싶은 태그를 고를 수 있습니다.
보류 대상으로 지정한 태그 중 하나라도 인식되면 MAA는 현재 공개모집 슬롯을 유지한 채 이번 모집을 건너뛰며, 확인을 진행하지 않습니다.

View File

@@ -11,13 +11,14 @@ icon: ic:round-rocket-launch
## 계정 전환
**글로벌 서버는 지원하지 않습니다. (CN만 가능)**
이 기능은 설정 전환 또는 정기 실행과 함께 사용해야 하며, `로그인` 작업이 실행될 때마다 계정 전환 작업이 수행됩니다.
이미 로그인된 계정으로만 전환할 수 있습니다. 로그인 이름으로 검색되므로 입력 내용이 모든 로그인된 계정에서 고유하도록 해주세요.
예시: `123****8901``123****8901`, `123`, `8901`, `3****8`로 입력될 수 있습니다.
- 예시:
- 공식 서버: `123****8901``123****8901`, `123`, `8901`, `3****8`로 입력될 수 있습니다.
- Bilibili 서버: `张三``张三`, `张`, `三`로 입력될 수 있습니다.
- 번체 중국어 서버: 계정은 Email 형식이며(예: `ab****01@gmail.com`), 별표가 없는 평문 부분(예: `01@gmail`) 입력을 권장합니다.
## 연결 설정

View File

@@ -119,6 +119,25 @@ typedef void(ASST_CALL* AsstCallback)(int msg, const char* details, void* custom
스크린샷 실패 (adb / 에뮬레이터 충돌), 재시도 실패
- `TouchModeNotAvailable`
지원하지 않는 터치 모드
- `ResolutionGot`
해상도를 획득함
- `FastestWayToScreencap`
가장 빠른 스크린샷 방식을 찾음, `details` 구조:
- `method` (string, required): 가장 빠른 스크린샷 방식.
- `cost` (number, required): 소요 시간 (밀리초).
- `alternatives` (array`<object>`, required): 모든 후보 방식과 소요 시간.
- `ScreencapCost`
스크린샷 소요 시간 통계 (10회마다 보고), `details` 구조:
- `min` (number, required): 최소 소요 시간 (밀리초).
- `max` (number, required): 최대 소요 시간 (밀리초).
- `avg` (number, required): 평균 소요 시간 (밀리초).
- `fault_times` (number): 실패 횟수 (실패가 있는 경우에만 존재).
- `EmulatorFPS`
에뮬레이터 주사율 (1분마다 검사), `details` 구조:
- `fps` (number, required): 에뮬레이터/시스템 주사율 (FPS).
- `refresh_period_ns` (number, required): 프레임 주기 (나노초).
### AsyncCallInfo
@@ -265,7 +284,7 @@ typedef void(ASST_CALL* AsstCallback)(int msg, const char* details, void* custom
- `MedicineConfirm`
이성 회복제 사용 확인
- `ExpiringMedicineConfirm`
48시간 내 만료되는 이성 회복제 사용 확인
만료 임박한 이성 회복제 사용 확인
- `StoneConfirm`
오리지늄 사용 확인
- `RecruitRefreshConfirm`
@@ -364,6 +383,15 @@ typedef void(ASST_CALL* AsstCallback)(int msg, const char* details, void* custom
:::
::::
- `RecruitPreservedTag`
공개모집에서 보류 대상으로 설정된 태그를 식별했습니다. `details` 필드 내용은 다음과 같습니다:
:::: field-group
::: field name="tag" type="string" required
보류를 트리거한 태그 명칭, 예: `지원 기계`
:::
::::
- `RecruitResult`
공개모집 식별 결과. `details` 필드 구조는 다음과 같습니다:
- `tags` (array, required): 식별된 모든 태그, 현재 5개로 고정

View File

@@ -64,6 +64,8 @@ AsstTaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const cha
공식 서버: `123****4567`인 경우 `123****4567`, `4567`, `123`, `3****4567` 입력 가능
<br>
Bilibili 서버: `张三`인 경우 `张三`, `张`, `三` 입력 가능
<br>
번체 중국어 서버: 계정은 Email 형식이며(예: `ab****01@gmail.com`), 별표가 없는 평문 부분(예: `01@gmail`) 입력을 권장합니다
:::
::::
@@ -128,8 +130,11 @@ Bilibili 서버: `张三`인 경우 `张三`, `张`, `三` 입력 가능
::: field name="medicine" type="number" optional default="0"
이성 회복제 최대 사용 개수
:::
::: field name="expiring_medicine" type="number" optional default="0"
48시간 내 만료되는 이성 회복제 최대 사용 개수
::: field name="medicine_expire_days" type="number" optional default="0"
지정된 일수 이내에 만료되는 이성 회복제를 사용합니다. `0`은 만료 임박 이성 회복제를 사용하지 않음을 의미합니다.
:::
::: field name="expiring_medicine" type="number" optional default="0" deprecated
v6.8.0부터 폐기됨. 대신 `medicine_expire_days`를 사용하세요.
:::
::: field name="stone" type="number" optional default="0"
오리지늄 최대 사용 개수
@@ -184,7 +189,7 @@ Bilibili 서버: `张三`인 경우 `张三`, `张`, `三` 입력 가능
"enable": true,
"stage": "1-7",
"medicine": 1,
"expiring_medicine": 0,
"medicine_expire_days": 2,
"stone": 0,
"times": 10,
"series": 0,
@@ -248,7 +253,14 @@ Bilibili 서버: `张三`인 경우 `张三`, `张`, `三` 입력 가능
즉시 완료 사용 횟수, `expedite`가 true일 때만 유효. 기본값은 무제한(즉 `times` 상한까지)
:::
::: field name="skip_robot" type="boolean" optional default="true"
로봇 태그 인식 시 건너뛸지 여부
폐기 예정이며 구형 파라미터 호환용으로만 유지됩니다.
<br>
`preserve_tags`가 없고 이 값이 `true`이면 `支援机械` 인식 시에만 건너뜁니다. `元素`는 더 이상 구형 1★ 태그로 취급하지 않습니다.
:::
::: field name="preserve_tags" type="array<string>" optional
현재 공개모집 슬롯을 유지한 채 이번 모집을 건너뛸 Tag 이름 목록입니다. 기본값은 빈 배열입니다.
<br>
지정한 Tag 중 하나라도 인식되면 MAA는 해당 슬롯을 유지하고 이번 모집을 건너뜁니다.
:::
::: field name="recruitment_time" type="object" optional
태그 등급(3 이상)과 대응하는 희망 모집 시간(분 단위), 기본값은 모두 540(즉 09:00:00)
@@ -289,7 +301,7 @@ Yituliu 전송 ID, 기본값 비어 있음. `report_to_yituliu`가 true일 때
"set_time": true,
"expedite": false,
"expedite_times": 0,
"skip_robot": true,
"preserve_tags": ["支援机械"],
"recruitment_time": {
"3": 540,
"4": 540
@@ -710,7 +722,7 @@ Sarkaz 테마, Investment 모드, "연금술 분대" 또는 "지원 분대"일
::: field name="filename" type="string"
단일 작전 JSON 파일 경로, copilot_list와 택일(필수); 상대/절대 경로 모두 가능
:::
::: field name="copilot_list" type="array<object>"
::: field name="copilot_list" type="array`<object>`"
작전 목록, filename과 택일(필수); filename과 copilot_list 동시 존재 시 copilot_list 무시; 이 파라미터 유효 시 set_params는 1회만 실행 가능
<br>
각 객체 포함:
@@ -736,7 +748,7 @@ Sarkaz 테마, Investment 모드, "연금술 분대" 또는 "지원 분대"일
<br>
04 정수, 0은 현재 편성 선택, 1-4는 제1, 2, 3, 4 편성
:::
::: field name="user_additional" type="array<object>" optional default="[]"
::: field name="user_additional" type="array`<object>`" optional default="[]"
사용자 정의 추가 오퍼레이터 목록. `formation`이 true일 때 유효
<br>
각 객체 포함:
@@ -921,9 +933,9 @@ Sarkaz 테마, Investment 모드, "연금술 분대" 또는 "지원 분대"일
<br>
`16` (`RA1`) - RA-1, 정경세작→건설→자원 납품→결산 자동 루프。
<br>
`48` (`RA4`) - RA-4, 경영 계획→건설→자원 납품→결산 자동 루프
`32` (`RA15`) - RA-15, 시빌라이트 에테르나로 60킬 미션 달성
<br>
`32` (`RA15`) - RA-15, 시빌라이트 에테르나로 60킬 미션 달성。
`48` (`RA4`) - RA-4, "경영 계획"으로 얻은 적금을 사용하여 지역을 해금하고, 비샤델로 보스 처치 임무를 완료합니다。
:::
::: field name="tools_to_craft" type="array<string>" optional default="[&quot;荧光棒&quot;]"
자동 제작 아이템, 부분 문자열 입력 권장. Tales 테마에서만 유효

View File

@@ -195,7 +195,7 @@ strategy = "merge" # 或者 "first" (默认)
# 在周天晚上使用所有的将要过期的理智药
[[tasks.variants]]
params = { expiring_medicine = 1000 }
params = { medicine_expire_days = 2 }
[tasks.variants.condition]
type = "And"

View File

@@ -30,17 +30,21 @@ icon: solar:streets-map-point-linear
- 干员要求:无
- 前置步骤:推进主线至 RA-1 已通关状态
- 在大地图打开 RA-1右下角出现「开启建设」时启动任务即可自动循环
- 注意:如果已解锁开局额外携带物品的相关科技,请将基地内会导致开局额外携带物品的设施拆除,如食品供给站、饮品供给站、大型兽栏等
- 注意:如果已解锁开局额外携带物品的相关科技,请将基地内会导致开局额外携带物品的设施拆除,如食品供给站、饮品供给站、兽栏等
- 任务流程:自动执行精耕细作、建设、交付资源、结算循环
### RA-4
- 收益参考:每把约 417 代币 + 统筹点数,单轮耗时约 1 分 40 秒
- 干员要求:维什戴尔(可以借助战)
- 前置步骤:推进主线至 RA-4 已通关状态
- 前置步骤:
1. 推进主线至 RA-4 已通关状态
2. 解锁策略筹划经营
3. 如果自己有维什戴尔,请手动打开关卡并配队一次,保证为任意 5 个费用比维什戴尔低的干员+ 维什戴尔,且维什戴尔位于六号位即最后一个选的人,然后确认招募,放弃本次建设并在开始建设处开始
4. 如果使用助战维什戴尔,请保证维什戴尔在狙击助战首页(考虑挚友),请手动打开关卡编入任意 5 个费用比维什戴尔低的干员,六号位选择维什戴尔助战后确认招募,放弃本次建设并在开始建设处开始(保证队伍前五位有人且六号位为空)
- 在大地图打开 RA-4右下角出现「开启建设」时启动任务即可自动循环
- 注意:如果已解锁开局额外携带物品的相关科技,请将基地内会导致开局额外携带物品的设施拆除,如食品供给站、饮品供给站、大型兽栏等
- 任务流程:自动执行筹划经营、建设、交付资源、结算循环
- 注意:如果已解锁开局额外携带物品的相关科技,请将基地内会导致开局额外携带物品的设施拆除,如食品供给站、饮品供给站、兽栏等
- 任务流程:使用筹划经营策略给予的赤金解锁区域,使用维什戴尔完成击杀 boss 任务
### RA-15
@@ -51,5 +55,5 @@ icon: solar:streets-map-point-linear
2. 如果自己有圣聆初雪,请手动打开关卡并配队一次,保证为五先锋(无练度要求)+ 初雪,且初雪位于六号位即最后一个选的人,然后保存配队并退出关卡
3. 如果使用助战圣聆初雪,请保证圣聆初雪在术士助战首页(考虑挚友)
- 在大地图打开 RA-15右下角出现「开启建设」时启动任务即可自动循环
- 注意:如果已解锁开局额外携带物品的相关科技,请将基地内会导致开局额外携带物品的设施拆除,如食品供给站、饮品供给站、大型兽栏等
- 注意:如果已解锁开局额外携带物品的相关科技,请将基地内会导致开局额外携带物品的设施拆除,如食品供给站、饮品供给站、兽栏等
- 任务流程:用圣聆初雪完成 60 杀任务

View File

@@ -11,10 +11,14 @@ icon: fluent:people-24-filled
支持自动使用 `加急许可`,支持设置单次任务最大招募次数,可配合 `自动使用加急许可` 一次性刷光招募券。
当识别到出现 1、5、6 星标签会弹出通知提示。
当识别到保留词条、5 星标签或 6 星标签会弹出通知提示。
公招刷新时会自动将公招标签数据上传到 [企鹅物流数据统计](https://penguin-stats.cn/) 和 [一图流](https://ark.yituliu.cn/)。
## 高级设置
`自动确认` 即 MAA 自动选择标签并进行招募,`手动确认` 即不进行自动选择与招募。
勾选 `3 星 tag 倾向` 后,可进一步选择首选的 3 星 Tag勾选 `保留指定词条` 后,可选择需要保留的 Tag。
当识别到任一保留词条时MAA 会跳过当前公招槽位并保留该栏位,不会继续确认本次招募。

View File

@@ -18,6 +18,7 @@ icon: ic:round-rocket-launch
- 例子:
- 官服:`123****8901`,可输入 `123****8901``123``8901``3****8`
- B 服:`张三`,可输入 `张三``张``三`
- 繁中服:账号为 Email`ab****01@gmail.com`,建议填不含星号的明文片段,如 `01@gmail`
## 连接设置

View File

@@ -119,6 +119,25 @@ typedef void(ASST_CALL* AsstCallback)(int msg, const char* details, void* custom
截图失败adb / 模拟器 炸了),并重试失败
- `TouchModeNotAvailable`
不支持的触控模式
- `ResolutionGot`
已获取到分辨率
- `FastestWayToScreencap`
已找到最快的截图方式,`details` 结构如下:
- `method` (string, required): 最快的截图方式。
- `cost` (number, required): 耗时,单位毫秒。
- `alternatives` (array`<object>`, required): 各候选方式及其耗时。
- `ScreencapCost`
截图耗时统计(每 10 次截图回传一次),`details` 结构如下:
- `min` (number, required): 最小耗时,单位毫秒。
- `max` (number, required): 最大耗时,单位毫秒。
- `avg` (number, required): 平均耗时,单位毫秒。
- `fault_times` (number): 失败次数(仅有失败时存在)。
- `EmulatorFPS`
模拟器刷新率(每 1 分钟检测一次),`details` 结构如下:
- `fps` (number, required): 模拟器/系统刷新率FPS
- `refresh_period_ns` (number, required): 每帧刷新周期,单位纳秒。
### AsyncCallInfo
@@ -265,7 +284,7 @@ typedef void(ASST_CALL* AsstCallback)(int msg, const char* details, void* custom
- `MedicineConfirm`
使用理智药
- `ExpiringMedicineConfirm`
使用 48 小时内过期的理智药
使用即将过期的理智药
- `StoneConfirm`
碎石
- `RecruitRefreshConfirm`
@@ -364,6 +383,15 @@ typedef void(ASST_CALL* AsstCallback)(int msg, const char* details, void* custom
:::
::::
- `RecruitPreservedTag`
公招识别到了已配置为保留的 Tag。`details` 字段内容如下:
:::: field-group
::: field name="tag" type="string" required
触发保留的 Tag 名称,例如 `支援机械`。
:::
::::
- `RecruitResult`
公招识别结果。`details` 字段结构如下:
- `tags` (array, required): 所有识别到的 tags目前固定为 5 个。

View File

@@ -64,6 +64,8 @@ AsstTaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const cha
官服:`123****4567`,可输入 `123****4567``4567``123``3****4567`
<br>
B服`张三`,可输入 `张三``张``三`
<br>
繁中服:账号为 Email`ab****01@gmail.com`,建议填不含星号的明文片段,如 `01@gmail`
:::
::::
@@ -134,8 +136,11 @@ B服`张三`,可输入 `张三`、`张`、`三`
::: field name="medicine" type="number" optional default="0"
最大使用理智药数量。
:::
::: field name="expiring_medicine" type="number" optional default="0"
最大使用 48 小时内过期理智药数量
::: field name="medicine_expire_days" type="number" optional default="0"
使用过期时间在指定天数内的理智药0 表示不使用过期理智药。
:::
::: field name="expiring_medicine" type="number" optional default="0" deprecated
已弃用,自 v6.8.0 起请使用 `medicine_expire_days` 代替。
:::
::: field name="stone" type="number" optional default="0"
最大吃石头数量。
@@ -197,7 +202,7 @@ B服`张三`,可输入 `张三`、`张`、`三`
"enable": true,
"stage": "1-7",
"medicine": 1,
"expiring_medicine": 0,
"medicine_expire_days": 2,
"stone": 0,
"times": 10,
"series": 0,
@@ -259,7 +264,14 @@ B服`张三`,可输入 `张三`、`张`、`三`
加急次数,仅在 `expedite` 为 true 时有效。默认无限使用(直到 `times` 达到上限)。
:::
::: field name="skip_robot" type="boolean" optional default="true"
是否在识别到小车词条时跳过
已废弃,仅用于兼容旧参数
<br>
当未提供 `preserve_tags` 且该值为 `true` 时,会在识别到 `支援机械` 时跳过;`元素` 不再视为旧版 1 星词条。
:::
::: field name="preserve_tags" type="array<string>" optional
需要保留并跳过当前公招槽位的 Tag 名称列表。默认为空。
<br>
当识别到任一指定 Tag 时MAA 会保留该槽位并跳过本次招募。
:::
::: field name="recruitment_time" type="object" optional
Tag 等级(大于等于 3和对应的希望招募时限单位为分钟默认值都为 540即 09:00:00
@@ -300,7 +312,7 @@ Tag 等级(大于等于 3和对应的希望招募时限单位为分钟
"set_time": true,
"expedite": false,
"expedite_times": 0,
"skip_robot": true,
"preserve_tags": ["支援机械"],
"recruitment_time": {
"3": 540,
"4": 540
@@ -721,7 +733,7 @@ Tag 等级(大于等于 3和对应的希望招募时限单位为分钟
::: field name="filename" type="string"
单一作业 JSON 文件的路径,与 copilot_list 二选一(必填);相对路径与绝对路径均可。
:::
::: field name="copilot_list" type="array<object>"
::: field name="copilot_list" type="array`<object>`"
作业列表,与 filename 二选一(必填);当 filename 与 copilot_list 同时存在时,忽视 copilot_list此参数生效时仅可执行 set_params 一次。
<br>
每个对象包含:
@@ -747,7 +759,7 @@ Tag 等级(大于等于 3和对应的希望招募时限单位为分钟
<br>
为 04 的整数,其中 0 表示选择当前编队1-4 分别表示第一、二、三、四编队。
:::
::: field name="user_additional" type="array<object>" optional default="[]"
::: field name="user_additional" type="array`<object>`" optional default="[]"
自定义追加干员列表。仅在 formation 为 true 时有效。
<br>
每个对象包含:
@@ -932,9 +944,9 @@ Tag 等级(大于等于 3和对应的希望招募时限单位为分钟
<br>
`16` (`RA1`) - RA-1自动执行精耕细作、建设、交付资源、结算循环。
<br>
`48` (`RA4`) - RA-4自动执行筹划经营、建设、交付资源、结算循环
`32` (`RA15`) - RA-15用圣聆初雪完成 60 杀任务
<br>
`32` (`RA15`) - RA-15用圣聆初雪完成 60 杀任务。
`48` (`RA4`) - RA-4使用筹划经营策略给予的赤金解锁区域使用维什戴尔完成击杀 boss 任务。
:::
::: field name="tools_to_craft" type="array<string>" optional default="[&quot;荧光棒&quot;]"
自动制造的物品,建议填写子串。仅 Tales 主题有效。

View File

@@ -117,7 +117,7 @@ MAA 以中文(简体)为第一语言,翻译词条均以中文(简体)
- [集成文档](./protocol/integration.md)
- [回调消息协议](./protocol/callback-schema.md)
- [任务流程协议](./protocol/task-schema.md)
- [自动抄作业协议](./protocol/copilot-schema.md)
- [自动战斗协议](./protocol/copilot-schema.md)
### 外服适配

View File

@@ -195,7 +195,7 @@ strategy = "merge" # 或者 "first" (預設)
# 在週日晚上使用所有將要過期的理智藥
[[tasks.variants]]
params = { expiring_medicine = 1000 }
params = { medicine_expire_days = 2 }
[tasks.variants.condition]
type = "And"

View File

@@ -37,10 +37,14 @@ icon: solar:streets-map-point-linear
- 收益參考:每把約 417 代幣 + 統籌點數,單輪耗時約 1 分 40 秒
- 幹員要求:維什戴爾(可借助戰)
- 前置步驟:推進主線至 RA-4 已通關狀態
- 前置步驟:
1. 推進主線至 RA-4 已通關狀態
2. 解鎖策略籌劃經營
3. 如果自己有維什戴爾,請手動打開關卡並配隊一次,保證為任意 5 個費用比維什戴爾低的幹員+ 維什戴爾,且維什戴爾位於六號位即最後一個選的人,然後確認招募,放棄本次建設並在開始建設處開始
4. 如果使用助戰維什戴爾,請保證維什戴爾在狙擊助戰首頁(考慮摯友),請手動打開關卡編入任意 5 個費用比維什戴爾低的幹員,六號位選擇維什戴爾助戰後確認招募,放棄本次建設並在開始建設處開始(保證隊伍前五位有人且六號位為空)
- 在大地圖打開 RA-4右下角出現「開啟建設」時啟動任務即可自動循環
- 注意:如果已解鎖開局額外攜帶物品的相關科技,請將基地內會導致開局額外攜帶物品的設施拆除,如食品供給站、飲品供給站、大型獸欄等
- 任務流程:自動執行籌劃經營、建設、交付資源、結算循環
- 任務流程:使用籌劃經營策略給予的赤金解鎖區域,使用維什戴爾完成擊殺 boss 任務
### RA-15

View File

@@ -11,10 +11,14 @@ icon: fluent:people-24-filled
支援自動使用 `加急許可`,支援設定單次任務最大招募次數,可配合 `自動使用加急許可` 一次性刷光招募券。
當辨識到出現 1、5、6 星 Tag 都會彈出通知提示。
當辨識到保留 Tag、5 星 Tag 或 6 星 Tag 都會彈出通知提示。
公招重新整理時會自動將公招 Tag 數據上傳到 [企鵝物流數據統計](https://penguin-stats.io/) 和 [一圖流](https://ark.yituliu.cn/)。
## 進階設定
`自動確認` 即 MAA 自動選擇 Tag 並進行招募,`手動確認` 即不進行自動選擇與招募。
勾選 `3 星 tag 傾向` 後,可進一步選擇偏好的 3 星 Tag勾選 `保留指定詞條` 後,可選擇需要保留的 Tag。
當辨識到任一保留 Tag 時MAA 會跳過目前的公招欄位並保留該欄位,不會繼續確認本次招募。

View File

@@ -18,6 +18,7 @@ icon: ic:round-rocket-launch
- 範例:
- 官服:`123****8901`,可輸入 `123****8901``123``8901``3****8`
- B 服:`張三`,可輸入 `張三``張``三`
- 繁中服:帳號為 Email`ab****01@gmail.com`,建議填不含星號的明文片段,如 `01@gmail`
## 連線設定

View File

@@ -119,6 +119,25 @@ typedef void(ASST_CALL* AsstCallback)(int msg, const char* details, void* custom
截圖失敗adb / 模擬器 炸了),並重試失敗
- `TouchModeNotAvailable`
不支援的觸控模式
- `ResolutionGot`
已獲取到解析度
- `FastestWayToScreencap`
已找到最快的截圖方式,`details` 結構如下:
- `method` (string, required): 最快的截圖方式。
- `cost` (number, required): 耗時,單位毫秒。
- `alternatives` (array`<object>`, required): 各候選方式及其耗時。
- `ScreencapCost`
截圖耗時統計(每 10 次截圖回傳一次),`details` 結構如下:
- `min` (number, required): 最小耗時,單位毫秒。
- `max` (number, required): 最大耗時,單位毫秒。
- `avg` (number, required): 平均耗時,單位毫秒。
- `fault_times` (number): 失敗次數(僅有失敗時存在)。
- `EmulatorFPS`
模擬器更新率(每 1 分鐘檢測一次),`details` 結構如下:
- `fps` (number, required): 模擬器/系統更新率FPS
- `refresh_period_ns` (number, required): 每幀更新週期,單位奈秒。
### AsyncCallInfo
@@ -265,7 +284,7 @@ typedef void(ASST_CALL* AsstCallback)(int msg, const char* details, void* custom
- `MedicineConfirm`
使用理智藥
- `ExpiringMedicineConfirm`
使用 48 小時內過期的理智藥
使用即將過期的理智藥
- `StoneConfirm`
碎石
- `RecruitRefreshConfirm`
@@ -364,6 +383,15 @@ typedef void(ASST_CALL* AsstCallback)(int msg, const char* details, void* custom
:::
::::
- `RecruitPreservedTag`
公招辨識到了已設定為保留的 Tag。`details` 欄位內容如下:
:::: field-group
::: field name="tag" type="string" required
觸發保留的 Tag 名稱,例如 `支援機械`。
:::
::::
- `RecruitResult`
公招辨識結果。`details` 欄位結構如下:
- `tags` (array, required):所有辨識到的 tags目前固定為 5 個。

View File

@@ -64,6 +64,8 @@ AsstTaskId ASSTAPI AsstAppendTask(AsstHandle handle, const char* type, const cha
官服:`123****4567`,可輸入 `123****4567``4567``123``3****4567`
<br>
B 服:`張三`,可輸入 `張三``張``三`
<br>
繁中服:帳號為 Email`ab****01@gmail.com`,建議填不含星號的明文片段,如 `01@gmail`
:::
::::
@@ -135,8 +137,11 @@ B 服:`張三`,可輸入 `張三`、`張`、`三`
::: field name="medicine" type="number" optional default="0"
理智藥最大使用量。
:::
::: field name="expiring_medicine" type="number" optional default="0"
48 小時內過期理智藥最大使用量
::: field name="medicine_expire_days" type="number" optional default="0"
使用過期時間在指定天數內的理智藥0 表示不使用過期理智藥
:::
::: field name="expiring_medicine" type="number" optional default="0" deprecated
已棄用,自 v6.8.0 起請使用 `medicine_expire_days` 代替。
:::
::: field name="stone" type="number" optional default="0"
碎石最大數量。
@@ -197,7 +202,7 @@ B 服:`張三`,可輸入 `張三`、`張`、`三`
"enable": true,
"stage": "1-7",
"medicine": 1,
"expiring_medicine": 0,
"medicine_expire_days": 2,
"stone": 0,
"times": 10,
"series": 0,
@@ -259,7 +264,14 @@ B 服:`張三`,可輸入 `張三`、`張`、`三`
加急次數,僅在 `expedite``true` 時有效。預設無限次使用(直到 `times` 達到上限)。
:::
::: field name="skip_robot" type="boolean" optional default="true"
是否在辨識到小車 Tag 時跳過
已棄用,僅用於相容舊參數
<br>
當未提供 `preserve_tags` 且其值為 `true` 時,會在辨識到 `支援机械` 時跳過;`元素` 不再視為舊版 1 星 Tag。
:::
::: field name="preserve_tags" type="array<string>" optional
需要保留並跳過目前公招欄位的 Tag 名稱清單。預設為空。
<br>
當辨識到任一指定 Tag 時MAA 會保留該欄位並跳過本次招募。
:::
::: field name="recruitment_time" type="object" optional
Tag 等級(大於等於 3對應的期望招募時限單位分鐘。預設皆為 540 分鐘(即 09:00:00
@@ -300,7 +312,7 @@ Tag 等級(大於等於 3對應的期望招募時限單位分鐘
"set_time": true,
"expedite": false,
"expedite_times": 0,
"skip_robot": true,
"preserve_tags": ["支援机械"],
"recruitment_time": {
"3": 540,
"4": 540
@@ -721,7 +733,7 @@ Tag 等級(大於等於 3對應的期望招募時限單位分鐘
::: field name="filename" type="string"
單一作業 json 檔案路徑。與 `copilot_list` 二選一(必填),支援相對路徑與絕對路徑。
:::
::: field name="copilot_list" type="array<object>"
::: field name="copilot_list" type="array`<object>`"
作業列表。與 `filename` 二選一(必填)。若兩者同時存在,將忽略 `copilot_list`。此參數起作用時,僅可執行 `set_params` 一次。
<br>
每個物件包含:
@@ -747,7 +759,7 @@ Tag 等級(大於等於 3對應的期望招募時限單位分鐘
<br>
範圍為 04 的整數,其中 0 表示選擇目前編隊1-4 分別代表第一、二、三、四編隊。
:::
::: field name="user_additional" type="array<object>" optional default="[]"
::: field name="user_additional" type="array`<object>`" optional default="[]"
自定義追加幹員清單。僅在 `formation``true` 時有效。
<br>
每個物件包含:
@@ -932,9 +944,9 @@ Tag 等級(大於等於 3對應的期望招募時限單位分鐘
<br>
`16` (`RA1`) - RA-1自動執行精耕細作、建設、交付資源、結算循環。
<br>
`48` (`RA4`) - RA-4自動執行籌劃經營、建設、交付資源、結算循環
`32` (`RA15`) - RA-15用聖聆初雪完成 60 殺任務
<br>
`32` (`RA15`) - RA-15用聖聆初雪完成 60 殺任務。
`48` (`RA4`) - RA-4使用籌劃經營策略給予的赤金解鎖區域使用維什戴爾完成擊殺 boss 任務。
:::
::: field name="tools_to_craft" type="array<string>" optional default="[&quot;荧光棒&quot;]"
自動製造的物品清單。建議填寫名稱關鍵字即可。僅 Tales 主題有效。

View File

@@ -0,0 +1,859 @@
{
"code": "PF-1",
"height": 9,
"levelId": "activities/act1football/level_act1football_01",
"name": "揭幕之战",
"stageId": "act1football_01",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.1,
-9.76
],
[
0.9448062140292399,
-6.6,
-10.61172366939915
]
],
"width": 13
}

View File

@@ -0,0 +1,859 @@
{
"code": "PF-2",
"height": 9,
"levelId": "activities/act1football/level_act1football_02",
"name": "把握良机",
"stageId": "act1football_02",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.1,
-9.76
],
[
0.9448062140292399,
-6.6,
-10.61172366939915
]
],
"width": 13
}

View File

@@ -0,0 +1,859 @@
{
"code": "PF-3",
"height": 9,
"levelId": "activities/act1football/level_act1football_03",
"name": "渐入佳境",
"stageId": "act1football_03",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.1,
-9.76
],
[
0.9448062140292399,
-6.6,
-10.61172366939915
]
],
"width": 13
}

View File

@@ -0,0 +1,859 @@
{
"code": "PF-4",
"height": 9,
"levelId": "activities/act1football/level_act1football_04",
"name": "客场连战",
"stageId": "act1football_04",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.1,
-9.76
],
[
0.9448062140292399,
-6.6,
-10.61172366939915
]
],
"width": 13
}

View File

@@ -0,0 +1,859 @@
{
"code": "PF-5",
"height": 9,
"levelId": "activities/act1football/level_act1football_05",
"name": "争分夺球",
"stageId": "act1football_05",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.1,
-9.76
],
[
0.9448062140292399,
-6.6,
-10.61172366939915
]
],
"width": 13
}

View File

@@ -0,0 +1,859 @@
{
"code": "PF-6",
"height": 9,
"levelId": "activities/act1football/level_act1football_06",
"name": "胜负难分",
"stageId": "act1football_06",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.1,
-9.76
],
[
0.9448062140292399,
-6.6,
-10.61172366939915
]
],
"width": 13
}

View File

@@ -0,0 +1,859 @@
{
"code": "PF-7",
"height": 9,
"levelId": "activities/act1football/level_act1football_07",
"name": "出线之争",
"stageId": "act1football_07",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.1,
-9.76
],
[
0.9448062140292399,
-6.6,
-10.61172366939915
]
],
"width": 13
}

View File

@@ -0,0 +1,859 @@
{
"code": "PF-EX-1",
"height": 9,
"levelId": "activities/act1football/level_act1football_ex01",
"name": "球风对撞",
"stageId": "act1football_ex01",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.1,
-9.76
],
[
0.9448062140292399,
-6.6,
-10.61172366939915
]
],
"width": 13
}

View File

@@ -0,0 +1,859 @@
{
"code": "PF-EX-2",
"height": 9,
"levelId": "activities/act1football/level_act1football_ex02",
"name": "先声夺人",
"stageId": "act1football_ex02",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.1,
-9.76
],
[
0.9448062140292399,
-6.6,
-10.61172366939915
]
],
"width": 13
}

View File

@@ -0,0 +1,859 @@
{
"code": "PF-EX-3",
"height": 9,
"levelId": "activities/act1football/level_act1football_ex03",
"name": "小心脚下",
"stageId": "act1football_ex03",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.1,
-9.76
],
[
0.9448062140292399,
-6.6,
-10.61172366939915
]
],
"width": 13
}

View File

@@ -0,0 +1,859 @@
{
"code": "PF-EX-4",
"height": 9,
"levelId": "activities/act1football/level_act1football_ex04",
"name": "冠军之路",
"stageId": "act1football_ex04",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.1,
-9.76
],
[
0.9448062140292399,
-6.6,
-10.61172366939915
]
],
"width": 13
}

View File

@@ -0,0 +1,859 @@
{
"code": "PF-S-1",
"height": 9,
"levelId": "activities/act1football/level_act1football_sub-1-1",
"name": "耐力拉练",
"stageId": "act1football_s01",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.1,
-9.76
],
[
0.9448062140292399,
-6.6,
-10.61172366939915
]
],
"width": 13
}

View File

@@ -0,0 +1,859 @@
{
"code": "PF-S-2",
"height": 9,
"levelId": "activities/act1football/level_act1football_sub-1-2",
"name": "盘带练习",
"stageId": "act1football_s02",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_football"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.1,
-9.76
],
[
0.9448062140292399,
-6.6,
-10.61172366939915
]
],
"width": 13
}

View File

@@ -0,0 +1,859 @@
{
"code": "PF-TR-1",
"height": 9,
"levelId": "activities/act1football/level_act1football_tr01",
"name": "首次训练",
"stageId": "act1football_tr01",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_allygoal"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 3,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_enemygoal"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.1,
-9.76
],
[
0.9448062140292399,
-6.6,
-10.61172366939915
]
],
"width": 13
}

View File

@@ -0,0 +1,575 @@
{
"code": "BD-1",
"height": 7,
"levelId": "activities/act21mini/level_act21mini_01",
"name": "消耗品",
"stageId": "act21mini_01#f#",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telin"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telout"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-5.08,
-8.02
],
[
0.6426583848887812,
-5.58,
-8.898158179157907
]
],
"width": 11
}

View File

@@ -0,0 +1,575 @@
{
"code": "BD-1",
"height": 7,
"levelId": "activities/act21mini/level_act21mini_01",
"name": "消耗品",
"stageId": "act21mini_01",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telin"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telout"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": true,
"isStart": true,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-5.08,
-8.02
],
[
0.6426583848887812,
-5.58,
-8.898158179157907
]
],
"width": 11
}

View File

@@ -0,0 +1,654 @@
{
"code": "BD-2",
"height": 8,
"levelId": "activities/act21mini/level_act21mini_02",
"name": "门后世界",
"stageId": "act21mini_02#f#",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_fence_bound"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_fence_bound"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-5.6,
-8.9
],
[
0.79546878123568,
-6.1,
-9.764789001808651
]
],
"width": 11
}

View File

@@ -0,0 +1,654 @@
{
"code": "BD-2",
"height": 8,
"levelId": "activities/act21mini/level_act21mini_02",
"name": "门后世界",
"stageId": "act21mini_02",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_fence_bound"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_fence_bound"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-5.6,
-8.9
],
[
0.79546878123568,
-6.1,
-9.764789001808651
]
],
"width": 11
}

View File

@@ -0,0 +1,710 @@
{
"code": "BD-3",
"height": 8,
"levelId": "activities/act21mini/level_act21mini_03",
"name": "“嘀嗒嘀嗒”",
"stageId": "act21mini_03#f#",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telout"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_fence_bound"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telin"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_fence_bound"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telin"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.1,
-9.76
],
[
0.9448062140292399,
-6.6,
-10.61172366939915
]
],
"width": 12
}

View File

@@ -0,0 +1,710 @@
{
"code": "BD-3",
"height": 8,
"levelId": "activities/act21mini/level_act21mini_03",
"name": "“嘀嗒嘀嗒”",
"stageId": "act21mini_03",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telout"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_fence_bound"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telin"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_fence_bound"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telin"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.1,
-9.76
],
[
0.9448062140292399,
-6.6,
-10.61172366939915
]
],
"width": 12
}

View File

@@ -0,0 +1,710 @@
{
"code": "BD-4",
"height": 8,
"levelId": "activities/act21mini/level_act21mini_04",
"name": "失控沙盒",
"stageId": "act21mini_04#f#",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_grvtybtn"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_grvtybtn"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.85,
-11.065000000000001
],
[
1.1714170858845843,
-7.35,
-11.896897787080084
]
],
"width": 12
}

View File

@@ -0,0 +1,710 @@
{
"code": "BD-4",
"height": 8,
"levelId": "activities/act21mini/level_act21mini_04",
"name": "失控沙盒",
"stageId": "act21mini_04",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_grvtybtn"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_grvtybtn"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.85,
-11.065000000000001
],
[
1.1714170858845843,
-7.35,
-11.896897787080084
]
],
"width": 12
}

View File

@@ -0,0 +1,654 @@
{
"code": "BD-5",
"height": 8,
"levelId": "activities/act21mini/level_act21mini_05",
"name": "入职邀请",
"stageId": "act21mini_05#f#",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": true,
"tileKey": "tile_flystart"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": true,
"tileKey": "tile_flystart"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.1,
-9.76
],
[
0.9448062140292399,
-6.6,
-10.61172366939915
]
],
"width": 11
}

View File

@@ -0,0 +1,654 @@
{
"code": "BD-5",
"height": 8,
"levelId": "activities/act21mini/level_act21mini_05",
"name": "入职邀请",
"stageId": "act21mini_05",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": true,
"tileKey": "tile_flystart"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": true,
"tileKey": "tile_flystart"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.1,
-9.76
],
[
0.9448062140292399,
-6.6,
-10.61172366939915
]
],
"width": 11
}

View File

@@ -0,0 +1,710 @@
{
"code": "BD-6",
"height": 8,
"levelId": "activities/act21mini/level_act21mini_06",
"name": "实验守则",
"stageId": "act21mini_06#f#",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_fence_bound"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_fence_bound"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_grvtybtn"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_grvtybtn"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.85,
-11.065000000000001
],
[
1.1714170858845843,
-7.35,
-11.896897787080084
]
],
"width": 12
}

View File

@@ -0,0 +1,710 @@
{
"code": "BD-6",
"height": 8,
"levelId": "activities/act21mini/level_act21mini_06",
"name": "实验守则",
"stageId": "act21mini_06",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_fence_bound"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_ristar_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_ristar_road_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_fence_bound"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_grvtybtn"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_grvtybtn"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.85,
-11.065000000000001
],
[
1.1714170858845843,
-7.35,
-11.896897787080084
]
],
"width": 12
}

View File

@@ -0,0 +1,598 @@
{
"code": "BD-7",
"height": 8,
"levelId": "activities/act21mini/level_act21mini_07",
"name": "不断电",
"stageId": "act21mini_07#f#",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_fence_bound"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telout"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telin"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-5.58,
-8.89
],
[
0.7937322994590108,
-6.08,
-9.75494092427853
]
],
"width": 10
}

View File

@@ -0,0 +1,598 @@
{
"code": "BD-7",
"height": 8,
"levelId": "activities/act21mini/level_act21mini_07",
"name": "不断电",
"stageId": "act21mini_07",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_fence_bound"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telout"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telin"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-5.58,
-8.89
],
[
0.7937322994590108,
-6.08,
-9.75494092427853
]
],
"width": 10
}

View File

@@ -0,0 +1,710 @@
{
"code": "BD-8",
"height": 8,
"levelId": "activities/act21mini/level_act21mini_08",
"name": "演算的终点",
"stageId": "act21mini_08#f#",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_fence_bound"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-5.6,
-8.9
],
[
0.79546878123568,
-6.1,
-9.764789001808651
]
],
"width": 12
}

View File

@@ -0,0 +1,710 @@
{
"code": "BD-8",
"height": 8,
"levelId": "activities/act21mini/level_act21mini_08",
"name": "演算的终点",
"stageId": "act21mini_08",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_fence_bound"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-5.6,
-8.9
],
[
0.79546878123568,
-6.1,
-9.764789001808651
]
],
"width": 12
}

View File

@@ -0,0 +1,575 @@
{
"code": "BD-S-1",
"height": 7,
"levelId": "activities/act21mini/level_act21mini_sub-1-1",
"name": "“绝不后退”",
"stageId": "act21mini_s01",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-5.08,
-8.02
],
[
0.6426583848887812,
-5.58,
-8.898158179157907
]
],
"width": 11
}

View File

@@ -0,0 +1,526 @@
{
"code": "BD-S-2",
"height": 7,
"levelId": "activities/act21mini/level_act21mini_sub-2-1",
"name": "“试启动”",
"stageId": "act21mini_s02",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-5.6,
-8.9
],
[
0.79546878123568,
-6.1,
-9.764789001808651
]
],
"width": 10
}

View File

@@ -1543,9 +1543,7 @@
-11.065000000000001
],
[
-4.737429432188664,
-7.35,
-12.938786853081666
-4.81503047, -7.35430067, -11.94776597
]
],
"width": 24

View File

@@ -1543,9 +1543,7 @@
-11.065000000000001
],
[
-4.737429432188664,
-7.35,
-12.938786853081666
-4.81503047, -7.35430067, -11.94776597
]
],
"width": 24

View File

@@ -1543,9 +1543,7 @@
-11.065000000000001
],
[
-4.737429432188664,
-7.35,
-12.938786853081666
-4.84196782, -7.35910193, -11.95383577
]
],
"width": 24

View File

@@ -0,0 +1,526 @@
{
"code": "TD-1",
"height": 7,
"levelId": "activities/act50side/level_act50side_01",
"name": "硬壳下的胆小鬼",
"stageId": "act50side_01",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_hole"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.6,
-10.64
],
[
1.097616610376139,
-7.1,
-11.478354492049894
]
],
"width": 10
}

View File

@@ -0,0 +1,526 @@
{
"code": "TD-2",
"height": 7,
"levelId": "activities/act50side/level_act50side_02",
"name": "还我锅来!",
"stageId": "act50side_02",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-7.1,
-11.5
],
[
1.2469540431696988,
-7.6,
-12.325289159640393
]
],
"width": 10
}

View File

@@ -0,0 +1,575 @@
{
"code": "TD-3",
"height": 7,
"levelId": "activities/act50side/level_act50side_03",
"name": "不能掉以轻心",
"stageId": "act50side_03",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.6,
-10.64
],
[
1.097616610376139,
-7.1,
-11.478354492049894
]
],
"width": 11
}

View File

@@ -0,0 +1,710 @@
{
"code": "TD-4",
"height": 8,
"levelId": "activities/act50side/level_act50side_04",
"name": "赤雪之兆",
"stageId": "act50side_04",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telin"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telin"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telout"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telin"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telin"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.1,
-9.76
],
[
0.9448062140292399,
-6.6,
-10.61172366939915
]
],
"width": 12
}

View File

@@ -0,0 +1,654 @@
{
"code": "TD-5",
"height": 8,
"levelId": "activities/act50side/level_act50side_05",
"name": "只能成功,不能失败",
"stageId": "act50side_05",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.08,
-9.76
],
[
0.9448062140292399,
-6.58,
-10.61172366939915
]
],
"width": 11
}

View File

@@ -0,0 +1,575 @@
{
"code": "TD-6",
"height": 7,
"levelId": "activities/act50side/level_act50side_06",
"name": "来自过去的亡魂",
"stageId": "act50side_06",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telout"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telout"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telout"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telout"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telin"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telin"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telin"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telin"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.08,
-9.76
],
[
0.9448062140292399,
-6.58,
-10.61172366939915
]
],
"width": 11
}

View File

@@ -0,0 +1,654 @@
{
"code": "TD-7",
"height": 8,
"levelId": "activities/act50side/level_act50side_07",
"name": "为什么全是死脑筋?",
"stageId": "act50side_07",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.6,
-10.63
],
[
1.0958801285994695,
-7.1,
-11.468506414519773
]
],
"width": 11
}

View File

@@ -0,0 +1,654 @@
{
"code": "TD-8",
"height": 8,
"levelId": "activities/act50side/level_act50side_08",
"name": "宿命流转,苍霆激荡",
"stageId": "act50side_08",
"tiles": [
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_fence_bound"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telout"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_wall"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 0,
"isEnd": true,
"isStart": true,
"tileKey": "tile_start"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_floor"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_road"
},
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
"tileKey": "tile_telin"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
],
[
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
},
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
}
]
],
"view": [
[
0.0,
-6.6,
-10.63
],
[
1.0958801285994695,
-7.1,
-11.468506414519773
]
],
"width": 11
}

Some files were not shown because too many files have changed in this diff Show More