Server.Items.BaseBeverage.ConsumeTotal C# (CSharp) Method

ConsumeTotal() public static method

public static ConsumeTotal ( Server.Items.Container pack, Type itemType, BeverageType content, int quantity ) : bool
pack Server.Items.Container
itemType System.Type
content BeverageType
quantity int
return bool
		public static bool ConsumeTotal( Container pack, Type itemType, BeverageType content, int quantity )
		{
			Item[] items = pack.FindItemsByType( itemType );

			// First pass, compute total
			int total = 0;

			for( int i = 0; i < items.Length; ++i )
			{
				BaseBeverage bev = items[ i ] as BaseBeverage;

				if( bev != null && bev.Content == content && !bev.IsEmpty )
					total += bev.Quantity;
			}

			if( total >= quantity )
			{
				// We've enough, so consume it

				int need = quantity;

				for( int i = 0; i < items.Length; ++i )
				{
					BaseBeverage bev = items[ i ] as BaseBeverage;

					if( bev == null || bev.Content != content || bev.IsEmpty )
						continue;

					int theirQuantity = bev.Quantity;

					if( theirQuantity < need )
					{
						bev.Quantity = 0;
						need -= theirQuantity;
					}
					else
					{
						bev.Quantity -= need;
						return true;
					}
				}
			}

			return false;
		}

Same methods

BaseBeverage::ConsumeTotal ( Server.Items.Container pack, BeverageType content, int quantity ) : bool

Usage Example

            protected override void OnTarget(Mobile from, object targeted)
            {
                if (m_Item.Deleted)
                {
                    return;
                }

                if (targeted is Pitcher)
                {
                    if (!((Item)targeted).Movable)
                    {
                        return;
                    }

                    if (BaseBeverage.ConsumeTotal(from.Backpack, typeof(Pitcher), BeverageType.Water, 1))
                    {
                        Effects.PlaySound(from.Location, from.Map, 0x240);
                        from.AddToBackpack(new Dough());
                        from.SendMessage("You made some dough and put it them in your backpack");
                        m_Item.Use(from);
                    }
                }

                if (targeted is SweetDough)
                {
                    if (!((Item)targeted).Movable)
                    {
                        return;
                    }
                    from.SendMessage("You made a cake mix");
                    if (((SweetDough)targeted).Parent == null)
                    {
                        new CakeMix().MoveToWorld(((SweetDough)targeted).Location, ((SweetDough)targeted).Map);
                    }
                    else
                    {
                        from.AddToBackpack(new CakeMix());
                    }
                    ((SweetDough)targeted).Consume();
                    m_Item.Use(from);
                }

                if (targeted is TribalBerry)
                {
                    if (!((Item)targeted).Movable)
                    {
                        return;
                    }

                    if (from.Skills[SkillName.Cooking].Base >= 80.0)
                    {
                        m_Item.Use(from);
                        ((TribalBerry)targeted).Delete();

                        from.AddToBackpack(new TribalPaint());

                        from.SendLocalizedMessage(1042002);
                    }
                    else
                    {
                        from.SendLocalizedMessage(1042003);
                    }
                }
            }
All Usage Examples Of Server.Items.BaseBeverage::ConsumeTotal