private void FinishWorking_Callback(object state) { if (m_Timer != null) { m_Timer.Stop(); m_Timer = null; } Mobile from = state as Mobile; if (from != null && !from.Deleted && !this.Deleted && IsFull) { SackFlour flour = new SackFlour(); flour.ItemID = (Utility.RandomBool() ? 4153 : 4165); if (from.PlaceInBackpack(flour)) { m_Flour = 0; } else { flour.Delete(); from.SendLocalizedMessage(500998); // There is not enough room in your backpack! You stop grinding. } } UpdateStage(); }
private void FinishWorking_Callback( object state ) { if ( m_Timer != null ) { m_Timer.Stop(); m_Timer = null; } Mobile from = state as Mobile; if ( from != null && !from.Deleted && !this.Deleted && IsFull ) { SackFlour flour = new SackFlour(); flour.ItemID = ( Utility.RandomBool() ? 4153 : 4165 ); if ( from.PlaceInBackpack( flour ) ) { m_Flour = 0; } else { flour.Delete(); from.SendLocalizedMessage( 500998 ); // There is not enough room in your backpack! You stop grinding. } } UpdateStage(); }
public bool TryAdd(Item item) { foreach (Type[] cat in m_AllTypes) { foreach (Type type in cat) { if (item.GetType() == type) { if (m_Resources.ContainsKey(type) && (int)m_Resources[type] + item.Amount >= 100000) { this.PublicOverheadMessage(MessageType.Whisper, 0, false, "I cannot hold more of that resource!"); return(false); } if (type == typeof(SackFlour)) { SackFlour sack = (SackFlour)item; if (sack.Quantity != 20) { this.PublicOverheadMessage(MessageType.Whisper, 0, false, "The sack has to be full!"); return(false); } } AddResource(type, item.Amount); this.PublicOverheadMessage(MessageType.Whisper, 0, false, "Resource Added."); item.Delete(); return(true); } } } this.PublicOverheadMessage(MessageType.Whisper, 0, false, "I don't hold that resource!"); return(false); }
public void Refill() { int currentcount = this.Items.Count; int toAdd = Utility.RandomMinMax(10, 100); while (currentcount < toAdd) { SackFlour newSack = Activator.CreateInstance(typeof(SackFlour)) as SackFlour; DropItem(newSack); currentcount++; } }
public virtual void Pour_OnTarget(Mobile from, object targ) { if (IsEmpty || !Pourable || !ValidateUse(from, false)) { return; } if (targ is BaseBeverage) { BaseBeverage bev = (BaseBeverage)targ; if (!bev.ValidateUse(from, true)) { return; } if (bev.IsFull && bev.Content == this.Content) { from.SendLocalizedMessage(500848); // Couldn't pour it there. It was already full. } else if (!bev.IsEmpty) { from.SendLocalizedMessage(500846); // Can't pour it there. } else { bev.Content = this.Content; bev.Poison = this.Poison; bev.Poisoner = this.Poisoner; if (this.Quantity > bev.MaxQuantity) { bev.Quantity = bev.MaxQuantity; this.Quantity -= bev.MaxQuantity; } else { bev.Quantity += this.Quantity; this.Quantity = 0; } from.PlaySound(0x4E); } } else if (from == targ) { if (from.Thirst < 20) { from.Thirst += 1; } if (ContainsAlchohol) { int heaves = 0; switch (this.Content) { case BeverageType.Ale: heaves = 3; break; case BeverageType.Wine: heaves = 5; break; case BeverageType.Cider: heaves = 5; break; case BeverageType.Liquor: heaves = 10; break; default: heaves = 5; break; } from.BAC += heaves; if (from.BAC > 60) { from.BAC = 60; } CheckHeaveTimer(from); } from.PlaySound(Utility.RandomList(0x30, 0x2D6)); if (m_Poison != null) { from.ApplyPoison(m_Poisoner, m_Poison); } --Quantity; } else if (targ is SackFlour) { SackFlour flour = (SackFlour)targ; --Quantity; flour.Quantity--; if (flour.Deleted) { from.SendAsciiMessage("No flour left."); } from.SendAsciiMessage("You make some dough and put it in your backpack"); from.AddToBackpack(new Dough()); } else { from.SendLocalizedMessage(500846); // Can't pour it there. } }