Esempio n. 1
0
    private void OnCollisionEnter2D(Collision2D collision)
    {
        string _tag = collision.transform.tag;

        if (_tag == "ground" || _tag == "Player")
        {
            this.transform.SetParent(collision.transform);
            body.isKinematic     = true;
            body.velocity        = Vector2.zero;
            body.angularVelocity = 0.0f;
            transform.position  += this.transform.right * 0.2f;
            GetComponent <Collider2D>().enabled = false;
            camTarget._object = null;
            OnTaskFinished.Raise();
            GetComponent <SpriteRenderer>().sortingOrder = 7;
            if (_tag == "Player")
            {
                //  Instantiate(fx, collision.contacts[0].point, Quaternion.LookRotation(-this.transform.right));
                collision.gameObject.GetComponent <Rigidbody2D>().AddForceAtPosition(collision.contacts[0].point, this.transform.right);
                characterHP.ApplyChage(-1);
                if (characterHP.value <= 0)
                {
                    GameOver.Raise();
                }
            }
        }
    }
Esempio n. 2
0
        protected void IncrementProgress(int percentage)
        {
            log.Debug($"Task '{Title}' (Id: {TaskId}) - Progression: {ProgressionPercentage}");
            ProgressionPercentage = percentage;
            OnProgressChanged?.Invoke(this, percentage);

            if (percentage == 100)
            {
                OnTaskFinished?.Invoke(this, System.EventArgs.Empty);
            }
        }
Esempio n. 3
0
        private void UpdateProgressBar(ProgressBarModel pb)
        {
            ProgressBar.Value      = pb.Value;
            ProgressBar.Content    = pb.Content;
            ProgressBar.Visibility = pb.Visibility;

            if (ProgressBar.Visibility == Visibility.Visible)
            {
                OnTaskStarted?.Invoke();
            }
            if (ProgressBar.Visibility == Visibility.Hidden)
            {
                OnTaskFinished?.Invoke();
            }
        }
Esempio n. 4
0
 protected void OnUnpackFinished(bool bSuccessful)
 {
     OnTaskFinished?.Invoke(this, bSuccessful);
 }
Esempio n. 5
0
 public virtual ITask Execute()
 {
     OnTaskFinished?.Invoke(this, System.EventArgs.Empty);
     return(this);
 }
Esempio n. 6
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");
        }