Пример #1
0
        public virtual void OnResign(bool resignChain)
        {
            m_Owner.PlaySound(ResignSound);

            // update chain
            if (!resignChain && !QuestHelper.FirstChainQuest(this, Quester))
            {
                UpdateChain();
            }

            // delete items	that were given on quest start
            for (int i = 0; i < m_Objectives.Count; i++)
            {
                if (m_Objectives[i] is ObtainObjective)
                {
                    ObtainObjective obtain = (ObtainObjective)m_Objectives[i];

                    QuestHelper.RemoveStatus(m_Owner, obtain.Obtain);
                }
                else if (m_Objectives[i] is DeliverObjective)
                {
                    DeliverObjective deliver = (DeliverObjective)m_Objectives[i];

                    QuestHelper.DeleteItems(m_Owner, deliver.Delivery, deliver.MaxProgress, true);
                }
            }

            // delete escorter
            if (m_Quester is BaseEscort)
            {
                BaseEscort escort = (BaseEscort)m_Quester;

                escort.Say(1005653);                   // Hmmm.  I seem to have lost my master.
                escort.PlaySound(0x5B3);
                escort.BeginDelete(m_Owner);
            }

            RemoveQuest(resignChain);
        }
Пример #2
0
        public virtual void Slice()
        {
            if (this.m_Duration + 10 < this.Lifespan)
            {
                this.m_Duration += 10;
            }
            else
            {
                this.StopTimer();

                if (this.Parent is Backpack)
                {
                    Backpack pack = (Backpack)this.Parent;

                    if (pack.Parent is PlayerMobile)
                    {
                        QuestHelper.RemoveStatus((PlayerMobile)pack.Parent, this);
                    }
                }

                this.Delete();
            }
        }