Example #1
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                int num = m_CraftSystem.CanCraft(from, m_Tool, null);

                if (num > 0)
                {
                    if (num == 1044267)
                    {
                        bool anvil, forge;

                        DefBlacksmithy.CheckAnvilAndForge(from, 2, out anvil, out forge);

                        if (!anvil)
                        {
                            num = 1044266;                             // You must be near an anvil
                        }
                        else if (!forge)
                        {
                            num = 1044265;                             // You must be near a forge.
                        }
                    }

                    from.SendGump(new CraftGump(from, m_CraftSystem, m_Tool, num));
                }
                else
                {
                    SmeltResult result        = SmeltResult.Invalid;
                    bool        isStoreBought = false;
                    int         message;

                    if (targeted is BaseArmor)
                    {
                        result        = Resmelt(from, (BaseArmor)targeted, ((BaseArmor)targeted).Resource);
                        isStoreBought = !((BaseArmor)targeted).PlayerConstructed;
                    }
                    else if (targeted is BaseWeapon)
                    {
                        result        = Resmelt(from, (BaseWeapon)targeted, ((BaseWeapon)targeted).Resource);
                        isStoreBought = !((BaseWeapon)targeted).PlayerConstructed;
                    }
                    else if (targeted is DragonBardingDeed)
                    {
                        result        = Resmelt(from, (DragonBardingDeed)targeted, ((DragonBardingDeed)targeted).Resource);
                        isStoreBought = false;
                    }

                    switch (result)
                    {
                    default:
                    case SmeltResult.Invalid: message = 1044272; break;                             // You can't melt that down into ingots.

                    case SmeltResult.NoSkill: message = 1044269; break;                             // You have no idea how to work this metal.

                    case SmeltResult.Success: message = isStoreBought ? 500418 : 1044270; break;    // You melt the item down into ingots.
                    }

                    from.SendGump(new CraftGump(from, m_CraftSystem, m_Tool, message));
                }
            }
Example #2
0
        private void DoSmelt(object targeted)
        {
            Mobile      from        = Craft.From;
            BaseTool    tool        = Craft.Tool;
            CraftSystem craftSystem = Craft.CraftSystem;

            int num = craftSystem.CanCraft(from, tool, null);

            if (num > 0)
            {
                from.SendLocalizedMessage(num);
                return;
            }
            else
            {
                SmeltResult result        = SmeltResult.Invalid;
                bool        isStoreBought = false;
                int         message;

                if (targeted is BaseArmor)
                {
                    result        = Resmelt(from, (BaseArmor)targeted, ((BaseArmor)targeted).Resource);
                    isStoreBought = !((Item)targeted).PlayerCrafted;
                }
                else if (targeted is BaseWeapon)
                {
                    result        = Resmelt(from, (BaseWeapon)targeted, ((BaseWeapon)targeted).Resource);
                    isStoreBought = !((Item)targeted).PlayerCrafted;
                }
                else if (targeted is DragonBardingDeed)
                {
                    result        = Resmelt(from, (DragonBardingDeed)targeted, ((DragonBardingDeed)targeted).Resource);
                    isStoreBought = false;
                }

                switch (result)
                {
                default:
                case SmeltResult.Invalid: message = 1044272; break;                          // You can't melt that down into ingots.

                case SmeltResult.NoSkill: message = 1044269; break;                          // You have no idea how to work this metal.

                case SmeltResult.Success: message = isStoreBought ? 500418 : 1044270; break; // You melt the item down into ingots.
                }

                from.SendLocalizedMessage(message);
            }
        }