public override void Execute()
        {
            if (!IsReady())
            {
                return;
            }

            Commands.ResetVillageNumber(village);
            Commands.ZoomOutMap(1);
            Commands.ActDectFilter(FilterEnabled.Scout);

            foreach (var item in targets)
            {
                List <Pair> target = reader.FindImageOnScreen(MainScreen.READER_AREA, item, true);
                if (target.Count != 0)
                {
                    Commands.WriteToScoutLog($"{village}| Founded \"{item.Path.Substring(8, item.Path.Length - 15)}\" {target.Count}");
                    int scouts_onstack = target.Count > Available_scouts ? 1 : Available_scouts / target.Count;
                    foreach (var stc in target)
                    {
                        if (stc.X > 1000 && stc.Y > 550)
                        {
                            continue;
                        }
                        if (!AlreadySended(stc))
                        {
                            Controller.AutoClick(stc);
                            Controller.AutoClick(MainScreen.MIDDLE_OFSCREEN);
                            Commands.Scouting.SendScout(scouts_onstack);
                            sended_scouts.Add(new ScoutTarget(scouts_onstack, CountNextExecute(new Coords(stc.X, stc.Y)), DateTime.Now, stc));
                            Available_scouts -= scouts_onstack;
                            last_execute      = DateTime.Now;
                            Commands.WriteToScoutLog(village.ToString() + "| Scouts sended: " + scouts_onstack.ToString() + " Resource: " + item.Path.Substring(8, item.Path.Length - 15));

                            if (Available_scouts > 0)
                            {
                                Commands.ResetVillageNumber(village);
                                Commands.ZoomOutMap(1);
                            }
                            else
                            {
                                Completed();
                                return;
                            }
                        }
                    }
                    if (Available_scouts == 0)
                    {
                        Completed();
                        return;
                    }
                }
            }

            Commands.WriteToLog("No resources on the map");
            execute_rate_sec = 120;
            Completed();
        }
        public override void Execute()
        {
            if (!IsReady())
            {
                return;
            }
            Commands.ResetVillageNumber(village);
            Commands.ActDectFilter(FilterEnabled.AI);
            foreach (var castle in castles) // Check default types
            {
                List <Pair> exist_castles = reader.FindImageOnScreen(MainScreen.READER_AREA, castle);

                if (exist_castles.Count != 0)
                {
                    Thread.Sleep(1000);
                    foreach (var targ in exist_castles) // Check finded castles
                    {
                        Controller.AutoClick(targ);
                        Thread.Sleep(1000);

                        List <Pair> shields = new List <Pair>();
                        foreach (var shield in targets)
                        {
                            shields = reader.FindImageOnScreen(MainScreen.SELECTED_CASTLE_AREA, shields_dict[shield.Name]);
                            if (shields.Count != 0)
                            {
                                break;
                            }
                        }

                        Controller.AutoClick(MainScreen.TAB_VILLAGE);
                        Controller.AutoClick(MainScreen.TAB_MAP);
                        Thread.Sleep(2000);
                        foreach (var check in targets) // Check selected castle
                        {
                            List <Pair> type = reader.FindImageOnScreen(MainScreen.SELECTED_CASTLE_AREA, castles[check.Level]);
                            if (shields.Count != 0 && type.Count != 0)
                            {
                                Controller.AutoClick(village_pos);
                                Controller.AutoClick(AttackScreen.MAP_ATTACK_BUTTON);
                                Thread.Sleep(2000);
                                Commands.Attacking.LoadFormation(AttackScreen.LocalSettings.formations[check.Formation]);
                                Controller.AutoClick(AttackScreen.SENDATTACK_BUTTON);
                                Thread.Sleep(500);
                                Controller.AutoClick(AttackScreen.SendingScreen.ATTACK_BUTTON);
                                Controller.AutoClick(AttackScreen.SendingScreen.SEND_BUTTON);
                                CountNextExecute(new Coords(targ.X, targ.Y));
                                Commands.WriteToLog("Army sended, level: " + check.Level.ToString());
                                Thread.Sleep(2000);
                                Completed();
                                return;
                            }
                        }
                    }
                    Commands.WriteToLog("No castles to attack");
                    Commands.ResetVillageNumber(village);
                }
            }
            //execute_rate_sec = Cvrt.ToSeconds(30, 0);
            Commands.ActDectFilter(MainScreen.Filters.ERASE_FILTER);
        }