public override void OnDoubleClick( Mobile from ) { if ( m_sower == null || m_sower.Deleted ) m_sower = from; if ( from != m_sower ) { from.SendMessage( "You do not own this plant !!!" ); return; } if ( from.Mounted && !CropHelper.CanWorkMounted ) { from.SendMessage( "You cannot harvest a crop while mounted." ); return; } if ( DateTime.UtcNow > lastpicked.AddSeconds(3) ) { lastpicked = DateTime.UtcNow; 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." ); } else { from.Direction = from.GetDirectionTo( this ); from.Animate( from.Mounted ? 29:32, 5, 1, true, false, 0 ); m_lastvisit = DateTime.UtcNow; if ( cookValue > m_yield ) cookValue = m_yield + 1; int pick = Utility.RandomMinMax( cookValue - 4, cookValue ); if (pick < 0 ) pick = 0; 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" ) ); if (m_yield < 1) ((Item)this).ItemID = pickedGraphic; GreenPepper crop = new GreenPepper( pick ); from.AddToBackpack( crop ); if ( !regrowTimer.Running ) { regrowTimer.Start(); } } } else { from.SendMessage( "You are too far away to harvest anything." ); } } }
public void Chop(Mobile from) { if (from.InRange(this.GetWorldLocation(), 1)) { if (from == m_sower) { from.Direction = from.GetDirectionTo(this); double lumberValue = from.Skills[SkillName.Lumberjacking].Value / 100; if ((lumberValue > .5) && (Utility.RandomDouble() <= lumberValue)) { GreenPepper fruit = new GreenPepper(Utility.Random(m_yield + 2)); from.AddToBackpack(fruit); if (Utility.RandomDouble() <= .1) { Vines logs = new Vines(); from.AddToBackpack(logs); } } this.Delete(); from.SendMessage("You chop the plant up"); } else { from.SendMessage("You do not own this plant !!!"); } } else { from.SendLocalizedMessage(500446); } }
/// <summary> /// Map DBTopping => Topping /// Uses enum to determine which topping class to return. /// </summary> /// <param name="entity"></param> /// <returns></returns> public ATopping Map(DBTopping entity) { ATopping topping = null; switch (entity.TOPPING) { case TOPPINGS.BACON: topping = new Bacon(); break; case TOPPINGS.CHICKEN: topping = new Chicken(); break; case TOPPINGS.EXTRACHEESE: topping = new ExtraCheese(); break; case TOPPINGS.GREENPEPPER: topping = new GreenPepper(); break; case TOPPINGS.HAM: topping = new Ham(); break; case TOPPINGS.NOCHEESE: topping = new NoCheese(); break; case TOPPINGS.PINEAPPLE: topping = new Pineapple(); break; case TOPPINGS.REDPEPPER: topping = new RedPepper(); break; case TOPPINGS.SAUSAGE: topping = new Sausage(); break; default: throw new ArgumentException("Topping not recognized. Topping could not be mapped properly"); } topping.ID = entity.ID; return(topping); }
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 = (int)from.Skills[SkillName.Tailoring].Value / 20; 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) { 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; GreenPepper crop = new GreenPepper(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."); } } }