Commit Graph

45 Commits

Author SHA1 Message Date
DarkFlameMaster
cd5b22548c feat:JS添加自动剧情的实时任务时,支持传入参数 (#2591) 2026-01-03 16:24:53 +08:00
xoipz
d8ba04f97b 实时触发 - 自动吃药(秘境中的自动吃药功能改进作为实时触发功能 (#1993)
Co-authored-by: 辉鸭蛋 <huiyadanli@gmail.com>
2025-08-10 13:48:25 +08:00
Shatyuka
1bd070bf5c 遮罩窗口自动缩放 (#1478)
* 遮罩窗口自动缩放

* 怎么丢了一行
2025-04-26 17:35:21 +08:00
辉鸭蛋
e77c143f6b Merge branch 'pr/1320'
# Conflicts:
#	BetterGenshinImpact/GameTask/GameTaskManager.cs
2025-03-23 23:35:22 +08:00
辉鸭蛋
0d5d1292c8 code clean 2025-03-23 23:33:40 +08:00
FishmanTheMurloc
57d33c4312 又一波钓鱼优化 (#1301)
* GetFishBarRect方法添加更复杂的算法,并为其配备独立的单元测试,和分离难度较大的测试用例(未熟练时两侧出现黄色动态折线的情况);GetFishBoxArea行为去掉拉条框初始位置必须位于屏幕中轴线的条件,并添加其后续Fishing行为的单元测试来验证可行性;EnterFishingMode行为使用结束时间来代替Sleep,并添加整体超时时间;添加一个鱼咬钩的假阳性测试用例仅供娱乐

* 补充GetFishBarRect算法,使通过遗漏的测试"20250314002439020_Fishing_Succeeded.png"

* 拉条增加1秒未检测持续时间以应对瞬间丢失拉条框的情况;新增一个检查提竿结果的行为;新增一个检查开始钓一条鱼的初始状态的方法,以应对行为状态错配的情况;一些行为将Sleep优化为DateTime;修改上述改动对应的单元测试

* 解决合并冲突剩余问题,删掉ImageRegion的Bitmap构造函数重载

* 提供给测试用例初始化的 SystemInfo、TaskContext 方法,使用 InitForTest 即可

* InitForTest

* 和鸭蛋昨夜的提交撞车了。。。抽象了ISystemInto供单元测试实例化Fake类;给BaseAssets类定义了成员字段systemInfo(我想,既然都是图片模板数据集,如此定义是合理的),供继承类AutoFishingAssets使用,并定义了其在单元测试的派生类;添加了一个900p的选取鱼饵测试用例;blackboard改为负责携带AutoFishingAssets,并将其实例化时机挪到独立任务的Start方法中,避免由于TaskContext尚未初始化导致获取到的SystemInfo为空

* 一个特殊的测试用例:抛竿的瞬间、开始检测咬杆时遇到了假阳性

* Revert "InitForTest"

This reverts commit 225e9783a7.

* Revert "提供给测试用例初始化的 SystemInfo、TaskContext 方法,使用 InitForTest 即可"

This reverts commit 610c57263a.

* 为始终没有找到落点的情况添加计数,在第3次时直接退出,并添加此情况的单元测试

---------

Co-authored-by: 辉鸭蛋 <huiyadanli@gmail.com>
2025-03-18 19:51:42 +08:00
Takaranoao
2aefabe09c 添加实时任务,不会清理之前的任务 2025-03-16 20:00:25 +08:00
FishmanTheMurloc
aead279c78 单元测试HelloWorld (#1219)
* AutoFishing为单元测试重构;一个简单的单元测试GetFishpondTest

* 将鼠标操作的注入挪到DesktopRegion中;提供LoadAssetImage的一个不依赖配置的重载;ChooseBait的代码中将Bv的方法替换成不依赖配置的写法;完成ChooseBait的单元测试

* 使用TimeProvider改写ChooseBait以适用单元测试;添加假的绘图上下文类;添加抛竿行为的单元测试

* 选择鱼饵行为比对上次选择的鱼饵,如果相同则直接抛竿(之前的版本曾有此逻辑),但测下来有时会选错饵导致无限抛竿,调整了相关步骤的等待间隔,希望能简单地压制此bug

* 获取鱼群时过滤“获得”界面的鱼图标:1、在Fishpond构造函数中实现。2、配有此类情况的单元测试。3、并由此降低鱼钓上后的等待时间;
修复绘制鱼群时索引不正确导致遗漏的bug;获取鱼群时绘制鱼群供分析
2025-03-05 00:30:11 +08:00
辉鸭蛋
d374a95bb8 new game loading 2024-12-22 14:56:25 +08:00
辉鸭蛋
d7302b65c3 auto domain: tp & switch party & artifact salvage 2024-11-24 17:48:23 +08:00
辉鸭蛋
3c2739c5c5 add GoToAdventurersGuildTask
优化项目结构并新增任务和路径文件

主要更改:
- 在 `BetterGenshinImpact.csproj` 文件中,添加了对 `GameTask\Common\Element\Assets\Json\**` 目录的处理,并确保其内容始终复制到输出目录。
- 在 `RecognitionObject.cs` 文件中,新增了多个静态方法 `Ocr` 和一个静态实例 `OcrThis`。
- 在 `PathExecutor.cs` 文件中,优化了路径执行逻辑,新增 `GetPosition` 方法,并调整了超时判断。
- 在 `AutoPickAssets.cs` 文件中,添加了多个 `using` 语句,新增 `_logger` 和 `PickRo` 字段,并在构造函数中添加了自定义拾取按键的处理逻辑。
- 在 `AutoPickTrigger.cs` 文件中,移除了自定义拾取按键的初始化逻辑。
- 在 `OneKeyExpeditionTask.cs` 文件中,注释掉了 `Cv2.ImWrite` 方法的调用。
- 在 `TpTask.cs` 文件中,添加了点位很近时不切换的判断逻辑。
- 在 `BvSimpleOperation.cs` 文件中,新增了多个点击按钮的方法和 `FindF`、`FindFAndPress` 方法。
- 在 `BvStatus.cs` 文件中,新增了多个方法用于判断是否在对话界面并等待对话界面加载完成。
- 在 `GameTaskManager.cs` 文件中,添加了 `MapAssets.DestroyInstance` 方法的调用。
- 在 `HotKeyPageViewModel.cs` 文件中,注释掉了 `ElementalCollectHandler` 的测试代码,并添加了 `GoToAdventurersGuildTask` 的测试代码。
- 在 `TaskSettingsPageViewModel.cs` 文件中,更新了 `OnGoToAutoGeniusInvokationUrlAsync` 方法中的 URL。
- 添加了 `BetterGenshinImpact - Backup.csproj` 文件,配置了项目属性、资源文件和包引用。
- 添加了 `冒险家协会_枫丹.json`、`合成台_枫丹.json` 和 `合成台_璃月.json` 文件,定义了前往相应地点的路径和动作。
- 添加了 `ChooseTalkOptionTask.cs` 文件,实现了选择对话选项的任务。
- 添加了 `GoToAdventurersGuildTask.cs` 文件,实现了前往冒险家协会领取奖励的任务。
2024-11-10 22:49:55 +08:00
辉鸭蛋
b0b3768ee7 https://github.com/babalae/bettergi-scripts-list/pull/15 2024-11-08 23:17:02 +08:00
辉鸭蛋
8e44643a51 auto eat #649 2024-09-21 23:41:20 +08:00
何杰泽
fae49c4c3b 添加自动吃药的功能。 2024-09-12 15:34:53 +08:00
辉鸭蛋
c37c43ce92 dispatcher supprot pathing script
调度器支持路径追踪功能及多项代码优化

在 `ScriptGroupProject.cs` 中:
- 添加对多个命名空间的引用。
- 修改构造函数,增加 `folder` 和 `type` 参数,删除 `kmName` 参数。
- 添加 `BuildKeyMouseProject` 和 `BuildPathingProject` 静态方法。
- 在 `Run` 方法中增加 `Pathing` 类型处理逻辑。
- 在 `ScriptGroupProjectExtensions` 中增加 `Pathing` 类型描述。

在 `PathingTask.cs` 中:
- 添加 `FileName` 属性,并在 `BuildFromFilePath` 方法中设置。

在 `Navigation.cs` 中:
- 将 `Navigation` 类改为 `public`。
- 添加 `_isWarmUp` 静态字段,防止重复加载地图特征点。
- 将 `GetPosition`、`GetTargetOrientation` 和 `GetDistance` 方法改为 `public`。

在 `GameTaskManager.cs` 中:
- 在 `AddTrigger` 方法中添加注释,指出清理 `TriggerDictionary` 的问题。

在 `ScriptService.cs` 中:
- 在 `RunMulti` 方法中增加 `hasTimer` 变量,并在处理 `Pathing` 类型时设置。
- 修改 `RunMulti` 方法逻辑,确保无定时操作时检查 JS 脚本。
- 在 `Run` 方法中增加 `Pathing` 类型处理逻辑。

在 `MapPathingPage.xaml` 中:
- 注释掉第四列定义和相关 `Grid` 元素。
- 修改 `ListView` 中 `GridViewColumn` 的 `DisplayMemberBinding`。

在 `ScriptControlPage.xaml` 中:
- 在 `ContextMenu` 中添加新的 `MenuItem`,用于添加路径追踪任务。

在 `PromptDialog.xaml.cs` 中:
- 添加新的 `Prompt` 方法,允许指定对话框大小。
- 修改 `ResponseText` 属性逻辑,增加默认返回值。

在 `MapPathingViewModel.cs` 中:
- 调整 `using` 语句顺序,删除重复引用。

在 `ScriptControlViewModel.cs` 中:
- 修改 `OnAddKmScript` 方法,使用 `BuildKeyMouseProject` 方法创建键鼠脚本项目。
- 添加 `OnAddPathing` 方法及其辅助方法,用于添加路径追踪任务。
- 在 `RunSelectedScriptGroup` 方法中,将脚本运行逻辑放入 `Task.Run` 中,避免阻塞 UI 线程。
2024-09-08 23:17:48 +08:00
qhy040404
c490d29aa1 code cleanup 2024-08-14 18:01:02 +08:00
辉鸭蛋
b07f2ec839 more crystalfly position 2024-08-11 23:21:55 +08:00
辉鸭蛋
ed9a47a3a1 fix dispather thread safe 2024-08-11 20:14:32 +08:00
辉鸭蛋
8fa071722e js : dispatcher.addTimer 2024-08-11 17:58:22 +08:00
辉鸭蛋
94c8c6a842 modify device name 2024-05-28 19:08:28 +08:00
辉鸭蛋
a84c94c5ce add auto cook #266 2024-05-23 00:27:13 +08:00
辉鸭蛋
dabdfa51f4 fix boundary overflow after switching game resolution 2024-05-05 22:51:11 +08:00
辉鸭蛋
18c1e9f978 automatically restart the dispatcher when the game window size changes 2024-04-28 00:01:04 +08:00
huiyadanli
9c29156584 add auto enter game trigger 2024-02-25 20:55:32 +08:00
huiyadanli
7ac890e43f view model for #245 @Lightczx 2024-02-03 14:00:55 +08:00
huiyadanli
a989db29e7 quick teleport ui & performance optimization 2023-12-03 12:55:11 +08:00
huiyadanli
d7963fb0c9 quick teleport init 2023-12-02 23:23:08 +08:00
Mr-Quin
32f1f6a694 Fix OpenCv file name error 2023-11-30 09:31:00 -08:00
wwbweibo
e16f24ce2a 添加游戏加载完成界面触发器, 直接进入游戏 2023-11-27 22:19:53 +08:00
huiyadanli
8ca4baa377 fix typo 2023-10-28 20:26:44 +08:00
huiyadanli
bda00ad054 AutoGeniusInvokation: add entry 2023-10-21 18:48:36 +08:00
huiyadanli
45fb8badb3 fix auto pick enabled invalidity 2023-10-14 22:33:14 +08:00
huiyadanli
cfd03833ab add task page 2023-10-12 00:15:36 +08:00
huiyadanli
c27ea845eb interface modification and logic optimization 2023-10-08 23:56:41 +08:00
huiyadanli
6c40372f26 AutoPicker: exclude chat icon (not in white list) 2023-10-08 21:49:38 +08:00
huiyadanli
fa770efcca Clear draw content when triggers disabled 2023-10-06 00:11:52 +08:00
huiyadanli
81a5819019 Tasks and triggers can read config 2023-10-05 23:56:57 +08:00
huiyadanli
3a208b6ca2 Add new test trigger & remake mask window 2023-10-03 22:08:06 +08:00
huiyadanli
28da64cba5 refactor: Convert all Assets files 2023-10-02 19:23:19 +08:00
huiyadanli
cbaf1afdfc refactor: Identification Method Replacement and Packaging 2023-10-02 15:07:28 +08:00
huiyadanli
d42b763e5f Remove Vision.Recognition 2023-09-30 01:20:15 +08:00
huiyadanli
22f01039c2 finsh auto pick 2023-09-28 20:58:21 +08:00
huiyadanli
9b5bfd6dfb feat: finsh auto fish 2023-09-24 19:18:25 +08:00
huiyadanli
b5d9ce1c93 feat: finsh auto skip 2023-09-24 00:52:28 +08:00
huiyadanli
ef23d2bf0c feat: game task 2023-09-09 22:42:03 +08:00