Files
better-genshin-impact/BetterGenshinImpact/GameTask/Common/Element/Assets/ElementAssets.cs
辉鸭蛋 4cb5442161 add switch party task
在 `BetterGenshinImpact.csproj` 文件中,添加了两个新文件夹路径 `GameTask\OneDragon\` 和 `User\AutoPathing\`。

在 `BvStatus.cs` 文件中:
- 将 `WaitForMainUi` 方法的默认重试次数从 25 次减少到 10 次。
- 添加了 `IsInPartyViewUi` 和 `WaitForPartyViewUi` 方法。

在 `ElementAssets.cs` 文件中:
- 添加并初始化了 `PartyBtnChooseView` 和 `PartyBtnDelete` 两个新的识别对象。

在 `NewRetry.cs` 文件中:
- 添加了 `using System.Threading.Tasks;` 引用。
- 添加了 `WaitForAction` 方法。

在 `Region.cs` 文件中,添加了一个新的 `ClickTo` 方法,该方法接受 `double` 类型的参数。

在 `ReturnMainUiTask.cs` 文件中:
- 删除了旧的 `ReturnMainUiTask` 类。
- 添加了新的 `ReturnMainUiTask` 类,内容与旧的类似,但文件路径和命名空间有所变化。

在 `RunnerContext.cs` 文件中,移除了 `using BetterGenshinImpact.GameTask.OneDragon;` 引用,添加了 `using BetterGenshinImpact.GameTask.Common.Job;` 引用。

在 `HotKeyPageViewModel.cs` 文件中:
- 添加了多个 `using` 引用,包括 `using System.Threading.Tasks;` 和 `using BetterGenshinImpact.GameTask.Common.Job;`。
- 修改了多个方法的代码格式,使其更加简洁。
- 添加了多个新的快捷键设置。

添加了两个新的 PNG 图片文件 `party_btn_choose_view.png` 和 `party_btn_delete.png`。

在 `SwitchPartyTask.cs` 文件中,添加了新的 `SwitchPartyTask` 类,用于切换队伍。
2024-10-29 01:41:43 +08:00

155 lines
6.6 KiB
C#

using BetterGenshinImpact.Core.Recognition;
using BetterGenshinImpact.GameTask.Model;
using OpenCvSharp;
namespace BetterGenshinImpact.GameTask.Common.Element.Assets;
public class ElementAssets : BaseAssets<ElementAssets>
{
public RecognitionObject BtnWhiteConfirm;
public RecognitionObject BtnWhiteCancel;
public RecognitionObject BtnBlackConfirm;
public RecognitionObject BtnBlackCancel;
public RecognitionObject BtnOnlineYes;
public RecognitionObject BtnOnlineNo;
public RecognitionObject PaimonMenuRo;
public RecognitionObject BlueTrackPoint;
public RecognitionObject UiLeftTopCookIcon;
public RecognitionObject SpaceKey;
public RecognitionObject XKey;
public RecognitionObject FriendChat;
public RecognitionObject PartyBtnChooseView;
public RecognitionObject PartyBtnDelete;
private ElementAssets()
{
// 按钮
BtnWhiteConfirm = new RecognitionObject
{
Name = "BtnWhiteConfirm",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage(@"Common\Element", "btn_white_confirm.png"),
Use3Channels = true
}.InitTemplate();
BtnWhiteCancel = new RecognitionObject
{
Name = "BtnWhiteCancel",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage(@"Common\Element", "btn_white_cancel.png"),
Use3Channels = true
}.InitTemplate();
BtnBlackConfirm = new RecognitionObject
{
Name = "BtnBlackConfirm",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage(@"Common\Element", "btn_black_confirm.png"),
Use3Channels = true
}.InitTemplate();
BtnBlackCancel = new RecognitionObject
{
Name = "BtnBlackCancel",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage(@"Common\Element", "btn_black_cancel.png"),
Use3Channels = true
}.InitTemplate();
BtnOnlineYes = new RecognitionObject
{
Name = "BtnOnlineYes",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage(@"Common\Element", "btn_online_yes.png"),
Use3Channels = true
}.InitTemplate();
BtnOnlineNo = new RecognitionObject
{
Name = "BtnOnlineNo",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage(@"Common\Element", "btn_online_no.png"),
Use3Channels = true
}.InitTemplate();
// 派蒙菜单
// 此图38x40 小地图210x210 小地图左上角位置 24,-15
PaimonMenuRo = new RecognitionObject
{
Name = "PaimonMenu",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage(@"Common\Element", "paimon_menu.png"),
RegionOfInterest = new Rect(0, 0, CaptureRect.Width / 4, CaptureRect.Height / 4),
DrawOnWindow = false
}.InitTemplate();
// 任务追踪点位
BlueTrackPoint = new RecognitionObject
{
Name = "BlueTrackPoint",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage(@"Common\Element", "blue_track_point_28x.png"),
RegionOfInterest = new Rect((int)(300 * AssetScale), 0, CaptureRect.Width - (int)(600 * AssetScale), CaptureRect.Height),
Threshold = 0.6,
DrawOnWindow = true
}.InitTemplate();
// 左上角UI元素
UiLeftTopCookIcon = new RecognitionObject
{
Name = "UiLeftTopCookIcon",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage(@"Common\Element", "ui_left_top_cook_icon.png"),
RegionOfInterest = new Rect(0, 0, (int)(150 * AssetScale), (int)(120 * AssetScale)),
DrawOnWindow = false
}.InitTemplate();
// 右下角的按键提示
SpaceKey = new RecognitionObject
{
Name = "SpaceKey",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage(@"Common\Element", "key_space.png"),
RegionOfInterest = new Rect(CaptureRect.Width - (int)(350 * AssetScale), CaptureRect.Height - (int)(70 * AssetScale), (int)(200 * AssetScale), (int)(70 * AssetScale)),
DrawOnWindow = false
}.InitTemplate();
XKey = new RecognitionObject
{
Name = "XKey",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage(@"Common\Element", "key_x.png"),
RegionOfInterest = new Rect(CaptureRect.Width - (int)(350 * AssetScale), CaptureRect.Height - (int)(70 * AssetScale), (int)(200 * AssetScale), (int)(70 * AssetScale)),
DrawOnWindow = false
}.InitTemplate();
// 左下角的好友聊天icon
FriendChat = new RecognitionObject
{
Name = "FriendChat",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage(@"Common\Element", "friend_chat.png"),
RegionOfInterest = new Rect(0, CaptureRect.Height - (int)(70 * AssetScale), (int)(83 * AssetScale), (int)(70 * AssetScale)),
DrawOnWindow = false
}.InitTemplate();
// 队伍切换
PartyBtnChooseView = new RecognitionObject
{
Name = "PartyBtnChooseView",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage(@"Common\Element", "party_btn_choose_view.png"),
RegionOfInterest = new Rect(0, CaptureRect.Height - (int)(120 * AssetScale), CaptureRect.Width / 7, (int)(120 * AssetScale)),
DrawOnWindow = false
}.InitTemplate();
PartyBtnDelete = new RecognitionObject
{
Name = "PartyBtnDelete",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage(@"Common\Element", "party_btn_delete.png"),
RegionOfInterest = new Rect(CaptureRect.Width / 4, CaptureRect.Height - (int)(120 * AssetScale), CaptureRect.Width / 2, (int)(120 * AssetScale)),
DrawOnWindow = false
}.InitTemplate();
}
}