diff --git a/.gitignore b/.gitignore
index 895085dcb6..13335857eb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -442,3 +442,9 @@ enc_temp_folder/*
# Nuke
.nuke/temp/*
+
+# 引航者试炼地图,手动改的参数
+/resource/Arknights-Tile-Pos/act2bossrush_01-activities-act2bossrush-level_bossrush2_01.json
+/resource/Arknights-Tile-Pos/act2bossrush_02-activities-act2bossrush-level_bossrush2_02.json
+/resource/Arknights-Tile-Pos/act2bossrush_03-activities-act2bossrush-level_bossrush2_03.json
+/resource/Arknights-Tile-Pos/act2bossrush_04-activities-act2bossrush-level_bossrush2_04.json
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 27561d101c..39315b5d26 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,42 +1,29 @@
-## v4.11.0-alpha.2
+## v4.11.0-beta.2
-- 修复 基建 自动换班时,排序错误导致的干员冲突问题 @MistEO @ABA2396
+- 更新 `吾导先路` 活动关卡资源、导航 @MistEO @ABA2396
+- 优化 刷理智 主界面设置,更改为实时生效 @ABA2396
+- 修复 基建 宿舍复查识别错误 @MistEO
+- 修复 macOS GUI 编队错误 @hguandl
+- 修复 界面 托盘不显示的问题 @ABA2396
+- 迁移 文档 至官网 @ABA2396
-## v4.11.0-alpha.1
+### For overseas
+
+- Updated translation for YostarJP @wallsman
+
+
+## v4.11.0-beta.1
- 重构 生息演算,支持黑市 npc 对话,支持刷粗制赤金 @WLLEGit
- 新增 刷理智 吃 48 小时、60分钟 临期理智药功能 @bigqiao
-- 优化 基建 复核干员是否正确选择 @fearlessxjdx
+- 优化 基建 复核干员是否正确选择 @fearlessxjdx @MistEO @ABA2396
+- 优化 信用购物 默认选项 @sakuraxp
+- 优化 牛牛喝酒 彩蛋 @MistEO
+- 修复 战斗中 干员头像识别错误 @MistEO
- 修复 界面 崩溃问题 @ChingCdesu @ABA2396 @lhhxxxxx
+- 修复 界面 adb 自动检测错误 @lanhao34
+- 修复 界面 托盘不显示问题 @ChingCdesu
- 修复 `春分` 故事集 关卡上传企鹅错误 @MistEO
- 修复 抄作业 神秘代码无法使用的问题 @zzyyyl
- 修复 抄作业 干员名识别错误 @cenfusheng
- 迁移 文档 至[官网](https://maa.plus/docs/),主仓库内不再更新 @ABA2396
-
-
-## v4.10.10
-
-- 更新 `春分` 故事集 游戏数据 @MistEO
-
-## v4.10.9-rc.1
-
-- 回滚 v4.10.8 版本 GUI 相关改动,后续修复后再次发布 @MistEO
-
-## v4.10.8-beta.1
-
-- 新增 界面 保存最近连接端口号 @ABA2396
-- 新增 界面 公招识别 三星设置 7:40 @ABA2396
-- 重构 界面 调用方式 @ChingCdesu
-- 优化 任务中途停止 等待时间 @ABA2396
-- 优化 保全派驻 上满核心后就不上工具人了 @MistEO
-- 修复 保全派驻 第三层掉落卡住的问题 @MistEO
-- 修复 检查更新 不应用代理设置的问题 @MistEO
-- 修复 基建 会客室 不领取线索的问题 @Sed66666
-- 修复 界面 刷理智 相关下拉选项错误 @ABA2396
-- 修复 肉鸽 关卡超时撤退时的崩溃问题 @HerrCai0907
-- 修复 检测 ADB 时的崩溃问题 @ABA2396
-- 更新 文档 @ABA2396
-
-For overseas
-
-- Added more template images for YostarJP @liuyifan-eric
diff --git a/README.md b/README.md
index 1d74c07406..9ab0562911 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,7 @@
-[简体中文](README.md) | [繁體中文](README_zh-TW.md) | [English](README_en-US.md) | [日本語](README_ja-JP.md) | [한국어](README_ko-KR.md)
+[简体中文](https://maa.plus/docs/) | [繁體中文](https://maa.plus/docs/zh-tw/) | [English](https://maa.plus/docs/en-us/) | [日本語](https://maa.plus/docs/ja-jp/) | [한국어](https://maa.plus/docs/ko-kr/)
MAA 的意思是 MAA Assistant Arknights
@@ -26,7 +26,7 @@ MAA 的意思是 MAA Assistant Arknights
基于图像识别技术,一键完成全部日常任务!
-绝赞更新中 ✿✿ヽ(°▽°)ノ✿
+绝赞更新中 ✿✿ヽ(°▽°)ノ✿
@@ -41,7 +41,7 @@ MAA 的意思是 MAA Assistant Arknights
- 仓库识别并支持导出至 [企鹅物流刷图规划器](https://penguin-stats.cn/planner), [明日方舟工具箱](https://arkn.lolicon.app/#/material), [ARK-NIGHTS 干员培养表](https://ark-nights.com/settings)
- 支持 C, Python, Java, Rust, Golang, Java HTTP, Rust HTTP 等多种接口,方便集成调用,自定义你的 MAA!
-话不多说,看图!
+话不多说,看图!


@@ -49,7 +49,7 @@ MAA 的意思是 MAA Assistant Arknights
## 下载地址
-[稳定版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/latest)
+[稳定版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/latest)
[开发版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases)
## 使用说明
@@ -76,16 +76,8 @@ MAA 的意思是 MAA Assistant Arknights
## 外服支持
-- 国际服(美服)
- 支持基本的刷理智、信用购物、访问好友、领取奖励、自动肉鸽(测试版本)、公招识别,请参考 [说明](resource/global/YoStarEN/readme.md)
-- 日服
- 支持基本的刷理智、自动基建、信用购物、自动公招、访问好友、领取奖励、自动肉鸽(测试版本)、公招识别,请参考 [说明](resource/global/YoStarJP/readme.md)
-- 韩服
- 支持基本的刷理智、信用购物、访问好友、领取奖励、自动肉鸽(测试版本)、公招识别,请参考 [说明](resource/global/YoStarKR/readme.md)
-- 繁中服
- 支持基本的刷理智、自动公招、自动肉鸽、领取日常、公招识别功能,请参考 [说明](resource/global/txwy/readme.md)
-
-由于外服用户较少及项目人手不足的问题,外服目前都仅适配了基本的功能。若您有强需求,欢迎在 [讨论区](https://github.com/MaaAssistantArknights/MaaAssistantArknights/discussions) 催更,或加入我们一起建设 MAA!请参考 [外服适配教程](#外服适配)
+目前国际服(美服)、日服、韩服、繁中服的绝大部分功能均已支持。但由于外服用户较少及项目人手不足,很多功能并没有进行全面的测试,所以请自行体验。
+若您遇到了 Bug,或对某个功能有强需求,欢迎在 [Issues](https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues) 和 [讨论区](https://github.com/MaaAssistantArknights/MaaAssistantArknights/discussions) 催更;或加入我们一起建设 MAA!请参考 [外服适配教程](#外服适配)
## 主要关联项目
@@ -122,7 +114,7 @@ MAA 的意思是 MAA Assistant Arknights
- ~~公开招募数据:[明日方舟工具箱](https://www.bigfun.cn/tools/aktools/hr)~~
- 干员及基建数据:[PRTS明日方舟中文WIKI](http://prts.wiki/)
- 关卡数据:[企鹅物流数据统计](https://penguin-stats.cn/)
-- 游戏数据及資源:[明日方舟bot常用素材](https://github.com/yuanyan3060/Arknights-Bot-Resource)
+- 游戏数据及资源:[明日方舟bot常用素材](https://github.com/yuanyan3060/Arknights-Bot-Resource)
- 游戏数据:[《明日方舟》游戏数据](https://github.com/Kengxxiao/ArknightsGameData)
### 贡献/参与者
@@ -179,12 +171,12 @@ MAA 的意思是 MAA Assistant Arknights
## 广告
-用户交流 QQ 群:[MAA 使用 & 粥游交流 QQ 群](https://ota.maa.plus/MaaAssistantArknights/api/qqgroup/index.html)
-用户交流 TG 群:[Telegram 群](https://t.me/+Mgc2Zngr-hs3ZjU1)
-自动战斗 JSON 作业分享:[prts.plus](https://prts.plus) 或 [抄作业.com](http://抄作业.com)
-Bilibili 直播间:[直播间](https://live.bilibili.com/2808861) 每晚直播敲代码,近期很长一段时间应该都是在写本软件~
-
-技术 & 吹水群(舟无关):[内卷地狱!(QQ 群)](https://jq.qq.com/?_wv=1027&k=ypbzXcA2)
-开发者群:[QQ 群](https://jq.qq.com/?_wv=1027&k=JM9oCk3C)
+用户交流 QQ 群:[MAA 使用 & 粥游交流 QQ 群](https://ota.maa.plus/MaaAssistantArknights/api/qqgroup/index.html)
+用户交流 TG 群:[Telegram 群](https://t.me/+Mgc2Zngr-hs3ZjU1)
+自动战斗 JSON 作业分享:[prts.plus](https://prts.plus) 或 [抄作业.com](http://抄作业.com)
+Bilibili 直播间:[直播间](https://live.bilibili.com/2808861) 每晚直播敲代码,近期很长一段时间应该都是在写本软件~
+
+技术 & 吹水群(舟无关):[内卷地狱!(QQ 群)](https://jq.qq.com/?_wv=1027&k=ypbzXcA2)
+开发者群:[QQ 群](https://jq.qq.com/?_wv=1027&k=JM9oCk3C)
如果觉得软件对你有帮助,帮忙点个 Star 吧!~(网页最上方右上角的小星星),这就是对我们最大的支持了!
diff --git a/README_en-US.md b/README_en-US.md
deleted file mode 100644
index b337db1fa2..0000000000
--- a/README_en-US.md
+++ /dev/null
@@ -1,187 +0,0 @@
-
-
-

-
-# MaaAssistantArknights
-
-
-
-

-
-
-

-
-
-
-
-[简体中文](README.md) | [繁體中文](README_zh-TW.md) | [English](README_en-US.md) | [日本語](README_ja-JP.md) | [한국어](README_ko-KR.md)
-
-MAA means MAA Assistant Arknights
-
-An Arknights assistant
-
-Based on image recognition, helps you to complete daily quests efficiently!
-
-Development in progress ✿✿ヽ(°▽°)ノ✿
-
-
-
-## Features
-
-- Auto-battle, drop items recognition, auto-uploading to [Penguin Stats](https://penguin-stats.io/).
-- Auto-shifting in the Base, auto efficiency calculation of operators, optimal solution in single room. (Only CN client is supported now.)
-- Auto-recruitment, support for expedited plan. Auto-uploading recruitment data to [Penguin Stats](https://penguin-stats.io/result/stage/recruit/recruit), [Yituliu](https://yituliu.site/maarecruitdata).
-- Visiting friends, collecting credits and purchasing items, collecting daily rewards, completing daily quests in one click!
-- Auto-battle for Integrated Strategy (I.S.) for collecting originium ingots and candles.
-- Importing JSON task file for auto-battle! [Video](https://www.bilibili.com/video/BV1H841177Fk/)
-- Depot recognition and upports exporting to [Penguin Stats Planner](https://penguin-stats.cn/planner), [Arknight Tools](https://arkn.lolicon.app/#/material), and [ARK-NIGHTS Operator Builds](https://ark-nights.com/settings)
-- Support C, Python, Java, Rust, Golang, Java HTTP, Rust HTTP and other interfaces, easy to integrate and call, customize your MAA!
-
-Talk is cheap. Show me the pictures!
-
-
-
-
-
-## Download
-
-[Stable](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/latest)
-[Development](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases)
-
-## How to Use
-
-### Basic Settings
-
-1. Please refer to [Emulator Supports](https://maa.plus/docs/en-us/1.3-EMULATOR_SUPPORTS.html) to configure your emulator.
-2. Change your emulator resolution to `1280 * 720` or higher with `16:9` aspect ratio.
-3. Enjoy it!
-
-See also: [User Manual](https://maa.plus/docs/en-us/1.1-USER_MANUAL.html)
-
-## FAQ
-
-- The program crashes immediately when I try to run it.
-- Connection error/not knowing how to fill in ADB path.
-- Connected successfully, then it got stuck.
-- Custom connection settings.
-- Download speed is too slow, or the mirror site is not accessible.
-- Download halfway and prompt "login"/"authentication"
-
-Please refer to: [FAQ](https://maa.plus/docs/en-us/1.2-FAQ.html)
-
-## Supports for overseas clients
-
-- Global(EN) Client
- Supports basic features like Combat, Credit Shopping, Visiting, Collecting, Auto Roguelike(beta), Recruitment calculate, etc. See also [README](resource/global/YoStarEN/readme.md)
-- JP Client
- Supports basic features like Combat, Auto Base shift, Credit Shopping, Auto Recruiting, Visiting, Collecting, Auto Roguelike(beta), Recruitment calculate, etc. See also [README](resource/global/YoStarJP/readme.md)
-- KR Client
- Supports basic features like Combat, Credit Shopping, Visiting, Collecting, Auto Roguelike(beta), Recruitment calculate, etc. See also [README](resource/global/YoStarKR/readme.md)
-- ZH_CHT Client
- Supports basic features like Combat, Auto Recruiting, Auto Roguelike(beta), Recruitment calculate, etc. See also [README](resource/global/txwy/readme.md)
-
-Due to the small number of overseas clients users and the lack of project manpower, the overseas clients is currently only adapted to basic functions. If you have strong needs, welcome to ask the progress in the [discussions](https://github.com/MaaAssistantArknights/MaaAssistantArknights/discussions), or join us to make MAA better! Please refer to [Overseas Clients Adaptation](#overseas-clients-adaptation)
-
-## Associated Projects
-
-- New GUI: [MaaAsstElectronUI](https://github.com/MaaAssistantArknights/MaaAsstElectronUI) (Development in progress, welcome to join us!)
-- Backend: [MaaBackendCenter](https://github.com/MaaAssistantArknights/MaaBackendCenter) (Development in progress, welcome to join us!)
-- [Co-pilot (auto-battle) site](https://prts.plus):[frontend](https://github.com/MaaAssistantArknights/maa-copilot-frontend)
-- [Website](https://www.maa.plus): [frontend](https://github.com/MaaAssistantArknights/maa-website)
-
-## Acknowledgements
-
-### Open-source Libraries
-
-- Image recognition: [opencv](https://github.com/opencv/opencv.git)
-- ~~OCR: [chineseocr_lite](https://github.com/DayBreak-u/chineseocr_lite.git)~~
-- OCR: [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR)
-- ML Deployment: [FastDeploy](https://github.com/PaddlePaddle/FastDeploy)
-- ML accelerator: [onnxruntime](https://github.com/microsoft/onnxruntime)
-- ~~Item drop recognition: [Penguin Stats recognizer](https://github.com/penguin-statistics/recognizer)~~
-- Map tile recognition: [Arknights-Tile-Pos](https://github.com/yuanyan3060/Arknights-Tile-Pos)
-- C++ JSON library: [meojson](https://github.com/MistEO/meojson.git)
-- C++ operator parser: [calculator](https://github.com/kimwalisch/calculator)
-- ~~C++ Base64 encoding/decoding[cpp-base64](https://github.com/ReneNyffenegger/cpp-base64)~~
-- C++ ZIP library: [zlib](https://github.com/madler/zlib)
-- C++ Gzip library: [gzip-hpp](https://github.com/mapbox/gzip-hpp)
-- Touch event producer for Android: [minitouch](https://github.com/openstf/minitouch)
-- Touch event producer for Android: [MaaTouch](https://github.com/MaaAssistantArknights/MaaTouch)
-- WPF MVVM framework: [Stylet](https://github.com/canton7/Stylet)
-- WPF control library: [HandyControl](https://github.com/HandyOrg/HandyControl)
-- C# JSON library: [Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json)
-- Downloader: [aria2](https://github.com/aria2/aria2)
-
-### Data Source
-
-- ~~Recruitment data: [ArkTools](https://www.bigfun.cn/tools/aktools/hr)~~
-- Operators and infrastructure data: [PRTS Arknights Wiki (Chinese)](http://prts.wiki/)
-- Stage data: [Penguin Stats](https://penguin-stats.io/)
-- Gamedata and resources: [Arknights Bot Resource](https://github.com/yuanyan3060/Arknights-Bot-Resource)
-- Gamedata: [Arknights Game Data](https://github.com/Kengxxiao/ArknightsGameData)
-
-### Contributors
-
-Thanks to all friends who contribute to development/testing for making MAA better! (\*´▽`)ノノ
-
-[](https://github.com/MaaAssistantArknights/MaaAssistantArknights/graphs/contributors)
-
-## Development Related Information
-
-### Windows
-
-- Open `MAA.sln` with Visual Studio 2022. All settings have been configured properly.
-- Switch on the feature of clang-format. Please refer to [Using clang-format in Visual Studio](https://maa.plus/docs/en-us/2.2-DEVELOPMENT.html#using-clang-format-in-visual-studio).
-
-### Linux/MacOS
-
-Please refer to [Linux Tutorial](https://maa.plus/docs/en-us/2.1-LINUX_TUTORIAL.html)
-
-### API
-
-- [C interface](include/AsstCaller.h): [Integration Example](src/Cpp/main.cpp)
-- [Python interface](src/Python/asst/asst.py): [Integration Example](src/Python/sample.py)
-- [Golang interface](src/Golang/): [Integration Example](src/Golang/maa/maa.go)
-- [Dart interface](src/Dart/)
-- [Java interface](src/Java): [Integration Example](src/Java/src/main/java/com/iguigui/maaj/MaaJavaSample.java)
-- [Rust interface](src/Rust/src/maa_sys/): [HTTP API](src/Rust)
-- [HTTP interface](src/Java/Readme.md)
-- [TypeScript interface](https://github.com/MaaAssistantArknights/MaaAsstElectronUI/tree/main/packages/main/coreLoader)
-- [Integration Documentation](https://maa.plus/docs/en-us/3.1-INTEGRATION.html)
-- [Callback Schema](https://maa.plus/docs/en-us/3.2-CALLBACK_SCHEMA.html)
-- [Task Schema](https://maa.plus/docs/en-us/3.4-TASK_SCHEMA.html)
-- [Copilot Schema](https://maa.plus/docs/en-us/3.3-COPILOT_SCHEMA.html)
-
-### Overseas Clients Adaptation
-
-Please refer to [Overseas clients Adaptation](https://maa.plus/docs/en-us/2.5-OVERSEAS_CLIENTS_ADAPTATION.html). For the functions already supported by the CN client, most of the overseas clients adaptation tasks only need screenshots and simple JSON modification.
-
-### For Novice Users of GitHub
-
-[Development](https://maa.plus/docs/en-us/2.2-DEVELOPMENT.html#introduction-to-github-pull-request-flow)
-
-### Issue Bot
-
-- Add labels with `Add {LABEL_NAME}`, and remove with `Remove {LABEL_NAME}`.
-- Add `fixed` tag to the issue with `close #{ISSUE_NUMBER}` or `fix #{ISSUE_NUMBER}` in the comments.
-
-Please refer to [Issue Bot Usage](https://maa.plus/docs/en-us/2.3-ISSUE_BOT_USAGE.html) for more details.
-
-## Disclaimer
-
-- The logo of this software is NOT granted rights under AGPL 3.0 License. [耗毛](https://weibo.com/u/3251357314) and Vie, the two artists and all developers of the software reserves all rights. The logo of the software shall not be used without authorization even if the project has an AGPL 3.0 License. Nor shall the logo be used for commercial purposes without authorization.
-- The software is an open-source, free of charge software only for studying and communication purposes. There is no agreement or understanding between the developers of the software and the 3rd party person who uses this software as an assistant and charges you. In that case, the developers of the software is not responsible for the problems and consequences caused.
-
-## Advertisement
-
-User Group: [Telegram](https://t.me/+Mgc2Zngr-hs3ZjU1), [QQ Group](https://ota.maa.plus/MaaAssistantArknights/api/qqgroup/index.html)
-[Copilot JSON Sharing](https://prts.plus)
-[Bilibili Live](https://live.bilibili.com/2808861): live coding on this program
-[Technical Discussion & Talk(QQ Group)](https://jq.qq.com/?_wv=1027&k=ypbzXcA2)
-[Dev Group(QQ Group)](https://jq.qq.com/?_wv=1027&k=JM9oCk3C)
-
-Please click "Star" if you consider it helpful! Thank you for your support!
diff --git a/README_ja-JP.md b/README_ja-JP.md
deleted file mode 100644
index a86af8312d..0000000000
--- a/README_ja-JP.md
+++ /dev/null
@@ -1,191 +0,0 @@
-
-
-

-
-# MaaAssistantArknights
-
-
-
-

-
-
-

-
-
-
-
-[简体中文](README.md) | [繁體中文](README_zh-TW.md) | [English](README_en-US.md) | [日本語](README_ja-JP.md) | [한국어](README_ko-KR.md)
-
-MAAは、MAA Assistant Arknightsです。
-
-アークナイツゲームアシスタント
-
-画像認識技術に基づいて、ワンクリックですべてのデイリーリクエストを完了します!
-
-絶賛開発中 ✿✿ヽ(°▽°)ノ✿
-
-
-
-## 機能一覧
-
-- 自動作戦、ドロップ認識および[PenguinStats](https://penguin-stats.io/)へデータアップロード
-- 自動基地シフト、オペレーター効率計算、単一設備内に最適なソリューション
-- 自動公開求人、緊急招集票を使う、使い切るのもサポート。[PenguinStats](https://penguin-stats.io/result/stage/recruit/recruit)と[Yituliu](https://yituliu.site/maarecruitdata)へ公開求人データのアップロード
-- 戦友訪問、FP収集、買い物、デイリーリワード収集、ワンクリックして全自動操作!
-- 統合戦略自動作戦、オペレーターとレベルの自動認識、源石錐とキャンドルの自動収集!(現在JPはベータ対応)
-- 作業JSONファイルをインポートし、自動操作も可能! [ビデオデモ](https://www.bilibili.com/video/BV1H841177Fk/)(現在JP未対応/中文)
-- **新機能!倉庫のアイテム認識機能(アルファ)** [Arkplanner](https://penguin-stats.io/planner)/[ARK-NIGHTS.com](https://ark-nights.com/settings)と[アークナイツ ツールボックス](https://arkn.lolicon.app/#/material)へ出力可能!使用方法はツール内文章を参照してください。
-
-UIを見れば使い方もすぐ分かる!
-
-
-
-
-
-## ダウンロードリンク
-
-[安定版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/latest)
-[ベータ版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases)
-
-## マニュアル
-
-### 基本設定
-
-1. [エミュレータのサポート](https://maa.plus/docs/ja-jp/1.3-エミュレータのサポート.html)を参照して、対応するエミュレーターの操作に進んでください。
-2. エミュレータ解像度を `16:9`、`1280 * 720` 以上に変更してください。それより大きい解像度でも大丈夫です。
-3. ゲームスタート!
-
-詳しいマニュアルは[MAA使用説明書](https://maa.plus/docs/ja-jp/1.1-詳細説明.html)を参照してください。
-
-## よくある質問
-
-- 起動する際にソフトウェアがクラッシュする。
-- 接続エラー、adbパスがわからない場合。
-- 認識エラー、またはオペレーション開始した後に反応がない。
-- カスタムポート設定について。
-
-[よくある質問](https://maa.plus/docs/ja-jp/1.2-よくある質問.html)を参照してください。
-
-## サーバーに応じてサポートされる機能
-
-- アメリカサーバー
- 作戦、戦友訪問、FP交換所、レワード収集、統合戦略(ベータ版)、公開求人認識の機能がサポートされている。
- サポート内容については[README](resource/global/YoStarEN/readme.md)を参照してください。
-- 日本サーバー
- 作戦、自動基地、自動公開求人、戦友訪問、FP交換所、レワード収集、統合戦略(ベータ版)、公開求人認識の機能がサポートされている。
- サポート内容については[README](resource/global/YoStarJP/readme.md)を参照してください。
-- 韓国サーバー
- 作戦、戦友訪問、FP交換所、レワード収集、統合戦略(ベータ版)、公開求人認識の機能がサポートされている。
- サポート内容については[README](resource/global/YoStarKR/readme.md)を参照してください。
-- TXWYサーバー
- 基本的な作戦、自動公開求人、統合戦略(ベータ版)、公開求人認識の機能がサポートされている。
- サポート内容については[README](resource/global/txwy/readme.md)を参照してください。
-
-海外サーバーのユーザーが不足しており、基本的な機能しかサポートされていません。要件があれば[提案](https://github.com/MaaAssistantArknights/MaaAssistantArknights/discussions)ページで提案をお願い致します。いっしょにMAAの開発に協力しましょう! Please refer to [Overseas Clients Adaptation](#overseas-clients-adaptation)
-
-## 主な関連プロジェクト
-
-- 新しいGUI:[MaaAsstElectronUI](https://github.com/MaaAssistantArknights/MaaAsstElectronUI) (開発中、貢献歓迎!)
-- バックエンド:[MaaBackendCenter](https://github.com/MaaAssistantArknights/MaaBackendCenter) (開発中、貢献歓迎!)
-- [作業シェアサイト](https://www.prts.plus):[フロントエンド](https://github.com/MaaAssistantArknights/maa-copilot-frontend)
-- [公式ウェブサイト](https://www.maa.plus): [フロントエンド](https://github.com/MaaAssistantArknights/maa-website)
-
-## 謝辞
-
-### オープンソースライブラリ
-
-- 画像認識ライブラリ:[opencv](https://github.com/opencv/opencv.git)
-- ~~テキスト認識ライブラリ:[chineseocr_lite](https://github.com/DayBreak-u/chineseocr_lite.git)~~
-- テキスト認識ライブラリ:[PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR)
-- ML Deployment: [FastDeploy](https://github.com/PaddlePaddle/FastDeploy)
-- ML accelerator: [onnxruntime](https://github.com/microsoft/onnxruntime)
-- ~~ステージドロップ認識:[PenguinStats認識](https://github.com/penguin-statistics/recognizer)~~
-- マップタイル認識:[Arknights-Tile-Pos](https://github.com/yuanyan3060/Arknights-Tile-Pos)
-- C++ JSONライブラリ:[meojson](https://github.com/MistEO/meojson.git)
-- C++ オペレーターパーサー:[calculator](https://github.com/kimwalisch/calculator)
-- ~~C++ base64エンコードとデコード:[cpp-base64](https://github.com/ReneNyffenegger/cpp-base64)~~
-- C++ 圧縮・解凍ライブラリ:[zlib](https://github.com/madler/zlib)
-- C++ Gzipカプセル化ライブラリ:[gzip-hpp](https://github.com/mapbox/gzip-hpp)
-- Android タッチ イベント: [minitouch](https://github.com/openstf/minitouch)
-- Android タッチ イベント: [MaaTouch](https://github.com/MaaAssistantArknights/MaaTouch)
-- WPF MVVWフレームワーク:[Stylet](https://github.com/canton7/Stylet)
-- WPFコントロールライブラリ:[HandyControl](https://github.com/HandyOrg/HandyControl)
-- C# JSONライブラリ:[Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json)
-- ダウンローダー:[aria2](https://github.com/aria2/aria2)
-
-### データソース
-
-- ~~公開求人データ:[アークナイツツール](https://www.bigfun.cn/tools/aktools/hr)~~
-- オペレーターおよび基地データ:[PRTSアークナイツ中国語WIKI](http://prts.wiki/)
-- ステージデータ:[PenguinStatsデータ統計](https://penguin-stats.io/)
-- ゲームのデータとリソース:[アークナイツbotリソース](https://github.com/yuanyan3060/Arknights-Bot-Resource)
-- ゲームデータ:[アークナイツのゲームデータ](https://github.com/Kengxxiao/ArknightsGameData)
-
-### 貢献/協力者
-
-MAAをより良くするために開発・テストに貢献してくれたすべての方々に感謝します! (\*´▽`)ノノ
-
-[](https://github.com/MaaAssistantArknights/MaaAssistantArknights/graphs/contributors)
-
-## 開発について
-
-### Windows
-
-- Visual Studio 2022で `MAA.sln` を開きます。環境がすでに構成されています。
-- clang-formatのサポートを有効にすることをお勧めします。詳細については、[Visual Studioでclang-formatを有効にする](https://maa.plus/docs/ja-jp/2.2-プルリクエスト.html)を参照してください。
-
-### Linux | macOS
-
-[Linuxチュートリアル](https://maa.plus/docs/ja-jp/2.1-Linuxチュートリアル.html)を参照してください。
-
-### API
-
-- [Cインターフェース](include/AsstCaller.h):[統合例](src/Cpp/main.cpp)
-- [Pythonインターフェース](src/Python/asst/asst.py):[統合例](src/Python/sample.py)
-- [Golangインターフェース](src/Golang/):[統合例](src/Golang/maa/maa.go)
-- [Dartインターフェース](src/Dart/)
-- [Javaインターフェース](src/Java/src/main/java/com/iguigui/maaj/easySample/MaaCore.java):[統合例](src/Java/src/main/java/com/iguigui/maaj/easySample/MaaJavaSample.java)
-- [Rustインターフェース](src/Rust/src/maa_sys/):[HTTPインターフェース](src/Rust)
-- [HTTPインターフェース](src/Java/Readme.md)
-- [TypeScriptインターフェース](https://github.com/MaaAssistantArknights/MaaAsstElectronUI/tree/main/packages/main/coreLoader)
-- [統合ドキュメント](https://maa.plus/docs/ja-jp/3.1-統合ドキュメント.html)
-- [コールバックAPI](https://maa.plus/docs/ja-jp/3.2-コールバックAPI.html)
-- [タスクAPI](https://maa.plus/docs/ja-jp/3.4-タスクAPI.html)
-- [自動作戦API](https://maa.plus/docs/ja-jp/3.3-自動作戦API.html)
-
-### Overseas Clients Adaptation
-
-Please refer to [Overseas clients Adaptation](https://maa.plus/docs/ja-jp/2.5-OVERSEAS_CLIENTS_ADAPTATION.html). For the functions already supported by the CN client, most of the overseas clients adaptation tasks only need screenshots and simple JSON modification.
-
-### 開発に参加したいがGitHubの使い方がよくわかりません
-
-[Githubプルリクエストのプロセス](https://maa.plus/docs/ja-jp/2.2-プルリクエスト.html)
-
-### Issue bot
-
-- `Add {LABEL_NAME}`を使用してタグを追加し、`Remove {LABEL_NAME}` を使用してタグを削除できます。
-- `close #{ISSUE_NUMBER}` または `fix #{ISSUE_NUMBER}` を使用してissueに `fixed` タグを追加できます。
-
-詳細については[Issue bot 使用方法](https://maa.plus/docs/ja-jp/2.3-IssueBot使う方.html)を参照してください。
-
-## 免責事項
-
-- 本ソフトウェアのロゴはAGPL 3.0ライセンスを使用しており、オープンソースではなく、[耗毛](https://weibo.com/u/3251357314)とVie、2人のアーティストと開発者がすべての権利を留保しています。「AGPL 3.0ライセンスに基づいて許可されている」という理由で、許可がない場合に本ソフトウェアのロゴを無断で使用することは禁止しております。また、許可なく商業目的で本ソフトウェアのロゴを無断で使用することも禁止しております。
-- 本ソフトウェアはオープンソースで無料であり、学習と研究のみの目的としています。販売者が本ソフトウェアの料金を請求する場合は、デバイスや時間の料金である可能性があります。発生した問題と結果は、本ソフトウェアとは一切関係ありません。
-
-## 広告
-
-
-ユーザー研究グループQQグループ:[QQグループ](https://ota.maa.plus/MaaAssistantArknights/api/qqgroup/index.html)
-ユーザー研究グループTGグループ:[Telegram](https://t.me/+Mgc2Zngr-hs3ZjU1)
-自動作戦JSON作業シェア:[prts.plus](https://prts.plus)
-ビリビリ生放送:[ビリビリ生放送](https://live.bilibili.com/2808861) 毎晩ライブでコーディングします、最近はずっとこのソフトウェアのプログラミングをしていることが多いです。
-
-技術研究(アークナイツ無関係):[インボリューション・ヘル!(QQグループ)](https://jq.qq.com/?_wv=1027&k=ypbzXcA2)
-開発者グループ:[QQグループ](https://jq.qq.com/?_wv=1027&k=JM9oCk3C)
-
-ソフトウェアが役立つと思うなら、Star(ページの右上隅にある星)をクリックしてください。私たちにとって最高のサポートです!
diff --git a/README_ko-KR.md b/README_ko-KR.md
deleted file mode 100644
index afc97302d0..0000000000
--- a/README_ko-KR.md
+++ /dev/null
@@ -1,189 +0,0 @@
-
-
-

-
-# MaaAssistantArknights
-
-
-
-

-
-
-

-
-
-
-
-[简体中文](README.md) | [繁體中文](README_zh-TW.md) | [English](README_en-US.md) | [日本語](README_ja-JP.md) | [한국어](README_ko-KR.md)
-
-MAA는 MAA Assistant Arknights의 약자입니다
-
-명일방주 어시스턴트
-
-이미지 인식을 기반으로, 한 번의 클릭만으로 그날의 모든 작업을 끝내드립니다!
-
-개발 진행 중입니다 ✿✿ヽ(°▽°)ノ✿
-
-
-
-## 개요
-
-- 자동 전투, 아이템 드랍 인식, [펭귄 물류](https://penguin-stats.io/)로의 자동 업로드
-- 기반시설 자동 배치, 오퍼레이터 효율과 시설 내 최적 배치방안 자동 계산
-- 자동 공개모집과 선택적 즉시 모집, [펭귄 물류](https://penguin-stats.io/result/stage/recruit/recruit)와 [Yituliu](https://yituliu.site/maarecruitdata)로의 자동 업로드
-- 친구 방문, 크레딧 획득과 아이템 구매, 일일 임무와 보상까지 한 번에!
-- 통합전략에서의 오리지늄각뿔과 양초 획득을 위한 자동 전투, 오퍼레이터와 레벨의 자동 인식
-- 전투 JSON 파일을 통한 자동 전투용 전략 복사! [영상 데모](https://www.bilibili.com/video/BV1H841177Fk/)
-- 새로운 기능: 창고 인식! [펭귄 물류 ArkPlanner](https://penguin-stats.cn/planner), [arkn.lolicon.app](https://arkn.lolicon.app/#/material)과 [ark-nights.com](https://ark-nights.com/settings)로의 내보내기 지원
-
-말로만 설명하기보다는 사진으로 보여드리겠습니다!
-
-
-
-
-## 다운로드
-
-[안정 버전](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/latest)
-[베타 버전](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases)
-
-## 사용 방법
-
-### 기본 설정
-
-1. [에뮬레이터 지원](https://maa.plus/docs/ko-kr/1.3-에뮬레이터_지원.html) 문서를 참고하여 에뮬레이터/기기를 설정해 주세요.
-2. 에뮬레이터/기기의 해상도를 `1280 × 720` 또는 그 이상의 `16:9` 비율인 해상도로 맞춰주세요.
-3. 어시스턴트 시작!
-
-자세한 내용은 [사용자 설명서](https://maa.plus/docs/ko-kr/1.1-사용자_설명서.html)를 참조해 주세요.
-
-## FAQ
-
-- 프로그램이 실행하자마자 곧바로 튕겨요
-- 연결 오류가 발생해요/ADB 경로를 어떻게 작성해야 하는지 모르겠어요
-- 연결은 성공했는데, 그대로 멈춰 버렸어요
-- 연결 설정(포트 등)을 바꾸고 싶어요
-- 다운로드 속도가 너무 느려요/미러 사이트가 접속이 안 돼요
-- 다운로드 도중에 “로그인”이나 “인증”이라는 메시지가 떠요
-
-[FAQ](https://maa.plus/docs/ko-kr/1.2-FAQ.html) 문서를 참조해 주세요.
-
-## 해외 서버 지원
-
-- 글로벌 서버
- 작전, 크레딧 상점, 친구 방문, 임무 보상 수령, 자동 통합전략(베타), 공개모집 계산 등을 지원합니다.
- 자세한 내용은 [문서](resource/global/YoStarEN/readme.md)를 참조해 주세요.
-- 일본 서버
- 작전, 기반시설 관리, 크레딧 상점, 친구 방문, 임무 보상 수령, 자동 통합전략(베타), 공개모집 계산 등을 지원합니다.
- 자세한 내용은 [문서](resource/global/YoStarJP/readme.md)를 참조해 주세요.
-- 한국 서버
- 작전, 크레딧 상점, 친구 방문, 임무 보상 수령, 자동 통합전략(베타), 공개모집 계산 등을 지원합니다.
- 자세한 내용은 [문서](resource/global/YoStarKR/readme.md)를 참조해 주세요.
-- 중국어 번체 서버
- 작전, 공개모집, 자동 통합전략(베타), 공개모집 계산 등을 지원합니다.
- 자세한 내용은 [문서](resource/global/txwy/readme.md)를 참조해 주세요.
-
-해외 서버의 플레이어가 적고 프로젝트의 인력이 부족하기 때문에 해외 서버들의 경우에는 기본적인 기능만이 갖추어져 있습니다. 필요한 것이 있다면 [토의](https://github.com/MaaAssistantArknights/MaaAssistantArknights/discussions)에 참가하거나 직접 MAA의 개선에 함께해주세요! [해외 클라이언트 현지화](https://maa.plus/docs/ko-kr/2.5-해외_클라이언트_현지화.html) 문서도 참고해 주세요.
-
-## 관련 프로젝트
-
-- 새 GUI:[MaaAsstElectronUI](https://github.com/MaaAssistantArknights/MaaAsstElectronUI) (현재 개발 중입니다. 도움은 환영합니다!)
-- 백엔드: [MaaBackendCenter](https://github.com/MaaAssistantArknights/MaaBackendCenter) (현재 개발 중입니다. 도움은 환영합니다!)
-- [전략 파일 저장소](https://prts.plus):[프론트엔드](https://github.com/MaaAssistantArknights/maa-copilot-frontend)
-- [공식 웹사이트](https://maa.plus):[프론트엔드](https://github.com/MaaAssistantArknights/maa-website)
-
-## 감사의 말
-
-### 오픈소스 라이브러리
-
-- 이미지 인식: [opencv](https://github.com/opencv/opencv.git)
-- ~~글자 인식: [chineseocr_lite](https://github.com/DayBreak-u/chineseocr_lite.git)~~
-- 글자 인식: [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR)
-- ML Deployment: [FastDeploy](https://github.com/PaddlePaddle/FastDeploy)
-- ML accelerator: [onnxruntime](https://github.com/microsoft/onnxruntime)
-- ~~아이템 드랍 인식: [Penguin Stats recognizer](https://github.com/penguin-statistics/recognizer)~~
-- 맵 타일 인식: [Arknights-Tile-Pos](https://github.com/yuanyan3060/Arknights-Tile-Pos)
-- C++ JSON 라이브러리: [meojson](https://github.com/MistEO/meojson.git)
-- C++ 오퍼레이터 파서: [calculator](https://github.com/kimwalisch/calculator)
-- ~~C++ Base64 인코딩/디코딩: [cpp-base64](https://github.com/ReneNyffenegger/cpp-base64)~~
-- C++ ZIP 라이브러리: [zlib](https://github.com/madler/zlib)
-- C++ Gzip 라이브러리: [gzip-hpp](https://github.com/mapbox/gzip-hpp)
-- 안드로이드 터치 이벤트 구현: [minitouch](https://github.com/openstf/minitouch)
-- 안드로이드 터치 이벤트 구현: [MaaTouch](https://github.com/MaaAssistantArknights/MaaTouch)
-- WPF MVVM 프레임워크: [Stylet](https://github.com/canton7/Stylet)
-- WPF 조작 라이브러리: [HandyControl](https://github.com/HandyOrg/HandyControl)
-- C# JSON 라이브러리: [Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json)
-- 다운로더: [aria2](https://github.com/aria2/aria2)
-
-### 데이터 소스
-
-- ~~공개모집 데이터: [ArkTools](https://www.bigfun.cn/tools/aktools/hr)~~
-- 오퍼레이터/기반시설 데이터: [PRTS Arknights Wiki (Chinese)](http://prts.wiki/)
-- 스테이지 데이터: [Penguin Stats](https://penguin-stats.io/)
-- 게임 데이터/리소스: [Arknights Bot Resource](https://github.com/yuanyan3060/Arknights-Bot-Resource)
-- 게임 데이터: [Arknights Game Data](https://github.com/Kengxxiao/ArknightsGameData)
-
-### 기여자
-
-MAA의 개선을 위한 개발/테스트에 기여해준 모든 친구들에게 감사드립니다! (\*´▽`)ノノ
-
-[](https://github.com/MaaAssistantArknights/MaaAssistantArknights/graphs/contributors)
-
-## 개발 관련 정보
-
-### Windows
-
-- `MAA.sln`를 Visual Studio 2022로 열어주세요. 모든 설정이 제대로 구성되어 있습니다.
-- clang-format 기능을 활성화해 주세요. 자세한 내용은 [개발](https://maa.plus/docs/ko-kr/2.2-개발.html) 문서의 [Visual Studio에서 clang-format 활성화](https://maa.plus/docs/ko-kr/2.2-개발.html#visual-studio에서-clang-format-활성화) 문단을 참조해 주세요.
-
-### Linux/MacOS
-
-[Linux_튜토리얼](https://maa.plus/docs/ko-kr/2.1-Linux_튜토리얼.html) 문서를 참조해 주세요.
-
-### API
-
-- [C 인터페이스](include/AsstCaller.h): [통합 예시](src/Cpp/main.cpp)
-- [Python 인터페이스](src/Python/asst/asst.py): [통합 예시](src/Python/sample.py)
-- [Golang 인터페이스](src/Golang/): [통합 예시](src/Golang/maa/maa.go)
-- [Dart 인터페이스](src/Dart/)
-- [Java 인터페이스](src/Java): [통합 예시](src/Java/src/main/java/com/iguigui/maaj/MaaJavaSample.java)
-- [Rust 인터페이스](src/Rust/src/maa_sys/): [HTTP 인터페이스](src/Rust)
-- [HTTP 인터페이스](src/Java/Readme.md)
-- [TypeScript 인터페이스](https://github.com/MaaAssistantArknights/MaaAsstElectronUI/tree/main/packages/main/coreLoader)
-- [통합](https://maa.plus/docs/ko-kr/3.1-통합.html)
-- [콜백 형식](https://maa.plus/docs/ko-kr/3.2-콜백_형식.html)
-- [임무 형식](https://maa.plus/docs/ko-kr/3.4-임무_형식.html)
-- [전략 형식](https://maa.plus/docs/ko-kr/3.3-전략_형식.html)
-
-### 해외 클라이언트 현지화
-
-[해외 클라이언트 현지화](https://maa.plus/docs/ko-kr/2.5-해외_클라이언트_현지화.html) 문서를 참고하세요. 대부분의 경우 CN 서버에서 이미 지원하는 기능들은 스크린샷과 간단한 JSON 파일 조작만으로도 타 서버에서 사용 가능합니다.
-
-### GitHub에 익숙치 않은 사용자용 가이드
-
-[개발](https://maa.plus/docs/ko-kr/2.2-개발.html) 문서의 [GitHub Pull Request에 대한 설명](https://maa.plus/docs/ko-kr/2.2-개발.html#github-pull-request에-대한-설명) 문단을 참조해 주세요.
-
-### Issue Bot
-
-- `Add {LABEL_NAME}`로 레이블을 추가하고, `Remove {LABEL_NAME}`로 제거하세요.
-- 커밋에서 `close #{ISSUE_NUMBER}` 또는 `fix #{ISSUE_NUMBER}`로 `fixed` 태그를 이슈에 추가하세요.
-
-자세한 내용은 [Issue Bot 사용방법](https://maa.plus/docs/ko-kr/2.3-IssueBot사용방법.html)을 참조해 주세요.
-
-## 주의사항
-
-- 이 프로그램의 로고는 AGPL 3.0 라이센스의 적용 대상이 아닙니다. [耗毛](https://weibo.com/u/3251357314)와 Vie 두 명의 아티스트와 프로그램의 개발자들이 모든 권리를 가집니다. 프로젝트가 AGPL 3.0 라이센스 하에 있다고 하더라도 프로그램의 로고는 동의 없이 사용되어서는 안 되며, 동의 없는 상업적 이용 또한 금지됩니다.
-- 이 프로그램은 오픈소스이자 무료이며 학습 및 커뮤니케이션 전용입니다. 이 프로그램을 이용해 장비값이나 시간당 수수료 등을 대가로 서비스를 제공하는 판매자로 인해 발생하는 문제와 결과는 프로그램의 개발자들에게는 책임이 없습니다.
-
-## 광고
-
-사용자 그룹:[Telegram](https://t.me/+Mgc2Zngr-hs3ZjU1), [QQ 그룹](https://ota.maa.plus/MaaAssistantArknights/api/qqgroup/index.html)
-[전략 JSON 공유](https://prts.plus)
-[빌리빌리 라이브](https://live.bilibili.com/2808861): 코딩 과정을 밤마다 방송하고 있습니다. 이 프로그램에 대부분의 시간을 할애하고 있습니다.
-[명일방주 무관 기술 공유 & 만담 (QQ 그룹)](https://jq.qq.com/?_wv=1027&k=ypbzXcA2): 지옥 같아요!
-[개발자 그룹 (QQ 그룹)](https://jq.qq.com/?_wv=1027&k=JM9oCk3C)
-
-프로그램이 도움이 된다고 생각하시면 Star를 눌러주세요! (페이지 우측 상단의 작은 별) 저희에게 가장 큰 도움이 됩니다!
diff --git a/README_zh-TW.md b/README_zh-TW.md
deleted file mode 100644
index c4825e2ac1..0000000000
--- a/README_zh-TW.md
+++ /dev/null
@@ -1,188 +0,0 @@
-
-
-

-
-# MaaAssistantArknights
-
-
-
-

-
-
-

-
-
-
-
-[简体中文](README.md) | [繁體中文](README_zh-TW.md) | [English](README_en-US.md) | [日本語](README_ja-JP.md) | [한국어](README_ko-KR.md)
-
-MAA 的意思是 MAA Assistant Arknights
-
-一款明日方舟遊戲小助手
-
-基於圖像辨識技術,一鍵完成全部日常任務!
-
-絕讚更新中 ✿✿ヽ(°▽°)ノ✿
-
-
-
-## 亮點功能
-
-- 刷理智,掉落辨識及上傳 [企鵝物流](https://penguin-stats.cn/)
-- 智能基建換班,自動計算幹員效率,單設施內最優解
-- 自動公招,可選使用加急許可,一次全部刷完!公招数据上傳 [企鵝物流](https://penguin-stats.cn/result/stage/recruit/recruit),[一圖流](https://yituliu.site/maarecruitdata)
-- 訪問好友、收取信用及購物、領取日常獎勵等。一鍵全日常自動長草!
-- 肉鴿全自動刷源石錠和蠟燭,自動辨識幹員及練度
-- 導入作業 JSON 檔案,自動抄作業! [影片演示](https://www.bilibili.com/video/BV1H841177Fk/)
-- 新功能:倉庫辨識!支援導出至 [企鵝物流刷圖規劃器](https://penguin-stats.cn/planner), [明日方舟工具箱](https://arkn.lolicon.app/#/material), [ARK-NIGHTS 幹員培養表](https://ark-nights.com/settings)
-
-話不多說,看圖!
-
-
-
-
-
-## 下載連結
-
-[穩定版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/latest)
-[開發版](https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases)
-
-## 使用說明
-
-### 基本說明
-
-1. 請根据 [模擬器支援情況](https://maa.plus/docs/zh-tw/1.3-模擬器支援.html),進行對應的操作。
-2. 修改模擬器解析度為 `16:9` 比例,最低 `1280 * 720`, 更高不限。
-3. 開始使用吧!
-
-更多使用說明請參考 [詳細介紹](https://maa.plus/docs/zh-tw/1.1-詳細介紹.html)
-
-## 常見問題
-
-- 軟體一打開就閃退
-- 連接錯誤、不知道 adb 路徑怎麼填寫
-- 辨識錯誤/任務開始後一直不動、沒有反應
-- 如何連接自定義通訊埠
-- 下載速度慢,且鏡像站無法打開網頁
-- 下載到一半提示“登陸”/“鑑權”
-
-請參考 [常見問題](https://maa.plus/docs/zh-tw/1.2-常見問題.html)
-
-## 外服支援
-
-- 國際服(美服)
- 支援基本的刷理智、信用購物、訪問好友、領取獎勵、自動肉鴿(測試版本)、公招辨識,請參考 [說明](resource/global/YoStarEN/readme.md)
-- 日服
- 支援基本的刷理智、自動基建、信用購物、自動公招、訪問好友、領取獎勵、自動肉鴿(測試版本)、公招辨識,請參考 [說明](resource/global/YoStarJP/readme.md)
-- 韓服
- 支援基本的刷理智、信用購物、訪問好友、領取獎勵、自動肉鴿(測試版本)、公招辨識,請參考 [說明](resource/global/YoStarKR/readme.md)
-- 繁中服
- 支援基本的刷理智、自動公招、自動肉鴿、領取日常、公招辨識功能,請參考 [說明](resource/global/txwy/readme.md)
-
-由於外服使用者較少及項目人手不足的問題,外服目前都僅適配了基本的功能。若您有強需求,歡迎在 [討論區](https://github.com/MaaAssistantArknights/MaaAssistantArknights/discussions) 催更,或加入我们一起建设 MAA!请参考 [外服适配教程](#外服適配)
-
-## 主要關聯項目
-
-- 全新 GUI:[MaaAsstElectronUI](https://github.com/MaaAssistantArknights/MaaAsstElectronUI) (正在開發中,歡迎加入!)
-- 後端:[MaaBackendCenter](https://github.com/MaaAssistantArknights/MaaBackendCenter) (正在開發中,歡迎加入!)
-- [作業站](https://prts.plus):[前端](https://github.com/MaaAssistantArknights/maa-copilot-frontend)
-- [官網](https://maa.plus):[前端](https://github.com/MaaAssistantArknights/maa-website)
-
-## 致謝
-
-### 開源庫
-
-- 圖像辨識庫:[opencv](https://github.com/opencv/opencv.git)
-- ~~字元辨識庫:[chineseocr_lite](https://github.com/DayBreak-u/chineseocr_lite.git)~~
-- 字元辨識庫:[PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR)
-- 深度學習部署庫:[FastDeploy](https://github.com/PaddlePaddle/FastDeploy)
-- 機器學習加速器:[onnxruntime](https://github.com/microsoft/onnxruntime)
-- ~~關卡掉落辨識:[企鵝物流辨識](https://github.com/penguin-statistics/recognizer)~~
-- 地圖格子辨識:[Arknights-Tile-Pos](https://github.com/yuanyan3060/Arknights-Tile-Pos)
-- C++ JSON庫:[meojson](https://github.com/MistEO/meojson.git)
-- C++ 算子分析器:[calculator](https://github.com/kimwalisch/calculator)
-- ~~C++ base64編解碼:[cpp-base64](https://github.com/ReneNyffenegger/cpp-base64)~~
-- C++ 解壓壓縮庫:[zlib](https://github.com/madler/zlib)
-- C++ Gzip封裝:[gzip-hpp](https://github.com/mapbox/gzip-hpp)
-- 安卓觸控事件器:[minitouch](https://github.com/openstf/minitouch)
-- 安卓觸控事件器:[MaaTouch](https://github.com/MaaAssistantArknights/MaaTouch)
-- WPF MVVM框架:[Stylet](https://github.com/canton7/Stylet)
-- WPF部件庫:[HandyControl](https://github.com/HandyOrg/HandyControl)
-- C# JSON庫:[Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json)
-- 下載器:[aria2](https://github.com/aria2/aria2)
-
-### 資料源
-
-- ~~公開招募資料:[明日方舟工具箱](https://www.bigfun.cn/tools/aktools/hr)~~
-- 幹員及基建資料:[PRTS明日方舟中文WIKI](http://prts.wiki/)
-- 關卡資料:[企鵝物流資料統計](https://penguin-stats.cn/)
-- 遊戲數據及資源:[明日方舟bot常用素材](https://github.com/yuanyan3060/Arknights-Bot-Resource)
-- 遊戲數據:[《明日方舟》游戏数据](https://github.com/Kengxxiao/ArknightsGameData)
-
-### 貢獻/參與者
-
-感謝所有參與到開發/測試中的朋友們,是大家的幫助讓 MAA 越來越好! (\*´▽`)ノノ
-
-[](https://github.com/MaaAssistantArknights/MaaAssistantArknights/graphs/contributors)
-
-## 開發相關
-
-### Windows
-
-- 直接使用 Visual Studio 2022 打開 `MAA.sln` 即可,所有環境都是配置好的
-- 建議啟用 clang-format 支援,詳細內容可以參考 [在 Visual Studio 中啟用 clang-format](https://maa.plus/docs/zh-tw/2.2-開發相關.html#在-visual-studio-中启用-clang-format)
-
-### Linux | macOS
-
-請參考 [Linux 編譯教程](https://maa.plus/docs/zh-tw/2.1-Linux編譯教程.html)
-
-### API
-
-- [C 介面](include/AsstCaller.h):[整合示例](src/Cpp/main.cpp)
-- [Python 介面](src/Python/asst/asst.py):[整合示例](src/Python/sample.py)
-- [Golang 介面](src/Golang/):[整合示例](src/Golang/maa/maa.go)
-- [Dart 介面](src/Dart/)
-- [Java 介面](src/Java/src/main/java/com/iguigui/maaj/easySample/MaaCore.java):[整合示例](src/Java/src/main/java/com/iguigui/maaj/easySample/MaaJavaSample.java)
-- [Rust 介面](src/Rust/src/maa_sys/):[HTTP 介面](src/Rust)
-- [HTTP 介面](src/Java/Readme.md)
-- [TypeScript 介面](https://github.com/MaaAssistantArknights/MaaAsstElectronUI/tree/main/packages/main/coreLoader)
-- [整合文件](https://maa.plus/docs/zh-tw/3.1-集成文件.html)
-- [回呼訊息協定](https://maa.plus/docs/zh-tw/3.2-回呼訊息協定.html)
-- [任務流程協定](https://maa.plus/docs/zh-tw/3.4-任務流程協定.html)
-- [自動抄作業協定](https://maa.plus/docs/zh-tw/3.3-戰鬥流程協定.html)
-
-### 外服適配
-
-請參考 [外服適配教程](https://maa.plus/docs/zh-tw/2.5-外服適配教程.html),對於國服已支持的功能,絕大部分的外服適配工作僅需要截圖 + 簡單的 JSON 修改即可。
-
-### 想參與開發,但不太會用 Github?
-
-[Github Pull Request 流程簡述](https://maa.plus/docs/zh-tw/2.2-開發相關.html)
-
-### Issue Bot
-
-- 使用 `Add {LABEL_NAME}` 增加標籤,使用 `Remove {LABEL_NAME}` 刪除標籤。
-- 在提交說明中用 `close #{ISSUE_NUMBER}` 或 `fix #{ISSUE_NUMBER}` 給對應議題增加 `fixed` 標籤。
-
-更多說明請參考 [Issue Bot 使用方法](https://maa.plus/docs/zh-tw/2.3-IssueBot使用方法.html)。
-
-## 聲明
-
-- 本軟體 logo 並非使用 AGPL 3.0 條款開源,[耗毛](https://weibo.com/u/3251357314)、Vie 兩位畫師以及軟體全體開發者保留所有權利。不得以 AGPL 3.0 條款已授權為由在未經授權的情況下使用本軟體 logo, 不得在未經授權的情況下將本軟體 logo 用於任何商業用途。
-- 本軟體開源、免費,僅供學習交流使用。若您遇到商家使用本軟體進行代練並收費,可能是設備與時間等費用,產生的問題及後果與本軟件無關。
-
-## 廣告
-
-用戶交流QQ群:[MAA使用 & 舟遊交流群](https://ota.maa.plus/MaaAssistantArknights/api/qqgroup/index.html)
-用戶交流TG群:[Telegram 群](https://t.me/+Mgc2Zngr-hs3ZjU1)
-自動戰鬥 JSON 作業分享:[prts.plus](https://prts.plus)
-Bilibili 直播間:[直播間](https://live.bilibili.com/2808861) 每晚直播敲代碼,近期很長一段時間應該都是在寫本軟體~
-
-技術交流群(舟無關):[內捲地獄!(QQ 群)](https://jq.qq.com/?_wv=1027&k=ypbzXcA2)
-開發者群:[QQ 群](https://jq.qq.com/?_wv=1027&k=JM9oCk3C)
-
-如果覺得軟體對你有幫助,幫忙點個 Star 吧!~(網頁最上方右上角的小星星),這就是對我們最大的支持了!
diff --git a/docs/glossary/items.md b/docs/glossary/items.md
index 30245962f0..8c8e2f7a9d 100644
--- a/docs/glossary/items.md
+++ b/docs/glossary/items.md
@@ -85,6 +85,8 @@ D32钢|D32 Steel|D32鋼|D32강
传承信物|Rare Token|★4○○の印|레어 증표
遗产信物|Epic Token|★5○○の印|에픽 증표
皇家信物|Royal Token|★6○○の印|로열 증표
+||★6印交換券|
+
中文|English|日本語|한국어
---|---|---|---
diff --git a/resource/Arknights-Tile-Pos/.clang-format b/resource/Arknights-Tile-Pos/.clang-format
deleted file mode 100644
index 01d0321393..0000000000
--- a/resource/Arknights-Tile-Pos/.clang-format
+++ /dev/null
@@ -1,3 +0,0 @@
-Language: Json
-ColumnLimit: 1000
-IndentWidth: 2
diff --git a/resource/Arknights-Tile-Pos/act16side_01-activities-act16side-level_act16side_01.json b/resource/Arknights-Tile-Pos/act16side_01-activities-act16side-level_act16side_01.json
new file mode 100644
index 0000000000..870c26526b
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/act16side_01-activities-act16side-level_act16side_01.json
@@ -0,0 +1,526 @@
+{
+ "code": "GA-1",
+ "height": 7,
+ "levelId": "activities/act16side/level_act16side_01",
+ "name": "灯下黑",
+ "stageId": "act16side_01",
+ "tiles": [
+ [
+ {
+ "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": 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": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_telout"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 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": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.6,
+ -8.9
+ ],
+ [
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
+ ]
+ ],
+ "width": 10
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act16side_02-activities-act16side-level_act16side_02.json b/resource/Arknights-Tile-Pos/act16side_02-activities-act16side-level_act16side_02.json
new file mode 100644
index 0000000000..c7eae2af3e
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/act16side_02-activities-act16side-level_act16side_02.json
@@ -0,0 +1,575 @@
+{
+ "code": "GA-2",
+ "height": 7,
+ "levelId": "activities/act16side/level_act16side_02",
+ "name": "散步时光",
+ "stageId": "act16side_02",
+ "tiles": [
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 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": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "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_fence"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 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_fence"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 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": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.6,
+ -8.9
+ ],
+ [
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
+ ]
+ ],
+ "width": 11
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act16side_03-activities-act16side-level_act16side_03.json b/resource/Arknights-Tile-Pos/act16side_03-activities-act16side-level_act16side_03.json
new file mode 100644
index 0000000000..74ac5a5540
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/act16side_03-activities-act16side-level_act16side_03.json
@@ -0,0 +1,575 @@
+{
+ "code": "GA-3",
+ "height": 7,
+ "levelId": "activities/act16side/level_act16side_03",
+ "name": "混血儿",
+ "stageId": "act16side_03",
+ "tiles": [
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 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": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 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": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 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": 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": 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": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.6,
+ -8.9
+ ],
+ [
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
+ ]
+ ],
+ "width": 11
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act16side_04-activities-act16side-level_act16side_04.json b/resource/Arknights-Tile-Pos/act16side_04-activities-act16side-level_act16side_04.json
new file mode 100644
index 0000000000..1c60638177
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/act16side_04-activities-act16side-level_act16side_04.json
@@ -0,0 +1,526 @@
+{
+ "code": "GA-4",
+ "height": 7,
+ "levelId": "activities/act16side/level_act16side_04",
+ "name": "安魂教堂",
+ "stageId": "act16side_04",
+ "tiles": [
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_telin"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 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": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_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": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_fence"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 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_telout"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.6,
+ -8.9
+ ],
+ [
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
+ ]
+ ],
+ "width": 10
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act16side_05-activities-act16side-level_act16side_05.json b/resource/Arknights-Tile-Pos/act16side_05-activities-act16side-level_act16side_05.json
new file mode 100644
index 0000000000..4fbc592789
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/act16side_05-activities-act16side-level_act16side_05.json
@@ -0,0 +1,624 @@
+{
+ "code": "GA-5",
+ "height": 7,
+ "levelId": "activities/act16side/level_act16side_05",
+ "name": "葬礼",
+ "stageId": "act16side_05",
+ "tiles": [
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 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": 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": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_fence"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_fence"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": 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": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_fence"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_fence"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_fence"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.6,
+ -8.9
+ ],
+ [
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
+ ]
+ ],
+ "width": 12
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act16side_06-activities-act16side-level_act16side_06.json b/resource/Arknights-Tile-Pos/act16side_06-activities-act16side-level_act16side_06.json
new file mode 100644
index 0000000000..7a38b87d95
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/act16side_06-activities-act16side-level_act16side_06.json
@@ -0,0 +1,654 @@
+{
+ "code": "GA-6",
+ "height": 8,
+ "levelId": "activities/act16side/level_act16side_06",
+ "name": "安魂曲",
+ "stageId": "act16side_06",
+ "tiles": [
+ [
+ {
+ "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": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 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": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 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": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 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": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 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_telout"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.6,
+ -8.9
+ ],
+ [
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
+ ]
+ ],
+ "width": 11
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act2bossrush_02-activities-act2bossrush-level_bossrush2_02.json b/resource/Arknights-Tile-Pos/act16side_07-activities-act16side-level_act16side_07.json
similarity index 57%
rename from resource/Arknights-Tile-Pos/act2bossrush_02-activities-act2bossrush-level_bossrush2_02.json
rename to resource/Arknights-Tile-Pos/act16side_07-activities-act16side-level_act16side_07.json
index bb4a3dc35e..0d2f075002 100644
--- a/resource/Arknights-Tile-Pos/act2bossrush_02-activities-act2bossrush-level_bossrush2_02.json
+++ b/resource/Arknights-Tile-Pos/act16side_07-activities-act16side-level_act16side_07.json
@@ -1,9 +1,9 @@
{
- "code": "TN-2",
+ "code": "GA-7",
"height": 8,
- "levelId": "activities/act2bossrush/level_bossrush2_02",
- "name": "大块头和小不点",
- "stageId": "act2bossrush_02",
+ "levelId": "activities/act16side/level_act16side_07",
+ "name": "光与影",
+ "stageId": "act16side_07",
"tiles": [
[
{
@@ -13,814 +13,6 @@
"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_flystart"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_telout"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_flystart"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_telout"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_flystart"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": true,
- "tileKey": "tile_start"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_flystart"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- }
- ],
- [
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": true,
- "tileKey": "tile_start"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": true,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": true,
- "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_telin"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": true,
- "tileKey": "tile_start"
- }
- ],
- [
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_fence"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_telin"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_telin"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": true,
- "tileKey": "tile_start"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": true,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": 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": 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": true,
- "tileKey": "tile_flystart"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_fence"
- },
- {
- "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": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 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"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 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": true,
- "tileKey": "tile_flystart"
- },
- {
- "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": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- }
- ],
- [
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_telin"
- },
- {
- "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,
@@ -830,52 +22,52 @@
},
{
"buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
- "tileKey": "tile_wall"
+ "tileKey": "tile_forbidden"
},
{
"buildableType": 0,
- "heightType": 0,
+ "heightType": 1,
"isEnd": false,
"isStart": false,
- "tileKey": "tile_floor"
+ "tileKey": "tile_forbidden"
},
{
"buildableType": 0,
- "heightType": 0,
+ "heightType": 1,
"isEnd": false,
"isStart": false,
- "tileKey": "tile_floor"
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
},
{
"buildableType": 0,
@@ -907,6 +99,85 @@
"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": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_telout"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_telin"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
{
"buildableType": 0,
"heightType": 1,
@@ -936,32 +207,11 @@
"tileKey": "tile_road"
},
{
- "buildableType": 0,
+ "buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
+ "tileKey": "tile_road"
},
{
"buildableType": 1,
@@ -970,13 +220,6 @@
"isStart": false,
"tileKey": "tile_road"
},
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": true,
- "isStart": false,
- "tileKey": "tile_end"
- },
{
"buildableType": 1,
"heightType": 0,
@@ -985,25 +228,11 @@
"tileKey": "tile_road"
},
{
- "buildableType": 0,
+ "buildableType": 1,
"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"
+ "tileKey": "tile_road"
},
{
"buildableType": 0,
@@ -1013,39 +242,25 @@
"tileKey": "tile_forbidden"
},
{
- "buildableType": 2,
+ "buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
+ "tileKey": "tile_forbidden"
},
{
"buildableType": 1,
"heightType": 0,
"isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
+ "isStart": true,
"tileKey": "tile_road"
},
{
"buildableType": 0,
- "heightType": 0,
- "isEnd": true,
+ "heightType": 1,
+ "isEnd": false,
"isStart": false,
- "tileKey": "tile_end"
+ "tileKey": "tile_forbidden"
}
],
[
@@ -1084,12 +299,212 @@
"isStart": false,
"tileKey": "tile_forbidden"
},
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
{
"buildableType": 0,
"heightType": 1,
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_telin"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 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": 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,
@@ -1098,6 +513,15 @@
"isStart": false,
"tileKey": "tile_telout"
},
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
{
"buildableType": 0,
"heightType": 1,
@@ -1110,8 +534,80 @@
"heightType": 0,
"isEnd": false,
"isStart": false,
- "tileKey": "tile_telout"
+ "tileKey": "tile_floor"
},
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
{
"buildableType": 0,
"heightType": 1,
@@ -1200,15 +696,15 @@
],
"view": [
[
- -4.5,
- -6.1,
- -9.76
+ 0.0,
+ -5.6,
+ -8.9
],
[
- -3.6,
- -6.6,
- -10.66
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
]
],
- "width": 21
-}
+ "width": 12
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act16side_08-activities-act16side-level_act16side_08.json b/resource/Arknights-Tile-Pos/act16side_08-activities-act16side-level_act16side_08.json
new file mode 100644
index 0000000000..3657e2f01e
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/act16side_08-activities-act16side-level_act16side_08.json
@@ -0,0 +1,654 @@
+{
+ "code": "GA-8",
+ "height": 8,
+ "levelId": "activities/act16side/level_act16side_08",
+ "name": "影与灰",
+ "stageId": "act16side_08",
+ "tiles": [
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 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": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_telout"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 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": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 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_telout"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_telin"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.6,
+ -8.9
+ ],
+ [
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
+ ]
+ ],
+ "width": 11
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act16side_ex01#f#-activities-act16side-level_act16side_ex01.json b/resource/Arknights-Tile-Pos/act16side_ex01#f#-activities-act16side-level_act16side_ex01.json
new file mode 100644
index 0000000000..e3a88988ec
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/act16side_ex01#f#-activities-act16side-level_act16side_ex01.json
@@ -0,0 +1,654 @@
+{
+ "code": "GA-EX-1",
+ "height": 8,
+ "levelId": "activities/act16side/level_act16side_ex01",
+ "name": "巧克力曲奇",
+ "stageId": "act16side_ex01#f#",
+ "tiles": [
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 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": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 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": 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": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 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": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 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": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.6,
+ -8.9
+ ],
+ [
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
+ ]
+ ],
+ "width": 11
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act16side_ex01-activities-act16side-level_act16side_ex01.json b/resource/Arknights-Tile-Pos/act16side_ex01-activities-act16side-level_act16side_ex01.json
new file mode 100644
index 0000000000..d4636c882b
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/act16side_ex01-activities-act16side-level_act16side_ex01.json
@@ -0,0 +1,654 @@
+{
+ "code": "GA-EX-1",
+ "height": 8,
+ "levelId": "activities/act16side/level_act16side_ex01",
+ "name": "巧克力曲奇",
+ "stageId": "act16side_ex01",
+ "tiles": [
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 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": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 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": 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": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 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": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 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": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.6,
+ -8.9
+ ],
+ [
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
+ ]
+ ],
+ "width": 11
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act16side_ex02#f#-activities-act16side-level_act16side_ex02.json b/resource/Arknights-Tile-Pos/act16side_ex02#f#-activities-act16side-level_act16side_ex02.json
new file mode 100644
index 0000000000..184ff25ca0
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/act16side_ex02#f#-activities-act16side-level_act16side_ex02.json
@@ -0,0 +1,575 @@
+{
+ "code": "GA-EX-2",
+ "height": 7,
+ "levelId": "activities/act16side/level_act16side_ex02",
+ "name": "限量蒙布朗",
+ "stageId": "act16side_ex02#f#",
+ "tiles": [
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_flystart"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 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": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_fence"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 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": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_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"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.1,
+ -8.9
+ ],
+ [
+ 0.79546878123568,
+ -5.6,
+ -9.764789001808651
+ ]
+ ],
+ "width": 11
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act16side_ex02-activities-act16side-level_act16side_ex02.json b/resource/Arknights-Tile-Pos/act16side_ex02-activities-act16side-level_act16side_ex02.json
new file mode 100644
index 0000000000..fb8ffdc3fa
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/act16side_ex02-activities-act16side-level_act16side_ex02.json
@@ -0,0 +1,575 @@
+{
+ "code": "GA-EX-2",
+ "height": 7,
+ "levelId": "activities/act16side/level_act16side_ex02",
+ "name": "限量蒙布朗",
+ "stageId": "act16side_ex02",
+ "tiles": [
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_flystart"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 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": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_fence"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 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": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_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"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.1,
+ -8.9
+ ],
+ [
+ 0.79546878123568,
+ -5.6,
+ -9.764789001808651
+ ]
+ ],
+ "width": 11
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act16side_ex03#f#-activities-act16side-level_act16side_ex03.json b/resource/Arknights-Tile-Pos/act16side_ex03#f#-activities-act16side-level_act16side_ex03.json
new file mode 100644
index 0000000000..fecd05ea16
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/act16side_ex03#f#-activities-act16side-level_act16side_ex03.json
@@ -0,0 +1,710 @@
+{
+ "code": "GA-EX-3",
+ "height": 8,
+ "levelId": "activities/act16side/level_act16side_ex03",
+ "name": "香草圣代",
+ "stageId": "act16side_ex03#f#",
+ "tiles": [
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 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": true,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 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": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_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": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "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": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "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": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.6,
+ -8.9
+ ],
+ [
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
+ ]
+ ],
+ "width": 12
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act16side_ex03-activities-act16side-level_act16side_ex03.json b/resource/Arknights-Tile-Pos/act16side_ex03-activities-act16side-level_act16side_ex03.json
new file mode 100644
index 0000000000..78785d9934
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/act16side_ex03-activities-act16side-level_act16side_ex03.json
@@ -0,0 +1,710 @@
+{
+ "code": "GA-EX-3",
+ "height": 8,
+ "levelId": "activities/act16side/level_act16side_ex03",
+ "name": "香草圣代",
+ "stageId": "act16side_ex03",
+ "tiles": [
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 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": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "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": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 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": 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": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_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": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "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": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "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": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.6,
+ -8.9
+ ],
+ [
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
+ ]
+ ],
+ "width": 12
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act2bossrush_03-activities-act2bossrush-level_bossrush2_03.json b/resource/Arknights-Tile-Pos/act16side_ex04#f#-activities-act16side-level_act16side_ex04.json
similarity index 57%
rename from resource/Arknights-Tile-Pos/act2bossrush_03-activities-act2bossrush-level_bossrush2_03.json
rename to resource/Arknights-Tile-Pos/act16side_ex04#f#-activities-act16side-level_act16side_ex04.json
index 4db1345539..1fca2fbac9 100644
--- a/resource/Arknights-Tile-Pos/act2bossrush_03-activities-act2bossrush-level_bossrush2_03.json
+++ b/resource/Arknights-Tile-Pos/act16side_ex04#f#-activities-act16side-level_act16side_ex04.json
@@ -1,9 +1,9 @@
{
- "code": "TN-3",
+ "code": "GA-EX-4",
"height": 8,
- "levelId": "activities/act2bossrush/level_bossrush2_03",
- "name": "裂地重击",
- "stageId": "act2bossrush_03",
+ "levelId": "activities/act16side/level_act16side_ex04",
+ "name": "焦糖布丁",
+ "stageId": "act16side_ex04#f#",
"tiles": [
[
{
@@ -41,90 +41,6 @@
"isStart": false,
"tileKey": "tile_forbidden"
},
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": true,
- "tileKey": "tile_start"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": true,
- "tileKey": "tile_start"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": true,
- "tileKey": "tile_start"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 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,
@@ -146,6 +62,27 @@
"isStart": false,
"tileKey": "tile_forbidden"
},
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
{
"buildableType": 0,
"heightType": 1,
@@ -157,24 +94,152 @@
[
{
"buildableType": 0,
- "heightType": 0,
+ "heightType": 1,
"isEnd": false,
- "isStart": true,
- "tileKey": "tile_start"
+ "isStart": false,
+ "tileKey": "tile_forbidden"
},
{
- "buildableType": 0,
+ "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_floor"
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
},
{
"buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
"heightType": 0,
"isEnd": false,
- "isStart": true,
- "tileKey": "tile_floor"
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
},
{
"buildableType": 1,
@@ -196,27 +261,122 @@
"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_floor"
+ "tileKey": "tile_road"
},
{
"buildableType": 0,
- "heightType": 0,
+ "heightType": 1,
"isEnd": false,
"isStart": false,
- "tileKey": "tile_floor"
+ "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_hole"
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
},
{
"buildableType": 0,
@@ -232,6 +392,192 @@
"isStart": false,
"tileKey": "tile_forbidden"
},
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
{
"buildableType": 0,
"heightType": 0,
@@ -250,198 +596,7 @@
"buildableType": 0,
"heightType": 0,
"isEnd": false,
- "isStart": true,
- "tileKey": "tile_start"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
"isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": true,
- "tileKey": "tile_flystart"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": true,
- "tileKey": "tile_flystart"
- }
- ],
- [
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_hole"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": true,
"tileKey": "tile_floor"
},
{
@@ -453,665 +608,6 @@
}
],
[
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 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_hole"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 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": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 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": 0,
- "isEnd": false,
- "isStart": true,
- "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": 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": 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": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- }
- ],
- [
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": true,
- "isStart": false,
- "tileKey": "tile_end"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 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": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": true,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- }
- ],
- [
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
{
"buildableType": 0,
"heightType": 1,
@@ -1200,15 +696,15 @@
],
"view": [
[
- -4.5,
- -6.1,
- -9.76
+ 0.0,
+ -5.6,
+ -8.9
],
[
- -3.56,
- -6.57,
- -10.56
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
]
],
- "width": 21
-}
+ "width": 12
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act16side_ex04-activities-act16side-level_act16side_ex04.json b/resource/Arknights-Tile-Pos/act16side_ex04-activities-act16side-level_act16side_ex04.json
new file mode 100644
index 0000000000..a9727b4509
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/act16side_ex04-activities-act16side-level_act16side_ex04.json
@@ -0,0 +1,710 @@
+{
+ "code": "GA-EX-4",
+ "height": 8,
+ "levelId": "activities/act16side/level_act16side_ex04",
+ "name": "焦糖布丁",
+ "stageId": "act16side_ex04",
+ "tiles": [
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 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": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 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": 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_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 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": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 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": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.6,
+ -8.9
+ ],
+ [
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
+ ]
+ ],
+ "width": 12
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act16side_ex05#f#-activities-act16side-level_act16side_ex05.json b/resource/Arknights-Tile-Pos/act16side_ex05#f#-activities-act16side-level_act16side_ex05.json
new file mode 100644
index 0000000000..79121e2dd3
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/act16side_ex05#f#-activities-act16side-level_act16side_ex05.json
@@ -0,0 +1,575 @@
+{
+ "code": "GA-EX-5",
+ "height": 7,
+ "levelId": "activities/act16side/level_act16side_ex05",
+ "name": "年轮卷",
+ "stageId": "act16side_ex05#f#",
+ "tiles": [
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 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": 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": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "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": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "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": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "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": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.6,
+ -8.9
+ ],
+ [
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
+ ]
+ ],
+ "width": 11
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act16side_ex05-activities-act16side-level_act16side_ex05.json b/resource/Arknights-Tile-Pos/act16side_ex05-activities-act16side-level_act16side_ex05.json
new file mode 100644
index 0000000000..a572e9d472
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/act16side_ex05-activities-act16side-level_act16side_ex05.json
@@ -0,0 +1,575 @@
+{
+ "code": "GA-EX-5",
+ "height": 7,
+ "levelId": "activities/act16side/level_act16side_ex05",
+ "name": "年轮卷",
+ "stageId": "act16side_ex05",
+ "tiles": [
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 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": 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": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "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": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "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": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "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": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.6,
+ -8.9
+ ],
+ [
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
+ ]
+ ],
+ "width": 11
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act16side_ex06#f#-activities-act16side-level_act16side_ex06.json b/resource/Arknights-Tile-Pos/act16side_ex06#f#-activities-act16side-level_act16side_ex06.json
new file mode 100644
index 0000000000..db1ed9b039
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/act16side_ex06#f#-activities-act16side-level_act16side_ex06.json
@@ -0,0 +1,710 @@
+{
+ "code": "GA-EX-6",
+ "height": 8,
+ "levelId": "activities/act16side/level_act16side_ex06",
+ "name": "奶油冰淇淋",
+ "stageId": "act16side_ex06#f#",
+ "tiles": [
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 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_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": 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": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 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_telout"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_telin"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_telin"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_telout"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.6,
+ -8.9
+ ],
+ [
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
+ ]
+ ],
+ "width": 12
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act16side_ex06-activities-act16side-level_act16side_ex06.json b/resource/Arknights-Tile-Pos/act16side_ex06-activities-act16side-level_act16side_ex06.json
new file mode 100644
index 0000000000..05c2a89d45
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/act16side_ex06-activities-act16side-level_act16side_ex06.json
@@ -0,0 +1,710 @@
+{
+ "code": "GA-EX-6",
+ "height": 8,
+ "levelId": "activities/act16side/level_act16side_ex06",
+ "name": "奶油冰淇淋",
+ "stageId": "act16side_ex06",
+ "tiles": [
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 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_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": 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": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 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_telout"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_telin"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_telin"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_telout"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.6,
+ -8.9
+ ],
+ [
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
+ ]
+ ],
+ "width": 12
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act16side_ex07#f#-activities-act16side-level_act16side_ex07.json b/resource/Arknights-Tile-Pos/act16side_ex07#f#-activities-act16side-level_act16side_ex07.json
new file mode 100644
index 0000000000..5f838db68e
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/act16side_ex07#f#-activities-act16side-level_act16side_ex07.json
@@ -0,0 +1,710 @@
+{
+ "code": "GA-EX-7",
+ "height": 8,
+ "levelId": "activities/act16side/level_act16side_ex07",
+ "name": "苹果派",
+ "stageId": "act16side_ex07#f#",
+ "tiles": [
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.6,
+ -8.9
+ ],
+ [
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
+ ]
+ ],
+ "width": 12
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act16side_ex07-activities-act16side-level_act16side_ex07.json b/resource/Arknights-Tile-Pos/act16side_ex07-activities-act16side-level_act16side_ex07.json
new file mode 100644
index 0000000000..c4f3fef85a
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/act16side_ex07-activities-act16side-level_act16side_ex07.json
@@ -0,0 +1,710 @@
+{
+ "code": "GA-EX-7",
+ "height": 8,
+ "levelId": "activities/act16side/level_act16side_ex07",
+ "name": "苹果派",
+ "stageId": "act16side_ex07",
+ "tiles": [
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.6,
+ -8.9
+ ],
+ [
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
+ ]
+ ],
+ "width": 12
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act2bossrush_01-activities-act2bossrush-level_bossrush2_01.json b/resource/Arknights-Tile-Pos/act16side_ex08#f#-activities-act16side-level_act16side_ex08.json
similarity index 76%
rename from resource/Arknights-Tile-Pos/act2bossrush_01-activities-act2bossrush-level_bossrush2_01.json
rename to resource/Arknights-Tile-Pos/act16side_ex08#f#-activities-act16side-level_act16side_ex08.json
index e51c5a43aa..b2ab7cd92b 100644
--- a/resource/Arknights-Tile-Pos/act2bossrush_01-activities-act2bossrush-level_bossrush2_01.json
+++ b/resource/Arknights-Tile-Pos/act16side_ex08#f#-activities-act16side-level_act16side_ex08.json
@@ -1,9 +1,9 @@
{
- "code": "TN-1",
+ "code": "GA-EX-8",
"height": 8,
- "levelId": "activities/act2bossrush/level_bossrush2_01",
- "name": "困顿囚徒",
- "stageId": "act2bossrush_01",
+ "levelId": "activities/act16side/level_act16side_ex08",
+ "name": "千层蛋糕",
+ "stageId": "act16side_ex08#f#",
"tiles": [
[
{
@@ -64,31 +64,10 @@
},
{
"buildableType": 0,
- "heightType": 1,
+ "heightType": 0,
"isEnd": false,
"isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
+ "tileKey": "tile_telout"
},
{
"buildableType": 0,
@@ -120,6 +99,334 @@
}
],
[
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_telout"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 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_telin"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 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,
@@ -134,6 +441,13 @@
"isStart": false,
"tileKey": "tile_floor"
},
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
{
"buildableType": 0,
"heightType": 0,
@@ -142,95 +456,18 @@
"tileKey": "tile_floor"
},
{
- "buildableType": 1,
+ "buildableType": 0,
"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"
+ "tileKey": "tile_floor"
},
{
"buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 3,
"heightType": 0,
"isEnd": false,
- "isStart": false,
- "tileKey": "tile_deepsea"
- },
- {
- "buildableType": 3,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_deepsea"
- },
- {
- "buildableType": 3,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_deepsea"
- },
- {
- "buildableType": 3,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_deepsea"
- },
- {
- "buildableType": 3,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_deepsea"
- },
- {
- "buildableType": 3,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_deepsea"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
+ "isStart": true,
+ "tileKey": "tile_start"
}
],
[
@@ -241,13 +478,6 @@
"isStart": false,
"tileKey": "tile_forbidden"
},
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
{
"buildableType": 0,
"heightType": 1,
@@ -263,18 +493,11 @@
"tileKey": "tile_wall"
},
{
- "buildableType": 2,
- "heightType": 1,
+ "buildableType": 0,
+ "heightType": 0,
"isEnd": false,
"isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
+ "tileKey": "tile_telin"
},
{
"buildableType": 1,
@@ -290,6 +513,57 @@
"isStart": false,
"tileKey": "tile_road"
},
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
{
"buildableType": 0,
"heightType": 0,
@@ -297,64 +571,6 @@
"isStart": false,
"tileKey": "tile_end"
},
- {
- "buildableType": 3,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_deepsea"
- },
- {
- "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": 0,
- "isEnd": false,
- "isStart": true,
- "tileKey": "tile_start"
- },
{
"buildableType": 0,
"heightType": 0,
@@ -383,20 +599,6 @@
"isStart": false,
"tileKey": "tile_road"
},
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
{
"buildableType": 2,
"heightType": 1,
@@ -425,320 +627,6 @@
"isStart": false,
"tileKey": "tile_road"
},
- {
- "buildableType": 3,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_deepsea"
- },
- {
- "buildableType": 3,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_deepsea"
- },
- {
- "buildableType": 3,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_deepsea"
- },
- {
- "buildableType": 3,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_deepsea"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- }
- ],
- [
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": true,
- "tileKey": "tile_start"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 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": 3,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_deepsea"
- },
- {
- "buildableType": 3,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_deepsea"
- },
- {
- "buildableType": 3,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_deepsea"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- }
- ],
- [
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": true,
- "tileKey": "tile_start"
- }
- ],
- [
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": 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": 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,
@@ -760,41 +648,6 @@
"isStart": false,
"tileKey": "tile_end"
},
- {
- "buildableType": 3,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_deepsea"
- },
- {
- "buildableType": 3,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_deepsea"
- },
- {
- "buildableType": 3,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_deepsea"
- },
- {
- "buildableType": 3,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_deepsea"
- },
- {
- "buildableType": 3,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_deepsea"
- },
{
"buildableType": 0,
"heightType": 1,
@@ -888,27 +741,6 @@
"isStart": false,
"tileKey": "tile_forbidden"
},
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
{
"buildableType": 0,
"heightType": 1,
@@ -920,15 +752,15 @@
],
"view": [
[
- -2.0,
+ 0.0,
-5.6,
-8.9
],
[
- -1.2,
+ 0.79546878123568,
-6.1,
- -9.8
+ -9.764789001808651
]
],
- "width": 16
-}
+ "width": 13
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act2bossrush_04-activities-act2bossrush-level_bossrush2_04.json b/resource/Arknights-Tile-Pos/act16side_ex08-activities-act16side-level_act16side_ex08.json
similarity index 61%
rename from resource/Arknights-Tile-Pos/act2bossrush_04-activities-act2bossrush-level_bossrush2_04.json
rename to resource/Arknights-Tile-Pos/act16side_ex08-activities-act16side-level_act16side_ex08.json
index 07ad6767ce..3ebc707306 100644
--- a/resource/Arknights-Tile-Pos/act2bossrush_04-activities-act2bossrush-level_bossrush2_04.json
+++ b/resource/Arknights-Tile-Pos/act16side_ex08-activities-act16side-level_act16side_ex08.json
@@ -1,9 +1,9 @@
{
- "code": "TN-4",
+ "code": "GA-EX-8",
"height": 8,
- "levelId": "activities/act2bossrush/level_bossrush2_04",
- "name": "骄阳之影",
- "stageId": "act2bossrush_04",
+ "levelId": "activities/act16side/level_act16side_ex08",
+ "name": "千层蛋糕",
+ "stageId": "act16side_ex08",
"tiles": [
[
{
@@ -41,6 +41,27 @@
"isStart": false,
"tileKey": "tile_forbidden"
},
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 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,
@@ -75,7 +96,9 @@
"isEnd": false,
"isStart": false,
"tileKey": "tile_forbidden"
- },
+ }
+ ],
+ [
{
"buildableType": 0,
"heightType": 1,
@@ -90,47 +113,61 @@
"isStart": false,
"tileKey": "tile_forbidden"
},
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
{
"buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
- "tileKey": "tile_telin"
+ "tileKey": "tile_floor"
},
{
- "buildableType": 0,
+ "buildableType": 2,
"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"
+ "tileKey": "tile_wall"
},
{
"buildableType": 0,
@@ -162,54 +199,26 @@
"isStart": false,
"tileKey": "tile_forbidden"
},
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
{
"buildableType": 0,
- "heightType": 0,
+ "heightType": 1,
"isEnd": false,
"isStart": false,
- "tileKey": "tile_floor"
+ "tileKey": "tile_forbidden"
},
{
- "buildableType": 0,
- "heightType": 0,
+ "buildableType": 2,
+ "heightType": 1,
"isEnd": false,
"isStart": false,
- "tileKey": "tile_floor"
+ "tileKey": "tile_wall"
},
{
- "buildableType": 0,
- "heightType": 0,
+ "buildableType": 2,
+ "heightType": 1,
"isEnd": false,
"isStart": false,
- "tileKey": "tile_floor"
+ "tileKey": "tile_wall"
},
{
"buildableType": 1,
@@ -219,46 +228,11 @@
"tileKey": "tile_road"
},
{
- "buildableType": 0,
- "heightType": 0,
+ "buildableType": 2,
+ "heightType": 1,
"isEnd": false,
"isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
+ "tileKey": "tile_wall"
},
{
"buildableType": 0,
@@ -267,6 +241,20 @@
"isStart": false,
"tileKey": "tile_forbidden"
},
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
{
"buildableType": 1,
"heightType": 0,
@@ -282,18 +270,11 @@
"tileKey": "tile_floor"
},
{
- "buildableType": 1,
+ "buildableType": 0,
"heightType": 0,
"isEnd": false,
"isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
+ "tileKey": "tile_floor"
},
{
"buildableType": 0,
@@ -304,211 +285,6 @@
}
],
[
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": true,
- "tileKey": "tile_start"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 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": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_fence_bound"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- }
- ],
- [
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_start"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
{
"buildableType": 0,
"heightType": 0,
@@ -519,9 +295,16 @@
{
"buildableType": 0,
"heightType": 0,
- "isEnd": true,
+ "isEnd": false,
"isStart": false,
- "tileKey": "tile_end"
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_road"
},
{
"buildableType": 1,
@@ -530,34 +313,6 @@
"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": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
{
"buildableType": 1,
"heightType": 0,
@@ -565,6 +320,27 @@
"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_telin"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
{
"buildableType": 0,
"heightType": 0,
@@ -572,20 +348,6 @@
"isStart": false,
"tileKey": "tile_floor"
},
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
{
"buildableType": 2,
"heightType": 1,
@@ -593,6 +355,20 @@
"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,
@@ -602,6 +378,55 @@
}
],
[
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 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,
@@ -625,38 +450,10 @@
},
{
"buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
+ "tileKey": "tile_floor"
},
{
"buildableType": 0,
@@ -668,235 +465,9 @@
{
"buildableType": 0,
"heightType": 0,
- "isEnd": true,
- "isStart": false,
- "tileKey": "tile_end"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- }
- ],
- [
- {
- "buildableType": 0,
- "heightType": 1,
"isEnd": false,
"isStart": true,
- "tileKey": "tile_flystart"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 0,
- "heightType": 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": 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": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
+ "tileKey": "tile_start"
}
],
[
@@ -907,20 +478,6 @@
"isStart": false,
"tileKey": "tile_forbidden"
},
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
- {
- "buildableType": 2,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_wall"
- },
{
"buildableType": 0,
"heightType": 1,
@@ -929,46 +486,11 @@
"tileKey": "tile_forbidden"
},
{
- "buildableType": 0,
- "heightType": 0,
+ "buildableType": 2,
+ "heightType": 1,
"isEnd": false,
"isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 1,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_road"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
- },
- {
- "buildableType": 0,
- "heightType": 0,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_floor"
+ "tileKey": "tile_wall"
},
{
"buildableType": 0,
@@ -985,11 +507,69 @@
"tileKey": "tile_road"
},
{
- "buildableType": 0,
+ "buildableType": 1,
"heightType": 0,
"isEnd": false,
"isStart": false,
- "tileKey": "tile_floor"
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 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,
@@ -1006,25 +586,46 @@
"tileKey": "tile_road"
},
{
- "buildableType": 0,
+ "buildableType": 1,
"heightType": 0,
"isEnd": false,
- "isStart": true,
- "tileKey": "tile_start"
+ "isStart": false,
+ "tileKey": "tile_road"
},
{
- "buildableType": 0,
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
"heightType": 1,
"isEnd": false,
"isStart": false,
- "tileKey": "tile_forbidden"
+ "tileKey": "tile_wall"
},
{
- "buildableType": 0,
+ "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_floor"
+ "tileKey": "tile_road"
},
{
"buildableType": 1,
@@ -1046,6 +647,13 @@
"isEnd": true,
"isStart": false,
"tileKey": "tile_end"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
}
],
[
@@ -1133,62 +741,6 @@
"isStart": false,
"tileKey": "tile_forbidden"
},
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
- {
- "buildableType": 0,
- "heightType": 1,
- "isEnd": false,
- "isStart": false,
- "tileKey": "tile_forbidden"
- },
{
"buildableType": 0,
"heightType": 1,
@@ -1200,15 +752,15 @@
],
"view": [
[
- -4.5,
+ 0.0,
-5.6,
-8.9
],
[
- -3.73,
- -6.07,
- -9.75
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
]
],
- "width": 21
-}
+ "width": 13
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/act16side_tr01-activities-act16side-level_act16side_tr01.json b/resource/Arknights-Tile-Pos/act16side_tr01-activities-act16side-level_act16side_tr01.json
new file mode 100644
index 0000000000..7c94d3dcc9
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/act16side_tr01-activities-act16side-level_act16side_tr01.json
@@ -0,0 +1,477 @@
+{
+ "code": "GA-TR-1",
+ "height": 7,
+ "levelId": "activities/act16side/level_act16side_tr01",
+ "name": "甜品时间",
+ "stageId": "act16side_tr01",
+ "tiles": [
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 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": 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": true,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 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": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 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": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.08,
+ -8.02
+ ],
+ [
+ 0.6426583848887812,
+ -5.58,
+ -8.898158179157907
+ ]
+ ],
+ "width": 9
+}
\ No newline at end of file
diff --git a/resource/Arknights-Tile-Pos/mem_phenxi_1-obt-memory-level_memory_phenxi_1.json b/resource/Arknights-Tile-Pos/mem_phenxi_1-obt-memory-level_memory_phenxi_1.json
new file mode 100644
index 0000000000..2ac192370f
--- /dev/null
+++ b/resource/Arknights-Tile-Pos/mem_phenxi_1-obt-memory-level_memory_phenxi_1.json
@@ -0,0 +1,542 @@
+{
+ "code": "mem_phenxi_1",
+ "height": 8,
+ "levelId": "obt/memory/level_memory_phenxi_1",
+ "name": "午后时光",
+ "stageId": "mem_phenxi_1",
+ "tiles": [
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": true,
+ "tileKey": "tile_start"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 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": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_smog"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_smog"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 1,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_road"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_floor"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "buildableType": 2,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_wall"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 0,
+ "isEnd": true,
+ "isStart": false,
+ "tileKey": "tile_end"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ],
+ [
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ },
+ {
+ "buildableType": 0,
+ "heightType": 1,
+ "isEnd": false,
+ "isStart": false,
+ "tileKey": "tile_forbidden"
+ }
+ ]
+ ],
+ "view": [
+ [
+ 0.0,
+ -5.6,
+ -8.9
+ ],
+ [
+ 0.79546878123568,
+ -6.1,
+ -9.764789001808651
+ ]
+ ],
+ "width": 9
+}
\ No newline at end of file
diff --git a/resource/copilot/SSS_多索雷斯在建地块.json b/resource/copilot/SSS_多索雷斯在建地块.json
index 8c4d5d4b72..d4994789c8 100644
--- a/resource/copilot/SSS_多索雷斯在建地块.json
+++ b/resource/copilot/SSS_多索雷斯在建地块.json
@@ -14,11 +14,11 @@
"A", "A", "A", "A"
],
"strategy": "优选策略",
- "opers":[
+ "opers": [
{
"name": "棘刺",
"skill": 3,
- "skill_usage":1
+ "skill_usage": 1
},
{
"name": "泥岩",
@@ -41,14 +41,14 @@
"skill_usage": 0
}
],
- "tool_men":{
+ "tool_men": {
"先锋": 1,
"近卫": 2,
"辅助": 7,
"重装": 2,
"术士": 3
},
- "drops":[
+ "drops": [
"近卫",
"无需增调干员",
"辅助",
@@ -86,7 +86,7 @@
"梅尔",
"罗小黑"
],
- "stages":[
+ "stages": [
{
"stage_name": "蜂拥而上",
"strategies": [
@@ -197,7 +197,7 @@
5,
3
],
- "direction": "Left"
+ "direction": "Left"
},
{
"core": "泥岩",
@@ -268,7 +268,8 @@
"近卫": 3
},
"location": [
- 6,1
+ 6,
+ 1
],
"direction": "Left"
},
diff --git a/resource/custom_infrast/243_layout_3_times_a_day_yituliu_1677312017553916.json b/resource/custom_infrast/243_layout_3_times_a_day_yituliu_1677312017553916.json
new file mode 100644
index 0000000000..67e8fdba2d
--- /dev/null
+++ b/resource/custom_infrast/243_layout_3_times_a_day_yituliu_1677312017553916.json
@@ -0,0 +1,448 @@
+
+{
+ "plans":[
+ {
+ "rooms":{
+ "trading":[
+ {
+ "product":"LMD",
+ "operators":[
+ "巫恋",
+ "龙舌兰",
+ "卡夫卡"
+ ],
+ "sort":true,
+ "autofill":false
+ },
+ {
+ "product":"LMD",
+ "operators":[
+ "但书",
+ "乌有",
+ "黑键"
+ ],
+ "sort":true,
+ "autofill":false
+ }
+ ],
+ "manufacture":[
+ {
+ "product":"Battle Record",
+ "operators":[
+ "红云",
+ "稀音",
+ "帕拉斯"
+ ],
+ "sort":true,
+ "autofill":false
+ },
+ {
+ "product":"Battle Record",
+ "operators":[
+ "食铁兽",
+ "断罪者",
+ "槐琥"
+ ],
+ "sort":true,
+ "autofill":false
+ },
+ {
+ "product":"Pure Gold",
+ "operators":[
+ "清流",
+ "温蒂",
+ "森蚺"
+ ],
+ "sort":true,
+ "autofill":false
+ },
+ {
+ "product":"Pure Gold",
+ "operators":[
+ "砾",
+ "至简",
+ "迷迭香"
+ ],
+ "sort":true,
+ "autofill":false
+ }
+ ],
+ "hire":[
+ {
+ "operators":[
+ "絮雨"
+ ],
+ "autofill":false
+ }
+ ],
+ "dormitory":[
+ {
+ "operators":[
+ "车尔尼"
+ ],
+ "sort":true,
+ "autofill":true
+ },
+ {
+ "operators":[
+ "爱丽丝"
+ ],
+ "sort":true,
+ "autofill":true
+ },
+ {
+ "operators":[],
+ "sort":false,
+ "autofill":true
+ },
+ {
+ "operators":[],
+ "sort":false,
+ "autofill":true
+ }
+ ],
+ "control":[
+ {
+ "operators":[
+ "阿米娅",
+ "重岳",
+ "琴柳",
+ "令",
+ "夕"
+ ]
+ }
+ ],
+ "power":[
+ {
+ "operators":[
+ "承曦格雷伊"
+ ],
+ "autofill":false
+ },
+ {
+ "operators":[
+ "澄闪"
+ ],
+ "autofill":false
+ },
+ {
+ "operators":[
+ "格雷伊"
+ ],
+ "autofill":false
+ }
+ ],
+ "meeting":[
+ {
+ "operators":[],
+ "autofill":true
+ }
+ ]
+ },
+ "drones":{
+ "enable":true,
+ "index":1,
+ "room":"manufacture",
+ "order":"pre"
+ },
+ "name":"16H最高效率长班",
+ "description":"请手动把年放加工站,下次在16小时后换班"
+ },
+ {
+ "rooms":{
+ "trading":[
+ {
+ "product":"LMD",
+ "operators":[
+ "巫恋",
+ "龙舌兰",
+ "卡夫卡"
+ ],
+ "sort":true,
+ "autofill":false
+ },
+ {
+ "product":"LMD",
+ "operators":[
+ "但书",
+ "空弦",
+ "黑键"
+ ],
+ "sort":true,
+ "autofill":false
+ }
+ ],
+ "manufacture":[
+ {
+ "product":"Battle Record",
+ "operators":[
+ "食铁兽",
+ "断罪者",
+ "槐琥"
+ ],
+ "sort":true,
+ "autofill":false
+ },
+ {
+ "product":"Battle Record",
+ "operators":[
+ "远牙",
+ "野鬃",
+ "灰毫"
+ ],
+ "sort":true,
+ "autofill":false
+ },
+ {
+ "product":"Pure Gold",
+ "operators":[
+ "水月",
+ "海沫",
+ "多萝西"
+ ],
+ "sort":true,
+ "autofill":false
+ },
+ {
+ "product":"Pure Gold",
+ "operators":[
+ "砾",
+ "至简",
+ "迷迭香"
+ ],
+ "sort":true,
+ "autofill":false
+ }
+ ],
+ "hire":[
+ {
+ "operators":[
+ "絮雨"
+ ],
+ "autofill":false
+ }
+ ],
+ "dormitory":[
+ {
+ "operators":[
+ "车尔尼"
+ ],
+ "sort":true,
+ "autofill":true
+ },
+ {
+ "operators":[
+ "爱丽丝"
+ ],
+ "sort":true,
+ "autofill":true
+ },
+ {
+ "operators":[],
+ "sort":false,
+ "autofill":true
+ },
+ {
+ "operators":[],
+ "sort":false,
+ "autofill":true
+ }
+ ],
+ "control":[
+ {
+ "operators":[
+ "阿米娅",
+ "凯尔希",
+ "琴柳",
+ "焰尾",
+ "令"
+ ]
+ }
+ ],
+ "power":[
+ {
+ "operators":[
+ "正义骑士号"
+ ],
+ "autofill":false
+ },
+ {
+ "operators":[
+ "澄闪"
+ ],
+ "autofill":false
+ },
+ {
+ "operators":[
+ "雷蛇"
+ ],
+ "autofill":false
+ }
+ ],
+ "meeting":[
+ {
+ "operators":[],
+ "autofill":true
+ }
+ ]
+ },
+ "drones":{
+ "enable":true,
+ "index":1,
+ "room":"manufacture",
+ "order":"pre"
+ },
+ "name":"4H 次高效替补 2 班",
+ "description":"下次在4小时后换班"
+ },
+ {
+ "rooms":{
+ "trading":[
+ {
+ "product":"LMD",
+ "operators":[
+ "巫恋",
+ "龙舌兰",
+ "柏喙"
+ ],
+ "sort":true,
+ "autofill":false
+ },
+ {
+ "product":"LMD",
+ "operators":[
+ "但书",
+ "孑",
+ "银灰"
+ ],
+ "sort":true,
+ "autofill":false
+ }
+ ],
+ "manufacture":[
+ {
+ "product":"Battle Record",
+ "operators":[
+ "红云",
+ "稀音",
+ "帕拉斯"
+ ],
+ "sort":true,
+ "autofill":false
+ },
+ {
+ "product":"Battle Record",
+ "operators":[
+ "远牙",
+ "野鬃",
+ "灰毫"
+ ],
+ "sort":false,
+ "autofill":false
+ },
+ {
+ "product":"Pure Gold",
+ "operators":[
+ "清流",
+ "温蒂",
+ "森蚺"
+ ],
+ "sort":true,
+ "autofill":false
+ },
+ {
+ "product":"Pure Gold",
+ "operators":[
+ "水月",
+ "海沫",
+ "多萝西"
+ ],
+ "sort":true,
+ "autofill":false
+ }
+ ],
+ "hire":[
+ {
+ "operators":[
+ "斥罪"
+ ],
+ "autofill":false
+ }
+ ],
+ "dormitory":[
+ {
+ "operators":[],
+ "sort":false,
+ "autofill":true
+ },
+ {
+ "operators":[],
+ "sort":false,
+ "autofill":true
+ },
+ {
+ "operators":[],
+ "sort":false,
+ "autofill":true
+ },
+ {
+ "operators":[],
+ "sort":false,
+ "autofill":true
+ }
+ ],
+ "control":[
+ {
+ "operators":[
+ "诗怀雅",
+ "凯尔希",
+ "焰尾",
+ "灵知",
+ "老鲤"
+ ]
+ }
+ ],
+ "power":[
+ {
+ "operators":[
+ "承曦格雷伊"
+ ],
+ "autofill":false
+ },
+ {
+ "operators":[
+ "格雷伊"
+ ],
+ "autofill":false
+ },
+ {
+ "operators":[
+ "雷蛇"
+ ],
+ "autofill":false
+ }
+ ],
+ "meeting":[
+ {
+ "operators":[],
+ "autofill":true
+ }
+ ]
+ },
+ "drones":{
+ "enable":true,
+ "index":1,
+ "room":"manufacture",
+ "order":"pre"
+ },
+ "name":"4H 次高效替补 1 班",
+ "description":"下次在4小时后换班"
+ }
+ ],
+ "author":"Anchor",
+ "description":"干员配置要求极高,请留意\\n若缺少干员请自行通过id在一图流基建排班生成器上修改并重新生成导出(请勿直接修改,以免更新后被覆盖)\\n\\n感谢公孙长乐大佬提供数据及方案支持!\\n[20230224 修订] 视频地址: https://www.bilibili.com/video/BV1EM411c7Ng\\n请把年放在加工站\\n可自行在一图流排班生成器上自定义班次起止时间",
+ "id":1677312017553916,
+ "title":"243极限效率,一天三换(需手动菲亚梅塔)",
+ "buildingType":"243",
+ "planTimes":"3班"
+}
\ No newline at end of file
diff --git a/resource/custom_infrast/243_layout_4_times_a_day.json b/resource/custom_infrast/243_layout_4_times_a_day.json
index 3f1037546d..e393c5a3c1 100644
--- a/resource/custom_infrast/243_layout_4_times_a_day.json
+++ b/resource/custom_infrast/243_layout_4_times_a_day.json
@@ -1,6 +1,6 @@
{
"title": "243 极限效率,一天四换",
- "description": "干员配置要求极高,请留意\n若缺少干员请自行拷贝文件并修改(请勿直接修改,以免更新后被覆盖)\n\n作业作者:MistEO\n感谢公孙长乐大佬提供数据及方案支持!\n[20220119 修订] 视频地址: https://www.bilibili.com/video/BV1qD4y1H77E?t=365\n请把年放在加工站",
+ "description": "干员配置要求极高,请留意\n若缺少干员请自行拷贝文件并修改(请勿直接修改,以免更新后被覆盖)\n\n作业作者:MistEO\n感谢公孙长乐大佬提供数据及方案支持!\n[20220119 修订] 视频地址: https://www.bilibili.com/video/BV1EM411c7Ng\n请把年放在加工站",
"plans": [
{
"name": "A+B 组 8H",
@@ -272,10 +272,10 @@
{
"operators": [
"阿米娅",
- "重岳",
+ "凯尔希",
"琴柳",
- "令",
- "焰尾"
+ "焰尾",
+ "令"
]
}
],
@@ -292,7 +292,7 @@
{
"operators": [
"但书",
- "乌有",
+ "空弦",
"黑键"
],
"product": "LMD"
diff --git a/resource/global/YoStarEN/readme.md b/resource/global/YoStarEN/readme.md
deleted file mode 100644
index 619491826c..0000000000
--- a/resource/global/YoStarEN/readme.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# YoStarEN client
-
-## 国际服(美服)
-
-请进入 `设置` - `启动设置` - `客户端版本` 选择 `国际服`
-
-目前支持:
-
-- 刷理智(仅支持选择`当前关卡`)
-- 使用理智药恢复理智
-- 使用源石恢复理智
-- 刷理智指定次数
-- 信用购物(使用英文商品名)
-- 访问好友
-- 领取日常奖励
-- 公招计算
-- 无限刷肉鸽(测试功能)
-
-## Global (EN)
-
-Please go to `Settings` - `Startup Settings` - `Client Version` and select `YoStarEN`
-
-Now supports:
-
-- Auto battle (only supports selecting `current stage`)
-- Restore with potion
-- Restore with Originite
-- Set the max number of auto battles
-- Credit Shopping (with English trade names)
-- Friends visit
-- Award collect
-- Recruitment calculate
-- Auto Roguelike (beta)
diff --git a/resource/global/YoStarEN/resource/tasks.json b/resource/global/YoStarEN/resource/tasks.json
index e01a56c59a..67a3425d8a 100644
--- a/resource/global/YoStarEN/resource/tasks.json
+++ b/resource/global/YoStarEN/resource/tasks.json
@@ -1,6 +1,21 @@
{
+ "ClickChapter1": {
+ "text": [
+ "Hour of An Awakening"
+ ]
+ },
+ "ClickChapter2": {
+ "text": [
+ "Shatter of A Vision"
+ ]
+ },
+ "ClickChapter3": {
+ "text": [
+ "Shadow of A Dying Sun"
+ ]
+ },
"CharsNameOcrReplace": {
- "Doc": "该任务的 ocrReplace 被所有涉及干员名的English Name识别任务复用",
+ "Doc": "该任务的 ocrReplace 被所有涉及干员名的英文识别任务复用 This task's ocrReplace is reused by all recognition tasks related to operator names",
"ocrReplace": [
[
"SilverAsh",
@@ -1384,19 +1399,10 @@
]
]
},
- "ClickChapter1": {
+ "TodaysSupplies": {
+ "algorithm": "OcrDetect",
"text": [
- "Hour of An Awakening"
- ]
- },
- "ClickChapter2": {
- "text": [
- "Shatter of A Vision"
- ]
- },
- "ClickChapter3": {
- "text": [
- "Shadow of A Dying Sun"
+ "Resource Today"
]
},
"StartButton1": {
@@ -1409,6 +1415,52 @@
"Takeover"
]
},
+ "ExpiringMedicineCheck": {
+ "text": [
+ "min",
+ "hr",
+ "1 day"
+ ],
+ "ocrReplace": [
+ [
+ ".+hrs?",
+ "hr"
+ ],
+ [
+ ".+mins?",
+ "min"
+ ]
+ ]
+ },
+ "GoLastBattle": {
+ "text": [
+ "To the most recent stage"
+ ]
+ },
+ "StartRecruit": {
+ "text": [
+ "Recruit Now"
+ ]
+ },
+ "RecruitFlag": {
+ "text": [
+ "Recruit"
+ ]
+ },
+ "RecruitNow": {
+ "text": [
+ "Expedite"
+ ]
+ },
+ "Award": {
+ "template": "Task.png",
+ "roi": [
+ 700,
+ 530,
+ 200,
+ 130
+ ]
+ },
"NoFriends": {
"text": [
"No friends"
@@ -1565,49 +1617,6 @@
"Trust"
]
},
- "InfrastStationedInfo": {
- "text": [
- "Operator"
- ]
- },
- "InfrastEnterOperList": {
- "fullMatch": true,
- "text": [
- "Morale",
- "Resting",
- "Working",
- "Assign"
- ]
- },
- "Award": {
- "template": "Task.png",
- "roi": [
- 700,
- 530,
- 200,
- 130
- ]
- },
- "GoLastBattle": {
- "text": [
- "To the most recent stage"
- ]
- },
- "StartRecruit": {
- "text": [
- "Recruit Now"
- ]
- },
- "RecruitFlag": {
- "text": [
- "Recruit"
- ]
- },
- "RecruitNow": {
- "text": [
- "Expedite"
- ]
- },
"ShamareThumbnail1": {
"maskRange": [
1,
@@ -1626,14 +1635,19 @@
255
]
},
- "Roguelike@StageTraderInvestSystem": {
- "maskRange": [
- 1,
- 255
+ "InfrastStationedInfo": {
+ "text": [
+ "Operator"
]
},
- "Roguelike@StageTraderInvestConfirm": {
- "templThreshold": 0.55
+ "InfrastEnterOperList": {
+ "fullMatch": true,
+ "text": [
+ "Morale",
+ "Resting",
+ "Working",
+ "Assign"
+ ]
},
"BattleStageName": {
"Doc": "该任务的 ocrReplace 被所有涉及Rouge-like的English识别任务复用",
@@ -2027,6 +2041,15 @@
"StageDrops-DropType-Reward": {
"templThreshold": 0.7
},
+ "Roguelike@StageTraderInvestConfirm": {
+ "templThreshold": 0.55
+ },
+ "Roguelike@StageTraderInvestSystem": {
+ "maskRange": [
+ 1,
+ 255
+ ]
+ },
"Roguelike@StageTraderInvestSystemFull": {
"text": [
"Storage full"
@@ -3375,11 +3398,5 @@
"《欢欣鼓舞》"
]
]
- },
- "TodaysSupplies": {
- "algorithm": "OcrDetect",
- "text": [
- "Resource Today"
- ]
}
}
\ No newline at end of file
diff --git a/resource/global/YoStarEN/resource/template/Roguelike@RefreshSupportBtn.png b/resource/global/YoStarEN/resource/template/Roguelike@RefreshSupportBtn.png
deleted file mode 100644
index a6e4d5f300..0000000000
Binary files a/resource/global/YoStarEN/resource/template/Roguelike@RefreshSupportBtn.png and /dev/null differ
diff --git a/resource/global/YoStarJP/readme.md b/resource/global/YoStarJP/readme.md
deleted file mode 100644
index 81e46eb747..0000000000
--- a/resource/global/YoStarJP/readme.md
+++ /dev/null
@@ -1,55 +0,0 @@
-# YoStarJP client
-
-## 日本サーバー
-
-「設定」-「スタートアップ設定」-「クライアントバージョン」に移動し、「YoStarJP」を選択してください
-
-現在サポートされている機能:
-
-- 自動戦闘(「現在のステージ」の選択だけ)
-- 理性回復アイテムを使う
-- 純正源石を使う
-- 自動戦闘の最大回数を指定する
-- 自動基建
-- 自動公開求人
-- 戦友訪問
-- FP交換所 (日本語名で入力対応)
-- デイリーリクエストのアワードを収集する
-- 公開求人の計算
-- 自動統合戦略(ベータ版)
-
-## 日服
-
-请进入 `设置` - `启动设置` - `客户端版本` 选择 `日服`
-
-目前支持:
-
-- 刷理智(仅支持选择`当前关卡`)
-- 使用理智药恢复理智
-- 使用源石恢复理智
-- 刷理智指定次数
-- 自动基建
-- 自动公招
-- 访问好友
-- 信用商店(使用日文输入商品名)
-- 领取日常奖励
-- 公招计算
-- 无限刷肉鸽(测试功能)
-
-## JP Client
-
-Please go to `Settings` - `Startup Settings` - `Client Version` and select `YoStarJP`
-
-Supported features:
-
-- Auto battle (only supports selecting `current stage`)
-- Auto-use sanity potion
-- Auto-use Originite Prime
-- Set the max number of auto battles
-- Auto Base shift
-- Auto recruiting
-- Visiting friend's infrastructure
-- Credit Shopping (with Japanese trade names)
-- Collecting daily quest awards
-- Recruitment calculate
-- Auto Roguelike (beta)
diff --git a/resource/global/YoStarJP/resource/ocr_config.json b/resource/global/YoStarJP/resource/ocr_config.json
new file mode 100644
index 0000000000..2c25eae704
--- /dev/null
+++ b/resource/global/YoStarJP/resource/ocr_config.json
@@ -0,0 +1,104 @@
+{
+ "equivalence_classes": [
+ [
+ "夕",
+ "タ"
+ ],
+ [
+ "ニ",
+ "二"
+ ],
+ [
+ "-",
+ "ー",
+ "一"
+ ],
+ [
+ "ト",
+ "卜"
+ ],
+ [
+ "ロ",
+ "口"
+ ],
+ [
+ "カ",
+ "力"
+ ],
+ [
+ "ン",
+ "ソ"
+ ],
+ [
+ "ア",
+ "ァ"
+ ],
+ [
+ "イ",
+ "ィ"
+ ],
+ [
+ "ウ",
+ "ゥ"
+ ],
+ [
+ "エ",
+ "ェ",
+ "工"
+ ],
+ [
+ "オ",
+ "ォ"
+ ],
+ [
+ "ツ",
+ "ッ"
+ ],
+ [
+ "ヤ",
+ "ャ"
+ ],
+ [
+ "ユ",
+ "ュ"
+ ],
+ [
+ "ヨ",
+ "ョ"
+ ],
+ [
+ "へ",
+ "ヘ"
+ ],
+ [
+ "バ",
+ "パ"
+ ],
+ [
+ "ビ",
+ "ピ"
+ ],
+ [
+ "ブ",
+ "プ"
+ ],
+ [
+ "ベ",
+ "ペ",
+ "べ",
+ "ぺ"
+ ],
+ [
+ "ボ",
+ "ポ"
+ ],
+ [
+ "o",
+ "O"
+ ],
+ [
+ "s",
+ "S"
+ ]
+ ]
+}
\ No newline at end of file
diff --git a/resource/global/YoStarJP/resource/tasks.json b/resource/global/YoStarJP/resource/tasks.json
index 2433e12485..14fc5bd6df 100644
--- a/resource/global/YoStarJP/resource/tasks.json
+++ b/resource/global/YoStarJP/resource/tasks.json
@@ -9,39 +9,59 @@
"幻滅"
]
},
+ "DH-Open": {
+ "text": [
+ "ドッソレス",
+ "ホリデー",
+ "復刻",
+ "イベント",
+ "催中"
+ ]
+ },
+ "DHChapterToDH": {
+ "text": [
+ "大会",
+ "エントリー"
+ ]
+ },
"CharsNameOcrReplace": {
- "Doc": "该任务的 ocrReplace 被所有涉及干员名的日文识别任务复用",
+ "Doc": "该任务的 ocrReplace 被所有涉及干员名的日文识别任务复用 このタスクの「ocrReplace」は、オペレーター名に関連するすべての認識タスクで再利用されます",
+ "replaceFull": true,
"ocrReplace": [
[
"シルバーアッシュ",
"银灰"
],
[
- ".*ル.*ーアッシ(ユ|ュ)",
+ "ル.*ーアッ.*シュ",
+ "银灰"
+ ],
+ [
+ "レ.*ーアッ.*シュ",
"银灰"
],
[
"ブレイズ",
"煌"
],
- [
- "プレイズ",
- "煌"
- ],
[
"スルト",
"史尔特尔"
],
[
- "^チェン$",
+ "^チェン",
"陈"
],
+ [
+ "ソーンズ",
+ "棘刺"
+ ],
[
".*ーンズ",
"棘刺"
],
[
- "^スペクタ.*$",
+ "^スペクター",
"幽灵鲨"
],
[
@@ -49,21 +69,17 @@
"耀骑士临光"
],
[
- ".*騎士ニアール",
+ "騎士ニアール",
"耀骑士临光"
],
[
- "ラッ.*ランド",
+ "ラップランド",
"拉普兰德"
],
[
"ップランド",
"拉普兰德"
],
- [
- "ブップランド",
- "拉普兰德"
- ],
[
"インドラ",
"因陀罗"
@@ -93,7 +109,7 @@
"铸铁"
],
[
- "スワイヤ.*",
+ "スワイヤー",
"诗怀雅"
],
[
@@ -101,7 +117,7 @@
"鞭刃"
],
[
- ".*(イ|ィ)スラッシ(ュ|ユ)",
+ "ィスラッシュ",
"鞭刃"
],
[
@@ -121,7 +137,7 @@
"杜宾"
],
[
- "ミーベルマン",
+ "ーベルマン",
"杜宾"
],
[
@@ -133,7 +149,7 @@
"霜叶"
],
[
- ".*ロストリー.*",
+ "ロストリー",
"霜叶"
],
[
@@ -149,15 +165,15 @@
"帕拉斯"
],
[
- ".*(パ|バ)ラス$",
- "帕拉斯"
+ "マウンテン",
+ "山"
],
[
"マウ.*テ.*",
"山"
],
[
- "^スカジ$",
+ "^スカジ",
"斯卡蒂"
],
[
@@ -169,11 +185,11 @@
"龙舌兰"
],
[
- "フリソト",
+ "フリント",
"燧石"
],
[
- "フリント",
+ "フリソト",
"燧石"
],
[
@@ -197,7 +213,7 @@
"断罪者"
],
[
- ".*(ン|ソ)(ピ|ビ)クション",
+ ".*(ン|ソ)ビクション",
"断罪者"
],
[
@@ -253,7 +269,7 @@
"空"
],
[
- ".*心ス(カ|力)ジ",
+ ".*心スカジ",
"浊心斯卡蒂"
],
[
@@ -264,10 +280,6 @@
"リィソ",
"令"
],
- [
- "リイン",
- "令"
- ],
[
"シーン",
"稀音"
@@ -284,6 +296,10 @@
"マゼラン",
"麦哲伦"
],
+ [
+ "マセラン",
+ "麦哲伦"
+ ],
[
"プラマニクス",
"初雪"
@@ -301,11 +317,11 @@
"巫恋"
],
[
- ".*キノギ",
+ "ツキノギ",
"月禾"
],
[
- "ツキノキ",
+ ".*キノキ",
"月禾"
],
[
@@ -321,25 +337,17 @@
"地灵"
],
[
- ".*ースス.*リ(ツ|ッ).*",
+ ".*ースス.*リッ",
"地灵"
],
[
"ロベルタ",
"罗比菈塔"
],
- [
- "ロベル夕",
- "罗比菈塔"
- ],
[
"コベル夕",
"罗比菈塔"
],
- [
- "ディ.*カ",
- "深海色"
- ],
[
"ディピ力",
"深海色"
@@ -353,11 +361,11 @@
"预备干员-术师"
],
[
- "^ハイビスカス$",
+ "^ハイビスカス",
"芙蓉"
],
[
- "^イビスカス$",
+ "^イビスカス",
"芙蓉"
],
[
@@ -372,10 +380,6 @@
"^ガヴィル$",
"嘉维尔"
],
- [
- "^ガヴイル$",
- "嘉维尔"
- ],
[
".*フューマー",
"调香师"
@@ -385,7 +389,7 @@
"白面鸮"
],
[
- "フ(ィ|イ)リオ(プ|ブ)シ.*",
+ "フィリオプシ",
"白面鸮"
],
[
@@ -405,7 +409,7 @@
"闪灵"
],
[
- ".*(ャ|ヤ)イニ.*グ",
+ "ャイニ.*グ",
"闪灵"
],
[
@@ -428,24 +432,16 @@
"フォリニック",
"亚叶"
],
- [
- "フオリニック",
- "亚叶"
- ],
[
"セイリュウ",
"清流"
],
- [
- "セイリユウ",
- "清流"
- ],
[
"ウィスパーレイン",
"絮雨"
],
[
- ".*(ィ|イ)ス.*ーレイ.*",
+ ".*ィス.*ーレイ.*",
"絮雨"
],
[
@@ -453,7 +449,7 @@
"图耶"
],
[
- ".*(ウ|ゥ)(イ|ィ)(エ|ェ)",
+ "ゥイエ",
"图耶"
],
[
@@ -497,7 +493,7 @@
"琴柳"
],
[
- "^サガ$",
+ "^サガ",
"嵯峨"
],
[
@@ -505,7 +501,7 @@
"豆苗"
],
[
- ".*ーンストーク",
+ "ーンストーク",
"豆苗"
],
[
@@ -517,11 +513,11 @@
"极境"
],
[
- "バグパイ.*",
+ "バグパイ",
"风笛"
],
[
- "^リード$",
+ "^リード",
"苇草"
],
[
@@ -537,7 +533,7 @@
"推进之王"
],
[
- "^テキサス$",
+ "^テキサス",
"德克萨斯"
],
[
@@ -548,16 +544,12 @@
"ヴィグナ",
"红豆"
],
- [
- "ヴイグナ",
- "红豆"
- ],
[
"スカベンジャー",
"清道夫"
],
[
- ".*カベンジャー",
+ "カベンジャー",
"清道夫"
],
[
@@ -569,7 +561,7 @@
"翎羽"
],
[
- ".*リ(ュ|ユ)ム",
+ "リュム",
"翎羽"
],
[
@@ -577,7 +569,7 @@
"香草"
],
[
- "パニラ",
+ "バエラ",
"香草"
],
[
@@ -593,17 +585,13 @@
"正义骑士号"
],
[
- ".*(ャ|ヤ|セ)ステ(イ|ィ)スナイト",
+ ".*(ャ|セ)スティスナイト",
"正义骑士号"
],
[
"ファートゥース",
"远牙"
],
- [
- "ファートウース",
- "远牙"
- ],
[
"遊龍チェン",
"假日威龙陈"
@@ -613,7 +601,7 @@
"熔泉"
],
[
- ".*ギフォンス",
+ "ギフォンス",
"熔泉"
],
[
@@ -628,6 +616,10 @@
"アルケット",
"空弦"
],
+ [
+ "アルケッ",
+ "空弦"
+ ],
[
".*インコーン",
"松果"
@@ -644,10 +636,6 @@
"アオスタ",
"奥斯塔"
],
- [
- "アオス夕",
- "奥斯塔"
- ],
[
"エイ.*リル",
"四月"
@@ -665,7 +653,7 @@
"安哲拉"
],
[
- "^ロサ$",
+ "ロサ",
"早露"
],
[
@@ -676,10 +664,6 @@
"シェーシャ",
"慑砂"
],
- [
- "シエーシャ",
- "慑砂"
- ],
[
"グレースロート",
"灰喉"
@@ -692,14 +676,6 @@
"アンブリエル",
"安比尔"
],
- [
- "アンプリエル",
- "安比尔"
- ],
- [
- "アァンブリエル",
- "安比尔"
- ],
[
"^メイ$",
"梅"
@@ -721,7 +697,7 @@
"黑"
],
[
- "(カ|力)タ.*ルト",
+ "カタパルト",
"空爆"
],
[
@@ -733,7 +709,7 @@
"守林人"
],
[
- ".*(ァ|ア)イヤーウ(オ|ォ)ッ.*",
+ ".*ァイヤーウォッ.*",
"守林人"
],
[
@@ -773,7 +749,7 @@
"安德切尔"
],
[
- "^クルース$",
+ "^クルース",
"克洛丝"
],
[
@@ -800,10 +776,6 @@
"アッシュロック",
"灰毫"
],
- [
- "アッシ.*ロック",
- "灰毫"
- ],
[
"ヘビーレイ.*",
"暴雨"
@@ -829,7 +801,7 @@
"瑕光"
],
[
- ".*レミシ(ャ|ヤ)イン",
+ ".*レミシャイン",
"瑕光"
],
[
@@ -841,7 +813,7 @@
"森蚺"
],
[
- "1ーネクテス",
+ "ーネクテス",
"森蚺"
],
[
@@ -857,7 +829,7 @@
"年"
],
[
- "ウン",
+ "^ウン$",
"吽"
],
[
@@ -865,7 +837,7 @@
"拜松"
],
[
- "バイソ.*",
+ "バイソ",
"拜松"
],
[
@@ -885,15 +857,15 @@
"星熊"
],
[
- "ヴァルカ.*",
+ "ヴァルカ",
"火神"
],
[
- "クロワッサ.*",
+ "クロワッサン",
"可颂"
],
[
- ".*ロワッサン",
+ "ロワッサン",
"可颂"
],
[
@@ -901,7 +873,7 @@
"雷蛇"
],
[
- "^ニアール$",
+ "^ニアール",
"临光"
],
[
@@ -917,7 +889,7 @@
"角峰"
],
[
- ".*ッターホルン",
+ "ッターホルン",
"角峰"
],
[
@@ -929,25 +901,17 @@
"卡缇"
],
[
- "カーデイ",
- "卡缇"
- ],
- [
- "ノイルホー.*",
+ "ノイルホーン",
"黑角"
],
[
- "イルホーン",
+ "イルホー",
"黑角"
],
[
"イェラ",
"耶拉"
],
- [
- "イエラ",
- "耶拉"
- ],
[
"コロセラム",
"蚀清"
@@ -957,11 +921,7 @@
"布丁"
],
[
- "ブリン",
- "布丁"
- ],
- [
- "カーネリア.*",
+ "カーネリアン",
"卡涅利安"
],
[
@@ -969,7 +929,7 @@
"深靛"
],
[
- "イ(ン|ソ)デ(ィ|イ)ゴ",
+ "イ(ン|ソ)ディゴ",
"深靛"
],
[
@@ -988,6 +948,10 @@
"^ツー$",
"夕"
],
+ [
+ "^ンー$",
+ "夕"
+ ],
[
"炎獄ラヴァ",
"炎狱炎熔"
@@ -1065,17 +1029,13 @@
"艾雅法拉"
],
[
- ".*イヤフ(イ|ィ)ヤトラ",
+ "イヤフィヤトラ",
"艾雅法拉"
],
[
"イフリータ",
"伊芙利特"
],
- [
- "イフリー(夕|タ)",
- "伊芙利特"
- ],
[
"スカイフレア",
"天火"
@@ -1084,10 +1044,6 @@
"ギターノ",
"远山"
],
- [
- "ギ夕ーノ",
- "远山"
- ],
[
"ヘイズ",
"夜烟"
@@ -1097,21 +1053,17 @@
"史都华德"
],
[
- "スチュワー.*",
+ "スチュワー",
"史都华德"
],
[
- "^ラヴァ$",
+ "^ラヴァ",
"炎熔"
],
[
"ドゥリン",
"杜林"
],
- [
- "ドウリン",
- "杜林"
- ],
[
"ミヅキ",
"水月"
@@ -1129,7 +1081,7 @@
"歌蕾蒂娅"
],
[
- ".*レイデ(イ|ィ)ーア",
+ ".*レイディ.*ーア",
"歌蕾蒂娅"
],
[
@@ -1137,7 +1089,7 @@
"霜华"
],
[
- ".*[F=]r[Oo][Ss]t",
+ ".*[F=_]rost",
"霜华"
],
[
@@ -1148,10 +1100,6 @@
"カフカ",
"卡夫卡"
],
- [
- "(カ|力)フカ",
- "卡夫卡"
- ],
[
"ロビン",
"罗宾"
@@ -1168,10 +1116,6 @@
"ウィーディ",
"温蒂"
],
- [
- "ウィーデイ",
- "温蒂"
- ],
[
"ファソトム",
"傀影"
@@ -1185,11 +1129,11 @@
"阿"
],
[
- "スノーズソト",
+ "スノーズント",
"雪雉"
],
[
- "スノーズント",
+ "スノーズソト",
"雪雉"
],
[
@@ -1197,15 +1141,15 @@
"槐琥"
],
[
- "(ワ|フ)イフー",
+ "フイフー",
"槐琥"
],
[
- "イーサソ",
+ "イーサン",
"伊桑"
],
[
- "イーサン",
+ "イーサソ",
"伊桑"
],
[
@@ -1248,10 +1192,6 @@
"ロープ",
"暗索"
],
- [
- "ローブ",
- "暗索"
- ],
[
"コープ",
"暗索"
@@ -1284,14 +1224,6 @@
"フィアメッタ",
"菲亚梅塔"
],
- [
- "フイアメッタ",
- "菲亚梅塔"
- ],
- [
- "フイアメッ夕",
- "菲亚梅塔"
- ],
[
"耐水蝕コーティング装置",
"防水蚀镀膜装置"
@@ -1344,10 +1276,6 @@
"ブラックナイト",
"夜半"
],
- [
- "プラックナイト",
- "夜半"
- ],
[
"クエルクス",
"夏栎"
@@ -1408,10 +1336,6 @@
"アイリーニ",
"艾丽妮"
],
- [
- "アイリーニ",
- "艾丽妮"
- ],
[
"「クリップ」",
"\"夹子\""
@@ -1465,7 +1389,7 @@
"海蒂"
],
[
- "ハイデ.*",
+ "ハイデ",
"海蒂"
],
[
@@ -1497,7 +1421,7 @@
"澄闪"
],
[
- ".ールデングロー",
+ "ールデングロー",
"澄闪"
],
[
@@ -1509,7 +1433,7 @@
"归溟幽灵鲨"
],
[
- ".*溟ス(ベ|ペ)クター",
+ "溟スペクター",
"归溟幽灵鲨"
],
[
@@ -1705,7 +1629,7 @@
"濯尘芙蓉"
],
[
- ".+ハイ(ビ|ピ)スカス",
+ ".+ハイビスカス",
"濯尘芙蓉"
],
[
@@ -1780,16 +1704,12 @@
"パゼオンカ",
"鸿雪"
],
- [
- "パゼオン力",
- "鸿雪"
- ],
[
"百錬ガヴィル",
"百炼嘉维尔"
],
[
- ".*錬ガヴ(イ|ィ)ル",
+ ".*錬ガヴィル",
"百炼嘉维尔"
],
[
@@ -1821,7 +1741,7 @@
"荧光孢子"
],
[
- "実体プログラム",
+ "実体プログラム$",
"实体程式"
],
[
@@ -1853,7 +1773,7 @@
"本日配給"
]
},
- "Loading": {
+ "LoadingText": {
"text": [
"ニューラル",
"コネクタ",
@@ -1876,6 +1796,23 @@
"残り配置可能数"
]
},
+ "ExpiringMedicineCheck": {
+ "text": [
+ "分",
+ "時間",
+ "1日"
+ ],
+ "ocrReplace": [
+ [
+ ".+時間",
+ "時間"
+ ],
+ [
+ ".+分",
+ "分"
+ ]
+ ]
+ },
"GoLastBattle": {
"text": [
"前回の参加作戦"
@@ -3630,5 +3567,23 @@
"破坏协议-压制"
]
]
+ },
+ "RoguelikeRefreshSupportBtnOcr": {
+ "text": [
+ "サポート",
+ "更新"
+ ]
+ },
+ "RoguelikeChooseSupportBtnOcr": {
+ "text": [
+ "サポー"
+ ]
+ },
+ "Roguelike@RecruitSupportConfirm": {
+ "text": [
+ "サ.*ート",
+ "招集",
+ "召集"
+ ]
}
-}
+}
\ No newline at end of file
diff --git a/resource/global/YoStarKR/readme.md b/resource/global/YoStarKR/readme.md
deleted file mode 100644
index c207fe41fe..0000000000
--- a/resource/global/YoStarKR/readme.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# YoStarKR client
-
-## 韩服
-
-请进入 `设置` - `启动设置` - `客户端版本` 选择 `韩服`
-
-目前支持:
-
-- 刷理智(仅支持选择`当前关卡`)
-- 使用理智药恢复理智
-- 使用源石恢复理智
-- 指定次数
-
-## Korean
-
-Please go to `Settings` - `Startup Settings` - `Client Version` and select `YoStarKR`
-
-Now supports:
-
-- Auto battle (only supports selecting `current stage`)
-- Restore with potion
-- Restore with Originite
-- Set the max number of auto battles
-
-## 한국 서버
-
-`설정` - `시작 설정` - `클라이언트 버전`으로 이동하여 `요스타 KR`을 선택하세요.
-
-현재 다음과 같은 기능을 지원합니다.
-
-- 자동 전투(`현재` 스테이지 선택만 지원)
-- 이성 회복제로 이성 회복
-- 순오리지늄으로 이성 회복
-- 최대 자동 전투 횟수 설정
diff --git a/resource/global/YoStarKR/resource/tasks.json b/resource/global/YoStarKR/resource/tasks.json
index 9dec3cf403..82d77ed9b6 100644
--- a/resource/global/YoStarKR/resource/tasks.json
+++ b/resource/global/YoStarKR/resource/tasks.json
@@ -15,7 +15,7 @@
]
},
"CharsNameOcrReplace": {
- "Doc": "该任务的ocrReplace被所有涉及干员名的日文识别任务复用",
+ "Doc": "该任务的ocrReplace被所有涉及干员名的韩文识别任务复用 이 작업의 'ocrReplace'는 운영자 이름과 관련된 모든 인식 작업에서 재사용됩니다",
"ocrReplace": [
[
"실버애쉬",
diff --git a/resource/global/txwy/resource/tasks.json b/resource/global/txwy/resource/tasks.json
index 23c9799e74..f818fa3ef5 100644
--- a/resource/global/txwy/resource/tasks.json
+++ b/resource/global/txwy/resource/tasks.json
@@ -17,22 +17,22 @@
"殘陽"
]
},
- "LevelOfDifficulty": {
+ "LevelOfDifficulty": {
"text": [
"環境",
"PRTS"
]
- },
+ },
"EnterChapterDifficultyHard": {
"text": [
"進入",
- "作戰"
+ "作戰"
]
},
"EnterChapterDifficultyNormal": {
"text": [
"進入",
- "作戰"
+ "作戰"
]
},
"StageEpisodeToOF": {
@@ -51,7 +51,7 @@
"algorithm": "OcrDetect",
"text": [
"愚人號",
- "活動",
+ "活動",
"關卡已開放"
],
"roi": [
@@ -61,21 +61,21 @@
150
]
},
- "SN-Chapter2": {
- "preDelay":2000,
+ "SN-Chapter2": {
+ "preDelay": 2000,
"next": [
"SN-Chapter2",
"ChapterSwipeToTheRight"
]
},
"SN-Chapter3": {
- "preDelay":2000,
+ "preDelay": 2000,
"next": [
"SN-Chapter3",
"ChapterSwipeToTheLeft"
]
},
- "BattleStartPre": {
+ "BattleStartPre": {
"text": [
"開始行動",
"開始突襲",
@@ -93,7 +93,7 @@
]
},
"CharsNameOcrReplace": {
- "Doc": "该任务的 ocrReplace 被所有涉及干员名的English Name识别任务复用",
+ "Doc": "该任务的 ocrReplace 被所有涉及干员名的繁中识别任务复用",
"ocrReplace": [
[
"安比爾",
@@ -112,11 +112,11 @@
"杰西卡"
],
[
- "潔絮西卡",
+ "潔絮西卡",
"杰西卡"
],
- [
- "絮西卡",
+ [
+ "絮西卡",
"杰西卡"
],
[
@@ -823,15 +823,15 @@
"澄閃",
"澄闪"
],
- [
+ [
"風丸",
"风丸"
],
- [
+ [
"見行者",
"见行者"
],
- [
+ [
"菲亞梅塔",
"菲亚梅塔"
],
@@ -839,19 +839,19 @@
"號角",
"号角"
],
- [
+ [
"歸溟幽靈鯊",
"归溟幽灵鲨"
],
- [
+ [
"掠風",
"掠风"
],
- [
+ [
"流明",
"流明"
],
- [
+ [
"艾麗妮",
"艾丽妮"
]
@@ -862,7 +862,7 @@
"今日配給"
]
},
- "Loading": {
+ "LoadingText": {
"text": [
"正在提交",
"反饋至神經"
@@ -1062,12 +1062,12 @@
"採"
]
},
- "CreditShop-NoMoney": {
+ "CreditShop-NoMoney": {
"text": [
"信用不足",
"無法購買"
]
- },
+ },
"InfrastReward": {
"text": [
"可收穫",
diff --git a/resource/item_index.json b/resource/item_index.json
index 90a312a2a3..e1f981942d 100644
--- a/resource/item_index.json
+++ b/resource/item_index.json
@@ -1595,9 +1595,9 @@
"classifyType": "CONSUME",
"description": "面对训练数据不足的问题,工程部生产了全新的芯片印刻仪以供干员们自行打印。",
"icon": "itempack_mod_11.png",
- "name": "术士芯片组印刻仪",
+ "name": "术师芯片组印刻仪",
"sortId": -10000,
- "usage": "一次性自助芯片印刻器械,存储了大量训练记录与材料,根据术士干员们的需求,可以轻松印刻出芯片组合。"
+ "usage": "一次性自助芯片印刻器械,存储了大量训练记录与材料,根据术师干员们的需求,可以轻松印刻出芯片组合。"
},
"itempack_mod_12": {
"classifyType": "CONSUME",
diff --git a/resource/ocr_config.json b/resource/ocr_config.json
new file mode 100644
index 0000000000..adcdd47982
--- /dev/null
+++ b/resource/ocr_config.json
@@ -0,0 +1,3 @@
+{
+ "equivalence_classes": []
+}
\ No newline at end of file
diff --git a/resource/stages.json b/resource/stages.json
index 0c14bc15c1..f7ee7b85ee 100644
--- a/resource/stages.json
+++ b/resource/stages.json
@@ -126,9 +126,6 @@
}
},
"minClearTime": 63700,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_00-01",
"stageType": "MAIN",
"zoneId": "main_0"
@@ -260,9 +257,6 @@
}
},
"minClearTime": 73000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_00-02",
"stageType": "MAIN",
"zoneId": "main_0"
@@ -394,9 +388,6 @@
}
},
"minClearTime": 88600,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_00-03",
"stageType": "MAIN",
"zoneId": "main_0"
@@ -528,9 +519,6 @@
}
},
"minClearTime": 120600,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_00-04",
"stageType": "MAIN",
"zoneId": "main_0"
@@ -662,9 +650,6 @@
}
},
"minClearTime": 95000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_00-05",
"stageType": "MAIN",
"zoneId": "main_0"
@@ -796,9 +781,6 @@
}
},
"minClearTime": 101800,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_00-06",
"stageType": "MAIN",
"zoneId": "main_0"
@@ -930,9 +912,6 @@
}
},
"minClearTime": 92000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_00-07",
"stageType": "MAIN",
"zoneId": "main_0"
@@ -1064,9 +1043,6 @@
}
},
"minClearTime": 102000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_00-08",
"stageType": "MAIN",
"zoneId": "main_0"
@@ -1198,9 +1174,6 @@
}
},
"minClearTime": 102000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_00-09",
"stageType": "MAIN",
"zoneId": "main_0"
@@ -1332,9 +1305,6 @@
}
},
"minClearTime": 113600,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_00-10",
"stageType": "MAIN",
"zoneId": "main_0"
@@ -1466,9 +1436,6 @@
}
},
"minClearTime": 103000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_00-11",
"stageType": "MAIN",
"zoneId": "main_0"
@@ -1592,9 +1559,6 @@
}
},
"minClearTime": 137000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_01-01",
"stageType": "MAIN",
"zoneId": "main_1"
@@ -1785,9 +1749,6 @@
}
},
"minClearTime": 112000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_01-03",
"stageType": "MAIN",
"zoneId": "main_1"
@@ -1911,9 +1872,6 @@
}
},
"minClearTime": 135000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_01-04",
"stageType": "MAIN",
"zoneId": "main_1"
@@ -2045,9 +2003,6 @@
}
},
"minClearTime": 165000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_01-05",
"stageType": "MAIN",
"zoneId": "main_1"
@@ -2179,9 +2134,6 @@
}
},
"minClearTime": 174000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_01-06",
"stageType": "MAIN",
"zoneId": "main_1"
@@ -2313,9 +2265,6 @@
}
},
"minClearTime": 118000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_01-07",
"stageType": "MAIN",
"zoneId": "main_1"
@@ -2447,9 +2396,6 @@
}
},
"minClearTime": 130100,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_01-08",
"stageType": "MAIN",
"zoneId": "main_1"
@@ -2581,9 +2527,6 @@
}
},
"minClearTime": 120000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_01-09",
"stageType": "MAIN",
"zoneId": "main_1"
@@ -2715,9 +2658,6 @@
}
},
"minClearTime": 120000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_01-10",
"stageType": "MAIN",
"zoneId": "main_1"
@@ -2908,9 +2848,6 @@
}
},
"minClearTime": 144000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_01-12",
"stageType": "MAIN",
"zoneId": "main_1"
@@ -3042,9 +2979,6 @@
}
},
"minClearTime": 184000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_02-01",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -3176,9 +3110,6 @@
}
},
"minClearTime": 166700,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_02-02",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -3310,9 +3241,6 @@
}
},
"minClearTime": 218700,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_02-03",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -3444,9 +3372,6 @@
}
},
"minClearTime": 149000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_02-04",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -3578,9 +3503,6 @@
}
},
"minClearTime": 170500,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_02-05",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -3712,9 +3634,6 @@
}
},
"minClearTime": 174000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_02-06",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -3838,9 +3757,6 @@
}
},
"minClearTime": 176000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_02-07",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -3972,9 +3888,6 @@
}
},
"minClearTime": 187000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_02-08",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -4106,9 +4019,6 @@
}
},
"minClearTime": 193000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_02-09",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -4240,9 +4150,6 @@
}
},
"minClearTime": 171000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_02-10",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -4374,9 +4281,6 @@
}
},
"minClearTime": 113000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_02-01",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -4500,9 +4404,6 @@
}
},
"minClearTime": 132000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_02-02",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -4634,9 +4535,6 @@
}
},
"minClearTime": 130000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_02-03",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -4760,9 +4658,6 @@
}
},
"minClearTime": 144000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_02-04",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -4894,9 +4789,6 @@
}
},
"minClearTime": 178000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_02-05",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -5028,9 +4920,6 @@
}
},
"minClearTime": 142000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_02-06",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -5162,9 +5051,6 @@
}
},
"minClearTime": 166000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_02-07",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -5296,9 +5182,6 @@
}
},
"minClearTime": 110000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_02-08",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -5430,9 +5313,6 @@
}
},
"minClearTime": 142000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_02-09",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -5564,9 +5444,6 @@
}
},
"minClearTime": 172000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_02-10",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -5690,9 +5567,6 @@
}
},
"minClearTime": 179000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_02-11",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -5816,9 +5690,6 @@
}
},
"minClearTime": 135000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_02-12",
"stageType": "MAIN",
"zoneId": "main_2"
@@ -5950,9 +5821,6 @@
}
},
"minClearTime": 181000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_03-01",
"stageType": "MAIN",
"zoneId": "main_3"
@@ -6076,9 +5944,6 @@
}
},
"minClearTime": 173000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_03-02",
"stageType": "MAIN",
"zoneId": "main_3"
@@ -6202,9 +6067,6 @@
}
},
"minClearTime": 172700,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_03-03",
"stageType": "MAIN",
"zoneId": "main_3"
@@ -6328,9 +6190,6 @@
}
},
"minClearTime": 216400,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_03-04",
"stageType": "MAIN",
"zoneId": "main_3"
@@ -6454,9 +6313,6 @@
}
},
"minClearTime": 165000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_03-05",
"stageType": "MAIN",
"zoneId": "main_3"
@@ -6580,9 +6436,6 @@
}
},
"minClearTime": 138000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_03-06",
"stageType": "MAIN",
"zoneId": "main_3"
@@ -6714,9 +6567,6 @@
}
},
"minClearTime": 238700,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_03-07",
"stageType": "MAIN",
"zoneId": "main_3"
@@ -6872,9 +6722,6 @@
}
},
"minClearTime": 205000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_03-08",
"stageType": "MAIN",
"zoneId": "main_3"
@@ -7006,9 +6853,6 @@
}
},
"minClearTime": 130000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_03-1-1",
"stageType": "SUB",
"zoneId": "main_3"
@@ -7132,9 +6976,6 @@
}
},
"minClearTime": 125000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_03-1-2",
"stageType": "SUB",
"zoneId": "main_3"
@@ -7266,9 +7107,6 @@
}
},
"minClearTime": 208000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_03-2-1",
"stageType": "SUB",
"zoneId": "main_3"
@@ -7392,9 +7230,6 @@
}
},
"minClearTime": 136000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_03-2-2",
"stageType": "SUB",
"zoneId": "main_3"
@@ -7518,9 +7353,6 @@
}
},
"minClearTime": 147200,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_03-2-3",
"stageType": "SUB",
"zoneId": "main_3"
@@ -7660,9 +7492,6 @@
}
},
"minClearTime": 201000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_04-01",
"stageType": "MAIN",
"zoneId": "main_4"
@@ -7834,9 +7663,6 @@
}
},
"minClearTime": 140000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_04-02",
"stageType": "MAIN",
"zoneId": "main_4"
@@ -7984,9 +7810,6 @@
}
},
"minClearTime": 217500,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_04-03",
"stageType": "MAIN",
"zoneId": "main_4"
@@ -8142,9 +7965,6 @@
}
},
"minClearTime": 174000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_04-04",
"stageType": "MAIN",
"zoneId": "main_4"
@@ -8300,9 +8120,6 @@
}
},
"minClearTime": 173000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_04-05",
"stageType": "MAIN",
"zoneId": "main_4"
@@ -8458,9 +8275,6 @@
}
},
"minClearTime": 198000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_04-06",
"stageType": "MAIN",
"zoneId": "main_4"
@@ -8616,9 +8430,6 @@
}
},
"minClearTime": 200000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_04-07",
"stageType": "MAIN",
"zoneId": "main_4"
@@ -8782,9 +8593,6 @@
}
},
"minClearTime": 166000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_04-08",
"stageType": "MAIN",
"zoneId": "main_4"
@@ -8948,9 +8756,6 @@
}
},
"minClearTime": 216500,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_04-09",
"stageType": "MAIN",
"zoneId": "main_4"
@@ -9098,9 +8903,6 @@
}
},
"minClearTime": 240500,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_04-10",
"stageType": "MAIN",
"zoneId": "main_4"
@@ -9272,9 +9074,6 @@
}
},
"minClearTime": 179000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_04-1-1",
"stageType": "SUB",
"zoneId": "main_4"
@@ -9414,9 +9213,6 @@
}
},
"minClearTime": 214000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_04-1-2",
"stageType": "SUB",
"zoneId": "main_4"
@@ -9572,9 +9368,6 @@
}
},
"minClearTime": 160000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_04-1-3",
"stageType": "SUB",
"zoneId": "main_4"
@@ -9730,9 +9523,6 @@
}
},
"minClearTime": 181000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_04-2-1",
"stageType": "SUB",
"zoneId": "main_4"
@@ -9872,9 +9662,6 @@
}
},
"minClearTime": 150000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_04-2-2",
"stageType": "SUB",
"zoneId": "main_4"
@@ -10030,9 +9817,6 @@
}
},
"minClearTime": 120000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_04-2-3",
"stageType": "SUB",
"zoneId": "main_4"
@@ -10188,9 +9972,6 @@
}
},
"minClearTime": 199000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_04-3-1",
"stageType": "SUB",
"zoneId": "main_4"
@@ -10330,9 +10111,6 @@
}
},
"minClearTime": 195000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_04-3-2",
"stageType": "SUB",
"zoneId": "main_4"
@@ -10496,9 +10274,6 @@
}
},
"minClearTime": 247000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_04-3-3",
"stageType": "SUB",
"zoneId": "main_4"
@@ -10782,9 +10557,6 @@
}
},
"minClearTime": 99000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_armor_1",
"stageType": "DAILY",
"zoneId": "weekly_8"
@@ -10852,9 +10624,6 @@
}
},
"minClearTime": 118000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_armor_2",
"stageType": "DAILY",
"zoneId": "weekly_8"
@@ -10930,9 +10699,6 @@
}
},
"minClearTime": 136000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_armor_3",
"stageType": "DAILY",
"zoneId": "weekly_8"
@@ -11008,9 +10774,6 @@
}
},
"minClearTime": 121000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_armor_4",
"stageType": "DAILY",
"zoneId": "weekly_8"
@@ -11086,9 +10849,6 @@
}
},
"minClearTime": 204000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_armor_5",
"stageType": "DAILY",
"zoneId": "weekly_8"
@@ -11156,9 +10916,6 @@
}
},
"minClearTime": 97000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_fly_1",
"stageType": "DAILY",
"zoneId": "weekly_6"
@@ -11226,9 +10983,6 @@
}
},
"minClearTime": 101000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_fly_2",
"stageType": "DAILY",
"zoneId": "weekly_6"
@@ -11304,9 +11058,6 @@
}
},
"minClearTime": 152000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_fly_3",
"stageType": "DAILY",
"zoneId": "weekly_6"
@@ -11390,9 +11141,6 @@
}
},
"minClearTime": 191000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_fly_4",
"stageType": "DAILY",
"zoneId": "weekly_6"
@@ -11476,9 +11224,6 @@
}
},
"minClearTime": 173000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_fly_5",
"stageType": "DAILY",
"zoneId": "weekly_6"
@@ -11630,9 +11375,6 @@
}
},
"minClearTime": 166000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_05-01",
"stageType": "MAIN",
"zoneId": "main_5"
@@ -11792,9 +11534,6 @@
}
},
"minClearTime": 187000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_05-02",
"stageType": "MAIN",
"zoneId": "main_5"
@@ -11874,9 +11613,6 @@
}
},
"minClearTime": 218000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_05-03",
"stageType": "MAIN",
"zoneId": "main_5"
@@ -12028,9 +11764,6 @@
}
},
"minClearTime": 176000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_05-04",
"stageType": "MAIN",
"zoneId": "main_5"
@@ -12190,9 +11923,6 @@
}
},
"minClearTime": 193000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_05-05",
"stageType": "MAIN",
"zoneId": "main_5"
@@ -12360,9 +12090,6 @@
}
},
"minClearTime": 314000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_05-06",
"stageType": "MAIN",
"zoneId": "main_5"
@@ -12442,9 +12169,6 @@
}
},
"minClearTime": 182800,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_05-07",
"stageType": "MAIN",
"zoneId": "main_5"
@@ -12604,9 +12328,6 @@
}
},
"minClearTime": 188000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_05-08",
"stageType": "MAIN",
"zoneId": "main_5"
@@ -12758,9 +12479,6 @@
}
},
"minClearTime": 194000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_05-09",
"stageType": "MAIN",
"zoneId": "main_5"
@@ -12843,9 +12561,6 @@
}
},
"minClearTime": 337000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_05-10",
"stageType": "MAIN",
"zoneId": "main_5"
@@ -12925,9 +12640,6 @@
}
},
"minClearTime": 193000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_05-1-1",
"stageType": "SUB",
"zoneId": "main_5"
@@ -13087,9 +12799,6 @@
}
},
"minClearTime": 176000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_05-1-2",
"stageType": "SUB",
"zoneId": "main_5"
@@ -13161,9 +12870,6 @@
}
},
"minClearTime": 180000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_05-2-1",
"stageType": "SUB",
"zoneId": "main_5"
@@ -13243,9 +12949,6 @@
}
},
"minClearTime": 184000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_05-2-2",
"stageType": "SUB",
"zoneId": "main_5"
@@ -13317,9 +13020,6 @@
}
},
"minClearTime": 208000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_05-3-1",
"stageType": "SUB",
"zoneId": "main_5"
@@ -13487,9 +13187,6 @@
}
},
"minClearTime": 196000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_05-3-2",
"stageType": "SUB",
"zoneId": "main_5"
@@ -14569,9 +14266,6 @@
}
},
"minClearTime": 183000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_06-01",
"stageType": "MAIN",
"zoneId": "main_6"
@@ -14731,9 +14425,6 @@
}
},
"minClearTime": 206000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_06-02",
"stageType": "MAIN",
"zoneId": "main_6"
@@ -14885,9 +14576,6 @@
}
},
"minClearTime": 172000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_06-03",
"stageType": "MAIN",
"zoneId": "main_6"
@@ -15047,9 +14735,6 @@
}
},
"minClearTime": 155000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_06-04",
"stageType": "MAIN",
"zoneId": "main_6"
@@ -15129,9 +14814,6 @@
}
},
"minClearTime": 241000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_06-05",
"stageType": "MAIN",
"zoneId": "main_6"
@@ -15362,9 +15044,6 @@
}
},
"minClearTime": 140000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_06-07",
"stageType": "MAIN",
"zoneId": "main_6"
@@ -15444,9 +15123,6 @@
}
},
"minClearTime": 158000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_06-08",
"stageType": "MAIN",
"zoneId": "main_6"
@@ -15598,9 +15274,6 @@
}
},
"minClearTime": 174200,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_06-09",
"stageType": "MAIN",
"zoneId": "main_6"
@@ -15680,9 +15353,6 @@
}
},
"minClearTime": 236000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_06-10",
"stageType": "MAIN",
"zoneId": "main_6"
@@ -15858,9 +15528,6 @@
}
},
"minClearTime": 171000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_06-11",
"stageType": "MAIN",
"zoneId": "main_6"
@@ -16012,9 +15679,6 @@
}
},
"minClearTime": 194000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_06-12",
"stageType": "MAIN",
"zoneId": "main_6"
@@ -16174,9 +15838,6 @@
}
},
"minClearTime": 184000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_06-13",
"stageType": "MAIN",
"zoneId": "main_6"
@@ -16256,9 +15917,6 @@
}
},
"minClearTime": 312000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_06-14",
"stageType": "MAIN",
"zoneId": "main_6"
@@ -16445,9 +16103,6 @@
}
},
"minClearTime": 122000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_03-3-1",
"stageType": "SUB",
"zoneId": "main_3"
@@ -16595,9 +16250,6 @@
}
},
"minClearTime": 129000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_04-4-1",
"stageType": "SUB",
"zoneId": "main_4"
@@ -16757,9 +16409,6 @@
}
},
"minClearTime": 148000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_05-4-1",
"stageType": "SUB",
"zoneId": "main_5"
@@ -16919,9 +16568,6 @@
}
},
"minClearTime": 148000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_05-4-2",
"stageType": "SUB",
"zoneId": "main_5"
@@ -17073,9 +16719,6 @@
}
},
"minClearTime": 172000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_06-1-1",
"stageType": "SUB",
"zoneId": "main_6"
@@ -17147,9 +16790,6 @@
}
},
"minClearTime": 203000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_06-1-2",
"stageType": "SUB",
"zoneId": "main_6"
@@ -17229,9 +16869,6 @@
}
},
"minClearTime": 195000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_06-2-1",
"stageType": "SUB",
"zoneId": "main_6"
@@ -17375,9 +17012,6 @@
}
},
"minClearTime": 180000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_06-2-2",
"stageType": "SUB",
"zoneId": "main_6"
@@ -18231,9 +17865,6 @@
}
},
"minClearTime": 125000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_melee_1",
"stageType": "DAILY",
"zoneId": "weekly_9"
@@ -18293,9 +17924,6 @@
}
},
"minClearTime": 144000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_melee_2",
"stageType": "DAILY",
"zoneId": "weekly_9"
@@ -18355,9 +17983,6 @@
}
},
"minClearTime": 141000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_melee_3",
"stageType": "DAILY",
"zoneId": "weekly_9"
@@ -18417,9 +18042,6 @@
}
},
"minClearTime": 172800,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_melee_4",
"stageType": "DAILY",
"zoneId": "weekly_9"
@@ -18479,9 +18101,6 @@
}
},
"minClearTime": 196000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_melee_5",
"stageType": "DAILY",
"zoneId": "weekly_9"
@@ -18542,8 +18161,7 @@
},
"minClearTime": 83000,
"recognitionOnly": [
- "4006",
- "act14mini_token_fu"
+ "4006"
],
"stageId": "wk_toxic_1",
"stageType": "DAILY",
@@ -18605,8 +18223,7 @@
},
"minClearTime": 139000,
"recognitionOnly": [
- "4006",
- "act14mini_token_fu"
+ "4006"
],
"stageId": "wk_toxic_2",
"stageType": "DAILY",
@@ -18668,8 +18285,7 @@
},
"minClearTime": 160000,
"recognitionOnly": [
- "4006",
- "act14mini_token_fu"
+ "4006"
],
"stageId": "wk_toxic_3",
"stageType": "DAILY",
@@ -18731,8 +18347,7 @@
},
"minClearTime": 123000,
"recognitionOnly": [
- "4006",
- "act14mini_token_fu"
+ "4006"
],
"stageId": "wk_toxic_4",
"stageType": "DAILY",
@@ -18794,8 +18409,7 @@
},
"minClearTime": 208000,
"recognitionOnly": [
- "4006",
- "act14mini_token_fu"
+ "4006"
],
"stageId": "wk_toxic_5",
"stageType": "DAILY",
@@ -19615,9 +19229,6 @@
}
},
"minClearTime": 175000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_07-01",
"stageType": "MAIN",
"zoneId": "main_7"
@@ -19689,9 +19300,6 @@
}
},
"minClearTime": 233000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_07-02",
"stageType": "MAIN",
"zoneId": "main_7"
@@ -19859,9 +19467,6 @@
}
},
"minClearTime": 184000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_07-03",
"stageType": "MAIN",
"zoneId": "main_7"
@@ -20021,9 +19626,6 @@
}
},
"minClearTime": 213000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_07-04",
"stageType": "MAIN",
"zoneId": "main_7"
@@ -20103,9 +19705,6 @@
}
},
"minClearTime": 209000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_07-05",
"stageType": "MAIN",
"zoneId": "main_7"
@@ -20281,9 +19880,6 @@
}
},
"minClearTime": 182000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_07-06",
"stageType": "MAIN",
"zoneId": "main_7"
@@ -20451,9 +20047,6 @@
}
},
"minClearTime": 207000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_07-07",
"stageType": "MAIN",
"zoneId": "main_7"
@@ -20605,9 +20198,6 @@
}
},
"minClearTime": 170000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_07-08",
"stageType": "MAIN",
"zoneId": "main_7"
@@ -20687,9 +20277,6 @@
}
},
"minClearTime": 199000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_07-09",
"stageType": "MAIN",
"zoneId": "main_7"
@@ -20769,9 +20356,6 @@
}
},
"minClearTime": 226000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_07-10",
"stageType": "MAIN",
"zoneId": "main_7"
@@ -20923,9 +20507,6 @@
}
},
"minClearTime": 183000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_07-11",
"stageType": "MAIN",
"zoneId": "main_7"
@@ -21077,9 +20658,6 @@
}
},
"minClearTime": 196000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_07-12",
"stageType": "MAIN",
"zoneId": "main_7"
@@ -21247,9 +20825,6 @@
}
},
"minClearTime": 200000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_07-13",
"stageType": "MAIN",
"zoneId": "main_7"
@@ -21329,9 +20904,6 @@
}
},
"minClearTime": 195000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_07-14",
"stageType": "MAIN",
"zoneId": "main_7"
@@ -21507,9 +21079,6 @@
}
},
"minClearTime": 219000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_07-15",
"stageType": "MAIN",
"zoneId": "main_7"
@@ -21589,9 +21158,6 @@
}
},
"minClearTime": 227000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_07-16",
"stageType": "MAIN",
"zoneId": "main_7"
@@ -21735,9 +21301,6 @@
}
},
"minClearTime": 141000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_07-1-1",
"stageType": "MAIN",
"zoneId": "main_7"
@@ -21809,9 +21372,6 @@
}
},
"minClearTime": 188000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_07-1-2",
"stageType": "MAIN",
"zoneId": "main_7"
@@ -22090,9 +21650,6 @@
}
},
"minClearTime": 167800,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "pro_a_1",
"stageType": "DAILY",
"zoneId": "weekly_1"
@@ -22168,9 +21725,6 @@
}
},
"minClearTime": 214500,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "pro_a_2",
"stageType": "DAILY",
"zoneId": "weekly_1"
@@ -22246,9 +21800,6 @@
}
},
"minClearTime": 151000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "pro_b_1",
"stageType": "DAILY",
"zoneId": "weekly_1"
@@ -22324,9 +21875,6 @@
}
},
"minClearTime": 213000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "pro_b_2",
"stageType": "DAILY",
"zoneId": "weekly_1"
@@ -22402,9 +21950,6 @@
}
},
"minClearTime": 145000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "pro_c_1",
"stageType": "DAILY",
"zoneId": "weekly_1"
@@ -22480,9 +22025,6 @@
}
},
"minClearTime": 179000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "pro_c_2",
"stageType": "DAILY",
"zoneId": "weekly_1"
@@ -22558,9 +22100,6 @@
}
},
"minClearTime": 173800,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "pro_d_1",
"stageType": "DAILY",
"zoneId": "weekly_1"
@@ -22636,9 +22175,6 @@
}
},
"minClearTime": 205000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "pro_d_2",
"stageType": "DAILY",
"zoneId": "weekly_1"
@@ -22714,9 +22250,6 @@
}
},
"minClearTime": 112000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_kc_1",
"stageType": "DAILY",
"zoneId": "weekly_7"
@@ -22792,9 +22325,6 @@
}
},
"minClearTime": 111000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_kc_2",
"stageType": "DAILY",
"zoneId": "weekly_7"
@@ -22878,9 +22408,6 @@
}
},
"minClearTime": 140000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_kc_3",
"stageType": "DAILY",
"zoneId": "weekly_7"
@@ -22972,9 +22499,6 @@
}
},
"minClearTime": 130000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_kc_4",
"stageType": "DAILY",
"zoneId": "weekly_7"
@@ -23058,9 +22582,6 @@
}
},
"minClearTime": 174500,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_kc_5",
"stageType": "DAILY",
"zoneId": "weekly_7"
@@ -25166,9 +24687,6 @@
}
},
"minClearTime": 147000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_05-4-3",
"stageType": "SUB",
"zoneId": "main_5"
@@ -25248,9 +24766,6 @@
}
},
"minClearTime": 147000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_03-3-2",
"stageType": "SUB",
"zoneId": "main_3"
@@ -25394,9 +24909,6 @@
}
},
"minClearTime": 187000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_08-01",
"stageType": "MAIN",
"zoneId": "main_8"
@@ -25572,9 +25084,6 @@
}
},
"minClearTime": 171000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_08-02",
"stageType": "MAIN",
"zoneId": "main_8"
@@ -25734,9 +25243,6 @@
}
},
"minClearTime": 169000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_08-03",
"stageType": "MAIN",
"zoneId": "main_8"
@@ -25808,9 +25314,6 @@
}
},
"minClearTime": 163000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_08-04",
"stageType": "MAIN",
"zoneId": "main_8"
@@ -25890,9 +25393,6 @@
}
},
"minClearTime": 219000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_08-05",
"stageType": "MAIN",
"zoneId": "main_8"
@@ -26044,9 +25544,6 @@
}
},
"minClearTime": 193000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_08-06",
"stageType": "MAIN",
"zoneId": "main_8"
@@ -26222,9 +25719,6 @@
}
},
"minClearTime": 211000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_08-07",
"stageType": "MAIN",
"zoneId": "main_8"
@@ -26304,9 +25798,6 @@
}
},
"minClearTime": 280000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_08-08",
"stageType": "MAIN",
"zoneId": "main_8"
@@ -26386,9 +25877,6 @@
}
},
"minClearTime": 220000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_08-09",
"stageType": "MAIN",
"zoneId": "main_8"
@@ -26540,9 +26028,6 @@
}
},
"minClearTime": 207000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_08-10",
"stageType": "MAIN",
"zoneId": "main_8"
@@ -26702,9 +26187,6 @@
}
},
"minClearTime": 175000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_08-11",
"stageType": "MAIN",
"zoneId": "main_8"
@@ -26784,9 +26266,6 @@
}
},
"minClearTime": 157000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_08-12",
"stageType": "MAIN",
"zoneId": "main_8"
@@ -26938,9 +26417,6 @@
}
},
"minClearTime": 274000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_08-13",
"stageType": "MAIN",
"zoneId": "main_8"
@@ -27092,9 +26568,6 @@
}
},
"minClearTime": 257000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_08-14",
"stageType": "MAIN",
"zoneId": "main_8"
@@ -27325,9 +26798,6 @@
}
},
"minClearTime": 187000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_08-16",
"stageType": "MAIN",
"zoneId": "main_8"
@@ -27495,9 +26965,6 @@
}
},
"minClearTime": 295000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_08-17",
"stageType": "MAIN",
"zoneId": "main_8"
@@ -39487,9 +38954,6 @@
}
},
"minClearTime": null,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_09-01",
"stageType": "MAIN",
"zoneId": "main_9"
@@ -39561,9 +39025,6 @@
}
},
"minClearTime": 205000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_09-02",
"stageType": "MAIN",
"zoneId": "main_9"
@@ -39723,9 +39184,6 @@
}
},
"minClearTime": 219000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_09-03",
"stageType": "MAIN",
"zoneId": "main_9"
@@ -39901,9 +39359,6 @@
}
},
"minClearTime": 176000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_09-04",
"stageType": "MAIN",
"zoneId": "main_9"
@@ -40063,9 +39518,6 @@
}
},
"minClearTime": 231000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_09-05",
"stageType": "MAIN",
"zoneId": "main_9"
@@ -40225,9 +39677,6 @@
}
},
"minClearTime": 176000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_09-06",
"stageType": "MAIN",
"zoneId": "main_9"
@@ -40387,9 +39836,6 @@
}
},
"minClearTime": 204000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_09-07",
"stageType": "MAIN",
"zoneId": "main_9"
@@ -40557,9 +40003,6 @@
}
},
"minClearTime": 204000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_09-08",
"stageType": "MAIN",
"zoneId": "main_9"
@@ -40711,9 +40154,6 @@
}
},
"minClearTime": 183000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_09-09",
"stageType": "MAIN",
"zoneId": "main_9"
@@ -40873,9 +40313,6 @@
}
},
"minClearTime": 193000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_09-10",
"stageType": "MAIN",
"zoneId": "main_9"
@@ -41035,9 +40472,6 @@
}
},
"minClearTime": 184000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_09-11",
"stageType": "MAIN",
"zoneId": "main_9"
@@ -41181,9 +40615,6 @@
}
},
"minClearTime": 208000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_09-12",
"stageType": "MAIN",
"zoneId": "main_9"
@@ -41343,9 +40774,6 @@
}
},
"minClearTime": 180000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_09-13",
"stageType": "MAIN",
"zoneId": "main_9"
@@ -41425,9 +40853,6 @@
}
},
"minClearTime": 218000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_09-14",
"stageType": "MAIN",
"zoneId": "main_9"
@@ -41587,9 +41012,6 @@
}
},
"minClearTime": 182000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_09-15",
"stageType": "MAIN",
"zoneId": "main_9"
@@ -41765,9 +41187,6 @@
}
},
"minClearTime": 225000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_09-16",
"stageType": "MAIN",
"zoneId": "main_9"
@@ -41927,9 +41346,6 @@
}
},
"minClearTime": 276000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_09-17",
"stageType": "MAIN",
"zoneId": "main_9"
@@ -42105,9 +41521,6 @@
}
},
"minClearTime": 204000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "sub_09-1-1",
"stageType": "SUB",
"zoneId": "main_9"
@@ -49372,9 +48785,6 @@
}
},
"minClearTime": 170000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_10-01",
"stageType": "MAIN",
"zoneId": "main_10_tough"
@@ -49518,9 +48928,6 @@
}
},
"minClearTime": 170000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_10-01",
"stageType": "MAIN",
"zoneId": "main_10"
@@ -49696,9 +49103,6 @@
}
},
"minClearTime": 158000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_10-02",
"stageType": "MAIN",
"zoneId": "main_10_tough"
@@ -49874,9 +49278,6 @@
}
},
"minClearTime": 158000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_10-02",
"stageType": "MAIN",
"zoneId": "main_10"
@@ -49956,9 +49357,6 @@
}
},
"minClearTime": 189000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_10-03",
"stageType": "MAIN",
"zoneId": "main_10_tough"
@@ -50038,9 +49436,6 @@
}
},
"minClearTime": 189000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_10-03",
"stageType": "MAIN",
"zoneId": "main_10"
@@ -50208,9 +49603,6 @@
}
},
"minClearTime": 180000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_10-04",
"stageType": "MAIN",
"zoneId": "main_10"
@@ -50378,9 +49770,6 @@
}
},
"minClearTime": 180000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_10-04",
"stageType": "MAIN",
"zoneId": "main_10_tough"
@@ -50524,9 +49913,6 @@
}
},
"minClearTime": 182000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_10-05",
"stageType": "MAIN",
"zoneId": "main_10_tough"
@@ -50670,9 +50056,6 @@
}
},
"minClearTime": 182000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_10-05",
"stageType": "MAIN",
"zoneId": "main_10"
@@ -50824,9 +50207,6 @@
}
},
"minClearTime": 205000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_10-06",
"stageType": "MAIN",
"zoneId": "main_10"
@@ -50978,9 +50358,6 @@
}
},
"minClearTime": 205000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_10-06",
"stageType": "MAIN",
"zoneId": "main_10_tough"
@@ -51140,9 +50517,6 @@
}
},
"minClearTime": 158000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_10-07",
"stageType": "MAIN",
"zoneId": "main_10_tough"
@@ -51302,9 +50676,6 @@
}
},
"minClearTime": 158000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_10-07",
"stageType": "MAIN",
"zoneId": "main_10"
@@ -51464,9 +50835,6 @@
}
},
"minClearTime": 180000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_10-08",
"stageType": "MAIN",
"zoneId": "main_10"
@@ -51626,9 +50994,6 @@
}
},
"minClearTime": 180000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_10-08",
"stageType": "MAIN",
"zoneId": "main_10_tough"
@@ -51780,9 +51145,6 @@
}
},
"minClearTime": 188000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_10-09",
"stageType": "MAIN",
"zoneId": "main_10_tough"
@@ -51934,9 +51296,6 @@
}
},
"minClearTime": 188000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_10-09",
"stageType": "MAIN",
"zoneId": "main_10"
@@ -52112,9 +51471,6 @@
}
},
"minClearTime": 212000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_10-10",
"stageType": "MAIN",
"zoneId": "main_10_tough"
@@ -52290,9 +51646,6 @@
}
},
"minClearTime": 212000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_10-10",
"stageType": "MAIN",
"zoneId": "main_10"
@@ -52460,9 +51813,6 @@
}
},
"minClearTime": 191000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_10-11",
"stageType": "MAIN",
"zoneId": "main_10"
@@ -52630,9 +51980,6 @@
}
},
"minClearTime": 191000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_10-11",
"stageType": "MAIN",
"zoneId": "main_10_tough"
@@ -52800,9 +52147,6 @@
}
},
"minClearTime": 157000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_10-12",
"stageType": "MAIN",
"zoneId": "main_10"
@@ -52970,9 +52314,6 @@
}
},
"minClearTime": 157000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_10-12",
"stageType": "MAIN",
"zoneId": "main_10_tough"
@@ -53140,9 +52481,6 @@
}
},
"minClearTime": 177000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_10-13",
"stageType": "MAIN",
"zoneId": "main_10"
@@ -53310,9 +52648,6 @@
}
},
"minClearTime": 177000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_10-13",
"stageType": "MAIN",
"zoneId": "main_10_tough"
@@ -53392,9 +52727,6 @@
}
},
"minClearTime": 199000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_10-14",
"stageType": "MAIN",
"zoneId": "main_10_tough"
@@ -53474,9 +52806,6 @@
}
},
"minClearTime": 199000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_10-14",
"stageType": "MAIN",
"zoneId": "main_10"
@@ -53620,9 +52949,6 @@
}
},
"minClearTime": 283000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_10-15",
"stageType": "MAIN",
"zoneId": "main_10"
@@ -53766,9 +53092,6 @@
}
},
"minClearTime": 283000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_10-15",
"stageType": "MAIN",
"zoneId": "main_10_tough"
@@ -54416,9 +53739,6 @@
}
},
"minClearTime": 172000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_melee_6",
"stageType": "DAILY",
"zoneId": "weekly_9"
@@ -54494,9 +53814,6 @@
}
},
"minClearTime": 183000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "wk_kc_6",
"stageType": "DAILY",
"zoneId": "weekly_7"
@@ -56884,13 +56201,19 @@
"openTime": 1658217600000
},
"JP": {
- "exist": false
+ "closeTime": 1677178800000,
+ "exist": true,
+ "openTime": 1676617200000
},
"KR": {
- "exist": false
+ "closeTime": 1677178800000,
+ "exist": true,
+ "openTime": 1676617200000
},
"US": {
- "exist": false
+ "closeTime": 1677236400000,
+ "exist": true,
+ "openTime": 1676653200000
}
},
"minClearTime": 170000,
@@ -56914,13 +56237,19 @@
"openTime": 1658217600000
},
"JP": {
- "exist": false
+ "closeTime": 1677178800000,
+ "exist": true,
+ "openTime": 1676617200000
},
"KR": {
- "exist": false
+ "closeTime": 1677178800000,
+ "exist": true,
+ "openTime": 1676617200000
},
"US": {
- "exist": false
+ "closeTime": 1677236400000,
+ "exist": true,
+ "openTime": 1676653200000
}
},
"minClearTime": 226000,
@@ -56944,13 +56273,19 @@
"openTime": 1658217600000
},
"JP": {
- "exist": false
+ "closeTime": 1677178800000,
+ "exist": true,
+ "openTime": 1676617200000
},
"KR": {
- "exist": false
+ "closeTime": 1677178800000,
+ "exist": true,
+ "openTime": 1676617200000
},
"US": {
- "exist": false
+ "closeTime": 1677236400000,
+ "exist": true,
+ "openTime": 1676653200000
}
},
"minClearTime": 154000,
@@ -56974,13 +56309,19 @@
"openTime": 1658217600000
},
"JP": {
- "exist": false
+ "closeTime": 1677178800000,
+ "exist": true,
+ "openTime": 1676617200000
},
"KR": {
- "exist": false
+ "closeTime": 1677178800000,
+ "exist": true,
+ "openTime": 1676617200000
},
"US": {
- "exist": false
+ "closeTime": 1677236400000,
+ "exist": true,
+ "openTime": 1676653200000
}
},
"minClearTime": 178000,
@@ -57004,13 +56345,19 @@
"openTime": 1658217600000
},
"JP": {
- "exist": false
+ "closeTime": 1677178800000,
+ "exist": true,
+ "openTime": 1676617200000
},
"KR": {
- "exist": false
+ "closeTime": 1677178800000,
+ "exist": true,
+ "openTime": 1676617200000
},
"US": {
- "exist": false
+ "closeTime": 1677236400000,
+ "exist": true,
+ "openTime": 1676653200000
}
},
"minClearTime": 183000,
@@ -57034,13 +56381,19 @@
"openTime": 1658217600000
},
"JP": {
- "exist": false
+ "closeTime": 1677178800000,
+ "exist": true,
+ "openTime": 1676617200000
},
"KR": {
- "exist": false
+ "closeTime": 1677178800000,
+ "exist": true,
+ "openTime": 1676617200000
},
"US": {
- "exist": false
+ "closeTime": 1677236400000,
+ "exist": true,
+ "openTime": 1676653200000
}
},
"minClearTime": 187000,
@@ -57064,13 +56417,19 @@
"openTime": 1658217600000
},
"JP": {
- "exist": false
+ "closeTime": 1677178800000,
+ "exist": true,
+ "openTime": 1676617200000
},
"KR": {
- "exist": false
+ "closeTime": 1677178800000,
+ "exist": true,
+ "openTime": 1676617200000
},
"US": {
- "exist": false
+ "closeTime": 1677236400000,
+ "exist": true,
+ "openTime": 1676653200000
}
},
"minClearTime": 226000,
@@ -57094,13 +56453,19 @@
"openTime": 1658217600000
},
"JP": {
- "exist": false
+ "closeTime": 1677178800000,
+ "exist": true,
+ "openTime": 1676617200000
},
"KR": {
- "exist": false
+ "closeTime": 1677178800000,
+ "exist": true,
+ "openTime": 1676617200000
},
"US": {
- "exist": false
+ "closeTime": 1677236400000,
+ "exist": true,
+ "openTime": 1676653200000
}
},
"minClearTime": 293000,
@@ -60284,9 +59649,6 @@
}
},
"minClearTime": 106000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_11-01",
"stageType": "MAIN",
"zoneId": "main_11"
@@ -60427,9 +59789,6 @@
}
},
"minClearTime": 106000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_11-01",
"stageType": "MAIN",
"zoneId": "main_11_tough"
@@ -60506,9 +59865,6 @@
}
},
"minClearTime": 190000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_11-02",
"stageType": "MAIN",
"zoneId": "main_11"
@@ -60585,9 +59941,6 @@
}
},
"minClearTime": 190000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_11-02",
"stageType": "MAIN",
"zoneId": "main_11_tough"
@@ -60760,9 +60113,6 @@
}
},
"minClearTime": 134000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_11-03",
"stageType": "MAIN",
"zoneId": "main_11_tough"
@@ -60935,9 +60285,6 @@
}
},
"minClearTime": 134000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_11-03",
"stageType": "MAIN",
"zoneId": "main_11"
@@ -61102,9 +60449,6 @@
}
},
"minClearTime": 177000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_11-04",
"stageType": "MAIN",
"zoneId": "main_11"
@@ -61269,9 +60613,6 @@
}
},
"minClearTime": 177000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_11-04",
"stageType": "MAIN",
"zoneId": "main_11_tough"
@@ -61348,9 +60689,6 @@
}
},
"minClearTime": 207000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_11-05",
"stageType": "MAIN",
"zoneId": "main_11_tough"
@@ -61427,9 +60765,6 @@
}
},
"minClearTime": 207000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_11-05",
"stageType": "MAIN",
"zoneId": "main_11"
@@ -61570,9 +60905,6 @@
}
},
"minClearTime": 201000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_11-06",
"stageType": "MAIN",
"zoneId": "main_11_tough"
@@ -61713,9 +61045,6 @@
}
},
"minClearTime": 201000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_11-06",
"stageType": "MAIN",
"zoneId": "main_11"
@@ -61888,9 +61217,6 @@
}
},
"minClearTime": 150000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_11-07",
"stageType": "MAIN",
"zoneId": "main_11"
@@ -62063,9 +61389,6 @@
}
},
"minClearTime": 150000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_11-07",
"stageType": "MAIN",
"zoneId": "main_11_tough"
@@ -62222,9 +61545,6 @@
}
},
"minClearTime": 160000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_11-08",
"stageType": "MAIN",
"zoneId": "main_11"
@@ -62381,9 +61701,6 @@
}
},
"minClearTime": 160000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_11-08",
"stageType": "MAIN",
"zoneId": "main_11_tough"
@@ -62548,9 +61865,6 @@
}
},
"minClearTime": 183000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_11-09",
"stageType": "MAIN",
"zoneId": "main_11"
@@ -62715,9 +62029,6 @@
}
},
"minClearTime": 183000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_11-09",
"stageType": "MAIN",
"zoneId": "main_11_tough"
@@ -62882,9 +62193,6 @@
}
},
"minClearTime": 211000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_11-10",
"stageType": "MAIN",
"zoneId": "main_11"
@@ -63049,9 +62357,6 @@
}
},
"minClearTime": 211000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_11-10",
"stageType": "MAIN",
"zoneId": "main_11_tough"
@@ -63200,9 +62505,6 @@
}
},
"minClearTime": 196500,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_11-11",
"stageType": "MAIN",
"zoneId": "main_11_tough"
@@ -63351,9 +62653,6 @@
}
},
"minClearTime": 196500,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_11-11",
"stageType": "MAIN",
"zoneId": "main_11"
@@ -63526,9 +62825,6 @@
}
},
"minClearTime": 165000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_11-12",
"stageType": "MAIN",
"zoneId": "main_11"
@@ -63701,9 +62997,6 @@
}
},
"minClearTime": 165000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_11-12",
"stageType": "MAIN",
"zoneId": "main_11_tough"
@@ -63852,9 +63145,6 @@
}
},
"minClearTime": 203000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_11-13",
"stageType": "MAIN",
"zoneId": "main_11_tough"
@@ -64003,9 +63293,6 @@
}
},
"minClearTime": 203000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_11-13",
"stageType": "MAIN",
"zoneId": "main_11"
@@ -64170,9 +63457,6 @@
}
},
"minClearTime": 186000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_11-14",
"stageType": "MAIN",
"zoneId": "main_11"
@@ -64337,9 +63621,6 @@
}
},
"minClearTime": 186000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_11-14",
"stageType": "MAIN",
"zoneId": "main_11_tough"
@@ -64392,9 +63673,6 @@
}
},
"minClearTime": 167000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_11-15",
"stageType": "MAIN",
"zoneId": "main_11"
@@ -64543,9 +63821,6 @@
}
},
"minClearTime": 219500,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_11-16",
"stageType": "MAIN",
"zoneId": "main_11"
@@ -64694,9 +63969,6 @@
}
},
"minClearTime": 219500,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_11-16",
"stageType": "MAIN",
"zoneId": "main_11_tough"
@@ -64749,9 +64021,6 @@
}
},
"minClearTime": 111500,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_11-17",
"stageType": "MAIN",
"zoneId": "main_11"
@@ -64924,9 +64193,6 @@
}
},
"minClearTime": 188000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "tough_11-18",
"stageType": "MAIN",
"zoneId": "main_11_tough"
@@ -65099,9 +64365,6 @@
}
},
"minClearTime": 188000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "main_11-18",
"stageType": "MAIN",
"zoneId": "main_11"
@@ -70546,85 +69809,6 @@
"ko": "DC-1",
"zh": "DC-1"
},
- "dropInfos": [
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "NORMAL_DROP",
- "itemId": "30011"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "NORMAL_DROP",
- "itemId": "30061"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "NORMAL_DROP",
- "itemId": "30031"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "NORMAL_DROP",
- "itemId": "30021"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "NORMAL_DROP",
- "itemId": "30041"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "NORMAL_DROP",
- "itemId": "30051"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 1
- },
- "dropType": "FURNITURE",
- "itemId": "furni"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 6
- },
- "dropType": "NORMAL_DROP"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 0
- },
- "dropType": "SPECIAL_DROP"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 0
- },
- "dropType": "EXTRA_DROP"
- }
- ],
"existence": {
"CN": {
"closeTime": 1676923200000,
@@ -70642,9 +69826,6 @@
}
},
"minClearTime": 180000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "act14mini_01",
"stageType": "ACTIVITY",
"zoneId": "act14mini_zone1"
@@ -70658,85 +69839,6 @@
"ko": "DC-2",
"zh": "DC-2"
},
- "dropInfos": [
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "NORMAL_DROP",
- "itemId": "30011"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "NORMAL_DROP",
- "itemId": "30061"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "NORMAL_DROP",
- "itemId": "30031"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "NORMAL_DROP",
- "itemId": "30021"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "NORMAL_DROP",
- "itemId": "30041"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "NORMAL_DROP",
- "itemId": "30051"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 1
- },
- "dropType": "FURNITURE",
- "itemId": "furni"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 6
- },
- "dropType": "NORMAL_DROP"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 0
- },
- "dropType": "SPECIAL_DROP"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 0
- },
- "dropType": "EXTRA_DROP"
- }
- ],
"existence": {
"CN": {
"closeTime": 1676923200000,
@@ -70754,9 +69856,6 @@
}
},
"minClearTime": 139500,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "act14mini_02",
"stageType": "ACTIVITY",
"zoneId": "act14mini_zone1"
@@ -70770,85 +69869,6 @@
"ko": "DC-3",
"zh": "DC-3"
},
- "dropInfos": [
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "NORMAL_DROP",
- "itemId": "30011"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "NORMAL_DROP",
- "itemId": "30061"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "NORMAL_DROP",
- "itemId": "30031"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "NORMAL_DROP",
- "itemId": "30021"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "NORMAL_DROP",
- "itemId": "30041"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "NORMAL_DROP",
- "itemId": "30051"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 1
- },
- "dropType": "FURNITURE",
- "itemId": "furni"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 6
- },
- "dropType": "NORMAL_DROP"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 0
- },
- "dropType": "SPECIAL_DROP"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 0
- },
- "dropType": "EXTRA_DROP"
- }
- ],
"existence": {
"CN": {
"closeTime": 1676923200000,
@@ -70866,9 +69886,6 @@
}
},
"minClearTime": 205000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
"stageId": "act14mini_03",
"stageType": "ACTIVITY",
"zoneId": "act14mini_zone1"
@@ -70882,6 +69899,156 @@
"ko": "DC-4",
"zh": "DC-4"
},
+ "existence": {
+ "CN": {
+ "closeTime": 1676923200000,
+ "exist": true,
+ "openTime": 1676361600000
+ },
+ "JP": {
+ "exist": false
+ },
+ "KR": {
+ "exist": false
+ },
+ "US": {
+ "exist": false
+ }
+ },
+ "minClearTime": 214000,
+ "stageId": "act14mini_04",
+ "stageType": "ACTIVITY",
+ "zoneId": "act14mini_zone1"
+ },
+ {
+ "apCost": 15,
+ "code": "DC-5",
+ "code_i18n": {
+ "en": "DC-5",
+ "ja": "DC-5",
+ "ko": "DC-5",
+ "zh": "DC-5"
+ },
+ "existence": {
+ "CN": {
+ "closeTime": 1676923200000,
+ "exist": true,
+ "openTime": 1676361600000
+ },
+ "JP": {
+ "exist": false
+ },
+ "KR": {
+ "exist": false
+ },
+ "US": {
+ "exist": false
+ }
+ },
+ "minClearTime": 181000,
+ "stageId": "act14mini_05",
+ "stageType": "ACTIVITY",
+ "zoneId": "act14mini_zone1"
+ },
+ {
+ "apCost": 15,
+ "code": "DC-6",
+ "code_i18n": {
+ "en": "DC-6",
+ "ja": "DC-6",
+ "ko": "DC-6",
+ "zh": "DC-6"
+ },
+ "existence": {
+ "CN": {
+ "closeTime": 1676923200000,
+ "exist": true,
+ "openTime": 1676361600000
+ },
+ "JP": {
+ "exist": false
+ },
+ "KR": {
+ "exist": false
+ },
+ "US": {
+ "exist": false
+ }
+ },
+ "minClearTime": 219000,
+ "stageId": "act14mini_06",
+ "stageType": "ACTIVITY",
+ "zoneId": "act14mini_zone1"
+ },
+ {
+ "apCost": 21,
+ "code": "DC-7",
+ "code_i18n": {
+ "en": "DC-7",
+ "ja": "DC-7",
+ "ko": "DC-7",
+ "zh": "DC-7"
+ },
+ "existence": {
+ "CN": {
+ "closeTime": 1676923200000,
+ "exist": true,
+ "openTime": 1676361600000
+ },
+ "JP": {
+ "exist": false
+ },
+ "KR": {
+ "exist": false
+ },
+ "US": {
+ "exist": false
+ }
+ },
+ "minClearTime": 206000,
+ "stageId": "act14mini_07",
+ "stageType": "ACTIVITY",
+ "zoneId": "act14mini_zone1"
+ },
+ {
+ "apCost": 21,
+ "code": "DC-8",
+ "code_i18n": {
+ "en": "DC-8",
+ "ja": "DC-8",
+ "ko": "DC-8",
+ "zh": "DC-8"
+ },
+ "existence": {
+ "CN": {
+ "closeTime": 1676923200000,
+ "exist": true,
+ "openTime": 1676361600000
+ },
+ "JP": {
+ "exist": false
+ },
+ "KR": {
+ "exist": false
+ },
+ "US": {
+ "exist": false
+ }
+ },
+ "minClearTime": 265000,
+ "stageId": "act14mini_08",
+ "stageType": "ACTIVITY",
+ "zoneId": "act14mini_zone1"
+ },
+ {
+ "apCost": 9,
+ "code": "GA-1",
+ "code_i18n": {
+ "en": "GA-1",
+ "ja": "GA-1",
+ "ko": "GA-1",
+ "zh": "GA-1"
+ },
"dropInfos": [
{
"bounds": {
@@ -70963,9 +70130,9 @@
],
"existence": {
"CN": {
- "closeTime": 1676923200000,
+ "closeTime": 1677787200000,
"exist": true,
- "openTime": 1676361600000
+ "openTime": 1676966400000
},
"JP": {
"exist": false
@@ -70977,223 +70144,71 @@
"exist": false
}
},
- "minClearTime": 214000,
+ "minClearTime": 144000,
"recognitionOnly": [
- "act14mini_token_fu"
+ "act16side_token_bolt_rep_1"
],
- "stageId": "act14mini_04",
+ "stageId": "act16side_01_rep",
"stageType": "ACTIVITY",
- "zoneId": "act14mini_zone1"
+ "zoneId": "act16sre_zone1"
},
{
- "apCost": 15,
- "code": "DC-5",
+ "apCost": 9,
+ "code": "GA-2",
"code_i18n": {
- "en": "DC-5",
- "ja": "DC-5",
- "ko": "DC-5",
- "zh": "DC-5"
+ "en": "GA-2",
+ "ja": "GA-2",
+ "ko": "GA-2",
+ "zh": "GA-2"
},
"dropInfos": [
- {
- "bounds": {
- "lower": 0,
- "upper": 3
- },
- "dropType": "EXTRA_DROP",
- "itemId": "2001"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 1
- },
- "dropType": "EXTRA_DROP",
- "itemId": "2002"
- },
{
"bounds": {
"lower": 0,
"upper": 5
},
- "dropType": "EXTRA_DROP",
- "itemId": "30021"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 3
- },
- "dropType": "EXTRA_DROP",
- "itemId": "30022"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "EXTRA_DROP",
- "itemId": "30041"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 3
- },
- "dropType": "EXTRA_DROP",
- "itemId": "30042"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "EXTRA_DROP",
- "itemId": "30051"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 3
- },
- "dropType": "EXTRA_DROP",
- "itemId": "30052"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 1
- },
- "dropType": "FURNITURE",
- "itemId": "furni"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 0
- },
- "dropType": "SPECIAL_DROP"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 2
- },
- "dropType": "EXTRA_DROP"
- },
- {
- "bounds": {
- "lower": 1,
- "upper": 3
- },
"dropType": "NORMAL_DROP",
- "itemId": "30032"
- },
- {
- "bounds": {
- "lower": 1,
- "upper": 1
- },
- "dropType": "NORMAL_DROP"
- }
- ],
- "existence": {
- "CN": {
- "closeTime": 1676923200000,
- "exist": true,
- "openTime": 1676361600000
- },
- "JP": {
- "exist": false
- },
- "KR": {
- "exist": false
- },
- "US": {
- "exist": false
- }
- },
- "minClearTime": 181000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
- "stageId": "act14mini_05",
- "stageType": "ACTIVITY",
- "zoneId": "act14mini_zone1"
- },
- {
- "apCost": 15,
- "code": "DC-6",
- "code_i18n": {
- "en": "DC-6",
- "ja": "DC-6",
- "ko": "DC-6",
- "zh": "DC-6"
- },
- "dropInfos": [
- {
- "bounds": {
- "lower": 1,
- "upper": 3
- },
- "dropType": "NORMAL_DROP",
- "itemId": "30012"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 1
- },
- "dropType": "EXTRA_DROP",
- "itemId": "3003"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "EXTRA_DROP",
"itemId": "30011"
},
- {
- "bounds": {
- "lower": 0,
- "upper": 3
- },
- "dropType": "EXTRA_DROP",
- "itemId": "30012"
- },
{
"bounds": {
"lower": 0,
"upper": 5
},
- "dropType": "EXTRA_DROP",
+ "dropType": "NORMAL_DROP",
"itemId": "30061"
},
- {
- "bounds": {
- "lower": 0,
- "upper": 3
- },
- "dropType": "EXTRA_DROP",
- "itemId": "30062"
- },
{
"bounds": {
"lower": 0,
"upper": 5
},
- "dropType": "EXTRA_DROP",
+ "dropType": "NORMAL_DROP",
"itemId": "30031"
},
{
"bounds": {
"lower": 0,
- "upper": 3
+ "upper": 5
},
- "dropType": "EXTRA_DROP",
- "itemId": "30032"
+ "dropType": "NORMAL_DROP",
+ "itemId": "30021"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 5
+ },
+ "dropType": "NORMAL_DROP",
+ "itemId": "30041"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 5
+ },
+ "dropType": "NORMAL_DROP",
+ "itemId": "30051"
},
{
"bounds": {
@@ -71205,7 +70220,351 @@
},
{
"bounds": {
- "lower": 1,
+ "lower": 0,
+ "upper": 6
+ },
+ "dropType": "NORMAL_DROP"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 0
+ },
+ "dropType": "SPECIAL_DROP"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 0
+ },
+ "dropType": "EXTRA_DROP"
+ }
+ ],
+ "existence": {
+ "CN": {
+ "closeTime": 1677787200000,
+ "exist": true,
+ "openTime": 1676966400000
+ },
+ "JP": {
+ "exist": false
+ },
+ "KR": {
+ "exist": false
+ },
+ "US": {
+ "exist": false
+ }
+ },
+ "minClearTime": 189000,
+ "recognitionOnly": [
+ "act16side_token_bolt_rep_1"
+ ],
+ "stageId": "act16side_02_rep",
+ "stageType": "ACTIVITY",
+ "zoneId": "act16sre_zone1"
+ },
+ {
+ "apCost": 9,
+ "code": "GA-3",
+ "code_i18n": {
+ "en": "GA-3",
+ "ja": "GA-3",
+ "ko": "GA-3",
+ "zh": "GA-3"
+ },
+ "dropInfos": [
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 5
+ },
+ "dropType": "NORMAL_DROP",
+ "itemId": "30011"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 5
+ },
+ "dropType": "NORMAL_DROP",
+ "itemId": "30061"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 5
+ },
+ "dropType": "NORMAL_DROP",
+ "itemId": "30031"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 5
+ },
+ "dropType": "NORMAL_DROP",
+ "itemId": "30021"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 5
+ },
+ "dropType": "NORMAL_DROP",
+ "itemId": "30041"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 5
+ },
+ "dropType": "NORMAL_DROP",
+ "itemId": "30051"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 1
+ },
+ "dropType": "FURNITURE",
+ "itemId": "furni"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 6
+ },
+ "dropType": "NORMAL_DROP"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 0
+ },
+ "dropType": "SPECIAL_DROP"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 0
+ },
+ "dropType": "EXTRA_DROP"
+ }
+ ],
+ "existence": {
+ "CN": {
+ "closeTime": 1677787200000,
+ "exist": true,
+ "openTime": 1676966400000
+ },
+ "JP": {
+ "exist": false
+ },
+ "KR": {
+ "exist": false
+ },
+ "US": {
+ "exist": false
+ }
+ },
+ "minClearTime": 121000,
+ "recognitionOnly": [
+ "act16side_token_bolt_rep_1"
+ ],
+ "stageId": "act16side_03_rep",
+ "stageType": "ACTIVITY",
+ "zoneId": "act16sre_zone1"
+ },
+ {
+ "apCost": 12,
+ "code": "GA-4",
+ "code_i18n": {
+ "en": "GA-4",
+ "ja": "GA-4",
+ "ko": "GA-4",
+ "zh": "GA-4"
+ },
+ "dropInfos": [
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 3
+ },
+ "dropType": "NORMAL_DROP",
+ "itemId": "30012"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 3
+ },
+ "dropType": "NORMAL_DROP",
+ "itemId": "30062"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 1
+ },
+ "dropType": "FURNITURE",
+ "itemId": "furni"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 2
+ },
+ "dropType": "NORMAL_DROP"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 0
+ },
+ "dropType": "SPECIAL_DROP"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 0
+ },
+ "dropType": "EXTRA_DROP"
+ }
+ ],
+ "existence": {
+ "CN": {
+ "closeTime": 1677787200000,
+ "exist": true,
+ "openTime": 1676966400000
+ },
+ "JP": {
+ "exist": false
+ },
+ "KR": {
+ "exist": false
+ },
+ "US": {
+ "exist": false
+ }
+ },
+ "minClearTime": 172000,
+ "recognitionOnly": [
+ "act16side_token_bolt_rep_1"
+ ],
+ "stageId": "act16side_04_rep",
+ "stageType": "ACTIVITY",
+ "zoneId": "act16sre_zone1"
+ },
+ {
+ "apCost": 12,
+ "code": "GA-5",
+ "code_i18n": {
+ "en": "GA-5",
+ "ja": "GA-5",
+ "ko": "GA-5",
+ "zh": "GA-5"
+ },
+ "dropInfos": [
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 3
+ },
+ "dropType": "NORMAL_DROP",
+ "itemId": "30022"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 3
+ },
+ "dropType": "NORMAL_DROP",
+ "itemId": "30042"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 1
+ },
+ "dropType": "FURNITURE",
+ "itemId": "furni"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 2
+ },
+ "dropType": "NORMAL_DROP"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 0
+ },
+ "dropType": "SPECIAL_DROP"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 0
+ },
+ "dropType": "EXTRA_DROP"
+ }
+ ],
+ "existence": {
+ "CN": {
+ "closeTime": 1677787200000,
+ "exist": true,
+ "openTime": 1676966400000
+ },
+ "JP": {
+ "exist": false
+ },
+ "KR": {
+ "exist": false
+ },
+ "US": {
+ "exist": false
+ }
+ },
+ "minClearTime": 197000,
+ "recognitionOnly": [
+ "act16side_token_bolt_rep_1"
+ ],
+ "stageId": "act16side_05_rep",
+ "stageType": "ACTIVITY",
+ "zoneId": "act16sre_zone1"
+ },
+ {
+ "apCost": 18,
+ "code": "GA-6",
+ "code_i18n": {
+ "en": "GA-6",
+ "ja": "GA-6",
+ "ko": "GA-6",
+ "zh": "GA-6"
+ },
+ "dropInfos": [
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 1
+ },
+ "dropType": "NORMAL_DROP",
+ "itemId": "30023"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 1
+ },
+ "dropType": "FURNITURE",
+ "itemId": "furni"
+ },
+ {
+ "bounds": {
+ "lower": 0,
"upper": 1
},
"dropType": "NORMAL_DROP"
@@ -71220,16 +70579,16 @@
{
"bounds": {
"lower": 0,
- "upper": 2
+ "upper": 0
},
"dropType": "EXTRA_DROP"
}
],
"existence": {
"CN": {
- "closeTime": 1676923200000,
+ "closeTime": 1677787200000,
"exist": true,
- "openTime": 1676361600000
+ "openTime": 1676966400000
},
"JP": {
"exist": false
@@ -71241,22 +70600,22 @@
"exist": false
}
},
- "minClearTime": 219000,
+ "minClearTime": 150000,
"recognitionOnly": [
- "act14mini_token_fu"
+ "act16side_token_bolt_rep_1"
],
- "stageId": "act14mini_06",
+ "stageId": "act16side_06_rep",
"stageType": "ACTIVITY",
- "zoneId": "act14mini_zone1"
+ "zoneId": "act16sre_zone1"
},
{
"apCost": 21,
- "code": "DC-7",
+ "code": "GA-7",
"code_i18n": {
- "en": "DC-7",
- "ja": "DC-7",
- "ko": "DC-7",
- "zh": "DC-7"
+ "en": "GA-7",
+ "ja": "GA-7",
+ "ko": "GA-7",
+ "zh": "GA-7"
},
"dropInfos": [
{
@@ -71265,70 +70624,6 @@
"upper": 1
},
"dropType": "NORMAL_DROP",
- "itemId": "30033"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 1
- },
- "dropType": "EXTRA_DROP",
- "itemId": "3003"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "EXTRA_DROP",
- "itemId": "30011"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 3
- },
- "dropType": "EXTRA_DROP",
- "itemId": "30012"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 1
- },
- "dropType": "EXTRA_DROP",
- "itemId": "30013"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "EXTRA_DROP",
- "itemId": "30061"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 3
- },
- "dropType": "EXTRA_DROP",
- "itemId": "30062"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 1
- },
- "dropType": "EXTRA_DROP",
- "itemId": "30063"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 1
- },
- "dropType": "EXTRA_DROP",
"itemId": "30073"
},
{
@@ -71336,7 +70631,71 @@
"lower": 0,
"upper": 1
},
- "dropType": "EXTRA_DROP",
+ "dropType": "FURNITURE",
+ "itemId": "furni"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 1
+ },
+ "dropType": "NORMAL_DROP"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 0
+ },
+ "dropType": "SPECIAL_DROP"
+ },
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 0
+ },
+ "dropType": "EXTRA_DROP"
+ }
+ ],
+ "existence": {
+ "CN": {
+ "closeTime": 1677787200000,
+ "exist": true,
+ "openTime": 1676966400000
+ },
+ "JP": {
+ "exist": false
+ },
+ "KR": {
+ "exist": false
+ },
+ "US": {
+ "exist": false
+ }
+ },
+ "minClearTime": 175000,
+ "recognitionOnly": [
+ "act16side_token_bolt_rep_1"
+ ],
+ "stageId": "act16side_07_rep",
+ "stageType": "ACTIVITY",
+ "zoneId": "act16sre_zone1"
+ },
+ {
+ "apCost": 21,
+ "code": "GA-8",
+ "code_i18n": {
+ "en": "GA-8",
+ "ja": "GA-8",
+ "ko": "GA-8",
+ "zh": "GA-8"
+ },
+ "dropInfos": [
+ {
+ "bounds": {
+ "lower": 0,
+ "upper": 1
+ },
+ "dropType": "NORMAL_DROP",
"itemId": "31013"
},
{
@@ -71364,16 +70723,16 @@
{
"bounds": {
"lower": 0,
- "upper": 2
+ "upper": 0
},
"dropType": "EXTRA_DROP"
}
],
"existence": {
"CN": {
- "closeTime": 1676923200000,
+ "closeTime": 1677787200000,
"exist": true,
- "openTime": 1676361600000
+ "openTime": 1676966400000
},
"JP": {
"exist": false
@@ -71387,170 +70746,10 @@
},
"minClearTime": 206000,
"recognitionOnly": [
- "act14mini_token_fu"
+ "act16side_token_bolt_rep_1"
],
- "stageId": "act14mini_07",
+ "stageId": "act16side_08_rep",
"stageType": "ACTIVITY",
- "zoneId": "act14mini_zone1"
- },
- {
- "apCost": 21,
- "code": "DC-8",
- "code_i18n": {
- "en": "DC-8",
- "ja": "DC-8",
- "ko": "DC-8",
- "zh": "DC-8"
- },
- "dropInfos": [
- {
- "bounds": {
- "lower": 0,
- "upper": 1
- },
- "dropType": "NORMAL_DROP",
- "itemId": "30093"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "EXTRA_DROP",
- "itemId": "30031"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 3
- },
- "dropType": "EXTRA_DROP",
- "itemId": "30032"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 1
- },
- "dropType": "EXTRA_DROP",
- "itemId": "30033"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 5
- },
- "dropType": "EXTRA_DROP",
- "itemId": "30051"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 3
- },
- "dropType": "EXTRA_DROP",
- "itemId": "30052"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 1
- },
- "dropType": "EXTRA_DROP",
- "itemId": "30053"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 1
- },
- "dropType": "EXTRA_DROP",
- "itemId": "30093"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 1
- },
- "dropType": "EXTRA_DROP",
- "itemId": "30103"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 1
- },
- "dropType": "EXTRA_DROP",
- "itemId": "31033"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 1
- },
- "dropType": "EXTRA_DROP",
- "itemId": "31043"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 1
- },
- "dropType": "EXTRA_DROP",
- "itemId": "31053"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 1
- },
- "dropType": "FURNITURE",
- "itemId": "furni"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 1
- },
- "dropType": "NORMAL_DROP"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 0
- },
- "dropType": "SPECIAL_DROP"
- },
- {
- "bounds": {
- "lower": 0,
- "upper": 2
- },
- "dropType": "EXTRA_DROP"
- }
- ],
- "existence": {
- "CN": {
- "closeTime": 1676923200000,
- "exist": true,
- "openTime": 1676361600000
- },
- "JP": {
- "exist": false
- },
- "KR": {
- "exist": false
- },
- "US": {
- "exist": false
- }
- },
- "minClearTime": 265000,
- "recognitionOnly": [
- "act14mini_token_fu"
- ],
- "stageId": "act14mini_08",
- "stageType": "ACTIVITY",
- "zoneId": "act14mini_zone1"
+ "zoneId": "act16sre_zone1"
}
]
\ No newline at end of file
diff --git a/resource/tasks.json b/resource/tasks.json
index 00e476c31a..afebab5c30 100644
--- a/resource/tasks.json
+++ b/resource/tasks.json
@@ -778,6 +778,157 @@
120
]
},
+ "SideStoryStage": {
+ "Doc": "base_task",
+ "algorithm": "OcrDetect",
+ "baseTask": "Stage",
+ "isAscii": true,
+ "text": []
+ },
+ "DH-9": {
+ "algorithm": "JustReturn",
+ "action": "DoNothing",
+ "sub": [
+ "DH-Open"
+ ],
+ "next": [
+ "DH-9@SideStoryStage",
+ "DH-9@SwipeToStage"
+ ]
+ },
+ "DH-Open": {
+ "action": "ClickSelf",
+ "algorithm": "OcrDetect",
+ "text": [
+ "假日",
+ "复刻",
+ "活动",
+ "开放"
+ ],
+ "roi": [
+ 0,
+ 500,
+ 500,
+ 150
+ ],
+ "postDelay": 2000,
+ "next": [
+ "DHChapterToDH"
+ ]
+ },
+ "DHChapterToDH": {
+ "algorithm": "OcrDetect",
+ "action": "ClickSelf",
+ "text": [
+ "极限",
+ "铁人",
+ "大奖"
+ ],
+ "roi": [
+ 934,
+ 280,
+ 234,
+ 124
+ ],
+ "postDelay": 2000,
+ "next": [
+ "DHChapterToDH",
+ "ChapterSwipeToTheRight"
+ ]
+ },
+ "DH-9@SideStoryStage": {
+ "baseTask": "SideStoryStage",
+ "text": [
+ "DH-9"
+ ]
+ },
+ "GA-6": {
+ "algorithm": "JustReturn",
+ "action": "DoNothing",
+ "sub": [
+ "GA-Open"
+ ],
+ "next": [
+ "GA-6@SideStoryStage",
+ "GA-6@SwipeToStage"
+ ]
+ },
+ "GA-7": {
+ "algorithm": "JustReturn",
+ "action": "DoNothing",
+ "sub": [
+ "GA-Open"
+ ],
+ "next": [
+ "GA-7@SideStoryStage",
+ "GA-7@SwipeToStage"
+ ]
+ },
+ "GA-8": {
+ "algorithm": "JustReturn",
+ "action": "DoNothing",
+ "sub": [
+ "GA-Open"
+ ],
+ "next": [
+ "GA-8@SideStoryStage",
+ "GA-8@SwipeToStage"
+ ]
+ },
+ "GA-Open": {
+ "action": "ClickSelf",
+ "algorithm": "OcrDetect",
+ "text": [
+ "吾导先路",
+ "复刻"
+ ],
+ "roi": [
+ 0,
+ 500,
+ 500,
+ 150
+ ],
+ "postDelay": 2000,
+ "next": [
+ "GAChapterToGA"
+ ]
+ },
+ "GAChapterToGA": {
+ "action": "ClickSelf",
+ "algorithm": "OcrDetect",
+ "text": [
+ "万国峰会"
+ ],
+ "roi": [
+ 1007,
+ 431,
+ 227,
+ 140
+ ],
+ "postDelay": 2000,
+ "next": [
+ "GAChapterToGA",
+ "ChapterSwipeToTheRight"
+ ]
+ },
+ "GA-6@SideStoryStage": {
+ "baseTask": "SideStoryStage",
+ "text": [
+ "GA-6"
+ ]
+ },
+ "GA-7@SideStoryStage": {
+ "baseTask": "SideStoryStage",
+ "text": [
+ "GA-7"
+ ]
+ },
+ "GA-8@SideStoryStage": {
+ "baseTask": "SideStoryStage",
+ "text": [
+ "GA-8"
+ ]
+ },
"WB-7": {
"algorithm": "JustReturn",
"action": "DoNothing",
@@ -785,7 +936,7 @@
"WB-Open"
],
"next": [
- "StageWB-7",
+ "WB-7@SideStoryStage",
"WB-7@SwipeToStage"
]
},
@@ -796,7 +947,7 @@
"WB-Open"
],
"next": [
- "StageWB-8",
+ "WB-8@SideStoryStage",
"WB-8@SwipeToStage"
]
},
@@ -807,7 +958,7 @@
"WB-Open"
],
"next": [
- "StageWB-9",
+ "WB-9@SideStoryStage",
"WB-9@SwipeToStage"
]
},
@@ -843,29 +994,23 @@
"ChapterSwipeToTheRight"
]
},
- "StageWB-7": {
- "action": "ClickSelf",
- "algorithm": "OcrDetect",
+ "WB-7@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"WB-7"
- ],
- "cache": false
+ ]
},
- "StageWB-8": {
- "action": "ClickSelf",
- "algorithm": "OcrDetect",
+ "WB-8@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"WB-8"
- ],
- "cache": false
+ ]
},
- "StageWB-9": {
- "action": "ClickSelf",
- "algorithm": "OcrDetect",
+ "WB-9@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"WB-9"
- ],
- "cache": false
+ ]
},
"IW-6": {
"algorithm": "JustReturn",
@@ -875,7 +1020,7 @@
"IWChapterToIW"
],
"next": [
- "StageIW-6",
+ "IW-6@SideStoryStage",
"IW-6@SwipeToStage"
]
},
@@ -887,7 +1032,7 @@
"IWChapterToIW"
],
"next": [
- "StageIW-7",
+ "IW-7@SideStoryStage",
"IW-7@SwipeToStage"
]
},
@@ -899,7 +1044,7 @@
"IWChapterToIW"
],
"next": [
- "StageIW-8",
+ "IW-8@SideStoryStage",
"IW-8@SwipeToStage"
]
},
@@ -935,46 +1080,22 @@
"ChapterSwipeToTheRight"
]
},
- "StageIW-6": {
- "action": "ClickSelf",
- "algorithm": "OcrDetect",
+ "IW-6@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"IW-6"
- ],
- "cache": false,
- "roi": [
- 0,
- 283,
- 1280,
- 324
]
},
- "StageIW-7": {
- "action": "ClickSelf",
- "algorithm": "OcrDetect",
+ "IW-7@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"IW-7"
- ],
- "cache": false,
- "roi": [
- 0,
- 283,
- 1280,
- 324
]
},
- "StageIW-8": {
- "action": "ClickSelf",
- "algorithm": "OcrDetect",
+ "IW-8@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"IW-8"
- ],
- "cache": false,
- "roi": [
- 0,
- 283,
- 1280,
- 324
]
},
"FC-5": {
@@ -985,7 +1106,7 @@
"FCChapterToFC"
],
"next": [
- "StageFC-5",
+ "FC-5@SideStoryStage",
"FC-5@SwipeToStage"
]
},
@@ -997,7 +1118,7 @@
"FCChapterToFC"
],
"next": [
- "StageFC-6",
+ "FC-6@SideStoryStage",
"FC-6@SwipeToStage"
]
},
@@ -1009,7 +1130,7 @@
"FCChapterToFC"
],
"next": [
- "StageFC-7",
+ "FC-7@SideStoryStage",
"FC-7@SwipeToStage"
]
},
@@ -1045,46 +1166,22 @@
"ChapterSwipeToTheRight"
]
},
- "StageFC-5": {
- "action": "ClickSelf",
- "algorithm": "OcrDetect",
+ "FC-5@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"FC-5"
- ],
- "cache": false,
- "roi": [
- 0,
- 145,
- 1280,
- 332
]
},
- "StageFC-6": {
- "action": "ClickSelf",
- "algorithm": "OcrDetect",
+ "FC-6@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"FC-6"
- ],
- "cache": false,
- "roi": [
- 0,
- 145,
- 1280,
- 332
]
},
- "StageFC-7": {
- "action": "ClickSelf",
- "algorithm": "OcrDetect",
+ "FC-7@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"FC-7"
- ],
- "cache": false,
- "roi": [
- 0,
- 145,
- 1280,
- 332
]
},
"IS-10": {
@@ -1094,7 +1191,7 @@
"IS-Open"
],
"next": [
- "StageIS-10",
+ "IS-10@SideStoryStage",
"IS-10@SwipeToStageIS"
]
},
@@ -1105,7 +1202,7 @@
"IS-Open"
],
"next": [
- "StageIS-9",
+ "IS-9@SideStoryStage",
"IS-9@SwipeToStageIS"
]
},
@@ -1116,7 +1213,7 @@
"IS-Open"
],
"next": [
- "StageIS-8",
+ "IS-8@SideStoryStage",
"IS-8@SwipeToStageIS"
]
},
@@ -1194,49 +1291,22 @@
"#next"
]
},
- "StageIS-10": {
- "algorithm": "OcrDetect",
- "action": "ClickSelf",
- "cache": false,
+ "IS-10@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"IS-10"
- ],
- "isAscii": true,
- "roi": [
- 47,
- 42,
- 222,
- 640
]
},
- "StageIS-9": {
- "algorithm": "OcrDetect",
- "action": "ClickSelf",
- "cache": false,
+ "IS-9@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"IS-9"
- ],
- "isAscii": true,
- "roi": [
- 47,
- 42,
- 222,
- 640
]
},
- "StageIS-8": {
- "algorithm": "OcrDetect",
- "action": "ClickSelf",
- "cache": false,
+ "IS-8@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"IS-8"
- ],
- "isAscii": true,
- "roi": [
- 47,
- 42,
- 222,
- 640
]
},
"NL-10": {
@@ -1246,7 +1316,7 @@
"NL-Open"
],
"next": [
- "StageNL-10",
+ "NL-10@SideStoryStage",
"NL-10@SwipeToStage"
]
},
@@ -1257,7 +1327,7 @@
"NL-Open"
],
"next": [
- "StageNL-9",
+ "NL-9@SideStoryStage",
"NL-9@SwipeToStage"
]
},
@@ -1268,7 +1338,7 @@
"NL-Open"
],
"next": [
- "StageNL-8",
+ "NL-8@SideStoryStage",
"NL-8@SwipeToStage"
]
},
@@ -1303,49 +1373,22 @@
"ChapterSwipeToTheRight"
]
},
- "StageNL-10": {
- "algorithm": "OcrDetect",
- "action": "ClickSelf",
- "cache": false,
- "isAscii": true,
+ "NL-10@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"NL-10"
- ],
- "roi": [
- 0,
- 63,
- 1280,
- 577
]
},
- "StageNL-9": {
- "algorithm": "OcrDetect",
- "action": "ClickSelf",
- "cache": false,
- "isAscii": true,
+ "NL-9@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"NL-9"
- ],
- "roi": [
- 0,
- 63,
- 1280,
- 577
]
},
- "StageNL-8": {
- "algorithm": "OcrDetect",
- "action": "ClickSelf",
- "cache": false,
- "isAscii": true,
+ "NL-8@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"NL-8"
- ],
- "roi": [
- 0,
- 63,
- 1280,
- 577
]
},
"GT-5": {
@@ -1355,7 +1398,7 @@
"StageEpisode",
"StageEpisodeToGT",
"GTToGT-5",
- "StageGT-5"
+ "GT-5@SideStoryStage"
]
},
"StageEpisodeToGT": {
@@ -1387,11 +1430,8 @@
168
]
},
- "StageGT-5": {
- "algorithm": "OcrDetect",
- "action": "ClickSelf",
- "cache": false,
- "isAscii": true,
+ "GT-5@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"GT-5"
]
@@ -1404,7 +1444,7 @@
"StageEpisodeToOF",
"OFToOF-Chapter",
"ChapterSwipeToTheLeft",
- "StageOF-1"
+ "OF-1@SideStoryStage"
]
},
"OF-F3": {
@@ -1467,11 +1507,8 @@
"0F-F3"
]
},
- "StageOF-1": {
- "algorithm": "OcrDetect",
- "action": "ClickSelf",
- "cache": false,
- "isAscii": true,
+ "OF-1@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"OF-1",
"0F-1"
@@ -1484,7 +1521,7 @@
"IC-Open"
],
"next": [
- "StageIC-9",
+ "IC-9@SideStoryStage",
"IC-9@SwipeToStage"
]
},
@@ -1495,7 +1532,7 @@
"IC-Open"
],
"next": [
- "StageIC-8",
+ "IC-8@SideStoryStage",
"IC-8@SwipeToStage"
]
},
@@ -1506,7 +1543,7 @@
"IC-Open"
],
"next": [
- "StageIC-7",
+ "IC-7@SideStoryStage",
"IC-7@SwipeToStage"
]
},
@@ -1537,52 +1574,25 @@
"ChapterSwipeToTheRight"
]
},
- "StageIC-9": {
- "algorithm": "OcrDetect",
- "action": "ClickSelf",
- "cache": false,
- "isAscii": true,
+ "IC-9@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"IC-9",
"1C-9"
- ],
- "roi": [
- 0,
- 145,
- 1280,
- 332
]
},
- "StageIC-8": {
- "algorithm": "OcrDetect",
- "action": "ClickSelf",
- "cache": false,
- "isAscii": true,
+ "IC-8@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"IC-8",
"1C-8"
- ],
- "roi": [
- 0,
- 145,
- 1280,
- 332
]
},
- "StageIC-7": {
- "algorithm": "OcrDetect",
- "action": "ClickSelf",
- "cache": false,
- "isAscii": true,
+ "IC-7@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"IC-7",
"1C-7"
- ],
- "roi": [
- 0,
- 145,
- 1280,
- 332
]
},
"DV-8": {
@@ -1592,7 +1602,7 @@
"DV-Open"
],
"next": [
- "StageDV-8",
+ "DV-8@SideStoryStage",
"DV-8@SwipeToStage"
]
},
@@ -1603,7 +1613,7 @@
"DV-Open"
],
"next": [
- "StageDV-7",
+ "DV-7@SideStoryStage",
"DV-7@SwipeToStage"
]
},
@@ -1614,7 +1624,7 @@
"DV-Open"
],
"next": [
- "StageDV-6",
+ "DV-6@SideStoryStage",
"DV-6@SwipeToStage"
]
},
@@ -1655,49 +1665,22 @@
"ChapterSwipeToTheRight"
]
},
- "StageDV-8": {
- "algorithm": "OcrDetect",
- "action": "ClickSelf",
- "cache": false,
- "isAscii": true,
+ "DV-8@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"DV-8"
- ],
- "roi": [
- 0,
- 145,
- 1280,
- 332
]
},
- "StageDV-7": {
- "algorithm": "OcrDetect",
- "action": "ClickSelf",
- "cache": false,
- "isAscii": true,
+ "DV-7@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"DV-7"
- ],
- "roi": [
- 0,
- 145,
- 1280,
- 332
]
},
- "StageDV-6": {
- "algorithm": "OcrDetect",
- "action": "ClickSelf",
- "cache": false,
- "isAscii": true,
+ "DV-6@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"DV-6"
- ],
- "roi": [
- 0,
- 145,
- 1280,
- 332
]
},
"LE-5": {
@@ -1708,7 +1691,7 @@
"LEChapterToLE"
],
"next": [
- "StageLE-5",
+ "LE-5@SideStoryStage",
"LE-5@SwipeToStage"
]
},
@@ -1720,7 +1703,7 @@
"LEChapterToLE"
],
"next": [
- "StageLE-6",
+ "LE-6@SideStoryStage",
"LE-6@SwipeToStage"
]
},
@@ -1732,7 +1715,7 @@
"LEChapterToLE"
],
"next": [
- "StageLE-7",
+ "LE-7@SideStoryStage",
"LE-7@SwipeToStage"
]
},
@@ -1762,49 +1745,22 @@
"ChapterSwipeToTheRight"
]
},
- "StageLE-5": {
- "algorithm": "OcrDetect",
- "action": "ClickSelf",
- "cache": false,
- "isAscii": true,
+ "LE-5@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"LE-5"
- ],
- "roi": [
- 0,
- 145,
- 1280,
- 332
]
},
- "StageLE-6": {
- "algorithm": "OcrDetect",
- "action": "ClickSelf",
- "cache": false,
- "isAscii": true,
+ "LE-6@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"LE-6"
- ],
- "roi": [
- 0,
- 145,
- 1280,
- 332
]
},
- "StageLE-7": {
- "algorithm": "OcrDetect",
- "action": "ClickSelf",
- "cache": false,
- "isAscii": true,
+ "LE-7@SideStoryStage": {
+ "baseTask": "SideStoryStage",
"text": [
"LE-7"
- ],
- "roi": [
- 0,
- 145,
- 1280,
- 332
]
},
"SN-8": {
@@ -1813,7 +1769,7 @@
"sub": [
"SN-Open",
"SN-Chapter2",
- "StageSN-8"
+ "SN-8@SideStoryStage"
]
},
"SN-9": {
@@ -1822,7 +1778,7 @@
"sub": [
"SN-Open",
"SN-Chapter3",
- "StageSN-9"
+ "SN-9@SideStoryStage"
]
},
"SN-10": {
@@ -1831,7 +1787,7 @@
"sub": [
"SN-Open",
"SN-Chapter3",
- "StageSN-10"
+ "SN-10@SideStoryStage"
]
},
"SN-Open": {
@@ -1863,7 +1819,8 @@
"SwipeToTheLeft"
]
},
- "StageSN-8": {
+ "SN-8@SideStoryStage": {
+ "algorithm": "MatchTemplate",
"action": "ClickSelf",
"template": "SN-8.png",
"cache": false,
@@ -1874,7 +1831,8 @@
195
]
},
- "StageSN-9": {
+ "SN-9@SideStoryStage": {
+ "algorithm": "MatchTemplate",
"action": "ClickSelf",
"template": "SN-9.png",
"cache": false,
@@ -1885,7 +1843,8 @@
198
]
},
- "StageSN-10": {
+ "SN-10@SideStoryStage": {
+ "algorithm": "MatchTemplate",
"action": "ClickSelf",
"template": "SN-10.png",
"cache": false,
@@ -2224,12 +2183,16 @@
"“耀阳”"
],
[
- "玛恩.+",
+ "玛恩.*",
"玛恩纳"
],
[
".*默德克萨斯",
"缄默德克萨斯"
+ ],
+ [
+ "^重岳.+",
+ "重岳"
]
]
},
@@ -2251,7 +2214,7 @@
"action": "DoNothing",
"next": [
"StartUp@StartUpThemes#next",
- "StartUpBegin@Loading2",
+ "StartUpBegin@LoadingIcon",
"StartUp@ReturnTo",
"StartUp@EndOfAction",
"StartUp@FromStageSN"
@@ -2278,7 +2241,7 @@
],
"next": [
"StartUpThemes#next",
- "GameStart@Loading2"
+ "GameStart@LoadingIcon"
]
},
"StartToWakeUp": {
@@ -2291,7 +2254,7 @@
],
"next": [
"StartUpThemes#next",
- "StartToWakeUp@Loading2"
+ "StartToWakeUp@LoadingIcon"
]
},
"StartLoginBServer": {
@@ -2304,7 +2267,7 @@
],
"next": [
"StartUpThemes#next",
- "StartLoginBServer@Loading2"
+ "StartLoginBServer@LoadingIcon"
]
},
"StartUpConnectingFlag": {
@@ -2317,7 +2280,7 @@
],
"next": [
"StartUpThemes#next",
- "StartUpConnectingFlag@Loading2"
+ "StartUpConnectingFlag@LoadingIcon"
]
},
"StartUp": {
@@ -2385,7 +2348,7 @@
"#back"
]
},
- "Loading": {
+ "LoadingText": {
"algorithm": "OcrDetect",
"action": "DoNothing",
"text": [
@@ -2399,12 +2362,12 @@
120
],
"next": [
- "Loading",
+ "LoadingText",
"#next",
"#back"
]
},
- "Loading2": {
+ "LoadingIcon": {
"Doc": "开始唤醒最后阶段的黑色正三角加载画面",
"roi": [
480,
@@ -2413,7 +2376,7 @@
280
],
"next": [
- "Loading2",
+ "LoadingIcon",
"#next",
"#back"
]
@@ -2433,7 +2396,7 @@
"#back",
"ReturnTo",
"ReturnToConfirm",
- "ReturnTo@Loading2",
+ "ReturnTo@LoadingIcon",
"CloseAnnos#next",
"FromStageSN",
"TodaysSupplies"
@@ -2451,7 +2414,7 @@
"next": [
"ReturnTo",
"#back",
- "ReturnToConfirm@Loading2",
+ "ReturnToConfirm@LoadingIcon",
"CloseAnnos#next",
"FromStageSN",
"TodaysSupplies",
@@ -2492,15 +2455,6 @@
]
},
"StartUp@ClickCorner": {
- "ClickCorner_Doc": "点击屏幕右边,不会点到掉落物品,且不会关掉关卡选择的一块区域",
- "algorithm": "JustReturn",
- "action": "ClickRect",
- "specificRect": [
- 1000,
- 120,
- 270,
- 10
- ],
"next": [
"StartUp@ReturnTo",
"StartUp",
@@ -2508,9 +2462,6 @@
"StartUp@FromStageSN",
"StartUp@TodaysSupplies",
"StartUp@OfflineConfirm"
- ],
- "onErrorNext": [
- "StartUp@RestartGameAndContinue"
]
},
"FromStageSN": {
@@ -2570,9 +2521,7 @@
"Fight@UsePrts",
"Fight@UsePrts-StageSN",
"Fight@StartButton1",
- "Fight@PRTS3",
- "Fight@PRTS",
- "Fight@PRTS2",
+ "Fight@PRTS#next",
"Fight@EndOfAction"
]
},
@@ -2589,9 +2538,7 @@
"Fight@CloseAnnos#next",
"Fight@FromStageSN",
"Fight@TodaysSupplies",
- "Fight@PRTS3",
- "Fight@PRTS",
- "Fight@PRTS2",
+ "Fight@PRTS#next",
"Fight@EndOfAction"
]
},
@@ -2648,6 +2595,7 @@
},
"StartButton1": {
"algorithm": "OcrDetect",
+ "action": "ClickSelf",
"text": [
"开始行动"
],
@@ -2663,7 +2611,9 @@
"StageSNReturnFlag",
"Stop"
],
- "action": "ClickSelf",
+ "reduceOtherTimes": [
+ "(ClickCornerAfterPRTS+ClickCorner)*5"
+ ],
"next": [
"StartButton2",
"UseMedicine",
@@ -2727,9 +2677,7 @@
340
],
"next": [
- "PRTS",
- "PRTS2",
- "PRTS3",
+ "PRTS#next",
"EndOfAction",
"StartButton2",
"PrtsErrorConfirm",
@@ -2738,6 +2686,15 @@
]
},
"PRTS": {
+ "algorithm": "JustReturn",
+ "postDelay": 5000,
+ "next": [
+ "PRTS1",
+ "PRTS2",
+ "PRTS3"
+ ]
+ },
+ "PRTS1": {
"action": "DoNothing",
"template": "BattleOfficiallyBegin.png",
"roi": [
@@ -2752,9 +2709,7 @@
],
"postDelay": 5000,
"next": [
- "PRTS",
- "PRTS2",
- "PRTS3",
+ "PRTS#next",
"EndOfAction",
"PrtsErrorConfirm",
"OfflineConfirm",
@@ -2762,7 +2717,7 @@
]
},
"PRTS2": {
- "baseTask": "PRTS",
+ "baseTask": "PRTS1",
"algorithm": "OcrDetect",
"text": [
"接管"
@@ -2775,7 +2730,7 @@
]
},
"PRTS3": {
- "baseTask": "PRTS",
+ "baseTask": "PRTS1",
"algorithm": "OcrDetect",
"text": [
"角色"
@@ -2791,49 +2746,32 @@
"algorithm": "JustReturn",
"action": "DoNothing",
"next": [
- "PRTS",
- "PRTS2",
- "PRTS3",
+ "PRTS#next",
"EndOfAction",
- "WaitAfterPRTS@Loading",
- "WaitAfterPRTS@Loading2",
- "ClickCornerAfterPRTS_1"
+ "#self@LoadingText",
+ "#self@LoadingIcon",
+ "ClickCornerAfterPRTS"
]
},
"ClickCornerAfterPRTS": {
- "Doc": "base_task",
- "ClickCorner_Doc": "点击屏幕右边,不会点到掉落物品,且不会关掉关卡选择的一块区域",
"algorithm": "JustReturn",
"action": "ClickRect",
+ "Doc": "点击屏幕右边,不会点到掉落物品,且不会关掉关卡选择的一块区域",
+ "Doc2": "在比较卡的时候点击屏幕,或是在升级时点击屏幕以进入到结算界面,最多 5 次,间隔 3s",
"specificRect": [
1000,
120,
270,
10
],
+ "maxTimes": 5,
"postDelay": 3000,
"next": [
"EndOfAction",
- "StartButton1",
- "StartButton2",
- "UseMedicine",
- "UseStone",
- "NoStone",
- "WaitAfterPRTS@Loading",
- "WaitAfterPRTS@Loading2",
- "StartUpThemes#next"
- ]
- },
- "ClickCornerAfterPRTS_1": {
- "baseTask": "ClickCornerAfterPRTS",
- "next": [
- "ClickCornerAfterPRTS#next",
- "ClickCornerAfterPRTS_2"
- ]
- },
- "ClickCornerAfterPRTS_2": {
- "baseTask": "ClickCornerAfterPRTS",
- "onErrorNext": [
+ "((ClickCorner + WaitAfterPRTS + StartUpThemes)#next ^ ClickCornerAfterPRTS)",
+ "#self"
+ ],
+ "exceededNext": [
"RestartGameAndContinue"
]
},
@@ -2890,7 +2828,7 @@
"preDelay": 5000
},
"ClickCorner": {
- "ClickCorner_Doc": "点击屏幕右边,不会点到掉落物品,且不会关掉关卡选择的一块区域",
+ "Doc": "点击屏幕右边,不会点到掉落物品,且不会关掉关卡选择的一块区域",
"algorithm": "JustReturn",
"action": "ClickRect",
"specificRect": [
@@ -2899,15 +2837,17 @@
270,
10
],
+ "maxTimes": 5,
"next": [
"StartButton1",
"StartButton2",
"UseMedicine",
"UseStone",
"NoStone",
- "EndOfAction"
+ "#self@LoadingIcon",
+ "#self"
],
- "onErrorNext": [
+ "exceededNext": [
"RestartGameAndContinue"
]
},
@@ -3095,9 +3035,7 @@
160
],
"next": [
- "PRTS",
- "PRTS2",
- "PRTS3",
+ "PRTS#next",
"PrtsErrorConfirm",
"OfflineConfirm",
"StartUpThemes#next",
@@ -3148,7 +3086,7 @@
"FightMissionFailedAndStop"
],
"onErrorNext": [
- "ClickCornerAfterPRTS_1"
+ "ClickCornerAfterPRTS"
]
},
"FightMissionFailedAndStop": {
@@ -3171,7 +3109,7 @@
"postDelay": 5000,
"next": [
"StartUpThemes#next",
- "RestartGameAndContinue@Loading2",
+ "RestartGameAndContinue@LoadingIcon",
"ReturnTo",
"FromStageSN"
]
@@ -3228,7 +3166,8 @@
"Recruit@ReturnTo",
"Recruit@CloseAnnos#next",
"Recruit@FromStageSN",
- "Recruit@TodaysSupplies"
+ "Recruit@TodaysSupplies",
+ "Recruit@OfflineConfirm"
]
},
"Recruit": {
@@ -3245,7 +3184,7 @@
255
],
"next": [
- "RecruitBegin@Loading",
+ "RecruitBegin@LoadingText",
"RecruitBegin"
]
},
@@ -3260,7 +3199,7 @@
420
],
"next": [
- "RecruitFinish@Loading",
+ "RecruitFinish@LoadingText",
"RecruitFinish",
"Recruit",
"RecruitSkip",
@@ -3946,7 +3885,7 @@
],
"next": [
"CreditShop-Bought",
- "CreditShop-BuyIt@Loading",
+ "CreditShop-BuyIt@LoadingText",
"CreditShop-NoMoney"
]
},
@@ -4067,7 +4006,8 @@
"preDelay": 500,
"postDelay": 500,
"next": [
- "RecruitRefreshConfirm@Loading",
+ "RecruitRefreshConfirm@LoadingText",
+ "Recruit@OfflineConfirm",
"SleepThenStop"
]
},
@@ -4128,7 +4068,8 @@
80
],
"next": [
- "RecruitConfirm@Loading",
+ "RecruitConfirm@LoadingText",
+ "Recruit@OfflineConfirm",
"RecruitFlag"
]
},
@@ -4347,7 +4288,7 @@
165
],
"next": [
- "DroneConfirm@Loading",
+ "DroneConfirm@LoadingText",
"DeliverableOrder",
"DroneAssist-Trade-Stop",
"DroneAssistMfg"
@@ -4406,7 +4347,7 @@
],
"postDelay": 1000,
"next": [
- "ReplenishToMaxConfirm@Loading",
+ "ReplenishToMaxConfirm@LoadingText",
"Stop"
]
},
@@ -4475,9 +4416,9 @@
"text": [],
"rectMove_Doc": "基于笑脸的位置移动",
"rectMove": [
- 0,
+ -8,
20,
- 113,
+ 125,
22
]
},
@@ -4825,6 +4766,7 @@
},
"InfrastSortByTrustButtonClickAgain": {
"action": "ClickSelf",
+ "templThreshold": 0.7,
"cache": false,
"roi": [
1000,
@@ -5217,17 +5159,17 @@
},
"InfrastOperSelected": {
"template": "empty.png",
- "templThreshold": 8000,
+ "templThreshold": 800,
"templThreshold_Doc": "这个任务中作为符合range的像素点数量阈值",
"maskRange": [
95,
105
],
"rectMove": [
- 0,
- -230,
- 74,
- 283
+ -18,
+ -220,
+ 10,
+ 160
]
},
"InfrastOperOnShift": {
@@ -5639,7 +5581,7 @@
160
],
"next": [
- "ClueGiveTo1stConfirm@Loading",
+ "ClueGiveTo1stConfirm@LoadingText",
"SelectClue",
"CloseSendClue"
]
@@ -5672,7 +5614,7 @@
160
],
"next": [
- "ClueGiveTo2ndConfirm@Loading",
+ "ClueGiveTo2ndConfirm@LoadingText",
"SelectClue",
"CloseSendClue"
]
@@ -5705,7 +5647,7 @@
160
],
"next": [
- "ClueGiveTo3rdConfirm@Loading",
+ "ClueGiveTo3rdConfirm@LoadingText",
"SelectClue",
"CloseSendClue"
]
@@ -5738,7 +5680,7 @@
160
],
"next": [
- "ClueGiveTo4thConfirm@Loading",
+ "ClueGiveTo4thConfirm@LoadingText",
"SelectClue",
"CloseSendClue"
]
@@ -6149,7 +6091,8 @@
"BattleStartExercise",
"BattleStartSimulation",
"BattleStartTrials",
- "BattleStartTrialsRaid"
+ "BattleStartTrialsRaid",
+ "BattleStartOCR"
]
},
"BattleStartNormal": {
@@ -6167,6 +6110,20 @@
"BattleStartTrialsRaid": {
"baseTask": "BattleStart"
},
+ "BattleStartOCR": {
+ "baseTask": "BattleStart",
+ "algorithm": "OcrDetect",
+ "text": [
+ "开始",
+ "行动"
+ ],
+ "roi": [
+ 999,
+ 398,
+ 222,
+ 237
+ ]
+ },
"BattleStartSimulation": {
"action": "ClickSelf",
"roi": [
@@ -6247,7 +6204,7 @@
},
"BattleAvatarData": {
"template": "empty.png",
- "templThreshold": 0.9
+ "templThreshold": 0.8
},
"BattleDroneAvatarData": {
"template": "empty.png",
@@ -6447,24 +6404,15 @@
"template": "empty.png",
"templThreshold": 0.75
},
- "BattleOperRoleCaster": {
- },
- "BattleOperRoleMedic": {
- },
- "BattleOperRolePioneer": {
- },
- "BattleOperRoleSniper": {
- },
- "BattleOperRoleSpecial": {
- },
- "BattleOperRoleSupport": {
- },
- "BattleOperRoleTank": {
- },
- "BattleOperRoleWarrior": {
- },
- "BattleOperRoleDrone": {
- },
+ "BattleOperRoleCaster": {},
+ "BattleOperRoleMedic": {},
+ "BattleOperRolePioneer": {},
+ "BattleOperRoleSniper": {},
+ "BattleOperRoleSpecial": {},
+ "BattleOperRoleSupport": {},
+ "BattleOperRoleTank": {},
+ "BattleOperRoleWarrior": {},
+ "BattleOperRoleDrone": {},
"BattleOperCostRange": {
"algorithm": "Hash",
"hash": [],
@@ -7986,7 +7934,7 @@
1035,
370,
226,
- 225
+ 300
]
},
"Roguelike@StageEnterBattle": {
@@ -8195,8 +8143,8 @@
"Roguelike@GamePassSkip1",
"Roguelike@GamePassTheEndConfirm",
"Roguelike@GamePass",
- "Roguelike@StartAction@Loading",
- "Roguelike@StartAction@Loading2"
+ "Roguelike@StartAction@LoadingText",
+ "Roguelike@StartAction@LoadingIcon"
]
},
"Roguelike@StartExplore": {
@@ -9205,6 +9153,7 @@
},
"RoguelikeRecruitOperListSlowlySwipeToTheLeft": {
"baseTask": "SlowlySwipeToTheLeft",
+ "Doc": "为了保证每次滑动至少多出一列 且 不能跳过一列,应保证滑动距离在400-500之间。",
"specificRect": [
500,
340,
@@ -9212,7 +9161,7 @@
20
],
"rectMove": [
- 1150,
+ 980,
340,
20,
20
@@ -9227,7 +9176,7 @@
20
],
"rectMove": [
- 500,
+ 670,
340,
20,
20
@@ -9259,7 +9208,7 @@
"RoguelikeRecruitSwipeMaxTime": {
"algorithm": "JustReturn",
"maxTimes_Doc": "这个参数是肉鸽招募时,向右划动的最大次数",
- "maxTimes": 4
+ "maxTimes": 5
},
"RoguelikeSkillSelectionFlag": {
"templThreshold": 0.9,
@@ -9431,7 +9380,9 @@
},
"RoguelikeRefreshSupportBtnOcr": {
"algorithm": "OcrDetect",
- "text": [ "更新助战列表" ],
+ "text": [
+ "更新助战列表"
+ ],
"roi": [
1097,
13,
@@ -9447,7 +9398,9 @@
},
"RoguelikeChooseSupportBtnOcr": {
"algorithm": "OcrDetect",
- "text": [ "选择助战" ],
+ "text": [
+ "选择助战"
+ ],
"roi": [
1011,
9,
@@ -9470,9 +9423,9 @@
"招募助战"
],
"roi": [
- 770,
+ 810,
500,
- 160,
+ 200,
40
],
"preDelay": 200
@@ -9492,14 +9445,9 @@
"baseTask": "RoguelikeRecruitSupportElite"
},
"RoguelikeRecruitSupportEnterFlag": {
- "template": "Roguelike@RefreshSupportBtn.png",
- "action": "DoNothing",
- "roi": [
- 1094,
- 10,
- 172,
- 47
- ]
+ "baseTask": "RoguelikeRefreshSupportBtnOcr",
+ "postDelay": 0,
+ "action": "DoNothing"
},
"SSSBegin": {
"Doc": "保全派驻",
@@ -10940,12 +10888,16 @@
"CheckNextDay@Reclamation@NextDay": {
"template": "Reclamation@NextDay.png",
"postDelay": 0,
- "next": [ "Stop" ]
+ "next": [
+ "Stop"
+ ]
},
"EnterNextDay@Reclamation@Begin": {
"baseTask": "Reclamation@NextDay",
"template": "Reclamation@NextDay.png",
- "next": [ "Stop" ]
+ "next": [
+ "Stop"
+ ]
},
"WaitNextDayFlag@Reclamation@BetweenDayFlag": {
"template": "Reclamation@BetweenDayFlag.png",
diff --git a/resource/template/Loading2.png b/resource/template/LoadingIcon.png
similarity index 100%
rename from resource/template/Loading2.png
rename to resource/template/LoadingIcon.png
diff --git a/resource/template/Roguelike@RefreshSupportBtn.png b/resource/template/Roguelike@RefreshSupportBtn.png
deleted file mode 100644
index 27a8d9d928..0000000000
Binary files a/resource/template/Roguelike@RefreshSupportBtn.png and /dev/null differ
diff --git a/src/MaaCore/Assistant.cpp b/src/MaaCore/Assistant.cpp
index 1553b0c192..2d027dc7f3 100644
--- a/src/MaaCore/Assistant.cpp
+++ b/src/MaaCore/Assistant.cpp
@@ -14,12 +14,12 @@
#include "Task/Interface/DepotTask.h"
#include "Task/Interface/FightTask.h"
#include "Task/Interface/InfrastTask.h"
-#include "Task/Interface/SingleStepTask.h"
#include "Task/Interface/MallTask.h"
-#include "Task/Interface/RecruitTask.h"
#include "Task/Interface/ReclamationTask.h"
+#include "Task/Interface/RecruitTask.h"
#include "Task/Interface/RoguelikeTask.h"
#include "Task/Interface/SSSCopilotTask.h"
+#include "Task/Interface/SingleStepTask.h"
#include "Task/Interface/StartUpTask.h"
#include "Utils/Logger.hpp"
#ifdef ASST_DEBUG
diff --git a/src/MaaCore/Common/AsstTypes.h b/src/MaaCore/Common/AsstTypes.h
index b88b8a756e..3076ab3145 100644
--- a/src/MaaCore/Common/AsstTypes.h
+++ b/src/MaaCore/Common/AsstTypes.h
@@ -379,6 +379,7 @@ namespace asst
bool full_match = false; // 是否需要全匹配,否则搜索到子串就算匹配上了
bool is_ascii = false; // 是否启用字符数字模型
bool without_det = false; // 是否不使用检测模型
+ bool replace_full = false; // 匹配之后,是否将整个字符串replace(false是只替换match的部分)
std::unordered_map
replace_map; // 部分文字容易识别错,字符串强制replace之后,再进行匹配
};
diff --git a/src/MaaCore/Config/Miscellaneous/AvatarCacheManager.cpp b/src/MaaCore/Config/Miscellaneous/AvatarCacheManager.cpp
index 5b6a92d9fd..a38d26d7e2 100644
--- a/src/MaaCore/Config/Miscellaneous/AvatarCacheManager.cpp
+++ b/src/MaaCore/Config/Miscellaneous/AvatarCacheManager.cpp
@@ -1,9 +1,9 @@
#include "AvatarCacheManager.h"
+#include "../TaskData.h"
#include "BattleDataConfig.h"
#include "Utils/ImageIo.hpp"
#include "Utils/Logger.hpp"
-#include "../TaskData.h"
bool asst::AvatarCacheManager::load(const std::filesystem::path& path)
{
@@ -30,10 +30,10 @@ bool asst::AvatarCacheManager::load(const std::filesystem::path& path)
Log.warn("unknown oper", name);
continue;
}
-
+
Log.trace(filepath);
cv::Mat avatar = asst::imread(filepath);
-
+
if (avatar.empty()) {
Log.warn("failed to read", filepath);
continue;
diff --git a/src/MaaCore/Config/Miscellaneous/OcrConfig.cpp b/src/MaaCore/Config/Miscellaneous/OcrConfig.cpp
new file mode 100644
index 0000000000..251c7a475d
--- /dev/null
+++ b/src/MaaCore/Config/Miscellaneous/OcrConfig.cpp
@@ -0,0 +1,28 @@
+#include "OcrConfig.h"
+
+#include
+
+#include "Utils/Logger.hpp"
+
+std::string asst::OcrConfig::process_equivalence_class(const std::string& str)
+{
+ std::string result = str;
+ for (const auto& eq_class : m_eq_classes) {
+ ranges::for_each(eq_class.begin() + 1, eq_class.end(), [&](const std::string& elem) {
+ utils::string_replace_all_in_place(result, elem, eq_class.front());
+ });
+ }
+ return result;
+}
+
+bool asst::OcrConfig::parse(const json::value& json)
+{
+ for (const json::value& eq_class : json.at("equivalence_classes").as_array()) {
+ equivalence_class eq_class_tmp;
+ for (const json::value& eq_element : eq_class.as_array()) {
+ eq_class_tmp.emplace_back(eq_element.as_string());
+ }
+ m_eq_classes.emplace_back(std::move(eq_class_tmp));
+ }
+ return true;
+}
diff --git a/src/MaaCore/Config/Miscellaneous/OcrConfig.h b/src/MaaCore/Config/Miscellaneous/OcrConfig.h
new file mode 100644
index 0000000000..93016716be
--- /dev/null
+++ b/src/MaaCore/Config/Miscellaneous/OcrConfig.h
@@ -0,0 +1,31 @@
+#pragma once
+
+#include "Config/AbstractConfig.h"
+
+#include "Utils/Ranges.hpp"
+#include
+#include
+#include
+#include
+#include
+
+#include "Common/AsstTypes.h"
+
+namespace asst
+{
+ class OcrConfig final : public SingletonHolder, public AbstractConfig
+ {
+ public:
+ virtual ~OcrConfig() override = default;
+
+ std::string process_equivalence_class(const std::string& str);
+
+ protected:
+ virtual bool parse(const json::value& json) override;
+
+ using equivalence_class = std::vector;
+
+ std::vector m_eq_classes;
+ };
+
+} // namespace asst
diff --git a/src/MaaCore/Config/Miscellaneous/TilePack.cpp b/src/MaaCore/Config/Miscellaneous/TilePack.cpp
index 33d42976ec..362f64380d 100644
--- a/src/MaaCore/Config/Miscellaneous/TilePack.cpp
+++ b/src/MaaCore/Config/Miscellaneous/TilePack.cpp
@@ -1,6 +1,20 @@
#include "TilePack.h"
#include "Common/AsstConf.h"
+#include "meojson/json.hpp"
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
ASST_SUPPRESS_CV_WARNINGS_START
#include
ASST_SUPPRESS_CV_WARNINGS_END
@@ -16,36 +30,101 @@ bool asst::TilePack::load(const std::filesystem::path& path)
return false;
}
- std::vector tiles_array;
- for (const auto& entry : std::filesystem::directory_iterator(path)) {
- const auto& file_path = entry.path();
- if (file_path.extension() != ".json") {
- continue;
- }
- auto json_opt = json::open(file_path);
- if (!json_opt) {
- Log.error("Failed to open json file:", file_path);
- return false;
- }
- auto& json = json_opt.value();
- if (json.is_array()) {
- // 兼容上游仓库的 levels.json
- // 有些用户习惯于在游戏更新了但maa还没发版前,自己手动更新下 levels.json,可以提前用
- tiles_array.insert(tiles_array.end(), std::make_move_iterator(json.as_array().begin()),
- std::make_move_iterator(json.as_array().end()));
- }
- else if (json.is_object()) {
- tiles_array.emplace_back(std::move(*json_opt));
- }
- else {
- Log.error("Invalid json file:", file_path);
- return false;
+ std::list tiles_array;
+ std::queue> file_strings;
+
+ std::atomic_bool eoq = false;
+ std::mutex queue_mut;
+ std::condition_variable condvar;
+
+ using result_type = std::optional>;
+ std::vector> workers;
+
+ {
+ auto n_workers = std::max(1U, std::thread::hardware_concurrency());
+ workers.reserve(n_workers);
+ for (auto thi = 0U; thi < n_workers; ++thi) {
+ workers.emplace_back(std::async(std::launch::async, [&]() -> result_type {
+ std::list result;
+ while (true) {
+ std::unique_lock lk { queue_mut };
+ condvar.wait(lk, [&]() -> bool { return !file_strings.empty() || eoq.load(); });
+ if (file_strings.empty()) return result;
+
+ std::string buf {};
+ buf.swap(file_strings.front().second);
+ auto path = file_strings.front().first;
+ file_strings.pop();
+ lk.unlock();
+
+ auto json_opt = json::parse(buf);
+ if (!json_opt) {
+ Log.error("Unable to parse json file:", path);
+ eoq.store(true);
+ return std::nullopt;
+ }
+
+ auto& json = json_opt.value();
+ if (json.is_array()) {
+ // 兼容上游仓库的 levels.json
+ // 有些用户习惯于在游戏更新了但maa还没发版前,自己手动更新下 levels.json,可以提前用
+ result.insert(tiles_array.end(), std::make_move_iterator(json.as_array().begin()),
+ std::make_move_iterator(json.as_array().end()));
+ }
+ else if (json.is_object()) {
+ result.emplace_back(std::move(json));
+ }
+ else {
+ Log.error("Invalid json file:", path);
+ eoq.store(true);
+ return std::nullopt;
+ }
+ }
+ }));
}
}
+ for (const auto& entry : std::filesystem::directory_iterator(path)) {
+
+ if (eoq.load()) break; // this means parsing went wrong
+
+ const auto& file_path = entry.path();
+ if (file_path.extension() != ".json") continue;
+
+ const auto f_size = std::filesystem::file_size(file_path);
+ std::ifstream ifs(file_path, std::ios::in);
+ auto buf = std::string(f_size, '\0');
+ ifs.read(buf.data(), static_cast(buf.size()));
+ {
+ std::unique_lock lk(queue_mut);
+ file_strings.push(std::make_pair(file_path, std::move(buf)));
+ }
+ condvar.notify_one();
+ }
+
+ eoq.store(true);
+ condvar.notify_all();
+
+ auto result = std::transform_reduce(
+ workers.begin(), workers.end(), std::optional { std::list {} },
+ [](result_type lhs, result_type rhs) -> result_type {
+ if (!lhs || !rhs) return std::nullopt;
+ lhs->splice(lhs->end(), std::move(rhs).value());
+ return lhs;
+ },
+ [&](std::future& fut) -> result_type {
+ while (fut.wait_for(std::chrono::milliseconds(10)) == std::future_status::timeout)
+ condvar.notify_all(); // is this necessary?
+ return fut.get();
+ });
+
+ if (!result) return false;
+ Log.info("got", result->size(), "maps");
+
try {
+ // TODO: this move has no effect
m_tile_calculator =
- std::make_shared(WindowWidthDefault, WindowHeightDefault, std::move(tiles_array));
+ std::make_shared(WindowWidthDefault, WindowHeightDefault, std::move(result).value());
}
catch (const std::exception& e) {
Log.error("Tile create failed", e.what());
diff --git a/src/MaaCore/Config/ResourceLoader.cpp b/src/MaaCore/Config/ResourceLoader.cpp
index fb265bb74b..7203c27f65 100644
--- a/src/MaaCore/Config/ResourceLoader.cpp
+++ b/src/MaaCore/Config/ResourceLoader.cpp
@@ -13,6 +13,7 @@
#include "Miscellaneous/RecruitConfig.h"
#include "Miscellaneous/StageDropsConfig.h"
#include "Miscellaneous/TilePack.h"
+#include "Miscellaneous/OcrConfig.h"
#include "Roguelike/RoguelikeCopilotConfig.h"
#include "Roguelike/RoguelikeRecruitConfig.h"
#include "Roguelike/RoguelikeShoppingConfig.h"
@@ -64,6 +65,7 @@ bool asst::ResourceLoader::load(const std::filesystem::path& path)
LoadResourceAndCheckRet(RoguelikeRecruitConfig, "roguelike"_p / "recruitment.json"_p);
LoadResourceAndCheckRet(RoguelikeShoppingConfig, "roguelike"_p / "shopping.json"_p);
LoadResourceAndCheckRet(BattleDataConfig, "battle_data.json"_p);
+ LoadResourceAndCheckRet(OcrConfig, "ocr_config.json"_p);
/* load resource with json and template files*/
LoadResourceWithTemplAndCheckRet(TaskData, "tasks.json"_p, "template"_p);
diff --git a/src/MaaCore/Config/TaskData.cpp b/src/MaaCore/Config/TaskData.cpp
index 27bfd6fa35..863bab9394 100644
--- a/src/MaaCore/Config/TaskData.cpp
+++ b/src/MaaCore/Config/TaskData.cpp
@@ -44,7 +44,7 @@ std::shared_ptr asst::TaskData::get(std::string_view name)
return it->second;
}
- return expend_sharp_task(name, get_raw(name)).value_or(nullptr);
+ return expend_task(name, get_raw(name)).value_or(nullptr);
}
bool asst::TaskData::parse(const json::value& json)
@@ -142,7 +142,7 @@ bool asst::TaskData::parse(const json::value& json)
// 生成 # 型任务
for (const auto& [name, old_task] : m_raw_all_tasks_info) {
- expend_sharp_task(name, old_task);
+ expend_task(name, old_task);
}
}
@@ -197,97 +197,416 @@ bool asst::TaskData::parse(const json::value& json)
return true;
}
-std::optional asst::TaskData::expend_sharp_task(std::string_view name, taskptr_t old_task)
+// new_tasks 是目的任务列表
+// raw_tasks 是源任务表达式列表
+// task_name 是任务名
+// task_changed 记录 raw_tasks 在转换为 new_tasks 时是否发生变化
+// multi 表示是否允许重复
+bool asst::TaskData::explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_tasks, std::string_view task_name,
+ bool& task_changed, bool multi)
+{
+ std::unordered_set tasks_set; // 记录任务列表中已有的任务(内容元素与 new_tasks 基本一致)
+
+ using symbl_t = size_t;
+ [[maybe_unused]] constexpr symbl_t symbl_end = 0;
+ [[maybe_unused]] constexpr symbl_t symbl_lambda_task_sep = 1;
+ [[maybe_unused]] constexpr symbl_t symbl_lparen = 2;
+ [[maybe_unused]] constexpr symbl_t symbl_rparen = 3;
+ [[maybe_unused]] constexpr symbl_t symbl_lbrace = 4;
+ [[maybe_unused]] constexpr symbl_t symbl_rbrace = 5;
+ [[maybe_unused]] constexpr symbl_t symbl_at = 6;
+ [[maybe_unused]] constexpr symbl_t symbl_sharp = 7;
+ [[maybe_unused]] constexpr symbl_t symbl_mul = 8;
+ [[maybe_unused]] constexpr symbl_t symbl_add = 9;
+ [[maybe_unused]] constexpr symbl_t symbl_sub = 10;
+
+ [[maybe_unused]] constexpr symbl_t symbl_name_start = 11;
+
+ [[maybe_unused]] constexpr symbl_t symbl_name_sub = 11;
+ [[maybe_unused]] constexpr symbl_t symbl_name_next = 12;
+ [[maybe_unused]] constexpr symbl_t symbl_name_on_error_next = 13;
+ [[maybe_unused]] constexpr symbl_t symbl_name_exceeded_next = 14;
+ [[maybe_unused]] constexpr symbl_t symbl_name_reduce_other_times = 15;
+ [[maybe_unused]] constexpr symbl_t symbl_name_self = 16;
+ [[maybe_unused]] constexpr symbl_t symbl_name_back = 17;
+ [[maybe_unused]] constexpr symbl_t symbl_name_none = 18;
+
+ static const std::vector symbl_table = {
+ "__END__", // 0
+ ",", // 1
+ "(", // 2
+ ")", // 3
+ "{", // 4
+ "}", // 5
+ "@", // 6
+ "#", // 7
+ "*", // 8
+ "+", // 9
+ "^", // 10
+ "sub", // 11
+ "next", // 12
+ "on_error_next", // 13
+ "exceeded_next", // 14
+ "reduce_other_times", // 15
+ "self", // 16
+ "back", // 17
+ "none", // 18
+ };
+
+ auto is_symbl_name = [&](symbl_t x) { return x >= symbl_name_start; };
+ auto is_symbl_subtask_type = [&](symbl_t x) {
+ switch (x) {
+ case symbl_name_sub:
+ case symbl_name_next:
+ case symbl_name_on_error_next:
+ case symbl_name_exceeded_next:
+ case symbl_name_reduce_other_times:
+ return true;
+ default:
+ return false;
+ }
+ };
+ auto is_symbl_sharp_type = [&](symbl_t x) {
+ switch (x) {
+ case symbl_name_self:
+ case symbl_name_back:
+ case symbl_name_none:
+ return true;
+ default:
+ return is_symbl_subtask_type(x);
+ }
+ };
+
+ // perform_op 的结果不保证符合参数 multi 的要求
+ auto perform_op = [&](std::string_view task_expr, symbl_t op, tasklistptr_t x,
+ tasklistptr_t y) -> std::optional {
+ auto ret = std::make_shared();
+
+ switch (op) {
+ case symbl_add:
+ ranges::copy(*x, std::back_inserter(*ret));
+ ranges::copy(*y, std::back_inserter(*ret));
+ break;
+ case symbl_sub:
+ for (std::string_view sx : *x) {
+ bool flag = true;
+ for (std::string_view sy : *y) {
+ if (sx == sy) {
+ flag = false;
+ break;
+ }
+ }
+ if (flag) ret->emplace_back(sx);
+ }
+ break;
+ case symbl_mul: {
+ if (y->size() != 1) {
+ Log.error("There is more than one y:", *y, "while perform op", symbl_table[op], "in", task_expr,
+ "of task:", task_name);
+ return std::nullopt;
+ }
+ int times = 0;
+ try {
+ times = std::stoi(y->front());
+ }
+ catch (...) {
+ Log.error("y:", y->front(), "is not number while perform op", symbl_table[op], "in", task_expr,
+ "of task:", task_name);
+ return std::nullopt;
+ }
+ for (int i = 0; i < times; ++i) {
+ ranges::copy(*x, std::back_inserter(*ret));
+ }
+ break;
+ }
+ case symbl_at: {
+ if (y->empty()) { // A@#none = A
+ ranges::copy(*x, std::back_inserter(*ret));
+ }
+ else if (x->empty()) { // #none@A = A
+ ranges::copy(*y, std::back_inserter(*ret));
+ }
+ else { // (A+B)@(C+D) = A@C + A@D + B@C + B@D
+ ranges::for_each(
+ *x, [&](std::string_view s) { ranges::copy(append_prefix(*y, s), std::back_inserter(*ret)); });
+ }
+ break;
+ }
+ case symbl_sharp: {
+ if (y->empty()) {
+ Log.error("There is no sharp_type while perform op", symbl_table[op], "in", task_expr,
+ "of task:", task_name);
+ return std::nullopt;
+ }
+ for (std::string_view type : *y) {
+ if (!x || x->empty()) { // unary
+ x = std::make_shared(tasklist_t { "" });
+ }
+ for (const auto& task : *x) {
+ if (type == "self") {
+ ret->emplace_back(task_name);
+ continue;
+ }
+ if (type == "none") {
+ continue;
+ }
+ if (type == "back") {
+ // "A#back" === "A", "B@A#back" === "B@A", "#back" === null
+ if (!task.empty()) ret->emplace_back(task);
+ continue;
+ }
+ taskptr_t other_task_info_ptr = task.empty() ? default_task_info_ptr : get_raw(task);
+
+#define ASST_TASKDATA_PERFORM_OP_IF_BRANCH(t, m) \
+ else if (type == #t) \
+ { \
+ bool task_changed = false; \
+ if (!explain_tasks(*ret, other_task_info_ptr->t, task_name, task_changed, m)) { \
+ Log.error("Failed to explain task", task + "->" #t, "while perform op", symbl_table[op], "in", task_expr, \
+ "of task:", task_name); \
+ return std::nullopt; \
+ } \
+ }
+ if (other_task_info_ptr == nullptr) [[unlikely]] {
+ Log.error("Task", task, "not found while perform op", symbl_table[op], "in", task_expr,
+ "of task:", task_name);
+ return std::nullopt;
+ }
+ ASST_TASKDATA_PERFORM_OP_IF_BRANCH(next, false)
+ ASST_TASKDATA_PERFORM_OP_IF_BRANCH(sub, true)
+ ASST_TASKDATA_PERFORM_OP_IF_BRANCH(on_error_next, false)
+ ASST_TASKDATA_PERFORM_OP_IF_BRANCH(exceeded_next, false)
+ ASST_TASKDATA_PERFORM_OP_IF_BRANCH(reduce_other_times, true)
+ else [[unlikely]]
+ {
+ Log.error("Unknown symbol", type, "while perform op", symbl_table[op], "in", task_expr,
+ "of task:", task_name);
+ return std::nullopt;
+ }
+#undef ASST_TASKDATA_PERFORM_OP_IF_BRANCH
+ }
+ }
+
+ break;
+ }
+ default:
+ Log.error("Unknown op", symbl_table[op], "in", task_expr, "of task:", task_name);
+ return std::nullopt;
+ }
+ return ret;
+ };
+
+ for (std::string_view task_expr : raw_tasks) {
+ if (task_expr.empty() || (!multi && tasks_set.contains(task_expr))) {
+ task_changed = true;
+ continue;
+ }
+
+ std::vector symbols_table = symbl_table;
+
+ std::unordered_map symbols_id = {};
+ for (symbl_t i = 0; i != symbols_table.size(); ++i) {
+ symbols_id.emplace(symbols_table[i], i);
+ }
+
+ std::vector symbol_stream;
+ auto emplace_symbol_if_not_empty = [&](const auto l, const auto r) {
+ if (l < r) {
+ auto symbol = std::string(l, r);
+ if (!symbols_id.contains(symbol)) {
+ symbl_t id = symbols_table.size();
+ symbols_id.emplace(symbol, id);
+ symbols_table.emplace_back(symbol);
+ symbol_stream.emplace_back(id);
+ }
+ else {
+ symbol_stream.emplace_back(symbols_id[symbol]);
+ }
+ }
+ };
+
+ // 记号流分析
+ auto y_begin = task_expr.begin();
+ for (auto p = task_expr.begin(); p != task_expr.end(); ++p) {
+ switch (*p) {
+ case ' ':
+ case '\t':
+ case '\r':
+ case '\n':
+ emplace_symbol_if_not_empty(y_begin, p);
+ y_begin = p + 1;
+ break;
+ case ',':
+ case '(':
+ case ')':
+ case '{':
+ case '}':
+ case '#':
+ case '*':
+ case '+':
+ case '^':
+ task_changed = true;
+ [[fallthrough]];
+ case '@':
+ emplace_symbol_if_not_empty(y_begin, p);
+ y_begin = p + 1;
+ symbol_stream.emplace_back(symbols_id[std::string(1, *p)]);
+ break;
+ default:
+ break;
+ }
+ }
+ emplace_symbol_if_not_empty(y_begin, task_expr.end());
+ symbol_stream.emplace_back(symbl_end); // 结束符
+ // Log.debug(symbol_stream | views::transform([&](symbl_t id) { return symbols_table[id]; }));
+ // Log.debug(symbol_stream);
+
+ /*
+ $name = 至少一位的任务名
+ $numbers = 至少一位的数字
+
+ $subtask_type = sub
+ | next
+ | on_error_next
+ | exceeded_next
+ | reduce_other_times
+
+ $sharp_type = $subtask_type
+ | self
+ | back
+ | none
+
+ $subtask = $subtask_type ( $tasks )
+
+ $lambda_task = { $subtask , ... } // 推迟实现
+ | { $tasks } // 推迟实现;不写 subtask_type 默认为 sub
+
+ $parens = # $sharp_type
+ | $name
+ | $name $lambda_task // 推迟实现
+ | ( $tasks )
+
+ $top_tasks = $top_tasks @ $parens
+ | $top_tasks # $sharp_type
+ | $parens
+
+ $mul_tasks = $top_tasks * $numbers
+ | $top_tasks
+
+ $tasks = $mul_tasks + $tasks
+ | $mul_tasks ^ $tasks // 删除 $mul_tasks 中所有在 $tasks 中的任务
+ | $mul_tasks
+ */
+ // 记号流处理
+ auto cur = symbol_stream.cbegin();
+ using decode_func_t = std::function()>;
+ decode_func_t decode_name, decode_tasks, decode_multasks, decode_vtasks, decode_parens;
+ decode_name = [&]() -> std::optional {
+ if (*cur >= symbl_name_start) {
+ return std::make_shared(tasklist_t { symbols_table[*(cur++)] });
+ }
+ return std::nullopt;
+ };
+ decode_tasks = [&]() -> std::optional {
+ auto l = decode_multasks();
+ if (!l) return std::nullopt;
+ while (*cur == symbl_add || *cur == symbl_sub) {
+ symbl_t op = *(cur++);
+ auto r = decode_multasks();
+ if (!r) return std::nullopt;
+ l = perform_op(task_expr, op, *l, *r);
+ if (!l) return std::nullopt;
+ }
+ return l;
+ };
+ decode_multasks = [&]() -> std::optional {
+ auto l = decode_vtasks();
+ if (!l) return std::nullopt;
+ while (*cur == symbl_mul) {
+ symbl_t op = *(cur++);
+ auto r = decode_name();
+ if (!r) return std::nullopt;
+ l = perform_op(task_expr, op, *l, *r);
+ if (!l) return std::nullopt;
+ }
+ return l;
+ };
+ decode_vtasks = [&]() -> std::optional {
+ auto l = decode_parens();
+ if (!l) return std::nullopt;
+ while (*cur == symbl_at || *cur == symbl_sharp) {
+ symbl_t op = *(cur++);
+ auto r = decode_parens();
+ if (!r) return std::nullopt;
+ l = perform_op(task_expr, op, *l, *r);
+ if (!l) return std::nullopt;
+ }
+ return l;
+ };
+ decode_parens = [&]() -> std::optional {
+ if (*cur == symbl_lparen) {
+ ++cur;
+ auto l = decode_tasks();
+ if (!l) return std::nullopt;
+ if (*cur != symbl_rparen) [[unlikely]] {
+ Log.error("Invalid symbol", *cur, "at", cur - symbol_stream.cbegin(), "in", symbol_stream,
+ "(should be ')')");
+ return std::nullopt;
+ }
+ ++cur;
+ return l;
+ }
+ if (*cur == symbl_sharp) {
+ ++cur;
+ auto r = decode_name();
+ if (!r) return std::nullopt;
+ return perform_op(task_expr, symbl_sharp, nullptr, *r);
+ }
+ if (*cur >= symbl_name_start) {
+ return decode_name();
+ }
+ Log.error("Invalid symbol", *cur, "at", cur - symbol_stream.cbegin(), "in", symbol_stream);
+ return std::nullopt;
+ };
+ auto opt = decode_tasks();
+ if (!opt || (*cur != symbl_end && cur != symbol_stream.cend())) {
+ return false;
+ }
+
+ for (const auto& task : **opt) {
+ if (task.empty() || (!multi && tasks_set.contains(task))) {
+ task_changed = true;
+ continue;
+ }
+ new_tasks.emplace_back(task);
+ tasks_set.emplace(task_name_view(task));
+ }
+
+ tasks_set.emplace(task_name_view(task_expr));
+ }
+
+ return true;
+}
+
+std::optional asst::TaskData::expend_task(std::string_view name, taskptr_t old_task)
{
if (old_task == nullptr) [[unlikely]] {
return std::nullopt;
}
- bool task_changed = false;
- auto task_info = _generate_task_info(old_task);
- auto expend_sharp_task_list = [&](tasklist_t& new_task_list, const tasklist_t& task_list,
- std::string_view list_type) -> bool {
- new_task_list.clear();
- std::function generate_tasks;
- std::unordered_set tasks_set {};
- generate_tasks = [&](const tasklist_t& raw_tasks) {
- for (std::string_view task : raw_tasks) {
- if (task.empty()) {
- Log.error("Task", name, "has a empty", list_type);
- return false;
- }
- if (tasks_set.contains(task)) [[unlikely]] {
- task_changed = true;
- continue;
- }
- tasks_set.emplace(task_name_view(task));
-
- size_t pos = task.rfind('#');
- if (pos == std::string_view::npos) [[likely]] {
- new_task_list.emplace_back(task);
- continue;
- }
-#ifdef ASST_DEBUG
- if (pos == 0) [[unlikely]] {
- Log.trace("Task", name, "has a virtual", list_type, ":", (std::string("`") += task) += '`');
- }
-#endif // ASST_DEBUG
-
- task_changed = true;
- std::string_view type = task.substr(pos + 1);
- if (type == "self") {
- new_task_list.emplace_back(name);
- continue;
- }
- taskptr_t other_task_info_ptr = pos ? get_raw(task.substr(0, pos)) : default_task_info_ptr;
-#define ASST_TASKDATA_GENERATE_TASKS(t) \
- else if (type == #t) \
- { \
- if (!generate_tasks(other_task_info_ptr->t)) { \
- return false; \
- } \
+ auto task_info = _generate_task_info(old_task); // 复制一份
+ bool task_changed = false; // 任务列表是否发生变化
+#define ASST_TASKDATA_EXPEND_TASK_IF_BRANCH(type, m) \
+ task_info->type.clear(); \
+ if (!explain_tasks(task_info->type, old_task->type, name, task_changed, m)) [[unlikely]] { \
+ Log.error("Generate task_list", std::string(name) + "->" #type, "failed."); \
+ return std::nullopt; \
}
- if (other_task_info_ptr == nullptr) [[unlikely]] {
- Log.error("Task", task, "not found");
- return false;
- }
- else if (type == "back") {
- // "A#back" === "A", "B@A#back" === "B@A", "#back" === null
- if (pos) {
- new_task_list.emplace_back(task.substr(0, pos));
- }
- }
- ASST_TASKDATA_GENERATE_TASKS(next)
- ASST_TASKDATA_GENERATE_TASKS(sub)
- ASST_TASKDATA_GENERATE_TASKS(on_error_next)
- ASST_TASKDATA_GENERATE_TASKS(exceeded_next)
- ASST_TASKDATA_GENERATE_TASKS(reduce_other_times)
- else [[unlikely]]
- {
- Log.error("Unknown type", type, "in", task);
- return false;
- }
-#undef ASST_TASKDATA_GENERATE_TASKS
- }
-
- return true;
- };
- if (!generate_tasks(task_list)) [[unlikely]] {
- Log.error("Generate task_list", (std::string(name) += "->") += list_type, "failed.");
- return false;
- }
- return true;
- };
-
-#define ASST_TASKDATA_GENERATE_SHARP_TASK(type) \
- if (!expend_sharp_task_list(task_info->type, old_task->type, #type)) { \
- return std::nullopt; \
- }
- ASST_TASKDATA_GENERATE_SHARP_TASK(next);
- ASST_TASKDATA_GENERATE_SHARP_TASK(sub);
- ASST_TASKDATA_GENERATE_SHARP_TASK(exceeded_next);
- ASST_TASKDATA_GENERATE_SHARP_TASK(on_error_next);
- ASST_TASKDATA_GENERATE_SHARP_TASK(reduce_other_times);
-#undef ASST_TASKDATA_GENERATE_SHARP_TASK
+ ASST_TASKDATA_EXPEND_TASK_IF_BRANCH(next, false);
+ ASST_TASKDATA_EXPEND_TASK_IF_BRANCH(sub, true);
+ ASST_TASKDATA_EXPEND_TASK_IF_BRANCH(exceeded_next, false);
+ ASST_TASKDATA_EXPEND_TASK_IF_BRANCH(on_error_next, false);
+ ASST_TASKDATA_EXPEND_TASK_IF_BRANCH(reduce_other_times, true);
+#undef ASST_TASKDATA_EXPEND_TASK_IF_BRANCH
// tasks 个数超过上限时不再 emplace,返回临时值
constexpr size_t MAX_TASKS_SIZE = 65535;
@@ -397,6 +716,7 @@ asst::TaskData::taskptr_t asst::TaskData::generate_ocr_task_info([[maybe_unused]
ocr_task_info_ptr->full_match = task_json.get("fullMatch", default_ptr->full_match);
ocr_task_info_ptr->is_ascii = task_json.get("isAscii", default_ptr->is_ascii);
ocr_task_info_ptr->without_det = task_json.get("withoutDet", default_ptr->without_det);
+ ocr_task_info_ptr->replace_full = task_json.get("replaceFull", default_ptr->replace_full);
if (auto opt = task_json.find("ocrReplace")) {
for (const json::value& rep : opt.value()) {
ocr_task_info_ptr->replace_map.emplace(rep[0].as_string(), rep[1].as_string());
@@ -536,6 +856,7 @@ std::shared_ptr asst::TaskData::_default_ocr_task_info()
ocr_task_info_ptr->full_match = false;
ocr_task_info_ptr->is_ascii = false;
ocr_task_info_ptr->without_det = false;
+ ocr_task_info_ptr->replace_full = false;
return ocr_task_info_ptr;
}
@@ -578,7 +899,7 @@ bool asst::TaskData::syntax_check(const std::string& task_name, const json::valu
{
"action", "algorithm", "baseTask", "cache", "exceededNext", "fullMatch",
"hash", "isAscii", "maskRange", "maxTimes", "next", "ocrReplace",
- "onErrorNext", "postDelay", "preDelay", "rectMove", "reduceOtherTimes", "roi",
+ "onErrorNext", "postDelay", "preDelay", "rectMove", "reduceOtherTimes", "replaceFull", "roi",
"specialParams", "sub", "subErrorIgnored", "templThreshold", "template", "text",
"threshold", "withoutDet",
} },
@@ -593,7 +914,7 @@ bool asst::TaskData::syntax_check(const std::string& task_name, const json::valu
{
"action", "algorithm", "baseTask", "cache", "exceededNext",
"fullMatch", "isAscii", "maxTimes", "next", "ocrReplace",
- "onErrorNext", "postDelay", "preDelay", "rectMove", "reduceOtherTimes",
+ "onErrorNext", "postDelay", "preDelay", "rectMove", "reduceOtherTimes", "replaceFull",
"roi", "sub", "subErrorIgnored", "text", "withoutDet",
"specialParams"
} },
diff --git a/src/MaaCore/Config/TaskData.h b/src/MaaCore/Config/TaskData.h
index ebfc884f0d..424c5752ae 100644
--- a/src/MaaCore/Config/TaskData.h
+++ b/src/MaaCore/Config/TaskData.h
@@ -17,6 +17,7 @@ namespace asst
{
private:
using tasklist_t = std::vector;
+ using tasklistptr_t = std::shared_ptr;
using taskptr_t = std::shared_ptr;
std::shared_ptr _default_match_task_info();
@@ -141,7 +142,9 @@ namespace asst
{
return m_all_tasks_info.insert_or_assign(task_name_view(task_name), task_info_ptr);
}
- std::optional expend_sharp_task(std::string_view name, taskptr_t old_task);
+ bool explain_tasks(tasklist_t& new_tasks, const tasklist_t& raw_tasks, std::string_view name,
+ bool& task_changed, bool multi);
+ std::optional expend_task(std::string_view name, taskptr_t old_task);
#ifdef ASST_DEBUG
bool syntax_check(const std::string& task_name, const json::value& task_json);
#endif
diff --git a/src/MaaCore/Controller/Controller.cpp b/src/MaaCore/Controller/Controller.cpp
index a26326c62d..cd9cbedb17 100644
--- a/src/MaaCore/Controller/Controller.cpp
+++ b/src/MaaCore/Controller/Controller.cpp
@@ -797,7 +797,7 @@ bool asst::Controller::swipe_without_scale(const Point& p1, const Point& p2, int
const auto& opt = Config.get_options();
if (m_minitouch_enabled && m_minitouch_available) {
Log.trace(m_use_maa_touch ? "maatouch" : "minitouch", "swipe", p1, p2, duration, extra_swipe, slope_in,
- slope_out);
+ slope_out);
Minitoucher toucher(std::bind(&Controller::input_to_minitouch, this, std::placeholders::_1), m_minitouch_props);
toucher.down(x1, y1);
@@ -896,6 +896,11 @@ bool asst::Controller::support_swipe_with_pause() const noexcept
return m_minitouch_enabled && m_minitouch_available && m_swipe_with_pause_enabled && !m_adb.press_esc.empty();
}
+bool asst::Controller::support_precise_swipe() const noexcept
+{
+ return m_minitouch_enabled && m_minitouch_available;
+}
+
bool asst::Controller::connect(const std::string& adb_path, const std::string& address, const std::string& config)
{
LogTraceFunction;
@@ -1600,7 +1605,7 @@ std::optional asst::Controller::call_command_posix(const std::string& cmd,
if (client_socket < 0) {
Log.error("accept failed:", strerror(errno));
::kill(m_child, SIGKILL);
- ::waitpid(m_child, &exit_ret, 0);
+ ::waitpid(m_child, &exit_ret, 0);
return std::nullopt;
}
@@ -1621,7 +1626,8 @@ std::optional asst::Controller::call_command_posix(const std::string& cmd,
}
} while (::waitpid(m_child, &exit_ret, WNOHANG) == 0 && !check_timeout());
}
- ::waitpid(m_child, &exit_ret, 0); // if ::waitpid(m_child, &exit_ret, WNOHANG) == 0, repeat it will cause ECHILD, so not check the return value
+ ::waitpid(m_child, &exit_ret, 0); // if ::waitpid(m_child, &exit_ret, WNOHANG) == 0, repeat it will cause
+ // ECHILD, so not check the return value
}
else {
// failed to create child process
diff --git a/src/MaaCore/Controller/Controller.h b/src/MaaCore/Controller/Controller.h
index af56cf6fa8..2bd6872851 100644
--- a/src/MaaCore/Controller/Controller.h
+++ b/src/MaaCore/Controller/Controller.h
@@ -65,6 +65,7 @@ namespace asst
bool press_esc();
bool support_swipe_with_pause() const noexcept;
+ bool support_precise_swipe() const noexcept;
std::pair get_scale_size() const noexcept;
diff --git a/src/MaaCore/MaaCore.vcxproj b/src/MaaCore/MaaCore.vcxproj
index d5124c59df..f5eeac53ee 100644
--- a/src/MaaCore/MaaCore.vcxproj
+++ b/src/MaaCore/MaaCore.vcxproj
@@ -37,6 +37,7 @@
+
@@ -170,6 +171,7 @@
+
diff --git a/src/MaaCore/MaaCore.vcxproj.filters b/src/MaaCore/MaaCore.vcxproj.filters
index 06e7f213ec..a3ff708973 100644
--- a/src/MaaCore/MaaCore.vcxproj.filters
+++ b/src/MaaCore/MaaCore.vcxproj.filters
@@ -522,6 +522,9 @@
源文件\Controller\adb-lite
+
+ 源文件\Config\Miscellaneous
+
@@ -857,5 +860,8 @@
源文件\Controller\adb-lite
+
+ 源文件\Config\Miscellaneous
+
\ No newline at end of file
diff --git a/src/MaaCore/Task/BattleHelper.cpp b/src/MaaCore/Task/BattleHelper.cpp
index b237001c81..c796c12282 100644
--- a/src/MaaCore/Task/BattleHelper.cpp
+++ b/src/MaaCore/Task/BattleHelper.cpp
@@ -191,7 +191,8 @@ bool asst::BattleHelper::update_deployment(bool init, const cv::Mat& reusable)
auto analyze = [&](OcrImageAnalyzer& name_analyzer) {
name_analyzer.set_image(name_image);
name_analyzer.set_task_info(oper_name_ocr_task_name());
- name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map);
+ name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map,
+ Task.get("CharsNameOcrReplace")->replace_full);
if (!name_analyzer.analyze()) {
return std::string();
}
diff --git a/src/MaaCore/Task/Fight/DrGrandetTaskPlugin.cpp b/src/MaaCore/Task/Fight/DrGrandetTaskPlugin.cpp
index cbcc765482..01fb3dc2e4 100644
--- a/src/MaaCore/Task/Fight/DrGrandetTaskPlugin.cpp
+++ b/src/MaaCore/Task/Fight/DrGrandetTaskPlugin.cpp
@@ -1,9 +1,9 @@
#include "DrGrandetTaskPlugin.h"
#include "Controller/Controller.h"
-#include "Vision/OcrImageAnalyzer.h"
#include "Config/TaskData.h"
#include "Utils/Logger.hpp"
+#include "Vision/OcrImageAnalyzer.h"
#include
diff --git a/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp b/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp
index 20af67e158..374cf0eeb8 100644
--- a/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp
+++ b/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp
@@ -6,15 +6,15 @@
#include "Common/AsstMsg.h"
#include "Controller/Controller.h"
+#include "Config/TaskData.h"
+#include "Task/ProcessTask.h"
+#include "Utils/Logger.hpp"
+#include "Utils/Ranges.hpp"
#include "Vision/Infrast/InfrastFacilityImageAnalyzer.h"
#include "Vision/Infrast/InfrastOperImageAnalyzer.h"
#include "Vision/MatchImageAnalyzer.h"
#include "Vision/OcrImageAnalyzer.h"
#include "Vision/OcrWithPreprocessImageAnalyzer.h"
-#include "Config/TaskData.h"
-#include "Task/ProcessTask.h"
-#include "Utils/Logger.hpp"
-#include "Utils/Ranges.hpp"
asst::InfrastAbstractTask::InfrastAbstractTask(const AsstCallback& callback, Assistant* inst,
std::string_view task_chain)
@@ -153,6 +153,9 @@ bool asst::InfrastAbstractTask::swipe_and_select_custom_opers(bool is_dorm_order
if (!is_dorm_order) {
ProcessTask(*this, { "InfrastOperListTabSkillUnClicked", "Stop" }).run();
}
+ else {
+ ProcessTask(*this, { "InfrastOperListTabMoodDoubleClickWhenUnclicked" }).run();
+ }
if (max_num_of_opers() > 1) {
click_clear_button(); // 先排序后清空,加速干员变化不大时的选择速度
@@ -205,12 +208,13 @@ bool asst::InfrastAbstractTask::swipe_and_select_custom_opers(bool is_dorm_order
// 然后滑动到最左边,清空一下,在走后面的识别+按序点击逻辑
if (is_dorm_order) {
ProcessTask(*this, { "InfrastOperListTabMoodDoubleClick" }).run();
+ sleep(200);
}
else {
ProcessTask(*this, { "InfrastOperListTabWorkStatusUnClicked" }).run();
}
- if (room_config.sort || room_config.autofill) {
+ if (swipe_times) {
swipe_to_the_left_of_operlist(swipe_times + 1);
swipe_times = 0;
}
@@ -224,14 +228,10 @@ bool asst::InfrastAbstractTask::swipe_and_select_custom_opers(bool is_dorm_order
return false;
}
- if (!is_dorm_order) {
- if (swipe_times) swipe_to_the_left_of_operlist(swipe_times + 1);
- swipe_times = 0;
- if (!select_opers_review(origin_room_config)) {
- // 复核失败,说明current_room_config与OCR识别是不符的,current_room_config是无效信息,还原到用户原来的配置,重选
- current_room_config() = std::move(origin_room_config);
- return false;
- }
+ if (!is_dorm_order && !select_opers_review(origin_room_config)) {
+ // 复核失败,说明current_room_config与OCR识别是不符的,current_room_config是无效信息,还原到用户原来的配置,重选
+ current_room_config() = std::move(origin_room_config);
+ return false;
}
return true;
@@ -242,7 +242,8 @@ bool asst::InfrastAbstractTask::swipe_and_select_custom_opers(bool is_dorm_order
/// @param origin_room_config 期望的配置
/// @param num_of_opers_expect 期望选中的人数,空置则按names.size()判断
/// @return 是否符合期望
-bool asst::InfrastAbstractTask::select_opers_review(infrast::CustomRoomConfig const& origin_room_config, size_t num_of_opers_expect)
+bool asst::InfrastAbstractTask::select_opers_review(infrast::CustomRoomConfig const& origin_room_config,
+ size_t num_of_opers_expect)
{
LogTraceFunction;
// save_img("debug/");
@@ -250,29 +251,35 @@ bool asst::InfrastAbstractTask::select_opers_review(infrast::CustomRoomConfig co
const auto image = ctrler()->get_image();
InfrastOperImageAnalyzer oper_analyzer(image);
- oper_analyzer.set_to_be_calced(InfrastOperImageAnalyzer::ToBeCalced::Selected);
+ oper_analyzer.set_to_be_calced(InfrastOperImageAnalyzer::ToBeCalced::Selected |
+ InfrastOperImageAnalyzer::ToBeCalced::Doing);
if (!oper_analyzer.analyze()) {
Log.warn("No oper");
return false;
}
oper_analyzer.sort_by_loc();
const auto& oper_analyzer_res = oper_analyzer.get_result();
- size_t selected_count = ranges::count_if(oper_analyzer_res, [](const infrast::Oper& info) { return info.selected; });
- Log.info("selected_count,config.names.size,num_of_opers_expect = ", selected_count, ",", room_config.names.size(), ",", num_of_opers_expect);
+ size_t selected_count =
+ ranges::count_if(oper_analyzer_res, [](const infrast::Oper& info) { return info.selected; });
+ Log.info("selected_count,config.names.size,num_of_opers_expect = ", selected_count, ",", room_config.names.size(),
+ ",", num_of_opers_expect);
if (selected_count < num_of_opers_expect) {
Log.warn("select opers review fail: 选中干员数与期望不符");
return false;
}
+ if (facility_name() != "Dorm" && (!m_is_custom || room_config.names.empty() && room_config.candidates.empty())) {
+ return true;
+ }
if (selected_count < room_config.names.size()) {
Log.warn("select opers review fail: 存在自定义干员未选中");
return false;
}
- const auto& ocr_replace = Task.get("CharsNameOcrReplace")->replace_map;
+ const auto& ocr_replace = Task.get("CharsNameOcrReplace");
for (const auto& oper : oper_analyzer_res) {
OcrWithPreprocessImageAnalyzer name_analyzer;
- name_analyzer.set_replace(ocr_replace);
+ name_analyzer.set_replace(ocr_replace->replace_map, ocr_replace->replace_full);
name_analyzer.set_image(oper.name_img);
name_analyzer.set_expansion(0);
if (!name_analyzer.analyze()) {
@@ -286,9 +293,11 @@ bool asst::InfrastAbstractTask::select_opers_review(infrast::CustomRoomConfig co
if (auto iter = ranges::find(room_config.names, name); iter != room_config.names.end()) {
Log.info(name, "在\"operators\"中,且已选中");
room_config.names.erase(iter);
- } else { // 备选干员或自动选择,只要不选工作中的干员即可
+ }
+ else { // 备选干员或自动选择,只要不选工作中的干员即可
if (oper.doing == infrast::Doing::Working) {
- Log.warn("select opers review fail: 非自定义情况下,选了正在工作的干员");
+ Log.warn("选了工作中的干员:", name);
+ Log.warn("select opers review fail: 非自定义配置,却选了工作中的干员");
return false;
}
}
@@ -323,10 +332,10 @@ bool asst::InfrastAbstractTask::select_custom_opers(std::vector& pa
oper_analyzer.sort_by_loc();
partial_result.clear();
- const auto& ocr_replace = Task.get("CharsNameOcrReplace")->replace_map;
+ const auto& ocr_replace = Task.get("CharsNameOcrReplace");
for (const auto& oper : oper_analyzer.get_result()) {
OcrWithPreprocessImageAnalyzer name_analyzer;
- name_analyzer.set_replace(ocr_replace);
+ name_analyzer.set_replace(ocr_replace->replace_map, ocr_replace->replace_full);
name_analyzer.set_image(oper.name_img);
name_analyzer.set_expansion(0);
if (!name_analyzer.analyze()) {
@@ -378,12 +387,12 @@ void asst::InfrastAbstractTask::order_opers_selection(const std::vector("CharsNameOcrReplace")->replace_map;
+ const auto& ocr_replace = Task.get("CharsNameOcrReplace");
std::vector page_result;
for (const auto& oper : oper_analyzer.get_result()) {
OcrWithPreprocessImageAnalyzer name_analyzer;
- name_analyzer.set_replace(ocr_replace);
+ name_analyzer.set_replace(ocr_replace->replace_map, ocr_replace->replace_full);
name_analyzer.set_image(oper.name_img);
name_analyzer.set_expansion(0);
if (!name_analyzer.analyze()) {
@@ -403,7 +412,7 @@ void asst::InfrastAbstractTask::order_opers_selection(const std::vector& partial_result);
- bool select_opers_review(infrast::CustomRoomConfig const& origin_room_config, size_t num_of_opers_expect = 0); // 复核干员选择是否符合期望
+ bool select_opers_review(infrast::CustomRoomConfig const& origin_room_config,
+ size_t num_of_opers_expect = 0); // 复核干员选择是否符合期望
void order_opers_selection(const std::vector& names);
virtual void click_return_button() override;
diff --git a/src/MaaCore/Task/Infrast/InfrastDormTask.cpp b/src/MaaCore/Task/Infrast/InfrastDormTask.cpp
index 5f60654d25..2da5523891 100644
--- a/src/MaaCore/Task/Infrast/InfrastDormTask.cpp
+++ b/src/MaaCore/Task/Infrast/InfrastDormTask.cpp
@@ -3,13 +3,13 @@
#include
#include "Controller/Controller.h"
+#include "Config/TaskData.h"
+#include "Task/ProcessTask.h"
+#include "Utils/Logger.hpp"
#include "Vision/Infrast/InfrastOperImageAnalyzer.h"
#include "Vision/MatchImageAnalyzer.h"
#include "Vision/OcrImageAnalyzer.h"
#include "Vision/OcrWithPreprocessImageAnalyzer.h"
-#include "Config/TaskData.h"
-#include "Task/ProcessTask.h"
-#include "Utils/Logger.hpp"
asst::InfrastDormTask& asst::InfrastDormTask::set_notstationed_enabled(bool dorm_notstationed_enabled) noexcept
{
@@ -250,10 +250,17 @@ bool asst::InfrastDormTask::opers_choose(asst::infrast::CustomRoomConfig const&
}
}
+ ProcessTask(*this, { "InfrastOperListTabMoodClick", "InfrastOperListTabWorkStatusUnClicked" }).run();
if (swipe_times) swipe_to_the_left_of_operlist(swipe_times + 1);
swipe_times = 0;
- ProcessTask(*this, { "InfrastOperListTabMoodDoubleClick" }).run();
- if (!select_opers_review(origin_room_config, num_of_selected)) {
+ bool review = select_opers_review(origin_room_config, num_of_selected);
+ if (m_next_step == NextStep::RestDone || m_next_step == NextStep::Trust) {
+ click_sort_by_trust_button();
+ }
+ else {
+ ProcessTask(*this, { "InfrastOperListTabMoodClick" }).run();
+ }
+ if (!review) {
current_room_config() = origin_room_config;
return false;
}
diff --git a/src/MaaCore/Task/Infrast/InfrastInfoTask.cpp b/src/MaaCore/Task/Infrast/InfrastInfoTask.cpp
index 7e30ce1dd7..4f015174fe 100644
--- a/src/MaaCore/Task/Infrast/InfrastInfoTask.cpp
+++ b/src/MaaCore/Task/Infrast/InfrastInfoTask.cpp
@@ -1,9 +1,9 @@
#include "InfrastInfoTask.h"
#include "Controller/Controller.h"
-#include "Vision/Infrast/InfrastFacilityImageAnalyzer.h"
#include "Status.h"
#include "Utils/Logger.hpp"
+#include "Vision/Infrast/InfrastFacilityImageAnalyzer.h"
bool asst::InfrastInfoTask::_run()
{
diff --git a/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp b/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp
index 0f26c012e5..0b812d73bf 100644
--- a/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp
+++ b/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp
@@ -447,7 +447,8 @@ bool asst::InfrastProductionTask::optimal_calc()
}
else {
OcrWithPreprocessImageAnalyzer name_analyzer(find_iter->name_img);
- name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map);
+ name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map,
+ Task.get("CharsNameOcrReplace")->replace_full);
Log.trace("Analyze name filter");
if (!name_analyzer.analyze()) {
continue;
@@ -574,7 +575,8 @@ bool asst::InfrastProductionTask::opers_choose()
}
else {
OcrWithPreprocessImageAnalyzer name_analyzer(lhs.name_img);
- name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map);
+ name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map,
+ Task.get("CharsNameOcrReplace")->replace_full);
Log.trace("Analyze name filter");
if (!name_analyzer.analyze()) {
return false;
@@ -636,12 +638,10 @@ bool asst::InfrastProductionTask::opers_choose()
if (swipe_times) {
swipe_to_the_left_of_operlist(swipe_times + 1);
}
-
- ProcessTask(*this, { "InfrastOperListTabSkillUnClicked", "Stop" }).run(); // 点下排序,让已选干员排到最前面
- bool reviews = select_opers_review(current_room_config(), count);
- ProcessTask(*this, { "InfrastOperListTabWorkStatusUnClicked" }).run(); // 还原工作状态排序
-
- return reviews;
+ // 点两次排序,让已选干员排到最前面
+ ProcessTask(*this, { "InfrastOperListTabSkillUnClicked" }).run();
+ ProcessTask(*this, { "InfrastOperListTabWorkStatusUnClicked" }).run();
+ return select_opers_review(current_room_config(), count);
}
bool asst::InfrastProductionTask::use_drone()
diff --git a/src/MaaCore/Task/Infrast/InfrastReceptionTask.cpp b/src/MaaCore/Task/Infrast/InfrastReceptionTask.cpp
index bf29992c59..964b9fd99e 100644
--- a/src/MaaCore/Task/Infrast/InfrastReceptionTask.cpp
+++ b/src/MaaCore/Task/Infrast/InfrastReceptionTask.cpp
@@ -3,12 +3,12 @@
#include "Utils/Ranges.hpp"
#include "Controller/Controller.h"
-#include "Vision/Infrast/InfrastClueImageAnalyzer.h"
-#include "Vision/Infrast/InfrastClueVacancyImageAnalyzer.h"
-#include "Vision/MatchImageAnalyzer.h"
#include "Config/TaskData.h"
#include "Task/ProcessTask.h"
#include "Utils/Logger.hpp"
+#include "Vision/Infrast/InfrastClueImageAnalyzer.h"
+#include "Vision/Infrast/InfrastClueVacancyImageAnalyzer.h"
+#include "Vision/MatchImageAnalyzer.h"
bool asst::InfrastReceptionTask::_run()
{
diff --git a/src/MaaCore/Task/Interface/AwardTask.cpp b/src/MaaCore/Task/Interface/AwardTask.cpp
index 99472678b3..02503f708f 100644
--- a/src/MaaCore/Task/Interface/AwardTask.cpp
+++ b/src/MaaCore/Task/Interface/AwardTask.cpp
@@ -4,8 +4,7 @@
#include "Task/ProcessTask.h"
-asst::AwardTask::AwardTask(const AsstCallback& callback, Assistant* inst)
- : InterfaceTask(callback, inst, TaskType)
+asst::AwardTask::AwardTask(const AsstCallback& callback, Assistant* inst) : InterfaceTask(callback, inst, TaskType)
{
auto award_task_ptr = std::make_shared(m_callback, m_inst, TaskType);
award_task_ptr->set_tasks({ "AwardBegin" });
diff --git a/src/MaaCore/Task/Interface/DepotTask.cpp b/src/MaaCore/Task/Interface/DepotTask.cpp
index 22a8f6fb2d..d47dae3ae6 100644
--- a/src/MaaCore/Task/Interface/DepotTask.cpp
+++ b/src/MaaCore/Task/Interface/DepotTask.cpp
@@ -3,8 +3,7 @@
#include "Task/Miscellaneous/DepotRecognitionTask.h"
#include "Task/ProcessTask.h"
-asst::DepotTask::DepotTask(const AsstCallback& callback, Assistant* inst)
- : InterfaceTask(callback, inst, TaskType)
+asst::DepotTask::DepotTask(const AsstCallback& callback, Assistant* inst) : InterfaceTask(callback, inst, TaskType)
{
auto enter_task = std::make_shared(m_callback, m_inst, TaskType);
enter_task->set_tasks({ "DepotBegin" }).set_ignore_error(true);
diff --git a/src/MaaCore/Task/Interface/FightTask.cpp b/src/MaaCore/Task/Interface/FightTask.cpp
index aefcfa4f8f..d5bbc8b7b9 100644
--- a/src/MaaCore/Task/Interface/FightTask.cpp
+++ b/src/MaaCore/Task/Interface/FightTask.cpp
@@ -26,9 +26,9 @@ asst::FightTask::FightTask(const AsstCallback& callback, Assistant* inst)
.set_times_limit("MedicineConfirm", 0)
.set_times_limit("StoneConfirm", 0)
.set_times_limit("StageSNReturnFlag", 0)
- .set_times_limit("PRTS3", 0)
- .set_times_limit("PRTS", 0)
+ .set_times_limit("PRTS1", 0)
.set_times_limit("PRTS2", 0)
+ .set_times_limit("PRTS3", 0)
.set_times_limit("EndOfAction", 0)
.set_retry_times(5);
diff --git a/src/MaaCore/Task/Interface/ReclamationTask.cpp b/src/MaaCore/Task/Interface/ReclamationTask.cpp
index c7de688f38..45b914e0b4 100644
--- a/src/MaaCore/Task/Interface/ReclamationTask.cpp
+++ b/src/MaaCore/Task/Interface/ReclamationTask.cpp
@@ -9,7 +9,6 @@
#include "Task/Reclamation/ReclamationConclusionReportPlugin.h"
#include "Task/Reclamation/ReclamationControlTask.h"
-
asst::ReclamationTask::ReclamationTask(const AsstCallback& callback, Assistant* inst)
: InterfaceTask(callback, inst, TaskType),
m_reclamation_task_ptr(std::make_shared(callback, inst, TaskType))
diff --git a/src/MaaCore/Task/Interface/SingleStepTask.cpp b/src/MaaCore/Task/Interface/SingleStepTask.cpp
index cd5528f2ff..bc931ee3e7 100644
--- a/src/MaaCore/Task/Interface/SingleStepTask.cpp
+++ b/src/MaaCore/Task/Interface/SingleStepTask.cpp
@@ -12,7 +12,7 @@ asst::SingleStepTask::SingleStepTask(const AsstCallback& callback, Assistant* in
bool asst::SingleStepTask::set_params(const json::value& params)
{
LogTraceFunction;
-
+
std::string type = params.get("type", "");
std::string subtype = params.get("subtype", "");
auto details_opt = params.find("details");
@@ -39,7 +39,7 @@ bool asst::SingleStepTask::set_copilot_stage(const json::value& details)
bool asst::SingleStepTask::append_copllot_start()
{
LogTraceFunction;
-
+
auto start_2_tp = std::make_shared(m_callback, m_inst, TaskType);
start_2_tp->set_tasks({ "BattleStartAll" }).set_ignore_error(false);
m_subtasks.emplace_back(std::move(start_2_tp));
@@ -50,7 +50,7 @@ bool asst::SingleStepTask::append_copllot_start()
bool asst::SingleStepTask::append_copilot_action(const json::value& details)
{
LogTraceFunction;
-
+
auto task = std::make_shared(m_callback, m_inst, TaskType);
try {
diff --git a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp
index 8c7fd9f35b..b25e24313b 100644
--- a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp
+++ b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp
@@ -129,16 +129,16 @@ std::vector asst::BattleFormationTask::analyzer_opers()
{
auto formation_task_ptr = Task.get("BattleQuickFormationOCR");
auto image = ctrler()->get_image();
- auto& ocr_replace = Task.get("CharsNameOcrReplace")->replace_map;
+ const auto& ocr_replace = Task.get("CharsNameOcrReplace");
OcrWithFlagTemplImageAnalyzer name_analyzer(image);
name_analyzer.set_task_info("BattleQuickFormation-OperNameFlag", "BattleQuickFormationOCR");
- name_analyzer.set_replace(ocr_replace);
+ name_analyzer.set_replace(ocr_replace->replace_map, ocr_replace->replace_full);
name_analyzer.analyze();
OcrWithFlagTemplImageAnalyzer special_focus_analyzer(image);
special_focus_analyzer.set_task_info("BattleQuickFormation-OperNameFlag-SpecialFocus", "BattleQuickFormationOCR");
- special_focus_analyzer.set_replace(ocr_replace);
+ special_focus_analyzer.set_replace(ocr_replace->replace_map, ocr_replace->replace_full);
special_focus_analyzer.analyze();
auto opers_result = name_analyzer.get_result();
diff --git a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp
index 7e23a8e1d3..3937e5dd23 100644
--- a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp
+++ b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp
@@ -247,7 +247,7 @@ bool asst::BattleProcessTask::wait_condition(const Action& action)
if (image.empty()) {
image = ctrler()->get_image();
check_in_battle(image);
- }
+ }
};
auto do_strategy_and_update_image = [&]() {
do_strategic_action(image);
diff --git a/src/MaaCore/Task/Miscellaneous/CreditShoppingTask.cpp b/src/MaaCore/Task/Miscellaneous/CreditShoppingTask.cpp
index cd05090138..c5e183de50 100644
--- a/src/MaaCore/Task/Miscellaneous/CreditShoppingTask.cpp
+++ b/src/MaaCore/Task/Miscellaneous/CreditShoppingTask.cpp
@@ -4,12 +4,12 @@
#include
#include "Controller/Controller.h"
-#include "Vision/MatchImageAnalyzer.h"
-#include "Vision/Miscellaneous/CreditShopImageAnalyzer.h"
-#include "Vision/OcrImageAnalyzer.h"
#include "Config/TaskData.h"
#include "Task/ProcessTask.h"
#include "Utils/Logger.hpp"
+#include "Vision/MatchImageAnalyzer.h"
+#include "Vision/Miscellaneous/CreditShopImageAnalyzer.h"
+#include "Vision/OcrImageAnalyzer.h"
void asst::CreditShoppingTask::set_black_list(std::vector black_list)
{
diff --git a/src/MaaCore/Task/Miscellaneous/DepotRecognitionTask.cpp b/src/MaaCore/Task/Miscellaneous/DepotRecognitionTask.cpp
index d191198636..ff705f03cf 100644
--- a/src/MaaCore/Task/Miscellaneous/DepotRecognitionTask.cpp
+++ b/src/MaaCore/Task/Miscellaneous/DepotRecognitionTask.cpp
@@ -5,11 +5,11 @@
#include
#include "Controller/Controller.h"
-#include "Vision/Miscellaneous/DepotImageAnalyzer.h"
#include "Config/GeneralConfig.h"
#include "Config/TaskData.h"
#include "Task/ProcessTask.h"
#include "Utils/Logger.hpp"
+#include "Vision/Miscellaneous/DepotImageAnalyzer.h"
bool asst::DepotRecognitionTask::_run()
{
diff --git a/src/MaaCore/Task/Reclamation/ReclamationBattlePlugin.cpp b/src/MaaCore/Task/Reclamation/ReclamationBattlePlugin.cpp
index 49d936cf52..bef93b21df 100644
--- a/src/MaaCore/Task/Reclamation/ReclamationBattlePlugin.cpp
+++ b/src/MaaCore/Task/Reclamation/ReclamationBattlePlugin.cpp
@@ -3,20 +3,19 @@
#include "Utils/NoWarningCV.h"
#include "Controller/Controller.h"
+#include "Config/TaskData.h"
+#include "ReclamationControlTask.h"
#include "Status.h"
#include "Task/ProcessTask.h"
#include "Utils/Logger.hpp"
-#include "Vision/OcrImageAnalyzer.h"
#include "Vision/MatchImageAnalyzer.h"
#include "Vision/Miscellaneous/BattleSkillReadyImageAnalyzer.h"
-#include "Config/TaskData.h"
-#include "ReclamationControlTask.h"
+#include "Vision/OcrImageAnalyzer.h"
using namespace asst;
-
asst::ReclamationBattlePlugin::ReclamationBattlePlugin(const AsstCallback& callback, Assistant* inst,
- std::string_view task_chain)
+ std::string_view task_chain)
: AbstractTaskPlugin(callback, inst, task_chain), BattleHelper(inst)
{}
@@ -42,7 +41,7 @@ bool asst::ReclamationBattlePlugin::_run()
return quit_action();
}
else if (m_battle_mode == ReclamationBattleMode::BuyWater) {
- sleep(1500); // 等待技能图标
+ sleep(1500); // 等待技能图标
bool result = buy_water();
quit_action();
return result;
@@ -84,7 +83,7 @@ bool asst::ReclamationBattlePlugin::quit_action()
// 出现Loading转一会儿就结算了,没结算还有error_next
OcrImageAnalyzer loadingAnalyzer(img);
- loadingAnalyzer.set_task_info("Loading");
+ loadingAnalyzer.set_task_info("LoadingText");
bool check3 = loadingAnalyzer.analyze();
Log.info(__FUNCTION__, "| click exit level check ", check1, check2, check3);
@@ -121,7 +120,8 @@ bool asst::ReclamationBattlePlugin::communicate_with(const std::string& npcName)
return false;
}
-bool asst::ReclamationBattlePlugin::communicate_with_aux(const std::string& npcName, std::function orderComp)
+bool asst::ReclamationBattlePlugin::communicate_with_aux(
+ const std::string& npcName, std::function orderComp)
{
auto image = ctrler()->get_image();
BattleSkillReadyImageAnalyzer skillReadyAnalyzer(image);
@@ -181,9 +181,9 @@ bool asst::ReclamationBattlePlugin::do_dialog_procedure(const std::vectorget_image();
@@ -196,7 +196,7 @@ bool asst::ReclamationBattlePlugin::do_dialog_procedure(const std::vector
#include "Controller/Controller.h"
+#include "Config/TaskData.h"
#include "Status.h"
#include "Task/ProcessTask.h"
#include "Utils/Logger.hpp"
-#include "Vision/OcrImageAnalyzer.h"
#include "Vision/MatchImageAnalyzer.h"
-#include "Config/TaskData.h"
-
+#include "Vision/OcrImageAnalyzer.h"
bool asst::ReclamationConclusionReportPlugin::verify(AsstMsg msg, const json::value& details) const
{
@@ -42,10 +40,11 @@ bool asst::ReclamationConclusionReportPlugin::check_page_valid(const cv::Mat& im
return pageAnalyzer.analyze();
}
-void asst::ReclamationConclusionReportPlugin::analyze(const cv::Mat& image) {
+void asst::ReclamationConclusionReportPlugin::analyze(const cv::Mat& image)
+{
m_badges = analyze_badges(image);
m_construction_points = analyze_construction_points(image);
-
+
m_total_badges += (m_badges == -1 ? 0 : m_badges);
m_total_cons_points += (m_construction_points == -1 ? 0 : m_construction_points);
}
@@ -89,7 +88,8 @@ int asst::ReclamationConclusionReportPlugin::analyze_construction_points(const c
}
}
-void asst::ReclamationConclusionReportPlugin::info_callback() {
+void asst::ReclamationConclusionReportPlugin::info_callback()
+{
json::value info = basic_info_with_what("ReclamationReport");
json::value& details = info["details"];
details["badges"] = m_badges;
diff --git a/src/MaaCore/Task/Reclamation/ReclamationConclusionReportPlugin.h b/src/MaaCore/Task/Reclamation/ReclamationConclusionReportPlugin.h
index 2639a7a269..15548b5494 100644
--- a/src/MaaCore/Task/Reclamation/ReclamationConclusionReportPlugin.h
+++ b/src/MaaCore/Task/Reclamation/ReclamationConclusionReportPlugin.h
@@ -10,7 +10,6 @@
#include "Status.h"
#include "Utils/NoWarningCVMat.h"
-
namespace asst
{
class ProcessTask;
diff --git a/src/MaaCore/Task/Reclamation/ReclamationControlTask.cpp b/src/MaaCore/Task/Reclamation/ReclamationControlTask.cpp
index c4c205c5c1..a69ee50abb 100644
--- a/src/MaaCore/Task/Reclamation/ReclamationControlTask.cpp
+++ b/src/MaaCore/Task/Reclamation/ReclamationControlTask.cpp
@@ -9,7 +9,7 @@
#include "ReclamationBattlePlugin.h"
-#define RunCheckSuccess(func, ...) \
+#define RunCheckSuccess(func, ...) \
do { \
if (!func(__VA_ARGS__)) return false; \
} while (false);
@@ -96,7 +96,7 @@ bool asst::ReclamationControlTask::run_smelt_gold_procedure()
for (int i = 0; i < 2; ++i)
swipe_right();
RunCheckSuccess(ProcessTask(*this, { "Reclamation@EnterSmeltGoldPage" }).run);
-
+
if (check_manufacture_status() != 1) return false;
while (!need_exit() && check_manufacture_status() == 1) {
smelt_gold_callback(++m_total_gold);
@@ -229,14 +229,16 @@ bool asst::ReclamationControlTask::swipe_left()
return ProcessTask(*this, { "Reclamation@CmdCenterSwipeLeft" }).run();
}
-void asst::ReclamationControlTask::procedure_start_callback(int times) {
+void asst::ReclamationControlTask::procedure_start_callback(int times)
+{
json::value info = basic_info_with_what("ReclamationProcedureStart");
json::value& details = info["details"];
details["times"] = times;
callback(AsstMsg::SubTaskExtraInfo, info);
}
-void asst::ReclamationControlTask::smelt_gold_callback(int times) {
+void asst::ReclamationControlTask::smelt_gold_callback(int times)
+{
json::value info = basic_info_with_what("ReclamationSmeltGold");
json::value& details = info["details"];
details["times"] = times;
diff --git a/src/MaaCore/Task/Reclamation/ReclamationControlTask.h b/src/MaaCore/Task/Reclamation/ReclamationControlTask.h
index 09e1a417a3..bedef05b05 100644
--- a/src/MaaCore/Task/Reclamation/ReclamationControlTask.h
+++ b/src/MaaCore/Task/Reclamation/ReclamationControlTask.h
@@ -22,35 +22,35 @@ namespace asst
bool run_giveup_upon_fight_procedure();
bool run_smelt_gold_procedure();
- bool navigate_to_reclamation_home(); // 导航至生息演算主界面
- bool give_up_last_algorithm_if(); // 如果有,放弃上次演算
- bool start_with_default_formation(); // 开始演算,至第一天
- bool skip_announce_report(); // 跳过每日公告
- bool start_action_enter(); // 区域交互确认
- bool battle_default_formation_start(); // 默认战斗编队并开始战斗
- bool level_complete_comfirm(); // 场景退出结算,至地图界面
- bool enter_next_day_if_useup(); // 如果决断点耗尽,进入下一天
- bool wait_between_day(); // 等待日期转换动画结束
- bool reset_scope(); // 重置地图大小
- bool enter_command_center(); // 进入侧边栏的命令中心
- bool do_manufacture(); // 点击制作按钮
+ bool navigate_to_reclamation_home(); // 导航至生息演算主界面
+ bool give_up_last_algorithm_if(); // 如果有,放弃上次演算
+ bool start_with_default_formation(); // 开始演算,至第一天
+ bool skip_announce_report(); // 跳过每日公告
+ bool start_action_enter(); // 区域交互确认
+ bool battle_default_formation_start(); // 默认战斗编队并开始战斗
+ bool level_complete_comfirm(); // 场景退出结算,至地图界面
+ bool enter_next_day_if_useup(); // 如果决断点耗尽,进入下一天
+ bool wait_between_day(); // 等待日期转换动画结束
+ bool reset_scope(); // 重置地图大小
+ bool enter_command_center(); // 进入侧边栏的命令中心
+ bool do_manufacture(); // 点击制作按钮
- bool check_next_day(); // 决断点消耗完进入下一天的标志
- bool check_emergency(); // 敌袭到达
- int check_manufacture_status(); // 制造界面是否材料充足,0不足,1充足,-1非建造页面
+ bool check_next_day(); // 决断点消耗完进入下一天的标志
+ bool check_emergency(); // 敌袭到达
+ int check_manufacture_status(); // 制造界面是否材料充足,0不足,1充足,-1非建造页面
- bool click_center_base(); // 点击中心基地图标
- bool click_corner_black_market(); // 点击左上角黑市图标
- bool click_any_zone(); // 点击奇遇外任意区
- bool click_black_market(); // 点击黑市
-
- bool swipe_right();
+ bool click_center_base(); // 点击中心基地图标
+ bool click_corner_black_market(); // 点击左上角黑市图标
+ bool click_any_zone(); // 点击奇遇外任意区
+ bool click_black_market(); // 点击黑市
+
+ bool swipe_right();
bool swipe_left();
-
+
void procedure_start_callback(int times);
void smelt_gold_callback(int times);
ReclamationTaskMode m_task_mode = ReclamationTaskMode::GiveupUponFight;
- int m_total_gold = 0; // 制作赤金的次数
+ int m_total_gold = 0; // 制作赤金的次数
};
}
diff --git a/src/MaaCore/Task/ReportDataTask.cpp b/src/MaaCore/Task/ReportDataTask.cpp
index b6167c8b4e..5c0efb6d5e 100644
--- a/src/MaaCore/Task/ReportDataTask.cpp
+++ b/src/MaaCore/Task/ReportDataTask.cpp
@@ -87,7 +87,7 @@ void asst::ReportDataTask::report_to_penguin()
constexpr int DefaultBackoff = 10 * 1000; // 10s
int backoff = DefaultBackoff;
-
+
auto penguin_success_cond = [](const http::Response& response) -> bool { return response.success(); };
auto penguin_retry_cond = [&](const http::Response& response) -> bool {
if (!response.status_code()) {
@@ -126,7 +126,7 @@ void asst::ReportDataTask::report_to_penguin()
}
Log.info("Re-report to penguin-stats.cn", Penguin_CN);
std::string new_cmd_format = utils::string_replace_all(cmd_format, Penguin_IO, Penguin_CN);
-
+
backoff = DefaultBackoff;
response = report(PenguinSubtaskName, new_cmd_format, penguin_success_cond, penguin_retry_cond);
@@ -202,6 +202,6 @@ asst::http::Response asst::ReportDataTask::escape_and_request(const std::string&
Log.info("request:\n" + cmd_line);
std::string response = utils::call_command(cmd_line);
Log.info("response:\n" + response);
-
+
return response;
}
diff --git a/src/MaaCore/Task/ReportDataTask.h b/src/MaaCore/Task/ReportDataTask.h
index bc57c9ebdd..27dedb3e79 100644
--- a/src/MaaCore/Task/ReportDataTask.h
+++ b/src/MaaCore/Task/ReportDataTask.h
@@ -41,7 +41,8 @@ namespace asst
void report_to_penguin();
void report_to_yituliu();
http::Response escape_and_request(const std::string& format);
- http::Response report(std::string_view subtask, const std::string& format,
+ http::Response report(
+ std::string_view subtask, const std::string& format,
HttpResponsePred success_cond = [](const http::Response& response) -> bool { return response.success(); },
HttpResponsePred retry_cond = [](const http::Response& response) -> bool {
return !response.status_code() || response.status_5xx();
diff --git a/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.cpp
index cd1cf6ef62..a73eda1b7a 100644
--- a/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.cpp
+++ b/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.cpp
@@ -1,12 +1,12 @@
#include "RoguelikeCustomStartTaskPlugin.h"
#include "Controller/Controller.h"
-#include "Vision/OcrImageAnalyzer.h"
#include "Config/Miscellaneous/BattleDataConfig.h"
#include "Config/TaskData.h"
#include "Status.h"
#include "Task/ProcessTask.h"
#include "Utils/Logger.hpp"
+#include "Vision/OcrImageAnalyzer.h"
bool asst::RoguelikeCustomStartTaskPlugin::verify(AsstMsg msg, const json::value& details) const
{
diff --git a/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.h
index 069dc59247..809e093166 100644
--- a/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.h
+++ b/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.h
@@ -6,10 +6,10 @@ namespace asst
enum class RoguelikeCustomType
{
None,
- Squad, // 分队类型, like 指挥分队, 矛头分队, etc
- Roles, // 职业类型, like 先手必胜, 稳扎稳打, etc
- CoreChar, // 首选干员, 干员名
- UseSupport, // 使用助战
+ Squad, // 分队类型, like 指挥分队, 矛头分队, etc
+ Roles, // 职业类型, like 先手必胜, 稳扎稳打, etc
+ CoreChar, // 首选干员, 干员名
+ UseSupport, // 使用助战
UseNonfriendSupport // 可以使用非好友助战
// CoCoreChar, // 次选干员, 干员名
};
diff --git a/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.cpp
index d0ebfcd22d..39eded2a39 100644
--- a/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.cpp
+++ b/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.cpp
@@ -3,11 +3,11 @@
#include "Utils/Ranges.hpp"
#include "Controller/Controller.h"
-#include "Vision/Roguelike/RoguelikeFormationImageAnalyzer.h"
#include "Config/TaskData.h"
#include "Status.h"
#include "Task/ProcessTask.h"
#include "Utils/Logger.hpp"
+#include "Vision/Roguelike/RoguelikeFormationImageAnalyzer.h"
bool asst::RoguelikeFormationTaskPlugin::verify(AsstMsg msg, const json::value& details) const
{
diff --git a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp
index 16b5cdc5d5..c1802f6deb 100644
--- a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp
+++ b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp
@@ -124,9 +124,11 @@ bool asst::RoguelikeRecruitTaskPlugin::_run()
const auto& oper_list = analyzer.get_result();
bool stop_swipe = false;
+ int max_oper_x = 0;
for (const auto& oper_info : oper_list) {
oper_names.emplace(oper_info.name);
+ max_oper_x = std::max(max_oper_x, oper_info.rect.x);
// 查询上次识别位置
const auto& rect_it = last_oper_rects.find(oper_info.name);
if (rect_it == last_oper_rects.cend()) {
@@ -251,7 +253,7 @@ bool asst::RoguelikeRecruitTaskPlugin::_run()
// 向右滑动
Log.trace(__FUNCTION__, "| Page", i, "oper count:", oper_count, "- continue swiping");
- slowly_swipe(false);
+ slowly_swipe(false, max_oper_x - 200);
sleep(Task.get("RoguelikeCustom-HijackCoChar")->post_delay);
}
@@ -329,7 +331,7 @@ bool asst::RoguelikeRecruitTaskPlugin::check_char(const std::string& char_name,
{
LogTraceFunction;
- constexpr int SwipeTimes = 5;
+ int SwipeTimes = Task.get("RoguelikeRecruitSwipeMaxTime")->max_times;
std::unordered_set pre_oper_names;
bool has_been_same = false;
int i = 0;
@@ -341,8 +343,10 @@ bool asst::RoguelikeRecruitTaskPlugin::check_char(const std::string& char_name,
RoguelikeRecruitImageAnalyzer analyzer(image);
// 只处理识别成功的情况,失败(无任何结果)时继续滑动
+ int max_oper_x = 700;
if (analyzer.analyze()) {
const auto& chars = analyzer.get_result();
+ max_oper_x = ranges::max(chars | views::transform([&](const auto& x) { return x.rect.x; }));
auto it = ranges::find_if(
chars, [&](const battle::roguelike::Recruitment& oper) -> bool { return oper.name == char_name; });
@@ -375,7 +379,7 @@ bool asst::RoguelikeRecruitTaskPlugin::check_char(const std::string& char_name,
slowly_swipe(true);
}
else {
- slowly_swipe(false);
+ slowly_swipe(false, max_oper_x - 200);
}
sleep(Task.get("RoguelikeCustom-HijackCoChar")->post_delay);
}
@@ -435,8 +439,7 @@ bool asst::RoguelikeRecruitTaskPlugin::check_support_char(const std::string& nam
if (satisfied_chars.size()) break;
}
- if (page != MaxPageCnt - 1)
- ProcessTask(*this, { "RoguelikeSupportSwipeRight" }).run();
+ if (page != MaxPageCnt - 1) ProcessTask(*this, { "RoguelikeSupportSwipeRight" }).run();
}
if (satisfied_chars.size()) break;
@@ -514,12 +517,23 @@ void asst::RoguelikeRecruitTaskPlugin::swipe_to_the_left_of_operlist(int loop_ti
ProcessTask(*this, { "SleepAfterOperListQuickSwipe" }).run();
}
-void asst::RoguelikeRecruitTaskPlugin::slowly_swipe(bool to_left)
+void asst::RoguelikeRecruitTaskPlugin::slowly_swipe(bool to_left, int swipe_dist)
{
- if (to_left) {
- ProcessTask(*this, { "RoguelikeRecruitOperListSlowlySwipeToTheLeft" }).run();
- }
- else {
- ProcessTask(*this, { "RoguelikeRecruitOperListSlowlySwipeToTheRight" }).run();
+ std::string swipe_task_name =
+ to_left ? "RoguelikeRecruitOperListSlowlySwipeToTheLeft" : "RoguelikeRecruitOperListSlowlySwipeToTheRight";
+ if (!ctrler()->support_precise_swipe()) { // 不能精准滑动时不使用 swipe_dist 参数
+ ProcessTask(*this, { swipe_task_name }).run();
+ return;
}
+
+ if (!to_left) swipe_dist = -swipe_dist;
+ auto swipe_task = Task.get(swipe_task_name);
+ const Rect& StartPoint = swipe_task->specific_rect;
+ ctrler()->swipe(StartPoint,
+ { StartPoint.x + swipe_dist - StartPoint.width, StartPoint.y, StartPoint.width, StartPoint.height },
+ swipe_task->special_params.empty() ? 0 : swipe_task->special_params.at(0),
+ (swipe_task->special_params.size() < 2) ? false : swipe_task->special_params.at(1),
+ (swipe_task->special_params.size() < 3) ? 1 : swipe_task->special_params.at(2),
+ (swipe_task->special_params.size() < 4) ? 1 : swipe_task->special_params.at(3));
+ sleep(swipe_task->post_delay);
}
diff --git a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.h
index 83cd50b408..a60ff0ab5b 100644
--- a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.h
+++ b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.h
@@ -26,7 +26,7 @@ namespace asst
// 滑动到干员列表的最左侧
void swipe_to_the_left_of_operlist(int loop_times = 2);
// 缓慢向干员列表的左侧/右侧滑动
- void slowly_swipe(bool to_left);
+ void slowly_swipe(bool to_left, int swipe_dist = 500);
private:
bool check_support_char();
diff --git a/src/MaaCore/Task/Roguelike/RoguelikeShoppingTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeShoppingTaskPlugin.cpp
index 840c34a47c..e9de0cf755 100644
--- a/src/MaaCore/Task/Roguelike/RoguelikeShoppingTaskPlugin.cpp
+++ b/src/MaaCore/Task/Roguelike/RoguelikeShoppingTaskPlugin.cpp
@@ -1,12 +1,12 @@
#include "RoguelikeShoppingTaskPlugin.h"
#include "Controller/Controller.h"
-#include "Vision/OcrWithFlagTemplImageAnalyzer.h"
#include "Config/Miscellaneous/BattleDataConfig.h"
#include "Config/Roguelike/RoguelikeShoppingConfig.h"
#include "Status.h"
#include "Task/ProcessTask.h"
#include "Utils/Logger.hpp"
+#include "Vision/OcrWithFlagTemplImageAnalyzer.h"
bool asst::RoguelikeShoppingTaskPlugin::verify(AsstMsg msg, const json::value& details) const
{
diff --git a/src/MaaCore/Task/Roguelike/RoguelikeSkillSelectionTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeSkillSelectionTaskPlugin.cpp
index b32b28338b..1d944f463a 100644
--- a/src/MaaCore/Task/Roguelike/RoguelikeSkillSelectionTaskPlugin.cpp
+++ b/src/MaaCore/Task/Roguelike/RoguelikeSkillSelectionTaskPlugin.cpp
@@ -1,10 +1,10 @@
#include "RoguelikeSkillSelectionTaskPlugin.h"
#include "Controller/Controller.h"
-#include "Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.h"
#include "Config/Roguelike/RoguelikeRecruitConfig.h"
#include "Config/TaskData.h"
#include "Status.h"
+#include "Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.h"
#include "Utils/Logger.hpp"
diff --git a/src/MaaCore/Task/SingleStep/SingleStepBattleProcessTask.cpp b/src/MaaCore/Task/SingleStep/SingleStepBattleProcessTask.cpp
index 21d61763e1..833f7bc58b 100644
--- a/src/MaaCore/Task/SingleStep/SingleStepBattleProcessTask.cpp
+++ b/src/MaaCore/Task/SingleStep/SingleStepBattleProcessTask.cpp
@@ -7,7 +7,7 @@
bool asst::SingleStepBattleProcessTask::set_stage_name_cache(const std::string& stage_name)
{
LogTraceFunction;
-
+
if (!Tile.contains(stage_name)) {
Log.error("get stage info failed", stage_name);
return false;
diff --git a/src/MaaCore/Utils/Time.hpp b/src/MaaCore/Utils/Time.hpp
index e97803f502..ec56684bcc 100644
--- a/src/MaaCore/Utils/Time.hpp
+++ b/src/MaaCore/Utils/Time.hpp
@@ -34,8 +34,8 @@ namespace asst::utils
gettimeofday(&tv, nullptr);
time_t nowtime = tv.tv_sec;
struct tm* tm_info = localtime(&nowtime);
- strftime(buff, sizeof(buff), "%Y-%m-%d %H:%M:%S", tm_info);
- sprintf(buff, "%s.%03ld", buff, static_cast(tv.tv_usec / 1000));
+ auto offset = strftime(buff, sizeof(buff), "%Y-%m-%d %H:%M:%S", tm_info);
+ sprintf(buff + offset, ".%03ld", static_cast(tv.tv_usec / 1000));
#endif // END _WIN32
return buff;
}
diff --git a/src/MaaCore/Vision/Infrast/InfrastClueVacancyImageAnalyzer.cpp b/src/MaaCore/Vision/Infrast/InfrastClueVacancyImageAnalyzer.cpp
index 0f007360f9..160160b3c5 100644
--- a/src/MaaCore/Vision/Infrast/InfrastClueVacancyImageAnalyzer.cpp
+++ b/src/MaaCore/Vision/Infrast/InfrastClueVacancyImageAnalyzer.cpp
@@ -1,8 +1,8 @@
#include "InfrastClueVacancyImageAnalyzer.h"
-#include "Vision/MatchImageAnalyzer.h"
#include "Utils/Logger.hpp"
#include "Utils/NoWarningCV.h"
+#include "Vision/MatchImageAnalyzer.h"
bool asst::InfrastClueVacancyImageAnalyzer::analyze()
{
diff --git a/src/MaaCore/Vision/Infrast/InfrastFacilityImageAnalyzer.cpp b/src/MaaCore/Vision/Infrast/InfrastFacilityImageAnalyzer.cpp
index 60aa3993cf..a974dc30a2 100644
--- a/src/MaaCore/Vision/Infrast/InfrastFacilityImageAnalyzer.cpp
+++ b/src/MaaCore/Vision/Infrast/InfrastFacilityImageAnalyzer.cpp
@@ -2,9 +2,9 @@
#include "Utils/NoWarningCV.h"
-#include "Vision/MultiMatchImageAnalyzer.h"
#include "Config/TaskData.h"
#include "Utils/Logger.hpp"
+#include "Vision/MultiMatchImageAnalyzer.h"
bool asst::InfrastFacilityImageAnalyzer::analyze()
{
diff --git a/src/MaaCore/Vision/Infrast/InfrastOperImageAnalyzer.cpp b/src/MaaCore/Vision/Infrast/InfrastOperImageAnalyzer.cpp
index 063ab54e61..8fc2fb736e 100644
--- a/src/MaaCore/Vision/Infrast/InfrastOperImageAnalyzer.cpp
+++ b/src/MaaCore/Vision/Infrast/InfrastOperImageAnalyzer.cpp
@@ -3,12 +3,12 @@
#include "Utils/NoWarningCV.h"
#include "Utils/Ranges.hpp"
-#include "Vision/HashImageAnalyzer.h"
-#include "Vision/MatchImageAnalyzer.h"
-#include "InfrastSmileyImageAnalyzer.h"
#include "Config/Miscellaneous/InfrastConfig.h"
#include "Config/TaskData.h"
+#include "InfrastSmileyImageAnalyzer.h"
#include "Utils/Logger.hpp"
+#include "Vision/HashImageAnalyzer.h"
+#include "Vision/MatchImageAnalyzer.h"
bool asst::InfrastOperImageAnalyzer::analyze()
{
diff --git a/src/MaaCore/Vision/Infrast/InfrastSmileyImageAnalyzer.cpp b/src/MaaCore/Vision/Infrast/InfrastSmileyImageAnalyzer.cpp
index e2fbabb0a9..75f8acf0b2 100644
--- a/src/MaaCore/Vision/Infrast/InfrastSmileyImageAnalyzer.cpp
+++ b/src/MaaCore/Vision/Infrast/InfrastSmileyImageAnalyzer.cpp
@@ -2,8 +2,8 @@
#include "Utils/NoWarningCV.h"
-#include "Vision/MultiMatchImageAnalyzer.h"
#include "Utils/StringMisc.hpp"
+#include "Vision/MultiMatchImageAnalyzer.h"
bool asst::InfrastSmileyImageAnalyzer::analyze()
{
diff --git a/src/MaaCore/Vision/Miscellaneous/BattleSkillReadyImageAnalyzer.cpp b/src/MaaCore/Vision/Miscellaneous/BattleSkillReadyImageAnalyzer.cpp
index e067d77b04..510d947830 100644
--- a/src/MaaCore/Vision/Miscellaneous/BattleSkillReadyImageAnalyzer.cpp
+++ b/src/MaaCore/Vision/Miscellaneous/BattleSkillReadyImageAnalyzer.cpp
@@ -60,7 +60,7 @@ bool asst::BattleSkillReadyImageAnalyzer::analyze()
if (iter.score > value) {
iter.rect = rect;
iter.score = value;
- }
+ }
need_push = false;
break;
}
diff --git a/src/MaaCore/Vision/Miscellaneous/CreditShopImageAnalyzer.cpp b/src/MaaCore/Vision/Miscellaneous/CreditShopImageAnalyzer.cpp
index 13282acc61..291649fb1c 100644
--- a/src/MaaCore/Vision/Miscellaneous/CreditShopImageAnalyzer.cpp
+++ b/src/MaaCore/Vision/Miscellaneous/CreditShopImageAnalyzer.cpp
@@ -5,15 +5,15 @@
#include "Utils/NoWarningCV.h"
#include "Config/TaskData.h"
+#include "Utils/Logger.hpp"
#include "Vision/MatchImageAnalyzer.h"
#include "Vision/MultiMatchImageAnalyzer.h"
#include "Vision/OcrImageAnalyzer.h"
-#include "Utils/Logger.hpp"
void asst::CreditShopImageAnalyzer::set_black_list(std::vector black_list)
{
Log.info(__FUNCTION__, black_list);
-
+
m_shopping_list = std::move(black_list);
m_is_white_list = false;
}
@@ -21,7 +21,7 @@ void asst::CreditShopImageAnalyzer::set_black_list(std::vector blac
void asst::CreditShopImageAnalyzer::set_white_list(std::vector black_list)
{
Log.info(__FUNCTION__, black_list);
-
+
m_shopping_list = std::move(black_list);
m_is_white_list = true;
}
@@ -67,7 +67,7 @@ bool asst::CreditShopImageAnalyzer::commodities_analyze()
bool asst::CreditShopImageAnalyzer::whether_to_buy_analyze()
{
Log.info(__FUNCTION__, m_shopping_list, "mode", m_is_white_list);
-
+
const auto product_name_task_ptr = Task.get("CreditShop-ProductName");
for (const Rect& commodity : m_commodities) {
@@ -104,7 +104,7 @@ bool asst::CreditShopImageAnalyzer::whether_to_buy_analyze()
ranges::sort(m_need_to_buy, std::less {},
[&](const auto& pair) { return ranges::find(m_shopping_list, pair.second); });
}
-
+
return !m_need_to_buy.empty();
}
diff --git a/src/MaaCore/Vision/Miscellaneous/RecruitImageAnalyzer.cpp b/src/MaaCore/Vision/Miscellaneous/RecruitImageAnalyzer.cpp
index ad9e260d06..4ebbc7aa75 100644
--- a/src/MaaCore/Vision/Miscellaneous/RecruitImageAnalyzer.cpp
+++ b/src/MaaCore/Vision/Miscellaneous/RecruitImageAnalyzer.cpp
@@ -1,10 +1,10 @@
#include "RecruitImageAnalyzer.h"
+#include "Config/Miscellaneous/RecruitConfig.h"
+#include "Config/TaskData.h"
#include "Vision/MatchImageAnalyzer.h"
#include "Vision/MultiMatchImageAnalyzer.h"
#include "Vision/OcrImageAnalyzer.h"
-#include "Config/Miscellaneous/RecruitConfig.h"
-#include "Config/TaskData.h"
bool asst::RecruitImageAnalyzer::analyze()
{
diff --git a/src/MaaCore/Vision/Miscellaneous/StageDropsImageAnalyzer.h b/src/MaaCore/Vision/Miscellaneous/StageDropsImageAnalyzer.h
index 4c8640c467..962c17cc0c 100644
--- a/src/MaaCore/Vision/Miscellaneous/StageDropsImageAnalyzer.h
+++ b/src/MaaCore/Vision/Miscellaneous/StageDropsImageAnalyzer.h
@@ -1,6 +1,6 @@
#pragma once
-#include "Vision/AbstractImageAnalyzer.h"
#include "Config/Miscellaneous/StageDropsConfig.h"
+#include "Vision/AbstractImageAnalyzer.h"
#include
@@ -31,7 +31,8 @@ namespace asst
int match_quantity(const Rect& roi, const std::string& item, bool use_word_model = false);
std::optional match_quantity_string(const Rect& roi, bool use_word_model = false);
- std::optional match_quantity_string(const Rect& roi, const std::string& item, bool use_word_model = false);
+ std::optional match_quantity_string(const Rect& roi, const std::string& item,
+ bool use_word_model = false);
StageDropType match_droptype(const Rect& roi);
std::string match_item(const Rect& roi, StageDropType type, int index, int size);
diff --git a/src/MaaCore/Vision/OcrImageAnalyzer.cpp b/src/MaaCore/Vision/OcrImageAnalyzer.cpp
index dbb9f439d7..d2ed3a42ba 100644
--- a/src/MaaCore/Vision/OcrImageAnalyzer.cpp
+++ b/src/MaaCore/Vision/OcrImageAnalyzer.cpp
@@ -4,6 +4,7 @@
#include
#include "Config/Miscellaneous/OcrPack.h"
+#include "Config/Miscellaneous/OcrConfig.h"
#include "Config/TaskData.h"
#include "Utils/Logger.hpp"
@@ -15,14 +16,32 @@ bool asst::OcrImageAnalyzer::analyze()
std::vector preds_vec;
+ preds_vec.emplace_back([](TextRect& tr) -> bool {
+ tr.text = OcrConfig::get_instance().process_equivalence_class(tr.text);
+ return true;
+ });
+
if (!m_replace.empty()) {
- TextRectProc text_replace = [&](TextRect& tr) -> bool {
- for (const auto& [regex, new_str] : m_replace) {
- tr.text = std::regex_replace(tr.text, std::regex(regex), new_str);
- }
- return true;
- };
- preds_vec.emplace_back(text_replace);
+ if (m_replace_full) {
+ TextRectProc text_replace = [&](TextRect& tr) -> bool {
+ for (const auto& [regex, new_str] : m_replace) {
+ if (std::regex_search(tr.text, std::regex(regex))) {
+ tr.text = new_str;
+ }
+ }
+ return true;
+ };
+ preds_vec.emplace_back(text_replace);
+ }
+ else {
+ TextRectProc text_replace = [&](TextRect& tr) -> bool {
+ for (const auto& [regex, new_str] : m_replace) {
+ tr.text = std::regex_replace(tr.text, std::regex(regex), new_str);
+ }
+ return true;
+ };
+ preds_vec.emplace_back(text_replace);
+ }
}
if (!m_required.empty()) {
@@ -93,19 +112,26 @@ void asst::OcrImageAnalyzer::set_use_cache(bool is_use) noexcept
void asst::OcrImageAnalyzer::set_required(std::vector required) noexcept
{
+ ranges::for_each(required, [](std::string& str) { str = OcrConfig::get_instance().process_equivalence_class(str); });
m_required = std::move(required);
}
-void asst::OcrImageAnalyzer::set_replace(std::unordered_map replace) noexcept
+void asst::OcrImageAnalyzer::set_replace(const std::unordered_map& replace, bool replace_full) noexcept
{
- m_replace = std::move(replace);
+ m_replace = {};
+ for (auto&& [key, val] : replace) {
+ auto new_key = OcrConfig::get_instance().process_equivalence_class(key);
+ // do not create new_val as val is user-provided, and can avoid issues like 夕 and katakana タ
+ m_replace.emplace(std::move(new_key), val);
+ }
+ m_replace_full = replace_full;
}
void asst::OcrImageAnalyzer::set_task_info(OcrTaskInfo task_info) noexcept
{
- m_required = std::move(task_info.text);
+ set_required(std::move(task_info.text));
m_full_match = task_info.full_match;
- m_replace = std::move(task_info.replace_map);
+ set_replace(task_info.replace_map, task_info.replace_full);
m_use_cache = task_info.cache;
m_use_char_model = task_info.is_ascii;
diff --git a/src/MaaCore/Vision/OcrImageAnalyzer.h b/src/MaaCore/Vision/OcrImageAnalyzer.h
index ad817a3093..93a00e3bdd 100644
--- a/src/MaaCore/Vision/OcrImageAnalyzer.h
+++ b/src/MaaCore/Vision/OcrImageAnalyzer.h
@@ -25,7 +25,7 @@ namespace asst
virtual void sort_result_by_required(); // 按传入的需求数组排序,传入的在前面结果接在前面
void set_required(std::vector required) noexcept;
- void set_replace(std::unordered_map replace) noexcept;
+ void set_replace(const std::unordered_map& replace, bool replace_full = false) noexcept;
virtual void set_task_info(std::shared_ptr task_ptr);
virtual void set_task_info(const std::string& task_name);
@@ -45,6 +45,7 @@ namespace asst
std::vector m_required;
bool m_full_match = false;
std::unordered_map m_replace;
+ bool m_replace_full = false;
TextRectProc m_pred = nullptr;
bool m_without_det = false;
bool m_use_cache = false;
diff --git a/src/MaaCore/Vision/Roguelike/RoguelikeFormationImageAnalyzer.cpp b/src/MaaCore/Vision/Roguelike/RoguelikeFormationImageAnalyzer.cpp
index 902a0d77ff..d3e16dfe69 100644
--- a/src/MaaCore/Vision/Roguelike/RoguelikeFormationImageAnalyzer.cpp
+++ b/src/MaaCore/Vision/Roguelike/RoguelikeFormationImageAnalyzer.cpp
@@ -2,9 +2,9 @@
#include "Utils/NoWarningCV.h"
-#include "Vision/MultiMatchImageAnalyzer.h"
#include "Config/TaskData.h"
#include "Utils/Logger.hpp"
+#include "Vision/MultiMatchImageAnalyzer.h"
bool asst::RoguelikeFormationImageAnalyzer::analyze()
{
diff --git a/src/MaaCore/Vision/Roguelike/RoguelikeRecruitImageAnalyzer.cpp b/src/MaaCore/Vision/Roguelike/RoguelikeRecruitImageAnalyzer.cpp
index d299ca5d2c..ccb6cf68af 100644
--- a/src/MaaCore/Vision/Roguelike/RoguelikeRecruitImageAnalyzer.cpp
+++ b/src/MaaCore/Vision/Roguelike/RoguelikeRecruitImageAnalyzer.cpp
@@ -12,7 +12,8 @@ bool asst::RoguelikeRecruitImageAnalyzer::analyze()
OcrWithFlagTemplImageAnalyzer analyzer(m_image);
analyzer.set_task_info("RoguelikeRecruitOcrFlag", "RoguelikeRecruitOcr");
- analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map);
+ analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map,
+ Task.get("CharsNameOcrReplace")->replace_full);
analyzer.set_threshold(Task.get("RoguelikeRecruitOcr")->specific_rect.x);
if (!analyzer.analyze()) {
diff --git a/src/MaaCore/Vision/Roguelike/RoguelikeRecruitSupportAnalyzer.cpp b/src/MaaCore/Vision/Roguelike/RoguelikeRecruitSupportAnalyzer.cpp
index c7b7ce9646..f908a7b41b 100644
--- a/src/MaaCore/Vision/Roguelike/RoguelikeRecruitSupportAnalyzer.cpp
+++ b/src/MaaCore/Vision/Roguelike/RoguelikeRecruitSupportAnalyzer.cpp
@@ -32,6 +32,8 @@ bool asst::RoguelikeRecruitSupportAnalyzer::analyze()
OcrImageAnalyzer analyzer(m_image);
analyzer.set_roi(Task.get("RoguelikeRecruitSupportOcr")->roi);
analyzer.set_required(m_required);
+ analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map,
+ Task.get("CharsNameOcrReplace")->replace_full);
if (!analyzer.analyze()) return false;
const auto& char_name_rects = analyzer.get_result();
@@ -91,24 +93,35 @@ bool asst::RoguelikeRecruitSupportAnalyzer::analyze()
else if (m_mode == battle::roguelike::SupportAnalyzeMode::RefreshSupportBtn) {
// 识别“更新助战列表”
OcrImageAnalyzer analyzer(m_image);
- const auto& task = Task.get("RoguelikeRefreshSupportBtnOcr");
- analyzer.set_roi(task->roi);
- if (!analyzer.analyze()) return false;
+
+ // 未处在冷却时间
+ analyzer.set_task_info("RoguelikeRefreshSupportBtnOcr");
+ if (analyzer.analyze()) {
+ m_refresh_result = { analyzer.get_result().front().rect, false, 0 };
+ return true;
+ }
+
+ // 刷新冷却中
+ analyzer.set_required({});
+ analyzer.set_replace({ { ":", ":" } });
+ if (!analyzer.analyze()) {
+ Log.info(__FUNCTION__, "| RefreshSupportBtn analyse failed");
+ return false;
+ }
const auto& results = analyzer.get_result();
for (const auto& result : results) {
Log.info(__FUNCTION__, "| RefreshSupportBtn parse `", result.text, "`", result.score);
- if (std::count(task->text.begin(), task->text.end(), result.text)) {
- m_refresh_result = { result.rect, false, 0 };
- return true;
- }
- else if (std::regex_match(result.text, std::regex("[0-9]{2}:[0-9]{2}:[0-9]{2}"))) {
- const auto& hour = std::atoi(result.text.substr(2).c_str());
- const auto& min = std::atoi(result.text.substr(3, 2).c_str());
- const auto& sec = std::atoi(result.text.substr(7, 2).c_str());
+ std::smatch match_results;
+ if (std::regex_search(result.text, match_results, std::regex("[0-9]{2}:[0-9]{2}:[0-9]{2}"))) {
+ const auto& match_str = match_results[0].str();
+ const auto& hour = std::atoi(match_str.substr(2).c_str());
+ const auto& min = std::atoi(match_str.substr(3, 2).c_str());
+ const auto& sec = std::atoi(match_str.substr(7, 2).c_str());
m_refresh_result = { result.rect, true, 3600 * hour + 60 * min + sec };
return true;
}
}
+ Log.info(__FUNCTION__, "| RefreshSupportBtn failed: no matched reusults");
return false;
}
diff --git a/src/MaaCore/Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.cpp b/src/MaaCore/Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.cpp
index 5c8a7730af..906463ea1e 100644
--- a/src/MaaCore/Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.cpp
+++ b/src/MaaCore/Vision/Roguelike/RoguelikeSkillSelectionImageAnalyzer.cpp
@@ -2,13 +2,13 @@
#include "Utils/NoWarningCV.h"
-#include "Vision/MatchImageAnalyzer.h"
-#include "Vision/MultiMatchImageAnalyzer.h"
-#include "Vision/OcrWithPreprocessImageAnalyzer.h"
#include "Config/Roguelike/RoguelikeRecruitConfig.h"
#include "Config/TaskData.h"
#include "Utils/Logger.hpp"
#include "Utils/StringMisc.hpp"
+#include "Vision/MatchImageAnalyzer.h"
+#include "Vision/MultiMatchImageAnalyzer.h"
+#include "Vision/OcrWithPreprocessImageAnalyzer.h"
bool asst::RoguelikeSkillSelectionImageAnalyzer::analyze()
{
@@ -54,7 +54,8 @@ std::string asst::RoguelikeSkillSelectionImageAnalyzer::name_analyze(const Rect&
analyzer.set_task_info(name_task_ptr);
analyzer.set_image(m_image);
analyzer.set_roi(roi.move(name_task_ptr->roi));
- analyzer.set_replace(std::dynamic_pointer_cast(Task.get("CharsNameOcrReplace"))->replace_map);
+ analyzer.set_replace(std::dynamic_pointer_cast(Task.get("CharsNameOcrReplace"))->replace_map,
+ std::dynamic_pointer_cast(Task.get("CharsNameOcrReplace"))->replace_full);
if (!analyzer.analyze()) {
return {};
diff --git a/src/MaaWpfGui/Helper/Localization.cs b/src/MaaWpfGui/Helper/Localization.cs
index c83ace6aa7..584685f874 100644
--- a/src/MaaWpfGui/Helper/Localization.cs
+++ b/src/MaaWpfGui/Helper/Localization.cs
@@ -107,7 +107,7 @@ namespace MaaWpfGui
};
if (dictionary.Contains(key))
{
- return dictionary[key].ToString();
+ return Regex.Unescape(dictionary[key].ToString());
}
}
diff --git a/src/MaaWpfGui/Helper/MaaUrls.cs b/src/MaaWpfGui/Helper/MaaUrls.cs
index 8328505632..ff0bd1d153 100644
--- a/src/MaaWpfGui/Helper/MaaUrls.cs
+++ b/src/MaaWpfGui/Helper/MaaUrls.cs
@@ -38,11 +38,11 @@ namespace MaaWpfGui
private static readonly Dictionary _helpUrl = new Dictionary
{
- { "zh-cn", "1.2-常见问题.md" },
- { "en-us", "en-us/1.2-FAQ.md" },
- { "ja-jp", "ja-jp/1.2-よくある質問.md" },
- { "ko-kr", "ko-kr/1.2-FAQ.md" },
- { "zh-tw", "zh-tw/1.2-常見問題.md" },
+ { "zh-cn", "1.2-常见问题.html" },
+ { "en-us", "en-us/1.2-FAQ.html" },
+ { "ja-jp", "ja-jp/1.2-よくある質問.html" },
+ { "ko-kr", "ko-kr/1.2-FAQ.html" },
+ { "zh-tw", "zh-tw/1.2-常見問題.html" },
{ "pallas", "KeepDrinking" },
};
diff --git a/src/MaaWpfGui/Helper/MainWindowManager.cs b/src/MaaWpfGui/Helper/MainWindowManager.cs
index 859aeec4d4..1c93232f13 100644
--- a/src/MaaWpfGui/Helper/MainWindowManager.cs
+++ b/src/MaaWpfGui/Helper/MainWindowManager.cs
@@ -35,6 +35,9 @@ namespace MaaWpfGui
public MainWindowManager()
{
MainWindow.StateChanged += MainWindow_StateChanged;
+
+ bool minimizeToTray = Convert.ToBoolean(ViewStatusStorage.Get("GUI.MinimizeToTray", bool.FalseString));
+ SetMinimizeToTaskbar(minimizeToTray);
}
///
diff --git a/src/MaaWpfGui/Helper/StageManager.cs b/src/MaaWpfGui/Helper/StageManager.cs
index c96ca4cd72..ea742d71e6 100644
--- a/src/MaaWpfGui/Helper/StageManager.cs
+++ b/src/MaaWpfGui/Helper/StageManager.cs
@@ -38,7 +38,6 @@ namespace MaaWpfGui
// model references
private readonly TaskQueueViewModel _taskQueueViewModel;
- private readonly SettingsViewModel _settingsViewModel;
// datas
private Dictionary _stages;
@@ -50,7 +49,6 @@ namespace MaaWpfGui
public StageManager(IContainer container)
{
_taskQueueViewModel = container.Get();
- _settingsViewModel = container.Get();
UpdateStage(false);
Execute.OnUIThread(async () =>
@@ -68,7 +66,7 @@ namespace MaaWpfGui
});
}
- private void UpdateStage(bool fromWeb)
+ public void UpdateStage(bool fromWeb)
{
var tempStage = new Dictionary
{
@@ -90,7 +88,7 @@ namespace MaaWpfGui
"yyyy/MM/dd HH:mm:ss",
CultureInfo.InvariantCulture).AddHours(-Convert.ToInt32(keyValuePairs?["TimeZone"].ToString() ?? "0"));
- var clientType = _settingsViewModel.ClientType;
+ var clientType = ViewStatusStorage.Get("Start.ClientType", string.Empty);
// 官服和B服使用同样的资源
if (clientType == "Bilibili" || clientType == string.Empty)
@@ -117,7 +115,7 @@ namespace MaaWpfGui
bool isDebugVersion = Marshal.PtrToStringAnsi(AsstGetVersion()) == "DEBUG VERSION";
bool curParsed = !isDebugVersion ?
SemVersion.TryParse(Marshal.PtrToStringAnsi(AsstGetVersion()), SemVersionStyles.AllowLowerV, out var curVersionObj) :
- SemVersion.TryParse("4.10.7", SemVersionStyles.AllowLowerV, out curVersionObj);
+ SemVersion.TryParse("4.11.7", SemVersionStyles.AllowLowerV, out curVersionObj);
bool minimumRequiredPared = SemVersion.TryParse(stageObj?["MinimumRequired"]?.ToString() ?? string.Empty, SemVersionStyles.AllowLowerV, out var minimumRequiredObj);
var stageInfo = new StageInfo();
diff --git a/src/MaaWpfGui/Main/CopilotViewModel.cs b/src/MaaWpfGui/Main/CopilotViewModel.cs
index a879c6b45b..249842a18c 100644
--- a/src/MaaWpfGui/Main/CopilotViewModel.cs
+++ b/src/MaaWpfGui/Main/CopilotViewModel.cs
@@ -59,14 +59,7 @@ namespace MaaWpfGui
_windowManager = windowManager;
DisplayName = Localization.GetString("Copilot");
LogItemViewModels = new ObservableCollection();
- AddLog(
- Localization.GetString("CopilotTip") + "\n\n" +
- /* Localization.GetString("CopilotTip1") + "\n\n" + */
- "1. " + Localization.GetString("CopilotTip2") + "\n\n" +
- "2. " + Localization.GetString("CopilotTip3") + "\n\n" +
- "3. " + Localization.GetString("CopilotTip4"),
- /* Localization.GetString("CopilotTip5"),*/
- UILogColor.Message);
+ AddLog(Localization.GetString("CopilotTip"), UILogColor.Message);
}
protected override void OnInitialActivate()
@@ -351,14 +344,7 @@ namespace MaaWpfGui
File.WriteAllText(TempCopilotFile, json.ToString());
}
- AddLog(
- "\n\n" +
- Localization.GetString("CopilotTip") + "\n\n" +
- Localization.GetString("CopilotTip1") + "\n\n" +
- Localization.GetString("CopilotTip2") + "\n\n" +
- Localization.GetString("CopilotTip3") + "\n\n" +
- Localization.GetString("CopilotTip4"));
- /* Localization.GetString("CopilotTip5"));*/
+ AddLog(Localization.GetString("CopilotTip"));
}
catch (Exception)
{
diff --git a/src/MaaWpfGui/Main/SettingsViewModel.cs b/src/MaaWpfGui/Main/SettingsViewModel.cs
index 2bda5266d5..e7db683119 100644
--- a/src/MaaWpfGui/Main/SettingsViewModel.cs
+++ b/src/MaaWpfGui/Main/SettingsViewModel.cs
@@ -134,13 +134,6 @@ namespace MaaWpfGui
_asstProxy = _container.Get();
_versionUpdateViewModel = _container.Get();
- _mainWindowManager.SetMinimizeToTaskbar(MinimizeToTray);
-
- if (LoadGUIParameters && SaveGUIParametersOnClosing)
- {
- Application.Current.MainWindow.Closing += SaveGUIParameters;
- }
-
var addressListJson = ViewStatusStorage.Get("Connect.AddressHistory", string.Empty);
if (!string.IsNullOrEmpty(addressListJson))
{
@@ -2240,7 +2233,7 @@ namespace MaaWpfGui
}
}
- private void SaveGUIParameters(object sender, EventArgs e)
+ public void SaveGUIParameters(object sender, EventArgs e)
{
SaveGUIParameters();
}
@@ -2448,6 +2441,10 @@ namespace MaaWpfGui
System.Windows.Forms.MessageBoxManager.Yes = FormatText("{0}({1})", "Ok");
System.Windows.Forms.MessageBoxManager.No = FormatText("{0}({1})", "ManualRestart");
System.Windows.Forms.MessageBoxManager.Register();
+ Window mainWindow = Application.Current.MainWindow;
+ mainWindow.Show();
+ mainWindow.WindowState = mainWindow.WindowState = WindowState.Normal;
+ mainWindow.Activate();
var result = MessageBox.Show(
FormatText("{0}\n{1}", "LanguageChangedTip"),
FormatText("{0}({1})", "Tip"),
diff --git a/src/MaaWpfGui/Main/TaskQueueViewModel.cs b/src/MaaWpfGui/Main/TaskQueueViewModel.cs
index 782faf4e2e..641a917f71 100644
--- a/src/MaaWpfGui/Main/TaskQueueViewModel.cs
+++ b/src/MaaWpfGui/Main/TaskQueueViewModel.cs
@@ -125,6 +125,11 @@ namespace MaaWpfGui
LogItemViewModels = new ObservableCollection();
InitializeItems();
InitTimer();
+
+ if (_settingsViewModel.LoadGUIParameters && _settingsViewModel.SaveGUIParametersOnClosing)
+ {
+ Application.Current.MainWindow.Closing += _settingsViewModel.SaveGUIParameters;
+ }
}
/*
@@ -157,8 +162,12 @@ namespace MaaWpfGui
{
if (NeedToUpdateDatePrompt())
{
- UpdateDatePrompt();
- UpdateStageList(false);
+ Execute.OnUIThread(() =>
+ {
+ _stageManager.UpdateStage(true);
+ UpdateDatePrompt();
+ UpdateStageList(false);
+ });
}
refreshCustomInfrastPlanIndexByPeriod();
@@ -990,32 +999,25 @@ namespace MaaWpfGui
{
emulator = Process.GetProcessById(pid);
emulator.CloseMainWindow();
+ if (!emulator.WaitForExit(5000))
+ {
+ emulator.Kill();
+ emulator.WaitForExit(5000);
+ }
+ else
+ {
+ // 尽管已经成功 CloseMainWindow(),再次尝试 killEmulator()
+ // Refer to https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/1878
+ KillEmulator();
+
+ // 已经成功 CloseMainWindow(),所以不管 killEmulator() 的结果如何,都返回 true
+ return true;
+ }
}
catch
{
break;
}
-
- if (emulator.HasExited)
- {
- break;
- }
-
- try
- {
- emulator.Kill();
- }
- catch
- {
- break;
- }
-
- // 尽管已经成功 CloseMainWindow(),再次尝试 killEmulator()
- // Refer to https://github.com/MaaAssistantArknights/MaaAssistantArknights/pull/1878
- KillEmulator();
-
- // 已经成功 CloseMainWindow(),所以不管 killEmulator() 的结果如何,都返回 true
- return true;
}
while (false);
@@ -1100,6 +1102,10 @@ namespace MaaWpfGui
{
return false;
}
+ finally
+ {
+ checkCmd.Close();
+ }
return true;
}
@@ -1468,6 +1474,11 @@ namespace MaaWpfGui
get => _stage1;
set
{
+ if (_stage1 == value)
+ {
+ return;
+ }
+
if (CustomStageCode)
{
value = ToUpperAndCheckStage(value);
@@ -1555,16 +1566,16 @@ namespace MaaWpfGui
{
get
{
- if (!IsStageOpen(_remainingSanityStage))
- {
- return string.Empty;
- }
-
return _remainingSanityStage;
}
set
{
+ if (_remainingSanityStage == value)
+ {
+ return;
+ }
+
if (CustomStageCode)
{
value = ToUpperAndCheckStage(value);
@@ -1832,17 +1843,15 @@ namespace MaaWpfGui
get => _medicineNumber;
set
{
- if (string.IsNullOrEmpty(value))
+ if (_medicineNumber == value)
{
- value = "0";
- }
-
- if (value == "0")
- {
- UseStone = false;
+ return;
}
SetAndNotify(ref _medicineNumber, value);
+
+ // If the amount of medicine is 0, the stone is not used.
+ UseStone = UseStone;
SetFightParams();
ViewStatusStorage.Set("MainFunction.UseMedicine.Quantity", MedicineNumber);
}
@@ -1858,7 +1867,8 @@ namespace MaaWpfGui
get => _useStone;
set
{
- if (MedicineNumber == "0")
+ // If the amount of medicine is 0, the stone is not used.
+ if (!int.TryParse(MedicineNumber, out int result) || result == 0)
{
value = false;
}
@@ -1883,9 +1893,9 @@ namespace MaaWpfGui
get => _stoneNumber;
set
{
- if (string.IsNullOrEmpty(value))
+ if (_stoneNumber == value)
{
- value = "0";
+ return;
}
SetAndNotify(ref _stoneNumber, value);
@@ -1919,9 +1929,9 @@ namespace MaaWpfGui
get => _maxTimes;
set
{
- if (string.IsNullOrEmpty(value))
+ if (MaxTimes == value)
{
- value = "0";
+ return;
}
SetAndNotify(ref _maxTimes, value);
@@ -1953,6 +1963,26 @@ namespace MaaWpfGui
///
public List AllDrops { get; set; } = new List();
+ ///
+ /// 关卡不可掉落的材料
+ ///
+ private static readonly HashSet excludedValues = new HashSet()
+ {
+ "3213", "3223", "3233", "3243", // 双芯片
+ "3253", "3263", "3273", "3283",
+ "7001", "7002", "7003", "7004", // 许可/凭证
+ "4004", "4005",
+ "3105", "3131", "3132", "3233", // 龙骨/加固建材
+ "6001", // 演习券
+ "3141", "4002", // 源石
+ "32001", // 芯片助剂
+ "30115", // 聚合剂
+ "30125", // 双极纳米片
+ "30135", // D32钢
+ "30145", // 晶体电子单元
+ "30155", // 烧结核凝晶
+ };
+
private void InitDrops()
{
var reader = Utils.GetItemList();
@@ -1967,26 +1997,11 @@ namespace MaaWpfGui
}
var dis = item.Value["name"].ToString();
-#pragma warning disable SA1009 // Closing parenthesis should be spaced correctly
- if (
- val.Equals("3213") || val.Equals("3223") || val.Equals("3233") || val.Equals("3243") // 双芯片
- || val.Equals("3253") || val.Equals("3263") || val.Equals("3273") || val.Equals("3283")
- || val.Equals("7001") || val.Equals("7002") || val.Equals("7003") || val.Equals("7004") // 许可/凭证
- || val.Equals("4004") || val.Equals("4005")
- || val.Equals("3105") || val.Equals("3131") || val.Equals("3132") || val.Equals("3233") // 龙骨/加固建材
- || val.Equals("6001") // 演习券
- || val.Equals("3141") || val.Equals("4002") // 源石
- || val.Equals("32001") // 芯片助剂
- || val.Equals("30115") // 聚合剂
- || val.Equals("30125") // 双极纳米片
- || val.Equals("30135") // D32钢
- || val.Equals("30145") // 晶体电子单元
- || val.Equals("30155") // 烧结核凝晶
- )
+
+ if (excludedValues.Contains(val))
{
continue;
}
-#pragma warning restore SA1009
AllDrops.Add(new CombData { Display = dis, Value = val });
}
@@ -2065,11 +2080,6 @@ namespace MaaWpfGui
get => _dropsQuantity;
set
{
- if (string.IsNullOrEmpty(value))
- {
- value = "0";
- }
-
SetAndNotify(ref _dropsQuantity, value);
SetFightParams();
ViewStatusStorage.Set("MainFunction.Drops.Quantity", DropsQuantity);
diff --git a/src/MaaWpfGui/Res/Localizations/en-us.xaml b/src/MaaWpfGui/Res/Localizations/en-us.xaml
index cc32a70553..61351969e4 100644
--- a/src/MaaWpfGui/Res/Localizations/en-us.xaml
+++ b/src/MaaWpfGui/Res/Localizations/en-us.xaml
@@ -376,12 +376,14 @@
Video Link
- Tips:
- Please set the emulator and game to 60 FPS at least.
- Please use this function only when "Start" is visible in game.
- You need turn off the "Auto squad" if using friend support unit, then start with your support unit selected.
- For Paradox Simulation, you need to turn off "Auto squad" and select the skill before, then start in game "start" screen.
- "Auto squad" can not identify the "special focus" crew members temporarily, please cancel the special attention or manual formation if necessary.
+
+ Tips:\n\n
+ 1. Please use this function only when "Start" is visible in game.\n\n
+ 2. You need turn off the "Auto squad" if using friend support unit, then start with your support unit selected.\n\n
+ 3. For Paradox Simulation, you need to turn off "Auto squad" and select the skill before, then start in game "start" screen.\n\n
+ 4. For SSS, There are two built-in files under the resource/copilot folder.\n
+ Please start on the "Start Deployment" screen after manual formation (can be used with "Loop times")
+
Failed to read file!
No corresponding file found!
@@ -513,4 +515,10 @@
I must not drink, drink so much next time...
Hello World!
+
+
+ OK!
+ Version Updated
+ Version:
+
\ No newline at end of file
diff --git a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml
index ff0de28b2f..e4a8dd42b9 100644
--- a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml
+++ b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml
@@ -6,8 +6,9 @@
xmlns:uri="clr-namespace:System;assembly=System.Runtime">
設定
+ 対象クライアント
基地設定
- ローグ設定
+ 統合戦略設定
公開求人設定
FP設定
戦闘設定
@@ -37,15 +38,21 @@
製造所-源石の欠片
製造所-中級SoC
宿舎の空き位置で信頼を上げる
- 作業中のオペレーターを宿舎に移動しない
-
- 源石の欠片は自動で補充する
- カスタムされた基地構成を有効にする(Alpha)
+ 作業中の人員を宿舎に移動しない(例:訓練所でのアイリーニなど)
+ 源石の欠片を自動で補充
+ カスタムされた基地構成を有効にする(ベータ)
+ 標準設定
+ ユーザー定義
+ 153 3周/日
+ 243 3周/日
+ 243 4周/日
+ 252 3周/日
+ 333 3周/日
基地構成ファイルの指定
基地構成ファイルのパースエラー!
基地構成ファイルの設定:
基地計画
- Auto save for next plan
+ 次の計画を自動保存
一般モード
一般モード(ブロックされた例外出力)
@@ -54,26 +61,28 @@
LDPlayer
NoxPlayer
MEmu
- WSA 古いバージョン
+ 古いバージョンのWSA
+ MaaTouch
互換モード
体力が設定した%以下になれば宿舎へ移動する
カスタムシフトが有効な場合、この項目は自動入力された部屋に対してのみ有効です。
- 経験値を取得する、できるだけクリアする
- 源石錐を集めて、2階に到着後止める
+ 経験値を取得し、できるだけクリア
+ 源石錐の収集、2階到着後終了
最初の分隊
最初の職業
最初のオペレーター(一人だけ、中国名のみを入力可能)
一人のオペレーターの中国名のみをサポートします。入力されていない場合はデフォルトになります。
- 開幕戦の幹部は助戦を使った
- フレンド以外のアシストを使用できます
+ "最初のオペレーター"をサポートから選択
+ フレンド以外のサポートの使用を許可
+ 統合戦略/保全駐在でポーズトリックを使用します(ベータ機能のため非推奨です)
+ 軽量Adbを使用(実験機能)
デフォルト
(ミヅキ)心胜于物分队
(ミヅキ)物尽其用分队
(ミヅキ)以人为本分队
-
指揮分隊
集団分隊
支援分隊
@@ -91,6 +100,11 @@
前線支援
自由自在
+ 演算结束
+ 繁荣证章
+ 建造点数
+ 锻造赤金
+
選ばない
CN-公式
Bilibili
@@ -105,11 +119,10 @@
ADBプログラム
エミュレータのエラー検出
管理者権限でこのアプリを開くか
手動で接続設定を行ってください
+ ADB検出エラー
このソフトウェアを開くには管理者権限を使用するか
手動で接続を設定してください。
エミュレータが検出されない
管理者権限でこのアプリを開くか
手動で接続設定を行ってください
複数のシミュレータが検出されたため
不要なエミュレータを閉じるか
手動で接続設定を行ってください
- すでに最新版です~
-
言語を切り替える
言語
言語設定が変更されました、今すぐMAAを再起動して言語設定を適用しますか?
@@ -130,10 +143,38 @@
安定版
ベータ版
内部テスト版
+ Update version
aria2を使う
- 更新版
アップデートを確認する
+ 新しいバージョンが見つかりました
+ バックグラウンドでダウンロードを行います・・・
+ バージョン:
+ 内容:
+ Webサイトで確認
+
+ アップデートパッケージが見つかりました
+ 解凍中です、お待ち下さい・・・
+
+ パッケージが壊れています
+ ファイル名:
+ 消去しました。
+
+ 最新版をインストール済みです。
+ アップデートパッケージを見つけるのに失敗しました
+ ネットワークの接続状況とプロクシの設定を確認してください。
+ リリースノートの取得に失敗しました。
+ 新しいバージョンの準備中です。時間をおいてからもう一度実行してください。
+
+ アップデートパッケージのダウンロードを準備中です・・・
+ アップデートパッケージのダウンロードに失敗しました
+ ZIPファイルを手動でダウンロードし、ディレクトリに配置してください。
+ アップデートパッケージのダウンロードが完了しました
+ MAAをすぐにアップグレードしますか?(処理を再開)
+
+ 新バージョンが見つかりましたが、アップデートパッケージがありません
+ アップデートするには、手動でフルパッケージをダウンロードしてください。
+
タイマー
スタートアップ
@@ -144,6 +185,11 @@
エミュレータを待つ時間(秒)
エミュレータパス
選択
+ ADB強制置き換え
+ タッチモード
+ Minitouch (標準)
+ MaaTouch (実験機能)
+ Adb Input (互換性)
追加コマンド
主題
@@ -174,9 +220,9 @@
最小化した際にトレイに表示
重要な通知をポップアップする
代替ステージを選択可能にする
- 残留理性の使用
- メインクエストクリア後に指定されたレベルをスワイプしても、自動的に理性を取り戻さなくなった
-
+ 余剰理性の使用
+ メインタスク終了後に指定されたレベルを選択しても、自動的に理性を回復しません
+ 48時間以内に期限が切れる理性剤を無制限に使用
当日開放されないステージを隠す
スタート画面に表示する便利ボタン
ステージ名を入力する
@@ -191,7 +237,6 @@
接続構成
adb再接続失敗時にエミュレータを自動で再起動
再接続に20回失敗した後、エミュレータを再起動してみてください,バックグラウンドのタイムドタスクを使用し、終了時にエミュレータを終了させるタスクを設定する場合は、必ずチェックを入れること
- ADBの強制置き換え
@@ -205,6 +250,7 @@
FP獲得と交換
報酬受取
自動ローグ
+ 生息演算(大陸版)
全て選択
逆選択
@@ -242,6 +288,10 @@
イベントは未公開か既に終了
+ 未サポートステージ
+ バージョンを上げてください
+ 公開日まで:
+ 1日以内
1-7
龍門幣-6(CE-6)
@@ -282,9 +332,8 @@
エミュレータ接続中……
タスクが選択されていません
動作中……
- 動作停止中……
もし全てでスタックする場合は、設定 - 接続設定 - ADBの強制置き換え、もしくは 互換性 タッチモード をチェックしてください。
-
+ 動作停止中……
動作停止
不明なエラーが発生しました
設定に成功しました
@@ -294,6 +343,7 @@
完了しました。シャットダウンしようとしています。キャンセルしますか?
ヒント
完了しました。休止状態にしようとしています。
+ 殲滅戦に失敗、代替ステージを使用しますが、一部の戦闘設定が有効ではありません
@@ -329,7 +379,7 @@
攻略ファイルはマウスで直接ドラッグして取り込むことがきます(o゚v゚)ノ
自動編成
自動編成では、一時的に「戦術要員」オペレーターを認識できません
- LoopTimes
+ ループ回数
開始
@@ -338,12 +388,14 @@
- ヒント:
- エミュレータとゲーム内設定のフレームレートを60fps以上に設定してください;
- 「行動開始」ボタンのあるインターフェースでこの機能を使用してください;
- サポートを使うときは、「自動編成」をオフにし、手動でオペレーターを選択してから始めましょう;
- 逆理演算の場合は、「自動編成」をオフにする必要があり、スキルを選択した後、「演算開始」ボタンのインターフェースから開始する必要があります;
- 「自動編成」では、一時的に「戦術要員」オペレーターを認識できません。必要に応じて、戦術要員をキャンセルまたは手動に編成してください。
+
+ ヒント:\n\n
+ 1. 「行動開始」ボタンのあるインターフェースでこの機能を使用してください;\n\n
+ 2. サポートを使うときは、「自動編成」をオフにし、手動でオペレーターを選択してから始めましょう;\n\n
+ 3. 逆理演算の場合は、「自動編成」をオフにする必要があり、スキルを選択した後、「演算開始」ボタンのインターフェースから開始する必要があります;\n\n
+ 4. For SSS, There are two built-in files under the resource/copilot folder.\n
+ Please start on the "Start Deployment" screen after manual formation (can be used with "Loop times")
+
ファイルの読み取りに失敗しました!
対応する攻略ファイルが見つかりません!
@@ -400,6 +452,7 @@
ゲームがクラッシュ。再起動を行います
回線が落ちました。再接続を行います
ゲームクリア、おめでとうございます!
+ ゲームクリア、おめでとうございます!
ステージ:怪しい旅商人
ステージ:安全な片隅
ステージ:思わぬ遭遇
@@ -440,6 +493,7 @@
Copilot Map and Coordinate
Custom Base Json Generator
QQグループ
+ QQ channel
Telegram
よくある質問
フィードバック
diff --git a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml
index d575b6bdb0..2cd129797c 100644
--- a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml
+++ b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml
@@ -277,7 +277,7 @@
최근 작전-->
현재/최근
이벤트가 닫혀 있습니다
- 남은 개방일 수:
+ 남은 개방일 수:
1일 미만
1-7
CE-6 (용문폐)
@@ -367,12 +367,14 @@
비디오 링크
- 팁:
- 에뮬레이터와 게임의 프레임 레이트를 60FPS 이상으로 설정하세요.
- '작전 개시' 버튼이 있는 화면에서 이 기능을 사용하세요.
- 친구의 오퍼레이터를 사용하는 경우에는 '자동 편성'을 선택하지 말고 수동으로 오퍼레이터를 선택하고 시작하세요.
- 패러독스 시뮬레이션의 경우에는 '자동 편성'을 선택하지 말고, 스킬을 선택하고 '시뮬레이션 시작' 버튼이 있는 화면에 시작하세요.
- 자동 편성은 '선호' 오퍼레이터를 인식할 수 없습니다. 필요한 경우 선호 오퍼레이터 표시를 취소하고 수동으로 편성할 수 있습니다.
+
+
+ 팁:\n\n1. '작전 개시' 버튼이 있는 화면에서 이 기능을 사용하세요.\n\n
+ 2. 친구의 오퍼레이터를 사용하는 경우에는 '자동 편성'을 선택하지 말고 수동으로 오퍼레이터를 선택하고 시작하세요.\n\n
+ 3. 패러독스 시뮬레이션의 경우에는 '자동 편성'을 선택하지 말고, 스킬을 선택하고 '시뮬레이션 시작' 버튼이 있는 화면에 시작하세요.\n\n
+ 4. For SSS, There are two built-in files under the resource/copilot folder.\n
+ Please start on the "Start Deployment" screen after manual formation (can be used with "Loop times")
+
파일을 읽지 못했습니다!
해당 파일을 찾을 수 없습니다!
@@ -424,7 +426,7 @@
회
이성 회복 아이템을 사용했습니다
순오리지늄을 사용했습니다
- PRTS 오류
+ PRTS 오류
태그가 새로 고쳐졌습니다.
모집 확정
요구 오퍼레이터 충돌
@@ -504,4 +506,4 @@
다, 다음엔 적당히 마셔야지……
Hello World!
-
+
\ No newline at end of file
diff --git a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
index 3f6e4a0fde..158dd4010a 100644
--- a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
+++ b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml
@@ -378,12 +378,14 @@
视频链接
- 小提示:
- 请将模拟器及游戏帧率设置到 60 帧或更高;
- 请在有“开始行动”按钮的界面再使用本功能;
- 使用好友助战可以关闭“自动编队”,手动选择干员后开始;
- 模拟悖论需要关闭“自动编队”,并选好技能后处于“开始模拟”按钮的界面再开始;
- “自动编队”暂时无法识别“特别关注”的干员,如有需求请取消特别关注或手动编队;
+
+ 小提示:\n\n
+ 1. 请在有“开始行动”按钮的界面再使用本功能;\n\n
+ 2. 使用好友助战可以关闭“自动编队”,手动选择干员后开始;\n\n
+ 3. 模拟悖论需要关闭“自动编队”,并选好技能后处于“开始模拟”按钮的界面再开始;\n\n
+ 4. 保全派驻 在 resource/copilot 文件夹下内置了两份作业。\n
+ 请手动编队后在“开始部署”界面开始(可配合“循环次数”使用)
+
读取文件失败!
未找到对应作业!
@@ -471,11 +473,11 @@
开始编队
选择干员:
当前步骤:{0} {1}
- 不支持的关卡,请更新 MAA 软件版本!
-不支持的关卡,请更新 MAA 软件版本!
-不支持的关卡,请更新 MAA 软件版本!
-
-若提示已是最新版本,请尝试检查开发版或内测版。
+
+ 不支持的关卡,请更新 MAA 软件版本!\n
+ 不支持的关卡,请更新 MAA 软件版本!\n
+ 不支持的关卡,请更新 MAA 软件版本!\n\n
+ 若提示已是最新版本,请尝试检查开发版或内测版。
识别结果:
连接失败
@@ -520,4 +522,10 @@
下次不能喝、喝这么多了......
Hello World!
+
+
+ 好的!
+ 版本已更新
+ 已更新:
+
\ No newline at end of file
diff --git a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml
index d32e8dd60f..6d95ffc4e9 100644
--- a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml
+++ b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml
@@ -321,12 +321,14 @@
影片連結
- 小提示:
- 請將模擬器及遊戲影格率設定為 60 張或更高;
- 請在有“開始行動”按鈕的介面再使用本功能;
- 使用好友助戰可以關閉“自動編隊”,手動選擇幹員後開始;
- 模擬悖論需要關閉“自動編隊”,並選好技能後處於“開始模擬”按鈕的介面再開始;
- “自動編隊”暫時無法辨識“特別關注”的幹員,如有需求請取消特別關注或手動編隊;
+
+ 小提示:\n\n
+ 1. 請在有“開始行動”按鈕的介面再使用本功能;\n\n
+ 2. 使用好友助戰可以關閉“自動編隊”,手動選擇幹員後開始;\n\n
+ 3. 模擬悖論需要關閉“自動編隊”,並選好技能後處於“開始模擬”按鈕的介面再開始;\n\n
+ 4. 保全派駐 在 resource/copilot 文件夾下內置了兩份作業。\n
+ 請手動編隊後在“開始部署”界面開始(可配合“循環次數”使用)
+
讀取檔案失敗!
未找到對應作業!
diff --git a/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml b/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml
index 60409eb503..e1c3100ca9 100644
--- a/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml
+++ b/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml
@@ -57,8 +57,9 @@
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
InputMethod.IsInputMethodEnabled="False"
+ LostFocus="FightSettingsTextBoxLostFocus"
PreviewTextInput="TextBox_RestrictInputInt"
- Text="{Binding MedicineNumber}" />
+ Text="{Binding MedicineNumber, UpdateSourceTrigger=PropertyChanged}" />
+ Text="{Binding StoneNumber, UpdateSourceTrigger=PropertyChanged}" />
+ Text="{Binding MaxTimes, UpdateSourceTrigger=PropertyChanged}" />
@@ -125,8 +128,9 @@
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
InputMethod.IsInputMethodEnabled="False"
+ LostFocus="FightSettingsTextBoxLostFocus"
PreviewTextInput="TextBox_RestrictInputInt"
- Text="{Binding DropsQuantity}"
+ Text="{Binding DropsQuantity, UpdateSourceTrigger=PropertyChanged}"
Visibility="{c:Binding IsSpecifiedDrops}" />
@@ -195,7 +199,7 @@
Padding="6,0,0,0"
VerticalContentAlignment="Center"
IsHitTestVisible="{c:Binding !FightTaskRunning}"
- Text="{Binding Stage1}"
+ Text="{Binding Stage1, UpdateSourceTrigger=PropertyChanged}"
ToolTip="{DynamicResource CustomStageCodeTip}"
Visibility="{c:Binding CustomStageCode}" />
diff --git a/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml.cs b/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml.cs
index e14b0afea1..8d15e75916 100644
--- a/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml.cs
+++ b/src/MaaWpfGui/Views/UserControl/FightSettingsUserControl.xaml.cs
@@ -12,6 +12,7 @@
//
using System.Text.RegularExpressions;
+using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
@@ -36,5 +37,14 @@ namespace MaaWpfGui
Regex regex = new Regex("[^0-9]+");
e.Handled = regex.IsMatch(e.Text);
}
+
+ private void FightSettingsTextBoxLostFocus(object sender, RoutedEventArgs e)
+ {
+ TextBox textBox = sender as TextBox;
+ if (string.IsNullOrEmpty(textBox.Text))
+ {
+ textBox.Text = "0";
+ }
+ }
}
}
diff --git a/src/MaaWpfGui/Views/UserControl/GameClientUserControl.xaml b/src/MaaWpfGui/Views/UserControl/GameClientUserControl.xaml
index e417ce3f2a..a1587e566d 100644
--- a/src/MaaWpfGui/Views/UserControl/GameClientUserControl.xaml
+++ b/src/MaaWpfGui/Views/UserControl/GameClientUserControl.xaml
@@ -2,6 +2,7 @@
x:Class="MaaWpfGui.GameClientUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:c="clr-namespace:CalcBinding;assembly=CalcBinding"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dd="urn:gong-wpf-dragdrop"
xmlns:local="clr-namespace:MaaWpfGui"
@@ -31,5 +32,9 @@
ItemsSource="{Binding ClientTypeList}"
SelectedValue="{Binding ClientType}"
SelectedValuePath="Value" />
+
\ No newline at end of file
diff --git a/src/MaaWpfGui/Views/VersionUpdateView.xaml b/src/MaaWpfGui/Views/VersionUpdateView.xaml
index bbd5052e58..ac1532a6a0 100644
--- a/src/MaaWpfGui/Views/VersionUpdateView.xaml
+++ b/src/MaaWpfGui/Views/VersionUpdateView.xaml
@@ -8,7 +8,7 @@
xmlns:mdxam="clr-namespace:MdXaml;assembly=MdXaml"
xmlns:s="https://github.com/canton7/Stylet"
xmlns:vm="clr-namespace:MaaWpfGui"
- Title="版本已更新"
+ Title="{DynamicResource VersionUpdated}"
Width="600"
Height="500"
d:DataContext="{d:DesignInstance {x:Type vm:VersionUpdateViewModel}}"
@@ -28,7 +28,7 @@
Margin="0,20"
FontSize="24"
Style="{StaticResource TextBlockDefaultBold}"
- Text="已更新:"
+ Text="{DynamicResource VersionUpdatedTo}"
TextWrapping="Wrap" />
+ Content="{DynamicResource UpdateNotificationOK}" />
\ No newline at end of file
diff --git a/src/Python/asst/emulator.py b/src/Python/asst/emulator.py
new file mode 100644
index 0000000000..64df006e30
--- /dev/null
+++ b/src/Python/asst/emulator.py
@@ -0,0 +1,33 @@
+import time
+import subprocess
+
+class Bluestacks:
+ @staticmethod
+ def get_hyperv_port(conf_path=r"C:\ProgramData\BlueStacks_nxt\bluestacks.conf", instance_name="Pie64") -> int:
+ """ 获取Hyper-v版蓝叠的adb port
+
+ :param conf_path: bluestacks.conf 的路径+文件名
+ :param instance_name: 多开的名称,在bluestacks.conf中以类似bst.instance..status.adb_port的形式出现,如Nougat64,Pie64,Pie64_1等
+ :return: adb端口
+ """
+ with open(conf_path) as f:
+ configs = dict(list(map(lambda line: line.replace('\n', '').split('='), f.readlines())))
+ return int(configs[f'bst.instance.{instance_name}.status.adb_port'].replace('"', ""))
+
+ @staticmethod
+ def launch_emulator_win(emulator_path=r'C:\Program Files\BlueStacks_nxt\HD-Player.exe', post_delay=30, arg_instance=None):
+ """ 启动模拟器
+ 如需管理员权限启动模拟器则以管理员权限执行Python脚本
+
+ :param emulator_path: 模拟器可执行文件路径+文件名
+ :param post_delay: 启动后的等待时间(s)
+ :param arg_instance: 多开实例名,获取方式见get_hyperv_port注释。默认则置空。
+ :return: 模拟器进程
+ """
+ args = [emulator_path]
+ if arg_instance:
+ args += ["--instance", arg_instance]
+ emulator_proc = subprocess.Popen(args)
+ time.sleep(post_delay)
+ return emulator_proc
+
\ No newline at end of file
diff --git a/src/Python/sample.py b/src/Python/sample.py
index 49a69aa1d1..3fb4257bb8 100644
--- a/src/Python/sample.py
+++ b/src/Python/sample.py
@@ -5,6 +5,7 @@ import time
from asst.asst import Asst
from asst.utils import Message, Version
from asst.updater import Updater
+from asst.emulator import Bluestacks
@Asst.CallBackType
@@ -37,6 +38,12 @@ if __name__ == "__main__":
# 暂停下干员
# asst.set_instance_option(InstanceOptionType.deployment_with_pause, '1')
+ # 启动模拟器。例如启动蓝叠模拟器的多开Pie64_1,并等待30s
+ # Bluestacks.launch_emulator_win(r'C:\Program Files\BlueStacks_nxt\HD-Player.exe', 30, "Pie64_1")
+
+ # 获取Hyper-v蓝叠的adb port
+ # port = Bluestacks.get_hyperv_port(r"C:\ProgramData\BlueStacks_nxt\bluestacks.conf", "Pie64_1")
+
# 请自行配置 adb 环境变量,或修改为 adb 可执行程序的路径
if asst.connect('adb.exe', '127.0.0.1:5555'):
print('连接成功')
diff --git a/tools/ImageCoordinate/.gitignore b/tools/ImageCoordinate/.gitignore
new file mode 100644
index 0000000000..8b036e0a53
--- /dev/null
+++ b/tools/ImageCoordinate/.gitignore
@@ -0,0 +1,6 @@
+*.png
+*.jpg
+
+!coordinate.py
+!drag_here_win.bat
+!.gitignore
\ No newline at end of file
diff --git a/tools/ImageCoordinate/coordinate.py b/tools/ImageCoordinate/coordinate.py
new file mode 100644
index 0000000000..d52bc6fe63
--- /dev/null
+++ b/tools/ImageCoordinate/coordinate.py
@@ -0,0 +1,149 @@
+from PIL import Image, ImageTk
+import tkinter as tk
+from tkinter import simpledialog
+import argparse
+
+img = ""
+
+# Whether the previous rectangles will be cleared when creating a new one
+KEEP_RECT = True
+
+class ImageRectSelector:
+ def __init__(self, image_path):
+ # Load the image using PIL
+ self.image = Image.open(image_path)
+
+ # Create a Tkinter window
+ self.root = tk.Tk()
+
+ # Create a Tkinter-compatible photo image, which can be used with the Canvas widget
+ self.tk_image = ImageTk.PhotoImage(self.image)
+
+ # Create a Canvas widget and display the photo image on it
+ self.canvas = tk.Canvas(
+ self.root, width=self.image.width, height=self.image.height)
+ self.canvas.pack()
+ self.canvas_image = self.canvas.create_image(
+ 0, 0, anchor=tk.NW, image=self.tk_image)
+
+ # Bind the mouse event handlers to the Canvas widget
+ self.canvas.bind("", self.on_mouse_down)
+ self.canvas.bind("", self.on_mouse_drag)
+ self.canvas.bind("", self.on_mouse_up)
+
+ # Bind the keyboard event handler to the root window
+ self.root.bind("", self.on_key)
+
+ # Set the flag so the program loops in run()
+ self.is_quit = False
+
+ # Initialize the rectangle coordinates
+ self.rect_start_x, self.rect_start_y = None, None
+ self.rect_end_x, self.rect_end_y = None, None
+
+ def draw_rectangle(self, tags="rect"):
+ # Erase previous temporary rectangles
+ self.canvas.delete("tmp")
+
+ # Erase the previous rectangles if KEEP_RECT is set to False
+ if not KEEP_RECT:
+ self.canvas.delete("rect")
+
+ # Draw the rectangle with the given tags
+ self.canvas.create_rectangle(self.rect_start_x, self.rect_start_y, self.rect_end_x, self.rect_end_y,
+ outline='red', tags=tags)
+
+ def on_mouse_down(self, event):
+ self.rect_start_x, self.rect_start_y = event.x, event.y
+
+ def on_mouse_drag(self, event):
+ # Draw the new temporary rectangle on the canvas
+ self.rect_end_x, self.rect_end_y = event.x, event.y
+ self.draw_rectangle("tmp")
+
+ def on_mouse_up(self, event):
+ # Draw the new rectangle on the canvas
+ self.rect_end_x, self.rect_end_y = event.x, event.y
+ self.draw_rectangle()
+
+ # Update the PhotoImage with the drawn rectangle
+ # self.image.paste(self.canvas_image, mask=self.canvas_image)
+
+ # Print the rectangle coordinates
+ print(f"({self.rect_start_x}, {self.rect_start_y}), ({self.rect_end_x - self.rect_start_x}, {self.rect_end_y - self.rect_start_y})")
+
+ def on_key(self, event):
+ # Handle the 'q' key to quit the program
+ if event.char == "q":
+ self.is_quit = True
+ self.root.quit()
+
+ # Handle the 'c' key to clear all rectangles
+ elif event.char == "c":
+ self.canvas.delete("rect")
+ self.canvas.delete("tmp")
+
+ # Handle the 'i' key to take an input and draw the corresponding rectangle
+ elif event.char == "i":
+ self.prompt_rect_coords()
+ self.draw_rectangle()
+
+ def prompt_rect_coords(self):
+ # Prompt the user to enter the rectangle coordinates
+ # x, y, w, h = input(
+ # "Enter the rectangle coordinates (x y w h): ").replace(',', ' ').split()
+ # x, y, w, h = map(int, (x, y, w, h))
+ coords_str = simpledialog.askstring(
+ "Input", "Enter rectangle coordinates (x1 y1 x2 y2):")
+ x, y, w, h = map(int, coords_str.replace(',', ' ').split())
+
+ # Set the rectangle coordinates
+ self.rect_start_x, self.rect_start_y = x, y
+ self.rect_end_x, self.rect_end_y = x + w, y + h
+
+ def run(self):
+ # Start the Tkinter event loop and periodically check for user input
+ while not self.is_quit:
+ self.root.update_idletasks()
+ self.root.update()
+ self.root.after(10) # wait 10 ms between event loop iterations
+
+if __name__ == "__main__":
+ import os
+
+ # get the path of the current file
+ current_file_path = os.path.abspath(__file__)
+
+ # get the directory containing the current file
+ current_dir_path = os.path.dirname(current_file_path)
+
+ # set the current working directory to the directory containing the current file
+ os.chdir(current_dir_path)
+
+ # Define command-line arguments
+ parser = argparse.ArgumentParser(
+ description='Select a rectangle on an image.')
+
+ parser.add_argument('image_path', type=str,
+ nargs='?',
+ help='Path to the input image file.')
+
+ # Parse command-line arguments
+ args = parser.parse_args()
+
+ # Handle image path in different situations
+ if args.image_path:
+ image_path = args.image_path
+ elif img:
+ image_path = img
+ else:
+ image_path = input("Enter path to image file: ")
+
+ # Print the prompt
+ print("drag to select and see coordinates, q to quit, c to clean, i to input coordinates")
+
+ # Create an ImageRectSelector instance with the image path
+ selector = ImageRectSelector(image_path)
+
+ # Run the selector
+ selector.run()
diff --git a/tools/ImageCoordinate/drag_here_win.bat b/tools/ImageCoordinate/drag_here_win.bat
new file mode 100644
index 0000000000..0ac1d4b188
--- /dev/null
+++ b/tools/ImageCoordinate/drag_here_win.bat
@@ -0,0 +1,2 @@
+python coordinate.py %*
+pause
\ No newline at end of file
diff --git a/tools/OverseasClients/FindMissingTemplates.py b/tools/OverseasClients/FindMissingTemplates.py
index 35042eb30a..904ae435fb 100644
--- a/tools/OverseasClients/FindMissingTemplates.py
+++ b/tools/OverseasClients/FindMissingTemplates.py
@@ -36,8 +36,7 @@ ignore_list_file_name = "ignore_list_of_templates.txt"
regex_ignore_list = [
"Mizuki",
"SSS",
- "Reclamation",
- "Rogue"
+ "Reclamation"
]
server_list = [
diff --git a/tools/OverseasClients/ignore_list_of_templates.txt b/tools/OverseasClients/ignore_list_of_templates.txt
index a0559ec1ee..f888df8161 100644
--- a/tools/OverseasClients/ignore_list_of_templates.txt
+++ b/tools/OverseasClients/ignore_list_of_templates.txt
@@ -72,6 +72,21 @@ OfflineConfirm.png
OperLockedMfg.png
OperLockedTrade.png
OperSelected.png
+Phantom@Roguelike@CloseCollection.png
+Phantom@Roguelike@GamePassSkip1Confirm.png
+Phantom@Roguelike@InitalDrop.png
+Phantom@Roguelike@LastRewardRand.png
+Phantom@Roguelike@MissionFailedFlag.png
+Phantom@Roguelike@StageBoons.png
+Phantom@Roguelike@StageCambatDps.png
+Phantom@Roguelike@StageDreadfulFoe.png
+Phantom@Roguelike@StageEmergencyDps.png
+Phantom@Roguelike@StageEncounter.png
+Phantom@Roguelike@StageEncounterOptionFree.png
+Phantom@Roguelike@StageEncounterOptionLeave.png
+Phantom@Roguelike@StageEncounterSpecialClose.png
+Phantom@Roguelike@StageSafeHouse.png
+Phantom@Roguelike@StageTrader.png
PopupCancel.png
PopupConfirm.png
RecruitConfirm.png
@@ -81,6 +96,28 @@ RecruitSkip.png
RecruitTimerDecrement.png
ReplenishToMaxConfirm.png
Return.png
+Roguelike@AbandonConfirm.png
+Roguelike@DialogSkipConfirm.png
+Roguelike@ExitThenAbandon.png
+Roguelike@GamePassTheEndConfirm.png
+Roguelike@GetDropLeaveConfirm.png
+Roguelike@IntegratedStrategies.png
+Roguelike@MissionCompletedFlag.png
+Roguelike@StageEncounterGiveUpRecruitConfirm.png
+Roguelike@StageTraderInvestSystemError.png
+Roguelike@TraderRandomShopping.png
+RoguelikeBattleExitBegin.png
+RoguelikeFormationOper.png
+RoguelikeQuickFormationClearAndReselect.png
+RoguelikeRecruitElite0.png
+RoguelikeRecruitElite1.png
+RoguelikeRecruitElite2.png
+RoguelikeRecruitOcrFlag.png
+RoguelikeRecruitSupportElite0.png
+RoguelikeRecruitSupportElite1.png
+RoguelikeRecruitSupportElite2.png
+RoguelikeSkillSelectionFlag.png
+RoguelikeSkillSelectionTeamFull.png
SendClueConfirm.png
SendClues.png
SkipThePreBattlePlotConfirm.png