public bool GetWaterFromContainer(Mobile from, object target) { if (target is BaseBeverage) { BaseBeverage beverage = target as BaseBeverage; if (beverage.Quantity >= 1 && beverage.Content == BeverageType.Water) { beverage.Quantity--; return(true); } } else if (target is BaseWaterContainer) { BaseWaterContainer waterContainer = target as BaseWaterContainer; if (waterContainer.Quantity >= 1) { waterContainer.Quantity--; return(true); } } else if (target is IWaterSource) { IWaterSource waterSource = target as IWaterSource; if (waterSource.Quantity >= 1) { waterSource.Quantity--; return(true); } } else { Item item = (Item)target; IWaterSource waterSource; waterSource = (item as IWaterSource); if (waterSource == null && item is AddonComponent) { waterSource = (((AddonComponent)item).Addon as IWaterSource); if (waterSource != null) { return(true); } } } return(false); }
public static bool IsWaterContainer(object target) { if (target is BaseBeverage) { BaseBeverage beverage = target as BaseBeverage; if (beverage.Content == BeverageType.Water) { return(true); } } else if (target is BaseWaterContainer) { BaseWaterContainer waterContainer = target as BaseWaterContainer; return(true); } else if (target is IWaterSource) { IWaterSource waterSource = target as IWaterSource; return(true); } else { Item item = (Item)target; IWaterSource waterSource; waterSource = (item as IWaterSource); if (waterSource == null && item is AddonComponent) { waterSource = (((AddonComponent)item).Addon as IWaterSource); if (waterSource != null) { return(true); } } } return(false); }
public virtual void Fill_OnTarget(Mobile from, object targ) { if (!IsEmpty || !Fillable || !ValidateUse(from, false)) { return; } if (targ is BaseBeverage) { BaseBeverage bev = (BaseBeverage)targ; if (bev.IsEmpty || !bev.ValidateUse(from, true)) { return; } this.Content = bev.Content; this.Poison = bev.Poison; this.Poisoner = bev.Poisoner; if (bev.Quantity > this.MaxQuantity) { this.Quantity = this.MaxQuantity; bev.Quantity -= this.MaxQuantity; } else { this.Quantity += bev.Quantity; bev.Quantity = 0; } } else if (targ is StaticTarget && IsWaterSource(((StaticTarget)targ).ItemID)) { this.Content = BeverageType.Water; this.Poison = null; this.Poisoner = null; this.Quantity = this.MaxQuantity; from.SendLocalizedMessage(1010089); // You fill the container with water. } else if (targ is Item) { Item item = (Item)targ; IWaterSource src = item as IWaterSource; if (src == null && item is AddonComponent) { src = ((AddonComponent)item).Addon as IWaterSource; } if (src == null || src.Quantity <= 0) { return; } if (from.Map != item.Map || !from.InRange(item.GetWorldLocation(), 2) || !from.InLOS(item)) { from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that. return; } this.Content = BeverageType.Water; this.Poison = null; this.Poisoner = null; if (src.Quantity > this.MaxQuantity) { this.Quantity = this.MaxQuantity; src.Quantity -= this.MaxQuantity; } else { this.Quantity += src.Quantity; src.Quantity = 0; } from.SendLocalizedMessage(1010089); // You fill the container with water. } else if (targ is Cow) { Cow cow = (Cow)targ; if (cow.TryMilk(from)) { Content = BeverageType.Milk; Quantity = MaxQuantity; from.SendLocalizedMessage(1080197); // You fill the container with milk. } } else if (targ is LandTarget) { int tileID = ((LandTarget)targ).TileID; PlayerMobile player = from as PlayerMobile; if (player != null) { QuestSystem qs = player.Quest; if (qs is WitchApprenticeQuest) { FindIngredientObjective obj = qs.FindObjective(typeof(FindIngredientObjective)) as FindIngredientObjective; if (obj != null && !obj.Completed && obj.Ingredient == Ingredient.SwampWater) { bool contains = false; for (int i = 0; !contains && i < m_SwampTiles.Length; i += 2) { contains = (tileID >= m_SwampTiles[i] && tileID <= m_SwampTiles[i + 1]); } if (contains) { Delete(); player.SendLocalizedMessage(1055035); // You dip the container into the disgusting swamp water, collecting enough for the Hag's vile stew. obj.Complete(); } } } } } }
public PhilipsMachineCafeApi(IWaterSource source, IGrainStock piles, IMugPlacer placer) { this.source = source; this.piles = piles; this.placer = placer; }