public static void SolveQuiz(AbstractEmulator emulator) { // Capture screen with quiz Bitmap screen = emulator.PrintWindow(); //screen = ConvertToFormat(screen, PixelFormat.Format24bppRgb); string quizPattern = GetQuizPattern(screen, emulator.Width, emulator.Height); if (string.IsNullOrEmpty(quizPattern)) { Debug.WriteLine("No Quiz found"); return; } for (int i = 1; i <= 8; i++) { (Point point, Bitmap img)answer = GetAnswer(screen, i); if (IsCorrectAnswer(answer, quizPattern, screen.Width, screen.Height)) { Debug.WriteLine("Found answer at pos: " + i); emulator.Click(answer.point); } } // TODO: Put this in config settings emulator.Click(new Point((int)(emulator.Width * 0.501), (int)(emulator.Height * 0.835))); }
public CairosRunner(CairosFilter filter, string logFile, string fullLogFile, CairosRunnerConfig runnerConfig, AbstractEmulator emulator, RunnerLogger logger) : base(logFile, fullLogFile, runnerConfig, emulator, logger) { Filter = filter; MinEnergyRequired = 8; MaxRunTime = new TimeSpan(0, 2, 0); //This would be overriden }
public RiftRunner(RiftFilter filter, string logFile, string fullLogFile, RiftRunnerConfig runnerConfig, AbstractEmulator emulator, RunnerLogger logger) : base(logFile, fullLogFile, runnerConfig, emulator, logger) { Filter = filter; }
public AbstractRunner(string logFile, string fullLogFile, T runnerConfig, AbstractEmulator emulator, RunnerLogger logger) { LogFile = logFile; FullLogFile = fullLogFile; Emulator = emulator; RunnerConfig = runnerConfig; Helper.UpdateRunConfig(emulator, runnerConfig); Logger = logger; }
public DimensionalRunner(DimensionalFilter filter, string logFile, string fullLogFile, DimensionalRunnerConfig runnerConfig, AbstractEmulator emulator, RunnerLogger logger) : base(logFile, fullLogFile, runnerConfig, emulator, logger) { Filter = filter; }
public void TestPrintWindow() { NoxEmulator emulator = new NoxEmulator(); IntPtr parent = AbstractEmulator.FindWindow("Qt5QWindowIcon", "Nox"); IntPtr subWindow = AbstractEmulator.FindWindowEx(parent, IntPtr.Zero, "Qt5QWindowIcon", "ScreenBoardClassWindow"); IntPtr mainWindow = AbstractEmulator.FindWindowEx(subWindow, IntPtr.Zero, "Qt5QWindowIcon", "QWidgetClassWindow"); IntPtr sub = AbstractEmulator.FindWindowEx(mainWindow, IntPtr.Zero, "subWin", "sub"); emulator.PrintWindow(parent); }
public void TestMatchImage() { NoxEmulator emulator = new NoxEmulator(); IntPtr parent = AbstractEmulator.FindWindow("Qt5QWindowIcon", "Nox"); Bitmap source = emulator.PrintWindow(parent); Bitmap crop = BitmapUtils.CropImage(source, new Rectangle(800, 550, 400, 200)); string test1 = @"C:\Users\Administrator\Desktop\1\dungeonEnergy.png"; string test2 = @"E:\SWRunner\Resources\general\gift_box.png"; Assert.AreEqual(1, QuizSolver.FindMatchImage(crop, new Bitmap(test2))); }
public static void UpdateRunConfig <T>(AbstractEmulator emulator, T runConfig) where T : AbstractRunnerConfig { FieldInfo[] fields = runConfig.GetType().GetFields(); foreach (FieldInfo field in fields) { if (field.FieldType == typeof(PointF)) { PointF point = (PointF)field.GetValue(runConfig); point.X = emulator.Width * point.X; point.Y = emulator.Height * point.Y; field.SetValue(runConfig, point); } } }
public void TestPrintScreen() { NoxEmulator emulator = new NoxEmulator(); IntPtr paintHwnd = AbstractEmulator.FindWindow(null, "Untitled - Paint"); Bitmap src = emulator.PrintWindow(paintHwnd); Rectangle cropRect = new Rectangle(100, 100, 80, 80); Bitmap target = new Bitmap(cropRect.Width, cropRect.Height); using (Graphics g = Graphics.FromImage(target)) { g.DrawImage(src, new Rectangle(0, 0, target.Width, target.Height), cropRect, GraphicsUnit.Pixel); } target.Save("C:\\TestWin32\\test1.png", ImageFormat.Png); Helper.GetQuizImages(src); }
public ToARunner(string logFile, string fullLogFill, ToaRunnerConfig runnerConfig, AbstractEmulator emulator, RunnerLogger logger) : base(logFile, fullLogFill, runnerConfig, emulator, logger) { MaxRunTime = new TimeSpan(0, 5, 0); }