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); }
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(); } }