Example #1
0
        public virtual void RemoveQuest(bool removeChain)
        {
            StopTimer();

            if (removeChain)
            {
                m_Owner.Chains.Remove(ChainID);
            }

            if (Completed && (RestartDelay > TimeSpan.Zero || ForceRemember || DoneOnce) && NextQuest == null)
            {
                Type type = GetType();

                if (ChainID != QuestChain.None)
                {
                    type = QuestHelper.FindFirstChainQuest(this);
                }

                QuestHelper.Delay(Owner, type, RestartDelay);
            }

            QuestHelper.RemoveAcceleratedSkillgain(Owner);

            for (int i = m_Owner.Quests.Count - 1; i >= 0; i--)
            {
                if (m_Owner.Quests[i] == this)
                {
                    m_Owner.Quests.RemoveAt(i);

                    break;
                }
            }
        }
Example #2
0
        public virtual void RemoveQuest(bool removeChain)
        {
            StopTimer();

            if (removeChain)
            {
                m_Owner.Chains.Remove(ChainID);
            }

            if (Completed && (RestartDelay > TimeSpan.Zero || ForceRemember || DoneOnce) && NextQuest == null && Owner.AccessLevel == AccessLevel.Player)
            {
                Type type = GetType();

                if (ChainID != QuestChain.None)
                {
                    type = QuestHelper.FindFirstChainQuest(this);
                }

                QuestHelper.Delay(Owner, type, RestartDelay);
            }

            QuestHelper.RemoveAcceleratedSkillgain(Owner);

            if (m_Owner.Quests.Contains(this))
            {
                m_Owner.Quests.Remove(this);
            }
        }