Server.Mobiles.BaseAI.TransformMoveDelay C# (CSharp) Méthode

TransformMoveDelay() public méthode

public TransformMoveDelay ( double delay ) : double
delay double
Résultat double
		public double TransformMoveDelay(double delay)
		{
			bool isPassive = (delay == m_Mobile.PassiveSpeed);
			bool isControlled = (m_Mobile.Controlled || m_Mobile.Summoned);

			if (delay == 0.2)
				delay = 0.3;
			else if (delay == 0.25)
				delay = 0.45;
			else if (delay == 0.3)
				delay = 0.6;
			else if (delay == 0.4)
				delay = 0.9;
			else if (delay == 0.5)
				delay = 1.05;
			else if (delay == 0.6)
				delay = 1.2;
			else if (delay == 0.8)
				delay = 1.5;

			if (isPassive)
				delay += 0.2;

			if (!isControlled)
			{
				delay += 0.1;
			}
			else if (m_Mobile.Controlled)
			{
				if (m_Mobile.ControlOrder == OrderType.Follow && m_Mobile.ControlTarget == m_Mobile.ControlMaster)
					delay *= 0.5;

				delay -= 0.075;
			}

			if (m_Mobile.ReduceSpeedWithDamage || m_Mobile.IsSubdued)
			{
				double offset = (double)m_Mobile.Hits / m_Mobile.HitsMax;

				if (offset < 0.0)
					offset = 0.0;
				else if (offset > 1.0)
					offset = 1.0;

				offset = 1.0 - offset;

				delay += (offset * 0.8);
			}

			if (delay < 0.0)
				delay = 0.0;

			if (double.IsNaN(delay))
			{
				using (StreamWriter op = new StreamWriter("nan_transform.txt", true))
				{
					op.WriteLine(String.Format("NaN in TransformMoveDelay: {0}, {1}, {2}, {3}", DateTime.Now, this.GetType().ToString(), m_Mobile == null ? "null" : m_Mobile.GetType().ToString(), m_Mobile.HitsMax));
				}

				return 1.0;
			}

			return delay;
		}