diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..cf0f974d4b --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,16 @@ +{ + "image": "mcr.microsoft.com/devcontainers/cpp:ubuntu-22.04", + "features": { + "ghcr.io/devcontainers/features/python:1": {}, + "ghcr.io/devcontainers/features/sshd:1": {} + }, + "postCreateCommand": "sudo sh -ce 'apt update && apt install g++-12 -y && echo export CC=gcc-12 CXX=g++-12 >> /etc/profile.d/set-compiler.sh'", + "customizations": { + "vscode": { + "extensions": [ + "llvm-vs-code-extensions.vscode-clangd", + "DavidAnson.vscode-markdownlint" + ] + } + } +} diff --git a/.github/workflows/res-update-game.yml b/.github/workflows/res-update-game.yml index e935c1110d..4c2fdcff5a 100644 --- a/.github/workflows/res-update-game.yml +++ b/.github/workflows/res-update-game.yml @@ -17,8 +17,10 @@ jobs: env: GH_TOKEN: ${{ secrets.MISTEOWORKFLOW }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + name: Checkout MAA with: + show-progress: false token: ${{ secrets.MISTEOWORKFLOW }} - name: Bootstrap MaaDeps env: @@ -30,6 +32,37 @@ jobs: - name: Build Resource Updater run: | MSBUILD tools/ResourceUpdater/ResourceUpdater.vcxproj /t:rebuild /p:Configuration="Release" /p:Platform="x64" /p:BuildProjectReferences=false /m + - name: Clone ArknightsGameResource for Official + uses: actions/checkout@v4 + with: + show-progress: false + repository: yuanyan3060/ArknightsGameResource + ref: main + path: .\tools\ResourceUpdater\x64\Release\Official + sparse-checkout: | + levels.json + item + building_skill + gamedata/excel + - name: Clone ArknightsGameResource_Yostar for Overseas + uses: actions/checkout@v4 + with: + show-progress: false + repository: Kengxxiao/ArknightsGameData_YoStar + ref: main + path: .\tools\ResourceUpdater\x64\Release\Overseas + sparse-checkout: | + en_US/gamedata/excel + ja_JP/gamedata/excel + ko_kr/gamedata/excel + - name: Clone arknights-toolbox-update for Taiwan + uses: actions/checkout@v4 + with: + show-progress: false + repository: arkntools/arknights-toolbox-update + ref: data-tw + path: .\tools\ResourceUpdater\x64\Release\Overseas\zh_TW\gamedata\excel + token: ${{ secrets.ARKNTOOLS_MAA_RESOURCE_UPDATER}} - name: Run Resource Updater run: | .\tools\ResourceUpdater\x64\Release\ResourceUpdater.exe diff --git a/docs/1.3-模拟器支持.md b/docs/1.3-模拟器支持.md index 67784338ba..3bf69c454f 100644 --- a/docs/1.3-模拟器支持.md +++ b/docs/1.3-模拟器支持.md @@ -141,7 +141,7 @@ const notSupportHtml = md.render(notSupport.join('')) ## ⚙️ 手机、平板等实体**安卓**设备 ::: info 注意 -本段内容虽已尽可能写的的简洁易懂,但也许仍对部分萌新用户不甚友好。若嫌麻烦、看不懂或操作不清还请继续使用模拟器 +本段内容虽已尽可能写的的简洁易懂,但也许仍对部分萌新用户不甚友好。若嫌麻烦、看不懂或操作不清还请继续使用模拟器。 ::: - 由于 MAA 仅对 `16:9` 比例的 `720p` 及更高分辨率的支持较为完善,所以非 `16:9` 或 `9:16` 屏幕比例的设备需要强制修改分辨率,这包含大多数现代手机。 @@ -156,7 +156,7 @@ const notSupportHtml = md.render(notSupport.join('')) 1. 下载 [adb](https://dl.google.com/android/repository/platform-tools-latest-windows.zip) 并解压。 2. 打开解压后的文件夹,清空地址栏并输入 `cmd` 后回车。 3. 在弹出的命令提示符窗口中输入 `adb` ,若给出大量英文帮助文本则运行成功。 -4. 手机开启 `USB 调试`,具体步骤可使用搜索引擎搜索 `<机型> + 开启 USB 调试`。 +4. 手机开启 `USB 调试`,每个品牌的手机进入方式可能不同,请善用搜索引擎。厂商可能会提供有关 USB 调试的额外选项,如 MIUI 中的 `USB安装` 和 `USB调试(安全设置)`,请同时开启。 5. 将手机通过数据线连接至电脑,在刚刚的命令提示符窗口中输入以下命令。 ```bash @@ -254,11 +254,15 @@ const notSupportHtml = md.render(notSupport.join('')) ### 连接 MAA 1. 将上文解压文件夹内的 `adb.exe` 路径填入 MAA `设置` - `连接设置` - `adb 路径` 中,可右键属性查看路径。 -2. 因不同安卓版本输出差异较大,请在 MAA `设置` - `连接设置` 中尝试将 `连接配置` 修改为 `通用模式`、`兼容模式`、`第二分辨率`、`通用模式(屏蔽异常输出)` 其中之一,直到某个模式可以连上并正常使用。 +2. 因不同安卓版本输出差异较大,可在 MAA `设置` - `连接设置` 中尝试将 `连接配置` 修改为 `通用模式` 或 `兼容模式` 或 `第二分辨率` 或 `通用模式(屏蔽异常输出)`,直到某个模式可以正常使用。 3. 将游戏内设置中的 `异形屏UI适配` 一项调整为 0 以防止操作错位。 #### 有线连接 +::: tip +使用有线连接不需要任何 IP 地址或端口,只需要 `adb devices` 给出的设备序列号。 +::: + 1. 将上文获取到的目标设备序列号填入 MAA `设置` - `连接设置` - `连接地址` 中。 2. Link Start! 3. 任务结束后还原设备分辨率。 @@ -266,9 +270,10 @@ const notSupportHtml = md.render(notSupport.join('')) #### 无线连接 - 请确保设备与电脑处在同一局域网环境下且能互相通信。诸如 `AP 隔离`、`访客网络` 等设置会阻止设备间通信,具体请查阅对应路由器文档。 -- MAA 不支持 `adb pair` 无线配对方式连接,即通过安卓 11 及更新版本中开发者选项内的 `无线调试` 进行连接。 - 无线调试在设备重启后失效,需要重新设置。 +##### 使用 `adb tcpip` 开启无线端口 + 1. 在刚刚的命令提示符窗口中输入以下命令以开启无线调试。 ```bash @@ -284,3 +289,21 @@ const notSupportHtml = md.render(notSupport.join('')) 3. 将 `:5555` 填入 MAA `设置` - `连接设置` - `连接地址` 中,如 `192.168.1.2:5555`。 4. Link Start! 5. 任务结束后还原设备分辨率。 + +##### 使用 `adb pair` 开启无线端口 + +::: tip +`adb pair` 无线配对,即使用安卓 11 及更新版本中开发者选项内的 `无线调试` 进行配对后连接,与 `adb tcpip` 相比可以避免有线连接。 +::: + +1. 进入手机开发者选项,点击 `无线调试` 并开启,点击确定,点击 `使用配对码配对设备`,在配对完成前不要关闭出现的弹窗。 + +2. 进行配对。 + + 1. 在命令提示符中输入 `adb pair <设备弹窗给出的 IP 地址和端口>`,回车。 + 2. 输入 `<设备弹窗给出的六位配对码>`,回车。 + 3. 窗口出现 `Successfully paired to ` 等内容,同时设备上的弹窗自动消失,底部已配对的设备中出现计算机名称。 + +3. 将当前设备屏幕上给出的 `` 填入 MAA `设置` - `连接设置` - `连接地址` 中,如 `192.168.1.2:11451`,**一定和刚刚填写的不一样**。 +4. Link Start! +5. 任务结束后还原设备分辨率。 diff --git a/docs/2.2-开发相关.md b/docs/2.2-开发相关.md index 4fbd876d36..cae6f8ae36 100644 --- a/docs/2.2-开发相关.md +++ b/docs/2.2-开发相关.md @@ -100,3 +100,11 @@ icon: iconoir:developer 你也可以使用 `tools\ClangFormatter\clang-formatter.py` 来直接调用你的 clang-format 来进行格式化,只需要在项目根目录下执行: - `python tools\ClangFormatter\clang-formatter.py --clang-format=PATH\TO\YOUR\clang-format.exe --input=src\MaaCore` + +## 使用 GitHub codespace 进行在线开发 + +创建 GitHub codespace 自动配置 C++ 开发环境 + +[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg?color=green)](https://codespaces.new/MaaAssistantArknights/MaaAssistantArknights) + +随后根据 vscode 的提示或 [Linux 教程](./2.1-Linux编译教程.md) 配置 GCC 12 和 CMake 工程 diff --git a/docs/en-us/2.2-DEVELOPMENT.md b/docs/en-us/2.2-DEVELOPMENT.md index 935ffb4641..43c902ae87 100644 --- a/docs/en-us/2.2-DEVELOPMENT.md +++ b/docs/en-us/2.2-DEVELOPMENT.md @@ -85,3 +85,11 @@ You are all set with the clang-format integrated in Visual Studio supporting c++ You can also format with `tools\ClangFormatter\clang-formatter.py` directly, by executing in the root folder of the project: - `python tools\ClangFormatter\clang-formatter.py --clang-format=PATH\TO\YOUR\clang-format.exe --input=src\MaaCore` + +## Develop in cloud using GitHub codespace + +Create GitHub codespace with pre configured C++ dev envirinments: + +[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg?color=green)](https://codespaces.new/MaaAssistantArknights/MaaAssistantArknights) + +Then follow the instructions in vscode or [Linux tutorial](./2.1-LINUX_TUTORIAL.md) to configure GCC 12 and the CMake project. diff --git a/docs/glossary/operators.md b/docs/glossary/operators.md index fd0ca09bdf..6d3158fbca 100644 --- a/docs/glossary/operators.md +++ b/docs/glossary/operators.md @@ -213,7 +213,7 @@ char_1021_kroos2|寒芒克洛丝|Kroos the Keen Glint|寒芒クルース|크루 char_1024_hbisc2|濯尘芙蓉|Hibiscus the Purifier|濯塵ハイビスカス|히비스커스 더 퓨리파이어 char_1027_greyy2|承曦格雷伊|Greyy the Lightningbearer|承曦グレイ|그레이 더 라이트닝베어러 char_1030_noirc2|火龙S黑角|Rathalos S Noir Corne|レウスSノイルホーン|레우스S 느와르 코르네 -char_4006_melnte|玫拉|Melanite|| +char_4006_melnte|玫拉|Melanite|メラナイト| char_4013_kjera|耶拉|Kjera|イェラ|쉐라 char_4014_lunacu|子月|Lunacub|ルナカブ|루나컵 char_4015_spuria|空构|Spuria|| @@ -258,7 +258,7 @@ char_213_mostma|莫斯提马|Mostima|モスティマ|모스티마 char_222_bpipe|风笛|Bagpipe|バグパイプ|백파이프 char_225_haak|阿|Aak|ア|아 char_248_mgllan|麦哲伦|Magallan|マゼラン|마젤란 -char_249_mlyss|缪尔赛思|Muelsyse|| +char_249_mlyss|缪尔赛思|Muelsyse|ミュルジス| char_250_phatom|傀影|Phantom|ファントム|팬텀 char_263_skadi|斯卡蒂|Skadi|スカジ|스카디 char_264_f12yin|山|Mountain|マウンテン|마운틴 @@ -296,7 +296,7 @@ char_1023_ghost2|归溟幽灵鲨|Specter the Unchained|帰溟スペクター|스 char_1026_gvial2|百炼嘉维尔|Gavial the Invincible|百錬ガヴィル|가비알 디 인빈서블 char_1028_texas2|缄默德克萨斯|Texas the Omertosa|血掟テキサス|텍사스 디 오메르토사 char_1029_yato2|麒麟R夜刀|Kirin R Yato|キリンRヤトウ|키린R 야토 -char_1031_slent2|淬羽赫默|Silence the Paradigmatic|| +char_1031_slent2|淬羽赫默|Silence the Paradigmatic|淬羽サイレンス| char_1032_excu2|圣约送葬人|Executor the Ex Foedere|| char_1033_swire2|琳琅诗怀雅|Swire the Elegant Wit|| char_1034_jesca2|涤火杰西卡|Jessica the Liberated|| @@ -307,7 +307,7 @@ char_2015_dusk|夕|Dusk|シー|시 char_2023_ling|令|Ling|リィン|링 char_2024_chyue|重岳|Chongyue|チョンユエ|총웨 char_4009_irene|艾丽妮|Irene|アイリーニ|아이린 -char_4027_heyak|霍尔海雅|Ho'olheyak|| +char_4027_heyak|霍尔海雅|Ho'olheyak|ホルハイヤ| char_4039_horn|号角|Horn|ホルン|혼 char_4042_lumen|流明|Lumen|ルーメン|루멘 char_4046_ebnhlz|黑键|Ebenholz|エーベンホルツ|에벤홀츠 diff --git a/docs/ja-jp/2.2-プルリクエスト.md b/docs/ja-jp/2.2-プルリクエスト.md index 0d27a4516a..ebd55b0faf 100644 --- a/docs/ja-jp/2.2-プルリクエスト.md +++ b/docs/ja-jp/2.2-プルリクエスト.md @@ -71,3 +71,11 @@ - `python tools\ClangFormatter\clang-formatter.py --clang-format=PATH\TO\YOUR\clang-format.exe --input=src\MaaCore` を実行するだけです。 + +## Develop in cloud using GitHub codespace + +Create GitHub codespace with pre configured C++ dev envirinments: + +[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg?color=green)](https://codespaces.new/MaaAssistantArknights/MaaAssistantArknights) + +Then follow the instructions in vscode or Linux tutorial to configure GCC 12 and the CMake project. diff --git a/docs/ko-kr/2.2-개발_환경_구축하기.md b/docs/ko-kr/2.2-개발_환경_구축하기.md index 7fb5d2f812..638402aae5 100644 --- a/docs/ko-kr/2.2-개발_환경_구축하기.md +++ b/docs/ko-kr/2.2-개발_환경_구축하기.md @@ -80,3 +80,11 @@ C++20 기능을 지원하는 Visual Studio에 통합된 클랑 형식으로 모 또한 `tools\ClangFormatter\clang-formatter.py` 를 사용하여 포맷할 수 있습니다. 프로젝트의 루트 폴더에서 다음 명령줄을 실행하세요. - `python tools\ClangFormatter\clang-formatter.py --clang-format=PATH\TO\YOUR\clang-format.exe --input=src\MaaCore` + +## Develop in cloud using GitHub codespace + +Create GitHub codespace with pre configured C++ dev envirinments: + +[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg?color=green)](https://codespaces.new/MaaAssistantArknights/MaaAssistantArknights) + +Then follow the instructions in vscode or Linux tutorial to configure GCC 12 and the CMake project. diff --git a/docs/zh-tw/2.2-開發相關.md b/docs/zh-tw/2.2-開發相關.md index 21e7e05d1c..718bc8d7ce 100644 --- a/docs/zh-tw/2.2-開發相關.md +++ b/docs/zh-tw/2.2-開發相關.md @@ -102,3 +102,11 @@ icon: iconoir:developer 你也可以使用 `tools\ClangFormatter\clang-formatter.py` 來直接調用你的 clang-format 來進行格式化,只需要在項目根目錄下執行: - `python tools\ClangFormatter\clang-formatter.py --clang-format=PATH\TO\YOUR\clang-format.exe --input=src\MaaCore` + +## ## 使用 GitHub codespace 進行線上開發 + +建立 GitHub codespace 自動配置 C++ 開發環境 + +[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg?color=green)](https://codespaces.new/MaaAssistantArknights/MaaAssistantArknights) + +隨後根據 vscode 的提示或 [Linux 教程](./2.1-Linux編譯教學.md) 配置 GCC 12 和 CMake 工程 diff --git a/resource/Arknights-Tile-Pos/act29side_ex01#f#-activities-act29side-level_act29side_ex01.json b/resource/Arknights-Tile-Pos/act29side_ex01#f#-activities-act29side-level_act29side_ex01.json new file mode 100644 index 0000000000..34d445aae7 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act29side_ex01#f#-activities-act29side-level_act29side_ex01.json @@ -0,0 +1,733 @@ +{ + "code": "ZT-EX-1", + "height": 9, + "levelId": "activities/act29side/level_act29side_ex01", + "name": "急板", + "stageId": "act29side_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": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 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_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": 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": 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": 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": true, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 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": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 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": 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": 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": 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": 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": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -6.6, + -10.63 + ], + [ + 1.0958801285994695, + -7.1, + -11.468506414519773 + ] + ], + "width": 11 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act29side_ex01-activities-act29side-level_act29side_ex01.json b/resource/Arknights-Tile-Pos/act29side_ex01-activities-act29side-level_act29side_ex01.json new file mode 100644 index 0000000000..1dfab0f44e --- /dev/null +++ b/resource/Arknights-Tile-Pos/act29side_ex01-activities-act29side-level_act29side_ex01.json @@ -0,0 +1,733 @@ +{ + "code": "ZT-EX-1", + "height": 9, + "levelId": "activities/act29side/level_act29side_ex01", + "name": "急板", + "stageId": "act29side_ex01", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 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_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": 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": 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": 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": true, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 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": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 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": 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": 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": 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": 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": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -6.6, + -10.63 + ], + [ + 1.0958801285994695, + -7.1, + -11.468506414519773 + ] + ], + "width": 11 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act29side_ex02#f#-activities-act29side-level_act29side_ex02.json b/resource/Arknights-Tile-Pos/act29side_ex02#f#-activities-act29side-level_act29side_ex02.json new file mode 100644 index 0000000000..e902ecbe6e --- /dev/null +++ b/resource/Arknights-Tile-Pos/act29side_ex02#f#-activities-act29side-level_act29side_ex02.json @@ -0,0 +1,624 @@ +{ + "code": "ZT-EX-2", + "height": 7, + "levelId": "activities/act29side/level_act29side_ex02", + "name": "对位法", + "stageId": "act29side_ex02#f#", + "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": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telout" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 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": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 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": 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": 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": 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_fence_bound" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_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": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_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": 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": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 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" + } + ] + ], + "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/act29side_ex02-activities-act29side-level_act29side_ex02.json b/resource/Arknights-Tile-Pos/act29side_ex02-activities-act29side-level_act29side_ex02.json new file mode 100644 index 0000000000..aab6089165 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act29side_ex02-activities-act29side-level_act29side_ex02.json @@ -0,0 +1,624 @@ +{ + "code": "ZT-EX-2", + "height": 7, + "levelId": "activities/act29side/level_act29side_ex02", + "name": "对位法", + "stageId": "act29side_ex02", + "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": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telout" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 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": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 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": 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": 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": 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_fence_bound" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_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": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_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": 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": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 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" + } + ] + ], + "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/act29side_ex03#f#-activities-act29side-level_act29side_ex03.json b/resource/Arknights-Tile-Pos/act29side_ex03#f#-activities-act29side-level_act29side_ex03.json new file mode 100644 index 0000000000..733bc4df60 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act29side_ex03#f#-activities-act29side-level_act29side_ex03.json @@ -0,0 +1,526 @@ +{ + "code": "ZT-EX-3", + "height": 7, + "levelId": "activities/act29side/level_act29side_ex03", + "name": "跳进", + "stageId": "act29side_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": 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": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "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": 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": 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": 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": 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": 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": 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": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 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": 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": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 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": 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": true, + "isStart": true, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "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/act29side_ex03-activities-act29side-level_act29side_ex03.json b/resource/Arknights-Tile-Pos/act29side_ex03-activities-act29side-level_act29side_ex03.json new file mode 100644 index 0000000000..67af1f5392 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act29side_ex03-activities-act29side-level_act29side_ex03.json @@ -0,0 +1,526 @@ +{ + "code": "ZT-EX-3", + "height": 7, + "levelId": "activities/act29side/level_act29side_ex03", + "name": "跳进", + "stageId": "act29side_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": 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": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "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": 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": 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": 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": 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": 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": 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": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 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": 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": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 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": 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": true, + "isStart": true, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "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/act29side_ex04#f#-activities-act29side-level_act29side_ex04.json b/resource/Arknights-Tile-Pos/act29side_ex04#f#-activities-act29side-level_act29side_ex04.json new file mode 100644 index 0000000000..47eba2f8bc --- /dev/null +++ b/resource/Arknights-Tile-Pos/act29side_ex04#f#-activities-act29side-level_act29side_ex04.json @@ -0,0 +1,654 @@ +{ + "code": "ZT-EX-4", + "height": 8, + "levelId": "activities/act29side/level_act29side_ex04", + "name": "序列法", + "stageId": "act29side_ex04#f#", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telin" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telin" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 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": 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": 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": 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": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telout" + }, + { + "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": 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": 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": 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": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telout" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -6.1, + -9.76 + ], + [ + 0.9448062140292399, + -6.6, + -10.61172366939915 + ] + ], + "width": 11 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act29side_ex04-activities-act29side-level_act29side_ex04.json b/resource/Arknights-Tile-Pos/act29side_ex04-activities-act29side-level_act29side_ex04.json new file mode 100644 index 0000000000..c79d93f195 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act29side_ex04-activities-act29side-level_act29side_ex04.json @@ -0,0 +1,654 @@ +{ + "code": "ZT-EX-4", + "height": 8, + "levelId": "activities/act29side/level_act29side_ex04", + "name": "序列法", + "stageId": "act29side_ex04", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telin" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telin" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 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": 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": 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": 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": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telout" + }, + { + "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": 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": 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": 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": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telout" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -6.1, + -9.76 + ], + [ + 0.9448062140292399, + -6.6, + -10.61172366939915 + ] + ], + "width": 11 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act29side_ex05#f#-activities-act29side-level_act29side_ex05.json b/resource/Arknights-Tile-Pos/act29side_ex05#f#-activities-act29side-level_act29side_ex05.json new file mode 100644 index 0000000000..823793c1b7 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act29side_ex05#f#-activities-act29side-level_act29side_ex05.json @@ -0,0 +1,575 @@ +{ + "code": "ZT-EX-5", + "height": 7, + "levelId": "activities/act29side/level_act29side_ex05", + "name": "和谐进行", + "stageId": "act29side_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": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_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": 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": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": 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": 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": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 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": 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": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "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/act29side_ex05-activities-act29side-level_act29side_ex05.json b/resource/Arknights-Tile-Pos/act29side_ex05-activities-act29side-level_act29side_ex05.json new file mode 100644 index 0000000000..2217a61c5b --- /dev/null +++ b/resource/Arknights-Tile-Pos/act29side_ex05-activities-act29side-level_act29side_ex05.json @@ -0,0 +1,575 @@ +{ + "code": "ZT-EX-5", + "height": 7, + "levelId": "activities/act29side/level_act29side_ex05", + "name": "和谐进行", + "stageId": "act29side_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": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_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": 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": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": 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": 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": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 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": 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": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "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/act29side_ex06#f#-activities-act29side-level_act29side_ex06.json b/resource/Arknights-Tile-Pos/act29side_ex06#f#-activities-act29side-level_act29side_ex06.json new file mode 100644 index 0000000000..4dcf9a3549 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act29side_ex06#f#-activities-act29side-level_act29side_ex06.json @@ -0,0 +1,575 @@ +{ + "code": "ZT-EX-6", + "height": 7, + "levelId": "activities/act29side/level_act29side_ex06", + "name": "术式转换", + "stageId": "act29side_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": 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": 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": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 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": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 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": 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": 11 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act29side_ex06-activities-act29side-level_act29side_ex06.json b/resource/Arknights-Tile-Pos/act29side_ex06-activities-act29side-level_act29side_ex06.json new file mode 100644 index 0000000000..65840e435e --- /dev/null +++ b/resource/Arknights-Tile-Pos/act29side_ex06-activities-act29side-level_act29side_ex06.json @@ -0,0 +1,575 @@ +{ + "code": "ZT-EX-6", + "height": 7, + "levelId": "activities/act29side/level_act29side_ex06", + "name": "术式转换", + "stageId": "act29side_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": 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": 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": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 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": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 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": 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": 11 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act29side_ex07#f#-activities-act29side-level_act29side_ex07.json b/resource/Arknights-Tile-Pos/act29side_ex07#f#-activities-act29side-level_act29side_ex07.json new file mode 100644 index 0000000000..323b071593 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act29side_ex07#f#-activities-act29side-level_act29side_ex07.json @@ -0,0 +1,796 @@ +{ + "code": "ZT-EX-7", + "height": 9, + "levelId": "activities/act29side/level_act29side_ex07", + "name": "无调性", + "stageId": "act29side_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": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_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_fence_bound" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 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": 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": 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": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "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": 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": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telout" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "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": 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": 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": 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": false, + "isStart": false, + "tileKey": "tile_telin" + }, + { + "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": 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": true, + "isStart": true, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -6.6, + -10.63 + ], + [ + 1.0958801285994695, + -7.1, + -11.468506414519773 + ] + ], + "width": 12 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act29side_ex07-activities-act29side-level_act29side_ex07.json b/resource/Arknights-Tile-Pos/act29side_ex07-activities-act29side-level_act29side_ex07.json new file mode 100644 index 0000000000..14a4a323e6 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act29side_ex07-activities-act29side-level_act29side_ex07.json @@ -0,0 +1,796 @@ +{ + "code": "ZT-EX-7", + "height": 9, + "levelId": "activities/act29side/level_act29side_ex07", + "name": "无调性", + "stageId": "act29side_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": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_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_fence_bound" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 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": 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": 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": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "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": 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": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_telout" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "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": 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": 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": 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": false, + "isStart": false, + "tileKey": "tile_telin" + }, + { + "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": 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": true, + "isStart": true, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -6.6, + -10.63 + ], + [ + 1.0958801285994695, + -7.1, + -11.468506414519773 + ] + ], + "width": 12 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act29side_ex08#f#-activities-act29side-level_act29side_ex08.json b/resource/Arknights-Tile-Pos/act29side_ex08#f#-activities-act29side-level_act29side_ex08.json new file mode 100644 index 0000000000..d618bdaa48 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act29side_ex08#f#-activities-act29side-level_act29side_ex08.json @@ -0,0 +1,710 @@ +{ + "code": "ZT-EX-8", + "height": 8, + "levelId": "activities/act29side/level_act29side_ex08", + "name": "永恒主题", + "stageId": "act29side_ex08#f#", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 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": 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_fence_bound" + }, + { + "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": 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": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 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": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 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": 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": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 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, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -6.1, + -9.76 + ], + [ + 0.9448062140292399, + -6.6, + -10.61172366939915 + ] + ], + "width": 12 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/act29side_ex08-activities-act29side-level_act29side_ex08.json b/resource/Arknights-Tile-Pos/act29side_ex08-activities-act29side-level_act29side_ex08.json new file mode 100644 index 0000000000..e9dd37b566 --- /dev/null +++ b/resource/Arknights-Tile-Pos/act29side_ex08-activities-act29side-level_act29side_ex08.json @@ -0,0 +1,710 @@ +{ + "code": "ZT-EX-8", + "height": 8, + "levelId": "activities/act29side/level_act29side_ex08", + "name": "永恒主题", + "stageId": "act29side_ex08", + "tiles": [ + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_fence_bound" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 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": 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_fence_bound" + }, + { + "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": 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": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": true, + "isStart": false, + "tileKey": "tile_end" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 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": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 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": 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": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_floor" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 2, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_wall" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ], + [ + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_start" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": true, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 1, + "heightType": 0, + "isEnd": false, + "isStart": false, + "tileKey": "tile_road" + }, + { + "buildableType": 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, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + }, + { + "buildableType": 0, + "heightType": 1, + "isEnd": false, + "isStart": false, + "tileKey": "tile_forbidden" + } + ] + ], + "view": [ + [ + 0.0, + -6.1, + -9.76 + ], + [ + 0.9448062140292399, + -6.6, + -10.61172366939915 + ] + ], + "width": 12 +} \ No newline at end of file diff --git a/resource/Arknights-Tile-Pos/overview.json b/resource/Arknights-Tile-Pos/overview.json index 37edc5a2d5..5c61eb5055 100644 --- a/resource/Arknights-Tile-Pos/overview.json +++ b/resource/Arknights-Tile-Pos/overview.json @@ -7631,6 +7631,150 @@ "stageId": "act29side_10", "width": 12 }, + "act29side_ex01#f#-activities/act29side/level_act29side_ex01": { + "code": "ZT-EX-1", + "filename": "act29side_ex01#f#-activities-act29side-level_act29side_ex01.json", + "height": 9, + "levelId": "activities/act29side/level_act29side_ex01", + "name": "急板", + "stageId": "act29side_ex01#f#", + "width": 11 + }, + "act29side_ex01-activities/act29side/level_act29side_ex01": { + "code": "ZT-EX-1", + "filename": "act29side_ex01-activities-act29side-level_act29side_ex01.json", + "height": 9, + "levelId": "activities/act29side/level_act29side_ex01", + "name": "急板", + "stageId": "act29side_ex01", + "width": 11 + }, + "act29side_ex02#f#-activities/act29side/level_act29side_ex02": { + "code": "ZT-EX-2", + "filename": "act29side_ex02#f#-activities-act29side-level_act29side_ex02.json", + "height": 7, + "levelId": "activities/act29side/level_act29side_ex02", + "name": "对位法", + "stageId": "act29side_ex02#f#", + "width": 12 + }, + "act29side_ex02-activities/act29side/level_act29side_ex02": { + "code": "ZT-EX-2", + "filename": "act29side_ex02-activities-act29side-level_act29side_ex02.json", + "height": 7, + "levelId": "activities/act29side/level_act29side_ex02", + "name": "对位法", + "stageId": "act29side_ex02", + "width": 12 + }, + "act29side_ex03#f#-activities/act29side/level_act29side_ex03": { + "code": "ZT-EX-3", + "filename": "act29side_ex03#f#-activities-act29side-level_act29side_ex03.json", + "height": 7, + "levelId": "activities/act29side/level_act29side_ex03", + "name": "跳进", + "stageId": "act29side_ex03#f#", + "width": 10 + }, + "act29side_ex03-activities/act29side/level_act29side_ex03": { + "code": "ZT-EX-3", + "filename": "act29side_ex03-activities-act29side-level_act29side_ex03.json", + "height": 7, + "levelId": "activities/act29side/level_act29side_ex03", + "name": "跳进", + "stageId": "act29side_ex03", + "width": 10 + }, + "act29side_ex04#f#-activities/act29side/level_act29side_ex04": { + "code": "ZT-EX-4", + "filename": "act29side_ex04#f#-activities-act29side-level_act29side_ex04.json", + "height": 8, + "levelId": "activities/act29side/level_act29side_ex04", + "name": "序列法", + "stageId": "act29side_ex04#f#", + "width": 11 + }, + "act29side_ex04-activities/act29side/level_act29side_ex04": { + "code": "ZT-EX-4", + "filename": "act29side_ex04-activities-act29side-level_act29side_ex04.json", + "height": 8, + "levelId": "activities/act29side/level_act29side_ex04", + "name": "序列法", + "stageId": "act29side_ex04", + "width": 11 + }, + "act29side_ex05#f#-activities/act29side/level_act29side_ex05": { + "code": "ZT-EX-5", + "filename": "act29side_ex05#f#-activities-act29side-level_act29side_ex05.json", + "height": 7, + "levelId": "activities/act29side/level_act29side_ex05", + "name": "和谐进行", + "stageId": "act29side_ex05#f#", + "width": 11 + }, + "act29side_ex05-activities/act29side/level_act29side_ex05": { + "code": "ZT-EX-5", + "filename": "act29side_ex05-activities-act29side-level_act29side_ex05.json", + "height": 7, + "levelId": "activities/act29side/level_act29side_ex05", + "name": "和谐进行", + "stageId": "act29side_ex05", + "width": 11 + }, + "act29side_ex06#f#-activities/act29side/level_act29side_ex06": { + "code": "ZT-EX-6", + "filename": "act29side_ex06#f#-activities-act29side-level_act29side_ex06.json", + "height": 7, + "levelId": "activities/act29side/level_act29side_ex06", + "name": "术式转换", + "stageId": "act29side_ex06#f#", + "width": 11 + }, + "act29side_ex06-activities/act29side/level_act29side_ex06": { + "code": "ZT-EX-6", + "filename": "act29side_ex06-activities-act29side-level_act29side_ex06.json", + "height": 7, + "levelId": "activities/act29side/level_act29side_ex06", + "name": "术式转换", + "stageId": "act29side_ex06", + "width": 11 + }, + "act29side_ex07#f#-activities/act29side/level_act29side_ex07": { + "code": "ZT-EX-7", + "filename": "act29side_ex07#f#-activities-act29side-level_act29side_ex07.json", + "height": 9, + "levelId": "activities/act29side/level_act29side_ex07", + "name": "无调性", + "stageId": "act29side_ex07#f#", + "width": 12 + }, + "act29side_ex07-activities/act29side/level_act29side_ex07": { + "code": "ZT-EX-7", + "filename": "act29side_ex07-activities-act29side-level_act29side_ex07.json", + "height": 9, + "levelId": "activities/act29side/level_act29side_ex07", + "name": "无调性", + "stageId": "act29side_ex07", + "width": 12 + }, + "act29side_ex08#f#-activities/act29side/level_act29side_ex08": { + "code": "ZT-EX-8", + "filename": "act29side_ex08#f#-activities-act29side-level_act29side_ex08.json", + "height": 8, + "levelId": "activities/act29side/level_act29side_ex08", + "name": "永恒主题", + "stageId": "act29side_ex08#f#", + "width": 12 + }, + "act29side_ex08-activities/act29side/level_act29side_ex08": { + "code": "ZT-EX-8", + "filename": "act29side_ex08-activities-act29side-level_act29side_ex08.json", + "height": 8, + "levelId": "activities/act29side/level_act29side_ex08", + "name": "永恒主题", + "stageId": "act29side_ex08", + "width": 12 + }, "act29side_tr01-activities/act29side/level_act29side_tr01": { "code": "ZT-TR-1", "filename": "act29side_tr01-activities-act29side-level_act29side_tr01.json", diff --git a/resource/battle_data.json b/resource/battle_data.json index 3f6c045015..1d1b046758 100644 --- a/resource/battle_data.json +++ b/resource/battle_data.json @@ -335,9 +335,9 @@ }, "char_1031_slent2": { "name": "淬羽赫默", - "name_en": "淬羽赫默", - "name_jp": "淬羽赫默", - "name_kr": "淬羽赫默", + "name_en": "Silence the Paradigmatic", + "name_jp": "淬羽サイレンス", + "name_kr": "사일런스 더 패러디그매틱", "name_tw": "淬羽赫默", "position": "RANGED", "profession": "SUPPORT", @@ -1890,9 +1890,9 @@ }, "char_249_mlyss": { "name": "缪尔赛思", - "name_en": "缪尔赛思", - "name_jp": "缪尔赛思", - "name_kr": "缪尔赛思", + "name_en": "Muelsyse", + "name_jp": "ミュルジス", + "name_kr": "뮤엘시스", "name_tw": "缪尔赛思", "position": "RANGED", "profession": "PIONEER", @@ -3069,9 +3069,9 @@ }, "char_4006_melnte": { "name": "玫拉", - "name_en": "玫拉", - "name_jp": "玫拉", - "name_kr": "玫拉", + "name_en": "Melanite", + "name_jp": "メラナイト", + "name_kr": "멜라나이트", "name_tw": "玫拉", "position": "RANGED", "profession": "SNIPER", @@ -3252,9 +3252,9 @@ }, "char_4027_heyak": { "name": "霍尔海雅", - "name_en": "霍尔海雅", - "name_jp": "霍尔海雅", - "name_kr": "霍尔海雅", + "name_en": "Ho'olheyak", + "name_jp": "ホルハイヤ", + "name_kr": "오올헤약", "name_tw": "霍尔海雅", "position": "RANGED", "profession": "CASTER", @@ -5330,9 +5330,9 @@ }, "token_10029_slent2_protrb": { "name": "夜灯", - "name_en": "夜灯", - "name_jp": "夜灯", - "name_kr": "夜灯", + "name_en": "Night Banisher", + "name_jp": "夜の灯火", + "name_kr": "밤의 등불", "name_tw": "夜灯", "position": "ALL", "profession": "TOKEN", @@ -5345,9 +5345,9 @@ }, "token_10030_mlyss_wtrman": { "name": "流形", - "name_en": "流形", - "name_jp": "流形", - "name_kr": "流形", + "name_en": "Flowing Shape", + "name_jp": "うつろう水影", + "name_kr": "유동체", "name_tw": "流形", "position": "ALL", "profession": "TOKEN", @@ -7010,9 +7010,9 @@ }, "trap_112_crsbow": { "name": "解雇者清债程序", - "name_en": "解雇者清债程序", - "name_jp": "解雇者清债程序", - "name_kr": "解雇者清债程序", + "name_en": "Post-Firing Debt Relief Program", + "name_jp": "解雇者清算プログラム", + "name_kr": "해고자 채무 탕감 프로그램", "name_tw": "解雇者清债程序", "position": "NONE", "profession": "TRAP", @@ -7025,9 +7025,9 @@ }, "trap_113_snflwr": { "name": "全自动划账器", - "name_en": "全自动划账器", - "name_jp": "全自动划账器", - "name_kr": "全自动划账器", + "name_en": "Full-Auto Debit Machine", + "name_jp": "全自動送金機", + "name_kr": "자동 계좌 이체기", "name_tw": "全自动划账器", "position": "NONE", "profession": "TRAP", @@ -7040,9 +7040,9 @@ }, "trap_114_smkbmb": { "name": "爆裂毒气罐", - "name_en": "爆裂毒气罐", - "name_jp": "爆裂毒气罐", - "name_kr": "爆裂毒气罐", + "name_en": "Rupturing Canister", + "name_jp": "毒ガスタンク", + "name_kr": "독가스 탱크", "name_tw": "爆裂毒气罐", "position": "NONE", "profession": "TRAP", @@ -7055,9 +7055,9 @@ }, "trap_115_gasctrl": { "name": "毒雾塔控制", - "name_en": "毒雾塔控制", - "name_jp": "毒雾塔控制", - "name_kr": "毒雾塔控制", + "name_en": "Gas Controller", + "name_jp": "毒霧タワー制御装置", + "name_kr": "독가스 컨트롤러", "name_tw": "毒雾塔控制", "position": "NONE", "profession": "TRAP", @@ -7145,9 +7145,9 @@ }, "trap_121_gractrl": { "name": "重力", - "name_en": "重力", + "name_en": "Gravity", "name_jp": "重力", - "name_kr": "重力", + "name_kr": "중력", "name_tw": "重力", "position": "NONE", "profession": "TRAP", @@ -8150,9 +8150,9 @@ }, "trap_714_cdaltar": { "name": "能量扰动放大器", - "name_en": "能量扰动放大器", - "name_jp": "能量扰动放大器", - "name_kr": "能量扰动放大器", + "name_en": "Energy Perturbation Amplifier", + "name_jp": "エネルギー摂動増幅器", + "name_kr": "에너지 교란 증폭기", "name_tw": "能量扰动放大器", "position": "NONE", "profession": "TRAP", @@ -8165,9 +8165,9 @@ }, "trap_715_cdaltara": { "name": "能量扰动放大器", - "name_en": "能量扰动放大器", - "name_jp": "能量扰动放大器", - "name_kr": "能量扰动放大器", + "name_en": "Energy Perturbation Amplifier", + "name_jp": "エネルギー摂動増幅器", + "name_kr": "에너지 교란 증폭기", "name_tw": "能量扰动放大器", "position": "NONE", "profession": "TRAP", @@ -8180,9 +8180,9 @@ }, "trap_716_cdaltarb": { "name": "能量扰动放大器", - "name_en": "能量扰动放大器", - "name_jp": "能量扰动放大器", - "name_kr": "能量扰动放大器", + "name_en": "Energy Perturbation Amplifier", + "name_jp": "エネルギー摂動増幅器", + "name_kr": "에너지 교란 증폭기", "name_tw": "能量扰动放大器", "position": "NONE", "profession": "TRAP", @@ -8195,9 +8195,9 @@ }, "trap_717_cddiff": { "name": "战术装备整理箱", - "name_en": "战术装备整理箱", - "name_jp": "战术装备整理箱", - "name_kr": "战术装备整理箱", + "name_en": "Tactical Equipment Toolbox", + "name_jp": "戦術装備整理箱", + "name_kr": "전술 장비 정리함", "name_tw": "战术装备整理箱", "position": "NONE", "profession": "TRAP", @@ -8210,9 +8210,9 @@ }, "trap_718_cddiffa": { "name": "战术装备整理箱", - "name_en": "战术装备整理箱", - "name_jp": "战术装备整理箱", - "name_kr": "战术装备整理箱", + "name_en": "Tactical Equipment Toolbox", + "name_jp": "戦術装備整理箱", + "name_kr": "전술 장비 정리함", "name_tw": "战术装备整理箱", "position": "NONE", "profession": "TRAP", @@ -8225,9 +8225,9 @@ }, "trap_719_cddiffb": { "name": "战术装备整理箱", - "name_en": "战术装备整理箱", - "name_jp": "战术装备整理箱", - "name_kr": "战术装备整理箱", + "name_en": "Tactical Equipment Toolbox", + "name_jp": "戦術装備整理箱", + "name_kr": "전술 장비 정리함", "name_tw": "战术装备整理箱", "position": "NONE", "profession": "TRAP", @@ -8240,9 +8240,9 @@ }, "trap_720_cdheal": { "name": "便携式医疗设备", - "name_en": "便携式医疗设备", - "name_jp": "便携式医疗设备", - "name_kr": "便携式医疗设备", + "name_en": "Portable First-aid Kit", + "name_jp": "携帯式医療設備", + "name_kr": "이동식 의료 설비", "name_tw": "便携式医疗设备", "position": "NONE", "profession": "TRAP", @@ -8255,9 +8255,9 @@ }, "trap_721_cdheala": { "name": "便携式医疗设备", - "name_en": "便携式医疗设备", - "name_jp": "便携式医疗设备", - "name_kr": "便携式医疗设备", + "name_en": "Portable First-aid Kit", + "name_jp": "携帯式医療設備", + "name_kr": "이동식 의료 설비", "name_tw": "便携式医疗设备", "position": "NONE", "profession": "TRAP", @@ -8270,9 +8270,9 @@ }, "trap_722_cdhealb": { "name": "便携式医疗设备", - "name_en": "便携式医疗设备", - "name_jp": "便携式医疗设备", - "name_kr": "便携式医疗设备", + "name_en": "Portable First-aid Kit", + "name_jp": "携帯式医療設備", + "name_kr": "이동식 의료 설비", "name_tw": "便携式医疗设备", "position": "NONE", "profession": "TRAP", diff --git a/resource/config.json b/resource/config.json index 90b3e68cba..7b7664dfe9 100644 --- a/resource/config.json +++ b/resource/config.json @@ -83,7 +83,7 @@ "screencapEncode": "[Adb] -s [AdbSerial] exec-out screencap -p", "release": "[Adb] kill-server", "start": "[Adb] -s [AdbSerial] shell am start -n [Intent]", - "stop": "[Adb] -s [AdbSerial] shell \"PACKAGE_NAME=$(dumpsys activity activities 2>/dev/null | grep -E '(packageName|Activities)=[^\\n]+arknights' 2>/dev/null | grep -i -o -E '[^= ]*arknights[^ /\\n]*' | head -n 1); if [ -n \\\"$PACKAGE_NAME\\\" ]; then echo \\\"Closing $PACKAGE_NAME\\\"; am force-stop $PACKAGE_NAME; else echo \\\"app not running or arknights package name not found\\\"; fi\"", + "stop": "[Adb] -s [AdbSerial] shell \"PACKAGE_NAME=$(dumpsys activity activities 2>/dev/null | grep -E '(packageName|Activities)=[^\\n]+rknights' 2>/dev/null | grep -i -o -E '[^= ]*rknights[^ /\\n]*' | head -n 1); if [ -n \\\"$PACKAGE_NAME\\\" ]; then echo \\\"Closing $PACKAGE_NAME\\\"; am force-stop $PACKAGE_NAME; else echo \\\"app not running or arknights package name not found\\\"; fi\"", "abilist": "[Adb] -s [AdbSerial] shell getprop ro.product.cpu.abilist", "orientation": "[Adb] -s [AdbSerial] shell dumpsys input | grep SurfaceOrientation | grep -m 1 -o -E [0-9]", "pushMinitouch": "[Adb] -s [AdbSerial] push \"[minitouchLocalPath]\" \"/data/local/tmp/[minitouchWorkingFile]\"", @@ -145,13 +145,13 @@ "configName": "CompatMac", "baseConfig": "Compatible", "ncAddress": "[Adb] -s [AdbSerial] shell \"cat /proc/net/arp | grep : | sort\"", - "stop": "[Adb] -s [AdbSerial] shell 'PACKAGE_NAME=$(dumpsys activity activities 2>/dev/null | grep -E \"(packageName|Activities)=[^\\n]+arknights\" 2>/dev/null | grep -i -o -E \"[^= ]*arknights[^ /\\n]*\" | head -n 1); if [ -n \"$PACKAGE_NAME\" ]; then echo \"Closing $PACKAGE_NAME\"; am force-stop $PACKAGE_NAME; else echo \"app not running or arknights package name not found\"; fi'", + "stop": "[Adb] -s [AdbSerial] shell 'PACKAGE_NAME=$(dumpsys activity activities 2>/dev/null | grep -E \"(packageName|Activities)=[^\\n]+rknights\" 2>/dev/null | grep -i -o -E \"[^= ]*rknights[^ /\\n]*\" | head -n 1); if [ -n \"$PACKAGE_NAME\" ]; then echo \"Closing $PACKAGE_NAME\"; am force-stop $PACKAGE_NAME; else echo \"app not running or arknights package name not found\"; fi'", "screencapRawWithGzip": "" }, { "configName": "CompatPOSIXShell", "baseConfig": "General", - "stop": "[Adb] -s [AdbSerial] shell 'PACKAGE_NAME=$(dumpsys activity activities 2>/dev/null | grep -E \"(packageName|Activities)=[^\\n]+arknights\" 2>/dev/null | grep -i -o -E \"[^= ]*arknights[^ /\\n]*\" | head -n 1); if [ -n \"$PACKAGE_NAME\" ]; then echo \"Closing $PACKAGE_NAME\"; am force-stop $PACKAGE_NAME; else echo \"app not running or arknights package name not found\"; fi'" + "stop": "[Adb] -s [AdbSerial] shell 'PACKAGE_NAME=$(dumpsys activity activities 2>/dev/null | grep -E \"(packageName|Activities)=[^\\n]+rknights\" 2>/dev/null | grep -i -o -E \"[^= ]*rknights[^ /\\n]*\" | head -n 1); if [ -n \"$PACKAGE_NAME\" ]; then echo \"Closing $PACKAGE_NAME\"; am force-stop $PACKAGE_NAME; else echo \"app not running or arknights package name not found\"; fi'" }, { "configName": "GeneralWithoutScreencapErr", diff --git a/resource/custom_infrast/153_layout_3_times_a_day.json b/resource/custom_infrast/153_layout_3_times_a_day.json index 697660b809..dbacc10816 100644 --- a/resource/custom_infrast/153_layout_3_times_a_day.json +++ b/resource/custom_infrast/153_layout_3_times_a_day.json @@ -112,6 +112,11 @@ ] } ], + "processing": [ + { + "skip": true + } + ], "power": [ { "operators": [ @@ -420,6 +425,11 @@ ] } ], + "processing": [ + { + "skip": true + } + ], "power": [ { "operators": [ diff --git a/resource/global/YoStarEN/resource/item_index.json b/resource/global/YoStarEN/resource/item_index.json index 100dda5bb7..4374ca58c1 100644 --- a/resource/global/YoStarEN/resource/item_index.json +++ b/resource/global/YoStarEN/resource/item_index.json @@ -975,6 +975,14 @@ "sortId": 10019, "usage": "A time-limited currency arranged for a new type of headhunting contract; Collect enough to recruit an operator from a designated pool for a limited time" }, + "LMTGS_COIN_3801": { + "classifyType": "NORMAL", + "description": "A long-term, stable relationship with the headhunting agency can effectively control our expenditures. However, we hope that this method will not be required every time.", + "icon": "LMTGS_COIN_3801.png", + "name": "Headhunting Data Contract", + "sortId": 10020, + "usage": "A time-limited currency arranged for a new type of headhunting contract; Collect enough to recruit an operator from a designated pool for a limited time" + }, "LMTGS_COIN_601": { "classifyType": "NORMAL", "description": "A long-term, stable relationship with the headhunting agency can effectively control our expenditures. However, we hope that this method will not be required every time.", @@ -1439,6 +1447,30 @@ "sortId": -10000, "usage": "A material obtainable from battling a Rathalos. Perfect as melding material." }, + "act25side_token_fdrchips": { + "classifyType": "NONE", + "description": "Aside from the data hidden by Nasti all over the lands, new data are continually produced with the federal government's support. Columbia is gradually realizing the value of Kristen's research.", + "icon": "act25side_token_fdrchips.png", + "name": "Flight Data Recorder Chip", + "sortId": -10000, + "usage": "A chip containing flight data recorded at various altitudes and environments. Collect a certain amount to exchange with the Special Case Contact C.U.D.O.D. for goods." + }, + "act25side_token_key01": { + "classifyType": "NONE", + "description": "Grants permission to enter the secret zone. The mechanisms within seem to work differently.", + "icon": "act25side_token_key01.png", + "name": "Special Ops Permit α", + "sortId": -10000, + "usage": "Grants permission to enter the secret zone. The mechanisms within seem to work differently." + }, + "act25side_token_key02": { + "classifyType": "NONE", + "description": "Grants permission to enter the secret zone. The mechanisms within seem to work differently.", + "icon": "act25side_token_key02.png", + "name": "Special Ops Permit β", + "sortId": -10000, + "usage": "Grants permission to enter the secret zone. The mechanisms within seem to work differently." + }, "act2bossrush_milestone_point": { "classifyType": "NONE", "description": "Right and wrong are far from crucial in a simulation. They are only a form of support. They help you make the correct choices when the battle is real.", @@ -1967,6 +1999,14 @@ "sortId": 60108, "usage": "Filled with an assortment of supplies and materials." }, + "randomMaterial_rhine2": { + "classifyType": "CONSUME", + "description": "A materials supply crate provided by the Maylander Foundation. Allocated based on the needs of each investigated area. As such, the materials in each crate can be different.", + "icon": "randomMaterial_rhine2.png", + "name": "Technological Investigation Supply", + "sortId": 60109, + "usage": "Filled with an assortment of supplies and materials." + }, "return_credit_token": { "classifyType": "NONE", "description": "An emblem specially prepared for those returning to major posts. Granted progressively throughout the course of their familiarization with work.", diff --git a/resource/global/YoStarEN/resource/recruitment.json b/resource/global/YoStarEN/resource/recruitment.json index d9e645dd7e..9c9c64c842 100644 --- a/resource/global/YoStarEN/resource/recruitment.json +++ b/resource/global/YoStarEN/resource/recruitment.json @@ -598,6 +598,17 @@ "辅助干员" ] }, + { + "id": "char_328_cammou", + "name": "Click", + "rarity": 4, + "tags": [ + "输出", + "控场", + "远程位", + "术师干员" + ] + }, { "id": "char_155_tiger", "name": "Indra", @@ -1071,6 +1082,18 @@ "术师干员" ] }, + { + "id": "char_294_ayer", + "name": "Ayerscarpe", + "rarity": 5, + "tags": [ + "输出", + "群攻", + "近战位", + "资深干员", + "近卫干员" + ] + }, { "id": "char_103_angel", "name": "Exusiai", @@ -1325,6 +1348,19 @@ "高级资深干员", "狙击干员" ] + }, + { + "id": "char_358_lisa", + "name": "Suzuran", + "rarity": 6, + "tags": [ + "减速", + "支援", + "输出", + "远程位", + "高级资深干员", + "辅助干员" + ] } ], "tags": { diff --git a/resource/global/YoStarEN/resource/tasks.json b/resource/global/YoStarEN/resource/tasks.json index 7c5eb3267e..bf515e4bfc 100644 --- a/resource/global/YoStarEN/resource/tasks.json +++ b/resource/global/YoStarEN/resource/tasks.json @@ -49,6 +49,18 @@ 150 ] }, + "CW-Open": { + "text": [ + "Lone Trail", + "is now open" + ] + }, + "CWChapterToCW": { + "text": [ + "THE COMING", + "THE FUTURE" + ] + }, "CF-Open": { "text": [ "Event is now", @@ -2137,6 +2149,10 @@ "Treasure Hunter", "寻宝人" ], + [ + "^[Iil]?nes$", + "Ines" + ], [ "Ines", "伊内丝" @@ -2156,6 +2172,86 @@ [ "Roadside Emergency Reserves", "街头应急储备" + ], + [ + "Gravity", + "重力" + ], + [ + "Portable First-aid Kit", + "便携式医疗设备" + ], + [ + "Silence the Paradigmatic", + "淬羽赫默" + ], + [ + "Full-Auto Debit Machine", + "全自动划账器" + ], + [ + "Muelsyse", + "缪尔赛思" + ], + [ + "Gas Controller", + "毒雾塔控制" + ], + [ + "Flowing Shape", + "流形" + ], + [ + "Ho'olheyak", + "霍尔海雅" + ], + [ + "Energy Perturbation Amplifier", + "能量扰动放大器" + ], + [ + "Melanite", + "玫拉" + ], + [ + "Energy Perturbation Amplifier", + "能量扰动放大器" + ], + [ + "Post-Firing Debt Relief Program", + "解雇者清债程序" + ], + [ + "Night Banisher", + "夜灯" + ], + [ + "Rupturing Canister", + "爆裂毒气罐" + ], + [ + "Energy Perturbation Amplifier", + "能量扰动放大器" + ], + [ + "Tactical Equipment Toolbox", + "战术装备整理箱" + ], + [ + "Tactical Equipment Toolbox", + "战术装备整理箱" + ], + [ + "Tactical Equipment Toolbox", + "战术装备整理箱" + ], + [ + "Portable First-aid Kit", + "便携式医疗设备" + ], + [ + "Portable First-aid Kit", + "便携式医疗设备" ] ] }, @@ -4946,6 +5042,10 @@ "Screaming Cherry", "尖叫樱桃" ], + [ + "Game Room Admin Access.*", + "Game Room Admin Access Card" + ], [ "Game Room Admin Access Card", "游戏室管理员权限卡" @@ -5270,6 +5370,10 @@ "Acahuallan Bowl", "阿卡胡拉饭碗" ], + [ + "Three-Dimensional Art.*", + "Three-Dimensional Art Display" + ], [ "Three-Dimensional Art Display", "立体艺术装置" @@ -6195,4 +6299,4 @@ "SAND" ] } -} \ No newline at end of file +} diff --git a/resource/global/YoStarEN/resource/template/MiningActivityDigging.png b/resource/global/YoStarEN/resource/template/MiningActivityDigging.png new file mode 100644 index 0000000000..1e9a1b837c Binary files /dev/null and b/resource/global/YoStarEN/resource/template/MiningActivityDigging.png differ diff --git a/resource/global/YoStarEN/resource/version.json b/resource/global/YoStarEN/resource/version.json index 0f75317930..6fd1e19c1c 100644 --- a/resource/global/YoStarEN/resource/version.json +++ b/resource/global/YoStarEN/resource/version.json @@ -1,11 +1,11 @@ { "activity": { - "name": "Guide Ahead - Rerun", - "time": 1695315600 + "name": "Lone Trail", + "time": 1699376400 }, "gacha": { - "pool": "As In My Adumbration", - "time": 1698148800 + "pool": "Here I Stand", + "time": 1699376400 }, - "last_updated": "2023-11-02 15:48:26.627" + "last_updated": "2023-11-11 14:04:59.744" } diff --git a/resource/global/YoStarJP/resource/item_index.json b/resource/global/YoStarJP/resource/item_index.json index 9518c93704..b2a70cbc1e 100644 --- a/resource/global/YoStarJP/resource/item_index.json +++ b/resource/global/YoStarJP/resource/item_index.json @@ -975,6 +975,14 @@ "sortId": 10019, "usage": "新型採用契約による期限付きポイント。一定数溜まると対象スカウトのオペレーターを指名できる。" }, + "LMTGS_COIN_3801": { + "classifyType": "NORMAL", + "description": "人材派遣会社との長期的かつ安定的な協力態勢の賜物。支出のコントロールに効果が期待できる。しかし、毎回この手段を使わざるを得ないような状況にはなってほしくないものだ。", + "icon": "LMTGS_COIN_3801.png", + "name": "限定契約証", + "sortId": 10020, + "usage": "新型採用契約による期限付きポイント。一定数溜まると対象スカウトのオペレーターを指名できる。" + }, "LMTGS_COIN_601": { "classifyType": "NORMAL", "description": "人材派遣会社との長期的かつ安定的な協力態勢の賜物。支出のコントロールに効果が期待できる。しかし、毎回この手段を使わざるを得ないような状況にはなってほしくないものだ。", @@ -1439,6 +1447,30 @@ "sortId": -10000, "usage": "リオレウスとの戦いを経て手に入れた素材。アーツ錬金にはもってこい。" }, + "act25side_token_fdrchips": { + "classifyType": "NONE", + "description": "ナスティによって各地に隠されていたデータのほかにも、各国の支援を受け、次々と新しいデータが生み出された。クルビアはついにクリステンが行っていた研究の価値に気づき始めているのだ。", + "icon": "act25side_token_fdrchips.png", + "name": "飛行データチップ", + "sortId": -10000, + "usage": "さまざまな高度と環境下における飛行データが記録されたチップ。一定数を集めると、特別連絡室で必要な物資と交換できる。" + }, + "act25side_token_key01": { + "classifyType": "NONE", + "description": "秘密エリアに入るための許可証。内部の仕掛けに少し違いがあるようだが?", + "icon": "act25side_token_key01.png", + "name": "特殊作戦許可α", + "sortId": -10000, + "usage": "秘密エリアに入るための許可証。内部の仕掛けに少し違いがあるようだが?" + }, + "act25side_token_key02": { + "classifyType": "NONE", + "description": "秘密エリアに入るための許可証。内部の仕掛けに少し違いがあるようだが?", + "icon": "act25side_token_key02.png", + "name": "特殊作戦許可β", + "sortId": -10000, + "usage": "秘密エリアに入るための許可証。内部の仕掛けに少し違いがあるようだが?" + }, "act2bossrush_milestone_point": { "classifyType": "NONE", "description": "試練の成否はそれほど重要ではない、これは貴殿が実戦において正確な選択を行うためのサポートである。", @@ -1967,6 +1999,14 @@ "sortId": 60108, "usage": "補給物資としてランダムに様々な素材が入っている。" }, + "randomMaterial_rhine2": { + "classifyType": "CONSUME", + "description": "マイレンダー基金から提供された素材補給箱。各調査エリアごとに個別で割り振られるため、どの箱になんの素材が入っているのか誰にもわからない。", + "icon": "randomMaterial_rhine2.png", + "name": "技術調査補給", + "sortId": 60109, + "usage": "補給物資としてランダムに様々な素材が入っている。" + }, "return_credit_token": { "classifyType": "NONE", "description": "重要な立場に戻る者のため、特別に用意された徽章。仕事に慣れていく中で徐々に授けられる。", diff --git a/resource/global/YoStarJP/resource/recruitment.json b/resource/global/YoStarJP/resource/recruitment.json index acd3402df8..2ef637765f 100644 --- a/resource/global/YoStarJP/resource/recruitment.json +++ b/resource/global/YoStarJP/resource/recruitment.json @@ -598,6 +598,17 @@ "辅助干员" ] }, + { + "id": "char_328_cammou", + "name": "カシャ", + "rarity": 4, + "tags": [ + "输出", + "控场", + "远程位", + "术师干员" + ] + }, { "id": "char_155_tiger", "name": "インドラ", @@ -1071,6 +1082,18 @@ "术师干员" ] }, + { + "id": "char_294_ayer", + "name": "エアースカーペ", + "rarity": 5, + "tags": [ + "输出", + "群攻", + "近战位", + "资深干员", + "近卫干员" + ] + }, { "id": "char_103_angel", "name": "エクシア", @@ -1325,6 +1348,19 @@ "高级资深干员", "狙击干员" ] + }, + { + "id": "char_358_lisa", + "name": "スズラン", + "rarity": 6, + "tags": [ + "减速", + "支援", + "输出", + "远程位", + "高级资深干员", + "辅助干员" + ] } ], "tags": { diff --git a/resource/global/YoStarJP/resource/tasks.json b/resource/global/YoStarJP/resource/tasks.json index bdfeb201a4..28e06bee37 100644 --- a/resource/global/YoStarJP/resource/tasks.json +++ b/resource/global/YoStarJP/resource/tasks.json @@ -19,6 +19,17 @@ "残映" ] }, + "CW-Open": { + "text": [ + "孤星", + "イベント開催中" + ] + }, + "CWChapterToCW": { + "text": [ + "来たる未来" + ] + }, "IW-Open": { "text": [ "<将進酒>イベント復刻開催中" @@ -2308,6 +2319,82 @@ [ "街の緊急用備蓄", "街头应急储备" + ], + [ + "携帯式医療設備", + "便携式医疗设备" + ], + [ + "淬羽サイレンス", + "淬羽赫默" + ], + [ + "全自動送金機", + "全自动划账器" + ], + [ + "ミュルジス", + "缪尔赛思" + ], + [ + "毒霧タワー制御装置", + "毒雾塔控制" + ], + [ + "うつろう水影", + "流形" + ], + [ + "ホルハイヤ", + "霍尔海雅" + ], + [ + "エネルギー摂動増幅器", + "能量扰动放大器" + ], + [ + "メラナイト", + "玫拉" + ], + [ + "エネルギー摂動増幅器", + "能量扰动放大器" + ], + [ + "解雇者清算プログラム", + "解雇者清债程序" + ], + [ + "夜の灯火", + "夜灯" + ], + [ + "毒ガスタンク", + "爆裂毒气罐" + ], + [ + "エネルギー摂動増幅器", + "能量扰动放大器" + ], + [ + "戦術装備整理箱", + "战术装备整理箱" + ], + [ + "戦術装備整理箱", + "战术装备整理箱" + ], + [ + "戦術装備整理箱", + "战术装备整理箱" + ], + [ + "携帯式医療設備", + "便携式医疗设备" + ], + [ + "携帯式医療設備", + "便携式医疗设备" ] ] }, diff --git a/resource/global/YoStarJP/resource/version.json b/resource/global/YoStarJP/resource/version.json index 752dfdb917..8afa5dd84a 100644 --- a/resource/global/YoStarJP/resource/version.json +++ b/resource/global/YoStarJP/resource/version.json @@ -1,11 +1,11 @@ { "activity": { - "name": "吾れ先導者たらん・復刻", - "time": 1695279600 + "name": "孤星", + "time": 1699340400 }, "gacha": { - "pool": "影に潜みて", - "time": 1698112800 + "pool": "真理の在処", + "time": 1699340400 }, - "last_updated": "2023-11-02 15:48:26.627" + "last_updated": "2023-11-11 14:04:59.744" } diff --git a/resource/global/YoStarKR/resource/item_index.json b/resource/global/YoStarKR/resource/item_index.json index ae16aa6d51..b838479392 100644 --- a/resource/global/YoStarKR/resource/item_index.json +++ b/resource/global/YoStarKR/resource/item_index.json @@ -975,6 +975,14 @@ "sortId": 10019, "usage": "신형 모집 협약에서 정한 일종의 기간 한정 화폐. 일정 수량을 누적하여 지정된 기간 동안 지정된 오퍼레이터를 채용할 수 있다." }, + "LMTGS_COIN_3801": { + "classifyType": "NORMAL", + "description": "헤드헌팅 회사와 장기적이고 안정적인 협력 관계를 유지한 보답. 효과적으로 지출을 조절할 수 있지만, 매번 이와 같은 수단을 써야 하는 것은 아니다.", + "icon": "LMTGS_COIN_3801.png", + "name": "헤드헌팅 데이터 계약", + "sortId": 10020, + "usage": "신형 모집 협약에서 정한 일종의 기간 한정 화폐. 일정 수량을 누적하여 지정된 기간 동안 지정된 오퍼레이터를 채용할 수 있다." + }, "LMTGS_COIN_601": { "classifyType": "NORMAL", "description": "헤드헌팅 회사와 장기적이고 안정적인 협력 관계를 유지한 보답. 효과적으로 지출을 조절할 수 있지만, 매번 이와 같은 수단을 써야 하는 것은 아니다.", @@ -1439,6 +1447,30 @@ "sortId": -10000, "usage": "리오레우스와의 전투를 통해 입수한 소재. 아츠 연금에 안성맞춤이다." }, + "act25side_token_fdrchips": { + "classifyType": "NONE", + "description": "내스티가 각지에 숨긴 데이터 외에도 국가의 지원으로 새로운 데이터가 끊임없이 생성되고 있다. 컬럼비아도 점차 크리스틴의 이 연구의 가치를 깨닫게 되었다.", + "icon": "act25side_token_fdrchips.png", + "name": "비행 데이터 메모리칩", + "sortId": -10000, + "usage": "다양한 고도와 환경에서의 비행 데이터를 기록한 칩으로, 일정 수량을 모으면 특별 안건 연락처에서 필요한 물자를 교환할 수 있다." + }, + "act25side_token_key01": { + "classifyType": "NONE", + "description": "비밀 구역에 들어갈 때 필요한 허가증. 안에 있는 장치가 어딘가 좀 달라 보이는데?", + "icon": "act25side_token_key01.png", + "name": "특수 작전 허가증·α", + "sortId": -10000, + "usage": "비밀 구역에 들어갈 때 필요한 허가증. 안에 있는 장치가 어딘가 좀 달라 보이는데?" + }, + "act25side_token_key02": { + "classifyType": "NONE", + "description": "비밀 구역에 들어갈 때 필요한 허가증. 안에 있는 장치가 어딘가 좀 달라 보이는데?", + "icon": "act25side_token_key02.png", + "name": "특수 작전 허가증·β", + "sortId": -10000, + "usage": "비밀 구역에 들어갈 때 필요한 허가증. 안에 있는 장치가 어딘가 좀 달라 보이는데?" + }, "act2bossrush_milestone_point": { "classifyType": "NONE", "description": "시뮬레이션에서 옳고 그름은 중요하지 않다. 그것들은 단지 실전에서 올바른 선택을 할 수 있도록 도와주는 보조일 뿐이다.", @@ -1967,6 +1999,14 @@ "sortId": 60108, "usage": "각종 보급 물자가 들어있다. 다양한 재료를 랜덤으로 획득할 수 있다." }, + "randomMaterial_rhine2": { + "classifyType": "CONSUME", + "description": "메이랜더 재단에서 제공한 재료 보급 상자. 조사 구역별로 배분되므로 상자에는 각기 다른 자재가 들어가 있다.", + "icon": "randomMaterial_rhine2.png", + "name": "기술 조사 보급", + "sortId": 60109, + "usage": "각종 보급 물자가 들어있다. 다양한 재료를 랜덤으로 획득할 수 있다." + }, "return_credit_token": { "classifyType": "NONE", "description": "중요한 직위에 복귀한 사람들을 위해 특별히 준비한 엠블럼. 업무에 익숙해지는 과정에서 점차 지급된다.", diff --git a/resource/global/YoStarKR/resource/recruitment.json b/resource/global/YoStarKR/resource/recruitment.json index 6007ee2d01..46d31612ab 100644 --- a/resource/global/YoStarKR/resource/recruitment.json +++ b/resource/global/YoStarKR/resource/recruitment.json @@ -598,6 +598,17 @@ "辅助干员" ] }, + { + "id": "char_328_cammou", + "name": "클릭", + "rarity": 4, + "tags": [ + "输出", + "控场", + "远程位", + "术师干员" + ] + }, { "id": "char_155_tiger", "name": "인드라", @@ -1071,6 +1082,18 @@ "术师干员" ] }, + { + "id": "char_294_ayer", + "name": "에이어스카르페", + "rarity": 5, + "tags": [ + "输出", + "群攻", + "近战位", + "资深干员", + "近卫干员" + ] + }, { "id": "char_103_angel", "name": "엑시아", @@ -1325,6 +1348,19 @@ "高级资深干员", "狙击干员" ] + }, + { + "id": "char_358_lisa", + "name": "스즈란", + "rarity": 6, + "tags": [ + "减速", + "支援", + "输出", + "远程位", + "高级资深干员", + "辅助干员" + ] } ], "tags": { diff --git a/resource/global/YoStarKR/resource/tasks.json b/resource/global/YoStarKR/resource/tasks.json index 558acefd15..16facf3509 100644 --- a/resource/global/YoStarKR/resource/tasks.json +++ b/resource/global/YoStarKR/resource/tasks.json @@ -2289,6 +2289,86 @@ [ "길거리 보급품", "街头应急储备" + ], + [ + "중력", + "重力" + ], + [ + "이동식 의료 설비", + "便携式医疗设备" + ], + [ + "사일런스 더 패러디그매틱", + "淬羽赫默" + ], + [ + "자동 계좌 이체기", + "全自动划账器" + ], + [ + "뮤엘시스", + "缪尔赛思" + ], + [ + "독가스 컨트롤러", + "毒雾塔控制" + ], + [ + "유동체", + "流形" + ], + [ + "오올헤약", + "霍尔海雅" + ], + [ + "에너지 교란 증폭기", + "能量扰动放大器" + ], + [ + "멜라나이트", + "玫拉" + ], + [ + "에너지 교란 증폭기", + "能量扰动放大器" + ], + [ + "해고자 채무 탕감 프로그램", + "解雇者清债程序" + ], + [ + "밤의 등불", + "夜灯" + ], + [ + "독가스 탱크", + "爆裂毒气罐" + ], + [ + "에너지 교란 증폭기", + "能量扰动放大器" + ], + [ + "전술 장비 정리함", + "战术装备整理箱" + ], + [ + "전술 장비 정리함", + "战术装备整理箱" + ], + [ + "전술 장비 정리함", + "战术装备整理箱" + ], + [ + "이동식 의료 설비", + "便携式医疗设备" + ], + [ + "이동식 의료 설비", + "便携式医疗设备" ] ] }, diff --git a/resource/global/YoStarKR/resource/version.json b/resource/global/YoStarKR/resource/version.json index 7d0070ae45..91f1484c7f 100644 --- a/resource/global/YoStarKR/resource/version.json +++ b/resource/global/YoStarKR/resource/version.json @@ -1,11 +1,11 @@ { "activity": { - "name": "가이딩 어헤드 (재개방)", - "time": 1695279600 + "name": "론 트레일", + "time": 1699340400 }, "gacha": { - "pool": "그림자 속에 숨어", - "time": 1698112800 + "pool": "진리가 있는 곳", + "time": 1699340400 }, - "last_updated": "2023-11-02 15:48:26.627" + "last_updated": "2023-11-11 14:04:59.744" } diff --git a/resource/global/txwy/resource/item_index.json b/resource/global/txwy/resource/item_index.json index 75bf2ff2bc..1ef5cd6fc1 100644 --- a/resource/global/txwy/resource/item_index.json +++ b/resource/global/txwy/resource/item_index.json @@ -1335,6 +1335,22 @@ "sortId": -10000, "usage": "隨手抄下了塔拉歌謠與傳說的紙頁。收集到一定數量,可以向河谷巡迴商隊換取物資。" }, + "act2bossrush_milestone_point": { + "classifyType": "NONE", + "description": "模擬中的對錯並不重要,它們只是種輔助,幫助你在實戰中做出正確的選擇。", + "icon": "act2bossrush_milestone_point.png", + "name": "試煉經驗", + "sortId": -10000, + "usage": "試煉結束後獲得的經驗,可以提升試煉等級。" + }, + "act2bossrush_token_relic": { + "classifyType": "NONE", + "description": "未解碼的數據方塊。永遠記住,資訊轉換往往伴隨著不可避免的損耗。善用資訊儲存工具,但別依賴它們。", + "icon": "act2bossrush_token_relic.png", + "name": "數據黑盒", + "sortId": -10000, + "usage": "用於對遏制單元進行數據迭代。" + }, "act4d0_intelligencepoint": { "classifyType": "NONE", "description": "無論是任務回饋、戰利品收集、材料研究、論文交流還是戰場清掃,羅德島那高效的情報系統會不斷地運作,從種種行動中收集龐雜的資訊,並分別計算歸納以得出各類結論;作為情報黑箱外的人,看看已經量化的數值就好。", diff --git a/resource/global/txwy/resource/version.json b/resource/global/txwy/resource/version.json index fb664f2a91..d9a159af2a 100644 --- a/resource/global/txwy/resource/version.json +++ b/resource/global/txwy/resource/version.json @@ -1,11 +1,11 @@ { "activity": { - "name": "照我以火", - "time": 1697695200 + "name": "引航者試煉", + "time": 1699948800 }, "gacha": { "pool": "枯焰生花", "time": 1697695200 }, - "last_updated": "2023-10-22 11:07:40.186" + "last_updated": "2023-11-11 14:04:59.744" } diff --git a/resource/roguelike/Sami/autopilot/没有尽头的路.json b/resource/roguelike/Sami/autopilot/没有尽头的路.json index 0e9e8b68e6..7a09d508e4 100644 --- a/resource/roguelike/Sami/autopilot/没有尽头的路.json +++ b/resource/roguelike/Sami/autopilot/没有尽头的路.json @@ -85,7 +85,8 @@ "groups": [ "地面阻挡", "回费", - "处决者" + "处决者", + "其他地面" ], "location": [ 3, @@ -95,9 +96,7 @@ }, { "groups": [ - "处决者", - "地面阻挡", - "其他地面" + "处决者" ], "location": [ 5, diff --git a/resource/stages.json b/resource/stages.json index bbabe5ccec..446ba5f736 100644 --- a/resource/stages.json +++ b/resource/stages.json @@ -6503,6 +6503,41 @@ ], "stageId": "act19side_08_perm" }, + { + "apCost": 9, + "code": "CW-1", + "dropInfos": [ + { + "dropType": "NORMAL_DROP", + "itemId": "30011" + }, + { + "dropType": "NORMAL_DROP", + "itemId": "30021" + }, + { + "dropType": "NORMAL_DROP", + "itemId": "30031" + }, + { + "dropType": "NORMAL_DROP", + "itemId": "30041" + }, + { + "dropType": "NORMAL_DROP", + "itemId": "30051" + }, + { + "dropType": "NORMAL_DROP", + "itemId": "30061" + }, + { + "dropType": "FURNITURE", + "itemId": "furni" + } + ], + "stageId": "act25side_01" + }, { "apCost": 9, "code": "CW-1", @@ -6546,6 +6581,41 @@ ], "stageId": "act25side_01_perm" }, + { + "apCost": 9, + "code": "CW-2", + "dropInfos": [ + { + "dropType": "NORMAL_DROP", + "itemId": "30011" + }, + { + "dropType": "NORMAL_DROP", + "itemId": "30021" + }, + { + "dropType": "NORMAL_DROP", + "itemId": "30031" + }, + { + "dropType": "NORMAL_DROP", + "itemId": "30041" + }, + { + "dropType": "NORMAL_DROP", + "itemId": "30051" + }, + { + "dropType": "NORMAL_DROP", + "itemId": "30061" + }, + { + "dropType": "FURNITURE", + "itemId": "furni" + } + ], + "stageId": "act25side_02" + }, { "apCost": 9, "code": "CW-2", @@ -6589,6 +6659,41 @@ ], "stageId": "act25side_02_perm" }, + { + "apCost": 9, + "code": "CW-3", + "dropInfos": [ + { + "dropType": "NORMAL_DROP", + "itemId": "30011" + }, + { + "dropType": "NORMAL_DROP", + "itemId": "30021" + }, + { + "dropType": "NORMAL_DROP", + "itemId": "30031" + }, + { + "dropType": "NORMAL_DROP", + "itemId": "30041" + }, + { + "dropType": "NORMAL_DROP", + "itemId": "30051" + }, + { + "dropType": "NORMAL_DROP", + "itemId": "30061" + }, + { + "dropType": "FURNITURE", + "itemId": "furni" + } + ], + "stageId": "act25side_03" + }, { "apCost": 9, "code": "CW-3", @@ -6632,6 +6737,25 @@ ], "stageId": "act25side_03_perm" }, + { + "apCost": 12, + "code": "CW-4", + "dropInfos": [ + { + "dropType": "NORMAL_DROP", + "itemId": "30032" + }, + { + "dropType": "NORMAL_DROP", + "itemId": "30062" + }, + { + "dropType": "FURNITURE", + "itemId": "furni" + } + ], + "stageId": "act25side_04" + }, { "apCost": 12, "code": "CW-4", @@ -6671,6 +6795,25 @@ ], "stageId": "act25side_04_perm" }, + { + "apCost": 12, + "code": "CW-5", + "dropInfos": [ + { + "dropType": "NORMAL_DROP", + "itemId": "30042" + }, + { + "dropType": "NORMAL_DROP", + "itemId": "30052" + }, + { + "dropType": "FURNITURE", + "itemId": "furni" + } + ], + "stageId": "act25side_05" + }, { "apCost": 12, "code": "CW-5", @@ -6714,6 +6857,25 @@ ], "stageId": "act25side_05_perm" }, + { + "apCost": 15, + "code": "CW-6", + "dropInfos": [ + { + "dropType": "NORMAL_DROP", + "itemId": "30012" + }, + { + "dropType": "NORMAL_DROP", + "itemId": "30022" + }, + { + "dropType": "FURNITURE", + "itemId": "furni" + } + ], + "stageId": "act25side_06" + }, { "apCost": 12, "code": "CW-6", @@ -6753,6 +6915,25 @@ ], "stageId": "act25side_06_perm" }, + { + "apCost": 15, + "code": "CW-7", + "dropInfos": [ + { + "dropType": "NORMAL_DROP", + "itemId": "30042" + }, + { + "dropType": "NORMAL_DROP", + "itemId": "30062" + }, + { + "dropType": "FURNITURE", + "itemId": "furni" + } + ], + "stageId": "act25side_07" + }, { "apCost": 21, "code": "CW-7", @@ -6800,6 +6981,21 @@ ], "stageId": "act25side_07_perm" }, + { + "apCost": 21, + "code": "CW-8", + "dropInfos": [ + { + "dropType": "NORMAL_DROP", + "itemId": "30053" + }, + { + "dropType": "FURNITURE", + "itemId": "furni" + } + ], + "stageId": "act25side_08" + }, { "apCost": 21, "code": "CW-8", @@ -6855,6 +7051,21 @@ ], "stageId": "act25side_08_perm" }, + { + "apCost": 21, + "code": "CW-9", + "dropInfos": [ + { + "dropType": "NORMAL_DROP", + "itemId": "31043" + }, + { + "dropType": "FURNITURE", + "itemId": "furni" + } + ], + "stageId": "act25side_09" + }, { "apCost": 21, "code": "CW-9", @@ -6918,6 +7129,21 @@ ], "stageId": "act25side_09_perm" }, + { + "apCost": 21, + "code": "CW-10", + "dropInfos": [ + { + "dropType": "NORMAL_DROP", + "itemId": "31023" + }, + { + "dropType": "FURNITURE", + "itemId": "furni" + } + ], + "stageId": "act25side_10" + }, { "apCost": 21, "code": "CW-10", @@ -7751,17 +7977,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_00-01" @@ -7802,17 +8020,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_00-02" @@ -7853,17 +8063,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_00-03" @@ -7904,17 +8106,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_00-04" @@ -7955,17 +8149,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_00-05" @@ -8006,17 +8192,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_00-06" @@ -8057,17 +8235,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_00-07" @@ -8108,17 +8278,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_00-08" @@ -8159,17 +8321,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_00-09" @@ -8210,17 +8364,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_00-10" @@ -8261,17 +8407,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_00-11" @@ -8312,17 +8450,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_01-01" @@ -8374,17 +8504,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_01-03" @@ -8425,17 +8547,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_01-04" @@ -8476,17 +8590,9 @@ "dropType": "NORMAL_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_01-05" @@ -8527,17 +8633,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_01-06" @@ -8582,17 +8680,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_01-07" @@ -8637,17 +8727,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_01-08" @@ -8692,17 +8774,9 @@ "dropType": "NORMAL_DROP", "itemId": "3112" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_01-09" @@ -8747,17 +8821,9 @@ "dropType": "NORMAL_DROP", "itemId": "3301" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_01-10" @@ -8813,17 +8879,9 @@ "dropType": "NORMAL_DROP", "itemId": "30062" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_01-12" @@ -8868,17 +8926,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_02-01" @@ -8923,17 +8973,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_02-02" @@ -8974,17 +9016,9 @@ "dropType": "EXTRA_DROP", "itemId": "30062" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_02-03" @@ -9029,17 +9063,9 @@ "dropType": "EXTRA_DROP", "itemId": "30062" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_02-04" @@ -9084,17 +9110,9 @@ "dropType": "EXTRA_DROP", "itemId": "30052" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_02-05" @@ -9139,17 +9157,9 @@ "dropType": "EXTRA_DROP", "itemId": "30062" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_02-06" @@ -9190,17 +9200,9 @@ "dropType": "EXTRA_DROP", "itemId": "30052" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_02-07" @@ -9245,17 +9247,9 @@ "dropType": "EXTRA_DROP", "itemId": "30052" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_02-08" @@ -9300,17 +9294,9 @@ "dropType": "NORMAL_DROP", "itemId": "30073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_02-09" @@ -9355,17 +9341,9 @@ "dropType": "NORMAL_DROP", "itemId": "30103" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_02-10" @@ -9410,17 +9388,9 @@ "dropType": "NORMAL_DROP", "itemId": "30053" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_03-01" @@ -9461,17 +9431,9 @@ "dropType": "NORMAL_DROP", "itemId": "30083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_03-02" @@ -9512,17 +9474,9 @@ "dropType": "NORMAL_DROP", "itemId": "30093" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_03-03" @@ -9563,17 +9517,9 @@ "dropType": "NORMAL_DROP", "itemId": "30063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_03-04" @@ -9614,17 +9560,9 @@ "dropType": "EXTRA_DROP", "itemId": "30062" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_03-05" @@ -9665,17 +9603,9 @@ "dropType": "EXTRA_DROP", "itemId": "30052" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_03-06" @@ -9716,17 +9646,9 @@ "dropType": "NORMAL_DROP", "itemId": "30052" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_03-07" @@ -9783,17 +9705,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_03-08" @@ -9846,17 +9760,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_04-01" @@ -9917,17 +9823,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_04-02" @@ -9984,17 +9882,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_04-03" @@ -10051,17 +9941,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_04-04" @@ -10118,17 +10000,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_04-05" @@ -10185,17 +10059,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_04-06" @@ -10256,17 +10122,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_04-07" @@ -10327,17 +10185,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_04-08" @@ -10398,17 +10248,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_04-09" @@ -10461,17 +10303,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_04-10" @@ -10524,17 +10358,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_05-01" @@ -10595,17 +10421,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_05-02" @@ -10622,17 +10440,9 @@ "dropType": "NORMAL_DROP", "itemId": "30033" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_05-03" @@ -10689,17 +10499,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_05-04" @@ -10760,17 +10562,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_05-05" @@ -10827,17 +10621,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_05-06" @@ -10854,17 +10640,9 @@ "dropType": "NORMAL_DROP", "itemId": "30093" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_05-07" @@ -10921,17 +10699,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_05-08" @@ -10988,17 +10758,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_05-09" @@ -11015,17 +10777,9 @@ "dropType": "NORMAL_DROP", "itemId": "30063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_05-10" @@ -11038,17 +10792,9 @@ "dropType": "NORMAL_DROP", "itemId": "30042" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_06-01" @@ -11109,17 +10855,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_06-02" @@ -11176,17 +10914,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_06-03" @@ -11243,17 +10973,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_06-04" @@ -11270,17 +10992,9 @@ "dropType": "NORMAL_DROP", "itemId": "30032" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_06-05" @@ -11352,17 +11066,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_06-07" @@ -11379,17 +11085,9 @@ "dropType": "NORMAL_DROP", "itemId": "30032" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_06-08" @@ -11446,17 +11144,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_06-09" @@ -11473,17 +11163,9 @@ "dropType": "NORMAL_DROP", "itemId": "30073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_06-10" @@ -11544,17 +11226,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_06-11" @@ -11611,17 +11285,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_06-12" @@ -11678,17 +11344,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_06-13" @@ -11705,17 +11363,9 @@ "dropType": "NORMAL_DROP", "itemId": "30063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_06-14" @@ -11787,17 +11437,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_07-01" @@ -11810,17 +11452,9 @@ "dropType": "NORMAL_DROP", "itemId": "30022" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_07-02" @@ -11881,17 +11515,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_07-03" @@ -11952,17 +11578,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_07-04" @@ -11979,17 +11597,9 @@ "dropType": "NORMAL_DROP", "itemId": "30022" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_07-05" @@ -12054,17 +11664,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_07-06" @@ -12129,17 +11731,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_07-07" @@ -12192,17 +11786,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_07-08" @@ -12219,17 +11805,9 @@ "dropType": "NORMAL_DROP", "itemId": "30042" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_07-09" @@ -12246,17 +11824,9 @@ "dropType": "NORMAL_DROP", "itemId": "30052" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_07-10" @@ -12313,17 +11883,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_07-11" @@ -12376,17 +11938,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_07-12" @@ -12447,17 +12001,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_07-13" @@ -12474,17 +12020,9 @@ "dropType": "NORMAL_DROP", "itemId": "30083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_07-14" @@ -12549,17 +12087,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_07-15" @@ -12576,17 +12106,9 @@ "dropType": "NORMAL_DROP", "itemId": "30052" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_07-16" @@ -12639,17 +12161,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_08-01" @@ -12714,17 +12228,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_08-02" @@ -12785,17 +12291,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_08-03" @@ -12808,17 +12306,9 @@ "dropType": "NORMAL_DROP", "itemId": "30032" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_08-04" @@ -12835,17 +12325,9 @@ "dropType": "NORMAL_DROP", "itemId": "30022" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_08-05" @@ -12902,17 +12384,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_08-06" @@ -12973,17 +12447,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_08-07" @@ -13000,17 +12466,9 @@ "dropType": "NORMAL_DROP", "itemId": "31013" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_08-08" @@ -13027,17 +12485,9 @@ "dropType": "NORMAL_DROP", "itemId": "30062" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_08-09" @@ -13090,17 +12540,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_08-10" @@ -13161,17 +12603,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_08-11" @@ -13188,17 +12622,9 @@ "dropType": "NORMAL_DROP", "itemId": "30042" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_08-12" @@ -13255,17 +12681,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_08-13" @@ -13318,17 +12736,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_08-14" @@ -13404,17 +12814,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_08-16" @@ -13475,17 +12877,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_08-17" @@ -13538,17 +12932,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_09-01" @@ -13561,17 +12947,9 @@ "dropType": "NORMAL_DROP", "itemId": "30062" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_09-02" @@ -13628,17 +13006,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_09-03" @@ -13699,17 +13069,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_09-04" @@ -13766,17 +13128,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_09-05" @@ -13833,17 +13187,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_09-06" @@ -13900,17 +13246,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_09-07" @@ -13971,17 +13309,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_09-08" @@ -14038,17 +13368,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_09-09" @@ -14109,17 +13431,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_09-10" @@ -14176,17 +13490,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_09-11" @@ -14239,17 +13545,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_09-12" @@ -14310,17 +13608,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_09-13" @@ -14337,17 +13627,9 @@ "dropType": "NORMAL_DROP", "itemId": "30093" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_09-14" @@ -14408,17 +13690,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_09-15" @@ -14483,17 +13757,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_09-16" @@ -14550,17 +13816,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_09-17" @@ -14613,17 +13871,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_10-01" @@ -14688,17 +13938,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_10-02" @@ -14715,17 +13957,9 @@ "dropType": "NORMAL_DROP", "itemId": "30062" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_10-03" @@ -14786,17 +14020,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_10-04" @@ -14845,17 +14071,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_10-05" @@ -14912,17 +14130,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_10-06" @@ -14979,17 +14189,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_10-07" @@ -15046,17 +14248,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_10-08" @@ -15113,17 +14307,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_10-09" @@ -15184,17 +14370,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_10-10" @@ -15255,17 +14433,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_10-11" @@ -15330,17 +14500,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_10-12" @@ -15405,17 +14567,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_10-13" @@ -15432,17 +14586,9 @@ "dropType": "NORMAL_DROP", "itemId": "30083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_10-14" @@ -15495,17 +14641,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_10-15" @@ -15558,17 +14696,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_11-01" @@ -15585,17 +14715,9 @@ "dropType": "NORMAL_DROP", "itemId": "31023" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_11-02" @@ -15656,17 +14778,9 @@ "dropType": "SPECIAL_DROP", "itemId": "31064" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_11-03" @@ -15727,17 +14841,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_11-04" @@ -15754,17 +14860,9 @@ "dropType": "NORMAL_DROP", "itemId": "30042" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_11-05" @@ -15813,17 +14911,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_11-06" @@ -15888,17 +14978,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_11-07" @@ -15955,17 +15037,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_11-08" @@ -16030,17 +15104,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_11-09" @@ -16105,17 +15171,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_11-10" @@ -16168,17 +15226,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_11-11" @@ -16239,17 +15289,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_11-12" @@ -16306,17 +15348,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_11-13" @@ -16377,17 +15411,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_11-14" @@ -16440,17 +15466,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_11-16" @@ -16515,17 +15533,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_11-18" @@ -16574,17 +15584,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_12-01" @@ -16649,17 +15651,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_12-02" @@ -16716,17 +15710,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_12-03" @@ -16779,17 +15765,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_12-04" @@ -16854,17 +15832,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_12-05" @@ -16921,17 +15891,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_12-06" @@ -16996,17 +15958,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_12-07" @@ -17063,17 +16017,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_12-08" @@ -17134,17 +16080,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_12-09" @@ -17201,17 +16139,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_12-10" @@ -17276,17 +16206,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_12-11" @@ -17351,17 +16273,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_12-12" @@ -17414,17 +16328,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_12-13" @@ -17481,17 +16387,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_12-15" @@ -17548,17 +16446,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_12-16" @@ -17623,17 +16513,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_12-17" @@ -17694,17 +16576,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "main_12-18" @@ -18906,17 +17780,9 @@ "dropType": "NORMAL_DROP", "itemId": "3261" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "pro_a_1" @@ -18933,17 +17799,9 @@ "dropType": "NORMAL_DROP", "itemId": "3262" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "pro_a_2" @@ -18960,17 +17818,9 @@ "dropType": "NORMAL_DROP", "itemId": "3251" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "pro_b_1" @@ -18987,17 +17837,9 @@ "dropType": "NORMAL_DROP", "itemId": "3252" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "pro_b_2" @@ -19014,17 +17856,9 @@ "dropType": "NORMAL_DROP", "itemId": "3271" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "pro_c_1" @@ -19041,17 +17875,9 @@ "dropType": "NORMAL_DROP", "itemId": "3272" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "pro_c_2" @@ -19068,17 +17894,9 @@ "dropType": "NORMAL_DROP", "itemId": "3281" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "pro_d_1" @@ -19095,17 +17913,9 @@ "dropType": "NORMAL_DROP", "itemId": "3282" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "pro_d_2" @@ -21149,17 +19959,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_02-01" @@ -21200,17 +20002,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_02-02" @@ -21251,17 +20045,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_02-03" @@ -21302,17 +20088,9 @@ "dropType": "EXTRA_DROP", "itemId": "30061" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_02-04" @@ -21353,17 +20131,9 @@ "dropType": "EXTRA_DROP", "itemId": "30062" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_02-05" @@ -21404,17 +20174,9 @@ "dropType": "EXTRA_DROP", "itemId": "30052" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_02-06" @@ -21455,17 +20217,9 @@ "dropType": "EXTRA_DROP", "itemId": "30062" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_02-07" @@ -21506,17 +20260,9 @@ "dropType": "EXTRA_DROP", "itemId": "30052" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_02-08" @@ -21557,17 +20303,9 @@ "dropType": "EXTRA_DROP", "itemId": "30052" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_02-09" @@ -21612,17 +20350,9 @@ "dropType": "EXTRA_DROP", "itemId": "30062" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_02-10" @@ -21663,17 +20393,9 @@ "dropType": "EXTRA_DROP", "itemId": "30052" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_02-11" @@ -21710,17 +20432,9 @@ "dropType": "EXTRA_DROP", "itemId": "30062" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_02-12" @@ -21761,17 +20475,9 @@ "dropType": "EXTRA_DROP", "itemId": "30052" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_03-1-1" @@ -21808,17 +20514,9 @@ "dropType": "EXTRA_DROP", "itemId": "30062" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_03-1-2" @@ -21859,17 +20557,9 @@ "dropType": "EXTRA_DROP", "itemId": "30052" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_03-2-1" @@ -21906,17 +20596,9 @@ "dropType": "NORMAL_DROP", "itemId": "30062" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_03-2-2" @@ -21957,17 +20639,9 @@ "dropType": "EXTRA_DROP", "itemId": "30052" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_03-2-3" @@ -22008,17 +20682,9 @@ "dropType": "NORMAL_DROP", "itemId": "31023" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_03-3-1" @@ -22035,17 +20701,9 @@ "dropType": "NORMAL_DROP", "itemId": "31033" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_03-3-2" @@ -22106,17 +20764,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_04-1-1" @@ -22169,17 +20819,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_04-1-2" @@ -22236,17 +20878,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_04-1-3" @@ -22303,17 +20937,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_04-2-1" @@ -22366,17 +20992,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_04-2-2" @@ -22433,17 +21051,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_04-2-3" @@ -22500,17 +21110,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_04-3-1" @@ -22563,17 +21165,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_04-3-2" @@ -22630,17 +21224,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_04-3-3" @@ -22693,17 +21279,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_04-4-1" @@ -22720,17 +21298,9 @@ "dropType": "NORMAL_DROP", "itemId": "30012" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_05-1-1" @@ -22787,17 +21357,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_05-1-2" @@ -22810,17 +21372,9 @@ "dropType": "NORMAL_DROP", "itemId": "30032" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_05-2-1" @@ -22837,17 +21391,9 @@ "dropType": "NORMAL_DROP", "itemId": "30022" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_05-2-2" @@ -22860,17 +21406,9 @@ "dropType": "NORMAL_DROP", "itemId": "30062" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_05-3-1" @@ -22927,17 +21465,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_05-3-2" @@ -22998,17 +21528,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_05-4-1" @@ -23069,17 +21591,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_05-4-2" @@ -23144,17 +21658,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_05-4-3" @@ -23211,17 +21717,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_06-1-1" @@ -23234,17 +21732,9 @@ "dropType": "NORMAL_DROP", "itemId": "30012" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_06-1-2" @@ -23261,17 +21751,9 @@ "dropType": "NORMAL_DROP", "itemId": "30052" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_06-2-1" @@ -23324,17 +21806,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_06-2-2" @@ -23387,17 +21861,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_07-1-1" @@ -23410,17 +21876,9 @@ "dropType": "NORMAL_DROP", "itemId": "30052" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_07-1-2" @@ -23485,17 +21943,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_09-1-1" @@ -23552,17 +22002,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "sub_09-1-2" @@ -23615,17 +22057,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_10-01" @@ -23690,17 +22124,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_10-02" @@ -23717,17 +22143,9 @@ "dropType": "NORMAL_DROP", "itemId": "30062" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_10-03" @@ -23788,17 +22206,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_10-04" @@ -23847,17 +22257,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_10-05" @@ -23914,17 +22316,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_10-06" @@ -23981,17 +22375,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_10-07" @@ -24048,17 +22434,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_10-08" @@ -24115,17 +22493,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_10-09" @@ -24186,17 +22556,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_10-10" @@ -24257,17 +22619,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_10-11" @@ -24332,17 +22686,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_10-12" @@ -24407,17 +22753,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_10-13" @@ -24434,17 +22772,9 @@ "dropType": "NORMAL_DROP", "itemId": "30083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_10-14" @@ -24497,17 +22827,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_10-15" @@ -24560,17 +22882,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_11-01" @@ -24587,17 +22901,9 @@ "dropType": "NORMAL_DROP", "itemId": "31023" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_11-02" @@ -24658,17 +22964,9 @@ "dropType": "SPECIAL_DROP", "itemId": "31064" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_11-03" @@ -24729,17 +23027,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_11-04" @@ -24756,17 +23046,9 @@ "dropType": "NORMAL_DROP", "itemId": "30042" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_11-05" @@ -24815,17 +23097,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_11-06" @@ -24890,17 +23164,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_11-07" @@ -24957,17 +23223,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_11-08" @@ -25032,17 +23290,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_11-09" @@ -25107,17 +23357,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_11-10" @@ -25170,17 +23412,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_11-11" @@ -25241,17 +23475,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_11-12" @@ -25308,17 +23534,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_11-13" @@ -25379,17 +23597,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_11-14" @@ -25442,17 +23652,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_11-16" @@ -25517,17 +23719,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_11-18" @@ -25576,17 +23770,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_12-01" @@ -25651,17 +23837,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_12-02" @@ -25718,17 +23896,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_12-03" @@ -25781,17 +23951,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_12-04" @@ -25856,17 +24018,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_12-05" @@ -25923,17 +24077,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_12-06" @@ -25998,17 +24144,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_12-07" @@ -26065,17 +24203,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_12-08" @@ -26136,17 +24266,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_12-09" @@ -26203,17 +24325,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_12-10" @@ -26278,17 +24392,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_12-11" @@ -26353,17 +24459,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_12-12" @@ -26416,17 +24514,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_12-13" @@ -26483,17 +24573,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_12-15" @@ -26550,17 +24632,9 @@ "dropType": "EXTRA_DROP", "itemId": "31073" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_12-16" @@ -26625,17 +24699,9 @@ "dropType": "EXTRA_DROP", "itemId": "31063" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_12-17" @@ -26696,17 +24762,9 @@ "dropType": "EXTRA_DROP", "itemId": "31083" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "tough_12-18" @@ -27904,17 +25962,9 @@ "dropType": "NORMAL_DROP", "itemId": "3112" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_armor_1" @@ -27927,17 +25977,9 @@ "dropType": "NORMAL_DROP", "itemId": "3112" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_armor_2" @@ -27954,17 +25996,9 @@ "dropType": "NORMAL_DROP", "itemId": "3113" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_armor_3" @@ -27981,17 +26015,9 @@ "dropType": "NORMAL_DROP", "itemId": "3114" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_armor_4" @@ -28008,17 +26034,9 @@ "dropType": "NORMAL_DROP", "itemId": "3114" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_armor_5" @@ -28031,17 +26049,9 @@ "dropType": "NORMAL_DROP", "itemId": "3301" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_fly_1" @@ -28054,17 +26064,9 @@ "dropType": "NORMAL_DROP", "itemId": "3301" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_fly_2" @@ -28081,17 +26083,9 @@ "dropType": "NORMAL_DROP", "itemId": "3302" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_fly_3" @@ -28112,17 +26106,9 @@ "dropType": "NORMAL_DROP", "itemId": "3303" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_fly_4" @@ -28143,17 +26129,9 @@ "dropType": "NORMAL_DROP", "itemId": "3303" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_fly_5" @@ -28170,17 +26148,9 @@ "dropType": "NORMAL_DROP", "itemId": "2002" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_kc_1" @@ -28197,17 +26167,9 @@ "dropType": "NORMAL_DROP", "itemId": "2002" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_kc_2" @@ -28228,17 +26190,9 @@ "dropType": "NORMAL_DROP", "itemId": "2003" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_kc_3" @@ -28263,17 +26217,9 @@ "dropType": "NORMAL_DROP", "itemId": "2004" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_kc_4" @@ -28294,17 +26240,9 @@ "dropType": "NORMAL_DROP", "itemId": "2004" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_kc_5" @@ -28321,17 +26259,9 @@ "dropType": "NORMAL_DROP", "itemId": "2004" }, - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_kc_6" @@ -28340,17 +26270,9 @@ "apCost": 10, "code": "CE-1", "dropInfos": [ - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_melee_1" @@ -28359,17 +26281,9 @@ "apCost": 15, "code": "CE-2", "dropInfos": [ - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_melee_2" @@ -28378,17 +26292,9 @@ "apCost": 20, "code": "CE-3", "dropInfos": [ - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_melee_3" @@ -28397,17 +26303,9 @@ "apCost": 25, "code": "CE-4", "dropInfos": [ - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_melee_4" @@ -28416,17 +26314,9 @@ "apCost": 30, "code": "CE-5", "dropInfos": [ - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_melee_5" @@ -28435,17 +26325,9 @@ "apCost": 36, "code": "CE-6", "dropInfos": [ - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_melee_6" @@ -28454,17 +26336,9 @@ "apCost": 10, "code": "AP-1", "dropInfos": [ - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_toxic_1" @@ -28473,17 +26347,9 @@ "apCost": 15, "code": "AP-2", "dropInfos": [ - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_toxic_2" @@ -28492,17 +26358,9 @@ "apCost": 20, "code": "AP-3", "dropInfos": [ - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_toxic_3" @@ -28511,17 +26369,9 @@ "apCost": 25, "code": "AP-4", "dropInfos": [ - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_toxic_4" @@ -28530,17 +26380,9 @@ "apCost": 30, "code": "AP-5", "dropInfos": [ - { - "dropType": "SPECIAL_DROP", - "itemId": "ap_supply_lt_010" - }, { "dropType": "FURNITURE", "itemId": "furni" - }, - { - "dropType": "SPECIAL_DROP", - "itemId": "randomMaterial_8" } ], "stageId": "wk_toxic_5" diff --git a/resource/tasks.json b/resource/tasks.json index fcf6b9da39..9b99c20d49 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -3948,7 +3948,43 @@ "StartButton1" ] }, + "FightSeries-Default-1": { + "action": "DoNothing", + "roi": [ + 945, + 580, + 100, + 50 + ] + }, + "FightSeries-Icon": { + "action": "ClickSelf", + "roi": [ + 945, + 580, + 100, + 50 + ], + "next": [ + "FightSeries-List-1" + ] + }, + "FightSeries-List": { + "template": "empty.png", + "action": "ClickSelf", + "roi": [ + 950, + 180, + 100, + 400 + ] + }, + "FightSeries-List-1": { + "baseTask": "FightSeries-List", + "template": "FightSeries-List-1.png" + }, "StartButton1": { + "doc": "绑定插件调整连战次数", "algorithm": "OcrDetect", "action": "ClickSelf", "text": [ @@ -4285,12 +4321,44 @@ 150 ], "cache": false, - "postDelay": 1000, + "postDelay": 500, + "reduceOtherTimes": [ + "MedicineNotConfirmed*5" + ], + "next": [ + "MedicineConfirm@LoadingText", + "MedicineConfirmed", + "MedicineNotConfirmed" + ] + }, + "MedicineConfirm@LoadingText": { "next": [ "#self", - "Stop" + "MedicineConfirmed" ] }, + "MedicineNotConfirmed": { + "baseTask": "MedicineConfirm", + "template": "MedicineConfirm.png", + "action": "DoNothing", + "reduceOtherTimes": [], + "maxTimes": 5, + "postDelay": 1000, + "exceededNext": [ + "MedicineNotConfirmed@LoadingText", + "MedicineConfirmed", + "MedicineConfirm" + ] + }, + "MedicineConfirmed": { + "baseTask": "StartButton1", + "action": "Stop", + "preDelay": 0, + "postDelay": 0, + "exceededNext": [], + "reduceOtherTimes": [], + "next": [] + }, "MedicineReduceIcon": { "preDelay": 500, "roi": [ @@ -7759,6 +7827,13 @@ "action": "ClickSelf", "postDelay": 1000 }, + "BattleStartPre@UseMedicine": { + "doc": "绑定MedicineCounter来使用理智药", + "template": "UseMedicine.png", + "next": [ + "BattleStartPre" + ] + }, "BattleStart": { "Doc": "base_task", "template": "empty.png", @@ -8147,12 +8222,14 @@ "Doc": "pre 是将干员滑动到场上的 duration 系数;post 是设置干员朝向滑动的 duration", "specialParams": [ 400, + 100, 2, 0, 100 ], "specialParamsDoc": [ "设置朝向时的滑动距离", + "补偿距离上限", "滑动初速度(平均速度是固定的,初速度快末速度慢相当于一直减速)", "滑动末速度", "将干员滑动到场上的 最小滑动 duration" diff --git a/resource/template/FightSeries-Default-1.png b/resource/template/FightSeries-Default-1.png new file mode 100644 index 0000000000..1ec13473bf Binary files /dev/null and b/resource/template/FightSeries-Default-1.png differ diff --git a/resource/template/FightSeries-Icon.png b/resource/template/FightSeries-Icon.png new file mode 100644 index 0000000000..d4f84e6581 Binary files /dev/null and b/resource/template/FightSeries-Icon.png differ diff --git a/resource/template/FightSeries-List-1.png b/resource/template/FightSeries-List-1.png new file mode 100644 index 0000000000..33c73cfa56 Binary files /dev/null and b/resource/template/FightSeries-List-1.png differ diff --git a/resource/version.json b/resource/version.json index 5c71800db7..103ce5008f 100644 --- a/resource/version.json +++ b/resource/version.json @@ -7,5 +7,5 @@ "pool": "宿愿", "time": 1698811200 }, - "last_updated": "2023-11-02 15:48:26.627" + "last_updated": "2023-11-11 14:04:59.744" } diff --git a/src/MaaCore/MaaCore.vcxproj b/src/MaaCore/MaaCore.vcxproj index c746c2a24c..1a5f269753 100644 --- a/src/MaaCore/MaaCore.vcxproj +++ b/src/MaaCore/MaaCore.vcxproj @@ -69,6 +69,7 @@ + @@ -89,6 +90,7 @@ + @@ -241,6 +243,7 @@ + @@ -260,6 +263,7 @@ + diff --git a/src/MaaCore/MaaCore.vcxproj.filters b/src/MaaCore/MaaCore.vcxproj.filters index 74e958498e..49e684e7f7 100644 --- a/src/MaaCore/MaaCore.vcxproj.filters +++ b/src/MaaCore/MaaCore.vcxproj.filters @@ -558,9 +558,6 @@ Source\Controller - - Source\Controller - Source\Controller @@ -672,6 +669,12 @@ Source\Task\Miscellaneous + + Source\Task\Fight + + + Source\Task\Roguelike + @@ -1118,5 +1121,12 @@ Source\Task\Fight + + + Source\Task\Fight + + + Source\Task\Roguelike + - + \ No newline at end of file diff --git a/src/MaaCore/Status.h b/src/MaaCore/Status.h index db76d5f276..5feb5f9f52 100644 --- a/src/MaaCore/Status.h +++ b/src/MaaCore/Status.h @@ -41,20 +41,9 @@ namespace asst static inline const std::string RoguelikeCharElitePrefix = "RoguelikeElite-"; static inline const std::string RoguelikeCharLevelPrefix = "RoguelikeLevel-"; - static inline const std::string RoguelikeCharRarityPrefix = "RoguelikeRarity-"; static inline const std::string RoguelikeCharOverview = "RoguelikeOverview"; - static inline const std::string RoguelikeCoreChar = "RoguelikeCoreChar"; - static inline const std::string RoguelikeStartWithEliteTwo = "RoguelikeStartWithEliteTwo"; static inline const std::string RoguelikeUseSupport = "RoguelikeUseSupport"; static inline const std::string RoguelikeUseNonfriendSupport = "RoguelikeUseNonfriendSupport"; - static inline const std::string RoguelikeTraderNoLongerBuy = "RoguelikeNoLongerBuy"; - static inline const std::string RoguelikeTeamFullWithoutRookie = "RoguelikeTeamFullWithoutRookie"; - static inline const std::string RoguelikeRecruitmentStartsComplete = "RoguelikeRecruitmentStartsComplete"; - static inline const std::string RoguelikeRecruitmentTeamComplete = "RoguelikeRecruitmentTeamComplete"; - static inline const std::string RoguelikeRecruitmentCount = "RoguelikeRecruitmentCount"; - static inline const std::string RoguelikeMode = "RoguelikeMode"; - static inline const std::string RoguelikeDifficulty = "RoguelikeDifficulty"; - static inline const std::string RoguelikeFoldartalOverview = "RoguelikeFoldartalOverview"; static inline const std::string RoguelikeFoldartalFloor = "RoguelikeFoldartalFloor"; diff --git a/src/MaaCore/Task/BattleHelper.cpp b/src/MaaCore/Task/BattleHelper.cpp index d848043e64..235bd69964 100644 --- a/src/MaaCore/Task/BattleHelper.cpp +++ b/src/MaaCore/Task/BattleHelper.cpp @@ -287,7 +287,7 @@ bool asst::BattleHelper::deploy_oper(const std::string& name, const Point& loc, Log.error("No loc", loc); return false; } - const Point& target_point = target_iter->second.pos; + Point target_point = target_iter->second.pos; int dist = static_cast( Point::distance(target_point, { oper_rect.x + oper_rect.width / 2, oper_rect.y + oper_rect.height / 2 })); @@ -295,32 +295,38 @@ bool asst::BattleHelper::deploy_oper(const std::string& name, const Point& loc, // 1000 是随便取的一个系数,把整数的 pre_delay 转成小数用的 int duration = static_cast(dist / 1000.0 * swipe_oper_task_ptr->pre_delay); // 时间太短了的压根放不上去,故意加长一点 - if (int min_duration = swipe_oper_task_ptr->special_params.at(3); duration < min_duration) { + if (int min_duration = swipe_oper_task_ptr->special_params.at(4); duration < min_duration) { duration = min_duration; } bool deploy_with_pause = ControlFeat::support(m_inst_helper.ctrler()->support_features(), ControlFeat::SWIPE_WITH_PAUSE); Point oper_point(oper_rect.x + oper_rect.width / 2, oper_rect.y + oper_rect.height / 2); - m_inst_helper.ctrler()->swipe(oper_point, target_point, duration, false, swipe_oper_task_ptr->special_params.at(1), - swipe_oper_task_ptr->special_params.at(2), deploy_with_pause); + m_inst_helper.ctrler()->swipe(oper_point, target_point, duration, false, swipe_oper_task_ptr->special_params.at(2), + swipe_oper_task_ptr->special_params.at(3), deploy_with_pause); // 拖动干员朝向 if (direction != DeployDirection::None) { static const std::unordered_map DirectionMap = { - { DeployDirection::Right, Point(1, 0) }, { DeployDirection::Down, Point(0, 1) }, - { DeployDirection::Left, Point(-1, 0) }, { DeployDirection::Up, Point(0, -1) }, - { DeployDirection::None, Point(0, 0) }, + { DeployDirection::Right, Point::right() }, { DeployDirection::Down, Point::down() }, + { DeployDirection::Left, Point::left() }, { DeployDirection::Up, Point::up() }, + { DeployDirection::None, Point::zero() }, }; // 计算往哪边拖动 const Point& direction_target = DirectionMap.at(direction); - // 将方向转换为实际的 swipe end 坐标点 - static const int coeff = swipe_oper_task_ptr->special_params.at(0); + // 将方向转换为实际的 swipe end 坐标点,并对滑动距离进行缩放 + const auto scale_size = m_inst_helper.ctrler()->get_scale_size(); + static const int coeff = + static_cast(swipe_oper_task_ptr->special_params.at(0) * scale_size.second / 720.0); Point end_point = target_point + (direction_target * coeff); + fix_swipe_out_of_limit(target_point, end_point, scale_size.first, scale_size.second, + swipe_oper_task_ptr->special_params.at(1)); + m_inst_helper.sleep(use_oper_task_ptr->post_delay); m_inst_helper.ctrler()->swipe(target_point, end_point, swipe_oper_task_ptr->post_delay); + // 仅简单复用,该延迟含义与此处逻辑无关 by MistEO m_inst_helper.sleep(use_oper_task_ptr->pre_delay); } @@ -642,6 +648,60 @@ bool asst::BattleHelper::cancel_oper_selection() return ProcessTask(this_task(), { "BattleCancelSelection" }).run(); } +void asst::BattleHelper::fix_swipe_out_of_limit(Point& p1, Point& p2, int width, int height, int max_distance, + double radian) +{ + Point direct = Point::zero(); + int distance = 0; + if (p2.y > height) { + // 下边界超限 + direct = Point::up(); + distance = p2.y - height; + } + else if (p2.x > width) { + // 右边界超限 + direct = Point::left(); + distance = p2.x - width; + } + else if (p2.y < 0) { + // 上边界超限 + direct = Point::down(); + distance = -p2.y; + } + else if (p2.x < 0) { + // 左边界超限 + direct = Point::right(); + distance = -p2.x; + } + else { + return; + } + + std::tuple adjust_scale = { + direct.x * std::cos(radian) - direct.y * std::sin(radian), + direct.y * std::cos(radian) + direct.x * std::sin(radian), + }; + + // 旋转后偏移值会不够,计算补偿比例 + double adjust_more = std::get<0>(adjust_scale) * direct.x + std::get<1>(adjust_scale) * direct.y; + + Point adjust = { + static_cast(std::get<0>(adjust_scale) / adjust_more * distance), + static_cast(std::get<1>(adjust_scale) / adjust_more * distance), + }; + + if (auto point_distance = Point::distance(adjust, { 0, 0 }); point_distance > max_distance) { + adjust = { + static_cast(adjust.x * max_distance / point_distance), + static_cast(adjust.y * max_distance / point_distance), + }; + } + + Log.info(__FUNCTION__, "swipe end_point out of limit, start:", p1, ", end:", p2, ", adjust:", adjust); + p1 += adjust; + p2 += adjust; +} + bool asst::BattleHelper::move_camera(const std::pair& delta) { LogTraceFunction; diff --git a/src/MaaCore/Task/BattleHelper.h b/src/MaaCore/Task/BattleHelper.h index 625ce3850e..3b7d1d721e 100644 --- a/src/MaaCore/Task/BattleHelper.h +++ b/src/MaaCore/Task/BattleHelper.h @@ -61,6 +61,8 @@ namespace asst bool click_retreat(); // 这个是不带识别的,直接点 bool click_skill(bool keep_waiting = true); // 这个是带识别的,转好了才点 bool cancel_oper_selection(); + // 修正终点超出范围的滑动,纠正时是否需要顺时针旋转 + void fix_swipe_out_of_limit(Point& p1, Point& p2, int width, int height, int max_distance = INT_MAX, double radian = 0); bool move_camera(const std::pair& delta); std::string analyze_detail_page_oper_name(const cv::Mat& image); diff --git a/src/MaaCore/Task/Fight/FightTimesPlugin.cpp b/src/MaaCore/Task/Fight/FightTimesPlugin.cpp new file mode 100644 index 0000000000..42de5ac5d2 --- /dev/null +++ b/src/MaaCore/Task/Fight/FightTimesPlugin.cpp @@ -0,0 +1,25 @@ +#include "FightTimesPlugin.h" + +#include "Task/ProcessTask.h" + +bool asst::FightTimesPlugin::verify(AsstMsg msg, const json::value& details) const +{ + if (msg != AsstMsg::SubTaskStart || details.get("subtask", std::string()) != "ProcessTask") { + return false; + } + + return !inited && details.at("details").at("task").as_string().ends_with("StartButton1"); +} + +bool asst::FightTimesPlugin::_run() +{ + // 目前也可以做成subtask,但是给以后糊屎留个地方 + bool result = ProcessTask(*this, { "FightSeries-Default-1", "FightSeries-Icon", "Stop" }).run(); + + if (!result) { + return false; + } + + inited = true; + return true; +} diff --git a/src/MaaCore/Task/Fight/FightTimesPlugin.h b/src/MaaCore/Task/Fight/FightTimesPlugin.h new file mode 100644 index 0000000000..5f70a0033f --- /dev/null +++ b/src/MaaCore/Task/Fight/FightTimesPlugin.h @@ -0,0 +1,20 @@ +#pragma once +#include "Task/AbstractTaskPlugin.h" +namespace asst +{ + class FightTimesPlugin : public AbstractTaskPlugin + { + public: + using AbstractTaskPlugin::AbstractTaskPlugin; + virtual ~FightTimesPlugin() override = default; + + virtual bool verify(AsstMsg msg, const json::value& details) const override; + + protected: + virtual bool _run() override; + + private: + // 是否成功初始化为1次 + bool inited = false; + }; +} diff --git a/src/MaaCore/Task/Fight/MedicineCounterPlugin.cpp b/src/MaaCore/Task/Fight/MedicineCounterPlugin.cpp index d97b2315b2..98215ca0fe 100644 --- a/src/MaaCore/Task/Fight/MedicineCounterPlugin.cpp +++ b/src/MaaCore/Task/Fight/MedicineCounterPlugin.cpp @@ -102,7 +102,7 @@ bool asst::MedicineCounterPlugin::_run() } } - ProcessTask(*this, { "MedicineConfirm" }).run(); + ProcessTask(*this, { "MedicineConfirm" }).set_retry_times(5).run(); auto info = basic_info_with_what("UseMedicine"); info["details"]["is_expiring"] = m_using_count > m_max_count; diff --git a/src/MaaCore/Task/Fight/SanityBeforeStagePlugin.cpp b/src/MaaCore/Task/Fight/SanityBeforeStagePlugin.cpp index 597704d403..bcda162b87 100644 --- a/src/MaaCore/Task/Fight/SanityBeforeStagePlugin.cpp +++ b/src/MaaCore/Task/Fight/SanityBeforeStagePlugin.cpp @@ -1,11 +1,7 @@ #include "SanityBeforeStagePlugin.h" -#include - -#include "Config/TaskData.h" #include "Controller/Controller.h" #include "Utils/Logger.hpp" -#include "Utils/NoWarningCV.h" #include "Utils/StringMisc.hpp" #include "Vision/RegionOCRer.h" @@ -31,29 +27,16 @@ bool asst::SanityBeforeStagePlugin::verify(AsstMsg msg, const json::value& detai bool asst::SanityBeforeStagePlugin::_run() { - int retry = 0; - while (!need_exit() && retry < 3) { - if (get_sanity_before_stage() || retry >= 3) { - break; - } - ++retry; - Log.warn(__FUNCTION__, "Sanity ocr failed, retry:", retry); - sleep(Config.get_options().task_delay); - } - - return true; + return get_sanity_before_stage(); } bool asst::SanityBeforeStagePlugin::get_sanity_before_stage() { LogTraceFunction; - const static auto task = Task.get("SanityMatch"); - auto img = make_roi(ctrler()->get_image(), task->roi); - cv::normalize(img, img, 255.0, 0.0, cv::NormTypes::NORM_MINMAX); - - RegionOCRer analyzer(img); - analyzer.set_replace(task->replace_map); + RegionOCRer analyzer(ctrler()->get_image()); + analyzer.set_task_info("SanityMatch"); + analyzer.set_bin_threshold(0, 255); auto res_opt = analyzer.analyze(); json::value sanity_info = basic_info_with_what("SanityBeforeStage"); diff --git a/src/MaaCore/Task/Fight/StageDropsTaskPlugin.cpp b/src/MaaCore/Task/Fight/StageDropsTaskPlugin.cpp index 42c28d1e7c..6e4a5b2980 100644 --- a/src/MaaCore/Task/Fight/StageDropsTaskPlugin.cpp +++ b/src/MaaCore/Task/Fight/StageDropsTaskPlugin.cpp @@ -4,7 +4,9 @@ #include #include +#include "Common/AsstTypes.h" #include "Common/AsstVersion.h" +#include "Config/GeneralConfig.h" #include "Config/Miscellaneous/ItemConfig.h" #include "Config/Miscellaneous/StageDropsConfig.h" #include "Config/TaskData.h" @@ -13,6 +15,7 @@ #include "Task/ProcessTask.h" #include "Task/ReportDataTask.h" #include "Utils/Logger.hpp" +#include "Vision/Matcher.h" #include "Vision/Miscellaneous/StageDropsImageAnalyzer.h" bool asst::StageDropsTaskPlugin::verify(AsstMsg msg, const json::value& details) const @@ -133,7 +136,33 @@ bool asst::StageDropsTaskPlugin::recognize_drops() } StageDropsImageAnalyzer analyzer(ctrler()->get_image()); - bool ret = analyzer.analyze(); + + bool ret = false; + while (!need_exit()) { + ret = false; + + // more materials to reveal? + + auto swipe_begin = Point { WindowWidthDefault - 40, 632 }; + + const int swipe_dist = 200; + ctrler()->swipe(swipe_begin, swipe_begin + swipe_dist * Point::left(), 500, true, 2, 0); + sleep(Config.get_options().task_delay * 3); + + auto new_img = ctrler()->get_image(); + + const auto offset_opt = analyzer.merge_image(new_img); + if (!offset_opt.has_value()) break; + const auto offset = offset_opt.value(); + Log.trace("new image offset:", offset); + if (offset <= 4) { + ret = true; + break; + } + } + + // image strip constructed, start main step + ret &= analyzer.analyze(); auto&& [code, difficulty] = analyzer.get_stage_key(); m_stage_code = std::move(code); diff --git a/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp b/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp index 98cb1f6ffa..c5805d5640 100644 --- a/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp @@ -303,6 +303,11 @@ bool asst::InfrastAbstractTask::swipe_and_select_custom_opers(bool is_dorm_order pre_partial_result = partial_result; swipe_of_operlist(); ++swipe_times; + // 最后一页会触底反弹,先糊个屎避免一下 + // 总不能有成体系的干员了还没160个人吧) + if(swipe_times > 20) { + sleep(1500); + } } // 先按任意其他的tab排序,游戏会自动把已经选中的人放到最前面 @@ -635,6 +640,11 @@ void asst::InfrastAbstractTask::swipe_to_the_left_of_operlist(int loop_times) if (loop_times < 0) { loop_times = operlist_swipe_times(); } + // 如果大于10,说明选择了排在很后面或者干脆不是这个站的技能的角色,例如加工站放红脸小车 + // 连续快速的滑动可能会丢失滑动距离,干脆多滑几次 + if (loop_times > 10) { + loop_times = static_cast(1.2 * loop_times) + 1; + } for (int i = 0; i < loop_times; ++i) { ProcessTask(*this, { "InfrastOperListSwipeToTheLeft" }).run(); } diff --git a/src/MaaCore/Task/Interface/CopilotTask.cpp b/src/MaaCore/Task/Interface/CopilotTask.cpp index d14675fab8..acd7fb3099 100644 --- a/src/MaaCore/Task/Interface/CopilotTask.cpp +++ b/src/MaaCore/Task/Interface/CopilotTask.cpp @@ -4,6 +4,7 @@ #include "Config/Miscellaneous/CopilotConfig.h" #include "Config/TaskData.h" +#include "Task/Fight/MedicineCounterPlugin.h" #include "Task/Miscellaneous/BattleFormationTask.h" #include "Task/Miscellaneous/BattleProcessTask.h" #include "Task/Miscellaneous/CopilotListNotificationPlugin.h" @@ -36,6 +37,11 @@ asst::CopilotTask::CopilotTask(const AsstCallback& callback, Assistant* inst) start_1_tp->set_tasks({ "BattleStartPre" }).set_retry_times(0).set_ignore_error(true); m_subtasks.emplace_back(start_1_tp); + m_medicine_task_ptr = std::make_shared(callback, inst, TaskType); + m_medicine_task_ptr->set_tasks({ "BattleStartPre@UseMedicine" }).set_retry_times(0).set_ignore_error(true); + m_medicine_task_ptr->register_plugin()->set_count(999999); + m_subtasks.emplace_back(m_medicine_task_ptr); + m_subtasks.emplace_back(m_formation_task_ptr)->set_retry_times(0); auto start_2_tp = std::make_shared(callback, inst, TaskType); @@ -92,6 +98,8 @@ bool asst::CopilotTask::set_params(const json::value& params) return false; } + m_medicine_task_ptr->set_enable(params.get("use_sanity_potion", false)); + // 选择指定编队 m_formation_task_ptr->set_select_formation(params.get("select_formation", 0)); diff --git a/src/MaaCore/Task/Interface/CopilotTask.h b/src/MaaCore/Task/Interface/CopilotTask.h index d7335e55c3..9503cc7e43 100644 --- a/src/MaaCore/Task/Interface/CopilotTask.h +++ b/src/MaaCore/Task/Interface/CopilotTask.h @@ -27,6 +27,7 @@ namespace asst std::shared_ptr m_task_file_reload_task_ptr = nullptr; std::shared_ptr m_navigate_task_ptr = nullptr; std::shared_ptr m_not_use_prts_task_ptr = nullptr; + std::shared_ptr m_medicine_task_ptr= nullptr; std::shared_ptr m_adverse_select_task_ptr = nullptr; std::shared_ptr m_formation_task_ptr = nullptr; std::shared_ptr m_battle_task_ptr = nullptr; diff --git a/src/MaaCore/Task/Interface/FightTask.cpp b/src/MaaCore/Task/Interface/FightTask.cpp index 7cfe13e80d..9572f9cc23 100644 --- a/src/MaaCore/Task/Interface/FightTask.cpp +++ b/src/MaaCore/Task/Interface/FightTask.cpp @@ -4,6 +4,7 @@ #include "Config/TaskData.h" #include "Task/Fight/DrGrandetTaskPlugin.h" +#include "Task/Fight/FightTimesPlugin.h" #include "Task/Fight/MedicineCounterPlugin.h" #include "Task/Fight/SanityBeforeStagePlugin.h" #include "Task/Fight/SideStoryReopenTask.h" @@ -50,6 +51,7 @@ asst::FightTask::FightTask(const AsstCallback& callback, Assistant* inst) m_dr_grandet_task_plugin_ptr = m_fight_task_ptr->register_plugin(); m_dr_grandet_task_plugin_ptr->set_enable(false); m_fight_task_ptr->register_plugin(); + m_fight_task_ptr->register_plugin(); m_medicine_plugin = m_fight_task_ptr->register_plugin(); m_subtasks.emplace_back(m_start_up_task_ptr); diff --git a/src/MaaCore/Task/Interface/RoguelikeTask.cpp b/src/MaaCore/Task/Interface/RoguelikeTask.cpp index 54c8e30c94..e03df6e8b0 100644 --- a/src/MaaCore/Task/Interface/RoguelikeTask.cpp +++ b/src/MaaCore/Task/Interface/RoguelikeTask.cpp @@ -6,6 +6,7 @@ #include "Task/Miscellaneous/ScreenshotTaskPlugin.h" #include "Task/ProcessTask.h" #include "Task/Roguelike/RoguelikeBattleTaskPlugin.h" +#include "Task/Roguelike/RoguelikeConfig.h" #include "Task/Roguelike/RoguelikeControlTaskPlugin.h" #include "Task/Roguelike/RoguelikeCustomStartTaskPlugin.h" #include "Task/Roguelike/RoguelikeDebugTaskPlugin.h" @@ -26,35 +27,42 @@ asst::RoguelikeTask::RoguelikeTask(const AsstCallback& callback, Assistant* inst) : InterfaceTask(callback, inst, TaskType), - m_roguelike_task_ptr(std::make_shared(callback, inst, TaskType)) + m_roguelike_task_ptr(std::make_shared(callback, inst, TaskType)), + m_roguelike_config_ptr(std::make_shared()) { LogTraceFunction; m_roguelike_task_ptr->set_ignore_error(true); - m_screenshot_plugin_ptr = m_roguelike_task_ptr->register_plugin(); - m_formation_plugin_ptr = m_roguelike_task_ptr->register_plugin(); - m_control_plugin_ptr = m_roguelike_task_ptr->register_plugin(); - m_reset_plugin_ptr = m_roguelike_task_ptr->register_plugin(); - m_debug_plugin_ptr = m_roguelike_task_ptr->register_plugin(); - m_shopping_plugin_ptr = m_roguelike_task_ptr->register_plugin(); - m_shopping_plugin_ptr->set_retry_times(0); + m_roguelike_task_ptr->register_plugin(); + m_roguelike_task_ptr->register_plugin(m_roguelike_config_ptr); + m_roguelike_task_ptr->register_plugin(m_roguelike_config_ptr); + m_roguelike_task_ptr->register_plugin(m_roguelike_config_ptr); + m_debug_plugin_ptr = m_roguelike_task_ptr->register_plugin(m_roguelike_config_ptr); + m_roguelike_task_ptr->register_plugin(m_roguelike_config_ptr)->set_retry_times(0); - m_custom_start_plugin_ptr = m_roguelike_task_ptr->register_plugin(); - m_battle_plugin_ptr = m_roguelike_task_ptr->register_plugin(); - m_battle_plugin_ptr->set_retry_times(0).set_ignore_error(true); - m_recruit_plugin_ptr = m_roguelike_task_ptr->register_plugin(); - m_recruit_plugin_ptr->set_retry_times(2).set_ignore_error(true); - m_skill_plugin_ptr = m_roguelike_task_ptr->register_plugin(); - m_skill_plugin_ptr->set_retry_times(2).set_ignore_error(true); - m_stage_encounter_plugin_ptr = m_roguelike_task_ptr->register_plugin(); - m_stage_encounter_plugin_ptr->set_retry_times(0); + m_custom_start_plugin_ptr = + m_roguelike_task_ptr->register_plugin(m_roguelike_config_ptr); + m_roguelike_task_ptr->register_plugin(m_roguelike_config_ptr) + ->set_retry_times(0) + .set_ignore_error(true); + m_roguelike_task_ptr->register_plugin(m_roguelike_config_ptr) + ->set_retry_times(2) + .set_ignore_error(true); - m_last_reward_plugin_ptr = m_roguelike_task_ptr->register_plugin(); - m_difficulty_selection_plugin_ptr = m_roguelike_task_ptr->register_plugin(); - m_strategy_change_plugin_ptr = m_roguelike_task_ptr->register_plugin(); + m_roguelike_task_ptr->register_plugin(m_roguelike_config_ptr) + ->set_retry_times(2) + .set_ignore_error(true); - m_foldartal_gain_plugin_ptr = m_roguelike_task_ptr->register_plugin(); - m_foldartal_use_plugin_ptr = m_roguelike_task_ptr->register_plugin(); + m_roguelike_task_ptr->register_plugin(m_roguelike_config_ptr) + ->set_retry_times(0); + + m_roguelike_task_ptr->register_plugin(m_roguelike_config_ptr); + + m_roguelike_task_ptr->register_plugin(m_roguelike_config_ptr); + m_roguelike_task_ptr->register_plugin(m_roguelike_config_ptr); + + m_roguelike_task_ptr->register_plugin(m_roguelike_config_ptr); + m_roguelike_task_ptr->register_plugin(m_roguelike_config_ptr); // 这个任务如果卡住会放弃当前的肉鸽并重新开始,所以多添加一点。先这样凑合用 for (int i = 0; i != 100; ++i) { @@ -78,46 +86,33 @@ bool asst::RoguelikeTask::set_params(const json::value& params) return false; } - for (const auto& plugin : m_roguelike_task_ptr->get_plugins()) { - if (auto ptr = std::dynamic_pointer_cast(plugin)) { - ptr->set_roguelike_theme(theme); - } - } - - m_foldartal_gain_plugin_ptr->set_roguelike_theme(theme); - m_foldartal_use_plugin_ptr->set_roguelike_theme(theme); - + m_roguelike_config_ptr->set_theme(theme); m_roguelike_task_ptr->set_tasks({ theme + "@Roguelike@Begin" }); - // 0 - 刷经验,尽可能稳定地打更多层数,不期而遇采用激进策略 - // 1 - 刷源石锭,第一层投资完就退出,不期而遇采用保守策略 - // 2 - 【已移除】两者兼顾,投资过后再退出,没有投资就继续往后打 - // 3 - 尝试通关,激进策略(TODO) - // 4 - 刷开局藏品,以获得热水壶或者演讲稿开局,不期而遇采用保守策略 - int mode = params.get("mode", 0); - if (mode != 0 && mode != 1 && mode != 4) { + auto mode = static_cast(params.get("mode", 0)); + m_roguelike_config_ptr->set_mode(mode); + if (mode != RoguelikeMode::Exp && mode != RoguelikeMode::Investment && mode != RoguelikeMode::Collectible) { m_roguelike_task_ptr->set_tasks({ "Stop" }); - Log.error(__FUNCTION__, "| Unknown mode", mode); + Log.error(__FUNCTION__, "| Unknown mode", static_cast(mode)); return false; } - m_debug_plugin_ptr->set_enable(mode != 1); + m_debug_plugin_ptr->set_enable(mode != RoguelikeMode::Investment); // 是否凹指定干员开局直升 bool start_with_elite_two = params.get("start_with_elite_two", false); - status()->set_properties(Status::RoguelikeMode, std::to_string(mode)); - status()->set_properties(Status::RoguelikeDifficulty, "0"); - status()->set_properties(Status::RoguelikeStartWithEliteTwo, std::to_string(start_with_elite_two)); + m_roguelike_config_ptr->set_difficulty(0); + m_roguelike_config_ptr->set_start_with_elite_two(start_with_elite_two); // 设置层数选点策略,相关逻辑在 RoguelikeStrategyChangeTaskPlugin { Task.set_task_base(theme + "@Roguelike@Stages", theme + "@Roguelike@Stages_default"); std::string strategy_task = theme + "@Roguelike@StrategyChange"; - std::string strategy_task_with_mode = strategy_task + "_mode" + std::to_string(mode); + std::string strategy_task_with_mode = strategy_task + "_mode" + std::to_string(static_cast(mode)); if (Task.get(strategy_task_with_mode) == nullptr) { strategy_task_with_mode = "#none"; // 没有对应的层数选点策略,使用默认策略(避战) - Log.warn(__FUNCTION__, "No strategy for mode", mode); + Log.warn(__FUNCTION__, "No strategy for mode", static_cast(mode)); } Task.set_task_base(strategy_task, strategy_task_with_mode); } @@ -129,7 +124,7 @@ bool asst::RoguelikeTask::set_params(const json::value& params) Task.set_task_base("Roguelike@LastReward4", "Roguelike@LastReward_default"); Task.set_task_base("Roguelike@LastRewardRand", "Roguelike@LastReward_default"); - if (mode == 1) { + if (mode == RoguelikeMode::Investment) { // 战斗后奖励只拿钱 Task.set_task_base(theme + "@Roguelike@DropsFlag", theme + "@Roguelike@DropsFlag_mode1"); // 刷源石锭模式是否进入第二层 diff --git a/src/MaaCore/Task/Interface/RoguelikeTask.h b/src/MaaCore/Task/Interface/RoguelikeTask.h index cf493e1b72..a040e2dff6 100644 --- a/src/MaaCore/Task/Interface/RoguelikeTask.h +++ b/src/MaaCore/Task/Interface/RoguelikeTask.h @@ -4,23 +4,9 @@ namespace asst { class ProcessTask; - class ScreenshotTaskPlugin; - class RoguelikeBattleTaskPlugin; - class RoguelikeControlTaskPlugin; + class RoguelikeConfig; class RoguelikeCustomStartTaskPlugin; class RoguelikeDebugTaskPlugin; - class RoguelikeDifficultySelectionTaskPlugin; - class RoguelikeFormationTaskPlugin; - class RoguelikeLastRewardTaskPlugin; - class RoguelikeRecruitTaskPlugin; - class RoguelikeResetTaskPlugin; - class RoguelikeSkillSelectionTaskPlugin; - class RoguelikeShoppingTaskPlugin; - class RoguelikeStageEncounterTaskPlugin; - class RoguelikeStrategyChangeTaskPlugin; - - class RoguelikeFoldartalGainTaskPlugin; - class RoguelikeFoldartalUseTaskPlugin; class RoguelikeTask : public InterfaceTask { @@ -34,22 +20,9 @@ namespace asst private: std::shared_ptr m_roguelike_task_ptr = nullptr; - std::shared_ptr m_screenshot_plugin_ptr = nullptr; - std::shared_ptr m_control_plugin_ptr = nullptr; - std::shared_ptr m_recruit_plugin_ptr = nullptr; - std::shared_ptr m_skill_plugin_ptr = nullptr; - std::shared_ptr m_battle_plugin_ptr = nullptr; + std::shared_ptr m_roguelike_config_ptr = nullptr; std::shared_ptr m_custom_start_plugin_ptr = nullptr; std::shared_ptr m_debug_plugin_ptr = nullptr; - std::shared_ptr m_difficulty_selection_plugin_ptr = nullptr; - std::shared_ptr m_formation_plugin_ptr = nullptr; - std::shared_ptr m_last_reward_plugin_ptr = nullptr; - std::shared_ptr m_reset_plugin_ptr = nullptr; - std::shared_ptr m_shopping_plugin_ptr = nullptr; - std::shared_ptr m_stage_encounter_plugin_ptr = nullptr; - std::shared_ptr m_strategy_change_plugin_ptr = nullptr; - std::shared_ptr m_foldartal_gain_plugin_ptr = nullptr; - std::shared_ptr m_foldartal_use_plugin_ptr = nullptr; }; } diff --git a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp index 8c275d016a..c1ff0c449a 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp @@ -267,7 +267,7 @@ std::vector asst::BattleFormationTask::analyzer_opers() return std::abs(pre.flag_rect.x - res.flag_rect.x) < kMinDistance && std::abs(pre.flag_rect.y - res.flag_rect.y) < kMinDistance; }); - if (find_it != opers_result.end()) { + if (find_it != opers_result.end() || res.text.empty()) { continue; } opers_result.emplace_back(std::move(res)); diff --git a/src/MaaCore/Task/Roguelike/AbstractRoguelikeTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/AbstractRoguelikeTaskPlugin.cpp new file mode 100644 index 0000000000..e316fe4801 --- /dev/null +++ b/src/MaaCore/Task/Roguelike/AbstractRoguelikeTaskPlugin.cpp @@ -0,0 +1,7 @@ +#include "AbstractRoguelikeTaskPlugin.h" + +asst::AbstractRoguelikeTaskPlugin::AbstractRoguelikeTaskPlugin(const AsstCallback& callback, Assistant* inst, + std::string_view task_chain, + std::shared_ptr config) + : AbstractTaskPlugin(callback, inst, task_chain), m_config(config) +{} diff --git a/src/MaaCore/Task/Roguelike/AbstractRoguelikeTaskPlugin.h b/src/MaaCore/Task/Roguelike/AbstractRoguelikeTaskPlugin.h new file mode 100644 index 0000000000..b924e92d5f --- /dev/null +++ b/src/MaaCore/Task/Roguelike/AbstractRoguelikeTaskPlugin.h @@ -0,0 +1,19 @@ +#pragma once + +#include + +#include "Task/AbstractTaskPlugin.h" +#include "Task/Roguelike/RoguelikeConfig.h" + +namespace asst +{ + class AbstractRoguelikeTaskPlugin : public AbstractTaskPlugin + { + public: + AbstractRoguelikeTaskPlugin(const AsstCallback& callback, Assistant* inst, std::string_view task_chain, + std::shared_ptr data); + + protected: + std::shared_ptr m_config; + }; +} diff --git a/src/MaaCore/Task/Roguelike/RoguelikeBattleTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeBattleTaskPlugin.cpp index 8dc931f15b..bfbe2f3def 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeBattleTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeBattleTaskPlugin.cpp @@ -24,8 +24,9 @@ using namespace asst::battle; using namespace asst::battle::roguelike; asst::RoguelikeBattleTaskPlugin::RoguelikeBattleTaskPlugin(const AsstCallback& callback, Assistant* inst, - std::string_view task_chain) - : AbstractTaskPlugin(callback, inst, task_chain), BattleHelper(inst) + std::string_view task_chain, + std::shared_ptr roguelike_config_ptr) + : AbstractRoguelikeTaskPlugin(callback, inst, task_chain, roguelike_config_ptr), BattleHelper(inst) {} bool asst::RoguelikeBattleTaskPlugin::verify(AsstMsg msg, const json::value& details) const @@ -34,11 +35,11 @@ bool asst::RoguelikeBattleTaskPlugin::verify(AsstMsg msg, const json::value& det return false; } - if (m_roguelike_theme.empty()) { + if (m_config->get_theme().empty()) { Log.error("Roguelike name doesn't exist!"); return false; } - const std::string roguelike_name = m_roguelike_theme + "@"; + const std::string roguelike_name = m_config->get_theme() + "@"; const std::string& task = details.get("details", "task", ""); std::string_view task_view = task; if (task_view.starts_with(roguelike_name)) { @@ -94,7 +95,7 @@ bool asst::RoguelikeBattleTaskPlugin::_run() void asst::RoguelikeBattleTaskPlugin::wait_until_start_button_clicked() { - ProcessTask(*this, { m_roguelike_theme + "@Roguelike@WaitForStartButtonClicked" }) + ProcessTask(*this, { m_config->get_theme() + "@Roguelike@WaitForStartButtonClicked" }) .set_task_delay(0) .set_retry_times(0) .run(); @@ -330,7 +331,7 @@ bool asst::RoguelikeBattleTaskPlugin::do_best_deploy() // 构造当前地图的部署指令列表 std::vector deploy_plan_list; // 获取当前肉鸽的分组信息[干员组1名称,干员组2名称,...] - const auto& groups = RoguelikeRecruit.get_group_info(m_roguelike_theme); + const auto& groups = RoguelikeRecruit.get_group_info(m_config->get_theme()); // 获取当前肉鸽的分组内排名信息 // const auto& group_rank = RoguelikeRecruit.get_group_rank(rogue_theme); for (const auto& [name, oper] : m_cur_deployment_opers) { @@ -342,9 +343,9 @@ bool asst::RoguelikeBattleTaskPlugin::do_best_deploy() const std::string& oper_name = oper_name_in_config(oper); // 获取招募信息 - const auto& recruit_info = RoguelikeRecruit.get_oper_info(m_roguelike_theme, oper_name); + const auto& recruit_info = RoguelikeRecruit.get_oper_info(m_config->get_theme(), oper_name); // 获取会用到该干员的干员组[干员组1序号,干员组2序号,...] - std::vector group_ids = RoguelikeRecruit.get_group_id(m_roguelike_theme, oper_name); + std::vector group_ids = RoguelikeRecruit.get_group_id(m_config->get_theme(), oper_name); for (const auto& group_id : group_ids) { // 当前干员组名,string类型 @@ -393,7 +394,8 @@ bool asst::RoguelikeBattleTaskPlugin::do_best_deploy() auto deployed_time = std::chrono::steady_clock::now(); m_deployed_time.insert_or_assign(deploy_plan.oper_name, deployed_time); // 获取技能用法和使用次数 - const auto& oper_info = RoguelikeRecruit.get_oper_info(m_roguelike_theme, deploy_plan.oper_name); + const auto& oper_info = + RoguelikeRecruit.get_oper_info(m_config->get_theme(), deploy_plan.oper_name); m_skill_usage[deploy_plan.oper_name] = oper_info.skill_usage; m_skill_times[deploy_plan.oper_name] = oper_info.skill_times; Log.trace(" best deploy is", deploy_plan.oper_name, "with rank", deploy_plan.rank); @@ -422,7 +424,7 @@ bool asst::RoguelikeBattleTaskPlugin::do_once() auto pre_battlefield = m_battlefield_opers; for (const auto& [name, loc] : pre_battlefield) { - const auto& oper_info = RoguelikeRecruit.get_oper_info(m_roguelike_theme, name); + const auto& oper_info = RoguelikeRecruit.get_oper_info(m_config->get_theme(), name); auto iter = m_deployed_time.find(name); if (iter != m_deployed_time.end() && oper_info.auto_retreat > 0) { if (std::chrono::steady_clock::now() - m_deployed_time.at(name) >= @@ -518,7 +520,7 @@ bool asst::RoguelikeBattleTaskPlugin::do_once() auto deployed_time = std::chrono::steady_clock::now(); m_deployed_time.insert_or_assign(best_oper.name, deployed_time); // 获取技能用法和使用次数 - const auto& oper_info = RoguelikeRecruit.get_oper_info(m_roguelike_theme, best_oper.name); + const auto& oper_info = RoguelikeRecruit.get_oper_info(m_config->get_theme(), best_oper.name); m_skill_usage[best_oper.name] = oper_info.skill_usage; m_skill_times[best_oper.name] = oper_info.skill_times; diff --git a/src/MaaCore/Task/Roguelike/RoguelikeBattleTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeBattleTaskPlugin.h index 2250489043..83bf2930ce 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeBattleTaskPlugin.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeBattleTaskPlugin.h @@ -3,23 +3,22 @@ #include #include +#include "AbstractRoguelikeTaskPlugin.h" #include "Common/AsstBattleDef.h" #include "Common/AsstTypes.h" #include "Config/Miscellaneous/TilePack.h" -#include "Task/AbstractTaskPlugin.h" #include "Task/BattleHelper.h" -#include "Task/Roguelike/RoguelikeConfig.h" namespace asst { - class RoguelikeBattleTaskPlugin : public AbstractTaskPlugin, private BattleHelper, public RoguelikeConfig + class RoguelikeBattleTaskPlugin : public AbstractRoguelikeTaskPlugin, private BattleHelper { using Time_Point = std::chrono::time_point; inline static const std::unordered_set DiceSet = { "骰子", "8面骰子", "12面骰子" }; public: - RoguelikeBattleTaskPlugin(const AsstCallback& callback, Assistant* inst, std::string_view task_chain); + RoguelikeBattleTaskPlugin(const AsstCallback& callback, Assistant* inst, std::string_view task_chain, std::shared_ptrroguelike_config_ptr); virtual ~RoguelikeBattleTaskPlugin() override = default; virtual bool verify(AsstMsg msg, const json::value& details) const override; diff --git a/src/MaaCore/Task/Roguelike/RoguelikeConfig.cpp b/src/MaaCore/Task/Roguelike/RoguelikeConfig.cpp index 4d11638348..39d13ac193 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeConfig.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeConfig.cpp @@ -1,6 +1,10 @@ #include "RoguelikeConfig.h" -void asst::RoguelikeConfig::set_roguelike_theme(std::string roguelike_theme) -{ - m_roguelike_theme = std::move(roguelike_theme); +void asst::RoguelikeConfig::clear() { + m_recruitment_count = 0; + m_recruitment_starts_complete = false; + m_recruitment_team_complete = false; + m_trader_no_longer_buy = false; + m_core_char = std::string(); + m_team_full_without_rookie = false; } diff --git a/src/MaaCore/Task/Roguelike/RoguelikeConfig.h b/src/MaaCore/Task/Roguelike/RoguelikeConfig.h index 0958e37e0a..4009820922 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeConfig.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeConfig.h @@ -3,13 +3,64 @@ namespace asst { + enum class RoguelikeMode + { + // 0 - 刷经验,尽可能稳定地打更多层数,不期而遇采用激进策略 + Exp = 0, + // 1 - 刷源石锭,第一层投资完就退出,不期而遇采用保守策略 + Investment = 1, + // 2 - 【已移除】两者兼顾,投资过后再退出,没有投资就继续往后打 + // 3 - 尝试通关,激进策略(TODO) + + // 4 - 刷开局藏品,以获得热水壶或者演讲稿开局,不期而遇采用保守策略 + Collectible = 4, + }; + class RoguelikeConfig { public: - void set_roguelike_theme(std::string roguelike_theme); + // 清理缓存的肉鸽数据 + void clear(); + + public: + void set_theme(std::string theme) { m_theme = std::move(theme); } + std::string get_theme() { return m_theme; } + void set_mode(RoguelikeMode mode) { m_mode = mode; } + RoguelikeMode get_mode() { return m_mode; } + void set_difficulty(int difficulty) { m_difficulty = difficulty; } + int get_difficulty() { return m_difficulty; } + void set_start_with_elite_two(bool start_with_elite_two) { m_start_with_elite_two = start_with_elite_two; } + bool get_start_with_elite_two() { return m_start_with_elite_two; } + + void set_recruitment_count(int count) { m_recruitment_count = count; } + int get_recruitment_count() { return m_recruitment_count; } + void set_recruitment_starts_complete(bool complete) { m_recruitment_starts_complete = complete; } + bool get_recruitment_starts_complete() { return m_recruitment_starts_complete; } + void set_recruitment_team_complete(bool complete) { m_recruitment_team_complete = complete; } + bool get_recruitment_team_complete() { return m_recruitment_team_complete; } + void set_trader_no_longer_buy(bool no_longer_buy) { m_trader_no_longer_buy = no_longer_buy; } + bool get_trader_no_longer_buy() { return m_trader_no_longer_buy; } + void set_core_char(std::string core_char) { m_core_char = std::move(core_char); } + std::string get_core_char() { return m_core_char; } + void set_team_full_without_rookie(bool without_rookie) { m_team_full_without_rookie = without_rookie; } + bool get_team_full_without_rookie() { return m_team_full_without_rookie; } protected: // 肉鸽主题 - std::string m_roguelike_theme; + std::string m_theme; + RoguelikeMode m_mode = RoguelikeMode::Exp; + int m_difficulty = 0; + bool m_start_with_elite_two = false; + + /* 每次重置 */ + // 肉鸽招募次数 + int m_recruitment_count = 0; + // 开局干员是否已经招募 + bool m_recruitment_starts_complete = false; + // 阵容是否完备 + bool m_recruitment_team_complete = false; + bool m_trader_no_longer_buy = false; + std::string m_core_char; + bool m_team_full_without_rookie = false; }; -} +} // namespace asst diff --git a/src/MaaCore/Task/Roguelike/RoguelikeControlTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeControlTaskPlugin.cpp index ba4b0896ee..1fb6c7c7c4 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeControlTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeControlTaskPlugin.cpp @@ -10,11 +10,11 @@ bool asst::RoguelikeControlTaskPlugin::verify(AsstMsg msg, const json::value& de return false; } - if (m_roguelike_theme.empty()) { + if (m_config->get_theme().empty()) { Log.error("Roguelike name doesn't exist!"); return false; } - const std::string roguelike_name = m_roguelike_theme + "@"; + const std::string roguelike_name = m_config->get_theme() + "@"; const std::string& task = details.get("details", "task", ""); std::string_view task_view = task; if (task_view.starts_with(roguelike_name)) { @@ -34,7 +34,7 @@ bool asst::RoguelikeControlTaskPlugin::verify(AsstMsg msg, const json::value& de void asst::RoguelikeControlTaskPlugin::exit_then_stop() { - ProcessTask(*this, { m_roguelike_theme + "@Roguelike@ExitThenAbandon" }) + ProcessTask(*this, { m_config->get_theme() + "@Roguelike@ExitThenAbandon" }) .set_times_limit("Roguelike@StartExplore", 0) .set_times_limit("Roguelike@Abandon", 0) .run(); diff --git a/src/MaaCore/Task/Roguelike/RoguelikeControlTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeControlTaskPlugin.h index 817b6fcf41..d302e3d8c4 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeControlTaskPlugin.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeControlTaskPlugin.h @@ -1,13 +1,12 @@ #pragma once -#include "Task/AbstractTaskPlugin.h" -#include "Task/Roguelike/RoguelikeConfig.h" +#include "AbstractRoguelikeTaskPlugin.h" namespace asst { - class RoguelikeControlTaskPlugin : public AbstractTaskPlugin, public RoguelikeConfig + class RoguelikeControlTaskPlugin : public AbstractRoguelikeTaskPlugin { public: - using AbstractTaskPlugin::AbstractTaskPlugin; + using AbstractRoguelikeTaskPlugin::AbstractRoguelikeTaskPlugin; virtual ~RoguelikeControlTaskPlugin() override = default; public: diff --git a/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.cpp index aa4e33b3ce..9ece89dad2 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.cpp @@ -14,11 +14,11 @@ bool asst::RoguelikeCustomStartTaskPlugin::verify(AsstMsg msg, const json::value return false; } - if (m_roguelike_theme.empty()) { + if (m_config->get_theme().empty()) { Log.error("Roguelike name doesn't exist!"); return false; } - const std::string roguelike_name = m_roguelike_theme + "@"; + const std::string roguelike_name = m_config->get_theme() + "@"; const std::string& task = details.get("details", "task", ""); std::string_view task_view = task; if (task_view.starts_with(roguelike_name)) { @@ -142,6 +142,6 @@ bool asst::RoguelikeCustomStartTaskPlugin::hijack_core_char() status()->set_str(Status::RoguelikeUseSupport, m_customs[RoguelikeCustomType::UseSupport]); status()->set_str(Status::RoguelikeUseNonfriendSupport, m_customs[RoguelikeCustomType::UseNonfriendSupport]); - status()->set_str(Status::RoguelikeCoreChar, char_name); + m_config->set_core_char(char_name); return true; } diff --git a/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.h index eb93ce670e..c0232597a6 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeCustomStartTaskPlugin.h @@ -1,6 +1,5 @@ #pragma once -#include "Task/AbstractTaskPlugin.h" -#include "Task/Roguelike/RoguelikeConfig.h" +#include "AbstractRoguelikeTaskPlugin.h" namespace asst { @@ -15,10 +14,10 @@ namespace asst // CoCoreChar, // 次选干员, 干员名 }; - class RoguelikeCustomStartTaskPlugin : public AbstractTaskPlugin, public RoguelikeConfig + class RoguelikeCustomStartTaskPlugin : public AbstractRoguelikeTaskPlugin { public: - using AbstractTaskPlugin::AbstractTaskPlugin; + using AbstractRoguelikeTaskPlugin::AbstractRoguelikeTaskPlugin; virtual ~RoguelikeCustomStartTaskPlugin() override = default; public: diff --git a/src/MaaCore/Task/Roguelike/RoguelikeDebugTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeDebugTaskPlugin.cpp index 0b9ef7a55d..4466f026c0 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeDebugTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeDebugTaskPlugin.cpp @@ -14,11 +14,11 @@ bool asst::RoguelikeDebugTaskPlugin::verify(AsstMsg msg, const json::value& deta return true; } - if (m_roguelike_theme.empty()) { + if (m_config->get_theme().empty()) { Log.error("Roguelike name doesn't exist!"); return false; } - const std::string roguelike_name = m_roguelike_theme + "@"; + const std::string roguelike_name = m_config->get_theme() + "@"; const std::string& task = details.get("details", "task", ""); std::string_view task_view = task; if (task_view.starts_with(roguelike_name)) { diff --git a/src/MaaCore/Task/Roguelike/RoguelikeDebugTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeDebugTaskPlugin.h index cf13bcadd9..9044605de2 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeDebugTaskPlugin.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeDebugTaskPlugin.h @@ -1,13 +1,12 @@ #pragma once -#include "Task/AbstractTaskPlugin.h" -#include "Task/Roguelike/RoguelikeConfig.h" +#include "AbstractRoguelikeTaskPlugin.h" namespace asst { - class RoguelikeDebugTaskPlugin : public AbstractTaskPlugin, public RoguelikeConfig + class RoguelikeDebugTaskPlugin : public AbstractRoguelikeTaskPlugin { public: - using AbstractTaskPlugin::AbstractTaskPlugin; + using AbstractRoguelikeTaskPlugin::AbstractRoguelikeTaskPlugin; virtual ~RoguelikeDebugTaskPlugin() override = default; public: diff --git a/src/MaaCore/Task/Roguelike/RoguelikeDifficultySelectionTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeDifficultySelectionTaskPlugin.cpp index b43b602cb0..e65d550f3c 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeDifficultySelectionTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeDifficultySelectionTaskPlugin.cpp @@ -10,11 +10,11 @@ bool asst::RoguelikeDifficultySelectionTaskPlugin::verify(AsstMsg msg, const jso return false; } - if (m_roguelike_theme.empty()) { + if (m_config->get_theme().empty()) { Log.error("Roguelike name doesn't exist!"); return false; } - const std::string roguelike_name = m_roguelike_theme + "@"; + const std::string roguelike_name = m_config->get_theme() + "@"; const std::string& task = details.get("details", "task", ""); std::string_view task_view = task; if (task_view.starts_with(roguelike_name)) { @@ -32,19 +32,19 @@ bool asst::RoguelikeDifficultySelectionTaskPlugin::_run() { LogTraceFunction; - std::string mode = status()->get_properties(Status::RoguelikeMode).value(); + auto mode = m_config->get_mode(); // todo:以后可以根据传入的难度值选择难度? // 当前难度 - std::string difficulty = status()->get_properties(Status::RoguelikeDifficulty).value(); - if (m_roguelike_theme != "Phantom" && mode == "4") { - if (difficulty == "max") { - ProcessTask(*this, { m_roguelike_theme + "@Roguelike@ChooseDifficulty_Hardest" }).run(); + int difficulty = m_config->get_difficulty(); + if (m_config->get_theme() != "Phantom" && mode == RoguelikeMode::Collectible) { + if (difficulty == INT_MAX) { + ProcessTask(*this, { m_config->get_theme() + "@Roguelike@ChooseDifficulty_Hardest" }).run(); } else { - ProcessTask(*this, { m_roguelike_theme + "@Roguelike@ChooseDifficulty_Easiest" }).run(); + ProcessTask(*this, { m_config->get_theme() + "@Roguelike@ChooseDifficulty_Easiest" }).run(); } - ProcessTask(*this, { m_roguelike_theme + "@Roguelike@ChooseDifficultyConfirm" }).run(); + ProcessTask(*this, { m_config->get_theme() + "@Roguelike@ChooseDifficultyConfirm" }).run(); } return true; diff --git a/src/MaaCore/Task/Roguelike/RoguelikeDifficultySelectionTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeDifficultySelectionTaskPlugin.h index 53bd9102f9..c594899781 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeDifficultySelectionTaskPlugin.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeDifficultySelectionTaskPlugin.h @@ -1,13 +1,12 @@ #pragma once -#include "Task/AbstractTaskPlugin.h" -#include "Task/Roguelike/RoguelikeConfig.h" +#include "AbstractRoguelikeTaskPlugin.h" namespace asst { - class RoguelikeDifficultySelectionTaskPlugin : public AbstractTaskPlugin, public RoguelikeConfig + class RoguelikeDifficultySelectionTaskPlugin : public AbstractRoguelikeTaskPlugin { public: - using AbstractTaskPlugin::AbstractTaskPlugin; + using AbstractRoguelikeTaskPlugin::AbstractRoguelikeTaskPlugin; virtual ~RoguelikeDifficultySelectionTaskPlugin() override = default; public: diff --git a/src/MaaCore/Task/Roguelike/RoguelikeFoldartalGainTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeFoldartalGainTaskPlugin.cpp index 2678a162cd..23600a420f 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeFoldartalGainTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeFoldartalGainTaskPlugin.cpp @@ -11,14 +11,14 @@ bool asst::RoguelikeFoldartalGainTaskPlugin::verify(AsstMsg msg, const json::val return false; } - if (m_roguelike_theme.empty()) { + if (m_config->get_theme().empty()) { Log.error("Roguelike name doesn't exist!"); return false; } - if (m_roguelike_theme != "Sami") { + if (m_config->get_theme() != "Sami") { return false; } - const std::string roguelike_name = m_roguelike_theme + "@"; + const std::string roguelike_name = m_config->get_theme() + "@"; const std::string& task = details.get("details", "task", ""); std::string_view task_view = task; @@ -56,9 +56,7 @@ bool asst::RoguelikeFoldartalGainTaskPlugin::_run() { LogTraceFunction; - std::string theme = m_roguelike_theme; - std::string mode = status()->get_properties(Status::RoguelikeMode).value(); - + std::string theme = m_config->get_theme(); auto image = ctrler()->get_image(); OCRer analyzer(image); diff --git a/src/MaaCore/Task/Roguelike/RoguelikeFoldartalGainTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeFoldartalGainTaskPlugin.h index 53fab469f4..170a012e89 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeFoldartalGainTaskPlugin.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeFoldartalGainTaskPlugin.h @@ -1,13 +1,12 @@ #pragma once -#include "RoguelikeConfig.h" -#include "Task/AbstractTaskPlugin.h" +#include "AbstractRoguelikeTaskPlugin.h" namespace asst { - class RoguelikeFoldartalGainTaskPlugin : public AbstractTaskPlugin, public RoguelikeConfig + class RoguelikeFoldartalGainTaskPlugin : public AbstractRoguelikeTaskPlugin { public: - using AbstractTaskPlugin::AbstractTaskPlugin; + using AbstractRoguelikeTaskPlugin::AbstractRoguelikeTaskPlugin; virtual ~RoguelikeFoldartalGainTaskPlugin() override = default; public: diff --git a/src/MaaCore/Task/Roguelike/RoguelikeFoldartalUseTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeFoldartalUseTaskPlugin.cpp index b51a8e8c4e..e7d7cf2bbb 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeFoldartalUseTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeFoldartalUseTaskPlugin.cpp @@ -14,15 +14,15 @@ bool asst::RoguelikeFoldartalUseTaskPlugin::verify(AsstMsg msg, const json::valu return false; } - if (m_roguelike_theme.empty()) { + if (m_config->get_theme().empty()) { Log.error("Roguelike name doesn't exist!"); return false; } - if (m_roguelike_theme != "Sami") { + if (m_config->get_theme() != "Sami") { return false; } - std::string mode = status()->get_properties(Status::RoguelikeMode).value(); - std::string task_name_pre = m_roguelike_theme + "@Roguelike@Stage"; + auto mode = m_config->get_mode(); + std::string task_name_pre = m_config->get_theme() + "@Roguelike@Stage"; const std::string& task = details.get("details", "task", ""); std::string_view task_view = task; @@ -39,28 +39,28 @@ bool asst::RoguelikeFoldartalUseTaskPlugin::verify(AsstMsg msg, const json::valu task_view.remove_suffix(task_name_suf.length()); } if (task_view == "CombatDps" || task_view == "EmergencyDps" || task_view == "FerociousPresage") { - if (mode == "1" || mode == "4") { + if (mode == RoguelikeMode::Investment || mode == RoguelikeMode::Collectible) { m_stage = "SkipBattle"; } - else if (mode == "0") { + else if (mode == RoguelikeMode::Exp) { m_stage = "Battle"; } return true; } - if (task_view == "DreadfulFoe-5" && mode == "0") { + if (task_view == "DreadfulFoe-5" && mode == RoguelikeMode::Exp) { m_stage = "Boss"; return true; } - if (task_view == "Trader" && mode == "0") { + if (task_view == "Trader" && mode == RoguelikeMode::Exp) { m_stage = "Trader"; return true; } - if (task_view == "Encounter" && mode == "0") { + if (task_view == "Encounter" && mode == RoguelikeMode::Exp) { m_stage = "Encounter"; return true; } if ((task_view == "Gambling" || task_view == "EmergencyTransportation" || task_view == "WindAndRain") && - mode == "0") { + mode == RoguelikeMode::Exp) { m_stage = "Gambling"; return true; } @@ -73,9 +73,9 @@ bool asst::RoguelikeFoldartalUseTaskPlugin::_run() { LogTraceFunction; - std::string theme = m_roguelike_theme; + std::string theme = m_config->get_theme(); - std::vector combination = RoguelikeFoldartal.get_combination(m_roguelike_theme); + std::vector combination = RoguelikeFoldartal.get_combination(m_config->get_theme()); std::string overview_str = status()->get_str(Status::RoguelikeFoldartalOverview).value_or(json::value().to_string()); @@ -139,16 +139,16 @@ bool asst::RoguelikeFoldartalUseTaskPlugin::use_board(const std::string& up_boar { Log.trace("Try to use the board pair", up_board, down_board); - if (ProcessTask(*this, { m_roguelike_theme + "@Roguelike@Foldartal" }).run()) { + if (ProcessTask(*this, { m_config->get_theme() + "@Roguelike@Foldartal" }).run()) { swipe_to_top(); // todo:插入一个滑动时顺便更新密文板overview,因为有的板子可以用两次 if (search_and_click_board(up_board) && search_and_click_board(down_board)) { search_and_click_stage(); - if (ProcessTask(*this, { m_roguelike_theme + "@Roguelike@FoldartalUseConfirm" }).run()) { + if (ProcessTask(*this, { m_config->get_theme() + "@Roguelike@FoldartalUseConfirm" }).run()) { return true; } } - ProcessTask(*this, { m_roguelike_theme + "@Roguelike@FoldartalBack" }).run(); + ProcessTask(*this, { m_config->get_theme() + "@Roguelike@FoldartalBack" }).run(); } return false; } @@ -161,7 +161,7 @@ bool asst::RoguelikeFoldartalUseTaskPlugin::search_and_click_board(const std::st int try_time = 0; while (try_time < max_retry && !need_exit()) { OCRer analyzer(ctrler()->get_image()); - std::string task_name = m_roguelike_theme + "@Roguelike@FoldartalUseOcr"; + std::string task_name = m_config->get_theme() + "@Roguelike@FoldartalUseOcr"; analyzer.set_task_info(task_name); analyzer.set_required({ board }); if (!analyzer.analyze()) { @@ -187,13 +187,13 @@ bool asst::RoguelikeFoldartalUseTaskPlugin::search_and_click_stage() sleep(1000); // 节点会闪烁,所以这里不用单次Match - if (ProcessTask(*this, { m_roguelike_theme + "@Roguelike@FoldartalUseOnStage" }).run()) { + if (ProcessTask(*this, { m_config->get_theme() + "@Roguelike@FoldartalUseOnStage" }).run()) { return true; } // 滑到最右边,萨米的地图只有两页,暂时先这么糊着,出现识别不到再写循环 ProcessTask(*this, { "SwipeToTheRight" }).run(); sleep(1000); - if (ProcessTask(*this, { m_roguelike_theme + "@Roguelike@FoldartalUseOnStage" }).run()) { + if (ProcessTask(*this, { m_config->get_theme() + "@Roguelike@FoldartalUseOnStage" }).run()) { return true; } return false; @@ -209,7 +209,7 @@ void asst::RoguelikeFoldartalUseTaskPlugin::swipe_to_top() while (try_time < max_retry && !need_exit()) { while (try_time < max_retry && !need_exit()) { OCRer analyzer(ctrler()->get_image()); - analyzer.set_task_info(m_roguelike_theme + "@Roguelike@FoldartalUseOcr"); + analyzer.set_task_info(m_config->get_theme() + "@Roguelike@FoldartalUseOcr"); if (analyzer.analyze()) { return; } diff --git a/src/MaaCore/Task/Roguelike/RoguelikeFoldartalUseTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeFoldartalUseTaskPlugin.h index 88c085f4c2..82a0f7a196 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeFoldartalUseTaskPlugin.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeFoldartalUseTaskPlugin.h @@ -1,13 +1,12 @@ #pragma once -#include "RoguelikeConfig.h" -#include "Task/AbstractTaskPlugin.h" +#include "AbstractRoguelikeTaskPlugin.h" namespace asst { - class RoguelikeFoldartalUseTaskPlugin : public AbstractTaskPlugin, public RoguelikeConfig + class RoguelikeFoldartalUseTaskPlugin : public AbstractRoguelikeTaskPlugin { public: - using AbstractTaskPlugin::AbstractTaskPlugin; + using AbstractRoguelikeTaskPlugin::AbstractRoguelikeTaskPlugin; virtual ~RoguelikeFoldartalUseTaskPlugin() override = default; public: diff --git a/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.cpp index 126dfe713a..b578b16772 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.cpp @@ -15,11 +15,11 @@ bool asst::RoguelikeFormationTaskPlugin::verify(AsstMsg msg, const json::value& return false; } - if (m_roguelike_theme.empty()) { + if (m_config->get_theme().empty()) { Log.error("Roguelike name doesn't exist!"); return false; } - const std::string roguelike_name = m_roguelike_theme + "@"; + const std::string roguelike_name = m_config->get_theme() + "@"; const std::string& task = details.get("details", "task", ""); std::string_view task_view = task; if (task_view.starts_with(roguelike_name)) { @@ -102,14 +102,14 @@ void asst::RoguelikeFormationTaskPlugin::clear_and_reselect() Log.info(__FUNCTION__, "max_page: ", max_page, " oper_count: ", oper_list.size()); std::vector sorted_oper_list; - const auto& team_complete_condition = RoguelikeRecruit.get_team_complete_info(m_roguelike_theme); - const auto& group_list = RoguelikeRecruit.get_group_info(m_roguelike_theme); + const auto& team_complete_condition = RoguelikeRecruit.get_team_complete_info(m_config->get_theme()); + const auto& group_list = RoguelikeRecruit.get_group_info(m_config->get_theme()); for (const auto& condition : team_complete_condition) { // 优先选择阵容核心干员 int count = 0; int require = condition.threshold; for (const std::string& group_name : condition.groups) { for (const auto& oper : oper_list) { - std::vector group_ids = RoguelikeRecruit.get_group_id(m_roguelike_theme, oper.name); + std::vector group_ids = RoguelikeRecruit.get_group_id(m_config->get_theme(), oper.name); for (const auto& group_id : group_ids) { std::string oper_group = group_list[group_id]; if (oper_group == group_name) { diff --git a/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.h index 4dd406d607..7766e4e17a 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeFormationTaskPlugin.h @@ -1,18 +1,18 @@ #pragma once -#include "Task/AbstractTaskPlugin.h" -#include "Task/Roguelike/RoguelikeConfig.h" + +#include "AbstractRoguelikeTaskPlugin.h" #include "Vision/Roguelike/RoguelikeFormationImageAnalyzer.h" namespace asst { // 集成战略模式快捷编队任务 - class RoguelikeFormationTaskPlugin : public AbstractTaskPlugin, public RoguelikeConfig + class RoguelikeFormationTaskPlugin : public AbstractRoguelikeTaskPlugin { public: static constexpr size_t MaxNumOfOperPerPage = 8; public: - using AbstractTaskPlugin::AbstractTaskPlugin; + using AbstractRoguelikeTaskPlugin::AbstractRoguelikeTaskPlugin; virtual ~RoguelikeFormationTaskPlugin() override = default; virtual bool verify(AsstMsg msg, const json::value& details) const override; diff --git a/src/MaaCore/Task/Roguelike/RoguelikeLastRewardTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeLastRewardTaskPlugin.cpp index be65cf6f00..496518ff09 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeLastRewardTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeLastRewardTaskPlugin.cpp @@ -11,11 +11,11 @@ bool asst::RoguelikeLastRewardTaskPlugin::verify(AsstMsg msg, const json::value& return false; } - if (m_roguelike_theme.empty()) { + if (m_config->get_theme().empty()) { Log.error("Roguelike name doesn't exist!"); return false; } - const std::string roguelike_name = m_roguelike_theme + "@"; + const std::string roguelike_name = m_config->get_theme() + "@"; const std::string& task = details.get("details", "task", ""); std::string_view task_view = task; if (task_view.starts_with(roguelike_name)) { @@ -44,8 +44,8 @@ bool asst::RoguelikeLastRewardTaskPlugin::_run() { LogTraceFunction; - std::string mode = status()->get_properties(Status::RoguelikeMode).value(); - std::string stages_task_name = m_roguelike_theme + "@Roguelike@Stages"; + auto mode = m_config->get_mode(); + std::string stages_task_name = m_config->get_theme() + "@Roguelike@Stages"; std::string strategy_task_name = stages_task_name + "_default"; if (Task.get(strategy_task_name) == nullptr) { @@ -57,11 +57,10 @@ bool asst::RoguelikeLastRewardTaskPlugin::_run() } // 需要开局凹直升 - bool start_with_elite_two = - status()->get_properties(Status::RoguelikeStartWithEliteTwo).value() == std::to_string(true); - if (m_roguelike_theme != "Phantom" && mode == "4") { + bool start_with_elite_two = m_config->get_start_with_elite_two(); + if (m_config->get_theme() != "Phantom" && mode == RoguelikeMode::Collectible) { if (m_is_next_hardest) { - status()->set_properties(Status::RoguelikeDifficulty, "max"); + m_config->set_difficulty(INT_MAX); // 获得热水壶和演讲时停止肉鸽(凹直升则继续),获得其他奖励时重开 std::string last_reward_stop_or_continue = start_with_elite_two ? "Roguelike@LastReward_default" : "Roguelike@LastReward_stop"; @@ -72,7 +71,7 @@ bool asst::RoguelikeLastRewardTaskPlugin::_run() Task.set_task_base("Roguelike@LastRewardRand", "Roguelike@LastReward_restart"); } else { - status()->set_properties(Status::RoguelikeDifficulty, "0"); + m_config->set_difficulty(0); // 重置开局奖励 next,获得任意奖励均继续 Task.set_task_base("Roguelike@LastReward", "Roguelike@LastReward_default"); Task.set_task_base("Roguelike@LastReward2", "Roguelike@LastReward_default"); diff --git a/src/MaaCore/Task/Roguelike/RoguelikeLastRewardTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeLastRewardTaskPlugin.h index 8e817f8862..b5855035cc 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeLastRewardTaskPlugin.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeLastRewardTaskPlugin.h @@ -1,13 +1,12 @@ #pragma once -#include "Task/AbstractTaskPlugin.h" -#include "Task/Roguelike/RoguelikeConfig.h" +#include "AbstractRoguelikeTaskPlugin.h" namespace asst { - class RoguelikeLastRewardTaskPlugin : public AbstractTaskPlugin, public RoguelikeConfig + class RoguelikeLastRewardTaskPlugin : public AbstractRoguelikeTaskPlugin { public: - using AbstractTaskPlugin::AbstractTaskPlugin; + using AbstractRoguelikeTaskPlugin::AbstractRoguelikeTaskPlugin; virtual ~RoguelikeLastRewardTaskPlugin() override = default; public: diff --git a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp index c1a54e844b..68ae15646a 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.cpp @@ -21,11 +21,11 @@ bool asst::RoguelikeRecruitTaskPlugin::verify(AsstMsg msg, const json::value& de return false; } - if (m_roguelike_theme.empty()) { + if (m_config->get_theme().empty()) { Log.error("Roguelike name doesn't exist!"); return false; } - const std::string roguelike_name = m_roguelike_theme + "@"; + const std::string roguelike_name = m_config->get_theme() + "@"; const std::string& task = details.get("details", "task", ""); std::string_view task_view = task; if (task_view.starts_with(roguelike_name)) { @@ -57,13 +57,13 @@ bool asst::RoguelikeRecruitTaskPlugin::_run() LogTraceFunction; // 这是第几次招募 - size_t recruit_count = status()->get_number(Status::RoguelikeRecruitmentCount).value_or(0) + 1; - status()->set_number(Status::RoguelikeRecruitmentCount, recruit_count); + int recruit_count = m_config->get_recruitment_count() + 1; + m_config->set_recruitment_count(recruit_count); // 是否有开局干员,阵容中必须有开局干员,没有前仅招募start干员或预备干员 - bool start_complete = status()->get_number(Status::RoguelikeRecruitmentStartsComplete).value_or(0); + bool start_complete = m_config->get_recruitment_starts_complete(); // 是否阵容完备,阵容完备前,仅招募key干员或预备干员 - bool team_complete = status()->get_number(Status::RoguelikeRecruitmentTeamComplete).value_or(0); + bool team_complete = m_config->get_recruitment_team_complete(); // 是否使用助战干员开局 bool use_support = get_status_bool(Status::RoguelikeUseSupport); @@ -80,7 +80,7 @@ bool asst::RoguelikeRecruitTaskPlugin::_run() } } - bool team_full_without_rookie = status()->get_number(Status::RoguelikeTeamFullWithoutRookie).value_or(0); + bool team_full_without_rookie = m_config->get_team_full_without_rookie(); // Log.info("team_full_without_rookie", team_full_without_rookie); // 编队信息 (已有角色) @@ -99,9 +99,9 @@ bool asst::RoguelikeRecruitTaskPlugin::_run() // __________________will-be-removed-end__________________ std::unordered_map group_count; - const auto& group_list = RoguelikeRecruit.get_group_info(m_roguelike_theme); + const auto& group_list = RoguelikeRecruit.get_group_info(m_config->get_theme()); for (const auto& oper : chars_map) { - std::vector group_ids = RoguelikeRecruit.get_group_id(m_roguelike_theme, oper.first); + std::vector group_ids = RoguelikeRecruit.get_group_id(m_config->get_theme(), oper.first); for (const auto& group_id : group_ids) { const std::string& group_name = group_list[group_id]; group_count[group_name]++; @@ -110,7 +110,7 @@ bool asst::RoguelikeRecruitTaskPlugin::_run() if (!start_complete) { for (const auto& oper : chars_map) { - auto& recruit_info = RoguelikeRecruit.get_oper_info(m_roguelike_theme, oper.first); + auto& recruit_info = RoguelikeRecruit.get_oper_info(m_config->get_theme(), oper.first); if (recruit_info.is_start) start_complete = true; } } @@ -119,7 +119,7 @@ bool asst::RoguelikeRecruitTaskPlugin::_run() bool complete = true; int complete_count = 0; int complete_require = 0; - const auto& team_complete_condition = RoguelikeRecruit.get_team_complete_info(m_roguelike_theme); + const auto& team_complete_condition = RoguelikeRecruit.get_team_complete_info(m_config->get_theme()); for (const auto& condition : team_complete_condition) { int count = 0; complete_require += condition.threshold; @@ -144,10 +144,8 @@ bool asst::RoguelikeRecruitTaskPlugin::_run() team_complete = true; } - status()->set_number(Status::RoguelikeRecruitmentStartsComplete, - start_complete); // 阵容中必须有开局干员,没有前仅招募start干员或预备干员 - status()->set_number(Status::RoguelikeRecruitmentTeamComplete, - team_complete); // 阵容完备前,仅招募key干员或预备干员 + m_config->set_recruitment_starts_complete(start_complete); // 阵容中必须有开局干员,没有前仅招募start干员或预备干员 + m_config->set_recruitment_team_complete(team_complete); // 阵容完备前,仅招募key干员或预备干员 // 候选干员 std::vector recruit_list; @@ -217,7 +215,7 @@ bool asst::RoguelikeRecruitTaskPlugin::_run() } // 查询招募配置 - auto& recruit_info = RoguelikeRecruit.get_oper_info(m_roguelike_theme, oper_info.name); + auto& recruit_info = RoguelikeRecruit.get_oper_info(m_config->get_theme(), oper_info.name); int priority = 0; // 查询编队是否已持有该干员 @@ -435,9 +433,9 @@ bool asst::RoguelikeRecruitTaskPlugin::recruit_appointed_char(const std::string& bool has_been_same = false; int i = 0; // 是否凹直升 - std::string start_with_elite_two = status()->get_properties(Status::RoguelikeStartWithEliteTwo).value(); + bool start_with_elite_two = m_config->get_start_with_elite_two(); // 当前肉鸽难度 - std::string difficulty = status()->get_properties(Status::RoguelikeDifficulty).value(); + int difficulty = m_config->get_difficulty(); for (; i != SwipeTimes; ++i) { if (need_exit()) { @@ -461,14 +459,14 @@ bool asst::RoguelikeRecruitTaskPlugin::recruit_appointed_char(const std::string& if (it != chars.cend()) { // 需要凹直升且当前为max难度时 - if (start_with_elite_two == "1" && difficulty == "max") { + if (start_with_elite_two && difficulty == INT_MAX) { if (it->elite == 2) { m_task_ptr->set_enable(false); } else { // 重置难度并放弃 - status()->set_properties(Status::RoguelikeDifficulty, "0"); - ProcessTask(*this, { m_roguelike_theme + "@Roguelike@ExitThenAbandon" }) + m_config->set_difficulty(0); + ProcessTask(*this, { m_config->get_theme() + "@Roguelike@ExitThenAbandon" }) .set_times_limit("Roguelike@Abandon", 0) .run(); } @@ -512,10 +510,10 @@ bool asst::RoguelikeRecruitTaskPlugin::recruit_support_char() LogTraceFunction; const int MaxRefreshTimes = Task.get("RoguelikeRefreshSupportBtnOcr")->special_params.front(); - auto core_opt = status()->get_str(Status::RoguelikeCoreChar); - status()->set_str(Status::RoguelikeCoreChar, ""); - if (core_opt && !core_opt->empty()) { - if (recruit_support_char(core_opt.value(), MaxRefreshTimes)) return true; + auto core_opt = m_config->get_core_char(); + m_config->set_core_char(""); + if (!core_opt.empty()) { + if (recruit_support_char(core_opt, MaxRefreshTimes)) return true; } return false; } @@ -597,12 +595,12 @@ bool asst::RoguelikeRecruitTaskPlugin::recruit_own_char() { LogTraceFunction; - auto core_opt = status()->get_str(Status::RoguelikeCoreChar); - if (!core_opt || core_opt->empty()) { + auto core_opt = m_config->get_core_char(); + if (core_opt.empty()) { return false; } - status()->set_str(Status::RoguelikeCoreChar, ""); - return recruit_appointed_char(core_opt.value()); + m_config->set_core_char(""); + return recruit_appointed_char(core_opt); } void asst::RoguelikeRecruitTaskPlugin::select_oper(const battle::roguelike::Recruitment& oper) diff --git a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.h index 444ac8b5a6..417a89806a 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeRecruitTaskPlugin.h @@ -1,7 +1,6 @@ #pragma once #include "Common/AsstBattleDef.h" -#include "Task/AbstractTaskPlugin.h" -#include "Task/Roguelike/RoguelikeConfig.h" +#include "AbstractRoguelikeTaskPlugin.h" namespace asst { @@ -13,10 +12,10 @@ namespace asst int page_index = 0; // 所在页码 (用于判断翻页方向) bool is_alternate = false; // 是否后备干员 (允许重复招募、划到后备干员时不再往右划动) }; - class RoguelikeRecruitTaskPlugin : public AbstractTaskPlugin, public RoguelikeConfig + class RoguelikeRecruitTaskPlugin : public AbstractRoguelikeTaskPlugin { public: - using AbstractTaskPlugin::AbstractTaskPlugin; + using AbstractRoguelikeTaskPlugin::AbstractRoguelikeTaskPlugin; virtual ~RoguelikeRecruitTaskPlugin() override = default; virtual bool verify(AsstMsg msg, const json::value& details) const override; diff --git a/src/MaaCore/Task/Roguelike/RoguelikeResetTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeResetTaskPlugin.cpp index d91104c3b8..c88b35937e 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeResetTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeResetTaskPlugin.cpp @@ -9,11 +9,11 @@ bool asst::RoguelikeResetTaskPlugin::verify(AsstMsg msg, const json::value& deta return false; } - if (m_roguelike_theme.empty()) { + if (m_config->get_theme().empty()) { Log.error("Roguelike name doesn't exist!"); return false; } - const std::string roguelike_name = m_roguelike_theme + "@"; + const std::string roguelike_name = m_config->get_theme() + "@"; const std::string& task = details.get("details", "task", ""); std::string_view task_view = task; if (task_view.starts_with(roguelike_name)) { @@ -29,8 +29,11 @@ bool asst::RoguelikeResetTaskPlugin::verify(AsstMsg msg, const json::value& deta bool asst::RoguelikeResetTaskPlugin::_run() { + // 改完全部肉鸽数据之后一起删掉! // 简单粗暴,后面如果多任务间有联动可能要改改 status()->clear_number(); status()->clear_str(); + + m_config->clear(); return true; } diff --git a/src/MaaCore/Task/Roguelike/RoguelikeResetTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeResetTaskPlugin.h index c0a921bf2c..5f048e6c49 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeResetTaskPlugin.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeResetTaskPlugin.h @@ -1,13 +1,12 @@ #pragma once -#include "Task/AbstractTaskPlugin.h" -#include "Task/Roguelike/RoguelikeConfig.h" +#include "AbstractRoguelikeTaskPlugin.h" namespace asst { - class RoguelikeResetTaskPlugin : public AbstractTaskPlugin, public RoguelikeConfig + class RoguelikeResetTaskPlugin : public AbstractRoguelikeTaskPlugin { public: - using AbstractTaskPlugin::AbstractTaskPlugin; + using AbstractRoguelikeTaskPlugin::AbstractRoguelikeTaskPlugin; virtual ~RoguelikeResetTaskPlugin() = default; virtual bool verify(AsstMsg msg, const json::value& details) const override; diff --git a/src/MaaCore/Task/Roguelike/RoguelikeShoppingTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeShoppingTaskPlugin.cpp index 9fd2e7fcf9..004defa1b7 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeShoppingTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeShoppingTaskPlugin.cpp @@ -16,11 +16,11 @@ bool asst::RoguelikeShoppingTaskPlugin::verify(AsstMsg msg, const json::value& d return false; } - if (m_roguelike_theme.empty()) { + if (m_config->get_theme().empty()) { Log.error("Roguelike name doesn't exist!"); return false; } - const std::string roguelike_name = m_roguelike_theme + "@"; + const std::string roguelike_name = m_config->get_theme() + "@"; const std::string& task = details.get("details", "task", ""); std::string_view task_view = task; if (task_view.starts_with(roguelike_name)) { @@ -46,7 +46,7 @@ bool asst::RoguelikeShoppingTaskPlugin::_run() return false; } - bool no_longer_buy = status()->get_number(Status::RoguelikeTraderNoLongerBuy).value_or(0) ? true : false; + bool no_longer_buy = m_config->get_trader_no_longer_buy(); std::string str_chars_info = status()->get_str(Status::RoguelikeCharOverview).value_or(json::value().to_string()); json::value json_chars_info = json::parse(str_chars_info).value_or(json::value()); @@ -104,8 +104,8 @@ bool asst::RoguelikeShoppingTaskPlugin::_run() } bool bought = false; - auto& all_goods = RoguelikeShopping.get_goods(m_roguelike_theme); - std::vector all_foldartal = m_roguelike_theme == "Sami" + auto& all_goods = RoguelikeShopping.get_goods(m_config->get_theme()); + std::vector all_foldartal = m_config->get_theme() == "Sami" ? Task.get("Sami@Roguelike@FoldartalGainOcr")->text : std::vector(); for (const auto& goods : all_goods) { @@ -170,7 +170,7 @@ bool asst::RoguelikeShoppingTaskPlugin::_run() Log.info("Ready to buy", goods.name); ctrler()->click(find_it->rect); bought = true; - if (m_roguelike_theme == "Sami") { + if (m_config->get_theme() == "Sami") { auto iter = std::find(all_foldartal.begin(), all_foldartal.end(), goods.name); if (iter != all_foldartal.end()) { @@ -184,7 +184,7 @@ bool asst::RoguelikeShoppingTaskPlugin::_run() } } if (goods.no_longer_buy) { - status()->set_number(Status::RoguelikeTraderNoLongerBuy, 1); + m_config->set_trader_no_longer_buy(true); } break; } diff --git a/src/MaaCore/Task/Roguelike/RoguelikeShoppingTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeShoppingTaskPlugin.h index db151729ea..c6bd8dd3ed 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeShoppingTaskPlugin.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeShoppingTaskPlugin.h @@ -1,13 +1,12 @@ #pragma once -#include "Task/AbstractTaskPlugin.h" -#include "Task/Roguelike/RoguelikeConfig.h" +#include "AbstractRoguelikeTaskPlugin.h" namespace asst { - class RoguelikeShoppingTaskPlugin : public AbstractTaskPlugin, public RoguelikeConfig + class RoguelikeShoppingTaskPlugin : public AbstractRoguelikeTaskPlugin { public: - using AbstractTaskPlugin::AbstractTaskPlugin; + using AbstractRoguelikeTaskPlugin::AbstractRoguelikeTaskPlugin; virtual ~RoguelikeShoppingTaskPlugin() override = default; virtual bool verify(AsstMsg msg, const json::value& details) const override; diff --git a/src/MaaCore/Task/Roguelike/RoguelikeSkillSelectionTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeSkillSelectionTaskPlugin.cpp index 492decbff9..ac08ccea94 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeSkillSelectionTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeSkillSelectionTaskPlugin.cpp @@ -13,11 +13,11 @@ bool asst::RoguelikeSkillSelectionTaskPlugin::verify(AsstMsg msg, const json::va return false; } - if (m_roguelike_theme.empty()) { + if (m_config->get_theme().empty()) { Log.error("Roguelike name doesn't exist!"); return false; } - const std::string roguelike_name = m_roguelike_theme + "@"; + const std::string roguelike_name = m_config->get_theme() + "@"; const std::string& task = details.get("details", "task", ""); std::string_view task_view = task; if (task_view.starts_with(roguelike_name)) { @@ -45,7 +45,7 @@ bool asst::RoguelikeSkillSelectionTaskPlugin::_run() int delay = Task.get("RoguelikeSkillSelectionMove1")->post_delay; bool has_rookie = false; for (const auto& [name, skill_vec] : analyzer.get_result()) { - const auto& oper_info = RoguelikeRecruit.get_oper_info(m_roguelike_theme, name); + const auto& oper_info = RoguelikeRecruit.get_oper_info(m_config->get_theme(), name); if (oper_info.name.empty()) { Log.warn("Unknown oper", name); continue; @@ -80,11 +80,11 @@ bool asst::RoguelikeSkillSelectionTaskPlugin::_run() if (analyzer.get_team_full() && !has_rookie) { Log.info("Team full and no rookie"); - status()->set_number(Status::RoguelikeTeamFullWithoutRookie, 1); + m_config->set_team_full_without_rookie(true); } else { Log.info("Team not full or has rookie"); - status()->set_number(Status::RoguelikeTeamFullWithoutRookie, 0); + m_config->set_team_full_without_rookie(false); } return true; } diff --git a/src/MaaCore/Task/Roguelike/RoguelikeSkillSelectionTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeSkillSelectionTaskPlugin.h index 13c2f526cf..efb55e099b 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeSkillSelectionTaskPlugin.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeSkillSelectionTaskPlugin.h @@ -1,15 +1,15 @@ #pragma once -#include "Task/AbstractTaskPlugin.h" -#include "Task/Roguelike/RoguelikeConfig.h" #include +#include "AbstractRoguelikeTaskPlugin.h" + namespace asst { - class RoguelikeSkillSelectionTaskPlugin final : public AbstractTaskPlugin, public RoguelikeConfig + class RoguelikeSkillSelectionTaskPlugin final : public AbstractRoguelikeTaskPlugin { public: - using AbstractTaskPlugin::AbstractTaskPlugin; + using AbstractRoguelikeTaskPlugin::AbstractRoguelikeTaskPlugin; virtual ~RoguelikeSkillSelectionTaskPlugin() override = default; virtual bool verify(AsstMsg msg, const json::value& details) const override; diff --git a/src/MaaCore/Task/Roguelike/RoguelikeStageEncounterTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeStageEncounterTaskPlugin.cpp index e1d889c1ae..bdbeb139d2 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeStageEncounterTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeStageEncounterTaskPlugin.cpp @@ -16,11 +16,11 @@ bool asst::RoguelikeStageEncounterTaskPlugin::verify(AsstMsg msg, const json::va return false; } - if (m_roguelike_theme.empty()) { + if (m_config->get_theme().empty()) { Log.error("Roguelike name doesn't exist!"); return false; } - const std::string roguelike_name = m_roguelike_theme + "@"; + const std::string roguelike_name = m_config->get_theme() + "@"; const std::string& task = details.get("details", "task", ""); std::string_view task_view = task; if (task_view.starts_with(roguelike_name)) { @@ -38,11 +38,11 @@ bool asst::RoguelikeStageEncounterTaskPlugin::_run() { LogTraceFunction; - std::string rogue_mode = status()->get_properties(Status::RoguelikeMode).value(); - std::vector events = RoguelikeStageEncounter.get_events(m_roguelike_theme); + auto mode = m_config->get_mode(); + std::vector events = RoguelikeStageEncounter.get_events(m_config->get_theme()); // 刷源石锭模式和烧水模式 - if (rogue_mode == "1" || rogue_mode == "4") { - events = RoguelikeStageEncounter.get_events(m_roguelike_theme + "_deposit"); + if (mode == RoguelikeMode::Investment || mode == RoguelikeMode::Collectible) { + events = RoguelikeStageEncounter.get_events(m_config->get_theme() + "_deposit"); } std::vector event_names; std::unordered_map event_map; @@ -79,7 +79,7 @@ bool asst::RoguelikeStageEncounterTaskPlugin::_run() info["details"]["default_choose"] = event.default_choose; callback(AsstMsg::SubTaskExtraInfo, info); for (int j = 0; j < 2; ++j) { - ProcessTask(*this, { m_roguelike_theme + "@Roguelike@OptionChoose" + std::to_string(event.option_num) + "-" + + ProcessTask(*this, { m_config->get_theme() + "@Roguelike@OptionChoose" + std::to_string(event.option_num) + "-" + std::to_string(event.default_choose) }) .run(); sleep(300); diff --git a/src/MaaCore/Task/Roguelike/RoguelikeStageEncounterTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeStageEncounterTaskPlugin.h index 1c29762f24..7793e51bf3 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeStageEncounterTaskPlugin.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeStageEncounterTaskPlugin.h @@ -1,13 +1,12 @@ #pragma once -#include "Task/AbstractTaskPlugin.h" -#include "Task/Roguelike/RoguelikeConfig.h" +#include "AbstractRoguelikeTaskPlugin.h" namespace asst { - class RoguelikeStageEncounterTaskPlugin : public AbstractTaskPlugin, public RoguelikeConfig + class RoguelikeStageEncounterTaskPlugin : public AbstractRoguelikeTaskPlugin { public: - using AbstractTaskPlugin::AbstractTaskPlugin; + using AbstractRoguelikeTaskPlugin::AbstractRoguelikeTaskPlugin; virtual ~RoguelikeStageEncounterTaskPlugin() override = default; public: diff --git a/src/MaaCore/Task/Roguelike/RoguelikeStrategyChangeTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeStrategyChangeTaskPlugin.cpp index 21b0bf9a01..ee3bd9e50a 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeStrategyChangeTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeStrategyChangeTaskPlugin.cpp @@ -13,11 +13,11 @@ bool asst::RoguelikeStrategyChangeTaskPlugin::verify(AsstMsg msg, const json::va return false; } - if (m_roguelike_theme.empty()) { + if (m_config->get_theme().empty()) { Log.error("Roguelike name doesn't exist!"); return false; } - const std::string roguelike_name = m_roguelike_theme + "@"; + const std::string roguelike_name = m_config->get_theme() + "@"; const std::string& task = details.get("details", "task", ""); std::string_view task_view = task; if (task_view.starts_with(roguelike_name)) { @@ -35,8 +35,7 @@ bool asst::RoguelikeStrategyChangeTaskPlugin::_run() { LogTraceFunction; - std::string theme = m_roguelike_theme; - std::string mode = status()->get_properties(Status::RoguelikeMode).value(); + std::string theme = m_config->get_theme(); // TODO: 这段识别有点冗余,要是 plugin 能获取识别结果就好了 std::string task_name = theme + "@Roguelike@StrategyChange"; diff --git a/src/MaaCore/Task/Roguelike/RoguelikeStrategyChangeTaskPlugin.h b/src/MaaCore/Task/Roguelike/RoguelikeStrategyChangeTaskPlugin.h index 36ed680882..f711173808 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeStrategyChangeTaskPlugin.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeStrategyChangeTaskPlugin.h @@ -1,13 +1,12 @@ #pragma once -#include "RoguelikeConfig.h" -#include "Task/AbstractTaskPlugin.h" +#include "AbstractRoguelikeTaskPlugin.h" namespace asst { - class RoguelikeStrategyChangeTaskPlugin : public AbstractTaskPlugin, public RoguelikeConfig + class RoguelikeStrategyChangeTaskPlugin : public AbstractRoguelikeTaskPlugin { public: - using AbstractTaskPlugin::AbstractTaskPlugin; + using AbstractRoguelikeTaskPlugin::AbstractRoguelikeTaskPlugin; virtual ~RoguelikeStrategyChangeTaskPlugin() override = default; public: diff --git a/src/MaaCore/Vision/Miscellaneous/StageDropsImageAnalyzer.cpp b/src/MaaCore/Vision/Miscellaneous/StageDropsImageAnalyzer.cpp index d5684eb3b8..95c7bfee62 100644 --- a/src/MaaCore/Vision/Miscellaneous/StageDropsImageAnalyzer.cpp +++ b/src/MaaCore/Vision/Miscellaneous/StageDropsImageAnalyzer.cpp @@ -361,10 +361,41 @@ bool asst::StageDropsImageAnalyzer::analyze_drops_for_12() return !flag_analyzer.analyze(); } +std::optional asst::StageDropsImageAnalyzer::merge_image(const cv::Mat& new_img) +{ + LogTraceFunction; + + const cv::Rect ref_roi = { m_image.cols - 320, 530, 280, 100 }; + Matcher offset_match(new_img(cv::Rect { 0, ref_roi.y, new_img.cols, ref_roi.height })); + offset_match.set_templ(m_image(ref_roi)); + offset_match.set_threshold(0.7); + if (!offset_match.analyze()) { + Log.error("Unable to merge images"); + return std::nullopt; + } + const int offset = (new_img.cols - offset_match.get_result().rect.x) - (m_image.cols - ref_roi.x); + + const int rel_x = offset + m_image.cols - new_img.cols; + + const cv::Rect overlay_rect = { 540, 500, 740, 220 }; + cv::Rect overlay_rect_on_strip = overlay_rect; + overlay_rect_on_strip.x += rel_x; + + cv::Mat new_strip = cv::Mat { m_image.rows, overlay_rect_on_strip.br().x, m_image.type(), cv::Scalar(0) }; + m_image.copyTo(new_strip(cv::Rect { 0, 0, m_image.cols, m_image.rows })); + new_img(overlay_rect).copyTo(new_strip(overlay_rect_on_strip)); + + m_image = new_strip; + + return offset; +} + bool asst::StageDropsImageAnalyzer::analyze_baseline() { LogTraceFunction; + m_baseline.clear(); + auto task_ptr = Task.get("StageDrops-BaseLine"); cv::Mat preprocessed_roi; @@ -386,7 +417,9 @@ bool asst::StageDropsImageAnalyzer::analyze_baseline() cv::getStructuringElement(cv::MORPH_RECT, { 3, 1 })); // cropping after derivatives, dilation, and erosion - cv::cvtColor(preprocessed_roi(make_rect(task_ptr->roi)), preprocessed_roi, cv::COLOR_BGR2GRAY); + auto roi = make_rect(task_ptr->roi); + roi.width = WindowWidthDefault - roi.br().x + m_image.cols; // image may be wider than 1280 + cv::cvtColor(preprocessed_roi(roi), preprocessed_roi, cv::COLOR_BGR2GRAY); } cv::Mat preprocessed_bin; @@ -457,6 +490,10 @@ bool asst::StageDropsImageAnalyzer::analyze_baseline() Log.trace(__FUNCTION__, "baseline", key.to_string()); } + if (m_image.cols - (x_offset + bounding_rect.width) < 30 + max_spacing) { + Log.trace("bounding_rect.right=", x_offset + bounding_rect.width, ", more materials to reveal?"); + } // TODO: else tell caller to prevent unnecessary swipe + return !m_baseline.empty(); } @@ -671,7 +708,7 @@ std::optional asst::StageDropsImageAnalyzer::match_quantity_stri } Matcher analyzer(m_image); - analyzer.set_threshold(0.8); + analyzer.set_threshold(0.76); // temporary fix for #7282 analyzer.set_templ(templ); analyzer.set_mask_range(1, 255, false, true); analyzer.set_roi(roi); diff --git a/src/MaaCore/Vision/Miscellaneous/StageDropsImageAnalyzer.h b/src/MaaCore/Vision/Miscellaneous/StageDropsImageAnalyzer.h index 15b0133bc0..322f891032 100644 --- a/src/MaaCore/Vision/Miscellaneous/StageDropsImageAnalyzer.h +++ b/src/MaaCore/Vision/Miscellaneous/StageDropsImageAnalyzer.h @@ -23,6 +23,11 @@ namespace asst // > const auto& get_drops() const noexcept { return m_drops; } + // merge a new image with a different material position into m_image + // might resize m_image. + // return offset in pixels + std::optional merge_image(const cv::Mat& new_img); + protected: bool analyze_stage_code(); bool analyze_times(); diff --git a/src/MaaWpfGui/Constants/ConfigurationKeys.cs b/src/MaaWpfGui/Constants/ConfigurationKeys.cs index 4f33d32f1e..bb1962da62 100644 --- a/src/MaaWpfGui/Constants/ConfigurationKeys.cs +++ b/src/MaaWpfGui/Constants/ConfigurationKeys.cs @@ -69,6 +69,8 @@ namespace MaaWpfGui.Constants public const string AutoRestartOnDrop = "Start.AutoRestartOnDrop"; public const string StartsWithScript = "Start.StartsWithScript"; public const string EndsWithScript = "Start.EndsWithScript"; + public const string BlockSleep = "Start.BlockSleep"; + public const string BlockSleepWithScreenOn = "Start.BlockSleepWithScreenOn"; public const string ChooseLevel3 = "Recruit.ChooseLevel3"; public const string ChooseLevel4 = "Recruit.ChooseLevel4"; diff --git a/src/MaaWpfGui/Main/AsstProxy.cs b/src/MaaWpfGui/Main/AsstProxy.cs index 516c3c3fff..a5cd91e73f 100644 --- a/src/MaaWpfGui/Main/AsstProxy.cs +++ b/src/MaaWpfGui/Main/AsstProxy.cs @@ -2028,9 +2028,10 @@ namespace MaaWpfGui.Main /// 是不是突袭 /// 任务类型 /// 任务重复执行次数 + /// 是否使用理智药 /// 是否启动战斗 /// 是否成功。 - public bool AsstStartCopilot(string filename, bool formation, bool addTrust, bool addUserAdditional, JArray userAdditional, bool needNavigate, string navigateName, bool isAdverse, string type, int loopTimes, bool asstStart = true) + public bool AsstStartCopilot(string filename, bool formation, bool addTrust, bool addUserAdditional, JArray userAdditional, bool needNavigate, string navigateName, bool isAdverse, string type, int loopTimes, bool useSanityPotion, bool asstStart = true) { var taskParams = new JObject { @@ -2043,6 +2044,7 @@ namespace MaaWpfGui.Main ["navigate_name"] = navigateName, ["is_adverse"] = isAdverse, ["loop_times"] = loopTimes, + ["use_sanity_potion"] = useSanityPotion, }; AsstTaskId id = AsstAppendTaskWithEncoding(type, taskParams); _latestTaskId[TaskType.Copilot] = id; diff --git a/src/MaaWpfGui/Models/ResourceUpdater.cs b/src/MaaWpfGui/Models/ResourceUpdater.cs index 9f0a3f4e83..2edfaf3644 100644 --- a/src/MaaWpfGui/Models/ResourceUpdater.cs +++ b/src/MaaWpfGui/Models/ResourceUpdater.cs @@ -13,12 +13,15 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.IO; using System.Linq; using System.Net.Http; using System.Threading.Tasks; +using System.Windows; using MaaWpfGui.Constants; using MaaWpfGui.Helper; +using MaaWpfGui.ViewModels; using Stylet; namespace MaaWpfGui.Models @@ -76,11 +79,17 @@ namespace MaaWpfGui.Models { var ret = await Update(); - if (ret == UpdateResult.Success) + string toastMessage = ret switch + { + UpdateResult.Failed => LocalizationHelper.GetString("GameResourceFailed"), + UpdateResult.Success => LocalizationHelper.GetString("GameResourceUpdated"), + _ => string.Empty, + }; + if (!string.IsNullOrEmpty(toastMessage)) { _ = Execute.OnUIThreadAsync(() => { - using var toast = new ToastNotification(LocalizationHelper.GetString("GameResourceUpdated")); + using var toast = new ToastNotification(toastMessage); toast.Show(); }); } @@ -180,6 +189,7 @@ namespace MaaWpfGui.Models return UpdateResult.NotModified; } + OutputDownloadProgress(1, LocalizationHelper.GetString("GameResourceUpdatePreparing")); var ret1 = await UpdateFilesWithIndex(baseUrl); if (ret1 == UpdateResult.Failed) @@ -191,6 +201,7 @@ namespace MaaWpfGui.Models return UpdateResult.Failed; } + OutputDownloadProgress(2, LocalizationHelper.GetString("GameResourceUpdatePreparing")); var ret2 = await UpdateSingleFiles(baseUrl); if (ret2 == UpdateResult.Failed) @@ -200,10 +211,12 @@ namespace MaaWpfGui.Models if (ret1 != UpdateResult.Success && ret2 != UpdateResult.Success) { + OutputDownloadProgress(LocalizationHelper.GetString("GameResourceNotModified")); return UpdateResult.NotModified; } PostProcVersionChecks(); + OutputDownloadProgress(LocalizationHelper.GetString("GameResourceUpdated")); return UpdateResult.Success; } @@ -211,6 +224,9 @@ namespace MaaWpfGui.Models { UpdateResult ret = UpdateResult.NotModified; + var maxCount = _maaSingleFiles.Count; + var count = 0; + // TODO: 加个文件存这些文件的 hash,如果 hash 没变就不下载了,只需要请求一次 foreach (var file in _maaSingleFiles) { @@ -220,15 +236,18 @@ namespace MaaWpfGui.Models if (sRet == UpdateResult.Failed) { - ret = UpdateResult.Failed; + OutputDownloadProgress(LocalizationHelper.GetString("GameResourceFailed")); + return UpdateResult.Failed; } + OutputDownloadProgress(2, ++count, maxCount); if (ret == UpdateResult.NotModified && sRet == UpdateResult.Success) { ret = UpdateResult.Success; } } + OutputDownloadProgress(2, "Update completed"); return ret; } @@ -250,32 +269,34 @@ namespace MaaWpfGui.Models var ret = UpdateResult.NotModified; var context = File.ReadAllText(indexPath); + var maxCount = context + .Split('\n') + .ToList() + .Where(file => !string.IsNullOrEmpty(file)) + .Count(file => !File.Exists(Path.Combine(Environment.CurrentDirectory, file))); + var count = 0; foreach (var file in context.Split('\n').ToList() .Where(file => !string.IsNullOrEmpty(file)) .Where(file => !File.Exists(Path.Combine(Environment.CurrentDirectory, file)))) { - try + await Task.Delay(1000); + + var sRet = await UpdateFileWithETag(baseUrl, file, file); + if (sRet == UpdateResult.Failed) { - await Task.Delay(1000); - - var sRet = await UpdateFileWithETag(baseUrl, file, file); - if (sRet == UpdateResult.Failed) - { - return UpdateResult.Failed; - } - - if (ret == UpdateResult.NotModified && sRet == UpdateResult.Success) - { - ret = UpdateResult.Success; - } + OutputDownloadProgress(LocalizationHelper.GetString("GameResourceFailed")); + return UpdateResult.Failed; } - catch (Exception) + + OutputDownloadProgress(1, ++count, maxCount); + if (ret == UpdateResult.NotModified && sRet == UpdateResult.Success) { - // ignore + ret = UpdateResult.Success; } } + OutputDownloadProgress(1, "Update completed"); return ret; } @@ -318,5 +339,48 @@ namespace MaaWpfGui.Models return UpdateResult.Success; } + + private static ObservableCollection _logItemViewModels; + + private static void OutputDownloadProgress(int index, int count = 0, int maxCount = 1) + { + OutputDownloadProgress(index, $"{count}/{maxCount}({100 * count / maxCount}%)"); + } + + private static void OutputDownloadProgress(int index, string output) + { + OutputDownloadProgress($"index {index}/2: {output}"); + } + + private static void OutputDownloadProgress(string output) + { + _logItemViewModels = Instances.TaskQueueViewModel.LogItemViewModels; + if (_logItemViewModels == null) + { + return; + } + + var log = new LogItemViewModel(LocalizationHelper.GetString("GameResourceUpdating") + "\n" + output, UiLogColor.Download); + + Application.Current.Dispatcher.Invoke(() => + { + if (_logItemViewModels.Count > 0 && _logItemViewModels[0].Color == UiLogColor.Download) + { + if (!string.IsNullOrEmpty(output)) + { + _logItemViewModels[0] = log; + } + else + { + _logItemViewModels.RemoveAt(0); + } + } + else if (!string.IsNullOrEmpty(output)) + { + _logItemViewModels.Clear(); + _logItemViewModels.Add(log); + } + }); + } } } diff --git a/src/MaaWpfGui/Res/Localizations/en-us.xaml b/src/MaaWpfGui/Res/Localizations/en-us.xaml index ff306d91b6..9777f19bd8 100644 --- a/src/MaaWpfGui/Res/Localizations/en-us.xaml +++ b/src/MaaWpfGui/Res/Localizations/en-us.xaml @@ -36,15 +36,15 @@ Send Test MAA external notification test This is MAA external notification test information. If you see this content, the notification was sent successfully! - [Server Chan] Send Key - [SMTP] Recipient - [SMTP] Server - [SMTP] Port - [SMTP] Use SSL - [SMTP] Authentication Required - [SMTP] Username - [SMTP] Password - [SMTP] Sender + Server Chan Send Key + Recipient + SMTP Server + Port + Use SSL + Authentication Required + Username + Password + Sender Task Settings Settings Guide @@ -239,6 +239,8 @@ Additional command arguments Starts with Script Ends with Script + Prevent hibernation when running tasks + Keep screen on when preventing hibernation I.S. Theme Phantom Mizuki @@ -297,6 +299,7 @@ Official(CN): Enter the mobile phone number displayed on the login interface, su Bilibili: Enter the account name displayed on the login interface, such as John Other client types are not supported ADB path (rel/abs) + The selected file name does not contain ADB. Please check if you have selected the wrong file or emulator executable. Connection address It will be filled in automatically when you use it for the first time. If you encounter any problems, you can try to manually modify it Connection Preset @@ -475,6 +478,8 @@ The video aspect ratio needs to be 16:9 without interference factors such as bla Copilot Task file / URL + Stage Code + Stage Code, e.g. 1-7 Select task file Task files can be imported by dragging the mouse Paste Clipboard @@ -599,7 +604,7 @@ The video aspect ratio needs to be 16:9 without interference factors such as bla Node: Combat Operation Node: Emergency Operation Node: Dreadful Foe - Roguelike event: + Event: Current times Nothing Drops: @@ -686,8 +691,11 @@ The video aspect ratio needs to be 16:9 without interference factors such as bla Stage data retrieval successful Game resources are being updated. - Game resource updated, please restart MAA - + Indexing in progress + Game resource updated. + Game resource updated, please restart MAA. + Game resource update failed, please try again later. + Remote Control Device Identifier (Read-only) diff --git a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml index c8dd653ea2..39fdd466a0 100644 --- a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml +++ b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml @@ -36,15 +36,15 @@ テストを送信する MAA 外部通知テスト これは MAA 外部通知テスト情報です。 このコンテンツが表示された場合、通知は正常に送信されました。 - [ServerChan] Send Key - [SMTP] サーバ - [SMTP] ポート - [SMTP] SSL を使用します - [SMTP] ログインが必要です - [SMTP] ユーザー名 - [SMTP] パスワード - [SMTP] 送信者 - [SMTP] 受信者 + ServerChan Send Key + SMTP サーバ + ポート + SSL を使用します + ログインが必要です + ユーザー名 + パスワード + 送信者 + 受信者 タスク設定 設定ガイド @@ -239,6 +239,8 @@ 追加コマンド スクリプトを使用して始めます 終了時にスクリプトを使用します + タスク実行時の休止状態の防止 + 休止状態を防ぐときは画面をオンのままにします 主題 ファントム ミヅキ @@ -297,6 +299,7 @@ Bilibili: ログイン インターフェイスに表示されるアカウント名 (張三 など) を入力します。 他の種類のクライアントはサポートされていません ADBパス(相対/絶対) + 選択されたファイル名に ADB が含まれていません。間違ったファイルを選択しているか、エミュレータの実行ファイルを選択していないか確認してください。 接続先アドレス 問題があれば手動で修正してください 接続構成 @@ -475,6 +478,8 @@ Bilibili: ログイン インターフェイスに表示されるアカウント 自動戦闘 攻略ファイルパス/ミステリーコード + ステージコード + ステージコード, 例えば 1-7 ファイル選択 攻略ファイルはマウスで直接ドラッグして取り込むことがきます(o゚v゚)ノ クリップボードの貼り付け @@ -599,7 +604,7 @@ Bilibili: ログイン インターフェイスに表示されるアカウント ステージ: 作戦 ステージ: 緊急作戦 ステージ: 悪路凶敵 - ローグライクイベント: + イベント: 現在の回数 ドロップなし ドロップ: @@ -686,8 +691,11 @@ Bilibili: ログイン インターフェイスに表示されるアカウント ステージデータの取得に成功しました ゲームリソースが更新中です。 - ゲームリソースが更新されました。MAAを再起動してください - + 索引の作成中 + ゲームリソースが更新されました。 + ゲームリソースが更新されました。MAAを再起動してください。 + ゲームリソースの更新に失敗しました。後でもう一度お試しください。 + リモートコントロール デバイス識別子(読み取り専用) diff --git a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml index 0bf2c51b42..bca86b64d2 100644 --- a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml +++ b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml @@ -36,15 +36,15 @@ 테스트 보내기 MAA 외부 알림 테스트 MAA 외부 알림 테스트 정보입니다. 이 콘텐츠가 표시되면 알림이 성공적으로 전송된 것입니다! - [Server Chan]이 키를 보냅니다. - [SMTP] 서버 - [SMTP] 포트 - [SMTP]는 SSL을 사용합니다. - [SMTP]에 로그인해야 합니다. - [SMTP] 사용자 이름 - [SMTP] 비밀번호 - [SMTP] 보낸 사람 - [SMTP] 받는 사람 + Server Chan 이 키를 보냅니다. + SMTP 서버 + 포트 + 는 SSL을 사용합니다. + 에 로그인해야 합니다. + 사용자 이름 + 비밀번호 + 보낸 사람 + 받는 사람 작업 설정 설정 가이드 @@ -239,6 +239,8 @@ 추가 변수 시작 시 추가 스크립트 종료 시 추가 스크립트 + 작업 실행 시 절전 모드 차단 + 절전 모드 방지 시 항상 밝게 표시 통합전략 테마 팬텀 미즈키 @@ -297,6 +299,7 @@ OF-1을 해금하지 않았다면 선택하지 말아 주세요. Bilibili: 로그인 인터페이스에 표시되는 계정 이름(예: 장산)을 입력하세요. 다른 클라이언트 유형은 지원되지 않습니다. ADB 경로 (상대/절대) + 선택한 파일 이름에 ADB가 포함되어 있지 않습니다. 잘못된 파일을 선택하거나 에뮬레이터 실행 파일을 선택하지 않았는지 확인해주세요. 연결 주소 문제 발생 시 직접 수정해 주세요 연결 프리셋 @@ -475,6 +478,8 @@ Bilibili: 로그인 인터페이스에 표시되는 계정 이름(예: 장산) 자동 지휘 작업 파일 경로/코드 + 무대 코드 + 무대 코드, 예를 들어 1-7 작업 선택 마우스로 작업 파일을 드래그해 선택할 수 있어요 (o゚v゚)ノ 클립보드 붙여넣기 @@ -599,7 +604,7 @@ Bilibili: 로그인 인터페이스에 표시되는 계정 이름(예: 장산) 레벨: 작전 레벨: 긴급 작전 레벨: 험난한 길 - 로그라이크 이벤트: + 이벤트: 현재 횟수 없음 드롭: @@ -686,8 +691,11 @@ Bilibili: 로그인 인터페이스에 표시되는 계정 이름(예: 장산) 스테이지 데이터 획득 성공 게임 자원이 업데이트 중입니다. + 색인 작성 중 + 게임 리소스가 업데이트되었으니. 게임 리소스가 업데이트되었으니 MAA를 다시 시작해주세요. - + 게임 자원 업데이트 실패, 나중에 다시 시도해주세요. + 원격 제어 장치 식별자(읽기 전용) diff --git a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml index 708920a820..294bd1892a 100644 --- a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml +++ b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml @@ -36,15 +36,15 @@ 发送测试 MAA 外部通知测试 这是 MAA 外部通知测试信息。如果你看到了这段内容,就说明通知发送成功了! - [Server Chan] 发送密钥 - [SMTP] 服务器 - [SMTP] 端口 - [SMTP] 使用 SSL - [SMTP] 需要登录 - [SMTP] 用户名 - [SMTP] 密码 - [SMTP] 发件人 - [SMTP] 收件人 + Server Chan 发送密钥 + SMTP 服务器 + 端口 + 使用 SSL + 需要登录 + 用户名 + 密码 + 发件人 + 收件人 任务设置 设置指引 @@ -239,6 +239,8 @@ 附加命令 开始前脚本 结束后脚本 + 运行任务时阻止休眠 + 阻止休眠时保持屏幕常亮 肉鸽主题 傀影 水月 @@ -297,6 +299,7 @@ B服输入登录界面显示的账号名,如「张三」,可输入「张」或「三」 暂不支持其他服 ADB 路径 (相对/绝对) + 所选文件名不包含 ADB,请检查是否选择了错误的文件或模拟器本体程序。 连接地址 若遇到问题可尝试手动修改 连接配置 @@ -475,6 +478,8 @@ 自动战斗 作业路径/神秘代码 + 关卡名 + 关卡名, 例: 1-7 选择作业 作业文件可以直接用鼠标拖进来哦 (o゚v゚)ノ 粘贴剪贴板 @@ -599,7 +604,7 @@ 关卡: 普通作战 关卡: 紧急作战 关卡: 险路恶敌 - 肉鸽事件: + 事件: 当前次数 本次掉落: @@ -686,8 +691,11 @@ 关卡数据获取成功 游戏资源正在更新 - 游戏资源已更新,请重启 MAA - + 正在编制索引 + 游戏资源已更新。 + 游戏资源已更新,请重启 MAA。 + 游戏资源更新失败,请稍后尝试。 + 远程控制 设备标识符(只读) diff --git a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml index 65d4664a70..9b0e47b00f 100644 --- a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml +++ b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml @@ -36,15 +36,15 @@ 發送測試 MAA 外部通知測試 這是 MAA 外部通知測試資訊。 如果你看到了這段內容,就說明通知發送成功了! - [Server Chan] 發送金鑰 - [SMTP] 伺服器 - [SMTP] 埠 - [SMTP] 使用 SSL - [SMTP] 需要登錄 - [SMTP] 使用者名 - [SMTP] 密碼 - [SMTP] 發件者 - [SMTP] 收件者 + Server Chan 發送金鑰 + SMTP 伺服器 + + 使用 SSL + 需要登錄 + 使用者名 + 密碼 + 發件者 + 收件者 任務設定 設定指引 @@ -239,6 +239,8 @@ 附加命令 開始前腳本 結束後腳本 + 運行任務時阻止休眠 + 阻止休眠時保持螢幕常亮 肉鴿主題 傀影 水月 @@ -297,6 +299,7 @@ B服輸入登錄界面顯示的賬號名,如「張三」,可輸入「張」或「三」 暫不支持其他服 ADB 路徑(相對/絕對) + 所選檔案名稱不包含 ADB,請檢查是否選擇了錯誤的檔案或模擬器本體程式。 連接地址 若遇到問題可嘗試手動修改 連接配置 @@ -475,6 +478,8 @@ 自動戰鬥 作業路徑 / 神秘代碼 + 關卡名 + 關卡名, 例: 1-7 選擇作業 作業檔可以直接用滑鼠拖進來喔 (o゚v゚)ノ 從剪貼簿貼上 @@ -599,7 +604,7 @@ 關卡: 普通作戰 關卡: 緊急作戰 關卡: 險路惡敵 - 肉鴿事件: + 事件: 目前次數 本次掉落: @@ -685,9 +690,12 @@ 關卡數據獲取成功 - 遊戲資源正在更新 - 遊戲資源已更新,請重啟 MAA - + 遊戲資源正在更新。 + 正在編製索引 + 遊戲資源已更新。 + 遊戲資源已更新,請重啟 MAA。 + 遊戲資源更新失敗,請稍後嘗試。 + 遠程控制 設備標識符(唯讀) diff --git a/src/MaaWpfGui/Utilities/SleepManagement.cs b/src/MaaWpfGui/Utilities/SleepManagement.cs new file mode 100644 index 0000000000..8a79cc24ad --- /dev/null +++ b/src/MaaWpfGui/Utilities/SleepManagement.cs @@ -0,0 +1,51 @@ +// +// MaaWpfGui - A part of the MaaCoreArknights project +// Copyright (C) 2021 MistEO and Contributors +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY +// + +using System; +using System.Runtime.InteropServices; + +namespace MaaWpfGui.Utilities +{ + public static class SleepManagement + { + [DllImport("kernel32.dll")] + private static extern ExecutionState SetThreadExecutionState(ExecutionState esFlags); + + [Flags] + private enum ExecutionState : uint + { + SystemRequired = 0x01, + DisplayRequired = 0x02, + Continuous = 0x80000000, + } + + public static void AllowSleep() + { + SetThreadExecutionState(ExecutionState.Continuous); + } + + public static void BlockSleep(bool keepDisplayOn = true) + { + SetThreadExecutionState(keepDisplayOn ? + ExecutionState.Continuous | ExecutionState.SystemRequired | ExecutionState.DisplayRequired : + ExecutionState.Continuous | ExecutionState.SystemRequired); + } + + public static void ResetIdle(bool keepDisplayOn = true) + { + SetThreadExecutionState(keepDisplayOn ? + ExecutionState.SystemRequired | ExecutionState.DisplayRequired : + ExecutionState.SystemRequired); + } + } +} diff --git a/src/MaaWpfGui/ViewModels/UI/CopilotViewModel.cs b/src/MaaWpfGui/ViewModels/UI/CopilotViewModel.cs index 719b99d5c7..f516111cbe 100644 --- a/src/MaaWpfGui/ViewModels/UI/CopilotViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/CopilotViewModel.cs @@ -623,6 +623,14 @@ namespace MaaWpfGui.ViewModels.UI set => SetAndNotify(ref _addTrust, value); } + private bool _useSanityPotion; + + public bool UseSanityPotion + { + get => _useSanityPotion; + set => SetAndNotify(ref _useSanityPotion, value); + } + private bool _addUserAdditional = bool.Parse(ConfigurationHelper.GetValue(ConfigurationKeys.CopilotAddUserAdditional, false.ToString())); /// @@ -914,7 +922,7 @@ namespace MaaWpfGui.ViewModels.UI continue; } - ret &= Instances.AsstProxy.AsstStartCopilot(model.FilePath, Form, AddTrust, AddUserAdditional, mUserAdditional, UseCopilotList, model.Name.Replace("-Adverse", string.Empty), model.Name.Contains("-Adverse"), _taskType, Loop ? LoopTimes : 1, false); + ret &= Instances.AsstProxy.AsstStartCopilot(model.FilePath, Form, AddTrust, AddUserAdditional, mUserAdditional, UseCopilotList, model.Name.Replace("-Adverse", string.Empty), model.Name.Contains("-Adverse"), _taskType, Loop ? LoopTimes : 1, _useSanityPotion, false); startAny = true; } @@ -933,7 +941,7 @@ namespace MaaWpfGui.ViewModels.UI } else { - ret &= Instances.AsstProxy.AsstStartCopilot(IsDataFromWeb ? TempCopilotFile : Filename, Form, AddTrust, AddUserAdditional, mUserAdditional, UseCopilotList, string.Empty, false, _taskType, Loop ? LoopTimes : 1); + ret &= Instances.AsstProxy.AsstStartCopilot(IsDataFromWeb ? TempCopilotFile : Filename, Form, AddTrust, AddUserAdditional, mUserAdditional, UseCopilotList, string.Empty, false, _taskType, Loop ? LoopTimes : 1, _useSanityPotion); } if (ret) diff --git a/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs b/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs index bd64bfd750..59a7cd0011 100644 --- a/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs @@ -291,12 +291,6 @@ namespace MaaWpfGui.ViewModels.UI private string _enabledExternalNotificationProvider = ConfigurationHelper.GetValue(ConfigurationKeys.ExternalNotificationEnabled, "Off"); - public bool IsEnabled => _enabledExternalNotificationProvider != "Off"; - - public bool IsServerChan => _enabledExternalNotificationProvider == "ServerChan"; - - public bool IsSmtp => _enabledExternalNotificationProvider == "SMTP"; - public string EnabledExternalNotificationProvider { get => _enabledExternalNotificationProvider; @@ -304,10 +298,6 @@ namespace MaaWpfGui.ViewModels.UI { SetAndNotify(ref _enabledExternalNotificationProvider, value); ConfigurationHelper.SetValue(ConfigurationKeys.ExternalNotificationEnabled, value); - - NotifyOfPropertyChange(nameof(IsEnabled)); - NotifyOfPropertyChange(nameof(IsSmtp)); - NotifyOfPropertyChange(nameof(IsServerChan)); } } @@ -775,6 +765,30 @@ namespace MaaWpfGui.ViewModels.UI } } + private bool _blockSleep = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.BlockSleep, bool.FalseString)); + + public bool BlockSleep + { + get => _blockSleep; + set + { + SetAndNotify(ref _blockSleep, value); + ConfigurationHelper.SetValue(ConfigurationKeys.BlockSleep, value.ToString()); + } + } + + private bool _blockSleepWithScreenOn = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.BlockSleepWithScreenOn, bool.TrueString)); + + public bool BlockSleepWithScreenOn + { + get => _blockSleepWithScreenOn; + set + { + SetAndNotify(ref _blockSleepWithScreenOn, value); + ConfigurationHelper.SetValue(ConfigurationKeys.BlockSleepWithScreenOn, value.ToString()); + } + } + public void RunScript(string str) { bool enable = str switch @@ -2807,6 +2821,20 @@ namespace MaaWpfGui.ViewModels.UI get => _adbPath; set { + if (!Path.GetFileName(value).ToLower().Contains("adb")) + { + var result = MessageBoxHelper.Show( + LocalizationHelper.GetString("AdbPathFileSelectionErrorPrompt"), + LocalizationHelper.GetString("Tip"), + MessageBoxButton.OKCancel, + MessageBoxImage.Warning, + cancel: LocalizationHelper.GetString("Cancel")); + if (result == MessageBoxResult.Cancel) + { + return; + } + } + SetAndNotify(ref _adbPath, value); ConfigurationHelper.SetValue(ConfigurationKeys.AdbPath, value); } @@ -3910,5 +3938,14 @@ namespace MaaWpfGui.ViewModels.UI await Instances.AnnouncementViewModel.CheckAndDownloadAnnouncement(); _ = Execute.OnUIThreadAsync(() => Instances.WindowManager.ShowWindow(Instances.AnnouncementViewModel)); } + + public void SetupSleepManagement() + { + if (BlockSleep) + { + SleepManagement.BlockSleep(BlockSleepWithScreenOn); + _logger.Information("Blocking sleep."); + } + } } } diff --git a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs index 9a16f5472a..86f313e1a2 100644 --- a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs @@ -29,6 +29,7 @@ using MaaWpfGui.Helper; using MaaWpfGui.Models; using MaaWpfGui.Services; using MaaWpfGui.States; +using MaaWpfGui.Utilities; using MaaWpfGui.Utilities.ValueType; using Newtonsoft.Json; using Newtonsoft.Json.Linq; @@ -805,6 +806,8 @@ namespace MaaWpfGui.ViewModels.UI /// public async void LinkStart() { + Instances.SettingsViewModel.SetupSleepManagement(); + if (!_runningState.GetIdle()) { return; @@ -1002,6 +1005,8 @@ namespace MaaWpfGui.ViewModels.UI public void SetStopped() { + SleepManagement.AllowSleep(); + if (!_runningState.GetIdle() || Stopping) { AddLog(LocalizationHelper.GetString("Stopped")); diff --git a/src/MaaWpfGui/ViewModels/UI/VersionUpdateViewModel.cs b/src/MaaWpfGui/ViewModels/UI/VersionUpdateViewModel.cs index c7b0b25904..3217153d89 100644 --- a/src/MaaWpfGui/ViewModels/UI/VersionUpdateViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/VersionUpdateViewModel.cs @@ -473,8 +473,7 @@ namespace MaaWpfGui.ViewModels.UI { Process.Start(UpdateUrl); } - } - ); + }); _ = Execute.OnUIThreadAsync(() => { using var toast = new ToastNotification((otaFound ? LocalizationHelper.GetString("NewVersionFoundTitle") : LocalizationHelper.GetString("NewVersionFoundButNoPackageTitle")) + " : " + UpdateTag); diff --git a/src/MaaWpfGui/Views/UI/CopilotView.xaml b/src/MaaWpfGui/Views/UI/CopilotView.xaml index 8d34cf22ea..17f3333c5e 100644 --- a/src/MaaWpfGui/Views/UI/CopilotView.xaml +++ b/src/MaaWpfGui/Views/UI/CopilotView.xaml @@ -119,7 +119,7 @@ IsHitTestVisible="{Binding Idle}" ToolTip="{DynamicResource AddUserAdditionalTip}" /> - + Orientation="Horizontal"> + + + + - + Text="{Binding CopilotTaskName, UpdateSourceTrigger=LostFocus}" + ToolTip="{DynamicResource CopilotTaskNameTip}" />