Esempio n. 1
0
        public override void OnDoubleClick(Mobile from)
        {
            if (from is TeiravonMobile)
            {
                TeiravonMobile m_player = (TeiravonMobile)from;

                if ((m_player.IsBlacksmith() && m_player.HasFeat(TeiravonMobile.Feats.ArmorEnameling) || (m_player.HasFeat(TeiravonMobile.Feats.BlacksmithTraining) && m_player.IsMerchant())))
                {
                    m_player.Target = new EnamelTarget(this.Color, this);
                }
                else
                {
                    m_player.SendMessage("Only Trained Blacksmiths can use this!");
                }
            }
        }
Esempio n. 2
0
        public SkillName MainSkill(TeiravonMobile player)
        {
            if (player.IsBlacksmith())
            {
                return(SkillName.Blacksmith);
            }

            else if (player.IsAlchemist())
            {
                return(SkillName.Alchemy);
            }

            else if (player.IsTailor())
            {
                return(SkillName.Tailoring);
            }

            //	else if ( player.IsWoodworker() )
            //		return SkillName.Fletching;

            else if (player.IsCook())
            {
                return(SkillName.Cooking);
            }

            else if (player.IsWoodworker())
            {
                return(SkillName.Carpentry);
            }

            else if (player.IsTinker())
            {
                return(SkillName.Tinkering);
            }

            else
            {
                return(SkillName.Camping);
            }
        }
Esempio n. 3
0
        public override void OnDoubleClick(Mobile from)
        {
            if (IsChildOf(from.Backpack) || Parent == from)
            {
                TeiravonMobile m_Player = (TeiravonMobile)from;

                CraftSystem system = this.CraftSystem;

                if (!m_Player.IsTinker())
                {
                    if (system == DefAlchemy.CraftSystem || system == DefGlassblowing.CraftSystem)
                    {
                        if (!m_Player.IsAlchemist() && !m_Player.HasFeat(TeiravonMobile.Feats.AlchemyScience) && !m_Player.HasFeat(TeiravonMobile.Feats.ExoticPoisons))
                        {
                            m_Player.SendMessage("You don't have the skills to use this.");
                            return;
                        }

                        if (!m_Player.HasFeat(TeiravonMobile.Feats.ExoticPoisons))
                        {
                            if (m_Player.Backpack.FindItemByType(typeof(AlchemyTome)) == null)
                            {
                                m_Player.SendMessage("Where's your Alchemy Tome?");
                                return;
                            }
                        }
                    }
                    else if (system == DefBlacksmithy.CraftSystem)
                    {
                        if (!m_Player.IsBlacksmith() && !m_Player.IsTinker() && !m_Player.IsMerchant())
                        {
                            m_Player.SendMessage("You don't have the skills to use this.");
                            return;
                        }
                    }
                    else if (system == DefBowFletching.CraftSystem)
                    {
                        if (!m_Player.IsWoodworker() && !m_Player.IsRanger() && !m_Player.IsArcher() && !m_Player.IsMageSlayer() && !m_Player.IsMerchant() && !m_Player.IsStrider())
                        {
                            m_Player.SendMessage("You don't have the skills to use this.");
                            return;
                        }
                    }
                    else if (system == DefCarpentry.CraftSystem)
                    {
                        if (!m_Player.IsWoodworker() && !m_Player.IsMerchant())
                        {
                            m_Player.SendMessage("You don't have the skills to use this.");
                            return;
                        }
                    }
                    else if (system == DefInscription.CraftSystem)
                    {
                        if (!m_Player.HasFeat(TeiravonMobile.Feats.Inscription) && !m_Player.IsAlchemist() && !m_Player.IsMerchant())
                        {
                            m_Player.SendMessage("You're not sure how to do this.");
                            return;
                        }
                    }
                    else if (system == DefTailoring.CraftSystem)
                    {
                        if (!m_Player.IsTailor() && !m_Player.IsMerchant())
                        {
                            m_Player.SendMessage("You don't have the skills to use this.");
                            return;
                        }
                    }
                }

                int num = system.CanCraft(from, this, null);

                if (num > 0)
                {
                    from.SendLocalizedMessage(num);
                }
                else
                {
                    CraftContext context = system.GetContext(from);

                    from.SendGump(new CraftGump(from, system, this, null));
                }
            }
            else
            {
                from.SendLocalizedMessage(1042001);                   // That must be in your pack for you to use it.
            }
        }
        public override void CustomSystem(Mobile thePlayer)
        {
            TeiravonMobile m_Player = (TeiravonMobile)thePlayer;

            /*
             * Synthax for a SIMPLE craft item
             * AddCraft( ObjectType, Group, MinSkill, MaxSkill, RessourceType, Amount, Message )
             *
             * ObjectType		: The type of the object you want to add to the build list.
             * Group			: The group in wich the object will be showed in the craft menu.
             * MinSkill		: The minimum of skill value
             * MaxSkill		: The maximum of skill value
             * RessourceType	: The type of the ressource the mobile need to create the item
             * Amount			: The amount of the RessourceType it need to create the item
             * Message			: String or Int for Localized.  The message that will be sent to the mobile, if the specified ressource is missing.
             *
             * Synthax for a COMPLEXE craft item.  A complexe item is an item that need either more than
             * only one skill, or more than only one ressource.
             *
             * Coming soon....
             */

            #region Ringmail
            AddCraft(typeof(RingmailGloves), 1011076, 1025099, 12.0, 62.0, typeof(IronIngot), 1044036, 10, 1044037);
            AddCraft(typeof(RingmailLegs), 1011076, 1025104, 19.4, 69.4, typeof(IronIngot), 1044036, 16, 1044037);
            AddCraft(typeof(RingmailArms), 1011076, 1025103, 16.9, 66.9, typeof(IronIngot), 1044036, 14, 1044037);
            AddCraft(typeof(RingmailChest), 1011076, 1025100, 21.9, 71.9, typeof(IronIngot), 1044036, 18, 1044037);
            #endregion

            #region Chainmail
            AddCraft(typeof(ChainCoif), 1011077, 1025051, 14.5, 64.5, typeof(IronIngot), 1044036, 10, 1044037);
            AddCraft(typeof(ChainLegs), 1011077, 1025054, 36.7, 86.7, typeof(IronIngot), 1044036, 18, 1044037);
            AddCraft(typeof(ChainChest), 1011077, 1025055, 39.1, 89.1, typeof(IronIngot), 1044036, 20, 1044037);
            #endregion

            int index = -1;

            #region Platemail
            AddCraft(typeof(PlateArms), 1011078, 1025136, 66.3, 106.3, typeof(IronIngot), 1044036, 18, 1044037);
            AddCraft(typeof(PlateGloves), 1011078, 1025140, 58.9, 108.9, typeof(IronIngot), 1044036, 12, 1044037);
            AddCraft(typeof(PlateGorget), 1011078, 1025139, 56.4, 106.4, typeof(IronIngot), 1044036, 10, 1044037);
            AddCraft(typeof(PlateLegs), 1011078, 1025137, 68.8, 108.8, typeof(IronIngot), 1044036, 20, 1044037);
            AddCraft(typeof(PlateChest), 1011078, 1046431, 75.0, 109.0, typeof(IronIngot), 1044036, 25, 1044037);
            AddCraft(typeof(FemalePlateChest), 1011078, 1046430, 44.1, 94.1, typeof(IronIngot), 1044036, 20, 1044037);

            //if ( Core.AOS ) // exact pre-aos functionality unknown
            //AddCraft( typeof( DragonBardingDeed ), 1011078, 1053012, 72.5, 122.5, typeof( IronIngot ), 1044036, 750, 1044037 );

            if (Core.SE)
            {
                /*
                 *
                 *      index = AddCraft( typeof( PlateMempo ), 1011078, 1030180, 80.0, 130.0, typeof( IronIngot ), 1044036, 18, 1044037 );
                 *      SetNeedSE( index, true );
                 *
                 *      index = AddCraft( typeof( PlateDo ), 1011078, 1030184, 80.0, 130.0, typeof( IronIngot ), 1044036, 28, 1044037 ); //Double check skill
                 *      SetNeedSE( index, true );
                 *
                 *      index = AddCraft( typeof( PlateHiroSode ), 1011078, 1030187, 80.0, 130.0, typeof( IronIngot ), 1044036, 16, 1044037 );
                 *      SetNeedSE( index, true );
                 *
                 *      index = AddCraft( typeof( PlateSuneate ), 1011078, 1030195, 65.0, 115.0, typeof( IronIngot ), 1044036, 20, 1044037 );
                 *      SetNeedSE( index, true );
                 *
                 *      index = AddCraft( typeof( PlateHaidate ), 1011078, 1030200, 65.0, 115.0, typeof( IronIngot ), 1044036, 20, 1044037 );
                 *      SetNeedSE( index, true );
                 */
            }
            #endregion

            #region Helmets
            AddCraft(typeof(Bascinet), 1011079, 1025132, 8.3, 58.3, typeof(IronIngot), 1044036, 15, 1044037);
            AddCraft(typeof(CloseHelm), 1011079, 1025128, 37.9, 87.9, typeof(IronIngot), 1044036, 15, 1044037);
            AddCraft(typeof(Helmet), 1011079, 1025130, 37.9, 87.9, typeof(IronIngot), 1044036, 15, 1044037);
            AddCraft(typeof(NorseHelm), 1011079, 1025134, 37.9, 87.9, typeof(IronIngot), 1044036, 15, 1044037);
            AddCraft(typeof(PlateHelm), 1011079, 1025138, 62.6, 112.6, typeof(IronIngot), 1044036, 15, 1044037);

            if (Core.SE)
            {
                /*
                 *      index = AddCraft( typeof( ChainHatsuburi ), 1011079, 1030175, 30.0, 80.0, typeof( IronIngot ), 1044036, 20, 1044037 );
                 *      SetNeedSE( index, true );
                 *
                 *      index = AddCraft( typeof( PlateHatsuburi ), 1011079, 1030176, 45.0, 95.0, typeof( IronIngot ), 1044036, 20, 1044037 );
                 *      SetNeedSE( index, true );
                 *
                 *      index = AddCraft( typeof( HeavyPlateJingasa ), 1011079, 1030178, 45.0, 95.0, typeof( IronIngot ), 1044036, 20, 1044037 );
                 *      SetNeedSE( index, true );
                 *
                 *      index = AddCraft( typeof( LightPlateJingasa ), 1011079, 1030188, 45.0, 95.0, typeof( IronIngot ), 1044036, 20, 1044037 );
                 *      SetNeedSE( index, true );
                 *
                 *      index = AddCraft( typeof( SmallPlateJingasa ), 1011079, 1030191, 45.0, 95.0, typeof( IronIngot ), 1044036, 20, 1044037 );
                 *      SetNeedSE( index, true );
                 *
                 *      index = AddCraft( typeof( DecorativePlateKabuto ), 1011079, 1030179, 90.0, 140.0, typeof( IronIngot ), 1044036, 25, 1044037 );
                 *      SetNeedSE( index, true );
                 *
                 *      index = AddCraft( typeof( PlateBattleKabuto ), 1011079, 1030192, 90.0, 140.0, typeof( IronIngot ), 1044036, 25, 1044037 );
                 *      SetNeedSE( index, true );
                 *
                 *      index = AddCraft( typeof( StandardPlateKabuto ), 1011079, 1030196, 90.0, 140.0, typeof( IronIngot ), 1044036, 25, 1044037 );
                 *      SetNeedSE( index, true );
                 */
            }
            #endregion

            #region Shields
            AddCraft(typeof(Buckler), 1011080, 1027027, -25.0, 25.0, typeof(IronIngot), 1044036, 10, 1044037);
            AddCraft(typeof(BronzeShield), 1011080, 1027026, -15.2, 34.8, typeof(IronIngot), 1044036, 12, 1044037);
            AddCraft(typeof(HeaterShield), 1011080, 1027030, 24.3, 74.3, typeof(IronIngot), 1044036, 18, 1044037);
            AddCraft(typeof(MetalShield), 1011080, 1027035, -10.2, 39.8, typeof(IronIngot), 1044036, 14, 1044037);
            AddCraft(typeof(MetalKiteShield), 1011080, 1027028, 4.6, 54.6, typeof(IronIngot), 1044036, 16, 1044037);
            AddCraft(typeof(WoodenKiteShield), 1011080, 1027032, -15.2, 34.8, typeof(IronIngot), 1044036, 8, 1044037);
            AddCraft(typeof(SpikedShield), 1011080, "Spiked Shield", 80.0, 120.0, typeof(IronIngot), 1044036, 18, 1044037);

            /*	if ( Core.AOS )
             *      {
             *              AddCraft( typeof( ChaosShield ), 1011080, 1027107, 85.0, 135.0, typeof( IronIngot ), 1044036, 25, 1044037 );
             *              AddCraft( typeof( OrderShield ), 1011080, 1027108, 85.0, 135.0, typeof( IronIngot ), 1044036, 25, 1044037 );
             *      }
             */
            #endregion

            #region Bladed

            if (m_Player.PlayerRace == TeiravonMobile.Race.Undead)
            {
                AddCraft(typeof(BoneHarvester), 1011081, 1029915, 33.0, 83.0, typeof(IronIngot), 1044036, 10, 1044037);
            }

            AddCraft(typeof(Broadsword), 1011081, 1023934, 35.4, 85.4, typeof(IronIngot), 1044036, 10, 1044037);

            //if ( Core.AOS )
            AddCraft(typeof(CrescentBlade), 1011081, 1029921, 45.0, 95.0, typeof(IronIngot), 1044036, 14, 1044037);

            AddCraft(typeof(Cutlass), 1011081, 1025185, 24.3, 74.3, typeof(IronIngot), 1044036, 8, 1044037);
            AddCraft(typeof(Dagger), 1011081, 1023921, -0.4, 49.6, typeof(IronIngot), 1044036, 3, 1044037);
            AddCraft(typeof(ThrowingKnife), 1011081, "throwing knife", -0.4, 59.6, typeof(IronIngot), 1044036, 3, 1044037);
            //AddCraft( typeof( Katana ),1011081, 1025119, 44.1, 94.1, typeof( IronIngot ), 1044036, 8, 1044037 );
            AddCraft(typeof(Kryss), 1011081, 1025121, 36.7, 86.7, typeof(IronIngot), 1044036, 8, 1044037);
            AddCraft(typeof(Longsword), 1011081, 1023937, 28.0, 78.0, typeof(IronIngot), 1044036, 12, 1044037);
            AddCraft(typeof(Rapier), 1011081, "cavalry blade", 48.0, 84.0, typeof(IronIngot), "Ingots", 9);
            AddCraft(typeof(Scimitar), 1011081, 1025046, 31.7, 81.7, typeof(IronIngot), 1044036, 10, 1044037);
            AddCraft(typeof(VikingSword), 1011081, 1025049, 24.3, 74.3, typeof(IronIngot), 1044036, 14, 1044037);
            AddCraft(typeof(Claymore), 1011081, "Claymore", 85.0, 120.0, typeof(IronIngot), "Ingots", 22);

            if (Core.SE)
            {
                /*
                 *      index = AddCraft( typeof( NoDachi ), 1011081, 1030221, 75.0, 125.0, typeof( IronIngot ), 1044036, 18, 1044037 );
                 *      SetNeedSE( index, true );
                 *      index = AddCraft( typeof( Wakizashi ), 1011081, 1030223, 50.0, 100.0, typeof( IronIngot ), 1044036, 8, 1044037 );
                 *      SetNeedSE( index, true );
                 *      index = AddCraft( typeof( Lajatang ), 1011081, 1030226, 80.0, 130.0, typeof( IronIngot ), 1044036, 25, 1044037 );
                 *      SetNeedSE( index, true );
                 *      index = AddCraft( typeof( Daisho ), 1011081, 1030228, 60.0, 120.0, typeof( IronIngot ), 1044036, 15, 1044037 );
                 *      SetNeedSE( index, true );
                 *      index = AddCraft( typeof( Tekagi ), 1011081, 1030230, 55.0, 105.0, typeof( IronIngot ), 1044036, 12, 1044037 );
                 *      SetNeedSE( index, true );
                 *      //index = AddCraft( typeof( Shuriken ), 1011081, 1030231, 45.0, 95.0, typeof( IronIngot ), 1044036, 5, 1044037 );
                 *      //SetNeedSE( index, true );
                 *      index = AddCraft( typeof( Kama ), 1011081, 1030232, 40.0, 90.0, typeof( IronIngot ), 1044036, 14, 1044037 );
                 *      SetNeedSE( index, true );
                 *      index = AddCraft( typeof( Sai ), 1011081, 1030234, 50.0, 100.0, typeof( IronIngot ), 1044036, 12, 1044037 );
                 *      SetNeedSE( index, true );
                 */
            }
            #endregion

            #region Axes
            AddCraft(typeof(Axe), 1011082, 1023913, 34.2, 84.2, typeof(IronIngot), 1044036, 14, 1044037);
            AddCraft(typeof(BattleAxe), 1011082, 1023911, 30.5, 80.5, typeof(IronIngot), 1044036, 14, 1044037);
            AddCraft(typeof(DoubleAxe), 1011082, 1023915, 29.3, 79.3, typeof(IronIngot), 1044036, 12, 1044037);
            AddCraft(typeof(ExecutionersAxe), 1011082, 1023909, 34.2, 84.2, typeof(IronIngot), 1044036, 14, 1044037);
            AddCraft(typeof(LargeBattleAxe), 1011082, 1025115, 28.0, 78.0, typeof(IronIngot), 1044036, 12, 1044037);
            AddCraft(typeof(TwoHandedAxe), 1011082, 1025187, 33.0, 83.0, typeof(IronIngot), 1044036, 16, 1044037);
            AddCraft(typeof(WarAxe), 1011082, 1025040, 39.1, 89.1, typeof(IronIngot), 1044036, 16, 1044037);
            #endregion

            #region Pole Arms

            AddCraft(typeof(Bardiche), 1011083, 1023917, 31.7, 81.7, typeof(IronIngot), 1044036, 18, 1044037);

            if (Core.AOS)
            {
                AddCraft(typeof(BladedStaff), 1011083, 1029917, 40.0, 90.0, typeof(IronIngot), 1044036, 12, 1044037);
            }

            if (Core.AOS)
            {
                AddCraft(typeof(DoubleBladedStaff), 1011083, 1029919, 45.0, 95.0, typeof(IronIngot), 1044036, 16, 1044037);
            }

            AddCraft(typeof(Halberd), 1011083, 1025183, 39.1, 89.1, typeof(IronIngot), 1044036, 20, 1044037);

            if (Core.AOS)
            {
                index = AddCraft(typeof(Lance), 1011083, 1029920, 80.0, 120.0, typeof(IronIngot), 1044036, 20, 1044037);
                AddRes(index, typeof(Log), 1044041, 20, 1044351);
            }

            if (Core.AOS)
            {
                AddCraft(typeof(Pike), 1011083, 1029918, 47.0, 97.0, typeof(IronIngot), 1044036, 12, 1044037);
            }

            AddCraft(typeof(ShortSpear), 1011083, 1025123, 45.3, 95.3, typeof(IronIngot), 1044036, 6, 1044037);

            if (m_Player.PlayerRace == TeiravonMobile.Race.Undead)
            {
                AddCraft(typeof(Scythe), 1011083, 1029914, 39.0, 89.0, typeof(IronIngot), 1044036, 14, 1044037);
            }

            AddCraft(typeof(Spear), 1011083, 1023938, 49.0, 99.0, typeof(IronIngot), 1044036, 12, 1044037);
            AddCraft(typeof(WarFork), 1011083, 1025125, 42.9, 92.9, typeof(IronIngot), 1044036, 12, 1044037);
            index = AddCraft(typeof(Javelin), 1011083, "Javelin", 49.0, 99.0, typeof(IronIngot), 1044036, 5, 1044037);
            AddRes(index, typeof(Log), 1044041, 4, 1044351);
            // Not craftable (is this an AOS change ??)
            //AddCraft( typeof( Pitchfork ), 1011083, 1023720, 36.1, 86.1, typeof( IronIngot ), 1044036, 12, 1044037 );
            #endregion

            #region Bashing
            AddCraft(typeof(HammerPick), 1011084, 1025181, 34.2, 84.2, typeof(IronIngot), 1044036, 16, 1044037);
            AddCraft(typeof(Mace), 1011084, 1023932, 14.5, 64.5, typeof(IronIngot), 1044036, 6, 1044037);
            AddCraft(typeof(Maul), 1011084, 1025179, 19.4, 69.4, typeof(IronIngot), 1044036, 10, 1044037);
            index = AddCraft(typeof(SpikedBaton), 1011084, "Spiked Baton", 19.4, 64.5, typeof(IronIngot), 1044036, 4, 1044037);
            AddRes(index, typeof(Log), 1044041, 2, 1044351);

            if (m_Player.PlayerRace == TeiravonMobile.Race.Undead)
            {
                AddCraft(typeof(Scepter), 1011084, 1029916, 21.4, 71.4, typeof(IronIngot), 1044036, 10, 1044037);
            }

            AddCraft(typeof(WarMace), 1011084, 1025127, 28.0, 78.0, typeof(IronIngot), 1044036, 14, 1044037);
            AddCraft(typeof(WarHammer), 1011084, 1025177, 34.2, 84.2, typeof(IronIngot), 1044036, 16, 1044037);

            if (Core.SE)
            {
                /*
                 * index = AddCraft( typeof( Tessen ), 1011084, 1030222, 85.0, 135.0, typeof( IronIngot ), 1044036, 16, 1044037 );
                 * AddSkill( index, SkillName.Tailoring, 50.0, 55.0 );
                 * AddRes( index, typeof( Cloth ), 1044286, 10, 1044287 );
                 * SetNeedSE( index, true );
                 */
            }
            #endregion

            #region Miscellaneous
            index = AddCraft(typeof(DragonGloves), 1015283, 1029795, 68.9, 118.9, typeof(RedScales), 1060883, 16, 1060884);
            SetUseSubRes2(index, true);

            index = AddCraft(typeof(DragonHelm), 1015283, 1029797, 72.6, 118.6, typeof(RedScales), 1060883, 20, 1060884);
            SetUseSubRes2(index, true);

            index = AddCraft(typeof(DragonLegs), 1015283, 1029799, 78.8, 119.8, typeof(RedScales), 1060883, 28, 1060884);
            SetUseSubRes2(index, true);

            index = AddCraft(typeof(DragonArms), 1015283, 1029815, 76.3, 119.3, typeof(RedScales), 1060883, 24, 1060884);
            SetUseSubRes2(index, true);

            index = AddCraft(typeof(DragonChest), 1015283, 1029793, 85.0, 121.0, typeof(RedScales), 1060883, 36, 1060884);
            SetUseSubRes2(index, true);

            index = AddCraft(typeof(MetalBox), 1015283, "metal box", 40.0, 60.0, typeof(IronIngot), "Ingots", 10);
            AddRes(index, typeof(Hinge), 1044172, 1, 1044253);
            index = AddCraft(typeof(MetalChest), 1015283, "metal chest", 60.0, 80.0, typeof(IronIngot), "Ingots", 20);
            AddRes(index, typeof(Hinge), 1044172, 1, 1044253);
            index = AddCraft(typeof(MetalGoldenChest), 1015283, "decorated metal chest", 70.0, 90.0, typeof(IronIngot), "Ingots", 25);
            AddRes(index, typeof(Hinge), 1044172, 1, 1044253);
            #endregion

            if ((m_Player.HasFeat(TeiravonMobile.Feats.RacialCrafting) || m_Player.HasFeat(TeiravonMobile.Feats.MasterCraftsman)) && (m_Player.IsBlacksmith() || m_Player.IsMerchant()))
            {
                if (m_Player.IsHuman())
                {
                    index = AddCraft(typeof(HumanBandedLance), "Racials", "Banded Lance", 75.0, 105.0, typeof(IronIngot), "Ingots", 40);
                    AddRes(index, typeof(BlackOakLog), "Black Oak Logs", 20);
                    index = AddCraft(typeof(HumanBattleShield), "Racials", "Battle Shield", 85.0, 120.0, typeof(IronIngot), "Ingots", 30);
                    AddRes(index, typeof(BarbedLeather), "Barbed Leather", 10);
                    index = AddCraft(typeof(HumanFieldPlateHelm), "Racials", "Field Plate Helm", 85.0, 120.0, typeof(IronIngot), "Ingots", 20);
                    AddRes(index, typeof(BarbedLeather), "Barbed Leather", 5);
                    index = AddCraft(typeof(HumanFieldPlateGloves), "Racials", "Field Plate Gloves", 70.0, 120.0, typeof(IronIngot), "Ingots", 15);
                    AddRes(index, typeof(BarbedLeather), "Barbed Leather", 5);
                    index = AddCraft(typeof(HumanFieldPlateGorget), "Racials", "Field Plate Gorget", 75.0, 120.0, typeof(IronIngot), "Ingots", 15);
                    AddRes(index, typeof(BarbedLeather), "Barbed Leather", 3);
                    index = AddCraft(typeof(HumanFieldPlateArms), "Racials", "Field Plate Arms", 82.2, 120.0, typeof(IronIngot), "Ingots", 25);
                    AddRes(index, typeof(BarbedLeather), "Barbed Leather", 15);
                    index = AddCraft(typeof(HumanFieldPlateLegs), "Racials", "Field Plate Legs", 87.5, 120.0, typeof(IronIngot), "Ingots", 30);
                    AddRes(index, typeof(BarbedLeather), "Barbed Leather", 20);
                    index = AddCraft(typeof(HumanFieldPlateChest), "Racials", "Field Plate Chest", 90.0, 120.0, typeof(IronIngot), "Ingots", 50);
                    AddRes(index, typeof(BarbedLeather), "Barbed Leather", 25);
                    index = AddCraft(typeof(HumanFieldPlateBoots), "Racials", "Field Plate Boots", 70.0, 120.0, typeof(IronIngot), "Ingots", 20);
                    AddRes(index, typeof(BarbedLeather), "Barbed Leather", 5);
                }
                else if (m_Player.IsOrc())
                {
                    index = AddCraft(typeof(OrcMace), "Racials", "Dire Mace", 75.0, 105.0, typeof(IronIngot), "Ingots", 20);
                    AddRes(index, typeof(AshwoodLog), "Ashwood Logs", 10);
                    index = AddCraft(typeof(OrcGloves), "Racials", "Spiked Gloves", 85.0, 120.0, typeof(IronIngot), "Ingots", 20);
                    AddRes(index, typeof(HornedLeather), "Horned Leather", 5);
                    index = AddCraft(typeof(OrcSpikedHelm), "Racials", "Spiked Orc Helm", 85.0, 120.0, typeof(IronIngot), "Ingots", 30);
                    AddRes(index, typeof(BarbedLeather), "Barbed Leather", 15);
                }
                else if (m_Player.IsDrow())
                {
                    index = AddCraft(typeof(Drowdagger), "Racials", "Drow Dagger", 85.0, 120.0, typeof(IronIngot), "Ingots", 10);
                    AddRes(index, typeof(Bone), "Bone", 5);
                    index = AddCraft(typeof(Drowsword), "Racials", "Drow Scimitar", 85.0, 120.0, typeof(IronIngot), "Ingots", 25);
                    AddRes(index, typeof(Bone), "Bone", 15);
                    index = AddCraft(typeof(DrowChainChest), "Racials", "Spidermail Chest", 85.0, 120.0, typeof(IronIngot), "Ingots", 40);
                    AddRes(index, typeof(SpidersSilk), "Spider Silk", 100);
                    index = AddCraft(typeof(DrowChainLegs), "Racials", "Spidermail Legs", 85.0, 120.0, typeof(IronIngot), "Ingots", 30);
                    AddRes(index, typeof(SpidersSilk), "Spider Silk", 75);
                    index = AddCraft(typeof(DrowChainCoif), "Racials", "Spidermail Coif", 85.0, 120.0, typeof(IronIngot), "Ingots", 20);
                    AddRes(index, typeof(SpidersSilk), "Spider Silk", 25);

                    index = AddCraft(typeof(HandCrossbow), "Racials", "Reinforced Hand Crossbow", 85.0, 120.0, typeof(IronIngot), "Ingots", 2);
                    AddRes(index, typeof(ReinforcedHandXBowFrame), "Reinforced Hand Crossbow Frame", 1);
                }
                else if (m_Player.IsDwarf())
                {
                    index = AddCraft(typeof(DwarvenAxe), "Racials", "Dwarven Axe", 85.0, 120.0, typeof(IronIngot), "Ingots", 10);
                    AddRes(index, typeof(SilverBirchLog), "Silver Birch Log", 5);
                    index = AddCraft(typeof(DwarvenShield), "Racials", "Dwarven Shield", 85.0, 120.0, typeof(IronIngot), "Ingots", 25);
                    AddRes(index, typeof(SilverBirchLog), "Silver Birch Log", 10);
                    AddRes(index, typeof(SpinedLeather), "Spined Leather", 10);
                    index = AddCraft(typeof(DwarvenArmorPlate), "Racials", "Armor Plate", 85.0, 120.0, typeof(DullCopperIngot), "Dull Copper Ingots", 10);
                    index = AddCraft(typeof(DwarvenGloves), "Racials", "Dwarven Gloves", 85.0, 120.0, typeof(IronIngot), "Ingots", 30);
                    AddRes(index, typeof(BarbedLeather), "Barbed Leather", 5);
                    AddRes(index, typeof(BaseGranite), "Granite", 1);
                }
                else if (m_Player.IsElf())
                {
                    index = AddCraft(typeof(ElvenLongsword), "Racials", "Elven Longsword", 85.0, 120.0, typeof(IronIngot), "Ingots", 25);
                    AddRes(index, typeof(Vines), "Vines", 1);
                    index = AddCraft(typeof(ElvenChainChest), "Racials", "Elven Chainmail Chest", 85.0, 120.0, typeof(IronIngot), "Ingots", 40);
                    AddRes(index, typeof(Ginseng), "Ginseng", 100);
                    index = AddCraft(typeof(ElvenChainLegs), "Racials", "Elven Chainmail Legs", 85.0, 120.0, typeof(IronIngot), "Ingots", 30);
                    AddRes(index, typeof(Ginseng), "Ginseng", 75);
                    index = AddCraft(typeof(ElvenChainCoif), "Racials", "Elven Chainmail Coif", 85.0, 120.0, typeof(IronIngot), "Ingots", 20);
                    AddRes(index, typeof(Ginseng), "Ginseng", 25);

                    index = AddCraft(typeof(Bow), "Racials", "Reinforced Shortbow", 85.0, 120.0, typeof(IronIngot), "Ingots", 2);
                    AddRes(index, typeof(ReinforcedBowFrame), "Reinforced Shortbow Frame", 1);

                    index = AddCraft(typeof(Longbow), "Racials", "Reinforced Longbow", 85.0, 120.0, typeof(IronIngot), "Ingots", 2);
                    AddRes(index, typeof(ReinforcedLongbowFrame), "Reinforced Longbow Frame", 1);
                }
            }

            // Set the overidable material
            SetSubRes(typeof(IronIngot), 1044022);

            // Add every material you want the player to be able to chose from
            // This will overide the overidable material
            AddSubRes(typeof(IronIngot), "IRON", 00.0, 1044267);
            AddSubRes(typeof(DullCopperIngot), "DULL COPPER", 45.0, 1044268);
            AddSubRes(typeof(ShadowIronIngot), "SHADOW IRON", 70.0, 1044268);
            AddSubRes(typeof(CopperIngot), "COPPER", 75.0, 1044268);
            AddSubRes(typeof(BronzeIngot), "BRONZE", 80.0, 1044268);
            AddSubRes(typeof(SilverIngot), "SILVER", 85.0, 1044268);
            AddSubRes(typeof(GoldIngot), "GOLD", 85.0, 1044268);
            AddSubRes(typeof(AgapiteIngot), "AGAPITE", 90.0, 1044268);
            AddSubRes(typeof(VeriteIngot), "VERITE", 95.0, 1044268);
            AddSubRes(typeof(ValoriteIngot), "VALORITE", 99.0, 1044268);
            AddSubRes(typeof(BlackrockIngot), "BLACKROCK", 100.0, 1044268);
            AddSubRes(typeof(MithrilIngot), "MITHRIL", 100.0, 1044268);
            AddSubRes(typeof(BloodrockIngot), "BLOODROCK", 100.0, 1044268);
            AddSubRes(typeof(SteelIngot), "STEEL", 100.0, 1044268);
            AddSubRes(typeof(AdamantiteIngot), "ADAMANTITE", 100.0, 1044268);
            AddSubRes(typeof(IthilmarIngot), "ITHILMAR", 100.0, 1044268);
            AddSubRes(typeof(SkazzIngot), "SKAZZ", 80.0, 1044268);
            AddSubRes(typeof(ElectrumIngot), "ELECTRUM", 100.0, 1044268);

            SetSubRes2(typeof(RedScales), 1060875);

            AddSubRes2(typeof(RedScales), 1060875, 0.0, 1053137, 1044268);
            AddSubRes2(typeof(YellowScales), 1060876, 0.0, 1053137, 1044268);
            AddSubRes2(typeof(BlackScales), 1060877, 0.0, 1053137, 1044268);
            AddSubRes2(typeof(GreenScales), 1060878, 0.0, 1053137, 1044268);
            AddSubRes2(typeof(WhiteScales), 1060879, 0.0, 1053137, 1044268);
            AddSubRes2(typeof(BlueScales), 1060880, 0.0, 1053137, 1044268);

            Resmelt    = true;
            Repair     = true;
            MarkOption = true;
            CanEnhance = Core.AOS;
            CanFinish  = true;
        }