public ProcessingContext(IMouse m, IKeyboard k, IVDController c) { mouse = m; keyboard = k; vdcontroller = c; stdClk = new StandardClicks(this); }
public void Process() { var items = upgradeBuildingFinder.Processing(); foreach (var itm in items) { if (itm.x > 200) { if (!StandardClicks.isRegionGood(itm)) { context.InfoLog($"found too far skipp {itm.extraInfo} {itm.x}/{itm.y}"); continue; } context.InfoLog($"found {itm.extraInfo} {itm.x}/{itm.y}"); var cmdres = ActionStructureNameReco.GetNameAtPoint(context, itm); var numBuilders = NumBuilders(context, cmdres); if (numBuilders == 0) { context.InfoLog($"No builder"); return; } Thread.Sleep(1000); var nameLevel = ActionStructureNameReco.GetStructureName(itm, cmdres, context); if (nameLevel == null) { cmdres = ActionStructureNameReco.GetNameAtPoint(context, itm); nameLevel = ActionStructureNameReco.GetStructureName(itm, cmdres, context); if (nameLevel == null) { context.InfoLog($"failed reco namelevel {itm.extraInfo} {itm.x}/{itm.y}"); continue; } } var goodNames = ActionStructureNameReco.GetGoodNames(); foreach (var gname in goodNames) { if (gname.ToLower() == nameLevel.name.ToLower()) { context.DebugLog($"found match name {gname}"); //context.MoveMouseAndClick(itm); //Thread.Sleep(1000); var upgGrood = canUpgrade(context, numBuilders); if (upgGrood != null && upgGrood.extraInfo.Contains("Good")) { context.MoveMouseAndClick(upgGrood); Upgraded(); numBuilders--; } break; } } } } }
public List <CommandInfo> Processing(CurBaseType baseType) { string filterby = ""; switch (baseType) { case CurBaseType.Unknown: return(new List <CommandInfo>()); case CurBaseType.PrimaryBase: filterby = "primary"; break; case CurBaseType.SecondaryBase: filterby = "secondary"; break; } var res = ldr.Processing(clk => { return(clk.ImageName.Contains(filterby)); }); foreach (var clk in res) { var yoff = 0; if (clk.extraInfo.IndexOf("_drop") > 0) { yoff = 10; } if (clk.extraInfo.Contains("primary_grave.png")) { if (!StandardClicks.isRegionGood(clk)) { context.InfoLog($"Bad click for gravy {clk.extraInfo} {clk.x}/{clk.y}"); continue; } } if (clk.y > 700) { context.InfoLog($"Bad click for {clk.extraInfo} {clk.x}/{clk.y}"); continue; } context.MoveMouseAndClick(clk.x, clk.y + yoff); } return(res); }
public void Process() { var numBuilders = getNumBuilders(); if (numBuilders == 0) { context.InfoLog($"No builder"); return; } const int SLEEPS = 5; var junks = junkFinder.Processing(); foreach (var junk in junks) { if (StandardClicks.isRegionGood(junk) && junk.decision == "true") { context.DebugLog($"Found {junk.extraInfo} {junk.cmpRes}"); context.MoveMouseAndClick(junk); Thread.Sleep(1000); var btn = buttons.ProcessingWithRetryTop1(); if (btn != null && btn.decision == "true") { context.MoveMouseAndClick(btn); Thread.Sleep(1000); int found = 0; for (int i = 0; i < 30; i += SLEEPS) { btn = buttons.ProcessingWithRetryTop1(); if (btn != null && btn.decision == "true" && btn.extraInfo.Contains("cancelremove")) { found++; } else { break; } } if (found == 0) { context.DebugLog($"Wait not found, sleep 15s"); Thread.Sleep(1000 * 15); } } } } }
public static CommandInfo canUpgrade(ProcessingContext context, int numBuilders) { context.MouseMouseTo(0, 0); string imgName = StandardClicks.GetTempDirFile("tempUpgradeBuildingUpg.png"); Utils.doScreenShoot(imgName); string[] resultTypes = new[] { "Good", "Bad" }; string[] itemTypes = new[] { "Gold", "Eli" }; var sb = new StringBuilder(); sb.Append($"-input {imgName} "); const int actx = 200; const int acty = 630; if (numBuilders > 0) { foreach (var rt in resultTypes) { foreach (var itm in itemTypes) { sb.Append($"-name {itm}_{rt} -matchRect {actx},{acty},650,105_200 -match data\\check\\upgrade{itm}{rt}.png 40 "); } } } var res = context.GetAppInfo(sb.ToString()); res.ForEach(r => { r.x += actx; r.y += acty; }); if (context != null) { foreach (var r in res) { context.DebugLog(" DEBUGRM " + r); } } return(res.Where(r => r.decision == "true").OrderBy(r => r.cmpRes).FirstOrDefault()); }
public void RearmAll() { var ldr = new AutoResourceLoader(context, StandardClicks.GetTempDirFile("tmpRearmAll.png"), getCheckImgs()); var cmd = ldr.ProcessingWithRetryTop1(r => r.extraInfo != null && r.extraInfo.Contains("townhall")); if (cmd == null) { context.InfoLog("Warning, didn't find townhall"); return; } context.InfoLog($"Found townhall clicking {cmd.extraInfo} {cmd.cmpRes} {cmd.decision}"); context.MoveMouseAndClick(cmd); Thread.Sleep(1000); context.InfoLog($"done wait, try find rearmall"); var cmds = ldr.ProcessingWithRetry(); cmd = cmds.Where(c => c.decision == "true" && c.extraInfo.Contains("rearmall")).OrderBy(c => c.cmpRes).FirstOrDefault(); //cmd = cmds.FirstOrDefault(c => c.extraInfo.Contains("rearmall") && c.cmpRes < 30000); if (cmd == null) { context.InfoLog("Warning, didn't find rearm all"); return; } context.InfoLog($"Found rearm all {cmd.extraInfo} {cmd.cmpRes} {cmd.decision}"); context.MoveMouseAndClick(cmd); cmds = ldr.ProcessingWithRetry(r => r.extraInfo.Contains("ok_bigv1")); cmd = cmds.FirstOrDefault(); if (cmd == null) { context.InfoLog("Warning, didn't find ok button"); return; } context.InfoLog($"Found rearm all ok button {cmd.extraInfo} {cmd.cmpRes} {cmd.decision}"); context.MoveMouseAndClick(cmd); }