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. } } }
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; } }