Beispiel #1
0
        public void Do_Tasks()
        {
            bool NeedDorf1 = false;

            int[] Remove = new int[] { 0, 0 };
            try
            {
                foreach (TravianTaskBuild task in TaskBuildBuildList)
                {
                    if (TaskBusyBool[task.villageId - 1, task.IsResource ? 1 : 0])
                    {
                        continue;
                    }

                    TravianTaskAdded result = tb.DoBuildUpgrade(task);
                    switch (result.Status)
                    {
                    case "Done":
                        Remove[0] = task.villageId;
                        Remove[1] = TaskBuildBuildList.IndexOf(task);
                        NeedDorf1 = true;
                        break;

                    case "Busy":
                        task.Status = "Busy";
                        TaskBusyBool[task.villageId - 1, task.IsResource ? 1 : 0] = true;
                        NeedDorf1 = true;
                        continue;

                    case "Doing":
                        task.Status = "Doing";
                        TravianDoingTaskBuild tdtb = new TravianDoingTaskBuild(TimeSpan.Parse(result.Time), result.level, task.villageId, task.name, task.IsResource, task.href);
                        try
                        {
                            TaskBusyBool[task.villageId - 1, task.IsResource ? 1 : 0] = true;
                        }
                        catch { ErrorConsole.Text += "Error freezing buildspace in vil: " + task.villageId + "Resource: " + task.IsResource; }

                        DoingTaskBuildList.Add(tdtb);
                        //TODO: FIX THIS< SO VILLAGE COMES FROM INDEX OF TASK -> REFRESH HIS RESOURCES

                        VillageList[tdtb.VillageId - 1] = tb.resources(VillageList[tdtb.VillageId - 1]);
                        NeedDorf1 = false;
                        break;

                    case "Need Resources":
                        task.Status = "Need Resources";
                        TaskBusyBool[task.villageId - 1, task.IsResource ? 1 : 0] = true;
                        NeedDorf1 = true;
                        continue;

                    default:
                        task.Status = "ERROR XD";
                        break;
                    }
                }
                if (Remove[0] != 0)
                {
                    TaskBuildBuildList.RemoveAt(Remove[1]);
                }

                // TODO: JEIGU PASKUTINIS INDEXAS TAI TIK TADA LEIDZIA DORF1
                if (NeedDorf1)
                {
                    tb.dorf1();
                }
                return;
            }
            catch (Exception ex)
            {
                ErrorConsole.Invoke((MethodInvoker) delegate
                {
                    ErrorConsole.Invoke((MethodInvoker) delegate
                    {
                        ErrorConsole.Text += "\n\nERROR IN DO TASKS" + Environment.NewLine + ex.Message + Environment.NewLine + ex.StackTrace;
                    });
                });
                try
                {
                    ErrorConsole.Invoke((MethodInvoker) delegate
                    {
                        ErrorConsole.Text += "\n\n TRYING LOGIN";
                    });
                    tb.LoginTravian();
                }
                catch
                {
                    ErrorConsole.Invoke((MethodInvoker) delegate
                    {
                        ErrorConsole.Text += "\n\nERROR LOL UR FKED" + Environment.NewLine + ex.Message + Environment.NewLine + ex.StackTrace;
                    });
                }
                return;
            }
        }
Beispiel #2
0
        private void Tasks_Timer_Tick(object sender, EventArgs e)
        {
            SysTimeLabel.Text = SysTime.ToString(@"hh\:mm\:ss");
            SysTime           = SysTime.Add(new TimeSpan(0, 0, 1));
            forcerefreshtimer--;
            BuildingNow.Items.Clear();
            int[] Remove = new int[] { 0, 0 };
            try
            {
                foreach (TravianDoingTaskBuild item in DoingTaskBuildList)
                {
                    item.TimeLeft = item.TimeLeft.Subtract(new TimeSpan(0, 0, 1));

                    int compare = TimeSpan.Compare(item.TimeLeft, new TimeSpan(0, 0, -1));
                    if (compare < 0)
                    {
                        Remove[0] = 1;
                        Remove[1] = DoingTaskBuildList.IndexOf(item);
                    }
                }
                if (Remove[0] == 1)
                {
                    TravianDoingTaskBuild DoneTask = DoingTaskBuildList.ElementAt(Remove[1]);

                    TaskBusyBool[DoneTask.VillageId - 1, DoneTask.IsResource? 1 : 0] = false;
                    var task = TaskBuildBuildList.Find(t => t.href == DoneTask.url);
                    try
                    {
                        task.level++;
                    }
                    catch { }

                    var village = VillageList.Find(vil => vil.Number == DoneTask.VillageId);
                    var item    = (village.Buildings.Concat(village.ResourceFields)).SingleOrDefault(x => x.href == DoneTask.url);
                    try
                    {
                        item.level++;
                    }
                    catch
                    {
                        if (DoneTask.IsResource)
                        {
                            tb.Navigate(VillageList[DoneTask.VillageId - 1].Url);
                            VillageList[DoneTask.VillageId - 1].ResourceFields = tb.RefreshResourceAreas();
                        }
                        else
                        {
                            tb.Navigate(VillageList[DoneTask.VillageId - 1].Url);
                            VillageList[DoneTask.VillageId - 1].ResourceFields = tb.RefreshBuildingAreas();
                        }
                    }
                    DoingTaskBuildList.RemoveAt(Remove[1]);
                }
            }
            catch (Exception ex) {
                ErrorConsole.Text += "\n\nERROR IN TASKS_TIMEER_TICK" + Environment.NewLine + ex.Message + Environment.NewLine + ex.StackTrace;
            }
            finally { RefreshBuildingNowList(); }
            try
            {
                if (forcerefreshtimer < 0)
                {
                    forcerefreshtimer = 300;
                    for (int j = 0; j < TaskBusyBool.GetLength(0); j++)
                    {
                        for (int k = 0; k < (TaskBusyBool.GetLength(1) - 1); k++)
                        {
                            TaskBusyBool[j, k] = false;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorConsole.Text += "\n\nERROR IN TRYING TO FORCE REFRESH: " + Environment.NewLine + ex.Message + Environment.NewLine + ex.StackTrace;
            }
        }