Beispiel #1
0
        public override void OnDoubleClick( Mobile from )
        {
            if ( from.Mounted && !TreeHelper.CanPickMounted )
            {
                from.SendMessage( "You cannot pick fruit while mounted." );
                return;
            }

            if ( DateTime.Now > lastpicked.AddSeconds(3) ) // 3 seconds between picking
            {
                lastpicked = DateTime.Now;

                int lumberValue = (int)(from.Skills[SkillName.Peacemaking].Base * 0.1);
                if ( from.Mounted )
                    ++lumberValue;

                if ( lumberValue < 0 )
                {
                    from.SendMessage( "You have no idea how to pick this fruit." );
                    return;
                }

                if ( from.InRange( this.GetWorldLocation(), 2 ) )
                {
                    if ( m_yield < 1 )
                    {
                        from.SendMessage( "There is nothing here to harvest." );
                    }
                    else //check skill
                    {
                        from.Direction = from.GetDirectionTo( this );

                        from.Animate( from.Mounted ? 26:17, 7, 1, true, false, 0 );

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

                        int pick = Utility.Random( lumberValue );
                        if ( pick == 0 || ((PlayerMobile)from).Feats.GetFeatLevel(FeatList.Farming) < 1 )
                        {
                            from.SendMessage( "You do not manage to gather any fruit." );
                            return;
                        }

                        m_yield -= pick;
                        from.SendMessage( "You pick {0} Squash{1}!", pick, ( pick == 1 ? "" : "s" ) );
                        Seed.PickCropSeed(from, "SquashCrop");

                        if( from is PlayerMobile )
                        {
                            ( (PlayerMobile)from ).Crafting = true;
                            Misc.LevelSystem.AwardMinimumXP( (PlayerMobile)from, 1 );
                            ( (PlayerMobile)from ).Crafting = false;
                        }

                        //PublicOverheadMessage( MessageType.Regular, 0x3BD, false, string.Format( "{0}", m_yield ));

                        Squash crop = new Squash( pick );
                        from.AddToBackpack( crop );

                        if ( !regrowTimer.Running )
                        {
                            regrowTimer.Start();
                        }
                    }
                }
                else
                {
                    from.SendLocalizedMessage( 500446 ); // That is too far away.
                }
            }
        }
Beispiel #2
0
        public void Chop( Mobile from )
        {
            if ( from.InRange( this.GetWorldLocation(), 1 ) )
            {
                if ( ( chopTimer == null ) || ( !chopTimer.Running ) )
                {
                    if ( ( TreeHelper.TreeOrdinance ) && ( from.AccessLevel == AccessLevel.Player ) )
                    {
                        if ( from.Region is Regions.GuardedRegion )
                            from.CriminalAction( true );
                    }

                    chopTimer = new TreeHelper.ChopAction( from );

                    Point3D pnt = this.Location;
                    Map map =  this.Map;

                    from.Direction = from.GetDirectionTo( this );
                    chopTimer.Start();

                    double lumberValue = from.Skills[SkillName.Lumberjacking].Value / 100;
                    if ( ( lumberValue > .5 ) && ( Utility.RandomDouble() <= lumberValue ) )
                    {
                        Squash fruit = new Squash( (int)Utility.Random( 13 ) + m_yield );
                        from.AddToBackpack( fruit );

                        int cnt = Utility.Random( (int)( lumberValue * 10 ) + 1 );
                        Log logs = new Log( cnt ); // Fruitwood Logs ??
                        from.AddToBackpack( logs );

                        FruitTreeStump i_stump = new FruitTreeStump( typeof( SquashCrop ) );
                        Timer poof = new StumpTimer( this, i_stump, from );
                        poof.Start();
                    }
                    else from.SendLocalizedMessage( 500495 ); // You hack at the tree for a while, but fail to produce any useable wood.
                }
            }
            else from.SendLocalizedMessage( 500446 );  // That is too far away.
        }
		public void KillPlayer( Mobile player )
		{
			player.SendMessage( "You have been Painted!" );
			player.Warmode = false;
			int team = -1;

			if( player.FindItemOnLayer( Layer.Cloak ) != null )
				team = player.FindItemOnLayer( Layer.Cloak ).Hue;

			else if( player.FindItemOnLayer( Layer.TwoHanded ) != null )
			{
				team = player.FindItemOnLayer( Layer.TwoHanded ).Hue;
				player.FindItemOnLayer( Layer.TwoHanded ).Delete();
				Cloak cloak = new Cloak( team );
				cloak.Movable = false;
				player.AddItem( cloak );
			}

			bool Decrement = true;
			foreach( Item i in player.Backpack.Items )
				if( i is Squash )
					Decrement = false;

			if( Decrement )
			{
				Squash squash = new Squash();
				squash.Visible = false;
				player.AddToBackpack( squash );
			}

			switch( team )
			{
				case 3:  { player.MoveToWorld( Exit1Dest, MapDest );	if( Decrement )m_Team1 -= 1;	break; }
				case 38: { player.MoveToWorld( Exit2Dest, MapDest );	if( Decrement )m_Team2 -= 1;	break; }
				case 68: { player.MoveToWorld( Exit3Dest, MapDest );	if( Decrement )m_Team3 -= 1;	break; }
				case 53: { player.MoveToWorld( Exit4Dest, MapDest );	if( Decrement )m_Team4 -= 1;	break; }
				default: break;
			}
		}