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 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 )); ((Item)this).ItemID = pickedGraphic; BitterHops crop = new BitterHops( 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." ); } } }
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 cookValue = (int)(from.Skills[SkillName.Peacemaking].Base * 0.1); 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 || ((PlayerMobile)from).Feats.GetFeatLevel(FeatList.Farming) < 1 ) { from.SendMessage( "You do not manage to harvest any crops." ); return; } // *** Limit to one yield until we have Tea item *** if ( pick > 1 ) pick = 1; m_yield -= pick; from.SendMessage( "You harvest {0} crop{1}!", pick, ( pick == 1 ? "" : "s" ) ); Seed.PickCropSeed(from, "TeaCrop"); 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 )); ((Item)this).ItemID = pickedGraphic; TeaLeaves crop = new TeaLeaves(); 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." ); } } }
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 tailorValue = Math.Max( (int)(from.Skills[SkillName.Peacemaking].Base * 0.1), (int)(from.Skills[SkillName.Peacemaking].Base * 0.1) ); if ( tailorValue == 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 ) { tailorValue *= 2; m_lastvisit = DateTime.Now; } if ( tailorValue > m_yield ) tailorValue = m_yield + 1; int pick = Utility.Random( tailorValue ); if ( pick == 0 || ((PlayerMobile)from).Feats.GetFeatLevel(FeatList.Farming) < 1 ) { from.SendMessage( "You do not manage to harvest any crops." ); return; } m_yield -= pick; if( from is PlayerMobile ) { PlayerMobile m = from as PlayerMobile; pick += m.Feats.GetFeatLevel(FeatList.EnhancedHarvesting); if( DateTime.Now > (m.LastCottonFlaxHarvest + TimeSpan.FromHours(1)) ) m.HarvestedCrops = 0; if( DateTime.Compare( m.NextHarvestAllowed, DateTime.Now ) > 0 ) { m.SendMessage( "The local farmer forbids you to harvest any more crops after reminding you that this is a public farm and that you should leave some crops for the others." ); m.HarvestedCrops = 0; return; } if( pick + m.HarvestedCrops > 100 ) { m.NextHarvestAllowed = DateTime.Now + TimeSpan.FromHours( 1 ); m.HarvestedCrops = 0; } m.HarvestedCrops += pick; m.LastCottonFlaxHarvest = DateTime.Now; } from.SendMessage( "You harvest {0} crop{1}!", pick, ( pick == 1 ? "" : "s" ) ); Seed.PickCropSeed(from, "CottonCrop"); 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 )); ((Item)this).ItemID = pickedGraphic; Cotton crop = new Cotton( 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 = new CropTimer( this ); regrowTimer.Start(); } } } else { from.SendMessage( "You are too far away to harvest anything." ); } } }
public override void OnDoubleClick(Mobile from) { if (m_sower == null || m_sower.Deleted) m_sower = from; if (from.Mounted && !CropHelper.CanWorkMounted) { from.SendMessage(AgriTxt.CannotWorkMounted); return; } if (DateTime.Now > lastpicked.AddSeconds(3)) // 3 seconds between picking { lastpicked = DateTime.Now; int lumberValue = (int)from.Skills[SkillName.Lumberjacking].Value / 5; if (lumberValue == 0) { from.SendMessage(AgriTxt.DunnoHowTo); return; } if (from.InRange(this.GetWorldLocation(), 2)) { if (m_yield < 1) { from.SendMessage(AgriTxt.NoCrop); 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(AgriTxt.ZeroPicked); return; } m_yield -= pick; from.SendMessage(AgriTxt.YouPick + " {0} carotte{1}!", pick, (pick == 1 ? "" : "s")); //PublicOverheadMessage( MessageType.Regular, 0x3BD, false, string.Format( "{0}", m_yield )); ((Item)this).ItemID = pickedGraphic; Carrot crop = new Carrot(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(AgriTxt.TooFar); } } }
public override void OnDoubleClick( Mobile from ) { if ( m_sower == null || m_sower.Deleted ) m_sower = from; if ( from.Mounted && !CropHelper.CanWorkMounted ) { from.SendMessage( "Vous ne pouvez cultiver ici" ); return; } if ( DateTime.Now > lastpicked.AddSeconds(3) ) // 3 seconds between picking { lastpicked = DateTime.Now; int lumberValue = (int)from.Skills[SkillName.Lumberjacking].Value / 5; if ( lumberValue == 0 ) { from.SendMessage( "Vous ne savez pas comment cultiver cela" ); return; } if ( from.InRange( this.GetWorldLocation(), 2 ) ) { if ( m_yield < 1 ) { from.SendMessage( "Il n y a rien ici a cultiver" ); 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( "vous n obtenez pas de nouvelle pouce" ); return; } m_yield -= pick; from.SendMessage( "Vous Cultivez {0} crop{1}!", pick, ( pick == 1 ? "" : "s" ) ); //PublicOverheadMessage( MessageType.Regular, 0x3BD, false, string.Format( "{0}", m_yield )); // use for debuging ((Item)this).ItemID = pickedGraphic; // ******************************** // *** Orge does not yet exist *** // ******************************** // Orge crop = new Orge( pick ); OrgeGerbe crop = new OrgeGerbe( 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( "Vous etes trop loin pour cultiver" ); } } }