Ejemplo n.º 1
0
    public void Stop(bool immediate = false)
    {
        if (Responsible.Jobs.IndexOf(this) == 0)
        {
            Responsible.StopWalking();
            Responsible.JobFinished = true;
        }

        if (immediate)
        {
            Responsible.StopCoroutine(Coroutine);
        }

        if (_started)
        {
            if (!immediate)
            {
                SkillManager.UpdateSkill(Responsible, SkillType, EarnedXp);
                if (ActivityType != ActivityType.Kill)
                {
                    QuestManager.Progress(Responsible, this);
                }
            }

            EffectManager.Remove(Responsible, Effects);
            _started = false;
            Target.InUse++;
        }

        JobManager.RemoveJob(this);
    }