Example #1
0
        public void SendValoriteIngot(Mobile from)
        {
            Container backpack = this.Backpack;

            from = this.ControlMaster;
            BankBox       bank1 = from.BankBox;
            ValoriteIngot valo  = (ValoriteIngot)backpack.FindItemByType(typeof(ValoriteIngot));

            if (valo is BaseIngot)
            {
                BaseIngot m_Ore9 = valo as BaseIngot;

                if (m_Ore9.Amount > 1000)
                {
                    PlaceItemIn(bank1, 18, 169, valo);
                }
            }
        }
Example #2
0
        public override void OnThink()
        {
            if (this.Alive && this.m_Mine && this.m_NextUse <= DateTime.Now)
            {
                Container backpack = this.Backpack;

                if (backpack == null)
                {
                    m_NextUse = DateTime.Now + TimeSpan.FromSeconds(2.5); base.OnThink(); return;
                }
                if (backpack.TotalWeight > (backpack.MaxWeight - 100))
                {
                    this.Say("I'm full !! I'm AutoConverting Ore in Ingot !"); m_Mine = true; this.Hue = 0; ControlOrder = OrderType.Stay; ConvertOretoIngot(this);  base.OnThink(); return;
                }

                Shovel   shovel1 = (Shovel)backpack.FindItemByType(typeof(Shovel));
                Pickaxe  shovel2 = (Pickaxe)backpack.FindItemByType(typeof(Pickaxe));
                IBShovel shovel3 = (IBShovel)backpack.FindItemByType(typeof(IBShovel));


                if (shovel1 != null)
                {
                    if (this.DoDisposeOre(this.X, this.Y, this.Z, this.Map, this))
                    {
                        shovel1.UsesRemaining -= 1;
                        if (shovel1 != null && !shovel1.Deleted && shovel1.UsesRemaining <= 0)
                        {
                            shovel1.Delete();
                        }
                    }
                }

                if (shovel2 != null)
                {
                    if (this.DoDisposeOre(this.X, this.Y, this.Z, this.Map, this))
                    {
                        shovel2.UsesRemaining -= 1;
                        if (shovel2 != null && !shovel2.Deleted && shovel2.UsesRemaining <= 0)
                        {
                            shovel2.Delete();
                        }
                    }
                }

                if (shovel3 != null)
                {
                    if (this.DoDisposeOre(this.X, this.Y, this.Z, this.Map, this))
                    {
                        shovel3.UsesRemaining -= 1;
                        if (shovel3 != null && !shovel3.Deleted && shovel3.UsesRemaining <= 0)
                        {
                            shovel3.Delete();
                        }
                    }
                }

                m_NextUse = DateTime.Now + TimeSpan.FromSeconds(2.5);

                if ((shovel1 == null) && (shovel2 == null) && (shovel3 == null))
                {
                    this.Say("I require a tool to dig");
                    m_Mine       = false;
                    this.Hue     = 0;
                    ControlOrder = OrderType.Follow;
                }

                IronIngot iron1 = (IronIngot)backpack.FindItemByType(typeof(IronIngot));
                if (iron1 is BaseIngot)
                {
                    BaseIngot m_Ore1 = iron1 as BaseIngot;

                    if (m_Ore1.Amount > 1000)
                    {
                        SendIronIngot(this);
                    }
                }

                DullcopperIngot dull1 = (DullcopperIngot)backpack.FindItemByType(typeof(DullcopperIngot));
                if (dull1 is BaseIngot)
                {
                    BaseIngot m_Ore2 = dull1 as BaseIngot;

                    if (m_Ore2.Amount > 1000)
                    {
                        SendDullCopperIngot(this);
                    }
                }

                ShadowIngot shad1 = (ShadowIngot)backpack.FindItemByType(typeof(ShadowIngot));
                if (shad1 is BaseIngot)
                {
                    BaseIngot m_Ore3 = shad1 as BaseIngot;

                    if (m_Ore3.Amount > 1000)
                    {
                        SendShadowIronIngot(this);
                    }
                }

                BronzeIngot bron1 = (BronzeIngot)backpack.FindItemByType(typeof(BronzeIngot));
                if (bron1 is BaseIngot)
                {
                    BaseIngot m_Ore4 = bron1 as BaseIngot;

                    if (m_Ore4.Amount > 1000)
                    {
                        SendBronzeIngot(this);
                    }
                }

                GoldIngot gold1 = (GoldIngot)backpack.FindItemByType(typeof(GoldIngot));
                if (gold1 is BaseIngot)
                {
                    BaseIngot m_Ore5 = gold1 as BaseIngot;

                    if (m_Ore5.Amount > 1000)
                    {
                        SendGoldIngot(this);
                    }
                }

                CopperIngot copp1 = (CopperIngot)backpack.FindItemByType(typeof(CopperIngot));
                if (copp1 is BaseIngot)
                {
                    BaseIngot m_Ore6 = copp1 as BaseIngot;

                    if (m_Ore6.Amount > 1000)
                    {
                        SendCopperIngot(this);
                    }
                }

                AgapiteIngot agap1 = (AgapiteIngot)backpack.FindItemByType(typeof(AgapiteIngot));
                if (agap1 is BaseIngot)
                {
                    BaseIngot m_Ore7 = agap1 as BaseIngot;

                    if (m_Ore7.Amount > 1000)
                    {
                        SendAgapiteIngot(this);
                    }
                }

                VeriteIngot veri1 = (VeriteIngot)backpack.FindItemByType(typeof(VeriteIngot));
                if (veri1 is BaseIngot)
                {
                    BaseIngot m_Ore8 = veri1 as BaseIngot;

                    if (m_Ore8.Amount > 1000)
                    {
                        SendVeriteIngot(this);
                    }
                }

                ValoriteIngot valo1 = (ValoriteIngot)backpack.FindItemByType(typeof(ValoriteIngot));
                if (valo1 is BaseIngot)
                {
                    BaseIngot m_Ore9 = valo1 as BaseIngot;

                    if (m_Ore9.Amount > 1000)
                    {
                        SendValoriteIngot(this);
                    }
                }
            }
            base.OnThink();
        }
Example #3
0
        public MetalGolem() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.4, 0.8)
        {
            Name = "a construct";
            Body = 752;

            Item ore = new CopperIngot(Utility.RandomMinMax(13, 21)); ore.Delete();

            double scalar = 1.0;

            switch (Utility.Random(10))
            {
            case 0: ore = new IronIngot(Utility.RandomMinMax(13, 21)); Hue = 0x430; scalar = 1.0; RealName = "an iron construct"; break;                                                                  // Iron

            case 1: ore = new DullCopperIngot(Utility.RandomMinMax(13, 21)); Hue = MaterialInfo.GetMaterialColor("dull copper", "monster", 0); scalar = 1.1; RealName = "a dull copper construct"; break; // Dull Copper

            case 2: ore = new ShadowIronIngot(Utility.RandomMinMax(13, 21)); Hue = MaterialInfo.GetMaterialColor("shadow iron", "monster", 0); scalar = 1.2; RealName = "a shadow iron construct"; break; // Shadow Iron

            case 3: ore = new CopperIngot(Utility.RandomMinMax(13, 21)); Hue = MaterialInfo.GetMaterialColor("copper", "monster", 0); scalar = 1.3; RealName = "a copper construct"; break;               // Copper

            case 4: ore = new BronzeIngot(Utility.RandomMinMax(13, 21)); Hue = MaterialInfo.GetMaterialColor("bronze", "monster", 0); scalar = 1.4; RealName = "a bronze construct"; break;               // Bronze

            case 5: ore = new GoldIngot(Utility.RandomMinMax(13, 21)); Hue = MaterialInfo.GetMaterialColor("gold", "monster", 0); scalar = 1.5; RealName = "a golden construct"; break;                   // Gold

            case 6: ore = new AgapiteIngot(Utility.RandomMinMax(13, 21)); Hue = MaterialInfo.GetMaterialColor("agapite", "monster", 0); scalar = 1.6; RealName = "an agapite construct"; break;           // Agapite

            case 7: ore = new VeriteIngot(Utility.RandomMinMax(13, 21)); Hue = MaterialInfo.GetMaterialColor("verite", "monster", 0); scalar = 1.7; RealName = "a verite construct"; break;               // Verite

            case 8: ore = new ValoriteIngot(Utility.RandomMinMax(13, 21)); Hue = MaterialInfo.GetMaterialColor("valorite", "monster", 0); scalar = 1.8; RealName = "a valorite construct"; break;         // Valorite

            case 9:
                if (Worlds.IsExploringSeaAreas(this) == true)
                {
                    ore = new NepturiteIngot(Utility.RandomMinMax(13, 21)); Hue = MaterialInfo.GetMaterialColor("nepturite", "monster", 0); scalar = 1.9; RealName = "a nepturite construct";
                }
                else if (Worlds.GetMyWorld(this.Map, this.Location, this.X, this.Y) == "the Serpent Island")
                {
                    ore = new ObsidianIngot(Utility.RandomMinMax(13, 21)); Hue = MaterialInfo.GetMaterialColor("obsidian", "monster", 0); scalar = 1.9; RealName = "an obsidian construct";
                }
                else if (Worlds.GetMyWorld(this.Map, this.Location, this.X, this.Y) == "the Underworld" && this.Map == Map.TerMur)
                {
                    ore = new XormiteIngot(Utility.RandomMinMax(13, 21)); Hue = MaterialInfo.GetMaterialColor("xormite", "monster", 0); scalar = 2.0; RealName = "a xormite construct";
                }
                else if (Worlds.GetMyWorld(this.Map, this.Location, this.X, this.Y) == "the Underworld")
                {
                    ore = new MithrilIngot(Utility.RandomMinMax(13, 21)); Hue = MaterialInfo.GetMaterialColor("mithril", "monster", 0); scalar = 2.1; RealName = "a mithril construct";
                }
                else
                {
                    ore = new IronIngot(Utility.RandomMinMax(13, 21)); Hue = 0x430; scalar = 1.0; RealName = "an iron construct";
                }
                break;                         // Special
            }

            PackItem(ore);


            SetStr((int)(251 * scalar), (int)(350 * scalar));
            SetDex((int)(76 * scalar), (int)(100 * scalar));
            SetInt((int)(101 * scalar), (int)(150 * scalar));

            SetHits((int)(151 * scalar), (int)(210 * scalar));

            SetDamage((int)(13 * scalar), (int)(24 * scalar));

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, (int)(35 * scalar), (int)(55 * scalar));

            SetResistance(ResistanceType.Fire, (int)(100 * scalar));

            SetResistance(ResistanceType.Cold, (int)(10 * scalar), (int)(30 * scalar));
            SetResistance(ResistanceType.Poison, 100);
            SetResistance(ResistanceType.Energy, (int)(30 * scalar), (int)(40 * scalar));

            SetSkill(SkillName.MagicResist, (150.1 * scalar), (190.0 * scalar));
            SetSkill(SkillName.Tactics, (60.1 * scalar), (100.0 * scalar));
            SetSkill(SkillName.Wrestling, (60.1 * scalar), (100.0 * scalar));

            Fame  = (int)(3500 * scalar);
            Karma = (int)(-3500 * scalar);

            if (0.1 > Utility.RandomDouble())
            {
                PackItem(new PowerCrystal());
            }

            if (0.15 > Utility.RandomDouble())
            {
                PackItem(new ClockworkAssembly());
            }

            if (0.2 > Utility.RandomDouble())
            {
                PackItem(new ArcaneGem());
            }

            if (0.25 > Utility.RandomDouble())
            {
                PackItem(new Gears(Utility.RandomMinMax(1, 5)));
            }

            if (0.25 > Utility.RandomDouble())
            {
                PackItem(new BottleOil(Utility.RandomMinMax(1, 5)));
            }
        }
Example #4
0
        public override void GiveRewards()
        {
            //Random gold amount to add
            BankCheck gold = new BankCheck(Utility.RandomMinMax(500, 600));

            if (!Owner.AddToBackpack(gold))
            {
                gold.MoveToWorld(Owner.Location, Owner.Map);
            }

            //Adding Quest Reward Token(s)
            for (int x = 0; x < 1; x++)
            {
                RandomTalisman talisman = new RandomTalisman();
                if (!Owner.AddToBackpack(talisman))
                {
                    talisman.MoveToWorld(Owner.Location, Owner.Map);
                }
            }
            Item bonusitem;

            bonusitem = new DullCopperIngot(20);
            //Adding Bonus Item #1
            if (!Owner.AddToBackpack(bonusitem))
            {
                bonusitem.MoveToWorld(Owner.Location, Owner.Map);
            }

            bonusitem = new ShadowIronIngot(20);
            //Adding Bonus Item #2
            if (!Owner.AddToBackpack(bonusitem))
            {
                bonusitem.MoveToWorld(Owner.Location, Owner.Map);
            }

            bonusitem = new CopperIngot(20);
            //Adding Bonus Item #3
            if (!Owner.AddToBackpack(bonusitem))
            {
                bonusitem.MoveToWorld(Owner.Location, Owner.Map);
            }

            bonusitem = new BronzeIngot(20);
            //Adding Bonus Item #4
            if (!Owner.AddToBackpack(bonusitem))
            {
                bonusitem.MoveToWorld(Owner.Location, Owner.Map);
            }

            bonusitem = new GoldIngot(20);
            //Adding Bonus Item #5
            if (!Owner.AddToBackpack(bonusitem))
            {
                bonusitem.MoveToWorld(Owner.Location, Owner.Map);
            }

            bonusitem = new AgapiteIngot(20);
            //Adding Bonus Item #6
            if (!Owner.AddToBackpack(bonusitem))
            {
                bonusitem.MoveToWorld(Owner.Location, Owner.Map);
            }

            bonusitem = new VeriteIngot(20);
            //Adding Bonus Item #7
            if (!Owner.AddToBackpack(bonusitem))
            {
                bonusitem.MoveToWorld(Owner.Location, Owner.Map);
            }

            bonusitem = new ValoriteIngot(20);
            //Adding Bonus Item #8
            if (!Owner.AddToBackpack(bonusitem))
            {
                bonusitem.MoveToWorld(Owner.Location, Owner.Map);
            }

            base.GiveRewards();
        }
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            switch (info.ButtonID)
            {
            case 0:
            {
                break;
            }

            case (int)Buttons.Iron:
            {
                m_step[m_itemnum] = new IronIngot();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.DullCopper:
            {
                m_step[m_itemnum] = new DullCopperIngot();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.ShadowIron:
            {
                m_step[m_itemnum] = new ShadowIronIngot();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.Copper:
            {
                m_step[m_itemnum] = new CopperIngot();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.Bronze:
            {
                m_step[m_itemnum] = new BronzeIngot();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.Gold:
            {
                m_step[m_itemnum] = new GoldIngot();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.Agapite:
            {
                m_step[m_itemnum] = new AgapiteIngot();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.Verite:
            {
                m_step[m_itemnum] = new VeriteIngot();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.Valorite:
            {
                m_step[m_itemnum] = new ValoriteIngot();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.Oak:
            {
                m_step[m_itemnum] = new Log();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.Pine:
            {
                m_step[m_itemnum] = new PineLog();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.Redwood:
            {
                m_step[m_itemnum] = new RedwoodLog();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.WhitePine:
            {
                m_step[m_itemnum] = new WhitePineLog();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.Ashwood:
            {
                m_step[m_itemnum] = new AshwoodLog();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.SilverBirch:
            {
                m_step[m_itemnum] = new SilverBirchLog();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.Silver:
            {
                m_step[m_itemnum] = new SilverIngot();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.Yew:
            {
                m_step[m_itemnum] = new YewLog();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.BlackOak:
            {
                m_step[m_itemnum] = new BlackOakLog();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.SulfurousAsh:
            {
                m_step[m_itemnum] = new SulfurousAsh();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.ZoogiFungus:
            {
                m_step[m_itemnum] = new ZoogiFungus();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.FertileDirt:
            {
                m_step[m_itemnum] = new FertileDirt();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.PigIron:
            {
                m_step[m_itemnum] = new PigIron();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.NoxCrystal:
            {
                m_step[m_itemnum] = new NoxCrystal();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.Diamond:
            {
                m_step[m_itemnum] = new Diamond();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.Wool:
            {
                m_step[m_itemnum] = new Wool();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.Bone:
            {
                m_step[m_itemnum] = new Bone();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.Citrine:
            {
                m_step[m_itemnum] = new Citrine();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.BlackPearl:
            {
                m_step[m_itemnum] = new BlackPearl();
                m_itemnum        += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.Decrease:
            {
                if (m_amt > 1)
                {
                    m_amt -= 1;
                }
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.Increase:
            {
                m_amt += 1;
                m_player.SendGump(new AlloyGump(m_player, m_amt, m_itemnum, m_step[1], m_step[2], m_step[3], m_step[4], m_step[5], m_step[6]));
                break;
            }

            case (int)Buttons.Cancel:
            {
                m_player.SendGump(new AlloyGump(m_player, 1, 1, null, null, null, null, null, null));
                break;
            }

            case (int)Buttons.OK:
            {
                //check for and consume ingredients here
                Container pack = m_player.Backpack;

                if (m_step[6] == null)
                {
                    m_player.SendMessage("You must pick 6 steps");
                    m_player.SendGump(new AlloyGump(m_player, 1, 1, null, null, null, null, null, null));
                    break;
                }

                bool allres = true;

                for (int i = 1; i < 7; i++)
                {
                    Item itm     = (Item)m_step[i];
                    int  packamt = m_player.Backpack.GetAmount(itm.GetType());
                    if (packamt < m_amt)
                    {
                        m_player.SendMessage("You do not have enough {0} to attempt this", itm.GetType().Name);
                        allres = false;
                    }
                }

                if (allres)
                {
                    for (int i = 1; i < 7; i++)
                    {
                        Item itm = (Item)m_step[i];
                        m_player.Backpack.ConsumeTotal(m_step[i].GetType(), m_amt);
                        m_player.SendMessage("Step {0} consumes {1} {2}", i.ToString(), m_amt.ToString(), itm.GetType().Name);
                    }
                }
                else
                {
                    m_player.SendMessage("Please try again when you have all of the needed resources");
                    return;
                }


                if (m_step[1] is AgapiteIngot && m_step[2] is BlackOakLog && m_step[3] is AgapiteIngot && m_step[4] is ShadowIronIngot && m_step[5] is Bone && m_step[6] is AgapiteIngot)
                {
                    if (m_player.Backpack != null)
                    {
                        m_player.AddToBackpack(new BloodrockIngot(m_amt));
                    }
                    break;
                }

                if (m_step[1] is ValoriteIngot && m_step[2] is WhitePineLog && m_step[3] is ValoriteIngot && m_step[4] is CopperIngot && m_step[5] is FertileDirt && m_step[6] is SilverBirchLog)
                {
                    if (m_player.Backpack != null)
                    {
                        m_player.AddToBackpack(new SteelIngot(m_amt));
                    }
                    break;
                }

                if (m_step[1] is ShadowIronIngot && m_step[2] is AshwoodLog && m_step[3] is VeriteIngot && m_step[4] is ShadowIronIngot && m_step[5] is NoxCrystal && m_step[6] is ShadowIronIngot)
                {
                    if (m_player.Backpack != null)
                    {
                        m_player.AddToBackpack(new AdamantiteIngot(m_amt));
                    }
                    break;
                }

                if (m_step[1] is IronIngot && m_step[2] is SilverBirchLog && m_step[3] is ValoriteIngot && m_step[4] is IronIngot && m_step[5] is Citrine && m_step[6] is SilverBirchLog)
                {
                    if (m_player.Backpack != null)
                    {
                        m_player.AddToBackpack(new IthilmarIngot(m_amt));
                    }
                    break;
                }

                if (m_step[1] is SilverIngot && m_step[2] is GoldIngot && m_step[3] is Diamond && m_step[4] is SilverIngot && m_step[5] is GoldIngot && m_step[6] is SilverIngot)
                {
                    if (m_player.Backpack != null)
                    {
                        m_player.AddToBackpack(new ElectrumIngot(m_amt));
                    }
                    break;
                }

                if (m_step[1] is PigIron && m_player.IsGoblin())
                {
                    if (m_player.Backpack != null)
                    {
                        m_player.AddToBackpack(new SkazzIngot(m_amt));
                    }
                    break;
                }

                m_player.SendMessage("You fail to create a new alloy and your materials are lost");
                m_player.SendGump(new AlloyGump(m_player, 1, 1, null, null, null, null, null, null));
                break;
            }
            }
        }