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

DetectHidden() public méthode

public DetectHidden ( ) : void
Résultat void
		public virtual void DetectHidden()
		{
			if (m_Mobile.Deleted || m_Mobile.Map == null)
				return;

			m_Mobile.DebugSay("Checking for hidden players");

			double srcSkill = m_Mobile.Skills[SkillName.DetectHidden].Value;

			if (srcSkill <= 0)
				return;

			foreach (Mobile trg in m_Mobile.GetMobilesInRange(m_Mobile.RangePerception))
			{
				if (trg != m_Mobile && trg.Player && trg.Alive && trg.Hidden && trg.AccessLevel == AccessLevel.Player && m_Mobile.InLOS(trg))
				{
					m_Mobile.DebugSay("Trying to detect {0}", trg.Name);

					double trgHiding = trg.Skills[SkillName.Hiding].Value / 2.9;
					double trgStealth = trg.Skills[SkillName.Stealth].Value / 1.8;

					double chance = srcSkill / 1.2 - Math.Min(trgHiding, trgStealth);

					if (chance < srcSkill / 10)
						chance = srcSkill / 10;

					chance /= 100;

					if (chance > Utility.RandomDouble())
					{
						trg.RevealingAction();
						trg.SendLocalizedMessage(500814); // You have been revealed!
					}
				}
			}
		}