Beispiel #1
0
 public static void init( BarleySeedling plant )
 {
     plant.thisTimer = new CropHelper.GrowTimer( plant, typeof( BarleyCrop ), plant.Sower );
     plant.thisTimer.Start();
 }
Beispiel #2
0
        public override void OnDoubleClick( Mobile from )
        {
            if( from.Mounted && !CropHelper.CanWorkMounted )
            {
                from.SendMessage( "You cannot plant a seed while mounted." );
                return;
            }

            Point3D m_pnt = from.Location;
            Map m_map = from.Map;

            if( !IsChildOf( from.Backpack ) )
            {
                from.SendLocalizedMessage( 1042010 ); //You must have the object in your backpack to use it.
                return;
            }

            else if( !CropHelper.CheckCanGrow( this, m_map, m_pnt.X, m_pnt.Y ) )
            {
                from.SendMessage( "This seed will not grow here." );
                return;
            }

            //check for BaseCrop on this tile
            ArrayList cropshere = CropHelper.CheckCrop( m_pnt, m_map, 0 );
            if( cropshere.Count > 0 )
            {
                from.SendMessage( "There is already a crop growing here." );
                return;
            }

            //check for over planting prohibt if 4 maybe 3 neighboring crops
            ArrayList cropsnear = CropHelper.CheckCrop( m_pnt, m_map, 1 );
            if( ( cropsnear.Count > 3 ) || ( ( cropsnear.Count == 3 ) && Utility.RandomBool() ) )
            {
                from.SendMessage( "There are too many crops nearby." );
                return;
            }

            if( this.BumpZ ) ++m_pnt.Z;

            if( !from.Mounted )
                from.Animate( 32, 5, 1, true, false, 0 ); // Bow

            from.SendMessage( "You plant the seed." );
            this.Consume();
            Item item = new BarleySeedling( from );
            item.Location = m_pnt;
            item.Map = m_map;
        }