예제 #1
0
        public override void Drink(Mobile from)
        {
            if (from.Hidden)
            {
                from.SendLocalizedMessage(1073185);                   // You are already unseen.
                return;
            }

            PlayDrinkEffect(from);

            this.Consume();

            Point3D loc = from.Location;

            Timer.DelayCall(ComputeDelay(from), () =>
            {
                if (loc != from.Location)
                {
                    from.SendLocalizedMessage(1073187);                               // The invisibility effect is interrupted.
                }
                else
                {
                    Effects.SendLocationParticles(EffectItem.Create(new Point3D(from.X, from.Y, from.Z + 16), from.Map, EffectItem.DefaultDuration), 0x376A, 10, 15, 5045);
                    from.PlaySound(0x3C4);

                    from.Hidden  = true;
                    from.Warmode = false;

                    InvisibilitySpell.RemoveTimer(from);
                    InvisibilitySpell.AddTimer(from, ComputeDuration(from));
                }
            });
        }