Compare commits
74 Commits
alpha/v6.1
...
031e99c295
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
031e99c295 | ||
|
|
84b560d3cd | ||
|
|
ac9dbff483 | ||
|
|
b926a838c2 | ||
|
|
d9e8ec97ee | ||
|
|
d92fa39e88 | ||
|
|
30477505e8 | ||
|
|
0fc8263854 | ||
|
|
ff7306775b | ||
|
|
8af85aa4ec | ||
|
|
2bf335d35d | ||
|
|
18d764643a | ||
|
|
62f456dc5a | ||
|
|
ca19cb1af1 | ||
|
|
58e3d06b27 | ||
|
|
72c68bd1e0 | ||
|
|
19e6e1d70b | ||
|
|
2cad3baf92 | ||
|
|
5d5b66a1ef | ||
|
|
cdbf31debb | ||
|
|
0239409ef4 | ||
|
|
8927eb7a15 | ||
|
|
b81e1d49b5 | ||
|
|
7a92d322d8 | ||
|
|
a36947a8ec | ||
|
|
eb318012c4 | ||
|
|
d17249649e | ||
|
|
d31ca81e83 | ||
|
|
5bfbd22215 | ||
|
|
9ab5912a4b | ||
|
|
382f10a58c | ||
|
|
295f2073bd | ||
|
|
821d5fc425 | ||
|
|
1676cb7de4 | ||
|
|
efb3c7a567 | ||
|
|
418a4aa0e0 | ||
|
|
cab1ca8cca | ||
|
|
130164e925 | ||
|
|
85024b6141 | ||
|
|
aa47abfacb | ||
|
|
fa8d0f8344 | ||
|
|
95a3fa6236 | ||
|
|
cf61b5b6e4 | ||
|
|
20056e52b9 | ||
|
|
746daa27cf | ||
|
|
c3dffe9929 | ||
|
|
94e0addc9a | ||
|
|
1083ee342e | ||
|
|
f9dbbb36b9 | ||
|
|
1c4aba28fd | ||
|
|
ba47dd16cf | ||
|
|
db6bb9c4e6 | ||
|
|
349a0bf730 | ||
|
|
e2400684bb | ||
|
|
6cec1e9ced | ||
|
|
d821607983 | ||
|
|
8f860635aa | ||
|
|
222c853263 | ||
|
|
8276849f1a | ||
|
|
f24c0e237a | ||
|
|
e04e656f45 | ||
|
|
9104f1a06a | ||
|
|
9344e38fec | ||
|
|
d2cb0fd435 | ||
|
|
645b86babd | ||
|
|
70a3a5a6eb | ||
|
|
6b7ec43006 | ||
|
|
3578c255be | ||
|
|
0d66797b34 | ||
|
|
9097d4e1c1 | ||
|
|
0f4497da86 | ||
|
|
ded0682bcc | ||
|
|
8c560b8bc6 | ||
|
|
0b281e6ff6 |
@@ -1,196 +1,209 @@
|
||||
---
|
||||
name: changelog
|
||||
description: 根据提交记录、PR、diff、现有 CHANGELOG 与历史 tag 内容,整理符合 MAA 发布规范的 changelog Markdown。用于修正工具自动生成的 changelog、合并同类改动、清理 bot 或 release 噪音,并产出可直接提交的最终版本。
|
||||
description: 根据 git 提交记录、diff、现有 CHANGELOG 与 tag,整理符合 MAA 发布规范的 changelog Markdown。过滤噪音、合并同类改动,输出可直接写入 CHANGELOG.md 的最终版本。
|
||||
---
|
||||
|
||||
# MAA Changelog Skill
|
||||
|
||||
## Goal
|
||||
## 目标
|
||||
|
||||
- 读取待发布范围内的 commit、PR、diff、现有 CHANGELOG 与对应 tag 内容,输出可直接写入 CHANGELOG.md 的最终 Markdown 片段。
|
||||
- 只输出最终 Markdown,不输出分析过程、分类理由、筛选记录、额外说明或 Markdown 代码围栏。
|
||||
- 以“最终用户看得懂、历史版本不断裂、同类改动不重复”为第一目标,不以保留原始 commit 标题为目标。
|
||||
读取待发布范围内的 commit、diff、现有 CHANGELOG 与历史 tag,输出可直接写入 `CHANGELOG.md` 的最终 Markdown。
|
||||
|
||||
## Scope
|
||||
- **只输出最终 Markdown**,不输出分析过程、分类理由或代码围栏。
|
||||
- 第一目标:"最终用户看得懂、历史版本不断裂、同类改动不重复"。
|
||||
|
||||
- 适用于正式版、测试版、补丁版的 changelog 整理与重写。
|
||||
- 正式版的补丁版本不应该修改 Highlights 中的内容,除非确实有用户可感知的重要变化。
|
||||
- 当工具已经生成初稿时,初稿只可作为原始素材,不能直接信任其分类、版本归属、标题质量、去重结果与排序结果。
|
||||
- 如果 commit 标题含糊、口语化、玩梗、只写 review、typo、warning、日志顺序、调整坐标等,必须查看 diff 后改写为专业、完整、可独立理解的用户向描述。
|
||||
## 必要输入
|
||||
|
||||
## Required Inputs
|
||||
|
||||
- 目标版本号。
|
||||
- 待发布的提交范围,或可推导该范围的 PR、tag、分支信息。
|
||||
- 目标版本号(如 `v6.13.0-beta.3`)。
|
||||
- 待发布提交范围(可由 tag、PR、分支信息推导)。
|
||||
- 当前 CHANGELOG 内容。
|
||||
- 如果目标版本与已有正式版属于同一非 patch 版号,必须先读取对应正式版 tag 下的 changelog 内容,再决定如何合并与追加。
|
||||
|
||||
## Non-Negotiable Rules
|
||||
## 核心规则
|
||||
|
||||
### 1. 先看净变更,再写条目
|
||||
### 1. 净变更优先
|
||||
|
||||
- 对同一功能、同一问题或逻辑相关的多条 commit,应合并为单条 changelog 项。
|
||||
- 合并后的描述必须简洁、专业、面向最终用户,避免堆实现细节。
|
||||
- 若 commit 标题不足以表达改动价值,必须结合 diff 重写标题。
|
||||
- Revert 不是 changelog 项。遇到 Revert 时,必须结合最终 diff 判断净效果:
|
||||
- 若原改动被完整撤销,则 Revert 与原始项都删除。
|
||||
- 若最终仍保留部分语义,则把原始项与 Revert 合并为一条准确描述最终结果的 changelog 项。
|
||||
- 不要把“review”“日志顺序”“调整坐标”“typo”“build warning”这类缺乏用户语义的提交原样保留为条目,除非 diff 证明它确实修复了用户可感知问题。
|
||||
- 同一功能/问题的多条相关 commit **合并为单条**,面向用户描述最终效果。
|
||||
- commit 标题含糊、口语化、玩梗时,**必须查看 diff 后改写**为专业可理解的描述。
|
||||
- **Revert 处理**:原改动被完整撤销则删除该项;仍保留部分语义则合并为一条准确描述最终结果的条目。
|
||||
- "review""typo""日志顺序""调整坐标""build warning" 等缺乏用户语义的提交不单独保留,除非 diff 证明修复了用户可感知问题。
|
||||
- **多服同类改动合并**:按**单项改动**(而非 commit/PR 整体)为粒度拆分,每项改动再跨服合并。同一 commit/PR 中若包含多项不同改动,应先按改动类型拆开,再将每项在实现了它的所有服务器上合并。服务器名用 `/` 连接(如 `YostarEN/JP/KR`),多位作者依次排列(如 `@author1 @author2 @author3`)。
|
||||
- 示例:某 PR 为 JP 同时更新了主题、新增了章节导航,而 EN/KR 只更新了主题。应拆为两行:`YostarEN/JP/KR 更新主题`(三服共同)+ `YostarJP 新增章节导航`(仅 JP)。
|
||||
|
||||
### 2. 分类按用户价值,不按 commit 前缀
|
||||
### 2. 按用户价值分类
|
||||
|
||||
- 改动必须放入正确模块:Highlights、新增 | New、改进 | Improved、修复 | Fix、文档 | Docs、其他 | Other。
|
||||
- 新功能、新支持、新入口、新导出能力、新兼容性,放“新增 | New”。
|
||||
- 现有能力增强、性能提升、稳定性提升、体验优化、识别优化、重构后带来的用户收益,放“改进 | Improved”。
|
||||
- 缺陷修正、兼容性修复、异常处理、回归修复,放“修复 | Fix”。
|
||||
- 纯文档变更放“文档 | Docs”。
|
||||
- 仅内部维护、CI、脚本、杂项且不适合省略时,才放“其他 | Other”。
|
||||
- 如果自动生成结果分类错误,必须移动到更合适的模块并同步调整描述。
|
||||
- 子仓库(如 MaaMacGui)的更新应作为独立的 `### MaaMacGui` 子项,放在主 changelog 的 `### 其他 | Other` 之后。该子项内部使用与主 changelog 相同的分类结构(新增 | New、改进 | Improved、修复 | Fix 等),PR 引用格式为 `([#数字](https://github.com/MaaAssistantArknights/MaaMacGui/pull/数字))`。
|
||||
| 模块 | 适用场景 |
|
||||
|------|----------|
|
||||
| **新增 \| New** | 新功能、新支持、新入口、新兼容性 |
|
||||
| **改进 \| Improved** | 能力增强、性能/稳定性/体验优化、识别优化、重构收益 |
|
||||
| **修复 \| Fix** | 缺陷修正、兼容性/异常/回归修复 |
|
||||
| **文档 \| Docs** | 纯文档变更 |
|
||||
| **其他 \| Other** | 仅内部维护、CI、脚本等(不适合省略时) |
|
||||
| **MaaMacGui** | 子仓库独立区块,放在 `### 其他 \| Other` 之后,内部复用相同分类结构,PR 格式 `([#数字](https://github.com/MaaAssistantArknights/MaaMacGui/pull/数字))` |
|
||||
|
||||
### 3. 模块内排序与文案规范
|
||||
### 3. 模块内排序与文案
|
||||
|
||||
- 中文条目放在前面,纯英文条目排在该模块最后。
|
||||
- 同一模块内按逻辑相关性或重要性排序:功能与接口变更优先,其次是兼容性或实现优化,最后是次要修复或杂项。
|
||||
- 列表统一使用 * 作为项目前缀。
|
||||
- 中英文数字混排时,在英文词与数字之间保留空格,例如:修复 3 个 bug、支持 3D 功能。
|
||||
- 统一常见术语大小写与写法,例如 WPF、Json、Markdown、CSV、Info。
|
||||
- 保留作者、PR、commit reference,例如 (#12345) @author;若多条相关提交被合并,可把相近引用合并到同一项后括注。
|
||||
- **中文在前,纯英文条目排最后**。
|
||||
- 按重要性排序:功能/接口变更 > 兼容性/优化 > 次要修复/杂项。
|
||||
- 列表前缀统一 `*`。
|
||||
- 中英文与数字间留空格(如"修复 3 个 bug""支持 3D 功能")。
|
||||
- 术语统一大小写:WPF、Json、Markdown、CSV、Info。
|
||||
- 保留作者与 PR 引用,主仓库格式为 `([#12345](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/12345)) @author`;多条合并时引用合并括注。
|
||||
|
||||
### 4. 正式版与 patch 版的历史连续性
|
||||
### 4. 版本历史连续性
|
||||
|
||||
- 正式版严禁只留下单独的 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 版本不同,则直接根据现有内容组织该版本及其历史区块。
|
||||
**版本类型定义**:不带 `-beta`/`-alpha` 后缀的均为正式版(包含首个正式版 `X.Y.0` 与 patch 正式版 `X.Y.1`、`X.Y.2` 等);带后缀的为测试版。
|
||||
|
||||
### 5. 正式版合并测试版内容
|
||||
- **跨次版本号的正式版**(如 v6.12.x → v6.13.0):不保留上一个次版本号的任何历史折叠块。
|
||||
- **同次版本号的 patch 正式版**(如 v6.13.1 相对 v6.13.0):当前版本只写相对上一版本的增量变化(放在 `<details open>` 展开块),不得复制更早版本已发布条目。更早版本保留为各自独立的 `<details>` 收起块,紧跟在当前版本展开块之后。
|
||||
|
||||
- 正式版发布时,应把所有前置测试版(beta.1、beta.2 等)的条目按模块(新增、改进、修复等)合并到正式版的单一详细区块中,去重后统一展示。
|
||||
- 不应按测试版小版本分别折叠。正式版用户不关心测试版之间的增量差异,只关心"这个正式版相比上一个正式版有什么变化"。
|
||||
- 测试版之间重复或被后续修改覆盖的条目只保留最终有效版本。例如 beta.1 修复了某个问题但 beta.2 又对其做了改进,正式版中只保留合并后的最终描述。
|
||||
- 正式版的详细区块使用 `<details open>` 默认展开,其后不再保留 beta 版本的历史折叠块(除非之前还有更早的正式版)。
|
||||
### 5. 测试版与 patch 版的折叠块规则
|
||||
|
||||
### 6. patch / 测试版的 Highlights 复用规则
|
||||
- 同次版本号内的测试版(beta.1、beta.2…)与 patch 版之间**保留历史折叠块**。
|
||||
- **发布正式版时**:将所有前置测试版条目按模块合并到正式版单一详细区块,去重后统一展示。测试版间被覆盖的条目只保留最终有效版本。正式版使用 `<details open>`,其后不再保留 beta 版本历史折叠块(除非有更早正式版)。
|
||||
|
||||
- patch 版本(例如 v6.10.4 相对于 v6.10.3)和测试版(例如 v6.11.0-beta.2 相对于 v6.11.0-beta.1)如果没有用户可感知的重要新功能或重大变化,必须直接复用其父版本的 Highlights 内容,不得自行重写或另起一套。
|
||||
- 复用 Highlights 时,只改顶部版本号标题和发版日期(例如 `## v6.11.0-beta.1 (2026-05-27)` → `## v6.11.0-beta.2 (2026-05-29)`),Highlights 正文原样保留。
|
||||
- 当 patch 版本或测试版确实包含用户可感知的重要新变化时(例如新增了重大功能、改变了核心交互),可以为 Highlights 追加新段落,但必须保留原有 Highlights 内容,新段落追加在末尾。
|
||||
#### 正式版的详细内容来源:基于已有测试版 changelog 合并,而非全量重分析
|
||||
|
||||
### 7. patch / 测试版编辑的完整结构
|
||||
**禁止**在发布正式版时从 git 历史全量重新分析提交、重新阅读 diff。正式版的详细内容应**直接合并已发布各测试版 changelog 的条目**,工作流如下:
|
||||
|
||||
- 输出文件的结构必须严格遵循以下层次,不得把 patch 版本或测试版的详细内容插入到父版本的 Highlights 与详细内容之间:
|
||||
1. 顶部:`## vX.Y.Z (YYYY-MM-DD)`(patch / 测试版标题,含发版日期)
|
||||
2. `### Highlights`(复用父版本内容,或在有必要时追加新段落)
|
||||
3. 英文 Highlights 折叠块
|
||||
4. `----`
|
||||
5. `以下是详细内容:`
|
||||
6. `<details open><summary><b>vX.Y.Z (YYYY-MM-DD)</b></summary>`(当前版本详细内容,默认展开)
|
||||
7. `<details><summary><b>vX.Y.Z-1 (YYYY-MM-DD)</b></summary>`(上一 patch 版本,默认收起)
|
||||
8. 更早版本各自独立折叠块...
|
||||
9. `<details><summary><b>vX.Y.0 (YYYY-MM-DD)</b></summary>`(正式版,默认收起)
|
||||
- 每个版本的详细内容各自放入独立的 `<details>` 折叠块,`<summary>` 内格式为 `<b>vX.Y.Z (YYYY-MM-DD)</b>`(版本号 + 发版日期),当前目标版本使用 `<details open>` 默认展开,其余默认收起。
|
||||
- 折叠块内只保留详细内容(改进、修复等),不重复 Highlights,不写 `## vX.Y.Z` 子标题(`<summary>` 已提供版本标识)。
|
||||
1. 读取现有 CHANGELOG 中同次版本号的所有测试版区块(beta.1、beta.2…直至最新测试版)。
|
||||
2. 将这些区块的条目按模块(新增/改进/修复/其他…)汇总,跨测试版去重:
|
||||
- 同一条目在多个测试版出现 → 只保留最终(最新)版本表述。
|
||||
- 被后续测试版修正/覆盖的条目 → 保留修正后的最终结果。
|
||||
3. **唯一需要新增分析的增量**:仅为「最后一个测试版 tag → HEAD」之间的提交。这部分通常是少量改动,逐一检查后补充进正式版详细区块(有用户可感知效果才补,否则丢弃)。
|
||||
4. 合并后统一排序、统一文案,不重复、不断裂。
|
||||
|
||||
### 8. Highlights 必须中英双语且先中后英
|
||||
**理由**:测试版发布时已完成对应提交范围的分析与改写,正式版只是对同一发布周期的汇总收尾,全量重分析会引入不一致、重复劳动,且容易把已被测试版 changelog 过滤/改写的噪音重新捞回。
|
||||
|
||||
- 输出顶部必须包含当前目标版本和发版日期,例如 `## vX.Y.Z (2026-05-29)`。
|
||||
- 必须包含 ### Highlights。
|
||||
- 中文 Highlights 直接展示,不折叠。
|
||||
- 英文 Highlights 放入折叠块:`<details><summary><b>English</b></summary>` ... `</details>`。
|
||||
- 中文与英文都应按主题分段,标题简洁明确,正文面向最终用户,不是 commit 列表翻译。
|
||||
- Highlights 只总结本次版本中最值得强调的变化,不要把所有条目机械搬进去。
|
||||
### 6. Highlights 规则
|
||||
|
||||
### 9. 必须过滤的噪音项
|
||||
- **中英双语,先中后英**。中文直接展示,英文放入 `<details><summary><b>English</b></summary>` 折叠块。
|
||||
- Highlights 只总结最值得强调的变化,不要机械搬运所有条目。
|
||||
- **复用规则(适用于 patch 版、测试版、以及由测试版晋升的正式版)**:
|
||||
- 判定标准:相对**直接前驱版本**(patch 的父正式版、测试版的上一测试版、正式版晋升时的最后一个测试版)有无用户可感知的重大变化。
|
||||
- 无重大变化 → **直接复用前驱版本 Highlights**,仅改版本号标题和日期,不改写内容。
|
||||
- 有重大新变化 → 保留原有内容,新段落追加在末尾。
|
||||
- 正式版的补丁版本不应修改 Highlights,除非确实有用户可感知的重要变化。
|
||||
- **由测试版晋升的正式版(X.Y.0)**:判定基准是最后一个测试版(如 beta.3)。若最后一个测试版到正式版之间只有内部维护、CI、通知文案等无用户可感知的变化,则 Highlights 一字不改地复用最后一个测试版的内容,只更新顶部版本号标题与日期。
|
||||
|
||||
- 删除或忽略纯 bot 自动生成的 changelog、update、release 条目(如 github-actions[bot] 的 Auto Update Game Resources)。
|
||||
- 删除显式的 Release 发布记录,例如 Release vX.Y.Z。
|
||||
- 删除或忽略 Generate、Auto Update、Auto Generate、Update CHANGELOG、Bump version 之类自动维护条目。
|
||||
- 删除带有 `[skip changelog]` 标记的提交。
|
||||
- 删除 commit 消息仅为 "Update CHANGELOG" "docs: Update CHANGELOG for vX.Y.Z release" 之类纯 changelog 内容维护的提交。
|
||||
- 除此之外的提交都不应过滤,即使标题是 chore、perf 或看起来像内部优化——只要有用户可感知的效果(包括启动体验、操作窗口、性能、稳定性等),都应保留并放入合适的模块。
|
||||
### 7. 必须过滤的噪音
|
||||
|
||||
### 10. 查询 git 历史时的编码处理
|
||||
删除以下类型提交:
|
||||
- bot 自动生成(`Auto Update Game Resources`、`Auto Templates Optimization` 等)
|
||||
- `Release vX.Y.Z`、`Auto Update Changelogs`、`Auto Generate Changelog`
|
||||
- `Update CHANGELOG`、`Bump version` 等 changelog 维护提交
|
||||
- 带 `[skip changelog]` 标记的提交
|
||||
|
||||
- 在 Windows PowerShell 环境下,git log 输出的中文默认会乱码。查询 git 历史时必须指定编码参数:
|
||||
```
|
||||
[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($_)) }
|
||||
```
|
||||
- 简化写法(仅在当前终端已执行过 `[Console]::OutputEncoding = [System.Text.Encoding]::UTF8` 后有效):`git -c core.quotepath=false log --encoding=utf-8 --format="..." | ForEach-Object { [System.Text.Encoding]::UTF8.GetString([System.Text.Encoding]::Default.GetBytes($_)) }`
|
||||
- 如果输出仍然乱码,可将结果写入临时文件(`| Out-File -Encoding utf8 -FilePath "$env:TEMP\commits.txt"`)再用 read_file 工具读取。
|
||||
**不过滤**:chore、perf 或看似内部优化的提交——只要有用户可感知效果(启动体验、性能、稳定性等),一律保留并放入合适模块。
|
||||
|
||||
## Workflow
|
||||
### 8. git 历史编码处理(Windows PowerShell)
|
||||
|
||||
1. 先确定本次发布边界:目标版本、上一版本、对应 tag、待发布 commit 范围。
|
||||
2. 读取现有 CHANGELOG 与目标范围内的 diff,不要只根据 commit 标题下结论。
|
||||
3. 先过滤 bot、release、generate、update changelog、revert、重复历史条目等噪音。
|
||||
4. 按“净变更”合并同类提交,必要时从 diff 改写标题。
|
||||
5. 按用户价值重新分类到正确模块,而不是沿用自动生成结果。
|
||||
6. 在每个模块内完成排序、术语统一与中英文条目整理。
|
||||
7. 编写中英双语 Highlights,先中文,后英文,中间用 ---- 分隔。
|
||||
8. 输出完整 Markdown 片段,包含顶部版本、Highlights、以下是详细内容:、当前版本区块与历史版本区块。
|
||||
```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($_)) }
|
||||
```
|
||||
|
||||
## Common Failure Patterns To Correct
|
||||
如仍乱码,写入临时文件后用 read_file 读取:`| Out-File -Encoding utf8 -FilePath "$env:TEMP\commits.txt"`
|
||||
|
||||
- 把旧版本已有条目整段复制到当前 patch 版本。
|
||||
- 把 Revert 原样保留成单独 changelog 项。
|
||||
- 把 Release vX.Y.Z、Auto Update Changelogs、Update CHANGELOG、Bump version 之类自动提交写进文档或其他模块。
|
||||
- 把同一功能拆成多条重复表述,例如同一个生息演算功能拆成多个相近新增或改进条目。
|
||||
- 保留玩梗、口语化、半成品标题,例如不会现在还有人选沙中遗火吧、特意删的 PNS 怎么又给加回来了。
|
||||
- 机械沿用 commit type 导致分类错误,例如把用户能感知的修复放进其他,把兼容性提升放进新增。
|
||||
- patch 版本或测试版没有用户可感知的重要新变化,却自行重写了独立的 Highlights,而非复用父版本内容。
|
||||
- 把 patch 版本的详细内容插入到父版本的 Highlights 与详细内容之间,破坏了文件结构。
|
||||
- patch / 测试版的历史区块中重复保留了 Highlights 和"以下是详细内容:"引导语,这些应只在顶部出现一次。
|
||||
- 正式版不应保留各 beta 版本的独立折叠块,应将所有测试版条目按模块合并到正式版的单一详细区块中。
|
||||
- 查询 git 历史时未指定编码,导致中文 commit 消息乱码,无法正确理解变更内容。
|
||||
- 把 chore/perf 标题的提交默认当作噪音过滤,而不是判断其是否有用户可感知的效果。
|
||||
### 9. 翻译判断规则(外服条目保留英文原文)
|
||||
|
||||
## Output Requirements
|
||||
changelog 主体面向中文用户,但**并非所有条目都应译成中文**。判断依据是「该条目的目标读者是谁」:玩外服的用户能看懂英文/该服语言,而中文用户一般不接触外服内容,因此外服专有条目保留原文更准确、更不易误导。
|
||||
|
||||
- 输出完整 Markdown 文件片段。
|
||||
- 顶部必须包含当前版本标题,例如 ## vX.Y.Z。
|
||||
- 顶部必须包含 ### Highlights,并满足先中文、后英文、用 ---- 分隔的格式。
|
||||
- 英文 Highlights 折叠块结束后,接“----”分隔线,然后接“以下是详细内容:”引导语。
|
||||
- 每个版本的详细内容各自放入独立的折叠块:`<details><summary><b>vX.Y.Z</b></summary>` ... `</details>`。
|
||||
- 当前目标版本的折叠块使用 `<details open>` 默认展开,历史版本使用 `<details>` 默认收起。
|
||||
- 详细内容中的模块标题统一使用以下格式:
|
||||
- ### 新增 | New
|
||||
- ### 改进 | Improved
|
||||
- ### 修复 | Fix
|
||||
- ### 文档 | Docs
|
||||
- ### 其他 | Other
|
||||
- ### MaaMacGui(子仓库独立区块,放在 `### 其他 | Other` 之后,内部再按相同分类结构组织)
|
||||
- 列表项统一使用 *。
|
||||
- 仅保留有内容的模块;空模块省略。
|
||||
**用中文描述(默认)**:
|
||||
- 国服(CN)、繁中服(txwy)相关改动。
|
||||
- 跨服/全服通用的功能、架构、性能、稳定性改动。
|
||||
- 行为描述、用户操作说明(如 `add support for X` → 「新增支持 X」)。
|
||||
- 含糊/口语化/玩梗的英文 commit 标题,改写为专业可理解的中文表述。
|
||||
|
||||
## Output Template
|
||||
**整条保留英文原文(不翻译)——外服专有条目**:
|
||||
- **适用范围**:仅针对 YostarEN / YostarJP / YostarKR 等外服的改动,且该改动不涉及国服。整条描述(含动词、行为)均保留英文,**不要**只保留专有名词而把描述译成中文。
|
||||
- **原因**:① 外服条目的目标读者是玩该外服的用户,能看懂英文;② 外服的关卡、活动、章节、主题名(如 `lone trail`、`JieGarden`)在中文服可能不存在或译名不同,翻译会丢失原文标识、产生误导。
|
||||
- **条目格式**:服务器代号前置,后接英文描述。跨多服同改时用 `/` 连接(如 `YostarEN/JP/KR ...`)。
|
||||
- ✅ `YostarEN preload lone trail + fix JieGarden themes`
|
||||
- ✅ `YostarEN/JP/KR update LoneTrail and JieGarden themes`
|
||||
- ❌ `YostarEN/JP/KR 更新落叶逐火与界园主题`(把外服描述整条译成中文,且「落叶逐火」是中服译名)
|
||||
- ❌ `YostarEN 预加载孤星轨道并修复界园主题`(把外服描述译成中文,丢失原文)
|
||||
- ❌ 把 `Stage 10-2` 翻成「第十章第二节」
|
||||
|
||||
### 正式版模板(合并测试版内容)
|
||||
**混合判断**:同一 commit/PR 同时含国服与外服改动时,按 §1 拆为多条:国服部分用中文,外服部分保留英文,各自独立成行。
|
||||
|
||||
**代码/技术标识始终保留原文**(不分中外服):任务名(`Stage`、`Roguelike`、`Depot`)、配置项、接口名、文件名、命令名,以及技术术语与产品名(WPF、Json、Markdown、CSV、onnx、ADB、minitouch 等,大小写见 §3)。
|
||||
|
||||
**判断要点**:翻译的目的是让「该条目的目标读者」看得懂。国服/通用条目译给中文用户看;外服专有条目保留英文给外服用户看——不要为了「消灭英文」而过度翻译。
|
||||
|
||||
## 完整文件结构
|
||||
|
||||
patch / 测试版结构(严格自上而下,不得打乱层次):
|
||||
|
||||
1. `## vX.Y.Z (YYYY-MM-DD)` — 顶部版本标题
|
||||
2. `### Highlights` — 中文直接展示
|
||||
3. 英文 Highlights 折叠块
|
||||
4. `----` 分隔线
|
||||
5. `以下是详细内容:`
|
||||
6. `<details open><summary><b>vX.Y.Z (YYYY-MM-DD)</b></summary>` — 当前版本(展开)
|
||||
7. `<details><summary><b>vX.Y.Z-1 (YYYY-MM-DD)</b></summary>` — 上一版本(收起)
|
||||
8. 更早版本各自独立折叠块…
|
||||
9. `<details><summary><b>vX.Y.0 (YYYY-MM-DD)</b></summary>` — 最早正式版(收起)
|
||||
|
||||
**要点**:
|
||||
- 折叠块内只保留详细内容,不重复 Highlights、不写 `## vX.Y.Z` 子标题。
|
||||
- 历史区块不重复 Highlights 和"以下是详细内容:"引导语——这些只在顶部出现一次。
|
||||
|
||||
## 工作流程
|
||||
|
||||
### 通用步骤(patch / 测试版)
|
||||
|
||||
1. 确定发布边界:目标版本、上一版本 tag、提交范围。
|
||||
2. 读取现有 CHANGELOG 与范围内的 diff(不只看 commit 标题)。
|
||||
3. 过滤 bot、release、`[skip changelog]`、revert 等噪音。
|
||||
4. 按净变更合并同类提交,必要时从 diff 改写标题。
|
||||
5. 按用户价值分类到正确模块。
|
||||
6. 模块内排序、术语统一、中英文整理。
|
||||
7. 编写中英双语 Highlights。
|
||||
8. 输出完整 Markdown(顶部版本 + Highlights + 详细内容 + 历史折叠块)。
|
||||
|
||||
### 正式版(由测试版晋升)专属流程
|
||||
|
||||
**关键区别**:正式版**不做全量重分析**,而是「合并已有测试版 changelog + 补少量增量 + 处理 Highlights 复用」。步骤如下:
|
||||
|
||||
1. 读取现有 CHANGELOG 中同次版本号的所有测试版区块(beta.1 … beta.N)。
|
||||
2. 判定「最后一个测试版 tag → HEAD」是否有用户可感知的重大变化:
|
||||
- 若有 → 分析这小段增量提交并整理成条目;若足以影响 Highlights 则追加(一般不追加)。
|
||||
- 若无(仅 CI、chore、内部维护等)→ 增量条目为空。
|
||||
3. **Highlights**:直接复用最后一个测试版的 Highlights(仅改顶部版本号标题与日期),不重写。
|
||||
4. **详细内容**:将各测试版区块条目按模块汇总去重,补入第 2 步的增量条目,按 §3 排序。
|
||||
5. 输出:跨次版本号(X.Y.0)不保留历史折叠块;同次版本号 patch 正式版保留历史折叠块。
|
||||
|
||||
## 模块标题格式
|
||||
|
||||
```
|
||||
### 新增 | New
|
||||
### 改进 | Improved
|
||||
### 修复 | Fix
|
||||
### 文档 | Docs
|
||||
### 其他 | Other
|
||||
### MaaMacGui
|
||||
```
|
||||
|
||||
仅保留有内容的模块,空模块省略。列表项统一 `*`。
|
||||
|
||||
## 输出模板
|
||||
|
||||
### 正式版
|
||||
|
||||
```markdown
|
||||
## vX.Y.Z
|
||||
|
||||
### Highlights
|
||||
|
||||
#### 中文小结标题 A
|
||||
#### 中文标题
|
||||
|
||||
中文小结正文。
|
||||
|
||||
#### 中文小结标题 B
|
||||
|
||||
中文小结正文。
|
||||
中文正文。
|
||||
|
||||
<details>
|
||||
<summary><b>English</b></summary>
|
||||
|
||||
#### English Summary Title A
|
||||
#### English Title
|
||||
|
||||
English summary paragraph.
|
||||
|
||||
#### English Summary Title B
|
||||
|
||||
English summary paragraph.
|
||||
English paragraph.
|
||||
|
||||
</details>
|
||||
|
||||
@@ -203,64 +216,41 @@ English summary paragraph.
|
||||
|
||||
### 新增 | New
|
||||
|
||||
* 条目 A @author
|
||||
* 条目 ([#12345](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/12345)) @author
|
||||
|
||||
### 改进 | Improved
|
||||
|
||||
* 条目 B (#12345) @author
|
||||
|
||||
### 修复 | Fix
|
||||
|
||||
* 条目 C @author
|
||||
|
||||
### 文档 | Docs
|
||||
|
||||
* 条目 D @author
|
||||
* 条目 @author
|
||||
|
||||
### MaaMacGui
|
||||
|
||||
#### 新增 | New
|
||||
|
||||
* 子仓库新增条目 ([#85](https://github.com/MaaAssistantArknights/MaaMacGui/pull/85)) @author
|
||||
|
||||
#### 修复 | Fix
|
||||
|
||||
* 子仓库修复条目 ([#88](https://github.com/MaaAssistantArknights/MaaMacGui/pull/88)) @author
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>vX.Y-1.Z (YYYY-MM-DD)</b></summary>
|
||||
|
||||
### 修复 | Fix
|
||||
|
||||
* 上一个正式版的条目 @author
|
||||
* 子仓库条目 ([#85](https://github.com/MaaAssistantArknights/MaaMacGui/pull/85)) @author
|
||||
|
||||
</details>
|
||||
```
|
||||
|
||||
### patch / 测试版模板
|
||||
- **跨次版本号正式版**(X.Y.0,如 v6.13.0):按规则 §4 不保留任何历史折叠块。
|
||||
- **同次版本号 patch 正式版**(X.Y.Z, Z≥1,如 v6.13.1 相对 v6.13.0):保留历史折叠块,与下方 patch / 测试版模板结构一致。
|
||||
|
||||
### patch / 测试版
|
||||
|
||||
```markdown
|
||||
## vX.Y.Z
|
||||
|
||||
### Highlights
|
||||
|
||||
#### 中文小结标题 A
|
||||
#### 中文标题
|
||||
|
||||
中文小结正文。
|
||||
|
||||
#### 中文小结标题 B
|
||||
|
||||
中文小结正文。
|
||||
中文正文。
|
||||
|
||||
<details>
|
||||
<summary><b>English</b></summary>
|
||||
|
||||
#### English Summary Title A
|
||||
#### English Title
|
||||
|
||||
English summary paragraph.
|
||||
|
||||
#### English Summary Title B
|
||||
|
||||
English summary paragraph.
|
||||
English paragraph.
|
||||
|
||||
</details>
|
||||
|
||||
@@ -273,39 +263,21 @@ English summary paragraph.
|
||||
|
||||
### 改进 | Improved
|
||||
|
||||
* 条目 A (#12345) @author
|
||||
* 条目 ([#12345](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/12345)) @author
|
||||
|
||||
### 修复 | Fix
|
||||
|
||||
* 条目 B @author
|
||||
|
||||
### 文档 | Docs
|
||||
|
||||
* 条目 C @author
|
||||
|
||||
### MaaMacGui
|
||||
|
||||
#### 新增 | New
|
||||
|
||||
* 子仓库新增条目 ([#85](https://github.com/MaaAssistantArknights/MaaMacGui/pull/85)) @author
|
||||
|
||||
#### 修复 | Fix
|
||||
|
||||
* 子仓库修复条目 ([#88](https://github.com/MaaAssistantArknights/MaaMacGui/pull/88)) @author
|
||||
* 条目 @author
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>vX.Y.1 (YYYY-MM-DD)</b></summary>
|
||||
<summary><b>vX.Y.Z-1 (YYYY-MM-DD)</b></summary>
|
||||
|
||||
### 改进 | Improved
|
||||
|
||||
* 历史版本条目 @author
|
||||
|
||||
### 修复 | Fix
|
||||
|
||||
* 历史版本条目 @author
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
@@ -315,31 +287,46 @@ English summary paragraph.
|
||||
|
||||
* 正式版条目 @author
|
||||
|
||||
### 改进 | Improved
|
||||
|
||||
* 正式版条目 @author
|
||||
|
||||
### 修复 | Fix
|
||||
|
||||
* 正式版条目 @author
|
||||
|
||||
</details>
|
||||
```
|
||||
|
||||
## Final Checklist
|
||||
## 常见错误
|
||||
|
||||
- 是否只保留最终有效的净变更,而不是机械罗列 commit?
|
||||
- 是否已经删除 bot、Release、Generate、Update CHANGELOG、Revert 等噪音项?
|
||||
- 是否避免把旧版本已发布内容重复抄进当前 patch 版本?
|
||||
- 是否所有条目都能被最终用户独立理解?
|
||||
- 是否已经按模块正确分类、排序,并保持中文在前、英文在后?
|
||||
- 是否已经输出完整 Markdown,而不是说明文字或代码块?
|
||||
- 如果是 patch 版本且没有用户可感知的重要新变化,是否复用了父版本的 Highlights 而非自行重写?
|
||||
- patch / 测试版的详细内容是否紧跟在"以下是详细内容:"之后,而非插入到父版本的 Highlights 下方?
|
||||
- 历史版本区块中是否只保留详细内容,没有重复 Highlights 和引导语?
|
||||
- 英文 Highlights 是否放入 `<details>` 折叠块(中文不折叠)?
|
||||
- 每个版本的详细内容是否各自放入独立的 `<details>` 折叠块?
|
||||
- 当前版本是否使用 `<details open>` 默认展开,历史版本是否默认收起?
|
||||
- 如果有子仓库(如 MaaMacGui)更新,是否作为 `### MaaMacGui` 独立子项放在 `### 其他 | Other` 之后,且内部使用与主 changelog 相同的分类结构?
|
||||
- 正式版是否已将所有测试版条目合并到单一详细区块中,而非按 beta 小版本分别折叠?
|
||||
- 查询 git 历史时是否已正确指定编码参数,避免中文 commit 消息乱码?
|
||||
- ❌ 旧版本条目整段复制到当前 patch 版本
|
||||
- ❌ Revert 原样保留为单独条目
|
||||
- ❌ bot/release/auto generate/update changelog 提交写入文档
|
||||
- ❌ 同一功能拆成多条重复表述
|
||||
- ❌ 保留玩梗/口语化/半成品标题
|
||||
- ❌ 机械沿用 commit type 导致分类错误
|
||||
- ❌ patch/测试版无重大变化却重写独立 Highlights
|
||||
- ❌ 详细内容插入到 Highlights 与历史区块之间,破坏文件结构
|
||||
- ❌ 历史区块重复 Highlights 或"以下是详细内容:"引导语
|
||||
- ❌ 正式版按 beta 小版本分别折叠而非合并
|
||||
- ❌ git 历史未指定编码导致中文乱码
|
||||
- ❌ chore/perf 提交默认当噪音过滤(应判断是否有用户可感知效果)
|
||||
- ❌ 跨次版本号时仍保留旧版本历史折叠块
|
||||
- ❌ 正式版晋升时全量重新分析 git 提交,而非合并已有测试版 changelog
|
||||
- ❌ 正式版晋升时重写 Highlights,而非复用最后一个测试版的 Highlights(无重大变化时)
|
||||
- ❌ 将外服专有条目(YostarEN/JP/KR 等)的英文描述整条译成中文,应保留原文给外服用户阅读
|
||||
|
||||
## 最终检查
|
||||
|
||||
- [ ] 只保留最终有效净变更,非机械罗列 commit?
|
||||
- [ ] 已删除 bot、Release、Generate、Update CHANGELOG、Revert 等噪音?
|
||||
- [ ] 未把旧版本已发布内容重复抄入当前版本?
|
||||
- [ ] 所有条目用户可独立理解?
|
||||
- [ ] 分类正确、排序合理、中文在前英文在后?
|
||||
- [ ] 输出完整 Markdown(非代码块)?
|
||||
- [ ] patch/测试版无重大变化时复用了父版本 Highlights?
|
||||
- [ ] 详细内容紧跟"以下是详细内容:"之后?
|
||||
- [ ] 历史区块无重复 Highlights 和引导语?
|
||||
- [ ] 英文 Highlights 在 `<details>` 折叠块内?
|
||||
- [ ] 每个版本各自独立 `<details>` 折叠块?
|
||||
- [ ] 当前版本 `<details open>`,历史版本默认收起?
|
||||
- [ ] 子仓库(MaaMacGui)作为独立子项放在 `### 其他 | Other` 之后?
|
||||
- [ ] 正式版已合并所有测试版条目为单一区块?
|
||||
- [ ] 正式版是合并已有测试版 changelog,而非全量重分析提交?
|
||||
- [ ] 正式版 Highlights 无重大变化时复用了最后一个测试版的 Highlights?
|
||||
- [ ] git 历史查询已指定编码参数?
|
||||
- [ ] 跨次版本号时已移除旧版本历史折叠块?
|
||||
- [ ] 外服专有条目(YostarEN/JP/KR 等)保留英文原文描述,未被整条翻译成中文?
|
||||
|
||||
2
.github/workflows/blame-ignore.yml
vendored
@@ -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
|
||||
|
||||
22
.github/workflows/ci-avalonia.yml
vendored
@@ -4,28 +4,34 @@ on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
paths:
|
||||
- ".github/workflows/ci-avalonia.yml"
|
||||
- "3rdparty/include/**"
|
||||
- "cmake/**"
|
||||
- "src/MAAUnified"
|
||||
- "src/MAAUnified/**"
|
||||
- "src/MaaCore/**"
|
||||
- "src/MaaUtils/**"
|
||||
- "include/**"
|
||||
- "resource/**"
|
||||
- "tools/maadeps-download.py"
|
||||
- "CMakeLists.txt"
|
||||
- "CMakePresets.json"
|
||||
- "!**/*.md"
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
- dev-v2
|
||||
paths:
|
||||
- ".github/workflows/ci-avalonia.yml"
|
||||
- "3rdparty/include/**"
|
||||
- "cmake/**"
|
||||
- "src/MAAUnified"
|
||||
- "src/MAAUnified/**"
|
||||
- "src/MaaCore/**"
|
||||
- "src/MaaUtils/**"
|
||||
- "include/**"
|
||||
- "resource/**"
|
||||
- "tools/maadeps-download.py"
|
||||
- "CMakeLists.txt"
|
||||
- "CMakePresets.json"
|
||||
- "!**/*.md"
|
||||
|
||||
jobs:
|
||||
meta:
|
||||
@@ -33,13 +39,17 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
tag: ${{ steps.out.outputs.tag }}
|
||||
checkout_sha: ${{ steps.out.outputs.checkout_sha }}
|
||||
steps:
|
||||
- id: out
|
||||
env:
|
||||
CHECKOUT_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||
run: |
|
||||
echo "checkout_sha=${CHECKOUT_SHA}" >> "$GITHUB_OUTPUT"
|
||||
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then
|
||||
echo "tag=${GITHUB_REF_NAME}" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "tag=preview-${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
|
||||
echo "tag=preview-${CHECKOUT_SHA::7}" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
build:
|
||||
@@ -70,7 +80,9 @@ jobs:
|
||||
maadeps_triplet: x64-osx
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- uses: actions/checkout@v7
|
||||
with:
|
||||
ref: ${{ needs.meta.outputs.checkout_sha }}
|
||||
|
||||
- name: Fetch required submodules
|
||||
shell: bash
|
||||
|
||||
24
.github/workflows/ci.yml
vendored
@@ -48,7 +48,7 @@ jobs:
|
||||
echo "Concurrency Group: $CONCURRENCY_GROUP"
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
show-progress: false
|
||||
@@ -107,7 +107,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
show-progress: false
|
||||
|
||||
@@ -117,7 +117,7 @@ jobs:
|
||||
|
||||
- name: Cache MaaDeps
|
||||
id: cache-maadeps
|
||||
uses: actions/cache@v5
|
||||
uses: actions/cache@v6
|
||||
continue-on-error: true
|
||||
with:
|
||||
path: |
|
||||
@@ -164,7 +164,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: |
|
||||
@@ -245,7 +245,7 @@ jobs:
|
||||
fail-fast: false
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
show-progress: false
|
||||
|
||||
@@ -255,7 +255,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
|
||||
@@ -365,7 +365,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
show-progress: false
|
||||
|
||||
@@ -375,7 +375,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
|
||||
@@ -437,7 +437,7 @@ jobs:
|
||||
fail-fast: false
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
show-progress: false
|
||||
|
||||
@@ -452,7 +452,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
|
||||
@@ -495,7 +495,7 @@ jobs:
|
||||
runs-on: macos-26
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
show-progress: false
|
||||
|
||||
@@ -671,7 +671,7 @@ jobs:
|
||||
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: |
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}]
|
||||
}')
|
||||
|
||||
30
.github/workflows/issue-ai-analysis.yml
vendored
@@ -13,7 +13,7 @@ on:
|
||||
type: number
|
||||
|
||||
jobs:
|
||||
codex-analysis:
|
||||
ai-analysis:
|
||||
if: |
|
||||
(github.event_name == 'issues' && github.event.action == 'opened') ||
|
||||
github.event_name == 'workflow_dispatch' ||
|
||||
@@ -27,38 +27,36 @@ jobs:
|
||||
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 Codex
|
||||
id: codex
|
||||
- name: Analyze issue with AI
|
||||
id: analysis
|
||||
continue-on-error: true
|
||||
uses: MistEO/ai-issue-analysis@codex
|
||||
uses: MistEO/ai-issue-analysis@main
|
||||
with:
|
||||
agent: claude
|
||||
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 }}
|
||||
codex-api-key: ${{ secrets.CODEX_API_KEY }}
|
||||
codex-base-url: ${{ secrets.CODEX_BASE_URL }}
|
||||
codex-model: ${{ secrets.CODEX_MODEL }}
|
||||
bot-name: '@MaaArknightsBot'
|
||||
initial-comment-body: |
|
||||
🤖 **MaaBot 正在分析该 Issue...**
|
||||
|
||||
感谢您的反馈!AI 正在自动分析该问题,预计耗时约 10 分钟。
|
||||
prompt-template: |
|
||||
分析 GitHub Issue {{issue_number}}。把最终结论写到 {{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:
|
||||
ISSUE_NUMBER: ${{ steps.codex.outputs.issue-number }}
|
||||
COMMENT_ID: ${{ steps.codex.outputs.comment-id }}
|
||||
COMMENT_URL: ${{ steps.codex.outputs.comment-url }}
|
||||
ISSUE_NUMBER: ${{ steps.analysis.outputs.issue-number }}
|
||||
COMMENT_ID: ${{ steps.analysis.outputs.comment-id }}
|
||||
COMMENT_URL: ${{ steps.analysis.outputs.comment-url }}
|
||||
run: |
|
||||
echo "issue_number=$ISSUE_NUMBER"
|
||||
echo "comment_id=$COMMENT_ID"
|
||||
echo "comment_url=$COMMENT_URL"
|
||||
echo "(Full codex-output and final-conclusion are available in the uploaded artifacts)"
|
||||
echo "(Full agent-output and final-conclusion are available in the uploaded artifacts)"
|
||||
|
||||
4
.github/workflows/markdown-checker.yml
vendored
@@ -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
|
||||
|
||||
2
.github/workflows/optimize-templates.yml
vendored
@@ -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
|
||||
|
||||
2
.github/workflows/pr-auto-tag.yml
vendored
@@ -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 }}
|
||||
|
||||
2
.github/workflows/pre-commit-scheduled.yml
vendored
@@ -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
|
||||
|
||||
10
.github/workflows/release-nightly-ota.yml
vendored
@@ -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 }}
|
||||
|
||||
6
.github/workflows/release-ota.yml
vendored
@@ -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
|
||||
|
||||
156
.github/workflows/release-preparation.yml
vendored
@@ -7,100 +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 表达式不区分大小写
|
||||
# fork 守卫:自动化流程对 fork PR 无效(token 只读),提前短路以避免 runner 上的表达式注入
|
||||
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')
|
||||
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@v4
|
||||
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 }}
|
||||
PR_URL: ${{ github.event.pull_request.html_url }}
|
||||
run: |
|
||||
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
|
||||
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: claude
|
||||
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: $PR_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
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
TAG_NAME: ${{ steps.extract_tag.outputs.tag_name }}
|
||||
LATEST: ${{ steps.extract_tag.outputs.latest }}
|
||||
run: |
|
||||
git switch dev-v2
|
||||
python3 tools/ChangelogGenerator/changelog_generator.py --tag "$TAG_NAME" --latest "$LATEST"
|
||||
|
||||
- name: Commit changes
|
||||
env:
|
||||
TAG_NAME: ${{ steps.extract_tag.outputs.tag_name }}
|
||||
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 $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:
|
||||
@@ -108,7 +135,6 @@ jobs:
|
||||
|
||||
update-submodules:
|
||||
name: Update Submodules
|
||||
# fork 守卫:同上,fork PR 的 token 只读,write 步骤必然失败
|
||||
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:
|
||||
|
||||
14
.github/workflows/res-update-game.yml
vendored
@@ -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') }}
|
||||
|
||||
8
.github/workflows/smoke-testing.yml
vendored
@@ -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 }}
|
||||
|
||||
4
.github/workflows/sync-resource.yml
vendored
@@ -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
|
||||
|
||||
4
.github/workflows/unit-tests.yml
vendored
@@ -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
|
||||
|
||||
|
||||
2
.github/workflows/update-submodules.yml
vendored
@@ -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
|
||||
|
||||
|
||||
2
.github/workflows/website-workflow.yml
vendored
@@ -35,7 +35,7 @@ jobs:
|
||||
timeout-minutes: 20
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
show-progress: false
|
||||
|
||||
|
||||
148
CHANGELOG.md
@@ -1,34 +1,33 @@
|
||||
## v6.12.2
|
||||
## v6.13.0
|
||||
|
||||
### Highlights
|
||||
|
||||
泡影苍霆活动关卡暂不支持多作业模式
|
||||
由于本次活动关卡的字体与界面结构较为特殊,MAA 无法在活动关卡中正常使用多作业模式。
|
||||
使用自动战斗功能时,请关闭 MAA 的「多作业模式」,并在干员编队界面启动任务。
|
||||
作业站中的「作业集」仅用于归纳作业,仍可正常导入。导入后可点击关卡名称右侧的文件图标,快速切换至对应关卡的单作业模式使用。
|
||||
#### 6 星自动公招支持
|
||||
|
||||
#### 阵地足球锦标赛
|
||||
新增可通过手动修改配置文件开启的 6 星自动公招功能,「是否招募」和「招募时间」选项移入常规设置,并优化了相关提示信息。
|
||||
|
||||
新增支持阵地足球锦标赛小游戏,可前往 「小工具-牛杂-当期活动」 进行选择。
|
||||
#### 通知不可用时自动回退
|
||||
|
||||
#### 悖论模拟支持跳过战斗失败的关卡
|
||||
系统通知无法显示时自动回退到软件内通知,避免用户错过重要提醒;启动时的通知检测提示也改为软件内弹窗,不再仅写入日志。
|
||||
|
||||
悖论模拟新增跳过战斗失败的作业选项,仅自动取消已完成的作业,未完成的作业将继续保持勾选状态。
|
||||
#### 切换语言无需重启
|
||||
|
||||
#### 支持 MuMu 6.0 版本截图增强
|
||||
|
||||
支持 MuMu 6.0 版本安卓 15 的截图增强路径,提升截图稳定性和兼容性。
|
||||
切换软件界面语言不再需要重启,干员识别、仓库识别等界面同步支持动态切换。
|
||||
|
||||
<details>
|
||||
<summary><b>English</b></summary>
|
||||
|
||||
#### Paradox Simulation Support for Skipping Failed Battle Stages
|
||||
#### 6-Star Auto Recruitment Support
|
||||
|
||||
The Paradox Simulation now includes an option to skip failed battle stages, automatically unchecking completed stages while keeping incomplete stages checked.
|
||||
Added a 6-star auto recruitment feature that can be enabled through manual configuration file editing. The "Recruit" and "Recruitment Time" options have been moved to general settings, with improved tooltip hints.
|
||||
|
||||
#### Support for MuMu 6.0 Screenshot Enhancement
|
||||
#### Notification Fallback
|
||||
|
||||
Supports the enhanced screenshot path for MuMu 6.0 Android 15, improving screenshot stability and compatibility.
|
||||
Automatically falls back to in-app notifications when system notifications are unavailable, ensuring users never miss important alerts. The startup notification availability check now shows an in-app Growl message instead of only logging to file.
|
||||
|
||||
#### Switch Language Without Restart
|
||||
|
||||
Switching the UI language no longer requires a restart; operator recognition, depot recognition, and other views now support dynamic switching.
|
||||
|
||||
</details>
|
||||
|
||||
@@ -37,99 +36,52 @@ Supports the enhanced screenshot path for MuMu 6.0 Android 15, improving screens
|
||||
以下是详细内容:
|
||||
|
||||
<details open>
|
||||
<summary><b>v6.12.2 (2026-06-14)</b></summary>
|
||||
<summary><b>v6.13.0 (2026-06-28)</b></summary>
|
||||
|
||||
### 新增 | New
|
||||
|
||||
* MAA 更新器增加文件被占用时重试、互斥量协调与自动回滚机制 (#16703) @soundofautumn
|
||||
* Android OCR 推理引擎切换为 NCNN ([#17133](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17133)) @Aliothmoon
|
||||
* 切换界面语言不再需要重启,干员识别、仓库识别等界面同步支持动态切换,并可单独设置干员名称显示语言 ([#17183](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17183)) @ABA2396
|
||||
* 新增可通过手动修改配置文件开启 6 星自动公招,将「是否招募」和「招募时间」选项移入常规设置,优化 ToolTip 提示 ([#17154](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17154)) @ABA2396
|
||||
* Custom Webhook 新增预置模板功能 ([#17081](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17081)) @pboymt
|
||||
* 新增常驻关卡备选提示,当选中的关卡为常驻关卡或当前/上次时提示其后关卡不会被选中执行 @ABA2396
|
||||
* 增加 DWM 被禁用与重复拖动异常的解决方案提示 @ABA2396
|
||||
* 添加落叶逐火复刻关卡入口任务 @SherkeyXD
|
||||
* Yostar 服新增 SSS#10 极寒自动战斗作业 ([#17137](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17137)) @Manicsteiner
|
||||
|
||||
### 改进 | Improved
|
||||
|
||||
* 更新肉鸽招募干员配置,补充赤刃明霄陈、贝洛内、缇缇、焰狐龙梓兰等干员 @Saratoga-Official
|
||||
* 修复 POSIX 下 RawByNc 截图等待设备回连可能无限阻塞的问题 (#17027) @Halo5082
|
||||
* 统一任务队列与自动战斗的停止逻辑 ([#17087](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17087)) @ABA2396
|
||||
* 无法显示系统通知时自动回退到软件内通知,启动时通知不可用提示改为软件内弹窗 ([#17165](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17165)) @ABA2396
|
||||
* 优化成就 DLC 标识显示效果与提示,增加对应 DLC 上线时间提示 @ABA2396
|
||||
* 调整繁中服 CharNameOcrReplace 替换规则 ([#17113](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17113)) @momomochi987
|
||||
* 怪猎一期复刻 CF-EX-8、CF-S-1 关卡参数调整 @status102
|
||||
* 移除依赖库安装脚本的提权操作 @ABA2396
|
||||
* 调整日志超时提示 @ABA2396
|
||||
* YostarKR crop JieGarden@Roguelike@StartAction.png to improve match score @HX3N
|
||||
|
||||
### 修复 | Fix
|
||||
|
||||
* 修复界园肉鸽"移时换物"事件放弃探索时的异常处理 @Saratoga-Official
|
||||
* 修复水月肉鸽事件 DiceConfirm 后事件不处理的问题 @status102
|
||||
* 修复 NCNN OCR 引擎在小 ROI 下识别异常,对齐 fastdeploy 的 det 缩放与 rec 预处理 ([#17182](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17182)) @Aliothmoon
|
||||
* 修复部分设备界园树洞"是非境"识别错误 ([#17181](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17181)) @Aliothmoon
|
||||
* 修复自动战斗多作业模式无法进行关卡导航 @status102
|
||||
* 修复自动战斗导航 retry 异常导致跳过作业的问题 @status102
|
||||
* 修复肉鸽战斗结束后招募误入 StartExplore 的问题 @Saratoga-Official
|
||||
* 修复水月肉鸽"大海的遗产"和"狗眼婆娑"事件名识别错误 @Saratoga-Official
|
||||
* 修复肉鸽 GetDrop 未等待 LoadingText 导致的问题 @Saratoga-Official
|
||||
* 修复 CloseEvent 和 CloseCollection 同时出现导致的异常 @Saratoga-Official
|
||||
* 修复 MAA 更新检查 API 请求未遵循代理设置的问题 @status102
|
||||
* 修正落叶逐火入口 OCR 文本 @SherkeyXD
|
||||
* 修复复制任务时未保留原任务启用状态的问题 @ABA2396
|
||||
* YostarEN fix future alter operators recognition and EnterEpisodeNew-Click @Constrat
|
||||
* YostarKR correct ClickChapterNewDefaultProgress roi, expand training roi for wrapped operator names @HX3N
|
||||
|
||||
### 其他 | Other
|
||||
|
||||
* CI 工作流安全加固,防止 fork PR 表达式注入 @ABA2396
|
||||
* Windows 构建切换至 VS2026 运行器镜像 (#15806) @soundofautumn
|
||||
* 启动初始化期间允许拖拽排序任务列表 @status102
|
||||
* 移除未使用的变量、简化 MuMu 加载日志 @ABA2396
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>v6.12.1 (2026-06-11)</b></summary>
|
||||
|
||||
### 修复 | Fix
|
||||
|
||||
* 修复多作业模式关卡导航选错关卡无法重选、关卡名复核失效等多项问题 @status102 @ABA2396
|
||||
* 修复界园事件内通宝交换后无法正确处理事件结束页 (#16936) @ZiyinLin
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>v6.12.0 (2026-06-11)</b></summary>
|
||||
|
||||
### 新增 | New
|
||||
|
||||
* 繁中服支持「雪山降臨1101」活动导航与「喀蘭貿易技術研發部」小游戏 (#17073) @momomochi987
|
||||
* 添加阵地足球锦标赛小游戏 @ABA2396
|
||||
* 理智药使用增加使用中的药品信息 @status102
|
||||
* 支持 MuMu 6.0 截图增强路径 (#16994) @ABA2396
|
||||
* 切换主题时保存当前画面截图 (#16993) @ABA2396
|
||||
* 悖论模拟支持跳过战斗失败的作业,自动战斗作业增加对应结构 (#16985) @status102
|
||||
* 启动设置添加模拟器启动测试按钮,便于测试是否配置成功 @ABA2396
|
||||
* 统一 SearchBar 样式 @ABA2396
|
||||
|
||||
### 改进 | Improved
|
||||
|
||||
* 更新 MuMu 12 关闭命令至 MuMuManager 新版 API (#17067) @Zmjjeff7
|
||||
* 贸易站切换产物前先校验当前状态,避免已达成目标时的冗余操作 (#16954) @ZiyinLin
|
||||
* 修正小游戏显示名称与提示文案的本地化优先级 @ABA2396
|
||||
* 优化阵地足球锦标赛部署坐标与动画时序 @ABA2396
|
||||
* 更新 OF-1 信用作战作业干员配置 @ABA2396
|
||||
* 优化部分情况下自动战斗导航 OCR 结果中会出现误识别的前缀 @status102
|
||||
* 基于灰度阈值预处理的自动战斗导航,适配 H 关及怪猎二期 TD-2 本 (#16990) @status102
|
||||
* 肉鸽弹窗类事件处理重构 CloseCollectionClose (#17005) @status102
|
||||
* InvokeProcSubTaskMsg 重构 (#16979) @status102
|
||||
|
||||
### 修复 | Fix
|
||||
|
||||
* 修复启动模拟器与 ADB 操作时 Process 对象未释放导致句柄泄漏 (#17060) @Zmjjeff7
|
||||
* 修复配置创建失败时回滚不一致的问题 @ABA2396
|
||||
* 修复 RainbowAnimation 画刷选择潜在的空引用异常 @ABA2396
|
||||
* ConfigFactory Save 锁统一 (#17052) @status102
|
||||
* 错误隐藏开局分队与开局干员选项 @ABA2396
|
||||
* 修复特克诺干员名 OCR 误识别 (#17030) @ZiyinLin
|
||||
* 修复绿票商店状态回退错误及二阶段校验问题 @status102 @ZiyinLin
|
||||
* MaskedCcoeffMatcher 稀疏路径累加器改用 CV_64F 防止大数目相减精度损失 (#16983) @Aliothmoon
|
||||
* 降低 PlayCover 下肉鸽部分任务的模版匹配分数阈值 (#16968) @Alan-Charred
|
||||
* 更新 EN 服 IS6 bosky 模板与文字尺寸 @Constrat
|
||||
* 修复 MaaMacGui changelog 贡献者 mention (#16978) @ColdSpellhere
|
||||
|
||||
### 文档 | Docs
|
||||
|
||||
* README「自动抄作业」更新为「自动战斗」 @Rbqwow
|
||||
|
||||
### 其他 | Other
|
||||
|
||||
* 自动战斗视频链接始终显示 @ABA2396
|
||||
* 补充可露希尔基建数值 @Saratoga-Official
|
||||
* YostarKR winden colorScale for compatibility @HX3N
|
||||
|
||||
### MaaMacGui
|
||||
|
||||
#### 新增 | New
|
||||
|
||||
* 添加阵地足球锦标赛小游戏入口 @ABA2396
|
||||
|
||||
#### 修复 | Fix
|
||||
|
||||
* 统一 gui.log 文件日志中的日期与时间格式 ([#93](https://github.com/MaaAssistantArknights/MaaMacGui/pull/93)) @Alan-Charred
|
||||
* 修复 MAAUnified CI 选错 ref 的问题 ([#17143](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17143)) @Halo
|
||||
* 优化 Avalonia 构建工作流触发条件 ([#17139](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17139)) @Manicsteiner
|
||||
* YostarEN/JP/KR update LoneTrail and JieGarden themes ([#17175](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17175)) @Constrat @Manicsteiner @HX3N
|
||||
* YostarJP add episode new navigation and JieGarden theme recruit @Manicsteiner
|
||||
* Update GitHub push action version comment ([#17124](https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/17124)) @AnnAngela
|
||||
|
||||
</details>
|
||||
|
||||
@@ -0,0 +1,710 @@
|
||||
{
|
||||
"code": "level_crisis_v2_05-01",
|
||||
"height": 8,
|
||||
"levelId": "obt/crisis/v2/level_crisis_v2_05-01",
|
||||
"name": "level_crisis_v2_05-01",
|
||||
"stageId": "level_crisis_v2_05-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": 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": 1,
|
||||
"heightType": 0,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_character"
|
||||
},
|
||||
{
|
||||
"buildableType": 1,
|
||||
"heightType": 0,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_character"
|
||||
},
|
||||
{
|
||||
"buildableType": 1,
|
||||
"heightType": 0,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_character"
|
||||
},
|
||||
{
|
||||
"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_character"
|
||||
},
|
||||
{
|
||||
"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_telout"
|
||||
},
|
||||
{
|
||||
"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_character"
|
||||
},
|
||||
{
|
||||
"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": 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": 1,
|
||||
"heightType": 0,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_fence_bound"
|
||||
},
|
||||
{
|
||||
"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_character"
|
||||
},
|
||||
{
|
||||
"buildableType": 1,
|
||||
"heightType": 0,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_character"
|
||||
},
|
||||
{
|
||||
"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": 1,
|
||||
"heightType": 0,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_character"
|
||||
},
|
||||
{
|
||||
"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_character"
|
||||
},
|
||||
{
|
||||
"buildableType": 0,
|
||||
"heightType": 0,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_hole"
|
||||
},
|
||||
{
|
||||
"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_character"
|
||||
},
|
||||
{
|
||||
"buildableType": 1,
|
||||
"heightType": 0,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_character"
|
||||
},
|
||||
{
|
||||
"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": 1,
|
||||
"heightType": 0,
|
||||
"isEnd": false,
|
||||
"isStart": true,
|
||||
"tileKey": "tile_character"
|
||||
},
|
||||
{
|
||||
"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_character"
|
||||
},
|
||||
{
|
||||
"buildableType": 0,
|
||||
"heightType": 0,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_hole"
|
||||
},
|
||||
{
|
||||
"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": false,
|
||||
"tileKey": "tile_floor"
|
||||
},
|
||||
{
|
||||
"buildableType": 1,
|
||||
"heightType": 0,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_road"
|
||||
},
|
||||
{
|
||||
"buildableType": 0,
|
||||
"heightType": 1,
|
||||
"isEnd": false,
|
||||
"isStart": true,
|
||||
"tileKey": "tile_flystart"
|
||||
},
|
||||
{
|
||||
"buildableType": 1,
|
||||
"heightType": 0,
|
||||
"isEnd": false,
|
||||
"isStart": true,
|
||||
"tileKey": "tile_character"
|
||||
},
|
||||
{
|
||||
"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_character"
|
||||
},
|
||||
{
|
||||
"buildableType": 0,
|
||||
"heightType": 0,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_hole"
|
||||
},
|
||||
{
|
||||
"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_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": true,
|
||||
"tileKey": "tile_character"
|
||||
},
|
||||
{
|
||||
"buildableType": 0,
|
||||
"heightType": 1,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_forbidden"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"buildableType": 0,
|
||||
"heightType": 1,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_forbidden"
|
||||
},
|
||||
{
|
||||
"buildableType": 0,
|
||||
"heightType": 1,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_forbidden"
|
||||
},
|
||||
{
|
||||
"buildableType": 0,
|
||||
"heightType": 1,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_forbidden"
|
||||
},
|
||||
{
|
||||
"buildableType": 0,
|
||||
"heightType": 1,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_forbidden"
|
||||
},
|
||||
{
|
||||
"buildableType": 0,
|
||||
"heightType": 1,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_forbidden"
|
||||
},
|
||||
{
|
||||
"buildableType": 0,
|
||||
"heightType": 1,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_forbidden"
|
||||
},
|
||||
{
|
||||
"buildableType": 0,
|
||||
"heightType": 1,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_forbidden"
|
||||
},
|
||||
{
|
||||
"buildableType": 0,
|
||||
"heightType": 1,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_forbidden"
|
||||
},
|
||||
{
|
||||
"buildableType": 0,
|
||||
"heightType": 1,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_forbidden"
|
||||
},
|
||||
{
|
||||
"buildableType": 0,
|
||||
"heightType": 1,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "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
|
||||
}
|
||||
@@ -0,0 +1,710 @@
|
||||
{
|
||||
"code": "level_crisis_v2_05-03",
|
||||
"height": 8,
|
||||
"levelId": "obt/crisis/v2/level_crisis_v2_05-03",
|
||||
"name": "level_crisis_v2_05-03",
|
||||
"stageId": "level_crisis_v2_05-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": 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_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": 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": 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": 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_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": 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": 0,
|
||||
"isEnd": false,
|
||||
"isStart": false,
|
||||
"tileKey": "tile_floor"
|
||||
},
|
||||
{
|
||||
"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": 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": 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": 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": 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": 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_telout"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"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": 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": 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": 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": 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": 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"
|
||||
},
|
||||
{
|
||||
"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
|
||||
}
|
||||
@@ -0,0 +1,733 @@
|
||||
{
|
||||
"code": "level_crisis_v2_05-05",
|
||||
"height": 9,
|
||||
"levelId": "obt/crisis/v2/level_crisis_v2_05-05",
|
||||
"name": "level_crisis_v2_05-05",
|
||||
"stageId": "level_crisis_v2_05-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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 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": 1,
|
||||
"isEnd": true,
|
||||
"isStart": true,
|
||||
"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"
|
||||
}
|
||||
]
|
||||
],
|
||||
"view": [
|
||||
[
|
||||
0.0,
|
||||
-7.6,
|
||||
-11.5
|
||||
],
|
||||
[
|
||||
1.2469540431696988,
|
||||
-8.1,
|
||||
-12.325289159640393
|
||||
]
|
||||
],
|
||||
"width": 11
|
||||
}
|
||||
@@ -19925,6 +19925,33 @@
|
||||
"stageId": "level_crisis_v2_04-05",
|
||||
"width": 12
|
||||
},
|
||||
"level_crisis_v2_05-01-obt/crisis/v2/level_crisis_v2_05-01": {
|
||||
"code": "level_crisis_v2_05-01",
|
||||
"filename": "level_crisis_v2_05-01-obt-crisis-v2-level_crisis_v2_05-01.json",
|
||||
"height": 8,
|
||||
"levelId": "obt/crisis/v2/level_crisis_v2_05-01",
|
||||
"name": "level_crisis_v2_05-01",
|
||||
"stageId": "level_crisis_v2_05-01",
|
||||
"width": 12
|
||||
},
|
||||
"level_crisis_v2_05-03-obt/crisis/v2/level_crisis_v2_05-03": {
|
||||
"code": "level_crisis_v2_05-03",
|
||||
"filename": "level_crisis_v2_05-03-obt-crisis-v2-level_crisis_v2_05-03.json",
|
||||
"height": 8,
|
||||
"levelId": "obt/crisis/v2/level_crisis_v2_05-03",
|
||||
"name": "level_crisis_v2_05-03",
|
||||
"stageId": "level_crisis_v2_05-03",
|
||||
"width": 12
|
||||
},
|
||||
"level_crisis_v2_05-05-obt/crisis/v2/level_crisis_v2_05-05": {
|
||||
"code": "level_crisis_v2_05-05",
|
||||
"filename": "level_crisis_v2_05-05-obt-crisis-v2-level_crisis_v2_05-05.json",
|
||||
"height": 9,
|
||||
"levelId": "obt/crisis/v2/level_crisis_v2_05-05",
|
||||
"name": "level_crisis_v2_05-05",
|
||||
"stageId": "level_crisis_v2_05-05",
|
||||
"width": 11
|
||||
},
|
||||
"level_rune_01-01-obt/rune/level_rune_01-01": {
|
||||
"code": "level_rune_01-01",
|
||||
"filename": "level_rune_01-01-obt-rune-level_rune_01-01.json",
|
||||
|
||||
@@ -169,12 +169,9 @@
|
||||
},
|
||||
"char_1022_flwr2": {
|
||||
"name": "撷英调香师",
|
||||
"name_en": "撷英调香师",
|
||||
"name_en_unavailable": true,
|
||||
"name_jp": "撷英调香师",
|
||||
"name_jp_unavailable": true,
|
||||
"name_kr": "撷英调香师",
|
||||
"name_kr_unavailable": true,
|
||||
"name_en": "Perfumer the Distilled",
|
||||
"name_jp": "萃香パフューマー",
|
||||
"name_kr": "퍼퓨머 더 디스틸트",
|
||||
"name_tw": "撷英调香师",
|
||||
"name_tw_unavailable": true,
|
||||
"position": "RANGED",
|
||||
@@ -2942,12 +2939,9 @@
|
||||
},
|
||||
"char_4056_titi": {
|
||||
"name": "缇缇",
|
||||
"name_en": "缇缇",
|
||||
"name_en_unavailable": true,
|
||||
"name_jp": "缇缇",
|
||||
"name_jp_unavailable": true,
|
||||
"name_kr": "缇缇",
|
||||
"name_kr_unavailable": true,
|
||||
"name_en": "Titi",
|
||||
"name_jp": "ティティ",
|
||||
"name_kr": "티티",
|
||||
"name_tw": "缇缇",
|
||||
"name_tw_unavailable": true,
|
||||
"position": "RANGED",
|
||||
@@ -3686,12 +3680,9 @@
|
||||
},
|
||||
"char_4166_varkis": {
|
||||
"name": "摆渡人",
|
||||
"name_en": "摆渡人",
|
||||
"name_en_unavailable": true,
|
||||
"name_jp": "摆渡人",
|
||||
"name_jp_unavailable": true,
|
||||
"name_kr": "摆渡人",
|
||||
"name_kr_unavailable": true,
|
||||
"name_en": "Varkáris",
|
||||
"name_jp": "ヴァルカリス",
|
||||
"name_kr": "바르카리스",
|
||||
"name_tw": "摆渡人",
|
||||
"name_tw_unavailable": true,
|
||||
"position": "MELEE",
|
||||
@@ -5032,8 +5023,7 @@
|
||||
"name_en": "Alliance/Supportive Operator",
|
||||
"name_jp": "盟約・補助オペレーター",
|
||||
"name_kr": "맹약·서포터 오퍼레이터",
|
||||
"name_tw": "盟约·辅助干员",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "盟約·輔助幹員",
|
||||
"position": "RANGED",
|
||||
"profession": "SUPPORT",
|
||||
"rangeId": ["y-2", "y-2", "y-2"],
|
||||
@@ -5044,8 +5034,7 @@
|
||||
"name_en": "Lord/Sharp",
|
||||
"name_jp": "領主・Sharp",
|
||||
"name_kr": "로드·샤프",
|
||||
"name_tw": "领主·Sharp",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "領主·Sharp",
|
||||
"position": "MELEE",
|
||||
"profession": "WARRIOR",
|
||||
"rangeId": ["2-3", "3-12", "3-12"],
|
||||
@@ -7386,8 +7375,7 @@
|
||||
"name_en": "Yanese Dagger",
|
||||
"name_jp": "炎国の短刀",
|
||||
"name_kr": "염국 단검",
|
||||
"name_tw": "炎国短刀",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "炎國短刀",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7398,8 +7386,7 @@
|
||||
"name_en": "Victorian Hammer",
|
||||
"name_jp": "ヴィクトリアの鉄鎚",
|
||||
"name_kr": "빅토리아 해머",
|
||||
"name_tw": "维式重锤",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "維式重鎚",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7410,8 +7397,7 @@
|
||||
"name_en": "Burning Victorian Hammer",
|
||||
"name_jp": "ヴィクトリアの鉄鎚・灼熱",
|
||||
"name_kr": "불타는 빅토리아 해머",
|
||||
"name_tw": "灼燃维式重锤",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "灼燃維式重鎚",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7422,8 +7408,7 @@
|
||||
"name_en": "Durable Victorian Hammer",
|
||||
"name_jp": "ヴィクトリアの鉄鎚・不動",
|
||||
"name_kr": "견고한 빅토리아 해머",
|
||||
"name_tw": "坚固维式重锤",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "堅固維式重鎚",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7434,8 +7419,7 @@
|
||||
"name_en": "Speedy Victorian Hammer",
|
||||
"name_jp": "ヴィクトリアの鉄鎚・加速",
|
||||
"name_kr": "가속의 빅토리아 해머",
|
||||
"name_tw": "加速维式重锤",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "加速維式重鎚",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7446,8 +7430,7 @@
|
||||
"name_en": "Frightening Victorian Hammer",
|
||||
"name_jp": "ヴィクトリアの鉄鎚・戦慄",
|
||||
"name_kr": "전율의 빅토리아 해머",
|
||||
"name_tw": "战栗维式重锤",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "戰慄維式重鎚",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7458,8 +7441,7 @@
|
||||
"name_en": "Ægirian Blade",
|
||||
"name_jp": "エーギルのいかり",
|
||||
"name_kr": "에기르 칼날",
|
||||
"name_tw": "阿戈尔重刃",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "阿戈爾重刃",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7470,8 +7452,7 @@
|
||||
"name_en": "Durable Shield",
|
||||
"name_jp": "堅守の盾",
|
||||
"name_kr": "고수 방패",
|
||||
"name_tw": "坚守盾牌",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "堅守盾牌",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7482,8 +7463,7 @@
|
||||
"name_en": "Pocket Arts Circle",
|
||||
"name_jp": "携帯式アーツバリア",
|
||||
"name_kr": "주머니 마법진",
|
||||
"name_tw": "奥术法阵",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "口袋法陣",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7494,8 +7474,7 @@
|
||||
"name_en": "Goliath Helmet",
|
||||
"name_jp": "ゴリアテの兜",
|
||||
"name_kr": "골리앗 투구",
|
||||
"name_tw": "歌利亚头盔",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "歌利亞頭盔",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7517,8 +7496,7 @@
|
||||
"name_en": "Sargonian Teaspresso",
|
||||
"name_jp": "サルゴンの渋茶",
|
||||
"name_kr": "사르곤 농차",
|
||||
"name_tw": "萨尔贡浓茶",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "薩爾貢濃茶",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7529,8 +7507,7 @@
|
||||
"name_en": "Quick Combat Rations",
|
||||
"name_jp": "速攻用レーション",
|
||||
"name_kr": "신속 전투식량",
|
||||
"name_tw": "迅捷作战粮",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "迅捷作戰糧",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7542,7 +7519,6 @@
|
||||
"name_jp": "有限加速マシン",
|
||||
"name_kr": "제한 가속기",
|
||||
"name_tw": "有限加速器",
|
||||
"name_tw_unavailable": true,
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7553,8 +7529,7 @@
|
||||
"name_en": "Laser Sighter",
|
||||
"name_jp": "レーザー発射機",
|
||||
"name_kr": "레이저 발사기",
|
||||
"name_tw": "激光发射器",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "鐳射發射器",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7565,8 +7540,7 @@
|
||||
"name_en": "Buzzer",
|
||||
"name_jp": "警報器",
|
||||
"name_kr": "버저",
|
||||
"name_tw": "蜂鸣器",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "蜂鳴器",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7577,8 +7551,7 @@
|
||||
"name_en": "Disguise Outfit",
|
||||
"name_jp": "迷彩ヘルメット",
|
||||
"name_kr": "위장복",
|
||||
"name_tw": "伪装服",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "偽裝服",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7589,8 +7562,7 @@
|
||||
"name_en": "Tough Launcher",
|
||||
"name_jp": "不屈の射出装置",
|
||||
"name_kr": "불굴의 사출기",
|
||||
"name_tw": "不屈弹射器",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "不屈彈射器",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7601,8 +7573,7 @@
|
||||
"name_en": "Lateran Clip",
|
||||
"name_jp": "ラテラーノのクリップ",
|
||||
"name_kr": "라테라노 클립",
|
||||
"name_tw": "拉特兰桥夹",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "拉特蘭橋夾",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7613,8 +7584,7 @@
|
||||
"name_en": "Teargas Can",
|
||||
"name_jp": "催涙ガス",
|
||||
"name_kr": "최루가스",
|
||||
"name_tw": "催泪瓦斯",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "催淚瓦斯",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7625,8 +7595,7 @@
|
||||
"name_en": "Concentrated Smelling Salts",
|
||||
"name_jp": "濃縮気付け薬",
|
||||
"name_kr": "농축 스멜링 솔트",
|
||||
"name_tw": "浓缩嗅盐",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "濃縮嗅鹽",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7649,7 +7618,6 @@
|
||||
"name_jp": "ライオットシールド",
|
||||
"name_kr": "진압 방패",
|
||||
"name_tw": "防暴盾",
|
||||
"name_tw_unavailable": true,
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7660,8 +7628,7 @@
|
||||
"name_en": "Protection Drone",
|
||||
"name_jp": "シールドドローン",
|
||||
"name_kr": "실드 드론",
|
||||
"name_tw": "护盾无人机",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "護盾無人機",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7672,8 +7639,7 @@
|
||||
"name_en": "Kjeragi Nevermeltice",
|
||||
"name_jp": "イェラグの不融氷",
|
||||
"name_kr": "쉐라그 만년빙",
|
||||
"name_tw": "谢拉格不融冰",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "謝拉格不融冰",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7684,8 +7650,7 @@
|
||||
"name_en": "Precision Scope",
|
||||
"name_jp": "精密な狙撃スコープ",
|
||||
"name_kr": "정밀 조준경",
|
||||
"name_tw": "精准狙击镜",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "精準狙擊鏡",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7696,8 +7661,7 @@
|
||||
"name_en": "Raid Grenade",
|
||||
"name_jp": "強襲用グレネード",
|
||||
"name_kr": "기습 수류탄",
|
||||
"name_tw": "突袭手雷",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "突襲手榴彈",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7709,7 +7673,6 @@
|
||||
"name_jp": "眠れる眷属",
|
||||
"name_kr": "잠자는 후예",
|
||||
"name_tw": "休眠子裔",
|
||||
"name_tw_unavailable": true,
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7720,8 +7683,7 @@
|
||||
"name_en": "Lucky Coin",
|
||||
"name_jp": "幸運のコイン",
|
||||
"name_kr": "럭키코인",
|
||||
"name_tw": "盟约之币",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "幸運硬幣",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7732,8 +7694,7 @@
|
||||
"name_en": "Bimodule Robotic Arm",
|
||||
"name_jp": "デュアルロボットアーム",
|
||||
"name_kr": "듀얼 모드 기계팔",
|
||||
"name_tw": "双模机械臂",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "雙模機械臂",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7744,8 +7705,7 @@
|
||||
"name_en": "M3 Cocoon Shell",
|
||||
"name_jp": "M3コクーンアーマー",
|
||||
"name_kr": "M3 고치 갑옷",
|
||||
"name_tw": "M3茧甲",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "M3繭甲",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7756,8 +7716,7 @@
|
||||
"name_en": "Mimic Matter",
|
||||
"name_jp": "擬態物質",
|
||||
"name_kr": "의태 물질",
|
||||
"name_tw": "拟态物质",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "擬態物質",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7779,8 +7738,7 @@
|
||||
"name_en": "HR File",
|
||||
"name_jp": "人事部の書類",
|
||||
"name_kr": "인사부 파일",
|
||||
"name_tw": "人事部文档",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "人事部文件",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7792,7 +7750,6 @@
|
||||
"name_jp": "ドクターのホログラム",
|
||||
"name_kr": "박사의 홀로그램",
|
||||
"name_tw": "博士投影",
|
||||
"name_tw_unavailable": true,
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7803,8 +7760,7 @@
|
||||
"name_en": "Mutated Cells",
|
||||
"name_jp": "変異細胞",
|
||||
"name_kr": "돌연변이 세포",
|
||||
"name_tw": "突变细胞",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "突變細胞",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7815,8 +7771,7 @@
|
||||
"name_en": "Damazti Isomorph",
|
||||
"name_jp": "変形同位体",
|
||||
"name_kr": "변형 구조체",
|
||||
"name_tw": "变形同构体",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "變形同構體",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7827,8 +7782,7 @@
|
||||
"name_en": "Commercial Packaging Plan",
|
||||
"name_jp": "プロデュース戦略",
|
||||
"name_kr": "상업 포장 계획",
|
||||
"name_tw": "商业包装方案",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "商業包裝方案",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7839,8 +7793,7 @@
|
||||
"name_en": "Dispatch Module",
|
||||
"name_jp": "呼出モジュール",
|
||||
"name_kr": "호출 모듈",
|
||||
"name_tw": "寻呼模块",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "傳呼模組",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7851,8 +7804,7 @@
|
||||
"name_en": "Gun-Knight's Might",
|
||||
"name_jp": "銃騎士の威光",
|
||||
"name_kr": "총기사의 위엄",
|
||||
"name_tw": "铳骑之威",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "銃騎之威",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7863,8 +7815,7 @@
|
||||
"name_en": "Tianshi's Cauldron",
|
||||
"name_jp": "天師の祭器",
|
||||
"name_kr": "천사의 고정",
|
||||
"name_tw": "天师古鼎",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "天師古鼎",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7875,8 +7826,7 @@
|
||||
"name_en": "Trench Test Subject",
|
||||
"name_jp": "海溝の実験体",
|
||||
"name_kr": "해구 실험체",
|
||||
"name_tw": "海沟实验体",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "海溝實驗體",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -7888,7 +7838,6 @@
|
||||
"name_jp": "スチームハート",
|
||||
"name_kr": "증기의 마음",
|
||||
"name_tw": "蒸汽之心",
|
||||
"name_tw_unavailable": true,
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -8163,8 +8112,7 @@
|
||||
"name_en": "Kjeragandr's Tears",
|
||||
"name_jp": "イェラガンドの涙",
|
||||
"name_kr": "쉐라간드의 눈물",
|
||||
"name_tw": "耶拉冈德之泪",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "耶拉岡德之淚",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -8175,8 +8123,7 @@
|
||||
"name_en": "Desert Compass",
|
||||
"name_jp": "黄砂のコンパス",
|
||||
"name_kr": "사막 나침반",
|
||||
"name_tw": "黄沙罗盘",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "黃沙羅盤",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -8187,8 +8134,7 @@
|
||||
"name_en": "'Double Lids'",
|
||||
"name_jp": "「ダブルリッズ」",
|
||||
"name_kr": "'쌍꺼풀'",
|
||||
"name_tw": "“双眼皮”",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "“雙眼皮”",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["3-10", "3-10", "3-10"],
|
||||
@@ -8200,7 +8146,6 @@
|
||||
"name_jp": "バリケード",
|
||||
"name_kr": "차단 공사",
|
||||
"name_tw": "阻隔工事",
|
||||
"name_tw_unavailable": true,
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -8211,8 +8156,7 @@
|
||||
"name_en": "Ranged Tile",
|
||||
"name_jp": "射撃台",
|
||||
"name_kr": "사격대",
|
||||
"name_tw": "射击台",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "射擊台",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -8224,7 +8168,6 @@
|
||||
"name_jp": "封じられた地面",
|
||||
"name_kr": "봉인된 지면",
|
||||
"name_tw": "封印的地面",
|
||||
"name_tw_unavailable": true,
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -8235,8 +8178,7 @@
|
||||
"name_en": "'Mystery Customer'",
|
||||
"name_jp": "「謎の客人」",
|
||||
"name_kr": "'신비한 고객'",
|
||||
"name_tw": "“神秘顾客”",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "“神秘顧客”",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -8247,8 +8189,7 @@
|
||||
"name_en": "Transmitter",
|
||||
"name_jp": "ビーコン",
|
||||
"name_kr": "비콘",
|
||||
"name_tw": "信标",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "信標",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -8270,8 +8211,7 @@
|
||||
"name_en": "Dusk's Scroll",
|
||||
"name_jp": "絵巻",
|
||||
"name_kr": "두루마리",
|
||||
"name_tw": "画卷",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "畫卷",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["1-1", "1-1", "1-1"],
|
||||
@@ -8283,7 +8223,6 @@
|
||||
"name_jp": "教鞭",
|
||||
"name_kr": "교편",
|
||||
"name_tw": "教鞭",
|
||||
"name_tw_unavailable": true,
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -8294,8 +8233,7 @@
|
||||
"name_en": "Alliance Chill Gust",
|
||||
"name_jp": "盟約吹雪",
|
||||
"name_kr": "맹약의 한풍",
|
||||
"name_tw": "盟约寒风",
|
||||
"name_tw_unavailable": true,
|
||||
"name_tw": "盟約寒風",
|
||||
"position": "NONE",
|
||||
"profession": "TRAP",
|
||||
"rangeId": ["0-1", "0-1", "0-1"],
|
||||
@@ -10663,12 +10601,9 @@
|
||||
},
|
||||
"trap_279_pirene": {
|
||||
"name": "喷泉水池",
|
||||
"name_en": "喷泉水池",
|
||||
"name_en_unavailable": true,
|
||||
"name_jp": "喷泉水池",
|
||||
"name_jp_unavailable": true,
|
||||
"name_kr": "喷泉水池",
|
||||
"name_kr_unavailable": true,
|
||||
"name_en": "Fountain",
|
||||
"name_jp": "憩いの池",
|
||||
"name_kr": "분수대 수조",
|
||||
"name_tw": "喷泉水池",
|
||||
"name_tw_unavailable": true,
|
||||
"position": "NONE",
|
||||
@@ -15240,12 +15175,9 @@
|
||||
},
|
||||
"trap_790_dytswd": {
|
||||
"name": "宿傲",
|
||||
"name_en": "宿傲",
|
||||
"name_en_unavailable": true,
|
||||
"name_en": "Olden Pride",
|
||||
"name_jp": "宿傲",
|
||||
"name_jp_unavailable": true,
|
||||
"name_kr": "宿傲",
|
||||
"name_kr_unavailable": true,
|
||||
"name_kr": "숙오",
|
||||
"name_tw": "宿傲",
|
||||
"name_tw_unavailable": true,
|
||||
"position": "NONE",
|
||||
@@ -15255,12 +15187,9 @@
|
||||
},
|
||||
"trap_791_dytfre": {
|
||||
"name": "宿怒",
|
||||
"name_en": "宿怒",
|
||||
"name_en_unavailable": true,
|
||||
"name_en": "Olden Grudge",
|
||||
"name_jp": "宿怒",
|
||||
"name_jp_unavailable": true,
|
||||
"name_kr": "宿怒",
|
||||
"name_kr_unavailable": true,
|
||||
"name_kr": "숙노",
|
||||
"name_tw": "宿怒",
|
||||
"name_tw_unavailable": true,
|
||||
"position": "NONE",
|
||||
|
||||
@@ -0,0 +1,429 @@
|
||||
{
|
||||
"minimum_required": "v5.23.0",
|
||||
"stage_name": "Spier Foothills",
|
||||
"actions": [],
|
||||
"doc": {
|
||||
"title": "SSS - TASK ONLY - CasterRecruit - Spier Foothills - Ice Blast Machine",
|
||||
"details": "This operation is for farming the \"Recruit 8 Casters\" mission. You need to set the loop count. MAA will clear the first stage, recruit operators, then intentionally leak enemies to restart.\n═══════════════════════════════════\nOperation code: maa://77859\nManual team assembly is required for now. For all filler operators, prioritize low cost. Recommended promotion is E2, with E1 max as the bare minimum.\nAvoid skills that only trigger once per deployment (like Mountain S2) or skills that require enemy contact (like Degenbrecher S3), as MAA will keep activating them repeatedly. Also avoid skills with unusual attack ranges (like Schwarz S3).\nDouble-check that the Amplifier is set to [Ice Blast Machine], all Tactical Equipment are set to A, your team is manually formed and confirmed, and then hit Start.\nAuthor: 萨拉托加\nJSON Author: 萨拉托加\nVideo: 【MAA保全派驻 任务合集】 https://www.bilibili.com/video/BV1RbqnBCEfd/\n═══════════════════════════════════\nExtra operators (excluding core picks):\nVanguards (3): Choose skills that generate cost without needing enemy contact. Avoid skills that require enemy contact to generate cost, and avoid block-1 vanguards (they may leak enemies). Prioritize Pioneers. SilverAsh is not recommended, as MAA will frequently target his summon.\nDefenders (5): Prioritize self-healing healing defenders like Saria, Shu, Nearl, plus other defenders around 20 cost, e.g., Hoshiguma, Yu.\nSnipers (5): Go for low-cost AA snipers where possible.\nCasters (5): Aim for casters around 20 cost. If bringing AoE casters, equip cost-reduction modules. Recommended operators with AoE skills, e.g., Eyjafjalla S3, Goldenglow S3, LapplandAlt S3; bring Dusk if you want the \"Four Seasons\" buff.\nSupporters (2): Options include Civilight Eterna S2, Haruka S2, Virtuosa S3, or Tragodia S3; bring Ling if you want the \"Four Seasons\" buff.\n═══════════════════════════════════\nFor any issues, join the group: 216314927. Comments may not receive timely replies.\nYou may tweak the core selections in the operation files to suit your needs, but please do not re-upload them to the operation site. Using this operation means you agree to these terms.",
|
||||
"title_color": "dark",
|
||||
"details_color": "dark"
|
||||
},
|
||||
"groups": [],
|
||||
"opers": [],
|
||||
"type": "SSS",
|
||||
"buff": "冷爆机",
|
||||
"equipment": ["A", "A", "A", "A", "A", "A", "A", "A"],
|
||||
"strategy": "优选策略",
|
||||
"tool_men": {
|
||||
"vanguard": 3,
|
||||
"guard": 0,
|
||||
"defender": 5,
|
||||
"sniper": 5,
|
||||
"caster": 5,
|
||||
"medic": 0,
|
||||
"supporter": 2,
|
||||
"specialist": 0
|
||||
},
|
||||
"drops": ["术师", "辅助", "无需增调干员", "重装", "冰浪脉冲模块"],
|
||||
"blacklist": [
|
||||
"CONFESS-47",
|
||||
"PhonoR-0",
|
||||
"Friston-3",
|
||||
"U-Official",
|
||||
"泰拉大陆调查团",
|
||||
"正义骑士号",
|
||||
"THRM-EX",
|
||||
"斑点",
|
||||
"泡普卡",
|
||||
"月见夜",
|
||||
"空爆",
|
||||
"梓兰",
|
||||
"安赛尔",
|
||||
"芙蓉",
|
||||
"安德切尔",
|
||||
"克洛丝",
|
||||
"米格鲁",
|
||||
"卡缇",
|
||||
"玫兰莎",
|
||||
"翎羽",
|
||||
"香草",
|
||||
"芬",
|
||||
"巡林者",
|
||||
"黑角",
|
||||
"夜刀",
|
||||
"Castle-3",
|
||||
"Lancet-2",
|
||||
"历阵锐枪芬",
|
||||
"野鬃",
|
||||
"风笛",
|
||||
"苇草",
|
||||
"格拉尼",
|
||||
"红豆",
|
||||
"渡桥",
|
||||
"缪尔赛思",
|
||||
"伺夜",
|
||||
"夜半",
|
||||
"豆苗",
|
||||
"万顷",
|
||||
"琴柳",
|
||||
"极境",
|
||||
"桃金娘",
|
||||
"寻澜",
|
||||
"齐尔查克",
|
||||
"伊内丝",
|
||||
"谜图",
|
||||
"晓歌",
|
||||
"山",
|
||||
"达格达",
|
||||
"重岳",
|
||||
"杰克",
|
||||
"燧石",
|
||||
"猎蜂",
|
||||
"因陀罗",
|
||||
"维娜·维多利亚",
|
||||
"薇薇安娜",
|
||||
"史尔特尔",
|
||||
"阿米娅",
|
||||
"铸铁",
|
||||
"星极",
|
||||
"慕斯",
|
||||
"左乐",
|
||||
"火龙S黑角",
|
||||
"赤冬",
|
||||
"宴",
|
||||
"赫拉格",
|
||||
"莱欧斯",
|
||||
"止颂",
|
||||
"摩根",
|
||||
"耀骑士临光",
|
||||
"断罪者",
|
||||
"炎客",
|
||||
"斯卡蒂",
|
||||
"芙兰卡",
|
||||
"缠丸",
|
||||
"司霆惊蛰",
|
||||
"骋风",
|
||||
"玛恩纳",
|
||||
"龙舌兰",
|
||||
"露托",
|
||||
"斥罪",
|
||||
"泥岩",
|
||||
"火神",
|
||||
"坚雷",
|
||||
"石棉",
|
||||
"暮落",
|
||||
"车尔尼",
|
||||
"森蚺",
|
||||
"极光",
|
||||
"洋灰",
|
||||
"灰毫",
|
||||
"号角",
|
||||
"火哨",
|
||||
"菲莱",
|
||||
"余",
|
||||
"普罗旺斯",
|
||||
"黑",
|
||||
"酸糖",
|
||||
"鸿雪",
|
||||
"玫拉",
|
||||
"白雪",
|
||||
"陨星",
|
||||
"慑砂",
|
||||
"W",
|
||||
"菲亚梅塔",
|
||||
"截云",
|
||||
"守林人",
|
||||
"安比尔",
|
||||
"安哲拉",
|
||||
"远牙",
|
||||
"子月",
|
||||
"送葬人",
|
||||
"奥斯塔",
|
||||
"松果",
|
||||
"假日威龙陈",
|
||||
"吉星",
|
||||
"早露",
|
||||
"熔泉",
|
||||
"埃拉托",
|
||||
"铅踝",
|
||||
"提丰",
|
||||
"迷迭香",
|
||||
"承曦格雷伊",
|
||||
"冰酿",
|
||||
"莱伊",
|
||||
"跃跃",
|
||||
"娜仁图亚",
|
||||
"水灯心",
|
||||
"凯尔希",
|
||||
"刺玫",
|
||||
"焰影苇草",
|
||||
"濯尘芙蓉",
|
||||
"罗比菈塔",
|
||||
"掠风",
|
||||
"白铁",
|
||||
"凯瑟琳",
|
||||
"阿兰娜",
|
||||
"砾",
|
||||
"红",
|
||||
"槐琥",
|
||||
"傀影",
|
||||
"卡夫卡",
|
||||
"缄默德克萨斯",
|
||||
"麒麟R夜刀",
|
||||
"弑君者",
|
||||
"阿消",
|
||||
"食铁兽",
|
||||
"温蒂",
|
||||
"见行者",
|
||||
"暗索",
|
||||
"崖心",
|
||||
"雪雉",
|
||||
"歌蕾蒂娅",
|
||||
"杏仁",
|
||||
"阿",
|
||||
"空构",
|
||||
"新约能天使",
|
||||
"孑",
|
||||
"乌有",
|
||||
"老鲤",
|
||||
"琳琅诗怀雅",
|
||||
"裁度",
|
||||
"罗宾",
|
||||
"霜华",
|
||||
"多萝西",
|
||||
"艾拉",
|
||||
"钼铅",
|
||||
"贝娜",
|
||||
"风丸",
|
||||
"归溟幽灵鲨",
|
||||
"维荻",
|
||||
"双月",
|
||||
"锡人",
|
||||
"引星棘刺",
|
||||
"云迹",
|
||||
"蒂比",
|
||||
"狮蝎",
|
||||
"伊桑",
|
||||
"绮良",
|
||||
"水月",
|
||||
"阿斯卡纶",
|
||||
"八幡海铃",
|
||||
"若叶睦",
|
||||
"冬时",
|
||||
"折桠",
|
||||
"哈蒂娅",
|
||||
"雪猎",
|
||||
"凛御银灰",
|
||||
"娜斯提",
|
||||
"响石",
|
||||
"天空盒"
|
||||
],
|
||||
"stages": [
|
||||
{
|
||||
"stage_name": "运道抢险",
|
||||
"strategies": [
|
||||
{
|
||||
"tool_men": {
|
||||
"vanguard": 1
|
||||
},
|
||||
"location": [8, 5],
|
||||
"direction": "none"
|
||||
},
|
||||
{
|
||||
"tool_men": {
|
||||
"sniper": 1,
|
||||
"vanguard": 1
|
||||
},
|
||||
"location": [8, 5],
|
||||
"direction": "none"
|
||||
},
|
||||
{
|
||||
"tool_men": {
|
||||
"vanguard": 1
|
||||
},
|
||||
"location": [7, 5],
|
||||
"direction": "Left"
|
||||
},
|
||||
{
|
||||
"tool_men": {
|
||||
"sniper": 1
|
||||
},
|
||||
"location": [4, 4],
|
||||
"direction": "Left"
|
||||
},
|
||||
{
|
||||
"core": "冷爆机",
|
||||
"tool_men": {},
|
||||
"location": [6, 5],
|
||||
"direction": "Left"
|
||||
},
|
||||
{
|
||||
"tool_men": {
|
||||
"defender": 1
|
||||
},
|
||||
"location": [5, 5],
|
||||
"direction": "Left"
|
||||
},
|
||||
{
|
||||
"core": "冷爆机",
|
||||
"tool_men": {},
|
||||
"location": [6, 5],
|
||||
"direction": "Left"
|
||||
},
|
||||
{
|
||||
"tool_men": {
|
||||
"supporter": 1
|
||||
},
|
||||
"location": [5, 4],
|
||||
"direction": "Left"
|
||||
},
|
||||
{
|
||||
"core": "冷爆机",
|
||||
"tool_men": {},
|
||||
"location": [6, 5],
|
||||
"direction": "Left"
|
||||
},
|
||||
{
|
||||
"tool_men": {
|
||||
"vanguard": 1
|
||||
},
|
||||
"location": [7, 5],
|
||||
"direction": "Left"
|
||||
},
|
||||
{
|
||||
"tool_men": {
|
||||
"caster": 1
|
||||
},
|
||||
"location": [4, 4],
|
||||
"direction": "Left"
|
||||
},
|
||||
{
|
||||
"tool_men": {
|
||||
"defender": 1
|
||||
},
|
||||
"location": [5, 5],
|
||||
"direction": "Left"
|
||||
},
|
||||
{
|
||||
"tool_men": {
|
||||
"supporter": 1
|
||||
},
|
||||
"location": [4, 4],
|
||||
"direction": "Left"
|
||||
},
|
||||
{
|
||||
"tool_men": {
|
||||
"sniper": 1,
|
||||
"caster": 1
|
||||
},
|
||||
"location": [5, 4],
|
||||
"direction": "Left"
|
||||
},
|
||||
{
|
||||
"tool_men": {
|
||||
"sniper": 1,
|
||||
"caster": 1
|
||||
},
|
||||
"location": [5, 4],
|
||||
"direction": "Left"
|
||||
},
|
||||
{
|
||||
"tool_men": {
|
||||
"vanguard": 99
|
||||
},
|
||||
"location": [7, 5],
|
||||
"direction": "Left"
|
||||
},
|
||||
{
|
||||
"tool_men": {
|
||||
"defender": 99
|
||||
},
|
||||
"location": [5, 5],
|
||||
"direction": "Left"
|
||||
},
|
||||
{
|
||||
"tool_men": {
|
||||
"supporter": 99
|
||||
},
|
||||
"location": [4, 4],
|
||||
"direction": "Left"
|
||||
},
|
||||
{
|
||||
"tool_men": {
|
||||
"caster": 99
|
||||
},
|
||||
"location": [5, 4],
|
||||
"direction": "Left"
|
||||
},
|
||||
{
|
||||
"core": "战备激活阀",
|
||||
"tool_men": {
|
||||
"sniper": 99
|
||||
},
|
||||
"location": [5, 4],
|
||||
"direction": "Left"
|
||||
}
|
||||
],
|
||||
"draw_as_possible": true,
|
||||
"actions": [
|
||||
{
|
||||
"type": "二倍速"
|
||||
},
|
||||
{
|
||||
"type": "Deploy",
|
||||
"name": "超重绝缘水泥",
|
||||
"location": [6, 1],
|
||||
"direction": "none",
|
||||
"costs": 48
|
||||
},
|
||||
{
|
||||
"type": "Deploy",
|
||||
"name": "超重绝缘水泥",
|
||||
"location": [7, 1],
|
||||
"direction": "none",
|
||||
"costs": 49
|
||||
},
|
||||
{
|
||||
"type": "Deploy",
|
||||
"name": "超重绝缘水泥",
|
||||
"location": [8, 1],
|
||||
"direction": "none",
|
||||
"costs": 50
|
||||
}
|
||||
],
|
||||
"retry_times": 99
|
||||
},
|
||||
{
|
||||
"stage_name": "作业整备",
|
||||
"strategies": [],
|
||||
"draw_as_possible": true,
|
||||
"actions": [
|
||||
{
|
||||
"type": "二倍速"
|
||||
},
|
||||
{
|
||||
"type": "Deploy",
|
||||
"name": "超重绝缘水泥",
|
||||
"location": [1, 1],
|
||||
"direction": "none",
|
||||
"costs": 48
|
||||
},
|
||||
{
|
||||
"type": "Deploy",
|
||||
"name": "超重绝缘水泥",
|
||||
"location": [2, 1],
|
||||
"direction": "none",
|
||||
"costs": 49
|
||||
},
|
||||
{
|
||||
"type": "Deploy",
|
||||
"name": "超重绝缘水泥",
|
||||
"location": [3, 1],
|
||||
"direction": "none",
|
||||
"costs": 50
|
||||
}
|
||||
],
|
||||
"retry_times": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2287,6 +2287,14 @@
|
||||
"sortId": -10000,
|
||||
"usage": "An innovative beverage inspired by high-altitude air-supply devices, now the lifeblood of Columbians. No one would refuse to fork over a high price to taste a new era beyond the Starpod."
|
||||
},
|
||||
"act48side_token_ostracon": {
|
||||
"classifyType": "NONE",
|
||||
"description": "Even though everyone has a terminal loaded with all kinds of apps these days, the Minoans still prefer to follow their ancient traditions.",
|
||||
"icon": "act48side_token_ostracon.png",
|
||||
"name": "Ostracon",
|
||||
"sortId": -10000,
|
||||
"usage": "An essential item for Athenian citizens when voting. But what to do with used ostraca? Astynomos' Office decided to collect and wrap them up nicely for tourist souvenirs, and this innovative idea was well received by all."
|
||||
},
|
||||
"act4bossrush_milestone_point": {
|
||||
"classifyType": "NONE",
|
||||
"description": "Right and wrong are far from crucial in a simulation. They are only a form of support. They help you make the correct choices when the battle is real.",
|
||||
@@ -2719,6 +2727,22 @@
|
||||
"sortId": -10000,
|
||||
"usage": "A carefully-prepared tasting set. Can be exchanged for LMD."
|
||||
},
|
||||
"itempack_leaf_def": {
|
||||
"classifyType": "NONE",
|
||||
"description": "Create your own unique style.",
|
||||
"icon": "itempack_leaf_def.png",
|
||||
"name": "Looseleaf/Rhodes Fashion Review",
|
||||
"sortId": -10000,
|
||||
"usage": "A themed Fashion Collections set containing a Custom Looseleaf and stickers, easily placed and displayed."
|
||||
},
|
||||
"itempack_leaf_def2": {
|
||||
"classifyType": "NONE",
|
||||
"description": "A new melody composed for today's display.",
|
||||
"icon": "itempack_leaf_def2.png",
|
||||
"name": "Looseleaf/Media",
|
||||
"sortId": -10000,
|
||||
"usage": "A themed Fashion Collections set containing a Custom Looseleaf and stickers, easily placed and displayed."
|
||||
},
|
||||
"itempack_main_1": {
|
||||
"classifyType": "NONE",
|
||||
"description": "A materials supply crate issued alongside Sanity samplers, giving you a random material as you restore your Sanity.",
|
||||
@@ -2823,6 +2847,54 @@
|
||||
"sortId": -10000,
|
||||
"usage": "HR resource pack for recruitment, allowing a large number of Operators to be recruited via public channels."
|
||||
},
|
||||
"itempack_stickers_rog1": {
|
||||
"classifyType": "NONE",
|
||||
"description": "A grand encompassing performance.",
|
||||
"icon": "itempack_stickers_rog1.png",
|
||||
"name": "Sticker Pack/Crimson Solitaire",
|
||||
"sortId": -10000,
|
||||
"usage": "Special Looseleaf Stickers for Fashion Collections usable as decorations."
|
||||
},
|
||||
"itempack_stickers_rog2": {
|
||||
"classifyType": "NONE",
|
||||
"description": "The tides call out for you to travel.",
|
||||
"icon": "itempack_stickers_rog2.png",
|
||||
"name": "Sticker Pack/Caerula Arbor",
|
||||
"sortId": -10000,
|
||||
"usage": "Special Looseleaf Stickers for Fashion Collections usable as decorations."
|
||||
},
|
||||
"itempack_stickers_rog3": {
|
||||
"classifyType": "NONE",
|
||||
"description": "Seek the beauty of mystery in the bitter cold.",
|
||||
"icon": "itempack_stickers_rog3.png",
|
||||
"name": "Sticker Pack/Silverfrost Frontier",
|
||||
"sortId": -10000,
|
||||
"usage": "Special Looseleaf Stickers for Fashion Collections usable as decorations."
|
||||
},
|
||||
"itempack_stickers_rog4": {
|
||||
"classifyType": "NONE",
|
||||
"description": "The land witnesses the Sarkaz's splendid forms.",
|
||||
"icon": "itempack_stickers_rog4.png",
|
||||
"name": "Sticker Pack/Furnaceside Fables",
|
||||
"sortId": -10000,
|
||||
"usage": "Special Looseleaf Stickers for Fashion Collections usable as decorations."
|
||||
},
|
||||
"itempack_stickers_rog5": {
|
||||
"classifyType": "NONE",
|
||||
"description": "Tourists entranced by enchanting landscapes.",
|
||||
"icon": "itempack_stickers_rog5.png",
|
||||
"name": "Sticker Pack/Garden of Grotesqueries",
|
||||
"sortId": -10000,
|
||||
"usage": "Special Looseleaf Stickers for Fashion Collections usable as decorations."
|
||||
},
|
||||
"itempack_stickers_sand1": {
|
||||
"classifyType": "NONE",
|
||||
"description": "Admire the artistic mesh of desert and oasis.",
|
||||
"icon": "itempack_stickers_sand1.png",
|
||||
"name": "Sticker Pack/Tales Within the Sand",
|
||||
"sortId": -10000,
|
||||
"usage": "Special Looseleaf Stickers for Fashion Collections usable as decorations."
|
||||
},
|
||||
"main16_spitem_1": {
|
||||
"classifyType": "NORMAL",
|
||||
"description": "Once, they said it was the origin of suffering. Now, they say its disappearance was the beginning of tragedy.",
|
||||
|
||||
@@ -28,12 +28,8 @@
|
||||
"roi": [1163, 27, 84, 28],
|
||||
"text": ["Movements"]
|
||||
},
|
||||
"EnterEpisodeNew": {
|
||||
"baseTask": "#none",
|
||||
"baseTaskDoc": "26.2.10 Add a secondary interface and delete it after subsequent updates",
|
||||
"Doc": "base_task",
|
||||
"template": "empty.png",
|
||||
"action": "ClickSelf"
|
||||
"EnterEpisodeNew-Click": {
|
||||
"text": ["Go to Episode"]
|
||||
},
|
||||
"LevelOfDifficulty": {
|
||||
"text": ["Environment", "PRTS"]
|
||||
@@ -127,7 +123,7 @@
|
||||
["Purestream", "清流"],
|
||||
["Whisperain", "絮雨"],
|
||||
["Tuye", "图耶"],
|
||||
["Kal'tsit", "凯尔希"],
|
||||
["^Kal'tsit$", "凯尔希"],
|
||||
["Mulberry", "桑葚"],
|
||||
["Honeyberry", "蜜莓"],
|
||||
["Reserve Operator *-* *L[ogistics]*", "预备干员-后勤"],
|
||||
@@ -144,7 +140,7 @@
|
||||
["Grani", "格拉尼"],
|
||||
["Siege", "推进之王"],
|
||||
["^Texas$", "德克萨斯"],
|
||||
["Zima", "凛冬"],
|
||||
["^Zima$", "凛冬"],
|
||||
["Vigna", "红豆"],
|
||||
["Scavenger", "清道夫"],
|
||||
["Courier", "讯使"],
|
||||
@@ -1092,7 +1088,13 @@
|
||||
["Ice Blast Machine", "冷爆机"],
|
||||
["Skybox", "天空盒"],
|
||||
["Nasti", "娜斯提"],
|
||||
["Cairn", "响石"]
|
||||
["Cairn", "响石"],
|
||||
["Olden Pride", "宿傲"],
|
||||
["Olden Grudge", "宿怒"],
|
||||
["Fountain", "喷泉水池"],
|
||||
["Varkáris", "摆渡人"],
|
||||
["Perfumer the Distilled", "撷英调香师"],
|
||||
["Titi", "缇缇"]
|
||||
]
|
||||
},
|
||||
"GameStartCheckResourceOCR": {
|
||||
@@ -1762,7 +1764,8 @@
|
||||
["Cloudstepper", "攀云机"],
|
||||
["Pinnacle Insights? Port", "尖端研究成果共享终端"],
|
||||
["Lightweight Range[finder]*", "轻型瞄准测距仪"],
|
||||
["Master Who Walks the[ Night Gear]*", "天工夜行套装"]
|
||||
["Master Who Walks the[ Night Gear]*", "天工夜行套装"],
|
||||
["Ice Blast Machine", "冷爆机"]
|
||||
]
|
||||
},
|
||||
"SSSBuffChooseConfirm": {
|
||||
|
||||
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 8.3 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 9.7 KiB |
|
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 9.1 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 7.2 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 7.7 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 7.3 KiB |
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"activity": {
|
||||
"name": "Trials for Navigator",
|
||||
"time": 1781175600
|
||||
"name": "Medjehtiqedti Bound",
|
||||
"time": 1782129600
|
||||
},
|
||||
"gacha": {
|
||||
"pool": "Confirmation, Completion, Conduction",
|
||||
"time": 1780671600
|
||||
"pool": "Quester in Frozen Moments",
|
||||
"time": 1782129600
|
||||
},
|
||||
"last_updated": "2026-06-11 11:33:55.000"
|
||||
"last_updated": "2026-06-22 12:38:44.000"
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
"classifyType": "CONSUME",
|
||||
"description": "ロドスの戦略需要を考慮した結果、まとまった人材の引き入れと方向性が定まったスカウトを同時進行することで、特殊な人材を個別に獲得することができるようになった。",
|
||||
"icon": "2026recruitment10_1.png",
|
||||
"name": "5.5周年特別スカウト券α",
|
||||
"name": "6.5周年特別スカウト券α",
|
||||
"sortId": 50107,
|
||||
"usage": "ロドス人事部が特別に発行した許可証。 人材紹介会社に対して特殊なリクエストをしており、オペレーターを1回で10人採用できる。"
|
||||
},
|
||||
@@ -51,7 +51,7 @@
|
||||
"classifyType": "CONSUME",
|
||||
"description": "ロドスの戦略需要を考慮した結果、まとまった人材の引き入れと方向性が定まったスカウトを同時進行することで、特殊な人材を個別に獲得することができるようになった。",
|
||||
"icon": "2026recruitment10_2.png",
|
||||
"name": "5.5周年特別スカウト券β",
|
||||
"name": "6.5周年特別スカウト券β",
|
||||
"sortId": 50107,
|
||||
"usage": "ロドス人事部が特別に発行した許可証。 人材紹介会社に対して特殊なリクエストをしており、オペレーターを1回で10人採用できる。"
|
||||
},
|
||||
@@ -59,7 +59,7 @@
|
||||
"classifyType": "CONSUME",
|
||||
"description": "ロドスの戦略需要を考慮した結果、まとまった人材の引き入れと方向性が定まったスカウトを同時進行することで、特殊な人材を個別に獲得することができるようになった。",
|
||||
"icon": "2026recruitment10_3.png",
|
||||
"name": "5.5周年特別スカウト券γ",
|
||||
"name": "6.5周年特別スカウト券γ",
|
||||
"sortId": 50107,
|
||||
"usage": "ロドス人事部が特別に発行した許可証。 人材紹介会社に対して特殊なリクエストをしており、オペレーターを1回で10人採用できる。"
|
||||
},
|
||||
@@ -501,7 +501,7 @@
|
||||
"icon": "31083.png",
|
||||
"name": "炭化水素ポリマー",
|
||||
"sortId": 100010,
|
||||
"usage": "耐熱性と耐薬品性を兼ね備えた工業材料。昇進やスキル強化に必要な素材。"
|
||||
"usage": "耐熱性と耐薬品性を兼ね備えた工業材料。昇進やスキル強化に必要な素材。"
|
||||
},
|
||||
"31084": {
|
||||
"classifyType": "MATERIAL",
|
||||
@@ -1989,7 +1989,7 @@
|
||||
"icon": "act27side_token_fur.png",
|
||||
"name": "ピンクのふわふわ",
|
||||
"sortId": -10000,
|
||||
"usage": "アウトドア用の防寒具に使えそうだが、今の季節はあまり役に立たないだろう。「ホワイト・ヴォルケーノ」の末娘がなぜこの奇妙な綿毛を気に入っているのかは分からないが、彼女にこれを渡せばこっそり店内の商品と交換してくれる。注意:このことはにはくれぐれも長兄には内密に!!"
|
||||
"usage": "アウトドア用の防寒具に使えそうだが、今の季節はあまり役に立たないだろう。「ホワイト・ヴォルケーノ」の末娘がなぜこの奇妙な綿毛を気に入っているのかは分からないが、彼女にこれを渡せばこっそり店内の商品と交換してくれる。注意:このことはくれぐれも長兄には内密に!!"
|
||||
},
|
||||
"act28side_token_box": {
|
||||
"classifyType": "NONE",
|
||||
@@ -2287,6 +2287,14 @@
|
||||
"sortId": -10000,
|
||||
"usage": "高所環境用酸素供給装置から着想を得た斬新なコンセプトのドリンク。現代のクルビア人にとっては、もはや血液も同然だ。新時代、それも星のさやの外側から来た味をひと口体験するためなら、誰もが喜んで大金を差し出す。"
|
||||
},
|
||||
"act48side_token_ostracon": {
|
||||
"classifyType": "NONE",
|
||||
"description": "人々が様々な機能を備えた端末を手にするようになった現代に、ミノス人は依然として、投票という行為においては古来のやり方に従い続けている。",
|
||||
"icon": "act48side_token_ostracon.png",
|
||||
"name": "投票用陶片",
|
||||
"sortId": -10000,
|
||||
"usage": "アテヌスの公民が投票時に用いる必需品。使用した陶片は、監督官の執務室が回収し、それをきれいに包装して、アテヌスを訪れる観光客に販売することになった。この画期的な取り組みは、各方面から高い評価を得ている。"
|
||||
},
|
||||
"act4bossrush_milestone_point": {
|
||||
"classifyType": "NONE",
|
||||
"description": "試練の成否はそれほど重要ではない、これは貴殿が実戦において正確な選択を行うためのサポートである。",
|
||||
@@ -2727,6 +2735,22 @@
|
||||
"sortId": -10000,
|
||||
"usage": "丹念に用意された試飲セット。龍門幣と交換できる。"
|
||||
},
|
||||
"itempack_leaf_def": {
|
||||
"classifyType": "NONE",
|
||||
"description": "あなただけのデザインを創ろう。",
|
||||
"icon": "itempack_leaf_def.png",
|
||||
"name": "特集/ロドス特選",
|
||||
"sortId": -10000,
|
||||
"usage": "表紙編集のテンプレートに含まれている表紙と特集シール。一括で編集を完了させられる。"
|
||||
},
|
||||
"itempack_leaf_def2": {
|
||||
"classifyType": "NONE",
|
||||
"description": "今日の輝きのために、新たな旋律を紡ごう。",
|
||||
"icon": "itempack_leaf_def2.png",
|
||||
"name": "特集/ストリーミングメディア",
|
||||
"sortId": -10000,
|
||||
"usage": "表紙編集のテンプレートに含まれている表紙と特集シール。一括で編集を完了させられる。"
|
||||
},
|
||||
"itempack_main_1": {
|
||||
"classifyType": "NONE",
|
||||
"description": "試供理性回復剤がおまけでついて来る素材補給箱。理性を回復させると同時に、ランダムで材料をひとつ獲得できる。",
|
||||
@@ -2831,6 +2855,54 @@
|
||||
"sortId": -10000,
|
||||
"usage": "求人の需要を満たすために用意された人材リソースパック。関係者が公開ルートを通じて多くのオペレーターを募集するために使用される。"
|
||||
},
|
||||
"itempack_stickers_rog1": {
|
||||
"classifyType": "NONE",
|
||||
"description": "気迫溢れる一幕。",
|
||||
"icon": "itempack_stickers_rog1.png",
|
||||
"name": "シールパック/緋き貴石",
|
||||
"sortId": -10000,
|
||||
"usage": "コーデ特集専用のシール。表紙編集に使うことができる。"
|
||||
},
|
||||
"itempack_stickers_rog2": {
|
||||
"classifyType": "NONE",
|
||||
"description": "潮風があなたを旅にいざなっている。",
|
||||
"icon": "itempack_stickers_rog2.png",
|
||||
"name": "シールパック/紺碧の樹",
|
||||
"sortId": -10000,
|
||||
"usage": "コーデ特集専用のシール。表紙編集に使うことができる。"
|
||||
},
|
||||
"itempack_stickers_rog3": {
|
||||
"classifyType": "NONE",
|
||||
"description": "凍える風の中に神秘の美を追い求める。",
|
||||
"icon": "itempack_stickers_rog3.png",
|
||||
"name": "シールパック/銀氷の果て",
|
||||
"sortId": -10000,
|
||||
"usage": "コーデ特集専用のシール。表紙編集に使うことができる。"
|
||||
},
|
||||
"itempack_stickers_rog4": {
|
||||
"classifyType": "NONE",
|
||||
"description": "大地はサルカズの輝かしき姿を見届ける。",
|
||||
"icon": "itempack_stickers_rog4.png",
|
||||
"name": "シールパック/炉辺奇談",
|
||||
"sortId": -10000,
|
||||
"usage": "コーデ特集専用のシール。表紙編集に使うことができる。"
|
||||
},
|
||||
"itempack_stickers_rog5": {
|
||||
"classifyType": "NONE",
|
||||
"description": "美しき山水に、旅人は休息をも忘れる。",
|
||||
"icon": "itempack_stickers_rog5.png",
|
||||
"name": "シールパック/界園志異",
|
||||
"sortId": -10000,
|
||||
"usage": "コーデ特集専用のシール。表紙編集に使うことができる。"
|
||||
},
|
||||
"itempack_stickers_sand1": {
|
||||
"classifyType": "NONE",
|
||||
"description": "砂漠とオアシスが織りなす芸術を鑑賞しよう。",
|
||||
"icon": "itempack_stickers_sand1.png",
|
||||
"name": "シールパック/熱砂秘聞",
|
||||
"sortId": -10000,
|
||||
"usage": "コーデ特集専用のシール。表紙編集に使うことができる。"
|
||||
},
|
||||
"main16_spitem_1": {
|
||||
"classifyType": "NORMAL",
|
||||
"description": "かつて、苦難はそれの出現によって生まれると言われていた。だが今では、悲劇はそれが消えることによって始まると言われている。",
|
||||
|
||||
@@ -29,12 +29,8 @@
|
||||
"ClickChapterNewOverview": {
|
||||
"text": ["楽章"]
|
||||
},
|
||||
"EnterEpisodeNew": {
|
||||
"baseTask": "#none",
|
||||
"baseTaskDoc": "26.2.10 Add a secondary interface and delete it after subsequent updates",
|
||||
"Doc": "base_task",
|
||||
"template": "empty.png",
|
||||
"action": "ClickSelf"
|
||||
"EnterEpisodeNew-Click": {
|
||||
"text": ["章節へ"]
|
||||
},
|
||||
"EnterChapterDifficultyHard": {
|
||||
"text": ["作戦へ"]
|
||||
@@ -108,7 +104,7 @@
|
||||
[".*ースス.*リッ(ト)?", "地灵"],
|
||||
["(ロ|コ)ベルタ", "罗比菈塔"],
|
||||
["ディピ力", "深海色"],
|
||||
["オーキッド", "梓兰"],
|
||||
["^オーキッド", "梓兰"],
|
||||
["予備隊員-術師", "预备干员-术师"],
|
||||
["^(ハ|/|,)?イビスカス", "芙蓉"],
|
||||
["^ア(ン|シ)(ャ|セ)ル", "安赛尔"],
|
||||
@@ -127,7 +123,7 @@
|
||||
["セイリュ.+", "清流"],
|
||||
[".*ィス.*ーレイ.*", "絮雨"],
|
||||
["(ト)?ゥイエ", "图耶"],
|
||||
["ケル.*ー", "凯尔希"],
|
||||
["ケル.*ー$", "凯尔希"],
|
||||
["マルベリー", "桑葚"],
|
||||
["(ハ)?ニーベリー", "蜜莓"],
|
||||
["予備隊員-支援", "预备干员-后勤"],
|
||||
@@ -172,7 +168,7 @@
|
||||
["^(イ)?グゼキュター", "送葬人"],
|
||||
["ヴァーミル", "红云"],
|
||||
[".*(ユ|ュ)ヴァルツ", "黑"],
|
||||
["カタパルト", "空爆"],
|
||||
["^カタパル(ト)?", "空爆"],
|
||||
["^エクシア", "能天使"],
|
||||
[".*ァイヤーウォッ.*", "守林人"],
|
||||
["プ?ロヴァンス", "普罗旺斯"],
|
||||
@@ -203,7 +199,7 @@
|
||||
["スポット", "斑点"],
|
||||
["サリア", "塞雷娅"],
|
||||
["^ホシグマ", "星熊"],
|
||||
["ヴァルカ", "火神"],
|
||||
["ヴァルカ($|ン|[^リ])", "火神"],
|
||||
["(ク)?ロワッサン", "可颂"],
|
||||
["リスカム", "雷蛇"],
|
||||
["^ニア.*ル", "临光"],
|
||||
@@ -957,7 +953,7 @@
|
||||
["カウンターアーマーセット", "反制装甲套组"],
|
||||
["三角初華", "三角初华"],
|
||||
["「パーフェクトサポーター」", "“绝对助手”"],
|
||||
["祐天寺にゃむ", "祐天寺若麦"],
|
||||
["祐天寺に[ゃや]む", "祐天寺若麦"],
|
||||
["^温室$", "温室拱棚"],
|
||||
["血裔の胞体", "血裔胞体"],
|
||||
["吸血の悪地", "噬血诅地"],
|
||||
@@ -1015,7 +1011,7 @@
|
||||
["巫女像", "圣女像"],
|
||||
["イスビット高台", "伊斯贝塔高台"],
|
||||
["風雪の眼", "风雪之眼"],
|
||||
["「緊急建設チーム」", "“应急承重小组”"],
|
||||
["緊急建設チーム", "“应急承重小组”"],
|
||||
["防衛ライン(凍結状態)", "保护目标(冻结状态)"],
|
||||
[".*光アステジーニ", "溯光星源"],
|
||||
["雪面固定装置", "积雪固定装置"],
|
||||
@@ -1023,8 +1019,8 @@
|
||||
["スノーハンター", "雪猎"],
|
||||
["(凛|御).*シルバ.*", "凛御银灰"],
|
||||
["ハディ[ヤセ]", "哈蒂娅"],
|
||||
["「品質検査員」", "“质检专员”"],
|
||||
["「現場監督」", "“监工专员”"],
|
||||
["品質検査員", "“质检专员”"],
|
||||
["現場監督", "“监工专员”"],
|
||||
["聖.*プラマニクス", "圣聆初雪"],
|
||||
["盟約吹雪", "盟约寒风"],
|
||||
["「謎の客人」", "“神秘顾客”"],
|
||||
@@ -1075,7 +1071,11 @@
|
||||
["寒冷弾発射装置", "冷爆机"],
|
||||
["スカイボックス", "天空盒"],
|
||||
["ナスティ", "娜斯提"],
|
||||
["ケルン", "响石"]
|
||||
["ケルン", "响石"],
|
||||
["憩いの池", "喷泉水池"],
|
||||
["ヴァルカリス", "摆渡人"],
|
||||
[".*香パフューマ", "撷英调香师"],
|
||||
["ティティ", "缇缇"]
|
||||
]
|
||||
},
|
||||
"GameStartCheckResourceOCR": {
|
||||
@@ -1631,7 +1631,8 @@
|
||||
["登雲具", "攀云机"],
|
||||
["軽量型距離計", "轻型瞄准测距仪"],
|
||||
["天工夜行セット", "天工夜行套装"],
|
||||
["カウンターアーマーセット", "反制装甲套组"]
|
||||
["カウンターアーマーセット", "反制装甲套组"],
|
||||
["寒冷弾発射装置", "冷爆机"]
|
||||
],
|
||||
"roi": [0, 136, 1280, 162]
|
||||
},
|
||||
|
||||
|
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 7.0 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 7.2 KiB |
|
After Width: | Height: | Size: 6.7 KiB |