public void InspectSample() { JSONDataV2 Sample; if (!DATA.TryGetValue("InspectSample", out Sample)) { return; } if (!checkPoints(Sample)) { return; } ChangeTask("Inspect Sample"); Console.WriteLine("Inspect Sample"); click(Sample.RandomPoint[0]); //point 0 button Point[] tubePos = Sample.RandomPoint.GetRange(2, 5).ToArray(); //point 2x5 Point button = Sample.RandomPoint[1]; //point 1 for (var t = 0; t < tubePos.Length; t++) { Color a = ColorGet.GetColorAt(tubePos[t]); if (a.R > a.B)//check if tube is more red than blue { click(tubePos[t].X, button.Y); return; } } }
public void DivertPower() { JSONDataV2 DivertPowerData; if (!DATA.TryGetValue("DivertPower", out DivertPowerData)) { return; } if (!checkPoints(DivertPowerData)) { return; } ChangeTask("Divert Power"); Console.WriteLine("Divert Power"); Point[] sliders = DivertPowerData.RandomPoint.ToArray();//all of random points for (var i = 0; i < sliders.Length; i++) { //if red is higher than 150 if (ColorGet.GetColorAt(sliders[i]).R > 150) { move(sliders[i]); press(); Thread.Sleep(30); move(sliders[i].X, 0); release(); } } }
public void Wires() { JSONDataV2 WiresData; if (!DATA.TryGetValue("Wires", out WiresData)) { return; } if (!checkPoints(WiresData)) { return; } ChangeTask("Wires"); Console.WriteLine("WIRES, fix me so it works every time"); Point[] leftWires = WiresData.RandomPoint.GetRange(0, 4).ToArray();//rp 0x4 Point[] rightWires = WiresData.RandomPoint.GetRange(4, 4).ToArray(); for (var l = 0; l < leftWires.Length; l++) { Color leftColor = ColorGet.GetColorAt(leftWires[l]); for (var r = 0; r < rightWires.Length; r++) { if (ColorGet.GetColorAt(rightWires[r]).Equals(leftColor)) { //connect wires move(leftWires[l]); Mouse.ButtonDown(Mouse.MouseKeys.Left); move(rightWires[r]); Mouse.ButtonUp(Mouse.MouseKeys.Left); } } } }
public void Lights() { JSONDataV2 LightsData; if (!DATA.TryGetValue("Lights", out LightsData)) { return; } if (!checkPoints(LightsData)) { return; } Console.WriteLine("Lights"); ChangeTask("Lights"); Point SwitchY = LightsData.RandomPoint[0]; //random point 0 Point[] leds = LightsData.RandomPoint.GetRange(1, 5).ToArray(); //random point 1-5 for (var i = 0; i < leds.Length; i++) { if (ColorGet.GetColorAt(leds[i]).Equals(LightsData.RandomColor[6]))//random color 0 { click(leds[i].X, SwitchY.Y); } } }
public void Refuel() { JSONDataV2 RefuelData; if (!DATA.TryGetValue("Refuel", out RefuelData)) { return; } if (!checkPoints(RefuelData)) { return; } ChangeTask("Refuel"); Console.WriteLine("Refuel"); Color ledColor = RefuelData.RandomColor[0]; Point ledPoint = RefuelData.RandomPoint[0]; Point buttonPoint = RefuelData.RandomPoint[1]; move(buttonPoint); press(); while (ColorGet.GetColorAt(ledPoint).Equals(ledColor)) { Thread.Sleep(100); } release(); }
/// <summary> /// Checks points for this color /// </summary> public static bool checkPoints(JSONDataV2 data) { if (!data.Active) { return(false); } foreach (Tuple <Point, Color> item in data.CheckPointColor) { if (!ColorGet.GetColorAt(item.Item1).Equals(item.Item2)) { return(false); } } return(true); }
public void Shields() { JSONDataV2 ShieldsData; if (!DATA.TryGetValue("Shields", out ShieldsData)) { return; } if (!checkPoints(ShieldsData)) { return; } ChangeTask("Shields"); Console.WriteLine("Shields"); Point[] s = ShieldsData.RandomPoint.ToArray(); for (var i = 0; i < s.Length; i++) { if (ColorGet.GetColorAt(s[i]).G < 150)//it appears that the active sheilds greens are higher than 150 and reds are lower { click(s[i]); } } }
public void AlignEngine() { JSONDataV2 AlignEngineData; if (!DATA.TryGetValue("AlignEngine", out AlignEngineData)) { return; } if (!checkPoints(AlignEngineData)) { return; } ChangeTask("Align Engine"); Console.WriteLine("Align Engine"); List <Point> rp = AlignEngineData.RandomPoint; Point top = rp[0]; Point bottom = rp[1]; //random p 1 Point center = rp[2]; //random p 2 //Color thingColor = Color.FromArgb(255, 163, 163, 178); for (var a = top.Y; a < bottom.Y; a += 10)//scan for the thingy { Color color = ColorGet.GetColorAt(top.X, a); //get difference between rgb if its over 5 then its the pointer, probably int diff = Math.Max(Math.Max(color.R, color.B), color.G) - Math.Min(Math.Min(color.R, color.B), color.G); if (diff > 5) { move(top.X, a); press(); move(center); release(); return; } } }
public void CalibrateDistributor() { JSONDataV2 DistributorData; if (!DATA.TryGetValue("CalibrateDistributor", out DistributorData)) { return; } if (!checkPoints(DistributorData)) { return; } ChangeTask("Calibrate Distributor"); Console.WriteLine("Calibrate Distributor"); Point[] leds = DistributorData.RandomPoint.GetRange(0, 3).ToArray(); Console.WriteLine(); Point[] buttons = DistributorData.RandomPoint.GetRange(3, 3).ToArray();//random point 3-5 for (var i = 0; i < leds.Length; i++) { int a = 0; while (checkPoints(DistributorData) && a < 200) { if (!ColorGet.GetColorAt(leds[i]).Equals(Color.FromArgb(255, 0, 0, 0))) { clickNoDelay(buttons[i]); Thread.Sleep(200); if (!ColorGet.GetColorAt(leds[i]).Equals(Color.FromArgb(255, 0, 0, 0))) { a = 300; } } a++; Thread.Sleep(10); } } }