mirror of
https://github.com/babalae/better-genshin-impact.git
synced 2026-03-31 10:29:52 +08:00
* AutoFishing为单元测试重构;一个简单的单元测试GetFishpondTest * 将鼠标操作的注入挪到DesktopRegion中;提供LoadAssetImage的一个不依赖配置的重载;ChooseBait的代码中将Bv的方法替换成不依赖配置的写法;完成ChooseBait的单元测试 * 使用TimeProvider改写ChooseBait以适用单元测试;添加假的绘图上下文类;添加抛竿行为的单元测试 * 选择鱼饵行为比对上次选择的鱼饵,如果相同则直接抛竿(之前的版本曾有此逻辑),但测下来有时会选错饵导致无限抛竿,调整了相关步骤的等待间隔,希望能简单地压制此bug * 获取鱼群时过滤“获得”界面的鱼图标:1、在Fishpond构造函数中实现。2、配有此类情况的单元测试。3、并由此降低鱼钓上后的等待时间; 修复绘制鱼群时索引不正确导致遗漏的bug;获取鱼群时绘制鱼群供分析
108 lines
3.8 KiB
C#
108 lines
3.8 KiB
C#
using Fischless.WindowsInput;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using Vanara.PInvoke;
|
|
|
|
namespace BetterGenshinImpact.UnitTest.GameTaskTests.AutoFishingTests
|
|
{
|
|
internal class FakeInputSimulator : IInputSimulator
|
|
{
|
|
public IKeyboardSimulator Keyboard => new FakeKeyboardSimulator();
|
|
|
|
public IMouseSimulator Mouse => new FakeMouseSimulator();
|
|
|
|
public IInputDeviceStateAdaptor InputDeviceState => throw new NotImplementedException();
|
|
}
|
|
|
|
internal class FakeKeyboardSimulator : IKeyboardSimulator
|
|
{
|
|
public IMouseSimulator Mouse => throw new NotImplementedException();
|
|
|
|
public IKeyboardSimulator KeyDown(User32.VK keyCode) => this;
|
|
|
|
public IKeyboardSimulator KeyDown(bool? isExtendedKey, User32.VK keyCode) => this;
|
|
|
|
public IKeyboardSimulator KeyPress(User32.VK keyCode) => this;
|
|
|
|
public IKeyboardSimulator KeyPress(bool? isExtendedKey, User32.VK keyCode) => this;
|
|
|
|
public IKeyboardSimulator KeyPress(params User32.VK[] keyCodes) => this;
|
|
|
|
public IKeyboardSimulator KeyPress(bool? isExtendedKey, params User32.VK[] keyCodes) => this;
|
|
|
|
public IKeyboardSimulator KeyUp(User32.VK keyCode) => this;
|
|
|
|
public IKeyboardSimulator KeyUp(bool? isExtendedKey, User32.VK keyCode) => this;
|
|
|
|
public IKeyboardSimulator ModifiedKeyStroke(IEnumerable<User32.VK> modifierKeyCodes, IEnumerable<User32.VK> keyCodes) => this;
|
|
|
|
public IKeyboardSimulator ModifiedKeyStroke(IEnumerable<User32.VK> modifierKeyCodes, User32.VK keyCode) => this;
|
|
|
|
public IKeyboardSimulator ModifiedKeyStroke(User32.VK modifierKey, IEnumerable<User32.VK> keyCodes) => this;
|
|
|
|
public IKeyboardSimulator ModifiedKeyStroke(User32.VK modifierKeyCode, User32.VK keyCode) => this;
|
|
|
|
public IKeyboardSimulator Sleep(int millsecondsTimeout) => this;
|
|
|
|
public IKeyboardSimulator Sleep(TimeSpan timeout) => this;
|
|
|
|
public IKeyboardSimulator TextEntry(string text) => this;
|
|
|
|
public IKeyboardSimulator TextEntry(char character) => this;
|
|
}
|
|
|
|
internal class FakeMouseSimulator : IMouseSimulator
|
|
{
|
|
public IKeyboardSimulator Keyboard => throw new NotImplementedException();
|
|
|
|
public IMouseSimulator HorizontalScroll(int scrollAmountInClicks) => this;
|
|
|
|
public IMouseSimulator LeftButtonClick() => this;
|
|
|
|
public IMouseSimulator LeftButtonDoubleClick() => this;
|
|
|
|
public IMouseSimulator LeftButtonDown() => this;
|
|
|
|
public IMouseSimulator LeftButtonUp() => this;
|
|
|
|
public IMouseSimulator MiddleButtonClick() => this;
|
|
|
|
public IMouseSimulator MiddleButtonDoubleClick() => this;
|
|
|
|
public IMouseSimulator MiddleButtonDown() => this;
|
|
|
|
public IMouseSimulator MiddleButtonUp() => this;
|
|
|
|
public IMouseSimulator MoveMouseBy(int pixelDeltaX, int pixelDeltaY) => this;
|
|
|
|
public IMouseSimulator MoveMouseTo(double absoluteX, double absoluteY) => this;
|
|
|
|
public IMouseSimulator MoveMouseToPositionOnVirtualDesktop(double absoluteX, double absoluteY) => this;
|
|
|
|
public IMouseSimulator RightButtonClick() => this;
|
|
|
|
public IMouseSimulator RightButtonDoubleClick() => this;
|
|
|
|
public IMouseSimulator RightButtonDown() => this;
|
|
|
|
public IMouseSimulator RightButtonUp() => this;
|
|
|
|
public IMouseSimulator Sleep(int millsecondsTimeout) => this;
|
|
|
|
public IMouseSimulator Sleep(TimeSpan timeout) => this;
|
|
|
|
public IMouseSimulator VerticalScroll(int scrollAmountInClicks) => this;
|
|
|
|
public IMouseSimulator XButtonClick(int buttonId) => this;
|
|
|
|
public IMouseSimulator XButtonDoubleClick(int buttonId) => this;
|
|
|
|
public IMouseSimulator XButtonDown(int buttonId) => this;
|
|
|
|
public IMouseSimulator XButtonUp(int buttonId) => this;
|
|
}
|
|
}
|