Пример #1
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                if (m_Item.Deleted)
                {
                    return;
                }

                if (targeted is Item && !((Item)targeted).IsStandardLoot())
                {
                    from.SendLocalizedMessage(502440);                       // Scissors can not be used on that to produce anything.
                }
                else if (targeted is IScissorable)
                {
                    IScissorable obj = (IScissorable)targeted;

                    if (obj.Scissor(from, m_Item))
                    {
                        from.PlaySound(0x248);
                    }
                }
                else
                {
                    from.SendLocalizedMessage(502440);                       // Scissors can not be used on that to produce anything.
                }
            }
Пример #2
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            var item = m_Target as Item;

            if (item == null || item.Deleted || m_Scissors == null)
            {
                return;
            }

            if (info.ButtonID == (int)Buttons.Confirm)
            {
                Mobile m = sender.Mobile;
                if (item.RootParentEntity == m)
                {
                    if (m_Target.Scissor(m, m_Scissors))
                    {
                        m.PlaySound(0x248);
                    }
                }
                else
                {
                    m.SendMessage("That item must be in your backpack to cut it!");
                }
            }
        }
Пример #3
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                if (m_Item.Deleted)
                {
                    return;
                }

                /*if ( targeted is Item && !((Item)targeted).IsStandardLoot() )
                 * {
                 *      from.SendLocalizedMessage( 502440 ); // Scissors can not be used on that to produce anything.
                 * }
                 * else */
                if (Core.AOS && targeted == from)
                {
                    from.SendLocalizedMessage(1062845 + Utility.Random(3));                             //"That doesn't seem like the smartest thing to do." / "That was an encounter you don't wish to repeat." / "Ha! You missed!"
                }
                else if (Core.SE && Utility.RandomDouble() > .20 && (from.Direction & Direction.Running) != 0 && (DateTime.Now - from.LastMoveTime) < from.ComputeMovementSpeed(from.Direction))
                {
                    from.SendLocalizedMessage(1063305);                       // Didn't your parents ever tell you not to run with scissors in your hand?!
                }
                else if (targeted is IScissorable)
                {
                    IScissorable obj = (IScissorable)targeted;

                    if (obj.Scissor(from, m_Item))
                    {
                        from.PlaySound(0x248);
                    }
                }
                else
                {
                    from.SendLocalizedMessage(502440);                       // Scissors can not be used on that to produce anything.
                }
            }
Пример #4
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                if (m_Item.Deleted)
                {
                    return;
                }

                if (targeted == from)
                {
                    if (from.HairItemID == 5147 || from.HairItemID == 7947)
                    {
                        return;
                    }

                    from.FacialHairItemID = 0;
                    from.HairItemID       = 0;

                    from.PlaySound(0x248);
                    return;
                }
                if (targeted is Item && !((Item)targeted).Movable)
                {
                    if (targeted is IScissorable && (targeted is PlagueBeastInnard || targeted is PlagueBeastMutationCore))
                    {
                        IScissorable obj = (IScissorable)targeted;

                        if (obj.Scissor(from, m_Item))
                        {
                            from.PlaySound(0x248);
                        }
                    }
                }
                if (targeted is IScissorable)
                {
                    if (targeted is Item)
                    {
                        Item item = (Item)targeted;
                        if (item.LootType == LootType.Newbied || item.LootType == LootType.Blessed)
                        {
                            from.SendAsciiMessage("You cannot cut up newbied items");
                            return;
                        }
                    }

                    IScissorable obj = (IScissorable)targeted;

                    if (obj.Scissor(from, m_Item))
                    {
                        from.PlaySound(0x248);
                    }
                }
                else
                {
                    from.SendLocalizedMessage(502440);                       // Scissors can not be used on that to produce anything.
                }
            }
Пример #5
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                if (m_Item.Deleted)
                {
                    return;
                }

                if (targeted == from)
                {
                    from.SendLocalizedMessage(1062845 + Utility.Random(3));
                    //"That doesn't seem like the smartest thing to do." / "That was an encounter you don't wish to repeat." / "Ha! You missed!"
                }
                else if (Utility.RandomDouble() > .20 && (from.Direction & Direction.Running) != 0 &&
                         (Core.TickCount - from.LastMoveTime) < from.ComputeMovementSpeed(from.Direction))
                {
                    from.SendLocalizedMessage(1063305);                     // Didn't your parents ever tell you not to run with scissors in your hand?!
                }
                else if (targeted is Item && !((Item)targeted).Movable)
                {
                    if (targeted is IScissorable && (targeted is PlagueBeastInnard || targeted is PlagueBeastMutationCore))
                    {
                        IScissorable obj = (IScissorable)targeted;

                        if (obj.Scissor(from, m_Item))
                        {
                            from.PlaySound(0x248);

                            if (Siege.SiegeShard)
                            {
                                Siege.CheckUsesRemaining(from, m_Item);
                            }
                        }
                    }
                }
                else if (targeted is IScissorable)
                {
                    IScissorable obj = (IScissorable)targeted;

                    if (obj.Scissor(from, m_Item))
                    {
                        from.PlaySound(0x248);

                        if (Siege.SiegeShard)
                        {
                            Siege.CheckUsesRemaining(from, m_Item);
                        }
                    }
                }
                else
                {
                    from.SendLocalizedMessage(502440);                     // Scissors can not be used on that to produce anything.
                }
            }
Пример #6
0
        private void SalvageCloth(Mobile from)
        {
            Scissors scissors = from.Backpack.FindItemByType(typeof(Scissors)) as Scissors;

            if (scissors == null)
            {
                from.SendLocalizedMessage(1079823);   // You need scissors in order to salvage cloth.
                return;
            }

            int salvaged    = 0;
            int notSalvaged = 0;

            Container sBag = this;

            List <Item> scissorables = sBag.FindItemsByType <Item>();

            for (int i = scissorables.Count - 1; i >= 0; --i)
            {
                Item item = scissorables[i];

                if (item is IScissorable)
                {
                    IScissorable scissorable = (IScissorable)item;

                    if (Scissors.CanScissor(from, scissorable) && scissorable.Scissor(from, scissors))
                    {
                        ++salvaged;
                    }
                    else
                    {
                        ++notSalvaged;
                    }
                }
            }

            from.SendLocalizedMessage(1079974, String.Format("{0}\t{1}", salvaged, salvaged + notSalvaged));     // Salvaged: ~1_COUNT~/~2_NUM~ tailored items

            Container pack = from.Backpack;

            foreach (Item i in ((Container)this).FindItemsByType(typeof(Item), true))
            {
                if ((i is Leather) || (i is Cloth) || (i is SpinedLeather) || (i is HornedLeather) || (i is BarbedLeather) || (i is Bandage) || (i is Bone))
                {
                    from.AddToBackpack(i);
                }
            }
        }
Пример #7
0
            protected override void OnNonlocalTarget(Mobile from, object targeted)
            {
                if (targeted is IScissorable && (targeted is PlagueBeastInnard || targeted is PlagueBeastMutationCore))
                {
                    IScissorable obj = (IScissorable)targeted;

                    if (CanScissor(from, obj) && obj.Scissor(from, m_Item))
                    {
                        from.PlaySound(0x248);
                    }
                }
                else
                {
                    base.OnNonlocalTarget(from, targeted);
                }
            }
Пример #8
0
            protected override void OnNonlocalTarget(Mobile from, object targeted)
            {
                if (targeted is IScissorable)
                {
                    IScissorable obj = (IScissorable)targeted;

                    if (obj.Scissor(from, m_Item))
                    {
                        from.PlaySound(0x248);
                    }
                }
                else
                {
                    base.OnNonlocalTarget(from, targeted);
                }
            }
Пример #9
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                if (m_Item.Deleted)
                {
                    return;
                }

                if (targeted is BaseArmor && ((BaseArmor)targeted).LootType == LootType.Cursed)
                {
                    from.SendMessage("It would be unwise to put cursed goods to such use.");
                }
                else if (targeted == from)
                {
                    from.SendLocalizedMessage(1062845 + Utility.Random(3));                             //"That doesn't seem like the smartest thing to do." / "That was an encounter you don't wish to repeat." / "Ha! You missed!"
                }
                else if (Core.SE && Utility.RandomDouble() > .20 && (from.Direction & Direction.Running) != 0 && (DateTime.Now - from.LastMoveTime) < from.ComputeMovementSpeed(from.Direction))
                {
                    from.SendLocalizedMessage(1063305);                       // Didn't your parents ever tell you not to run with scissors in your hand?!
                }
                else if (targeted is Item && !((Item)targeted).Movable)
                {
                    if (targeted is IScissorable && (targeted is PlagueBeastInnard || targeted is PlagueBeastMutationCore))
                    {
                        IScissorable obj = (IScissorable)targeted;

                        if (obj.Scissor(from, m_Item))
                        {
                            from.PlaySound(0x248);
                        }
                    }
                }
                else if (targeted is IScissorable)
                {
                    IScissorable obj = (IScissorable)targeted;

                    if (obj.Scissor(from, m_Item))
                    {
                        from.PlaySound(0x248);
                    }
                }
                else
                {
                    from.SendLocalizedMessage(502440);                       // Scissors can not be used on that to produce anything.
                }
            }
Пример #10
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                PlayerMobile player = from as PlayerMobile;

                if (m_Item.Deleted)
                {
                    return;
                }

                if (Core.SE && Utility.RandomDouble() > .20 && (from.Direction & Direction.Running) != 0 && (Core.TickCount - from.LastMoveTime) < from.ComputeMovementSpeed(from.Direction))
                {
                    from.SendLocalizedMessage(1063305);                       // Didn't your parents ever tell you not to run with scissors in your hand?!
                }

                else if (targeted is Item && !((Item)targeted).Movable)
                {
                    if (targeted is IScissorable && (targeted is PlagueBeastInnard || targeted is PlagueBeastMutationCore))
                    {
                        IScissorable obj = (IScissorable)targeted;

                        if (CanScissor(from, obj) && obj.Scissor(from, m_Item))
                        {
                            from.PlaySound(0x248);
                        }
                    }
                }

                else if (targeted is IScissorable)
                {
                    IScissorable obj = (IScissorable)targeted;

                    if (CanScissor(from, obj) && obj.Scissor(from, m_Item))
                    {
                        from.PlaySound(0x248);
                    }
                }

                else
                {
                    from.SendLocalizedMessage(502440); // Scissors can not be used on that to produce anything.
                }
            }
Пример #11
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                if (m_Item.Deleted)
                {
                    return;
                }

                if (targeted == from)
                {
                    // "That doesn't seem like the smartest thing to do."
                    // "That was an encounter you don't wish to repeat."
                    // "Ha! You missed!"
                    from.SendLocalizedMessage(1062845 + Utility.Random(3));
                }
                else if (Utility.RandomDouble() > .20 && (from.Direction & Direction.Running) != 0 && (DateTime.UtcNow - from.LastMoveTime) < from.ComputeMovementSpeed(from.Direction))
                {
                    from.SendLocalizedMessage(1063305);                       // Didn't your parents ever tell you not to run with scissors in your hand?!
                }
                else if (targeted is Item && (!((Item)targeted).Movable || ((Item)targeted).QuestItem))
                {
                    from.SendLocalizedMessage(502440);                       // Scissors can not be used on that to produce anything.
                }
                else if (targeted is Mobile || (targeted is Item && !((Item)targeted).IsChildOf(from.Backpack)))
                {
                    from.SendLocalizedMessage(502437);                       // Items you wish to cut must be in your backpack.
                }
                else if (targeted is IScissorable)
                {
                    IScissorable obj = (IScissorable)targeted;

                    if (obj.Scissor(from, m_Item))
                    {
                        from.PlaySound(0x248);
                    }
                }
                else
                {
                    from.SendLocalizedMessage(502440);                       // Scissors can not be used on that to produce anything.
                }
            }
Пример #12
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                if (m_Item.Deleted)
                {
                    return;
                }

                /*if ( targeted is Item && !((Item)targeted).IsStandardLoot() )
                 * {
                 *      from.SendLocalizedMessage( 502440 ); // Scissors can not be used on that to produce anything.
                 * }
                 * else */
                if (Core.AOS && targeted == from)
                {
                    from.SendLocalizedMessage(1062845 + Utility.Random(3));                             //"That doesn't seem like the smartest thing to do." / "That was an encounter you don't wish to repeat." / "Ha! You missed!"
                }
                else if (Core.SE && Utility.RandomDouble() > .20 && (from.Direction & Direction.Running) != 0 && (DateTime.Now - from.LastMoveTime) < from.ComputeMovementSpeed(from.Direction))
                {
                    from.SendLocalizedMessage(1063305);                       // Didn't your parents ever tell you not to run with scissors in your hand?!
                }
                else if (targeted is Item && !((Item)targeted).Movable)
                {
                    if (targeted is IScissorable && (targeted is PlagueBeastInnard || targeted is PlagueBeastMutationCore))
                    {
                        IScissorable obj = (IScissorable)targeted;

                        if (CanScissor(from, obj) && obj.Scissor(from, m_Item))
                        {
                            from.PlaySound(0x248);
                        }
                    }
                }
                else if (targeted is PlayerMobile)
                {
                    PlayerMobile hair = (PlayerMobile)targeted;

                    if (hair.HairItemID == 0)
                    {
                        from.SendMessage("Cette personne est chauve");
                        return;
                    }

                    int delay = 4;
                    if (from.Dex > 80)
                    {
                        delay--;
                    }
                    if (from.Skills[SkillName.Stealing].Value > 50)
                    {
                        delay--;
                    }

                    from.Say("*Approche discrètement, ciseaux à la main*");
                    Timer.DelayCall(TimeSpan.FromSeconds(delay), new TimerStateCallback <object[]>(CutHair), new object[] { from, hair });
                }
                else if (targeted is IScissorable)
                {
                    IScissorable obj = (IScissorable)targeted;

                    if (CanScissor(from, obj) && obj.Scissor(from, m_Item))
                    {
                        from.PlaySound(0x248);
                    }
                }
                else
                {
                    from.SendLocalizedMessage(502440);                       // Scissors can not be used on that to produce anything.
                }
            }