protected override void FinishEffect(Point3D p, Map map, Mobile from) { if (from.Skills.Fishing.Value < 10) { from.SendLocalizedMessage(1074487); // The creatures are too quick for you! } else { BaseFish fish = GiveFish(from); FishBowl bowl = Aquarium.GetEmptyBowl(from); if (bowl != null) { fish.StopTimer(); bowl.AddItem(fish); from.SendLocalizedMessage(1074489); // A live creature jumps into the fish bowl in your pack! Delete(); return; } else { if (from.PlaceInBackpack(fish)) { from.PlaySound(0x5A2); from.SendLocalizedMessage(1074490); // A live creature flops around in your pack before running out of air. fish.Kill(); Delete(); return; } else { fish.Delete(); from.SendLocalizedMessage(1074488); // You could not hold the creature. } } } InUse = false; Movable = true; if (!from.PlaceInBackpack(this)) { if (from.Map == null || from.Map == Map.Internal) { Delete(); } else { MoveToWorld(from.Location, from.Map); } } }
public static FishBowl GetEmptyBowl(Mobile from) { if (from == null || from.Backpack == null) { return(null); } Item[] items = from.Backpack.FindItemsByType(typeof(FishBowl)); for (int i = 0; i < items.Length; i++) { if (items[i] is FishBowl) { FishBowl bowl = (FishBowl)items[i]; if (bowl.Empty) { return(bowl); } } } return(null); }
public RemoveCreature(FishBowl bowl) : base(6242, 3) // Remove creature { m_Bowl = bowl; }
public override bool OnDragDrop(Mobile from, Item dropped) { if (!HasAccess(from)) { from.SendLocalizedMessage(1073821); // You do not have access to that item for use with the aquarium. return(false); } if (m_VacationLeft > 0) { from.SendLocalizedMessage(1074427); // The aquarium is in vacation mode. return(false); } bool takeItem = true; if (dropped is FishBowl) { FishBowl bowl = (FishBowl)dropped; if (bowl.Empty || !AddFish(from, bowl.Fish)) { return(false); } bowl.InvalidateProperties(); takeItem = false; } else if (dropped is BaseFish) { BaseFish fish = (BaseFish)dropped; if (!AddFish(from, fish)) { return(false); } } else if (dropped is VacationWafer) { m_VacationLeft = VacationWafer.VacationDays; dropped.Delete(); from.SendLocalizedMessage(1074428, m_VacationLeft.ToString()); // The aquarium will be in vacation mode for ~1_DAYS~ days } else if (dropped is AquariumFood) { m_Food.Added += 1; dropped.Delete(); from.SendLocalizedMessage(1074259, "1"); // ~1_NUM~ unit(s) of food have been added to the aquarium. } else if (dropped is BaseBeverage) { BaseBeverage beverage = (BaseBeverage)dropped; if (beverage.IsEmpty || !beverage.Pourable || beverage.Content != BeverageType.Water) { from.SendLocalizedMessage(500840); // Can't pour that in there. return(false); } m_Water.Added += 1; beverage.Quantity -= 1; from.PlaySound(0x4E); from.SendLocalizedMessage(1074260, "1"); // ~1_NUM~ unit(s) of water have been added to the aquarium. takeItem = false; } else if (!AddDecoration(from, dropped)) { takeItem = false; } from.CloseGump(typeof(AquariumGump)); InvalidateProperties(); if (takeItem) { from.PlaySound(0x42); } return(takeItem); }