Example #1
0
 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]);
        }
Example #3
0
        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]);
        }
Example #4
0
        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]);
        }
Example #5
0
        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);
            }
        }
Example #6
0
        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]);
        }
Example #7
0
        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]);
        }
Example #8
0
        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]);
        }
Example #9
0
 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);
 }
Example #10
0
        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);
        }
Example #11
0
        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]);
        }
Example #12
0
        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);
        }
Example #13
0
        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]);
        }
Example #14
0
        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]);
        }
Example #15
0
        public IState MoveNext(IButtonPositionsAndColors posColorManager, ModeConfig config, Statistics stats)
        {
            Mouse.LeftClick(posColorManager.ResendWinButtonPos);

            return(StateManager.Instance[StateKind.LastRuneFarming]);
        }
Example #16
0
        public IState MoveNext(IButtonPositionsAndColors posColorManager, ModeConfig config, Statistics stats)
        {
            ExecutionDelay.DelayFor(1500);

            return(StateManager.Instance[StateKind.InitialRuneFamring]);
        }
Example #17
0
 public void Serialize(IButtonPositionsAndColors obj)
 {
     File.WriteAllText(Path, JsonConvert.SerializeObject(obj, Formatting.Indented));
 }
Example #18
0
 public abstract IState MoveNext(IButtonPositionsAndColors posColorManager, ModeConfig config, Statistics stats);