public static void RecognizeCrime(Mobile m, Soldier s) { if (m.Deleted || m == null || !m.Alive) return; if (s.Deleted || s == null || !s.Alive) return; if (s.Government == null || s.Government.Deleted) return; if (m is PlayerMobile && CustomGuildStone.IsGuildOfficer(m as PlayerMobile, s.Government)) return; if (m is Soldier && (m as Soldier).Government != null && !(m as Soldier).Government.Deleted && (m as Soldier).Government == s.Government) return; if (m is PlayerMobile && GroupInfo.IsGroupLeader(s, m as PlayerMobile)) return; XmlAttachment attachment = null; attachment = XmlAttach.FindAttachmentOnMobile(m, typeof(XmlCriminal), s.Nation.ToString()); if (attachment == null) { XmlAttach.AttachTo(m, new XmlCriminal(s)); m.SendMessage(CriminalAlertMessage(s.Nation)); if (m is PlayerMobile) { if (((PlayerMobile)m).CriminalActivity) { ((PlayerMobile)m).CriminalActivity = false; ReportInfo newReport = new ReportInfo(m, true, false); newReport.ReporterName = s.Name; s.ReportTimer = new ReportTimer(newReport, s); } else { ReportInfo newReport = new ReportInfo(m, false, true); newReport.ReporterName = s.Name; s.ReportTimer = new ReportTimer(newReport, s); } s.ReportTimer.Start(); } m.RevealingAction(); s.OnThink(); } }