Пример #1
0
        public override void OnComponentUsed(AddonComponent stew, Mobile from)
        {
            if (!from.InRange(this.GetWorldLocation(), 2))
                from.SendMessage("You are too far away.");
            else
            {
                {
                    stew.Visible = false;

                    BreadLoaf hagstew = new BreadLoaf();        //this decides your fillrate
                    hagstew.Eat(from);

                    Timer m_timer = new ShowStew(stew);
                    m_timer.Start();
                }
            }
        }
Пример #2
0
        public override void OnComponentUsed(AddonComponent stew, Mobile from)
        {
            if (!from.InRange(GetWorldLocation(), 2) || !from.InLOS(this))
                from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
            else
            {
                {
                    stew.Visible = false;

                    BreadLoaf hagstew = new BreadLoaf();        //this decides your fillrate
                    hagstew.Eat(from);

                    Timer m_timer = new ShowStew(stew);
                    m_timer.Start();
                }
            }
        }
Пример #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(3) ) // 3 seconds between picking
            {
                lastpicked = DateTime.Now;

                int lumberValue = (int)from.Skills[SkillName.Lumberjacking].Value / 20;
                if ( lumberValue == 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 )
                        {
                            lumberValue *= 2;
                            m_lastvisit = DateTime.Now;
                        }

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

                        int pick = Utility.Random( lumberValue );
                        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 );
                        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." );
                }
            }
        }