public ItemListEntry[] CreateResList()
        {
            CraftSubResCol       res      = CurrentCraftSystem.CraftSubRes;
            List <ItemListEntry> toReturn = new List <ItemListEntry>();
            CraftSubRes          subResource;

            if (CurrentCraftSystem.CraftSubRes.Init && CurrentCraftSystem.CraftSubRes.Count >= 1)
            {
                for (int i = 0; i < res.Count; ++i)
                {
                    subResource = res.GetAt(i);

                    int hue = ResourceInfoList[subResource].Hue;

                    if (hue > 1)
                    {
                        hue--;
                    }

                    if (subResource.NameNumber > 0)
                    {
                        toReturn.Add(new ItemListEntry(CliLoc.LocToString(subResource.NameNumber), ResourceInfoList[subResource].ItemID, hue));
                    }
                    else
                    {
                        toReturn.Add(new ItemListEntry(subResource.NameString, ResourceInfoList[subResource].ItemID, hue));
                    }
                }
            }

            if (CurrentCraftSystem.CraftSubRes2.Init)
            {
                res = CurrentCraftSystem.CraftSubRes2;
                for (int i = 0; i < res.Count; ++i)
                {
                    subResource = res.GetAt(i);

                    if (subResource.NameNumber > 0)
                    {
                        toReturn.Add(new ItemListEntry(CliLoc.LocToString(subResource.NameNumber), ResourceInfoList[subResource].ItemID, ResourceInfoList[subResource].Hue));
                    }
                    else
                    {
                        toReturn.Add(new ItemListEntry(subResource.NameString, ResourceInfoList[subResource].ItemID, ResourceInfoList[subResource].Hue));
                    }
                }
            }

            return(toReturn.ToArray());
        }
Exemple #2
0
        public override void OnResponse(NetState state, int index)
        {
            if (IsFrom == "Wood")
            {
                Type type = null;

                CraftContext   context  = DefTinkering.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefTinkering.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)).UseSubRes2 ? DefTinkering.CraftSystem.CraftSubRes2 : DefTinkering.CraftSystem.CraftSubRes);
                int            resIndex = (DefTinkering.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefTinkering.CraftSystem.CreateItem(m_Mobile, DefTinkering.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)).ItemType, typeof(Log), m_Tool, DefTinkering.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)));
            }
            else if (IsFrom == "Metal")
            {
                Type type = null;

                CraftContext   context  = DefTinkering.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefTinkering.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex + 5)).UseSubRes2 ? DefTinkering.CraftSystem.CraftSubRes2 : DefTinkering.CraftSystem.CraftSubRes);
                int            resIndex = (DefTinkering.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex + 5)).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefTinkering.CraftSystem.CreateItem(m_Mobile, DefTinkering.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex + 5)).ItemType, typeof(IronIngot), m_Tool, DefTinkering.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex + 5)));
            }
        }
        public override void OnResponse(NetState state, int index)
        {
            Type type = null;

            CraftContext   context  = DefBowFletching.CraftSystem.GetContext(m_Mobile);
            CraftSubResCol res      = (DefBowFletching.CraftSystem.CraftItems.GetAt(m_Entries[index].craftIndex).UseSubRes2 ? DefBlacksmithy.CraftSystem.CraftSubRes2 : DefBowFletching.CraftSystem.CraftSubRes);
            int            resIndex = (DefBowFletching.CraftSystem.CraftItems.GetAt(m_Entries[index].craftIndex).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

            if (resIndex > -1)
            {
                type = res.GetAt(resIndex).ItemType;
            }
            DefBowFletching.CraftSystem.CreateItem(m_Mobile, DefBowFletching.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)).ItemType, type, m_Tool, DefBowFletching.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)));
        }
Exemple #4
0
        public Type GetResource(int itemID, itemTable[] table)
        {
            itemTable temp = itemTable.Find(table, itemID);

            // recall the selected resource
            CraftContext context = Craft.CraftSystem.GetContext(Craft.From);
            Type         type    = null;

            if (context != null)
            {
                CraftSubResCol res      = (temp.CraftItem.UseSubRes2 ? Craft.CraftSystem.CraftSubRes2 : Craft.CraftSystem.CraftSubRes);
                int            resIndex = (temp.CraftItem.UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }
            }

            return(type);
        }
Exemple #5
0
        /*public static ItemListEntry[] Other(Mobile from)
         * {
         *  Type type;
         *  int itemid;
         *  string name;
         *  Item item;
         *  CraftRes craftResource;
         *  bool allRequiredSkills = true;
         *  double chance;
         *
         *  ItemListEntry[] entries = new ItemListEntry[DefCarpentry.CraftSystem.CraftItems.Count];
         *
         *  for (int i = 0; i < DefCarpentry.CraftSystem.CraftItems.Count; ++i)
         *  {
         *      chance = DefCarpentry.CraftSystem.CraftItems.GetAt(i).GetSuccessChance(from, typeof(Board), DefCarpentry.CraftSystem, false, ref allRequiredSkills);
         *
         *      if (chance > 0)
         *      {
         *          type = DefCarpentry.CraftSystem.CraftItems.GetAt(i).ItemType;
         *          craftResource = DefCarpentry.CraftSystem.CraftItems.SearchFor(type).Ressources.GetAt(0);
         *
         *          item = null;
         *          try { item = Activator.CreateInstance(type) as Item; }
         *          catch { }
         *          name = item.GetType().Name;
         *          name = name.ToLower();
         *          itemid = item.ItemID;
         *
         *          entries[i-missing] = new ItemListEntry(String.Format("{0}", name), itemid, 0, i);
         *
         *          if (item != null)
         *              item.Delete();
         *      }
         *      else
         *          missing++;//entries[i]= new ItemListEntry("", -1);
         *  }
         *
         *  return entries;
         * }*/

        public override void OnResponse(NetState state, int index)
        {
            if (IsFrom == "Main")
            {
                if (m_Entries[index].craftIndex == 0)
                {
                    IsFrom = "Chairs";
                    m_Mobile.SendMenu(new CarpentryMenu(m_Mobile, Chairs(m_Mobile), IsFrom, m_Tool));
                }
                if (m_Entries[index].craftIndex == 1)
                {
                    IsFrom = "Tables";
                    m_Mobile.SendMenu(new CarpentryMenu(m_Mobile, Tables(m_Mobile), IsFrom, m_Tool));
                }
                else if (m_Entries[index].craftIndex == 2)
                {
                    IsFrom = "Containers";
                    m_Mobile.SendMenu(new CarpentryMenu(m_Mobile, Containers(m_Mobile), IsFrom, m_Tool));
                }
                else if (m_Entries[index].craftIndex == 3)
                {
                    IsFrom = "Misc";
                    m_Mobile.SendMenu(new CarpentryMenu(m_Mobile, Misc(m_Mobile), IsFrom, m_Tool));
                }
            }
            else if (IsFrom == "Chairs")
            {
                Type type = null;

                CraftContext   context  = DefCarpentry.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefCarpentry.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 6).UseSubRes2 ? DefCarpentry.CraftSystem.CraftSubRes2 : DefCarpentry.CraftSystem.CraftSubRes);
                int            resIndex = (DefCarpentry.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 6).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefCarpentry.CraftSystem.CreateItem(m_Mobile, DefCarpentry.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 6).ItemType, type, m_Tool, DefCarpentry.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 6));
            }
            else if (IsFrom == "Tables")
            {
                Type type = null;

                CraftContext   context  = DefCarpentry.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefCarpentry.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 15).UseSubRes2 ? DefCarpentry.CraftSystem.CraftSubRes2 : DefCarpentry.CraftSystem.CraftSubRes);
                int            resIndex = (DefCarpentry.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 15).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefCarpentry.CraftSystem.CreateItem(m_Mobile, DefCarpentry.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 15).ItemType, type, m_Tool, DefCarpentry.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 15));
            }
            else if (IsFrom == "Containers")
            {
                Type type = null;

                CraftContext   context  = DefCarpentry.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefCarpentry.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 19).UseSubRes2 ? DefCarpentry.CraftSystem.CraftSubRes2 : DefCarpentry.CraftSystem.CraftSubRes);
                int            resIndex = (DefCarpentry.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 19).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefCarpentry.CraftSystem.CreateItem(m_Mobile, DefCarpentry.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 19).ItemType, type, m_Tool, DefCarpentry.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 19));
            }
            else if (IsFrom == "Misc")
            {
                Type type = null;

                CraftContext   context  = DefCarpentry.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefCarpentry.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 28).UseSubRes2 ? DefCarpentry.CraftSystem.CraftSubRes2 : DefCarpentry.CraftSystem.CraftSubRes);
                int            resIndex = (DefCarpentry.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 28).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefCarpentry.CraftSystem.CreateItem(m_Mobile, DefCarpentry.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 28).ItemType, type, m_Tool, DefCarpentry.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 28));
            }
        }
Exemple #6
0
        public override void OnResponse(NetState state, int index)
        {
            if (IsFrom == "Main")
            {
                if (Entries[index].craftIndex == 0)
                {
                    IsFrom = "Shirts";
                    m_Mobile.SendMenu(new TailoringMenu(m_Mobile, Shirts(m_Mobile), IsFrom, m_Tool));
                }
                else if (Entries[index].craftIndex == 1)
                {
                    IsFrom = "Pants";
                    m_Mobile.SendMenu(new TailoringMenu(m_Mobile, Pants(m_Mobile), IsFrom, m_Tool));
                }
                else if (Entries[index].craftIndex == 2)
                {
                    IsFrom = "Misc";
                    m_Mobile.SendMenu(new TailoringMenu(m_Mobile, Misc(m_Mobile), IsFrom, m_Tool));
                }
                else if (Entries[index].craftIndex == 3)
                {
                    IsFrom = "BoltOfCloth";
                    m_Mobile.SendMenu(new TailoringMenu(m_Mobile, Bolt(m_Mobile), IsFrom, m_Tool));
                }
            }
            else if (IsFrom == "LeatherMain")
            {
                if (Entries[index].craftIndex == 0)
                {
                    IsFrom = "Footwear";
                    m_Mobile.SendMenu(new TailoringMenu(m_Mobile, Footwear(m_Mobile), IsFrom, m_Tool));
                }
                else if (Entries[index].craftIndex == 1)
                {
                    IsFrom = "Leather";
                    m_Mobile.SendMenu(new TailoringMenu(m_Mobile, Leather(m_Mobile), IsFrom, m_Tool));
                }
                else if (Entries[index].craftIndex == 2)
                {
                    IsFrom = "Studded";
                    m_Mobile.SendMenu(new TailoringMenu(m_Mobile, Studded(m_Mobile), IsFrom, m_Tool));
                }
                else if (Entries[index].craftIndex == 3)
                {
                    IsFrom = "Female";
                    m_Mobile.SendMenu(new TailoringMenu(m_Mobile, Female(m_Mobile), IsFrom, m_Tool));
                }
            }
            else if (IsFrom == "Shirts")
            {
                Type type = null;

                CraftContext   context  = DefTailoring.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)).UseSubRes2 ? DefTailoring.CraftSystem.CraftSubRes2 : DefTailoring.CraftSystem.CraftSubRes);
                int            resIndex = (DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefTailoring.CraftSystem.CreateItem(m_Mobile, DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)).ItemType, typeof(Cloth), m_Tool, DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)));
            }
            else if (IsFrom == "Pants")
            {
                Type type = null;

                CraftContext   context  = DefTailoring.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 6).UseSubRes2 ? DefTailoring.CraftSystem.CraftSubRes2 : DefTailoring.CraftSystem.CraftSubRes);
                int            resIndex = (DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 6).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefTailoring.CraftSystem.CreateItem(m_Mobile, DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 6).ItemType, typeof(Cloth), m_Tool, DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 6));
            }
            else if (IsFrom == "Misc")
            {
                Type type = null;

                CraftContext   context  = DefTailoring.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 9).UseSubRes2 ? DefTailoring.CraftSystem.CraftSubRes2 : DefTailoring.CraftSystem.CraftSubRes);
                int            resIndex = (DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 9).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefTailoring.CraftSystem.CreateItem(m_Mobile, DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 9).ItemType, typeof(Cloth), m_Tool, DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 9));
            }
            else if (IsFrom == "BoltOfCloth")
            {
                Type type = null;

                CraftContext   context  = DefTailoring.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 14).UseSubRes2 ? DefTailoring.CraftSystem.CraftSubRes2 : DefTailoring.CraftSystem.CraftSubRes);
                int            resIndex = (DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 14).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefTailoring.CraftSystem.CreateItem(m_Mobile, DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 14).ItemType, typeof(Cloth), m_Tool, DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 14));
            }
            else if (IsFrom == "Footwear")
            {
                Type type = null;

                CraftContext   context  = DefTailoring.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 17).UseSubRes2 ? DefTailoring.CraftSystem.CraftSubRes2 : DefTailoring.CraftSystem.CraftSubRes);
                int            resIndex = (DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 17).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefTailoring.CraftSystem.CreateItem(m_Mobile, DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 17).ItemType, typeof(Leather), m_Tool, DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 17));
            }
            else if (IsFrom == "Leather")
            {
                Type type = null;

                CraftContext   context  = DefTailoring.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 21).UseSubRes2 ? DefTailoring.CraftSystem.CraftSubRes2 : DefTailoring.CraftSystem.CraftSubRes);
                int            resIndex = (DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 21).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefTailoring.CraftSystem.CreateItem(m_Mobile, DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 21).ItemType, typeof(Leather), m_Tool, DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 21));
            }
            else if (IsFrom == "Studded")
            {
                Type type = null;

                CraftContext   context  = DefTailoring.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 26).UseSubRes2 ? DefTailoring.CraftSystem.CraftSubRes2 : DefTailoring.CraftSystem.CraftSubRes);
                int            resIndex = (DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 26).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefTailoring.CraftSystem.CreateItem(m_Mobile, DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 26).ItemType, typeof(Leather), m_Tool, DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 26));
            }
            else if (IsFrom == "Female")
            {
                Type type = null;

                CraftContext   context  = DefTailoring.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 31).UseSubRes2 ? DefTailoring.CraftSystem.CraftSubRes2 : DefTailoring.CraftSystem.CraftSubRes);
                int            resIndex = (DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 31).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefTailoring.CraftSystem.CreateItem(m_Mobile, DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 31).ItemType, typeof(Leather), m_Tool, DefTailoring.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 31));
            }
        }
        public override void OnResponse(NetState state, int index)
        {
            if (m_Mobile.Backpack.GetAmount(typeof(BlankScroll)) == 0)
            {
                m_Mobile.SendAsciiMessage("You do not have enough blank scrolls to make that.");
                return;
            }

            if (IsFrom == "Main")
            {
                if (m_Entries[index].craftIndex == 0)
                {
                    IsFrom = "First";
                    m_Mobile.SendMenu(new InscriptionMenu(m_Mobile, First(m_Mobile), IsFrom, m_Tool));
                }
                else if (m_Entries[index].craftIndex == 1)
                {
                    IsFrom = "Second";
                    m_Mobile.SendMenu(new InscriptionMenu(m_Mobile, Second(m_Mobile), IsFrom, m_Tool));
                }
                else if (m_Entries[index].craftIndex == 2)
                {
                    IsFrom = "Third";
                    m_Mobile.SendMenu(new InscriptionMenu(m_Mobile, Third(m_Mobile), IsFrom, m_Tool));
                }
                else if (m_Entries[index].craftIndex == 3)
                {
                    IsFrom = "Fourth";
                    m_Mobile.SendMenu(new InscriptionMenu(m_Mobile, Fourth(m_Mobile), IsFrom, m_Tool));
                }
                else if (m_Entries[index].craftIndex == 4)
                {
                    IsFrom = "Fifth";
                    m_Mobile.SendMenu(new InscriptionMenu(m_Mobile, Fifth(m_Mobile), IsFrom, m_Tool));
                }
                else if (m_Entries[index].craftIndex == 5)
                {
                    IsFrom = "Sixth";
                    m_Mobile.SendMenu(new InscriptionMenu(m_Mobile, Sixth(m_Mobile), IsFrom, m_Tool));
                }
                else if (m_Entries[index].craftIndex == 6)
                {
                    IsFrom = "Seventh";
                    m_Mobile.SendMenu(new InscriptionMenu(m_Mobile, Seventh(m_Mobile), IsFrom, m_Tool));
                }
                else if (m_Entries[index].craftIndex == 7)
                {
                    IsFrom = "Eighth";
                    m_Mobile.SendMenu(new InscriptionMenu(m_Mobile, Eighth(m_Mobile), IsFrom, m_Tool));
                }
            }
            else if (IsFrom == "First")
            {
                Type type = null;
                //int num = DefInscription.CraftSystem.CanCraft(m_Mobile, m_Tool, DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)).ItemType);

                CraftContext   context  = DefInscription.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)).UseSubRes2 ? DefInscription.CraftSystem.CraftSubRes2 : DefInscription.CraftSystem.CraftSubRes);
                int            resIndex = (DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }
                DefInscription.CraftSystem.CreateItem(m_Mobile, DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)).ItemType, type, m_Tool, DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)));
            }
            else if (IsFrom == "Second")
            {
                Type type = null;

                CraftContext   context  = DefInscription.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 8).UseSubRes2 ? DefInscription.CraftSystem.CraftSubRes2 : DefInscription.CraftSystem.CraftSubRes);
                int            resIndex = (DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 8).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }
                DefInscription.CraftSystem.CreateItem(m_Mobile, DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 8).ItemType, type, m_Tool, DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 8));
            }
            else if (IsFrom == "Third")
            {
                Type type = null;

                CraftContext   context  = DefInscription.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 16).UseSubRes2 ? DefInscription.CraftSystem.CraftSubRes2 : DefInscription.CraftSystem.CraftSubRes);
                int            resIndex = (DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 16).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }
                DefInscription.CraftSystem.CreateItem(m_Mobile, DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 16).ItemType, type, m_Tool, DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 16));
            }
            else if (IsFrom == "Fourth")
            {
                Type type = null;

                CraftContext   context  = DefInscription.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 24).UseSubRes2 ? DefInscription.CraftSystem.CraftSubRes2 : DefInscription.CraftSystem.CraftSubRes);
                int            resIndex = (DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 24).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }
                DefInscription.CraftSystem.CreateItem(m_Mobile, DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 24).ItemType, type, m_Tool, DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 24));
            }
            else if (IsFrom == "Fifth")
            {
                Type type = null;

                CraftContext   context  = DefInscription.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 32).UseSubRes2 ? DefInscription.CraftSystem.CraftSubRes2 : DefInscription.CraftSystem.CraftSubRes);
                int            resIndex = (DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 32).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }
                DefInscription.CraftSystem.CreateItem(m_Mobile, DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 32).ItemType, type, m_Tool, DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 32));
            }
            else if (IsFrom == "Sixth")
            {
                Type type = null;

                CraftContext   context  = DefInscription.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 40).UseSubRes2 ? DefInscription.CraftSystem.CraftSubRes2 : DefInscription.CraftSystem.CraftSubRes);
                int            resIndex = (DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 40).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }
                DefInscription.CraftSystem.CreateItem(m_Mobile, DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 40).ItemType, type, m_Tool, DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 40));
            }
            else if (IsFrom == "Seventh")
            {
                Type type = null;

                CraftContext   context  = DefInscription.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 48).UseSubRes2 ? DefInscription.CraftSystem.CraftSubRes2 : DefInscription.CraftSystem.CraftSubRes);
                int            resIndex = (DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 48).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }
                DefInscription.CraftSystem.CreateItem(m_Mobile, DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 48).ItemType, type, m_Tool, DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 48));
            }
            else if (IsFrom == "Eighth")
            {
                Type type = null;

                CraftContext   context  = DefInscription.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 56).UseSubRes2 ? DefInscription.CraftSystem.CraftSubRes2 : DefInscription.CraftSystem.CraftSubRes);
                int            resIndex = (DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 56).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }
                DefInscription.CraftSystem.CreateItem(m_Mobile, DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 56).ItemType, type, m_Tool, DefInscription.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 56));
            }
        }
Exemple #8
0
        public override void OnResponse(NetState state, int index)
        {
            if (m_Mobile.Backpack.GetAmount(typeof(Bottle)) == 0)
            {
                m_Mobile.SendAsciiMessage("You need an empty bottle to make a potion.");
                return;
            }

            if (IsFrom == "Refresh")
            {
                Type type = null;

                CraftContext   context  = DefAlchemy.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)).UseSubRes2 ? DefAlchemy.CraftSystem.CraftSubRes2 : DefAlchemy.CraftSystem.CraftSubRes);
                int            resIndex = (DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefAlchemy.CraftSystem.CreateItem(m_Mobile, DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)).ItemType, typeof(BlackPearl), m_Tool, DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)));
            }
            else if (IsFrom == "Agility")
            {
                Type type = null;

                CraftContext   context  = DefAlchemy.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 2).UseSubRes2 ? DefAlchemy.CraftSystem.CraftSubRes2 : DefAlchemy.CraftSystem.CraftSubRes);
                int            resIndex = (DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 2).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefAlchemy.CraftSystem.CreateItem(m_Mobile, DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 2).ItemType, typeof(Bloodmoss), m_Tool, DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 2));
            }
            else if (IsFrom == "NightSight")
            {
                Type type = null;

                CraftContext   context  = DefAlchemy.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 4).UseSubRes2 ? DefAlchemy.CraftSystem.CraftSubRes2 : DefAlchemy.CraftSystem.CraftSubRes);
                int            resIndex = (DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 4).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                /* int OldHue = m_Mobile.SpeechHue;
                 * m_Mobile.SpeechHue = 0x22;
                 * m_Mobile.SayTo(m_Mobile, true, String.Format("*{0} begins grinding some spiders' silk in a mortar*", m_Mobile.Name));
                 * m_Mobile.SpeechHue = OldHue;*/

                DefAlchemy.CraftSystem.CreateItem(m_Mobile, DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 4).ItemType, typeof(SpidersSilk), m_Tool, DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 4));
            }
            else if (IsFrom == "Heal")
            {
                Type type = null;

                CraftContext   context  = DefAlchemy.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 5).UseSubRes2 ? DefAlchemy.CraftSystem.CraftSubRes2 : DefAlchemy.CraftSystem.CraftSubRes);
                int            resIndex = (DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 5).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefAlchemy.CraftSystem.CreateItem(m_Mobile, DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 5).ItemType, typeof(Ginseng), m_Tool, DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 5));
            }
            else if (IsFrom == "Strength")
            {
                Type type = null;

                CraftContext   context  = DefAlchemy.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 8).UseSubRes2 ? DefAlchemy.CraftSystem.CraftSubRes2 : DefAlchemy.CraftSystem.CraftSubRes);
                int            resIndex = (DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 8).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefAlchemy.CraftSystem.CreateItem(m_Mobile, DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 8).ItemType, typeof(MandrakeRoot), m_Tool, DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 8));
            }
            else if (IsFrom == "Poison")
            {
                Type type = null;

                CraftContext   context  = DefAlchemy.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 10).UseSubRes2 ? DefAlchemy.CraftSystem.CraftSubRes2 : DefAlchemy.CraftSystem.CraftSubRes);
                int            resIndex = (DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 10).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefAlchemy.CraftSystem.CreateItem(m_Mobile, DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 10).ItemType, typeof(Nightshade), m_Tool, DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 10));
            }
            else if (IsFrom == "Cure")
            {
                Type type = null;

                CraftContext   context  = DefAlchemy.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 14).UseSubRes2 ? DefAlchemy.CraftSystem.CraftSubRes2 : DefAlchemy.CraftSystem.CraftSubRes);
                int            resIndex = (DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 14).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefAlchemy.CraftSystem.CreateItem(m_Mobile, DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 14).ItemType, typeof(Garlic), m_Tool, DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 14));
            }
            else if (IsFrom == "Explosion")
            {
                Type type = null;

                CraftContext   context  = DefAlchemy.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 17).UseSubRes2 ? DefAlchemy.CraftSystem.CraftSubRes2 : DefAlchemy.CraftSystem.CraftSubRes);
                int            resIndex = (DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 17).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefAlchemy.CraftSystem.CreateItem(m_Mobile, DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 17).ItemType, typeof(SulfurousAsh), m_Tool, DefAlchemy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 17));
            }
        }
Exemple #9
0
        /*private static ItemListEntry[] Test()
         * {
         *  Type type;
         *  int itemid;
         *  string name;
         *  Item item;
         *
         *  ItemListEntry[] entries = new ItemListEntry[DefBlacksmithy.CraftSystem.CraftItems.Count];
         *
         *  for (int i = 0; i < DefBlacksmithy.CraftSystem.CraftItems.Count; ++i)
         *  {
         *      type = DefBlacksmithy.CraftSystem.CraftItems.GetAt(i).ItemType;
         *
         *      item = null;
         *      try { item = Activator.CreateInstance(type) as Item; }
         *      catch { }
         *      name = item.Name;
         *      itemid = item.ItemID;
         *
         *      entries[i-missing] = new ItemListEntry(name, itemid, 0, i);
         *
         *      if (item != null)
         *          item.Delete();
         *  }
         *
         *  return entries;
         * }*/

        public override void OnResponse(NetState state, int index)
        {
            if (IsFrom == "Main")
            {
                if (m_Entries[index].craftIndex == 0)
                {
                    Repair.Do(m_Mobile, DefBlacksmithy.CraftSystem, m_Tool);
                }
                if (m_Entries[index].craftIndex == 1)
                {
                    IsFrom = "Shields";
                    m_Mobile.SendMenu(new BlacksmithMenu(m_Mobile, Shields(m_Mobile), IsFrom, m_Tool));
                }
                else if (m_Entries[index].craftIndex == 2)
                {
                    IsFrom = "Armor";
                    m_Mobile.SendMenu(new BlacksmithMenu(m_Mobile, Armor(m_Mobile), IsFrom, m_Tool));
                }
                else if (m_Entries[index].craftIndex == 3)
                {
                    IsFrom = "Weapons";
                    m_Mobile.SendMenu(new BlacksmithMenu(m_Mobile, Weapons(m_Mobile), IsFrom, m_Tool));
                }
            }
            else if (IsFrom == "Shields")
            {
                Type type = null;

                CraftContext   context  = DefBlacksmithy.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 18).UseSubRes2 ? DefBlacksmithy.CraftSystem.CraftSubRes2 : DefBlacksmithy.CraftSystem.CraftSubRes);
                int            resIndex = (DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 18).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefBlacksmithy.CraftSystem.CreateItem(m_Mobile, DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 18).ItemType, type, m_Tool, DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 18));
            }
            else if (IsFrom == "Weapons")
            {
                if (m_Entries[index].craftIndex == 0)
                {
                    IsFrom = "Blades";
                    m_Mobile.SendMenu(new BlacksmithMenu(m_Mobile, Blades(m_Mobile), IsFrom, m_Tool));
                }
                else if (m_Entries[index].craftIndex == 1)
                {
                    IsFrom = "Axes";
                    m_Mobile.SendMenu(new BlacksmithMenu(m_Mobile, Axes(m_Mobile), IsFrom, m_Tool));
                }
                else if (m_Entries[index].craftIndex == 2)
                {
                    IsFrom = "Maces";
                    m_Mobile.SendMenu(new BlacksmithMenu(m_Mobile, Maces(m_Mobile), IsFrom, m_Tool));
                }
                else if (m_Entries[index].craftIndex == 3)
                {
                    IsFrom = "Polearms";
                    m_Mobile.SendMenu(new BlacksmithMenu(m_Mobile, Polearms(m_Mobile), IsFrom, m_Tool));
                }
            }
            else if (IsFrom == "Blades")
            {
                Type type = null;

                CraftContext   context  = DefBlacksmithy.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 24).UseSubRes2 ? DefBlacksmithy.CraftSystem.CraftSubRes2 : DefBlacksmithy.CraftSystem.CraftSubRes);
                int            resIndex = (DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 24).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefBlacksmithy.CraftSystem.CreateItem(m_Mobile, DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 24).ItemType, type, m_Tool, DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 24));
            }
            else if (IsFrom == "Axes")
            {
                Type type = null;

                CraftContext   context  = DefBlacksmithy.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 32).UseSubRes2 ? DefBlacksmithy.CraftSystem.CraftSubRes2 : DefBlacksmithy.CraftSystem.CraftSubRes);
                int            resIndex = (DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 32).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefBlacksmithy.CraftSystem.CreateItem(m_Mobile, DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 32).ItemType, type, m_Tool, DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 32));
            }
            else if (IsFrom == "Maces")
            {
                Type type = null;

                CraftContext   context  = DefBlacksmithy.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 43).UseSubRes2 ? DefBlacksmithy.CraftSystem.CraftSubRes2 : DefBlacksmithy.CraftSystem.CraftSubRes);
                int            resIndex = (DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 43).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefBlacksmithy.CraftSystem.CreateItem(m_Mobile, DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 43).ItemType, type, m_Tool, DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 43));
            }
            else if (IsFrom == "Polearms")
            {
                Type type = null;

                CraftContext   context  = DefBlacksmithy.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 39).UseSubRes2 ? DefBlacksmithy.CraftSystem.CraftSubRes2 : DefBlacksmithy.CraftSystem.CraftSubRes);
                int            resIndex = (DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 39).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefBlacksmithy.CraftSystem.CreateItem(m_Mobile, DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 39).ItemType, type, m_Tool, DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 39));
            }
            else if (IsFrom == "Armor")
            {
                if (m_Entries[index].craftIndex == 0)
                {
                    IsFrom = "Platemail";
                    m_Mobile.SendMenu(new BlacksmithMenu(m_Mobile, Platemail(m_Mobile), IsFrom, m_Tool));
                }
                else if (m_Entries[index].craftIndex == 1)
                {
                    IsFrom = "Chainmail";
                    m_Mobile.SendMenu(new BlacksmithMenu(m_Mobile, Chainmail(m_Mobile), IsFrom, m_Tool));
                }
                else if (m_Entries[index].craftIndex == 2)
                {
                    IsFrom = "Ringmail";
                    m_Mobile.SendMenu(new BlacksmithMenu(m_Mobile, Ringmail(m_Mobile), IsFrom, m_Tool));
                }
                else if (m_Entries[index].craftIndex == 3)
                {
                    IsFrom = "Helmets";
                    m_Mobile.SendMenu(new BlacksmithMenu(m_Mobile, Helmets(m_Mobile), IsFrom, m_Tool));
                }
            }
            else if (IsFrom == "Platemail")
            {
                Type type = null;

                CraftContext   context  = DefBlacksmithy.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 7).UseSubRes2 ? DefBlacksmithy.CraftSystem.CraftSubRes2 : DefBlacksmithy.CraftSystem.CraftSubRes);
                int            resIndex = (DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 7).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefBlacksmithy.CraftSystem.CreateItem(m_Mobile, DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 7).ItemType, type, m_Tool, DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 7));
            }
            else if (IsFrom == "Chainmail")
            {
                Type type = null;

                CraftContext   context  = DefBlacksmithy.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 5).UseSubRes2 ? DefBlacksmithy.CraftSystem.CraftSubRes2 : DefBlacksmithy.CraftSystem.CraftSubRes);
                int            resIndex = (DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 5).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefBlacksmithy.CraftSystem.CreateItem(m_Mobile, DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 5).ItemType, type, m_Tool, DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 5));
            }
            else if (IsFrom == "Ringmail")
            {
                Type type = null;

                CraftContext   context  = DefBlacksmithy.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)).UseSubRes2 ? DefBlacksmithy.CraftSystem.CraftSubRes2 : DefBlacksmithy.CraftSystem.CraftSubRes);
                int            resIndex = (DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                DefBlacksmithy.CraftSystem.CreateItem(m_Mobile, DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)).ItemType, type, m_Tool, DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex)));
            }
            else if (IsFrom == "Helmets")
            {
                Type type = null;

                CraftContext   context  = DefBlacksmithy.CraftSystem.GetContext(m_Mobile);
                CraftSubResCol res      = (DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 12).UseSubRes2 ? DefBlacksmithy.CraftSystem.CraftSubRes2 : DefBlacksmithy.CraftSystem.CraftSubRes);
                int            resIndex = (DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 12).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);

                //chainmail coif
                if (index == 0)
                {
                    res      = (DefBlacksmithy.CraftSystem.CraftItems.GetAt(4).UseSubRes2 ? DefBlacksmithy.CraftSystem.CraftSubRes2 : DefBlacksmithy.CraftSystem.CraftSubRes);
                    resIndex = (DefBlacksmithy.CraftSystem.CraftItems.GetAt(4).UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex);
                }

                if (resIndex > -1)
                {
                    type = res.GetAt(resIndex).ItemType;
                }

                //chainmail coif
                if (index == 0)
                {
                    DefBlacksmithy.CraftSystem.CreateItem(m_Mobile, DefBlacksmithy.CraftSystem.CraftItems.GetAt(4).ItemType, type, m_Tool, DefBlacksmithy.CraftSystem.CraftItems.GetAt(4));
                }
                //the rest
                else
                {
                    DefBlacksmithy.CraftSystem.CreateItem(m_Mobile, DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 12).ItemType, type, m_Tool, DefBlacksmithy.CraftSystem.CraftItems.GetAt((m_Entries[index].craftIndex) + 12));
                }
            }
        }