Esempio n. 1
0
 private void SetTaskTypeByIndex(int taskIndex)
 {
     _currentTaskIndex = taskIndex;
     CurrentType       = TaskFactory.TypesEditor[taskIndex];
     _label.text       = ObjectNames.NicifyVariableName(TaskFactory.NamesEditor[_currentTaskIndex]);
     OnTaskChanged?.Invoke();
 }
Esempio n. 2
0
        private void TaskThreadHandler()
        {
            while (!bExit)
            {
                //当前没有任务
                if (taskQueue.Count == 0)
                {
                    Thread.Sleep(1000);
                    continue;
                }
                var currentTask = taskQueue.Dequeue();
                RunningTask = currentTask;
                OnTaskChanged?.InvokeAll(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, currentResponse));
                OnTaskStart?.InvokeAll(this);
                KancolleTaskResult result = null;
                if (currentTask is OrganizeTask)
                {
                    result = Organize(currentTask as OrganizeTask);
                }
                else if (currentTask is SupplyTask)
                {
                    result = Supply(currentTask as SupplyTask);
                }
                else if (currentTask is QuestTask)
                {
                    result = Quest(currentTask as QuestTask);
                }
                else if (currentTask is MissionTask)
                {
                    result = Mission(currentTask as MissionTask);
                }
                else if (currentTask is MapTask)
                {
                    result = Map(currentTask as MapTask);
                }
                else if (currentTask is BattleTask)
                {
                    result = Battle(currentTask as BattleTask);
                }
                else if (currentTask is RemodelTask)
                {
                    result = Remodel(currentTask as RemodelTask);
                }
                else if (currentTask is RepairTask)
                {
                    result = Repair(currentTask as RepairTask);
                }
                else if (currentTask is RefreshDataTask)
                {
                    result = RefreshData(currentTask as RefreshDataTask);
                }

                if (result == null)
                {
                    result = new KancolleTaskResult(currentTask, KancolleTaskResultType.Fail, $"未能处理当前类型任务【{currentTask.GetType().Name}】", UnknownTaskType);
                }
                RunningTask = null;
                LastResult  = result;
                OnTaskFinished?.Invoke(this, result);
                Thread.Sleep(1000);
            }
            MessageBox.Show("thread finish");
        }
Esempio n. 3
0
 /// <summary>
 /// 清空所有的任务
 /// </summary>
 public void ClearTaskList()
 {
     taskQueue.Clear();
     OnTaskChanged?.InvokeAll(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
 }
Esempio n. 4
0
 /// <summary>
 /// 在优先级队列中插入一个新的任务,该任务会在合适的时机被执行
 /// 该函数将不再对外可用
 /// </summary>
 /// <param name="task"></param>
 private void EnqueueTask(KancolleTask task)
 {
     taskQueue.Enqueue(task, (int)task.Priority);
     OnTaskChanged?.InvokeAll(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, task));
 }
 public void ChangeTask(ShotTask shotTask)
 {
     OnTaskChanged?.Invoke(shotTask);
 }
Esempio n. 6
0
 /// <summary>
 ///
 /// </summary>
 private void TriggerOnTaskChanged()
 {
     Trace.WriteLine(RequestPending ? "Harmony-logs: Request pending" : "Harmony-logs: Request completed");
     OnTaskChanged?.Invoke(this, RequestPending);
 }