public override bool LootItem(Mobile from) { if (Utility.RandomDouble() <= .05) { WheatSeed item = new WheatSeed(); from.AddToBackpack(item); from.SendMessage("You manage to gather 1 wheat seed."); } WheatSheaf c = new WheatSheaf(); c.ItemID = 7869; from.AddToBackpack(c); from.SendMessage("You manage to gather 1 wheat sheaf."); return(true); }
public override void OnDoubleClick(Mobile from) { if (!from.InRange(this, 2)) { from.SendLocalizedMessage(CommonLocs.YouTooFar); return; } WheatSheaf sheaf = null; try { sheaf = CreateCrop(this.StandardYield) as WheatSheaf; } catch { } if (sheaf == null) { from.SendMessage("You are unable to harvest any of this crop!"); new Weeds().MoveToWorld(this.Location, this.Map); this.Delete(); } else { Scythe scythe = from.FindItemOnLayer(Layer.TwoHanded) as Scythe; if (scythe != null) { from.AddToBackpack(sheaf); from.Animate(13, 7, 1, true, false, 0); from.PlaySound(0x133); from.SendMessage("You successfully harvest the crop!"); this.Delete(); } else { from.SendMessage("You need a scythe to harvest this crop!"); sheaf.Delete(); } } }
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 cookValue = (int)from.Skills[SkillName.Cooking].Value / 20; if (cookValue == 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) { cookValue *= 2; m_lastvisit = DateTime.Now; } if (cookValue > m_yield) { cookValue = m_yield + 1; } int pick = Utility.Random(cookValue); if (pick == 0) { from.SendMessage("You do not manage to harvest any crops."); return; } m_yield -= pick; from.SendMessage("You harvest {0} crop{1}!", pick, (pick == 1 ? "" : "s")); //PublicOverheadMessage( MessageType.Regular, 0x3BD, false, string.Format( "{0}", m_yield )); // use for debuging ((Item)this).ItemID = pickedGraphic; // ******************************** // *** Wheat does not yet exist *** // ******************************** // Wheat crop = new Wheat( pick ); //*BreadLoaf crop = new BreadLoaf( pick ); WheatSheaf crop = new WheatSheaf(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."); } } }