Ejemplo n.º 1
0
        public override void ChildDeserialize(GenericReader reader)
        {
            int version = reader.ReadEncodedInt();

            int count = reader.ReadEncodedInt();

            for (int i = 0; i < count; i++)
            {
                NestArea nest = NestArea.GetByID(reader.ReadEncodedInt());
                m_StudiedNests.Add(nest);
            }

            m_StudiedSpecialNest = reader.ReadBool();
        }
Ejemplo n.º 2
0
        public override void CheckProgress()
        {
            PlayerMobile from = System.From;

            if (m_CurrentNest != null)
            {
                NestArea nest = m_CurrentNest;

                if ((from.Map == Map.Trammel || from.Map == Map.Felucca) && nest.Contains(from))
                {
                    if (m_StudyState != StudyState.Inactive)
                    {
                        TimeSpan time = DateTime.UtcNow - m_StudyBegin;

                        if (time > TimeSpan.FromSeconds(30.0))
                        {
                            m_StudiedNests.Add(nest);
                            m_StudyState = StudyState.Inactive;

                            if (m_CurrentNest.Special)
                            {
                                from.SendLocalizedMessage(1054057); // You complete your examination of this bizarre Egg Nest. The Naturalist will undoubtedly be quite interested in these notes!
                                m_StudiedSpecialNest = true;
                            }
                            else
                            {
                                from.SendLocalizedMessage(1054054); // You have completed your study of this Solen Egg Nest. You put your notes away.
                                CurProgress++;
                            }
                        }
                        else if (m_StudyState == StudyState.FirstStep && time > TimeSpan.FromSeconds(15.0))
                        {
                            if (!nest.Special)
                            {
                                from.SendLocalizedMessage(1054058); // You begin recording your completed notes on a bit of parchment.
                            }
                            m_StudyState = StudyState.SecondStep;
                        }
                    }
                }
                else
                {
                    if (m_StudyState != StudyState.Inactive)
                    {
                        from.SendLocalizedMessage(1054046); // You abandon your study of the Solen Egg Nest without gathering the needed information.
                    }
                    m_CurrentNest = null;
                }
            }
            else if (from.Map == Map.Trammel || from.Map == Map.Felucca)
            {
                NestArea nest = NestArea.Find(from);

                if (nest != null)
                {
                    m_CurrentNest = nest;
                    m_StudyBegin  = DateTime.UtcNow;

                    if (m_StudiedNests.Contains(nest))
                    {
                        m_StudyState = StudyState.Inactive;

                        from.SendLocalizedMessage(1054047); // You glance at the Egg Nest, realizing you've already studied this one.
                    }
                    else
                    {
                        m_StudyState = StudyState.FirstStep;

                        if (nest.Special)
                        {
                            from.SendLocalizedMessage(1054056); // You notice something very odd about this Solen Egg Nest. You begin taking notes.
                        }
                        else
                        {
                            from.SendLocalizedMessage(1054045); // You begin studying the Solen Egg Nest to gather information.
                        }
                        if (from.Female)
                        {
                            from.PlaySound(0x30B);
                        }
                        else
                        {
                            from.PlaySound(0x419);
                        }
                    }
                }
            }
        }