Example #1
0
        public override void OnDoubleClick(Mobile from)
        {
            if (from.InRange(this.Location, 3))
            {
                Item corn;

                if (Utility.RandomDouble() < 0.70)
                {
                    corn = new EarOfCorn(1);
                    from.PrivateOverheadMessage(Server.Network.MessageType.Regular, 1154, 1156736, "#1156737", from.NetState);
                }
                else
                {
                    corn = new BlueCorn(1);
                    from.PrivateOverheadMessage(Server.Network.MessageType.Regular, 1154, 1156736, "#1156733", from.NetState);
                }

                from.AddToBackpack(corn);

                if (Used > 1)
                {
                    Used--;
                }
                else
                {
                    Delete();
                }
            }
            else
            {
                from.LocalOverheadMessage(Server.Network.MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
            }
        }
        public override Item GetCropObject()
        {
            EarOfCorn earofcorn = new EarOfCorn();

            earofcorn.ItemID = Utility.Random(3201, 2);

            return(earofcorn);
        }
		public override void OnDoubleClick( Mobile from ) 
		{ 
			if ( m_sower == null || m_sower.Deleted ) 
				m_sower = from;

			if ( from.Mounted && !CropHelper.CanWorkMounted )
			{
				from.SendMessage( "You cannot harvest a crop while mounted." ); 
				return; 
			}

			if ( DateTime.Now > lastpicked.AddSeconds(1) ) // 3 seconds between picking changed to 1 sec
			{
				lastpicked = DateTime.Now;
			
				int cookingValue = (int)from.Skills[SkillName.Cooking].Value / 20;
				if ( cookingValue == 0 )
				{
					from.SendMessage( "You have no idea how to harvest this crop." ); 
					return;
				}

				if ( from.InRange( this.GetWorldLocation(), 1 ) ) 
				{ 
					if ( m_yield < 1 )
					{
						from.SendMessage( "There is nothing here to harvest." ); 

						if ( PlayerCanDestroy && !( m_sower.AccessLevel > AccessLevel.Counselor ) )
						{  
							UpRootGump g = new UpRootGump( from, this );
							from.SendGump( g );
						}
					}
					else //check skill and sower
					{
						from.Direction = from.GetDirectionTo( this );

						from.Animate( from.Mounted ? 29:32, 5, 1, true, false, 0 ); 

						if ( from == m_sower ) 
						{
							cookingValue *= 2;
							m_lastvisit = DateTime.Now;
						}

						if ( cookingValue > m_yield ) 
							cookingValue = m_yield + 1;

						int pick = Utility.Random( cookingValue );
						if ( pick == 0 )
						{
							from.SendMessage( "You do not manage to harvest any crops." ); 
							return;
						}
						// *** Limit to one yield until we have Corn item ***
						if ( pick > 1 ) pick = 1;
					
						m_yield -= pick;
						from.SendMessage( "You harvest {0} crop{1}!", pick, ( pick == 1 ? "" : "s" ) ); 

						//PublicOverheadMessage( MessageType.Regular, 0x3BD, false, string.Format( "{0}", m_yield )); 
						((Item)this).ItemID = pickedGraphic;

						// *******************************
						// *** Corn does not yet exist ***
						// *******************************
						//Corn crop = new Corn( pick ); 
						//Muffins crop = new Muffins(); 
						EarOfCorn crop = new EarOfCorn( pick );
						from.AddToBackpack( crop );

						if ( SowerPickTime != TimeSpan.Zero && m_lastvisit + SowerPickTime < DateTime.Now && !( m_sower.AccessLevel > AccessLevel.Counselor ) )
						{
							this.UpRoot( from );
							return;
						}

						if ( !regrowTimer.Running )
						{
							regrowTimer.Start();
						}
					}
				} 
				else 
				{ 
					from.SendMessage( "You are too far away to harvest anything." ); 
				} 
			}
		}