private void PerformEnergyRefilling(IButtonPositionsAndColors posColorManager) { RefillEnergy(posColorManager); ExecutionDelay.DelayFor(2000, 300); Mouse.LeftClick(posColorManager.ReplayButtonPos); ExecutionDelay.DelayFor(2500, 300); }
public IState MoveNext(IButtonPositionsAndColors posColorManager, ModeConfig config, Statistics stats) { //Win condition - Check reward color and a pixel in the middle if (posColorManager.WinCondition1Col.Matches(Screen.GetPixel(posColorManager.WinCondition1Pos)) && posColorManager.WinCondition2Col.Matches(Screen.GetPixel(posColorManager.WinCondition2Pos))) { return(StateManager.Instance[StateKind.Win]); } //Lose condition if (posColorManager.LoseCondition1Col.Matches(Screen.GetPixel(posColorManager.LoseCondition1Pos)) && posColorManager.LoseCondition2Col.Matches(Screen.GetPixel(posColorManager.LoseCondition2Pos))) { return(StateManager.Instance[StateKind.Lose]); } //Network problems - send data again if (posColorManager.NetworkProblems1Col.Matches( Screen.GetPixel(posColorManager.NetworkProblems1Pos)) && posColorManager.NetworkProblems2Col.Matches(Screen.GetPixel(posColorManager.NetworkProblems2Pos))) { return(StateManager.Instance[StateKind.NetworkProblem]); } //Unstable network connection if (posColorManager.UnstableConnection1Col.Matches( Screen.GetPixel(posColorManager.UnstableConnection1Pos)) && posColorManager.UnstableConnection1Col.Matches(Screen.GetPixel(posColorManager.UnstableConnection2Pos))) { return(StateManager.Instance[StateKind.UnstableNetwork]); } return(StateManager.Instance[StateKind.LastRuneFarming]); }
public override IState MoveNext(IButtonPositionsAndColors posColorManager, ModeConfig config, Statistics stats) { stats.Refills += StartNewRound(posColorManager, config.RefreshEnergy); stats.SuccessfulRuns++; stats.Runs++; stats.Print(); return(StateManager.Instance[StateKind.LastRuneFarming]); }
public IState MoveNext(IButtonPositionsAndColors posColorManager, ModeConfig config, Statistics stats) { //Unknown scroll, rainbowmon, mystical scroll, ... //sendMouseLeftclick(new Point(Randomize(90, 890), Randomize(15, 860))); Mouse.LeftClick(posColorManager.GetMiscButtonPos); ExecutionDelay.DelayFor(1500, 300); stats.MiscDrops++; return(StateManager.Instance[StateKind.AfterWin]); }
public void Start(IButtonPositionsAndColors posColorManager, ModeConfig config) { _isRunning = true; _statistics.Print(); // Maybe add final state while (_currState != null && _isRunning) { _currState = _currState.MoveNext(posColorManager, config, _statistics); } }
public IState MoveNext(IButtonPositionsAndColors posColorManager, ModeConfig config, Statistics stats) { Console.WriteLine($"Position X is: {Cursor.Position.X} Position Y is: {Cursor.Position.Y}" + "\n R:" + Screen.GetPixel(new Point(Cursor.Position.X, Cursor.Position.Y)).R + "\n G: " + Screen.GetPixel(new Point(Cursor.Position.X, Cursor.Position.Y)).G + "\n B: " + Screen.GetPixel(new Point(Cursor.Position.X, Cursor.Position.Y)).B + "\n"); ExecutionDelay.DelayFor(1500); return(StateManager.Instance[StateKind.Debug]); }
public IState MoveNext(IButtonPositionsAndColors posColorManager, ModeConfig config, Statistics stats) { //Check whether it is a good rune (6* || legend) var isGoodRune = posColorManager.CheckSixStarRuneCol.Matches(Screen.GetPixel(posColorManager.CheckSixStarRunePos)) || posColorManager.CheckLegendCol.Matches(Screen.GetPixel(posColorManager.CheckLegendPos)); return(isGoodRune ? StateManager.Instance[StateKind.GoodRuneDrop] : StateManager.Instance[StateKind.BadRuneDrop]); }
public IState MoveNext(IButtonPositionsAndColors posColorManager, ModeConfig config, Statistics stats) { //Perform a double click Mouse.DoubleLeftClick(posColorManager.DoubleClickPos); ExecutionDelay.DelayFor(2000, 300); //Check whether it is a rune drop or not return(posColorManager.CheckRuneDropCol.Matches(Screen.GetPixel(posColorManager.CheckRuneDropPos)) ? StateManager.Instance[StateKind.RuneDrop] : StateManager.Instance[StateKind.NoRuneDrop]); }
protected void RefillEnergy(IButtonPositionsAndColors posColorManager) { Mouse.LeftClick(posColorManager.RefreshEnergyButtonPos); ExecutionDelay.DelayFor(1500, 300); Mouse.LeftClick(posColorManager.Energy4CrystalsButtonPos); ExecutionDelay.DelayFor(1500, 300); Mouse.LeftClick(posColorManager.Energy4CrystalsConfirmButtonPos); ExecutionDelay.DelayFor(4000, 300); Mouse.LeftClick(posColorManager.RefreshedEnergyConfirmButtonPos); ExecutionDelay.DelayFor(1500, 300); Mouse.LeftClick(posColorManager.CloseCashShopWindowButtonPos); ExecutionDelay.DelayFor(1500, 300); }
protected int StartNewRound(IButtonPositionsAndColors posColorManager, bool refreshEnergy) { //Start a new round Mouse.LeftClick(posColorManager.ReplayButtonPos); ExecutionDelay.DelayFor(2300, 300); var refreshedEnergy = CheckEnergyEmpty(posColorManager, refreshEnergy) ? 1 : 0; Mouse.LeftClick(posColorManager.StartBattleButtonPos); ExecutionDelay.DelayFor(1000, 300); return(refreshedEnergy); }
public IState MoveNext(IButtonPositionsAndColors posColorManager, ModeConfig config, Statistics stats) { //Bad rune stats.BadRuneCount++; //Purple 5* rune: take screenshot in order to check the sell heuristic quality //if ((checkRuneName(230, 130, 237) && MatchedColor(221, 228, 226, GetPixel(new Point(657, 366))))) // take_screenshot(SUBPATH, bad_rune_count); Mouse.LeftClick(posColorManager.SellRuneButtonPos); ExecutionDelay.DelayFor(1200, 300); //Is it a 5* or violet rune? Confirm sell button Mouse.LeftClick(posColorManager.ConfirmSellRuneButtonPos); ExecutionDelay.DelayFor(3500, 300); return(StateManager.Instance[StateKind.AfterWin]); }
protected bool CheckEnergyEmpty(IButtonPositionsAndColors posColorManager, bool refreshEnergy) { var energyEmpty = refreshEnergy && posColorManager.CheckEnergyEmpty1Col.Matches( Screen.GetPixel(posColorManager.CheckEnergyEmpty1Pos)) && posColorManager.CheckEnergyEmpty2Col.Matches( Screen.GetPixel(posColorManager.CheckEnergyEmpty2Pos)); if (energyEmpty) { PerformEnergyRefilling(posColorManager); } return(energyEmpty); }
public override IState MoveNext(IButtonPositionsAndColors posColorManager, ModeConfig config, Statistics stats) { Mouse.LeftClick(posColorManager.NoContinueButtonPos); ExecutionDelay.DelayFor(3500, 300); Mouse.LeftClick(posColorManager.ReplayButtonPos); ExecutionDelay.DelayFor(1500, 300); stats.Refills += StartNewRound(posColorManager, config.RefreshEnergy); stats.LossCount++; stats.Runs++; stats.Print(); return(StateManager.Instance[StateKind.LastRuneFarming]); }
public IState MoveNext(IButtonPositionsAndColors posColorManager, ModeConfig config, Statistics stats) { //Good rune stats.GoodRuneCount++; if (stats.GoodRuneCount != null) { Screen.TakeScreenshot(Environment.ExpandEnvironmentVariables(Settings.Default.Rootpath), stats.GoodRuneCount.Value); } ExecutionDelay.DelayFor(1200, 300); Mouse.LeftClick(posColorManager.GetRuneButtonPos); ExecutionDelay.DelayFor(1200, 300); return(StateManager.Instance[StateKind.AfterWin]); }
public IState MoveNext(IButtonPositionsAndColors posColorManager, ModeConfig config, Statistics stats) { Mouse.LeftClick(posColorManager.ResendWinButtonPos); return(StateManager.Instance[StateKind.LastRuneFarming]); }
public IState MoveNext(IButtonPositionsAndColors posColorManager, ModeConfig config, Statistics stats) { ExecutionDelay.DelayFor(1500); return(StateManager.Instance[StateKind.InitialRuneFamring]); }
public void Serialize(IButtonPositionsAndColors obj) { File.WriteAllText(Path, JsonConvert.SerializeObject(obj, Formatting.Indented)); }
public abstract IState MoveNext(IButtonPositionsAndColors posColorManager, ModeConfig config, Statistics stats);