Server.Mobiles.CharacterStatueTarget.OnTarget C# (CSharp) Méthode

OnTarget() protected méthode

protected OnTarget ( Server.Mobile from, object targeted ) : void
from Server.Mobile
targeted object
Résultat void
        protected override void OnTarget( Mobile from, object targeted )
        {
            IPoint3D p = targeted as IPoint3D;
            Map map = from.Map;

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

            if ( m_Maker.IsChildOf( from.Backpack ) )
            {
                SpellHelper.GetSurfaceTop( ref p );
                BaseHouse house = null;
                Point3D loc = new Point3D( p );

                if ( targeted is Item && !((Item) targeted).IsLockedDown && !((Item) targeted).IsSecure && !(targeted is AddonComponent) )
                {
                    from.SendLocalizedMessage( 1076191 ); // Statues can only be placed in houses.
                    return;
                }
                else if ( from.IsBodyMod )
                {
                    from.SendLocalizedMessage( 1073648 ); // You may only proceed while in your original state...
                    return;
                }

                AddonFitResult result = CouldFit( loc, map, from, ref house );

                if ( result == AddonFitResult.Valid )
                {
                    CharacterStatue statue = new CharacterStatue( from, m_Type );
                    CharacterStatuePlinth plinth = new CharacterStatuePlinth( statue );

                    house.Addons.Add( plinth );

                    if ( m_Maker is IRewardItem )
                        statue.IsRewardItem = ( (IRewardItem) m_Maker).IsRewardItem;

                    statue.Plinth = plinth;
                    plinth.MoveToWorld( loc, map );
                    statue.InvalidatePose();

                    from.CloseGump( typeof( CharacterStatueGump ) );
                    from.SendGump( new CharacterStatueGump( m_Maker, statue, from ) );
                }
                else if ( result == AddonFitResult.Blocked )
                    from.SendLocalizedMessage( 500269 ); // You cannot build that there.
                else if ( result == AddonFitResult.NotInHouse )
                    from.SendLocalizedMessage( 1076192 ); // Statues can only be placed in houses where you are the owner or co-owner.
                else if ( result == AddonFitResult.DoorTooClose )
                    from.SendLocalizedMessage( 500271 ); // You cannot build near the door.
            }
            else
                from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
        }