Example #1
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            /*int version = */
            reader.ReadInt();

            m_Parrot  = reader.ReadMobile() as Parrot;
            m_MyHouse = reader.ReadItem() as BaseHouse;
        }
Example #2
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            /*int version = */
            reader.ReadInt();

            m_Parrot = reader.ReadMobile() as Parrot;
            m_MyHouse = reader.ReadItem() as BaseHouse;
        }
Example #3
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                if (m_Parrot == null || m_Parrot.Deleted)
                {
                    return;
                }

                ParrotPerchAddon perch = null;

                if (targeted is ParrotPerchAddon)
                {
                    perch = targeted as ParrotPerchAddon;
                }
                else if (targeted is ParrotPerchAddonComponent)
                {
                    perch = ((ParrotPerchAddonComponent)targeted).Addon as ParrotPerchAddon;
                }

                if (perch != null)
                {
                    BaseHouse h = perch.MyHouse;

                    if (h == null || (h.Owner != from && !h.CoOwners.Contains(from)))
                    {
                        from.SendLocalizedMessage(1072618);                           // Parrots can only be placed on Parrot Perches in houses where you are an owner or co-owner.
                    }
                    else if (perch.Parrot != null)
                    {
                        from.SendLocalizedMessage(1072616);                           // That Parrot Perch already has a Parrot.
                    }
                    else
                    {
                        Parrot parrot = new Parrot(m_Parrot.Hue);

                        parrot.MoveToWorld(new Point3D(perch.Location.X, perch.Location.Y, perch.Location.Z + 11), perch.Map);

                        perch.Parrot = parrot;
                        parrot.Perch = perch;

                        m_Parrot.Delete();
                    }
                }
                else
                {
                    from.SendLocalizedMessage(1072614);                       // You must place the Parrot on a Parrot Perch.
                }
            }
Example #4
0
        public override void GetProperties(ObjectPropertyList list)
        {
            base.GetProperties(list);

            if (m_ContainsParrot)
            {
                if (m_ParrotName != "a pet parrot")
                {
                    list.Add(1072624, m_ParrotName);                       // Includes a pet Parrot named ~1_NAME~
                }
                else
                {
                    list.Add(1072620);                       // Includes a pet Parrot
                }
                int age = Parrot.GetAge(m_ParrotBirthDate);

                if (age > 0)
                {
                    list.Add(1072627, age.ToString());                       // ~1_AGE~ weeks old
                }
            }
        }
Example #5
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                IPoint3D p   = targeted as IPoint3D;
                Map      map = from.Map;

                if (p == null || map == null || m_Deed.Deleted)
                {
                    return;
                }

                if (m_Deed.IsChildOf(from.Backpack))
                {
                    ParrotPerchAddon addon = m_Deed.Addon as ParrotPerchAddon;

                    Server.Spells.SpellHelper.GetSurfaceTop(ref p);

                    ArrayList houses = null;

                    AddonFitResult res = addon.CouldFit(p, map, from, ref houses);

                    if (res == AddonFitResult.Valid)
                    {
                        addon.MoveToWorld(new Point3D(p), map);
                    }
                    else if (res == AddonFitResult.Blocked)
                    {
                        from.SendLocalizedMessage(500269);                           // You cannot build that there.
                    }
                    else if (res == AddonFitResult.NotInHouse)
                    {
                        from.SendLocalizedMessage(500274);                           // You can only place this in a house that you own!
                    }
                    else if (res == AddonFitResult.DoorsNotClosed)
                    {
                        from.SendMessage("You must close all house doors before placing this.");
                    }
                    else if (res == AddonFitResult.DoorTooClose)
                    {
                        from.SendLocalizedMessage(500271);                           // You cannot build near the door.
                    }
                    else if (res == AddonFitResult.NoWall)
                    {
                        from.SendLocalizedMessage(500268);                           // This object needs to be mounted on something.
                    }
                    if (res == AddonFitResult.Valid)
                    {
                        if (houses != null)
                        {
                            foreach (BaseHouse h in houses)
                            {
                                h.Addons.Add(addon);
                                addon.MyHouse = h;
                            }

                            if (m_Deed.m_ContainsParrot)
                            {
                                Parrot parrot = new Parrot(m_Deed.m_ParrotName, m_Deed.m_ParrotHue, m_Deed.m_ParrotBirthDate);

                                parrot.MoveToWorld(new Point3D(addon.Location.X, addon.Location.Y, addon.Location.Z + 11), addon.Map);

                                addon.Parrot = parrot;
                                parrot.Perch = addon;
                            }
                        }

                        m_Deed.Delete();
                    }
                    else
                    {
                        addon.Delete();
                    }
                }
                else
                {
                    from.SendLocalizedMessage(1042001);                       // That must be in your pack for you to use it.
                }
            }
Example #6
0
            protected override void OnTarget( Mobile from, object targeted )
            {
                IPoint3D p = targeted as IPoint3D;
                Map map = from.Map;

                if ( p == null || map == null || m_Deed.Deleted )
                    return;

                if ( m_Deed.IsChildOf( from.Backpack ) )
                {
                    ParrotPerchAddon addon = m_Deed.Addon as ParrotPerchAddon;

                    Server.Spells.SpellHelper.GetSurfaceTop( ref p );

                    ArrayList houses = null;

                    AddonFitResult res = addon.CouldFit( p, map, from, ref houses );

                    if ( res == AddonFitResult.Valid )
                        addon.MoveToWorld( new Point3D( p ), map );
                    else if ( res == AddonFitResult.Blocked )
                        from.SendLocalizedMessage( 500269 ); // You cannot build that there.
                    else if ( res == AddonFitResult.NotInHouse )
                        from.SendLocalizedMessage( 500274 ); // You can only place this in a house that you own!
                    else if ( res == AddonFitResult.DoorsNotClosed )
                        from.SendMessage( "You must close all house doors before placing this." );
                    else if ( res == AddonFitResult.DoorTooClose )
                        from.SendLocalizedMessage( 500271 ); // You cannot build near the door.
                    else if ( res == AddonFitResult.NoWall )
                        from.SendLocalizedMessage( 500268 ); // This object needs to be mounted on something.

                    if ( res == AddonFitResult.Valid )
                    {
                        if ( houses != null )
                        {
                            foreach ( BaseHouse h in houses )
                            {
                                h.Addons.Add( addon );
                                addon.MyHouse = h;
                            }

                            if ( m_Deed.m_ContainsParrot )
                            {
                                Parrot parrot = new Parrot( m_Deed.m_ParrotName, m_Deed.m_ParrotHue, m_Deed.m_ParrotBirthDate );

                                parrot.MoveToWorld( new Point3D( addon.Location.X, addon.Location.Y, addon.Location.Z + 11 ), addon.Map );

                                addon.Parrot = parrot;
                                parrot.Perch = addon;
                            }
                        }

                        m_Deed.Delete();
                    }
                    else
                    {
                        addon.Delete();
                    }
                }
                else
                {
                    from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
                }
            }
Example #7
0
            protected override void OnTarget( Mobile from, object targeted )
            {
                if ( m_Parrot == null || m_Parrot.Deleted )
                    return;

                ParrotPerchAddon perch = null;

                if ( targeted is ParrotPerchAddon )
                    perch = targeted as ParrotPerchAddon;
                else if ( targeted is ParrotPerchAddonComponent )
                    perch = ( (ParrotPerchAddonComponent) targeted ).Addon as ParrotPerchAddon;

                if ( perch != null )
                {
                    BaseHouse h = perch.MyHouse;

                    if ( h == null || ( h.Owner != from && !h.CoOwners.Contains( from ) ) )
                    {
                        from.SendLocalizedMessage( 1072618 ); // Parrots can only be placed on Parrot Perches in houses where you are an owner or co-owner.
                    }
                    else if ( perch.Parrot != null )
                    {
                        from.SendLocalizedMessage( 1072616 ); // That Parrot Perch already has a Parrot.
                    }
                    else
                    {
                        Parrot parrot = new Parrot( m_Parrot.Hue );

                        parrot.MoveToWorld( new Point3D( perch.Location.X, perch.Location.Y, perch.Location.Z + 11 ), perch.Map );

                        perch.Parrot = parrot;
                        parrot.Perch = perch;

                        m_Parrot.Delete();
                    }
                }
                else
                {
                    from.SendLocalizedMessage( 1072614 ); // You must place the Parrot on a Parrot Perch.
                }
            }