Files
better-genshin-impact/BetterGenshinImpact/GameTask/AutoFight/Assets/AutoFightAssets.cs
2024-04-04 14:38:04 +08:00

124 lines
5.9 KiB
C#

using System.Collections.Generic;
using BetterGenshinImpact.Core.Recognition;
using BetterGenshinImpact.GameTask.Model;
using OpenCvSharp;
namespace BetterGenshinImpact.GameTask.AutoFight.Assets;
public class AutoFightAssets : BaseAssets<AutoFightAssets>
{
public Rect TeamRectNoIndex;
public Rect TeamRect;
public List<Rect> AvatarIndexRectList;
public Rect ERect;
public Rect QRect;
public Rect EndTipsUpperRect; // 挑战达成提示
public Rect EndTipsRect;
public RecognitionObject WandererIconRa;
public RecognitionObject WandererIconNoActiveRa;
public RecognitionObject ConfirmRa;
public RecognitionObject ExitRa;
public RecognitionObject ClickAnyCloseTipRa;
public RecognitionObject UseCondensedResinRa;
// 树脂状态
public RecognitionObject CondensedResinCountRa;
public RecognitionObject FragileResinCountRa;
private AutoFightAssets()
{
TeamRectNoIndex = new Rect(CaptureRect.Width - (int)(355 * AssetScale), (int)(220 * AssetScale),
(int)((355 - 85) * AssetScale), (int)(465 * AssetScale));
TeamRect = new Rect(CaptureRect.Width - (int)(355 * AssetScale), (int)(220 * AssetScale),
(int)(355 * AssetScale), (int)(465 * AssetScale));
ERect = new Rect(CaptureRect.Width - (int)(267 * AssetScale), CaptureRect.Height - (int)(132 * AssetScale),
(int)(77 * AssetScale), (int)(77 * AssetScale));
QRect = new Rect(CaptureRect.Width - (int)(157 * AssetScale), CaptureRect.Height - (int)(165 * AssetScale),
(int)(110 * AssetScale), (int)(110 * AssetScale));
// 结束提示从中间开始找相对位置
EndTipsUpperRect = new Rect(CaptureRect.Width / 2 - (int)(100 * AssetScale), (int)(243 * AssetScale),
(int)(200 * AssetScale), (int)(50 * AssetScale));
EndTipsRect = new Rect(CaptureRect.Width / 2 - (int)(200 * AssetScale), CaptureRect.Height - (int)(160 * AssetScale),
(int)(400 * AssetScale), (int)(80 * AssetScale));
AvatarIndexRectList = new List<Rect>
{
new(CaptureRect.Width - (int)(61 * AssetScale), (int)(256 * AssetScale), (int)(28 * AssetScale), (int)(24 * AssetScale)),
new(CaptureRect.Width - (int)(61 * AssetScale), (int)(352 * AssetScale), (int)(28 * AssetScale), (int)(24 * AssetScale)),
new(CaptureRect.Width - (int)(61 * AssetScale), (int)(448 * AssetScale), (int)(28 * AssetScale), (int)(24 * AssetScale)),
new(CaptureRect.Width - (int)(61 * AssetScale), (int)(544 * AssetScale), (int)(28 * AssetScale), (int)(24 * AssetScale)),
};
WandererIconRa = new RecognitionObject
{
Name = "WandererIcon",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage("AutoFight", "wanderer_icon.png"),
DrawOnWindow = false
}.InitTemplate();
WandererIconNoActiveRa = new RecognitionObject
{
Name = "WandererIconNoActive",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage("AutoFight", "wanderer_icon_no_active.png"),
DrawOnWindow = false
}.InitTemplate();
// 右下角的按钮
ConfirmRa = new RecognitionObject
{
Name = "Confirm",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage("AutoFight", "confirm.png"),
RegionOfInterest = new Rect(CaptureRect.Width / 2, CaptureRect.Height / 2, CaptureRect.Width / 2, CaptureRect.Height / 2),
DrawOnWindow = false
}.InitTemplate();
// 点击任意处关闭提示
ClickAnyCloseTipRa = new RecognitionObject
{
Name = "ClickAnyCloseTip",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage("AutoFight", "click_any_close_tip.png"),
RegionOfInterest = new Rect(0, CaptureRect.Height / 2, CaptureRect.Width, CaptureRect.Height / 2),
DrawOnWindow = false
}.InitTemplate();
UseCondensedResinRa = new RecognitionObject
{
Name = "UseCondensedResin",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage("AutoFight", "use_condensed_resin.png"),
RegionOfInterest = new Rect(0, CaptureRect.Height / 2, CaptureRect.Width / 2, CaptureRect.Height / 2),
DrawOnWindow = false
}.InitTemplate();
ExitRa = new RecognitionObject
{
Name = "Exit",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage("AutoFight", "exit.png"),
RegionOfInterest = new Rect(0, CaptureRect.Height / 2, CaptureRect.Width / 2, CaptureRect.Height / 2),
DrawOnWindow = false
}.InitTemplate();
CondensedResinCountRa = new RecognitionObject
{
Name = "CondensedResinCount",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage("AutoFight", "condensed_resin_count.png"),
RegionOfInterest = new Rect(CaptureRect.Width / 2, CaptureRect.Height / 3 * 2, CaptureRect.Width / 2, CaptureRect.Height / 3),
DrawOnWindow = false
}.InitTemplate();
FragileResinCountRa = new RecognitionObject
{
Name = "FragileResinCount",
RecognitionType = RecognitionTypes.TemplateMatch,
TemplateImageMat = GameTaskManager.LoadAssetImage("AutoFight", "fragile_resin_count.png"),
RegionOfInterest = new Rect(CaptureRect.Width / 2, CaptureRect.Height / 3 * 2, CaptureRect.Width / 2, CaptureRect.Height / 3),
DrawOnWindow = false
}.InitTemplate();
}
}