Example #1
0
        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);
        }
Example #2
0
        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();
                }
            }
        }
Example #3
0
        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.");
                }
            }
        }