Exemple #1
0
        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();
            }
        }