Server.Mobiles.BaseEscortable.GetEscorter C# (CSharp) Method

GetEscorter() public method

public GetEscorter ( ) : Mobile
return Mobile
		public virtual Mobile GetEscorter()
		{
			if ( !Controlled )
				return null;

			Mobile master = ControlMaster;

			if ( master == null )
				return master;

			if (master.Deleted || master.Map != this.Map || !master.InRange(Location, 30) || !master.Alive)
			{
				StopFollow();

				TimeSpan lastSeenDelay = DateTime.Now - m_LastSeenEscorter;

				if (lastSeenDelay >= AbandonDelay)
				{
					master.SendLocalizedMessage(1042473); // You have lost the person you were escorting.
					Say(1005653); // Hmmm. I seem to have lost my master.

					SetControlMaster(null);
					m_EscortTable.Remove(master);

					Timer.DelayCall(TimeSpan.FromSeconds(5.0), new TimerCallback(Delete));
					return null;
				}
				else
				{
					ControlOrder = OrderType.Stay;
					return master;
				}
			}

			if (ControlOrder != OrderType.Follow)
				StartFollow(master);

			m_LastSeenEscorter = DateTime.Now;
			return master;
		}

Usage Example

Ejemplo n.º 1
0
        public virtual bool AcceptEscorter(Mobile m)
        {
            EDI dest = this.GetDestination();

            if (dest == null)
            {
                return(false);
            }

            Mobile escorter = this.GetEscorter();

            if (escorter != null || !m.Alive)
            {
                return(false);
            }

            BaseEscortable escortable = (BaseEscortable)m_EscortTable[m];

            if (escortable != null && !escortable.Deleted && escortable.GetEscorter() == m)
            {
                this.Say("I see you already have an escort.");
                return(false);
            }
            else if (m is PlayerMobile && (((PlayerMobile)m).LastEscortTime + m_EscortDelay) >= DateTime.UtcNow)
            {
                int minutes = (int)Math.Ceiling(((((PlayerMobile)m).LastEscortTime + m_EscortDelay) - DateTime.UtcNow).TotalMinutes);

                this.Say("You must rest {0} minute{1} before we set out on this journey.", minutes, minutes == 1 ? "" : "s");
                return(false);
            }
            else if (this.SetControlMaster(m))
            {
                this.m_LastSeenEscorter = DateTime.UtcNow;

                if (m is PlayerMobile)
                {
                    ((PlayerMobile)m).LastEscortTime = DateTime.UtcNow;
                }

                this.Say("Lead on! Payment will be made when we arrive in {0}.", (dest.Name == "Ocllo" && m.Map == Map.Trammel) ? "Haven" : dest.Name);
                m_EscortTable[m] = this;
                this.StartFollow();
                #region BBs Quests
                // We have an escort, Remove bulletin board post
                if (m_Message != null)
                {
                    m_Message.Delete();
                }
                #endregion

                return(true);
            }

            return(false);
        }
All Usage Examples Of Server.Mobiles.BaseEscortable::GetEscorter