protected override void OnTarget(Mobile from, object targeted) { if (m_Potion.Deleted || m_Potion.Map == Map.Internal) { return; } Map map = from.Map; if (map == null) { return; } IPoint3D ip = targeted as IPoint3D; if (ip == null) { return; } Point3D p = new Point3D(ip); if (!SpellHelper.CheckSafeZone(p, from)) { from.SendMessage("Can't throw it there!"); from.Target = new ThrowTarget(m_Potion); return; } SpellHelper.GetSurfaceTop(ref ip); p.Z = ip.Z; from.RevealingAction(); IEntity to = new Entity(Serial.Zero, p, map); Effects.SendMovingEffect(from, to, m_Potion.ItemID & 0x3FFF, 7, 0, false, false, m_Potion.Hue, 0); if (m_Potion.Amount > 1) { Mobile.LiftItemDupe(m_Potion, 1); } m_Potion.Internalize(); Timer.DelayCall(TimeSpan.FromSeconds(1.0), new TimerStateCallback(m_Potion.Reposition_OnTick), new object[] { from, p, map }); }